diff --git a/stable b/stable index cef607487..58df7bf78 120000 --- a/stable +++ b/stable @@ -1 +1 @@ -v0.10.58 \ No newline at end of file +v0.10.59 \ No newline at end of file diff --git a/v0.10 b/v0.10 index cef607487..58df7bf78 120000 --- a/v0.10 +++ b/v0.10 @@ -1 +1 @@ -v0.10.58 \ No newline at end of file +v0.10.59 \ No newline at end of file diff --git a/v0.10.59/api/index.html b/v0.10.59/api/index.html new file mode 100644 index 000000000..048a6701e --- /dev/null +++ b/v0.10.59/api/index.html @@ -0,0 +1,124 @@ + +API · KernelFunctions.jl

API Library

Functions

The KernelFunctions API comprises the following four functions.

KernelFunctions.kernelmatrixFunction
kernelmatrix(κ::Kernel, x::AbstractVector)

Compute the kernel κ for each pair of inputs in x. Returns a matrix of size (length(x), length(x)) satisfying kernelmatrix(κ, x)[p, q] == κ(x[p], x[q]).

kernelmatrix(κ::Kernel, x::AbstractVector, y::AbstractVector)

Compute the kernel κ for each pair of inputs in x and y. Returns a matrix of size (length(x), length(y)) satisfying kernelmatrix(κ, x, y)[p, q] == κ(x[p], y[q]).

kernelmatrix(κ::Kernel, X::AbstractMatrix; obsdim)
+kernelmatrix(κ::Kernel, X::AbstractMatrix, Y::AbstractMatrix; obsdim)

If obsdim=1, equivalent to kernelmatrix(κ, RowVecs(X)) and kernelmatrix(κ, RowVecs(X), RowVecs(Y)), respectively. If obsdim=2, equivalent to kernelmatrix(κ, ColVecs(X)) and kernelmatrix(κ, ColVecs(X), ColVecs(Y)), respectively.

See also: ColVecs, RowVecs

source
KernelFunctions.kernelmatrix!Function
kernelmatrix!(K::AbstractMatrix, κ::Kernel, x::AbstractVector)
+kernelmatrix!(K::AbstractMatrix, κ::Kernel, x::AbstractVector, y::AbstractVector)

In-place version of kernelmatrix where pre-allocated matrix K will be overwritten with the kernel matrix.

kernelmatrix!(K::AbstractMatrix, κ::Kernel, X::AbstractMatrix; obsdim)
+kernelmatrix!(
+    K::AbstractMatrix,
+    κ::Kernel,
+    X::AbstractMatrix,
+    Y::AbstractMatrix;
+    obsdim,
+)

If obsdim=1, equivalent to kernelmatrix!(K, κ, RowVecs(X)) and kernelmatrix(K, κ, RowVecs(X), RowVecs(Y)), respectively. If obsdim=2, equivalent to kernelmatrix!(K, κ, ColVecs(X)) and kernelmatrix(K, κ, ColVecs(X), ColVecs(Y)), respectively.

See also: ColVecs, RowVecs

source
KernelFunctions.kernelmatrix_diagFunction
kernelmatrix_diag(κ::Kernel, x::AbstractVector)

Compute the diagonal of kernelmatrix(κ, x) efficiently.

kernelmatrix_diag(κ::Kernel, x::AbstractVector, y::AbstractVector)

Compute the diagonal of kernelmatrix(κ, x, y) efficiently. Requires that x and y are the same length.

kernelmatrix_diag(κ::Kernel, X::AbstractMatrix; obsdim)
+kernelmatrix_diag(κ::Kernel, X::AbstractMatrix, Y::AbstractMatrix; obsdim)

If obsdim=1, equivalent to kernelmatrix_diag(κ, RowVecs(X)) and kernelmatrix_diag(κ, RowVecs(X), RowVecs(Y)), respectively. If obsdim=2, equivalent to kernelmatrix_diag(κ, ColVecs(X)) and kernelmatrix_diag(κ, ColVecs(X), ColVecs(Y)), respectively.

See also: ColVecs, RowVecs

source
KernelFunctions.kernelmatrix_diag!Function
kernelmatrix_diag!(K::AbstractVector, κ::Kernel, x::AbstractVector)
+kernelmatrix_diag!(K::AbstractVector, κ::Kernel, x::AbstractVector, y::AbstractVector)

In place version of kernelmatrix_diag.

kernelmatrix_diag!(K::AbstractVector, κ::Kernel, X::AbstractMatrix; obsdim)
+kernelmatrix_diag!(
+    K::AbstractVector,
+    κ::Kernel,
+    X::AbstractMatrix,
+    Y::AbstractMatrix;
+    obsdim
+)

If obsdim=1, equivalent to kernelmatrix_diag!(K, κ, RowVecs(X)) and kernelmatrix_diag!(K, κ, RowVecs(X), RowVecs(Y)), respectively. If obsdim=2, equivalent to kernelmatrix_diag!(K, κ, ColVecs(X)) and kernelmatrix_diag!(K, κ, ColVecs(X), ColVecs(Y)), respectively.

See also: ColVecs, RowVecs

source

Input Types

The above API operates on collections of inputs. All collections of inputs in KernelFunctions.jl are represented as AbstractVectors. To understand this choice, please see the design notes on collections of inputs. The length of any such AbstractVector is equal to the number of inputs in the collection. For example, this means that

size(kernelmatrix(k, x)) == (length(x), length(x))

is always true, for some Kernel k, and AbstractVector x.

Univariate Inputs

If each input to your kernel is Real-valued, then any AbstractVector{<:Real} is a valid representation for a collection of inputs. More generally, it's completely fine to represent a collection of inputs of type T as, for example, a Vector{T}. However, this may not be the most efficient way to represent collection of inputs. See Vector-Valued Inputs for an example.

Vector-Valued Inputs

We recommend that collections of vector-valued inputs are stored in an AbstractMatrix{<:Real} when possible, and wrapped inside a ColVecs or RowVecs to make their interpretation clear:

KernelFunctions.ColVecsType
ColVecs(X::AbstractMatrix)

A lightweight wrapper for an AbstractMatrix which interprets it as a vector-of-vectors, in which each column of X represents a single vector.

That is, by writing x = ColVecs(X), you are saying "x is a vector-of-vectors, each of which has length size(X, 1). The total number of vectors is size(X, 2)."

Phrased differently, ColVecs(X) says that X should be interpreted as a vector of horizontally-concatenated column-vectors, hence the name ColVecs.

julia> X = randn(2, 5);
+
+julia> x = ColVecs(X);
+
+julia> length(x) == 5
+true
+
+julia> X[:, 3] == x[3]
+true

ColVecs is related to RowVecs via transposition:

julia> X = randn(2, 5);
+
+julia> ColVecs(X) == RowVecs(X')
+true
source
KernelFunctions.RowVecsType
RowVecs(X::AbstractMatrix)

A lightweight wrapper for an AbstractMatrix which interprets it as a vector-of-vectors, in which each row of X represents a single vector.

That is, by writing x = RowVecs(X), you are saying "x is a vector-of-vectors, each of which has length size(X, 2). The total number of vectors is size(X, 1)."

Phrased differently, RowVecs(X) says that X should be interpreted as a vector of vertically-concatenated row-vectors, hence the name RowVecs.

Internally, the data continues to be represented as an AbstractMatrix, so using this type does not introduce any kind of performance penalty.

julia> X = randn(5, 2);
+
+julia> x = RowVecs(X);
+
+julia> length(x) == 5
+true
+
+julia> X[3, :] == x[3]
+true

RowVecs is related to ColVecs via transposition:

julia> X = randn(5, 2);
+
+julia> RowVecs(X) == ColVecs(X')
+true
source

These types are specialised upon to ensure good performance e.g. when computing Euclidean distances between pairs of elements. The benefit of using this representation, rather than using a Vector{Vector{<:Real}}, is that optimised matrix-matrix multiplication functionality can be utilised when computing pairwise distances between inputs, which are needed for kernelmatrix computation.

Inputs for Multiple Outputs

KernelFunctions.jl views multi-output GPs as GPs on an extended input domain. For an explanation of this design choice, see the design notes on multi-output GPs.

An input to a multi-output Kernel should be a Tuple{T, Int}, whose first element specifies a location in the domain of the multi-output GP, and whose second element specifies which output the inputs corresponds to. The type of collections of inputs for multi-output GPs is therefore AbstractVector{<:Tuple{T, Int}}.

KernelFunctions.jl provides the following helper functions to reduce the cognitive load associated with working with multi-output kernels by dealing with transforming data from the formats in which it is commonly found into the format required by KernelFunctions. The intention is that users can pass their data to these functions, and use the returned values throughout their code, without having to worry further about correctly formatting their data for KernelFunctions' sake:

KernelFunctions.prepare_isotopic_multi_output_dataMethod
prepare_isotopic_multi_output_data(x::AbstractVector, y::ColVecs)

Utility functionality to convert a collection of N = length(x) inputs x, and a vector-of-vectors y (efficiently represented by a ColVecs) into a format suitable for use with multi-output kernels.

y[n] is the vector-valued output corresponding to the input x[n]. Consequently, it is necessary that length(x) == length(y).

For example, if outputs are initially stored in a num_outputs × N matrix:

julia> x = [1.0, 2.0, 3.0];
+
+julia> Y = [1.1 2.1 3.1; 1.2 2.2 3.2]
+2×3 Matrix{Float64}:
+ 1.1  2.1  3.1
+ 1.2  2.2  3.2
+
+julia> inputs, outputs = prepare_isotopic_multi_output_data(x, ColVecs(Y));
+
+julia> inputs
+6-element KernelFunctions.MOInputIsotopicByFeatures{Float64, Vector{Float64}, Int64}:
+ (1.0, 1)
+ (1.0, 2)
+ (2.0, 1)
+ (2.0, 2)
+ (3.0, 1)
+ (3.0, 2)
+
+julia> outputs
+6-element Vector{Float64}:
+ 1.1
+ 1.2
+ 2.1
+ 2.2
+ 3.1
+ 3.2

See also prepare_heterotopic_multi_output_data.

source
KernelFunctions.prepare_isotopic_multi_output_dataMethod
prepare_isotopic_multi_output_data(x::AbstractVector, y::RowVecs)

Utility functionality to convert a collection of N = length(x) inputs x and output vectors y (efficiently represented by a RowVecs) into a format suitable for use with multi-output kernels.

y[n] is the vector-valued output corresponding to the input x[n]. Consequently, it is necessary that length(x) == length(y).

For example, if outputs are initial stored in an N × num_outputs matrix:

julia> x = [1.0, 2.0, 3.0];
+
+julia> Y = [1.1 1.2; 2.1 2.2; 3.1 3.2]
+3×2 Matrix{Float64}:
+ 1.1  1.2
+ 2.1  2.2
+ 3.1  3.2
+
+julia> inputs, outputs = prepare_isotopic_multi_output_data(x, RowVecs(Y));
+
+julia> inputs
+6-element KernelFunctions.MOInputIsotopicByOutputs{Float64, Vector{Float64}, Int64}:
+ (1.0, 1)
+ (2.0, 1)
+ (3.0, 1)
+ (1.0, 2)
+ (2.0, 2)
+ (3.0, 2)
+
+julia> outputs
+6-element Vector{Float64}:
+ 1.1
+ 2.1
+ 3.1
+ 1.2
+ 2.2
+ 3.2

See also prepare_heterotopic_multi_output_data.

source
KernelFunctions.prepare_heterotopic_multi_output_dataFunction
prepare_heterotopic_multi_output_data(
+    x::AbstractVector, y::AbstractVector{<:Real}, output_indices::AbstractVector{Int},
+)

Utility functionality to convert a collection of inputs x, observations y, and output_indices into a format suitable for use with multi-output kernels. Handles the situation in which only one (or a subset) of outputs are observed at each feature. Ensures that all arguments are compatible with one another, and returns a vector of inputs and a vector of outputs.

y[n] should be the observed value associated with output output_indices[n] at feature x[n].

julia> x = [1.0, 2.0, 3.0];
+
+julia> y = [-1.0, 0.0, 1.0];
+
+julia> output_indices = [3, 2, 1];
+
+julia> inputs, outputs = prepare_heterotopic_multi_output_data(x, y, output_indices);
+
+julia> inputs
+3-element Vector{Tuple{Float64, Int64}}:
+ (1.0, 3)
+ (2.0, 2)
+ (3.0, 1)
+
+julia> outputs
+3-element Vector{Float64}:
+ -1.0
+  0.0
+  1.0

See also prepare_isotopic_multi_output_data.

source

The input types returned by prepare_isotopic_multi_output_data can also be constructed manually:

KernelFunctions.MOInputType
MOInput(x::AbstractVector, out_dim::Integer)

A data type to accommodate modelling multi-dimensional output data. MOInput(x, out_dim) has length length(x) * out_dim.

julia> x = [1, 2, 3];
+
+julia> MOInput(x, 2)
+6-element KernelFunctions.MOInputIsotopicByOutputs{Int64, Vector{Int64}, Int64}:
+ (1, 1)
+ (2, 1)
+ (3, 1)
+ (1, 2)
+ (2, 2)
+ (3, 2)

As shown above, an MOInput represents a vector of tuples. The first length(x) elements represent the inputs for the first output, the second length(x) elements represent the inputs for the second output, etc. See Inputs for Multiple Outputs in the docs for more info.

MOInput will be deprecated in version 0.11 in favour of MOInputIsotopicByOutputs, and removed in version 0.12.

source

As with ColVecs and RowVecs for vector-valued input spaces, this type enables specialised implementations of e.g. kernelmatrix for MOInputs in some situations.

To find out more about the background, read this review of kernels for vector-valued functions.

Generic Utilities

KernelFunctions also provides miscellaneous utility functions.

KernelFunctions.nystromFunction
nystrom(k::Kernel, X::AbstractVector, S::AbstractVector{<:Integer})

Compute a factorization of a Nystrom approximation of the square kernel matrix of data vector X with respect to kernel k, using indices S. Returns a NystromFact struct which stores a Nystrom factorization satisfying:

\[\mathbf{K} \approx \mathbf{C}^{\intercal}\mathbf{W}\mathbf{C}\]

source
nystrom(k::Kernel, X::AbstractVector, r::Real)

Compute a factorization of a Nystrom approximation of the square kernel matrix of data vector X with respect to kernel k using a sample ratio of r. Returns a NystromFact struct which stores a Nystrom factorization satisfying:

\[\mathbf{K} \approx \mathbf{C}^{\intercal}\mathbf{W}\mathbf{C}\]

source
nystrom(k::Kernel, X::AbstractMatrix, S::AbstractVector{<:Integer}; obsdim)

If obsdim=1, equivalent to nystrom(k, RowVecs(X), S). If obsdim=2, equivalent to nystrom(k, ColVecs(X), S).

See also: ColVecs, RowVecs

source
nystrom(k::Kernel, X::AbstractMatrix, r::Real; obsdim)

If obsdim=1, equivalent to nystrom(k, RowVecs(X), r). If obsdim=2, equivalent to nystrom(k, ColVecs(X), r).

See also: ColVecs, RowVecs

source
KernelFunctions.NystromFactType
NystromFact

Type for storing a Nystrom factorization. The factorization contains two fields: W and C, two matrices satisfying:

\[\mathbf{K} \approx \mathbf{C}^{\intercal}\mathbf{W}\mathbf{C}\]

source

Conditional Utilities

To keep the dependencies of KernelFunctions lean, some functionality is only available if specific other packages are explicitly loaded (using).

Kronecker.jl

https://github.com/MichielStock/Kronecker.jl

KernelFunctions.kronecker_kernelmatrixFunction
kronecker_kernelmatrix(
+    k::Union{IndependentMOKernel,IntrinsicCoregionMOKernel}, x::MOI, y::MOI
+) where {MOI<:IsotopicMOInputsUnion}

Requires Kronecker.jl: Computes the kernelmatrix for the IndependentMOKernel and the IntrinsicCoregionMOKernel, but returns a lazy kronecker product. This object can be very efficiently inverted or decomposed. See also kernelmatrix.

source
KernelFunctions.kernelkronmatFunction
kernelkronmat(κ::Kernel, X::AbstractVector{<:Real}, dims::Int) -> KroneckerPower

Return a KroneckerPower matrix on the D-dimensional input grid constructed by $\otimes_{i=1}^D X$, where D is given by dims.

Warning

Requires Kronecker.jl and for iskroncompatible(κ) to return true.

source
kernelkronmat(κ::Kernel, X::AbstractVector{<:AbstractVector}) -> KroneckerProduct

Returns a KroneckerProduct matrix on the grid built with the collection of vectors $\{X_i\}_{i=1}^D$: $\otimes_{i=1}^D X_i$.

Warning

Requires Kronecker.jl and for iskroncompatible(κ) to return true.

source

PDMats.jl

https://github.com/JuliaStats/PDMats.jl

KernelFunctions.kernelpdmatFunction
kernelpdmat(k::Kernel, X::AbstractVector)

Compute a positive-definite matrix in the form of a PDMat matrix (see PDMats.jl), with the Cholesky decomposition precomputed. The algorithm adds a diagonal "nugget" term to the kernel matrix which is increased until positive definiteness is achieved. The algorithm gives up with an error if the nugget becomes larger than 1% of the largest value in the kernel matrix.

source
kernelpdmat(k::Kernel, X::AbstractMatrix; obsdim)

If obsdim=1, equivalent to kernelpdmat(k, RowVecs(X)). If obsdim=2, equivalent to kernelpdmat(k, ColVecs(X)).

See also: ColVecs, RowVecs

source
diff --git a/v0.10.59/assets/documenter.js b/v0.10.59/assets/documenter.js new file mode 100644 index 000000000..6adfbbbf4 --- /dev/null +++ b/v0.10.59/assets/documenter.js @@ -0,0 +1,331 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia.min', + 'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/headroom.min', + 'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min', + 'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/contrib/auto-render.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + 'headroom-jquery': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/jQuery.headroom.min', + 'katex': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/katex.min', + 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/highlight.min', + 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia-repl.min', + }, + shim: { + "highlight-julia": { + "deps": [ + "highlight" + ] + }, + "katex-auto-render": { + "deps": [ + "katex" + ] + }, + "headroom-jquery": { + "deps": [ + "jquery", + "headroom" + ] + }, + "highlight-julia-repl": { + "deps": [ + "highlight" + ] + } +} +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'katex', 'katex-auto-render'], function($, katex, renderMathInElement) { +$(document).ready(function() { + renderMathInElement( + document.body, + { + "delimiters": [ + { + "left": "$", + "right": "$", + "display": false + }, + { + "left": "$$", + "right": "$$", + "display": true + }, + { + "left": "\\[", + "right": "\\]", + "display": true + } + ] +} + + ); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'highlight', 'highlight-julia', 'highlight-julia-repl'], function($) { +$(document).ready(function() { + hljs.highlightAll(); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require([], function() { +function addCopyButtonCallbacks() { + for (const el of document.getElementsByTagName("pre")) { + const button = document.createElement("button"); + button.classList.add("copy-button", "fas", "fa-copy"); + el.appendChild(button); + + const success = function () { + button.classList.add("success", "fa-check"); + button.classList.remove("fa-copy"); + }; + + const failure = function () { + button.classList.add("error", "fa-times"); + button.classList.remove("fa-copy"); + }; + + button.addEventListener("click", function () { + copyToClipboard(el.innerText).then(success, failure); + + setTimeout(function () { + button.classList.add("fa-copy"); + button.classList.remove("success", "fa-check", "fa-times"); + }, 5000); + }); + } +} + +function copyToClipboard(text) { + // clipboard API is only available in secure contexts + if (window.navigator && window.navigator.clipboard) { + return window.navigator.clipboard.writeText(text); + } else { + return new Promise(function (resolve, reject) { + try { + const el = document.createElement("textarea"); + el.textContent = text; + el.style.position = "fixed"; + el.style.opacity = 0; + document.body.appendChild(el); + el.select(); + document.execCommand("copy"); + + resolve(); + } catch (err) { + reject(err); + } finally { + document.body.removeChild(el); + } + }); + } +} + +if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", addCopyButtonCallbacks); +} else { + addCopyButtonCallbacks(); +} + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'headroom', 'headroom-jquery'], function($, Headroom) { + +// Manages the top navigation bar (hides it when the user starts scrolling down on the +// mobile). +window.Headroom = Headroom; // work around buggy module loading? +$(document).ready(function() { + $('#documenter .docs-navbar').headroom({ + "tolerance": {"up": 10, "down": 10}, + }); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Modal settings dialog +$(document).ready(function() { + var settings = $('#documenter-settings'); + $('#documenter-settings-button').click(function(){ + settings.toggleClass('is-active'); + }); + // Close the dialog if X is clicked + $('#documenter-settings button.delete').click(function(){ + settings.removeClass('is-active'); + }); + // Close dialog if ESC is pressed + $(document).keyup(function(e) { + if (e.keyCode == 27) settings.removeClass('is-active'); + }); +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Manages the showing and hiding of the sidebar. +$(document).ready(function() { + var sidebar = $("#documenter > .docs-sidebar"); + var sidebar_button = $("#documenter-sidebar-button") + sidebar_button.click(function(ev) { + ev.preventDefault(); + sidebar.toggleClass('visible'); + if (sidebar.hasClass('visible')) { + // Makes sure that the current menu item is visible in the sidebar. + $("#documenter .docs-menu a.is-active").focus(); + } + }); + $("#documenter > .docs-main").bind('click', function(ev) { + if ($(ev.target).is(sidebar_button)) { + return; + } + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + }); +}) + +// Resizes the package name / sitename in the sidebar if it is too wide. +// Inspired by: https://github.com/davatron5000/FitText.js +$(document).ready(function() { + e = $("#documenter .docs-autofit"); + function resize() { + var L = parseInt(e.css('max-width'), 10); + var L0 = e.width(); + if(L0 > L) { + var h0 = parseInt(e.css('font-size'), 10); + e.css('font-size', L * h0 / L0); + // TODO: make sure it survives resizes? + } + } + // call once and then register events + resize(); + $(window).resize(resize); + $(window).on('orientationchange', resize); +}); + +// Scroll the navigation bar to the currently selected menu item +$(document).ready(function() { + var sidebar = $("#documenter .docs-menu").get(0); + var active = $("#documenter .docs-menu .is-active").get(0); + if(typeof active !== 'undefined') { + sidebar.scrollTop = active.offsetTop - sidebar.offsetTop - 15; + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +function set_theme(theme) { + var active = null; + var disabled = []; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + var themename = ss.ownerNode.getAttribute("data-theme-name"); + if(themename === null) continue; // ignore non-theme stylesheets + // Find the active theme + if(themename === theme) active = ss; + else disabled.push(ss); + } + if(active !== null) { + active.disabled = false; + if(active.ownerNode.getAttribute("data-theme-primary") === null) { + document.getElementsByTagName('html')[0].className = "theme--" + theme; + } else { + document.getElementsByTagName('html')[0].className = ""; + } + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + + // Store the theme in localStorage + if(typeof(window.localStorage) !== "undefined") { + window.localStorage.setItem("documenter-theme", theme); + } else { + console.error("Browser does not support window.localStorage"); + } +} + +// Theme picker setup +$(document).ready(function() { + // onchange callback + $('#documenter-themepicker').change(function themepick_callback(ev){ + var themename = $('#documenter-themepicker option:selected').attr('value'); + set_theme(themename); + }); + + // Make sure that the themepicker displays the correct theme when the theme is retrieved + // from localStorage + if(typeof(window.localStorage) !== "undefined") { + var theme = window.localStorage.getItem("documenter-theme"); + if(theme !== null) { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = (e.value === theme); + }) + } else { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = $("html").hasClass(`theme--${e.value}`); + }) + } + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// update the version selector with info from the siteinfo.js and ../versions.js files +$(document).ready(function() { + // If the version selector is disabled with DOCUMENTER_VERSION_SELECTOR_DISABLED in the + // siteinfo.js file, we just return immediately and not display the version selector. + if (typeof DOCUMENTER_VERSION_SELECTOR_DISABLED === 'boolean' && DOCUMENTER_VERSION_SELECTOR_DISABLED) { + return; + } + + var version_selector = $("#documenter .docs-version-selector"); + var version_selector_select = $("#documenter .docs-version-selector select"); + + version_selector_select.change(function(x) { + target_href = version_selector_select.children("option:selected").get(0).value; + window.location.href = target_href; + }); + + // add the current version to the selector based on siteinfo.js, but only if the selector is empty + if (typeof DOCUMENTER_CURRENT_VERSION !== 'undefined' && $('#version-selector > option').length == 0) { + var option = $(""); + version_selector_select.append(option); + } + + if (typeof DOC_VERSIONS !== 'undefined') { + var existing_versions = version_selector_select.children("option"); + var existing_versions_texts = existing_versions.map(function(i,x){return x.text}); + DOC_VERSIONS.forEach(function(each) { + var version_url = documenterBaseURL + "/../" + each; + var existing_id = $.inArray(each, existing_versions_texts); + // if not already in the version selector, add it as a new option, + // otherwise update the old option with the URL and enable it + if (existing_id == -1) { + var option = $(""); + version_selector_select.append(option); + } else { + var option = existing_versions[existing_id]; + option.value = version_url; + option.disabled = false; + } + }); + } + + // only show the version selector if the selector has been populated + if (version_selector_select.children("option").length > 0) { + version_selector.toggleClass("visible"); + } +}) + +}) diff --git a/v0.10.59/assets/heatmap_combination.png b/v0.10.59/assets/heatmap_combination.png new file mode 100644 index 000000000..06d7a8590 Binary files /dev/null and b/v0.10.59/assets/heatmap_combination.png differ diff --git a/v0.10.59/assets/heatmap_matern.png b/v0.10.59/assets/heatmap_matern.png new file mode 100644 index 000000000..458bb8f1a Binary files /dev/null and b/v0.10.59/assets/heatmap_matern.png differ diff --git a/v0.10.59/assets/heatmap_poly.png b/v0.10.59/assets/heatmap_poly.png new file mode 100644 index 000000000..27323064a Binary files /dev/null and b/v0.10.59/assets/heatmap_poly.png differ diff --git a/v0.10.59/assets/heatmap_prodsum.png b/v0.10.59/assets/heatmap_prodsum.png new file mode 100644 index 000000000..6142ad98d Binary files /dev/null and b/v0.10.59/assets/heatmap_prodsum.png differ diff --git a/v0.10.59/assets/heatmap_sqexp.png b/v0.10.59/assets/heatmap_sqexp.png new file mode 100644 index 000000000..b9964c989 Binary files /dev/null and b/v0.10.59/assets/heatmap_sqexp.png differ diff --git a/v0.10.59/assets/search.js b/v0.10.59/assets/search.js new file mode 100644 index 000000000..c133f7410 --- /dev/null +++ b/v0.10.59/assets/search.js @@ -0,0 +1,267 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'lunr': 'https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.9/lunr.min', + 'lodash': 'https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/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, page: e.page} + }) + + $(function(){ + searchresults = $('#documenter-search-results'); + searchinfo = $('#documenter-search-info'); + searchbox = $('#documenter-search-query'); + searchform = $('.docs-search'); + sidebar = $('.docs-sidebar'); + function update_search(querystring) { + tokens = lunr.tokenizer(querystring) + results = index.query(function (q) { + tokens.forEach(function (t) { + q.term(t.toString(), { + fields: ["title"], + boost: 100, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["title"], + boost: 10, + usePipeline: true, + editDistance: 2, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["text"], + boost: 1, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + }) + }) + searchinfo.text("Number of results: " + results.length) + searchresults.empty() + results.forEach(function(result) { + data = store[result.ref] + link = $(''+data.title+'') + link.attr('href', documenterBaseURL+'/'+result.ref) + if (data.category != "page"){ + cat = $('('+data.category+', '+data.page+')') + } else { + cat = $('('+data.category+')') + } + li = $('
  • ').append(link).append(" ").append(cat) + searchresults.append(li) + }) + } + + function update_search_box() { + querystring = searchbox.val() + update_search(querystring) + } + + searchbox.keyup(_.debounce(update_search_box, 250)) + searchbox.change(update_search_box) + + // Disable enter-key form submission for the searchbox on the search page + // and just re-run search rather than refresh the whole page. + searchform.keypress( + function(event){ + if (event.which == '13') { + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + update_search_box(); + event.preventDefault(); + } + } + ); + + search_query_uri = parseUri(window.location).queryKey["q"] + if(search_query_uri !== undefined) { + search_query = decodeURIComponent(search_query_uri.replace(/\+/g, '%20')) + searchbox.val(search_query) + } + update_search_box(); + }) +}) + +}) diff --git a/v0.10.59/assets/themes/documenter-dark.css b/v0.10.59/assets/themes/documenter-dark.css new file mode 100644 index 000000000..c94a294dc --- /dev/null +++ b/v0.10.59/assets/themes/documenter-dark.css @@ -0,0 +1,7 @@ +@keyframes spinAround{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}html.theme--documenter-dark .tabs,html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .breadcrumb,html.theme--documenter-dark .file,html.theme--documenter-dark .button,.is-unselectable,html.theme--documenter-dark .modal-close,html.theme--documenter-dark .delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after,html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after{border:3px solid rgba(0,0,0,0);border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:0.625em;margin-top:-0.4375em;pointer-events:none;position:absolute;top:50%;transform:rotate(-45deg);transform-origin:center;width:0.625em}html.theme--documenter-dark .admonition:not(:last-child),html.theme--documenter-dark .tabs:not(:last-child),html.theme--documenter-dark .message:not(:last-child),html.theme--documenter-dark .list:not(:last-child),html.theme--documenter-dark .level:not(:last-child),html.theme--documenter-dark .breadcrumb:not(:last-child),html.theme--documenter-dark .highlight:not(:last-child),html.theme--documenter-dark .block:not(:last-child),html.theme--documenter-dark .title:not(:last-child),html.theme--documenter-dark .subtitle:not(:last-child),html.theme--documenter-dark .table-container:not(:last-child),html.theme--documenter-dark .table:not(:last-child),html.theme--documenter-dark .progress:not(:last-child),html.theme--documenter-dark .notification:not(:last-child),html.theme--documenter-dark .content:not(:last-child),html.theme--documenter-dark .box:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .modal-close,html.theme--documenter-dark .delete{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:290486px;cursor:pointer;pointer-events:auto;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:none;position:relative;vertical-align:top;width:20px}html.theme--documenter-dark .modal-close::before,html.theme--documenter-dark .delete::before,html.theme--documenter-dark .modal-close::after,html.theme--documenter-dark .delete::after{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}html.theme--documenter-dark .modal-close::before,html.theme--documenter-dark .delete::before{height:2px;width:50%}html.theme--documenter-dark .modal-close::after,html.theme--documenter-dark .delete::after{height:50%;width:2px}html.theme--documenter-dark .modal-close:hover,html.theme--documenter-dark .delete:hover,html.theme--documenter-dark .modal-close:focus,html.theme--documenter-dark .delete:focus{background-color:rgba(10,10,10,0.3)}html.theme--documenter-dark .modal-close:active,html.theme--documenter-dark .delete:active{background-color:rgba(10,10,10,0.4)}html.theme--documenter-dark .is-small.modal-close,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.modal-close,html.theme--documenter-dark .is-small.delete,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.delete{height:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px;width:16px}html.theme--documenter-dark .is-medium.modal-close,html.theme--documenter-dark .is-medium.delete{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}html.theme--documenter-dark .is-large.modal-close,html.theme--documenter-dark .is-large.delete{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}html.theme--documenter-dark .control.is-loading::after,html.theme--documenter-dark .select.is-loading::after,html.theme--documenter-dark .loader,html.theme--documenter-dark .button.is-loading::after{animation:spinAround 500ms infinite linear;border:2px solid #dbdee0;border-radius:290486px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}html.theme--documenter-dark .hero-video,html.theme--documenter-dark .modal-background,html.theme--documenter-dark .modal,html.theme--documenter-dark .image.is-square img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square img,html.theme--documenter-dark .image.is-square .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,html.theme--documenter-dark .image.is-1by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 img,html.theme--documenter-dark .image.is-1by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,html.theme--documenter-dark .image.is-5by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 img,html.theme--documenter-dark .image.is-5by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,html.theme--documenter-dark .image.is-4by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 img,html.theme--documenter-dark .image.is-4by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,html.theme--documenter-dark .image.is-3by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 img,html.theme--documenter-dark .image.is-3by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,html.theme--documenter-dark .image.is-5by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 img,html.theme--documenter-dark .image.is-5by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,html.theme--documenter-dark .image.is-16by9 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 img,html.theme--documenter-dark .image.is-16by9 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,html.theme--documenter-dark .image.is-2by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 img,html.theme--documenter-dark .image.is-2by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,html.theme--documenter-dark .image.is-3by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 img,html.theme--documenter-dark .image.is-3by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,html.theme--documenter-dark .image.is-4by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 img,html.theme--documenter-dark .image.is-4by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,html.theme--documenter-dark .image.is-3by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 img,html.theme--documenter-dark .image.is-3by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,html.theme--documenter-dark .image.is-2by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 img,html.theme--documenter-dark .image.is-2by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,html.theme--documenter-dark .image.is-3by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 img,html.theme--documenter-dark .image.is-3by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,html.theme--documenter-dark .image.is-9by16 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 img,html.theme--documenter-dark .image.is-9by16 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,html.theme--documenter-dark .image.is-1by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 img,html.theme--documenter-dark .image.is-1by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,html.theme--documenter-dark .image.is-1by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 img,html.theme--documenter-dark .image.is-1by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio,.is-overlay{bottom:0;left:0;position:absolute;right:0;top:0}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .file-cta,html.theme--documenter-dark .file-name,html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .button{-moz-appearance:none;-webkit-appearance:none;align-items:center;border:1px solid transparent;border-radius:.4em;box-shadow:none;display:inline-flex;font-size:15px;height:2.25em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(0.375em - 1px);padding-left:calc(0.625em - 1px);padding-right:calc(0.625em - 1px);padding-top:calc(0.375em - 1px);position:relative;vertical-align:top}html.theme--documenter-dark .pagination-previous:focus,html.theme--documenter-dark .pagination-next:focus,html.theme--documenter-dark .pagination-link:focus,html.theme--documenter-dark .pagination-ellipsis:focus,html.theme--documenter-dark .file-cta:focus,html.theme--documenter-dark .file-name:focus,html.theme--documenter-dark .select select:focus,html.theme--documenter-dark .textarea:focus,html.theme--documenter-dark .input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:focus,html.theme--documenter-dark .button:focus,html.theme--documenter-dark .is-focused.pagination-previous,html.theme--documenter-dark .is-focused.pagination-next,html.theme--documenter-dark .is-focused.pagination-link,html.theme--documenter-dark .is-focused.pagination-ellipsis,html.theme--documenter-dark .is-focused.file-cta,html.theme--documenter-dark .is-focused.file-name,html.theme--documenter-dark .select select.is-focused,html.theme--documenter-dark .is-focused.textarea,html.theme--documenter-dark .is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-focused.button,html.theme--documenter-dark .pagination-previous:active,html.theme--documenter-dark .pagination-next:active,html.theme--documenter-dark .pagination-link:active,html.theme--documenter-dark .pagination-ellipsis:active,html.theme--documenter-dark .file-cta:active,html.theme--documenter-dark .file-name:active,html.theme--documenter-dark .select select:active,html.theme--documenter-dark .textarea:active,html.theme--documenter-dark .input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:active,html.theme--documenter-dark .button:active,html.theme--documenter-dark .is-active.pagination-previous,html.theme--documenter-dark .is-active.pagination-next,html.theme--documenter-dark .is-active.pagination-link,html.theme--documenter-dark .is-active.pagination-ellipsis,html.theme--documenter-dark .is-active.file-cta,html.theme--documenter-dark .is-active.file-name,html.theme--documenter-dark .select select.is-active,html.theme--documenter-dark .is-active.textarea,html.theme--documenter-dark .is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .is-active.button{outline:none}html.theme--documenter-dark .pagination-previous[disabled],html.theme--documenter-dark .pagination-next[disabled],html.theme--documenter-dark .pagination-link[disabled],html.theme--documenter-dark .pagination-ellipsis[disabled],html.theme--documenter-dark .file-cta[disabled],html.theme--documenter-dark .file-name[disabled],html.theme--documenter-dark .select select[disabled],html.theme--documenter-dark .textarea[disabled],html.theme--documenter-dark .input[disabled],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled],html.theme--documenter-dark .button[disabled],fieldset[disabled] html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark fieldset[disabled] .pagination-previous,fieldset[disabled] html.theme--documenter-dark .pagination-next,html.theme--documenter-dark fieldset[disabled] .pagination-next,fieldset[disabled] html.theme--documenter-dark .pagination-link,html.theme--documenter-dark fieldset[disabled] .pagination-link,fieldset[disabled] html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark fieldset[disabled] .pagination-ellipsis,fieldset[disabled] html.theme--documenter-dark .file-cta,html.theme--documenter-dark fieldset[disabled] .file-cta,fieldset[disabled] html.theme--documenter-dark .file-name,html.theme--documenter-dark fieldset[disabled] .file-name,fieldset[disabled] html.theme--documenter-dark .select select,fieldset[disabled] html.theme--documenter-dark .textarea,fieldset[disabled] html.theme--documenter-dark .input,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark fieldset[disabled] .select select,html.theme--documenter-dark .select fieldset[disabled] select,html.theme--documenter-dark fieldset[disabled] .textarea,html.theme--documenter-dark fieldset[disabled] .input,html.theme--documenter-dark fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar fieldset[disabled] form.docs-search>input,fieldset[disabled] html.theme--documenter-dark .button,html.theme--documenter-dark fieldset[disabled] .button{cursor:not-allowed}/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */html,body,p,ol,ul,li,dl,dt,dd,blockquote,figure,fieldset,legend,textarea,pre,iframe,hr,h1,h2,h3,h4,h5,h6{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}img,embed,iframe,object,video{height:auto;max-width:100%}audio{max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:left}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left !important}.is-pulled-right{float:right !important}.is-clipped{overflow:hidden !important}.is-size-1{font-size:3rem !important}.is-size-2{font-size:2.5rem !important}.is-size-3{font-size:2rem !important}.is-size-4{font-size:1.5rem !important}.is-size-5{font-size:1.25rem !important}.is-size-6{font-size:15px !important}.is-size-7,html.theme--documenter-dark .docstring>section>a.docs-sourcelink{font-size:.85em !important}@media screen and (max-width: 768px){.is-size-1-mobile{font-size:3rem !important}.is-size-2-mobile{font-size:2.5rem !important}.is-size-3-mobile{font-size:2rem !important}.is-size-4-mobile{font-size:1.5rem !important}.is-size-5-mobile{font-size:1.25rem !important}.is-size-6-mobile{font-size:15px !important}.is-size-7-mobile{font-size:.85em !important}}@media screen and (min-width: 769px),print{.is-size-1-tablet{font-size:3rem !important}.is-size-2-tablet{font-size:2.5rem !important}.is-size-3-tablet{font-size:2rem !important}.is-size-4-tablet{font-size:1.5rem !important}.is-size-5-tablet{font-size:1.25rem !important}.is-size-6-tablet{font-size:15px !important}.is-size-7-tablet{font-size:.85em !important}}@media screen and (max-width: 1055px){.is-size-1-touch{font-size:3rem !important}.is-size-2-touch{font-size:2.5rem !important}.is-size-3-touch{font-size:2rem !important}.is-size-4-touch{font-size:1.5rem !important}.is-size-5-touch{font-size:1.25rem !important}.is-size-6-touch{font-size:15px !important}.is-size-7-touch{font-size:.85em !important}}@media screen and (min-width: 1056px){.is-size-1-desktop{font-size:3rem !important}.is-size-2-desktop{font-size:2.5rem !important}.is-size-3-desktop{font-size:2rem !important}.is-size-4-desktop{font-size:1.5rem !important}.is-size-5-desktop{font-size:1.25rem !important}.is-size-6-desktop{font-size:15px !important}.is-size-7-desktop{font-size:.85em !important}}@media screen and (min-width: 1216px){.is-size-1-widescreen{font-size:3rem !important}.is-size-2-widescreen{font-size:2.5rem !important}.is-size-3-widescreen{font-size:2rem !important}.is-size-4-widescreen{font-size:1.5rem !important}.is-size-5-widescreen{font-size:1.25rem !important}.is-size-6-widescreen{font-size:15px !important}.is-size-7-widescreen{font-size:.85em !important}}@media screen and (min-width: 1408px){.is-size-1-fullhd{font-size:3rem !important}.is-size-2-fullhd{font-size:2.5rem !important}.is-size-3-fullhd{font-size:2rem !important}.is-size-4-fullhd{font-size:1.5rem !important}.is-size-5-fullhd{font-size:1.25rem !important}.is-size-6-fullhd{font-size:15px !important}.is-size-7-fullhd{font-size:.85em !important}}.has-text-centered{text-align:center !important}.has-text-justified{text-align:justify !important}.has-text-left{text-align:left !important}.has-text-right{text-align:right !important}@media screen and (max-width: 768px){.has-text-centered-mobile{text-align:center !important}}@media screen and (min-width: 769px),print{.has-text-centered-tablet{text-align:center !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-centered-tablet-only{text-align:center !important}}@media screen and (max-width: 1055px){.has-text-centered-touch{text-align:center !important}}@media screen and (min-width: 1056px){.has-text-centered-desktop{text-align:center !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-centered-desktop-only{text-align:center !important}}@media screen and (min-width: 1216px){.has-text-centered-widescreen{text-align:center !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-centered-widescreen-only{text-align:center !important}}@media screen and (min-width: 1408px){.has-text-centered-fullhd{text-align:center !important}}@media screen and (max-width: 768px){.has-text-justified-mobile{text-align:justify !important}}@media screen and (min-width: 769px),print{.has-text-justified-tablet{text-align:justify !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-justified-tablet-only{text-align:justify !important}}@media screen and (max-width: 1055px){.has-text-justified-touch{text-align:justify !important}}@media screen and (min-width: 1056px){.has-text-justified-desktop{text-align:justify !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-justified-desktop-only{text-align:justify !important}}@media screen and (min-width: 1216px){.has-text-justified-widescreen{text-align:justify !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-justified-widescreen-only{text-align:justify !important}}@media screen and (min-width: 1408px){.has-text-justified-fullhd{text-align:justify !important}}@media screen and (max-width: 768px){.has-text-left-mobile{text-align:left !important}}@media screen and (min-width: 769px),print{.has-text-left-tablet{text-align:left !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-left-tablet-only{text-align:left !important}}@media screen and (max-width: 1055px){.has-text-left-touch{text-align:left !important}}@media screen and (min-width: 1056px){.has-text-left-desktop{text-align:left !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-left-desktop-only{text-align:left !important}}@media screen and (min-width: 1216px){.has-text-left-widescreen{text-align:left !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-left-widescreen-only{text-align:left !important}}@media screen and (min-width: 1408px){.has-text-left-fullhd{text-align:left !important}}@media screen and (max-width: 768px){.has-text-right-mobile{text-align:right !important}}@media screen and (min-width: 769px),print{.has-text-right-tablet{text-align:right !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-right-tablet-only{text-align:right !important}}@media screen and (max-width: 1055px){.has-text-right-touch{text-align:right !important}}@media screen and (min-width: 1056px){.has-text-right-desktop{text-align:right !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-right-desktop-only{text-align:right !important}}@media screen and (min-width: 1216px){.has-text-right-widescreen{text-align:right !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-right-widescreen-only{text-align:right !important}}@media screen and (min-width: 1408px){.has-text-right-fullhd{text-align:right !important}}.is-capitalized{text-transform:capitalize !important}.is-lowercase{text-transform:lowercase !important}.is-uppercase{text-transform:uppercase !important}.is-italic{font-style:italic !important}.has-text-white{color:#fff !important}a.has-text-white:hover,a.has-text-white:focus{color:#e6e6e6 !important}.has-background-white{background-color:#fff !important}.has-text-black{color:#0a0a0a !important}a.has-text-black:hover,a.has-text-black:focus{color:#000 !important}.has-background-black{background-color:#0a0a0a !important}.has-text-light{color:#ecf0f1 !important}a.has-text-light:hover,a.has-text-light:focus{color:#cfd9db !important}.has-background-light{background-color:#ecf0f1 !important}.has-text-dark{color:#282f2f !important}a.has-text-dark:hover,a.has-text-dark:focus{color:#111414 !important}.has-background-dark{background-color:#282f2f !important}.has-text-primary{color:#375a7f !important}a.has-text-primary:hover,a.has-text-primary:focus{color:#28415b !important}.has-background-primary{background-color:#375a7f !important}.has-text-link{color:#1abc9c !important}a.has-text-link:hover,a.has-text-link:focus{color:#148f77 !important}.has-background-link{background-color:#1abc9c !important}.has-text-info{color:#024c7d !important}a.has-text-info:hover,a.has-text-info:focus{color:#012d4b !important}.has-background-info{background-color:#024c7d !important}.has-text-success{color:#008438 !important}a.has-text-success:hover,a.has-text-success:focus{color:#005122 !important}.has-background-success{background-color:#008438 !important}.has-text-warning{color:#ad8100 !important}a.has-text-warning:hover,a.has-text-warning:focus{color:#7a5b00 !important}.has-background-warning{background-color:#ad8100 !important}.has-text-danger{color:#9e1b0d !important}a.has-text-danger:hover,a.has-text-danger:focus{color:#6f1309 !important}.has-background-danger{background-color:#9e1b0d !important}.has-text-black-bis{color:#121212 !important}.has-background-black-bis{background-color:#121212 !important}.has-text-black-ter{color:#242424 !important}.has-background-black-ter{background-color:#242424 !important}.has-text-grey-darker{color:#282f2f !important}.has-background-grey-darker{background-color:#282f2f !important}.has-text-grey-dark{color:#343c3d !important}.has-background-grey-dark{background-color:#343c3d !important}.has-text-grey{color:#5e6d6f !important}.has-background-grey{background-color:#5e6d6f !important}.has-text-grey-light{color:#8c9b9d !important}.has-background-grey-light{background-color:#8c9b9d !important}.has-text-grey-lighter{color:#dbdee0 !important}.has-background-grey-lighter{background-color:#dbdee0 !important}.has-text-white-ter{color:#ecf0f1 !important}.has-background-white-ter{background-color:#ecf0f1 !important}.has-text-white-bis{color:#fafafa !important}.has-background-white-bis{background-color:#fafafa !important}.has-text-weight-light{font-weight:300 !important}.has-text-weight-normal{font-weight:400 !important}.has-text-weight-medium{font-weight:500 !important}.has-text-weight-semibold{font-weight:600 !important}.has-text-weight-bold{font-weight:700 !important}.is-family-primary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-secondary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-sans-serif{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-monospace{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-family-code{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-block{display:block !important}@media screen and (max-width: 768px){.is-block-mobile{display:block !important}}@media screen and (min-width: 769px),print{.is-block-tablet{display:block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-block-tablet-only{display:block !important}}@media screen and (max-width: 1055px){.is-block-touch{display:block !important}}@media screen and (min-width: 1056px){.is-block-desktop{display:block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-block-desktop-only{display:block !important}}@media screen and (min-width: 1216px){.is-block-widescreen{display:block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-block-widescreen-only{display:block !important}}@media screen and (min-width: 1408px){.is-block-fullhd{display:block !important}}.is-flex{display:flex !important}@media screen and (max-width: 768px){.is-flex-mobile{display:flex !important}}@media screen and (min-width: 769px),print{.is-flex-tablet{display:flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-flex-tablet-only{display:flex !important}}@media screen and (max-width: 1055px){.is-flex-touch{display:flex !important}}@media screen and (min-width: 1056px){.is-flex-desktop{display:flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-flex-desktop-only{display:flex !important}}@media screen and (min-width: 1216px){.is-flex-widescreen{display:flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-flex-widescreen-only{display:flex !important}}@media screen and (min-width: 1408px){.is-flex-fullhd{display:flex !important}}.is-inline{display:inline !important}@media screen and (max-width: 768px){.is-inline-mobile{display:inline !important}}@media screen and (min-width: 769px),print{.is-inline-tablet{display:inline !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-tablet-only{display:inline !important}}@media screen and (max-width: 1055px){.is-inline-touch{display:inline !important}}@media screen and (min-width: 1056px){.is-inline-desktop{display:inline !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-desktop-only{display:inline !important}}@media screen and (min-width: 1216px){.is-inline-widescreen{display:inline !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-widescreen-only{display:inline !important}}@media screen and (min-width: 1408px){.is-inline-fullhd{display:inline !important}}.is-inline-block{display:inline-block !important}@media screen and (max-width: 768px){.is-inline-block-mobile{display:inline-block !important}}@media screen and (min-width: 769px),print{.is-inline-block-tablet{display:inline-block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-block-tablet-only{display:inline-block !important}}@media screen and (max-width: 1055px){.is-inline-block-touch{display:inline-block !important}}@media screen and (min-width: 1056px){.is-inline-block-desktop{display:inline-block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-block-desktop-only{display:inline-block !important}}@media screen and (min-width: 1216px){.is-inline-block-widescreen{display:inline-block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-block-widescreen-only{display:inline-block !important}}@media screen and (min-width: 1408px){.is-inline-block-fullhd{display:inline-block !important}}.is-inline-flex{display:inline-flex !important}@media screen and (max-width: 768px){.is-inline-flex-mobile{display:inline-flex !important}}@media screen and (min-width: 769px),print{.is-inline-flex-tablet{display:inline-flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-flex-tablet-only{display:inline-flex !important}}@media screen and (max-width: 1055px){.is-inline-flex-touch{display:inline-flex !important}}@media screen and (min-width: 1056px){.is-inline-flex-desktop{display:inline-flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-flex-desktop-only{display:inline-flex !important}}@media screen and (min-width: 1216px){.is-inline-flex-widescreen{display:inline-flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-flex-widescreen-only{display:inline-flex !important}}@media screen and (min-width: 1408px){.is-inline-flex-fullhd{display:inline-flex !important}}.is-hidden{display:none !important}.is-sr-only{border:none !important;clip:rect(0, 0, 0, 0) !important;height:0.01em !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:0.01em !important}@media screen and (max-width: 768px){.is-hidden-mobile{display:none !important}}@media screen and (min-width: 769px),print{.is-hidden-tablet{display:none !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-hidden-tablet-only{display:none !important}}@media screen and (max-width: 1055px){.is-hidden-touch{display:none !important}}@media screen and (min-width: 1056px){.is-hidden-desktop{display:none !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-hidden-desktop-only{display:none !important}}@media screen and (min-width: 1216px){.is-hidden-widescreen{display:none !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-hidden-widescreen-only{display:none !important}}@media screen and (min-width: 1408px){.is-hidden-fullhd{display:none !important}}.is-invisible{visibility:hidden !important}@media screen and (max-width: 768px){.is-invisible-mobile{visibility:hidden !important}}@media screen and (min-width: 769px),print{.is-invisible-tablet{visibility:hidden !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-invisible-tablet-only{visibility:hidden !important}}@media screen and (max-width: 1055px){.is-invisible-touch{visibility:hidden !important}}@media screen and (min-width: 1056px){.is-invisible-desktop{visibility:hidden !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-invisible-desktop-only{visibility:hidden !important}}@media screen and (min-width: 1216px){.is-invisible-widescreen{visibility:hidden !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-invisible-widescreen-only{visibility:hidden !important}}@media screen and (min-width: 1408px){.is-invisible-fullhd{visibility:hidden !important}}.is-marginless{margin:0 !important}.is-paddingless{padding:0 !important}.is-radiusless{border-radius:0 !important}.is-shadowless{box-shadow:none !important}.is-relative{position:relative !important}html.theme--documenter-dark{/*! + Theme: a11y-dark + Author: @ericwbailey + Maintainer: @ericwbailey + + Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css +*/}html.theme--documenter-dark html{background-color:#1f2424;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}html.theme--documenter-dark article,html.theme--documenter-dark aside,html.theme--documenter-dark figure,html.theme--documenter-dark footer,html.theme--documenter-dark header,html.theme--documenter-dark hgroup,html.theme--documenter-dark section{display:block}html.theme--documenter-dark body,html.theme--documenter-dark button,html.theme--documenter-dark input,html.theme--documenter-dark select,html.theme--documenter-dark textarea{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif}html.theme--documenter-dark code,html.theme--documenter-dark pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}html.theme--documenter-dark body{color:#fff;font-size:1em;font-weight:400;line-height:1.5}html.theme--documenter-dark a{color:#1abc9c;cursor:pointer;text-decoration:none}html.theme--documenter-dark a strong{color:currentColor}html.theme--documenter-dark a:hover{color:#1dd2af}html.theme--documenter-dark code{background-color:rgba(255,255,255,0.05);color:#ececec;font-size:.875em;font-weight:normal;padding:.1em}html.theme--documenter-dark hr{background-color:#282f2f;border:none;display:block;height:2px;margin:1.5rem 0}html.theme--documenter-dark img{height:auto;max-width:100%}html.theme--documenter-dark input[type="checkbox"],html.theme--documenter-dark input[type="radio"]{vertical-align:baseline}html.theme--documenter-dark small{font-size:.875em}html.theme--documenter-dark span{font-style:inherit;font-weight:inherit}html.theme--documenter-dark strong{color:#f2f2f2;font-weight:700}html.theme--documenter-dark fieldset{border:none}html.theme--documenter-dark pre{-webkit-overflow-scrolling:touch;background-color:#282f2f;color:#fff;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}html.theme--documenter-dark pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}html.theme--documenter-dark table td,html.theme--documenter-dark table th{vertical-align:top}html.theme--documenter-dark table td:not([align]),html.theme--documenter-dark table th:not([align]){text-align:left}html.theme--documenter-dark table th{color:#f2f2f2}html.theme--documenter-dark .box{background-color:#343c3d;border-radius:8px;box-shadow:none;color:#fff;display:block;padding:1.25rem}html.theme--documenter-dark a.box:hover,html.theme--documenter-dark a.box:focus{box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px #1abc9c}html.theme--documenter-dark a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2),0 0 0 1px #1abc9c}html.theme--documenter-dark .button{background-color:#282f2f;border-color:#4c5759;border-width:1px;color:#375a7f;cursor:pointer;justify-content:center;padding-bottom:calc(0.375em - 1px);padding-left:.75em;padding-right:.75em;padding-top:calc(0.375em - 1px);text-align:center;white-space:nowrap}html.theme--documenter-dark .button strong{color:inherit}html.theme--documenter-dark .button .icon,html.theme--documenter-dark .button .icon.is-small,html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search>input.icon,html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search>input.icon,html.theme--documenter-dark .button .icon.is-medium,html.theme--documenter-dark .button .icon.is-large{height:1.5em;width:1.5em}html.theme--documenter-dark .button .icon:first-child:not(:last-child){margin-left:calc(-0.375em - 1px);margin-right:0.1875em}html.theme--documenter-dark .button .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:calc(-0.375em - 1px)}html.theme--documenter-dark .button .icon:first-child:last-child{margin-left:calc(-0.375em - 1px);margin-right:calc(-0.375em - 1px)}html.theme--documenter-dark .button:hover,html.theme--documenter-dark .button.is-hovered{border-color:#8c9b9d;color:#f2f2f2}html.theme--documenter-dark .button:focus,html.theme--documenter-dark .button.is-focused{border-color:#8c9b9d;color:#17a689}html.theme--documenter-dark .button:focus:not(:active),html.theme--documenter-dark .button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .button:active,html.theme--documenter-dark .button.is-active{border-color:#343c3d;color:#f2f2f2}html.theme--documenter-dark .button.is-text{background-color:transparent;border-color:transparent;color:#fff;text-decoration:underline}html.theme--documenter-dark .button.is-text:hover,html.theme--documenter-dark .button.is-text.is-hovered,html.theme--documenter-dark .button.is-text:focus,html.theme--documenter-dark .button.is-text.is-focused{background-color:#282f2f;color:#f2f2f2}html.theme--documenter-dark .button.is-text:active,html.theme--documenter-dark .button.is-text.is-active{background-color:#1d2122;color:#f2f2f2}html.theme--documenter-dark .button.is-text[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-text{background-color:transparent;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:hover,html.theme--documenter-dark .button.is-white.is-hovered{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:focus,html.theme--documenter-dark .button.is-white.is-focused{border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:focus:not(:active),html.theme--documenter-dark .button.is-white.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .button.is-white:active,html.theme--documenter-dark .button.is-white.is-active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white{background-color:#fff;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted:hover,html.theme--documenter-dark .button.is-white.is-inverted.is-hovered{background-color:#000}html.theme--documenter-dark .button.is-white.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-white.is-outlined:hover,html.theme--documenter-dark .button.is-white.is-outlined.is-hovered,html.theme--documenter-dark .button.is-white.is-outlined:focus,html.theme--documenter-dark .button.is-white.is-outlined.is-focused{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-white.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-white.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-focused{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:hover,html.theme--documenter-dark .button.is-black.is-hovered{background-color:#040404;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:focus,html.theme--documenter-dark .button.is-black.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:focus:not(:active),html.theme--documenter-dark .button.is-black.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .button.is-black:active,html.theme--documenter-dark .button.is-black.is-active{background-color:#000;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black{background-color:#0a0a0a;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted:hover,html.theme--documenter-dark .button.is-black.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-black.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-outlined:hover,html.theme--documenter-dark .button.is-black.is-outlined.is-hovered,html.theme--documenter-dark .button.is-black.is-outlined:focus,html.theme--documenter-dark .button.is-black.is-outlined.is-focused{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-black.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-black.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-focused{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-light{background-color:#ecf0f1;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:hover,html.theme--documenter-dark .button.is-light.is-hovered{background-color:#e5eaec;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:focus,html.theme--documenter-dark .button.is-light.is-focused{border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:focus:not(:active),html.theme--documenter-dark .button.is-light.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .button.is-light:active,html.theme--documenter-dark .button.is-light.is-active{background-color:#dde4e6;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light{background-color:#ecf0f1;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-light.is-inverted{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted:hover,html.theme--documenter-dark .button.is-light.is-inverted.is-hovered{background-color:#1d2122}html.theme--documenter-dark .button.is-light.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted{background-color:#282f2f;border-color:transparent;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-loading::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-light.is-outlined{background-color:transparent;border-color:#ecf0f1;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-outlined:hover,html.theme--documenter-dark .button.is-light.is-outlined.is-hovered,html.theme--documenter-dark .button.is-light.is-outlined:focus,html.theme--documenter-dark .button.is-light.is-outlined.is-focused{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-light.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined{background-color:transparent;border-color:#ecf0f1;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#282f2f;color:#282f2f}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#282f2f;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark,html.theme--documenter-dark .content kbd.button{background-color:#282f2f;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:hover,html.theme--documenter-dark .content kbd.button:hover,html.theme--documenter-dark .button.is-dark.is-hovered,html.theme--documenter-dark .content kbd.button.is-hovered{background-color:#232829;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:focus,html.theme--documenter-dark .content kbd.button:focus,html.theme--documenter-dark .button.is-dark.is-focused,html.theme--documenter-dark .content kbd.button.is-focused{border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:focus:not(:active),html.theme--documenter-dark .content kbd.button:focus:not(:active),html.theme--documenter-dark .button.is-dark.is-focused:not(:active),html.theme--documenter-dark .content kbd.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .button.is-dark:active,html.theme--documenter-dark .content kbd.button:active,html.theme--documenter-dark .button.is-dark.is-active,html.theme--documenter-dark .content kbd.button.is-active{background-color:#1d2122;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark[disabled],html.theme--documenter-dark .content kbd.button[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark,fieldset[disabled] html.theme--documenter-dark .content kbd.button{background-color:#282f2f;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-dark.is-inverted,html.theme--documenter-dark .content kbd.button.is-inverted{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted:hover,html.theme--documenter-dark .content kbd.button.is-inverted:hover,html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered,html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered{background-color:#dde4e6}html.theme--documenter-dark .button.is-dark.is-inverted[disabled],html.theme--documenter-dark .content kbd.button.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted{background-color:#ecf0f1;border-color:transparent;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-loading::after,html.theme--documenter-dark .content kbd.button.is-loading::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-dark.is-outlined,html.theme--documenter-dark .content kbd.button.is-outlined{background-color:transparent;border-color:#282f2f;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-outlined:hover,html.theme--documenter-dark .content kbd.button.is-outlined:hover,html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered,html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered,html.theme--documenter-dark .button.is-dark.is-outlined:focus,html.theme--documenter-dark .content kbd.button.is-outlined:focus,html.theme--documenter-dark .button.is-dark.is-outlined.is-focused,html.theme--documenter-dark .content kbd.button.is-outlined.is-focused{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-dark.is-outlined[disabled],html.theme--documenter-dark .content kbd.button.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined{background-color:transparent;border-color:#282f2f;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#ecf0f1;color:#ecf0f1}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled],html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#ecf0f1;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-primary,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink{background-color:#375a7f;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:hover,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-hovered.docs-sourcelink{background-color:#335476;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:focus,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:focus:not(:active),html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus:not(:active),html.theme--documenter-dark .button.is-primary.is-focused:not(:active),html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink:not(:active){box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .button.is-primary:active,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:active,html.theme--documenter-dark .button.is-primary.is-active,html.theme--documenter-dark .docstring>section>a.button.is-active.docs-sourcelink{background-color:#2f4d6d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary[disabled],html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink{background-color:#375a7f;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-primary.is-inverted,html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted:hover,html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-hovered.docs-sourcelink{background-color:#f2f2f2}html.theme--documenter-dark .button.is-primary.is-inverted[disabled],html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;border-color:transparent;box-shadow:none;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-loading::after,html.theme--documenter-dark .docstring>section>a.button.is-loading.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-primary.is-outlined,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#375a7f;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-outlined:hover,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-outlined:focus,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-outlined.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-focused.docs-sourcelink{background-color:#375a7f;border-color:#375a7f;color:#fff}html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink::after{border-color:transparent transparent #375a7f #375a7f !important}html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:hover::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:focus::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-primary.is-outlined[disabled],html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#375a7f;box-shadow:none;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-focused.docs-sourcelink{background-color:#fff;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #375a7f #375a7f !important}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled],html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-link{background-color:#1abc9c;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:hover,html.theme--documenter-dark .button.is-link.is-hovered{background-color:#18b193;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:focus,html.theme--documenter-dark .button.is-link.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:focus:not(:active),html.theme--documenter-dark .button.is-link.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .button.is-link:active,html.theme--documenter-dark .button.is-link.is-active{background-color:#17a689;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link{background-color:#1abc9c;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-link.is-inverted{background-color:#fff;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted:hover,html.theme--documenter-dark .button.is-link.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-link.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-link.is-outlined{background-color:transparent;border-color:#1abc9c;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-outlined:hover,html.theme--documenter-dark .button.is-link.is-outlined.is-hovered,html.theme--documenter-dark .button.is-link.is-outlined:focus,html.theme--documenter-dark .button.is-link.is-outlined.is-focused{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #1abc9c #1abc9c !important}html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-link.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined{background-color:transparent;border-color:#1abc9c;box-shadow:none;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused{background-color:#fff;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #1abc9c #1abc9c !important}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-info{background-color:#024c7d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:hover,html.theme--documenter-dark .button.is-info.is-hovered{background-color:#024470;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:focus,html.theme--documenter-dark .button.is-info.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:focus:not(:active),html.theme--documenter-dark .button.is-info.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .button.is-info:active,html.theme--documenter-dark .button.is-info.is-active{background-color:#023d64;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info{background-color:#024c7d;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-info.is-inverted{background-color:#fff;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted:hover,html.theme--documenter-dark .button.is-info.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-info.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#024c7d}html.theme--documenter-dark .button.is-info.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-info.is-outlined{background-color:transparent;border-color:#024c7d;color:#024c7d}html.theme--documenter-dark .button.is-info.is-outlined:hover,html.theme--documenter-dark .button.is-info.is-outlined.is-hovered,html.theme--documenter-dark .button.is-info.is-outlined:focus,html.theme--documenter-dark .button.is-info.is-outlined.is-focused{background-color:#024c7d;border-color:#024c7d;color:#fff}html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #024c7d #024c7d !important}html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-info.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined{background-color:transparent;border-color:#024c7d;box-shadow:none;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused{background-color:#fff;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #024c7d #024c7d !important}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-success{background-color:#008438;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:hover,html.theme--documenter-dark .button.is-success.is-hovered{background-color:#073;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:focus,html.theme--documenter-dark .button.is-success.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:focus:not(:active),html.theme--documenter-dark .button.is-success.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .button.is-success:active,html.theme--documenter-dark .button.is-success.is-active{background-color:#006b2d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success{background-color:#008438;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-success.is-inverted{background-color:#fff;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted:hover,html.theme--documenter-dark .button.is-success.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-success.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#008438}html.theme--documenter-dark .button.is-success.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-success.is-outlined{background-color:transparent;border-color:#008438;color:#008438}html.theme--documenter-dark .button.is-success.is-outlined:hover,html.theme--documenter-dark .button.is-success.is-outlined.is-hovered,html.theme--documenter-dark .button.is-success.is-outlined:focus,html.theme--documenter-dark .button.is-success.is-outlined.is-focused{background-color:#008438;border-color:#008438;color:#fff}html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #008438 #008438 !important}html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-success.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined{background-color:transparent;border-color:#008438;box-shadow:none;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused{background-color:#fff;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #008438 #008438 !important}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-warning{background-color:#ad8100;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:hover,html.theme--documenter-dark .button.is-warning.is-hovered{background-color:#a07700;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:focus,html.theme--documenter-dark .button.is-warning.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:focus:not(:active),html.theme--documenter-dark .button.is-warning.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .button.is-warning:active,html.theme--documenter-dark .button.is-warning.is-active{background-color:#946e00;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning{background-color:#ad8100;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-warning.is-inverted{background-color:#fff;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted:hover,html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-warning.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-warning.is-outlined{background-color:transparent;border-color:#ad8100;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-outlined:hover,html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered,html.theme--documenter-dark .button.is-warning.is-outlined:focus,html.theme--documenter-dark .button.is-warning.is-outlined.is-focused{background-color:#ad8100;border-color:#ad8100;color:#fff}html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #ad8100 #ad8100 !important}html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-warning.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined{background-color:transparent;border-color:#ad8100;box-shadow:none;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused{background-color:#fff;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ad8100 #ad8100 !important}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-danger{background-color:#9e1b0d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:hover,html.theme--documenter-dark .button.is-danger.is-hovered{background-color:#92190c;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:focus,html.theme--documenter-dark .button.is-danger.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:focus:not(:active),html.theme--documenter-dark .button.is-danger.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .button.is-danger:active,html.theme--documenter-dark .button.is-danger.is-active{background-color:#86170b;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger{background-color:#9e1b0d;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-danger.is-inverted{background-color:#fff;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted:hover,html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-danger.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-danger.is-outlined{background-color:transparent;border-color:#9e1b0d;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-outlined:hover,html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered,html.theme--documenter-dark .button.is-danger.is-outlined:focus,html.theme--documenter-dark .button.is-danger.is-outlined.is-focused{background-color:#9e1b0d;border-color:#9e1b0d;color:#fff}html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #9e1b0d #9e1b0d !important}html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-danger.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined{background-color:transparent;border-color:#9e1b0d;box-shadow:none;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused{background-color:#fff;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #9e1b0d #9e1b0d !important}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.button{border-radius:3px;font-size:.85em}html.theme--documenter-dark .button.is-normal{font-size:15px}html.theme--documenter-dark .button.is-medium{font-size:1.25rem}html.theme--documenter-dark .button.is-large{font-size:1.5rem}html.theme--documenter-dark .button[disabled],fieldset[disabled] html.theme--documenter-dark .button{background-color:#8c9b9d;border-color:#dbdee0;box-shadow:none;opacity:.5}html.theme--documenter-dark .button.is-fullwidth{display:flex;width:100%}html.theme--documenter-dark .button.is-loading{color:transparent !important;pointer-events:none}html.theme--documenter-dark .button.is-loading::after{position:absolute;left:calc(50% - (1em / 2));top:calc(50% - (1em / 2));position:absolute !important}html.theme--documenter-dark .button.is-static{background-color:#282f2f;border-color:#5e6d6f;color:#dbdee0;box-shadow:none;pointer-events:none}html.theme--documenter-dark .button.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.button{border-radius:290486px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .buttons .button{margin-bottom:0.5rem}html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth){margin-right:0.5rem}html.theme--documenter-dark .buttons:last-child{margin-bottom:-0.5rem}html.theme--documenter-dark .buttons:not(:last-child){margin-bottom:1rem}html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){border-radius:3px;font-size:.85em}html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}html.theme--documenter-dark .buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}html.theme--documenter-dark .buttons.has-addons .button:last-child{margin-right:0}html.theme--documenter-dark .buttons.has-addons .button:hover,html.theme--documenter-dark .buttons.has-addons .button.is-hovered{z-index:2}html.theme--documenter-dark .buttons.has-addons .button:focus,html.theme--documenter-dark .buttons.has-addons .button.is-focused,html.theme--documenter-dark .buttons.has-addons .button:active,html.theme--documenter-dark .buttons.has-addons .button.is-active,html.theme--documenter-dark .buttons.has-addons .button.is-selected{z-index:3}html.theme--documenter-dark .buttons.has-addons .button:focus:hover,html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover,html.theme--documenter-dark .buttons.has-addons .button:active:hover,html.theme--documenter-dark .buttons.has-addons .button.is-active:hover,html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover{z-index:4}html.theme--documenter-dark .buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .buttons.is-centered{justify-content:center}html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}html.theme--documenter-dark .buttons.is-right{justify-content:flex-end}html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}html.theme--documenter-dark .container{flex-grow:1;margin:0 auto;position:relative;width:auto}@media screen and (min-width: 1056px){html.theme--documenter-dark .container{max-width:992px}html.theme--documenter-dark .container.is-fluid{margin-left:32px;margin-right:32px;max-width:none}}@media screen and (max-width: 1215px){html.theme--documenter-dark .container.is-widescreen{max-width:1152px}}@media screen and (max-width: 1407px){html.theme--documenter-dark .container.is-fullhd{max-width:1344px}}@media screen and (min-width: 1216px){html.theme--documenter-dark .container{max-width:1152px}}@media screen and (min-width: 1408px){html.theme--documenter-dark .container{max-width:1344px}}html.theme--documenter-dark .content li+li{margin-top:0.25em}html.theme--documenter-dark .content p:not(:last-child),html.theme--documenter-dark .content dl:not(:last-child),html.theme--documenter-dark .content ol:not(:last-child),html.theme--documenter-dark .content ul:not(:last-child),html.theme--documenter-dark .content blockquote:not(:last-child),html.theme--documenter-dark .content pre:not(:last-child),html.theme--documenter-dark .content table:not(:last-child){margin-bottom:1em}html.theme--documenter-dark .content h1,html.theme--documenter-dark .content h2,html.theme--documenter-dark .content h3,html.theme--documenter-dark .content h4,html.theme--documenter-dark .content h5,html.theme--documenter-dark .content h6{color:#f2f2f2;font-weight:600;line-height:1.125}html.theme--documenter-dark .content h1{font-size:2em;margin-bottom:0.5em}html.theme--documenter-dark .content h1:not(:first-child){margin-top:1em}html.theme--documenter-dark .content h2{font-size:1.75em;margin-bottom:0.5714em}html.theme--documenter-dark .content h2:not(:first-child){margin-top:1.1428em}html.theme--documenter-dark .content h3{font-size:1.5em;margin-bottom:0.6666em}html.theme--documenter-dark .content h3:not(:first-child){margin-top:1.3333em}html.theme--documenter-dark .content h4{font-size:1.25em;margin-bottom:0.8em}html.theme--documenter-dark .content h5{font-size:1.125em;margin-bottom:0.8888em}html.theme--documenter-dark .content h6{font-size:1em;margin-bottom:1em}html.theme--documenter-dark .content blockquote{background-color:#282f2f;border-left:5px solid #5e6d6f;padding:1.25em 1.5em}html.theme--documenter-dark .content ol{list-style-position:outside;margin-left:2em;margin-top:1em}html.theme--documenter-dark .content ol:not([type]){list-style-type:decimal}html.theme--documenter-dark .content ol.is-lower-alpha:not([type]){list-style-type:lower-alpha}html.theme--documenter-dark .content ol.is-lower-roman:not([type]){list-style-type:lower-roman}html.theme--documenter-dark .content ol.is-upper-alpha:not([type]){list-style-type:upper-alpha}html.theme--documenter-dark .content ol.is-upper-roman:not([type]){list-style-type:upper-roman}html.theme--documenter-dark .content ul{list-style:disc outside;margin-left:2em;margin-top:1em}html.theme--documenter-dark .content ul ul{list-style-type:circle;margin-top:0.5em}html.theme--documenter-dark .content ul ul ul{list-style-type:square}html.theme--documenter-dark .content dd{margin-left:2em}html.theme--documenter-dark .content figure{margin-left:2em;margin-right:2em;text-align:center}html.theme--documenter-dark .content figure:not(:first-child){margin-top:2em}html.theme--documenter-dark .content figure:not(:last-child){margin-bottom:2em}html.theme--documenter-dark .content figure img{display:inline-block}html.theme--documenter-dark .content figure figcaption{font-style:italic}html.theme--documenter-dark .content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:0;white-space:pre;word-wrap:normal}html.theme--documenter-dark .content sup,html.theme--documenter-dark .content sub{font-size:75%}html.theme--documenter-dark .content table{width:100%}html.theme--documenter-dark .content table td,html.theme--documenter-dark .content table th{border:1px solid #5e6d6f;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}html.theme--documenter-dark .content table th{color:#f2f2f2}html.theme--documenter-dark .content table th:not([align]){text-align:left}html.theme--documenter-dark .content table thead td,html.theme--documenter-dark .content table thead th{border-width:0 0 2px;color:#f2f2f2}html.theme--documenter-dark .content table tfoot td,html.theme--documenter-dark .content table tfoot th{border-width:2px 0 0;color:#f2f2f2}html.theme--documenter-dark .content table tbody tr:last-child td,html.theme--documenter-dark .content table tbody tr:last-child th{border-bottom-width:0}html.theme--documenter-dark .content .tabs li+li{margin-top:0}html.theme--documenter-dark .content.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.content{font-size:.85em}html.theme--documenter-dark .content.is-medium{font-size:1.25rem}html.theme--documenter-dark .content.is-large{font-size:1.5rem}html.theme--documenter-dark .icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}html.theme--documenter-dark .icon.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.icon{height:1rem;width:1rem}html.theme--documenter-dark .icon.is-medium{height:2rem;width:2rem}html.theme--documenter-dark .icon.is-large{height:3rem;width:3rem}html.theme--documenter-dark .image,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img{display:block;position:relative}html.theme--documenter-dark .image img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img img{display:block;height:auto;width:100%}html.theme--documenter-dark .image img.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img img.is-rounded{border-radius:290486px}html.theme--documenter-dark .image.is-square img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square img,html.theme--documenter-dark .image.is-square .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,html.theme--documenter-dark .image.is-1by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 img,html.theme--documenter-dark .image.is-1by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,html.theme--documenter-dark .image.is-5by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 img,html.theme--documenter-dark .image.is-5by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,html.theme--documenter-dark .image.is-4by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 img,html.theme--documenter-dark .image.is-4by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,html.theme--documenter-dark .image.is-3by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 img,html.theme--documenter-dark .image.is-3by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,html.theme--documenter-dark .image.is-5by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 img,html.theme--documenter-dark .image.is-5by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,html.theme--documenter-dark .image.is-16by9 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 img,html.theme--documenter-dark .image.is-16by9 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,html.theme--documenter-dark .image.is-2by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 img,html.theme--documenter-dark .image.is-2by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,html.theme--documenter-dark .image.is-3by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 img,html.theme--documenter-dark .image.is-3by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,html.theme--documenter-dark .image.is-4by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 img,html.theme--documenter-dark .image.is-4by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,html.theme--documenter-dark .image.is-3by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 img,html.theme--documenter-dark .image.is-3by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,html.theme--documenter-dark .image.is-2by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 img,html.theme--documenter-dark .image.is-2by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,html.theme--documenter-dark .image.is-3by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 img,html.theme--documenter-dark .image.is-3by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,html.theme--documenter-dark .image.is-9by16 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 img,html.theme--documenter-dark .image.is-9by16 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,html.theme--documenter-dark .image.is-1by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 img,html.theme--documenter-dark .image.is-1by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,html.theme--documenter-dark .image.is-1by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 img,html.theme--documenter-dark .image.is-1by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio{height:100%;width:100%}html.theme--documenter-dark .image.is-square,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square,html.theme--documenter-dark .image.is-1by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1{padding-top:100%}html.theme--documenter-dark .image.is-5by4,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4{padding-top:80%}html.theme--documenter-dark .image.is-4by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3{padding-top:75%}html.theme--documenter-dark .image.is-3by2,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2{padding-top:66.6666%}html.theme--documenter-dark .image.is-5by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3{padding-top:60%}html.theme--documenter-dark .image.is-16by9,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9{padding-top:56.25%}html.theme--documenter-dark .image.is-2by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1{padding-top:50%}html.theme--documenter-dark .image.is-3by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1{padding-top:33.3333%}html.theme--documenter-dark .image.is-4by5,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5{padding-top:125%}html.theme--documenter-dark .image.is-3by4,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4{padding-top:133.3333%}html.theme--documenter-dark .image.is-2by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3{padding-top:150%}html.theme--documenter-dark .image.is-3by5,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5{padding-top:166.6666%}html.theme--documenter-dark .image.is-9by16,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16{padding-top:177.7777%}html.theme--documenter-dark .image.is-1by2,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2{padding-top:200%}html.theme--documenter-dark .image.is-1by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3{padding-top:300%}html.theme--documenter-dark .image.is-16x16,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16x16{height:16px;width:16px}html.theme--documenter-dark .image.is-24x24,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-24x24{height:24px;width:24px}html.theme--documenter-dark .image.is-32x32,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-32x32{height:32px;width:32px}html.theme--documenter-dark .image.is-48x48,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-48x48{height:48px;width:48px}html.theme--documenter-dark .image.is-64x64,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-64x64{height:64px;width:64px}html.theme--documenter-dark .image.is-96x96,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-96x96{height:96px;width:96px}html.theme--documenter-dark .image.is-128x128,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-128x128{height:128px;width:128px}html.theme--documenter-dark .notification{background-color:#282f2f;border-radius:.4em;padding:1.25rem 2.5rem 1.25rem 1.5rem;position:relative}html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}html.theme--documenter-dark .notification strong{color:currentColor}html.theme--documenter-dark .notification code,html.theme--documenter-dark .notification pre{background:#fff}html.theme--documenter-dark .notification pre code{background:transparent}html.theme--documenter-dark .notification>.delete{position:absolute;right:0.5rem;top:0.5rem}html.theme--documenter-dark .notification .title,html.theme--documenter-dark .notification .subtitle,html.theme--documenter-dark .notification .content{color:currentColor}html.theme--documenter-dark .notification.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .notification.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .notification.is-light{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .notification.is-dark,html.theme--documenter-dark .content kbd.notification{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .notification.is-primary,html.theme--documenter-dark .docstring>section>a.notification.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .notification.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .notification.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .notification.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .notification.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .notification.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:290486px;display:block;height:15px;overflow:hidden;padding:0;width:100%}html.theme--documenter-dark .progress::-webkit-progress-bar{background-color:#5e6d6f}html.theme--documenter-dark .progress::-webkit-progress-value{background-color:#dbdee0}html.theme--documenter-dark .progress::-moz-progress-bar{background-color:#dbdee0}html.theme--documenter-dark .progress::-ms-fill{background-color:#dbdee0;border:none}html.theme--documenter-dark .progress.is-white::-webkit-progress-value{background-color:#fff}html.theme--documenter-dark .progress.is-white::-moz-progress-bar{background-color:#fff}html.theme--documenter-dark .progress.is-white::-ms-fill{background-color:#fff}html.theme--documenter-dark .progress.is-white:indeterminate{background-image:linear-gradient(to right, #fff 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-black::-webkit-progress-value{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black::-moz-progress-bar{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black::-ms-fill{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black:indeterminate{background-image:linear-gradient(to right, #0a0a0a 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-light::-webkit-progress-value{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light::-moz-progress-bar{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light::-ms-fill{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light:indeterminate{background-image:linear-gradient(to right, #ecf0f1 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-dark::-webkit-progress-value,html.theme--documenter-dark .content kbd.progress::-webkit-progress-value{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark::-moz-progress-bar,html.theme--documenter-dark .content kbd.progress::-moz-progress-bar{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark::-ms-fill,html.theme--documenter-dark .content kbd.progress::-ms-fill{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark:indeterminate,html.theme--documenter-dark .content kbd.progress:indeterminate{background-image:linear-gradient(to right, #282f2f 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-primary::-webkit-progress-value,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-webkit-progress-value{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary::-moz-progress-bar,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-moz-progress-bar{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary::-ms-fill,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-ms-fill{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary:indeterminate,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink:indeterminate{background-image:linear-gradient(to right, #375a7f 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-link::-webkit-progress-value{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link::-moz-progress-bar{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link::-ms-fill{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link:indeterminate{background-image:linear-gradient(to right, #1abc9c 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-info::-webkit-progress-value{background-color:#024c7d}html.theme--documenter-dark .progress.is-info::-moz-progress-bar{background-color:#024c7d}html.theme--documenter-dark .progress.is-info::-ms-fill{background-color:#024c7d}html.theme--documenter-dark .progress.is-info:indeterminate{background-image:linear-gradient(to right, #024c7d 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-success::-webkit-progress-value{background-color:#008438}html.theme--documenter-dark .progress.is-success::-moz-progress-bar{background-color:#008438}html.theme--documenter-dark .progress.is-success::-ms-fill{background-color:#008438}html.theme--documenter-dark .progress.is-success:indeterminate{background-image:linear-gradient(to right, #008438 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-warning::-webkit-progress-value{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning::-moz-progress-bar{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning::-ms-fill{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning:indeterminate{background-image:linear-gradient(to right, #ad8100 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-danger::-webkit-progress-value{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger::-moz-progress-bar{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger::-ms-fill{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger:indeterminate{background-image:linear-gradient(to right, #9e1b0d 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress:indeterminate{animation-duration:1.5s;animation-iteration-count:infinite;animation-name:moveIndeterminate;animation-timing-function:linear;background-color:#5e6d6f;background-image:linear-gradient(to right, #fff 30%, #5e6d6f 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar{background-color:transparent}html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar{background-color:transparent}html.theme--documenter-dark .progress.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.progress{height:.85em}html.theme--documenter-dark .progress.is-medium{height:1.25rem}html.theme--documenter-dark .progress.is-large{height:1.5rem}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}html.theme--documenter-dark .table{background-color:#343c3d;color:#fff}html.theme--documenter-dark .table td,html.theme--documenter-dark .table th{border:1px solid #5e6d6f;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}html.theme--documenter-dark .table td.is-white,html.theme--documenter-dark .table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .table td.is-black,html.theme--documenter-dark .table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .table td.is-light,html.theme--documenter-dark .table th.is-light{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .table td.is-dark,html.theme--documenter-dark .table th.is-dark{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .table td.is-primary,html.theme--documenter-dark .table th.is-primary{background-color:#375a7f;border-color:#375a7f;color:#fff}html.theme--documenter-dark .table td.is-link,html.theme--documenter-dark .table th.is-link{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .table td.is-info,html.theme--documenter-dark .table th.is-info{background-color:#024c7d;border-color:#024c7d;color:#fff}html.theme--documenter-dark .table td.is-success,html.theme--documenter-dark .table th.is-success{background-color:#008438;border-color:#008438;color:#fff}html.theme--documenter-dark .table td.is-warning,html.theme--documenter-dark .table th.is-warning{background-color:#ad8100;border-color:#ad8100;color:#fff}html.theme--documenter-dark .table td.is-danger,html.theme--documenter-dark .table th.is-danger{background-color:#9e1b0d;border-color:#9e1b0d;color:#fff}html.theme--documenter-dark .table td.is-narrow,html.theme--documenter-dark .table th.is-narrow{white-space:nowrap;width:1%}html.theme--documenter-dark .table td.is-selected,html.theme--documenter-dark .table th.is-selected{background-color:#375a7f;color:#fff}html.theme--documenter-dark .table td.is-selected a,html.theme--documenter-dark .table td.is-selected strong,html.theme--documenter-dark .table th.is-selected a,html.theme--documenter-dark .table th.is-selected strong{color:currentColor}html.theme--documenter-dark .table th{color:#f2f2f2}html.theme--documenter-dark .table th:not([align]){text-align:left}html.theme--documenter-dark .table tr.is-selected{background-color:#375a7f;color:#fff}html.theme--documenter-dark .table tr.is-selected a,html.theme--documenter-dark .table tr.is-selected strong{color:currentColor}html.theme--documenter-dark .table tr.is-selected td,html.theme--documenter-dark .table tr.is-selected th{border-color:#fff;color:currentColor}html.theme--documenter-dark .table thead{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table thead td,html.theme--documenter-dark .table thead th{border-width:0 0 2px;color:#f2f2f2}html.theme--documenter-dark .table tfoot{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table tfoot td,html.theme--documenter-dark .table tfoot th{border-width:2px 0 0;color:#f2f2f2}html.theme--documenter-dark .table tbody{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table tbody tr:last-child td,html.theme--documenter-dark .table tbody tr:last-child th{border-bottom-width:0}html.theme--documenter-dark .table.is-bordered td,html.theme--documenter-dark .table.is-bordered th{border-width:1px}html.theme--documenter-dark .table.is-bordered tr:last-child td,html.theme--documenter-dark .table.is-bordered tr:last-child th{border-bottom-width:1px}html.theme--documenter-dark .table.is-fullwidth{width:100%}html.theme--documenter-dark .table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#282f2f}html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#282f2f}html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even){background-color:#2d3435}html.theme--documenter-dark .table.is-narrow td,html.theme--documenter-dark .table.is-narrow th{padding:0.25em 0.5em}html.theme--documenter-dark .table.is-striped tbody tr:not(.is-selected):nth-child(even){background-color:#282f2f}html.theme--documenter-dark .table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}html.theme--documenter-dark .tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .tags .tag,html.theme--documenter-dark .tags .content kbd,html.theme--documenter-dark .content .tags kbd,html.theme--documenter-dark .tags .docstring>section>a.docs-sourcelink{margin-bottom:0.5rem}html.theme--documenter-dark .tags .tag:not(:last-child),html.theme--documenter-dark .tags .content kbd:not(:last-child),html.theme--documenter-dark .content .tags kbd:not(:last-child),html.theme--documenter-dark .tags .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0.5rem}html.theme--documenter-dark .tags:last-child{margin-bottom:-0.5rem}html.theme--documenter-dark .tags:not(:last-child){margin-bottom:1rem}html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large),html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large),html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large),html.theme--documenter-dark .tags.are-medium .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-large){font-size:15px}html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium),html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium),html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium),html.theme--documenter-dark .tags.are-large .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-medium){font-size:1.25rem}html.theme--documenter-dark .tags.is-centered{justify-content:center}html.theme--documenter-dark .tags.is-centered .tag,html.theme--documenter-dark .tags.is-centered .content kbd,html.theme--documenter-dark .content .tags.is-centered kbd,html.theme--documenter-dark .tags.is-centered .docstring>section>a.docs-sourcelink{margin-right:0.25rem;margin-left:0.25rem}html.theme--documenter-dark .tags.is-right{justify-content:flex-end}html.theme--documenter-dark .tags.is-right .tag:not(:first-child),html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child),html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child),html.theme--documenter-dark .tags.is-right .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0.5rem}html.theme--documenter-dark .tags.is-right .tag:not(:last-child),html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child),html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child),html.theme--documenter-dark .tags.is-right .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0}html.theme--documenter-dark .tags.has-addons .tag,html.theme--documenter-dark .tags.has-addons .content kbd,html.theme--documenter-dark .content .tags.has-addons kbd,html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink{margin-right:0}html.theme--documenter-dark .tags.has-addons .tag:not(:first-child),html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child),html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child),html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0;border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .tags.has-addons .tag:not(:last-child),html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child),html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child),html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .tag:not(body),html.theme--documenter-dark .content kbd:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body){align-items:center;background-color:#282f2f;border-radius:.4em;color:#fff;display:inline-flex;font-size:.85em;height:2em;justify-content:center;line-height:1.5;padding-left:0.75em;padding-right:0.75em;white-space:nowrap}html.theme--documenter-dark .tag:not(body) .delete,html.theme--documenter-dark .content kbd:not(body) .delete,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .delete{margin-left:0.25rem;margin-right:-0.375rem}html.theme--documenter-dark .tag.is-white:not(body),html.theme--documenter-dark .content kbd.is-white:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-white:not(body){background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .tag.is-black:not(body),html.theme--documenter-dark .content kbd.is-black:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-black:not(body){background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .tag.is-light:not(body),html.theme--documenter-dark .content kbd.is-light:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .tag.is-dark:not(body),html.theme--documenter-dark .content kbd:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-dark:not(body),html.theme--documenter-dark .content .docstring>section>kbd:not(body){background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .tag.is-primary:not(body),html.theme--documenter-dark .content kbd.is-primary:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body){background-color:#375a7f;color:#fff}html.theme--documenter-dark .tag.is-link:not(body),html.theme--documenter-dark .content kbd.is-link:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-link:not(body){background-color:#1abc9c;color:#fff}html.theme--documenter-dark .tag.is-info:not(body),html.theme--documenter-dark .content kbd.is-info:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-info:not(body){background-color:#024c7d;color:#fff}html.theme--documenter-dark .tag.is-success:not(body),html.theme--documenter-dark .content kbd.is-success:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-success:not(body){background-color:#008438;color:#fff}html.theme--documenter-dark .tag.is-warning:not(body),html.theme--documenter-dark .content kbd.is-warning:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-warning:not(body){background-color:#ad8100;color:#fff}html.theme--documenter-dark .tag.is-danger:not(body),html.theme--documenter-dark .content kbd.is-danger:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-danger:not(body){background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .tag.is-normal:not(body),html.theme--documenter-dark .content kbd.is-normal:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-normal:not(body){font-size:.85em}html.theme--documenter-dark .tag.is-medium:not(body),html.theme--documenter-dark .content kbd.is-medium:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-medium:not(body){font-size:15px}html.theme--documenter-dark .tag.is-large:not(body),html.theme--documenter-dark .content kbd.is-large:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-large:not(body){font-size:1.25rem}html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child),html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:first-child:not(:last-child){margin-left:-0.375em;margin-right:0.1875em}html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child),html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:-0.375em}html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child,html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:first-child:last-child{margin-left:-0.375em;margin-right:-0.375em}html.theme--documenter-dark .tag.is-delete:not(body),html.theme--documenter-dark .content kbd.is-delete:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body){margin-left:1px;padding:0;position:relative;width:2em}html.theme--documenter-dark .tag.is-delete:not(body)::before,html.theme--documenter-dark .content kbd.is-delete:not(body)::before,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::before,html.theme--documenter-dark .tag.is-delete:not(body)::after,html.theme--documenter-dark .content kbd.is-delete:not(body)::after,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::after{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}html.theme--documenter-dark .tag.is-delete:not(body)::before,html.theme--documenter-dark .content kbd.is-delete:not(body)::before,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::before{height:1px;width:50%}html.theme--documenter-dark .tag.is-delete:not(body)::after,html.theme--documenter-dark .content kbd.is-delete:not(body)::after,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::after{height:50%;width:1px}html.theme--documenter-dark .tag.is-delete:not(body):hover,html.theme--documenter-dark .content kbd.is-delete:not(body):hover,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):hover,html.theme--documenter-dark .tag.is-delete:not(body):focus,html.theme--documenter-dark .content kbd.is-delete:not(body):focus,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):focus{background-color:#1d2122}html.theme--documenter-dark .tag.is-delete:not(body):active,html.theme--documenter-dark .content kbd.is-delete:not(body):active,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):active{background-color:#111414}html.theme--documenter-dark .tag.is-rounded:not(body),html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:not(body),html.theme--documenter-dark .content kbd.is-rounded:not(body),html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-rounded:not(body){border-radius:290486px}html.theme--documenter-dark a.tag:hover,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:hover{text-decoration:underline}html.theme--documenter-dark .title,html.theme--documenter-dark .subtitle{word-break:break-word}html.theme--documenter-dark .title em,html.theme--documenter-dark .title span,html.theme--documenter-dark .subtitle em,html.theme--documenter-dark .subtitle span{font-weight:inherit}html.theme--documenter-dark .title sub,html.theme--documenter-dark .subtitle sub{font-size:.75em}html.theme--documenter-dark .title sup,html.theme--documenter-dark .subtitle sup{font-size:.75em}html.theme--documenter-dark .title .tag,html.theme--documenter-dark .title .content kbd,html.theme--documenter-dark .content .title kbd,html.theme--documenter-dark .title .docstring>section>a.docs-sourcelink,html.theme--documenter-dark .subtitle .tag,html.theme--documenter-dark .subtitle .content kbd,html.theme--documenter-dark .content .subtitle kbd,html.theme--documenter-dark .subtitle .docstring>section>a.docs-sourcelink{vertical-align:middle}html.theme--documenter-dark .title{color:#fff;font-size:2rem;font-weight:500;line-height:1.125}html.theme--documenter-dark .title strong{color:inherit;font-weight:inherit}html.theme--documenter-dark .title+.highlight{margin-top:-0.75rem}html.theme--documenter-dark .title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}html.theme--documenter-dark .title.is-1{font-size:3rem}html.theme--documenter-dark .title.is-2{font-size:2.5rem}html.theme--documenter-dark .title.is-3{font-size:2rem}html.theme--documenter-dark .title.is-4{font-size:1.5rem}html.theme--documenter-dark .title.is-5{font-size:1.25rem}html.theme--documenter-dark .title.is-6{font-size:15px}html.theme--documenter-dark .title.is-7{font-size:.85em}html.theme--documenter-dark .subtitle{color:#8c9b9d;font-size:1.25rem;font-weight:400;line-height:1.25}html.theme--documenter-dark .subtitle strong{color:#8c9b9d;font-weight:600}html.theme--documenter-dark .subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}html.theme--documenter-dark .subtitle.is-1{font-size:3rem}html.theme--documenter-dark .subtitle.is-2{font-size:2.5rem}html.theme--documenter-dark .subtitle.is-3{font-size:2rem}html.theme--documenter-dark .subtitle.is-4{font-size:1.5rem}html.theme--documenter-dark .subtitle.is-5{font-size:1.25rem}html.theme--documenter-dark .subtitle.is-6{font-size:15px}html.theme--documenter-dark .subtitle.is-7{font-size:.85em}html.theme--documenter-dark .heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}html.theme--documenter-dark .highlight{font-weight:400;max-width:100%;overflow:hidden;padding:0}html.theme--documenter-dark .highlight pre{overflow:auto;max-width:100%}html.theme--documenter-dark .number{align-items:center;background-color:#282f2f;border-radius:290486px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:0.25rem 0.5rem;text-align:center;vertical-align:top}html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{background-color:#1f2424;border-color:#5e6d6f;border-radius:.4em;color:#dbdee0}html.theme--documenter-dark .select select::-moz-placeholder,html.theme--documenter-dark .textarea::-moz-placeholder,html.theme--documenter-dark .input::-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select::-webkit-input-placeholder,html.theme--documenter-dark .textarea::-webkit-input-placeholder,html.theme--documenter-dark .input::-webkit-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:-moz-placeholder,html.theme--documenter-dark .textarea:-moz-placeholder,html.theme--documenter-dark .input:-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:-ms-input-placeholder,html.theme--documenter-dark .textarea:-ms-input-placeholder,html.theme--documenter-dark .input:-ms-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:hover,html.theme--documenter-dark .textarea:hover,html.theme--documenter-dark .input:hover,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:hover,html.theme--documenter-dark .select select.is-hovered,html.theme--documenter-dark .is-hovered.textarea,html.theme--documenter-dark .is-hovered.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-hovered{border-color:#8c9b9d}html.theme--documenter-dark .select select:focus,html.theme--documenter-dark .textarea:focus,html.theme--documenter-dark .input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:focus,html.theme--documenter-dark .select select.is-focused,html.theme--documenter-dark .is-focused.textarea,html.theme--documenter-dark .is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .select select:active,html.theme--documenter-dark .textarea:active,html.theme--documenter-dark .input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:active,html.theme--documenter-dark .select select.is-active,html.theme--documenter-dark .is-active.textarea,html.theme--documenter-dark .is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{border-color:#1abc9c;box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .select select[disabled],html.theme--documenter-dark .textarea[disabled],html.theme--documenter-dark .input[disabled],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled],fieldset[disabled] html.theme--documenter-dark .select select,fieldset[disabled] html.theme--documenter-dark .textarea,fieldset[disabled] html.theme--documenter-dark .input,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{background-color:#8c9b9d;border-color:#282f2f;box-shadow:none;color:#fff}html.theme--documenter-dark .select select[disabled]::-moz-placeholder,html.theme--documenter-dark .textarea[disabled]::-moz-placeholder,html.theme--documenter-dark .input[disabled]::-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .input::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]::-webkit-input-placeholder,html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder,html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .input::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]:-moz-placeholder,html.theme--documenter-dark .textarea[disabled]:-moz-placeholder,html.theme--documenter-dark .input[disabled]:-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .input:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]:-ms-input-placeholder,html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder,html.theme--documenter-dark .input[disabled]:-ms-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .input:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{box-shadow:inset 0 1px 2px rgba(10,10,10,0.1);max-width:100%;width:100%}html.theme--documenter-dark .textarea[readonly],html.theme--documenter-dark .input[readonly],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[readonly]{box-shadow:none}html.theme--documenter-dark .is-white.textarea,html.theme--documenter-dark .is-white.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white{border-color:#fff}html.theme--documenter-dark .is-white.textarea:focus,html.theme--documenter-dark .is-white.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white:focus,html.theme--documenter-dark .is-white.is-focused.textarea,html.theme--documenter-dark .is-white.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-white.textarea:active,html.theme--documenter-dark .is-white.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white:active,html.theme--documenter-dark .is-white.is-active.textarea,html.theme--documenter-dark .is-white.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .is-black.textarea,html.theme--documenter-dark .is-black.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black{border-color:#0a0a0a}html.theme--documenter-dark .is-black.textarea:focus,html.theme--documenter-dark .is-black.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black:focus,html.theme--documenter-dark .is-black.is-focused.textarea,html.theme--documenter-dark .is-black.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-black.textarea:active,html.theme--documenter-dark .is-black.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black:active,html.theme--documenter-dark .is-black.is-active.textarea,html.theme--documenter-dark .is-black.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .is-light.textarea,html.theme--documenter-dark .is-light.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light{border-color:#ecf0f1}html.theme--documenter-dark .is-light.textarea:focus,html.theme--documenter-dark .is-light.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light:focus,html.theme--documenter-dark .is-light.is-focused.textarea,html.theme--documenter-dark .is-light.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-light.textarea:active,html.theme--documenter-dark .is-light.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light:active,html.theme--documenter-dark .is-light.is-active.textarea,html.theme--documenter-dark .is-light.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .is-dark.textarea,html.theme--documenter-dark .content kbd.textarea,html.theme--documenter-dark .is-dark.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark,html.theme--documenter-dark .content kbd.input{border-color:#282f2f}html.theme--documenter-dark .is-dark.textarea:focus,html.theme--documenter-dark .content kbd.textarea:focus,html.theme--documenter-dark .is-dark.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark:focus,html.theme--documenter-dark .content kbd.input:focus,html.theme--documenter-dark .is-dark.is-focused.textarea,html.theme--documenter-dark .content kbd.is-focused.textarea,html.theme--documenter-dark .is-dark.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .content kbd.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input.is-focused,html.theme--documenter-dark .is-dark.textarea:active,html.theme--documenter-dark .content kbd.textarea:active,html.theme--documenter-dark .is-dark.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark:active,html.theme--documenter-dark .content kbd.input:active,html.theme--documenter-dark .is-dark.is-active.textarea,html.theme--documenter-dark .content kbd.is-active.textarea,html.theme--documenter-dark .is-dark.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .content kbd.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .is-primary.textarea,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink{border-color:#375a7f}html.theme--documenter-dark .is-primary.textarea:focus,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink:focus,html.theme--documenter-dark .is-primary.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary:focus,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink:focus,html.theme--documenter-dark .is-primary.is-focused.textarea,html.theme--documenter-dark .docstring>section>a.is-focused.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .docstring>section>a.is-focused.input.docs-sourcelink,html.theme--documenter-dark .is-primary.textarea:active,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink:active,html.theme--documenter-dark .is-primary.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary:active,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink:active,html.theme--documenter-dark .is-primary.is-active.textarea,html.theme--documenter-dark .docstring>section>a.is-active.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .docstring>section>a.is-active.input.docs-sourcelink{box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .is-link.textarea,html.theme--documenter-dark .is-link.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link{border-color:#1abc9c}html.theme--documenter-dark .is-link.textarea:focus,html.theme--documenter-dark .is-link.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link:focus,html.theme--documenter-dark .is-link.is-focused.textarea,html.theme--documenter-dark .is-link.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-link.textarea:active,html.theme--documenter-dark .is-link.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link:active,html.theme--documenter-dark .is-link.is-active.textarea,html.theme--documenter-dark .is-link.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .is-info.textarea,html.theme--documenter-dark .is-info.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info{border-color:#024c7d}html.theme--documenter-dark .is-info.textarea:focus,html.theme--documenter-dark .is-info.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info:focus,html.theme--documenter-dark .is-info.is-focused.textarea,html.theme--documenter-dark .is-info.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-info.textarea:active,html.theme--documenter-dark .is-info.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info:active,html.theme--documenter-dark .is-info.is-active.textarea,html.theme--documenter-dark .is-info.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .is-success.textarea,html.theme--documenter-dark .is-success.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success{border-color:#008438}html.theme--documenter-dark .is-success.textarea:focus,html.theme--documenter-dark .is-success.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success:focus,html.theme--documenter-dark .is-success.is-focused.textarea,html.theme--documenter-dark .is-success.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-success.textarea:active,html.theme--documenter-dark .is-success.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success:active,html.theme--documenter-dark .is-success.is-active.textarea,html.theme--documenter-dark .is-success.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .is-warning.textarea,html.theme--documenter-dark .is-warning.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning{border-color:#ad8100}html.theme--documenter-dark .is-warning.textarea:focus,html.theme--documenter-dark .is-warning.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning:focus,html.theme--documenter-dark .is-warning.is-focused.textarea,html.theme--documenter-dark .is-warning.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-warning.textarea:active,html.theme--documenter-dark .is-warning.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning:active,html.theme--documenter-dark .is-warning.is-active.textarea,html.theme--documenter-dark .is-warning.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .is-danger.textarea,html.theme--documenter-dark .is-danger.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger{border-color:#9e1b0d}html.theme--documenter-dark .is-danger.textarea:focus,html.theme--documenter-dark .is-danger.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger:focus,html.theme--documenter-dark .is-danger.is-focused.textarea,html.theme--documenter-dark .is-danger.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-danger.textarea:active,html.theme--documenter-dark .is-danger.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger:active,html.theme--documenter-dark .is-danger.is-active.textarea,html.theme--documenter-dark .is-danger.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .is-small.textarea,html.theme--documenter-dark .is-small.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{border-radius:3px;font-size:.85em}html.theme--documenter-dark .is-medium.textarea,html.theme--documenter-dark .is-medium.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-medium{font-size:1.25rem}html.theme--documenter-dark .is-large.textarea,html.theme--documenter-dark .is-large.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-large{font-size:1.5rem}html.theme--documenter-dark .is-fullwidth.textarea,html.theme--documenter-dark .is-fullwidth.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-fullwidth{display:block;width:100%}html.theme--documenter-dark .is-inline.textarea,html.theme--documenter-dark .is-inline.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-inline{display:inline;width:auto}html.theme--documenter-dark .input.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{border-radius:290486px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .input.is-static,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}html.theme--documenter-dark .textarea{display:block;max-width:100%;min-width:100%;padding:0.625em;resize:vertical}html.theme--documenter-dark .textarea:not([rows]){max-height:600px;min-height:120px}html.theme--documenter-dark .textarea[rows]{height:initial}html.theme--documenter-dark .textarea.has-fixed-size{resize:none}html.theme--documenter-dark .radio,html.theme--documenter-dark .checkbox{cursor:pointer;display:inline-block;line-height:1.25;position:relative}html.theme--documenter-dark .radio input,html.theme--documenter-dark .checkbox input{cursor:pointer}html.theme--documenter-dark .radio:hover,html.theme--documenter-dark .checkbox:hover{color:#8c9b9d}html.theme--documenter-dark .radio[disabled],html.theme--documenter-dark .checkbox[disabled],fieldset[disabled] html.theme--documenter-dark .radio,fieldset[disabled] html.theme--documenter-dark .checkbox{color:#fff;cursor:not-allowed}html.theme--documenter-dark .radio+.radio{margin-left:0.5em}html.theme--documenter-dark .select{display:inline-block;max-width:100%;position:relative;vertical-align:top}html.theme--documenter-dark .select:not(.is-multiple){height:2.25em}html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after{border-color:#1abc9c;right:1.125em;z-index:4}html.theme--documenter-dark .select.is-rounded select,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.select select{border-radius:290486px;padding-left:1em}html.theme--documenter-dark .select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:none}html.theme--documenter-dark .select select::-ms-expand{display:none}html.theme--documenter-dark .select select[disabled]:hover,fieldset[disabled] html.theme--documenter-dark .select select:hover{border-color:#282f2f}html.theme--documenter-dark .select select:not([multiple]){padding-right:2.5em}html.theme--documenter-dark .select select[multiple]{height:auto;padding:0}html.theme--documenter-dark .select select[multiple] option{padding:0.5em 1em}html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after{border-color:#8c9b9d}html.theme--documenter-dark .select.is-white:not(:hover)::after{border-color:#fff}html.theme--documenter-dark .select.is-white select{border-color:#fff}html.theme--documenter-dark .select.is-white select:hover,html.theme--documenter-dark .select.is-white select.is-hovered{border-color:#f2f2f2}html.theme--documenter-dark .select.is-white select:focus,html.theme--documenter-dark .select.is-white select.is-focused,html.theme--documenter-dark .select.is-white select:active,html.theme--documenter-dark .select.is-white select.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .select.is-black:not(:hover)::after{border-color:#0a0a0a}html.theme--documenter-dark .select.is-black select{border-color:#0a0a0a}html.theme--documenter-dark .select.is-black select:hover,html.theme--documenter-dark .select.is-black select.is-hovered{border-color:#000}html.theme--documenter-dark .select.is-black select:focus,html.theme--documenter-dark .select.is-black select.is-focused,html.theme--documenter-dark .select.is-black select:active,html.theme--documenter-dark .select.is-black select.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .select.is-light:not(:hover)::after{border-color:#ecf0f1}html.theme--documenter-dark .select.is-light select{border-color:#ecf0f1}html.theme--documenter-dark .select.is-light select:hover,html.theme--documenter-dark .select.is-light select.is-hovered{border-color:#dde4e6}html.theme--documenter-dark .select.is-light select:focus,html.theme--documenter-dark .select.is-light select.is-focused,html.theme--documenter-dark .select.is-light select:active,html.theme--documenter-dark .select.is-light select.is-active{box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .select.is-dark:not(:hover)::after,html.theme--documenter-dark .content kbd.select:not(:hover)::after{border-color:#282f2f}html.theme--documenter-dark .select.is-dark select,html.theme--documenter-dark .content kbd.select select{border-color:#282f2f}html.theme--documenter-dark .select.is-dark select:hover,html.theme--documenter-dark .content kbd.select select:hover,html.theme--documenter-dark .select.is-dark select.is-hovered,html.theme--documenter-dark .content kbd.select select.is-hovered{border-color:#1d2122}html.theme--documenter-dark .select.is-dark select:focus,html.theme--documenter-dark .content kbd.select select:focus,html.theme--documenter-dark .select.is-dark select.is-focused,html.theme--documenter-dark .content kbd.select select.is-focused,html.theme--documenter-dark .select.is-dark select:active,html.theme--documenter-dark .content kbd.select select:active,html.theme--documenter-dark .select.is-dark select.is-active,html.theme--documenter-dark .content kbd.select select.is-active{box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .select.is-primary:not(:hover)::after,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink:not(:hover)::after{border-color:#375a7f}html.theme--documenter-dark .select.is-primary select,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select{border-color:#375a7f}html.theme--documenter-dark .select.is-primary select:hover,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:hover,html.theme--documenter-dark .select.is-primary select.is-hovered,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-hovered{border-color:#2f4d6d}html.theme--documenter-dark .select.is-primary select:focus,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:focus,html.theme--documenter-dark .select.is-primary select.is-focused,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-focused,html.theme--documenter-dark .select.is-primary select:active,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:active,html.theme--documenter-dark .select.is-primary select.is-active,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-active{box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .select.is-link:not(:hover)::after{border-color:#1abc9c}html.theme--documenter-dark .select.is-link select{border-color:#1abc9c}html.theme--documenter-dark .select.is-link select:hover,html.theme--documenter-dark .select.is-link select.is-hovered{border-color:#17a689}html.theme--documenter-dark .select.is-link select:focus,html.theme--documenter-dark .select.is-link select.is-focused,html.theme--documenter-dark .select.is-link select:active,html.theme--documenter-dark .select.is-link select.is-active{box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .select.is-info:not(:hover)::after{border-color:#024c7d}html.theme--documenter-dark .select.is-info select{border-color:#024c7d}html.theme--documenter-dark .select.is-info select:hover,html.theme--documenter-dark .select.is-info select.is-hovered{border-color:#023d64}html.theme--documenter-dark .select.is-info select:focus,html.theme--documenter-dark .select.is-info select.is-focused,html.theme--documenter-dark .select.is-info select:active,html.theme--documenter-dark .select.is-info select.is-active{box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .select.is-success:not(:hover)::after{border-color:#008438}html.theme--documenter-dark .select.is-success select{border-color:#008438}html.theme--documenter-dark .select.is-success select:hover,html.theme--documenter-dark .select.is-success select.is-hovered{border-color:#006b2d}html.theme--documenter-dark .select.is-success select:focus,html.theme--documenter-dark .select.is-success select.is-focused,html.theme--documenter-dark .select.is-success select:active,html.theme--documenter-dark .select.is-success select.is-active{box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .select.is-warning:not(:hover)::after{border-color:#ad8100}html.theme--documenter-dark .select.is-warning select{border-color:#ad8100}html.theme--documenter-dark .select.is-warning select:hover,html.theme--documenter-dark .select.is-warning select.is-hovered{border-color:#946e00}html.theme--documenter-dark .select.is-warning select:focus,html.theme--documenter-dark .select.is-warning select.is-focused,html.theme--documenter-dark .select.is-warning select:active,html.theme--documenter-dark .select.is-warning select.is-active{box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .select.is-danger:not(:hover)::after{border-color:#9e1b0d}html.theme--documenter-dark .select.is-danger select{border-color:#9e1b0d}html.theme--documenter-dark .select.is-danger select:hover,html.theme--documenter-dark .select.is-danger select.is-hovered{border-color:#86170b}html.theme--documenter-dark .select.is-danger select:focus,html.theme--documenter-dark .select.is-danger select.is-focused,html.theme--documenter-dark .select.is-danger select:active,html.theme--documenter-dark .select.is-danger select.is-active{box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .select.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.select{border-radius:3px;font-size:.85em}html.theme--documenter-dark .select.is-medium{font-size:1.25rem}html.theme--documenter-dark .select.is-large{font-size:1.5rem}html.theme--documenter-dark .select.is-disabled::after{border-color:#fff}html.theme--documenter-dark .select.is-fullwidth{width:100%}html.theme--documenter-dark .select.is-fullwidth select{width:100%}html.theme--documenter-dark .select.is-loading::after{margin-top:0;position:absolute;right:0.625em;top:0.625em;transform:none}html.theme--documenter-dark .select.is-loading.is-small:after,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.85em}html.theme--documenter-dark .select.is-loading.is-medium:after{font-size:1.25rem}html.theme--documenter-dark .select.is-loading.is-large:after{font-size:1.5rem}html.theme--documenter-dark .file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}html.theme--documenter-dark .file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-white:hover .file-cta,html.theme--documenter-dark .file.is-white.is-hovered .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-white:focus .file-cta,html.theme--documenter-dark .file.is-white.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,255,255,0.25);color:#0a0a0a}html.theme--documenter-dark .file.is-white:active .file-cta,html.theme--documenter-dark .file.is-white.is-active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-black:hover .file-cta,html.theme--documenter-dark .file.is-black.is-hovered .file-cta{background-color:#040404;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-black:focus .file-cta,html.theme--documenter-dark .file.is-black.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(10,10,10,0.25);color:#fff}html.theme--documenter-dark .file.is-black:active .file-cta,html.theme--documenter-dark .file.is-black.is-active .file-cta{background-color:#000;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-light .file-cta{background-color:#ecf0f1;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-light:hover .file-cta,html.theme--documenter-dark .file.is-light.is-hovered .file-cta{background-color:#e5eaec;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-light:focus .file-cta,html.theme--documenter-dark .file.is-light.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(236,240,241,0.25);color:#282f2f}html.theme--documenter-dark .file.is-light:active .file-cta,html.theme--documenter-dark .file.is-light.is-active .file-cta{background-color:#dde4e6;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-dark .file-cta,html.theme--documenter-dark .content kbd.file .file-cta{background-color:#282f2f;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-dark:hover .file-cta,html.theme--documenter-dark .content kbd.file:hover .file-cta,html.theme--documenter-dark .file.is-dark.is-hovered .file-cta,html.theme--documenter-dark .content kbd.file.is-hovered .file-cta{background-color:#232829;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-dark:focus .file-cta,html.theme--documenter-dark .content kbd.file:focus .file-cta,html.theme--documenter-dark .file.is-dark.is-focused .file-cta,html.theme--documenter-dark .content kbd.file.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(40,47,47,0.25);color:#ecf0f1}html.theme--documenter-dark .file.is-dark:active .file-cta,html.theme--documenter-dark .content kbd.file:active .file-cta,html.theme--documenter-dark .file.is-dark.is-active .file-cta,html.theme--documenter-dark .content kbd.file.is-active .file-cta{background-color:#1d2122;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-primary .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink .file-cta{background-color:#375a7f;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-primary:hover .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:hover .file-cta,html.theme--documenter-dark .file.is-primary.is-hovered .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-hovered.docs-sourcelink .file-cta{background-color:#335476;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-primary:focus .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:focus .file-cta,html.theme--documenter-dark .file.is-primary.is-focused .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-focused.docs-sourcelink .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(55,90,127,0.25);color:#fff}html.theme--documenter-dark .file.is-primary:active .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:active .file-cta,html.theme--documenter-dark .file.is-primary.is-active .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-active.docs-sourcelink .file-cta{background-color:#2f4d6d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link .file-cta{background-color:#1abc9c;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link:hover .file-cta,html.theme--documenter-dark .file.is-link.is-hovered .file-cta{background-color:#18b193;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link:focus .file-cta,html.theme--documenter-dark .file.is-link.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(26,188,156,0.25);color:#fff}html.theme--documenter-dark .file.is-link:active .file-cta,html.theme--documenter-dark .file.is-link.is-active .file-cta{background-color:#17a689;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info .file-cta{background-color:#024c7d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info:hover .file-cta,html.theme--documenter-dark .file.is-info.is-hovered .file-cta{background-color:#024470;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info:focus .file-cta,html.theme--documenter-dark .file.is-info.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(2,76,125,0.25);color:#fff}html.theme--documenter-dark .file.is-info:active .file-cta,html.theme--documenter-dark .file.is-info.is-active .file-cta{background-color:#023d64;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success .file-cta{background-color:#008438;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success:hover .file-cta,html.theme--documenter-dark .file.is-success.is-hovered .file-cta{background-color:#073;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success:focus .file-cta,html.theme--documenter-dark .file.is-success.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(0,132,56,0.25);color:#fff}html.theme--documenter-dark .file.is-success:active .file-cta,html.theme--documenter-dark .file.is-success.is-active .file-cta{background-color:#006b2d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning .file-cta{background-color:#ad8100;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning:hover .file-cta,html.theme--documenter-dark .file.is-warning.is-hovered .file-cta{background-color:#a07700;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning:focus .file-cta,html.theme--documenter-dark .file.is-warning.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(173,129,0,0.25);color:#fff}html.theme--documenter-dark .file.is-warning:active .file-cta,html.theme--documenter-dark .file.is-warning.is-active .file-cta{background-color:#946e00;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger .file-cta{background-color:#9e1b0d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger:hover .file-cta,html.theme--documenter-dark .file.is-danger.is-hovered .file-cta{background-color:#92190c;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger:focus .file-cta,html.theme--documenter-dark .file.is-danger.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(158,27,13,0.25);color:#fff}html.theme--documenter-dark .file.is-danger:active .file-cta,html.theme--documenter-dark .file.is-danger.is-active .file-cta{background-color:#86170b;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.file{font-size:.85em}html.theme--documenter-dark .file.is-medium{font-size:1.25rem}html.theme--documenter-dark .file.is-medium .file-icon .fa{font-size:21px}html.theme--documenter-dark .file.is-large{font-size:1.5rem}html.theme--documenter-dark .file.is-large .file-icon .fa{font-size:28px}html.theme--documenter-dark .file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .file.has-name.is-empty .file-cta{border-radius:.4em}html.theme--documenter-dark .file.has-name.is-empty .file-name{display:none}html.theme--documenter-dark .file.is-boxed .file-label{flex-direction:column}html.theme--documenter-dark .file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}html.theme--documenter-dark .file.is-boxed .file-name{border-width:0 1px 1px}html.theme--documenter-dark .file.is-boxed .file-icon{height:1.5em;width:1.5em}html.theme--documenter-dark .file.is-boxed .file-icon .fa{font-size:21px}html.theme--documenter-dark .file.is-boxed.is-small .file-icon .fa,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-boxed .file-icon .fa{font-size:14px}html.theme--documenter-dark .file.is-boxed.is-medium .file-icon .fa{font-size:28px}html.theme--documenter-dark .file.is-boxed.is-large .file-icon .fa{font-size:35px}html.theme--documenter-dark .file.is-boxed.has-name .file-cta{border-radius:.4em .4em 0 0}html.theme--documenter-dark .file.is-boxed.has-name .file-name{border-radius:0 0 .4em .4em;border-width:0 1px 1px}html.theme--documenter-dark .file.is-centered{justify-content:center}html.theme--documenter-dark .file.is-fullwidth .file-label{width:100%}html.theme--documenter-dark .file.is-fullwidth .file-name{flex-grow:1;max-width:none}html.theme--documenter-dark .file.is-right{justify-content:flex-end}html.theme--documenter-dark .file.is-right .file-cta{border-radius:0 .4em .4em 0}html.theme--documenter-dark .file.is-right .file-name{border-radius:.4em 0 0 .4em;border-width:1px 0 1px 1px;order:-1}html.theme--documenter-dark .file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}html.theme--documenter-dark .file-label:hover .file-cta{background-color:#e5eaec;color:#282f2f}html.theme--documenter-dark .file-label:hover .file-name{border-color:#596668}html.theme--documenter-dark .file-label:active .file-cta{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .file-label:active .file-name{border-color:#535f61}html.theme--documenter-dark .file-input{height:100%;left:0;opacity:0;outline:none;position:absolute;top:0;width:100%}html.theme--documenter-dark .file-cta,html.theme--documenter-dark .file-name{border-color:#5e6d6f;border-radius:.4em;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}html.theme--documenter-dark .file-cta{background-color:#ecf0f1;color:#343c3d}html.theme--documenter-dark .file-name{border-color:#5e6d6f;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:left;text-overflow:ellipsis}html.theme--documenter-dark .file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:0.5em;width:1em}html.theme--documenter-dark .file-icon .fa{font-size:14px}html.theme--documenter-dark .label{color:#282f2f;display:block;font-size:15px;font-weight:700}html.theme--documenter-dark .label:not(:last-child){margin-bottom:0.5em}html.theme--documenter-dark .label.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.label{font-size:.85em}html.theme--documenter-dark .label.is-medium{font-size:1.25rem}html.theme--documenter-dark .label.is-large{font-size:1.5rem}html.theme--documenter-dark .help{display:block;font-size:.85em;margin-top:0.25rem}html.theme--documenter-dark .help.is-white{color:#fff}html.theme--documenter-dark .help.is-black{color:#0a0a0a}html.theme--documenter-dark .help.is-light{color:#ecf0f1}html.theme--documenter-dark .help.is-dark,html.theme--documenter-dark .content kbd.help{color:#282f2f}html.theme--documenter-dark .help.is-primary,html.theme--documenter-dark .docstring>section>a.help.docs-sourcelink{color:#375a7f}html.theme--documenter-dark .help.is-link{color:#1abc9c}html.theme--documenter-dark .help.is-info{color:#024c7d}html.theme--documenter-dark .help.is-success{color:#008438}html.theme--documenter-dark .help.is-warning{color:#ad8100}html.theme--documenter-dark .help.is-danger{color:#9e1b0d}html.theme--documenter-dark .field:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .field.has-addons{display:flex;justify-content:flex-start}html.theme--documenter-dark .field.has-addons .control:not(:last-child){margin-right:-1px}html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .button.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-hovered:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select.is-hovered:not([disabled]){z-index:2}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]){z-index:3}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus:hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active:hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]):hover{z-index:4}html.theme--documenter-dark .field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .field.has-addons.has-addons-centered{justify-content:center}html.theme--documenter-dark .field.has-addons.has-addons-right{justify-content:flex-end}html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .field.is-grouped{display:flex;justify-content:flex-start}html.theme--documenter-dark .field.is-grouped>.control{flex-shrink:0}html.theme--documenter-dark .field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:0.75rem}html.theme--documenter-dark .field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .field.is-grouped.is-grouped-centered{justify-content:center}html.theme--documenter-dark .field.is-grouped.is-grouped-right{justify-content:flex-end}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline{flex-wrap:wrap}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline>.control:last-child,html.theme--documenter-dark .field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-0.75rem}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field.is-horizontal{display:flex}}html.theme--documenter-dark .field-label .label{font-size:inherit}@media screen and (max-width: 768px){html.theme--documenter-dark .field-label{margin-bottom:0.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}html.theme--documenter-dark .field-label.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.field-label{font-size:.85em;padding-top:0.375em}html.theme--documenter-dark .field-label.is-normal{padding-top:0.375em}html.theme--documenter-dark .field-label.is-medium{font-size:1.25rem;padding-top:0.375em}html.theme--documenter-dark .field-label.is-large{font-size:1.5rem;padding-top:0.375em}}html.theme--documenter-dark .field-body .field .field{margin-bottom:0}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}html.theme--documenter-dark .field-body .field{margin-bottom:0}html.theme--documenter-dark .field-body>.field{flex-shrink:1}html.theme--documenter-dark .field-body>.field:not(.is-narrow){flex-grow:1}html.theme--documenter-dark .field-body>.field:not(:last-child){margin-right:0.75rem}}html.theme--documenter-dark .control{box-sizing:border-box;clear:both;font-size:15px;position:relative;text-align:left}html.theme--documenter-dark .control.has-icons-left .input:focus~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input:focus~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input:focus~.icon,html.theme--documenter-dark .control.has-icons-left .select:focus~.icon,html.theme--documenter-dark .control.has-icons-right .input:focus~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input:focus~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input:focus~.icon,html.theme--documenter-dark .control.has-icons-right .select:focus~.icon{color:#5e6d6f}html.theme--documenter-dark .control.has-icons-left .input.is-small~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-small~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-small~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-small~.icon{font-size:.85em}html.theme--documenter-dark .control.has-icons-left .input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}html.theme--documenter-dark .control.has-icons-left .input.is-large~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-large~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-large~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-large~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-large~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-large~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-large~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-large~.icon{font-size:1.5rem}html.theme--documenter-dark .control.has-icons-left .icon,html.theme--documenter-dark .control.has-icons-right .icon{color:#dbdee0;height:2.25em;pointer-events:none;position:absolute;top:0;width:2.25em;z-index:4}html.theme--documenter-dark .control.has-icons-left .input,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input,html.theme--documenter-dark .control.has-icons-left .select select{padding-left:2.25em}html.theme--documenter-dark .control.has-icons-left .icon.is-left{left:0}html.theme--documenter-dark .control.has-icons-right .input,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input,html.theme--documenter-dark .control.has-icons-right .select select{padding-right:2.25em}html.theme--documenter-dark .control.has-icons-right .icon.is-right{right:0}html.theme--documenter-dark .control.is-loading::after{position:absolute !important;right:0.625em;top:0.625em;z-index:4}html.theme--documenter-dark .control.is-loading.is-small:after,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.85em}html.theme--documenter-dark .control.is-loading.is-medium:after{font-size:1.25rem}html.theme--documenter-dark .control.is-loading.is-large:after{font-size:1.5rem}html.theme--documenter-dark .breadcrumb{font-size:15px;white-space:nowrap}html.theme--documenter-dark .breadcrumb a{align-items:center;color:#1abc9c;display:flex;justify-content:center;padding:0 .75em}html.theme--documenter-dark .breadcrumb a:hover{color:#1dd2af}html.theme--documenter-dark .breadcrumb li{align-items:center;display:flex}html.theme--documenter-dark .breadcrumb li:first-child a{padding-left:0}html.theme--documenter-dark .breadcrumb li.is-active a{color:#f2f2f2;cursor:default;pointer-events:none}html.theme--documenter-dark .breadcrumb li+li::before{color:#8c9b9d;content:"\0002f"}html.theme--documenter-dark .breadcrumb ul,html.theme--documenter-dark .breadcrumb ol{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .breadcrumb .icon:first-child{margin-right:0.5em}html.theme--documenter-dark .breadcrumb .icon:last-child{margin-left:0.5em}html.theme--documenter-dark .breadcrumb.is-centered ol,html.theme--documenter-dark .breadcrumb.is-centered ul{justify-content:center}html.theme--documenter-dark .breadcrumb.is-right ol,html.theme--documenter-dark .breadcrumb.is-right ul{justify-content:flex-end}html.theme--documenter-dark .breadcrumb.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.breadcrumb{font-size:.85em}html.theme--documenter-dark .breadcrumb.is-medium{font-size:1.25rem}html.theme--documenter-dark .breadcrumb.is-large{font-size:1.5rem}html.theme--documenter-dark .breadcrumb.has-arrow-separator li+li::before{content:"\02192"}html.theme--documenter-dark .breadcrumb.has-bullet-separator li+li::before{content:"\02022"}html.theme--documenter-dark .breadcrumb.has-dot-separator li+li::before{content:"\000b7"}html.theme--documenter-dark .breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}html.theme--documenter-dark .card{background-color:#fff;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#fff;max-width:100%;position:relative}html.theme--documenter-dark .card-header{background-color:rgba(0,0,0,0);align-items:stretch;box-shadow:0 1px 2px rgba(10,10,10,0.1);display:flex}html.theme--documenter-dark .card-header-title{align-items:center;color:#f2f2f2;display:flex;flex-grow:1;font-weight:700;padding:.75rem}html.theme--documenter-dark .card-header-title.is-centered{justify-content:center}html.theme--documenter-dark .card-header-icon{align-items:center;cursor:pointer;display:flex;justify-content:center;padding:.75rem}html.theme--documenter-dark .card-image{display:block;position:relative}html.theme--documenter-dark .card-content{background-color:rgba(0,0,0,0);padding:1.5rem}html.theme--documenter-dark .card-footer{background-color:rgba(0,0,0,0);border-top:1px solid #5e6d6f;align-items:stretch;display:flex}html.theme--documenter-dark .card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}html.theme--documenter-dark .card-footer-item:not(:last-child){border-right:1px solid #5e6d6f}html.theme--documenter-dark .card .media:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .dropdown{display:inline-flex;position:relative;vertical-align:top}html.theme--documenter-dark .dropdown.is-active .dropdown-menu,html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu{display:block}html.theme--documenter-dark .dropdown.is-right .dropdown-menu{left:auto;right:0}html.theme--documenter-dark .dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}html.theme--documenter-dark .dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}html.theme--documenter-dark .dropdown-content{background-color:#282f2f;border-radius:.4em;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);padding-bottom:.5rem;padding-top:.5rem}html.theme--documenter-dark .dropdown-item{color:#fff;display:block;font-size:0.875rem;line-height:1.5;padding:0.375rem 1rem;position:relative}html.theme--documenter-dark a.dropdown-item,html.theme--documenter-dark button.dropdown-item{padding-right:3rem;text-align:left;white-space:nowrap;width:100%}html.theme--documenter-dark a.dropdown-item:hover,html.theme--documenter-dark button.dropdown-item:hover{background-color:#282f2f;color:#0a0a0a}html.theme--documenter-dark a.dropdown-item.is-active,html.theme--documenter-dark button.dropdown-item.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .dropdown-divider{background-color:#5e6d6f;border:none;display:block;height:1px;margin:0.5rem 0}html.theme--documenter-dark .level{align-items:center;justify-content:space-between}html.theme--documenter-dark .level code{border-radius:.4em}html.theme--documenter-dark .level img{display:inline-block;vertical-align:top}html.theme--documenter-dark .level.is-mobile{display:flex}html.theme--documenter-dark .level.is-mobile .level-left,html.theme--documenter-dark .level.is-mobile .level-right{display:flex}html.theme--documenter-dark .level.is-mobile .level-left+.level-right{margin-top:0}html.theme--documenter-dark .level.is-mobile .level-item:not(:last-child){margin-bottom:0;margin-right:.75rem}html.theme--documenter-dark .level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level{display:flex}html.theme--documenter-dark .level>.level-item:not(.is-narrow){flex-grow:1}}html.theme--documenter-dark .level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}html.theme--documenter-dark .level-item .title,html.theme--documenter-dark .level-item .subtitle{margin-bottom:0}@media screen and (max-width: 768px){html.theme--documenter-dark .level-item:not(:last-child){margin-bottom:.75rem}}html.theme--documenter-dark .level-left,html.theme--documenter-dark .level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .level-left .level-item.is-flexible,html.theme--documenter-dark .level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-left .level-item:not(:last-child),html.theme--documenter-dark .level-right .level-item:not(:last-child){margin-right:.75rem}}html.theme--documenter-dark .level-left{align-items:center;justify-content:flex-start}@media screen and (max-width: 768px){html.theme--documenter-dark .level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-left{display:flex}}html.theme--documenter-dark .level-right{align-items:center;justify-content:flex-end}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-right{display:flex}}html.theme--documenter-dark .list{background-color:#fff;border-radius:.4em;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1)}html.theme--documenter-dark .list-item{display:block;padding:0.5em 1em}html.theme--documenter-dark .list-item:not(a){color:#fff}html.theme--documenter-dark .list-item:first-child{border-top-left-radius:.4em;border-top-right-radius:.4em}html.theme--documenter-dark .list-item:last-child{border-bottom-left-radius:.4em;border-bottom-right-radius:.4em}html.theme--documenter-dark .list-item:not(:last-child){border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .list-item.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark a.list-item{background-color:#282f2f;cursor:pointer}html.theme--documenter-dark .media{align-items:flex-start;display:flex;text-align:left}html.theme--documenter-dark .media .content:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .media .media{border-top:1px solid rgba(94,109,111,0.5);display:flex;padding-top:0.75rem}html.theme--documenter-dark .media .media .content:not(:last-child),html.theme--documenter-dark .media .media .control:not(:last-child){margin-bottom:0.5rem}html.theme--documenter-dark .media .media .media{padding-top:0.5rem}html.theme--documenter-dark .media .media .media+.media{margin-top:0.5rem}html.theme--documenter-dark .media+.media{border-top:1px solid rgba(94,109,111,0.5);margin-top:1rem;padding-top:1rem}html.theme--documenter-dark .media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}html.theme--documenter-dark .media-left,html.theme--documenter-dark .media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .media-left{margin-right:1rem}html.theme--documenter-dark .media-right{margin-left:1rem}html.theme--documenter-dark .media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:left}@media screen and (max-width: 768px){html.theme--documenter-dark .media-content{overflow-x:auto}}html.theme--documenter-dark .menu{font-size:15px}html.theme--documenter-dark .menu.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.menu{font-size:.85em}html.theme--documenter-dark .menu.is-medium{font-size:1.25rem}html.theme--documenter-dark .menu.is-large{font-size:1.5rem}html.theme--documenter-dark .menu-list{line-height:1.25}html.theme--documenter-dark .menu-list a{border-radius:3px;color:#fff;display:block;padding:0.5em 0.75em}html.theme--documenter-dark .menu-list a:hover{background-color:#282f2f;color:#f2f2f2}html.theme--documenter-dark .menu-list a.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .menu-list li ul{border-left:1px solid #5e6d6f;margin:.75em;padding-left:.75em}html.theme--documenter-dark .menu-label{color:#fff;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}html.theme--documenter-dark .menu-label:not(:first-child){margin-top:1em}html.theme--documenter-dark .menu-label:not(:last-child){margin-bottom:1em}html.theme--documenter-dark .message{background-color:#282f2f;border-radius:.4em;font-size:15px}html.theme--documenter-dark .message strong{color:currentColor}html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}html.theme--documenter-dark .message.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.message{font-size:.85em}html.theme--documenter-dark .message.is-medium{font-size:1.25rem}html.theme--documenter-dark .message.is-large{font-size:1.5rem}html.theme--documenter-dark .message.is-white{background-color:#fff}html.theme--documenter-dark .message.is-white .message-header{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .message.is-white .message-body{border-color:#fff;color:#4d4d4d}html.theme--documenter-dark .message.is-black{background-color:#fafafa}html.theme--documenter-dark .message.is-black .message-header{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .message.is-black .message-body{border-color:#0a0a0a;color:#090909}html.theme--documenter-dark .message.is-light{background-color:#f9fafb}html.theme--documenter-dark .message.is-light .message-header{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .message.is-light .message-body{border-color:#ecf0f1;color:#505050}html.theme--documenter-dark .message.is-dark,html.theme--documenter-dark .content kbd.message{background-color:#f9fafa}html.theme--documenter-dark .message.is-dark .message-header,html.theme--documenter-dark .content kbd.message .message-header{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .message.is-dark .message-body,html.theme--documenter-dark .content kbd.message .message-body{border-color:#282f2f;color:#212526}html.theme--documenter-dark .message.is-primary,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink{background-color:#f8fafc}html.theme--documenter-dark .message.is-primary .message-header,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink .message-header{background-color:#375a7f;color:#fff}html.theme--documenter-dark .message.is-primary .message-body,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink .message-body{border-color:#375a7f;color:#2b4159}html.theme--documenter-dark .message.is-link{background-color:#f6fefc}html.theme--documenter-dark .message.is-link .message-header{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .message.is-link .message-body{border-color:#1abc9c;color:#0b2f28}html.theme--documenter-dark .message.is-info{background-color:#f5fbff}html.theme--documenter-dark .message.is-info .message-header{background-color:#024c7d;color:#fff}html.theme--documenter-dark .message.is-info .message-body{border-color:#024c7d;color:#033659}html.theme--documenter-dark .message.is-success{background-color:#f5fff9}html.theme--documenter-dark .message.is-success .message-header{background-color:#008438;color:#fff}html.theme--documenter-dark .message.is-success .message-body{border-color:#008438;color:#023518}html.theme--documenter-dark .message.is-warning{background-color:#fffcf5}html.theme--documenter-dark .message.is-warning .message-header{background-color:#ad8100;color:#fff}html.theme--documenter-dark .message.is-warning .message-body{border-color:#ad8100;color:#3d2e03}html.theme--documenter-dark .message.is-danger{background-color:#fef6f6}html.theme--documenter-dark .message.is-danger .message-header{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .message.is-danger .message-body{border-color:#9e1b0d;color:#7a170c}html.theme--documenter-dark .message-header{align-items:center;background-color:#fff;border-radius:.4em .4em 0 0;color:rgba(0,0,0,0.7);display:flex;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.75em 1em;position:relative}html.theme--documenter-dark .message-header .delete{flex-grow:0;flex-shrink:0;margin-left:0.75em}html.theme--documenter-dark .message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}html.theme--documenter-dark .message-body{border-color:#5e6d6f;border-radius:.4em;border-style:solid;border-width:0 0 0 4px;color:#fff;padding:1.25em 1.5em}html.theme--documenter-dark .message-body code,html.theme--documenter-dark .message-body pre{background-color:#fff}html.theme--documenter-dark .message-body pre code{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .modal{align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}html.theme--documenter-dark .modal.is-active{display:flex}html.theme--documenter-dark .modal-background{background-color:rgba(10,10,10,0.86)}html.theme--documenter-dark .modal-content,html.theme--documenter-dark .modal-card{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width: 769px),print{html.theme--documenter-dark .modal-content,html.theme--documenter-dark .modal-card{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}html.theme--documenter-dark .modal-close{background:none;height:40px;position:fixed;right:20px;top:20px;width:40px}html.theme--documenter-dark .modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}html.theme--documenter-dark .modal-card-head,html.theme--documenter-dark .modal-card-foot{align-items:center;background-color:#282f2f;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}html.theme--documenter-dark .modal-card-head{border-bottom:1px solid #5e6d6f;border-top-left-radius:8px;border-top-right-radius:8px}html.theme--documenter-dark .modal-card-title{color:#f2f2f2;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}html.theme--documenter-dark .modal-card-foot{border-bottom-left-radius:8px;border-bottom-right-radius:8px;border-top:1px solid #5e6d6f}html.theme--documenter-dark .modal-card-foot .button:not(:last-child){margin-right:0.5em}html.theme--documenter-dark .modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}html.theme--documenter-dark .navbar{background-color:#375a7f;min-height:4rem;position:relative;z-index:30}html.theme--documenter-dark .navbar.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link{color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-burger{color:#0a0a0a}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-white .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link{color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link::after{border-color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}html.theme--documenter-dark .navbar.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-black .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}html.theme--documenter-dark .navbar.is-light{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link{color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after{border-color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-burger{color:#282f2f}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-light .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link{color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after{border-color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#ecf0f1;color:#282f2f}}html.theme--documenter-dark .navbar.is-dark,html.theme--documenter-dark .content kbd.navbar{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link{color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after{border-color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-burger,html.theme--documenter-dark .content kbd.navbar .navbar-burger{color:#ecf0f1}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-dark .navbar-start>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-end>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link{color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after{border-color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active{background-color:#282f2f;color:#ecf0f1}}html.theme--documenter-dark .navbar.is-primary,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-burger,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-primary .navbar-start>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-end>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#375a7f;color:#fff}}html.theme--documenter-dark .navbar.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-link .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#1abc9c;color:#fff}}html.theme--documenter-dark .navbar.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-info .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#024c7d;color:#fff}}html.theme--documenter-dark .navbar.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-success .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#008438;color:#fff}}html.theme--documenter-dark .navbar.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-warning .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ad8100;color:#fff}}html.theme--documenter-dark .navbar.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-danger .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#9e1b0d;color:#fff}}html.theme--documenter-dark .navbar>.container{align-items:stretch;display:flex;min-height:4rem;width:100%}html.theme--documenter-dark .navbar.has-shadow{box-shadow:0 2px 0 0 #282f2f}html.theme--documenter-dark .navbar.is-fixed-bottom,html.theme--documenter-dark .navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #282f2f}html.theme--documenter-dark .navbar.is-fixed-top{top:0}html.theme--documenter-dark html.has-navbar-fixed-top,html.theme--documenter-dark body.has-navbar-fixed-top{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom,html.theme--documenter-dark body.has-navbar-fixed-bottom{padding-bottom:4rem}html.theme--documenter-dark .navbar-brand,html.theme--documenter-dark .navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:4rem}html.theme--documenter-dark .navbar-brand a.navbar-item:focus,html.theme--documenter-dark .navbar-brand a.navbar-item:hover{background-color:transparent}html.theme--documenter-dark .navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}html.theme--documenter-dark .navbar-burger{color:#fff;cursor:pointer;display:block;height:4rem;position:relative;width:4rem;margin-left:auto}html.theme--documenter-dark .navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;transform-origin:center;transition-duration:86ms;transition-property:background-color, opacity, transform;transition-timing-function:ease-out;width:16px}html.theme--documenter-dark .navbar-burger span:nth-child(1){top:calc(50% - 6px)}html.theme--documenter-dark .navbar-burger span:nth-child(2){top:calc(50% - 1px)}html.theme--documenter-dark .navbar-burger span:nth-child(3){top:calc(50% + 4px)}html.theme--documenter-dark .navbar-burger:hover{background-color:rgba(0,0,0,0.05)}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2){opacity:0}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}html.theme--documenter-dark .navbar-menu{display:none}html.theme--documenter-dark .navbar-item,html.theme--documenter-dark .navbar-link{color:#fff;display:block;line-height:1.5;padding:0.5rem 0.75rem;position:relative}html.theme--documenter-dark .navbar-item .icon:only-child,html.theme--documenter-dark .navbar-link .icon:only-child{margin-left:-0.25rem;margin-right:-0.25rem}html.theme--documenter-dark a.navbar-item,html.theme--documenter-dark .navbar-link{cursor:pointer}html.theme--documenter-dark a.navbar-item:focus,html.theme--documenter-dark a.navbar-item:focus-within,html.theme--documenter-dark a.navbar-item:hover,html.theme--documenter-dark a.navbar-item.is-active,html.theme--documenter-dark .navbar-link:focus,html.theme--documenter-dark .navbar-link:focus-within,html.theme--documenter-dark .navbar-link:hover,html.theme--documenter-dark .navbar-link.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}html.theme--documenter-dark .navbar-item{display:block;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .navbar-item img{max-height:1.75rem}html.theme--documenter-dark .navbar-item.has-dropdown{padding:0}html.theme--documenter-dark .navbar-item.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .navbar-item.is-tab{border-bottom:1px solid transparent;min-height:4rem;padding-bottom:calc(0.5rem - 1px)}html.theme--documenter-dark .navbar-item.is-tab:focus,html.theme--documenter-dark .navbar-item.is-tab:hover{background-color:rgba(0,0,0,0);border-bottom-color:#1abc9c}html.theme--documenter-dark .navbar-item.is-tab.is-active{background-color:rgba(0,0,0,0);border-bottom-color:#1abc9c;border-bottom-style:solid;border-bottom-width:3px;color:#1abc9c;padding-bottom:calc(0.5rem - 3px)}html.theme--documenter-dark .navbar-content{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .navbar-link:not(.is-arrowless){padding-right:2.5em}html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after{border-color:#fff;margin-top:-0.375em;right:1.125em}html.theme--documenter-dark .navbar-dropdown{font-size:0.875rem;padding-bottom:0.5rem;padding-top:0.5rem}html.theme--documenter-dark .navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}html.theme--documenter-dark .navbar-divider{background-color:rgba(0,0,0,0.2);border:none;display:none;height:2px;margin:0.5rem 0}@media screen and (max-width: 1055px){html.theme--documenter-dark .navbar>.container{display:block}html.theme--documenter-dark .navbar-brand .navbar-item,html.theme--documenter-dark .navbar-tabs .navbar-item{align-items:center;display:flex}html.theme--documenter-dark .navbar-link::after{display:none}html.theme--documenter-dark .navbar-menu{background-color:#375a7f;box-shadow:0 8px 16px rgba(10,10,10,0.1);padding:0.5rem 0}html.theme--documenter-dark .navbar-menu.is-active{display:block}html.theme--documenter-dark .navbar.is-fixed-bottom-touch,html.theme--documenter-dark .navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom-touch{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}html.theme--documenter-dark .navbar.is-fixed-top-touch{top:0}html.theme--documenter-dark .navbar.is-fixed-top .navbar-menu,html.theme--documenter-dark .navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 4rem);overflow:auto}html.theme--documenter-dark html.has-navbar-fixed-top-touch,html.theme--documenter-dark body.has-navbar-fixed-top-touch{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom-touch,html.theme--documenter-dark body.has-navbar-fixed-bottom-touch{padding-bottom:4rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar,html.theme--documenter-dark .navbar-menu,html.theme--documenter-dark .navbar-start,html.theme--documenter-dark .navbar-end{align-items:stretch;display:flex}html.theme--documenter-dark .navbar{min-height:4rem}html.theme--documenter-dark .navbar.is-spaced{padding:1rem 2rem}html.theme--documenter-dark .navbar.is-spaced .navbar-start,html.theme--documenter-dark .navbar.is-spaced .navbar-end{align-items:center}html.theme--documenter-dark .navbar.is-spaced a.navbar-item,html.theme--documenter-dark .navbar.is-spaced .navbar-link{border-radius:.4em}html.theme--documenter-dark .navbar.is-transparent a.navbar-item:focus,html.theme--documenter-dark .navbar.is-transparent a.navbar-item:hover,html.theme--documenter-dark .navbar.is-transparent a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-transparent .navbar-link:focus,html.theme--documenter-dark .navbar.is-transparent .navbar-link:hover,html.theme--documenter-dark .navbar.is-transparent .navbar-link.is-active{background-color:transparent !important}html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent !important}html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:focus,html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:rgba(0,0,0,0);color:#dbdee0}html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}html.theme--documenter-dark .navbar-burger{display:none}html.theme--documenter-dark .navbar-item,html.theme--documenter-dark .navbar-link{align-items:center;display:flex}html.theme--documenter-dark .navbar-item{display:flex}html.theme--documenter-dark .navbar-item.has-dropdown{align-items:stretch}html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-link::after{transform:rotate(135deg) translate(0.25em, -0.25em)}html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-dropdown{border-bottom:1px solid rgba(0,0,0,0.2);border-radius:8px 8px 0 0;border-top:none;bottom:100%;box-shadow:0 -8px 8px rgba(10,10,10,0.1);top:auto}html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed{opacity:1;pointer-events:auto;transform:translateY(0)}html.theme--documenter-dark .navbar-menu{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .navbar-start{justify-content:flex-start;margin-right:auto}html.theme--documenter-dark .navbar-end{justify-content:flex-end;margin-left:auto}html.theme--documenter-dark .navbar-dropdown{background-color:#375a7f;border-bottom-left-radius:8px;border-bottom-right-radius:8px;border-top:1px solid rgba(0,0,0,0.2);box-shadow:0 8px 8px rgba(10,10,10,0.1);display:none;font-size:0.875rem;left:0;min-width:100%;position:absolute;top:100%;z-index:20}html.theme--documenter-dark .navbar-dropdown .navbar-item{padding:0.375rem 1rem;white-space:nowrap}html.theme--documenter-dark .navbar-dropdown a.navbar-item{padding-right:3rem}html.theme--documenter-dark .navbar-dropdown a.navbar-item:focus,html.theme--documenter-dark .navbar-dropdown a.navbar-item:hover{background-color:rgba(0,0,0,0);color:#dbdee0}html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}.navbar.is-spaced html.theme--documenter-dark .navbar-dropdown,html.theme--documenter-dark .navbar-dropdown.is-boxed{border-radius:8px;border-top:none;box-shadow:0 8px 8px rgba(10,10,10,0.1), 0 0 0 1px rgba(10,10,10,0.1);display:block;opacity:0;pointer-events:none;top:calc(100% + (-4px));transform:translateY(-5px);transition-duration:86ms;transition-property:opacity, transform}html.theme--documenter-dark .navbar-dropdown.is-right{left:auto;right:0}html.theme--documenter-dark .navbar-divider{display:block}html.theme--documenter-dark .navbar>.container .navbar-brand,html.theme--documenter-dark .container>.navbar .navbar-brand{margin-left:-.75rem}html.theme--documenter-dark .navbar>.container .navbar-menu,html.theme--documenter-dark .container>.navbar .navbar-menu{margin-right:-.75rem}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop,html.theme--documenter-dark .navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}html.theme--documenter-dark .navbar.is-fixed-top-desktop{top:0}html.theme--documenter-dark html.has-navbar-fixed-top-desktop,html.theme--documenter-dark body.has-navbar-fixed-top-desktop{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom-desktop,html.theme--documenter-dark body.has-navbar-fixed-bottom-desktop{padding-bottom:4rem}html.theme--documenter-dark html.has-spaced-navbar-fixed-top,html.theme--documenter-dark body.has-spaced-navbar-fixed-top{padding-top:6rem}html.theme--documenter-dark html.has-spaced-navbar-fixed-bottom,html.theme--documenter-dark body.has-spaced-navbar-fixed-bottom{padding-bottom:6rem}html.theme--documenter-dark a.navbar-item.is-active,html.theme--documenter-dark .navbar-link.is-active{color:#1abc9c}html.theme--documenter-dark a.navbar-item.is-active:not(:focus):not(:hover),html.theme--documenter-dark .navbar-link.is-active:not(:focus):not(:hover){background-color:rgba(0,0,0,0)}html.theme--documenter-dark .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar-item.has-dropdown.is-active .navbar-link{background-color:rgba(0,0,0,0)}}html.theme--documenter-dark .hero.is-fullheight-with-navbar{min-height:calc(100vh - 4rem)}html.theme--documenter-dark .pagination{font-size:15px;margin:-.25rem}html.theme--documenter-dark .pagination.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination{font-size:.85em}html.theme--documenter-dark .pagination.is-medium{font-size:1.25rem}html.theme--documenter-dark .pagination.is-large{font-size:1.5rem}html.theme--documenter-dark .pagination.is-rounded .pagination-previous,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-previous,html.theme--documenter-dark .pagination.is-rounded .pagination-next,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-next{padding-left:1em;padding-right:1em;border-radius:290486px}html.theme--documenter-dark .pagination.is-rounded .pagination-link,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-link{border-radius:290486px}html.theme--documenter-dark .pagination,html.theme--documenter-dark .pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link{border-color:#5e6d6f;color:#1abc9c;min-width:2.25em}html.theme--documenter-dark .pagination-previous:hover,html.theme--documenter-dark .pagination-next:hover,html.theme--documenter-dark .pagination-link:hover{border-color:#8c9b9d;color:#1dd2af}html.theme--documenter-dark .pagination-previous:focus,html.theme--documenter-dark .pagination-next:focus,html.theme--documenter-dark .pagination-link:focus{border-color:#8c9b9d}html.theme--documenter-dark .pagination-previous:active,html.theme--documenter-dark .pagination-next:active,html.theme--documenter-dark .pagination-link:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2)}html.theme--documenter-dark .pagination-previous[disabled],html.theme--documenter-dark .pagination-next[disabled],html.theme--documenter-dark .pagination-link[disabled]{background-color:#dbdee0;border-color:#dbdee0;box-shadow:none;color:#5e6d6f;opacity:0.5}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next{padding-left:0.75em;padding-right:0.75em;white-space:nowrap}html.theme--documenter-dark .pagination-link.is-current{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .pagination-ellipsis{color:#8c9b9d;pointer-events:none}html.theme--documenter-dark .pagination-list{flex-wrap:wrap}@media screen and (max-width: 768px){html.theme--documenter-dark .pagination{flex-wrap:wrap}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}html.theme--documenter-dark .pagination-previous{order:2}html.theme--documenter-dark .pagination-next{order:3}html.theme--documenter-dark .pagination{justify-content:space-between}html.theme--documenter-dark .pagination.is-centered .pagination-previous{order:1}html.theme--documenter-dark .pagination.is-centered .pagination-list{justify-content:center;order:2}html.theme--documenter-dark .pagination.is-centered .pagination-next{order:3}html.theme--documenter-dark .pagination.is-right .pagination-previous{order:1}html.theme--documenter-dark .pagination.is-right .pagination-next{order:2}html.theme--documenter-dark .pagination.is-right .pagination-list{justify-content:flex-end;order:3}}html.theme--documenter-dark .panel{font-size:15px}html.theme--documenter-dark .panel:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .panel-heading,html.theme--documenter-dark .panel-tabs,html.theme--documenter-dark .panel-block{border-bottom:1px solid #5e6d6f;border-left:1px solid #5e6d6f;border-right:1px solid #5e6d6f}html.theme--documenter-dark .panel-heading:first-child,html.theme--documenter-dark .panel-tabs:first-child,html.theme--documenter-dark .panel-block:first-child{border-top:1px solid #5e6d6f}html.theme--documenter-dark .panel-heading{background-color:#282f2f;border-radius:.4em .4em 0 0;color:#f2f2f2;font-size:1.25em;font-weight:300;line-height:1.25;padding:0.5em 0.75em}html.theme--documenter-dark .panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}html.theme--documenter-dark .panel-tabs a{border-bottom:1px solid #5e6d6f;margin-bottom:-1px;padding:0.5em}html.theme--documenter-dark .panel-tabs a.is-active{border-bottom-color:#343c3d;color:#17a689}html.theme--documenter-dark .panel-list a{color:#fff}html.theme--documenter-dark .panel-list a:hover{color:#1abc9c}html.theme--documenter-dark .panel-block{align-items:center;color:#f2f2f2;display:flex;justify-content:flex-start;padding:0.5em 0.75em}html.theme--documenter-dark .panel-block input[type="checkbox"]{margin-right:0.75em}html.theme--documenter-dark .panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}html.theme--documenter-dark .panel-block.is-wrapped{flex-wrap:wrap}html.theme--documenter-dark .panel-block.is-active{border-left-color:#1abc9c;color:#17a689}html.theme--documenter-dark .panel-block.is-active .panel-icon{color:#1abc9c}html.theme--documenter-dark a.panel-block,html.theme--documenter-dark label.panel-block{cursor:pointer}html.theme--documenter-dark a.panel-block:hover,html.theme--documenter-dark label.panel-block:hover{background-color:#282f2f}html.theme--documenter-dark .panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#fff;margin-right:0.75em}html.theme--documenter-dark .panel-icon .fa{font-size:inherit;line-height:inherit}html.theme--documenter-dark .tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:15px;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}html.theme--documenter-dark .tabs a{align-items:center;border-bottom-color:#5e6d6f;border-bottom-style:solid;border-bottom-width:1px;color:#fff;display:flex;justify-content:center;margin-bottom:-1px;padding:0.5em 1em;vertical-align:top}html.theme--documenter-dark .tabs a:hover{border-bottom-color:#f2f2f2;color:#f2f2f2}html.theme--documenter-dark .tabs li{display:block}html.theme--documenter-dark .tabs li.is-active a{border-bottom-color:#1abc9c;color:#1abc9c}html.theme--documenter-dark .tabs ul{align-items:center;border-bottom-color:#5e6d6f;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}html.theme--documenter-dark .tabs ul.is-left{padding-right:0.75em}html.theme--documenter-dark .tabs ul.is-center{flex:none;justify-content:center;padding-left:0.75em;padding-right:0.75em}html.theme--documenter-dark .tabs ul.is-right{justify-content:flex-end;padding-left:0.75em}html.theme--documenter-dark .tabs .icon:first-child{margin-right:0.5em}html.theme--documenter-dark .tabs .icon:last-child{margin-left:0.5em}html.theme--documenter-dark .tabs.is-centered ul{justify-content:center}html.theme--documenter-dark .tabs.is-right ul{justify-content:flex-end}html.theme--documenter-dark .tabs.is-boxed a{border:1px solid transparent;border-radius:.4em .4em 0 0}html.theme--documenter-dark .tabs.is-boxed a:hover{background-color:#282f2f;border-bottom-color:#5e6d6f}html.theme--documenter-dark .tabs.is-boxed li.is-active a{background-color:#fff;border-color:#5e6d6f;border-bottom-color:rgba(0,0,0,0) !important}html.theme--documenter-dark .tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .tabs.is-toggle a{border-color:#5e6d6f;border-style:solid;border-width:1px;margin-bottom:0;position:relative}html.theme--documenter-dark .tabs.is-toggle a:hover{background-color:#282f2f;border-color:#8c9b9d;z-index:2}html.theme--documenter-dark .tabs.is-toggle li+li{margin-left:-1px}html.theme--documenter-dark .tabs.is-toggle li:first-child a{border-radius:.4em 0 0 .4em}html.theme--documenter-dark .tabs.is-toggle li:last-child a{border-radius:0 .4em .4em 0}html.theme--documenter-dark .tabs.is-toggle li.is-active a{background-color:#1abc9c;border-color:#1abc9c;color:#fff;z-index:1}html.theme--documenter-dark .tabs.is-toggle ul{border-bottom:none}html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a{border-bottom-left-radius:290486px;border-top-left-radius:290486px;padding-left:1.25em}html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:290486px;border-top-right-radius:290486px;padding-right:1.25em}html.theme--documenter-dark .tabs.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.tabs{font-size:.85em}html.theme--documenter-dark .tabs.is-medium{font-size:1.25rem}html.theme--documenter-dark .tabs.is-large{font-size:1.5rem}html.theme--documenter-dark .column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>html.theme--documenter-dark .column.is-narrow{flex:none}.columns.is-mobile>html.theme--documenter-dark .column.is-full{flex:none;width:100%}.columns.is-mobile>html.theme--documenter-dark .column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>html.theme--documenter-dark .column.is-half{flex:none;width:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>html.theme--documenter-dark .column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>html.theme--documenter-dark .column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>html.theme--documenter-dark .column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-half{margin-left:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>html.theme--documenter-dark .column.is-0{flex:none;width:0%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-0{margin-left:0%}.columns.is-mobile>html.theme--documenter-dark .column.is-1{flex:none;width:8.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-1{margin-left:8.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-2{flex:none;width:16.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-2{margin-left:16.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-3{flex:none;width:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-3{margin-left:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-4{flex:none;width:33.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-4{margin-left:33.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-5{flex:none;width:41.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-5{margin-left:41.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-6{flex:none;width:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-6{margin-left:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-7{flex:none;width:58.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-7{margin-left:58.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-8{flex:none;width:66.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-8{margin-left:66.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-9{flex:none;width:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-9{margin-left:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-10{flex:none;width:83.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-10{margin-left:83.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-11{flex:none;width:91.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-11{margin-left:91.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-12{flex:none;width:100%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-12{margin-left:100%}@media screen and (max-width: 768px){html.theme--documenter-dark .column.is-narrow-mobile{flex:none}html.theme--documenter-dark .column.is-full-mobile{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-mobile{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-mobile{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-mobile{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-mobile{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-mobile{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-mobile{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-mobile{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-mobile{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-mobile{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-mobile{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-mobile{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-mobile{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-mobile{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-mobile{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-mobile{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-mobile{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-mobile{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-mobile{margin-left:80%}html.theme--documenter-dark .column.is-0-mobile{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-mobile{margin-left:0%}html.theme--documenter-dark .column.is-1-mobile{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-mobile{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-mobile{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-mobile{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-mobile{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-mobile{margin-left:25%}html.theme--documenter-dark .column.is-4-mobile{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-mobile{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-mobile{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-mobile{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-mobile{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-mobile{margin-left:50%}html.theme--documenter-dark .column.is-7-mobile{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-mobile{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-mobile{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-mobile{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-mobile{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-mobile{margin-left:75%}html.theme--documenter-dark .column.is-10-mobile{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-mobile{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-mobile{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-mobile{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-mobile{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .column.is-narrow,html.theme--documenter-dark .column.is-narrow-tablet{flex:none}html.theme--documenter-dark .column.is-full,html.theme--documenter-dark .column.is-full-tablet{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters,html.theme--documenter-dark .column.is-three-quarters-tablet{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds,html.theme--documenter-dark .column.is-two-thirds-tablet{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half,html.theme--documenter-dark .column.is-half-tablet{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third,html.theme--documenter-dark .column.is-one-third-tablet{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter,html.theme--documenter-dark .column.is-one-quarter-tablet{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth,html.theme--documenter-dark .column.is-one-fifth-tablet{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths,html.theme--documenter-dark .column.is-two-fifths-tablet{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths,html.theme--documenter-dark .column.is-three-fifths-tablet{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths,html.theme--documenter-dark .column.is-four-fifths-tablet{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters,html.theme--documenter-dark .column.is-offset-three-quarters-tablet{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds,html.theme--documenter-dark .column.is-offset-two-thirds-tablet{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half,html.theme--documenter-dark .column.is-offset-half-tablet{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third,html.theme--documenter-dark .column.is-offset-one-third-tablet{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter,html.theme--documenter-dark .column.is-offset-one-quarter-tablet{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth,html.theme--documenter-dark .column.is-offset-one-fifth-tablet{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths,html.theme--documenter-dark .column.is-offset-two-fifths-tablet{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths,html.theme--documenter-dark .column.is-offset-three-fifths-tablet{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths,html.theme--documenter-dark .column.is-offset-four-fifths-tablet{margin-left:80%}html.theme--documenter-dark .column.is-0,html.theme--documenter-dark .column.is-0-tablet{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0,html.theme--documenter-dark .column.is-offset-0-tablet{margin-left:0%}html.theme--documenter-dark .column.is-1,html.theme--documenter-dark .column.is-1-tablet{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1,html.theme--documenter-dark .column.is-offset-1-tablet{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2,html.theme--documenter-dark .column.is-2-tablet{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2,html.theme--documenter-dark .column.is-offset-2-tablet{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3,html.theme--documenter-dark .column.is-3-tablet{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3,html.theme--documenter-dark .column.is-offset-3-tablet{margin-left:25%}html.theme--documenter-dark .column.is-4,html.theme--documenter-dark .column.is-4-tablet{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4,html.theme--documenter-dark .column.is-offset-4-tablet{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5,html.theme--documenter-dark .column.is-5-tablet{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5,html.theme--documenter-dark .column.is-offset-5-tablet{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6,html.theme--documenter-dark .column.is-6-tablet{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6,html.theme--documenter-dark .column.is-offset-6-tablet{margin-left:50%}html.theme--documenter-dark .column.is-7,html.theme--documenter-dark .column.is-7-tablet{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7,html.theme--documenter-dark .column.is-offset-7-tablet{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8,html.theme--documenter-dark .column.is-8-tablet{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8,html.theme--documenter-dark .column.is-offset-8-tablet{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9,html.theme--documenter-dark .column.is-9-tablet{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9,html.theme--documenter-dark .column.is-offset-9-tablet{margin-left:75%}html.theme--documenter-dark .column.is-10,html.theme--documenter-dark .column.is-10-tablet{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10,html.theme--documenter-dark .column.is-offset-10-tablet{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11,html.theme--documenter-dark .column.is-11-tablet{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11,html.theme--documenter-dark .column.is-offset-11-tablet{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12,html.theme--documenter-dark .column.is-12-tablet{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12,html.theme--documenter-dark .column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width: 1055px){html.theme--documenter-dark .column.is-narrow-touch{flex:none}html.theme--documenter-dark .column.is-full-touch{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-touch{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-touch{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-touch{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-touch{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-touch{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-touch{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-touch{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-touch{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-touch{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-touch{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-touch{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-touch{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-touch{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-touch{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-touch{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-touch{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-touch{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-touch{margin-left:80%}html.theme--documenter-dark .column.is-0-touch{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-touch{margin-left:0%}html.theme--documenter-dark .column.is-1-touch{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-touch{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-touch{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-touch{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-touch{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-touch{margin-left:25%}html.theme--documenter-dark .column.is-4-touch{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-touch{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-touch{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-touch{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-touch{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-touch{margin-left:50%}html.theme--documenter-dark .column.is-7-touch{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-touch{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-touch{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-touch{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-touch{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-touch{margin-left:75%}html.theme--documenter-dark .column.is-10-touch{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-touch{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-touch{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-touch{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-touch{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width: 1056px){html.theme--documenter-dark .column.is-narrow-desktop{flex:none}html.theme--documenter-dark .column.is-full-desktop{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-desktop{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-desktop{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-desktop{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-desktop{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-desktop{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-desktop{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-desktop{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-desktop{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-desktop{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-desktop{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-desktop{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-desktop{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-desktop{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-desktop{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-desktop{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-desktop{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-desktop{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-desktop{margin-left:80%}html.theme--documenter-dark .column.is-0-desktop{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-desktop{margin-left:0%}html.theme--documenter-dark .column.is-1-desktop{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-desktop{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-desktop{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-desktop{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-desktop{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-desktop{margin-left:25%}html.theme--documenter-dark .column.is-4-desktop{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-desktop{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-desktop{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-desktop{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-desktop{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-desktop{margin-left:50%}html.theme--documenter-dark .column.is-7-desktop{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-desktop{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-desktop{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-desktop{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-desktop{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-desktop{margin-left:75%}html.theme--documenter-dark .column.is-10-desktop{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-desktop{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-desktop{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-desktop{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-desktop{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width: 1216px){html.theme--documenter-dark .column.is-narrow-widescreen{flex:none}html.theme--documenter-dark .column.is-full-widescreen{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-widescreen{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-widescreen{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-widescreen{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-widescreen{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-widescreen{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-widescreen{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-widescreen{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-widescreen{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-widescreen{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-widescreen{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-widescreen{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-widescreen{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-widescreen{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-widescreen{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-widescreen{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-widescreen{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-widescreen{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-widescreen{margin-left:80%}html.theme--documenter-dark .column.is-0-widescreen{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-widescreen{margin-left:0%}html.theme--documenter-dark .column.is-1-widescreen{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-widescreen{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-widescreen{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-widescreen{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-widescreen{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-widescreen{margin-left:25%}html.theme--documenter-dark .column.is-4-widescreen{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-widescreen{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-widescreen{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-widescreen{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-widescreen{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-widescreen{margin-left:50%}html.theme--documenter-dark .column.is-7-widescreen{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-widescreen{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-widescreen{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-widescreen{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-widescreen{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-widescreen{margin-left:75%}html.theme--documenter-dark .column.is-10-widescreen{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-widescreen{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-widescreen{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-widescreen{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-widescreen{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width: 1408px){html.theme--documenter-dark .column.is-narrow-fullhd{flex:none}html.theme--documenter-dark .column.is-full-fullhd{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-fullhd{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-fullhd{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-fullhd{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-fullhd{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-fullhd{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-fullhd{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-fullhd{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-fullhd{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-fullhd{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-fullhd{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-fullhd{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-fullhd{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-fullhd{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-fullhd{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-fullhd{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-fullhd{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-fullhd{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-fullhd{margin-left:80%}html.theme--documenter-dark .column.is-0-fullhd{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-fullhd{margin-left:0%}html.theme--documenter-dark .column.is-1-fullhd{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-fullhd{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-fullhd{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-fullhd{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-fullhd{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-fullhd{margin-left:25%}html.theme--documenter-dark .column.is-4-fullhd{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-fullhd{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-fullhd{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-fullhd{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-fullhd{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-fullhd{margin-left:50%}html.theme--documenter-dark .column.is-7-fullhd{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-fullhd{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-fullhd{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-fullhd{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-fullhd{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-fullhd{margin-left:75%}html.theme--documenter-dark .column.is-10-fullhd{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-fullhd{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-fullhd{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-fullhd{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-fullhd{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-fullhd{margin-left:100%}}html.theme--documenter-dark .columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}html.theme--documenter-dark .columns:last-child{margin-bottom:-.75rem}html.theme--documenter-dark .columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}html.theme--documenter-dark .columns.is-centered{justify-content:center}html.theme--documenter-dark .columns.is-gapless{margin-left:0;margin-right:0;margin-top:0}html.theme--documenter-dark .columns.is-gapless>.column{margin:0;padding:0 !important}html.theme--documenter-dark .columns.is-gapless:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .columns.is-gapless:last-child{margin-bottom:0}html.theme--documenter-dark .columns.is-mobile{display:flex}html.theme--documenter-dark .columns.is-multiline{flex-wrap:wrap}html.theme--documenter-dark .columns.is-vcentered{align-items:center}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns:not(.is-desktop){display:flex}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-desktop{display:flex}}html.theme--documenter-dark .columns.is-variable{--columnGap: 0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}html.theme--documenter-dark .columns.is-variable .column{padding-left:var(--columnGap);padding-right:var(--columnGap)}html.theme--documenter-dark .columns.is-variable.is-0{--columnGap: 0rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-0-mobile{--columnGap: 0rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-0-tablet{--columnGap: 0rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-0-tablet-only{--columnGap: 0rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-0-touch{--columnGap: 0rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-0-desktop{--columnGap: 0rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-0-desktop-only{--columnGap: 0rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-0-widescreen{--columnGap: 0rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-0-widescreen-only{--columnGap: 0rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-0-fullhd{--columnGap: 0rem}}html.theme--documenter-dark .columns.is-variable.is-1{--columnGap: .25rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-1-mobile{--columnGap: .25rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-1-tablet{--columnGap: .25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-1-tablet-only{--columnGap: .25rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-1-touch{--columnGap: .25rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-1-desktop{--columnGap: .25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-1-desktop-only{--columnGap: .25rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-1-widescreen{--columnGap: .25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only{--columnGap: .25rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-1-fullhd{--columnGap: .25rem}}html.theme--documenter-dark .columns.is-variable.is-2{--columnGap: .5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-2-mobile{--columnGap: .5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-2-tablet{--columnGap: .5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-2-tablet-only{--columnGap: .5rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-2-touch{--columnGap: .5rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-2-desktop{--columnGap: .5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-2-desktop-only{--columnGap: .5rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-2-widescreen{--columnGap: .5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only{--columnGap: .5rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-2-fullhd{--columnGap: .5rem}}html.theme--documenter-dark .columns.is-variable.is-3{--columnGap: .75rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-3-mobile{--columnGap: .75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-3-tablet{--columnGap: .75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-3-tablet-only{--columnGap: .75rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-3-touch{--columnGap: .75rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-3-desktop{--columnGap: .75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-3-desktop-only{--columnGap: .75rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-3-widescreen{--columnGap: .75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only{--columnGap: .75rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-3-fullhd{--columnGap: .75rem}}html.theme--documenter-dark .columns.is-variable.is-4{--columnGap: 1rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-4-mobile{--columnGap: 1rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-4-tablet{--columnGap: 1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-4-tablet-only{--columnGap: 1rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-4-touch{--columnGap: 1rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-4-desktop{--columnGap: 1rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-4-desktop-only{--columnGap: 1rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-4-widescreen{--columnGap: 1rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-4-widescreen-only{--columnGap: 1rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-4-fullhd{--columnGap: 1rem}}html.theme--documenter-dark .columns.is-variable.is-5{--columnGap: 1.25rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-5-mobile{--columnGap: 1.25rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-5-tablet{--columnGap: 1.25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-5-tablet-only{--columnGap: 1.25rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-5-touch{--columnGap: 1.25rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-5-desktop{--columnGap: 1.25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-5-desktop-only{--columnGap: 1.25rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-5-widescreen{--columnGap: 1.25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-5-widescreen-only{--columnGap: 1.25rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-5-fullhd{--columnGap: 1.25rem}}html.theme--documenter-dark .columns.is-variable.is-6{--columnGap: 1.5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-6-mobile{--columnGap: 1.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-6-tablet{--columnGap: 1.5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-6-tablet-only{--columnGap: 1.5rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-6-touch{--columnGap: 1.5rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-6-desktop{--columnGap: 1.5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-6-desktop-only{--columnGap: 1.5rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-6-widescreen{--columnGap: 1.5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-6-widescreen-only{--columnGap: 1.5rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-6-fullhd{--columnGap: 1.5rem}}html.theme--documenter-dark .columns.is-variable.is-7{--columnGap: 1.75rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-7-mobile{--columnGap: 1.75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-7-tablet{--columnGap: 1.75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-7-tablet-only{--columnGap: 1.75rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-7-touch{--columnGap: 1.75rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-7-desktop{--columnGap: 1.75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-7-desktop-only{--columnGap: 1.75rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-7-widescreen{--columnGap: 1.75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-7-widescreen-only{--columnGap: 1.75rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-7-fullhd{--columnGap: 1.75rem}}html.theme--documenter-dark .columns.is-variable.is-8{--columnGap: 2rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-8-mobile{--columnGap: 2rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-8-tablet{--columnGap: 2rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-8-tablet-only{--columnGap: 2rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-8-touch{--columnGap: 2rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-8-desktop{--columnGap: 2rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-8-desktop-only{--columnGap: 2rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-8-widescreen{--columnGap: 2rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-8-widescreen-only{--columnGap: 2rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-8-fullhd{--columnGap: 2rem}}html.theme--documenter-dark .tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:min-content}html.theme--documenter-dark .tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}html.theme--documenter-dark .tile.is-ancestor:last-child{margin-bottom:-.75rem}html.theme--documenter-dark .tile.is-ancestor:not(:last-child){margin-bottom:.75rem}html.theme--documenter-dark .tile.is-child{margin:0 !important}html.theme--documenter-dark .tile.is-parent{padding:.75rem}html.theme--documenter-dark .tile.is-vertical{flex-direction:column}html.theme--documenter-dark .tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem !important}@media screen and (min-width: 769px),print{html.theme--documenter-dark .tile:not(.is-child){display:flex}html.theme--documenter-dark .tile.is-1{flex:none;width:8.3333333333%}html.theme--documenter-dark .tile.is-2{flex:none;width:16.6666666667%}html.theme--documenter-dark .tile.is-3{flex:none;width:25%}html.theme--documenter-dark .tile.is-4{flex:none;width:33.3333333333%}html.theme--documenter-dark .tile.is-5{flex:none;width:41.6666666667%}html.theme--documenter-dark .tile.is-6{flex:none;width:50%}html.theme--documenter-dark .tile.is-7{flex:none;width:58.3333333333%}html.theme--documenter-dark .tile.is-8{flex:none;width:66.6666666667%}html.theme--documenter-dark .tile.is-9{flex:none;width:75%}html.theme--documenter-dark .tile.is-10{flex:none;width:83.3333333333%}html.theme--documenter-dark .tile.is-11{flex:none;width:91.6666666667%}html.theme--documenter-dark .tile.is-12{flex:none;width:100%}}html.theme--documenter-dark .hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}html.theme--documenter-dark .hero .navbar{background:none}html.theme--documenter-dark .hero .tabs ul{border-bottom:none}html.theme--documenter-dark .hero.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-white strong{color:inherit}html.theme--documenter-dark .hero.is-white .title{color:#0a0a0a}html.theme--documenter-dark .hero.is-white .subtitle{color:rgba(10,10,10,0.9)}html.theme--documenter-dark .hero.is-white .subtitle a:not(.button),html.theme--documenter-dark .hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-white .navbar-menu{background-color:#fff}}html.theme--documenter-dark .hero.is-white .navbar-item,html.theme--documenter-dark .hero.is-white .navbar-link{color:rgba(10,10,10,0.7)}html.theme--documenter-dark .hero.is-white a.navbar-item:hover,html.theme--documenter-dark .hero.is-white a.navbar-item.is-active,html.theme--documenter-dark .hero.is-white .navbar-link:hover,html.theme--documenter-dark .hero.is-white .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .hero.is-white .tabs a{color:#0a0a0a;opacity:0.9}html.theme--documenter-dark .hero.is-white .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-white .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-white .tabs.is-boxed a,html.theme--documenter-dark .hero.is-white .tabs.is-toggle a{color:#0a0a0a}html.theme--documenter-dark .hero.is-white .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .hero.is-white.is-bold{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}}html.theme--documenter-dark .hero.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-black strong{color:inherit}html.theme--documenter-dark .hero.is-black .title{color:#fff}html.theme--documenter-dark .hero.is-black .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-black .subtitle a:not(.button),html.theme--documenter-dark .hero.is-black .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-black .navbar-menu{background-color:#0a0a0a}}html.theme--documenter-dark .hero.is-black .navbar-item,html.theme--documenter-dark .hero.is-black .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-black a.navbar-item:hover,html.theme--documenter-dark .hero.is-black a.navbar-item.is-active,html.theme--documenter-dark .hero.is-black .navbar-link:hover,html.theme--documenter-dark .hero.is-black .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .hero.is-black .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-black .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-black .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-black .tabs.is-boxed a,html.theme--documenter-dark .hero.is-black .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-black .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .hero.is-black.is-bold{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}}html.theme--documenter-dark .hero.is-light{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-light strong{color:inherit}html.theme--documenter-dark .hero.is-light .title{color:#282f2f}html.theme--documenter-dark .hero.is-light .subtitle{color:rgba(40,47,47,0.9)}html.theme--documenter-dark .hero.is-light .subtitle a:not(.button),html.theme--documenter-dark .hero.is-light .subtitle strong{color:#282f2f}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-light .navbar-menu{background-color:#ecf0f1}}html.theme--documenter-dark .hero.is-light .navbar-item,html.theme--documenter-dark .hero.is-light .navbar-link{color:rgba(40,47,47,0.7)}html.theme--documenter-dark .hero.is-light a.navbar-item:hover,html.theme--documenter-dark .hero.is-light a.navbar-item.is-active,html.theme--documenter-dark .hero.is-light .navbar-link:hover,html.theme--documenter-dark .hero.is-light .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .hero.is-light .tabs a{color:#282f2f;opacity:0.9}html.theme--documenter-dark .hero.is-light .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-light .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-light .tabs.is-boxed a,html.theme--documenter-dark .hero.is-light .tabs.is-toggle a{color:#282f2f}html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .hero.is-light.is-bold{background-image:linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%)}}html.theme--documenter-dark .hero.is-dark,html.theme--documenter-dark .content kbd.hero{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-dark strong,html.theme--documenter-dark .content kbd.hero strong{color:inherit}html.theme--documenter-dark .hero.is-dark .title,html.theme--documenter-dark .content kbd.hero .title{color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .subtitle,html.theme--documenter-dark .content kbd.hero .subtitle{color:rgba(236,240,241,0.9)}html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button),html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button),html.theme--documenter-dark .hero.is-dark .subtitle strong,html.theme--documenter-dark .content kbd.hero .subtitle strong{color:#ecf0f1}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-dark .navbar-menu,html.theme--documenter-dark .content kbd.hero .navbar-menu{background-color:#282f2f}}html.theme--documenter-dark .hero.is-dark .navbar-item,html.theme--documenter-dark .content kbd.hero .navbar-item,html.theme--documenter-dark .hero.is-dark .navbar-link,html.theme--documenter-dark .content kbd.hero .navbar-link{color:rgba(236,240,241,0.7)}html.theme--documenter-dark .hero.is-dark a.navbar-item:hover,html.theme--documenter-dark .content kbd.hero a.navbar-item:hover,html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active,html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active,html.theme--documenter-dark .hero.is-dark .navbar-link:hover,html.theme--documenter-dark .content kbd.hero .navbar-link:hover,html.theme--documenter-dark .hero.is-dark .navbar-link.is-active,html.theme--documenter-dark .content kbd.hero .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .tabs a,html.theme--documenter-dark .content kbd.hero .tabs a{color:#ecf0f1;opacity:0.9}html.theme--documenter-dark .hero.is-dark .tabs a:hover,html.theme--documenter-dark .content kbd.hero .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-dark .tabs li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a{color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .hero.is-dark.is-bold,html.theme--documenter-dark .content kbd.hero.is-bold{background-image:linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu,html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu{background-image:linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%)}}html.theme--documenter-dark .hero.is-primary,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-primary strong,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink strong{color:inherit}html.theme--documenter-dark .hero.is-primary .title,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .title{color:#fff}html.theme--documenter-dark .hero.is-primary .subtitle,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button),html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle a:not(.button),html.theme--documenter-dark .hero.is-primary .subtitle strong,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-primary .navbar-menu,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-menu{background-color:#375a7f}}html.theme--documenter-dark .hero.is-primary .navbar-item,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-item,html.theme--documenter-dark .hero.is-primary .navbar-link,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-primary a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a.navbar-item:hover,html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a.navbar-item.is-active,html.theme--documenter-dark .hero.is-primary .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link:hover,html.theme--documenter-dark .hero.is-primary .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .hero.is-primary .tabs a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-primary .tabs a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-primary .tabs li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#375a7f}html.theme--documenter-dark .hero.is-primary.is-bold,html.theme--documenter-dark .docstring>section>a.hero.is-bold.docs-sourcelink{background-image:linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu,html.theme--documenter-dark .docstring>section>a.hero.is-bold.docs-sourcelink .navbar-menu{background-image:linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%)}}html.theme--documenter-dark .hero.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-link strong{color:inherit}html.theme--documenter-dark .hero.is-link .title{color:#fff}html.theme--documenter-dark .hero.is-link .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-link .subtitle a:not(.button),html.theme--documenter-dark .hero.is-link .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-link .navbar-menu{background-color:#1abc9c}}html.theme--documenter-dark .hero.is-link .navbar-item,html.theme--documenter-dark .hero.is-link .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-link a.navbar-item:hover,html.theme--documenter-dark .hero.is-link a.navbar-item.is-active,html.theme--documenter-dark .hero.is-link .navbar-link:hover,html.theme--documenter-dark .hero.is-link .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .hero.is-link .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-link .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-link .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-link .tabs.is-boxed a,html.theme--documenter-dark .hero.is-link .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#1abc9c}html.theme--documenter-dark .hero.is-link.is-bold{background-image:linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%)}}html.theme--documenter-dark .hero.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-info strong{color:inherit}html.theme--documenter-dark .hero.is-info .title{color:#fff}html.theme--documenter-dark .hero.is-info .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-info .subtitle a:not(.button),html.theme--documenter-dark .hero.is-info .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-info .navbar-menu{background-color:#024c7d}}html.theme--documenter-dark .hero.is-info .navbar-item,html.theme--documenter-dark .hero.is-info .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-info a.navbar-item:hover,html.theme--documenter-dark .hero.is-info a.navbar-item.is-active,html.theme--documenter-dark .hero.is-info .navbar-link:hover,html.theme--documenter-dark .hero.is-info .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .hero.is-info .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-info .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-info .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-info .tabs.is-boxed a,html.theme--documenter-dark .hero.is-info .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#024c7d}html.theme--documenter-dark .hero.is-info.is-bold{background-image:linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%)}}html.theme--documenter-dark .hero.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-success strong{color:inherit}html.theme--documenter-dark .hero.is-success .title{color:#fff}html.theme--documenter-dark .hero.is-success .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-success .subtitle a:not(.button),html.theme--documenter-dark .hero.is-success .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-success .navbar-menu{background-color:#008438}}html.theme--documenter-dark .hero.is-success .navbar-item,html.theme--documenter-dark .hero.is-success .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-success a.navbar-item:hover,html.theme--documenter-dark .hero.is-success a.navbar-item.is-active,html.theme--documenter-dark .hero.is-success .navbar-link:hover,html.theme--documenter-dark .hero.is-success .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .hero.is-success .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-success .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-success .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-success .tabs.is-boxed a,html.theme--documenter-dark .hero.is-success .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#008438}html.theme--documenter-dark .hero.is-success.is-bold{background-image:linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%)}}html.theme--documenter-dark .hero.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-warning strong{color:inherit}html.theme--documenter-dark .hero.is-warning .title{color:#fff}html.theme--documenter-dark .hero.is-warning .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button),html.theme--documenter-dark .hero.is-warning .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-warning .navbar-menu{background-color:#ad8100}}html.theme--documenter-dark .hero.is-warning .navbar-item,html.theme--documenter-dark .hero.is-warning .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-warning a.navbar-item:hover,html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active,html.theme--documenter-dark .hero.is-warning .navbar-link:hover,html.theme--documenter-dark .hero.is-warning .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .hero.is-warning .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-warning .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-warning .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#ad8100}html.theme--documenter-dark .hero.is-warning.is-bold{background-image:linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%)}}html.theme--documenter-dark .hero.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-danger strong{color:inherit}html.theme--documenter-dark .hero.is-danger .title{color:#fff}html.theme--documenter-dark .hero.is-danger .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button),html.theme--documenter-dark .hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-danger .navbar-menu{background-color:#9e1b0d}}html.theme--documenter-dark .hero.is-danger .navbar-item,html.theme--documenter-dark .hero.is-danger .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-danger a.navbar-item:hover,html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active,html.theme--documenter-dark .hero.is-danger .navbar-link:hover,html.theme--documenter-dark .hero.is-danger .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .hero.is-danger .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-danger .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-danger .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#9e1b0d}html.theme--documenter-dark .hero.is-danger.is-bold{background-image:linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%)}}html.theme--documenter-dark .hero.is-small .hero-body,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.hero .hero-body{padding-bottom:1.5rem;padding-top:1.5rem}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero.is-medium .hero-body{padding-bottom:9rem;padding-top:9rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero.is-large .hero-body{padding-bottom:18rem;padding-top:18rem}}html.theme--documenter-dark .hero.is-halfheight .hero-body,html.theme--documenter-dark .hero.is-fullheight .hero-body,html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body{align-items:center;display:flex}html.theme--documenter-dark .hero.is-halfheight .hero-body>.container,html.theme--documenter-dark .hero.is-fullheight .hero-body>.container,html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body>.container{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .hero.is-halfheight{min-height:50vh}html.theme--documenter-dark .hero.is-fullheight{min-height:100vh}html.theme--documenter-dark .hero-video{overflow:hidden}html.theme--documenter-dark .hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%, -50%, 0)}html.theme--documenter-dark .hero-video.is-transparent{opacity:0.3}@media screen and (max-width: 768px){html.theme--documenter-dark .hero-video{display:none}}html.theme--documenter-dark .hero-buttons{margin-top:1.5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .hero-buttons .button{display:flex}html.theme--documenter-dark .hero-buttons .button:not(:last-child){margin-bottom:0.75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero-buttons{display:flex;justify-content:center}html.theme--documenter-dark .hero-buttons .button:not(:last-child){margin-right:1.5rem}}html.theme--documenter-dark .hero-head,html.theme--documenter-dark .hero-foot{flex-grow:0;flex-shrink:0}html.theme--documenter-dark .hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}html.theme--documenter-dark .section{padding:3rem 1.5rem}@media screen and (min-width: 1056px){html.theme--documenter-dark .section.is-medium{padding:9rem 1.5rem}html.theme--documenter-dark .section.is-large{padding:18rem 1.5rem}}html.theme--documenter-dark .footer{background-color:#282f2f;padding:3rem 1.5rem 6rem}html.theme--documenter-dark hr{height:1px}html.theme--documenter-dark h6{text-transform:uppercase;letter-spacing:0.5px}html.theme--documenter-dark .hero{background-color:#343c3d}html.theme--documenter-dark a{transition:all 200ms ease}html.theme--documenter-dark .button{transition:all 200ms ease;border-width:1px;color:#fff}html.theme--documenter-dark .button.is-active,html.theme--documenter-dark .button.is-focused,html.theme--documenter-dark .button:active,html.theme--documenter-dark .button:focus{box-shadow:0 0 0 2px rgba(140,155,157,0.5)}html.theme--documenter-dark .button.is-white.is-hovered,html.theme--documenter-dark .button.is-white:hover{background-color:#fff}html.theme--documenter-dark .button.is-white.is-active,html.theme--documenter-dark .button.is-white.is-focused,html.theme--documenter-dark .button.is-white:active,html.theme--documenter-dark .button.is-white:focus{border-color:#fff;box-shadow:0 0 0 2px rgba(255,255,255,0.5)}html.theme--documenter-dark .button.is-black.is-hovered,html.theme--documenter-dark .button.is-black:hover{background-color:#1d1d1d}html.theme--documenter-dark .button.is-black.is-active,html.theme--documenter-dark .button.is-black.is-focused,html.theme--documenter-dark .button.is-black:active,html.theme--documenter-dark .button.is-black:focus{border-color:#0a0a0a;box-shadow:0 0 0 2px rgba(10,10,10,0.5)}html.theme--documenter-dark .button.is-light.is-hovered,html.theme--documenter-dark .button.is-light:hover{background-color:#fff}html.theme--documenter-dark .button.is-light.is-active,html.theme--documenter-dark .button.is-light.is-focused,html.theme--documenter-dark .button.is-light:active,html.theme--documenter-dark .button.is-light:focus{border-color:#ecf0f1;box-shadow:0 0 0 2px rgba(236,240,241,0.5)}html.theme--documenter-dark .button.is-dark.is-hovered,html.theme--documenter-dark .content kbd.button.is-hovered,html.theme--documenter-dark .button.is-dark:hover,html.theme--documenter-dark .content kbd.button:hover{background-color:#3a4344}html.theme--documenter-dark .button.is-dark.is-active,html.theme--documenter-dark .content kbd.button.is-active,html.theme--documenter-dark .button.is-dark.is-focused,html.theme--documenter-dark .content kbd.button.is-focused,html.theme--documenter-dark .button.is-dark:active,html.theme--documenter-dark .content kbd.button:active,html.theme--documenter-dark .button.is-dark:focus,html.theme--documenter-dark .content kbd.button:focus{border-color:#282f2f;box-shadow:0 0 0 2px rgba(40,47,47,0.5)}html.theme--documenter-dark .button.is-primary.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary:hover,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:hover{background-color:#436d9a}html.theme--documenter-dark .button.is-primary.is-active,html.theme--documenter-dark .docstring>section>a.button.is-active.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink,html.theme--documenter-dark .button.is-primary:active,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:active,html.theme--documenter-dark .button.is-primary:focus,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus{border-color:#375a7f;box-shadow:0 0 0 2px rgba(55,90,127,0.5)}html.theme--documenter-dark .button.is-link.is-hovered,html.theme--documenter-dark .button.is-link:hover{background-color:#1fdeb8}html.theme--documenter-dark .button.is-link.is-active,html.theme--documenter-dark .button.is-link.is-focused,html.theme--documenter-dark .button.is-link:active,html.theme--documenter-dark .button.is-link:focus{border-color:#1abc9c;box-shadow:0 0 0 2px rgba(26,188,156,0.5)}html.theme--documenter-dark .button.is-info.is-hovered,html.theme--documenter-dark .button.is-info:hover{background-color:#0363a3}html.theme--documenter-dark .button.is-info.is-active,html.theme--documenter-dark .button.is-info.is-focused,html.theme--documenter-dark .button.is-info:active,html.theme--documenter-dark .button.is-info:focus{border-color:#024c7d;box-shadow:0 0 0 2px rgba(2,76,125,0.5)}html.theme--documenter-dark .button.is-success.is-hovered,html.theme--documenter-dark .button.is-success:hover{background-color:#00aa48}html.theme--documenter-dark .button.is-success.is-active,html.theme--documenter-dark .button.is-success.is-focused,html.theme--documenter-dark .button.is-success:active,html.theme--documenter-dark .button.is-success:focus{border-color:#008438;box-shadow:0 0 0 2px rgba(0,132,56,0.5)}html.theme--documenter-dark .button.is-warning.is-hovered,html.theme--documenter-dark .button.is-warning:hover{background-color:#d39e00}html.theme--documenter-dark .button.is-warning.is-active,html.theme--documenter-dark .button.is-warning.is-focused,html.theme--documenter-dark .button.is-warning:active,html.theme--documenter-dark .button.is-warning:focus{border-color:#ad8100;box-shadow:0 0 0 2px rgba(173,129,0,0.5)}html.theme--documenter-dark .button.is-danger.is-hovered,html.theme--documenter-dark .button.is-danger:hover{background-color:#c12110}html.theme--documenter-dark .button.is-danger.is-active,html.theme--documenter-dark .button.is-danger.is-focused,html.theme--documenter-dark .button.is-danger:active,html.theme--documenter-dark .button.is-danger:focus{border-color:#9e1b0d;box-shadow:0 0 0 2px rgba(158,27,13,0.5)}html.theme--documenter-dark .label{color:#dbdee0}html.theme--documenter-dark .button,html.theme--documenter-dark .control.has-icons-left .icon,html.theme--documenter-dark .control.has-icons-right .icon,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .select,html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea{height:2.5em}html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .textarea{transition:all 200ms ease;box-shadow:none;border-width:1px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .select:after,html.theme--documenter-dark .select select{border-width:1px}html.theme--documenter-dark .control.has-addons .button,html.theme--documenter-dark .control.has-addons .input,html.theme--documenter-dark .control.has-addons #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-addons form.docs-search>input,html.theme--documenter-dark .control.has-addons .select{margin-right:-1px}html.theme--documenter-dark .notification{background-color:#343c3d}html.theme--documenter-dark .card{box-shadow:none;border:1px solid #343c3d;background-color:#282f2f;border-radius:.4em}html.theme--documenter-dark .card .card-image img{border-radius:.4em .4em 0 0}html.theme--documenter-dark .card .card-header{box-shadow:none;background-color:rgba(18,18,18,0.2);border-radius:.4em .4em 0 0}html.theme--documenter-dark .card .card-footer{background-color:rgba(18,18,18,0.2)}html.theme--documenter-dark .card .card-footer,html.theme--documenter-dark .card .card-footer-item{border-width:1px;border-color:#343c3d}html.theme--documenter-dark .notification.is-white a:not(.button){color:#0a0a0a;text-decoration:underline}html.theme--documenter-dark .notification.is-black a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-light a:not(.button){color:#282f2f;text-decoration:underline}html.theme--documenter-dark .notification.is-dark a:not(.button),html.theme--documenter-dark .content kbd.notification a:not(.button){color:#ecf0f1;text-decoration:underline}html.theme--documenter-dark .notification.is-primary a:not(.button),html.theme--documenter-dark .docstring>section>a.notification.docs-sourcelink a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-link a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-info a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-success a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-warning a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-danger a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .tag,html.theme--documenter-dark .content kbd,html.theme--documenter-dark .docstring>section>a.docs-sourcelink{border-radius:.4em}html.theme--documenter-dark .menu-list a{transition:all 300ms ease}html.theme--documenter-dark .modal-card-body{background-color:#282f2f}html.theme--documenter-dark .modal-card-foot,html.theme--documenter-dark .modal-card-head{border-color:#343c3d}html.theme--documenter-dark .message-header{font-weight:700;background-color:#343c3d;color:#fff}html.theme--documenter-dark .message-body{border-width:1px;border-color:#343c3d}html.theme--documenter-dark .navbar{border-radius:.4em}html.theme--documenter-dark .navbar.is-transparent{background:none}html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#1abc9c}@media screen and (max-width: 1055px){html.theme--documenter-dark .navbar .navbar-menu{background-color:#375a7f;border-radius:0 0 .4em .4em}}html.theme--documenter-dark .hero .navbar,html.theme--documenter-dark body>.navbar{border-radius:0}html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-previous{border-width:1px}html.theme--documenter-dark .panel-block,html.theme--documenter-dark .panel-heading,html.theme--documenter-dark .panel-tabs{border-width:1px}html.theme--documenter-dark .panel-block:first-child,html.theme--documenter-dark .panel-heading:first-child,html.theme--documenter-dark .panel-tabs:first-child{border-top-width:1px}html.theme--documenter-dark .panel-heading{font-weight:700}html.theme--documenter-dark .panel-tabs a{border-width:1px;margin-bottom:-1px}html.theme--documenter-dark .panel-tabs a.is-active{border-bottom-color:#17a689}html.theme--documenter-dark .panel-block:hover{color:#1dd2af}html.theme--documenter-dark .panel-block:hover .panel-icon{color:#1dd2af}html.theme--documenter-dark .panel-block.is-active .panel-icon{color:#17a689}html.theme--documenter-dark .tabs a{border-bottom-width:1px;margin-bottom:-1px}html.theme--documenter-dark .tabs ul{border-bottom-width:1px}html.theme--documenter-dark .tabs.is-boxed a{border-width:1px}html.theme--documenter-dark .tabs.is-boxed li.is-active a{background-color:#1f2424}html.theme--documenter-dark .tabs.is-toggle li a{border-width:1px;margin-bottom:0}html.theme--documenter-dark .tabs.is-toggle li+li{margin-left:-1px}html.theme--documenter-dark .hero.is-white .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-dark .navbar .navbar-dropdown .navbar-item:hover,html.theme--documenter-dark .content kbd.hero .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-primary .navbar .navbar-dropdown .navbar-item:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark h1 .docs-heading-anchor,html.theme--documenter-dark h1 .docs-heading-anchor:hover,html.theme--documenter-dark h1 .docs-heading-anchor:visited,html.theme--documenter-dark h2 .docs-heading-anchor,html.theme--documenter-dark h2 .docs-heading-anchor:hover,html.theme--documenter-dark h2 .docs-heading-anchor:visited,html.theme--documenter-dark h3 .docs-heading-anchor,html.theme--documenter-dark h3 .docs-heading-anchor:hover,html.theme--documenter-dark h3 .docs-heading-anchor:visited,html.theme--documenter-dark h4 .docs-heading-anchor,html.theme--documenter-dark h4 .docs-heading-anchor:hover,html.theme--documenter-dark h4 .docs-heading-anchor:visited,html.theme--documenter-dark h5 .docs-heading-anchor,html.theme--documenter-dark h5 .docs-heading-anchor:hover,html.theme--documenter-dark h5 .docs-heading-anchor:visited,html.theme--documenter-dark h6 .docs-heading-anchor,html.theme--documenter-dark h6 .docs-heading-anchor:hover,html.theme--documenter-dark h6 .docs-heading-anchor:visited{color:#f2f2f2}html.theme--documenter-dark h1 .docs-heading-anchor-permalink,html.theme--documenter-dark h2 .docs-heading-anchor-permalink,html.theme--documenter-dark h3 .docs-heading-anchor-permalink,html.theme--documenter-dark h4 .docs-heading-anchor-permalink,html.theme--documenter-dark h5 .docs-heading-anchor-permalink,html.theme--documenter-dark h6 .docs-heading-anchor-permalink{visibility:hidden;vertical-align:middle;margin-left:0.5em;font-size:0.7rem}html.theme--documenter-dark h1 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h2 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h3 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h4 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h5 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h6 .docs-heading-anchor-permalink::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f0c1"}html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink{visibility:visible}html.theme--documenter-dark .docs-light-only{display:none !important}html.theme--documenter-dark pre{position:relative;overflow:hidden}html.theme--documenter-dark pre code,html.theme--documenter-dark pre code.hljs{padding:0 .75rem !important;overflow:auto;display:block}html.theme--documenter-dark pre code:first-of-type,html.theme--documenter-dark pre code.hljs:first-of-type{padding-top:0.5rem !important}html.theme--documenter-dark pre code:last-of-type,html.theme--documenter-dark pre code.hljs:last-of-type{padding-bottom:0.5rem !important}html.theme--documenter-dark pre .copy-button{opacity:0.2;transition:opacity 0.2s;position:absolute;right:0em;top:0em;padding:0.5em;width:2.5em;height:2.5em;background:transparent;border:none;font-family:"Font Awesome 5 Free";color:#fff;cursor:pointer;text-align:center}html.theme--documenter-dark pre .copy-button:focus,html.theme--documenter-dark pre .copy-button:hover{opacity:1;background:rgba(255,255,255,0.1);color:#1abc9c}html.theme--documenter-dark pre .copy-button.success{color:#259a12;opacity:1}html.theme--documenter-dark pre .copy-button.error{color:#cb3c33;opacity:1}html.theme--documenter-dark pre:hover .copy-button{opacity:1}html.theme--documenter-dark .admonition{background-color:#282f2f;border-style:solid;border-width:1px;border-color:#5e6d6f;border-radius:.4em;font-size:15px}html.theme--documenter-dark .admonition strong{color:currentColor}html.theme--documenter-dark .admonition.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.admonition{font-size:.85em}html.theme--documenter-dark .admonition.is-medium{font-size:1.25rem}html.theme--documenter-dark .admonition.is-large{font-size:1.5rem}html.theme--documenter-dark .admonition.is-default{background-color:#282f2f;border-color:#5e6d6f}html.theme--documenter-dark .admonition.is-default>.admonition-header{background-color:#5e6d6f;color:#fff}html.theme--documenter-dark .admonition.is-default>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-info{background-color:#282f2f;border-color:#024c7d}html.theme--documenter-dark .admonition.is-info>.admonition-header{background-color:#024c7d;color:#fff}html.theme--documenter-dark .admonition.is-info>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-success{background-color:#282f2f;border-color:#008438}html.theme--documenter-dark .admonition.is-success>.admonition-header{background-color:#008438;color:#fff}html.theme--documenter-dark .admonition.is-success>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-warning{background-color:#282f2f;border-color:#ad8100}html.theme--documenter-dark .admonition.is-warning>.admonition-header{background-color:#ad8100;color:#fff}html.theme--documenter-dark .admonition.is-warning>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-danger{background-color:#282f2f;border-color:#9e1b0d}html.theme--documenter-dark .admonition.is-danger>.admonition-header{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .admonition.is-danger>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-compat{background-color:#282f2f;border-color:#137886}html.theme--documenter-dark .admonition.is-compat>.admonition-header{background-color:#137886;color:#fff}html.theme--documenter-dark .admonition.is-compat>.admonition-body{color:#fff}html.theme--documenter-dark .admonition-header{color:#fff;background-color:#5e6d6f;align-items:center;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.5rem .75rem;position:relative}html.theme--documenter-dark .admonition-header:before{font-family:"Font Awesome 5 Free";font-weight:900;margin-right:.75rem;content:"\f06a"}html.theme--documenter-dark .admonition-body{color:#fff;padding:0.5rem .75rem}html.theme--documenter-dark .admonition-body pre{background-color:#282f2f}html.theme--documenter-dark .admonition-body code{background-color:rgba(255,255,255,0.05)}html.theme--documenter-dark .docstring{margin-bottom:1em;background-color:rgba(0,0,0,0);border:1px solid #5e6d6f;box-shadow:none;max-width:100%}html.theme--documenter-dark .docstring>header{display:flex;flex-grow:1;align-items:stretch;padding:0.5rem .75rem;background-color:#282f2f;box-shadow:0 1px 2px rgba(10,10,10,0.1);box-shadow:none;border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .docstring>header code{background-color:transparent}html.theme--documenter-dark .docstring>header .docstring-binding{margin-right:0.3em}html.theme--documenter-dark .docstring>header .docstring-category{margin-left:0.3em}html.theme--documenter-dark .docstring>section{position:relative;padding:.75rem .75rem;border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .docstring>section:last-child{border-bottom:none}html.theme--documenter-dark .docstring>section>a.docs-sourcelink{transition:opacity 0.3s;opacity:0;position:absolute;right:.375rem;bottom:.375rem}html.theme--documenter-dark .docstring>section>a.docs-sourcelink:focus{opacity:1 !important}html.theme--documenter-dark .docstring:hover>section>a.docs-sourcelink{opacity:0.2}html.theme--documenter-dark .docstring:focus-within>section>a.docs-sourcelink{opacity:0.2}html.theme--documenter-dark .docstring>section:hover a.docs-sourcelink{opacity:1}html.theme--documenter-dark .documenter-example-output{background-color:#1f2424}html.theme--documenter-dark .outdated-warning-overlay{position:fixed;top:0;left:0;right:0;box-shadow:0 0 10px rgba(0,0,0,0.3);z-index:999;background-color:#282f2f;color:#fff;border-bottom:3px solid #9e1b0d;padding:10px 35px;text-align:center;font-size:15px}html.theme--documenter-dark .outdated-warning-overlay .outdated-warning-closer{position:absolute;top:calc(50% - 10px);right:18px;cursor:pointer;width:12px}html.theme--documenter-dark .outdated-warning-overlay a{color:#1abc9c}html.theme--documenter-dark .outdated-warning-overlay a:hover{color:#1dd2af}html.theme--documenter-dark .content pre{border:1px solid #5e6d6f}html.theme--documenter-dark .content code{font-weight:inherit}html.theme--documenter-dark .content a code{color:#1abc9c}html.theme--documenter-dark .content h1 code,html.theme--documenter-dark .content h2 code,html.theme--documenter-dark .content h3 code,html.theme--documenter-dark .content h4 code,html.theme--documenter-dark .content h5 code,html.theme--documenter-dark .content h6 code{color:#f2f2f2}html.theme--documenter-dark .content table{display:block;width:initial;max-width:100%;overflow-x:auto}html.theme--documenter-dark .content blockquote>ul:first-child,html.theme--documenter-dark .content blockquote>ol:first-child,html.theme--documenter-dark .content .admonition-body>ul:first-child,html.theme--documenter-dark .content .admonition-body>ol:first-child{margin-top:0}html.theme--documenter-dark pre,html.theme--documenter-dark code{font-variant-ligatures:no-contextual}html.theme--documenter-dark .breadcrumb a.is-disabled{cursor:default;pointer-events:none}html.theme--documenter-dark .breadcrumb a.is-disabled,html.theme--documenter-dark .breadcrumb a.is-disabled:hover{color:#f2f2f2}html.theme--documenter-dark .hljs{background:initial !important}html.theme--documenter-dark .katex .katex-mathml{top:0;right:0}html.theme--documenter-dark .katex-display,html.theme--documenter-dark mjx-container,html.theme--documenter-dark .MathJax_Display{margin:0.5em 0 !important}html.theme--documenter-dark html{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto}html.theme--documenter-dark li.no-marker{list-style:none}html.theme--documenter-dark #documenter .docs-main>article{overflow-wrap:break-word}html.theme--documenter-dark #documenter .docs-main>article .math-container{overflow-x:auto;overflow-y:hidden}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-main{max-width:52rem;margin-left:20rem;padding-right:1rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main{width:100%}html.theme--documenter-dark #documenter .docs-main>article{max-width:52rem;margin-left:auto;margin-right:auto;margin-bottom:1rem;padding:0 1rem}html.theme--documenter-dark #documenter .docs-main>header,html.theme--documenter-dark #documenter .docs-main>nav{max-width:100%;width:100%;margin:0}}html.theme--documenter-dark #documenter .docs-main header.docs-navbar{background-color:#1f2424;border-bottom:1px solid #5e6d6f;z-index:2;min-height:4rem;margin-bottom:1rem;display:flex}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb{flex-grow:1}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right{display:flex;white-space:nowrap}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon,html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label,html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{display:inline-block}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label{padding:0;margin-left:0.3em}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button{margin:auto 0 auto 1rem}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{font-size:1.5rem;margin:auto 0 auto 1rem}html.theme--documenter-dark #documenter .docs-main header.docs-navbar>*{margin:auto 0}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main header.docs-navbar{position:sticky;top:0;padding:0 1rem;transition-property:top, box-shadow;-webkit-transition-property:top, box-shadow;transition-duration:0.3s;-webkit-transition-duration:0.3s}html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top{box-shadow:.2rem 0rem .4rem #171717;transition-duration:0.7s;-webkit-transition-duration:0.7s}html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom{top:-4.5rem;transition-duration:0.7s;-webkit-transition-duration:0.7s}}html.theme--documenter-dark #documenter .docs-main section.footnotes{border-top:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-main section.footnotes li .tag:first-child,html.theme--documenter-dark #documenter .docs-main section.footnotes li .docstring>section>a.docs-sourcelink:first-child,html.theme--documenter-dark #documenter .docs-main section.footnotes li .content kbd:first-child,html.theme--documenter-dark .content #documenter .docs-main section.footnotes li kbd:first-child{margin-right:1em;margin-bottom:0.4em}html.theme--documenter-dark #documenter .docs-main .docs-footer{display:flex;flex-wrap:wrap;margin-left:0;margin-right:0;border-top:1px solid #5e6d6f;padding-top:1rem;padding-bottom:1rem}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main .docs-footer{padding-left:1rem;padding-right:1rem}}html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage,html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-prevpage{flex-grow:1}html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage{text-align:right}html.theme--documenter-dark #documenter .docs-main .docs-footer .flexbox-break{flex-basis:100%;height:0}html.theme--documenter-dark #documenter .docs-main .docs-footer .footer-message{font-size:0.8em;margin:0.5em auto 0 auto;text-align:center}html.theme--documenter-dark #documenter .docs-sidebar{display:flex;flex-direction:column;color:#fff;background-color:#282f2f;border-right:1px solid #5e6d6f;padding:0;flex:0 0 18rem;z-index:5;font-size:15px;position:fixed;left:-18rem;width:18rem;height:100%;transition:left 0.3s}html.theme--documenter-dark #documenter .docs-sidebar.visible{left:0;box-shadow:.4rem 0rem .8rem #171717}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar.visible{box-shadow:none}}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar{left:0;top:0}}html.theme--documenter-dark #documenter .docs-sidebar .docs-logo{margin-top:1rem;padding:0 1rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img{max-height:6rem;margin:auto}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name{flex-shrink:0;font-size:1.5rem;font-weight:700;text-align:center;white-space:nowrap;overflow:hidden;padding:0.5rem 0}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name .docs-autofit{max-width:16.2rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a,html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a:hover{color:#fff}html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector{border-top:1px solid #5e6d6f;display:none;padding:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector.visible{display:flex}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu{flex-grow:1;user-select:none;border-top:1px solid #5e6d6f;padding-bottom:1.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li>.tocitem{font-weight:bold}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li li{font-size:14.25px;margin-left:1em;border-left:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle{display:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed{display:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked~ul.collapsed{display:block}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem{display:flex}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label{flex-grow:2}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;font-size:11.25px;margin-left:1rem;margin-top:auto;margin-bottom:auto}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f054"}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked~label.tocitem .docs-chevron::before{content:"\f078"}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem{display:block;padding:0.5rem 0.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover{color:#fff;background:#282f2f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover{color:#fff;background-color:#32393a}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active{border-top:1px solid #5e6d6f;border-bottom:1px solid #5e6d6f;background-color:#1f2424}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover{background-color:#1f2424;color:#fff}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover{background-color:#32393a;color:#fff}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li.is-active:first-child{border-top:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal{margin:0 0.5rem 0.5rem;border-top:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li{font-size:12.75px;border-left:none;margin-left:0;margin-top:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem{width:100%;padding:0}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before{content:"⚬";margin-right:0.4em}html.theme--documenter-dark #documenter .docs-sidebar form.docs-search{margin:auto;margin-top:0.5rem;margin-bottom:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{width:14.4rem}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu{overflow-y:auto;-webkit-overflow-scroll:touch}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar{width:.3rem;background:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#3b4445}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover{background:#4e5a5c}}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-sidebar{overflow-y:auto;-webkit-overflow-scroll:touch}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar{width:.3rem;background:none}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#3b4445}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover{background:#4e5a5c}}html.theme--documenter-dark #documenter .docs-main #documenter-search-info{margin-bottom:1rem}html.theme--documenter-dark #documenter .docs-main #documenter-search-results{list-style-type:circle;list-style-position:outside}html.theme--documenter-dark #documenter .docs-main #documenter-search-results li{margin-left:2rem}html.theme--documenter-dark #documenter .docs-main #documenter-search-results .docs-highlight{background-color:yellow}html.theme--documenter-dark{background-color:#1f2424;font-size:16px;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}html.theme--documenter-dark .ansi span.sgr1{font-weight:bolder}html.theme--documenter-dark .ansi span.sgr2{font-weight:lighter}html.theme--documenter-dark .ansi span.sgr3{font-style:italic}html.theme--documenter-dark .ansi span.sgr4{text-decoration:underline}html.theme--documenter-dark .ansi span.sgr7{color:#1f2424;background-color:#fff}html.theme--documenter-dark .ansi span.sgr8{color:transparent}html.theme--documenter-dark .ansi span.sgr8 span{color:transparent}html.theme--documenter-dark .ansi span.sgr9{text-decoration:line-through}html.theme--documenter-dark .ansi span.sgr30{color:#242424}html.theme--documenter-dark .ansi span.sgr31{color:#f6705f}html.theme--documenter-dark .ansi span.sgr32{color:#4fb43a}html.theme--documenter-dark .ansi span.sgr33{color:#f4c72f}html.theme--documenter-dark .ansi span.sgr34{color:#7587f0}html.theme--documenter-dark .ansi span.sgr35{color:#bc89d3}html.theme--documenter-dark .ansi span.sgr36{color:#49b6ca}html.theme--documenter-dark .ansi span.sgr37{color:#b3bdbe}html.theme--documenter-dark .ansi span.sgr40{background-color:#242424}html.theme--documenter-dark .ansi span.sgr41{background-color:#f6705f}html.theme--documenter-dark .ansi span.sgr42{background-color:#4fb43a}html.theme--documenter-dark .ansi span.sgr43{background-color:#f4c72f}html.theme--documenter-dark .ansi span.sgr44{background-color:#7587f0}html.theme--documenter-dark .ansi span.sgr45{background-color:#bc89d3}html.theme--documenter-dark .ansi span.sgr46{background-color:#49b6ca}html.theme--documenter-dark .ansi span.sgr47{background-color:#b3bdbe}html.theme--documenter-dark .ansi span.sgr90{color:#92a0a2}html.theme--documenter-dark .ansi span.sgr91{color:#ff8674}html.theme--documenter-dark .ansi span.sgr92{color:#79d462}html.theme--documenter-dark .ansi span.sgr93{color:#ffe76b}html.theme--documenter-dark .ansi span.sgr94{color:#8a98ff}html.theme--documenter-dark .ansi span.sgr95{color:#d2a4e6}html.theme--documenter-dark .ansi span.sgr96{color:#6bc8db}html.theme--documenter-dark .ansi span.sgr97{color:#ecf0f1}html.theme--documenter-dark .ansi span.sgr100{background-color:#92a0a2}html.theme--documenter-dark .ansi span.sgr101{background-color:#ff8674}html.theme--documenter-dark .ansi span.sgr102{background-color:#79d462}html.theme--documenter-dark .ansi span.sgr103{background-color:#ffe76b}html.theme--documenter-dark .ansi span.sgr104{background-color:#8a98ff}html.theme--documenter-dark .ansi span.sgr105{background-color:#d2a4e6}html.theme--documenter-dark .ansi span.sgr106{background-color:#6bc8db}html.theme--documenter-dark .ansi span.sgr107{background-color:#ecf0f1}html.theme--documenter-dark code.language-julia-repl>span.hljs-meta{color:#4fb43a;font-weight:bolder}html.theme--documenter-dark .hljs{background:#2b2b2b;color:#f8f8f2}html.theme--documenter-dark .hljs-comment,html.theme--documenter-dark .hljs-quote{color:#d4d0ab}html.theme--documenter-dark .hljs-variable,html.theme--documenter-dark .hljs-template-variable,html.theme--documenter-dark .hljs-tag,html.theme--documenter-dark .hljs-name,html.theme--documenter-dark .hljs-selector-id,html.theme--documenter-dark .hljs-selector-class,html.theme--documenter-dark .hljs-regexp,html.theme--documenter-dark .hljs-deletion{color:#ffa07a}html.theme--documenter-dark .hljs-number,html.theme--documenter-dark .hljs-built_in,html.theme--documenter-dark .hljs-literal,html.theme--documenter-dark .hljs-type,html.theme--documenter-dark .hljs-params,html.theme--documenter-dark .hljs-meta,html.theme--documenter-dark .hljs-link{color:#f5ab35}html.theme--documenter-dark .hljs-attribute{color:#ffd700}html.theme--documenter-dark .hljs-string,html.theme--documenter-dark .hljs-symbol,html.theme--documenter-dark .hljs-bullet,html.theme--documenter-dark .hljs-addition{color:#abe338}html.theme--documenter-dark .hljs-title,html.theme--documenter-dark .hljs-section{color:#00e0e0}html.theme--documenter-dark .hljs-keyword,html.theme--documenter-dark .hljs-selector-tag{color:#dcc6e0}html.theme--documenter-dark .hljs-emphasis{font-style:italic}html.theme--documenter-dark .hljs-strong{font-weight:bold}@media screen and (-ms-high-contrast: active){html.theme--documenter-dark .hljs-addition,html.theme--documenter-dark .hljs-attribute,html.theme--documenter-dark .hljs-built_in,html.theme--documenter-dark .hljs-bullet,html.theme--documenter-dark .hljs-comment,html.theme--documenter-dark .hljs-link,html.theme--documenter-dark .hljs-literal,html.theme--documenter-dark .hljs-meta,html.theme--documenter-dark .hljs-number,html.theme--documenter-dark .hljs-params,html.theme--documenter-dark .hljs-string,html.theme--documenter-dark .hljs-symbol,html.theme--documenter-dark .hljs-type,html.theme--documenter-dark .hljs-quote{color:highlight}html.theme--documenter-dark .hljs-keyword,html.theme--documenter-dark .hljs-selector-tag{font-weight:bold}}html.theme--documenter-dark .hljs-subst{color:#f8f8f2} diff --git a/v0.10.59/assets/themes/documenter-light.css b/v0.10.59/assets/themes/documenter-light.css new file mode 100644 index 000000000..9b9a14b04 --- /dev/null +++ b/v0.10.59/assets/themes/documenter-light.css @@ -0,0 +1,9 @@ +@keyframes spinAround{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}.tabs,.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis,.breadcrumb,.file,.button,.is-unselectable,.modal-close,.delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.navbar-link:not(.is-arrowless)::after,.select:not(.is-multiple):not(.is-loading)::after{border:3px solid rgba(0,0,0,0);border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:0.625em;margin-top:-0.4375em;pointer-events:none;position:absolute;top:50%;transform:rotate(-45deg);transform-origin:center;width:0.625em}.admonition:not(:last-child),.tabs:not(:last-child),.message:not(:last-child),.list:not(:last-child),.level:not(:last-child),.breadcrumb:not(:last-child),.highlight:not(:last-child),.block:not(:last-child),.title:not(:last-child),.subtitle:not(:last-child),.table-container:not(:last-child),.table:not(:last-child),.progress:not(:last-child),.notification:not(:last-child),.content:not(:last-child),.box:not(:last-child){margin-bottom:1.5rem}.modal-close,.delete{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:290486px;cursor:pointer;pointer-events:auto;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:none;position:relative;vertical-align:top;width:20px}.modal-close::before,.delete::before,.modal-close::after,.delete::after{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.modal-close::before,.delete::before{height:2px;width:50%}.modal-close::after,.delete::after{height:50%;width:2px}.modal-close:hover,.delete:hover,.modal-close:focus,.delete:focus{background-color:rgba(10,10,10,0.3)}.modal-close:active,.delete:active{background-color:rgba(10,10,10,0.4)}.is-small.modal-close,#documenter .docs-sidebar form.docs-search>input.modal-close,.is-small.delete,#documenter .docs-sidebar form.docs-search>input.delete{height:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px;width:16px}.is-medium.modal-close,.is-medium.delete{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}.is-large.modal-close,.is-large.delete{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}.control.is-loading::after,.select.is-loading::after,.loader,.button.is-loading::after{animation:spinAround 500ms infinite linear;border:2px solid #dbdbdb;border-radius:290486px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}.hero-video,.modal-background,.modal,.image.is-square img,#documenter .docs-sidebar .docs-logo>img.is-square img,.image.is-square .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,.image.is-1by1 img,#documenter .docs-sidebar .docs-logo>img.is-1by1 img,.image.is-1by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,.image.is-5by4 img,#documenter .docs-sidebar .docs-logo>img.is-5by4 img,.image.is-5by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,.image.is-4by3 img,#documenter .docs-sidebar .docs-logo>img.is-4by3 img,.image.is-4by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,.image.is-3by2 img,#documenter .docs-sidebar .docs-logo>img.is-3by2 img,.image.is-3by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,.image.is-5by3 img,#documenter .docs-sidebar .docs-logo>img.is-5by3 img,.image.is-5by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,.image.is-16by9 img,#documenter .docs-sidebar .docs-logo>img.is-16by9 img,.image.is-16by9 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,.image.is-2by1 img,#documenter .docs-sidebar .docs-logo>img.is-2by1 img,.image.is-2by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,.image.is-3by1 img,#documenter .docs-sidebar .docs-logo>img.is-3by1 img,.image.is-3by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,.image.is-4by5 img,#documenter .docs-sidebar .docs-logo>img.is-4by5 img,.image.is-4by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,.image.is-3by4 img,#documenter .docs-sidebar .docs-logo>img.is-3by4 img,.image.is-3by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,.image.is-2by3 img,#documenter .docs-sidebar .docs-logo>img.is-2by3 img,.image.is-2by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,.image.is-3by5 img,#documenter .docs-sidebar .docs-logo>img.is-3by5 img,.image.is-3by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,.image.is-9by16 img,#documenter .docs-sidebar .docs-logo>img.is-9by16 img,.image.is-9by16 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,.image.is-1by2 img,#documenter .docs-sidebar .docs-logo>img.is-1by2 img,.image.is-1by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,.image.is-1by3 img,#documenter .docs-sidebar .docs-logo>img.is-1by3 img,.image.is-1by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio,.is-overlay{bottom:0;left:0;position:absolute;right:0;top:0}.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis,.file-cta,.file-name,.select select,.textarea,.input,#documenter .docs-sidebar form.docs-search>input,.button{-moz-appearance:none;-webkit-appearance:none;align-items:center;border:1px solid transparent;border-radius:4px;box-shadow:none;display:inline-flex;font-size:1rem;height:2.25em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(0.375em - 1px);padding-left:calc(0.625em - 1px);padding-right:calc(0.625em - 1px);padding-top:calc(0.375em - 1px);position:relative;vertical-align:top}.pagination-previous:focus,.pagination-next:focus,.pagination-link:focus,.pagination-ellipsis:focus,.file-cta:focus,.file-name:focus,.select select:focus,.textarea:focus,.input:focus,#documenter .docs-sidebar form.docs-search>input:focus,.button:focus,.is-focused.pagination-previous,.is-focused.pagination-next,.is-focused.pagination-link,.is-focused.pagination-ellipsis,.is-focused.file-cta,.is-focused.file-name,.select select.is-focused,.is-focused.textarea,.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-focused.button,.pagination-previous:active,.pagination-next:active,.pagination-link:active,.pagination-ellipsis:active,.file-cta:active,.file-name:active,.select select:active,.textarea:active,.input:active,#documenter .docs-sidebar form.docs-search>input:active,.button:active,.is-active.pagination-previous,.is-active.pagination-next,.is-active.pagination-link,.is-active.pagination-ellipsis,.is-active.file-cta,.is-active.file-name,.select select.is-active,.is-active.textarea,.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.is-active.button{outline:none}.pagination-previous[disabled],.pagination-next[disabled],.pagination-link[disabled],.pagination-ellipsis[disabled],.file-cta[disabled],.file-name[disabled],.select select[disabled],.textarea[disabled],.input[disabled],#documenter .docs-sidebar form.docs-search>input[disabled],.button[disabled],fieldset[disabled] .pagination-previous,fieldset[disabled] .pagination-next,fieldset[disabled] .pagination-link,fieldset[disabled] .pagination-ellipsis,fieldset[disabled] .file-cta,fieldset[disabled] .file-name,fieldset[disabled] .select select,.select fieldset[disabled] select,fieldset[disabled] .textarea,fieldset[disabled] .input,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input,fieldset[disabled] .button{cursor:not-allowed}/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */html,body,p,ol,ul,li,dl,dt,dd,blockquote,figure,fieldset,legend,textarea,pre,iframe,hr,h1,h2,h3,h4,h5,h6{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}img,embed,iframe,object,video{height:auto;max-width:100%}audio{max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:left}html{background-color:#fff;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}article,aside,figure,footer,header,hgroup,section{display:block}body,button,input,select,textarea{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif}code,pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}body{color:#222;font-size:1em;font-weight:400;line-height:1.5}a{color:#2e63b8;cursor:pointer;text-decoration:none}a strong{color:currentColor}a:hover{color:#363636}code{background-color:rgba(0,0,0,0.05);color:#000;font-size:.875em;font-weight:normal;padding:.1em}hr{background-color:#f5f5f5;border:none;display:block;height:2px;margin:1.5rem 0}img{height:auto;max-width:100%}input[type="checkbox"],input[type="radio"]{vertical-align:baseline}small{font-size:.875em}span{font-style:inherit;font-weight:inherit}strong{color:#222;font-weight:700}fieldset{border:none}pre{-webkit-overflow-scrolling:touch;background-color:#f5f5f5;color:#222;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}table td,table th{vertical-align:top}table td:not([align]),table th:not([align]){text-align:left}table th{color:#222}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left !important}.is-pulled-right{float:right !important}.is-clipped{overflow:hidden !important}.is-size-1{font-size:3rem !important}.is-size-2{font-size:2.5rem !important}.is-size-3{font-size:2rem !important}.is-size-4{font-size:1.5rem !important}.is-size-5{font-size:1.25rem !important}.is-size-6{font-size:1rem !important}.is-size-7,.docstring>section>a.docs-sourcelink{font-size:.75rem !important}@media screen and (max-width: 768px){.is-size-1-mobile{font-size:3rem !important}.is-size-2-mobile{font-size:2.5rem !important}.is-size-3-mobile{font-size:2rem !important}.is-size-4-mobile{font-size:1.5rem !important}.is-size-5-mobile{font-size:1.25rem !important}.is-size-6-mobile{font-size:1rem !important}.is-size-7-mobile{font-size:.75rem !important}}@media screen and (min-width: 769px),print{.is-size-1-tablet{font-size:3rem !important}.is-size-2-tablet{font-size:2.5rem !important}.is-size-3-tablet{font-size:2rem !important}.is-size-4-tablet{font-size:1.5rem !important}.is-size-5-tablet{font-size:1.25rem !important}.is-size-6-tablet{font-size:1rem !important}.is-size-7-tablet{font-size:.75rem !important}}@media screen and (max-width: 1055px){.is-size-1-touch{font-size:3rem !important}.is-size-2-touch{font-size:2.5rem !important}.is-size-3-touch{font-size:2rem !important}.is-size-4-touch{font-size:1.5rem !important}.is-size-5-touch{font-size:1.25rem !important}.is-size-6-touch{font-size:1rem !important}.is-size-7-touch{font-size:.75rem !important}}@media screen and (min-width: 1056px){.is-size-1-desktop{font-size:3rem !important}.is-size-2-desktop{font-size:2.5rem !important}.is-size-3-desktop{font-size:2rem !important}.is-size-4-desktop{font-size:1.5rem !important}.is-size-5-desktop{font-size:1.25rem !important}.is-size-6-desktop{font-size:1rem !important}.is-size-7-desktop{font-size:.75rem !important}}@media screen and (min-width: 1216px){.is-size-1-widescreen{font-size:3rem !important}.is-size-2-widescreen{font-size:2.5rem !important}.is-size-3-widescreen{font-size:2rem !important}.is-size-4-widescreen{font-size:1.5rem !important}.is-size-5-widescreen{font-size:1.25rem !important}.is-size-6-widescreen{font-size:1rem !important}.is-size-7-widescreen{font-size:.75rem !important}}@media screen and (min-width: 1408px){.is-size-1-fullhd{font-size:3rem !important}.is-size-2-fullhd{font-size:2.5rem !important}.is-size-3-fullhd{font-size:2rem !important}.is-size-4-fullhd{font-size:1.5rem !important}.is-size-5-fullhd{font-size:1.25rem !important}.is-size-6-fullhd{font-size:1rem !important}.is-size-7-fullhd{font-size:.75rem !important}}.has-text-centered{text-align:center !important}.has-text-justified{text-align:justify !important}.has-text-left{text-align:left !important}.has-text-right{text-align:right !important}@media screen and (max-width: 768px){.has-text-centered-mobile{text-align:center !important}}@media screen and (min-width: 769px),print{.has-text-centered-tablet{text-align:center !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-centered-tablet-only{text-align:center !important}}@media screen and (max-width: 1055px){.has-text-centered-touch{text-align:center !important}}@media screen and (min-width: 1056px){.has-text-centered-desktop{text-align:center !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-centered-desktop-only{text-align:center !important}}@media screen and (min-width: 1216px){.has-text-centered-widescreen{text-align:center !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-centered-widescreen-only{text-align:center !important}}@media screen and (min-width: 1408px){.has-text-centered-fullhd{text-align:center !important}}@media screen and (max-width: 768px){.has-text-justified-mobile{text-align:justify !important}}@media screen and (min-width: 769px),print{.has-text-justified-tablet{text-align:justify !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-justified-tablet-only{text-align:justify !important}}@media screen and (max-width: 1055px){.has-text-justified-touch{text-align:justify !important}}@media screen and (min-width: 1056px){.has-text-justified-desktop{text-align:justify !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-justified-desktop-only{text-align:justify !important}}@media screen and (min-width: 1216px){.has-text-justified-widescreen{text-align:justify !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-justified-widescreen-only{text-align:justify !important}}@media screen and (min-width: 1408px){.has-text-justified-fullhd{text-align:justify !important}}@media screen and (max-width: 768px){.has-text-left-mobile{text-align:left !important}}@media screen and (min-width: 769px),print{.has-text-left-tablet{text-align:left !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-left-tablet-only{text-align:left !important}}@media screen and (max-width: 1055px){.has-text-left-touch{text-align:left !important}}@media screen and (min-width: 1056px){.has-text-left-desktop{text-align:left !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-left-desktop-only{text-align:left !important}}@media screen and (min-width: 1216px){.has-text-left-widescreen{text-align:left !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-left-widescreen-only{text-align:left !important}}@media screen and (min-width: 1408px){.has-text-left-fullhd{text-align:left !important}}@media screen and (max-width: 768px){.has-text-right-mobile{text-align:right !important}}@media screen and (min-width: 769px),print{.has-text-right-tablet{text-align:right !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-right-tablet-only{text-align:right !important}}@media screen and (max-width: 1055px){.has-text-right-touch{text-align:right !important}}@media screen and (min-width: 1056px){.has-text-right-desktop{text-align:right !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-right-desktop-only{text-align:right !important}}@media screen and (min-width: 1216px){.has-text-right-widescreen{text-align:right !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-right-widescreen-only{text-align:right !important}}@media screen and (min-width: 1408px){.has-text-right-fullhd{text-align:right !important}}.is-capitalized{text-transform:capitalize !important}.is-lowercase{text-transform:lowercase !important}.is-uppercase{text-transform:uppercase !important}.is-italic{font-style:italic !important}.has-text-white{color:#fff !important}a.has-text-white:hover,a.has-text-white:focus{color:#e6e6e6 !important}.has-background-white{background-color:#fff !important}.has-text-black{color:#0a0a0a !important}a.has-text-black:hover,a.has-text-black:focus{color:#000 !important}.has-background-black{background-color:#0a0a0a !important}.has-text-light{color:#f5f5f5 !important}a.has-text-light:hover,a.has-text-light:focus{color:#dbdbdb !important}.has-background-light{background-color:#f5f5f5 !important}.has-text-dark{color:#363636 !important}a.has-text-dark:hover,a.has-text-dark:focus{color:#1c1c1c !important}.has-background-dark{background-color:#363636 !important}.has-text-primary{color:#4eb5de !important}a.has-text-primary:hover,a.has-text-primary:focus{color:#27a1d2 !important}.has-background-primary{background-color:#4eb5de !important}.has-text-link{color:#2e63b8 !important}a.has-text-link:hover,a.has-text-link:focus{color:#244d8f !important}.has-background-link{background-color:#2e63b8 !important}.has-text-info{color:#209cee !important}a.has-text-info:hover,a.has-text-info:focus{color:#1081cb !important}.has-background-info{background-color:#209cee !important}.has-text-success{color:#22c35b !important}a.has-text-success:hover,a.has-text-success:focus{color:#1a9847 !important}.has-background-success{background-color:#22c35b !important}.has-text-warning{color:#ffdd57 !important}a.has-text-warning:hover,a.has-text-warning:focus{color:#ffd324 !important}.has-background-warning{background-color:#ffdd57 !important}.has-text-danger{color:#da0b00 !important}a.has-text-danger:hover,a.has-text-danger:focus{color:#a70800 !important}.has-background-danger{background-color:#da0b00 !important}.has-text-black-bis{color:#121212 !important}.has-background-black-bis{background-color:#121212 !important}.has-text-black-ter{color:#242424 !important}.has-background-black-ter{background-color:#242424 !important}.has-text-grey-darker{color:#363636 !important}.has-background-grey-darker{background-color:#363636 !important}.has-text-grey-dark{color:#4a4a4a !important}.has-background-grey-dark{background-color:#4a4a4a !important}.has-text-grey{color:#6b6b6b !important}.has-background-grey{background-color:#6b6b6b !important}.has-text-grey-light{color:#b5b5b5 !important}.has-background-grey-light{background-color:#b5b5b5 !important}.has-text-grey-lighter{color:#dbdbdb !important}.has-background-grey-lighter{background-color:#dbdbdb !important}.has-text-white-ter{color:#f5f5f5 !important}.has-background-white-ter{background-color:#f5f5f5 !important}.has-text-white-bis{color:#fafafa !important}.has-background-white-bis{background-color:#fafafa !important}.has-text-weight-light{font-weight:300 !important}.has-text-weight-normal{font-weight:400 !important}.has-text-weight-medium{font-weight:500 !important}.has-text-weight-semibold{font-weight:600 !important}.has-text-weight-bold{font-weight:700 !important}.is-family-primary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-secondary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-sans-serif{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-monospace{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-family-code{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-block{display:block !important}@media screen and (max-width: 768px){.is-block-mobile{display:block !important}}@media screen and (min-width: 769px),print{.is-block-tablet{display:block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-block-tablet-only{display:block !important}}@media screen and (max-width: 1055px){.is-block-touch{display:block !important}}@media screen and (min-width: 1056px){.is-block-desktop{display:block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-block-desktop-only{display:block !important}}@media screen and (min-width: 1216px){.is-block-widescreen{display:block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-block-widescreen-only{display:block !important}}@media screen and (min-width: 1408px){.is-block-fullhd{display:block !important}}.is-flex{display:flex !important}@media screen and (max-width: 768px){.is-flex-mobile{display:flex !important}}@media screen and (min-width: 769px),print{.is-flex-tablet{display:flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-flex-tablet-only{display:flex !important}}@media screen and (max-width: 1055px){.is-flex-touch{display:flex !important}}@media screen and (min-width: 1056px){.is-flex-desktop{display:flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-flex-desktop-only{display:flex !important}}@media screen and (min-width: 1216px){.is-flex-widescreen{display:flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-flex-widescreen-only{display:flex !important}}@media screen and (min-width: 1408px){.is-flex-fullhd{display:flex !important}}.is-inline{display:inline !important}@media screen and (max-width: 768px){.is-inline-mobile{display:inline !important}}@media screen and (min-width: 769px),print{.is-inline-tablet{display:inline !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-tablet-only{display:inline !important}}@media screen and (max-width: 1055px){.is-inline-touch{display:inline !important}}@media screen and (min-width: 1056px){.is-inline-desktop{display:inline !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-desktop-only{display:inline !important}}@media screen and (min-width: 1216px){.is-inline-widescreen{display:inline !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-widescreen-only{display:inline !important}}@media screen and (min-width: 1408px){.is-inline-fullhd{display:inline !important}}.is-inline-block{display:inline-block !important}@media screen and (max-width: 768px){.is-inline-block-mobile{display:inline-block !important}}@media screen and (min-width: 769px),print{.is-inline-block-tablet{display:inline-block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-block-tablet-only{display:inline-block !important}}@media screen and (max-width: 1055px){.is-inline-block-touch{display:inline-block !important}}@media screen and (min-width: 1056px){.is-inline-block-desktop{display:inline-block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-block-desktop-only{display:inline-block !important}}@media screen and (min-width: 1216px){.is-inline-block-widescreen{display:inline-block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-block-widescreen-only{display:inline-block !important}}@media screen and (min-width: 1408px){.is-inline-block-fullhd{display:inline-block !important}}.is-inline-flex{display:inline-flex !important}@media screen and (max-width: 768px){.is-inline-flex-mobile{display:inline-flex !important}}@media screen and (min-width: 769px),print{.is-inline-flex-tablet{display:inline-flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-flex-tablet-only{display:inline-flex !important}}@media screen and (max-width: 1055px){.is-inline-flex-touch{display:inline-flex !important}}@media screen and (min-width: 1056px){.is-inline-flex-desktop{display:inline-flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-flex-desktop-only{display:inline-flex !important}}@media screen and (min-width: 1216px){.is-inline-flex-widescreen{display:inline-flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-flex-widescreen-only{display:inline-flex !important}}@media screen and (min-width: 1408px){.is-inline-flex-fullhd{display:inline-flex !important}}.is-hidden{display:none !important}.is-sr-only{border:none !important;clip:rect(0, 0, 0, 0) !important;height:0.01em !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:0.01em !important}@media screen and (max-width: 768px){.is-hidden-mobile{display:none !important}}@media screen and (min-width: 769px),print{.is-hidden-tablet{display:none !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-hidden-tablet-only{display:none !important}}@media screen and (max-width: 1055px){.is-hidden-touch{display:none !important}}@media screen and (min-width: 1056px){.is-hidden-desktop{display:none !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-hidden-desktop-only{display:none !important}}@media screen and (min-width: 1216px){.is-hidden-widescreen{display:none !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-hidden-widescreen-only{display:none !important}}@media screen and (min-width: 1408px){.is-hidden-fullhd{display:none !important}}.is-invisible{visibility:hidden !important}@media screen and (max-width: 768px){.is-invisible-mobile{visibility:hidden !important}}@media screen and (min-width: 769px),print{.is-invisible-tablet{visibility:hidden !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-invisible-tablet-only{visibility:hidden !important}}@media screen and (max-width: 1055px){.is-invisible-touch{visibility:hidden !important}}@media screen and (min-width: 1056px){.is-invisible-desktop{visibility:hidden !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-invisible-desktop-only{visibility:hidden !important}}@media screen and (min-width: 1216px){.is-invisible-widescreen{visibility:hidden !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-invisible-widescreen-only{visibility:hidden !important}}@media screen and (min-width: 1408px){.is-invisible-fullhd{visibility:hidden !important}}.is-marginless{margin:0 !important}.is-paddingless{padding:0 !important}.is-radiusless{border-radius:0 !important}.is-shadowless{box-shadow:none !important}.is-relative{position:relative !important}.box{background-color:#fff;border-radius:6px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#222;display:block;padding:1.25rem}a.box:hover,a.box:focus{box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px #2e63b8}a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2),0 0 0 1px #2e63b8}.button{background-color:#fff;border-color:#dbdbdb;border-width:1px;color:#363636;cursor:pointer;justify-content:center;padding-bottom:calc(0.375em - 1px);padding-left:.75em;padding-right:.75em;padding-top:calc(0.375em - 1px);text-align:center;white-space:nowrap}.button strong{color:inherit}.button .icon,.button .icon.is-small,.button #documenter .docs-sidebar form.docs-search>input.icon,#documenter .docs-sidebar .button form.docs-search>input.icon,.button .icon.is-medium,.button .icon.is-large{height:1.5em;width:1.5em}.button .icon:first-child:not(:last-child){margin-left:calc(-0.375em - 1px);margin-right:0.1875em}.button .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:calc(-0.375em - 1px)}.button .icon:first-child:last-child{margin-left:calc(-0.375em - 1px);margin-right:calc(-0.375em - 1px)}.button:hover,.button.is-hovered{border-color:#b5b5b5;color:#363636}.button:focus,.button.is-focused{border-color:#3c5dcd;color:#363636}.button:focus:not(:active),.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.button:active,.button.is-active{border-color:#4a4a4a;color:#363636}.button.is-text{background-color:transparent;border-color:transparent;color:#222;text-decoration:underline}.button.is-text:hover,.button.is-text.is-hovered,.button.is-text:focus,.button.is-text.is-focused{background-color:#f5f5f5;color:#222}.button.is-text:active,.button.is-text.is-active{background-color:#e8e8e8;color:#222}.button.is-text[disabled],fieldset[disabled] .button.is-text{background-color:transparent;border-color:transparent;box-shadow:none}.button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}.button.is-white:hover,.button.is-white.is-hovered{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.button.is-white:focus,.button.is-white.is-focused{border-color:transparent;color:#0a0a0a}.button.is-white:focus:not(:active),.button.is-white.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.button.is-white:active,.button.is-white.is-active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.button.is-white[disabled],fieldset[disabled] .button.is-white{background-color:#fff;border-color:transparent;box-shadow:none}.button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted:hover,.button.is-white.is-inverted.is-hovered{background-color:#000}.button.is-white.is-inverted[disabled],fieldset[disabled] .button.is-white.is-inverted{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}.button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-white.is-outlined:hover,.button.is-white.is-outlined.is-hovered,.button.is-white.is-outlined:focus,.button.is-white.is-outlined.is-focused{background-color:#fff;border-color:#fff;color:#0a0a0a}.button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-white.is-outlined.is-loading:hover::after,.button.is-white.is-outlined.is-loading.is-hovered::after,.button.is-white.is-outlined.is-loading:focus::after,.button.is-white.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-white.is-outlined[disabled],fieldset[disabled] .button.is-white.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-white.is-inverted.is-outlined:hover,.button.is-white.is-inverted.is-outlined.is-hovered,.button.is-white.is-inverted.is-outlined:focus,.button.is-white.is-inverted.is-outlined.is-focused{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted.is-outlined.is-loading:hover::after,.button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-white.is-inverted.is-outlined.is-loading:focus::after,.button.is-white.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-white.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}.button.is-black:hover,.button.is-black.is-hovered{background-color:#040404;border-color:transparent;color:#fff}.button.is-black:focus,.button.is-black.is-focused{border-color:transparent;color:#fff}.button.is-black:focus:not(:active),.button.is-black.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.button.is-black:active,.button.is-black.is-active{background-color:#000;border-color:transparent;color:#fff}.button.is-black[disabled],fieldset[disabled] .button.is-black{background-color:#0a0a0a;border-color:transparent;box-shadow:none}.button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted:hover,.button.is-black.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-black.is-inverted[disabled],fieldset[disabled] .button.is-black.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}.button.is-black.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-black.is-outlined:hover,.button.is-black.is-outlined.is-hovered,.button.is-black.is-outlined:focus,.button.is-black.is-outlined.is-focused{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-black.is-outlined.is-loading:hover::after,.button.is-black.is-outlined.is-loading.is-hovered::after,.button.is-black.is-outlined.is-loading:focus::after,.button.is-black.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-black.is-outlined[disabled],fieldset[disabled] .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-black.is-inverted.is-outlined:hover,.button.is-black.is-inverted.is-outlined.is-hovered,.button.is-black.is-inverted.is-outlined:focus,.button.is-black.is-inverted.is-outlined.is-focused{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted.is-outlined.is-loading:hover::after,.button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-black.is-inverted.is-outlined.is-loading:focus::after,.button.is-black.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-black.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-light{background-color:#f5f5f5;border-color:transparent;color:#363636}.button.is-light:hover,.button.is-light.is-hovered{background-color:#eee;border-color:transparent;color:#363636}.button.is-light:focus,.button.is-light.is-focused{border-color:transparent;color:#363636}.button.is-light:focus:not(:active),.button.is-light.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.button.is-light:active,.button.is-light.is-active{background-color:#e8e8e8;border-color:transparent;color:#363636}.button.is-light[disabled],fieldset[disabled] .button.is-light{background-color:#f5f5f5;border-color:transparent;box-shadow:none}.button.is-light.is-inverted{background-color:#363636;color:#f5f5f5}.button.is-light.is-inverted:hover,.button.is-light.is-inverted.is-hovered{background-color:#292929}.button.is-light.is-inverted[disabled],fieldset[disabled] .button.is-light.is-inverted{background-color:#363636;border-color:transparent;box-shadow:none;color:#f5f5f5}.button.is-light.is-loading::after{border-color:transparent transparent #363636 #363636 !important}.button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}.button.is-light.is-outlined:hover,.button.is-light.is-outlined.is-hovered,.button.is-light.is-outlined:focus,.button.is-light.is-outlined.is-focused{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-light.is-outlined.is-loading:hover::after,.button.is-light.is-outlined.is-loading.is-hovered::after,.button.is-light.is-outlined.is-loading:focus::after,.button.is-light.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #363636 #363636 !important}.button.is-light.is-outlined[disabled],fieldset[disabled] .button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}.button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#363636;color:#363636}.button.is-light.is-inverted.is-outlined:hover,.button.is-light.is-inverted.is-outlined.is-hovered,.button.is-light.is-inverted.is-outlined:focus,.button.is-light.is-inverted.is-outlined.is-focused{background-color:#363636;color:#f5f5f5}.button.is-light.is-inverted.is-outlined.is-loading:hover::after,.button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-light.is-inverted.is-outlined.is-loading:focus::after,.button.is-light.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-light.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#363636;box-shadow:none;color:#363636}.button.is-dark,.content kbd.button{background-color:#363636;border-color:transparent;color:#f5f5f5}.button.is-dark:hover,.content kbd.button:hover,.button.is-dark.is-hovered,.content kbd.button.is-hovered{background-color:#2f2f2f;border-color:transparent;color:#f5f5f5}.button.is-dark:focus,.content kbd.button:focus,.button.is-dark.is-focused,.content kbd.button.is-focused{border-color:transparent;color:#f5f5f5}.button.is-dark:focus:not(:active),.content kbd.button:focus:not(:active),.button.is-dark.is-focused:not(:active),.content kbd.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.button.is-dark:active,.content kbd.button:active,.button.is-dark.is-active,.content kbd.button.is-active{background-color:#292929;border-color:transparent;color:#f5f5f5}.button.is-dark[disabled],.content kbd.button[disabled],fieldset[disabled] .button.is-dark,fieldset[disabled] .content kbd.button,.content fieldset[disabled] kbd.button{background-color:#363636;border-color:transparent;box-shadow:none}.button.is-dark.is-inverted,.content kbd.button.is-inverted{background-color:#f5f5f5;color:#363636}.button.is-dark.is-inverted:hover,.content kbd.button.is-inverted:hover,.button.is-dark.is-inverted.is-hovered,.content kbd.button.is-inverted.is-hovered{background-color:#e8e8e8}.button.is-dark.is-inverted[disabled],.content kbd.button.is-inverted[disabled],fieldset[disabled] .button.is-dark.is-inverted,fieldset[disabled] .content kbd.button.is-inverted,.content fieldset[disabled] kbd.button.is-inverted{background-color:#f5f5f5;border-color:transparent;box-shadow:none;color:#363636}.button.is-dark.is-loading::after,.content kbd.button.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-dark.is-outlined,.content kbd.button.is-outlined{background-color:transparent;border-color:#363636;color:#363636}.button.is-dark.is-outlined:hover,.content kbd.button.is-outlined:hover,.button.is-dark.is-outlined.is-hovered,.content kbd.button.is-outlined.is-hovered,.button.is-dark.is-outlined:focus,.content kbd.button.is-outlined:focus,.button.is-dark.is-outlined.is-focused,.content kbd.button.is-outlined.is-focused{background-color:#363636;border-color:#363636;color:#f5f5f5}.button.is-dark.is-outlined.is-loading::after,.content kbd.button.is-outlined.is-loading::after{border-color:transparent transparent #363636 #363636 !important}.button.is-dark.is-outlined.is-loading:hover::after,.content kbd.button.is-outlined.is-loading:hover::after,.button.is-dark.is-outlined.is-loading.is-hovered::after,.content kbd.button.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-outlined.is-loading:focus::after,.content kbd.button.is-outlined.is-loading:focus::after,.button.is-dark.is-outlined.is-loading.is-focused::after,.content kbd.button.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-dark.is-outlined[disabled],.content kbd.button.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-outlined,fieldset[disabled] .content kbd.button.is-outlined,.content fieldset[disabled] kbd.button.is-outlined{background-color:transparent;border-color:#363636;box-shadow:none;color:#363636}.button.is-dark.is-inverted.is-outlined,.content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}.button.is-dark.is-inverted.is-outlined:hover,.content kbd.button.is-inverted.is-outlined:hover,.button.is-dark.is-inverted.is-outlined.is-hovered,.content kbd.button.is-inverted.is-outlined.is-hovered,.button.is-dark.is-inverted.is-outlined:focus,.content kbd.button.is-inverted.is-outlined:focus,.button.is-dark.is-inverted.is-outlined.is-focused,.content kbd.button.is-inverted.is-outlined.is-focused{background-color:#f5f5f5;color:#363636}.button.is-dark.is-inverted.is-outlined.is-loading:hover::after,.content kbd.button.is-inverted.is-outlined.is-loading:hover::after,.button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,.content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-inverted.is-outlined.is-loading:focus::after,.content kbd.button.is-inverted.is-outlined.is-loading:focus::after,.button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,.content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #363636 #363636 !important}.button.is-dark.is-inverted.is-outlined[disabled],.content kbd.button.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-inverted.is-outlined,fieldset[disabled] .content kbd.button.is-inverted.is-outlined,.content fieldset[disabled] kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}.button.is-primary,.docstring>section>a.button.docs-sourcelink{background-color:#4eb5de;border-color:transparent;color:#fff}.button.is-primary:hover,.docstring>section>a.button.docs-sourcelink:hover,.button.is-primary.is-hovered,.docstring>section>a.button.is-hovered.docs-sourcelink{background-color:#43b1dc;border-color:transparent;color:#fff}.button.is-primary:focus,.docstring>section>a.button.docs-sourcelink:focus,.button.is-primary.is-focused,.docstring>section>a.button.is-focused.docs-sourcelink{border-color:transparent;color:#fff}.button.is-primary:focus:not(:active),.docstring>section>a.button.docs-sourcelink:focus:not(:active),.button.is-primary.is-focused:not(:active),.docstring>section>a.button.is-focused.docs-sourcelink:not(:active){box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.button.is-primary:active,.docstring>section>a.button.docs-sourcelink:active,.button.is-primary.is-active,.docstring>section>a.button.is-active.docs-sourcelink{background-color:#39acda;border-color:transparent;color:#fff}.button.is-primary[disabled],.docstring>section>a.button.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary,fieldset[disabled] .docstring>section>a.button.docs-sourcelink{background-color:#4eb5de;border-color:transparent;box-shadow:none}.button.is-primary.is-inverted,.docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;color:#4eb5de}.button.is-primary.is-inverted:hover,.docstring>section>a.button.is-inverted.docs-sourcelink:hover,.button.is-primary.is-inverted.is-hovered,.docstring>section>a.button.is-inverted.is-hovered.docs-sourcelink{background-color:#f2f2f2}.button.is-primary.is-inverted[disabled],.docstring>section>a.button.is-inverted.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-inverted,fieldset[disabled] .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;border-color:transparent;box-shadow:none;color:#4eb5de}.button.is-primary.is-loading::after,.docstring>section>a.button.is-loading.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}.button.is-primary.is-outlined,.docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#4eb5de;color:#4eb5de}.button.is-primary.is-outlined:hover,.docstring>section>a.button.is-outlined.docs-sourcelink:hover,.button.is-primary.is-outlined.is-hovered,.docstring>section>a.button.is-outlined.is-hovered.docs-sourcelink,.button.is-primary.is-outlined:focus,.docstring>section>a.button.is-outlined.docs-sourcelink:focus,.button.is-primary.is-outlined.is-focused,.docstring>section>a.button.is-outlined.is-focused.docs-sourcelink{background-color:#4eb5de;border-color:#4eb5de;color:#fff}.button.is-primary.is-outlined.is-loading::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink::after{border-color:transparent transparent #4eb5de #4eb5de !important}.button.is-primary.is-outlined.is-loading:hover::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:hover::after,.button.is-primary.is-outlined.is-loading.is-hovered::after,.docstring>section>a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after,.button.is-primary.is-outlined.is-loading:focus::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:focus::after,.button.is-primary.is-outlined.is-loading.is-focused::after,.docstring>section>a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}.button.is-primary.is-outlined[disabled],.docstring>section>a.button.is-outlined.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-outlined,fieldset[disabled] .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#4eb5de;box-shadow:none;color:#4eb5de}.button.is-primary.is-inverted.is-outlined,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;color:#fff}.button.is-primary.is-inverted.is-outlined:hover,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:hover,.button.is-primary.is-inverted.is-outlined.is-hovered,.docstring>section>a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink,.button.is-primary.is-inverted.is-outlined:focus,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:focus,.button.is-primary.is-inverted.is-outlined.is-focused,.docstring>section>a.button.is-inverted.is-outlined.is-focused.docs-sourcelink{background-color:#fff;color:#4eb5de}.button.is-primary.is-inverted.is-outlined.is-loading:hover::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after,.button.is-primary.is-inverted.is-outlined.is-loading:focus::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #4eb5de #4eb5de !important}.button.is-primary.is-inverted.is-outlined[disabled],.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-inverted.is-outlined,fieldset[disabled] .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-link{background-color:#2e63b8;border-color:transparent;color:#fff}.button.is-link:hover,.button.is-link.is-hovered{background-color:#2b5eae;border-color:transparent;color:#fff}.button.is-link:focus,.button.is-link.is-focused{border-color:transparent;color:#fff}.button.is-link:focus:not(:active),.button.is-link.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.button.is-link:active,.button.is-link.is-active{background-color:#2958a4;border-color:transparent;color:#fff}.button.is-link[disabled],fieldset[disabled] .button.is-link{background-color:#2e63b8;border-color:transparent;box-shadow:none}.button.is-link.is-inverted{background-color:#fff;color:#2e63b8}.button.is-link.is-inverted:hover,.button.is-link.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-link.is-inverted[disabled],fieldset[disabled] .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#2e63b8}.button.is-link.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-link.is-outlined{background-color:transparent;border-color:#2e63b8;color:#2e63b8}.button.is-link.is-outlined:hover,.button.is-link.is-outlined.is-hovered,.button.is-link.is-outlined:focus,.button.is-link.is-outlined.is-focused{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #2e63b8 #2e63b8 !important}.button.is-link.is-outlined.is-loading:hover::after,.button.is-link.is-outlined.is-loading.is-hovered::after,.button.is-link.is-outlined.is-loading:focus::after,.button.is-link.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-link.is-outlined[disabled],fieldset[disabled] .button.is-link.is-outlined{background-color:transparent;border-color:#2e63b8;box-shadow:none;color:#2e63b8}.button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-link.is-inverted.is-outlined:hover,.button.is-link.is-inverted.is-outlined.is-hovered,.button.is-link.is-inverted.is-outlined:focus,.button.is-link.is-inverted.is-outlined.is-focused{background-color:#fff;color:#2e63b8}.button.is-link.is-inverted.is-outlined.is-loading:hover::after,.button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-link.is-inverted.is-outlined.is-loading:focus::after,.button.is-link.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #2e63b8 #2e63b8 !important}.button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-info{background-color:#209cee;border-color:transparent;color:#fff}.button.is-info:hover,.button.is-info.is-hovered{background-color:#1497ed;border-color:transparent;color:#fff}.button.is-info:focus,.button.is-info.is-focused{border-color:transparent;color:#fff}.button.is-info:focus:not(:active),.button.is-info.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.button.is-info:active,.button.is-info.is-active{background-color:#1190e3;border-color:transparent;color:#fff}.button.is-info[disabled],fieldset[disabled] .button.is-info{background-color:#209cee;border-color:transparent;box-shadow:none}.button.is-info.is-inverted{background-color:#fff;color:#209cee}.button.is-info.is-inverted:hover,.button.is-info.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-info.is-inverted[disabled],fieldset[disabled] .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#209cee}.button.is-info.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-info.is-outlined{background-color:transparent;border-color:#209cee;color:#209cee}.button.is-info.is-outlined:hover,.button.is-info.is-outlined.is-hovered,.button.is-info.is-outlined:focus,.button.is-info.is-outlined.is-focused{background-color:#209cee;border-color:#209cee;color:#fff}.button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #209cee #209cee !important}.button.is-info.is-outlined.is-loading:hover::after,.button.is-info.is-outlined.is-loading.is-hovered::after,.button.is-info.is-outlined.is-loading:focus::after,.button.is-info.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-info.is-outlined[disabled],fieldset[disabled] .button.is-info.is-outlined{background-color:transparent;border-color:#209cee;box-shadow:none;color:#209cee}.button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-info.is-inverted.is-outlined:hover,.button.is-info.is-inverted.is-outlined.is-hovered,.button.is-info.is-inverted.is-outlined:focus,.button.is-info.is-inverted.is-outlined.is-focused{background-color:#fff;color:#209cee}.button.is-info.is-inverted.is-outlined.is-loading:hover::after,.button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-info.is-inverted.is-outlined.is-loading:focus::after,.button.is-info.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #209cee #209cee !important}.button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-success{background-color:#22c35b;border-color:transparent;color:#fff}.button.is-success:hover,.button.is-success.is-hovered{background-color:#20b856;border-color:transparent;color:#fff}.button.is-success:focus,.button.is-success.is-focused{border-color:transparent;color:#fff}.button.is-success:focus:not(:active),.button.is-success.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.button.is-success:active,.button.is-success.is-active{background-color:#1ead51;border-color:transparent;color:#fff}.button.is-success[disabled],fieldset[disabled] .button.is-success{background-color:#22c35b;border-color:transparent;box-shadow:none}.button.is-success.is-inverted{background-color:#fff;color:#22c35b}.button.is-success.is-inverted:hover,.button.is-success.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-success.is-inverted[disabled],fieldset[disabled] .button.is-success.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#22c35b}.button.is-success.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-success.is-outlined{background-color:transparent;border-color:#22c35b;color:#22c35b}.button.is-success.is-outlined:hover,.button.is-success.is-outlined.is-hovered,.button.is-success.is-outlined:focus,.button.is-success.is-outlined.is-focused{background-color:#22c35b;border-color:#22c35b;color:#fff}.button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #22c35b #22c35b !important}.button.is-success.is-outlined.is-loading:hover::after,.button.is-success.is-outlined.is-loading.is-hovered::after,.button.is-success.is-outlined.is-loading:focus::after,.button.is-success.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-success.is-outlined[disabled],fieldset[disabled] .button.is-success.is-outlined{background-color:transparent;border-color:#22c35b;box-shadow:none;color:#22c35b}.button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-success.is-inverted.is-outlined:hover,.button.is-success.is-inverted.is-outlined.is-hovered,.button.is-success.is-inverted.is-outlined:focus,.button.is-success.is-inverted.is-outlined.is-focused{background-color:#fff;color:#22c35b}.button.is-success.is-inverted.is-outlined.is-loading:hover::after,.button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-success.is-inverted.is-outlined.is-loading:focus::after,.button.is-success.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #22c35b #22c35b !important}.button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-warning{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:hover,.button.is-warning.is-hovered{background-color:#ffda4a;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:focus,.button.is-warning.is-focused{border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:focus:not(:active),.button.is-warning.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.button.is-warning:active,.button.is-warning.is-active{background-color:#ffd83e;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning[disabled],fieldset[disabled] .button.is-warning{background-color:#ffdd57;border-color:transparent;box-shadow:none}.button.is-warning.is-inverted{background-color:rgba(0,0,0,0.7);color:#ffdd57}.button.is-warning.is-inverted:hover,.button.is-warning.is-inverted.is-hovered{background-color:rgba(0,0,0,0.7)}.button.is-warning.is-inverted[disabled],fieldset[disabled] .button.is-warning.is-inverted{background-color:rgba(0,0,0,0.7);border-color:transparent;box-shadow:none;color:#ffdd57}.button.is-warning.is-loading::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}.button.is-warning.is-outlined{background-color:transparent;border-color:#ffdd57;color:#ffdd57}.button.is-warning.is-outlined:hover,.button.is-warning.is-outlined.is-hovered,.button.is-warning.is-outlined:focus,.button.is-warning.is-outlined.is-focused{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,0.7)}.button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #ffdd57 #ffdd57 !important}.button.is-warning.is-outlined.is-loading:hover::after,.button.is-warning.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-outlined.is-loading:focus::after,.button.is-warning.is-outlined.is-loading.is-focused::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}.button.is-warning.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-outlined{background-color:transparent;border-color:#ffdd57;box-shadow:none;color:#ffdd57}.button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);color:rgba(0,0,0,0.7)}.button.is-warning.is-inverted.is-outlined:hover,.button.is-warning.is-inverted.is-outlined.is-hovered,.button.is-warning.is-inverted.is-outlined:focus,.button.is-warning.is-inverted.is-outlined.is-focused{background-color:rgba(0,0,0,0.7);color:#ffdd57}.button.is-warning.is-inverted.is-outlined.is-loading:hover::after,.button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-inverted.is-outlined.is-loading:focus::after,.button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ffdd57 #ffdd57 !important}.button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);box-shadow:none;color:rgba(0,0,0,0.7)}.button.is-danger{background-color:#da0b00;border-color:transparent;color:#fff}.button.is-danger:hover,.button.is-danger.is-hovered{background-color:#cd0a00;border-color:transparent;color:#fff}.button.is-danger:focus,.button.is-danger.is-focused{border-color:transparent;color:#fff}.button.is-danger:focus:not(:active),.button.is-danger.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.button.is-danger:active,.button.is-danger.is-active{background-color:#c10a00;border-color:transparent;color:#fff}.button.is-danger[disabled],fieldset[disabled] .button.is-danger{background-color:#da0b00;border-color:transparent;box-shadow:none}.button.is-danger.is-inverted{background-color:#fff;color:#da0b00}.button.is-danger.is-inverted:hover,.button.is-danger.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-danger.is-inverted[disabled],fieldset[disabled] .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#da0b00}.button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-danger.is-outlined{background-color:transparent;border-color:#da0b00;color:#da0b00}.button.is-danger.is-outlined:hover,.button.is-danger.is-outlined.is-hovered,.button.is-danger.is-outlined:focus,.button.is-danger.is-outlined.is-focused{background-color:#da0b00;border-color:#da0b00;color:#fff}.button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #da0b00 #da0b00 !important}.button.is-danger.is-outlined.is-loading:hover::after,.button.is-danger.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-outlined.is-loading:focus::after,.button.is-danger.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-danger.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-outlined{background-color:transparent;border-color:#da0b00;box-shadow:none;color:#da0b00}.button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-danger.is-inverted.is-outlined:hover,.button.is-danger.is-inverted.is-outlined.is-hovered,.button.is-danger.is-inverted.is-outlined:focus,.button.is-danger.is-inverted.is-outlined.is-focused{background-color:#fff;color:#da0b00}.button.is-danger.is-inverted.is-outlined.is-loading:hover::after,.button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-inverted.is-outlined.is-loading:focus::after,.button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #da0b00 #da0b00 !important}.button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-small,#documenter .docs-sidebar form.docs-search>input.button{border-radius:2px;font-size:.75rem}.button.is-normal{font-size:1rem}.button.is-medium{font-size:1.25rem}.button.is-large{font-size:1.5rem}.button[disabled],fieldset[disabled] .button{background-color:#fff;border-color:#dbdbdb;box-shadow:none;opacity:.5}.button.is-fullwidth{display:flex;width:100%}.button.is-loading{color:transparent !important;pointer-events:none}.button.is-loading::after{position:absolute;left:calc(50% - (1em / 2));top:calc(50% - (1em / 2));position:absolute !important}.button.is-static{background-color:#f5f5f5;border-color:#dbdbdb;color:#6b6b6b;box-shadow:none;pointer-events:none}.button.is-rounded,#documenter .docs-sidebar form.docs-search>input.button{border-radius:290486px;padding-left:1em;padding-right:1em}.buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.buttons .button{margin-bottom:0.5rem}.buttons .button:not(:last-child):not(.is-fullwidth){margin-right:0.5rem}.buttons:last-child{margin-bottom:-0.5rem}.buttons:not(:last-child){margin-bottom:1rem}.buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){border-radius:2px;font-size:.75rem}.buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}.buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}.buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}.buttons.has-addons .button:last-child{margin-right:0}.buttons.has-addons .button:hover,.buttons.has-addons .button.is-hovered{z-index:2}.buttons.has-addons .button:focus,.buttons.has-addons .button.is-focused,.buttons.has-addons .button:active,.buttons.has-addons .button.is-active,.buttons.has-addons .button.is-selected{z-index:3}.buttons.has-addons .button:focus:hover,.buttons.has-addons .button.is-focused:hover,.buttons.has-addons .button:active:hover,.buttons.has-addons .button.is-active:hover,.buttons.has-addons .button.is-selected:hover{z-index:4}.buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}.buttons.is-centered{justify-content:center}.buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}.buttons.is-right{justify-content:flex-end}.buttons.is-right:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}.container{flex-grow:1;margin:0 auto;position:relative;width:auto}@media screen and (min-width: 1056px){.container{max-width:992px}.container.is-fluid{margin-left:32px;margin-right:32px;max-width:none}}@media screen and (max-width: 1215px){.container.is-widescreen{max-width:1152px}}@media screen and (max-width: 1407px){.container.is-fullhd{max-width:1344px}}@media screen and (min-width: 1216px){.container{max-width:1152px}}@media screen and (min-width: 1408px){.container{max-width:1344px}}.content li+li{margin-top:0.25em}.content p:not(:last-child),.content dl:not(:last-child),.content ol:not(:last-child),.content ul:not(:last-child),.content blockquote:not(:last-child),.content pre:not(:last-child),.content table:not(:last-child){margin-bottom:1em}.content h1,.content h2,.content h3,.content h4,.content h5,.content h6{color:#222;font-weight:600;line-height:1.125}.content h1{font-size:2em;margin-bottom:0.5em}.content h1:not(:first-child){margin-top:1em}.content h2{font-size:1.75em;margin-bottom:0.5714em}.content h2:not(:first-child){margin-top:1.1428em}.content h3{font-size:1.5em;margin-bottom:0.6666em}.content h3:not(:first-child){margin-top:1.3333em}.content h4{font-size:1.25em;margin-bottom:0.8em}.content h5{font-size:1.125em;margin-bottom:0.8888em}.content h6{font-size:1em;margin-bottom:1em}.content blockquote{background-color:#f5f5f5;border-left:5px solid #dbdbdb;padding:1.25em 1.5em}.content ol{list-style-position:outside;margin-left:2em;margin-top:1em}.content ol:not([type]){list-style-type:decimal}.content ol.is-lower-alpha:not([type]){list-style-type:lower-alpha}.content ol.is-lower-roman:not([type]){list-style-type:lower-roman}.content ol.is-upper-alpha:not([type]){list-style-type:upper-alpha}.content ol.is-upper-roman:not([type]){list-style-type:upper-roman}.content ul{list-style:disc outside;margin-left:2em;margin-top:1em}.content ul ul{list-style-type:circle;margin-top:0.5em}.content ul ul ul{list-style-type:square}.content dd{margin-left:2em}.content figure{margin-left:2em;margin-right:2em;text-align:center}.content figure:not(:first-child){margin-top:2em}.content figure:not(:last-child){margin-bottom:2em}.content figure img{display:inline-block}.content figure figcaption{font-style:italic}.content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:0;white-space:pre;word-wrap:normal}.content sup,.content sub{font-size:75%}.content table{width:100%}.content table td,.content table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}.content table th{color:#222}.content table th:not([align]){text-align:left}.content table thead td,.content table thead th{border-width:0 0 2px;color:#222}.content table tfoot td,.content table tfoot th{border-width:2px 0 0;color:#222}.content table tbody tr:last-child td,.content table tbody tr:last-child th{border-bottom-width:0}.content .tabs li+li{margin-top:0}.content.is-small,#documenter .docs-sidebar form.docs-search>input.content{font-size:.75rem}.content.is-medium{font-size:1.25rem}.content.is-large{font-size:1.5rem}.icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}.icon.is-small,#documenter .docs-sidebar form.docs-search>input.icon{height:1rem;width:1rem}.icon.is-medium{height:2rem;width:2rem}.icon.is-large{height:3rem;width:3rem}.image,#documenter .docs-sidebar .docs-logo>img{display:block;position:relative}.image img,#documenter .docs-sidebar .docs-logo>img img{display:block;height:auto;width:100%}.image img.is-rounded,#documenter .docs-sidebar .docs-logo>img img.is-rounded{border-radius:290486px}.image.is-square img,#documenter .docs-sidebar .docs-logo>img.is-square img,.image.is-square .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,.image.is-1by1 img,#documenter .docs-sidebar .docs-logo>img.is-1by1 img,.image.is-1by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,.image.is-5by4 img,#documenter .docs-sidebar .docs-logo>img.is-5by4 img,.image.is-5by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,.image.is-4by3 img,#documenter .docs-sidebar .docs-logo>img.is-4by3 img,.image.is-4by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,.image.is-3by2 img,#documenter .docs-sidebar .docs-logo>img.is-3by2 img,.image.is-3by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,.image.is-5by3 img,#documenter .docs-sidebar .docs-logo>img.is-5by3 img,.image.is-5by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,.image.is-16by9 img,#documenter .docs-sidebar .docs-logo>img.is-16by9 img,.image.is-16by9 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,.image.is-2by1 img,#documenter .docs-sidebar .docs-logo>img.is-2by1 img,.image.is-2by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,.image.is-3by1 img,#documenter .docs-sidebar .docs-logo>img.is-3by1 img,.image.is-3by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,.image.is-4by5 img,#documenter .docs-sidebar .docs-logo>img.is-4by5 img,.image.is-4by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,.image.is-3by4 img,#documenter .docs-sidebar .docs-logo>img.is-3by4 img,.image.is-3by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,.image.is-2by3 img,#documenter .docs-sidebar .docs-logo>img.is-2by3 img,.image.is-2by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,.image.is-3by5 img,#documenter .docs-sidebar .docs-logo>img.is-3by5 img,.image.is-3by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,.image.is-9by16 img,#documenter .docs-sidebar .docs-logo>img.is-9by16 img,.image.is-9by16 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,.image.is-1by2 img,#documenter .docs-sidebar .docs-logo>img.is-1by2 img,.image.is-1by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,.image.is-1by3 img,#documenter .docs-sidebar .docs-logo>img.is-1by3 img,.image.is-1by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio{height:100%;width:100%}.image.is-square,#documenter .docs-sidebar .docs-logo>img.is-square,.image.is-1by1,#documenter .docs-sidebar .docs-logo>img.is-1by1{padding-top:100%}.image.is-5by4,#documenter .docs-sidebar .docs-logo>img.is-5by4{padding-top:80%}.image.is-4by3,#documenter .docs-sidebar .docs-logo>img.is-4by3{padding-top:75%}.image.is-3by2,#documenter .docs-sidebar .docs-logo>img.is-3by2{padding-top:66.6666%}.image.is-5by3,#documenter .docs-sidebar .docs-logo>img.is-5by3{padding-top:60%}.image.is-16by9,#documenter .docs-sidebar .docs-logo>img.is-16by9{padding-top:56.25%}.image.is-2by1,#documenter .docs-sidebar .docs-logo>img.is-2by1{padding-top:50%}.image.is-3by1,#documenter .docs-sidebar .docs-logo>img.is-3by1{padding-top:33.3333%}.image.is-4by5,#documenter .docs-sidebar .docs-logo>img.is-4by5{padding-top:125%}.image.is-3by4,#documenter .docs-sidebar .docs-logo>img.is-3by4{padding-top:133.3333%}.image.is-2by3,#documenter .docs-sidebar .docs-logo>img.is-2by3{padding-top:150%}.image.is-3by5,#documenter .docs-sidebar .docs-logo>img.is-3by5{padding-top:166.6666%}.image.is-9by16,#documenter .docs-sidebar .docs-logo>img.is-9by16{padding-top:177.7777%}.image.is-1by2,#documenter .docs-sidebar .docs-logo>img.is-1by2{padding-top:200%}.image.is-1by3,#documenter .docs-sidebar .docs-logo>img.is-1by3{padding-top:300%}.image.is-16x16,#documenter .docs-sidebar .docs-logo>img.is-16x16{height:16px;width:16px}.image.is-24x24,#documenter .docs-sidebar .docs-logo>img.is-24x24{height:24px;width:24px}.image.is-32x32,#documenter .docs-sidebar .docs-logo>img.is-32x32{height:32px;width:32px}.image.is-48x48,#documenter .docs-sidebar .docs-logo>img.is-48x48{height:48px;width:48px}.image.is-64x64,#documenter .docs-sidebar .docs-logo>img.is-64x64{height:64px;width:64px}.image.is-96x96,#documenter .docs-sidebar .docs-logo>img.is-96x96{height:96px;width:96px}.image.is-128x128,#documenter .docs-sidebar .docs-logo>img.is-128x128{height:128px;width:128px}.notification{background-color:#f5f5f5;border-radius:4px;padding:1.25rem 2.5rem 1.25rem 1.5rem;position:relative}.notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}.notification strong{color:currentColor}.notification code,.notification pre{background:#fff}.notification pre code{background:transparent}.notification>.delete{position:absolute;right:0.5rem;top:0.5rem}.notification .title,.notification .subtitle,.notification .content{color:currentColor}.notification.is-white{background-color:#fff;color:#0a0a0a}.notification.is-black{background-color:#0a0a0a;color:#fff}.notification.is-light{background-color:#f5f5f5;color:#363636}.notification.is-dark,.content kbd.notification{background-color:#363636;color:#f5f5f5}.notification.is-primary,.docstring>section>a.notification.docs-sourcelink{background-color:#4eb5de;color:#fff}.notification.is-link{background-color:#2e63b8;color:#fff}.notification.is-info{background-color:#209cee;color:#fff}.notification.is-success{background-color:#22c35b;color:#fff}.notification.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.notification.is-danger{background-color:#da0b00;color:#fff}.progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:290486px;display:block;height:1rem;overflow:hidden;padding:0;width:100%}.progress::-webkit-progress-bar{background-color:#dbdbdb}.progress::-webkit-progress-value{background-color:#222}.progress::-moz-progress-bar{background-color:#222}.progress::-ms-fill{background-color:#222;border:none}.progress.is-white::-webkit-progress-value{background-color:#fff}.progress.is-white::-moz-progress-bar{background-color:#fff}.progress.is-white::-ms-fill{background-color:#fff}.progress.is-white:indeterminate{background-image:linear-gradient(to right, #fff 30%, #dbdbdb 30%)}.progress.is-black::-webkit-progress-value{background-color:#0a0a0a}.progress.is-black::-moz-progress-bar{background-color:#0a0a0a}.progress.is-black::-ms-fill{background-color:#0a0a0a}.progress.is-black:indeterminate{background-image:linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%)}.progress.is-light::-webkit-progress-value{background-color:#f5f5f5}.progress.is-light::-moz-progress-bar{background-color:#f5f5f5}.progress.is-light::-ms-fill{background-color:#f5f5f5}.progress.is-light:indeterminate{background-image:linear-gradient(to right, #f5f5f5 30%, #dbdbdb 30%)}.progress.is-dark::-webkit-progress-value,.content kbd.progress::-webkit-progress-value{background-color:#363636}.progress.is-dark::-moz-progress-bar,.content kbd.progress::-moz-progress-bar{background-color:#363636}.progress.is-dark::-ms-fill,.content kbd.progress::-ms-fill{background-color:#363636}.progress.is-dark:indeterminate,.content kbd.progress:indeterminate{background-image:linear-gradient(to right, #363636 30%, #dbdbdb 30%)}.progress.is-primary::-webkit-progress-value,.docstring>section>a.progress.docs-sourcelink::-webkit-progress-value{background-color:#4eb5de}.progress.is-primary::-moz-progress-bar,.docstring>section>a.progress.docs-sourcelink::-moz-progress-bar{background-color:#4eb5de}.progress.is-primary::-ms-fill,.docstring>section>a.progress.docs-sourcelink::-ms-fill{background-color:#4eb5de}.progress.is-primary:indeterminate,.docstring>section>a.progress.docs-sourcelink:indeterminate{background-image:linear-gradient(to right, #4eb5de 30%, #dbdbdb 30%)}.progress.is-link::-webkit-progress-value{background-color:#2e63b8}.progress.is-link::-moz-progress-bar{background-color:#2e63b8}.progress.is-link::-ms-fill{background-color:#2e63b8}.progress.is-link:indeterminate{background-image:linear-gradient(to right, #2e63b8 30%, #dbdbdb 30%)}.progress.is-info::-webkit-progress-value{background-color:#209cee}.progress.is-info::-moz-progress-bar{background-color:#209cee}.progress.is-info::-ms-fill{background-color:#209cee}.progress.is-info:indeterminate{background-image:linear-gradient(to right, #209cee 30%, #dbdbdb 30%)}.progress.is-success::-webkit-progress-value{background-color:#22c35b}.progress.is-success::-moz-progress-bar{background-color:#22c35b}.progress.is-success::-ms-fill{background-color:#22c35b}.progress.is-success:indeterminate{background-image:linear-gradient(to right, #22c35b 30%, #dbdbdb 30%)}.progress.is-warning::-webkit-progress-value{background-color:#ffdd57}.progress.is-warning::-moz-progress-bar{background-color:#ffdd57}.progress.is-warning::-ms-fill{background-color:#ffdd57}.progress.is-warning:indeterminate{background-image:linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%)}.progress.is-danger::-webkit-progress-value{background-color:#da0b00}.progress.is-danger::-moz-progress-bar{background-color:#da0b00}.progress.is-danger::-ms-fill{background-color:#da0b00}.progress.is-danger:indeterminate{background-image:linear-gradient(to right, #da0b00 30%, #dbdbdb 30%)}.progress:indeterminate{animation-duration:1.5s;animation-iteration-count:infinite;animation-name:moveIndeterminate;animation-timing-function:linear;background-color:#dbdbdb;background-image:linear-gradient(to right, #222 30%, #dbdbdb 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}.progress:indeterminate::-webkit-progress-bar{background-color:transparent}.progress:indeterminate::-moz-progress-bar{background-color:transparent}.progress.is-small,#documenter .docs-sidebar form.docs-search>input.progress{height:.75rem}.progress.is-medium{height:1.25rem}.progress.is-large{height:1.5rem}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}.table{background-color:#fff;color:#363636}.table td,.table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}.table td.is-white,.table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}.table td.is-black,.table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.table td.is-light,.table th.is-light{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.table td.is-dark,.table th.is-dark{background-color:#363636;border-color:#363636;color:#f5f5f5}.table td.is-primary,.table th.is-primary{background-color:#4eb5de;border-color:#4eb5de;color:#fff}.table td.is-link,.table th.is-link{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.table td.is-info,.table th.is-info{background-color:#209cee;border-color:#209cee;color:#fff}.table td.is-success,.table th.is-success{background-color:#22c35b;border-color:#22c35b;color:#fff}.table td.is-warning,.table th.is-warning{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,0.7)}.table td.is-danger,.table th.is-danger{background-color:#da0b00;border-color:#da0b00;color:#fff}.table td.is-narrow,.table th.is-narrow{white-space:nowrap;width:1%}.table td.is-selected,.table th.is-selected{background-color:#4eb5de;color:#fff}.table td.is-selected a,.table td.is-selected strong,.table th.is-selected a,.table th.is-selected strong{color:currentColor}.table th{color:#222}.table th:not([align]){text-align:left}.table tr.is-selected{background-color:#4eb5de;color:#fff}.table tr.is-selected a,.table tr.is-selected strong{color:currentColor}.table tr.is-selected td,.table tr.is-selected th{border-color:#fff;color:currentColor}.table thead{background-color:rgba(0,0,0,0)}.table thead td,.table thead th{border-width:0 0 2px;color:#222}.table tfoot{background-color:rgba(0,0,0,0)}.table tfoot td,.table tfoot th{border-width:2px 0 0;color:#222}.table tbody{background-color:rgba(0,0,0,0)}.table tbody tr:last-child td,.table tbody tr:last-child th{border-bottom-width:0}.table.is-bordered td,.table.is-bordered th{border-width:1px}.table.is-bordered tr:last-child td,.table.is-bordered tr:last-child th{border-bottom-width:1px}.table.is-fullwidth{width:100%}.table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even){background-color:#f5f5f5}.table.is-narrow td,.table.is-narrow th{padding:0.25em 0.5em}.table.is-striped tbody tr:not(.is-selected):nth-child(even){background-color:#fafafa}.table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}.tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.tags .tag,.tags .content kbd,.content .tags kbd,.tags .docstring>section>a.docs-sourcelink{margin-bottom:0.5rem}.tags .tag:not(:last-child),.tags .content kbd:not(:last-child),.content .tags kbd:not(:last-child),.tags .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0.5rem}.tags:last-child{margin-bottom:-0.5rem}.tags:not(:last-child){margin-bottom:1rem}.tags.are-medium .tag:not(.is-normal):not(.is-large),.tags.are-medium .content kbd:not(.is-normal):not(.is-large),.content .tags.are-medium kbd:not(.is-normal):not(.is-large),.tags.are-medium .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-large){font-size:1rem}.tags.are-large .tag:not(.is-normal):not(.is-medium),.tags.are-large .content kbd:not(.is-normal):not(.is-medium),.content .tags.are-large kbd:not(.is-normal):not(.is-medium),.tags.are-large .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-medium){font-size:1.25rem}.tags.is-centered{justify-content:center}.tags.is-centered .tag,.tags.is-centered .content kbd,.content .tags.is-centered kbd,.tags.is-centered .docstring>section>a.docs-sourcelink{margin-right:0.25rem;margin-left:0.25rem}.tags.is-right{justify-content:flex-end}.tags.is-right .tag:not(:first-child),.tags.is-right .content kbd:not(:first-child),.content .tags.is-right kbd:not(:first-child),.tags.is-right .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0.5rem}.tags.is-right .tag:not(:last-child),.tags.is-right .content kbd:not(:last-child),.content .tags.is-right kbd:not(:last-child),.tags.is-right .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0}.tags.has-addons .tag,.tags.has-addons .content kbd,.content .tags.has-addons kbd,.tags.has-addons .docstring>section>a.docs-sourcelink{margin-right:0}.tags.has-addons .tag:not(:first-child),.tags.has-addons .content kbd:not(:first-child),.content .tags.has-addons kbd:not(:first-child),.tags.has-addons .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0;border-bottom-left-radius:0;border-top-left-radius:0}.tags.has-addons .tag:not(:last-child),.tags.has-addons .content kbd:not(:last-child),.content .tags.has-addons kbd:not(:last-child),.tags.has-addons .docstring>section>a.docs-sourcelink:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.tag:not(body),.content kbd:not(body),.docstring>section>a.docs-sourcelink:not(body){align-items:center;background-color:#f5f5f5;border-radius:4px;color:#222;display:inline-flex;font-size:.75rem;height:2em;justify-content:center;line-height:1.5;padding-left:0.75em;padding-right:0.75em;white-space:nowrap}.tag:not(body) .delete,.content kbd:not(body) .delete,.docstring>section>a.docs-sourcelink:not(body) .delete{margin-left:0.25rem;margin-right:-0.375rem}.tag.is-white:not(body),.content kbd.is-white:not(body),.docstring>section>a.docs-sourcelink.is-white:not(body){background-color:#fff;color:#0a0a0a}.tag.is-black:not(body),.content kbd.is-black:not(body),.docstring>section>a.docs-sourcelink.is-black:not(body){background-color:#0a0a0a;color:#fff}.tag.is-light:not(body),.content kbd.is-light:not(body),.docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#f5f5f5;color:#363636}.tag.is-dark:not(body),.content kbd:not(body),.docstring>section>a.docs-sourcelink.is-dark:not(body),.content .docstring>section>kbd:not(body){background-color:#363636;color:#f5f5f5}.tag.is-primary:not(body),.content kbd.is-primary:not(body),.docstring>section>a.docs-sourcelink:not(body){background-color:#4eb5de;color:#fff}.tag.is-link:not(body),.content kbd.is-link:not(body),.docstring>section>a.docs-sourcelink.is-link:not(body){background-color:#2e63b8;color:#fff}.tag.is-info:not(body),.content kbd.is-info:not(body),.docstring>section>a.docs-sourcelink.is-info:not(body){background-color:#209cee;color:#fff}.tag.is-success:not(body),.content kbd.is-success:not(body),.docstring>section>a.docs-sourcelink.is-success:not(body){background-color:#22c35b;color:#fff}.tag.is-warning:not(body),.content kbd.is-warning:not(body),.docstring>section>a.docs-sourcelink.is-warning:not(body){background-color:#ffdd57;color:rgba(0,0,0,0.7)}.tag.is-danger:not(body),.content kbd.is-danger:not(body),.docstring>section>a.docs-sourcelink.is-danger:not(body){background-color:#da0b00;color:#fff}.tag.is-normal:not(body),.content kbd.is-normal:not(body),.docstring>section>a.docs-sourcelink.is-normal:not(body){font-size:.75rem}.tag.is-medium:not(body),.content kbd.is-medium:not(body),.docstring>section>a.docs-sourcelink.is-medium:not(body){font-size:1rem}.tag.is-large:not(body),.content kbd.is-large:not(body),.docstring>section>a.docs-sourcelink.is-large:not(body){font-size:1.25rem}.tag:not(body) .icon:first-child:not(:last-child),.content kbd:not(body) .icon:first-child:not(:last-child),.docstring>section>a.docs-sourcelink:not(body) .icon:first-child:not(:last-child){margin-left:-0.375em;margin-right:0.1875em}.tag:not(body) .icon:last-child:not(:first-child),.content kbd:not(body) .icon:last-child:not(:first-child),.docstring>section>a.docs-sourcelink:not(body) .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:-0.375em}.tag:not(body) .icon:first-child:last-child,.content kbd:not(body) .icon:first-child:last-child,.docstring>section>a.docs-sourcelink:not(body) .icon:first-child:last-child{margin-left:-0.375em;margin-right:-0.375em}.tag.is-delete:not(body),.content kbd.is-delete:not(body),.docstring>section>a.docs-sourcelink.is-delete:not(body){margin-left:1px;padding:0;position:relative;width:2em}.tag.is-delete:not(body)::before,.content kbd.is-delete:not(body)::before,.docstring>section>a.docs-sourcelink.is-delete:not(body)::before,.tag.is-delete:not(body)::after,.content kbd.is-delete:not(body)::after,.docstring>section>a.docs-sourcelink.is-delete:not(body)::after{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.tag.is-delete:not(body)::before,.content kbd.is-delete:not(body)::before,.docstring>section>a.docs-sourcelink.is-delete:not(body)::before{height:1px;width:50%}.tag.is-delete:not(body)::after,.content kbd.is-delete:not(body)::after,.docstring>section>a.docs-sourcelink.is-delete:not(body)::after{height:50%;width:1px}.tag.is-delete:not(body):hover,.content kbd.is-delete:not(body):hover,.docstring>section>a.docs-sourcelink.is-delete:not(body):hover,.tag.is-delete:not(body):focus,.content kbd.is-delete:not(body):focus,.docstring>section>a.docs-sourcelink.is-delete:not(body):focus{background-color:#e8e8e8}.tag.is-delete:not(body):active,.content kbd.is-delete:not(body):active,.docstring>section>a.docs-sourcelink.is-delete:not(body):active{background-color:#dbdbdb}.tag.is-rounded:not(body),#documenter .docs-sidebar form.docs-search>input:not(body),.content kbd.is-rounded:not(body),#documenter .docs-sidebar .content form.docs-search>input:not(body),.docstring>section>a.docs-sourcelink.is-rounded:not(body){border-radius:290486px}a.tag:hover,.docstring>section>a.docs-sourcelink:hover{text-decoration:underline}.title,.subtitle{word-break:break-word}.title em,.title span,.subtitle em,.subtitle span{font-weight:inherit}.title sub,.subtitle sub{font-size:.75em}.title sup,.subtitle sup{font-size:.75em}.title .tag,.title .content kbd,.content .title kbd,.title .docstring>section>a.docs-sourcelink,.subtitle .tag,.subtitle .content kbd,.content .subtitle kbd,.subtitle .docstring>section>a.docs-sourcelink{vertical-align:middle}.title{color:#363636;font-size:2rem;font-weight:600;line-height:1.125}.title strong{color:inherit;font-weight:inherit}.title+.highlight{margin-top:-0.75rem}.title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}.title.is-1{font-size:3rem}.title.is-2{font-size:2.5rem}.title.is-3{font-size:2rem}.title.is-4{font-size:1.5rem}.title.is-5{font-size:1.25rem}.title.is-6{font-size:1rem}.title.is-7{font-size:.75rem}.subtitle{color:#4a4a4a;font-size:1.25rem;font-weight:400;line-height:1.25}.subtitle strong{color:#363636;font-weight:600}.subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}.subtitle.is-1{font-size:3rem}.subtitle.is-2{font-size:2.5rem}.subtitle.is-3{font-size:2rem}.subtitle.is-4{font-size:1.5rem}.subtitle.is-5{font-size:1.25rem}.subtitle.is-6{font-size:1rem}.subtitle.is-7{font-size:.75rem}.heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}.highlight{font-weight:400;max-width:100%;overflow:hidden;padding:0}.highlight pre{overflow:auto;max-width:100%}.number{align-items:center;background-color:#f5f5f5;border-radius:290486px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:0.25rem 0.5rem;text-align:center;vertical-align:top}.select select,.textarea,.input,#documenter .docs-sidebar form.docs-search>input{background-color:#fff;border-color:#dbdbdb;border-radius:4px;color:#363636}.select select::-moz-placeholder,.textarea::-moz-placeholder,.input::-moz-placeholder,#documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(54,54,54,0.3)}.select select::-webkit-input-placeholder,.textarea::-webkit-input-placeholder,.input::-webkit-input-placeholder,#documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(54,54,54,0.3)}.select select:-moz-placeholder,.textarea:-moz-placeholder,.input:-moz-placeholder,#documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(54,54,54,0.3)}.select select:-ms-input-placeholder,.textarea:-ms-input-placeholder,.input:-ms-input-placeholder,#documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(54,54,54,0.3)}.select select:hover,.textarea:hover,.input:hover,#documenter .docs-sidebar form.docs-search>input:hover,.select select.is-hovered,.is-hovered.textarea,.is-hovered.input,#documenter .docs-sidebar form.docs-search>input.is-hovered{border-color:#b5b5b5}.select select:focus,.textarea:focus,.input:focus,#documenter .docs-sidebar form.docs-search>input:focus,.select select.is-focused,.is-focused.textarea,.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.select select:active,.textarea:active,.input:active,#documenter .docs-sidebar form.docs-search>input:active,.select select.is-active,.is-active.textarea,.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{border-color:#2e63b8;box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.select select[disabled],.textarea[disabled],.input[disabled],#documenter .docs-sidebar form.docs-search>input[disabled],fieldset[disabled] .select select,.select fieldset[disabled] select,fieldset[disabled] .textarea,fieldset[disabled] .input,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input{background-color:#f5f5f5;border-color:#f5f5f5;box-shadow:none;color:#6b6b6b}.select select[disabled]::-moz-placeholder,.textarea[disabled]::-moz-placeholder,.input[disabled]::-moz-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]::-moz-placeholder,fieldset[disabled] .select select::-moz-placeholder,.select fieldset[disabled] select::-moz-placeholder,fieldset[disabled] .textarea::-moz-placeholder,fieldset[disabled] .input::-moz-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input::-moz-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input::-moz-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]::-webkit-input-placeholder,.textarea[disabled]::-webkit-input-placeholder,.input[disabled]::-webkit-input-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]::-webkit-input-placeholder,fieldset[disabled] .select select::-webkit-input-placeholder,.select fieldset[disabled] select::-webkit-input-placeholder,fieldset[disabled] .textarea::-webkit-input-placeholder,fieldset[disabled] .input::-webkit-input-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input::-webkit-input-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]:-moz-placeholder,.textarea[disabled]:-moz-placeholder,.input[disabled]:-moz-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]:-moz-placeholder,fieldset[disabled] .select select:-moz-placeholder,.select fieldset[disabled] select:-moz-placeholder,fieldset[disabled] .textarea:-moz-placeholder,fieldset[disabled] .input:-moz-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input:-moz-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input:-moz-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]:-ms-input-placeholder,.textarea[disabled]:-ms-input-placeholder,.input[disabled]:-ms-input-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]:-ms-input-placeholder,fieldset[disabled] .select select:-ms-input-placeholder,.select fieldset[disabled] select:-ms-input-placeholder,fieldset[disabled] .textarea:-ms-input-placeholder,fieldset[disabled] .input:-ms-input-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input:-ms-input-placeholder{color:rgba(107,107,107,0.3)}.textarea,.input,#documenter .docs-sidebar form.docs-search>input{box-shadow:inset 0 1px 2px rgba(10,10,10,0.1);max-width:100%;width:100%}.textarea[readonly],.input[readonly],#documenter .docs-sidebar form.docs-search>input[readonly]{box-shadow:none}.is-white.textarea,.is-white.input,#documenter .docs-sidebar form.docs-search>input.is-white{border-color:#fff}.is-white.textarea:focus,.is-white.input:focus,#documenter .docs-sidebar form.docs-search>input.is-white:focus,.is-white.is-focused.textarea,.is-white.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-white.textarea:active,.is-white.input:active,#documenter .docs-sidebar form.docs-search>input.is-white:active,.is-white.is-active.textarea,.is-white.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.is-black.textarea,.is-black.input,#documenter .docs-sidebar form.docs-search>input.is-black{border-color:#0a0a0a}.is-black.textarea:focus,.is-black.input:focus,#documenter .docs-sidebar form.docs-search>input.is-black:focus,.is-black.is-focused.textarea,.is-black.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-black.textarea:active,.is-black.input:active,#documenter .docs-sidebar form.docs-search>input.is-black:active,.is-black.is-active.textarea,.is-black.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.is-light.textarea,.is-light.input,#documenter .docs-sidebar form.docs-search>input.is-light{border-color:#f5f5f5}.is-light.textarea:focus,.is-light.input:focus,#documenter .docs-sidebar form.docs-search>input.is-light:focus,.is-light.is-focused.textarea,.is-light.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-light.textarea:active,.is-light.input:active,#documenter .docs-sidebar form.docs-search>input.is-light:active,.is-light.is-active.textarea,.is-light.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.is-dark.textarea,.content kbd.textarea,.is-dark.input,#documenter .docs-sidebar form.docs-search>input.is-dark,.content kbd.input{border-color:#363636}.is-dark.textarea:focus,.content kbd.textarea:focus,.is-dark.input:focus,#documenter .docs-sidebar form.docs-search>input.is-dark:focus,.content kbd.input:focus,.is-dark.is-focused.textarea,.content kbd.is-focused.textarea,.is-dark.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.content kbd.is-focused.input,#documenter .docs-sidebar .content form.docs-search>input.is-focused,.is-dark.textarea:active,.content kbd.textarea:active,.is-dark.input:active,#documenter .docs-sidebar form.docs-search>input.is-dark:active,.content kbd.input:active,.is-dark.is-active.textarea,.content kbd.is-active.textarea,.is-dark.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.content kbd.is-active.input,#documenter .docs-sidebar .content form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.is-primary.textarea,.docstring>section>a.textarea.docs-sourcelink,.is-primary.input,#documenter .docs-sidebar form.docs-search>input.is-primary,.docstring>section>a.input.docs-sourcelink{border-color:#4eb5de}.is-primary.textarea:focus,.docstring>section>a.textarea.docs-sourcelink:focus,.is-primary.input:focus,#documenter .docs-sidebar form.docs-search>input.is-primary:focus,.docstring>section>a.input.docs-sourcelink:focus,.is-primary.is-focused.textarea,.docstring>section>a.is-focused.textarea.docs-sourcelink,.is-primary.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.docstring>section>a.is-focused.input.docs-sourcelink,.is-primary.textarea:active,.docstring>section>a.textarea.docs-sourcelink:active,.is-primary.input:active,#documenter .docs-sidebar form.docs-search>input.is-primary:active,.docstring>section>a.input.docs-sourcelink:active,.is-primary.is-active.textarea,.docstring>section>a.is-active.textarea.docs-sourcelink,.is-primary.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.docstring>section>a.is-active.input.docs-sourcelink{box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.is-link.textarea,.is-link.input,#documenter .docs-sidebar form.docs-search>input.is-link{border-color:#2e63b8}.is-link.textarea:focus,.is-link.input:focus,#documenter .docs-sidebar form.docs-search>input.is-link:focus,.is-link.is-focused.textarea,.is-link.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-link.textarea:active,.is-link.input:active,#documenter .docs-sidebar form.docs-search>input.is-link:active,.is-link.is-active.textarea,.is-link.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.is-info.textarea,.is-info.input,#documenter .docs-sidebar form.docs-search>input.is-info{border-color:#209cee}.is-info.textarea:focus,.is-info.input:focus,#documenter .docs-sidebar form.docs-search>input.is-info:focus,.is-info.is-focused.textarea,.is-info.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-info.textarea:active,.is-info.input:active,#documenter .docs-sidebar form.docs-search>input.is-info:active,.is-info.is-active.textarea,.is-info.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.is-success.textarea,.is-success.input,#documenter .docs-sidebar form.docs-search>input.is-success{border-color:#22c35b}.is-success.textarea:focus,.is-success.input:focus,#documenter .docs-sidebar form.docs-search>input.is-success:focus,.is-success.is-focused.textarea,.is-success.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-success.textarea:active,.is-success.input:active,#documenter .docs-sidebar form.docs-search>input.is-success:active,.is-success.is-active.textarea,.is-success.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.is-warning.textarea,.is-warning.input,#documenter .docs-sidebar form.docs-search>input.is-warning{border-color:#ffdd57}.is-warning.textarea:focus,.is-warning.input:focus,#documenter .docs-sidebar form.docs-search>input.is-warning:focus,.is-warning.is-focused.textarea,.is-warning.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-warning.textarea:active,.is-warning.input:active,#documenter .docs-sidebar form.docs-search>input.is-warning:active,.is-warning.is-active.textarea,.is-warning.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.is-danger.textarea,.is-danger.input,#documenter .docs-sidebar form.docs-search>input.is-danger{border-color:#da0b00}.is-danger.textarea:focus,.is-danger.input:focus,#documenter .docs-sidebar form.docs-search>input.is-danger:focus,.is-danger.is-focused.textarea,.is-danger.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-danger.textarea:active,.is-danger.input:active,#documenter .docs-sidebar form.docs-search>input.is-danger:active,.is-danger.is-active.textarea,.is-danger.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.is-small.textarea,.is-small.input,#documenter .docs-sidebar form.docs-search>input{border-radius:2px;font-size:.75rem}.is-medium.textarea,.is-medium.input,#documenter .docs-sidebar form.docs-search>input.is-medium{font-size:1.25rem}.is-large.textarea,.is-large.input,#documenter .docs-sidebar form.docs-search>input.is-large{font-size:1.5rem}.is-fullwidth.textarea,.is-fullwidth.input,#documenter .docs-sidebar form.docs-search>input.is-fullwidth{display:block;width:100%}.is-inline.textarea,.is-inline.input,#documenter .docs-sidebar form.docs-search>input.is-inline{display:inline;width:auto}.input.is-rounded,#documenter .docs-sidebar form.docs-search>input{border-radius:290486px;padding-left:1em;padding-right:1em}.input.is-static,#documenter .docs-sidebar form.docs-search>input.is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}.textarea{display:block;max-width:100%;min-width:100%;padding:0.625em;resize:vertical}.textarea:not([rows]){max-height:600px;min-height:120px}.textarea[rows]{height:initial}.textarea.has-fixed-size{resize:none}.radio,.checkbox{cursor:pointer;display:inline-block;line-height:1.25;position:relative}.radio input,.checkbox input{cursor:pointer}.radio:hover,.checkbox:hover{color:#363636}.radio[disabled],.checkbox[disabled],fieldset[disabled] .radio,fieldset[disabled] .checkbox{color:#6b6b6b;cursor:not-allowed}.radio+.radio{margin-left:0.5em}.select{display:inline-block;max-width:100%;position:relative;vertical-align:top}.select:not(.is-multiple){height:2.25em}.select:not(.is-multiple):not(.is-loading)::after{border-color:#2e63b8;right:1.125em;z-index:4}.select.is-rounded select,#documenter .docs-sidebar form.docs-search>input.select select{border-radius:290486px;padding-left:1em}.select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:none}.select select::-ms-expand{display:none}.select select[disabled]:hover,fieldset[disabled] .select select:hover{border-color:#f5f5f5}.select select:not([multiple]){padding-right:2.5em}.select select[multiple]{height:auto;padding:0}.select select[multiple] option{padding:0.5em 1em}.select:not(.is-multiple):not(.is-loading):hover::after{border-color:#363636}.select.is-white:not(:hover)::after{border-color:#fff}.select.is-white select{border-color:#fff}.select.is-white select:hover,.select.is-white select.is-hovered{border-color:#f2f2f2}.select.is-white select:focus,.select.is-white select.is-focused,.select.is-white select:active,.select.is-white select.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.select.is-black:not(:hover)::after{border-color:#0a0a0a}.select.is-black select{border-color:#0a0a0a}.select.is-black select:hover,.select.is-black select.is-hovered{border-color:#000}.select.is-black select:focus,.select.is-black select.is-focused,.select.is-black select:active,.select.is-black select.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.select.is-light:not(:hover)::after{border-color:#f5f5f5}.select.is-light select{border-color:#f5f5f5}.select.is-light select:hover,.select.is-light select.is-hovered{border-color:#e8e8e8}.select.is-light select:focus,.select.is-light select.is-focused,.select.is-light select:active,.select.is-light select.is-active{box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.select.is-dark:not(:hover)::after,.content kbd.select:not(:hover)::after{border-color:#363636}.select.is-dark select,.content kbd.select select{border-color:#363636}.select.is-dark select:hover,.content kbd.select select:hover,.select.is-dark select.is-hovered,.content kbd.select select.is-hovered{border-color:#292929}.select.is-dark select:focus,.content kbd.select select:focus,.select.is-dark select.is-focused,.content kbd.select select.is-focused,.select.is-dark select:active,.content kbd.select select:active,.select.is-dark select.is-active,.content kbd.select select.is-active{box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.select.is-primary:not(:hover)::after,.docstring>section>a.select.docs-sourcelink:not(:hover)::after{border-color:#4eb5de}.select.is-primary select,.docstring>section>a.select.docs-sourcelink select{border-color:#4eb5de}.select.is-primary select:hover,.docstring>section>a.select.docs-sourcelink select:hover,.select.is-primary select.is-hovered,.docstring>section>a.select.docs-sourcelink select.is-hovered{border-color:#39acda}.select.is-primary select:focus,.docstring>section>a.select.docs-sourcelink select:focus,.select.is-primary select.is-focused,.docstring>section>a.select.docs-sourcelink select.is-focused,.select.is-primary select:active,.docstring>section>a.select.docs-sourcelink select:active,.select.is-primary select.is-active,.docstring>section>a.select.docs-sourcelink select.is-active{box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.select.is-link:not(:hover)::after{border-color:#2e63b8}.select.is-link select{border-color:#2e63b8}.select.is-link select:hover,.select.is-link select.is-hovered{border-color:#2958a4}.select.is-link select:focus,.select.is-link select.is-focused,.select.is-link select:active,.select.is-link select.is-active{box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.select.is-info:not(:hover)::after{border-color:#209cee}.select.is-info select{border-color:#209cee}.select.is-info select:hover,.select.is-info select.is-hovered{border-color:#1190e3}.select.is-info select:focus,.select.is-info select.is-focused,.select.is-info select:active,.select.is-info select.is-active{box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.select.is-success:not(:hover)::after{border-color:#22c35b}.select.is-success select{border-color:#22c35b}.select.is-success select:hover,.select.is-success select.is-hovered{border-color:#1ead51}.select.is-success select:focus,.select.is-success select.is-focused,.select.is-success select:active,.select.is-success select.is-active{box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.select.is-warning:not(:hover)::after{border-color:#ffdd57}.select.is-warning select{border-color:#ffdd57}.select.is-warning select:hover,.select.is-warning select.is-hovered{border-color:#ffd83e}.select.is-warning select:focus,.select.is-warning select.is-focused,.select.is-warning select:active,.select.is-warning select.is-active{box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.select.is-danger:not(:hover)::after{border-color:#da0b00}.select.is-danger select{border-color:#da0b00}.select.is-danger select:hover,.select.is-danger select.is-hovered{border-color:#c10a00}.select.is-danger select:focus,.select.is-danger select.is-focused,.select.is-danger select:active,.select.is-danger select.is-active{box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.select.is-small,#documenter .docs-sidebar form.docs-search>input.select{border-radius:2px;font-size:.75rem}.select.is-medium{font-size:1.25rem}.select.is-large{font-size:1.5rem}.select.is-disabled::after{border-color:#6b6b6b}.select.is-fullwidth{width:100%}.select.is-fullwidth select{width:100%}.select.is-loading::after{margin-top:0;position:absolute;right:0.625em;top:0.625em;transform:none}.select.is-loading.is-small:after,#documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}.select.is-loading.is-medium:after{font-size:1.25rem}.select.is-loading.is-large:after{font-size:1.5rem}.file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}.file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}.file.is-white:hover .file-cta,.file.is-white.is-hovered .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.file.is-white:focus .file-cta,.file.is-white.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,255,255,0.25);color:#0a0a0a}.file.is-white:active .file-cta,.file.is-white.is-active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}.file.is-black:hover .file-cta,.file.is-black.is-hovered .file-cta{background-color:#040404;border-color:transparent;color:#fff}.file.is-black:focus .file-cta,.file.is-black.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(10,10,10,0.25);color:#fff}.file.is-black:active .file-cta,.file.is-black.is-active .file-cta{background-color:#000;border-color:transparent;color:#fff}.file.is-light .file-cta{background-color:#f5f5f5;border-color:transparent;color:#363636}.file.is-light:hover .file-cta,.file.is-light.is-hovered .file-cta{background-color:#eee;border-color:transparent;color:#363636}.file.is-light:focus .file-cta,.file.is-light.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(245,245,245,0.25);color:#363636}.file.is-light:active .file-cta,.file.is-light.is-active .file-cta{background-color:#e8e8e8;border-color:transparent;color:#363636}.file.is-dark .file-cta,.content kbd.file .file-cta{background-color:#363636;border-color:transparent;color:#f5f5f5}.file.is-dark:hover .file-cta,.content kbd.file:hover .file-cta,.file.is-dark.is-hovered .file-cta,.content kbd.file.is-hovered .file-cta{background-color:#2f2f2f;border-color:transparent;color:#f5f5f5}.file.is-dark:focus .file-cta,.content kbd.file:focus .file-cta,.file.is-dark.is-focused .file-cta,.content kbd.file.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(54,54,54,0.25);color:#f5f5f5}.file.is-dark:active .file-cta,.content kbd.file:active .file-cta,.file.is-dark.is-active .file-cta,.content kbd.file.is-active .file-cta{background-color:#292929;border-color:transparent;color:#f5f5f5}.file.is-primary .file-cta,.docstring>section>a.file.docs-sourcelink .file-cta{background-color:#4eb5de;border-color:transparent;color:#fff}.file.is-primary:hover .file-cta,.docstring>section>a.file.docs-sourcelink:hover .file-cta,.file.is-primary.is-hovered .file-cta,.docstring>section>a.file.is-hovered.docs-sourcelink .file-cta{background-color:#43b1dc;border-color:transparent;color:#fff}.file.is-primary:focus .file-cta,.docstring>section>a.file.docs-sourcelink:focus .file-cta,.file.is-primary.is-focused .file-cta,.docstring>section>a.file.is-focused.docs-sourcelink .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(78,181,222,0.25);color:#fff}.file.is-primary:active .file-cta,.docstring>section>a.file.docs-sourcelink:active .file-cta,.file.is-primary.is-active .file-cta,.docstring>section>a.file.is-active.docs-sourcelink .file-cta{background-color:#39acda;border-color:transparent;color:#fff}.file.is-link .file-cta{background-color:#2e63b8;border-color:transparent;color:#fff}.file.is-link:hover .file-cta,.file.is-link.is-hovered .file-cta{background-color:#2b5eae;border-color:transparent;color:#fff}.file.is-link:focus .file-cta,.file.is-link.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(46,99,184,0.25);color:#fff}.file.is-link:active .file-cta,.file.is-link.is-active .file-cta{background-color:#2958a4;border-color:transparent;color:#fff}.file.is-info .file-cta{background-color:#209cee;border-color:transparent;color:#fff}.file.is-info:hover .file-cta,.file.is-info.is-hovered .file-cta{background-color:#1497ed;border-color:transparent;color:#fff}.file.is-info:focus .file-cta,.file.is-info.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(32,156,238,0.25);color:#fff}.file.is-info:active .file-cta,.file.is-info.is-active .file-cta{background-color:#1190e3;border-color:transparent;color:#fff}.file.is-success .file-cta{background-color:#22c35b;border-color:transparent;color:#fff}.file.is-success:hover .file-cta,.file.is-success.is-hovered .file-cta{background-color:#20b856;border-color:transparent;color:#fff}.file.is-success:focus .file-cta,.file.is-success.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(34,195,91,0.25);color:#fff}.file.is-success:active .file-cta,.file.is-success.is-active .file-cta{background-color:#1ead51;border-color:transparent;color:#fff}.file.is-warning .file-cta{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-warning:hover .file-cta,.file.is-warning.is-hovered .file-cta{background-color:#ffda4a;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-warning:focus .file-cta,.file.is-warning.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,221,87,0.25);color:rgba(0,0,0,0.7)}.file.is-warning:active .file-cta,.file.is-warning.is-active .file-cta{background-color:#ffd83e;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-danger .file-cta{background-color:#da0b00;border-color:transparent;color:#fff}.file.is-danger:hover .file-cta,.file.is-danger.is-hovered .file-cta{background-color:#cd0a00;border-color:transparent;color:#fff}.file.is-danger:focus .file-cta,.file.is-danger.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(218,11,0,0.25);color:#fff}.file.is-danger:active .file-cta,.file.is-danger.is-active .file-cta{background-color:#c10a00;border-color:transparent;color:#fff}.file.is-small,#documenter .docs-sidebar form.docs-search>input.file{font-size:.75rem}.file.is-medium{font-size:1.25rem}.file.is-medium .file-icon .fa{font-size:21px}.file.is-large{font-size:1.5rem}.file.is-large .file-icon .fa{font-size:28px}.file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}.file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}.file.has-name.is-empty .file-cta{border-radius:4px}.file.has-name.is-empty .file-name{display:none}.file.is-boxed .file-label{flex-direction:column}.file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}.file.is-boxed .file-name{border-width:0 1px 1px}.file.is-boxed .file-icon{height:1.5em;width:1.5em}.file.is-boxed .file-icon .fa{font-size:21px}.file.is-boxed.is-small .file-icon .fa,#documenter .docs-sidebar form.docs-search>input.is-boxed .file-icon .fa{font-size:14px}.file.is-boxed.is-medium .file-icon .fa{font-size:28px}.file.is-boxed.is-large .file-icon .fa{font-size:35px}.file.is-boxed.has-name .file-cta{border-radius:4px 4px 0 0}.file.is-boxed.has-name .file-name{border-radius:0 0 4px 4px;border-width:0 1px 1px}.file.is-centered{justify-content:center}.file.is-fullwidth .file-label{width:100%}.file.is-fullwidth .file-name{flex-grow:1;max-width:none}.file.is-right{justify-content:flex-end}.file.is-right .file-cta{border-radius:0 4px 4px 0}.file.is-right .file-name{border-radius:4px 0 0 4px;border-width:1px 0 1px 1px;order:-1}.file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}.file-label:hover .file-cta{background-color:#eee;color:#363636}.file-label:hover .file-name{border-color:#d5d5d5}.file-label:active .file-cta{background-color:#e8e8e8;color:#363636}.file-label:active .file-name{border-color:#cfcfcf}.file-input{height:100%;left:0;opacity:0;outline:none;position:absolute;top:0;width:100%}.file-cta,.file-name{border-color:#dbdbdb;border-radius:4px;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}.file-cta{background-color:#f5f5f5;color:#4a4a4a}.file-name{border-color:#dbdbdb;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:left;text-overflow:ellipsis}.file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:0.5em;width:1em}.file-icon .fa{font-size:14px}.label{color:#363636;display:block;font-size:1rem;font-weight:700}.label:not(:last-child){margin-bottom:0.5em}.label.is-small,#documenter .docs-sidebar form.docs-search>input.label{font-size:.75rem}.label.is-medium{font-size:1.25rem}.label.is-large{font-size:1.5rem}.help{display:block;font-size:.75rem;margin-top:0.25rem}.help.is-white{color:#fff}.help.is-black{color:#0a0a0a}.help.is-light{color:#f5f5f5}.help.is-dark,.content kbd.help{color:#363636}.help.is-primary,.docstring>section>a.help.docs-sourcelink{color:#4eb5de}.help.is-link{color:#2e63b8}.help.is-info{color:#209cee}.help.is-success{color:#22c35b}.help.is-warning{color:#ffdd57}.help.is-danger{color:#da0b00}.field:not(:last-child){margin-bottom:0.75rem}.field.has-addons{display:flex;justify-content:flex-start}.field.has-addons .control:not(:last-child){margin-right:-1px}.field.has-addons .control:not(:first-child):not(:last-child) .button,.field.has-addons .control:not(:first-child):not(:last-child) .input,.field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search>input,.field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}.field.has-addons .control:first-child:not(:only-child) .button,.field.has-addons .control:first-child:not(:only-child) .input,.field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search>input,.field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}.field.has-addons .control:last-child:not(:only-child) .button,.field.has-addons .control:last-child:not(:only-child) .input,.field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search>input,.field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}.field.has-addons .control .button:not([disabled]):hover,.field.has-addons .control .button.is-hovered:not([disabled]),.field.has-addons .control .input:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):hover,.field.has-addons .control .input.is-hovered:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-hovered:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-hovered:not([disabled]),.field.has-addons .control .select select:not([disabled]):hover,.field.has-addons .control .select select.is-hovered:not([disabled]){z-index:2}.field.has-addons .control .button:not([disabled]):focus,.field.has-addons .control .button.is-focused:not([disabled]),.field.has-addons .control .button:not([disabled]):active,.field.has-addons .control .button.is-active:not([disabled]),.field.has-addons .control .input:not([disabled]):focus,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus,.field.has-addons .control .input.is-focused:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]),.field.has-addons .control .input:not([disabled]):active,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active,.field.has-addons .control .input.is-active:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]),.field.has-addons .control .select select:not([disabled]):focus,.field.has-addons .control .select select.is-focused:not([disabled]),.field.has-addons .control .select select:not([disabled]):active,.field.has-addons .control .select select.is-active:not([disabled]){z-index:3}.field.has-addons .control .button:not([disabled]):focus:hover,.field.has-addons .control .button.is-focused:not([disabled]):hover,.field.has-addons .control .button:not([disabled]):active:hover,.field.has-addons .control .button.is-active:not([disabled]):hover,.field.has-addons .control .input:not([disabled]):focus:hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus:hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus:hover,.field.has-addons .control .input.is-focused:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]):hover,.field.has-addons .control .input:not([disabled]):active:hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active:hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active:hover,.field.has-addons .control .input.is-active:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]):hover,.field.has-addons .control .select select:not([disabled]):focus:hover,.field.has-addons .control .select select.is-focused:not([disabled]):hover,.field.has-addons .control .select select:not([disabled]):active:hover,.field.has-addons .control .select select.is-active:not([disabled]):hover{z-index:4}.field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}.field.has-addons.has-addons-centered{justify-content:center}.field.has-addons.has-addons-right{justify-content:flex-end}.field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}.field.is-grouped{display:flex;justify-content:flex-start}.field.is-grouped>.control{flex-shrink:0}.field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:0.75rem}.field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}.field.is-grouped.is-grouped-centered{justify-content:center}.field.is-grouped.is-grouped-right{justify-content:flex-end}.field.is-grouped.is-grouped-multiline{flex-wrap:wrap}.field.is-grouped.is-grouped-multiline>.control:last-child,.field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:0.75rem}.field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-0.75rem}.field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width: 769px),print{.field.is-horizontal{display:flex}}.field-label .label{font-size:inherit}@media screen and (max-width: 768px){.field-label{margin-bottom:0.5rem}}@media screen and (min-width: 769px),print{.field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}.field-label.is-small,#documenter .docs-sidebar form.docs-search>input.field-label{font-size:.75rem;padding-top:0.375em}.field-label.is-normal{padding-top:0.375em}.field-label.is-medium{font-size:1.25rem;padding-top:0.375em}.field-label.is-large{font-size:1.5rem;padding-top:0.375em}}.field-body .field .field{margin-bottom:0}@media screen and (min-width: 769px),print{.field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}.field-body .field{margin-bottom:0}.field-body>.field{flex-shrink:1}.field-body>.field:not(.is-narrow){flex-grow:1}.field-body>.field:not(:last-child){margin-right:0.75rem}}.control{box-sizing:border-box;clear:both;font-size:1rem;position:relative;text-align:left}.control.has-icons-left .input:focus~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input:focus~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input:focus~.icon,.control.has-icons-left .select:focus~.icon,.control.has-icons-right .input:focus~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input:focus~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input:focus~.icon,.control.has-icons-right .select:focus~.icon{color:#6b6b6b}.control.has-icons-left .input.is-small~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input~.icon,.control.has-icons-left .select.is-small~.icon,.control.has-icons-right .input.is-small~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input~.icon,.control.has-icons-right .select.is-small~.icon{font-size:.75rem}.control.has-icons-left .input.is-medium~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-medium~.icon,.control.has-icons-left .select.is-medium~.icon,.control.has-icons-right .input.is-medium~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-medium~.icon,.control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}.control.has-icons-left .input.is-large~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-large~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-large~.icon,.control.has-icons-left .select.is-large~.icon,.control.has-icons-right .input.is-large~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-large~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-large~.icon,.control.has-icons-right .select.is-large~.icon{font-size:1.5rem}.control.has-icons-left .icon,.control.has-icons-right .icon{color:#dbdbdb;height:2.25em;pointer-events:none;position:absolute;top:0;width:2.25em;z-index:4}.control.has-icons-left .input,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input,.control.has-icons-left .select select{padding-left:2.25em}.control.has-icons-left .icon.is-left{left:0}.control.has-icons-right .input,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input,.control.has-icons-right .select select{padding-right:2.25em}.control.has-icons-right .icon.is-right{right:0}.control.is-loading::after{position:absolute !important;right:0.625em;top:0.625em;z-index:4}.control.is-loading.is-small:after,#documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}.control.is-loading.is-medium:after{font-size:1.25rem}.control.is-loading.is-large:after{font-size:1.5rem}.breadcrumb{font-size:1rem;white-space:nowrap}.breadcrumb a{align-items:center;color:#2e63b8;display:flex;justify-content:center;padding:0 .75em}.breadcrumb a:hover{color:#363636}.breadcrumb li{align-items:center;display:flex}.breadcrumb li:first-child a{padding-left:0}.breadcrumb li.is-active a{color:#222;cursor:default;pointer-events:none}.breadcrumb li+li::before{color:#b5b5b5;content:"\0002f"}.breadcrumb ul,.breadcrumb ol{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}.breadcrumb .icon:first-child{margin-right:0.5em}.breadcrumb .icon:last-child{margin-left:0.5em}.breadcrumb.is-centered ol,.breadcrumb.is-centered ul{justify-content:center}.breadcrumb.is-right ol,.breadcrumb.is-right ul{justify-content:flex-end}.breadcrumb.is-small,#documenter .docs-sidebar form.docs-search>input.breadcrumb{font-size:.75rem}.breadcrumb.is-medium{font-size:1.25rem}.breadcrumb.is-large{font-size:1.5rem}.breadcrumb.has-arrow-separator li+li::before{content:"\02192"}.breadcrumb.has-bullet-separator li+li::before{content:"\02022"}.breadcrumb.has-dot-separator li+li::before{content:"\000b7"}.breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}.card{background-color:#fff;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#222;max-width:100%;position:relative}.card-header{background-color:rgba(0,0,0,0);align-items:stretch;box-shadow:0 1px 2px rgba(10,10,10,0.1);display:flex}.card-header-title{align-items:center;color:#222;display:flex;flex-grow:1;font-weight:700;padding:.75rem}.card-header-title.is-centered{justify-content:center}.card-header-icon{align-items:center;cursor:pointer;display:flex;justify-content:center;padding:.75rem}.card-image{display:block;position:relative}.card-content{background-color:rgba(0,0,0,0);padding:1.5rem}.card-footer{background-color:rgba(0,0,0,0);border-top:1px solid #dbdbdb;align-items:stretch;display:flex}.card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}.card-footer-item:not(:last-child){border-right:1px solid #dbdbdb}.card .media:not(:last-child){margin-bottom:1.5rem}.dropdown{display:inline-flex;position:relative;vertical-align:top}.dropdown.is-active .dropdown-menu,.dropdown.is-hoverable:hover .dropdown-menu{display:block}.dropdown.is-right .dropdown-menu{left:auto;right:0}.dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}.dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}.dropdown-content{background-color:#fff;border-radius:4px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);padding-bottom:.5rem;padding-top:.5rem}.dropdown-item{color:#4a4a4a;display:block;font-size:0.875rem;line-height:1.5;padding:0.375rem 1rem;position:relative}a.dropdown-item,button.dropdown-item{padding-right:3rem;text-align:left;white-space:nowrap;width:100%}a.dropdown-item:hover,button.dropdown-item:hover{background-color:#f5f5f5;color:#0a0a0a}a.dropdown-item.is-active,button.dropdown-item.is-active{background-color:#2e63b8;color:#fff}.dropdown-divider{background-color:#dbdbdb;border:none;display:block;height:1px;margin:0.5rem 0}.level{align-items:center;justify-content:space-between}.level code{border-radius:4px}.level img{display:inline-block;vertical-align:top}.level.is-mobile{display:flex}.level.is-mobile .level-left,.level.is-mobile .level-right{display:flex}.level.is-mobile .level-left+.level-right{margin-top:0}.level.is-mobile .level-item:not(:last-child){margin-bottom:0;margin-right:.75rem}.level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width: 769px),print{.level{display:flex}.level>.level-item:not(.is-narrow){flex-grow:1}}.level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}.level-item .title,.level-item .subtitle{margin-bottom:0}@media screen and (max-width: 768px){.level-item:not(:last-child){margin-bottom:.75rem}}.level-left,.level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.level-left .level-item.is-flexible,.level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width: 769px),print{.level-left .level-item:not(:last-child),.level-right .level-item:not(:last-child){margin-right:.75rem}}.level-left{align-items:center;justify-content:flex-start}@media screen and (max-width: 768px){.level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width: 769px),print{.level-left{display:flex}}.level-right{align-items:center;justify-content:flex-end}@media screen and (min-width: 769px),print{.level-right{display:flex}}.list{background-color:#fff;border-radius:4px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1)}.list-item{display:block;padding:0.5em 1em}.list-item:not(a){color:#222}.list-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-item:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px}.list-item:not(:last-child){border-bottom:1px solid #dbdbdb}.list-item.is-active{background-color:#2e63b8;color:#fff}a.list-item{background-color:#f5f5f5;cursor:pointer}.media{align-items:flex-start;display:flex;text-align:left}.media .content:not(:last-child){margin-bottom:0.75rem}.media .media{border-top:1px solid rgba(219,219,219,0.5);display:flex;padding-top:0.75rem}.media .media .content:not(:last-child),.media .media .control:not(:last-child){margin-bottom:0.5rem}.media .media .media{padding-top:0.5rem}.media .media .media+.media{margin-top:0.5rem}.media+.media{border-top:1px solid rgba(219,219,219,0.5);margin-top:1rem;padding-top:1rem}.media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}.media-left,.media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.media-left{margin-right:1rem}.media-right{margin-left:1rem}.media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:left}@media screen and (max-width: 768px){.media-content{overflow-x:auto}}.menu{font-size:1rem}.menu.is-small,#documenter .docs-sidebar form.docs-search>input.menu{font-size:.75rem}.menu.is-medium{font-size:1.25rem}.menu.is-large{font-size:1.5rem}.menu-list{line-height:1.25}.menu-list a{border-radius:2px;color:#222;display:block;padding:0.5em 0.75em}.menu-list a:hover{background-color:#f5f5f5;color:#222}.menu-list a.is-active{background-color:#2e63b8;color:#fff}.menu-list li ul{border-left:1px solid #dbdbdb;margin:.75em;padding-left:.75em}.menu-label{color:#6b6b6b;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}.menu-label:not(:first-child){margin-top:1em}.menu-label:not(:last-child){margin-bottom:1em}.message{background-color:#f5f5f5;border-radius:4px;font-size:1rem}.message strong{color:currentColor}.message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}.message.is-small,#documenter .docs-sidebar form.docs-search>input.message{font-size:.75rem}.message.is-medium{font-size:1.25rem}.message.is-large{font-size:1.5rem}.message.is-white{background-color:#fff}.message.is-white .message-header{background-color:#fff;color:#0a0a0a}.message.is-white .message-body{border-color:#fff;color:#4d4d4d}.message.is-black{background-color:#fafafa}.message.is-black .message-header{background-color:#0a0a0a;color:#fff}.message.is-black .message-body{border-color:#0a0a0a;color:#090909}.message.is-light{background-color:#fafafa}.message.is-light .message-header{background-color:#f5f5f5;color:#363636}.message.is-light .message-body{border-color:#f5f5f5;color:#505050}.message.is-dark,.content kbd.message{background-color:#fafafa}.message.is-dark .message-header,.content kbd.message .message-header{background-color:#363636;color:#f5f5f5}.message.is-dark .message-body,.content kbd.message .message-body{border-color:#363636;color:#2a2a2a}.message.is-primary,.docstring>section>a.message.docs-sourcelink{background-color:#f6fbfd}.message.is-primary .message-header,.docstring>section>a.message.docs-sourcelink .message-header{background-color:#4eb5de;color:#fff}.message.is-primary .message-body,.docstring>section>a.message.docs-sourcelink .message-body{border-color:#4eb5de;color:#1f556a}.message.is-link{background-color:#f7f9fd}.message.is-link .message-header{background-color:#2e63b8;color:#fff}.message.is-link .message-body{border-color:#2e63b8;color:#264981}.message.is-info{background-color:#f6fbfe}.message.is-info .message-header{background-color:#209cee;color:#fff}.message.is-info .message-body{border-color:#209cee;color:#12537d}.message.is-success{background-color:#f6fdf9}.message.is-success .message-header{background-color:#22c35b;color:#fff}.message.is-success .message-body{border-color:#22c35b;color:#0f361d}.message.is-warning{background-color:#fffdf5}.message.is-warning .message-header{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.message.is-warning .message-body{border-color:#ffdd57;color:#3c3108}.message.is-danger{background-color:#fff5f5}.message.is-danger .message-header{background-color:#da0b00;color:#fff}.message.is-danger .message-body{border-color:#da0b00;color:#9b0c04}.message-header{align-items:center;background-color:#222;border-radius:4px 4px 0 0;color:#fff;display:flex;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.75em 1em;position:relative}.message-header .delete{flex-grow:0;flex-shrink:0;margin-left:0.75em}.message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}.message-body{border-color:#dbdbdb;border-radius:4px;border-style:solid;border-width:0 0 0 4px;color:#222;padding:1.25em 1.5em}.message-body code,.message-body pre{background-color:#fff}.message-body pre code{background-color:rgba(0,0,0,0)}.modal{align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}.modal.is-active{display:flex}.modal-background{background-color:rgba(10,10,10,0.86)}.modal-content,.modal-card{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width: 769px),print{.modal-content,.modal-card{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}.modal-close{background:none;height:40px;position:fixed;right:20px;top:20px;width:40px}.modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}.modal-card-head,.modal-card-foot{align-items:center;background-color:#f5f5f5;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}.modal-card-head{border-bottom:1px solid #dbdbdb;border-top-left-radius:6px;border-top-right-radius:6px}.modal-card-title{color:#222;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}.modal-card-foot{border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:1px solid #dbdbdb}.modal-card-foot .button:not(:last-child){margin-right:0.5em}.modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}.navbar{background-color:#fff;min-height:3.25rem;position:relative;z-index:30}.navbar.is-white{background-color:#fff;color:#0a0a0a}.navbar.is-white .navbar-brand>.navbar-item,.navbar.is-white .navbar-brand .navbar-link{color:#0a0a0a}.navbar.is-white .navbar-brand>a.navbar-item:focus,.navbar.is-white .navbar-brand>a.navbar-item:hover,.navbar.is-white .navbar-brand>a.navbar-item.is-active,.navbar.is-white .navbar-brand .navbar-link:focus,.navbar.is-white .navbar-brand .navbar-link:hover,.navbar.is-white .navbar-brand .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-burger{color:#0a0a0a}@media screen and (min-width: 1056px){.navbar.is-white .navbar-start>.navbar-item,.navbar.is-white .navbar-start .navbar-link,.navbar.is-white .navbar-end>.navbar-item,.navbar.is-white .navbar-end .navbar-link{color:#0a0a0a}.navbar.is-white .navbar-start>a.navbar-item:focus,.navbar.is-white .navbar-start>a.navbar-item:hover,.navbar.is-white .navbar-start>a.navbar-item.is-active,.navbar.is-white .navbar-start .navbar-link:focus,.navbar.is-white .navbar-start .navbar-link:hover,.navbar.is-white .navbar-start .navbar-link.is-active,.navbar.is-white .navbar-end>a.navbar-item:focus,.navbar.is-white .navbar-end>a.navbar-item:hover,.navbar.is-white .navbar-end>a.navbar-item.is-active,.navbar.is-white .navbar-end .navbar-link:focus,.navbar.is-white .navbar-end .navbar-link:hover,.navbar.is-white .navbar-end .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-start .navbar-link::after,.navbar.is-white .navbar-end .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}.navbar.is-black{background-color:#0a0a0a;color:#fff}.navbar.is-black .navbar-brand>.navbar-item,.navbar.is-black .navbar-brand .navbar-link{color:#fff}.navbar.is-black .navbar-brand>a.navbar-item:focus,.navbar.is-black .navbar-brand>a.navbar-item:hover,.navbar.is-black .navbar-brand>a.navbar-item.is-active,.navbar.is-black .navbar-brand .navbar-link:focus,.navbar.is-black .navbar-brand .navbar-link:hover,.navbar.is-black .navbar-brand .navbar-link.is-active{background-color:#000;color:#fff}.navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-black .navbar-start>.navbar-item,.navbar.is-black .navbar-start .navbar-link,.navbar.is-black .navbar-end>.navbar-item,.navbar.is-black .navbar-end .navbar-link{color:#fff}.navbar.is-black .navbar-start>a.navbar-item:focus,.navbar.is-black .navbar-start>a.navbar-item:hover,.navbar.is-black .navbar-start>a.navbar-item.is-active,.navbar.is-black .navbar-start .navbar-link:focus,.navbar.is-black .navbar-start .navbar-link:hover,.navbar.is-black .navbar-start .navbar-link.is-active,.navbar.is-black .navbar-end>a.navbar-item:focus,.navbar.is-black .navbar-end>a.navbar-item:hover,.navbar.is-black .navbar-end>a.navbar-item.is-active,.navbar.is-black .navbar-end .navbar-link:focus,.navbar.is-black .navbar-end .navbar-link:hover,.navbar.is-black .navbar-end .navbar-link.is-active{background-color:#000;color:#fff}.navbar.is-black .navbar-start .navbar-link::after,.navbar.is-black .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link{background-color:#000;color:#fff}.navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}.navbar.is-light{background-color:#f5f5f5;color:#363636}.navbar.is-light .navbar-brand>.navbar-item,.navbar.is-light .navbar-brand .navbar-link{color:#363636}.navbar.is-light .navbar-brand>a.navbar-item:focus,.navbar.is-light .navbar-brand>a.navbar-item:hover,.navbar.is-light .navbar-brand>a.navbar-item.is-active,.navbar.is-light .navbar-brand .navbar-link:focus,.navbar.is-light .navbar-brand .navbar-link:hover,.navbar.is-light .navbar-brand .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-brand .navbar-link::after{border-color:#363636}.navbar.is-light .navbar-burger{color:#363636}@media screen and (min-width: 1056px){.navbar.is-light .navbar-start>.navbar-item,.navbar.is-light .navbar-start .navbar-link,.navbar.is-light .navbar-end>.navbar-item,.navbar.is-light .navbar-end .navbar-link{color:#363636}.navbar.is-light .navbar-start>a.navbar-item:focus,.navbar.is-light .navbar-start>a.navbar-item:hover,.navbar.is-light .navbar-start>a.navbar-item.is-active,.navbar.is-light .navbar-start .navbar-link:focus,.navbar.is-light .navbar-start .navbar-link:hover,.navbar.is-light .navbar-start .navbar-link.is-active,.navbar.is-light .navbar-end>a.navbar-item:focus,.navbar.is-light .navbar-end>a.navbar-item:hover,.navbar.is-light .navbar-end>a.navbar-item.is-active,.navbar.is-light .navbar-end .navbar-link:focus,.navbar.is-light .navbar-end .navbar-link:hover,.navbar.is-light .navbar-end .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-start .navbar-link::after,.navbar.is-light .navbar-end .navbar-link::after{border-color:#363636}.navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#363636}}.navbar.is-dark,.content kbd.navbar{background-color:#363636;color:#f5f5f5}.navbar.is-dark .navbar-brand>.navbar-item,.content kbd.navbar .navbar-brand>.navbar-item,.navbar.is-dark .navbar-brand .navbar-link,.content kbd.navbar .navbar-brand .navbar-link{color:#f5f5f5}.navbar.is-dark .navbar-brand>a.navbar-item:focus,.content kbd.navbar .navbar-brand>a.navbar-item:focus,.navbar.is-dark .navbar-brand>a.navbar-item:hover,.content kbd.navbar .navbar-brand>a.navbar-item:hover,.navbar.is-dark .navbar-brand>a.navbar-item.is-active,.content kbd.navbar .navbar-brand>a.navbar-item.is-active,.navbar.is-dark .navbar-brand .navbar-link:focus,.content kbd.navbar .navbar-brand .navbar-link:focus,.navbar.is-dark .navbar-brand .navbar-link:hover,.content kbd.navbar .navbar-brand .navbar-link:hover,.navbar.is-dark .navbar-brand .navbar-link.is-active,.content kbd.navbar .navbar-brand .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-brand .navbar-link::after,.content kbd.navbar .navbar-brand .navbar-link::after{border-color:#f5f5f5}.navbar.is-dark .navbar-burger,.content kbd.navbar .navbar-burger{color:#f5f5f5}@media screen and (min-width: 1056px){.navbar.is-dark .navbar-start>.navbar-item,.content kbd.navbar .navbar-start>.navbar-item,.navbar.is-dark .navbar-start .navbar-link,.content kbd.navbar .navbar-start .navbar-link,.navbar.is-dark .navbar-end>.navbar-item,.content kbd.navbar .navbar-end>.navbar-item,.navbar.is-dark .navbar-end .navbar-link,.content kbd.navbar .navbar-end .navbar-link{color:#f5f5f5}.navbar.is-dark .navbar-start>a.navbar-item:focus,.content kbd.navbar .navbar-start>a.navbar-item:focus,.navbar.is-dark .navbar-start>a.navbar-item:hover,.content kbd.navbar .navbar-start>a.navbar-item:hover,.navbar.is-dark .navbar-start>a.navbar-item.is-active,.content kbd.navbar .navbar-start>a.navbar-item.is-active,.navbar.is-dark .navbar-start .navbar-link:focus,.content kbd.navbar .navbar-start .navbar-link:focus,.navbar.is-dark .navbar-start .navbar-link:hover,.content kbd.navbar .navbar-start .navbar-link:hover,.navbar.is-dark .navbar-start .navbar-link.is-active,.content kbd.navbar .navbar-start .navbar-link.is-active,.navbar.is-dark .navbar-end>a.navbar-item:focus,.content kbd.navbar .navbar-end>a.navbar-item:focus,.navbar.is-dark .navbar-end>a.navbar-item:hover,.content kbd.navbar .navbar-end>a.navbar-item:hover,.navbar.is-dark .navbar-end>a.navbar-item.is-active,.content kbd.navbar .navbar-end>a.navbar-item.is-active,.navbar.is-dark .navbar-end .navbar-link:focus,.content kbd.navbar .navbar-end .navbar-link:focus,.navbar.is-dark .navbar-end .navbar-link:hover,.content kbd.navbar .navbar-end .navbar-link:hover,.navbar.is-dark .navbar-end .navbar-link.is-active,.content kbd.navbar .navbar-end .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-start .navbar-link::after,.content kbd.navbar .navbar-start .navbar-link::after,.navbar.is-dark .navbar-end .navbar-link::after,.content kbd.navbar .navbar-end .navbar-link::after{border-color:#f5f5f5}.navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,.content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,.content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,.content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-dropdown a.navbar-item.is-active,.content kbd.navbar .navbar-dropdown a.navbar-item.is-active{background-color:#363636;color:#f5f5f5}}.navbar.is-primary,.docstring>section>a.navbar.docs-sourcelink{background-color:#4eb5de;color:#fff}.navbar.is-primary .navbar-brand>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>.navbar-item,.navbar.is-primary .navbar-brand .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link{color:#fff}.navbar.is-primary .navbar-brand>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:focus,.navbar.is-primary .navbar-brand>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:hover,.navbar.is-primary .navbar-brand>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item.is-active,.navbar.is-primary .navbar-brand .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,.navbar.is-primary .navbar-brand .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,.navbar.is-primary .navbar-brand .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-brand .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-burger,.docstring>section>a.navbar.docs-sourcelink .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-primary .navbar-start>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-start>.navbar-item,.navbar.is-primary .navbar-start .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link,.navbar.is-primary .navbar-end>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-end>.navbar-item,.navbar.is-primary .navbar-end .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link{color:#fff}.navbar.is-primary .navbar-start>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:focus,.navbar.is-primary .navbar-start>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:hover,.navbar.is-primary .navbar-start>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item.is-active,.navbar.is-primary .navbar-start .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,.navbar.is-primary .navbar-start .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,.navbar.is-primary .navbar-start .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,.navbar.is-primary .navbar-end>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:focus,.navbar.is-primary .navbar-end>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:hover,.navbar.is-primary .navbar-end>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item.is-active,.navbar.is-primary .navbar-end .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,.navbar.is-primary .navbar-end .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,.navbar.is-primary .navbar-end .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-start .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link::after,.navbar.is-primary .navbar-end .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-dropdown a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#4eb5de;color:#fff}}.navbar.is-link{background-color:#2e63b8;color:#fff}.navbar.is-link .navbar-brand>.navbar-item,.navbar.is-link .navbar-brand .navbar-link{color:#fff}.navbar.is-link .navbar-brand>a.navbar-item:focus,.navbar.is-link .navbar-brand>a.navbar-item:hover,.navbar.is-link .navbar-brand>a.navbar-item.is-active,.navbar.is-link .navbar-brand .navbar-link:focus,.navbar.is-link .navbar-brand .navbar-link:hover,.navbar.is-link .navbar-brand .navbar-link.is-active{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-link .navbar-start>.navbar-item,.navbar.is-link .navbar-start .navbar-link,.navbar.is-link .navbar-end>.navbar-item,.navbar.is-link .navbar-end .navbar-link{color:#fff}.navbar.is-link .navbar-start>a.navbar-item:focus,.navbar.is-link .navbar-start>a.navbar-item:hover,.navbar.is-link .navbar-start>a.navbar-item.is-active,.navbar.is-link .navbar-start .navbar-link:focus,.navbar.is-link .navbar-start .navbar-link:hover,.navbar.is-link .navbar-start .navbar-link.is-active,.navbar.is-link .navbar-end>a.navbar-item:focus,.navbar.is-link .navbar-end>a.navbar-item:hover,.navbar.is-link .navbar-end>a.navbar-item.is-active,.navbar.is-link .navbar-end .navbar-link:focus,.navbar.is-link .navbar-end .navbar-link:hover,.navbar.is-link .navbar-end .navbar-link.is-active{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-start .navbar-link::after,.navbar.is-link .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#2e63b8;color:#fff}}.navbar.is-info{background-color:#209cee;color:#fff}.navbar.is-info .navbar-brand>.navbar-item,.navbar.is-info .navbar-brand .navbar-link{color:#fff}.navbar.is-info .navbar-brand>a.navbar-item:focus,.navbar.is-info .navbar-brand>a.navbar-item:hover,.navbar.is-info .navbar-brand>a.navbar-item.is-active,.navbar.is-info .navbar-brand .navbar-link:focus,.navbar.is-info .navbar-brand .navbar-link:hover,.navbar.is-info .navbar-brand .navbar-link.is-active{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-info .navbar-start>.navbar-item,.navbar.is-info .navbar-start .navbar-link,.navbar.is-info .navbar-end>.navbar-item,.navbar.is-info .navbar-end .navbar-link{color:#fff}.navbar.is-info .navbar-start>a.navbar-item:focus,.navbar.is-info .navbar-start>a.navbar-item:hover,.navbar.is-info .navbar-start>a.navbar-item.is-active,.navbar.is-info .navbar-start .navbar-link:focus,.navbar.is-info .navbar-start .navbar-link:hover,.navbar.is-info .navbar-start .navbar-link.is-active,.navbar.is-info .navbar-end>a.navbar-item:focus,.navbar.is-info .navbar-end>a.navbar-item:hover,.navbar.is-info .navbar-end>a.navbar-item.is-active,.navbar.is-info .navbar-end .navbar-link:focus,.navbar.is-info .navbar-end .navbar-link:hover,.navbar.is-info .navbar-end .navbar-link.is-active{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-start .navbar-link::after,.navbar.is-info .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#209cee;color:#fff}}.navbar.is-success{background-color:#22c35b;color:#fff}.navbar.is-success .navbar-brand>.navbar-item,.navbar.is-success .navbar-brand .navbar-link{color:#fff}.navbar.is-success .navbar-brand>a.navbar-item:focus,.navbar.is-success .navbar-brand>a.navbar-item:hover,.navbar.is-success .navbar-brand>a.navbar-item.is-active,.navbar.is-success .navbar-brand .navbar-link:focus,.navbar.is-success .navbar-brand .navbar-link:hover,.navbar.is-success .navbar-brand .navbar-link.is-active{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-success .navbar-start>.navbar-item,.navbar.is-success .navbar-start .navbar-link,.navbar.is-success .navbar-end>.navbar-item,.navbar.is-success .navbar-end .navbar-link{color:#fff}.navbar.is-success .navbar-start>a.navbar-item:focus,.navbar.is-success .navbar-start>a.navbar-item:hover,.navbar.is-success .navbar-start>a.navbar-item.is-active,.navbar.is-success .navbar-start .navbar-link:focus,.navbar.is-success .navbar-start .navbar-link:hover,.navbar.is-success .navbar-start .navbar-link.is-active,.navbar.is-success .navbar-end>a.navbar-item:focus,.navbar.is-success .navbar-end>a.navbar-item:hover,.navbar.is-success .navbar-end>a.navbar-item.is-active,.navbar.is-success .navbar-end .navbar-link:focus,.navbar.is-success .navbar-end .navbar-link:hover,.navbar.is-success .navbar-end .navbar-link.is-active{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-start .navbar-link::after,.navbar.is-success .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#22c35b;color:#fff}}.navbar.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand>.navbar-item,.navbar.is-warning .navbar-brand .navbar-link{color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand>a.navbar-item:focus,.navbar.is-warning .navbar-brand>a.navbar-item:hover,.navbar.is-warning .navbar-brand>a.navbar-item.is-active,.navbar.is-warning .navbar-brand .navbar-link:focus,.navbar.is-warning .navbar-brand .navbar-link:hover,.navbar.is-warning .navbar-brand .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-burger{color:rgba(0,0,0,0.7)}@media screen and (min-width: 1056px){.navbar.is-warning .navbar-start>.navbar-item,.navbar.is-warning .navbar-start .navbar-link,.navbar.is-warning .navbar-end>.navbar-item,.navbar.is-warning .navbar-end .navbar-link{color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-start>a.navbar-item:focus,.navbar.is-warning .navbar-start>a.navbar-item:hover,.navbar.is-warning .navbar-start>a.navbar-item.is-active,.navbar.is-warning .navbar-start .navbar-link:focus,.navbar.is-warning .navbar-start .navbar-link:hover,.navbar.is-warning .navbar-start .navbar-link.is-active,.navbar.is-warning .navbar-end>a.navbar-item:focus,.navbar.is-warning .navbar-end>a.navbar-item:hover,.navbar.is-warning .navbar-end>a.navbar-item.is-active,.navbar.is-warning .navbar-end .navbar-link:focus,.navbar.is-warning .navbar-end .navbar-link:hover,.navbar.is-warning .navbar-end .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-start .navbar-link::after,.navbar.is-warning .navbar-end .navbar-link::after{border-color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ffdd57;color:rgba(0,0,0,0.7)}}.navbar.is-danger{background-color:#da0b00;color:#fff}.navbar.is-danger .navbar-brand>.navbar-item,.navbar.is-danger .navbar-brand .navbar-link{color:#fff}.navbar.is-danger .navbar-brand>a.navbar-item:focus,.navbar.is-danger .navbar-brand>a.navbar-item:hover,.navbar.is-danger .navbar-brand>a.navbar-item.is-active,.navbar.is-danger .navbar-brand .navbar-link:focus,.navbar.is-danger .navbar-brand .navbar-link:hover,.navbar.is-danger .navbar-brand .navbar-link.is-active{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-danger .navbar-start>.navbar-item,.navbar.is-danger .navbar-start .navbar-link,.navbar.is-danger .navbar-end>.navbar-item,.navbar.is-danger .navbar-end .navbar-link{color:#fff}.navbar.is-danger .navbar-start>a.navbar-item:focus,.navbar.is-danger .navbar-start>a.navbar-item:hover,.navbar.is-danger .navbar-start>a.navbar-item.is-active,.navbar.is-danger .navbar-start .navbar-link:focus,.navbar.is-danger .navbar-start .navbar-link:hover,.navbar.is-danger .navbar-start .navbar-link.is-active,.navbar.is-danger .navbar-end>a.navbar-item:focus,.navbar.is-danger .navbar-end>a.navbar-item:hover,.navbar.is-danger .navbar-end>a.navbar-item.is-active,.navbar.is-danger .navbar-end .navbar-link:focus,.navbar.is-danger .navbar-end .navbar-link:hover,.navbar.is-danger .navbar-end .navbar-link.is-active{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-start .navbar-link::after,.navbar.is-danger .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#da0b00;color:#fff}}.navbar>.container{align-items:stretch;display:flex;min-height:3.25rem;width:100%}.navbar.has-shadow{box-shadow:0 2px 0 0 #f5f5f5}.navbar.is-fixed-bottom,.navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom{bottom:0}.navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #f5f5f5}.navbar.is-fixed-top{top:0}html.has-navbar-fixed-top,body.has-navbar-fixed-top{padding-top:3.25rem}html.has-navbar-fixed-bottom,body.has-navbar-fixed-bottom{padding-bottom:3.25rem}.navbar-brand,.navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:3.25rem}.navbar-brand a.navbar-item:focus,.navbar-brand a.navbar-item:hover{background-color:transparent}.navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}.navbar-burger{color:#4a4a4a;cursor:pointer;display:block;height:3.25rem;position:relative;width:3.25rem;margin-left:auto}.navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;transform-origin:center;transition-duration:86ms;transition-property:background-color, opacity, transform;transition-timing-function:ease-out;width:16px}.navbar-burger span:nth-child(1){top:calc(50% - 6px)}.navbar-burger span:nth-child(2){top:calc(50% - 1px)}.navbar-burger span:nth-child(3){top:calc(50% + 4px)}.navbar-burger:hover{background-color:rgba(0,0,0,0.05)}.navbar-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}.navbar-burger.is-active span:nth-child(2){opacity:0}.navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}.navbar-menu{display:none}.navbar-item,.navbar-link{color:#4a4a4a;display:block;line-height:1.5;padding:0.5rem 0.75rem;position:relative}.navbar-item .icon:only-child,.navbar-link .icon:only-child{margin-left:-0.25rem;margin-right:-0.25rem}a.navbar-item,.navbar-link{cursor:pointer}a.navbar-item:focus,a.navbar-item:focus-within,a.navbar-item:hover,a.navbar-item.is-active,.navbar-link:focus,.navbar-link:focus-within,.navbar-link:hover,.navbar-link.is-active{background-color:#fafafa;color:#2e63b8}.navbar-item{display:block;flex-grow:0;flex-shrink:0}.navbar-item img{max-height:1.75rem}.navbar-item.has-dropdown{padding:0}.navbar-item.is-expanded{flex-grow:1;flex-shrink:1}.navbar-item.is-tab{border-bottom:1px solid transparent;min-height:3.25rem;padding-bottom:calc(0.5rem - 1px)}.navbar-item.is-tab:focus,.navbar-item.is-tab:hover{background-color:rgba(0,0,0,0);border-bottom-color:#2e63b8}.navbar-item.is-tab.is-active{background-color:rgba(0,0,0,0);border-bottom-color:#2e63b8;border-bottom-style:solid;border-bottom-width:3px;color:#2e63b8;padding-bottom:calc(0.5rem - 3px)}.navbar-content{flex-grow:1;flex-shrink:1}.navbar-link:not(.is-arrowless){padding-right:2.5em}.navbar-link:not(.is-arrowless)::after{border-color:#2e63b8;margin-top:-0.375em;right:1.125em}.navbar-dropdown{font-size:0.875rem;padding-bottom:0.5rem;padding-top:0.5rem}.navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}.navbar-divider{background-color:#f5f5f5;border:none;display:none;height:2px;margin:0.5rem 0}@media screen and (max-width: 1055px){.navbar>.container{display:block}.navbar-brand .navbar-item,.navbar-tabs .navbar-item{align-items:center;display:flex}.navbar-link::after{display:none}.navbar-menu{background-color:#fff;box-shadow:0 8px 16px rgba(10,10,10,0.1);padding:0.5rem 0}.navbar-menu.is-active{display:block}.navbar.is-fixed-bottom-touch,.navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-touch{bottom:0}.navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}.navbar.is-fixed-top-touch{top:0}.navbar.is-fixed-top .navbar-menu,.navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 3.25rem);overflow:auto}html.has-navbar-fixed-top-touch,body.has-navbar-fixed-top-touch{padding-top:3.25rem}html.has-navbar-fixed-bottom-touch,body.has-navbar-fixed-bottom-touch{padding-bottom:3.25rem}}@media screen and (min-width: 1056px){.navbar,.navbar-menu,.navbar-start,.navbar-end{align-items:stretch;display:flex}.navbar{min-height:3.25rem}.navbar.is-spaced{padding:1rem 2rem}.navbar.is-spaced .navbar-start,.navbar.is-spaced .navbar-end{align-items:center}.navbar.is-spaced a.navbar-item,.navbar.is-spaced .navbar-link{border-radius:4px}.navbar.is-transparent a.navbar-item:focus,.navbar.is-transparent a.navbar-item:hover,.navbar.is-transparent a.navbar-item.is-active,.navbar.is-transparent .navbar-link:focus,.navbar.is-transparent .navbar-link:hover,.navbar.is-transparent .navbar-link.is-active{background-color:transparent !important}.navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent !important}.navbar.is-transparent .navbar-dropdown a.navbar-item:focus,.navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#2e63b8}.navbar-burger{display:none}.navbar-item,.navbar-link{align-items:center;display:flex}.navbar-item{display:flex}.navbar-item.has-dropdown{align-items:stretch}.navbar-item.has-dropdown-up .navbar-link::after{transform:rotate(135deg) translate(0.25em, -0.25em)}.navbar-item.has-dropdown-up .navbar-dropdown{border-bottom:2px solid #dbdbdb;border-radius:6px 6px 0 0;border-top:none;bottom:100%;box-shadow:0 -8px 8px rgba(10,10,10,0.1);top:auto}.navbar-item.is-active .navbar-dropdown,.navbar-item.is-hoverable:focus .navbar-dropdown,.navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar.is-spaced .navbar-item.is-active .navbar-dropdown,.navbar-item.is-active .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown,.navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown,.navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed{opacity:1;pointer-events:auto;transform:translateY(0)}.navbar-menu{flex-grow:1;flex-shrink:0}.navbar-start{justify-content:flex-start;margin-right:auto}.navbar-end{justify-content:flex-end;margin-left:auto}.navbar-dropdown{background-color:#fff;border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:2px solid #dbdbdb;box-shadow:0 8px 8px rgba(10,10,10,0.1);display:none;font-size:0.875rem;left:0;min-width:100%;position:absolute;top:100%;z-index:20}.navbar-dropdown .navbar-item{padding:0.375rem 1rem;white-space:nowrap}.navbar-dropdown a.navbar-item{padding-right:3rem}.navbar-dropdown a.navbar-item:focus,.navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#2e63b8}.navbar.is-spaced .navbar-dropdown,.navbar-dropdown.is-boxed{border-radius:6px;border-top:none;box-shadow:0 8px 8px rgba(10,10,10,0.1), 0 0 0 1px rgba(10,10,10,0.1);display:block;opacity:0;pointer-events:none;top:calc(100% + (-4px));transform:translateY(-5px);transition-duration:86ms;transition-property:opacity, transform}.navbar-dropdown.is-right{left:auto;right:0}.navbar-divider{display:block}.navbar>.container .navbar-brand,.container>.navbar .navbar-brand{margin-left:-.75rem}.navbar>.container .navbar-menu,.container>.navbar .navbar-menu{margin-right:-.75rem}.navbar.is-fixed-bottom-desktop,.navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-desktop{bottom:0}.navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}.navbar.is-fixed-top-desktop{top:0}html.has-navbar-fixed-top-desktop,body.has-navbar-fixed-top-desktop{padding-top:3.25rem}html.has-navbar-fixed-bottom-desktop,body.has-navbar-fixed-bottom-desktop{padding-bottom:3.25rem}html.has-spaced-navbar-fixed-top,body.has-spaced-navbar-fixed-top{padding-top:5.25rem}html.has-spaced-navbar-fixed-bottom,body.has-spaced-navbar-fixed-bottom{padding-bottom:5.25rem}a.navbar-item.is-active,.navbar-link.is-active{color:#0a0a0a}a.navbar-item.is-active:not(:focus):not(:hover),.navbar-link.is-active:not(:focus):not(:hover){background-color:rgba(0,0,0,0)}.navbar-item.has-dropdown:focus .navbar-link,.navbar-item.has-dropdown:hover .navbar-link,.navbar-item.has-dropdown.is-active .navbar-link{background-color:#fafafa}}.hero.is-fullheight-with-navbar{min-height:calc(100vh - 3.25rem)}.pagination{font-size:1rem;margin:-.25rem}.pagination.is-small,#documenter .docs-sidebar form.docs-search>input.pagination{font-size:.75rem}.pagination.is-medium{font-size:1.25rem}.pagination.is-large{font-size:1.5rem}.pagination.is-rounded .pagination-previous,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-previous,.pagination.is-rounded .pagination-next,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-next{padding-left:1em;padding-right:1em;border-radius:290486px}.pagination.is-rounded .pagination-link,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-link{border-radius:290486px}.pagination,.pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}.pagination-previous,.pagination-next,.pagination-link{border-color:#dbdbdb;color:#363636;min-width:2.25em}.pagination-previous:hover,.pagination-next:hover,.pagination-link:hover{border-color:#b5b5b5;color:#363636}.pagination-previous:focus,.pagination-next:focus,.pagination-link:focus{border-color:#3c5dcd}.pagination-previous:active,.pagination-next:active,.pagination-link:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2)}.pagination-previous[disabled],.pagination-next[disabled],.pagination-link[disabled]{background-color:#dbdbdb;border-color:#dbdbdb;box-shadow:none;color:#6b6b6b;opacity:0.5}.pagination-previous,.pagination-next{padding-left:0.75em;padding-right:0.75em;white-space:nowrap}.pagination-link.is-current{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.pagination-ellipsis{color:#b5b5b5;pointer-events:none}.pagination-list{flex-wrap:wrap}@media screen and (max-width: 768px){.pagination{flex-wrap:wrap}.pagination-previous,.pagination-next{flex-grow:1;flex-shrink:1}.pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width: 769px),print{.pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}.pagination-previous{order:2}.pagination-next{order:3}.pagination{justify-content:space-between}.pagination.is-centered .pagination-previous{order:1}.pagination.is-centered .pagination-list{justify-content:center;order:2}.pagination.is-centered .pagination-next{order:3}.pagination.is-right .pagination-previous{order:1}.pagination.is-right .pagination-next{order:2}.pagination.is-right .pagination-list{justify-content:flex-end;order:3}}.panel{font-size:1rem}.panel:not(:last-child){margin-bottom:1.5rem}.panel-heading,.panel-tabs,.panel-block{border-bottom:1px solid #dbdbdb;border-left:1px solid #dbdbdb;border-right:1px solid #dbdbdb}.panel-heading:first-child,.panel-tabs:first-child,.panel-block:first-child{border-top:1px solid #dbdbdb}.panel-heading{background-color:#f5f5f5;border-radius:4px 4px 0 0;color:#222;font-size:1.25em;font-weight:300;line-height:1.25;padding:0.5em 0.75em}.panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}.panel-tabs a{border-bottom:1px solid #dbdbdb;margin-bottom:-1px;padding:0.5em}.panel-tabs a.is-active{border-bottom-color:#4a4a4a;color:#363636}.panel-list a{color:#222}.panel-list a:hover{color:#2e63b8}.panel-block{align-items:center;color:#222;display:flex;justify-content:flex-start;padding:0.5em 0.75em}.panel-block input[type="checkbox"]{margin-right:0.75em}.panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}.panel-block.is-wrapped{flex-wrap:wrap}.panel-block.is-active{border-left-color:#2e63b8;color:#363636}.panel-block.is-active .panel-icon{color:#2e63b8}a.panel-block,label.panel-block{cursor:pointer}a.panel-block:hover,label.panel-block:hover{background-color:#f5f5f5}.panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#6b6b6b;margin-right:0.75em}.panel-icon .fa{font-size:inherit;line-height:inherit}.tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:1rem;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}.tabs a{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;color:#222;display:flex;justify-content:center;margin-bottom:-1px;padding:0.5em 1em;vertical-align:top}.tabs a:hover{border-bottom-color:#222;color:#222}.tabs li{display:block}.tabs li.is-active a{border-bottom-color:#2e63b8;color:#2e63b8}.tabs ul{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}.tabs ul.is-left{padding-right:0.75em}.tabs ul.is-center{flex:none;justify-content:center;padding-left:0.75em;padding-right:0.75em}.tabs ul.is-right{justify-content:flex-end;padding-left:0.75em}.tabs .icon:first-child{margin-right:0.5em}.tabs .icon:last-child{margin-left:0.5em}.tabs.is-centered ul{justify-content:center}.tabs.is-right ul{justify-content:flex-end}.tabs.is-boxed a{border:1px solid transparent;border-radius:4px 4px 0 0}.tabs.is-boxed a:hover{background-color:#f5f5f5;border-bottom-color:#dbdbdb}.tabs.is-boxed li.is-active a{background-color:#fff;border-color:#dbdbdb;border-bottom-color:rgba(0,0,0,0) !important}.tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}.tabs.is-toggle a{border-color:#dbdbdb;border-style:solid;border-width:1px;margin-bottom:0;position:relative}.tabs.is-toggle a:hover{background-color:#f5f5f5;border-color:#b5b5b5;z-index:2}.tabs.is-toggle li+li{margin-left:-1px}.tabs.is-toggle li:first-child a{border-radius:4px 0 0 4px}.tabs.is-toggle li:last-child a{border-radius:0 4px 4px 0}.tabs.is-toggle li.is-active a{background-color:#2e63b8;border-color:#2e63b8;color:#fff;z-index:1}.tabs.is-toggle ul{border-bottom:none}.tabs.is-toggle.is-toggle-rounded li:first-child a{border-bottom-left-radius:290486px;border-top-left-radius:290486px;padding-left:1.25em}.tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:290486px;border-top-right-radius:290486px;padding-right:1.25em}.tabs.is-small,#documenter .docs-sidebar form.docs-search>input.tabs{font-size:.75rem}.tabs.is-medium{font-size:1.25rem}.tabs.is-large{font-size:1.5rem}.column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>.column.is-narrow{flex:none}.columns.is-mobile>.column.is-full{flex:none;width:100%}.columns.is-mobile>.column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>.column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>.column.is-half{flex:none;width:50%}.columns.is-mobile>.column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>.column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>.column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>.column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>.column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>.column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>.column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>.column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>.column.is-offset-half{margin-left:50%}.columns.is-mobile>.column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>.column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>.column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>.column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>.column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>.column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>.column.is-0{flex:none;width:0%}.columns.is-mobile>.column.is-offset-0{margin-left:0%}.columns.is-mobile>.column.is-1{flex:none;width:8.3333333333%}.columns.is-mobile>.column.is-offset-1{margin-left:8.3333333333%}.columns.is-mobile>.column.is-2{flex:none;width:16.6666666667%}.columns.is-mobile>.column.is-offset-2{margin-left:16.6666666667%}.columns.is-mobile>.column.is-3{flex:none;width:25%}.columns.is-mobile>.column.is-offset-3{margin-left:25%}.columns.is-mobile>.column.is-4{flex:none;width:33.3333333333%}.columns.is-mobile>.column.is-offset-4{margin-left:33.3333333333%}.columns.is-mobile>.column.is-5{flex:none;width:41.6666666667%}.columns.is-mobile>.column.is-offset-5{margin-left:41.6666666667%}.columns.is-mobile>.column.is-6{flex:none;width:50%}.columns.is-mobile>.column.is-offset-6{margin-left:50%}.columns.is-mobile>.column.is-7{flex:none;width:58.3333333333%}.columns.is-mobile>.column.is-offset-7{margin-left:58.3333333333%}.columns.is-mobile>.column.is-8{flex:none;width:66.6666666667%}.columns.is-mobile>.column.is-offset-8{margin-left:66.6666666667%}.columns.is-mobile>.column.is-9{flex:none;width:75%}.columns.is-mobile>.column.is-offset-9{margin-left:75%}.columns.is-mobile>.column.is-10{flex:none;width:83.3333333333%}.columns.is-mobile>.column.is-offset-10{margin-left:83.3333333333%}.columns.is-mobile>.column.is-11{flex:none;width:91.6666666667%}.columns.is-mobile>.column.is-offset-11{margin-left:91.6666666667%}.columns.is-mobile>.column.is-12{flex:none;width:100%}.columns.is-mobile>.column.is-offset-12{margin-left:100%}@media screen and (max-width: 768px){.column.is-narrow-mobile{flex:none}.column.is-full-mobile{flex:none;width:100%}.column.is-three-quarters-mobile{flex:none;width:75%}.column.is-two-thirds-mobile{flex:none;width:66.6666%}.column.is-half-mobile{flex:none;width:50%}.column.is-one-third-mobile{flex:none;width:33.3333%}.column.is-one-quarter-mobile{flex:none;width:25%}.column.is-one-fifth-mobile{flex:none;width:20%}.column.is-two-fifths-mobile{flex:none;width:40%}.column.is-three-fifths-mobile{flex:none;width:60%}.column.is-four-fifths-mobile{flex:none;width:80%}.column.is-offset-three-quarters-mobile{margin-left:75%}.column.is-offset-two-thirds-mobile{margin-left:66.6666%}.column.is-offset-half-mobile{margin-left:50%}.column.is-offset-one-third-mobile{margin-left:33.3333%}.column.is-offset-one-quarter-mobile{margin-left:25%}.column.is-offset-one-fifth-mobile{margin-left:20%}.column.is-offset-two-fifths-mobile{margin-left:40%}.column.is-offset-three-fifths-mobile{margin-left:60%}.column.is-offset-four-fifths-mobile{margin-left:80%}.column.is-0-mobile{flex:none;width:0%}.column.is-offset-0-mobile{margin-left:0%}.column.is-1-mobile{flex:none;width:8.3333333333%}.column.is-offset-1-mobile{margin-left:8.3333333333%}.column.is-2-mobile{flex:none;width:16.6666666667%}.column.is-offset-2-mobile{margin-left:16.6666666667%}.column.is-3-mobile{flex:none;width:25%}.column.is-offset-3-mobile{margin-left:25%}.column.is-4-mobile{flex:none;width:33.3333333333%}.column.is-offset-4-mobile{margin-left:33.3333333333%}.column.is-5-mobile{flex:none;width:41.6666666667%}.column.is-offset-5-mobile{margin-left:41.6666666667%}.column.is-6-mobile{flex:none;width:50%}.column.is-offset-6-mobile{margin-left:50%}.column.is-7-mobile{flex:none;width:58.3333333333%}.column.is-offset-7-mobile{margin-left:58.3333333333%}.column.is-8-mobile{flex:none;width:66.6666666667%}.column.is-offset-8-mobile{margin-left:66.6666666667%}.column.is-9-mobile{flex:none;width:75%}.column.is-offset-9-mobile{margin-left:75%}.column.is-10-mobile{flex:none;width:83.3333333333%}.column.is-offset-10-mobile{margin-left:83.3333333333%}.column.is-11-mobile{flex:none;width:91.6666666667%}.column.is-offset-11-mobile{margin-left:91.6666666667%}.column.is-12-mobile{flex:none;width:100%}.column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width: 769px),print{.column.is-narrow,.column.is-narrow-tablet{flex:none}.column.is-full,.column.is-full-tablet{flex:none;width:100%}.column.is-three-quarters,.column.is-three-quarters-tablet{flex:none;width:75%}.column.is-two-thirds,.column.is-two-thirds-tablet{flex:none;width:66.6666%}.column.is-half,.column.is-half-tablet{flex:none;width:50%}.column.is-one-third,.column.is-one-third-tablet{flex:none;width:33.3333%}.column.is-one-quarter,.column.is-one-quarter-tablet{flex:none;width:25%}.column.is-one-fifth,.column.is-one-fifth-tablet{flex:none;width:20%}.column.is-two-fifths,.column.is-two-fifths-tablet{flex:none;width:40%}.column.is-three-fifths,.column.is-three-fifths-tablet{flex:none;width:60%}.column.is-four-fifths,.column.is-four-fifths-tablet{flex:none;width:80%}.column.is-offset-three-quarters,.column.is-offset-three-quarters-tablet{margin-left:75%}.column.is-offset-two-thirds,.column.is-offset-two-thirds-tablet{margin-left:66.6666%}.column.is-offset-half,.column.is-offset-half-tablet{margin-left:50%}.column.is-offset-one-third,.column.is-offset-one-third-tablet{margin-left:33.3333%}.column.is-offset-one-quarter,.column.is-offset-one-quarter-tablet{margin-left:25%}.column.is-offset-one-fifth,.column.is-offset-one-fifth-tablet{margin-left:20%}.column.is-offset-two-fifths,.column.is-offset-two-fifths-tablet{margin-left:40%}.column.is-offset-three-fifths,.column.is-offset-three-fifths-tablet{margin-left:60%}.column.is-offset-four-fifths,.column.is-offset-four-fifths-tablet{margin-left:80%}.column.is-0,.column.is-0-tablet{flex:none;width:0%}.column.is-offset-0,.column.is-offset-0-tablet{margin-left:0%}.column.is-1,.column.is-1-tablet{flex:none;width:8.3333333333%}.column.is-offset-1,.column.is-offset-1-tablet{margin-left:8.3333333333%}.column.is-2,.column.is-2-tablet{flex:none;width:16.6666666667%}.column.is-offset-2,.column.is-offset-2-tablet{margin-left:16.6666666667%}.column.is-3,.column.is-3-tablet{flex:none;width:25%}.column.is-offset-3,.column.is-offset-3-tablet{margin-left:25%}.column.is-4,.column.is-4-tablet{flex:none;width:33.3333333333%}.column.is-offset-4,.column.is-offset-4-tablet{margin-left:33.3333333333%}.column.is-5,.column.is-5-tablet{flex:none;width:41.6666666667%}.column.is-offset-5,.column.is-offset-5-tablet{margin-left:41.6666666667%}.column.is-6,.column.is-6-tablet{flex:none;width:50%}.column.is-offset-6,.column.is-offset-6-tablet{margin-left:50%}.column.is-7,.column.is-7-tablet{flex:none;width:58.3333333333%}.column.is-offset-7,.column.is-offset-7-tablet{margin-left:58.3333333333%}.column.is-8,.column.is-8-tablet{flex:none;width:66.6666666667%}.column.is-offset-8,.column.is-offset-8-tablet{margin-left:66.6666666667%}.column.is-9,.column.is-9-tablet{flex:none;width:75%}.column.is-offset-9,.column.is-offset-9-tablet{margin-left:75%}.column.is-10,.column.is-10-tablet{flex:none;width:83.3333333333%}.column.is-offset-10,.column.is-offset-10-tablet{margin-left:83.3333333333%}.column.is-11,.column.is-11-tablet{flex:none;width:91.6666666667%}.column.is-offset-11,.column.is-offset-11-tablet{margin-left:91.6666666667%}.column.is-12,.column.is-12-tablet{flex:none;width:100%}.column.is-offset-12,.column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width: 1055px){.column.is-narrow-touch{flex:none}.column.is-full-touch{flex:none;width:100%}.column.is-three-quarters-touch{flex:none;width:75%}.column.is-two-thirds-touch{flex:none;width:66.6666%}.column.is-half-touch{flex:none;width:50%}.column.is-one-third-touch{flex:none;width:33.3333%}.column.is-one-quarter-touch{flex:none;width:25%}.column.is-one-fifth-touch{flex:none;width:20%}.column.is-two-fifths-touch{flex:none;width:40%}.column.is-three-fifths-touch{flex:none;width:60%}.column.is-four-fifths-touch{flex:none;width:80%}.column.is-offset-three-quarters-touch{margin-left:75%}.column.is-offset-two-thirds-touch{margin-left:66.6666%}.column.is-offset-half-touch{margin-left:50%}.column.is-offset-one-third-touch{margin-left:33.3333%}.column.is-offset-one-quarter-touch{margin-left:25%}.column.is-offset-one-fifth-touch{margin-left:20%}.column.is-offset-two-fifths-touch{margin-left:40%}.column.is-offset-three-fifths-touch{margin-left:60%}.column.is-offset-four-fifths-touch{margin-left:80%}.column.is-0-touch{flex:none;width:0%}.column.is-offset-0-touch{margin-left:0%}.column.is-1-touch{flex:none;width:8.3333333333%}.column.is-offset-1-touch{margin-left:8.3333333333%}.column.is-2-touch{flex:none;width:16.6666666667%}.column.is-offset-2-touch{margin-left:16.6666666667%}.column.is-3-touch{flex:none;width:25%}.column.is-offset-3-touch{margin-left:25%}.column.is-4-touch{flex:none;width:33.3333333333%}.column.is-offset-4-touch{margin-left:33.3333333333%}.column.is-5-touch{flex:none;width:41.6666666667%}.column.is-offset-5-touch{margin-left:41.6666666667%}.column.is-6-touch{flex:none;width:50%}.column.is-offset-6-touch{margin-left:50%}.column.is-7-touch{flex:none;width:58.3333333333%}.column.is-offset-7-touch{margin-left:58.3333333333%}.column.is-8-touch{flex:none;width:66.6666666667%}.column.is-offset-8-touch{margin-left:66.6666666667%}.column.is-9-touch{flex:none;width:75%}.column.is-offset-9-touch{margin-left:75%}.column.is-10-touch{flex:none;width:83.3333333333%}.column.is-offset-10-touch{margin-left:83.3333333333%}.column.is-11-touch{flex:none;width:91.6666666667%}.column.is-offset-11-touch{margin-left:91.6666666667%}.column.is-12-touch{flex:none;width:100%}.column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width: 1056px){.column.is-narrow-desktop{flex:none}.column.is-full-desktop{flex:none;width:100%}.column.is-three-quarters-desktop{flex:none;width:75%}.column.is-two-thirds-desktop{flex:none;width:66.6666%}.column.is-half-desktop{flex:none;width:50%}.column.is-one-third-desktop{flex:none;width:33.3333%}.column.is-one-quarter-desktop{flex:none;width:25%}.column.is-one-fifth-desktop{flex:none;width:20%}.column.is-two-fifths-desktop{flex:none;width:40%}.column.is-three-fifths-desktop{flex:none;width:60%}.column.is-four-fifths-desktop{flex:none;width:80%}.column.is-offset-three-quarters-desktop{margin-left:75%}.column.is-offset-two-thirds-desktop{margin-left:66.6666%}.column.is-offset-half-desktop{margin-left:50%}.column.is-offset-one-third-desktop{margin-left:33.3333%}.column.is-offset-one-quarter-desktop{margin-left:25%}.column.is-offset-one-fifth-desktop{margin-left:20%}.column.is-offset-two-fifths-desktop{margin-left:40%}.column.is-offset-three-fifths-desktop{margin-left:60%}.column.is-offset-four-fifths-desktop{margin-left:80%}.column.is-0-desktop{flex:none;width:0%}.column.is-offset-0-desktop{margin-left:0%}.column.is-1-desktop{flex:none;width:8.3333333333%}.column.is-offset-1-desktop{margin-left:8.3333333333%}.column.is-2-desktop{flex:none;width:16.6666666667%}.column.is-offset-2-desktop{margin-left:16.6666666667%}.column.is-3-desktop{flex:none;width:25%}.column.is-offset-3-desktop{margin-left:25%}.column.is-4-desktop{flex:none;width:33.3333333333%}.column.is-offset-4-desktop{margin-left:33.3333333333%}.column.is-5-desktop{flex:none;width:41.6666666667%}.column.is-offset-5-desktop{margin-left:41.6666666667%}.column.is-6-desktop{flex:none;width:50%}.column.is-offset-6-desktop{margin-left:50%}.column.is-7-desktop{flex:none;width:58.3333333333%}.column.is-offset-7-desktop{margin-left:58.3333333333%}.column.is-8-desktop{flex:none;width:66.6666666667%}.column.is-offset-8-desktop{margin-left:66.6666666667%}.column.is-9-desktop{flex:none;width:75%}.column.is-offset-9-desktop{margin-left:75%}.column.is-10-desktop{flex:none;width:83.3333333333%}.column.is-offset-10-desktop{margin-left:83.3333333333%}.column.is-11-desktop{flex:none;width:91.6666666667%}.column.is-offset-11-desktop{margin-left:91.6666666667%}.column.is-12-desktop{flex:none;width:100%}.column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width: 1216px){.column.is-narrow-widescreen{flex:none}.column.is-full-widescreen{flex:none;width:100%}.column.is-three-quarters-widescreen{flex:none;width:75%}.column.is-two-thirds-widescreen{flex:none;width:66.6666%}.column.is-half-widescreen{flex:none;width:50%}.column.is-one-third-widescreen{flex:none;width:33.3333%}.column.is-one-quarter-widescreen{flex:none;width:25%}.column.is-one-fifth-widescreen{flex:none;width:20%}.column.is-two-fifths-widescreen{flex:none;width:40%}.column.is-three-fifths-widescreen{flex:none;width:60%}.column.is-four-fifths-widescreen{flex:none;width:80%}.column.is-offset-three-quarters-widescreen{margin-left:75%}.column.is-offset-two-thirds-widescreen{margin-left:66.6666%}.column.is-offset-half-widescreen{margin-left:50%}.column.is-offset-one-third-widescreen{margin-left:33.3333%}.column.is-offset-one-quarter-widescreen{margin-left:25%}.column.is-offset-one-fifth-widescreen{margin-left:20%}.column.is-offset-two-fifths-widescreen{margin-left:40%}.column.is-offset-three-fifths-widescreen{margin-left:60%}.column.is-offset-four-fifths-widescreen{margin-left:80%}.column.is-0-widescreen{flex:none;width:0%}.column.is-offset-0-widescreen{margin-left:0%}.column.is-1-widescreen{flex:none;width:8.3333333333%}.column.is-offset-1-widescreen{margin-left:8.3333333333%}.column.is-2-widescreen{flex:none;width:16.6666666667%}.column.is-offset-2-widescreen{margin-left:16.6666666667%}.column.is-3-widescreen{flex:none;width:25%}.column.is-offset-3-widescreen{margin-left:25%}.column.is-4-widescreen{flex:none;width:33.3333333333%}.column.is-offset-4-widescreen{margin-left:33.3333333333%}.column.is-5-widescreen{flex:none;width:41.6666666667%}.column.is-offset-5-widescreen{margin-left:41.6666666667%}.column.is-6-widescreen{flex:none;width:50%}.column.is-offset-6-widescreen{margin-left:50%}.column.is-7-widescreen{flex:none;width:58.3333333333%}.column.is-offset-7-widescreen{margin-left:58.3333333333%}.column.is-8-widescreen{flex:none;width:66.6666666667%}.column.is-offset-8-widescreen{margin-left:66.6666666667%}.column.is-9-widescreen{flex:none;width:75%}.column.is-offset-9-widescreen{margin-left:75%}.column.is-10-widescreen{flex:none;width:83.3333333333%}.column.is-offset-10-widescreen{margin-left:83.3333333333%}.column.is-11-widescreen{flex:none;width:91.6666666667%}.column.is-offset-11-widescreen{margin-left:91.6666666667%}.column.is-12-widescreen{flex:none;width:100%}.column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width: 1408px){.column.is-narrow-fullhd{flex:none}.column.is-full-fullhd{flex:none;width:100%}.column.is-three-quarters-fullhd{flex:none;width:75%}.column.is-two-thirds-fullhd{flex:none;width:66.6666%}.column.is-half-fullhd{flex:none;width:50%}.column.is-one-third-fullhd{flex:none;width:33.3333%}.column.is-one-quarter-fullhd{flex:none;width:25%}.column.is-one-fifth-fullhd{flex:none;width:20%}.column.is-two-fifths-fullhd{flex:none;width:40%}.column.is-three-fifths-fullhd{flex:none;width:60%}.column.is-four-fifths-fullhd{flex:none;width:80%}.column.is-offset-three-quarters-fullhd{margin-left:75%}.column.is-offset-two-thirds-fullhd{margin-left:66.6666%}.column.is-offset-half-fullhd{margin-left:50%}.column.is-offset-one-third-fullhd{margin-left:33.3333%}.column.is-offset-one-quarter-fullhd{margin-left:25%}.column.is-offset-one-fifth-fullhd{margin-left:20%}.column.is-offset-two-fifths-fullhd{margin-left:40%}.column.is-offset-three-fifths-fullhd{margin-left:60%}.column.is-offset-four-fifths-fullhd{margin-left:80%}.column.is-0-fullhd{flex:none;width:0%}.column.is-offset-0-fullhd{margin-left:0%}.column.is-1-fullhd{flex:none;width:8.3333333333%}.column.is-offset-1-fullhd{margin-left:8.3333333333%}.column.is-2-fullhd{flex:none;width:16.6666666667%}.column.is-offset-2-fullhd{margin-left:16.6666666667%}.column.is-3-fullhd{flex:none;width:25%}.column.is-offset-3-fullhd{margin-left:25%}.column.is-4-fullhd{flex:none;width:33.3333333333%}.column.is-offset-4-fullhd{margin-left:33.3333333333%}.column.is-5-fullhd{flex:none;width:41.6666666667%}.column.is-offset-5-fullhd{margin-left:41.6666666667%}.column.is-6-fullhd{flex:none;width:50%}.column.is-offset-6-fullhd{margin-left:50%}.column.is-7-fullhd{flex:none;width:58.3333333333%}.column.is-offset-7-fullhd{margin-left:58.3333333333%}.column.is-8-fullhd{flex:none;width:66.6666666667%}.column.is-offset-8-fullhd{margin-left:66.6666666667%}.column.is-9-fullhd{flex:none;width:75%}.column.is-offset-9-fullhd{margin-left:75%}.column.is-10-fullhd{flex:none;width:83.3333333333%}.column.is-offset-10-fullhd{margin-left:83.3333333333%}.column.is-11-fullhd{flex:none;width:91.6666666667%}.column.is-offset-11-fullhd{margin-left:91.6666666667%}.column.is-12-fullhd{flex:none;width:100%}.column.is-offset-12-fullhd{margin-left:100%}}.columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.columns:last-child{margin-bottom:-.75rem}.columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}.columns.is-centered{justify-content:center}.columns.is-gapless{margin-left:0;margin-right:0;margin-top:0}.columns.is-gapless>.column{margin:0;padding:0 !important}.columns.is-gapless:not(:last-child){margin-bottom:1.5rem}.columns.is-gapless:last-child{margin-bottom:0}.columns.is-mobile{display:flex}.columns.is-multiline{flex-wrap:wrap}.columns.is-vcentered{align-items:center}@media screen and (min-width: 769px),print{.columns:not(.is-desktop){display:flex}}@media screen and (min-width: 1056px){.columns.is-desktop{display:flex}}.columns.is-variable{--columnGap: 0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}.columns.is-variable .column{padding-left:var(--columnGap);padding-right:var(--columnGap)}.columns.is-variable.is-0{--columnGap: 0rem}@media screen and (max-width: 768px){.columns.is-variable.is-0-mobile{--columnGap: 0rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-0-tablet{--columnGap: 0rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-0-tablet-only{--columnGap: 0rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-0-touch{--columnGap: 0rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-0-desktop{--columnGap: 0rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-0-desktop-only{--columnGap: 0rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-0-widescreen{--columnGap: 0rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-0-widescreen-only{--columnGap: 0rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-0-fullhd{--columnGap: 0rem}}.columns.is-variable.is-1{--columnGap: .25rem}@media screen and (max-width: 768px){.columns.is-variable.is-1-mobile{--columnGap: .25rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-1-tablet{--columnGap: .25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-1-tablet-only{--columnGap: .25rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-1-touch{--columnGap: .25rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-1-desktop{--columnGap: .25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-1-desktop-only{--columnGap: .25rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-1-widescreen{--columnGap: .25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-1-widescreen-only{--columnGap: .25rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-1-fullhd{--columnGap: .25rem}}.columns.is-variable.is-2{--columnGap: .5rem}@media screen and (max-width: 768px){.columns.is-variable.is-2-mobile{--columnGap: .5rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-2-tablet{--columnGap: .5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-2-tablet-only{--columnGap: .5rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-2-touch{--columnGap: .5rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-2-desktop{--columnGap: .5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-2-desktop-only{--columnGap: .5rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-2-widescreen{--columnGap: .5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-2-widescreen-only{--columnGap: .5rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-2-fullhd{--columnGap: .5rem}}.columns.is-variable.is-3{--columnGap: .75rem}@media screen and (max-width: 768px){.columns.is-variable.is-3-mobile{--columnGap: .75rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-3-tablet{--columnGap: .75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-3-tablet-only{--columnGap: .75rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-3-touch{--columnGap: .75rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-3-desktop{--columnGap: .75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-3-desktop-only{--columnGap: .75rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-3-widescreen{--columnGap: .75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-3-widescreen-only{--columnGap: .75rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-3-fullhd{--columnGap: .75rem}}.columns.is-variable.is-4{--columnGap: 1rem}@media screen and (max-width: 768px){.columns.is-variable.is-4-mobile{--columnGap: 1rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-4-tablet{--columnGap: 1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-4-tablet-only{--columnGap: 1rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-4-touch{--columnGap: 1rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-4-desktop{--columnGap: 1rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-4-desktop-only{--columnGap: 1rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-4-widescreen{--columnGap: 1rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-4-widescreen-only{--columnGap: 1rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-4-fullhd{--columnGap: 1rem}}.columns.is-variable.is-5{--columnGap: 1.25rem}@media screen and (max-width: 768px){.columns.is-variable.is-5-mobile{--columnGap: 1.25rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-5-tablet{--columnGap: 1.25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-5-tablet-only{--columnGap: 1.25rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-5-touch{--columnGap: 1.25rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-5-desktop{--columnGap: 1.25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-5-desktop-only{--columnGap: 1.25rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-5-widescreen{--columnGap: 1.25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-5-widescreen-only{--columnGap: 1.25rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-5-fullhd{--columnGap: 1.25rem}}.columns.is-variable.is-6{--columnGap: 1.5rem}@media screen and (max-width: 768px){.columns.is-variable.is-6-mobile{--columnGap: 1.5rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-6-tablet{--columnGap: 1.5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-6-tablet-only{--columnGap: 1.5rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-6-touch{--columnGap: 1.5rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-6-desktop{--columnGap: 1.5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-6-desktop-only{--columnGap: 1.5rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-6-widescreen{--columnGap: 1.5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-6-widescreen-only{--columnGap: 1.5rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-6-fullhd{--columnGap: 1.5rem}}.columns.is-variable.is-7{--columnGap: 1.75rem}@media screen and (max-width: 768px){.columns.is-variable.is-7-mobile{--columnGap: 1.75rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-7-tablet{--columnGap: 1.75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-7-tablet-only{--columnGap: 1.75rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-7-touch{--columnGap: 1.75rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-7-desktop{--columnGap: 1.75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-7-desktop-only{--columnGap: 1.75rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-7-widescreen{--columnGap: 1.75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-7-widescreen-only{--columnGap: 1.75rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-7-fullhd{--columnGap: 1.75rem}}.columns.is-variable.is-8{--columnGap: 2rem}@media screen and (max-width: 768px){.columns.is-variable.is-8-mobile{--columnGap: 2rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-8-tablet{--columnGap: 2rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-8-tablet-only{--columnGap: 2rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-8-touch{--columnGap: 2rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-8-desktop{--columnGap: 2rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-8-desktop-only{--columnGap: 2rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-8-widescreen{--columnGap: 2rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-8-widescreen-only{--columnGap: 2rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-8-fullhd{--columnGap: 2rem}}.tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:min-content}.tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.tile.is-ancestor:last-child{margin-bottom:-.75rem}.tile.is-ancestor:not(:last-child){margin-bottom:.75rem}.tile.is-child{margin:0 !important}.tile.is-parent{padding:.75rem}.tile.is-vertical{flex-direction:column}.tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem !important}@media screen and (min-width: 769px),print{.tile:not(.is-child){display:flex}.tile.is-1{flex:none;width:8.3333333333%}.tile.is-2{flex:none;width:16.6666666667%}.tile.is-3{flex:none;width:25%}.tile.is-4{flex:none;width:33.3333333333%}.tile.is-5{flex:none;width:41.6666666667%}.tile.is-6{flex:none;width:50%}.tile.is-7{flex:none;width:58.3333333333%}.tile.is-8{flex:none;width:66.6666666667%}.tile.is-9{flex:none;width:75%}.tile.is-10{flex:none;width:83.3333333333%}.tile.is-11{flex:none;width:91.6666666667%}.tile.is-12{flex:none;width:100%}}.hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}.hero .navbar{background:none}.hero .tabs ul{border-bottom:none}.hero.is-white{background-color:#fff;color:#0a0a0a}.hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-white strong{color:inherit}.hero.is-white .title{color:#0a0a0a}.hero.is-white .subtitle{color:rgba(10,10,10,0.9)}.hero.is-white .subtitle a:not(.button),.hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width: 1055px){.hero.is-white .navbar-menu{background-color:#fff}}.hero.is-white .navbar-item,.hero.is-white .navbar-link{color:rgba(10,10,10,0.7)}.hero.is-white a.navbar-item:hover,.hero.is-white a.navbar-item.is-active,.hero.is-white .navbar-link:hover,.hero.is-white .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.hero.is-white .tabs a{color:#0a0a0a;opacity:0.9}.hero.is-white .tabs a:hover{opacity:1}.hero.is-white .tabs li.is-active a{opacity:1}.hero.is-white .tabs.is-boxed a,.hero.is-white .tabs.is-toggle a{color:#0a0a0a}.hero.is-white .tabs.is-boxed a:hover,.hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-white .tabs.is-boxed li.is-active a,.hero.is-white .tabs.is-boxed li.is-active a:hover,.hero.is-white .tabs.is-toggle li.is-active a,.hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.hero.is-white.is-bold{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}@media screen and (max-width: 768px){.hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}}.hero.is-black{background-color:#0a0a0a;color:#fff}.hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-black strong{color:inherit}.hero.is-black .title{color:#fff}.hero.is-black .subtitle{color:rgba(255,255,255,0.9)}.hero.is-black .subtitle a:not(.button),.hero.is-black .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-black .navbar-menu{background-color:#0a0a0a}}.hero.is-black .navbar-item,.hero.is-black .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-black a.navbar-item:hover,.hero.is-black a.navbar-item.is-active,.hero.is-black .navbar-link:hover,.hero.is-black .navbar-link.is-active{background-color:#000;color:#fff}.hero.is-black .tabs a{color:#fff;opacity:0.9}.hero.is-black .tabs a:hover{opacity:1}.hero.is-black .tabs li.is-active a{opacity:1}.hero.is-black .tabs.is-boxed a,.hero.is-black .tabs.is-toggle a{color:#fff}.hero.is-black .tabs.is-boxed a:hover,.hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-black .tabs.is-boxed li.is-active a,.hero.is-black .tabs.is-boxed li.is-active a:hover,.hero.is-black .tabs.is-toggle li.is-active a,.hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}.hero.is-black.is-bold{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}@media screen and (max-width: 768px){.hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}}.hero.is-light{background-color:#f5f5f5;color:#363636}.hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-light strong{color:inherit}.hero.is-light .title{color:#363636}.hero.is-light .subtitle{color:rgba(54,54,54,0.9)}.hero.is-light .subtitle a:not(.button),.hero.is-light .subtitle strong{color:#363636}@media screen and (max-width: 1055px){.hero.is-light .navbar-menu{background-color:#f5f5f5}}.hero.is-light .navbar-item,.hero.is-light .navbar-link{color:rgba(54,54,54,0.7)}.hero.is-light a.navbar-item:hover,.hero.is-light a.navbar-item.is-active,.hero.is-light .navbar-link:hover,.hero.is-light .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.hero.is-light .tabs a{color:#363636;opacity:0.9}.hero.is-light .tabs a:hover{opacity:1}.hero.is-light .tabs li.is-active a{opacity:1}.hero.is-light .tabs.is-boxed a,.hero.is-light .tabs.is-toggle a{color:#363636}.hero.is-light .tabs.is-boxed a:hover,.hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-light .tabs.is-boxed li.is-active a,.hero.is-light .tabs.is-boxed li.is-active a:hover,.hero.is-light .tabs.is-toggle li.is-active a,.hero.is-light .tabs.is-toggle li.is-active a:hover{background-color:#363636;border-color:#363636;color:#f5f5f5}.hero.is-light.is-bold{background-image:linear-gradient(141deg, #dfd8d9 0%, #f5f5f5 71%, #fff 100%)}@media screen and (max-width: 768px){.hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg, #dfd8d9 0%, #f5f5f5 71%, #fff 100%)}}.hero.is-dark,.content kbd.hero{background-color:#363636;color:#f5f5f5}.hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-dark strong,.content kbd.hero strong{color:inherit}.hero.is-dark .title,.content kbd.hero .title{color:#f5f5f5}.hero.is-dark .subtitle,.content kbd.hero .subtitle{color:rgba(245,245,245,0.9)}.hero.is-dark .subtitle a:not(.button),.content kbd.hero .subtitle a:not(.button),.hero.is-dark .subtitle strong,.content kbd.hero .subtitle strong{color:#f5f5f5}@media screen and (max-width: 1055px){.hero.is-dark .navbar-menu,.content kbd.hero .navbar-menu{background-color:#363636}}.hero.is-dark .navbar-item,.content kbd.hero .navbar-item,.hero.is-dark .navbar-link,.content kbd.hero .navbar-link{color:rgba(245,245,245,0.7)}.hero.is-dark a.navbar-item:hover,.content kbd.hero a.navbar-item:hover,.hero.is-dark a.navbar-item.is-active,.content kbd.hero a.navbar-item.is-active,.hero.is-dark .navbar-link:hover,.content kbd.hero .navbar-link:hover,.hero.is-dark .navbar-link.is-active,.content kbd.hero .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.hero.is-dark .tabs a,.content kbd.hero .tabs a{color:#f5f5f5;opacity:0.9}.hero.is-dark .tabs a:hover,.content kbd.hero .tabs a:hover{opacity:1}.hero.is-dark .tabs li.is-active a,.content kbd.hero .tabs li.is-active a{opacity:1}.hero.is-dark .tabs.is-boxed a,.content kbd.hero .tabs.is-boxed a,.hero.is-dark .tabs.is-toggle a,.content kbd.hero .tabs.is-toggle a{color:#f5f5f5}.hero.is-dark .tabs.is-boxed a:hover,.content kbd.hero .tabs.is-boxed a:hover,.hero.is-dark .tabs.is-toggle a:hover,.content kbd.hero .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-dark .tabs.is-boxed li.is-active a,.content kbd.hero .tabs.is-boxed li.is-active a,.hero.is-dark .tabs.is-boxed li.is-active a:hover,.hero.is-dark .tabs.is-toggle li.is-active a,.content kbd.hero .tabs.is-toggle li.is-active a,.hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.hero.is-dark.is-bold,.content kbd.hero.is-bold{background-image:linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%)}@media screen and (max-width: 768px){.hero.is-dark.is-bold .navbar-menu,.content kbd.hero.is-bold .navbar-menu{background-image:linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%)}}.hero.is-primary,.docstring>section>a.hero.docs-sourcelink{background-color:#4eb5de;color:#fff}.hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.docstring>section>a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-primary strong,.docstring>section>a.hero.docs-sourcelink strong{color:inherit}.hero.is-primary .title,.docstring>section>a.hero.docs-sourcelink .title{color:#fff}.hero.is-primary .subtitle,.docstring>section>a.hero.docs-sourcelink .subtitle{color:rgba(255,255,255,0.9)}.hero.is-primary .subtitle a:not(.button),.docstring>section>a.hero.docs-sourcelink .subtitle a:not(.button),.hero.is-primary .subtitle strong,.docstring>section>a.hero.docs-sourcelink .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-primary .navbar-menu,.docstring>section>a.hero.docs-sourcelink .navbar-menu{background-color:#4eb5de}}.hero.is-primary .navbar-item,.docstring>section>a.hero.docs-sourcelink .navbar-item,.hero.is-primary .navbar-link,.docstring>section>a.hero.docs-sourcelink .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-primary a.navbar-item:hover,.docstring>section>a.hero.docs-sourcelink a.navbar-item:hover,.hero.is-primary a.navbar-item.is-active,.docstring>section>a.hero.docs-sourcelink a.navbar-item.is-active,.hero.is-primary .navbar-link:hover,.docstring>section>a.hero.docs-sourcelink .navbar-link:hover,.hero.is-primary .navbar-link.is-active,.docstring>section>a.hero.docs-sourcelink .navbar-link.is-active{background-color:#39acda;color:#fff}.hero.is-primary .tabs a,.docstring>section>a.hero.docs-sourcelink .tabs a{color:#fff;opacity:0.9}.hero.is-primary .tabs a:hover,.docstring>section>a.hero.docs-sourcelink .tabs a:hover{opacity:1}.hero.is-primary .tabs li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs li.is-active a{opacity:1}.hero.is-primary .tabs.is-boxed a,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a,.hero.is-primary .tabs.is-toggle a,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a{color:#fff}.hero.is-primary .tabs.is-boxed a:hover,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a:hover,.hero.is-primary .tabs.is-toggle a:hover,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-primary .tabs.is-boxed li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed li.is-active a,.hero.is-primary .tabs.is-boxed li.is-active a:hover,.hero.is-primary .tabs.is-toggle li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle li.is-active a,.hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#4eb5de}.hero.is-primary.is-bold,.docstring>section>a.hero.is-bold.docs-sourcelink{background-image:linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%)}@media screen and (max-width: 768px){.hero.is-primary.is-bold .navbar-menu,.docstring>section>a.hero.is-bold.docs-sourcelink .navbar-menu{background-image:linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%)}}.hero.is-link{background-color:#2e63b8;color:#fff}.hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-link strong{color:inherit}.hero.is-link .title{color:#fff}.hero.is-link .subtitle{color:rgba(255,255,255,0.9)}.hero.is-link .subtitle a:not(.button),.hero.is-link .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-link .navbar-menu{background-color:#2e63b8}}.hero.is-link .navbar-item,.hero.is-link .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-link a.navbar-item:hover,.hero.is-link a.navbar-item.is-active,.hero.is-link .navbar-link:hover,.hero.is-link .navbar-link.is-active{background-color:#2958a4;color:#fff}.hero.is-link .tabs a{color:#fff;opacity:0.9}.hero.is-link .tabs a:hover{opacity:1}.hero.is-link .tabs li.is-active a{opacity:1}.hero.is-link .tabs.is-boxed a,.hero.is-link .tabs.is-toggle a{color:#fff}.hero.is-link .tabs.is-boxed a:hover,.hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-link .tabs.is-boxed li.is-active a,.hero.is-link .tabs.is-boxed li.is-active a:hover,.hero.is-link .tabs.is-toggle li.is-active a,.hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#2e63b8}.hero.is-link.is-bold{background-image:linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%)}@media screen and (max-width: 768px){.hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%)}}.hero.is-info{background-color:#209cee;color:#fff}.hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-info strong{color:inherit}.hero.is-info .title{color:#fff}.hero.is-info .subtitle{color:rgba(255,255,255,0.9)}.hero.is-info .subtitle a:not(.button),.hero.is-info .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-info .navbar-menu{background-color:#209cee}}.hero.is-info .navbar-item,.hero.is-info .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-info a.navbar-item:hover,.hero.is-info a.navbar-item.is-active,.hero.is-info .navbar-link:hover,.hero.is-info .navbar-link.is-active{background-color:#1190e3;color:#fff}.hero.is-info .tabs a{color:#fff;opacity:0.9}.hero.is-info .tabs a:hover{opacity:1}.hero.is-info .tabs li.is-active a{opacity:1}.hero.is-info .tabs.is-boxed a,.hero.is-info .tabs.is-toggle a{color:#fff}.hero.is-info .tabs.is-boxed a:hover,.hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-info .tabs.is-boxed li.is-active a,.hero.is-info .tabs.is-boxed li.is-active a:hover,.hero.is-info .tabs.is-toggle li.is-active a,.hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#209cee}.hero.is-info.is-bold{background-image:linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%)}@media screen and (max-width: 768px){.hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%)}}.hero.is-success{background-color:#22c35b;color:#fff}.hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-success strong{color:inherit}.hero.is-success .title{color:#fff}.hero.is-success .subtitle{color:rgba(255,255,255,0.9)}.hero.is-success .subtitle a:not(.button),.hero.is-success .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-success .navbar-menu{background-color:#22c35b}}.hero.is-success .navbar-item,.hero.is-success .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-success a.navbar-item:hover,.hero.is-success a.navbar-item.is-active,.hero.is-success .navbar-link:hover,.hero.is-success .navbar-link.is-active{background-color:#1ead51;color:#fff}.hero.is-success .tabs a{color:#fff;opacity:0.9}.hero.is-success .tabs a:hover{opacity:1}.hero.is-success .tabs li.is-active a{opacity:1}.hero.is-success .tabs.is-boxed a,.hero.is-success .tabs.is-toggle a{color:#fff}.hero.is-success .tabs.is-boxed a:hover,.hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-success .tabs.is-boxed li.is-active a,.hero.is-success .tabs.is-boxed li.is-active a:hover,.hero.is-success .tabs.is-toggle li.is-active a,.hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#22c35b}.hero.is-success.is-bold{background-image:linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%)}@media screen and (max-width: 768px){.hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%)}}.hero.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-warning strong{color:inherit}.hero.is-warning .title{color:rgba(0,0,0,0.7)}.hero.is-warning .subtitle{color:rgba(0,0,0,0.9)}.hero.is-warning .subtitle a:not(.button),.hero.is-warning .subtitle strong{color:rgba(0,0,0,0.7)}@media screen and (max-width: 1055px){.hero.is-warning .navbar-menu{background-color:#ffdd57}}.hero.is-warning .navbar-item,.hero.is-warning .navbar-link{color:rgba(0,0,0,0.7)}.hero.is-warning a.navbar-item:hover,.hero.is-warning a.navbar-item.is-active,.hero.is-warning .navbar-link:hover,.hero.is-warning .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.hero.is-warning .tabs a{color:rgba(0,0,0,0.7);opacity:0.9}.hero.is-warning .tabs a:hover{opacity:1}.hero.is-warning .tabs li.is-active a{opacity:1}.hero.is-warning .tabs.is-boxed a,.hero.is-warning .tabs.is-toggle a{color:rgba(0,0,0,0.7)}.hero.is-warning .tabs.is-boxed a:hover,.hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-warning .tabs.is-boxed li.is-active a,.hero.is-warning .tabs.is-boxed li.is-active a:hover,.hero.is-warning .tabs.is-toggle li.is-active a,.hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:rgba(0,0,0,0.7);border-color:rgba(0,0,0,0.7);color:#ffdd57}.hero.is-warning.is-bold{background-image:linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%)}@media screen and (max-width: 768px){.hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%)}}.hero.is-danger{background-color:#da0b00;color:#fff}.hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-danger strong{color:inherit}.hero.is-danger .title{color:#fff}.hero.is-danger .subtitle{color:rgba(255,255,255,0.9)}.hero.is-danger .subtitle a:not(.button),.hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-danger .navbar-menu{background-color:#da0b00}}.hero.is-danger .navbar-item,.hero.is-danger .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-danger a.navbar-item:hover,.hero.is-danger a.navbar-item.is-active,.hero.is-danger .navbar-link:hover,.hero.is-danger .navbar-link.is-active{background-color:#c10a00;color:#fff}.hero.is-danger .tabs a{color:#fff;opacity:0.9}.hero.is-danger .tabs a:hover{opacity:1}.hero.is-danger .tabs li.is-active a{opacity:1}.hero.is-danger .tabs.is-boxed a,.hero.is-danger .tabs.is-toggle a{color:#fff}.hero.is-danger .tabs.is-boxed a:hover,.hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-danger .tabs.is-boxed li.is-active a,.hero.is-danger .tabs.is-boxed li.is-active a:hover,.hero.is-danger .tabs.is-toggle li.is-active a,.hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#da0b00}.hero.is-danger.is-bold{background-image:linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%)}@media screen and (max-width: 768px){.hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%)}}.hero.is-small .hero-body,#documenter .docs-sidebar form.docs-search>input.hero .hero-body{padding-bottom:1.5rem;padding-top:1.5rem}@media screen and (min-width: 769px),print{.hero.is-medium .hero-body{padding-bottom:9rem;padding-top:9rem}}@media screen and (min-width: 769px),print{.hero.is-large .hero-body{padding-bottom:18rem;padding-top:18rem}}.hero.is-halfheight .hero-body,.hero.is-fullheight .hero-body,.hero.is-fullheight-with-navbar .hero-body{align-items:center;display:flex}.hero.is-halfheight .hero-body>.container,.hero.is-fullheight .hero-body>.container,.hero.is-fullheight-with-navbar .hero-body>.container{flex-grow:1;flex-shrink:1}.hero.is-halfheight{min-height:50vh}.hero.is-fullheight{min-height:100vh}.hero-video{overflow:hidden}.hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%, -50%, 0)}.hero-video.is-transparent{opacity:0.3}@media screen and (max-width: 768px){.hero-video{display:none}}.hero-buttons{margin-top:1.5rem}@media screen and (max-width: 768px){.hero-buttons .button{display:flex}.hero-buttons .button:not(:last-child){margin-bottom:0.75rem}}@media screen and (min-width: 769px),print{.hero-buttons{display:flex;justify-content:center}.hero-buttons .button:not(:last-child){margin-right:1.5rem}}.hero-head,.hero-foot{flex-grow:0;flex-shrink:0}.hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}.section{padding:3rem 1.5rem}@media screen and (min-width: 1056px){.section.is-medium{padding:9rem 1.5rem}.section.is-large{padding:18rem 1.5rem}}.footer{background-color:#fafafa;padding:3rem 1.5rem 6rem}h1 .docs-heading-anchor,h1 .docs-heading-anchor:hover,h1 .docs-heading-anchor:visited,h2 .docs-heading-anchor,h2 .docs-heading-anchor:hover,h2 .docs-heading-anchor:visited,h3 .docs-heading-anchor,h3 .docs-heading-anchor:hover,h3 .docs-heading-anchor:visited,h4 .docs-heading-anchor,h4 .docs-heading-anchor:hover,h4 .docs-heading-anchor:visited,h5 .docs-heading-anchor,h5 .docs-heading-anchor:hover,h5 .docs-heading-anchor:visited,h6 .docs-heading-anchor,h6 .docs-heading-anchor:hover,h6 .docs-heading-anchor:visited{color:#222}h1 .docs-heading-anchor-permalink,h2 .docs-heading-anchor-permalink,h3 .docs-heading-anchor-permalink,h4 .docs-heading-anchor-permalink,h5 .docs-heading-anchor-permalink,h6 .docs-heading-anchor-permalink{visibility:hidden;vertical-align:middle;margin-left:0.5em;font-size:0.7rem}h1 .docs-heading-anchor-permalink::before,h2 .docs-heading-anchor-permalink::before,h3 .docs-heading-anchor-permalink::before,h4 .docs-heading-anchor-permalink::before,h5 .docs-heading-anchor-permalink::before,h6 .docs-heading-anchor-permalink::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f0c1"}h1:hover .docs-heading-anchor-permalink,h2:hover .docs-heading-anchor-permalink,h3:hover .docs-heading-anchor-permalink,h4:hover .docs-heading-anchor-permalink,h5:hover .docs-heading-anchor-permalink,h6:hover .docs-heading-anchor-permalink{visibility:visible}.docs-dark-only{display:none !important}pre{position:relative;overflow:hidden}pre code,pre code.hljs{padding:0 .75rem !important;overflow:auto;display:block}pre code:first-of-type,pre code.hljs:first-of-type{padding-top:0.5rem !important}pre code:last-of-type,pre code.hljs:last-of-type{padding-bottom:0.5rem !important}pre .copy-button{opacity:0.2;transition:opacity 0.2s;position:absolute;right:0em;top:0em;padding:0.5em;width:2.5em;height:2.5em;background:transparent;border:none;font-family:"Font Awesome 5 Free";color:#222;cursor:pointer;text-align:center}pre .copy-button:focus,pre .copy-button:hover{opacity:1;background:rgba(34,34,34,0.1);color:#2e63b8}pre .copy-button.success{color:#259a12;opacity:1}pre .copy-button.error{color:#cb3c33;opacity:1}pre:hover .copy-button{opacity:1}.admonition{background-color:#b5b5b5;border-style:solid;border-width:1px;border-color:#363636;border-radius:4px;font-size:1rem}.admonition strong{color:currentColor}.admonition.is-small,#documenter .docs-sidebar form.docs-search>input.admonition{font-size:.75rem}.admonition.is-medium{font-size:1.25rem}.admonition.is-large{font-size:1.5rem}.admonition.is-default{background-color:#b5b5b5;border-color:#363636}.admonition.is-default>.admonition-header{background-color:#363636;color:#fff}.admonition.is-default>.admonition-body{color:#fff}.admonition.is-info{background-color:#def0fc;border-color:#209cee}.admonition.is-info>.admonition-header{background-color:#209cee;color:#fff}.admonition.is-info>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-success{background-color:#bdf4d1;border-color:#22c35b}.admonition.is-success>.admonition-header{background-color:#22c35b;color:#fff}.admonition.is-success>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-warning{background-color:#fff3c5;border-color:#ffdd57}.admonition.is-warning>.admonition-header{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.admonition.is-warning>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-danger{background-color:#ffaba7;border-color:#da0b00}.admonition.is-danger>.admonition-header{background-color:#da0b00;color:#fff}.admonition.is-danger>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-compat{background-color:#bdeff5;border-color:#1db5c9}.admonition.is-compat>.admonition-header{background-color:#1db5c9;color:#fff}.admonition.is-compat>.admonition-body{color:rgba(0,0,0,0.7)}.admonition-header{color:#fff;background-color:#363636;align-items:center;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.5rem .75rem;position:relative}.admonition-header:before{font-family:"Font Awesome 5 Free";font-weight:900;margin-right:.75rem;content:"\f06a"}.admonition-body{color:#222;padding:0.5rem .75rem}.admonition-body pre{background-color:#f5f5f5}.admonition-body code{background-color:rgba(0,0,0,0.05)}.docstring{margin-bottom:1em;background-color:rgba(0,0,0,0);border:1px solid #dbdbdb;box-shadow:2px 2px 3px rgba(10,10,10,0.1);max-width:100%}.docstring>header{display:flex;flex-grow:1;align-items:stretch;padding:0.5rem .75rem;background-color:#f5f5f5;box-shadow:0 1px 2px rgba(10,10,10,0.1);box-shadow:none;border-bottom:1px solid #dbdbdb}.docstring>header code{background-color:transparent}.docstring>header .docstring-binding{margin-right:0.3em}.docstring>header .docstring-category{margin-left:0.3em}.docstring>section{position:relative;padding:.75rem .75rem;border-bottom:1px solid #dbdbdb}.docstring>section:last-child{border-bottom:none}.docstring>section>a.docs-sourcelink{transition:opacity 0.3s;opacity:0;position:absolute;right:.375rem;bottom:.375rem}.docstring>section>a.docs-sourcelink:focus{opacity:1 !important}.docstring:hover>section>a.docs-sourcelink{opacity:0.2}.docstring:focus-within>section>a.docs-sourcelink{opacity:0.2}.docstring>section:hover a.docs-sourcelink{opacity:1}.documenter-example-output{background-color:#fff}.outdated-warning-overlay{position:fixed;top:0;left:0;right:0;box-shadow:0 0 10px rgba(0,0,0,0.3);z-index:999;background-color:#ffaba7;color:rgba(0,0,0,0.7);border-bottom:3px solid #da0b00;padding:10px 35px;text-align:center;font-size:15px}.outdated-warning-overlay .outdated-warning-closer{position:absolute;top:calc(50% - 10px);right:18px;cursor:pointer;width:12px}.outdated-warning-overlay a{color:#2e63b8}.outdated-warning-overlay a:hover{color:#363636}.content pre{border:1px solid #dbdbdb}.content code{font-weight:inherit}.content a code{color:#2e63b8}.content h1 code,.content h2 code,.content h3 code,.content h4 code,.content h5 code,.content h6 code{color:#222}.content table{display:block;width:initial;max-width:100%;overflow-x:auto}.content blockquote>ul:first-child,.content blockquote>ol:first-child,.content .admonition-body>ul:first-child,.content .admonition-body>ol:first-child{margin-top:0}pre,code{font-variant-ligatures:no-contextual}.breadcrumb a.is-disabled{cursor:default;pointer-events:none}.breadcrumb a.is-disabled,.breadcrumb a.is-disabled:hover{color:#222}.hljs{background:initial !important}.katex .katex-mathml{top:0;right:0}.katex-display,mjx-container,.MathJax_Display{margin:0.5em 0 !important}html{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto}li.no-marker{list-style:none}#documenter .docs-main>article{overflow-wrap:break-word}#documenter .docs-main>article .math-container{overflow-x:auto;overflow-y:hidden}@media screen and (min-width: 1056px){#documenter .docs-main{max-width:52rem;margin-left:20rem;padding-right:1rem}}@media screen and (max-width: 1055px){#documenter .docs-main{width:100%}#documenter .docs-main>article{max-width:52rem;margin-left:auto;margin-right:auto;margin-bottom:1rem;padding:0 1rem}#documenter .docs-main>header,#documenter .docs-main>nav{max-width:100%;width:100%;margin:0}}#documenter .docs-main header.docs-navbar{background-color:#fff;border-bottom:1px solid #dbdbdb;z-index:2;min-height:4rem;margin-bottom:1rem;display:flex}#documenter .docs-main header.docs-navbar .breadcrumb{flex-grow:1}#documenter .docs-main header.docs-navbar .docs-right{display:flex;white-space:nowrap}#documenter .docs-main header.docs-navbar .docs-right .docs-icon,#documenter .docs-main header.docs-navbar .docs-right .docs-label,#documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{display:inline-block}#documenter .docs-main header.docs-navbar .docs-right .docs-label{padding:0;margin-left:0.3em}#documenter .docs-main header.docs-navbar .docs-right .docs-settings-button{margin:auto 0 auto 1rem}#documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{font-size:1.5rem;margin:auto 0 auto 1rem}#documenter .docs-main header.docs-navbar>*{margin:auto 0}@media screen and (max-width: 1055px){#documenter .docs-main header.docs-navbar{position:sticky;top:0;padding:0 1rem;transition-property:top, box-shadow;-webkit-transition-property:top, box-shadow;transition-duration:0.3s;-webkit-transition-duration:0.3s}#documenter .docs-main header.docs-navbar.headroom--not-top{box-shadow:.2rem 0rem .4rem #bbb;transition-duration:0.7s;-webkit-transition-duration:0.7s}#documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom{top:-4.5rem;transition-duration:0.7s;-webkit-transition-duration:0.7s}}#documenter .docs-main section.footnotes{border-top:1px solid #dbdbdb}#documenter .docs-main section.footnotes li .tag:first-child,#documenter .docs-main section.footnotes li .docstring>section>a.docs-sourcelink:first-child,#documenter .docs-main section.footnotes li .content kbd:first-child,.content #documenter .docs-main section.footnotes li kbd:first-child{margin-right:1em;margin-bottom:0.4em}#documenter .docs-main .docs-footer{display:flex;flex-wrap:wrap;margin-left:0;margin-right:0;border-top:1px solid #dbdbdb;padding-top:1rem;padding-bottom:1rem}@media screen and (max-width: 1055px){#documenter .docs-main .docs-footer{padding-left:1rem;padding-right:1rem}}#documenter .docs-main .docs-footer .docs-footer-nextpage,#documenter .docs-main .docs-footer .docs-footer-prevpage{flex-grow:1}#documenter .docs-main .docs-footer .docs-footer-nextpage{text-align:right}#documenter .docs-main .docs-footer .flexbox-break{flex-basis:100%;height:0}#documenter .docs-main .docs-footer .footer-message{font-size:0.8em;margin:0.5em auto 0 auto;text-align:center}#documenter .docs-sidebar{display:flex;flex-direction:column;color:#0a0a0a;background-color:#f5f5f5;border-right:1px solid #dbdbdb;padding:0;flex:0 0 18rem;z-index:5;font-size:1rem;position:fixed;left:-18rem;width:18rem;height:100%;transition:left 0.3s}#documenter .docs-sidebar.visible{left:0;box-shadow:.4rem 0rem .8rem #bbb}@media screen and (min-width: 1056px){#documenter .docs-sidebar.visible{box-shadow:none}}@media screen and (min-width: 1056px){#documenter .docs-sidebar{left:0;top:0}}#documenter .docs-sidebar .docs-logo{margin-top:1rem;padding:0 1rem}#documenter .docs-sidebar .docs-logo>img{max-height:6rem;margin:auto}#documenter .docs-sidebar .docs-package-name{flex-shrink:0;font-size:1.5rem;font-weight:700;text-align:center;white-space:nowrap;overflow:hidden;padding:0.5rem 0}#documenter .docs-sidebar .docs-package-name .docs-autofit{max-width:16.2rem}#documenter .docs-sidebar .docs-package-name a,#documenter .docs-sidebar .docs-package-name a:hover{color:#0a0a0a}#documenter .docs-sidebar .docs-version-selector{border-top:1px solid #dbdbdb;display:none;padding:0.5rem}#documenter .docs-sidebar .docs-version-selector.visible{display:flex}#documenter .docs-sidebar ul.docs-menu{flex-grow:1;user-select:none;border-top:1px solid #dbdbdb;padding-bottom:1.5rem}#documenter .docs-sidebar ul.docs-menu>li>.tocitem{font-weight:bold}#documenter .docs-sidebar ul.docs-menu>li li{font-size:.95rem;margin-left:1em;border-left:1px solid #dbdbdb}#documenter .docs-sidebar ul.docs-menu input.collapse-toggle{display:none}#documenter .docs-sidebar ul.docs-menu ul.collapsed{display:none}#documenter .docs-sidebar ul.docs-menu input:checked~ul.collapsed{display:block}#documenter .docs-sidebar ul.docs-menu label.tocitem{display:flex}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label{flex-grow:2}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;font-size:.75rem;margin-left:1rem;margin-top:auto;margin-bottom:auto}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f054"}#documenter .docs-sidebar ul.docs-menu input:checked~label.tocitem .docs-chevron::before{content:"\f078"}#documenter .docs-sidebar ul.docs-menu .tocitem{display:block;padding:0.5rem 0.5rem}#documenter .docs-sidebar ul.docs-menu .tocitem,#documenter .docs-sidebar ul.docs-menu .tocitem:hover{color:#0a0a0a;background:#f5f5f5}#documenter .docs-sidebar ul.docs-menu a.tocitem:hover,#documenter .docs-sidebar ul.docs-menu label.tocitem:hover{color:#0a0a0a;background-color:#ebebeb}#documenter .docs-sidebar ul.docs-menu li.is-active{border-top:1px solid #dbdbdb;border-bottom:1px solid #dbdbdb;background-color:#fff}#documenter .docs-sidebar ul.docs-menu li.is-active .tocitem,#documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover{background-color:#fff;color:#0a0a0a}#documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover{background-color:#ebebeb;color:#0a0a0a}#documenter .docs-sidebar ul.docs-menu>li.is-active:first-child{border-top:none}#documenter .docs-sidebar ul.docs-menu ul.internal{margin:0 0.5rem 0.5rem;border-top:1px solid #dbdbdb}#documenter .docs-sidebar ul.docs-menu ul.internal li{font-size:.85rem;border-left:none;margin-left:0;margin-top:0.5rem}#documenter .docs-sidebar ul.docs-menu ul.internal .tocitem{width:100%;padding:0}#documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before{content:"⚬";margin-right:0.4em}#documenter .docs-sidebar form.docs-search{margin:auto;margin-top:0.5rem;margin-bottom:0.5rem}#documenter .docs-sidebar form.docs-search>input{width:14.4rem}@media screen and (min-width: 1056px){#documenter .docs-sidebar ul.docs-menu{overflow-y:auto;-webkit-overflow-scroll:touch}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar{width:.3rem;background:none}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#e0e0e0}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover{background:#ccc}}@media screen and (max-width: 1055px){#documenter .docs-sidebar{overflow-y:auto;-webkit-overflow-scroll:touch}#documenter .docs-sidebar::-webkit-scrollbar{width:.3rem;background:none}#documenter .docs-sidebar::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#e0e0e0}#documenter .docs-sidebar::-webkit-scrollbar-thumb:hover{background:#ccc}}#documenter .docs-main #documenter-search-info{margin-bottom:1rem}#documenter .docs-main #documenter-search-results{list-style-type:circle;list-style-position:outside}#documenter .docs-main #documenter-search-results li{margin-left:2rem}#documenter .docs-main #documenter-search-results .docs-highlight{background-color:yellow}.ansi span.sgr1{font-weight:bolder}.ansi span.sgr2{font-weight:lighter}.ansi span.sgr3{font-style:italic}.ansi span.sgr4{text-decoration:underline}.ansi span.sgr7{color:#fff;background-color:#222}.ansi span.sgr8{color:transparent}.ansi span.sgr8 span{color:transparent}.ansi span.sgr9{text-decoration:line-through}.ansi span.sgr30{color:#242424}.ansi span.sgr31{color:#a7201f}.ansi span.sgr32{color:#066f00}.ansi span.sgr33{color:#856b00}.ansi span.sgr34{color:#2149b0}.ansi span.sgr35{color:#7d4498}.ansi span.sgr36{color:#007989}.ansi span.sgr37{color:gray}.ansi span.sgr40{background-color:#242424}.ansi span.sgr41{background-color:#a7201f}.ansi span.sgr42{background-color:#066f00}.ansi span.sgr43{background-color:#856b00}.ansi span.sgr44{background-color:#2149b0}.ansi span.sgr45{background-color:#7d4498}.ansi span.sgr46{background-color:#007989}.ansi span.sgr47{background-color:gray}.ansi span.sgr90{color:#616161}.ansi span.sgr91{color:#cb3c33}.ansi span.sgr92{color:#0e8300}.ansi span.sgr93{color:#a98800}.ansi span.sgr94{color:#3c5dcd}.ansi span.sgr95{color:#9256af}.ansi span.sgr96{color:#008fa3}.ansi span.sgr97{color:#f5f5f5}.ansi span.sgr100{background-color:#616161}.ansi span.sgr101{background-color:#cb3c33}.ansi span.sgr102{background-color:#0e8300}.ansi span.sgr103{background-color:#a98800}.ansi span.sgr104{background-color:#3c5dcd}.ansi span.sgr105{background-color:#9256af}.ansi span.sgr106{background-color:#008fa3}.ansi span.sgr107{background-color:#f5f5f5}code.language-julia-repl>span.hljs-meta{color:#066f00;font-weight:bolder}/*! + Theme: Default + Description: Original highlight.js style + Author: (c) Ivan Sagalaev + Maintainer: @highlightjs/core-team + Website: https://highlightjs.org/ + License: see project LICENSE + Touched: 2021 +*/pre code.hljs{display:block;overflow-x:auto}code.hljs{padding:3px 5px}.hljs{background:#F0F0F0;color:#444}.hljs-comment{color:#888888}.hljs-tag,.hljs-punctuation{color:#444a}.hljs-tag .hljs-name,.hljs-tag .hljs-attr{color:#444}.hljs-keyword,.hljs-attribute,.hljs-selector-tag,.hljs-meta .hljs-keyword,.hljs-doctag,.hljs-name{font-weight:bold}.hljs-type,.hljs-string,.hljs-number,.hljs-selector-id,.hljs-selector-class,.hljs-quote,.hljs-template-tag,.hljs-deletion{color:#880000}.hljs-title,.hljs-section{color:#880000;font-weight:bold}.hljs-regexp,.hljs-symbol,.hljs-variable,.hljs-template-variable,.hljs-link,.hljs-selector-attr,.hljs-operator,.hljs-selector-pseudo{color:#BC6060}.hljs-literal{color:#78A960}.hljs-built_in,.hljs-bullet,.hljs-code,.hljs-addition{color:#397300}.hljs-meta{color:#1f7199}.hljs-meta .hljs-string{color:#4d99bf}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:bold} diff --git a/v0.10.59/assets/themeswap.js b/v0.10.59/assets/themeswap.js new file mode 100644 index 000000000..c58e993e3 --- /dev/null +++ b/v0.10.59/assets/themeswap.js @@ -0,0 +1,66 @@ +// Small function to quickly swap out themes. Gets put into the tag.. +function set_theme_from_local_storage() { + // Intialize the theme to null, which means default + var theme = null; + // If the browser supports the localstorage and is not disabled then try to get the + // documenter theme + if(window.localStorage != null) { + // Get the user-picked theme from localStorage. May be `null`, which means the default + // theme. + theme = window.localStorage.getItem("documenter-theme"); + } + // Check if the browser supports user color preference + var darkPreference = false; + // Check if the users preference is for dark color scheme + if(window.matchMedia('(prefers-color-scheme: dark)').matches === true) { + darkPreference = true; + } + // Initialize a few variables for the loop: + // + // - active: will contain the index of the theme that should be active. Note that there + // is no guarantee that localStorage contains sane values. If `active` stays `null` + // we either could not find the theme or it is the default (primary) theme anyway. + // Either way, we then need to stick to the primary theme. + // + // - disabled: style sheets that should be disabled (i.e. all the theme style sheets + // that are not the currently active theme) + var active = null; var disabled = []; var darkTheme = null; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + // The tag of each style sheet is expected to have a data-theme-name attribute + // which must contain the name of the theme. The names in localStorage much match this. + var themename = ss.ownerNode.getAttribute("data-theme-name"); + // attribute not set => non-theme stylesheet => ignore + if(themename === null) continue; + // To distinguish the default (primary) theme, it needs to have the data-theme-primary + // attribute set. + var isprimary = (ss.ownerNode.getAttribute("data-theme-primary") !== null); + // Check if the theme is primary dark theme + var isDarkTheme = (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null); + // If ss is for dark theme then set the value of darkTheme to the name of the theme + if(isDarkTheme) darkTheme = themename; + // If we find a matching theme (and it's not the default), we'll set active to non-null + if(themename === theme) active = i; + // Store the style sheets of inactive themes so that we could disable them + if(themename !== theme) disabled.push(ss); + } + if(active !== null) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + theme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + else if(darkTheme !== null && darkPreference === true) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + darkTheme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + if (ss.ownerNode.getAttribute("data-theme-name") !== darkTheme) { + ss.disabled = true; + } + }); + } +} +set_theme_from_local_storage(); diff --git a/v0.10.59/assets/warner.js b/v0.10.59/assets/warner.js new file mode 100644 index 000000000..5531c8851 --- /dev/null +++ b/v0.10.59/assets/warner.js @@ -0,0 +1,49 @@ +function maybeAddWarning () { + // DOCUMENTER_NEWEST is defined in versions.js, DOCUMENTER_CURRENT_VERSION and DOCUMENTER_STABLE + // in siteinfo.js. + // If either of these are undefined something went horribly wrong, so we abort. + if ( + window.DOCUMENTER_NEWEST === undefined || + window.DOCUMENTER_CURRENT_VERSION === undefined || + window.DOCUMENTER_STABLE === undefined + ) { + return + }; + + // Current version is not a version number, so we can't tell if it's the newest version. Abort. + if (!/v(\d+\.)*\d+/.test(window.DOCUMENTER_CURRENT_VERSION)) { + return + }; + + // Current version is newest version, so no need to add a warning. + if (window.DOCUMENTER_NEWEST === window.DOCUMENTER_CURRENT_VERSION) { + return + }; + + // Add a noindex meta tag (unless one exists) so that search engines don't index this version of the docs. + if (document.body.querySelector('meta[name="robots"]') === null) { + const meta = document.createElement('meta'); + meta.name = 'robots'; + meta.content = 'noindex'; + + document.getElementsByTagName('head')[0].appendChild(meta); + }; + + const div = document.createElement('div'); + div.classList.add('outdated-warning-overlay'); + const closer = document.createElement('button'); + closer.classList.add('outdated-warning-closer', 'delete'); + closer.addEventListener('click', function () { + document.body.removeChild(div); + }); + const href = window.documenterBaseURL + '/../' + window.DOCUMENTER_STABLE; + div.innerHTML = 'This documentation is not for the latest stable release, but for either the development version or an older release.
    Click here to go to the documentation for the latest stable release.'; + div.appendChild(closer); + document.body.appendChild(div); +}; + +if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', maybeAddWarning); +} else { + maybeAddWarning(); +}; diff --git a/v0.10.59/create_kernel/index.html b/v0.10.59/create_kernel/index.html new file mode 100644 index 000000000..c8467721e --- /dev/null +++ b/v0.10.59/create_kernel/index.html @@ -0,0 +1,26 @@ + +Custom Kernels · KernelFunctions.jl

    Custom Kernels

    Creating your own kernel

    KernelFunctions.jl contains the most popular kernels already but you might want to make your own!

    Here are a few ways depending on how complicated your kernel is:

    SimpleKernel for kernel functions depending on a metric

    If your kernel function is of the form k(x, y) = f(d(x, y)) where d(x, y) is a PreMetric, you can construct your custom kernel by defining kappa and metric for your kernel. Here is for example how one can define the SqExponentialKernel again:

    struct MyKernel <: KernelFunctions.SimpleKernel end
    +
    +KernelFunctions.kappa(::MyKernel, d2::Real) = exp(-d2)
    +KernelFunctions.metric(::MyKernel) = SqEuclidean()

    Kernel for more complex kernels

    If your kernel does not satisfy such a representation, all you need to do is define (k::MyKernel)(x, y) and inherit from Kernel. For example, we recreate here the NeuralNetworkKernel:

    struct MyKernel <: KernelFunctions.Kernel end
    +
    +(::MyKernel)(x, y) = asin(dot(x, y) / sqrt((1 + sum(abs2, x)) * (1 + sum(abs2, y))))

    Note that the fallback implementation of the base Kernel evaluation does not use Distances.jl and can therefore be a bit slower.

    Additional Options

    Finally there are additional functions you can define to bring in more features:

    • KernelFunctions.iskroncompatible(k::MyKernel): if your kernel factorizes in dimensions, you can declare your kernel as iskroncompatible(k) = true to use Kronecker methods.
    • KernelFunctions.dim(x::MyDataType): by default the dimension of the inputs will only be checked for vectors of type AbstractVector{<:Real}. If you want to check the dimensionality of your inputs, dispatch the dim function on your datatype. Note that 0 is the default.
    • dim is called within KernelFunctions.validate_inputs(x::MyDataType, y::MyDataType), which can instead be directly overloaded if you want to run special checks for your input types.
    • kernelmatrix(k::MyKernel, ...): you can redefine the diverse kernelmatrix functions to eventually optimize the computations.
    • Base.print(io::IO, k::MyKernel): if you want to specialize the printing of your kernel.

    KernelFunctions uses Functors.jl for specifying trainable kernel parameters in a way that is compatible with the Flux ML framework. You can use Functors.@functor if all fields of your kernel struct are trainable. Note that optimization algorithms in Flux are not compatible with scalar parameters (yet), and hence vector-valued parameters should be preferred.

    import Functors
    +
    +struct MyKernel{T} <: KernelFunctions.Kernel
    +    a::Vector{T}
    +end
    +
    +Functors.@functor MyKernel

    If only a subset of the fields are trainable, you have to specify explicitly how to (re)construct the kernel with modified parameter values by implementing Functors.functor(::Type{<:MyKernel}, x) for your kernel struct:

    import Functors
    +
    +struct MyKernel{T} <: KernelFunctions.Kernel
    +    n::Int
    +    a::Vector{T}
    +end
    +
    +function Functors.functor(::Type{<:MyKernel}, x::MyKernel)
    +    function reconstruct_mykernel(xs)
    +        # keep field `n` of the original kernel and set `a` to (possibly different) `xs.a`
    +        return MyKernel(x.n, xs.a)
    +    end
    +    return (a = x.a,), reconstruct_mykernel
    +end
    diff --git a/v0.10.59/design/index.html b/v0.10.59/design/index.html new file mode 100644 index 000000000..5579d176d --- /dev/null +++ b/v0.10.59/design/index.html @@ -0,0 +1,7 @@ + +Design · KernelFunctions.jl

    Design

    Why AbstractVectors Everywhere?

    To understand the advantages of using AbstractVectors everywhere to represent collections of inputs, first consider the following properties that it is desirable for a collection of inputs to satisfy.

    Unique Ordering

    There must be a clearly-defined first, second, etc element of an input collection. If this were not the case, it would not be possible to determine a unique mapping between a collection of inputs and the output of kernelmatrix, as it would not be clear what order the rows and columns of the output should appear in.

    Moreover, ordering guarantees that if you permute the collection of inputs, the ordering of the rows and columns of the kernelmatrix are correspondingly permuted.

    Generality

    There must be no restriction on the domain of the input. Collections of Reals, vectors, graphs, finite-dimensional domains, or really anything else that you fancy should be straightforwardly representable. Moreover, whichever input class is chosen should not prevent optimal performance from being obtained.

    Unambiguously-Defined Length

    Knowing the length of a collection of inputs is important. For example, a well-defined length guarantees that the size of the output of kernelmatrix, and related functions, are predictable. It also makes it possible to perform internal error-checking that ensures that e.g. there are the same number of inputs in two collections of inputs.

    AbstractMatrices Do Not Cut It

    Notably, while AbstractMatrix objects are often used to represent collections of vector-valued inputs, they do not immediately satisfy these properties as it is unclear whether a matrix of size P x Q represents a collection of P Q-dimensional inputs (each row is an input), or Q P-dimensional inputs (each column is an input).

    Moreover, they occasionally add some aesthetic inconvenience. For example, a collection of Real-valued inputs, which might be straightforwardly represented as an AbstractVector{<:Real}, must be reshaped into a matrix.

    There are two commonly used ways to partly resolve these shortcomings:

    Resolution 1: Specify a Convention

    One way that these shortcomings can be partly resolved is by specifying a convention that everyone adheres to regarding the interpretation of rows vs columns. However, opinions about the choice of convention are often surprisingly strongly held, and users regularly have to remind themselves which convention has been chosen. While this resolves the ordering problem, and in principle defines the "length" of a collection of inputs, AbstractMatrixs already have a length defined in Julia, which would generally disagree with our internal notion of length. This isn't a show-stopper, but it isn't an especially clean situation.

    There is also the opportunity for some kinds of silent bugs. For example, if an input matrix happens to be square because the number of input dimensions is the same as the number of inputs, it would be hard to know whether the correct kernelmatrix has been computed. This kind of bug seems unlikely, but it exists regardless.

    Finally, suppose that your inputs are some type T that is not simply a vector of real numbers, say a graph. In this situation, how should a collection of inputs be represented? A N x 1 or 1 x N matrix is the only obvious candidate, but the additional singular dimension seems somewhat redundant.

    Resolution 2: Always Specify An obsdim Argument

    Another way to partly resolve these problems is to not commit to a convention, and instead to propagate some additional information through the codebase that specifies how the input data is to be interpreted. For example, a kernel k that represents the sum of two other kernels might implement kernelmatrix as follows:

    function kernelmatrix(k::KernelSum, x::AbstractMatrix; obsdim=1)
    +    return kernelmatrix(k.kernels[1], x; obsdim=obsdim) +
    +        kernelmatrix(k.kernels[2], x; obsdim=obsdim)
    +end

    While this prevents this package from having to pre-specify a convention, it doesn't resolve the length issue, or the issue of representing collections of inputs which aren't immediately represented as vectors. Moreover, it complicates the internals; in contrast, consider what this function looks like with an AbstractVector:

    function kernelmatrix(k::KernelSum, x::AbstractVector)
    +    return kernelmatrix(k.kernels[1], x) + kernelmatrix(k.kernels[2], x)
    +end

    This code is clearer (less visual noise), and has removed a possible bug – if the implementer of kernelmatrix forgets to pass the obsdim kwarg into each subsequent kernelmatrix call, it's possible to get the wrong answer.

    This being said, we do support matrix-valued inputs – see Why We Have Support for Both.

    AbstractVectors

    Requiring all collections of inputs to be AbstractVectors resolves all of these problems, and ensures that the data is self-describing to the extent that KernelFunctions.jl requires.

    Firstly, the question of how to interpret the columns and rows of a matrix of inputs is resolved. Users must wrap matrices which represent collections of inputs in either a ColVecs or RowVecs, both of which have clearly defined semantics which are hard to confuse.

    By design, there is also no discrepancy between the number of inputs in the collection, and the length function – the length of a ColVecs, RowVecs, or Vector{<:Real} is equal to the number of inputs.

    There is no loss of performance.

    A collection of N Real-valued inputs can be represented by an AbstractVector{<:Real} of length N, rather than needing to use an AbstractMatrix{<:Real} of size either N x 1 or 1 x N. The same can be said for any other input type T, and new subtypes of AbstractVector can be added if particularly efficient ways exist to store collections of inputs of type T. A good example of this in practice is using Tuple{S, Int}, for some input type S, as the Inputs for Multiple Outputs.

    This approach can also lead to clearer user code. A user need only wrap their inputs in a ColVecs or RowVecs once in their code, and this specification is automatically re-used everywhere in their code. In this sense, it is straightforward to write code in such a way that there is one unique source of "truth" about the way in which a particular data set should be interpreted. Conversely, the obsdim resolution requires that the obsdim keyword argument is passed around with the data every single time that you use it.

    The benefits of the AbstractVector approach are likely most strongly felt when writing a substantial amount of code on top of KernelFunctions.jl – in the same way that using AbstractVectors inside KernelFunctions.jl removes the need for large amounts of keyword argument propagation, the same will be true of other code.

    Why We Have Support for Both

    In short: many people like matrices, and are familiar with obsdim-style keyword arguments.

    All internals are implemented using AbstractVectors though, and the obsdim interface is just a thin layer of utility functionality which sits on top of this. To avoid confusion and silent errors, we do not favour a specific convention (rows or columns) but instead it is necessary to specify the obsdim keyword argument explicitly.

    Kernels for Multiple-Outputs

    There are two equally-valid perspectives on multi-output kernels: they can either be treated as matrix-valued kernels, or standard kernels on an extended input domain. Each of these perspectives are convenient in different circumstances, but the latter greatly simplifies the incorporation of multi-output kernels in KernelFunctions.

    More concretely, let k_mat be a matrix-valued kernel, mapping pairs of inputs of type T to matrices of size P x P to describe the covariance between P outputs. Given inputs x and y of type T, and integers p and q, we can always find an equivalent standard kernel k mapping from pairs of inputs of type Tuple{T, Int} to the Reals as follows:

    k((x, p), (y, q)) = k_mat(x, y)[p, q]

    This ability to treat multi-output kernels as single-output kernels is very helpful, as it means that there is no need to introduce additional concepts into the API of KernelFunctions.jl, just additional kernels! This in turn simplifies downstream code as they don't need to "know" about the existence of multi-output kernels in addition to standard kernels. For example, GP libraries built on top of KernelFunctions.jl just need to know about Kernels, and they get multi-output kernels, and hence multi-output GPs, for free.

    Where there is the need to specialise implementations for multi-output kernels, this is done in an encapsulated manner – parts of KernelFunctions that have nothing to do with multi-output kernels know nothing about the existence of multi-output kernels.

    diff --git a/v0.10.59/examples/gaussian-process-priors/Manifest.toml b/v0.10.59/examples/gaussian-process-priors/Manifest.toml new file mode 100644 index 000000000..a58732fd7 --- /dev/null +++ b/v0.10.59/examples/gaussian-process-priors/Manifest.toml @@ -0,0 +1,1209 @@ +# This file is machine-generated - editing it directly is not advised + +julia_version = "1.9.4" +manifest_format = "2.0" +project_hash = "3f5817959c36abf3cab0a72cc306a1c0e4f6e332" + +[[deps.ArgTools]] +uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" +version = "1.1.1" + +[[deps.Artifacts]] +uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" + +[[deps.Base64]] +uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" + +[[deps.BitFlags]] +git-tree-sha1 = "2dc09997850d68179b69dafb58ae806167a32b1b" +uuid = "d1d4a3ce-64b1-5f1a-9ba4-7e7e69966f35" +version = "0.1.8" + +[[deps.Bzip2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "19a35467a82e236ff51bc17a3a44b69ef35185a2" +uuid = "6e34b625-4abd-537c-b88f-471c36dfa7a0" +version = "1.0.8+0" + +[[deps.Cairo_jll]] +deps = ["Artifacts", "Bzip2_jll", "CompilerSupportLibraries_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "LZO_jll", "Libdl", "Pixman_jll", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"] +git-tree-sha1 = "4b859a208b2397a7a623a03449e4636bdb17bcf2" +uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a" +version = "1.16.1+1" + +[[deps.Calculus]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "f641eb0a4f00c343bbc32346e1217b86f3ce9dad" +uuid = "49dc2e85-a5d0-5ad3-a950-438e2897f1b9" +version = "0.5.1" + +[[deps.ChainRulesCore]] +deps = ["Compat", "LinearAlgebra"] +git-tree-sha1 = "e0af648f0692ec1691b5d094b8724ba1346281cf" +uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" +version = "1.18.0" +weakdeps = ["SparseArrays"] + + [deps.ChainRulesCore.extensions] + ChainRulesCoreSparseArraysExt = "SparseArrays" + +[[deps.CodecZlib]] +deps = ["TranscodingStreams", "Zlib_jll"] +git-tree-sha1 = "cd67fc487743b2f0fd4380d4cbd3a24660d0eec8" +uuid = "944b1d66-785c-5afd-91f1-9de20f533193" +version = "0.7.3" + +[[deps.ColorSchemes]] +deps = ["ColorTypes", "ColorVectorSpace", "Colors", "FixedPointNumbers", "PrecompileTools", "Random"] +git-tree-sha1 = "67c1f244b991cad9b0aa4b7540fb758c2488b129" +uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4" +version = "3.24.0" + +[[deps.ColorTypes]] +deps = ["FixedPointNumbers", "Random"] +git-tree-sha1 = "eb7f0f8307f71fac7c606984ea5fb2817275d6e4" +uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f" +version = "0.11.4" + +[[deps.ColorVectorSpace]] +deps = ["ColorTypes", "FixedPointNumbers", "LinearAlgebra", "Requires", "Statistics", "TensorCore"] +git-tree-sha1 = "a1f44953f2382ebb937d60dafbe2deea4bd23249" +uuid = "c3611d14-8923-5661-9e6a-0046d554d3a4" +version = "0.10.0" +weakdeps = ["SpecialFunctions"] + + [deps.ColorVectorSpace.extensions] + SpecialFunctionsExt = "SpecialFunctions" + +[[deps.Colors]] +deps = ["ColorTypes", "FixedPointNumbers", "Reexport"] +git-tree-sha1 = "fc08e5930ee9a4e03f84bfb5211cb54e7769758a" +uuid = "5ae59095-9a9b-59fe-a467-6f913c188581" +version = "0.12.10" + +[[deps.Compat]] +deps = ["UUIDs"] +git-tree-sha1 = "8a62af3e248a8c4bad6b32cbbe663ae02275e32c" +uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" +version = "4.10.0" +weakdeps = ["Dates", "LinearAlgebra"] + + [deps.Compat.extensions] + CompatLinearAlgebraExt = "LinearAlgebra" + +[[deps.CompilerSupportLibraries_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" +version = "1.0.5+0" + +[[deps.CompositionsBase]] +git-tree-sha1 = "802bb88cd69dfd1509f6670416bd4434015693ad" +uuid = "a33af91c-f02d-484b-be07-31d278c5ca2b" +version = "0.1.2" + + [deps.CompositionsBase.extensions] + CompositionsBaseInverseFunctionsExt = "InverseFunctions" + + [deps.CompositionsBase.weakdeps] + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.ConcurrentUtilities]] +deps = ["Serialization", "Sockets"] +git-tree-sha1 = "8cfa272e8bdedfa88b6aefbbca7c19f1befac519" +uuid = "f0e56b4a-5159-44fe-b623-3e5288b988bb" +version = "2.3.0" + +[[deps.Contour]] +git-tree-sha1 = "d05d9e7b7aedff4e5b51a029dced05cfb6125781" +uuid = "d38c429a-6771-53c6-b99e-75d170b6e991" +version = "0.6.2" + +[[deps.DataAPI]] +git-tree-sha1 = "8da84edb865b0b5b0100c0666a9bc9a0b71c553c" +uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" +version = "1.15.0" + +[[deps.DataStructures]] +deps = ["Compat", "InteractiveUtils", "OrderedCollections"] +git-tree-sha1 = "3dbd312d370723b6bb43ba9d02fc36abade4518d" +uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" +version = "0.18.15" + +[[deps.Dates]] +deps = ["Printf"] +uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" + +[[deps.DelimitedFiles]] +deps = ["Mmap"] +git-tree-sha1 = "9e2f36d3c96a820c678f2f1f1782582fcf685bae" +uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab" +version = "1.9.1" + +[[deps.Distances]] +deps = ["LinearAlgebra", "Statistics", "StatsAPI"] +git-tree-sha1 = "5225c965635d8c21168e32a12954675e7bea1151" +uuid = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7" +version = "0.10.10" +weakdeps = ["ChainRulesCore", "SparseArrays"] + + [deps.Distances.extensions] + DistancesChainRulesCoreExt = "ChainRulesCore" + DistancesSparseArraysExt = "SparseArrays" + +[[deps.Distributions]] +deps = ["FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns"] +git-tree-sha1 = "a6c00f894f24460379cb7136633cef54ac9f6f4a" +uuid = "31c24e10-a181-5473-b8eb-7969acd0382f" +version = "0.25.103" + + [deps.Distributions.extensions] + DistributionsChainRulesCoreExt = "ChainRulesCore" + DistributionsDensityInterfaceExt = "DensityInterface" + DistributionsTestExt = "Test" + + [deps.Distributions.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + DensityInterface = "b429d917-457f-4dbc-8f4c-0cc954292b1d" + Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[[deps.DocStringExtensions]] +deps = ["LibGit2"] +git-tree-sha1 = "2fb1e02f2b635d0845df5d7c167fec4dd739b00d" +uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" +version = "0.9.3" + +[[deps.Downloads]] +deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] +uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6" +version = "1.6.0" + +[[deps.DualNumbers]] +deps = ["Calculus", "NaNMath", "SpecialFunctions"] +git-tree-sha1 = "5837a837389fccf076445fce071c8ddaea35a566" +uuid = "fa6b7ba4-c1ee-5f82-b5fc-ecf0adba8f74" +version = "0.6.8" + +[[deps.EpollShim_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "8e9441ee83492030ace98f9789a654a6d0b1f643" +uuid = "2702e6a9-849d-5ed8-8c21-79e8b8f9ee43" +version = "0.0.20230411+0" + +[[deps.ExceptionUnwrapping]] +deps = ["Test"] +git-tree-sha1 = "e90caa41f5a86296e014e148ee061bd6c3edec96" +uuid = "460bff9d-24e4-43bc-9d9f-a8973cb893f4" +version = "0.1.9" + +[[deps.Expat_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "4558ab818dcceaab612d1bb8c19cee87eda2b83c" +uuid = "2e619515-83b5-522b-bb60-26c02a35a201" +version = "2.5.0+0" + +[[deps.FFMPEG]] +deps = ["FFMPEG_jll"] +git-tree-sha1 = "b57e3acbe22f8484b4b5ff66a7499717fe1a9cc8" +uuid = "c87230d0-a227-11e9-1b43-d7ebe4e7570a" +version = "0.4.1" + +[[deps.FFMPEG_jll]] +deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "JLLWrappers", "LAME_jll", "Libdl", "Ogg_jll", "OpenSSL_jll", "Opus_jll", "PCRE2_jll", "Zlib_jll", "libaom_jll", "libass_jll", "libfdk_aac_jll", "libvorbis_jll", "x264_jll", "x265_jll"] +git-tree-sha1 = "466d45dc38e15794ec7d5d63ec03d776a9aff36e" +uuid = "b22a6f82-2f65-5046-a5b2-351ab43fb4e5" +version = "4.4.4+1" + +[[deps.FileWatching]] +uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" + +[[deps.FillArrays]] +deps = ["LinearAlgebra", "Random"] +git-tree-sha1 = "35f0c0f345bff2c6d636f95fdb136323b5a796ef" +uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" +version = "1.7.0" +weakdeps = ["SparseArrays", "Statistics"] + + [deps.FillArrays.extensions] + FillArraysSparseArraysExt = "SparseArrays" + FillArraysStatisticsExt = "Statistics" + +[[deps.FixedPointNumbers]] +deps = ["Statistics"] +git-tree-sha1 = "335bfdceacc84c5cdf16aadc768aa5ddfc5383cc" +uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93" +version = "0.8.4" + +[[deps.Fontconfig_jll]] +deps = ["Artifacts", "Bzip2_jll", "Expat_jll", "FreeType2_jll", "JLLWrappers", "Libdl", "Libuuid_jll", "Pkg", "Zlib_jll"] +git-tree-sha1 = "21efd19106a55620a188615da6d3d06cd7f6ee03" +uuid = "a3f928ae-7b40-5064-980b-68af3947d34b" +version = "2.13.93+0" + +[[deps.Formatting]] +deps = ["Printf"] +git-tree-sha1 = "8339d61043228fdd3eb658d86c926cb282ae72a8" +uuid = "59287772-0a20-5a39-b81b-1366585eb4c0" +version = "0.4.2" + +[[deps.FreeType2_jll]] +deps = ["Artifacts", "Bzip2_jll", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "d8db6a5a2fe1381c1ea4ef2cab7c69c2de7f9ea0" +uuid = "d7e528f0-a631-5988-bf34-fe36492bcfd7" +version = "2.13.1+0" + +[[deps.FriBidi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "aa31987c2ba8704e23c6c8ba8a4f769d5d7e4f91" +uuid = "559328eb-81f9-559d-9380-de523a88c83c" +version = "1.0.10+0" + +[[deps.Functors]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "9a68d75d466ccc1218d0552a8e1631151c569545" +uuid = "d9f16b24-f501-4c13-a1f2-28368ffc5196" +version = "0.4.5" + +[[deps.GLFW_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libglvnd_jll", "Pkg", "Xorg_libXcursor_jll", "Xorg_libXi_jll", "Xorg_libXinerama_jll", "Xorg_libXrandr_jll"] +git-tree-sha1 = "d972031d28c8c8d9d7b41a536ad7bb0c2579caca" +uuid = "0656b61e-2033-5cc2-a64a-77c0f6c09b89" +version = "3.3.8+0" + +[[deps.GR]] +deps = ["Artifacts", "Base64", "DelimitedFiles", "Downloads", "GR_jll", "HTTP", "JSON", "Libdl", "LinearAlgebra", "Pkg", "Preferences", "Printf", "Random", "Serialization", "Sockets", "TOML", "Tar", "Test", "UUIDs", "p7zip_jll"] +git-tree-sha1 = "27442171f28c952804dede8ff72828a96f2bfc1f" +uuid = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71" +version = "0.72.10" + +[[deps.GR_jll]] +deps = ["Artifacts", "Bzip2_jll", "Cairo_jll", "FFMPEG_jll", "Fontconfig_jll", "FreeType2_jll", "GLFW_jll", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Libtiff_jll", "Pixman_jll", "Qt6Base_jll", "Zlib_jll", "libpng_jll"] +git-tree-sha1 = "025d171a2847f616becc0f84c8dc62fe18f0f6dd" +uuid = "d2c73de3-f751-5644-a686-071e5b155ba9" +version = "0.72.10+0" + +[[deps.Gettext_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "XML2_jll"] +git-tree-sha1 = "9b02998aba7bf074d14de89f9d37ca24a1a0b046" +uuid = "78b55507-aeef-58d4-861c-77aaff3498b1" +version = "0.21.0+0" + +[[deps.Glib_jll]] +deps = ["Artifacts", "Gettext_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE2_jll", "Zlib_jll"] +git-tree-sha1 = "e94c92c7bf4819685eb80186d51c43e71d4afa17" +uuid = "7746bdde-850d-59dc-9ae8-88ece973131d" +version = "2.76.5+0" + +[[deps.Graphite2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "344bf40dcab1073aca04aa0df4fb092f920e4011" +uuid = "3b182d85-2403-5c21-9c21-1e1f0cc25472" +version = "1.3.14+0" + +[[deps.Grisu]] +git-tree-sha1 = "53bb909d1151e57e2484c3d1b53e19552b887fb2" +uuid = "42e2da0e-8278-4e71-bc24-59509adca0fe" +version = "1.0.2" + +[[deps.HTTP]] +deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] +git-tree-sha1 = "5eab648309e2e060198b45820af1a37182de3cce" +uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" +version = "1.10.0" + +[[deps.HarfBuzz_jll]] +deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg"] +git-tree-sha1 = "129acf094d168394e80ee1dc4bc06ec835e510a3" +uuid = "2e76f6c2-a576-52d4-95c1-20adfe4de566" +version = "2.8.1+1" + +[[deps.HypergeometricFunctions]] +deps = ["DualNumbers", "LinearAlgebra", "OpenLibm_jll", "SpecialFunctions"] +git-tree-sha1 = "f218fe3736ddf977e0e772bc9a586b2383da2685" +uuid = "34004b35-14d8-5ef3-9330-4cdb6864b03a" +version = "0.3.23" + +[[deps.IOCapture]] +deps = ["Logging", "Random"] +git-tree-sha1 = "d75853a0bdbfb1ac815478bacd89cd27b550ace6" +uuid = "b5f81e59-6552-4d32-b1f0-c071b021bf89" +version = "0.2.3" + +[[deps.InteractiveUtils]] +deps = ["Markdown"] +uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" + +[[deps.IrrationalConstants]] +git-tree-sha1 = "630b497eafcc20001bba38a4651b327dcfc491d2" +uuid = "92d709cd-6900-40b7-9082-c6be49f344b6" +version = "0.2.2" + +[[deps.JLFzf]] +deps = ["Pipe", "REPL", "Random", "fzf_jll"] +git-tree-sha1 = "9fb0b890adab1c0a4a475d4210d51f228bfc250d" +uuid = "1019f520-868f-41f5-a6de-eb00f4b6a39c" +version = "0.1.6" + +[[deps.JLLWrappers]] +deps = ["Artifacts", "Preferences"] +git-tree-sha1 = "7e5d6779a1e09a36db2a7b6cff50942a0a7d0fca" +uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" +version = "1.5.0" + +[[deps.JSON]] +deps = ["Dates", "Mmap", "Parsers", "Unicode"] +git-tree-sha1 = "31e996f0a15c7b280ba9f76636b3ff9e2ae58c9a" +uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" +version = "0.21.4" + +[[deps.JpegTurbo_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "6f2675ef130a300a112286de91973805fcc5ffbc" +uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" +version = "2.1.91+0" + +[[deps.KernelFunctions]] +deps = ["ChainRulesCore", "Compat", "CompositionsBase", "Distances", "FillArrays", "Functors", "IrrationalConstants", "LinearAlgebra", "LogExpFunctions", "Random", "Requires", "SpecialFunctions", "Statistics", "StatsBase", "TensorCore", "Test", "ZygoteRules"] +git-tree-sha1 = "2e9c8eb5f2acd58fe7b738affe2ca24da171c904" +repo-rev = "ec19a948f0d43543be1edf24a5ebac6fe3195f5a" +repo-url = "/home/runner/work/KernelFunctions.jl/KernelFunctions.jl" +uuid = "ec8451be-7e33-11e9-00cf-bbf324bd1392" +version = "0.10.59" + +[[deps.LAME_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "f6250b16881adf048549549fba48b1161acdac8c" +uuid = "c1c5ebd0-6772-5130-a774-d5fcae4a789d" +version = "3.100.1+0" + +[[deps.LERC_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "bf36f528eec6634efc60d7ec062008f171071434" +uuid = "88015f11-f218-50d7-93a8-a6af411a945d" +version = "3.0.0+1" + +[[deps.LLVMOpenMP_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "f689897ccbe049adb19a065c495e75f372ecd42b" +uuid = "1d63c593-3942-5779-bab2-d838dc0a180e" +version = "15.0.4+0" + +[[deps.LZO_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "e5b909bcf985c5e2605737d2ce278ed791b89be6" +uuid = "dd4b983a-f0e5-5f8d-a1b7-129d4a5fb1ac" +version = "2.10.1+0" + +[[deps.LaTeXStrings]] +git-tree-sha1 = "50901ebc375ed41dbf8058da26f9de442febbbec" +uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" +version = "1.3.1" + +[[deps.Latexify]] +deps = ["Formatting", "InteractiveUtils", "LaTeXStrings", "MacroTools", "Markdown", "OrderedCollections", "Printf", "Requires"] +git-tree-sha1 = "f428ae552340899a935973270b8d98e5a31c49fe" +uuid = "23fbe1c1-3f47-55db-b15f-69d7ec21a316" +version = "0.16.1" + + [deps.Latexify.extensions] + DataFramesExt = "DataFrames" + SymEngineExt = "SymEngine" + + [deps.Latexify.weakdeps] + DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" + SymEngine = "123dc426-2d89-5057-bbad-38513e3affd8" + +[[deps.LibCURL]] +deps = ["LibCURL_jll", "MozillaCACerts_jll"] +uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21" +version = "0.6.4" + +[[deps.LibCURL_jll]] +deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"] +uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0" +version = "8.4.0+0" + +[[deps.LibGit2]] +deps = ["Base64", "NetworkOptions", "Printf", "SHA"] +uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" + +[[deps.LibSSH2_jll]] +deps = ["Artifacts", "Libdl", "MbedTLS_jll"] +uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8" +version = "1.11.0+1" + +[[deps.Libdl]] +uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" + +[[deps.Libffi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "0b4a5d71f3e5200a7dff793393e09dfc2d874290" +uuid = "e9f186c6-92d2-5b65-8a66-fee21dc1b490" +version = "3.2.2+1" + +[[deps.Libgcrypt_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgpg_error_jll", "Pkg"] +git-tree-sha1 = "64613c82a59c120435c067c2b809fc61cf5166ae" +uuid = "d4300ac3-e22c-5743-9152-c294e39db1e4" +version = "1.8.7+0" + +[[deps.Libglvnd_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll", "Xorg_libXext_jll"] +git-tree-sha1 = "6f73d1dd803986947b2c750138528a999a6c7733" +uuid = "7e76a0d4-f3c7-5321-8279-8d96eeed0f29" +version = "1.6.0+0" + +[[deps.Libgpg_error_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "c333716e46366857753e273ce6a69ee0945a6db9" +uuid = "7add5ba3-2f88-524e-9cd5-f83b8a55f7b8" +version = "1.42.0+0" + +[[deps.Libiconv_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "f9557a255370125b405568f9767d6d195822a175" +uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531" +version = "1.17.0+0" + +[[deps.Libmount_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "9c30530bf0effd46e15e0fdcf2b8636e78cbbd73" +uuid = "4b2f31a3-9ecc-558c-b454-b3730dcb73e9" +version = "2.35.0+0" + +[[deps.Libtiff_jll]] +deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "LERC_jll", "Libdl", "XZ_jll", "Zlib_jll", "Zstd_jll"] +git-tree-sha1 = "2da088d113af58221c52828a80378e16be7d037a" +uuid = "89763e89-9b03-5906-acba-b20f662cd828" +version = "4.5.1+1" + +[[deps.Libuuid_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "7f3efec06033682db852f8b3bc3c1d2b0a0ab066" +uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700" +version = "2.36.0+0" + +[[deps.LinearAlgebra]] +deps = ["Libdl", "OpenBLAS_jll", "libblastrampoline_jll"] +uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" + +[[deps.Literate]] +deps = ["Base64", "IOCapture", "JSON", "REPL"] +git-tree-sha1 = "7cf4b8ca67b6a86a2ad7526bfe514ecd00d944f9" +uuid = "98b081ad-f1c9-55d3-8b20-4c87d4299306" +version = "2.16.0" + +[[deps.LogExpFunctions]] +deps = ["DocStringExtensions", "IrrationalConstants", "LinearAlgebra"] +git-tree-sha1 = "7d6dd4e9212aebaeed356de34ccf262a3cd415aa" +uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688" +version = "0.3.26" + + [deps.LogExpFunctions.extensions] + LogExpFunctionsChainRulesCoreExt = "ChainRulesCore" + LogExpFunctionsChangesOfVariablesExt = "ChangesOfVariables" + LogExpFunctionsInverseFunctionsExt = "InverseFunctions" + + [deps.LogExpFunctions.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + ChangesOfVariables = "9e997f8a-9a97-42d5-a9f1-ce6bfc15e2c0" + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.Logging]] +uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" + +[[deps.LoggingExtras]] +deps = ["Dates", "Logging"] +git-tree-sha1 = "c1dd6d7978c12545b4179fb6153b9250c96b0075" +uuid = "e6f89c97-d47a-5376-807f-9c37f3926c36" +version = "1.0.3" + +[[deps.MacroTools]] +deps = ["Markdown", "Random"] +git-tree-sha1 = "9ee1618cbf5240e6d4e0371d6f24065083f60c48" +uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" +version = "0.5.11" + +[[deps.Markdown]] +deps = ["Base64"] +uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" + +[[deps.MbedTLS]] +deps = ["Dates", "MbedTLS_jll", "MozillaCACerts_jll", "NetworkOptions", "Random", "Sockets"] +git-tree-sha1 = "f512dc13e64e96f703fd92ce617755ee6b5adf0f" +uuid = "739be429-bea8-5141-9913-cc70e7f3736d" +version = "1.1.8" + +[[deps.MbedTLS_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" +version = "2.28.2+0" + +[[deps.Measures]] +git-tree-sha1 = "c13304c81eec1ed3af7fc20e75fb6b26092a1102" +uuid = "442fdcdd-2543-5da2-b0f3-8c86c306513e" +version = "0.3.2" + +[[deps.Missings]] +deps = ["DataAPI"] +git-tree-sha1 = "f66bdc5de519e8f8ae43bdc598782d35a25b1272" +uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28" +version = "1.1.0" + +[[deps.Mmap]] +uuid = "a63ad114-7e13-5084-954f-fe012c677804" + +[[deps.MozillaCACerts_jll]] +uuid = "14a3606d-f60d-562e-9121-12d972cd8159" +version = "2022.10.11" + +[[deps.NaNMath]] +deps = ["OpenLibm_jll"] +git-tree-sha1 = "0877504529a3e5c3343c6f8b4c0381e57e4387e4" +uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" +version = "1.0.2" + +[[deps.NetworkOptions]] +uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" +version = "1.2.0" + +[[deps.Ogg_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "887579a3eb005446d514ab7aeac5d1d027658b8f" +uuid = "e7412a2a-1a6e-54c0-be00-318e2571c051" +version = "1.3.5+1" + +[[deps.OpenBLAS_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] +uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" +version = "0.3.21+4" + +[[deps.OpenLibm_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "05823500-19ac-5b8b-9628-191a04bc5112" +version = "0.8.1+0" + +[[deps.OpenSSL]] +deps = ["BitFlags", "Dates", "MozillaCACerts_jll", "OpenSSL_jll", "Sockets"] +git-tree-sha1 = "51901a49222b09e3743c65b8847687ae5fc78eb2" +uuid = "4d8831e6-92b7-49fb-bdf8-b643e874388c" +version = "1.4.1" + +[[deps.OpenSSL_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "cc6e1927ac521b659af340e0ca45828a3ffc748f" +uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" +version = "3.0.12+0" + +[[deps.OpenSpecFun_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "13652491f6856acfd2db29360e1bbcd4565d04f1" +uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" +version = "0.5.5+0" + +[[deps.Opus_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "51a08fb14ec28da2ec7a927c4337e4332c2a4720" +uuid = "91d4177d-7536-5919-b921-800302f37372" +version = "1.3.2+0" + +[[deps.OrderedCollections]] +git-tree-sha1 = "2e73fe17cac3c62ad1aebe70d44c963c3cfdc3e3" +uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" +version = "1.6.2" + +[[deps.PCRE2_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "efcefdf7-47ab-520b-bdef-62a2eaa19f15" +version = "10.42.0+0" + +[[deps.PDMats]] +deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] +git-tree-sha1 = "f6f85a2edb9c356b829934ad3caed2ad0ebbfc99" +uuid = "90014a1f-27ba-587c-ab20-58faa44d9150" +version = "0.11.29" + +[[deps.Parsers]] +deps = ["Dates", "PrecompileTools", "UUIDs"] +git-tree-sha1 = "a935806434c9d4c506ba941871b327b96d41f2bf" +uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" +version = "2.8.0" + +[[deps.Pipe]] +git-tree-sha1 = "6842804e7867b115ca9de748a0cf6b364523c16d" +uuid = "b98c9c47-44ae-5843-9183-064241ee97a0" +version = "1.3.0" + +[[deps.Pixman_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LLVMOpenMP_jll", "Libdl"] +git-tree-sha1 = "64779bc4c9784fee475689a1752ef4d5747c5e87" +uuid = "30392449-352a-5448-841d-b1acce4e97dc" +version = "0.42.2+0" + +[[deps.Pkg]] +deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"] +uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" +version = "1.9.2" + +[[deps.PlotThemes]] +deps = ["PlotUtils", "Statistics"] +git-tree-sha1 = "1f03a2d339f42dca4a4da149c7e15e9b896ad899" +uuid = "ccf2f8ad-2431-5c83-bf29-c5338b663b6a" +version = "3.1.0" + +[[deps.PlotUtils]] +deps = ["ColorSchemes", "Colors", "Dates", "PrecompileTools", "Printf", "Random", "Reexport", "Statistics"] +git-tree-sha1 = "f92e1315dadf8c46561fb9396e525f7200cdc227" +uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" +version = "1.3.5" + +[[deps.Plots]] +deps = ["Base64", "Contour", "Dates", "Downloads", "FFMPEG", "FixedPointNumbers", "GR", "JLFzf", "JSON", "LaTeXStrings", "Latexify", "LinearAlgebra", "Measures", "NaNMath", "Pkg", "PlotThemes", "PlotUtils", "PrecompileTools", "Preferences", "Printf", "REPL", "Random", "RecipesBase", "RecipesPipeline", "Reexport", "RelocatableFolders", "Requires", "Scratch", "Showoff", "SparseArrays", "Statistics", "StatsBase", "UUIDs", "UnicodeFun", "UnitfulLatexify", "Unzip"] +git-tree-sha1 = "ccee59c6e48e6f2edf8a5b64dc817b6729f99eb5" +uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" +version = "1.39.0" + + [deps.Plots.extensions] + FileIOExt = "FileIO" + GeometryBasicsExt = "GeometryBasics" + IJuliaExt = "IJulia" + ImageInTerminalExt = "ImageInTerminal" + UnitfulExt = "Unitful" + + [deps.Plots.weakdeps] + FileIO = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" + GeometryBasics = "5c1252a2-5f33-56bf-86c9-59e7332b4326" + IJulia = "7073ff75-c697-5162-941a-fcdaad2a7d2a" + ImageInTerminal = "d8c32880-2388-543b-8c61-d9f865259254" + Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" + +[[deps.PrecompileTools]] +deps = ["Preferences"] +git-tree-sha1 = "03b4c25b43cb84cee5c90aa9b5ea0a78fd848d2f" +uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a" +version = "1.2.0" + +[[deps.Preferences]] +deps = ["TOML"] +git-tree-sha1 = "00805cd429dcb4870060ff49ef443486c262e38e" +uuid = "21216c6a-2e73-6563-6e65-726566657250" +version = "1.4.1" + +[[deps.Printf]] +deps = ["Unicode"] +uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" + +[[deps.Qt6Base_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Fontconfig_jll", "Glib_jll", "JLLWrappers", "Libdl", "Libglvnd_jll", "OpenSSL_jll", "Vulkan_Loader_jll", "Xorg_libSM_jll", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Xorg_libxcb_jll", "Xorg_xcb_util_cursor_jll", "Xorg_xcb_util_image_jll", "Xorg_xcb_util_keysyms_jll", "Xorg_xcb_util_renderutil_jll", "Xorg_xcb_util_wm_jll", "Zlib_jll", "libinput_jll", "xkbcommon_jll"] +git-tree-sha1 = "37b7bb7aabf9a085e0044307e1717436117f2b3b" +uuid = "c0090381-4147-56d7-9ebc-da0b1113ec56" +version = "6.5.3+1" + +[[deps.QuadGK]] +deps = ["DataStructures", "LinearAlgebra"] +git-tree-sha1 = "9ebcd48c498668c7fa0e97a9cae873fbee7bfee1" +uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" +version = "2.9.1" + +[[deps.REPL]] +deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] +uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" + +[[deps.Random]] +deps = ["SHA", "Serialization"] +uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" + +[[deps.RecipesBase]] +deps = ["PrecompileTools"] +git-tree-sha1 = "5c3d09cc4f31f5fc6af001c250bf1278733100ff" +uuid = "3cdcf5f2-1ef4-517c-9805-6587b60abb01" +version = "1.3.4" + +[[deps.RecipesPipeline]] +deps = ["Dates", "NaNMath", "PlotUtils", "PrecompileTools", "RecipesBase"] +git-tree-sha1 = "45cf9fd0ca5839d06ef333c8201714e888486342" +uuid = "01d81517-befc-4cb6-b9ec-a95719d0359c" +version = "0.6.12" + +[[deps.Reexport]] +git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b" +uuid = "189a3867-3050-52da-a836-e630ba90ab69" +version = "1.2.2" + +[[deps.RelocatableFolders]] +deps = ["SHA", "Scratch"] +git-tree-sha1 = "ffdaf70d81cf6ff22c2b6e733c900c3321cab864" +uuid = "05181044-ff0b-4ac5-8273-598c1e38db00" +version = "1.0.1" + +[[deps.Requires]] +deps = ["UUIDs"] +git-tree-sha1 = "838a3a4188e2ded87a4f9f184b4b0d78a1e91cb7" +uuid = "ae029012-a4dd-5104-9daa-d747884805df" +version = "1.3.0" + +[[deps.Rmath]] +deps = ["Random", "Rmath_jll"] +git-tree-sha1 = "f65dcb5fa46aee0cf9ed6274ccbd597adc49aa7b" +uuid = "79098fc4-a85e-5d69-aa6a-4863f24498fa" +version = "0.7.1" + +[[deps.Rmath_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "6ed52fdd3382cf21947b15e8870ac0ddbff736da" +uuid = "f50d1b31-88e8-58de-be2c-1cc44531875f" +version = "0.4.0+0" + +[[deps.SHA]] +uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" +version = "0.7.0" + +[[deps.Scratch]] +deps = ["Dates"] +git-tree-sha1 = "3bac05bc7e74a75fd9cba4295cde4045d9fe2386" +uuid = "6c6a2e73-6563-6170-7368-637461726353" +version = "1.2.1" + +[[deps.Serialization]] +uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" + +[[deps.Showoff]] +deps = ["Dates", "Grisu"] +git-tree-sha1 = "91eddf657aca81df9ae6ceb20b959ae5653ad1de" +uuid = "992d4aef-0814-514b-bc4d-f2e9a6c4116f" +version = "1.0.3" + +[[deps.SimpleBufferStream]] +git-tree-sha1 = "874e8867b33a00e784c8a7e4b60afe9e037b74e1" +uuid = "777ac1f9-54b0-4bf8-805c-2214025038e7" +version = "1.1.0" + +[[deps.Sockets]] +uuid = "6462fe0b-24de-5631-8697-dd941f90decc" + +[[deps.SortingAlgorithms]] +deps = ["DataStructures"] +git-tree-sha1 = "5165dfb9fd131cf0c6957a3a7605dede376e7b63" +uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c" +version = "1.2.0" + +[[deps.SparseArrays]] +deps = ["Libdl", "LinearAlgebra", "Random", "Serialization", "SuiteSparse_jll"] +uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" + +[[deps.SpecialFunctions]] +deps = ["IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] +git-tree-sha1 = "e2cfc4012a19088254b3950b85c3c1d8882d864d" +uuid = "276daf66-3868-5448-9aa4-cd146d93841b" +version = "2.3.1" +weakdeps = ["ChainRulesCore"] + + [deps.SpecialFunctions.extensions] + SpecialFunctionsChainRulesCoreExt = "ChainRulesCore" + +[[deps.Statistics]] +deps = ["LinearAlgebra", "SparseArrays"] +uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" +version = "1.9.0" + +[[deps.StatsAPI]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "1ff449ad350c9c4cbc756624d6f8a8c3ef56d3ed" +uuid = "82ae8749-77ed-4fe6-ae5f-f523153014b0" +version = "1.7.0" + +[[deps.StatsBase]] +deps = ["DataAPI", "DataStructures", "LinearAlgebra", "LogExpFunctions", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics", "StatsAPI"] +git-tree-sha1 = "1d77abd07f617c4868c33d4f5b9e1dbb2643c9cf" +uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" +version = "0.34.2" + +[[deps.StatsFuns]] +deps = ["HypergeometricFunctions", "IrrationalConstants", "LogExpFunctions", "Reexport", "Rmath", "SpecialFunctions"] +git-tree-sha1 = "f625d686d5a88bcd2b15cd81f18f98186fdc0c9a" +uuid = "4c63d2b9-4356-54db-8cca-17b64c39e42c" +version = "1.3.0" + + [deps.StatsFuns.extensions] + StatsFunsChainRulesCoreExt = "ChainRulesCore" + StatsFunsInverseFunctionsExt = "InverseFunctions" + + [deps.StatsFuns.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.SuiteSparse]] +deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"] +uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9" + +[[deps.SuiteSparse_jll]] +deps = ["Artifacts", "Libdl", "Pkg", "libblastrampoline_jll"] +uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c" +version = "5.10.1+6" + +[[deps.TOML]] +deps = ["Dates"] +uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76" +version = "1.0.3" + +[[deps.Tar]] +deps = ["ArgTools", "SHA"] +uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e" +version = "1.10.0" + +[[deps.TensorCore]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "1feb45f88d133a655e001435632f019a9a1bcdb6" +uuid = "62fd8b95-f654-4bbd-a8a5-9c27f68ccd50" +version = "0.1.1" + +[[deps.Test]] +deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] +uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[[deps.TranscodingStreams]] +git-tree-sha1 = "1fbeaaca45801b4ba17c251dd8603ef24801dd84" +uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" +version = "0.10.2" +weakdeps = ["Random", "Test"] + + [deps.TranscodingStreams.extensions] + TestExt = ["Test", "Random"] + +[[deps.URIs]] +git-tree-sha1 = "67db6cc7b3821e19ebe75791a9dd19c9b1188f2b" +uuid = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4" +version = "1.5.1" + +[[deps.UUIDs]] +deps = ["Random", "SHA"] +uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" + +[[deps.Unicode]] +uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" + +[[deps.UnicodeFun]] +deps = ["REPL"] +git-tree-sha1 = "53915e50200959667e78a92a418594b428dffddf" +uuid = "1cfade01-22cf-5700-b092-accc4b62d6e1" +version = "0.4.1" + +[[deps.Unitful]] +deps = ["Dates", "LinearAlgebra", "Random"] +git-tree-sha1 = "242982d62ff0d1671e9029b52743062739255c7e" +uuid = "1986cc42-f94f-5a68-af5c-568840ba703d" +version = "1.18.0" + + [deps.Unitful.extensions] + ConstructionBaseUnitfulExt = "ConstructionBase" + InverseFunctionsUnitfulExt = "InverseFunctions" + + [deps.Unitful.weakdeps] + ConstructionBase = "187b0558-2788-49d3-abe0-74a17ed4e7c9" + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.UnitfulLatexify]] +deps = ["LaTeXStrings", "Latexify", "Unitful"] +git-tree-sha1 = "e2d817cc500e960fdbafcf988ac8436ba3208bfd" +uuid = "45397f5d-5981-4c77-b2b3-fc36d6e9b728" +version = "1.6.3" + +[[deps.Unzip]] +git-tree-sha1 = "ca0969166a028236229f63514992fc073799bb78" +uuid = "41fe7b60-77ed-43a1-b4f0-825fd5a5650d" +version = "0.2.0" + +[[deps.Vulkan_Loader_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Wayland_jll", "Xorg_libX11_jll", "Xorg_libXrandr_jll", "xkbcommon_jll"] +git-tree-sha1 = "2f0486047a07670caad3a81a075d2e518acc5c59" +uuid = "a44049a8-05dd-5a78-86c9-5fde0876e88c" +version = "1.3.243+0" + +[[deps.Wayland_jll]] +deps = ["Artifacts", "EpollShim_jll", "Expat_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg", "XML2_jll"] +git-tree-sha1 = "7558e29847e99bc3f04d6569e82d0f5c54460703" +uuid = "a2964d1f-97da-50d4-b82a-358c7fce9d89" +version = "1.21.0+1" + +[[deps.Wayland_protocols_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "4528479aa01ee1b3b4cd0e6faef0e04cf16466da" +uuid = "2381bf8a-dfd0-557d-9999-79630e7b1b91" +version = "1.25.0+0" + +[[deps.XML2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Zlib_jll"] +git-tree-sha1 = "24b81b59bd35b3c42ab84fa589086e19be919916" +uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" +version = "2.11.5+0" + +[[deps.XSLT_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgcrypt_jll", "Libgpg_error_jll", "Libiconv_jll", "Pkg", "XML2_jll", "Zlib_jll"] +git-tree-sha1 = "91844873c4085240b95e795f692c4cec4d805f8a" +uuid = "aed1982a-8fda-507f-9586-7b0439959a61" +version = "1.1.34+0" + +[[deps.XZ_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "522b8414d40c4cbbab8dee346ac3a09f9768f25d" +uuid = "ffd25f8a-64ca-5728-b0f7-c24cf3aae800" +version = "5.4.5+0" + +[[deps.Xorg_libICE_jll]] +deps = ["Libdl", "Pkg"] +git-tree-sha1 = "e5becd4411063bdcac16be8b66fc2f9f6f1e8fe5" +uuid = "f67eecfb-183a-506d-b269-f58e52b52d7c" +version = "1.0.10+1" + +[[deps.Xorg_libSM_jll]] +deps = ["Libdl", "Pkg", "Xorg_libICE_jll"] +git-tree-sha1 = "4a9d9e4c180e1e8119b5ffc224a7b59d3a7f7e18" +uuid = "c834827a-8449-5923-a945-d239c165b7dd" +version = "1.2.3+0" + +[[deps.Xorg_libX11_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxcb_jll", "Xorg_xtrans_jll"] +git-tree-sha1 = "afead5aba5aa507ad5a3bf01f58f82c8d1403495" +uuid = "4f6342f7-b3d2-589e-9d20-edeb45f2b2bc" +version = "1.8.6+0" + +[[deps.Xorg_libXau_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "6035850dcc70518ca32f012e46015b9beeda49d8" +uuid = "0c0b7dd1-d40b-584c-a123-a41640f87eec" +version = "1.0.11+0" + +[[deps.Xorg_libXcursor_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXfixes_jll", "Xorg_libXrender_jll"] +git-tree-sha1 = "12e0eb3bc634fa2080c1c37fccf56f7c22989afd" +uuid = "935fb764-8cf2-53bf-bb30-45bb1f8bf724" +version = "1.2.0+4" + +[[deps.Xorg_libXdmcp_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "34d526d318358a859d7de23da945578e8e8727b7" +uuid = "a3789734-cfe1-5b06-b2d0-1dd0d9d62d05" +version = "1.1.4+0" + +[[deps.Xorg_libXext_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] +git-tree-sha1 = "b7c0aa8c376b31e4852b360222848637f481f8c3" +uuid = "1082639a-0dae-5f34-9b06-72781eeb8cb3" +version = "1.3.4+4" + +[[deps.Xorg_libXfixes_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] +git-tree-sha1 = "0e0dc7431e7a0587559f9294aeec269471c991a4" +uuid = "d091e8ba-531a-589c-9de9-94069b037ed8" +version = "5.0.3+4" + +[[deps.Xorg_libXi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll", "Xorg_libXfixes_jll"] +git-tree-sha1 = "89b52bc2160aadc84d707093930ef0bffa641246" +uuid = "a51aa0fd-4e3c-5386-b890-e753decda492" +version = "1.7.10+4" + +[[deps.Xorg_libXinerama_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll"] +git-tree-sha1 = "26be8b1c342929259317d8b9f7b53bf2bb73b123" +uuid = "d1454406-59df-5ea1-beac-c340f2130bc3" +version = "1.1.4+4" + +[[deps.Xorg_libXrandr_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll"] +git-tree-sha1 = "34cea83cb726fb58f325887bf0612c6b3fb17631" +uuid = "ec84b674-ba8e-5d96-8ba1-2a689ba10484" +version = "1.5.2+4" + +[[deps.Xorg_libXrender_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] +git-tree-sha1 = "19560f30fd49f4d4efbe7002a1037f8c43d43b96" +uuid = "ea2f1a96-1ddc-540d-b46f-429655e07cfa" +version = "0.9.10+4" + +[[deps.Xorg_libpthread_stubs_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "8fdda4c692503d44d04a0603d9ac0982054635f9" +uuid = "14d82f49-176c-5ed1-bb49-ad3f5cbd8c74" +version = "0.1.1+0" + +[[deps.Xorg_libxcb_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "XSLT_jll", "Xorg_libXau_jll", "Xorg_libXdmcp_jll", "Xorg_libpthread_stubs_jll"] +git-tree-sha1 = "b4bfde5d5b652e22b9c790ad00af08b6d042b97d" +uuid = "c7cfdc94-dc32-55de-ac96-5a1b8d977c5b" +version = "1.15.0+0" + +[[deps.Xorg_libxkbfile_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] +git-tree-sha1 = "730eeca102434283c50ccf7d1ecdadf521a765a4" +uuid = "cc61e674-0454-545c-8b26-ed2c68acab7a" +version = "1.1.2+0" + +[[deps.Xorg_xcb_util_cursor_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_xcb_util_image_jll", "Xorg_xcb_util_jll", "Xorg_xcb_util_renderutil_jll"] +git-tree-sha1 = "04341cb870f29dcd5e39055f895c39d016e18ccd" +uuid = "e920d4aa-a673-5f3a-b3d7-f755a4d47c43" +version = "0.1.4+0" + +[[deps.Xorg_xcb_util_image_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "0fab0a40349ba1cba2c1da699243396ff8e94b97" +uuid = "12413925-8142-5f55-bb0e-6d7ca50bb09b" +version = "0.4.0+1" + +[[deps.Xorg_xcb_util_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libxcb_jll"] +git-tree-sha1 = "e7fd7b2881fa2eaa72717420894d3938177862d1" +uuid = "2def613f-5ad1-5310-b15b-b15d46f528f5" +version = "0.4.0+1" + +[[deps.Xorg_xcb_util_keysyms_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "d1151e2c45a544f32441a567d1690e701ec89b00" +uuid = "975044d2-76e6-5fbe-bf08-97ce7c6574c7" +version = "0.4.0+1" + +[[deps.Xorg_xcb_util_renderutil_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "dfd7a8f38d4613b6a575253b3174dd991ca6183e" +uuid = "0d47668e-0667-5a69-a72c-f761630bfb7e" +version = "0.3.9+1" + +[[deps.Xorg_xcb_util_wm_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "e78d10aab01a4a154142c5006ed44fd9e8e31b67" +uuid = "c22f9ab0-d5fe-5066-847c-f4bb1cd4e361" +version = "0.4.1+1" + +[[deps.Xorg_xkbcomp_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxkbfile_jll"] +git-tree-sha1 = "330f955bc41bb8f5270a369c473fc4a5a4e4d3cb" +uuid = "35661453-b289-5fab-8a00-3d9160c6a3a4" +version = "1.4.6+0" + +[[deps.Xorg_xkeyboard_config_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_xkbcomp_jll"] +git-tree-sha1 = "691634e5453ad362044e2ad653e79f3ee3bb98c3" +uuid = "33bec58e-1273-512f-9401-5d533626f822" +version = "2.39.0+0" + +[[deps.Xorg_xtrans_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "e92a1a012a10506618f10b7047e478403a046c77" +uuid = "c5fb5394-a638-5e4d-96e5-b29de1b5cf10" +version = "1.5.0+0" + +[[deps.Zlib_jll]] +deps = ["Libdl"] +uuid = "83775a58-1f1d-513f-b197-d71354ab007a" +version = "1.2.13+0" + +[[deps.Zstd_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "49ce682769cd5de6c72dcf1b94ed7790cd08974c" +uuid = "3161d3a3-bdf6-5164-811a-617609db77b4" +version = "1.5.5+0" + +[[deps.ZygoteRules]] +deps = ["ChainRulesCore", "MacroTools"] +git-tree-sha1 = "9d749cd449fb448aeca4feee9a2f4186dbb5d184" +uuid = "700de1a5-db45-46bc-99cf-38207098b444" +version = "0.2.4" + +[[deps.eudev_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "gperf_jll"] +git-tree-sha1 = "431b678a28ebb559d224c0b6b6d01afce87c51ba" +uuid = "35ca27e7-8b34-5b7f-bca9-bdc33f59eb06" +version = "3.2.9+0" + +[[deps.fzf_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "47cf33e62e138b920039e8ff9f9841aafe1b733e" +uuid = "214eeab7-80f7-51ab-84ad-2988db7cef09" +version = "0.35.1+0" + +[[deps.gperf_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "3516a5630f741c9eecb3720b1ec9d8edc3ecc033" +uuid = "1a1c6b14-54f6-533d-8383-74cd7377aa70" +version = "3.1.1+0" + +[[deps.libaom_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "3a2ea60308f0996d26f1e5354e10c24e9ef905d4" +uuid = "a4ae2306-e953-59d6-aa16-d00cac43593b" +version = "3.4.0+0" + +[[deps.libass_jll]] +deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] +git-tree-sha1 = "5982a94fcba20f02f42ace44b9894ee2b140fe47" +uuid = "0ac62f75-1d6f-5e53-bd7c-93b484bb37c0" +version = "0.15.1+0" + +[[deps.libblastrampoline_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "8e850b90-86db-534c-a0d3-1478176c7d93" +version = "5.8.0+0" + +[[deps.libevdev_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "141fe65dc3efabb0b1d5ba74e91f6ad26f84cc22" +uuid = "2db6ffa8-e38f-5e21-84af-90c45d0032cc" +version = "1.11.0+0" + +[[deps.libfdk_aac_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "daacc84a041563f965be61859a36e17c4e4fcd55" +uuid = "f638f0a6-7fb0-5443-88ba-1cc74229b280" +version = "2.0.2+0" + +[[deps.libinput_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "eudev_jll", "libevdev_jll", "mtdev_jll"] +git-tree-sha1 = "ad50e5b90f222cfe78aa3d5183a20a12de1322ce" +uuid = "36db933b-70db-51c0-b978-0f229ee0e533" +version = "1.18.0+0" + +[[deps.libpng_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] +git-tree-sha1 = "94d180a6d2b5e55e447e2d27a29ed04fe79eb30c" +uuid = "b53b4c65-9356-5827-b1ea-8c7a1a84506f" +version = "1.6.38+0" + +[[deps.libvorbis_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Ogg_jll", "Pkg"] +git-tree-sha1 = "b910cb81ef3fe6e78bf6acee440bda86fd6ae00c" +uuid = "f27f6e37-5d2b-51aa-960f-b287f2bc3b7a" +version = "1.3.7+1" + +[[deps.mtdev_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "814e154bdb7be91d78b6802843f76b6ece642f11" +uuid = "009596ad-96f7-51b1-9f1b-5ce2d5e8a71e" +version = "1.1.6+0" + +[[deps.nghttp2_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d" +version = "1.52.0+1" + +[[deps.p7zip_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" +version = "17.4.0+0" + +[[deps.x264_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "4fea590b89e6ec504593146bf8b988b2c00922b2" +uuid = "1270edf5-f2f9-52d2-97e9-ab00b5d0237a" +version = "2021.5.5+0" + +[[deps.x265_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "ee567a171cce03570d77ad3a43e90218e38937a9" +uuid = "dfaa095f-4041-5dcd-9319-2fabd8486b76" +version = "3.5.0+0" + +[[deps.xkbcommon_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Wayland_jll", "Wayland_protocols_jll", "Xorg_libxcb_jll", "Xorg_xkeyboard_config_jll"] +git-tree-sha1 = "9c304562909ab2bab0262639bd4f444d7bc2be37" +uuid = "d8fb68d0-12a3-5cfd-a85a-d49703b185fd" +version = "1.4.1+1" diff --git a/v0.10.59/examples/gaussian-process-priors/index.html b/v0.10.59/examples/gaussian-process-priors/index.html new file mode 100644 index 000000000..9f53d13ba --- /dev/null +++ b/v0.10.59/examples/gaussian-process-priors/index.html @@ -0,0 +1,3002 @@ + +Gaussian process prior samples · KernelFunctions.jl

    Gaussian process prior samples

    You are seeing the HTML output generated by Documenter.jl and Literate.jl from the Julia source file. The corresponding notebook can be viewed in nbviewer.


    The kernels defined in this package can also be used to specify the covariance of a Gaussian process prior. A Gaussian process (GP) is defined by its mean function $m(\cdot)$ and its covariance function or kernel $k(\cdot, \cdot')$:

    \[ f \sim \mathcal{GP}\big(m(\cdot), k(\cdot, \cdot')\big)\]

    In this notebook we show how the choice of kernel affects the samples from a GP (with zero mean).

    # Load required packages
    +using KernelFunctions, LinearAlgebra
    +using Plots, Plots.PlotMeasures
    +default(; lw=1.0, legendfontsize=8.0)
    +using Random: seed!
    +seed!(42); # reproducibility

    Evaluation at finite set of points

    The function values $\mathbf{f} = \{f(x_n)\}_{n=1}^N$ of the GP at a finite number $N$ of points $X = \{x_n\}_{n=1}^N$ follow a multivariate normal distribution $\mathbf{f} \sim \mathcal{MVN}(\mathbf{m}, \mathrm{K})$ with mean vector $\mathbf{m}$ and covariance matrix $\mathrm{K}$, where

    \[\begin{aligned} + \mathbf{m}_i &= m(x_i) \\ + \mathrm{K}_{i,j} &= k(x_i, x_j) +\end{aligned}\]

    with $1 \le i, j \le N$.

    We can visualize the infinite-dimensional GP by evaluating it on a fine grid to approximate the dense real line:

    num_inputs = 101
    +xlim = (-5, 5)
    +X = range(xlim...; length=num_inputs);

    Given a kernel k, we can compute the kernel matrix as K = kernelmatrix(k, X).

    Random samples

    To sample from the multivariate normal distribution $p(\mathbf{f}) = \mathcal{MVN}(0, \mathrm{K})$, we could make use of Distributions.jl and call rand(MvNormal(K)). Alternatively, we could use the AbstractGPs.jl package and construct a GP object which we evaluate at the points of interest and from which we can then sample: rand(GP(k)(X)).

    Here, we will explicitly construct samples using the Cholesky factorization $\mathrm{L} = \operatorname{cholesky}(\mathrm{K})$, with $\mathbf{f} = \mathrm{L} \mathbf{v}$, where $\mathbf{v} \sim \mathcal{N}(0, \mathbf{I})$ is a vector of standard-normal random variables.

    We will use the same randomness $\mathbf{v}$ to generate comparable samples across different kernels.

    num_samples = 7
    +v = randn(num_inputs, num_samples);

    Mathematically, a kernel matrix is by definition positive semi-definite, but due to finite-precision inaccuracies, the computed kernel matrix might not be exactly positive definite. To avoid Cholesky errors, we add a small "nugget" term on the diagonal:

    function mvn_sample(K)
    +    L = cholesky(K + 1e-6 * I)
    +    f = L.L * v
    +    return f
    +end;

    Visualization

    We now define a function that visualizes a kernel for us.

    function visualize(k::Kernel)
    +    K = kernelmatrix(k, X)
    +    f = mvn_sample(K)
    +
    +    p_kernel_2d = heatmap(
    +        X,
    +        X,
    +        K;
    +        yflip=true,
    +        colorbar=false,
    +        ylabel=string(nameof(typeof(k))),
    +        ylim=xlim,
    +        yticks=([xlim[1], 0, xlim[end]], ["\u22125", raw"$x'$", "5"]),
    +        vlim=(0, 1),
    +        title=raw"$k(x, x')$",
    +        aspect_ratio=:equal,
    +        left_margin=5mm,
    +    )
    +
    +    p_kernel_cut = plot(
    +        X,
    +        k.(X, 0.0);
    +        title=string(raw"$k(x, x_\mathrm{ref})$"),
    +        label=raw"$x_\mathrm{ref}=0.0$",
    +        legend=:topleft,
    +        foreground_color_legend=nothing,
    +    )
    +    plot!(X, k.(X, 1.5); label=raw"$x_\mathrm{ref}=1.5$")
    +
    +    p_samples = plot(X, f; c="blue", title=raw"$f(x)$", ylim=(-3, 3), label=nothing)
    +
    +    return plot(
    +        p_kernel_2d,
    +        p_kernel_cut,
    +        p_samples;
    +        layout=(1, 3),
    +        xlabel=raw"$x$",
    +        xlim=xlim,
    +        xticks=collect(xlim),
    +    )
    +end;

    We can now visualize a kernel and show samples from a Gaussian process with a given kernel:

    plot(visualize(SqExponentialKernel()); size=(800, 210), bottommargin=5mm, topmargin=5mm)
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Kernel comparison

    This also allows us to compare different kernels:

    kernels = [
    +    Matern12Kernel(),
    +    Matern32Kernel(),
    +    Matern52Kernel(),
    +    SqExponentialKernel(),
    +    WhiteKernel(),
    +    ConstantKernel(),
    +    LinearKernel(),
    +    compose(PeriodicKernel(), ScaleTransform(0.2)),
    +    NeuralNetworkKernel(),
    +    GibbsKernel(; lengthscale=x -> sum(exp ∘ sin, x)),
    +]
    +plot(
    +    [visualize(k) for k in kernels]...;
    +    layout=(length(kernels), 1),
    +    size=(800, 220 * length(kernels) + 100),
    +)
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    Package and system information
    +
    +Package information (click to expand) +
    +Status `~/work/KernelFunctions.jl/KernelFunctions.jl/examples/gaussian-process-priors/Project.toml`
    +  [31c24e10] Distributions v0.25.103
    +  [ec8451be] KernelFunctions v0.10.59 `/home/runner/work/KernelFunctions.jl/KernelFunctions.jl#ec19a94`
    +  [98b081ad] Literate v2.16.0
    +  [91a5bcdd] Plots v1.39.0
    +  [37e2e46d] LinearAlgebra
    +  [9a3f8284] Random
    +
    +To reproduce this notebook's package environment, you can + +download the full Manifest.toml. +
    +
    +System information (click to expand) +
    +Julia Version 1.9.4
    +Commit 8e5136fa297 (2023-11-14 08:46 UTC)
    +Build Info:
    +  Official https://julialang.org/ release
    +Platform Info:
    +  OS: Linux (x86_64-linux-gnu)
    +  CPU: 4 × AMD EPYC 7763 64-Core Processor
    +  WORD_SIZE: 64
    +  LIBM: libopenlibm
    +  LLVM: libLLVM-14.0.6 (ORCJIT, znver3)
    +  Threads: 1 on 4 virtual cores
    +Environment:
    +  JULIA_DEBUG = Documenter
    +  JULIA_LOAD_PATH = :/home/runner/.julia/packages/JuliaGPsDocs/7M86H/src
    +
    +

    This page was generated using Literate.jl.

    diff --git a/v0.10.59/examples/gaussian-process-priors/notebook.ipynb b/v0.10.59/examples/gaussian-process-priors/notebook.ipynb new file mode 100644 index 000000000..51baaa452 --- /dev/null +++ b/v0.10.59/examples/gaussian-process-priors/notebook.ipynb @@ -0,0 +1,6124 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# Gaussian process prior samples\n", + "\n", + "*You are seeing the\n", + "notebook output generated by\n", + "[Literate.jl](https://github.com/fredrikekre/Literate.jl) from the\n", + "[Julia source file](https://github.com/JuliaGaussianProcesses/KernelFunctions.jl/blob/master/examples/gaussian-process-priors/script.jl).\n", + "The rendered HTML can be viewed [in the docs](https://juliagaussianprocesses.github.io/KernelFunctions.jl/dev/examples/gaussian-process-priors/).*" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "The kernels defined in this package can also be used to specify the\n", + "covariance of a Gaussian process prior.\n", + "A Gaussian process (GP) is defined by its mean function $m(\\cdot)$ and its covariance function or kernel $k(\\cdot, \\cdot')$:\n", + "$$\n", + " f \\sim \\mathcal{GP}\\big(m(\\cdot), k(\\cdot, \\cdot')\\big)\n", + "$$\n", + "In this notebook we show how the choice of kernel affects the samples from a GP (with zero mean)." + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "# Load required packages\n", + "using KernelFunctions, LinearAlgebra\n", + "using Plots, Plots.PlotMeasures\n", + "default(; lw=1.0, legendfontsize=8.0)\n", + "using Random: seed!\n", + "seed!(42); # reproducibility" + ], + "metadata": {}, + "execution_count": 1 + }, + { + "cell_type": "markdown", + "source": [ + "## Evaluation at finite set of points\n", + "\n", + "The function values $\\mathbf{f} = \\{f(x_n)\\}_{n=1}^N$ of the GP at a finite number $N$ of points $X = \\{x_n\\}_{n=1}^N$ follow a multivariate normal distribution $\\mathbf{f} \\sim \\mathcal{MVN}(\\mathbf{m}, \\mathrm{K})$ with mean vector $\\mathbf{m}$ and covariance matrix $\\mathrm{K}$, where\n", + "$$\n", + "\\begin{aligned}\n", + " \\mathbf{m}_i &= m(x_i) \\\\\n", + " \\mathrm{K}_{i,j} &= k(x_i, x_j)\n", + "\\end{aligned}\n", + "$$\n", + "with $1 \\le i, j \\le N$.\n", + "\n", + "We can visualize the infinite-dimensional GP by evaluating it on a fine grid to approximate the dense real line:" + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "num_inputs = 101\n", + "xlim = (-5, 5)\n", + "X = range(xlim...; length=num_inputs);" + ], + "metadata": {}, + "execution_count": 2 + }, + { + "cell_type": "markdown", + "source": [ + "Given a kernel `k`, we can compute the kernel matrix as `K = kernelmatrix(k, X)`." + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "## Random samples\n", + "\n", + "To sample from the multivariate normal distribution $p(\\mathbf{f}) = \\mathcal{MVN}(0, \\mathrm{K})$, we could make use of Distributions.jl and call `rand(MvNormal(K))`.\n", + "Alternatively, we could use the [AbstractGPs.jl](https://github.com/JuliaGaussianProcesses/AbstractGPs.jl) package and construct a `GP` object which we evaluate at the points of interest and from which we can then sample: `rand(GP(k)(X))`." + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "Here, we will explicitly construct samples using the Cholesky factorization $\\mathrm{L} = \\operatorname{cholesky}(\\mathrm{K})$,\n", + "with $\\mathbf{f} = \\mathrm{L} \\mathbf{v}$, where $\\mathbf{v} \\sim \\mathcal{N}(0, \\mathbf{I})$ is a vector of standard-normal random variables." + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "We will use the same randomness $\\mathbf{v}$ to generate comparable samples across different kernels." + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "num_samples = 7\n", + "v = randn(num_inputs, num_samples);" + ], + "metadata": {}, + "execution_count": 3 + }, + { + "cell_type": "markdown", + "source": [ + "Mathematically, a kernel matrix is by definition positive semi-definite, but due to finite-precision inaccuracies, the computed kernel matrix might not be exactly positive definite. To avoid Cholesky errors, we add a small \"nugget\" term on the diagonal:" + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "function mvn_sample(K)\n", + " L = cholesky(K + 1e-6 * I)\n", + " f = L.L * v\n", + " return f\n", + "end;" + ], + "metadata": {}, + "execution_count": 4 + }, + { + "cell_type": "markdown", + "source": [ + "## Visualization\n", + "We now define a function that visualizes a kernel for us." + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "function visualize(k::Kernel)\n", + " K = kernelmatrix(k, X)\n", + " f = mvn_sample(K)\n", + "\n", + " p_kernel_2d = heatmap(\n", + " X,\n", + " X,\n", + " K;\n", + " yflip=true,\n", + " colorbar=false,\n", + " ylabel=string(nameof(typeof(k))),\n", + " ylim=xlim,\n", + " yticks=([xlim[1], 0, xlim[end]], [\"\\u22125\", raw\"$x'$\", \"5\"]),\n", + " vlim=(0, 1),\n", + " title=raw\"$k(x, x')$\",\n", + " aspect_ratio=:equal,\n", + " left_margin=5mm,\n", + " )\n", + "\n", + " p_kernel_cut = plot(\n", + " X,\n", + " k.(X, 0.0);\n", + " title=string(raw\"$k(x, x_\\mathrm{ref})$\"),\n", + " label=raw\"$x_\\mathrm{ref}=0.0$\",\n", + " legend=:topleft,\n", + " foreground_color_legend=nothing,\n", + " )\n", + " plot!(X, k.(X, 1.5); label=raw\"$x_\\mathrm{ref}=1.5$\")\n", + "\n", + " p_samples = plot(X, f; c=\"blue\", title=raw\"$f(x)$\", ylim=(-3, 3), label=nothing)\n", + "\n", + " return plot(\n", + " p_kernel_2d,\n", + " p_kernel_cut,\n", + " p_samples;\n", + " layout=(1, 3),\n", + " xlabel=raw\"$x$\",\n", + " xlim=xlim,\n", + " xticks=collect(xlim),\n", + " )\n", + "end;" + ], + "metadata": {}, + "execution_count": 5 + }, + { + "cell_type": "markdown", + "source": [ + "We can now visualize a kernel and show samples from\n", + "a Gaussian process with a given kernel:" + ], + "metadata": {} + }, + { + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "Plot{Plots.GRBackend() n=10}\nCaptured extra kwargs:\n Series{1}:\n vlim: (0, 1)\n", + "image/png": "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", + "text/html": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ], + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "metadata": {}, + "execution_count": 6 + } + ], + "cell_type": "code", + "source": [ + "plot(visualize(SqExponentialKernel()); size=(800, 210), bottommargin=5mm, topmargin=5mm)" + ], + "metadata": {}, + "execution_count": 6 + }, + { + "cell_type": "markdown", + "source": [ + "## Kernel comparison\n", + "This also allows us to compare different kernels:" + ], + "metadata": {} + }, + { + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "Plot{Plots.GRBackend() n=100}\nCaptured extra kwargs:\n Series{1}:\n vlim: (0, 1)\n Series{11}:\n vlim: (0, 1)\n Series{21}:\n vlim: (0, 1)\n Series{31}:\n vlim: (0, 1)\n Series{41}:\n vlim: (0, 1)\n Series{51}:\n vlim: (0, 1)\n Series{61}:\n vlim: (0, 1)\n Series{71}:\n vlim: (0, 1)\n Series{81}:\n vlim: (0, 1)\n Series{91}:\n vlim: (0, 1)\n", + "image/png": "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YsOGDRkZGe+88w7Z5qmnnnr22WdtzsCYNWvWokWLKisrN27c+MMPP2zatGnZsmUbNmy4fv265QYgFy5c+OWXXyQSSWZmJtVTqVarDx069Msvv5CjrGpra+/evdvQ0HD16tWWE6yysrKmT5/e9R8UQlYqKysbGxutJvpRUlJS6urqLBMsqVSam5tLruV26dKl6dOnk28Qp06dksvlLa+TlZXlltWqH21uXQ8CtUMmk73zzjvUSj8EQRw+fPijjz7Kzs62ajl06FByhR5Kenr62rVrt27dqtfr6+rqPv300/Xr15MLCJGMRuOBAwdWrFihUCha3vrAgQNr167dsWOH0Wisrq7+5JNPNmzYcO3aNTsjLykpCQkJ0Wq1drZHyH7PP//8jh07OnHiF1980embnj59Oj4+/uuvv87JyeHxeDqdTiKRTJo0qaKiwmAwpKWlXblypbKycu3atcnJyX/88Ud1dbXl6WVlZZGRkXq9vtMBINSaX3/9lcPhKJXK1ho88cQTu3fvtjxy9uzZzz//fPPmzSqVSi6Xf/nll+vXr//zzz9tnj506NDTp087OGhPh9mVh9iyZUvnlu78/PPPHR0LQRDE+++/33LJR4Qc4saNG0OGDOnospwGg6GLr/YZM2Z8++23BEE0NDQQBPHmm29SL/Jjx44999xzBEGcOHFi1qxZLc9dunTp999/35W7I9Sa9957b+bMmW00SE9Pnzx5cucunpub279/f1wFt6OwZ9BDLFiw4PLly1VVVR06S6vVOmOMrUql+vXXX1euXOnwKyMEAIMGDRo/fvwvv/zSobN27tz5l7/8pYu3Jgeqk2sznj17ViaT7d+/f//+/RUVFWFhYa2dVVlZeefOHZujvhDqtGXLlsXGxppMpjNnzrT96poxYwaHw8nNze3EXb788stvv/0WZ2N0FK4m6iHYbPaWLVveeecdch8PO33zzTcLFixweDBr1qz56KOPWltlFKGuW7tbnzfPAAAgAElEQVR27bPPPjts2LDevXvb016hUAgEgjZW9LGT5X6FAoFg0KBBaWlpbZ+i0+neeOON7777Dt+fkGNlZ2dPnTq1oKCAx+NZzvywaePGjUuXLj106BA5i9ZOWVlZHA5n4sSJXYu0O8LaledITU2dPHnyxo0b7WxPEMT06dPtHKJuvyNHjggEgqefftqxl0XIEofD2blz57Zt24gWczJsEggEXS9cWUlLS7tw4QL18MiRIzab/fjjj2vWrOl6YoeQlR9++CEqKur48eMHDhxoN3ePjY1dvHjxRx99ZP/1a2tr169fv3nz5i5F2V0xOvSzRg+5oUOHikSinj172rOuOo1Gc3hqBQDXr1+32i0HIWfgcDiTJk1yWUHol19++fHHHxsbG4OCgmJiYgAgKSnpzJkzhYWFAQEBJ06c6NOnj1Qq/e67786fP+/j49OvXz/y1zAxMbFHjx6uCRJ1KyEhIWPGjBk9erRlSbUN8fHxRqPRx8fHzg0DsrOzFy1aZLWwCLITzc5Pfggh1J01NDSQmRyNRvPz86OOi0Sie/fuDRo0iMvlqlQqrVYLACaTydfXt0NdMAghT4LZFUIIIYSQI+G4K4QQQgghR8LsCiGEEELIkTC7QgghhBByJMyuEEIIIYQcCbMrhBBCCCFHwuwKIYQQQsiRMLtCCCGEEHIkT17srr6+PiMjg3qYnJwcFRXlxngQQsjziESic+fOVVdXBwYGPvHEE4GBge6OCCH38+Ts6vbt26+88sqUKVPIhxEREZhdIYSQY3377belpaXR0dFnzpx54403srKyBgwY4O6gEHIzT16r/dy5c6+//vrNmzfdHQhCCHUL8+bNi46OXrdunbsDQcjNPHzclUql2r9//4kTJ+RyubtjQZ7GaDSKxWK9Xm91vKmpSSKRuCUkhNzIaDTW1NRERka6OxCE3M+TewZpNFpwcPCRI0eKi4tLS0vT09NHjBjh7JuaTKYFCxaQhfEJEyYkJSU5+47I4SorK5cuXZqbm6tQKMRisc3957Oysp599lkWi6VSqbZv3z5jxgwAMJlMixYt2rdvH5vNTkpK2rt3r5170XfR7t27//rXv7rgRgjZdPLkyc8++6yoqGjatGmLFy92wR2FQuEHH3zQr18/6siMGTMGDhzoglsjZI9Hu2ewsLBw2rRpLY8fOHBg+PDhlkdWrlyZnZ2dlZXl7JAaGhp27V7+zzf/HwDQaDRn3657UiikPB7Pedevrq7+448/goKCZs6cqdVqW2ZXBEH06dNn9erVL7300vHjx1944QWhUMjlcvfv3//uu+9evnxZIBBMmTJl/Pjx7733nvPipLDZbKVSyWKxXHAvhCzpdDo2my2RSMrKyu7cubNq1aqvvvpq3rx5zr7viRMnXn755eeee458SKfT09LSBg0a5Lw77tnDWL2asWWLYcoUk/Pu4nnWrGF+9x1DLNa6OxCHIQiCTqfb/NRt6dGuXcXFxdlMmEJCQqyOzJo163//+58LQqLT6Svf3qc3/cCkLXikM9eHGYPBcOr1w8PD58+fX1pa2lqDixcvSiSSF154AQCmTZsWEBBw/Pjx2bNn//TTTwsWLPD19QWAJUuWrF692jXZFULuFRgYGBgYOGLEiMbGxv/7v/9zQXYlEAhiYmJcOcDLZAIWC0wmFofjsnt6ApUKCAI4HvRTIwjCYDC02+zRzq5YLFYbffwEQVDVo/Pnz8fFxbkqLmDSFhiIHUzaApfdEblSWVlZXFwck2n+9enTpw+ZipWVlb344ouWBy1fhM4OiYonICDAz8/PBTf1DFId+LXzKbRLTGoFnSdw4g3czfJFXl5eHhQU5N54nESvBxYLNBp3x/GokcnAaHR3EO7waGdXbVu+fLlYLI6LiysuLj527NiBAwdceXdMsDyYXC637JoUCATktImmpibquJeXl06n02g0Tu3EJBkMhqlTp1IP586du2bNGvDEvmmH14MNJog6yBY9o3PsZR9cv6pYc2yn4JVPnHR9tyMIYtKkSf379w8KCiooKMjMzPzzzz/dHZRT6HTAYoHWczq4XEQqhRYzf7oFT86uli1blpmZKRaLp06dun79+vDwcBcHgAmWpwoJCZFKpdTDxsZGsjM6ODhYJpNRB318fFyQWgEAk8ksKirCcVedoDKAwqDnewnozklEtQyGzmQQCDy2dqXT6bZs2ZKVldXY2Dh37txt27b5+/u7Oyin0OmAzcbaVYc1NmJ25XFiYmLmz5/v3hjIBIv8wr2RIAcaNGhQUVGRXC738fExGo1Xr14lx1cNHjz40qVL5Ejby5cvDx482N2RonboTQAABgLYTirzmQyEycP7RRISEhISEtwdhdORPYNYu+qo+npgMMy5abfi4etdIdQJRqNx//79x44dA4ADBw4cOnSIPP7mm29u2bIFAOLj48eOHbts2bLCwsJVq1ZFRESkpKQAwGuvvbZjx47ff//90qVLn3/++euvv+7G7wLZw0AAABicNgmMMBrB2P4AWPTww9pV59TVAY8HarW743A5T65dPSTIqhV2ET5CDAbD/v37ASAtLe3XX3/18vJ66qmnACA0NJQaLb579+6VK1c+//zz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CIKwJKSuCIIgCIIgLAmpK4IgCIIgCEtC6oogCIIgCMKSkLoiCIIgCIKwJKSuCIIgCIIgLInG1gbkZVatWnXlyhX5OH/+/PPnz7etPXmA/fv379u3T7k7b948FxcXG9qTQ7h169aiRYuUuwMHDqxVq5YN7SHyNomJicOGDVPufv7551999ZVNLPHx8dmxY4dyd/r06UWLFrWJJcT7wIMHD+bMmaPc7dWrV/369d80mdRVNnL8+HGtVtuoUSMADg4rj3quAAAgAElEQVQOtjYnL3DlypV///23S5cu8l2tVmtbe3IIz549O3z48IQJE+S7BQoUsK09RN5Gp9OtWrVq+fLloigCKFmypK0suX79+vXr13v27CnfpbdZIlsJCQnZu3fv1KlT5buFChVKZzKpq+zl008/7devn62tyFNUr16dfqWpcXNzo18LYU369OmTE77eVKpUiV75hNUoUKBABl9vpK6yl507d547d+6jjz7q379/+jqXyCBnz57t2bNnqVKl+vTpU65cOVubk1N48eJF7969CxQo8NVXX33yySe2NofI+wwbNowx1qRJk44dOzLGbGWGv79/z549S5Qo0bNnz0qVKtnKDOI9ISwsrE+fPi4uLu3atfvss8/SmSlOmTLFSkblRUJCQp49exaenNjYWDk0ExwcXLVq1UqVKh09enTq1Kk9e/Z0dHS0tcm5m9DQ0DJlynh4eNy6dWvQoEEdOnQoUqSIrY2yBgkJCffv3w9PRf78+TUaTVRUVL58+erUqRMTEzNkyJCyZcvWqFHD1iYTeRaDwRAdHV2/fn0nJ6dp06Y9fvy4VatW2bRWVFTUo0ePUr/yCxcuzBgLCwsrUaJEzZo1Hzx4MGDAgFatWpUoUSKbLCGImJgYe3t7Ly+v+Pj44cOHu7m51a5d+02TGefcmsblMaZMmaLOqZSpWrVqikFJkurUqdO3b99BgwZZ0bo8znfffefq6rps2TJbG2INbty40blz59Tj27dvr1atmnpk+fLlq1at+ueff6xlGvFec+XKlXr16sn6Pjuu/7///W/ixImpx//5558UccmBAwfGxMRs3LgxO8wgiBT88ccfM2fO/Pfff980gSKD78SUKVMy4vwTBKFixYovX77MfoveIypWrHjjxg1bW2ElqlevHhgYmJGZ9EojrEmlSpUkSQoPD88mddWhQ4cOHTpk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nTp16NChbI5406ZNx44dy84JDQ0dMWIES6hy+RPcz89v1KhR6enpBQUFU6ZMeeCBBy5evLhz58527doNHz5cPm3Hjh3//Oc/S0tL//jjj48//rhNmzbR0dF5eXnz58+/du3aunXrWrZsqdFolixZsm3btqioqGvXrrn4bhctWtStW7ebDF1QUakYV65cmTVr1vTp0z3m54SEhGzevLlp06ay35TjuN27dw8bNow1zXnssceWLl0aFRW1YsWK3r17uydvLV68uFmzZkOHDq3qN3JbQb1ky5YtAQEBV65coZROmTLl+eefZ+tffPFFmzZtvL2bys2x2WzZ2dnKFb1ef/r0afcze/fuvXPnTuWKwWA4ceKEwWBgu3/88ceff/7pfuH777/v8dGlpaUnTpwoKytju+fOnfvrr7/Kb/myZcvGjBlT/vNVVMrPmTNn4uPj7Xa7txeuXLnS43dBOZk/f36/fv2uXbv2xhtvHD58uKysLDExMScnh1KalZXVt29fdlp4eLj8jSNjNBobNWp06dKlCj9dReVG/Pjjj4GBgUaj8UYnzJ07V/5lzRAEISsrKzc3l+1ev3791KlTNpvN4+WJiYkHDx6sRIPvBLyODF6+fLlRo0YxMTFwrosOCAhQyzUrHa1WKztsGaGhoW3atHE/c9q0aZ988olyJSQkpEOHDnJhSPPmzT2m094oWy4sLKxDhw7yoNyWLVt6nHhzIz755JPJkyeX/3wVlfLTunXrPn363LJHjDu///7730kqDw8Pj4yMjI6O/u9//9utW7e1a9eGhISwmHvbtm2zs7NvUvDx1VdfTZw4MS4ursJPV1FxoaCg4Pvvvwdw4MCB4cOH3yRyN378+K1btyrT1Qkhbdu2lfu5R0VFJSYmeoxop6amxsTElDMhREXGa3UVGxt7+fJl9+EnBw4ccNEBKtXJgw8+qNVqMzMzvbpq7969d911V6Ubs2PHjtatW7tPglNRqSw++uijhQsXuufq3oSVK1f+/dAG+8OSkZ2dbbPZ1krMnTv3RnHw3NzcTZs2yd19VVQqhRdeeGH06NFXr1796aefJk2adJMzIyIiXn/99c8++6wCT5k7d+6CBQsqauOdi9fqKikpKSgo6IUXXjCZTLLvasOGDV999VVycnJlm6fiBZ988smUKVPKysrKeb7RaNy1axfrSV2JXL9+/cMPP6zY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7u5eyhdbadOkrl+/Xr9+/blz544ePfrSpUtLliwhaXVHTp8+3aZNm169eq1Zs4bqitmFzMzMDh06dOvWbeHChXl5ec42515k2bJlrVq1Gj58+F9//eVsW4gqzpw5c9q0aTN69Ojz58870YzMzMz27dvT2wLhAOLi4u6///7IyMj333/fZDKVMJMqMpSfxMREzR2tZ8CAAb6+vufPn4+NjW3QoMHZs2dfffXVqVOnTp482fFGViWSk5P37NnTqlWruLi4adOmtW/f/o412Koehw8fLrx6Nygo6F//+heAnTt31qhRw9PTc+PGjcuXL//7779L9l0TRLn54YcfwsPDDQbD+vXrv/766zNnzoSEhFTEhYxG4+bNmwuPd+/ePTQ09Pbt23v37m3ZsmVcXNzUqVM7duy4bt26ijCDIK5fv37s2LEmTZrExsZOmjRp6NChS5YsKW5yadVVQkLCBx98UPKc5s2bjxkzpmzGVmbOnTu3ePHiwuPvvvtu7dq19SOffvrpRx99dOzYMUeZVvU5fPhwz549MzMzRVF0ti0O5dNPP42OjrYZbNiw4fz5820Ge/ToMWjQINL0hANo1arV9OnTn3rqqYo4eWZm5iuvvFJ4/LXXXrOJ0fz555+9e/fOyMiobm8LhOPZuXPn+PHj4+LiiptQ2ryrmjVrlqDRqifNmjX78ssvSzPT29vbaDRWtD3VCi8vL5PJZDabq9vb6NixY8eOHVuamd7e3vn5+RVtD0EA8PLyqrgXm4+PTynfaeW3BUmSqtvbAuF47vixTuWpKoo9e/bIqvbcuXPvvPPOgAEDnG1Rpefw4cMXLlyQJOnGjRvTp0/v27evq6urs426hygoKNi2bVt2dnZBQcF33323Z88eOVxIEHYnPT39l19+yc3NNRqNa9asOXXqVK9evZxiif5tYcaMGX379qXVskQFsX///tjYWM75lStX5syZU/LHOqmriuLgwYMdOnQQBKFPnz59+vQpHLghykpMTIysqNq0aRMUFPTZZ58526J7C0mSlixZEhIS4uvr+84773z99ddt27Z1tlFE1aSgoGDOnDmBgYEBAQHr1q3bunWrszL8Ll68qL0tBAcHV8NcTMJh/P3335GRkQaDoUuXLi1btly+fHkJk++qVjtBEARBEARhA/muCIIgCIIg7AmpK4IgCIIgCHtC6oogCIIgCMKe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CYSSQKRIlRakhY50BEQpERBQrAgKXFD0pyiK4lXUiyIqUgRE4QqCIFxAASmCSJEWEERCKNJLCsm22Zk55/fH7C4hJJCEFMD5PPvozpkzc84um5l3vudbcoOprm51jMyKxnOG3W7Xdd34+/n0009DfapXr56cnJzlwEWLFhm24k2bNhmBfkb7li1btm7dCoBzvmHDBsOf8Vrmz59vxDetW7eOMRY6/Mcff8xl3NOlS5eqV6+el89q8o/G6/Vu3749VJDAiCoHkJSUlDkte926dRMTEzMfuGfPnvLlyxuF/L777jtKqbHSxzn/9ttvjWW+NWvWOJ3ODz/88NpxN23aFB0dPWXKFONwp9NpJBlhjC1fvvw6BRKyJSEhoVKlSpIkrV+/vlGjRpl3JSYmXichsInJzbB3795slwUBVKtW7dobxI8//rh582YA+/fvP3/+fOgKn5SUtHTp0iydk5OTo6Kiij5b9W2Nqa5uaVRV3bJlS+j6LghCqVKlHA7Hrl27atWqFerWsGFDQ0iF2LdvX9++fadPnw5g6dKlFovF8JpSFOX777830sqtWLGiffv2PXr0uHbczZs3Dxo0aOHChZzzFStWUEqNw91u94YNG7p06ZKbye/evTtkAzAxuSE7d+5UFCW0Bt2lSxe3233y5Mkvv/zy0UcfDXVr3779li1bMrte+Xy+UqVKde/efc6cOffff3+TJk1WrVp15syZCRMmPPbYYxaLBcD58+ddLpfxF5EFn88XExPTvn37qVOnDh48uHLlyhs3bjx58uSbb745bNiwnFL45oTP58vJOvXrr7926NAhT2czMckNHo8nMTExJ3XVqFGjP//8M3OZ2vPnzz/wwAPGw8b8+fNLlixpXOF1XZ82bdq1hRB27drVpEmTQpv+nQnhZnXGW5hjx47VqFHjjz/+qFmzJgCPx9OuXbt+/fplZGS89tproQRXPp+vdOnS+/btq1KlitGSnp7es2fPXr16nT17tkePHgkJCb/99tt99913/PjxESNGlC1bFsCRI0fi4+M1Tdu5c2eWBfWLFy/Gx8f379//2LFjAwcOXLNmzV9//dWsWbOTJ0+OGjUqN47tXq+3ZMmShw8fzl/tBZN/IJcvX163bl3v3r1DLXv27ElISHjggQcyJ7/lnNeqVevbb7/NnD533759W7dubdasWf369X0+39KlSwkh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", + "text/html": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ], + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "metadata": {}, + "execution_count": 7 + } + ], + "cell_type": "code", + "source": [ + "kernels = [\n", + " Matern12Kernel(),\n", + " Matern32Kernel(),\n", + " Matern52Kernel(),\n", + " SqExponentialKernel(),\n", + " WhiteKernel(),\n", + " ConstantKernel(),\n", + " LinearKernel(),\n", + " compose(PeriodicKernel(), ScaleTransform(0.2)),\n", + " NeuralNetworkKernel(),\n", + " GibbsKernel(; lengthscale=x -> sum(exp ∘ sin, x)),\n", + "]\n", + "plot(\n", + " [visualize(k) for k in kernels]...;\n", + " layout=(length(kernels), 1),\n", + " size=(800, 220 * length(kernels) + 100),\n", + ")" + ], + "metadata": {}, + "execution_count": 7 + }, + { + "cell_type": "markdown", + "source": [ + "
    \n", + "
    Package and system information
    \n", + "
    \n", + "Package information (click to expand)\n", + "
    \n",
    +    "Status `~/work/KernelFunctions.jl/KernelFunctions.jl/examples/gaussian-process-priors/Project.toml`\n",
    +    "  [31c24e10] Distributions v0.25.103\n",
    +    "  [ec8451be] KernelFunctions v0.10.59 `/home/runner/work/KernelFunctions.jl/KernelFunctions.jl#ec19a94`\n",
    +    "  [98b081ad] Literate v2.16.0\n",
    +    "  [91a5bcdd] Plots v1.39.0\n",
    +    "  [37e2e46d] LinearAlgebra\n",
    +    "  [9a3f8284] Random\n",
    +    "
    \n", + "To reproduce this notebook's package environment, you can\n", + "\n", + "download the full Manifest.toml.\n", + "
    \n", + "
    \n", + "System information (click to expand)\n", + "
    \n",
    +    "Julia Version 1.9.4\n",
    +    "Commit 8e5136fa297 (2023-11-14 08:46 UTC)\n",
    +    "Build Info:\n",
    +    "  Official https://julialang.org/ release\n",
    +    "Platform Info:\n",
    +    "  OS: Linux (x86_64-linux-gnu)\n",
    +    "  CPU: 4 × AMD EPYC 7763 64-Core Processor\n",
    +    "  WORD_SIZE: 64\n",
    +    "  LIBM: libopenlibm\n",
    +    "  LLVM: libLLVM-14.0.6 (ORCJIT, znver3)\n",
    +    "  Threads: 1 on 4 virtual cores\n",
    +    "Environment:\n",
    +    "  JULIA_DEBUG = Documenter\n",
    +    "  JULIA_LOAD_PATH = :/home/runner/.julia/packages/JuliaGPsDocs/7M86H/src\n",
    +    "
    \n", + "
    " + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "---\n", + "\n", + "*This notebook was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).*" + ], + "metadata": {} + } + ], + "nbformat_minor": 3, + "metadata": { + "language_info": { + "file_extension": ".jl", + "mimetype": "application/julia", + "name": "julia", + "version": "1.9.4" + }, + "kernelspec": { + "name": "julia-1.9", + "display_name": "Julia 1.9.4", + "language": "julia" + } + }, + "nbformat": 4 +} diff --git a/v0.10.59/examples/kernel-ridge-regression/Manifest.toml b/v0.10.59/examples/kernel-ridge-regression/Manifest.toml new file mode 100644 index 000000000..aa774fb05 --- /dev/null +++ b/v0.10.59/examples/kernel-ridge-regression/Manifest.toml @@ -0,0 +1,1209 @@ +# This file is machine-generated - editing it directly is not advised + +julia_version = "1.9.4" +manifest_format = "2.0" +project_hash = "871a60b57cfc97ea19ecb86f8d3c3aac749bf4ef" + +[[deps.ArgTools]] +uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" +version = "1.1.1" + +[[deps.Artifacts]] +uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" + +[[deps.Base64]] +uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" + +[[deps.BitFlags]] +git-tree-sha1 = "2dc09997850d68179b69dafb58ae806167a32b1b" +uuid = "d1d4a3ce-64b1-5f1a-9ba4-7e7e69966f35" +version = "0.1.8" + +[[deps.Bzip2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "19a35467a82e236ff51bc17a3a44b69ef35185a2" +uuid = "6e34b625-4abd-537c-b88f-471c36dfa7a0" +version = "1.0.8+0" + +[[deps.Cairo_jll]] +deps = ["Artifacts", "Bzip2_jll", "CompilerSupportLibraries_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "LZO_jll", "Libdl", "Pixman_jll", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"] +git-tree-sha1 = "4b859a208b2397a7a623a03449e4636bdb17bcf2" +uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a" +version = "1.16.1+1" + +[[deps.Calculus]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "f641eb0a4f00c343bbc32346e1217b86f3ce9dad" +uuid = "49dc2e85-a5d0-5ad3-a950-438e2897f1b9" +version = "0.5.1" + +[[deps.ChainRulesCore]] +deps = ["Compat", "LinearAlgebra"] +git-tree-sha1 = "e0af648f0692ec1691b5d094b8724ba1346281cf" +uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" +version = "1.18.0" +weakdeps = ["SparseArrays"] + + [deps.ChainRulesCore.extensions] + ChainRulesCoreSparseArraysExt = "SparseArrays" + +[[deps.CodecZlib]] +deps = ["TranscodingStreams", "Zlib_jll"] +git-tree-sha1 = "cd67fc487743b2f0fd4380d4cbd3a24660d0eec8" +uuid = "944b1d66-785c-5afd-91f1-9de20f533193" +version = "0.7.3" + +[[deps.ColorSchemes]] +deps = ["ColorTypes", "ColorVectorSpace", "Colors", "FixedPointNumbers", "PrecompileTools", "Random"] +git-tree-sha1 = "67c1f244b991cad9b0aa4b7540fb758c2488b129" +uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4" +version = "3.24.0" + +[[deps.ColorTypes]] +deps = ["FixedPointNumbers", "Random"] +git-tree-sha1 = "eb7f0f8307f71fac7c606984ea5fb2817275d6e4" +uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f" +version = "0.11.4" + +[[deps.ColorVectorSpace]] +deps = ["ColorTypes", "FixedPointNumbers", "LinearAlgebra", "Requires", "Statistics", "TensorCore"] +git-tree-sha1 = "a1f44953f2382ebb937d60dafbe2deea4bd23249" +uuid = "c3611d14-8923-5661-9e6a-0046d554d3a4" +version = "0.10.0" +weakdeps = ["SpecialFunctions"] + + [deps.ColorVectorSpace.extensions] + SpecialFunctionsExt = "SpecialFunctions" + +[[deps.Colors]] +deps = ["ColorTypes", "FixedPointNumbers", "Reexport"] +git-tree-sha1 = "fc08e5930ee9a4e03f84bfb5211cb54e7769758a" +uuid = "5ae59095-9a9b-59fe-a467-6f913c188581" +version = "0.12.10" + +[[deps.Compat]] +deps = ["UUIDs"] +git-tree-sha1 = "8a62af3e248a8c4bad6b32cbbe663ae02275e32c" +uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" +version = "4.10.0" +weakdeps = ["Dates", "LinearAlgebra"] + + [deps.Compat.extensions] + CompatLinearAlgebraExt = "LinearAlgebra" + +[[deps.CompilerSupportLibraries_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" +version = "1.0.5+0" + +[[deps.CompositionsBase]] +git-tree-sha1 = "802bb88cd69dfd1509f6670416bd4434015693ad" +uuid = "a33af91c-f02d-484b-be07-31d278c5ca2b" +version = "0.1.2" + + [deps.CompositionsBase.extensions] + CompositionsBaseInverseFunctionsExt = "InverseFunctions" + + [deps.CompositionsBase.weakdeps] + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.ConcurrentUtilities]] +deps = ["Serialization", "Sockets"] +git-tree-sha1 = "8cfa272e8bdedfa88b6aefbbca7c19f1befac519" +uuid = "f0e56b4a-5159-44fe-b623-3e5288b988bb" +version = "2.3.0" + +[[deps.Contour]] +git-tree-sha1 = "d05d9e7b7aedff4e5b51a029dced05cfb6125781" +uuid = "d38c429a-6771-53c6-b99e-75d170b6e991" +version = "0.6.2" + +[[deps.DataAPI]] +git-tree-sha1 = "8da84edb865b0b5b0100c0666a9bc9a0b71c553c" +uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" +version = "1.15.0" + +[[deps.DataStructures]] +deps = ["Compat", "InteractiveUtils", "OrderedCollections"] +git-tree-sha1 = "3dbd312d370723b6bb43ba9d02fc36abade4518d" +uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" +version = "0.18.15" + +[[deps.Dates]] +deps = ["Printf"] +uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" + +[[deps.DelimitedFiles]] +deps = ["Mmap"] +git-tree-sha1 = "9e2f36d3c96a820c678f2f1f1782582fcf685bae" +uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab" +version = "1.9.1" + +[[deps.Distances]] +deps = ["LinearAlgebra", "Statistics", "StatsAPI"] +git-tree-sha1 = "5225c965635d8c21168e32a12954675e7bea1151" +uuid = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7" +version = "0.10.10" +weakdeps = ["ChainRulesCore", "SparseArrays"] + + [deps.Distances.extensions] + DistancesChainRulesCoreExt = "ChainRulesCore" + DistancesSparseArraysExt = "SparseArrays" + +[[deps.Distributions]] +deps = ["FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns"] +git-tree-sha1 = "a6c00f894f24460379cb7136633cef54ac9f6f4a" +uuid = "31c24e10-a181-5473-b8eb-7969acd0382f" +version = "0.25.103" + + [deps.Distributions.extensions] + DistributionsChainRulesCoreExt = "ChainRulesCore" + DistributionsDensityInterfaceExt = "DensityInterface" + DistributionsTestExt = "Test" + + [deps.Distributions.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + DensityInterface = "b429d917-457f-4dbc-8f4c-0cc954292b1d" + Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[[deps.DocStringExtensions]] +deps = ["LibGit2"] +git-tree-sha1 = "2fb1e02f2b635d0845df5d7c167fec4dd739b00d" +uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" +version = "0.9.3" + +[[deps.Downloads]] +deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] +uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6" +version = "1.6.0" + +[[deps.DualNumbers]] +deps = ["Calculus", "NaNMath", "SpecialFunctions"] +git-tree-sha1 = "5837a837389fccf076445fce071c8ddaea35a566" +uuid = "fa6b7ba4-c1ee-5f82-b5fc-ecf0adba8f74" +version = "0.6.8" + +[[deps.EpollShim_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "8e9441ee83492030ace98f9789a654a6d0b1f643" +uuid = "2702e6a9-849d-5ed8-8c21-79e8b8f9ee43" +version = "0.0.20230411+0" + +[[deps.ExceptionUnwrapping]] +deps = ["Test"] +git-tree-sha1 = "e90caa41f5a86296e014e148ee061bd6c3edec96" +uuid = "460bff9d-24e4-43bc-9d9f-a8973cb893f4" +version = "0.1.9" + +[[deps.Expat_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "4558ab818dcceaab612d1bb8c19cee87eda2b83c" +uuid = "2e619515-83b5-522b-bb60-26c02a35a201" +version = "2.5.0+0" + +[[deps.FFMPEG]] +deps = ["FFMPEG_jll"] +git-tree-sha1 = "b57e3acbe22f8484b4b5ff66a7499717fe1a9cc8" +uuid = "c87230d0-a227-11e9-1b43-d7ebe4e7570a" +version = "0.4.1" + +[[deps.FFMPEG_jll]] +deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "JLLWrappers", "LAME_jll", "Libdl", "Ogg_jll", "OpenSSL_jll", "Opus_jll", "PCRE2_jll", "Zlib_jll", "libaom_jll", "libass_jll", "libfdk_aac_jll", "libvorbis_jll", "x264_jll", "x265_jll"] +git-tree-sha1 = "466d45dc38e15794ec7d5d63ec03d776a9aff36e" +uuid = "b22a6f82-2f65-5046-a5b2-351ab43fb4e5" +version = "4.4.4+1" + +[[deps.FileWatching]] +uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" + +[[deps.FillArrays]] +deps = ["LinearAlgebra", "Random"] +git-tree-sha1 = "35f0c0f345bff2c6d636f95fdb136323b5a796ef" +uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" +version = "1.7.0" +weakdeps = ["SparseArrays", "Statistics"] + + [deps.FillArrays.extensions] + FillArraysSparseArraysExt = "SparseArrays" + FillArraysStatisticsExt = "Statistics" + +[[deps.FixedPointNumbers]] +deps = ["Statistics"] +git-tree-sha1 = "335bfdceacc84c5cdf16aadc768aa5ddfc5383cc" +uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93" +version = "0.8.4" + +[[deps.Fontconfig_jll]] +deps = ["Artifacts", "Bzip2_jll", "Expat_jll", "FreeType2_jll", "JLLWrappers", "Libdl", "Libuuid_jll", "Pkg", "Zlib_jll"] +git-tree-sha1 = "21efd19106a55620a188615da6d3d06cd7f6ee03" +uuid = "a3f928ae-7b40-5064-980b-68af3947d34b" +version = "2.13.93+0" + +[[deps.Formatting]] +deps = ["Printf"] +git-tree-sha1 = "8339d61043228fdd3eb658d86c926cb282ae72a8" +uuid = "59287772-0a20-5a39-b81b-1366585eb4c0" +version = "0.4.2" + +[[deps.FreeType2_jll]] +deps = ["Artifacts", "Bzip2_jll", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "d8db6a5a2fe1381c1ea4ef2cab7c69c2de7f9ea0" +uuid = "d7e528f0-a631-5988-bf34-fe36492bcfd7" +version = "2.13.1+0" + +[[deps.FriBidi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "aa31987c2ba8704e23c6c8ba8a4f769d5d7e4f91" +uuid = "559328eb-81f9-559d-9380-de523a88c83c" +version = "1.0.10+0" + +[[deps.Functors]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "9a68d75d466ccc1218d0552a8e1631151c569545" +uuid = "d9f16b24-f501-4c13-a1f2-28368ffc5196" +version = "0.4.5" + +[[deps.GLFW_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libglvnd_jll", "Pkg", "Xorg_libXcursor_jll", "Xorg_libXi_jll", "Xorg_libXinerama_jll", "Xorg_libXrandr_jll"] +git-tree-sha1 = "d972031d28c8c8d9d7b41a536ad7bb0c2579caca" +uuid = "0656b61e-2033-5cc2-a64a-77c0f6c09b89" +version = "3.3.8+0" + +[[deps.GR]] +deps = ["Artifacts", "Base64", "DelimitedFiles", "Downloads", "GR_jll", "HTTP", "JSON", "Libdl", "LinearAlgebra", "Pkg", "Preferences", "Printf", "Random", "Serialization", "Sockets", "TOML", "Tar", "Test", "UUIDs", "p7zip_jll"] +git-tree-sha1 = "27442171f28c952804dede8ff72828a96f2bfc1f" +uuid = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71" +version = "0.72.10" + +[[deps.GR_jll]] +deps = ["Artifacts", "Bzip2_jll", "Cairo_jll", "FFMPEG_jll", "Fontconfig_jll", "FreeType2_jll", "GLFW_jll", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Libtiff_jll", "Pixman_jll", "Qt6Base_jll", "Zlib_jll", "libpng_jll"] +git-tree-sha1 = "025d171a2847f616becc0f84c8dc62fe18f0f6dd" +uuid = "d2c73de3-f751-5644-a686-071e5b155ba9" +version = "0.72.10+0" + +[[deps.Gettext_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "XML2_jll"] +git-tree-sha1 = "9b02998aba7bf074d14de89f9d37ca24a1a0b046" +uuid = "78b55507-aeef-58d4-861c-77aaff3498b1" +version = "0.21.0+0" + +[[deps.Glib_jll]] +deps = ["Artifacts", "Gettext_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE2_jll", "Zlib_jll"] +git-tree-sha1 = "e94c92c7bf4819685eb80186d51c43e71d4afa17" +uuid = "7746bdde-850d-59dc-9ae8-88ece973131d" +version = "2.76.5+0" + +[[deps.Graphite2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "344bf40dcab1073aca04aa0df4fb092f920e4011" +uuid = "3b182d85-2403-5c21-9c21-1e1f0cc25472" +version = "1.3.14+0" + +[[deps.Grisu]] +git-tree-sha1 = "53bb909d1151e57e2484c3d1b53e19552b887fb2" +uuid = "42e2da0e-8278-4e71-bc24-59509adca0fe" +version = "1.0.2" + +[[deps.HTTP]] +deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] +git-tree-sha1 = "5eab648309e2e060198b45820af1a37182de3cce" +uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" +version = "1.10.0" + +[[deps.HarfBuzz_jll]] +deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg"] +git-tree-sha1 = "129acf094d168394e80ee1dc4bc06ec835e510a3" +uuid = "2e76f6c2-a576-52d4-95c1-20adfe4de566" +version = "2.8.1+1" + +[[deps.HypergeometricFunctions]] +deps = ["DualNumbers", "LinearAlgebra", "OpenLibm_jll", "SpecialFunctions"] +git-tree-sha1 = "f218fe3736ddf977e0e772bc9a586b2383da2685" +uuid = "34004b35-14d8-5ef3-9330-4cdb6864b03a" +version = "0.3.23" + +[[deps.IOCapture]] +deps = ["Logging", "Random"] +git-tree-sha1 = "d75853a0bdbfb1ac815478bacd89cd27b550ace6" +uuid = "b5f81e59-6552-4d32-b1f0-c071b021bf89" +version = "0.2.3" + +[[deps.InteractiveUtils]] +deps = ["Markdown"] +uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" + +[[deps.IrrationalConstants]] +git-tree-sha1 = "630b497eafcc20001bba38a4651b327dcfc491d2" +uuid = "92d709cd-6900-40b7-9082-c6be49f344b6" +version = "0.2.2" + +[[deps.JLFzf]] +deps = ["Pipe", "REPL", "Random", "fzf_jll"] +git-tree-sha1 = "9fb0b890adab1c0a4a475d4210d51f228bfc250d" +uuid = "1019f520-868f-41f5-a6de-eb00f4b6a39c" +version = "0.1.6" + +[[deps.JLLWrappers]] +deps = ["Artifacts", "Preferences"] +git-tree-sha1 = "7e5d6779a1e09a36db2a7b6cff50942a0a7d0fca" +uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" +version = "1.5.0" + +[[deps.JSON]] +deps = ["Dates", "Mmap", "Parsers", "Unicode"] +git-tree-sha1 = "31e996f0a15c7b280ba9f76636b3ff9e2ae58c9a" +uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" +version = "0.21.4" + +[[deps.JpegTurbo_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "6f2675ef130a300a112286de91973805fcc5ffbc" +uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" +version = "2.1.91+0" + +[[deps.KernelFunctions]] +deps = ["ChainRulesCore", "Compat", "CompositionsBase", "Distances", "FillArrays", "Functors", "IrrationalConstants", "LinearAlgebra", "LogExpFunctions", "Random", "Requires", "SpecialFunctions", "Statistics", "StatsBase", "TensorCore", "Test", "ZygoteRules"] +git-tree-sha1 = "2e9c8eb5f2acd58fe7b738affe2ca24da171c904" +repo-rev = "ec19a948f0d43543be1edf24a5ebac6fe3195f5a" +repo-url = "/home/runner/work/KernelFunctions.jl/KernelFunctions.jl" +uuid = "ec8451be-7e33-11e9-00cf-bbf324bd1392" +version = "0.10.59" + +[[deps.LAME_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "f6250b16881adf048549549fba48b1161acdac8c" +uuid = "c1c5ebd0-6772-5130-a774-d5fcae4a789d" +version = "3.100.1+0" + +[[deps.LERC_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "bf36f528eec6634efc60d7ec062008f171071434" +uuid = "88015f11-f218-50d7-93a8-a6af411a945d" +version = "3.0.0+1" + +[[deps.LLVMOpenMP_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "f689897ccbe049adb19a065c495e75f372ecd42b" +uuid = "1d63c593-3942-5779-bab2-d838dc0a180e" +version = "15.0.4+0" + +[[deps.LZO_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "e5b909bcf985c5e2605737d2ce278ed791b89be6" +uuid = "dd4b983a-f0e5-5f8d-a1b7-129d4a5fb1ac" +version = "2.10.1+0" + +[[deps.LaTeXStrings]] +git-tree-sha1 = "50901ebc375ed41dbf8058da26f9de442febbbec" +uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" +version = "1.3.1" + +[[deps.Latexify]] +deps = ["Formatting", "InteractiveUtils", "LaTeXStrings", "MacroTools", "Markdown", "OrderedCollections", "Printf", "Requires"] +git-tree-sha1 = "f428ae552340899a935973270b8d98e5a31c49fe" +uuid = "23fbe1c1-3f47-55db-b15f-69d7ec21a316" +version = "0.16.1" + + [deps.Latexify.extensions] + DataFramesExt = "DataFrames" + SymEngineExt = "SymEngine" + + [deps.Latexify.weakdeps] + DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" + SymEngine = "123dc426-2d89-5057-bbad-38513e3affd8" + +[[deps.LibCURL]] +deps = ["LibCURL_jll", "MozillaCACerts_jll"] +uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21" +version = "0.6.4" + +[[deps.LibCURL_jll]] +deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"] +uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0" +version = "8.4.0+0" + +[[deps.LibGit2]] +deps = ["Base64", "NetworkOptions", "Printf", "SHA"] +uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" + +[[deps.LibSSH2_jll]] +deps = ["Artifacts", "Libdl", "MbedTLS_jll"] +uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8" +version = "1.11.0+1" + +[[deps.Libdl]] +uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" + +[[deps.Libffi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "0b4a5d71f3e5200a7dff793393e09dfc2d874290" +uuid = "e9f186c6-92d2-5b65-8a66-fee21dc1b490" +version = "3.2.2+1" + +[[deps.Libgcrypt_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgpg_error_jll", "Pkg"] +git-tree-sha1 = "64613c82a59c120435c067c2b809fc61cf5166ae" +uuid = "d4300ac3-e22c-5743-9152-c294e39db1e4" +version = "1.8.7+0" + +[[deps.Libglvnd_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll", "Xorg_libXext_jll"] +git-tree-sha1 = "6f73d1dd803986947b2c750138528a999a6c7733" +uuid = "7e76a0d4-f3c7-5321-8279-8d96eeed0f29" +version = "1.6.0+0" + +[[deps.Libgpg_error_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "c333716e46366857753e273ce6a69ee0945a6db9" +uuid = "7add5ba3-2f88-524e-9cd5-f83b8a55f7b8" +version = "1.42.0+0" + +[[deps.Libiconv_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "f9557a255370125b405568f9767d6d195822a175" +uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531" +version = "1.17.0+0" + +[[deps.Libmount_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "9c30530bf0effd46e15e0fdcf2b8636e78cbbd73" +uuid = "4b2f31a3-9ecc-558c-b454-b3730dcb73e9" +version = "2.35.0+0" + +[[deps.Libtiff_jll]] +deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "LERC_jll", "Libdl", "XZ_jll", "Zlib_jll", "Zstd_jll"] +git-tree-sha1 = "2da088d113af58221c52828a80378e16be7d037a" +uuid = "89763e89-9b03-5906-acba-b20f662cd828" +version = "4.5.1+1" + +[[deps.Libuuid_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "7f3efec06033682db852f8b3bc3c1d2b0a0ab066" +uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700" +version = "2.36.0+0" + +[[deps.LinearAlgebra]] +deps = ["Libdl", "OpenBLAS_jll", "libblastrampoline_jll"] +uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" + +[[deps.Literate]] +deps = ["Base64", "IOCapture", "JSON", "REPL"] +git-tree-sha1 = "7cf4b8ca67b6a86a2ad7526bfe514ecd00d944f9" +uuid = "98b081ad-f1c9-55d3-8b20-4c87d4299306" +version = "2.16.0" + +[[deps.LogExpFunctions]] +deps = ["DocStringExtensions", "IrrationalConstants", "LinearAlgebra"] +git-tree-sha1 = "7d6dd4e9212aebaeed356de34ccf262a3cd415aa" +uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688" +version = "0.3.26" + + [deps.LogExpFunctions.extensions] + LogExpFunctionsChainRulesCoreExt = "ChainRulesCore" + LogExpFunctionsChangesOfVariablesExt = "ChangesOfVariables" + LogExpFunctionsInverseFunctionsExt = "InverseFunctions" + + [deps.LogExpFunctions.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + ChangesOfVariables = "9e997f8a-9a97-42d5-a9f1-ce6bfc15e2c0" + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.Logging]] +uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" + +[[deps.LoggingExtras]] +deps = ["Dates", "Logging"] +git-tree-sha1 = "c1dd6d7978c12545b4179fb6153b9250c96b0075" +uuid = "e6f89c97-d47a-5376-807f-9c37f3926c36" +version = "1.0.3" + +[[deps.MacroTools]] +deps = ["Markdown", "Random"] +git-tree-sha1 = "9ee1618cbf5240e6d4e0371d6f24065083f60c48" +uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" +version = "0.5.11" + +[[deps.Markdown]] +deps = ["Base64"] +uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" + +[[deps.MbedTLS]] +deps = ["Dates", "MbedTLS_jll", "MozillaCACerts_jll", "NetworkOptions", "Random", "Sockets"] +git-tree-sha1 = "f512dc13e64e96f703fd92ce617755ee6b5adf0f" +uuid = "739be429-bea8-5141-9913-cc70e7f3736d" +version = "1.1.8" + +[[deps.MbedTLS_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" +version = "2.28.2+0" + +[[deps.Measures]] +git-tree-sha1 = "c13304c81eec1ed3af7fc20e75fb6b26092a1102" +uuid = "442fdcdd-2543-5da2-b0f3-8c86c306513e" +version = "0.3.2" + +[[deps.Missings]] +deps = ["DataAPI"] +git-tree-sha1 = "f66bdc5de519e8f8ae43bdc598782d35a25b1272" +uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28" +version = "1.1.0" + +[[deps.Mmap]] +uuid = "a63ad114-7e13-5084-954f-fe012c677804" + +[[deps.MozillaCACerts_jll]] +uuid = "14a3606d-f60d-562e-9121-12d972cd8159" +version = "2022.10.11" + +[[deps.NaNMath]] +deps = ["OpenLibm_jll"] +git-tree-sha1 = "0877504529a3e5c3343c6f8b4c0381e57e4387e4" +uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" +version = "1.0.2" + +[[deps.NetworkOptions]] +uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" +version = "1.2.0" + +[[deps.Ogg_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "887579a3eb005446d514ab7aeac5d1d027658b8f" +uuid = "e7412a2a-1a6e-54c0-be00-318e2571c051" +version = "1.3.5+1" + +[[deps.OpenBLAS_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] +uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" +version = "0.3.21+4" + +[[deps.OpenLibm_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "05823500-19ac-5b8b-9628-191a04bc5112" +version = "0.8.1+0" + +[[deps.OpenSSL]] +deps = ["BitFlags", "Dates", "MozillaCACerts_jll", "OpenSSL_jll", "Sockets"] +git-tree-sha1 = "51901a49222b09e3743c65b8847687ae5fc78eb2" +uuid = "4d8831e6-92b7-49fb-bdf8-b643e874388c" +version = "1.4.1" + +[[deps.OpenSSL_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "cc6e1927ac521b659af340e0ca45828a3ffc748f" +uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" +version = "3.0.12+0" + +[[deps.OpenSpecFun_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "13652491f6856acfd2db29360e1bbcd4565d04f1" +uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" +version = "0.5.5+0" + +[[deps.Opus_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "51a08fb14ec28da2ec7a927c4337e4332c2a4720" +uuid = "91d4177d-7536-5919-b921-800302f37372" +version = "1.3.2+0" + +[[deps.OrderedCollections]] +git-tree-sha1 = "2e73fe17cac3c62ad1aebe70d44c963c3cfdc3e3" +uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" +version = "1.6.2" + +[[deps.PCRE2_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "efcefdf7-47ab-520b-bdef-62a2eaa19f15" +version = "10.42.0+0" + +[[deps.PDMats]] +deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] +git-tree-sha1 = "f6f85a2edb9c356b829934ad3caed2ad0ebbfc99" +uuid = "90014a1f-27ba-587c-ab20-58faa44d9150" +version = "0.11.29" + +[[deps.Parsers]] +deps = ["Dates", "PrecompileTools", "UUIDs"] +git-tree-sha1 = "a935806434c9d4c506ba941871b327b96d41f2bf" +uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" +version = "2.8.0" + +[[deps.Pipe]] +git-tree-sha1 = "6842804e7867b115ca9de748a0cf6b364523c16d" +uuid = "b98c9c47-44ae-5843-9183-064241ee97a0" +version = "1.3.0" + +[[deps.Pixman_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LLVMOpenMP_jll", "Libdl"] +git-tree-sha1 = "64779bc4c9784fee475689a1752ef4d5747c5e87" +uuid = "30392449-352a-5448-841d-b1acce4e97dc" +version = "0.42.2+0" + +[[deps.Pkg]] +deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"] +uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" +version = "1.9.2" + +[[deps.PlotThemes]] +deps = ["PlotUtils", "Statistics"] +git-tree-sha1 = "1f03a2d339f42dca4a4da149c7e15e9b896ad899" +uuid = "ccf2f8ad-2431-5c83-bf29-c5338b663b6a" +version = "3.1.0" + +[[deps.PlotUtils]] +deps = ["ColorSchemes", "Colors", "Dates", "PrecompileTools", "Printf", "Random", "Reexport", "Statistics"] +git-tree-sha1 = "f92e1315dadf8c46561fb9396e525f7200cdc227" +uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" +version = "1.3.5" + +[[deps.Plots]] +deps = ["Base64", "Contour", "Dates", "Downloads", "FFMPEG", "FixedPointNumbers", "GR", "JLFzf", "JSON", "LaTeXStrings", "Latexify", "LinearAlgebra", "Measures", "NaNMath", "Pkg", "PlotThemes", "PlotUtils", "PrecompileTools", "Preferences", "Printf", "REPL", "Random", "RecipesBase", "RecipesPipeline", "Reexport", "RelocatableFolders", "Requires", "Scratch", "Showoff", "SparseArrays", "Statistics", "StatsBase", "UUIDs", "UnicodeFun", "UnitfulLatexify", "Unzip"] +git-tree-sha1 = "ccee59c6e48e6f2edf8a5b64dc817b6729f99eb5" +uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" +version = "1.39.0" + + [deps.Plots.extensions] + FileIOExt = "FileIO" + GeometryBasicsExt = "GeometryBasics" + IJuliaExt = "IJulia" + ImageInTerminalExt = "ImageInTerminal" + UnitfulExt = "Unitful" + + [deps.Plots.weakdeps] + FileIO = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" + GeometryBasics = "5c1252a2-5f33-56bf-86c9-59e7332b4326" + IJulia = "7073ff75-c697-5162-941a-fcdaad2a7d2a" + ImageInTerminal = "d8c32880-2388-543b-8c61-d9f865259254" + Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" + +[[deps.PrecompileTools]] +deps = ["Preferences"] +git-tree-sha1 = "03b4c25b43cb84cee5c90aa9b5ea0a78fd848d2f" +uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a" +version = "1.2.0" + +[[deps.Preferences]] +deps = ["TOML"] +git-tree-sha1 = "00805cd429dcb4870060ff49ef443486c262e38e" +uuid = "21216c6a-2e73-6563-6e65-726566657250" +version = "1.4.1" + +[[deps.Printf]] +deps = ["Unicode"] +uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" + +[[deps.Qt6Base_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Fontconfig_jll", "Glib_jll", "JLLWrappers", "Libdl", "Libglvnd_jll", "OpenSSL_jll", "Vulkan_Loader_jll", "Xorg_libSM_jll", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Xorg_libxcb_jll", "Xorg_xcb_util_cursor_jll", "Xorg_xcb_util_image_jll", "Xorg_xcb_util_keysyms_jll", "Xorg_xcb_util_renderutil_jll", "Xorg_xcb_util_wm_jll", "Zlib_jll", "libinput_jll", "xkbcommon_jll"] +git-tree-sha1 = "37b7bb7aabf9a085e0044307e1717436117f2b3b" +uuid = "c0090381-4147-56d7-9ebc-da0b1113ec56" +version = "6.5.3+1" + +[[deps.QuadGK]] +deps = ["DataStructures", "LinearAlgebra"] +git-tree-sha1 = "9ebcd48c498668c7fa0e97a9cae873fbee7bfee1" +uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" +version = "2.9.1" + +[[deps.REPL]] +deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] +uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" + +[[deps.Random]] +deps = ["SHA", "Serialization"] +uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" + +[[deps.RecipesBase]] +deps = ["PrecompileTools"] +git-tree-sha1 = "5c3d09cc4f31f5fc6af001c250bf1278733100ff" +uuid = "3cdcf5f2-1ef4-517c-9805-6587b60abb01" +version = "1.3.4" + +[[deps.RecipesPipeline]] +deps = ["Dates", "NaNMath", "PlotUtils", "PrecompileTools", "RecipesBase"] +git-tree-sha1 = "45cf9fd0ca5839d06ef333c8201714e888486342" +uuid = "01d81517-befc-4cb6-b9ec-a95719d0359c" +version = "0.6.12" + +[[deps.Reexport]] +git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b" +uuid = "189a3867-3050-52da-a836-e630ba90ab69" +version = "1.2.2" + +[[deps.RelocatableFolders]] +deps = ["SHA", "Scratch"] +git-tree-sha1 = "ffdaf70d81cf6ff22c2b6e733c900c3321cab864" +uuid = "05181044-ff0b-4ac5-8273-598c1e38db00" +version = "1.0.1" + +[[deps.Requires]] +deps = ["UUIDs"] +git-tree-sha1 = "838a3a4188e2ded87a4f9f184b4b0d78a1e91cb7" +uuid = "ae029012-a4dd-5104-9daa-d747884805df" +version = "1.3.0" + +[[deps.Rmath]] +deps = ["Random", "Rmath_jll"] +git-tree-sha1 = "f65dcb5fa46aee0cf9ed6274ccbd597adc49aa7b" +uuid = "79098fc4-a85e-5d69-aa6a-4863f24498fa" +version = "0.7.1" + +[[deps.Rmath_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "6ed52fdd3382cf21947b15e8870ac0ddbff736da" +uuid = "f50d1b31-88e8-58de-be2c-1cc44531875f" +version = "0.4.0+0" + +[[deps.SHA]] +uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" +version = "0.7.0" + +[[deps.Scratch]] +deps = ["Dates"] +git-tree-sha1 = "3bac05bc7e74a75fd9cba4295cde4045d9fe2386" +uuid = "6c6a2e73-6563-6170-7368-637461726353" +version = "1.2.1" + +[[deps.Serialization]] +uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" + +[[deps.Showoff]] +deps = ["Dates", "Grisu"] +git-tree-sha1 = "91eddf657aca81df9ae6ceb20b959ae5653ad1de" +uuid = "992d4aef-0814-514b-bc4d-f2e9a6c4116f" +version = "1.0.3" + +[[deps.SimpleBufferStream]] +git-tree-sha1 = "874e8867b33a00e784c8a7e4b60afe9e037b74e1" +uuid = "777ac1f9-54b0-4bf8-805c-2214025038e7" +version = "1.1.0" + +[[deps.Sockets]] +uuid = "6462fe0b-24de-5631-8697-dd941f90decc" + +[[deps.SortingAlgorithms]] +deps = ["DataStructures"] +git-tree-sha1 = "5165dfb9fd131cf0c6957a3a7605dede376e7b63" +uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c" +version = "1.2.0" + +[[deps.SparseArrays]] +deps = ["Libdl", "LinearAlgebra", "Random", "Serialization", "SuiteSparse_jll"] +uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" + +[[deps.SpecialFunctions]] +deps = ["IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] +git-tree-sha1 = "e2cfc4012a19088254b3950b85c3c1d8882d864d" +uuid = "276daf66-3868-5448-9aa4-cd146d93841b" +version = "2.3.1" +weakdeps = ["ChainRulesCore"] + + [deps.SpecialFunctions.extensions] + SpecialFunctionsChainRulesCoreExt = "ChainRulesCore" + +[[deps.Statistics]] +deps = ["LinearAlgebra", "SparseArrays"] +uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" +version = "1.9.0" + +[[deps.StatsAPI]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "1ff449ad350c9c4cbc756624d6f8a8c3ef56d3ed" +uuid = "82ae8749-77ed-4fe6-ae5f-f523153014b0" +version = "1.7.0" + +[[deps.StatsBase]] +deps = ["DataAPI", "DataStructures", "LinearAlgebra", "LogExpFunctions", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics", "StatsAPI"] +git-tree-sha1 = "1d77abd07f617c4868c33d4f5b9e1dbb2643c9cf" +uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" +version = "0.34.2" + +[[deps.StatsFuns]] +deps = ["HypergeometricFunctions", "IrrationalConstants", "LogExpFunctions", "Reexport", "Rmath", "SpecialFunctions"] +git-tree-sha1 = "f625d686d5a88bcd2b15cd81f18f98186fdc0c9a" +uuid = "4c63d2b9-4356-54db-8cca-17b64c39e42c" +version = "1.3.0" + + [deps.StatsFuns.extensions] + StatsFunsChainRulesCoreExt = "ChainRulesCore" + StatsFunsInverseFunctionsExt = "InverseFunctions" + + [deps.StatsFuns.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.SuiteSparse]] +deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"] +uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9" + +[[deps.SuiteSparse_jll]] +deps = ["Artifacts", "Libdl", "Pkg", "libblastrampoline_jll"] +uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c" +version = "5.10.1+6" + +[[deps.TOML]] +deps = ["Dates"] +uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76" +version = "1.0.3" + +[[deps.Tar]] +deps = ["ArgTools", "SHA"] +uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e" +version = "1.10.0" + +[[deps.TensorCore]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "1feb45f88d133a655e001435632f019a9a1bcdb6" +uuid = "62fd8b95-f654-4bbd-a8a5-9c27f68ccd50" +version = "0.1.1" + +[[deps.Test]] +deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] +uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[[deps.TranscodingStreams]] +git-tree-sha1 = "1fbeaaca45801b4ba17c251dd8603ef24801dd84" +uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" +version = "0.10.2" +weakdeps = ["Random", "Test"] + + [deps.TranscodingStreams.extensions] + TestExt = ["Test", "Random"] + +[[deps.URIs]] +git-tree-sha1 = "67db6cc7b3821e19ebe75791a9dd19c9b1188f2b" +uuid = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4" +version = "1.5.1" + +[[deps.UUIDs]] +deps = ["Random", "SHA"] +uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" + +[[deps.Unicode]] +uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" + +[[deps.UnicodeFun]] +deps = ["REPL"] +git-tree-sha1 = "53915e50200959667e78a92a418594b428dffddf" +uuid = "1cfade01-22cf-5700-b092-accc4b62d6e1" +version = "0.4.1" + +[[deps.Unitful]] +deps = ["Dates", "LinearAlgebra", "Random"] +git-tree-sha1 = "242982d62ff0d1671e9029b52743062739255c7e" +uuid = "1986cc42-f94f-5a68-af5c-568840ba703d" +version = "1.18.0" + + [deps.Unitful.extensions] + ConstructionBaseUnitfulExt = "ConstructionBase" + InverseFunctionsUnitfulExt = "InverseFunctions" + + [deps.Unitful.weakdeps] + ConstructionBase = "187b0558-2788-49d3-abe0-74a17ed4e7c9" + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.UnitfulLatexify]] +deps = ["LaTeXStrings", "Latexify", "Unitful"] +git-tree-sha1 = "e2d817cc500e960fdbafcf988ac8436ba3208bfd" +uuid = "45397f5d-5981-4c77-b2b3-fc36d6e9b728" +version = "1.6.3" + +[[deps.Unzip]] +git-tree-sha1 = "ca0969166a028236229f63514992fc073799bb78" +uuid = "41fe7b60-77ed-43a1-b4f0-825fd5a5650d" +version = "0.2.0" + +[[deps.Vulkan_Loader_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Wayland_jll", "Xorg_libX11_jll", "Xorg_libXrandr_jll", "xkbcommon_jll"] +git-tree-sha1 = "2f0486047a07670caad3a81a075d2e518acc5c59" +uuid = "a44049a8-05dd-5a78-86c9-5fde0876e88c" +version = "1.3.243+0" + +[[deps.Wayland_jll]] +deps = ["Artifacts", "EpollShim_jll", "Expat_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg", "XML2_jll"] +git-tree-sha1 = "7558e29847e99bc3f04d6569e82d0f5c54460703" +uuid = "a2964d1f-97da-50d4-b82a-358c7fce9d89" +version = "1.21.0+1" + +[[deps.Wayland_protocols_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "4528479aa01ee1b3b4cd0e6faef0e04cf16466da" +uuid = "2381bf8a-dfd0-557d-9999-79630e7b1b91" +version = "1.25.0+0" + +[[deps.XML2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Zlib_jll"] +git-tree-sha1 = "24b81b59bd35b3c42ab84fa589086e19be919916" +uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" +version = "2.11.5+0" + +[[deps.XSLT_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgcrypt_jll", "Libgpg_error_jll", "Libiconv_jll", "Pkg", "XML2_jll", "Zlib_jll"] +git-tree-sha1 = "91844873c4085240b95e795f692c4cec4d805f8a" +uuid = "aed1982a-8fda-507f-9586-7b0439959a61" +version = "1.1.34+0" + +[[deps.XZ_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "522b8414d40c4cbbab8dee346ac3a09f9768f25d" +uuid = "ffd25f8a-64ca-5728-b0f7-c24cf3aae800" +version = "5.4.5+0" + +[[deps.Xorg_libICE_jll]] +deps = ["Libdl", "Pkg"] +git-tree-sha1 = "e5becd4411063bdcac16be8b66fc2f9f6f1e8fe5" +uuid = "f67eecfb-183a-506d-b269-f58e52b52d7c" +version = "1.0.10+1" + +[[deps.Xorg_libSM_jll]] +deps = ["Libdl", "Pkg", "Xorg_libICE_jll"] +git-tree-sha1 = "4a9d9e4c180e1e8119b5ffc224a7b59d3a7f7e18" +uuid = "c834827a-8449-5923-a945-d239c165b7dd" +version = "1.2.3+0" + +[[deps.Xorg_libX11_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxcb_jll", "Xorg_xtrans_jll"] +git-tree-sha1 = "afead5aba5aa507ad5a3bf01f58f82c8d1403495" +uuid = "4f6342f7-b3d2-589e-9d20-edeb45f2b2bc" +version = "1.8.6+0" + +[[deps.Xorg_libXau_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "6035850dcc70518ca32f012e46015b9beeda49d8" +uuid = "0c0b7dd1-d40b-584c-a123-a41640f87eec" +version = "1.0.11+0" + +[[deps.Xorg_libXcursor_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXfixes_jll", "Xorg_libXrender_jll"] +git-tree-sha1 = "12e0eb3bc634fa2080c1c37fccf56f7c22989afd" +uuid = "935fb764-8cf2-53bf-bb30-45bb1f8bf724" +version = "1.2.0+4" + +[[deps.Xorg_libXdmcp_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "34d526d318358a859d7de23da945578e8e8727b7" +uuid = "a3789734-cfe1-5b06-b2d0-1dd0d9d62d05" +version = "1.1.4+0" + +[[deps.Xorg_libXext_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] +git-tree-sha1 = "b7c0aa8c376b31e4852b360222848637f481f8c3" +uuid = "1082639a-0dae-5f34-9b06-72781eeb8cb3" +version = "1.3.4+4" + +[[deps.Xorg_libXfixes_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] +git-tree-sha1 = "0e0dc7431e7a0587559f9294aeec269471c991a4" +uuid = "d091e8ba-531a-589c-9de9-94069b037ed8" +version = "5.0.3+4" + +[[deps.Xorg_libXi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll", "Xorg_libXfixes_jll"] +git-tree-sha1 = "89b52bc2160aadc84d707093930ef0bffa641246" +uuid = "a51aa0fd-4e3c-5386-b890-e753decda492" +version = "1.7.10+4" + +[[deps.Xorg_libXinerama_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll"] +git-tree-sha1 = "26be8b1c342929259317d8b9f7b53bf2bb73b123" +uuid = "d1454406-59df-5ea1-beac-c340f2130bc3" +version = "1.1.4+4" + +[[deps.Xorg_libXrandr_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll"] +git-tree-sha1 = "34cea83cb726fb58f325887bf0612c6b3fb17631" +uuid = "ec84b674-ba8e-5d96-8ba1-2a689ba10484" +version = "1.5.2+4" + +[[deps.Xorg_libXrender_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] +git-tree-sha1 = "19560f30fd49f4d4efbe7002a1037f8c43d43b96" +uuid = "ea2f1a96-1ddc-540d-b46f-429655e07cfa" +version = "0.9.10+4" + +[[deps.Xorg_libpthread_stubs_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "8fdda4c692503d44d04a0603d9ac0982054635f9" +uuid = "14d82f49-176c-5ed1-bb49-ad3f5cbd8c74" +version = "0.1.1+0" + +[[deps.Xorg_libxcb_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "XSLT_jll", "Xorg_libXau_jll", "Xorg_libXdmcp_jll", "Xorg_libpthread_stubs_jll"] +git-tree-sha1 = "b4bfde5d5b652e22b9c790ad00af08b6d042b97d" +uuid = "c7cfdc94-dc32-55de-ac96-5a1b8d977c5b" +version = "1.15.0+0" + +[[deps.Xorg_libxkbfile_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] +git-tree-sha1 = "730eeca102434283c50ccf7d1ecdadf521a765a4" +uuid = "cc61e674-0454-545c-8b26-ed2c68acab7a" +version = "1.1.2+0" + +[[deps.Xorg_xcb_util_cursor_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_xcb_util_image_jll", "Xorg_xcb_util_jll", "Xorg_xcb_util_renderutil_jll"] +git-tree-sha1 = "04341cb870f29dcd5e39055f895c39d016e18ccd" +uuid = "e920d4aa-a673-5f3a-b3d7-f755a4d47c43" +version = "0.1.4+0" + +[[deps.Xorg_xcb_util_image_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "0fab0a40349ba1cba2c1da699243396ff8e94b97" +uuid = "12413925-8142-5f55-bb0e-6d7ca50bb09b" +version = "0.4.0+1" + +[[deps.Xorg_xcb_util_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libxcb_jll"] +git-tree-sha1 = "e7fd7b2881fa2eaa72717420894d3938177862d1" +uuid = "2def613f-5ad1-5310-b15b-b15d46f528f5" +version = "0.4.0+1" + +[[deps.Xorg_xcb_util_keysyms_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "d1151e2c45a544f32441a567d1690e701ec89b00" +uuid = "975044d2-76e6-5fbe-bf08-97ce7c6574c7" +version = "0.4.0+1" + +[[deps.Xorg_xcb_util_renderutil_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "dfd7a8f38d4613b6a575253b3174dd991ca6183e" +uuid = "0d47668e-0667-5a69-a72c-f761630bfb7e" +version = "0.3.9+1" + +[[deps.Xorg_xcb_util_wm_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "e78d10aab01a4a154142c5006ed44fd9e8e31b67" +uuid = "c22f9ab0-d5fe-5066-847c-f4bb1cd4e361" +version = "0.4.1+1" + +[[deps.Xorg_xkbcomp_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxkbfile_jll"] +git-tree-sha1 = "330f955bc41bb8f5270a369c473fc4a5a4e4d3cb" +uuid = "35661453-b289-5fab-8a00-3d9160c6a3a4" +version = "1.4.6+0" + +[[deps.Xorg_xkeyboard_config_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_xkbcomp_jll"] +git-tree-sha1 = "691634e5453ad362044e2ad653e79f3ee3bb98c3" +uuid = "33bec58e-1273-512f-9401-5d533626f822" +version = "2.39.0+0" + +[[deps.Xorg_xtrans_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "e92a1a012a10506618f10b7047e478403a046c77" +uuid = "c5fb5394-a638-5e4d-96e5-b29de1b5cf10" +version = "1.5.0+0" + +[[deps.Zlib_jll]] +deps = ["Libdl"] +uuid = "83775a58-1f1d-513f-b197-d71354ab007a" +version = "1.2.13+0" + +[[deps.Zstd_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "49ce682769cd5de6c72dcf1b94ed7790cd08974c" +uuid = "3161d3a3-bdf6-5164-811a-617609db77b4" +version = "1.5.5+0" + +[[deps.ZygoteRules]] +deps = ["ChainRulesCore", "MacroTools"] +git-tree-sha1 = "9d749cd449fb448aeca4feee9a2f4186dbb5d184" +uuid = "700de1a5-db45-46bc-99cf-38207098b444" +version = "0.2.4" + +[[deps.eudev_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "gperf_jll"] +git-tree-sha1 = "431b678a28ebb559d224c0b6b6d01afce87c51ba" +uuid = "35ca27e7-8b34-5b7f-bca9-bdc33f59eb06" +version = "3.2.9+0" + +[[deps.fzf_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "47cf33e62e138b920039e8ff9f9841aafe1b733e" +uuid = "214eeab7-80f7-51ab-84ad-2988db7cef09" +version = "0.35.1+0" + +[[deps.gperf_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "3516a5630f741c9eecb3720b1ec9d8edc3ecc033" +uuid = "1a1c6b14-54f6-533d-8383-74cd7377aa70" +version = "3.1.1+0" + +[[deps.libaom_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "3a2ea60308f0996d26f1e5354e10c24e9ef905d4" +uuid = "a4ae2306-e953-59d6-aa16-d00cac43593b" +version = "3.4.0+0" + +[[deps.libass_jll]] +deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] +git-tree-sha1 = "5982a94fcba20f02f42ace44b9894ee2b140fe47" +uuid = "0ac62f75-1d6f-5e53-bd7c-93b484bb37c0" +version = "0.15.1+0" + +[[deps.libblastrampoline_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "8e850b90-86db-534c-a0d3-1478176c7d93" +version = "5.8.0+0" + +[[deps.libevdev_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "141fe65dc3efabb0b1d5ba74e91f6ad26f84cc22" +uuid = "2db6ffa8-e38f-5e21-84af-90c45d0032cc" +version = "1.11.0+0" + +[[deps.libfdk_aac_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "daacc84a041563f965be61859a36e17c4e4fcd55" +uuid = "f638f0a6-7fb0-5443-88ba-1cc74229b280" +version = "2.0.2+0" + +[[deps.libinput_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "eudev_jll", "libevdev_jll", "mtdev_jll"] +git-tree-sha1 = "ad50e5b90f222cfe78aa3d5183a20a12de1322ce" +uuid = "36db933b-70db-51c0-b978-0f229ee0e533" +version = "1.18.0+0" + +[[deps.libpng_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] +git-tree-sha1 = "94d180a6d2b5e55e447e2d27a29ed04fe79eb30c" +uuid = "b53b4c65-9356-5827-b1ea-8c7a1a84506f" +version = "1.6.38+0" + +[[deps.libvorbis_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Ogg_jll", "Pkg"] +git-tree-sha1 = "b910cb81ef3fe6e78bf6acee440bda86fd6ae00c" +uuid = "f27f6e37-5d2b-51aa-960f-b287f2bc3b7a" +version = "1.3.7+1" + +[[deps.mtdev_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "814e154bdb7be91d78b6802843f76b6ece642f11" +uuid = "009596ad-96f7-51b1-9f1b-5ce2d5e8a71e" +version = "1.1.6+0" + +[[deps.nghttp2_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d" +version = "1.52.0+1" + +[[deps.p7zip_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" +version = "17.4.0+0" + +[[deps.x264_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "4fea590b89e6ec504593146bf8b988b2c00922b2" +uuid = "1270edf5-f2f9-52d2-97e9-ab00b5d0237a" +version = "2021.5.5+0" + +[[deps.x265_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "ee567a171cce03570d77ad3a43e90218e38937a9" +uuid = "dfaa095f-4041-5dcd-9319-2fabd8486b76" +version = "3.5.0+0" + +[[deps.xkbcommon_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Wayland_jll", "Wayland_protocols_jll", "Xorg_libxcb_jll", "Xorg_xkeyboard_config_jll"] +git-tree-sha1 = "9c304562909ab2bab0262639bd4f444d7bc2be37" +uuid = "d8fb68d0-12a3-5cfd-a85a-d49703b185fd" +version = "1.4.1+1" diff --git a/v0.10.59/examples/kernel-ridge-regression/index.html b/v0.10.59/examples/kernel-ridge-regression/index.html new file mode 100644 index 000000000..098b0a567 --- /dev/null +++ b/v0.10.59/examples/kernel-ridge-regression/index.html @@ -0,0 +1,1071 @@ + +Kernel Ridge Regression · KernelFunctions.jl

    Kernel Ridge Regression

    You are seeing the HTML output generated by Documenter.jl and Literate.jl from the Julia source file. The corresponding notebook can be viewed in nbviewer.


    Building on linear regression, we can fit non-linear data sets by introducing a feature space. In a higher-dimensional feature space, we can overfit the data; ridge regression introduces regularization to avoid this. In this notebook we show how we can use KernelFunctions.jl for kernel ridge regression.

    # Loading and setup of required packages
    +using KernelFunctions
    +using LinearAlgebra
    +using Distributions
    +
    +# Plotting
    +using Plots;
    +default(; lw=2.0, legendfontsize=11.0, ylims=(-150, 500));
    +
    +using Random: seed!
    +seed!(42);

    Toy data

    Here we use a one-dimensional toy problem. We generate data using the fourth-order polynomial $f(x) = (x+4)(x+1)(x-1)(x-3)$:

    f_truth(x) = (x + 4) * (x + 1) * (x - 1) * (x - 3)
    +
    +x_train = -5:0.5:5
    +x_test = -7:0.1:7
    +
    +noise = rand(Uniform(-20, 20), length(x_train))
    +y_train = f_truth.(x_train) + noise
    +y_test = f_truth.(x_test)
    +
    +plot(x_test, y_test; label=raw"$f(x)$")
    +scatter!(x_train, y_train; seriescolor=1, label="observations")
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Linear regression

    For training inputs $\mathrm{X}=(\mathbf{x}_n)_{n=1}^N$ and observations $\mathbf{y}=(y_n)_{n=1}^N$, the linear regression weights $\mathbf{w}$ using the least-squares estimator are given by

    \[\mathbf{w} = (\mathrm{X}^\top \mathrm{X})^{-1} \mathrm{X}^\top \mathbf{y}\]

    We predict at test inputs $\mathbf{x}_*$ using

    \[\hat{y}_* = \mathbf{x}_*^\top \mathbf{w}\]

    This is implemented by linear_regression:

    function linear_regression(X, y, Xstar)
    +    weights = (X' * X) \ (X' * y)
    +    return Xstar * weights
    +end;

    A linear regression fit to the above data set:

    y_pred = linear_regression(x_train, y_train, x_test)
    +scatter(x_train, y_train; label="observations")
    +plot!(x_test, y_pred; label="linear fit")
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Featurization

    We can improve the fit by including additional features, i.e. generalizing to $\tilde{\mathrm{X}} = (\phi(x_n))_{n=1}^N$, where $\phi(x)$ constructs a feature vector for each input $x$. Here we include powers of the input, $\phi(x) = (1, x, x^2, \dots, x^d)$:

    function featurize_poly(x; degree=1)
    +    return repeat(x, 1, degree + 1) .^ (0:degree)'
    +end
    +
    +function featurized_fit_and_plot(degree)
    +    X = featurize_poly(x_train; degree=degree)
    +    Xstar = featurize_poly(x_test; degree=degree)
    +    y_pred = linear_regression(X, y_train, Xstar)
    +    scatter(x_train, y_train; legend=false, title="fit of order $degree")
    +    return plot!(x_test, y_pred)
    +end
    +
    +plot((featurized_fit_and_plot(degree) for degree in 1:4)...)
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Note that the fit becomes perfect when we include exactly as many orders in the features as we have in the underlying polynomial (4).

    However, when increasing the number of features, we can quickly overfit to noise in the data set:

    featurized_fit_and_plot(20)
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Ridge regression

    To counteract this unwanted behaviour, we can introduce regularization. This leads to ridge regression with $L_2$ regularization of the weights (Tikhonov regularization). Instead of the weights in linear regression,

    \[\mathbf{w} = (\mathrm{X}^\top \mathrm{X})^{-1} \mathrm{X}^\top \mathbf{y}\]

    we introduce the ridge parameter $\lambda$:

    \[\mathbf{w} = (\mathrm{X}^\top \mathrm{X} + \lambda \mathbb{1})^{-1} \mathrm{X}^\top \mathbf{y}\]

    As before, we predict at test inputs $\mathbf{x}_*$ using

    \[\hat{y}_* = \mathbf{x}_*^\top \mathbf{w}\]

    This is implemented by ridge_regression:

    function ridge_regression(X, y, Xstar, lambda)
    +    weights = (X' * X + lambda * I) \ (X' * y)
    +    return Xstar * weights
    +end
    +
    +function regularized_fit_and_plot(degree, lambda)
    +    X = featurize_poly(x_train; degree=degree)
    +    Xstar = featurize_poly(x_test; degree=degree)
    +    y_pred = ridge_regression(X, y_train, Xstar, lambda)
    +    scatter(x_train, y_train; legend=false, title="\$\\lambda=$lambda\$")
    +    return plot!(x_test, y_pred)
    +end
    +
    +plot((regularized_fit_and_plot(20, lambda) for lambda in (1e-3, 1e-2, 1e-1, 1))...)
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Kernel ridge regression

    Instead of constructing the feature matrix explicitly, we can use kernels to replace inner products of feature vectors with a kernel evaluation: $\langle \phi(x), \phi(x') \rangle = k(x, x')$ or $\tilde{\mathrm{X}} \tilde{\mathrm{X}}^\top = \mathrm{K}$, where $\mathrm{K}_{ij} = k(x_i, x_j)$.

    To apply this "kernel trick" to ridge regression, we can rewrite the ridge estimate for the weights

    \[\mathbf{w} = (\mathrm{X}^\top \mathrm{X} + \lambda \mathbb{1})^{-1} \mathrm{X}^\top \mathbf{y}\]

    using the matrix inversion lemma as

    \[\mathbf{w} = \mathrm{X}^\top (\mathrm{X} \mathrm{X}^\top + \lambda \mathbb{1})^{-1} \mathbf{y}\]

    where we can now replace the inner product with the kernel matrix,

    \[\mathbf{w} = \mathrm{X}^\top (\mathrm{K} + \lambda \mathbb{1})^{-1} \mathbf{y}\]

    And the prediction yields another inner product,

    \[\hat{y}_* = \mathbf{x}_*^\top \mathbf{w} = \langle \mathbf{x}_*, \mathbf{w} \rangle = \mathbf{k}_* (\mathrm{K} + \lambda \mathbb{1})^{-1} \mathbf{y}\]

    where $(\mathbf{k}_*)_n = k(x_*, x_n)$.

    This is implemented by kernel_ridge_regression:

    function kernel_ridge_regression(k, X, y, Xstar, lambda)
    +    K = kernelmatrix(k, X)
    +    kstar = kernelmatrix(k, Xstar, X)
    +    return kstar * ((K + lambda * I) \ y)
    +end;

    Now, instead of explicitly constructing features, we can simply pass in a PolynomialKernel object:

    function kernelized_fit_and_plot(kernel, lambda=1e-4)
    +    y_pred = kernel_ridge_regression(kernel, x_train, y_train, x_test, lambda)
    +    if kernel isa PolynomialKernel
    +        title = string("order ", kernel.degree)
    +    else
    +        title = string(nameof(typeof(kernel)))
    +    end
    +    scatter(x_train, y_train; label=nothing)
    +    return plot!(x_test, y_pred; label=nothing, title=title)
    +end
    +
    +plot((kernelized_fit_and_plot(PolynomialKernel(; degree=degree, c=1)) for degree in 1:4)...)
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    However, we can now also use kernels that would have an infinite-dimensional feature expansion, such as the squared exponential kernel:

    kernelized_fit_and_plot(SqExponentialKernel())
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    Package and system information
    +
    +Package information (click to expand) +
    +Status `~/work/KernelFunctions.jl/KernelFunctions.jl/examples/kernel-ridge-regression/Project.toml`
    +  [31c24e10] Distributions v0.25.103
    +  [ec8451be] KernelFunctions v0.10.59 `/home/runner/work/KernelFunctions.jl/KernelFunctions.jl#ec19a94`
    +  [98b081ad] Literate v2.16.0
    +  [91a5bcdd] Plots v1.39.0
    +  [37e2e46d] LinearAlgebra
    +
    +To reproduce this notebook's package environment, you can + +download the full Manifest.toml. +
    +
    +System information (click to expand) +
    +Julia Version 1.9.4
    +Commit 8e5136fa297 (2023-11-14 08:46 UTC)
    +Build Info:
    +  Official https://julialang.org/ release
    +Platform Info:
    +  OS: Linux (x86_64-linux-gnu)
    +  CPU: 4 × AMD EPYC 7763 64-Core Processor
    +  WORD_SIZE: 64
    +  LIBM: libopenlibm
    +  LLVM: libLLVM-14.0.6 (ORCJIT, znver3)
    +  Threads: 1 on 4 virtual cores
    +Environment:
    +  JULIA_DEBUG = Documenter
    +  JULIA_LOAD_PATH = :/home/runner/.julia/packages/JuliaGPsDocs/7M86H/src
    +
    +

    This page was generated using Literate.jl.

    diff --git a/v0.10.59/examples/kernel-ridge-regression/notebook.ipynb b/v0.10.59/examples/kernel-ridge-regression/notebook.ipynb new file mode 100644 index 000000000..646243346 --- /dev/null +++ b/v0.10.59/examples/kernel-ridge-regression/notebook.ipynb @@ -0,0 +1,2394 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# Kernel Ridge Regression\n", + "\n", + "*You are seeing the\n", + "notebook output generated by\n", + "[Literate.jl](https://github.com/fredrikekre/Literate.jl) from the\n", + "[Julia source file](https://github.com/JuliaGaussianProcesses/KernelFunctions.jl/blob/master/examples/kernel-ridge-regression/script.jl).\n", + "The rendered HTML can be viewed [in the docs](https://juliagaussianprocesses.github.io/KernelFunctions.jl/dev/examples/kernel-ridge-regression/).*" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "Building on linear regression, we can fit non-linear data sets by introducing a feature space. In a higher-dimensional feature space, we can overfit the data; ridge regression introduces regularization to avoid this. In this notebook we show how we can use KernelFunctions.jl for *kernel* ridge regression." + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "# Loading and setup of required packages\n", + "using KernelFunctions\n", + "using LinearAlgebra\n", + "using Distributions\n", + "\n", + "# Plotting\n", + "using Plots;\n", + "default(; lw=2.0, legendfontsize=11.0, ylims=(-150, 500));\n", + "\n", + "using Random: seed!\n", + "seed!(42);" + ], + "metadata": {}, + "execution_count": 1 + }, + { + "cell_type": "markdown", + "source": [ + "## Toy data\n", + "Here we use a one-dimensional toy problem. We generate data using the fourth-order polynomial $f(x) = (x+4)(x+1)(x-1)(x-3)$:" + ], + "metadata": {} + }, + { + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "Plot{Plots.GRBackend() n=2}", + "image/png": "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", + "text/html": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ], + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "metadata": {}, + "execution_count": 2 + } + ], + "cell_type": "code", + "source": [ + "f_truth(x) = (x + 4) * (x + 1) * (x - 1) * (x - 3)\n", + "\n", + "x_train = -5:0.5:5\n", + "x_test = -7:0.1:7\n", + "\n", + "noise = rand(Uniform(-20, 20), length(x_train))\n", + "y_train = f_truth.(x_train) + noise\n", + "y_test = f_truth.(x_test)\n", + "\n", + "plot(x_test, y_test; label=raw\"$f(x)$\")\n", + "scatter!(x_train, y_train; seriescolor=1, label=\"observations\")" + ], + "metadata": {}, + "execution_count": 2 + }, + { + "cell_type": "markdown", + "source": [ + "## Linear regression\n", + "For training inputs $\\mathrm{X}=(\\mathbf{x}_n)_{n=1}^N$ and observations $\\mathbf{y}=(y_n)_{n=1}^N$, the linear regression weights $\\mathbf{w}$ using the least-squares estimator are given by\n", + "$$\n", + "\\mathbf{w} = (\\mathrm{X}^\\top \\mathrm{X})^{-1} \\mathrm{X}^\\top \\mathbf{y}\n", + "$$\n", + "We predict at test inputs $\\mathbf{x}_*$ using\n", + "$$\n", + "\\hat{y}_* = \\mathbf{x}_*^\\top \\mathbf{w}\n", + "$$\n", + "This is implemented by `linear_regression`:" + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "function linear_regression(X, y, Xstar)\n", + " weights = (X' * X) \\ (X' * y)\n", + " return Xstar * weights\n", + "end;" + ], + "metadata": {}, + "execution_count": 3 + }, + { + "cell_type": "markdown", + "source": [ + "A linear regression fit to the above data set:" + ], + "metadata": {} + }, + { + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "Plot{Plots.GRBackend() n=2}", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlgAAAGQCAIAAAD9V4nPAAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nOzdd3wT5R8H8OcyuxfdpSsptDQpGwoUyigVGbI3KCIICoICigwV0R9LQVREKQLKUgEFRBAZshHZow2FQlLopHumzV3G/f64cpSCzLRpm8/7xR/Nc5fLN6Xpp3f3vXsolmUJAACAtRJYugAAAABLQhACAIBVQxACAIBVQxACAIBVQxACAIBVQxACAIBVEz3/Jq5du/bjjz/yD8eOHRsaGkoIYVl206ZN+/fv9/X1nTp1qp+fH7dCWlraihUrMjIyevToMWrUKIqinr8GAACAZ2OGPcKbN2/+8ssvrneJxWJufPny5Z9++mnv3r21Wm2nTp1omiaE6HS6Tp06abXa3r17f/LJJ1999dXzFwAAAPDMqOe/oH737t2LFi06efJk5UGj0RgUFLRu3brY2FhCSMuWLWfMmDFq1KiNGzcuX778woULhJCDBw+OHTv21q1bQqHwOWsAAAB4NuY5R5iZmTlz5sxFixYlJiZyI6mpqenp6Z07d+Yedu7c+dSpU4SQU6dO8YPR0dHp6empqalmqQEAAOAZmOEcoaura58+ffz8/K5du9amTZvffvutR48ed+7ccXJykkgk3DoeHh7nz58nhNy5c6dly5bcoEQicXZ2zszMDAoKenCz586dGzdunFwu50fGjRvHh6j10Ov1/NFmMBqNFEUJBGjyqmAwGEQiM3yK6wd8WCrDzwbHxsbmsd8HM3yboqKioqKiuK/9/f0/+eSTHj162NjYcCcFOTRN29nZcTXp9foHxx9UVFRkMBiGDx/OPRQIBK1atfqvleuxkpISK3zX/0Wn0wmFQvyy47Asq9Vq8ePBw4elMq1Wa2tri27EJ/m72cx/LzRv3nz16tWEED8/P51Ol5OT4+HhQQhJSUnhukYbNmyYkpLCrZyTk1NeXs53k1YhFovd3d2HDh1q3grrHIFAgB0gnuAuSxdSK7Asi+9GZfhuVMZ9NxCET8IMPzS5ubncF0aj8aeffmrVqhUhxMPDIzo6euPGjYSQ/Pz8P//8c+DAgYSQgQMH/vnnn/n5+YSQTZs2de7c2d3d/flrAAAAeDZm2COcMmXKlStXAgICkpKS7O3tf//9d258yZIlffv2PXjwYGJiYt++fdu2bUsIadeuXZ8+fVq1atWkSZPz58/v2rXr+QsAAAB4ZmYIwo0bNyYkJOTm5np5eYWHh/PXQrRr1y4pKenChQuenp5KpZJff+3atfHx8Tk5Oa1atXJ2dn7+AgAAAJ6ZGYJQJBI1b978oYtcXFy6dev24HhERMTzvy4AAMDzw4llAACwaghCAACwaghCAACwaghCAACwaghCAACwavXtTnTnz59fsmSJpaswJ6PRiNk5CCHvvfdemzZtLF0FANRD9S0Ir1y5kpOTM2nSJEsXAua0atWqK1euIAgBoDrUtyAkhAQHBw8ZMsTSVYA57du3z9IlAEC9hXOEAABg1RCEAABg1RCEAABg1RCEAABg1RCEAABg1RCEAABg1RCEAABg1erhdYTPr7S0NC0tTSQS+fn52draWrocAACoRtgjvMdkMq1fv75DVJSzs3OTJk0aNWrk5OzcPTb2jz/+sHRpAABQXRCEFTIzMztEdXz11VdP38gwxUwlI78iI5Ybol47fC6hb9++ffv1KykpqY7Xfffdd8eOHVsdW65WWq22WbNm27Zts3QhAADPC4dGCSEkPz+/Y6foWympZMSXpi4TiODet8U09DPy52d//LEw9oUeR48clkql5n1ptVp9584d827T7OLi4j777LObN29SFMWNGI3GK1eu5ObmWrYwAIDnhyAkhJDXX389+dYt9q0dRNmj6jKxLek3j7j6nd44ae7cuUuXLrVEgRZWWFio0Wgqjzg5OZWVlUkkEkuVBABgLghCcvbs2e3bt5Me0x+Sgrzo8UR14OsV30ybNs3Pz+9pX4Km6V9//TUhIUEqlXbr1i06OrrKCjqdbuvWrVevXvXx8Xn55Zfd3Nz4RcnJybt27crMzLS3tw8PD4+NjXVycuI3u3379vj4eJFI1KVLl27duvHP2r9/v7Ozs0Kh2Lp1a1JS0sCBA2/fvq1QKMLDw/l1GIb5/ffflUplkyZNCCGXLl06fvx4Zmamu7t7ZGRkVFQUt9qVK1fi4+MJIdu2beP2CAcNGmQymXbu3NmmTZuQkBBuNYPBsHPnzosXLwoEgujo6NjYWP6Fzp07l5OT8+KLL+7cufPcuXNeXl59+/YNCgriV0hLS9uxY0dGRoatrW1oaOgLL7zg6ur6tN9kAIBnxNZWR48ejY6OftpnrVu3buzYsU/1lOnTp1MCIVmWSr5nHvVv7ilCyFdfffW0JWVkZDRp0sTGxqZTp04RERGEkLFjx5pMJm5p//79mzdvHhkZGRYWFhsb6+jo6Ovrq1aruaW7du0SiUShoaH9+/ePjo52cXH5/vvvuUUajaZx48b29vZdu3Zt164dRVFjxozhN6tUKl988cXGjRsHBQW1a9duw4YNLVq06Nq1a+XCtm/fTgg5ceIEy7K//vqrSCRq0aJFr169lEolIWTy5Mncal999RWX/a3u0uv1RUVFhJBvv/2WW6egoKBNmzZisbhDhw4tW7akKKp///56vZ5bOn78eJlMNnjwYH9//+joaCcnJ2dn55s3b3JLjxw5IpVKZTJZv379unTp0qBBg88//7zK93DcuHFr1qxhWba8vJxhmKf9L6ivTCZTSUmJpauoRYqLiy1dQi1SWlrK/0KAR0MQslFRUVRA88ek4PcMWU0LHdxGjhz5tCUNHDjQ3t7+7Nmz3MOFCxcSQtavX8897N+/PyFk4sSJ3I/sjRs3PDw8XnzxRW5px44de/bsyf80l5eX37lzh/s6MjKycePGaWlp3EMu1X7++WfuIRdmlRPlyy+/pChKo9HwI/369WvUqBG38ZSUlIyMDH7RihUrCCHnzp3jHi5evJgQUvlDVSUIJ0yYIBKJDh06xD1cvXo1IeSLL77gHo4fP54QMmHCBC4ab926ZW9vP2nSJG5pnz59oqKijEYj95Cm6cqVcBCED4UgrAJBWBmC8Mmha5Tcyc5hnX0evx5FsS4+2dnZT7VxmqZ///33V199tXXr1tzIzJkzAwIC1q9fz68jlUoXLlzIHXUMCQmZNGnSvn37CgsLCSFarZZhmPLycm5NGxsbLy8vQsj58+dPnz49f/58/jjtgAED2rZtu2fPHn6zcrl8+vTp/MPRo0dLJJJNmzZxD/Py8vbu3TtmzBjudf39/X18fAghBoOhoKBg2LBhUqn0zJkzT/g2t23bNnjw4K5du3IPX3/99WbNmlV+jyKRaNmyZSKRiBASGBjYrVu3y5cvc4u0Wq3BYCgtLeUeSiQSrhIAeGYsy6alpRUXF1u6kLoBQUhcXZxJWeGTrEmVFbq4uDzVxm/dumU0Glu1asWPCIXCli1bXrt2jR8JCgqqfFKwRYsWLMuq1WpCyDvvvHPkyBFPT89hw4atW7cuLy+PW4dLkR9++GFoJRkZGTdu3OC3o1QqBYJ7/78NGjTo1avXhg0bWJYlhGzatMlgMLz88svcUq1WO3fu3ICAAKlU6ubm5unpSdN0amrqk7zHvLy8goKCli1bVh5s3bp1YmIi/9DPz8/BwYF/6OnpmZOTw309derUixcvent7Dxo0KC4uLisr60leFAAeymQyLfx8uXfjptFj32/cpX9Eh64XL160dFG1HYKQKBUKQdplwpQ9Zr2828b8dO6Q45PT6XSEEBsbm8qDEonEYDDwD8ViceWl3BUa3BNfeeWVK1euzJgxIz09feLEiSEhIYcPHyaEMAxDCGnatGmrSt56660JEybw26kcPJwxY8bcvHnzn3/+IYSsX78+JiYmICCAWzRlypRvvvnmo48+UqlUmZmZ+fn5Dg4OlYt82vcolUq5o50PfY/8ZRiEkP79+yckJMyZMycvL2/q1KkhISG4gwHAM5s+9+NFR1KyZ5zKfm1b9uT9Cb2+6TFiPPeHNfwXdI2SgQMH/vjjj+SfDaTLG49a7/AqQsiAAQOeauNyuZwQcv369cqD165dq9wzefv2bYZh+EsRkpKSCCEymYx7GB4ePn/+/Pnz56enp3fu3HnevHldu3YNDg4mhERFRXGnGJ9Q7969vb29169f7+zsfPHiRf4wKSFk375948aN407mEUIyMzP5Y5WEEG7PkmXZygHG8/X1tbW1ffA9BgYGPnT9BzVq1OiDDz744IMPsrOzY2Nj586d+9JLLz35+wIATllZ2U/b/yh9919C3d3J8W6c2/OTeUu+3LR6hUVLq9WwR0h69+7dtFlzwe8fkxzNf66kOS049E3//v2bNm36VBt3cHCIjIxcu3Ztfn4+N7J3794rV65UDrCSkpI1a9ZwX5eVlcXFxUVERHDnySpfa+/n5yeTyfR6PSGkc+fOfn5+8+fP12q1/Aomk+nRpzBFItGIESO2bNmycuVKJyenyqFOUVTlq+MXLFhQ+Yncicm0tLSHbpaiqG7dum3evDkjI4MbOXPmzOHDh58wpCu/R09Pz9DQUO49AsDTUqvVxL/pvRQkhBDCNup4/tIVS5VUJ2CPkAgEgo0b1rfvEKVbFmt6cxsJbFl1DdV+wZpXPNwbrFy58hm2/80333Tr1q1NmzbDhg3Lz89fv359ixYt3n77bX4FuVz+v//979y5c4GBgdu3b7958+a+ffu4RQqFol27ds2aNXN2dj5z5syBAwc2btxICLGxsdm8efNLL73UpEmTgQMHuru7p6am7tu37/XXX587d+4jinn11VeXL1++evXqcePG2dnZ8eOjR4/+/PPPCSGhoaHHjh3Lzc11dnbml8bGxtrb23fp0qVly5YCgeDnn3+ustlly5Z17Nixbdu2I0eO1Ol0P/74Y0hIyKMr4XXo0EEul7dq1crNze3ixYu//vrr119//SRPBIAqbG1tKV1p1dHyYls7TB7wKMKPP/7Y0jU83O3btw8fPvy09+G8dOlSSkpKv379nupZXl5enTp23LllM31gJcm6QSghYU2kOJtcO0y2f0h+nx/g57Nv75/ccc6n5evrO3jw4Nzc3LNnz5aUlIwdO3bVqlX29vbcUoZhWrVqtXDhwpMnT54+fVoul8fFxXXs2JFbGhwcnJ+fr1KpEhMTfXx8vvzyy759+3KLgoKCRo4cSdP0pUuXrl+/LpFIRowYMXr0aO7UIE3TrVq1evCMppeXl1QqbdWq1YQJEzw9PfnxLl26uLu7X7p06caNG+3atfv+++8FAkGHDh0aNWpECHF0dBw5cqSTk5NUKnV1dY2JiREIBCUlJd26dePOMrq7u48YMaK4uPjs2bN5eXnDhw9fs2YN3wGk1+tlMhl/hT4/0qFDB+6NFBYWJiYmxsfHu7u7L1myZOTIkVXK3rVrl7+/f8uWLQ0Gg0AgEAqFz/AfUS/p9Xrc34fHMIzZb4JYt7i6uq5Y/nlx+EtEeq9FwPbk6je7hnXq0M6ChdVyFN/OUNscO3bsww8/PHr06FM964cffjh+/Pi6deue4RUzMjI++uijjZs2M7SOH7R3cJz05htz5sx52n5RMKPx48e3b99+3LhxOp1OKBRWab2xWizLarXaB7uirFZJSYmjo6Olq7Cwg38fGvnWzNwX57ONOpKyIofT6+QZx/79+88q7WxQGQ6N3uPr67tmzZqvvvrq+PHjKSkpIpEoKCgoKirKyv/GBIA6pHtMt7N//TZ3wdIz6xa5urqO6N/7rYn7uUt44b/gu1OVvb39iy++aOkqAACeUWBg4KbVK7RarZ2d3RN2bls5dI0CAIBVQxACAIBVQxBWrxMnTlAU9e+//3IPe/fuzd+Q0+LKysrGjRvn7e1NUdR777136tQpiqJOnDjBLS0tLS0pKbFshQAANQDnCKsX15TLt+b6+vryd9C2uK+++urnn39eu3Zt48aNvby8cnJyQkJC+NaywYMH0zTN3dENAKAeQxDWqO+//97SJdxz7ty5Fi1ajBgxgnvYsGHDyvfsBgCwEgjCGrV+/XqGYV5//XVCSHJyclxc3JtvvnnhwoWffvqJZdkOHTpMmTKl8kVyarV61apVV69elUql3bt3Hz9+PH/1tEql2rlzp0qlKi4ulsvlQ4YM4S/DJ4QsXLhQqVTK5fKVK1dqNJpPPvmkbdu2/NKCgoIlS5ZcvHjRaDTOmjWLEDJjxozy8vLvvvtu4sSJQUFB33zzTVJSEr80KCjojTceeSNWAIA6C+cIa9SWLVs2b97MfZ2amrpkyZIpU6bMnDnTw8ODYZgZM2a8++67/MoHDx5s2rTpnj17GjVq5Orq+u6777700ktGo5FbOm3atL/++qtBgwahoaGnTp3q3LnzL7/8wj935cqV3G3PsrKy/Pz8qhyPNZlMBQUFer2em32woKDAaDSmpaUtXryYm3qpuLhYr9fr9XpuKU4WAkA9Vs/3CFm6PPf7efqM/76btrlJGzVvMGYOETzpXxhZWVlXrlyxtbUlhEyePDkuLm7RokV2dnbl5eWjR4/u0qXL77//zl0M+9prr0VHR2/evPmVV14hhGzZssXV1ZXbCMuygwcP/uijj4YPH85v+cSJE0ePHq28m8hr0KBBXFxcjx499Hp9XFwcN6jR3PsuzZkz59ixYzRN80sBAOqreh6ETOoN+maN3na9/PIJQ0GWqMGTzrE+depULgUJIT169Pj2229v377dpEmTAwcOZGVlzZ49m78lRFRUVPPmzY8fP84Foaurq9FoTE9PT01NLS8vl8vlO3bsKC8v57fWpUuXh6YgAABUVs+DUBIcbtcmxnAnpeZeUaZ48hQkhPBT4xJCuNuZFhYWkrtTGI4ePbryDabv3LnD3/J069ats2bNSk5OdnBwEIvFDMOwLJuZmclPZBgSEvLc7wYAoP6r50FICUVuo96zdBWPIviPg6jcjZEWL17s7u5eeZwLwpSUlFGjRo0ZM2bRokUeHh6EkA0bNowZM8ZkMvFr4h67AABPwpxBWFhYmJ+fHxQUxP9yz8/PP3PmjLe3d/PmzSuvefHixaysrLZt2/Iz9UAV4eHhhBCJRNK9e/cHl549e9ZgMMyZM4dLQULI5cuXzVuASCQqKysz7zYBAGohs3WN6vX6rl27yuXyoqIibuSff/4JCwv79ttvBw8e/Nprr/Frvvrqq0OGDPn222/DwsJOnTplrgLqmdjY2JCQkFmzZqWk3Duum5GRce3aNXJ3v5APvytXrqxevdq8Bfj5+anVap1O9/hVAQDqMrMF4cKFC9u3b195ZNasWbNnz961a9fZs2f37Nlz+vRpQsipU6f27t179uzZXbt2zZkzh7tMDR4kFou3b9+u0+nCw8NjY2OHDBkSGRkZGBj4999/E0I6d+7ctm3b4cOHDxgwoFevXtHR0YMGDTJvAa+99lphYaG3t7dcLh82bJh5Nw4AUHuY59BoYmLijh07du7c+d1333EjOTk5x48f/+233wghrq6uvXr12r59e2Rk5I4dO3r16sX1/Y8ePXratGk5OTn88b36p3HjxmvXruX7VqZNm2YwGLivGzVqFBcXV3nWe26E73aJiIi4du3ar7/+euHCBZPJ1KpVqy+//DIyMpIQIhKJjh49+uOPPyYkJLi7u3/++ed2dnYdOnTgJ51fsmQJv53/8vbbb1c+pxgSEsLdbo17GBkZmZycfObMmTt37lSeyx4AoJ4xQxAajcaxY8euXLmy8gS2aWlpdnZ2fMIFBgZyt+9KTU0NDQ3lBt3d3e3s7NLS0h4ahAzD5Obmbt26lR/p0KGDr6/vo4vh7+pZS3h5eVU+LBwbG8t/7ePjM2HChMorPzhiZ2f3yiuvcNdLVGFjY1Plbi+Vnzt69OjH1tarV6/KDz09PSuXyo306dPnsdupGSzLmkwmk8lEUVTl/LZm/PfE0oXUFvhuVMZ/XixdiIX9V0NiZWYIwqVLl7Zt2zYqKiozM5MfpGm68q3CJBIJd7aJYZjKcyVLJBKaph+62eLi4uzs7C1btvAjTk5Oj22u0ev1z/YuoJbT6/U6nU6n0wmFQv72OlaOZVmdTofJx3lVfu1YOZ1OJxAIEIQSieSxnxEzfITmz58/duzYWbNmlZaWcg/feOMNb2/v4uJihmG4e2Pm5OT4+PgQQry9vXNzc7knMgxTVFTEjT/I3d09PDycO7j65PhbcUI9I5FI7OzsBAKBUCjELzsOy7Isy9rZ2Vm6kNrCaDTiu8HjfjYQhE/CDM0y8+bNCwgIcHV15VoZXVxcxGKxv7+/n5/fkSNHuHWOHDnSoUMHQkj79u2PHj3KDR49erRhw4YNGzZ8/hoAAACejRn2CN9//33ui8zMzAULFrz99ttcL8yMGTMmT5788ccfnzx5sri4mGtr5G6JOWnSpKioqI8//njGjBmV75wCAABQw8x5dsHR0XHx4sX8vS7feecdLy+vAwcOeHt7nzx5kmulsbGxOXny5IoVK/7+++9PP/208k2iAQAAap45g9DBwYHfO+SMGDGCn/eV5+Pjs3DhQjO+LgAAwDPDfIQAAGDVEIQAAGDVEIQAAGDV6uGluBkZGQcPHrR0FWBO6enpli4BAOqt+haEoaGhRqNxyZIlli7EbIxGI64wIYSEhYVZugQAqJ/qWxB26NDhwIEDlq7CnEpKShwdHS1dBQBAvYVzhAAAYNUQhAAAYNUQhAAAYNUQhAAAYNUQhAAAYNUQhAAAYNUQhAAAYNUQhAAAYNUQhAAAYNUQhAAAYNUQhAAAYNUQhAAAYNUQhAAAYNUQhAAAYNUQhAAAYNUQhAAAYNUQhAAAYNUQhAAAYNUQhAAAYNUQhAAAYNUQhAAAYNUQhAAAYNUQhAAAYNUQhAAAYNUQhAAAYNUQhAAAYNUQhAAAYNUQhAAAYNUQhAAAYNUQhAAAYNUQhAAAYNUQhAAAYNUQhAAAYNUQhAAAYNUQhAAAYNUQhAAAYNUQhAAAYNUQhAAAYNUQhAAAYNXMEIR///13ZGSkp6dnQEDA+PHjCwsLufHCwsLhw4d7eHgoFIrdu3fz6//xxx8KhcLDw2PEiBFFRUXPXwAAAMAzM0MQ+vj4fP3119evXz969GhycvJ7773Hjb/33nt6vV6tVi9dunTkyJF37twhhGRmZo4cOXLp0qVqtZphGH5lAAAAizBDEIaHh0dGRrq6ugYHBw8dOvT69euEkLKysp9++mn+/PlOTk49e/bs2LHjpk2bCCEbN27s1KlTz549nZyc5s+fv3nz5rKysuevAQAA4NmIzLKV0tLSf//9Nzs7e8WKFfPmzSOEpKSkMAyjUCi4FZo1a8YF5LVr15o3b84NKhQKvV6fmpoaGhpqljIAAACelnmCMDs7e8mSJXl5eXZ2dlz45eXlOTg4UBTFreDs7JyYmEgIyc/PDwkJ4QYpinJ0dMzNzX1oEGZmZh4/fpzfgkAgWLNmzeDBg81ScB1SWlpq6RJqEZ1OJxQKxWKxpQupFViWLSsrY1nW0oXUFviwVFZWVmY0GvlfoVbLxsbmsb8xzBOEMpnswIEDhJAvvvhixIgRly9fbtCgQWlpKcuy3H9DUVGRu7s7IcTNza2kpIR7FsuyJSUlDRo0eOg2fXx8OnXqdPToUbNUWKc5OjpauoTaQiwWIwh5LMsKBAIHBwdLF1KL4MPCEwgEdnZ2CMInYebLJ6Kjo2/evEkI8ff3F4lE3OFQQohKpWrUqBEhpFGjRiqVihu8fv26UCj09/c3bw0AAABPzgxBuG/fvuTkZJPJlJqaunDhwpiYGEKIvb39kCFDFixYQNP0iRMnDh8+PHr0aELI6NGjDx8+fOLECZqmFyxYMHToUHt7++evAQAA4NmYIQgTEhK6du0qlUojIyNdXFzWrl3LjS9btqywsNDd3f3ll19et26dn58fIcTf33/NmjWjR492d3cvKipatmzZ8xcAAADwzKhae6b92LFjH374Ic4RlpSU4LQHD80ylbEsq9VqcY6Qhw9LZVqtFucInxBusQYAAFYNQQgAAFYNQQgAAFYNQQgAAFYNQQgAAFYNQQgAAFYNQQgAAFYNQQgAAFYNQQgAAFYNQQgAAFYNQQgAAFYNQQgAAFYNQQgAAFYNQQgAAFYNQQgAAFYNQQgAAFYNQQgAAFYNQQgAAFYNQQgAAFYNQQgAAFYNQQgAAFYNQQgAAFYNQQgAAFYNQQgAAFYNQQgAAFYNQQgAAFYNQQgAAFYNQQgAAFYNQQgAAFYNQQgAAFYNQQgAUEsdOHCwaccY3/BWAco2k2fMLikpsXRF9ZPI0gUAAMBDfPHNqv9t2lsweB1x8SWsac2Zzfs6db988pC9vb2lS6tvsEcIAFDrlJeXL/76u4JXfyIuvoQQQgmYyJfTlMO//m61pUurhxCEAAC1Tnx8PCtrR0SSyoN0xEt7Dp2wVEn1GIIQAKDWMZlMLPXA72dKYDQaLVFOPYcgBACodSIiIgTqU8RkqDwovvrXC9HtLVVSPYYgBACodezt7Se/Ntp503hSmseNCC/v8j23bsaUNy1bWL2ErlEAgNpo3qx3w0J++2DhoOIynUgo6BTZ+psjfzk5OVm6rnoIQQgAUEsNGzxo2OBBlq6i/sOhUQAAsGoIQgAAsGoIQgAAsGoIQgAAsGoIQgAAsGoIQgAAsGpmuHwiKytr9+7d8fHxzs7OgwcPjoiI4Bf98ccfBw4c8PHxmTBhQoMGDbjBvLy81atXZ2ZmvvDCC3369Hn+AgAAAJ6ZGfYIZ86cefDgwaCgIJqm27Vrd/DgQW581apVb731Vnh4eGJiYqdOnfR6PSGEYZiOHTsmJiaGh4dPnjw5Li7u+QsAAAB4ZmbYI/z+++8lkopbpDMMs3bt2u7du5tMpiVLlnz77be9e/eeOHFiRETEzp07hwwZsmPHDqFQuH79eoqi/P39p0yZ8vrrrwsEOEILAACWYYYE4nncjoQAACAASURBVFOQEKLVark7AKWmpt6+fTsmJoYQQlFUTEzMsWPHCCHHjx+PiYmhKIoQEhMTc+vWrbS0tOevAQAA4NmY8xZrZ8+e/eWXX06fPk0IuXPnjqOjo42NDbfI09Pz4sWLhJDMzMzmzZtzgzY2Nk5OThkZGQEBAQ9uLT8/Pykpady4cfzIiBEjOnToYMaC64Ty8nKhUGjpKmoLnU4nFArFYrGlC6kVWJYtKyvDARUePiyVlZWVEUK4vQ5rJpFIRKLHJJ3ZgvDGjRsDBgyIi4sLCwvjXttguDeBiF6vl0ql3Hjl+bT48QfZ29s7OTm1adOGe0hRVEhIyH+tXI8xDGOF7/q/sCyLIOSxLGswGPDjwcOHpTLuZwNB+CR/KZonCG/evBkTE7NgwYLhw4dzI76+vmVlZfn5+W5uboSQtLQ0X19fbpw/FlpQUFBWVubn5/fQbUqlUm9v7zfeeMMsFdZdQqEQf+TyhHdZupBagfuzAN8NHr4blXHfDQThkzDDQZWUlJQXXnhhzpw5Y8aM4Qe9vLwiIyO3bNlCCCkpKdm7d2+/fv0IIf369du7d29JSQkhZMuWLe3atfP09Hz+GgAAAJ6NGfYIp06dmpWVtWbNmjVr1hBCIiIifvjhB0LIokWLBg8efPz48StXrkRFRXXs2JEQEh0d3b59+/bt2zdt2nT//v2//vrr8xcAAADwzMwQhEuXLi0qKuIf2tvbc1907do1ISHh33//nTx5cuUml23btv3zzz/Z2dlffPGFt7f38xcAAADwzMwQhCEhIf+1yMfHZ8CAAVUGKYqKiop6/tcFAAB4fmi8BgAAq2bO6wjBvIxG46FDh85fvBwiC4qJiXF1dbV0RQAA9RD2CGuppKSkJm2jhy7fNeea2ytbEpu0j9n0yzZLFwUAUA9hj7A2MplMPYe8rBkYR/wUhJByQsq7THnn055tWjQNDQ21dHUAAPUK9ghro3PnzhV7KrgUrCC1z+/63nc/bLJcUQAA9ROCsDZKS0srcw2uMsh6ypOSUy1SDwBAPYYgrI18fHxsi1KqjuYmywJ8LVEOAEB9hiCsjdq2beuQcYlk37w3ZKAbHF725qujLFcUAED9hGaZ2kgoFO7++YeXRo7JCY7R+rUUF6e7Xtg8/923FArF458MAABPA0FYSymVyqTzJ3fv3n3q/JWwNoG9l+328vKydFEAAPUQgrD2EovFAwYM6N69u6Ojo6VrAQCot3COEAAArBqCEAAArBqCEAAArBqCEAAArBqCEAAArBqCEAAArBqCEAAArBqCEAAArBqCEAAArBqCEAAArBqCEAAArBqCEAAArBqCEAAArBqCEAAArBqCEAAArBqCEAAArBqCEAAArBqCEAAArBqCEAAArBqCEAAArBqCEAAArBqCEAAArBqCEAAArBqCEAAArBqCEAAArBqCEAAArBqCEAAArBqCEAAArBqCEAAArBqCEAAArBqCEAAArBqCEAAArJrI0gUAAAA8nrEoj9YkMBqV0MXDMWaIGbdstiAsLy+nadrFxaXK4OXLl729vYOCgiqPJycnZ2VlNWvWzNbW1lwFAADUWizLnjx5MjHxmpeXZ+fOnZ2dnS1dUd1gyEmn1Qm0JoFRJxjyMrlBga1DrQvCixcvvvzyy9euXZNKpVqtlh+/cOFCnz59QkJCbt68OWzYsOXLl3Pjb7/99rZt20JCQtRq9Z49e5o3b/78NQAA1Fq3b9/uPWxMplOjQp8W9tpzdjPnffHJByOHDrJ0XbWSyaTP0NDqBFqjYjQJxpICfonAxk4iU0iDFTYRHcz7mmYIQm9v77i4OKPR2LNnz8rjM2fOfOutt+bMmZOVlaVQKMaMGdO8efMLFy5s3rxZpVJ5eXktWrTovffeO3DgwPPXAABQO7Es++KgUddf/JwNak0IKSGkpOu0qZ/0bhER3qRJE0tXVyuweoZJuc4d9mSSr5p0ZfwioZOrRKaUypRSuVLsE0wE1dLXYoYg9PHx8fHxOX/+fOXBvLy8Q4cObdq0iRDi5eXVq1evrVu3Nm/efNu2bb169fLy8iKEjB07du7cufn5+W5ubs9fBgBALXTlypU8hwAuBStIHfK6zfxmzYaVyxZZri4LM+m0jOYqrUmg1Qn61CTWoOcXidx9pTKFRB4hlSlEHn41UEx1NcukpaVJpVJvb2/uYVBQUHJyMiEkJSUlJCSEG/T29raxsUlNTX1oEBoMhsLCwoMHD/IjzZs3d3d3r6aCAQCqQ2pqqq5BSNVRr8bXz221RDmWZCzOZ9QJdLKKVsfrM28Rk6liAUWJ/eRSuVIarJDIlUKnmt41qq4gLCsrk0ql/EMbGxvu9GF5eblEInlw/EH5+fkpKSkLFy7kR6ZOndq9e/dqKrjW0mq1FEVZuoraQqfTCYVCsVhs6UJqBZZly8rKHr+e1aidHxYnJydJYWrV0fwUXy/30tLS6nvdsrIyk8lk8W+IKS/TkHLdkKwy3Eo05d/hxymRWNCwsSioiSiwiSgojJLaEUKMhJQTQsz6bbGxsRGJHpN01RWE3t7excXFer2e+52Vl5fn4+NDCPHy8srLy+PWMRgMRUVF3PiDPD09mzZteujQoWqqsK5gWdbBwcHSVdQWIpEIQchjWZaiKPx48Grnh6Vjx46O2TPystXEU14xZDK4HV42dfWiaq2Woig7OzsLBKHJpM9Mrmj11KiMxfn3SpLaSmUKiUwhlUdI/BtTYskjNlOTqisI/f39vby8Tp482aVLF0LIiRMn3nzzTUJImzZt4uLiuHVOnjzp5eXl7+9fTTUAAFicQCDY9dO6PiNezg3tWdawtaAos8G5H999fXTr1q0f/+Q6gjXomZQkRlMRfvd1uzi6SmQKqUwpkSkkfvJq6nZ5TmYIwpKSkm+//TY9PV2v1y9ZssTZ2fmNN94QiURTpkyZMmXK4sWLT548mZ6ePnToUELIsGHDPvzww9mzZ3fs2HH27NlTpkx57E4rAECdFhERkXT+xI6dO/+9dC4kzPel+b8EBgZauqjnZdKVMckqRnOVVsczqUmsnuEXidx9Klo9ZQqRZ0MLFvmEzBBCLMsWFBTY2dlNnz69oKCA3xOfNWuWq6vr2rVrvb29jx8/bmdnRwixt7c/fvz40qVL165dO2nSpAkTJjx/AQAAtZxUKh0+bNjwYZau4/kYiwu43T5ak6DPSL6v28UnSBrSlNv5Ezo3sGiZT41iWdbSNTzcsWPHPvzww6NHj1q6EAsrKSlxdHS0dBW1BZplKmNZVqvV1sKzYpaCD0tlWq3WLOcIDbmZjCaBO+dnyEnnxymhSBzQmNvtk8gUAts6/HOIw5IAAFAJy+ozkum7J/yMRXn8EkpqKw0O5w57SgJDa0+3y3NCEAIAWDvWaNCnXL97YzOVSXfvqjaBg4tUFi6VR9ztdhFasM5qgiAEALBGLF1OJ1/lDnsyKdfv63Zp4C2RKbkr3EVe9b+xH0EIAGAtTKWFtEZFq+MZjYpJV1ftdpErJTKlVB5R57pdnhOCEACgPjPkZTIaFa1OoJNVhqx797ihhCJxUKhUppDKlZJghcDOevuMEIQAAPULy+rv3KavnqPTb9DqhCrdLpLAMKmc63YJoyTSR2zGeiAIAQDqPNZo0Kck0RoVrUlgklWmsnu36xQ4OEuDFVK5UiJTSBqG1Mtul+eEIAQAqJMqul2SVbQ6nrl9X7eL0M1TGNjELqSpNCRC7OlPLH3r7VoOQQgAUGeYSovu73YxViygKLF3oESulMoUUnmE0MXDXBfUWwMEYT10+vTpxMREd3f3jh07uri4WLocAHguhrw7jEZFaxJojcqQlcKPU0KROChMKlNKZEppcLjA3smCRdZpCMJ6JSMjo8+wMSli30LfVnblGrt3P/x83uyXRwy1dF0A8DS4bhdNAqNR0ep4Y2Euv4SS2EiCwqQypVSulAQ2QbeLWSAI65VeQ16O7/SBKaQjIaSEkJKYGdMW9mmmCGvatKmlSwOAR2GNBn3qDVqjotVct0sJv0hg7ySVKSTcXT39G6HbxewQhPVHUlJSBuvEpWAFiV1e7Jwv435ct/ILy9UFAA/HMjrmVmLFHLa3r7EMzS8SunhI5RFSmUIiV4q9AtDtUq0QhPVHSkqK3qNR1VHv0OuHv7dEOQDwECZtMa1RMep4WqNi0m7e3+0SUDGNn1wpdPW0aJnWBUFYf3h5eYmL0qqO5qc09PW2RDkAUMGYn313MocEfVYq4Se/EwglAaFSmUIij5DKFOh2sRQEYf2hVCqdCjU5d64T79CKIdbkemjpW1/MsmhdANaHZfVZKYw6ga7odsnhl1ASqSQwrOKwZ1ATSmJjwTKBgyCsPyiK2vXTul7DxuQ07lnm34YqyXU/u27SiH6dOnZ8/JMB4PmwRoM+7WbFYc/kqyZtMb9IYO/ET+Mn9g+hhPjFW7vg/6NeCQ8PTzp/8rft2/+9dCYg2LP/nB/lcrmliwKot1hGx9y6RnMzGd2+xjI6fpHQxZ2bw08qU4q9A9HtUpshCOsbiUQyYvjwEcMtXQdAPWXSFtPJVyu6XVJvVO52EXkFSGUKqUwpkStFbl4WLROeAoIQAOAxjIU5NJd86gR9Vsr93S6N+TlsBQ7OFi0TnhGCEADgASyrz05l1Al0sopWxxvzs/kllEQqCQitmMM2qAkltbVgmWAWCEIAAEIIISYjU9HtkkBrEu7rdrFzkAQruCv8xP6N0O1Sz+C/EwCsF8vQzO273S63Eu/rdnFuULHbJ49At0v9hiAEAOtiKithklW0OoHWqPSpN1ijgV8k8vK/O4etUtQAd6KwFghCAKj/jIW53Bx+tCZBf+d2pW4XgcS/kUSm4K5wFzhg2jJrhCAEgPrJkJVKJ6todQKjSTDk3eHHKbHkXrdLcPjTdrv8tmPnR0u+LCgusZVIxgwfNGv6VIlEYu7aoUYhCAGgvjAZmdQkbg4/WnPVVFrILxHYOkiCw6VypVSmEAeEPnO3y/Q589b9k1w0bDNx9CR63ZIjK/544aXTh/YKBAIzvQewAAQhANRhrJ5hbl+n1fFMskqnUZEq3S4yJXfYU+wT9PzdLhkZGZv+OFg09XDFpsQ2ZbHvJe3M2bFj56BBA59z42BBCEIAqGNMZaVMsorWJNAalT4l6b5uFw+/itnbZUqRu495X/fUqVPasB5VArVY0ff3g78jCOs0BCEA1AHGojxak8CoE2h1fJVuF3FDORd+jEeQs69/9dVgMpnYB2eHFwgNBuPDVoc6A0EIALWUITuN1qi4/DPkZfLjlFgi8W/M3dJaEhwusLGrWL+kpFrrad26tf2iVeWxMysP2l8/0GNAZLW+LlQ3BCEA1BomE5OuZrjL25OvGksK+CUCGzuJTCENVkjkEZKAxpRIXPPVBQcH92jd5PffZ5f2+oiIbQnLis9s9k89PHL4RzVfDJgRghAALInVM0zKdVqTwGhUtEbF0uX8IqGTGzeNkVSuFPsEk1rQmbn+u6++/m718pUxNCsQscZe3bssPbhHLLZAKoMZIQgBoKaZykuZ5Ku0RkWrE/SpSaxBzy8SuftK5UqJPEIqU4jcfS1Y5EMJhcJpb7057a03jUajUPjA+UKomxCEAObEsqzBYMAuwoOMxfnczaxpTYI+I/m+bhc/uVSu5C51EDq5WbTMJ4UUrE8QhADmkZiY+Nrb7yenZbACkaut5OsFH77wQqyli7IwQ056RaunRmXIzeDHKZFYEtBYIo+QBiskMgXf7QJgEQhCADO4evVq10GvZA9dRfybEUKyCzOHz5nwbVHx8CGDLF1azTKZ9JnJtDqB1iQwmgRj8f3dLsHh3OztEv/GlBi3JYPaAkEIYAbTP1qYPeBLLgUJIcTFp+CVjTM/7lndQWgwGB6/UjVj9QyTmsTt9jHJKpOujF8kdHStmL1dphT71opuF4AHIQgBzCDhaiJ58f6LyexcGBuXgoICV1dXs79cWlrahOmzL8ZfNVJCR6lo4dwZwwbX6K6nSVfGzeTAaBKYlCrdLj58+Ik8/GqyKoBngyAEMAMBRRHWRKj79nhYA1MdLRVZWVmRsX0z+yxmX+hKCMkpzXvjq3dupWa8P22K2V+rMmNxAaOp1O1iMlUsoCixbzB3ebtUphQ6N6jWMgDMDkEIYAYdIttsVe1nlS/eGyrMcBaZnJyczP5aC5Z9ndX5XTa0a8VjhwaFo9YuW9Z+2uSJZp8PyJCbQWtUjDqe1qgMOen8OCUUiYObSGUKqVwpCQ4X2DqY93VrzPXr12/evBkQEKBQKDCDhNVCEAKYwbJPPzjevU+WgTY2e4lQApJ81n37O9/HLauO1zryz2njkKn3DYkkJLDF9evXIyIinnfrLKvPSKbV8XSyilEnGIvz+SWU1FYaHC6RKaUypSQwtK53u9y+fXvQmIkpBnudV7hN/s+uJbe2rvu2WdOmlq4LLABBCGAGfn5+l48fmPbBJ8e+/sxkYpuENvp6x4awsLDqeC2hUEhMD/TIGA1PskNz4cKFX3bsTruT06Glcuwro+3t7QkhrEGvT0262+p51aTT3nstR1dJcHjFXT395PWm28VgMMT0G6buvYwEtyWElBCSk3Wj59BRiaePODs7W7o6qGkIQgDzcHd337jq6xp4oV4xnVVX/tBHjbs3RJcKM1SPzd03pr3/28mE3MjxxN19/4l/Dv8Us/i1gS6lOUzKdVbP8KuJGnhXdLsEK0Re1TiZgwUdPnw4z7cNl4IVvBrltxj5y9ZfJ74+7r+fB/UTghCgjnn/nbd+7tg9XSRh2owkAiHJuuG27a0l82Y/ujFnz54/D15JbTt8Zlutqq32YLhnstDDhVw+RBNCKErsE1TR7SKPsIZulxs31UWeVQ8j075NL149bJF6wLIsEISHDx/+4IMPsrOzu3fvvnTpUu7gDAA8IScnp8sn/5718cI930QzBmOAn+9XcYsiIx8+E5AhL5NRJ9DqBO+TB49EGEnKoopxSnTernHCrVtDXh4Z0rmXwK6udrs8mwZurjbapPL7B6niLB9Z3bjBG5hXTQdhbm5u//79V61aFRUVNXHixNmzZ3/9dU0cTQJ4KkVFRZcuXTIYDM2bN2/QoNbtITk6Oq5ctugbltVqtQ4O92cYy+ozb3FX+NHqBGNRHjfsJSJagc0FuyZn7Jqctldesm1cLpC6JrwfZevZ2MpSkBASGxvrOG9JeZe3iPTuezcZGpxZO+K97y1aF1hGTQfhxo0b27ZtO2LECELIokWLOnfu/Nlnn9nY2NRwGQCPsGT5ii9W/6gPiWYFIvGN2S8P6Ln0fx9TFGXpuv4TazToU5Lou9P4mcpL+UUCB2dpsEIqVy7aduAzaR9D0AuVnyjOvCqXT6vxei3Pzc3t6/99MOWjF3I7TmX9lCRb4378y5njhjdu3NjSpYEF1HQQqlSqVq1acV83a9asrKwsJSUFP3xQe/ywYfOinWeK3j5GRBJCCGFNq3fOcl6y7KNZ71q6tPuwdLlOo9IlXSpPvc7cvr/bxc1LcncyB7GnP6EoQshIj9C4oePzgtoSOxduNeHlXaHuNv7+9bMd5rGGDR7YqUO779auv5R4OEwe9Pqva/GLyGpZ4NCoTCbjvqYoysnJKScn56E/f5mZmadOneJvTyUQCJYvXz5w4MCaq7V20Gq1tXlfpIbpdDqhUFitkxwt/PLbojHbK1KQEEIJSl/636ovo6a/9UY1vWJSUtKhI8fyi0ratWrWtWvXR/x3s9oiw+1rhluJxtvXDJnJxGS8WyQl9AoQBTYRBoaJgsIFzg0IISwhNCG0tuJaiMDAwBUfzZg+L5aWd6LtPOxSzig8pJu+/6a0tPS/Xq7OedoPi5OTU+Xb8dSnbwUhpKyszGQy4beHjY2NSPSYpKvpIHRxcdFq712lVFpa6ub28LPTPj4+bdq02b17Nz/i5ORkhXOAsSxb9SRQtdHpdLX8MLVIJKruICzV6Yj9/T+TIolRbCeRSMx+3xaWZSe/O2fb4bP5zYaapN4uK/8MXPLVgZ2/eHh48OsY8u5wZ/voZJUhK5Ufp4QicVCYwD/UIayFJFghsHN87MuNGDa4f9/e586dy8vLUyhGNGrUyLxvx+Jq8sNS+1EUZWdnhyB8EjUdhHK5/OLFi9zXarWaENKwYcP/WlkkElXHDYvhQT9u3DxvyZc6gYTS6yJCG639+rOAgABLF2UZIooiJgMR3P/RoLVmT0FCyIbNP2++kls8aS/3sLD1oGLVvmGvvblv9VJazXW7xPPdLoQQSmorCQyTyhRSeYQkMIyIJVqt1uZpfvXb2tp26tTJzG8DoI6r6SAcNWrUZ599duXKFaVS+fnnnw8YMMDR8fF/yUK1+mjBZ1/9fbV44l5i60wIyU461r5H/4tH//L09LR0aRbQr9cL359az1S6XF1wZU/7Nq2q47VWrN1Y3Os7QoiINTQrv9mm7GpbB1VkYEnWknuHYQX2TlKZQiKPkMoUkoYhRHDvoAjLT/JenYqKiqbPnf/XoWN6E+sgFc+dNvm1MaNr235GUlLSijXrVUlqRSP5W+NfCQ0NtXRFUJfUdBDKZLLly5d37dqVZVmlUvnLL7/UcAFQRXl5+ar1m4vf/ZffB2IbR2dFT1/4xYovF39q2dosYsnHc0/3GXQj62pRxAAiFDsk/umfdnzN3h1mfyGWLg82FXXRH217S9Wi7Lqtia5YIKJYRzf70OZSmVIiU4q9KrpdLEKn07Xu3ON25GT9tMWEonLKi6dvnn3p6rUVny2wVEkP+vq77z/9bkNulxmk9YjD2Td/GTJ+zsTR0yZPtHRdUGdQNfNHZRUsy5aXl9vZ2T1inWPHjn344YdHjx6tsapqp5KSkmrdab548WKPmStyhsXdN1qa23zHqxeP7qu+1302NdAsQwhhWfa3HTv/OHiMYfQ9u3YYNXyYuU5Om0qL6GQVd9iTSVPz3S4sRd2UNjxtpzhrp7j5y7yTR/Y/ybku9qHXEZrVylWr3zucWx77XuVXdf8yWnV4Vy05YJCSktKq57DcKQfv9TcZGPdvYs/t+TkwMNCipVmYVqvFOcInZJlbrHFncS3y0lCFSCR6yB2cDfrH9lnVYxRFDR44YPDAAWbZmjE/m5vDj1YnGLJTCf+np0BY6uj5m7rkWKtp5xwU+UInQojowvbYYFnt6fj469i/5WGT7huiKCY05vz58z179rRQUff548+9ha1G3UtBQohIUthq9K7df06Z/Kbl6oK6xHp/2QGnSZMmgtTLhNYS6b173Ukv7+gb2/URz4JHYVl9Vgqtjmc0V2l1vLEwh19CSWwkgWHc7O2SoDBKYlP26eKLP87WRgwQSJ1cNUfCbEp/3rrRgrVXIRAICGuqOmoy1p79jJy8QoNd1T0/g4NnVl6SReqBughBaO1EItGSebOnfz4gf+BXxLcJMTA2/673V/0yfdVBS5dWl7BGgz71ZsWNzTQqU1kJv0hg78RP4yf2D6GE933oFnw4a+KYkceOHy8oLI588522bds+sG1Leqlbx7/37NYGtLg3xJqk1/9u23am5Yq6T9Pwxg5nz5SSQZUHHTIuNu/W0lIlQZ2DIAQyZtTw8MbyaR/Nu52SJpGIB/Z5cf63f+PY9WOxjI65da3ixma3r7GMjl8kdPGQcn2ecqXYK+DR3S4BAQGjR42q/nqfxZiXR30ZF6M+7qmLGk8EQlKS47J9xusjBv7X5b+VnT17dtWGLbfSMpqGhUyf9PpT3cKmvLzc1tb2Sdbs3auX+0cLS2/1JUGtK4ZunW9wc3+f3h8++cuBlUMQAiGEtGnT5kQ1NEbWPyZtMZ18lVHH0xoVk3qj8r1dRF4B3DFPqUwpdKsVjSTPTywWnz2y78MFn21bEa03mlydHP43e/qAfn0f+8Rpc+Zt/Pt8XqeppI3/4fSEzT0GffPp7KGDHnPataSkZMYHn+z66wArdRAw2jHDBn08+91H3+RBKpUe2rV1yKtvpP5tw3g0kuTebCgu3/b7llp+awioVSzTNfok0DXKqe6u0bqlZrpGqzAWcN0uKkadoM9KqdztImko5+ewFTjU9MzmNdA1+mzOnDnTc8qn+eN/u7crrCvx/Cbm5tljj/hhNhqNLTp1vx4+mol8mVAUMRlsDn8dpT13cNe2J3lRjUZz9epVhUIRHBxslndR16Fr9MlhjxDgASyrz0pl7rZ6Gguy+SWURCoJCK2YwzaoCSV9osN31mbjr7/nR46774CwjaOuSc+jR4/26dPnv561e8+e267NmHavVDwWiHQx0y+vH3X+/Hn+Tv2PIJPJPDw88FcjPAMEIQAhhBCTkUm7SWtU3GFPk7aYXyKwc5QEK6RypVSmEPs3qtLtAg/KzS8inu5VBnV27oWFhY941uFT54rlVXuV8+Qxp8+cfZIgBHhm+EiD9WIZmrmdSKsTaI2KuZV4X7eLcwOpPII77Cn2DrTgvV3qolbKxr9duKSXRVYedMq4GBo69RHPkohExKivMigw0GIR+rageiEIoZ5LT08/d+4cRVFt2rTx8fExlZUwySpanUBrEvSpN1njvZsJiLz8uTlsJTKlqIG3BWuu6157ZfSyVTF3Gncl3hUzrAni/2xoyGzduvUjntUntsvaj1bnt+hXedD16q4u876rxloBEIRQj5lMpikzP9i2/5hzeHRrSbFmw5ddApzdWd193S7+jSUyhVQeIZWFCxxcLFpv/eHm5rZ/24Zh497Mk3rqXfzFGfHNAtw3b//50Y0b0dHRke5xJ36fVRI7i9i5kOIs5z/mDoxuWf+mi4LaBkEI9RHL6rNTd3y7PLwwc1cPWUP9BUIIcZMQU7mREtiFKKXyCEmwQhocjm6XahIREaE6fVSj0aSlpTVuPNPHx+dJnrV768bvf1j/9fdDikq07m4uH0ybZK4b3QE8AoIQ6guTkUlXM+qKOWxNpUUdCCEOhOhJsdDhrWMqtwAAFPxJREFUjF34WfsmZ8Tygg1Tbi7/3NK1WgWKouRyuVwuf/KnCASCiePGThw3tvqqAngQghDqMFbPMLev0ep4RqOibyWydDm/SOjc4M9r6cdbvXPaXpkkDTCRioNynozxPzYGAFYKQQh1icFgYMu1xoyb3BXu+pSk+7pdPBtKZQpuGj+Ru88Hoc3vdO9JKMG955uMQhZBCAD3QRBCHWAsyrv4x9Yzu38Lt6dkDgIB33MhEIgbhlRM5iBTCB1dKz+rZ/eum05v0vMXaBMiOfVjv54v1GTlAFD7IQjBAuLj48+cPedgbxcVFdWwYcOHrmPITqM1Klodz2gSDHl3vAnp6y0ihNACyWWBX3xS4pCJk8Ji+ghs/vMis68Wf5LQb2hS6tmi8L6EsC4JO8NI5tJvtlTXuwKAuglBCDWqrKxswOhxF+7oCuXdRPosx/99/dqgXos/nksIISYTk65muPBLvmosKeCfpTWw/zo2O+vU/Iy94rJtI4YSE4f4gyv/d7z30Ee8lqOj45lDe//88889h04IBII+7w7u0aNHdb9BAKhzEITw7DIzM+ct/uLUuQvOzi5D+rwwecK4x85rP/at6UfcYpheYwghBkJIt8nndk089vnscEcBnXz1vm4XJzcJdzPrgLDWfV7NemfBfRtqGKHZmvIkRfbq1atXr15P+9YAwHogCOEZnfzn1MDXJufGfmAaNpOUF18+tGHdpth///7zEdPI6fX6wydP20xf1KnkbJuyxLZaVfPyJHGIgaTnczc3E3n4SWUKiTxCKlOI3H25ZxkMBpPJ8JDNPThzOgDA00MQwjN6ZdK07Nd+I24NCSHEzqX0xQ+SDq9YsnzFx3MeMne5sSiP1iQUJpzd0tlLnjhSQCru7WKkBCobmSpJ9ea8/0mClUIn1wefKxKJvFwccnKSice96XWopGMtmzetljcGAFYGQQjPIj09vVTqVpGCd+kiX/7156F8EBpy0mlNAqNOoDUqQ24GN9jIjjCU6LJto9P2irN24Wfswkt1uvAjw6Y36/SIl1vz5ZKXXhmR238ZGxJFWJMwYa/nvvkr/sJMwgBgBghCeBZlZWXExqnKoFBq5y9iSo/upDUqJjnBWHyv20VgYycJVkhlirk/bl/rPqxMdm+Kc8cD8998ddSjXy6ybdtTe7ZOnfPJ5V0zhEJhx3Ztvzj6l5eXlxnfEQBYLQQhPIuAgAA2M5GYjFJibKa7EalNaFuW2Lo03qGVY+GOVdw6QidXSbCSu8hP7BtMBAJCyMetXjjeb+it6wcL5TEUU97g8i89mgdPmjDusa8ol8v3bFlvkRnqAaB+QxDCUzPptKzmalz/1sLzI5R2Bgl7bw45k5O7Y1iLim4XD78Hn+vm5nbh2IH9+/cf/feck71dz7cWNmvWrAZrBwCoCkEIT8RYnM9oVLQmgVYn6DOTicnUhhBiS0wmNkknulRovFasGzdzbmTX2MduiqKoHj164JI+AKglEITwnww56XTyVUYdT2tUhpx0fpwSicWBTaRypVSmEAaE0pnZES4uHh4eFiwVAOCZIQihEpNJn5nMzd7OaFTG4nx+CSW1lcoUEu6W1gGhlFjCL2rUyNkStQIAmAeC0NqxBj2TksRoEmh1ApOsMunK+EVCR9eK5JMpJH5yrtsFAKCeQRBaI5OujElWMZqrtDqeSU1i9Qy/SOTuI5EppTKlVKYQeT78dtgAAPUJgtBaGEsK7na7xOszkonp7v3JKErsEySVR0hkCqk8QujcwKJlAgDUNARhfWbIzeSOedKahPu6XYQicXAYt9snCVYI7BwsWCQAgGUhCOsXltVn3qLV8dzOn7Eoj19CSW2lQU243T5JYFjlbhcAAGuGIKzzWKNBn3Kd1qhodQKTfNVUXsovEji4SGXh3GFPiZ+cCIQWrBMAoHZCENZJLF1OJ1+taPVMuX5ft4ubl0SulMojpMEKkZe/BYsEAKgTEIR1hqm0kOZmb9eomHT1A90uSkmwQiqPELq4W7RMAIA6BkFYqxnyMvVXzxek36STVYasVH6cEorEQaFSmYLLP4GdowWLBACo0xCEtQzL6u/cptUJjCaBVsdX6XaRBIZJ+W4XidSCZQIA1BsIQstjjQZ9ShKtUdGaBCZZZSqr1O1i7yQMCLUPbSGRKSQNQ9DtAgBgdghCy2DpcvpWIsOd87t9rXK3i9DNUypTSmVKiUwp9vIvKS11cMSRTwCA6oIgrDmm0iI6WcUd9mTS1MRkrFhAUWLvQIlcyR32FLpgGgcAgJqDIKxehvwsRp1AaxJojcqQnUpYtmKBQMid8JPII6TB4QJ7J4uWCQBgvRCE5say+qyUinu7qOONhbn8EkpiIwkKqzjsGRRGSWwsWCYAAHAQhGbAGg361Bt37+2iMpWV8IsE9k5SmULC3dXTvxG6XQAAahsE4TNiGR1zK5Hmu10Yml8kdPGQyiOkMoVErhR7BRCKsmCdAADwaOYJwlu3bp07d664uPi1116rPH706NGDBw/6+Pi88sorDg4VUxyUlJRs2LDhzp07sbGx0dHRZimgZpi0xbRGxajjaY2KSbt5f7dLwN1p/JRCN0+LlgkAAE/BDEG4f//+YcOGBQcHX79+vXIQbtiw4f3333/nnXf279+/du3aM2fOCIVCg8HQuXPngICA9u3bDxs27PPPPx89evTz11B9jAXZ3DRGjCZBn3V/t0tAaEW3i0yBbhcAgDrKDEHYtWvX/Pz8CxcuVN69Y1l2wYIFK1euHDhwoNFoDA8P3717d79+/f744w+tVvvbb78JhcLGjRvPnj171KhRVK06eMiy+qyUu3PYJhgLsvkllEQqCQyTypRSuVISGEZJbS1YJgAAmIUZglAsFj84mJaWlpSU9OKLLxJChEJhbGzsoUOH+vXrd/jw4djYWKFQSAjp0aPHoEGD0tPTGzZs+PxlPBeTkUm9QWtUjCaB1vy/vfuPaeL84wB+tLQFbEExlP6g/gCKWFo3qt0a3Nii/JjDssw4derIGC66zGx/jGyJ2R+LJmYzIzPZ5qIuZoljbkHFwbqIMBVQF5iA7AtUYQLyq4AIFkFaKL3vHzfv27WM+Z1wd3Lv11/PPX2U9z1e/dxdn3KNntFh+hVBiFS8VC+J0UuiE0QabYAQn6oCAMwps/Xfut1ul8lkISEh1KZCoaivr6f6DQYD1RkSEiKTyXp6eqYshHfv3m1tbc3NzaV7NmzYYDQaZyohOe5yd96YaGuaaG9ydzST4076JUHYQtHShMDFy0VLdYEPVrt4CMI14SYm3DMV4CE5nc4pTzX4yel0CoXCycnJfx7KAyRJOp3OwECcnP0JbxZvTqdTIBBw634bG0QiEXXpNY2HegtVVlauW7fOv//q1avx8fFT/hGhUOihnxNEEJOTk9TbVSAQ+PT/XUSxWCwWi8PDw+me8PDwf9yf6XlGhyduXZ9oaxxva3R33SQn/1fVhHKNeKlOvDRBFJ0gXMCh1S5CofAR93ouET7AdhBOIEkSs+ENs+GNmg0UwoeZgYcqhKtXrx4YGPDvl0j+9gEISqVydHTU4XCEhYURBNHT06NSqQiCUKlUdrudGuNwOEZHR6l+fyEhIVFRUXv27HmYhNOYvHvbRa3zvNkw0dfxl9UumjhxdAL1VQeBNOwRf9AsEYlEOMmlUWdOmBAKSZI4PLxhNrxRs4FC+DAeqhAKBIKgoP/v16CoVKrExMTCwsLXX399bGzs7Nmzx44dIwjixRdf3LFjx9jYWHBw8JkzZ4xGo1Kp/DfBp0GSE/2d4zcbXG2Nrpv/mRz0Wu0iEosXx//5DNulOqx2AQCAGfh0YWBg4NVXXx0eHna5XKmpqQqF4vjx4wRB7Nu3Lysrq6qqqra2VqfTrVmzhiCIlJSU+Pj4559/3mg0FhQUUCNnxHhn8/jNBuqrDn9Z7RIsFUcnSKL1kugE0aI4rHYBAABvM1AVZDLZBx98QG8GB/95mZWRkVFVVVVRUWGxWNLT06kr9ICAAKvVWlJS0tfXl5ubGxMT8+gBCIIYuXj67pkj9KYwbKEkRi+O1ktiDCLFYvxuFwAA+DszUAglEklKSsqUL8XGxsbGxvr+yMDAjIyMR/+53kSqpeLF8SLlYkm0XhyjD1w407dbAQBgjpoj9wklcYnyuES2UwAAwONHwHYAAAAANqEQAgAAr6EQAgAAr6EQAgAAr6EQAgAAr6EQAgAAr6EQAgAAr6EQAgAAr6EQAgAAr6EQAgAAr6EQAgAAr6EQAgAAr6EQAgAAr6EQAgAAr6EQAgAAr6EQct1XX3117949tlNwRWlpaU1NDdspuKKrqys/P5/tFBxy4MABtiNwyIkTJ27dusV2iscDCiHXff311z09PWyn4Ipz585dvnyZ7RRc0djYePLkSbZTcMj+/fs9Hg/bKbji1KlTDQ0NbKd4PKAQAgAAr6EQAgAAr6EQAgAArwWQJMl2hqkVFhZu27ZNqVSyHYRlXV1dCoUiMDCQ7SCccOfOHZFIFBoaynYQThgbG3M4HAqFgu0gXNHe3r5kyRK2U3BFX19faGhocHAw20FYtnXr1n379k0/hruFkCCI5uZmFACXyyWRSNhOwRVutzsgIEAoFLIdhCtweHjDbHjDbFCUSuU/ng1wuhACAADMNnxGCAAAvIZCCAAAvIZCCAAAvIZCCAAAvMb3NZmcVVRU1NvbS7XDw8M3btzoP+bGjRvffvut2+3eunWrwWBgNiCj+vv7i4uLbTZbeHj45s2bY2JifAa43e5jx47RmytWrDCbzcxmnF0ejyc/P7+uri42NjYnJ2fK1YBVVVUnT56UyWTZ2dkajYb5kIxpaWn5+eefOzo6NBpNVlZWeHi4zwC73V5cXExvrl271v+YmTOampouXbpEb27cuNF/Qu7fv3/06NFbt26ZzeZXXnklICCA2YxchytCjvr0009LSkpaW1tbW1s7Ozv9B/zxxx9PP/00SZJSqfSZZ56pr69nPiRj3nrrrbKyMpVKZbfbV6xYUV1d7TPA5XLt3LmzpaWFmrHBwUFWcs6e3NzcvLw8rVZ76tSpLVu2+A84f/58enq6QqEYHBw0mUz9/f3Mh2SMxWKx2WyLFi26fPmywWDw39nm5uYPP/yw9YGRkRFWcjLj4sWLBw8epHd2YmLCf4zFYikpKdFqtR999NHevXuZD8l1JHDSs88+e+bMmWkGvPPOOzt27KDa77//flZWFiO52DE2Nka333jjjZ07d/oMoP6nczqdzOZiyJ07d4KDg5ubm0mSvHfvnlQqbWho8BmTlpaWl5dHtTMzM/fv3890SgbRx4PH43niiSeOHDniM+DixYsGg4HxXOz48ssvt2zZMs2AK1euLFy4kHp31NbWzp8/f3R0lKl0jwdcEXLX2bNn8/LyrFYrOdV3PcvLy9PS0qh2ampqeXk5s+kYFRQURLedTqdUKp1y2KFDhz7//PNr164xlYsh1dXVCoVCq9USBCGVSs1mc0VFhfcAkiQrKipSU1OpTRwPBEE4HI68vLwjR47w4VFEbW1tBw4c+Oabb4aGhvxfLS8vT05Opm6nJyYmikSiuX0D6V9AIeQonU4XFBTU39//7rvvZmRk+D9cxm63R0REUG25XN7b2ztlvZxjKisrrVbr7t27ffoDAgJSU1Nv377d2Nj43HPPffbZZ6zEmyW9vb30vzVBEJGRkT5P5hoaGnI6nd7Hg91uZzQiS7744guSJF9++WWf/qCgoKeeempoaOjChQsGg6G0tJSVeMxYsGDB8uXLh4eHv//++2XLlrW0tPgM8Dl+5HI5nuzmi90LUj7LyMgQ+snMzPQZNjQ0FBERQV0XelOr1aWlpVS7pqZm3rx5TISeNcXFxf6zIRQKOzs76TG///57ZGRkQUHB9H9VWVmZRCLxvpv6uDt+/PjKlSvpzU2bNu3du9d7wPDwMEEQ9Fzl5+evWrWK0YhsKCwsVCgU/neJfXzyySdGo5GZSKx77bXX/D8lee+993JycujNuLi4oqIiZnNxHa4IWfPTTz+5/fz4448+w+bPn5+QkNDW1ubTr1ar6dO67u5utVrNROhZs379ev/ZcLvdUVFR1IDr16+/8MILBw8enHIBrbekpCSXyzWXznlVKpX37nR3d6tUKu8BMplMJpN1d3fTA+b8b6u3Wq27du2yWq0JCQnTj0xKSmptbWUmFeum3Fm1Wk0fG5OTk729vT7HD6AQchFVA6h2V1dXXV0d9W53OBwXLlyg+i0WS0FBAdUuKCiwWCysRGVGS0tLWlraxx9/7LNgsrq6mqoQY2NjdGdxcXFoaOhc+v5AUlLSxMREZWUlQRAdHR21tbXr1q0jCMJut9MLaDMzM6mn1Xs8ntOnT2dmZrIYeLaVlpbm5OQUFRUZjUa6kyTJ8+fP08um6P7i4mK9Xs9CSqbQB7/H47FarfTOXrlyhVpPu379+srKSqp97ty5sLCwJ598kq20HMX2JSlMoa2tTalUbtiwYdOmTQsWLNi1axfVf+nSJYFAQLUHBgbi4uLS09NfeumlRYsWdXV1sZd31q1du1Yqla58YPfu3VS/Xq8/fPgwSZKHDh3S6/Xbtm1LT08PDQ09ceIEq3ln3uHDhyMjI7Ozs5csWbJnzx6q8+jRozqdjmo3NTXJ5fLNmzcnJyebTKa5vSwwLCxMLpfTxwP1SaHL5SIIoqamhiTJN998c/Xq1du3bzebzUql8urVq2xHnkXJycmpqanbt29fvny5Tqez2+1Uf1RU1A8//EC13377ba1Wm52dLZfLv/vuO/bCchSePsFRNpvNZrN5PB6DwbBs2TKqc2RkxGazmUwmavP+/ftlZWWTk5MpKSkymYy9sLPuxo0b3l8FCw0NpZZQNjQ0REZGRkREjI+P19TUtLe3h4WFmUwm76UBc4bNZrt27ZpWq121ahXVc/v27b6+PvoKYHBw8JdffpHJZGvWrBGLxewlnXV1dXXey8cUCoVarSZJ8rffftPr9SEhISMjI1VVVf39/XK53Gw2z5s3j8W0s21gYKC6utrhcGg0GrPZTD+6rr6+XqPR0F+u//XXX9vb200mU2xsLHthOQqFEAAAeA2fEQIAAK+hEAIAAK+hEAIAAK+hEAIAAK+hEAIAAK+hEAIAAK+hEAIAAK+hEAIAAK+hEAIAAK+hEAIAAK+hEAIAAK/9F75Z9ngisz0uAAAAAElFTkSuQmCC", + "text/html": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ], + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "metadata": {}, + "execution_count": 4 + } + ], + "cell_type": "code", + "source": [ + "y_pred = linear_regression(x_train, y_train, x_test)\n", + "scatter(x_train, y_train; label=\"observations\")\n", + "plot!(x_test, y_pred; label=\"linear fit\")" + ], + "metadata": {}, + "execution_count": 4 + }, + { + "cell_type": "markdown", + "source": [ + "## Featurization\n", + "We can improve the fit by including additional features, i.e. generalizing to $\\tilde{\\mathrm{X}} = (\\phi(x_n))_{n=1}^N$, where $\\phi(x)$ constructs a feature vector for each input $x$. Here we include powers of the input, $\\phi(x) = (1, x, x^2, \\dots, x^d)$:" + ], + "metadata": {} + }, + { + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "Plot{Plots.GRBackend() n=8}", + "image/png": "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", + "text/html": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ], + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "metadata": {}, + "execution_count": 5 + } + ], + "cell_type": "code", + "source": [ + "function featurize_poly(x; degree=1)\n", + " return repeat(x, 1, degree + 1) .^ (0:degree)'\n", + "end\n", + "\n", + "function featurized_fit_and_plot(degree)\n", + " X = featurize_poly(x_train; degree=degree)\n", + " Xstar = featurize_poly(x_test; degree=degree)\n", + " y_pred = linear_regression(X, y_train, Xstar)\n", + " scatter(x_train, y_train; legend=false, title=\"fit of order $degree\")\n", + " return plot!(x_test, y_pred)\n", + "end\n", + "\n", + "plot((featurized_fit_and_plot(degree) for degree in 1:4)...)" + ], + "metadata": {}, + "execution_count": 5 + }, + { + "cell_type": "markdown", + "source": [ + "Note that the fit becomes perfect when we include exactly as many orders in the features as we have in the underlying polynomial (4).\n", + "\n", + "However, when increasing the number of features, we can quickly overfit to noise in the data set:" + ], + "metadata": {} + }, + { + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "Plot{Plots.GRBackend() n=2}", + "image/png": "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", + "text/html": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ], + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "metadata": {}, + "execution_count": 6 + } + ], + "cell_type": "code", + "source": [ + "featurized_fit_and_plot(20)" + ], + "metadata": {}, + "execution_count": 6 + }, + { + "cell_type": "markdown", + "source": [ + "## Ridge regression\n", + "To counteract this unwanted behaviour, we can introduce regularization. This leads to *ridge regression* with $L_2$ regularization of the weights ([Tikhonov regularization](https://en.wikipedia.org/wiki/Tikhonov_regularization)).\n", + "Instead of the weights in linear regression,\n", + "$$\n", + "\\mathbf{w} = (\\mathrm{X}^\\top \\mathrm{X})^{-1} \\mathrm{X}^\\top \\mathbf{y}\n", + "$$\n", + "we introduce the ridge parameter $\\lambda$:\n", + "$$\n", + "\\mathbf{w} = (\\mathrm{X}^\\top \\mathrm{X} + \\lambda \\mathbb{1})^{-1} \\mathrm{X}^\\top \\mathbf{y}\n", + "$$\n", + "As before, we predict at test inputs $\\mathbf{x}_*$ using\n", + "$$\n", + "\\hat{y}_* = \\mathbf{x}_*^\\top \\mathbf{w}\n", + "$$\n", + "This is implemented by `ridge_regression`:" + ], + "metadata": {} + }, + { + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "Plot{Plots.GRBackend() n=8}", + "image/png": "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", + "text/html": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ], + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "metadata": {}, + "execution_count": 7 + } + ], + "cell_type": "code", + "source": [ + "function ridge_regression(X, y, Xstar, lambda)\n", + " weights = (X' * X + lambda * I) \\ (X' * y)\n", + " return Xstar * weights\n", + "end\n", + "\n", + "function regularized_fit_and_plot(degree, lambda)\n", + " X = featurize_poly(x_train; degree=degree)\n", + " Xstar = featurize_poly(x_test; degree=degree)\n", + " y_pred = ridge_regression(X, y_train, Xstar, lambda)\n", + " scatter(x_train, y_train; legend=false, title=\"\\$\\\\lambda=$lambda\\$\")\n", + " return plot!(x_test, y_pred)\n", + "end\n", + "\n", + "plot((regularized_fit_and_plot(20, lambda) for lambda in (1e-3, 1e-2, 1e-1, 1))...)" + ], + "metadata": {}, + "execution_count": 7 + }, + { + "cell_type": "markdown", + "source": [ + "## Kernel ridge regression\n", + "Instead of constructing the feature matrix explicitly, we can use *kernels* to replace inner products of feature vectors with a kernel evaluation: $\\langle \\phi(x), \\phi(x') \\rangle = k(x, x')$ or $\\tilde{\\mathrm{X}} \\tilde{\\mathrm{X}}^\\top = \\mathrm{K}$, where $\\mathrm{K}_{ij} = k(x_i, x_j)$.\n", + "\n", + "To apply this \"kernel trick\" to ridge regression, we can rewrite the ridge estimate for the weights\n", + "$$\n", + "\\mathbf{w} = (\\mathrm{X}^\\top \\mathrm{X} + \\lambda \\mathbb{1})^{-1} \\mathrm{X}^\\top \\mathbf{y}\n", + "$$\n", + "using the [matrix inversion lemma](https://tlienart.github.io/pub/csml/mtheory/matinvlem.html#basic_lemmas)\n", + "as\n", + "$$\n", + "\\mathbf{w} = \\mathrm{X}^\\top (\\mathrm{X} \\mathrm{X}^\\top + \\lambda \\mathbb{1})^{-1} \\mathbf{y}\n", + "$$\n", + "where we can now replace the inner product with the kernel matrix,\n", + "$$\n", + "\\mathbf{w} = \\mathrm{X}^\\top (\\mathrm{K} + \\lambda \\mathbb{1})^{-1} \\mathbf{y}\n", + "$$\n", + "And the prediction yields another inner product,\n", + "$$\n", + "\\hat{y}_* = \\mathbf{x}_*^\\top \\mathbf{w} = \\langle \\mathbf{x}_*, \\mathbf{w} \\rangle = \\mathbf{k}_* (\\mathrm{K} + \\lambda \\mathbb{1})^{-1} \\mathbf{y}\n", + "$$\n", + "where $(\\mathbf{k}_*)_n = k(x_*, x_n)$.\n", + "\n", + "This is implemented by `kernel_ridge_regression`:" + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "function kernel_ridge_regression(k, X, y, Xstar, lambda)\n", + " K = kernelmatrix(k, X)\n", + " kstar = kernelmatrix(k, Xstar, X)\n", + " return kstar * ((K + lambda * I) \\ y)\n", + "end;" + ], + "metadata": {}, + "execution_count": 8 + }, + { + "cell_type": "markdown", + "source": [ + "Now, instead of explicitly constructing features, we can simply pass in a `PolynomialKernel` object:" + ], + "metadata": {} + }, + { + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "Plot{Plots.GRBackend() n=8}", + "image/png": "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", + "text/html": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ], + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "metadata": {}, + "execution_count": 9 + } + ], + "cell_type": "code", + "source": [ + "function kernelized_fit_and_plot(kernel, lambda=1e-4)\n", + " y_pred = kernel_ridge_regression(kernel, x_train, y_train, x_test, lambda)\n", + " if kernel isa PolynomialKernel\n", + " title = string(\"order \", kernel.degree)\n", + " else\n", + " title = string(nameof(typeof(kernel)))\n", + " end\n", + " scatter(x_train, y_train; label=nothing)\n", + " return plot!(x_test, y_pred; label=nothing, title=title)\n", + "end\n", + "\n", + "plot((kernelized_fit_and_plot(PolynomialKernel(; degree=degree, c=1)) for degree in 1:4)...)" + ], + "metadata": {}, + "execution_count": 9 + }, + { + "cell_type": "markdown", + "source": [ + "However, we can now also use kernels that would have an infinite-dimensional feature expansion, such as the squared exponential kernel:" + ], + "metadata": {} + }, + { + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "Plot{Plots.GRBackend() n=2}", + "image/png": "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", + "text/html": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ], + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "metadata": {}, + "execution_count": 10 + } + ], + "cell_type": "code", + "source": [ + "kernelized_fit_and_plot(SqExponentialKernel())" + ], + "metadata": {}, + "execution_count": 10 + }, + { + "cell_type": "markdown", + "source": [ + "
    \n", + "
    Package and system information
    \n", + "
    \n", + "Package information (click to expand)\n", + "
    \n",
    +    "Status `~/work/KernelFunctions.jl/KernelFunctions.jl/examples/kernel-ridge-regression/Project.toml`\n",
    +    "  [31c24e10] Distributions v0.25.103\n",
    +    "  [ec8451be] KernelFunctions v0.10.59 `/home/runner/work/KernelFunctions.jl/KernelFunctions.jl#ec19a94`\n",
    +    "  [98b081ad] Literate v2.16.0\n",
    +    "  [91a5bcdd] Plots v1.39.0\n",
    +    "  [37e2e46d] LinearAlgebra\n",
    +    "
    \n", + "To reproduce this notebook's package environment, you can\n", + "\n", + "download the full Manifest.toml.\n", + "
    \n", + "
    \n", + "System information (click to expand)\n", + "
    \n",
    +    "Julia Version 1.9.4\n",
    +    "Commit 8e5136fa297 (2023-11-14 08:46 UTC)\n",
    +    "Build Info:\n",
    +    "  Official https://julialang.org/ release\n",
    +    "Platform Info:\n",
    +    "  OS: Linux (x86_64-linux-gnu)\n",
    +    "  CPU: 4 × AMD EPYC 7763 64-Core Processor\n",
    +    "  WORD_SIZE: 64\n",
    +    "  LIBM: libopenlibm\n",
    +    "  LLVM: libLLVM-14.0.6 (ORCJIT, znver3)\n",
    +    "  Threads: 1 on 4 virtual cores\n",
    +    "Environment:\n",
    +    "  JULIA_DEBUG = Documenter\n",
    +    "  JULIA_LOAD_PATH = :/home/runner/.julia/packages/JuliaGPsDocs/7M86H/src\n",
    +    "
    \n", + "
    " + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "---\n", + "\n", + "*This notebook was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).*" + ], + "metadata": {} + } + ], + "nbformat_minor": 3, + "metadata": { + "language_info": { + "file_extension": ".jl", + "mimetype": "application/julia", + "name": "julia", + "version": "1.9.4" + }, + "kernelspec": { + "name": "julia-1.9", + "display_name": "Julia 1.9.4", + "language": "julia" + } + }, + "nbformat": 4 +} diff --git a/v0.10.59/examples/support-vector-machine/Manifest.toml b/v0.10.59/examples/support-vector-machine/Manifest.toml new file mode 100644 index 000000000..c9344c240 --- /dev/null +++ b/v0.10.59/examples/support-vector-machine/Manifest.toml @@ -0,0 +1,1239 @@ +# This file is machine-generated - editing it directly is not advised + +julia_version = "1.9.4" +manifest_format = "2.0" +project_hash = "d0b26683c92b747389c4e23a24f873fcb30a1126" + +[[deps.ArgTools]] +uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" +version = "1.1.1" + +[[deps.Artifacts]] +uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" + +[[deps.Base64]] +uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" + +[[deps.BitFlags]] +git-tree-sha1 = "2dc09997850d68179b69dafb58ae806167a32b1b" +uuid = "d1d4a3ce-64b1-5f1a-9ba4-7e7e69966f35" +version = "0.1.8" + +[[deps.Bzip2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "19a35467a82e236ff51bc17a3a44b69ef35185a2" +uuid = "6e34b625-4abd-537c-b88f-471c36dfa7a0" +version = "1.0.8+0" + +[[deps.Cairo_jll]] +deps = ["Artifacts", "Bzip2_jll", "CompilerSupportLibraries_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "LZO_jll", "Libdl", "Pixman_jll", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"] +git-tree-sha1 = "4b859a208b2397a7a623a03449e4636bdb17bcf2" +uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a" +version = "1.16.1+1" + +[[deps.Calculus]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "f641eb0a4f00c343bbc32346e1217b86f3ce9dad" +uuid = "49dc2e85-a5d0-5ad3-a950-438e2897f1b9" +version = "0.5.1" + +[[deps.ChainRulesCore]] +deps = ["Compat", "LinearAlgebra"] +git-tree-sha1 = "e0af648f0692ec1691b5d094b8724ba1346281cf" +uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" +version = "1.18.0" +weakdeps = ["SparseArrays"] + + [deps.ChainRulesCore.extensions] + ChainRulesCoreSparseArraysExt = "SparseArrays" + +[[deps.CodecZlib]] +deps = ["TranscodingStreams", "Zlib_jll"] +git-tree-sha1 = "cd67fc487743b2f0fd4380d4cbd3a24660d0eec8" +uuid = "944b1d66-785c-5afd-91f1-9de20f533193" +version = "0.7.3" + +[[deps.ColorSchemes]] +deps = ["ColorTypes", "ColorVectorSpace", "Colors", "FixedPointNumbers", "PrecompileTools", "Random"] +git-tree-sha1 = "67c1f244b991cad9b0aa4b7540fb758c2488b129" +uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4" +version = "3.24.0" + +[[deps.ColorTypes]] +deps = ["FixedPointNumbers", "Random"] +git-tree-sha1 = "eb7f0f8307f71fac7c606984ea5fb2817275d6e4" +uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f" +version = "0.11.4" + +[[deps.ColorVectorSpace]] +deps = ["ColorTypes", "FixedPointNumbers", "LinearAlgebra", "Requires", "Statistics", "TensorCore"] +git-tree-sha1 = "a1f44953f2382ebb937d60dafbe2deea4bd23249" +uuid = "c3611d14-8923-5661-9e6a-0046d554d3a4" +version = "0.10.0" +weakdeps = ["SpecialFunctions"] + + [deps.ColorVectorSpace.extensions] + SpecialFunctionsExt = "SpecialFunctions" + +[[deps.Colors]] +deps = ["ColorTypes", "FixedPointNumbers", "Reexport"] +git-tree-sha1 = "fc08e5930ee9a4e03f84bfb5211cb54e7769758a" +uuid = "5ae59095-9a9b-59fe-a467-6f913c188581" +version = "0.12.10" + +[[deps.Compat]] +deps = ["UUIDs"] +git-tree-sha1 = "8a62af3e248a8c4bad6b32cbbe663ae02275e32c" +uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" +version = "4.10.0" +weakdeps = ["Dates", "LinearAlgebra"] + + [deps.Compat.extensions] + CompatLinearAlgebraExt = "LinearAlgebra" + +[[deps.CompilerSupportLibraries_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" +version = "1.0.5+0" + +[[deps.CompositionsBase]] +git-tree-sha1 = "802bb88cd69dfd1509f6670416bd4434015693ad" +uuid = "a33af91c-f02d-484b-be07-31d278c5ca2b" +version = "0.1.2" + + [deps.CompositionsBase.extensions] + CompositionsBaseInverseFunctionsExt = "InverseFunctions" + + [deps.CompositionsBase.weakdeps] + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.ConcurrentUtilities]] +deps = ["Serialization", "Sockets"] +git-tree-sha1 = "8cfa272e8bdedfa88b6aefbbca7c19f1befac519" +uuid = "f0e56b4a-5159-44fe-b623-3e5288b988bb" +version = "2.3.0" + +[[deps.Contour]] +git-tree-sha1 = "d05d9e7b7aedff4e5b51a029dced05cfb6125781" +uuid = "d38c429a-6771-53c6-b99e-75d170b6e991" +version = "0.6.2" + +[[deps.DataAPI]] +git-tree-sha1 = "8da84edb865b0b5b0100c0666a9bc9a0b71c553c" +uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" +version = "1.15.0" + +[[deps.DataStructures]] +deps = ["Compat", "InteractiveUtils", "OrderedCollections"] +git-tree-sha1 = "3dbd312d370723b6bb43ba9d02fc36abade4518d" +uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" +version = "0.18.15" + +[[deps.Dates]] +deps = ["Printf"] +uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" + +[[deps.DelimitedFiles]] +deps = ["Mmap"] +git-tree-sha1 = "9e2f36d3c96a820c678f2f1f1782582fcf685bae" +uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab" +version = "1.9.1" + +[[deps.Distances]] +deps = ["LinearAlgebra", "Statistics", "StatsAPI"] +git-tree-sha1 = "5225c965635d8c21168e32a12954675e7bea1151" +uuid = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7" +version = "0.10.10" +weakdeps = ["ChainRulesCore", "SparseArrays"] + + [deps.Distances.extensions] + DistancesChainRulesCoreExt = "ChainRulesCore" + DistancesSparseArraysExt = "SparseArrays" + +[[deps.Distributions]] +deps = ["FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns"] +git-tree-sha1 = "a6c00f894f24460379cb7136633cef54ac9f6f4a" +uuid = "31c24e10-a181-5473-b8eb-7969acd0382f" +version = "0.25.103" + + [deps.Distributions.extensions] + DistributionsChainRulesCoreExt = "ChainRulesCore" + DistributionsDensityInterfaceExt = "DensityInterface" + DistributionsTestExt = "Test" + + [deps.Distributions.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + DensityInterface = "b429d917-457f-4dbc-8f4c-0cc954292b1d" + Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[[deps.DocStringExtensions]] +deps = ["LibGit2"] +git-tree-sha1 = "2fb1e02f2b635d0845df5d7c167fec4dd739b00d" +uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" +version = "0.9.3" + +[[deps.Downloads]] +deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] +uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6" +version = "1.6.0" + +[[deps.DualNumbers]] +deps = ["Calculus", "NaNMath", "SpecialFunctions"] +git-tree-sha1 = "5837a837389fccf076445fce071c8ddaea35a566" +uuid = "fa6b7ba4-c1ee-5f82-b5fc-ecf0adba8f74" +version = "0.6.8" + +[[deps.EpollShim_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "8e9441ee83492030ace98f9789a654a6d0b1f643" +uuid = "2702e6a9-849d-5ed8-8c21-79e8b8f9ee43" +version = "0.0.20230411+0" + +[[deps.ExceptionUnwrapping]] +deps = ["Test"] +git-tree-sha1 = "e90caa41f5a86296e014e148ee061bd6c3edec96" +uuid = "460bff9d-24e4-43bc-9d9f-a8973cb893f4" +version = "0.1.9" + +[[deps.Expat_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "4558ab818dcceaab612d1bb8c19cee87eda2b83c" +uuid = "2e619515-83b5-522b-bb60-26c02a35a201" +version = "2.5.0+0" + +[[deps.FFMPEG]] +deps = ["FFMPEG_jll"] +git-tree-sha1 = "b57e3acbe22f8484b4b5ff66a7499717fe1a9cc8" +uuid = "c87230d0-a227-11e9-1b43-d7ebe4e7570a" +version = "0.4.1" + +[[deps.FFMPEG_jll]] +deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "JLLWrappers", "LAME_jll", "Libdl", "Ogg_jll", "OpenSSL_jll", "Opus_jll", "PCRE2_jll", "Zlib_jll", "libaom_jll", "libass_jll", "libfdk_aac_jll", "libvorbis_jll", "x264_jll", "x265_jll"] +git-tree-sha1 = "466d45dc38e15794ec7d5d63ec03d776a9aff36e" +uuid = "b22a6f82-2f65-5046-a5b2-351ab43fb4e5" +version = "4.4.4+1" + +[[deps.FileWatching]] +uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" + +[[deps.FillArrays]] +deps = ["LinearAlgebra", "Random"] +git-tree-sha1 = "35f0c0f345bff2c6d636f95fdb136323b5a796ef" +uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" +version = "1.7.0" +weakdeps = ["SparseArrays", "Statistics"] + + [deps.FillArrays.extensions] + FillArraysSparseArraysExt = "SparseArrays" + FillArraysStatisticsExt = "Statistics" + +[[deps.FixedPointNumbers]] +deps = ["Statistics"] +git-tree-sha1 = "335bfdceacc84c5cdf16aadc768aa5ddfc5383cc" +uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93" +version = "0.8.4" + +[[deps.Fontconfig_jll]] +deps = ["Artifacts", "Bzip2_jll", "Expat_jll", "FreeType2_jll", "JLLWrappers", "Libdl", "Libuuid_jll", "Pkg", "Zlib_jll"] +git-tree-sha1 = "21efd19106a55620a188615da6d3d06cd7f6ee03" +uuid = "a3f928ae-7b40-5064-980b-68af3947d34b" +version = "2.13.93+0" + +[[deps.Formatting]] +deps = ["Printf"] +git-tree-sha1 = "8339d61043228fdd3eb658d86c926cb282ae72a8" +uuid = "59287772-0a20-5a39-b81b-1366585eb4c0" +version = "0.4.2" + +[[deps.FreeType2_jll]] +deps = ["Artifacts", "Bzip2_jll", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "d8db6a5a2fe1381c1ea4ef2cab7c69c2de7f9ea0" +uuid = "d7e528f0-a631-5988-bf34-fe36492bcfd7" +version = "2.13.1+0" + +[[deps.FriBidi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "aa31987c2ba8704e23c6c8ba8a4f769d5d7e4f91" +uuid = "559328eb-81f9-559d-9380-de523a88c83c" +version = "1.0.10+0" + +[[deps.Functors]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "9a68d75d466ccc1218d0552a8e1631151c569545" +uuid = "d9f16b24-f501-4c13-a1f2-28368ffc5196" +version = "0.4.5" + +[[deps.GLFW_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libglvnd_jll", "Pkg", "Xorg_libXcursor_jll", "Xorg_libXi_jll", "Xorg_libXinerama_jll", "Xorg_libXrandr_jll"] +git-tree-sha1 = "d972031d28c8c8d9d7b41a536ad7bb0c2579caca" +uuid = "0656b61e-2033-5cc2-a64a-77c0f6c09b89" +version = "3.3.8+0" + +[[deps.GR]] +deps = ["Artifacts", "Base64", "DelimitedFiles", "Downloads", "GR_jll", "HTTP", "JSON", "Libdl", "LinearAlgebra", "Pkg", "Preferences", "Printf", "Random", "Serialization", "Sockets", "TOML", "Tar", "Test", "UUIDs", "p7zip_jll"] +git-tree-sha1 = "27442171f28c952804dede8ff72828a96f2bfc1f" +uuid = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71" +version = "0.72.10" + +[[deps.GR_jll]] +deps = ["Artifacts", "Bzip2_jll", "Cairo_jll", "FFMPEG_jll", "Fontconfig_jll", "FreeType2_jll", "GLFW_jll", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Libtiff_jll", "Pixman_jll", "Qt6Base_jll", "Zlib_jll", "libpng_jll"] +git-tree-sha1 = "025d171a2847f616becc0f84c8dc62fe18f0f6dd" +uuid = "d2c73de3-f751-5644-a686-071e5b155ba9" +version = "0.72.10+0" + +[[deps.Gettext_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "XML2_jll"] +git-tree-sha1 = "9b02998aba7bf074d14de89f9d37ca24a1a0b046" +uuid = "78b55507-aeef-58d4-861c-77aaff3498b1" +version = "0.21.0+0" + +[[deps.Glib_jll]] +deps = ["Artifacts", "Gettext_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE2_jll", "Zlib_jll"] +git-tree-sha1 = "e94c92c7bf4819685eb80186d51c43e71d4afa17" +uuid = "7746bdde-850d-59dc-9ae8-88ece973131d" +version = "2.76.5+0" + +[[deps.Graphite2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "344bf40dcab1073aca04aa0df4fb092f920e4011" +uuid = "3b182d85-2403-5c21-9c21-1e1f0cc25472" +version = "1.3.14+0" + +[[deps.Grisu]] +git-tree-sha1 = "53bb909d1151e57e2484c3d1b53e19552b887fb2" +uuid = "42e2da0e-8278-4e71-bc24-59509adca0fe" +version = "1.0.2" + +[[deps.HTTP]] +deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] +git-tree-sha1 = "5eab648309e2e060198b45820af1a37182de3cce" +uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" +version = "1.10.0" + +[[deps.HarfBuzz_jll]] +deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg"] +git-tree-sha1 = "129acf094d168394e80ee1dc4bc06ec835e510a3" +uuid = "2e76f6c2-a576-52d4-95c1-20adfe4de566" +version = "2.8.1+1" + +[[deps.HypergeometricFunctions]] +deps = ["DualNumbers", "LinearAlgebra", "OpenLibm_jll", "SpecialFunctions"] +git-tree-sha1 = "f218fe3736ddf977e0e772bc9a586b2383da2685" +uuid = "34004b35-14d8-5ef3-9330-4cdb6864b03a" +version = "0.3.23" + +[[deps.IOCapture]] +deps = ["Logging", "Random"] +git-tree-sha1 = "d75853a0bdbfb1ac815478bacd89cd27b550ace6" +uuid = "b5f81e59-6552-4d32-b1f0-c071b021bf89" +version = "0.2.3" + +[[deps.InteractiveUtils]] +deps = ["Markdown"] +uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" + +[[deps.IrrationalConstants]] +git-tree-sha1 = "630b497eafcc20001bba38a4651b327dcfc491d2" +uuid = "92d709cd-6900-40b7-9082-c6be49f344b6" +version = "0.2.2" + +[[deps.JLFzf]] +deps = ["Pipe", "REPL", "Random", "fzf_jll"] +git-tree-sha1 = "9fb0b890adab1c0a4a475d4210d51f228bfc250d" +uuid = "1019f520-868f-41f5-a6de-eb00f4b6a39c" +version = "0.1.6" + +[[deps.JLLWrappers]] +deps = ["Artifacts", "Preferences"] +git-tree-sha1 = "7e5d6779a1e09a36db2a7b6cff50942a0a7d0fca" +uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" +version = "1.5.0" + +[[deps.JSON]] +deps = ["Dates", "Mmap", "Parsers", "Unicode"] +git-tree-sha1 = "31e996f0a15c7b280ba9f76636b3ff9e2ae58c9a" +uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" +version = "0.21.4" + +[[deps.JpegTurbo_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "6f2675ef130a300a112286de91973805fcc5ffbc" +uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" +version = "2.1.91+0" + +[[deps.KernelFunctions]] +deps = ["ChainRulesCore", "Compat", "CompositionsBase", "Distances", "FillArrays", "Functors", "IrrationalConstants", "LinearAlgebra", "LogExpFunctions", "Random", "Requires", "SpecialFunctions", "Statistics", "StatsBase", "TensorCore", "Test", "ZygoteRules"] +git-tree-sha1 = "2e9c8eb5f2acd58fe7b738affe2ca24da171c904" +repo-rev = "ec19a948f0d43543be1edf24a5ebac6fe3195f5a" +repo-url = "/home/runner/work/KernelFunctions.jl/KernelFunctions.jl" +uuid = "ec8451be-7e33-11e9-00cf-bbf324bd1392" +version = "0.10.59" + +[[deps.LAME_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "f6250b16881adf048549549fba48b1161acdac8c" +uuid = "c1c5ebd0-6772-5130-a774-d5fcae4a789d" +version = "3.100.1+0" + +[[deps.LERC_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "bf36f528eec6634efc60d7ec062008f171071434" +uuid = "88015f11-f218-50d7-93a8-a6af411a945d" +version = "3.0.0+1" + +[[deps.LIBLINEAR]] +deps = ["Libdl", "SparseArrays", "liblinear_jll"] +git-tree-sha1 = "81e40115c23acca9dfa30944050096b958271e5a" +uuid = "2d691ee1-e668-5016-a719-b2531b85e0f5" +version = "0.6.0" + +[[deps.LIBSVM]] +deps = ["LIBLINEAR", "LinearAlgebra", "ScikitLearnBase", "SparseArrays", "libsvm_jll"] +git-tree-sha1 = "a5e607649aeb9ae3bbde19dc629faaa3b3d8955d" +uuid = "b1bec4e5-fd48-53fe-b0cb-9723c09d164b" +version = "0.8.0" + +[[deps.LLVMOpenMP_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "f689897ccbe049adb19a065c495e75f372ecd42b" +uuid = "1d63c593-3942-5779-bab2-d838dc0a180e" +version = "15.0.4+0" + +[[deps.LZO_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "e5b909bcf985c5e2605737d2ce278ed791b89be6" +uuid = "dd4b983a-f0e5-5f8d-a1b7-129d4a5fb1ac" +version = "2.10.1+0" + +[[deps.LaTeXStrings]] +git-tree-sha1 = "50901ebc375ed41dbf8058da26f9de442febbbec" +uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" +version = "1.3.1" + +[[deps.Latexify]] +deps = ["Formatting", "InteractiveUtils", "LaTeXStrings", "MacroTools", "Markdown", "OrderedCollections", "Printf", "Requires"] +git-tree-sha1 = "f428ae552340899a935973270b8d98e5a31c49fe" +uuid = "23fbe1c1-3f47-55db-b15f-69d7ec21a316" +version = "0.16.1" + + [deps.Latexify.extensions] + DataFramesExt = "DataFrames" + SymEngineExt = "SymEngine" + + [deps.Latexify.weakdeps] + DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" + SymEngine = "123dc426-2d89-5057-bbad-38513e3affd8" + +[[deps.LibCURL]] +deps = ["LibCURL_jll", "MozillaCACerts_jll"] +uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21" +version = "0.6.4" + +[[deps.LibCURL_jll]] +deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"] +uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0" +version = "8.4.0+0" + +[[deps.LibGit2]] +deps = ["Base64", "NetworkOptions", "Printf", "SHA"] +uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" + +[[deps.LibSSH2_jll]] +deps = ["Artifacts", "Libdl", "MbedTLS_jll"] +uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8" +version = "1.11.0+1" + +[[deps.Libdl]] +uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" + +[[deps.Libffi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "0b4a5d71f3e5200a7dff793393e09dfc2d874290" +uuid = "e9f186c6-92d2-5b65-8a66-fee21dc1b490" +version = "3.2.2+1" + +[[deps.Libgcrypt_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgpg_error_jll", "Pkg"] +git-tree-sha1 = "64613c82a59c120435c067c2b809fc61cf5166ae" +uuid = "d4300ac3-e22c-5743-9152-c294e39db1e4" +version = "1.8.7+0" + +[[deps.Libglvnd_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll", "Xorg_libXext_jll"] +git-tree-sha1 = "6f73d1dd803986947b2c750138528a999a6c7733" +uuid = "7e76a0d4-f3c7-5321-8279-8d96eeed0f29" +version = "1.6.0+0" + +[[deps.Libgpg_error_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "c333716e46366857753e273ce6a69ee0945a6db9" +uuid = "7add5ba3-2f88-524e-9cd5-f83b8a55f7b8" +version = "1.42.0+0" + +[[deps.Libiconv_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "f9557a255370125b405568f9767d6d195822a175" +uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531" +version = "1.17.0+0" + +[[deps.Libmount_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "9c30530bf0effd46e15e0fdcf2b8636e78cbbd73" +uuid = "4b2f31a3-9ecc-558c-b454-b3730dcb73e9" +version = "2.35.0+0" + +[[deps.Libtiff_jll]] +deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "LERC_jll", "Libdl", "XZ_jll", "Zlib_jll", "Zstd_jll"] +git-tree-sha1 = "2da088d113af58221c52828a80378e16be7d037a" +uuid = "89763e89-9b03-5906-acba-b20f662cd828" +version = "4.5.1+1" + +[[deps.Libuuid_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "7f3efec06033682db852f8b3bc3c1d2b0a0ab066" +uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700" +version = "2.36.0+0" + +[[deps.LinearAlgebra]] +deps = ["Libdl", "OpenBLAS_jll", "libblastrampoline_jll"] +uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" + +[[deps.Literate]] +deps = ["Base64", "IOCapture", "JSON", "REPL"] +git-tree-sha1 = "7cf4b8ca67b6a86a2ad7526bfe514ecd00d944f9" +uuid = "98b081ad-f1c9-55d3-8b20-4c87d4299306" +version = "2.16.0" + +[[deps.LogExpFunctions]] +deps = ["DocStringExtensions", "IrrationalConstants", "LinearAlgebra"] +git-tree-sha1 = "7d6dd4e9212aebaeed356de34ccf262a3cd415aa" +uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688" +version = "0.3.26" + + [deps.LogExpFunctions.extensions] + LogExpFunctionsChainRulesCoreExt = "ChainRulesCore" + LogExpFunctionsChangesOfVariablesExt = "ChangesOfVariables" + LogExpFunctionsInverseFunctionsExt = "InverseFunctions" + + [deps.LogExpFunctions.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + ChangesOfVariables = "9e997f8a-9a97-42d5-a9f1-ce6bfc15e2c0" + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.Logging]] +uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" + +[[deps.LoggingExtras]] +deps = ["Dates", "Logging"] +git-tree-sha1 = "c1dd6d7978c12545b4179fb6153b9250c96b0075" +uuid = "e6f89c97-d47a-5376-807f-9c37f3926c36" +version = "1.0.3" + +[[deps.MacroTools]] +deps = ["Markdown", "Random"] +git-tree-sha1 = "9ee1618cbf5240e6d4e0371d6f24065083f60c48" +uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" +version = "0.5.11" + +[[deps.Markdown]] +deps = ["Base64"] +uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" + +[[deps.MbedTLS]] +deps = ["Dates", "MbedTLS_jll", "MozillaCACerts_jll", "NetworkOptions", "Random", "Sockets"] +git-tree-sha1 = "f512dc13e64e96f703fd92ce617755ee6b5adf0f" +uuid = "739be429-bea8-5141-9913-cc70e7f3736d" +version = "1.1.8" + +[[deps.MbedTLS_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" +version = "2.28.2+0" + +[[deps.Measures]] +git-tree-sha1 = "c13304c81eec1ed3af7fc20e75fb6b26092a1102" +uuid = "442fdcdd-2543-5da2-b0f3-8c86c306513e" +version = "0.3.2" + +[[deps.Missings]] +deps = ["DataAPI"] +git-tree-sha1 = "f66bdc5de519e8f8ae43bdc598782d35a25b1272" +uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28" +version = "1.1.0" + +[[deps.Mmap]] +uuid = "a63ad114-7e13-5084-954f-fe012c677804" + +[[deps.MozillaCACerts_jll]] +uuid = "14a3606d-f60d-562e-9121-12d972cd8159" +version = "2022.10.11" + +[[deps.NaNMath]] +deps = ["OpenLibm_jll"] +git-tree-sha1 = "0877504529a3e5c3343c6f8b4c0381e57e4387e4" +uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" +version = "1.0.2" + +[[deps.NetworkOptions]] +uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" +version = "1.2.0" + +[[deps.Ogg_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "887579a3eb005446d514ab7aeac5d1d027658b8f" +uuid = "e7412a2a-1a6e-54c0-be00-318e2571c051" +version = "1.3.5+1" + +[[deps.OpenBLAS_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] +uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" +version = "0.3.21+4" + +[[deps.OpenLibm_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "05823500-19ac-5b8b-9628-191a04bc5112" +version = "0.8.1+0" + +[[deps.OpenSSL]] +deps = ["BitFlags", "Dates", "MozillaCACerts_jll", "OpenSSL_jll", "Sockets"] +git-tree-sha1 = "51901a49222b09e3743c65b8847687ae5fc78eb2" +uuid = "4d8831e6-92b7-49fb-bdf8-b643e874388c" +version = "1.4.1" + +[[deps.OpenSSL_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "cc6e1927ac521b659af340e0ca45828a3ffc748f" +uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" +version = "3.0.12+0" + +[[deps.OpenSpecFun_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "13652491f6856acfd2db29360e1bbcd4565d04f1" +uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" +version = "0.5.5+0" + +[[deps.Opus_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "51a08fb14ec28da2ec7a927c4337e4332c2a4720" +uuid = "91d4177d-7536-5919-b921-800302f37372" +version = "1.3.2+0" + +[[deps.OrderedCollections]] +git-tree-sha1 = "2e73fe17cac3c62ad1aebe70d44c963c3cfdc3e3" +uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" +version = "1.6.2" + +[[deps.PCRE2_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "efcefdf7-47ab-520b-bdef-62a2eaa19f15" +version = "10.42.0+0" + +[[deps.PDMats]] +deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] +git-tree-sha1 = "f6f85a2edb9c356b829934ad3caed2ad0ebbfc99" +uuid = "90014a1f-27ba-587c-ab20-58faa44d9150" +version = "0.11.29" + +[[deps.Parsers]] +deps = ["Dates", "PrecompileTools", "UUIDs"] +git-tree-sha1 = "a935806434c9d4c506ba941871b327b96d41f2bf" +uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" +version = "2.8.0" + +[[deps.Pipe]] +git-tree-sha1 = "6842804e7867b115ca9de748a0cf6b364523c16d" +uuid = "b98c9c47-44ae-5843-9183-064241ee97a0" +version = "1.3.0" + +[[deps.Pixman_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LLVMOpenMP_jll", "Libdl"] +git-tree-sha1 = "64779bc4c9784fee475689a1752ef4d5747c5e87" +uuid = "30392449-352a-5448-841d-b1acce4e97dc" +version = "0.42.2+0" + +[[deps.Pkg]] +deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"] +uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" +version = "1.9.2" + +[[deps.PlotThemes]] +deps = ["PlotUtils", "Statistics"] +git-tree-sha1 = "1f03a2d339f42dca4a4da149c7e15e9b896ad899" +uuid = "ccf2f8ad-2431-5c83-bf29-c5338b663b6a" +version = "3.1.0" + +[[deps.PlotUtils]] +deps = ["ColorSchemes", "Colors", "Dates", "PrecompileTools", "Printf", "Random", "Reexport", "Statistics"] +git-tree-sha1 = "f92e1315dadf8c46561fb9396e525f7200cdc227" +uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" +version = "1.3.5" + +[[deps.Plots]] +deps = ["Base64", "Contour", "Dates", "Downloads", "FFMPEG", "FixedPointNumbers", "GR", "JLFzf", "JSON", "LaTeXStrings", "Latexify", "LinearAlgebra", "Measures", "NaNMath", "Pkg", "PlotThemes", "PlotUtils", "PrecompileTools", "Preferences", "Printf", "REPL", "Random", "RecipesBase", "RecipesPipeline", "Reexport", "RelocatableFolders", "Requires", "Scratch", "Showoff", "SparseArrays", "Statistics", "StatsBase", "UUIDs", "UnicodeFun", "UnitfulLatexify", "Unzip"] +git-tree-sha1 = "ccee59c6e48e6f2edf8a5b64dc817b6729f99eb5" +uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" +version = "1.39.0" + + [deps.Plots.extensions] + FileIOExt = "FileIO" + GeometryBasicsExt = "GeometryBasics" + IJuliaExt = "IJulia" + ImageInTerminalExt = "ImageInTerminal" + UnitfulExt = "Unitful" + + [deps.Plots.weakdeps] + FileIO = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" + GeometryBasics = "5c1252a2-5f33-56bf-86c9-59e7332b4326" + IJulia = "7073ff75-c697-5162-941a-fcdaad2a7d2a" + ImageInTerminal = "d8c32880-2388-543b-8c61-d9f865259254" + Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" + +[[deps.PrecompileTools]] +deps = ["Preferences"] +git-tree-sha1 = "03b4c25b43cb84cee5c90aa9b5ea0a78fd848d2f" +uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a" +version = "1.2.0" + +[[deps.Preferences]] +deps = ["TOML"] +git-tree-sha1 = "00805cd429dcb4870060ff49ef443486c262e38e" +uuid = "21216c6a-2e73-6563-6e65-726566657250" +version = "1.4.1" + +[[deps.Printf]] +deps = ["Unicode"] +uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" + +[[deps.Qt6Base_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Fontconfig_jll", "Glib_jll", "JLLWrappers", "Libdl", "Libglvnd_jll", "OpenSSL_jll", "Vulkan_Loader_jll", "Xorg_libSM_jll", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Xorg_libxcb_jll", "Xorg_xcb_util_cursor_jll", "Xorg_xcb_util_image_jll", "Xorg_xcb_util_keysyms_jll", "Xorg_xcb_util_renderutil_jll", "Xorg_xcb_util_wm_jll", "Zlib_jll", "libinput_jll", "xkbcommon_jll"] +git-tree-sha1 = "37b7bb7aabf9a085e0044307e1717436117f2b3b" +uuid = "c0090381-4147-56d7-9ebc-da0b1113ec56" +version = "6.5.3+1" + +[[deps.QuadGK]] +deps = ["DataStructures", "LinearAlgebra"] +git-tree-sha1 = "9ebcd48c498668c7fa0e97a9cae873fbee7bfee1" +uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" +version = "2.9.1" + +[[deps.REPL]] +deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] +uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" + +[[deps.Random]] +deps = ["SHA", "Serialization"] +uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" + +[[deps.RecipesBase]] +deps = ["PrecompileTools"] +git-tree-sha1 = "5c3d09cc4f31f5fc6af001c250bf1278733100ff" +uuid = "3cdcf5f2-1ef4-517c-9805-6587b60abb01" +version = "1.3.4" + +[[deps.RecipesPipeline]] +deps = ["Dates", "NaNMath", "PlotUtils", "PrecompileTools", "RecipesBase"] +git-tree-sha1 = "45cf9fd0ca5839d06ef333c8201714e888486342" +uuid = "01d81517-befc-4cb6-b9ec-a95719d0359c" +version = "0.6.12" + +[[deps.Reexport]] +git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b" +uuid = "189a3867-3050-52da-a836-e630ba90ab69" +version = "1.2.2" + +[[deps.RelocatableFolders]] +deps = ["SHA", "Scratch"] +git-tree-sha1 = "ffdaf70d81cf6ff22c2b6e733c900c3321cab864" +uuid = "05181044-ff0b-4ac5-8273-598c1e38db00" +version = "1.0.1" + +[[deps.Requires]] +deps = ["UUIDs"] +git-tree-sha1 = "838a3a4188e2ded87a4f9f184b4b0d78a1e91cb7" +uuid = "ae029012-a4dd-5104-9daa-d747884805df" +version = "1.3.0" + +[[deps.Rmath]] +deps = ["Random", "Rmath_jll"] +git-tree-sha1 = "f65dcb5fa46aee0cf9ed6274ccbd597adc49aa7b" +uuid = "79098fc4-a85e-5d69-aa6a-4863f24498fa" +version = "0.7.1" + +[[deps.Rmath_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "6ed52fdd3382cf21947b15e8870ac0ddbff736da" +uuid = "f50d1b31-88e8-58de-be2c-1cc44531875f" +version = "0.4.0+0" + +[[deps.SHA]] +uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" +version = "0.7.0" + +[[deps.ScikitLearnBase]] +deps = ["LinearAlgebra", "Random", "Statistics"] +git-tree-sha1 = "7877e55c1523a4b336b433da39c8e8c08d2f221f" +uuid = "6e75b9c4-186b-50bd-896f-2d2496a4843e" +version = "0.5.0" + +[[deps.Scratch]] +deps = ["Dates"] +git-tree-sha1 = "3bac05bc7e74a75fd9cba4295cde4045d9fe2386" +uuid = "6c6a2e73-6563-6170-7368-637461726353" +version = "1.2.1" + +[[deps.Serialization]] +uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" + +[[deps.Showoff]] +deps = ["Dates", "Grisu"] +git-tree-sha1 = "91eddf657aca81df9ae6ceb20b959ae5653ad1de" +uuid = "992d4aef-0814-514b-bc4d-f2e9a6c4116f" +version = "1.0.3" + +[[deps.SimpleBufferStream]] +git-tree-sha1 = "874e8867b33a00e784c8a7e4b60afe9e037b74e1" +uuid = "777ac1f9-54b0-4bf8-805c-2214025038e7" +version = "1.1.0" + +[[deps.Sockets]] +uuid = "6462fe0b-24de-5631-8697-dd941f90decc" + +[[deps.SortingAlgorithms]] +deps = ["DataStructures"] +git-tree-sha1 = "5165dfb9fd131cf0c6957a3a7605dede376e7b63" +uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c" +version = "1.2.0" + +[[deps.SparseArrays]] +deps = ["Libdl", "LinearAlgebra", "Random", "Serialization", "SuiteSparse_jll"] +uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" + +[[deps.SpecialFunctions]] +deps = ["IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] +git-tree-sha1 = "e2cfc4012a19088254b3950b85c3c1d8882d864d" +uuid = "276daf66-3868-5448-9aa4-cd146d93841b" +version = "2.3.1" +weakdeps = ["ChainRulesCore"] + + [deps.SpecialFunctions.extensions] + SpecialFunctionsChainRulesCoreExt = "ChainRulesCore" + +[[deps.Statistics]] +deps = ["LinearAlgebra", "SparseArrays"] +uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" +version = "1.9.0" + +[[deps.StatsAPI]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "1ff449ad350c9c4cbc756624d6f8a8c3ef56d3ed" +uuid = "82ae8749-77ed-4fe6-ae5f-f523153014b0" +version = "1.7.0" + +[[deps.StatsBase]] +deps = ["DataAPI", "DataStructures", "LinearAlgebra", "LogExpFunctions", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics", "StatsAPI"] +git-tree-sha1 = "1d77abd07f617c4868c33d4f5b9e1dbb2643c9cf" +uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" +version = "0.34.2" + +[[deps.StatsFuns]] +deps = ["HypergeometricFunctions", "IrrationalConstants", "LogExpFunctions", "Reexport", "Rmath", "SpecialFunctions"] +git-tree-sha1 = "f625d686d5a88bcd2b15cd81f18f98186fdc0c9a" +uuid = "4c63d2b9-4356-54db-8cca-17b64c39e42c" +version = "1.3.0" + + [deps.StatsFuns.extensions] + StatsFunsChainRulesCoreExt = "ChainRulesCore" + StatsFunsInverseFunctionsExt = "InverseFunctions" + + [deps.StatsFuns.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.SuiteSparse]] +deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"] +uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9" + +[[deps.SuiteSparse_jll]] +deps = ["Artifacts", "Libdl", "Pkg", "libblastrampoline_jll"] +uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c" +version = "5.10.1+6" + +[[deps.TOML]] +deps = ["Dates"] +uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76" +version = "1.0.3" + +[[deps.Tar]] +deps = ["ArgTools", "SHA"] +uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e" +version = "1.10.0" + +[[deps.TensorCore]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "1feb45f88d133a655e001435632f019a9a1bcdb6" +uuid = "62fd8b95-f654-4bbd-a8a5-9c27f68ccd50" +version = "0.1.1" + +[[deps.Test]] +deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] +uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[[deps.TranscodingStreams]] +git-tree-sha1 = "1fbeaaca45801b4ba17c251dd8603ef24801dd84" +uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" +version = "0.10.2" +weakdeps = ["Random", "Test"] + + [deps.TranscodingStreams.extensions] + TestExt = ["Test", "Random"] + +[[deps.URIs]] +git-tree-sha1 = "67db6cc7b3821e19ebe75791a9dd19c9b1188f2b" +uuid = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4" +version = "1.5.1" + +[[deps.UUIDs]] +deps = ["Random", "SHA"] +uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" + +[[deps.Unicode]] +uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" + +[[deps.UnicodeFun]] +deps = ["REPL"] +git-tree-sha1 = "53915e50200959667e78a92a418594b428dffddf" +uuid = "1cfade01-22cf-5700-b092-accc4b62d6e1" +version = "0.4.1" + +[[deps.Unitful]] +deps = ["Dates", "LinearAlgebra", "Random"] +git-tree-sha1 = "242982d62ff0d1671e9029b52743062739255c7e" +uuid = "1986cc42-f94f-5a68-af5c-568840ba703d" +version = "1.18.0" + + [deps.Unitful.extensions] + ConstructionBaseUnitfulExt = "ConstructionBase" + InverseFunctionsUnitfulExt = "InverseFunctions" + + [deps.Unitful.weakdeps] + ConstructionBase = "187b0558-2788-49d3-abe0-74a17ed4e7c9" + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.UnitfulLatexify]] +deps = ["LaTeXStrings", "Latexify", "Unitful"] +git-tree-sha1 = "e2d817cc500e960fdbafcf988ac8436ba3208bfd" +uuid = "45397f5d-5981-4c77-b2b3-fc36d6e9b728" +version = "1.6.3" + +[[deps.Unzip]] +git-tree-sha1 = "ca0969166a028236229f63514992fc073799bb78" +uuid = "41fe7b60-77ed-43a1-b4f0-825fd5a5650d" +version = "0.2.0" + +[[deps.Vulkan_Loader_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Wayland_jll", "Xorg_libX11_jll", "Xorg_libXrandr_jll", "xkbcommon_jll"] +git-tree-sha1 = "2f0486047a07670caad3a81a075d2e518acc5c59" +uuid = "a44049a8-05dd-5a78-86c9-5fde0876e88c" +version = "1.3.243+0" + +[[deps.Wayland_jll]] +deps = ["Artifacts", "EpollShim_jll", "Expat_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg", "XML2_jll"] +git-tree-sha1 = "7558e29847e99bc3f04d6569e82d0f5c54460703" +uuid = "a2964d1f-97da-50d4-b82a-358c7fce9d89" +version = "1.21.0+1" + +[[deps.Wayland_protocols_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "4528479aa01ee1b3b4cd0e6faef0e04cf16466da" +uuid = "2381bf8a-dfd0-557d-9999-79630e7b1b91" +version = "1.25.0+0" + +[[deps.XML2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Zlib_jll"] +git-tree-sha1 = "24b81b59bd35b3c42ab84fa589086e19be919916" +uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" +version = "2.11.5+0" + +[[deps.XSLT_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgcrypt_jll", "Libgpg_error_jll", "Libiconv_jll", "Pkg", "XML2_jll", "Zlib_jll"] +git-tree-sha1 = "91844873c4085240b95e795f692c4cec4d805f8a" +uuid = "aed1982a-8fda-507f-9586-7b0439959a61" +version = "1.1.34+0" + +[[deps.XZ_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "522b8414d40c4cbbab8dee346ac3a09f9768f25d" +uuid = "ffd25f8a-64ca-5728-b0f7-c24cf3aae800" +version = "5.4.5+0" + +[[deps.Xorg_libICE_jll]] +deps = ["Libdl", "Pkg"] +git-tree-sha1 = "e5becd4411063bdcac16be8b66fc2f9f6f1e8fe5" +uuid = "f67eecfb-183a-506d-b269-f58e52b52d7c" +version = "1.0.10+1" + +[[deps.Xorg_libSM_jll]] +deps = ["Libdl", "Pkg", "Xorg_libICE_jll"] +git-tree-sha1 = "4a9d9e4c180e1e8119b5ffc224a7b59d3a7f7e18" +uuid = "c834827a-8449-5923-a945-d239c165b7dd" +version = "1.2.3+0" + +[[deps.Xorg_libX11_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxcb_jll", "Xorg_xtrans_jll"] +git-tree-sha1 = "afead5aba5aa507ad5a3bf01f58f82c8d1403495" +uuid = "4f6342f7-b3d2-589e-9d20-edeb45f2b2bc" +version = "1.8.6+0" + +[[deps.Xorg_libXau_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "6035850dcc70518ca32f012e46015b9beeda49d8" +uuid = "0c0b7dd1-d40b-584c-a123-a41640f87eec" +version = "1.0.11+0" + +[[deps.Xorg_libXcursor_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXfixes_jll", "Xorg_libXrender_jll"] +git-tree-sha1 = "12e0eb3bc634fa2080c1c37fccf56f7c22989afd" +uuid = "935fb764-8cf2-53bf-bb30-45bb1f8bf724" +version = "1.2.0+4" + +[[deps.Xorg_libXdmcp_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "34d526d318358a859d7de23da945578e8e8727b7" +uuid = "a3789734-cfe1-5b06-b2d0-1dd0d9d62d05" +version = "1.1.4+0" + +[[deps.Xorg_libXext_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] +git-tree-sha1 = "b7c0aa8c376b31e4852b360222848637f481f8c3" +uuid = "1082639a-0dae-5f34-9b06-72781eeb8cb3" +version = "1.3.4+4" + +[[deps.Xorg_libXfixes_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] +git-tree-sha1 = "0e0dc7431e7a0587559f9294aeec269471c991a4" +uuid = "d091e8ba-531a-589c-9de9-94069b037ed8" +version = "5.0.3+4" + +[[deps.Xorg_libXi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll", "Xorg_libXfixes_jll"] +git-tree-sha1 = "89b52bc2160aadc84d707093930ef0bffa641246" +uuid = "a51aa0fd-4e3c-5386-b890-e753decda492" +version = "1.7.10+4" + +[[deps.Xorg_libXinerama_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll"] +git-tree-sha1 = "26be8b1c342929259317d8b9f7b53bf2bb73b123" +uuid = "d1454406-59df-5ea1-beac-c340f2130bc3" +version = "1.1.4+4" + +[[deps.Xorg_libXrandr_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll"] +git-tree-sha1 = "34cea83cb726fb58f325887bf0612c6b3fb17631" +uuid = "ec84b674-ba8e-5d96-8ba1-2a689ba10484" +version = "1.5.2+4" + +[[deps.Xorg_libXrender_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] +git-tree-sha1 = "19560f30fd49f4d4efbe7002a1037f8c43d43b96" +uuid = "ea2f1a96-1ddc-540d-b46f-429655e07cfa" +version = "0.9.10+4" + +[[deps.Xorg_libpthread_stubs_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "8fdda4c692503d44d04a0603d9ac0982054635f9" +uuid = "14d82f49-176c-5ed1-bb49-ad3f5cbd8c74" +version = "0.1.1+0" + +[[deps.Xorg_libxcb_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "XSLT_jll", "Xorg_libXau_jll", "Xorg_libXdmcp_jll", "Xorg_libpthread_stubs_jll"] +git-tree-sha1 = "b4bfde5d5b652e22b9c790ad00af08b6d042b97d" +uuid = "c7cfdc94-dc32-55de-ac96-5a1b8d977c5b" +version = "1.15.0+0" + +[[deps.Xorg_libxkbfile_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] +git-tree-sha1 = "730eeca102434283c50ccf7d1ecdadf521a765a4" +uuid = "cc61e674-0454-545c-8b26-ed2c68acab7a" +version = "1.1.2+0" + +[[deps.Xorg_xcb_util_cursor_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_xcb_util_image_jll", "Xorg_xcb_util_jll", "Xorg_xcb_util_renderutil_jll"] +git-tree-sha1 = "04341cb870f29dcd5e39055f895c39d016e18ccd" +uuid = "e920d4aa-a673-5f3a-b3d7-f755a4d47c43" +version = "0.1.4+0" + +[[deps.Xorg_xcb_util_image_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "0fab0a40349ba1cba2c1da699243396ff8e94b97" +uuid = "12413925-8142-5f55-bb0e-6d7ca50bb09b" +version = "0.4.0+1" + +[[deps.Xorg_xcb_util_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libxcb_jll"] +git-tree-sha1 = "e7fd7b2881fa2eaa72717420894d3938177862d1" +uuid = "2def613f-5ad1-5310-b15b-b15d46f528f5" +version = "0.4.0+1" + +[[deps.Xorg_xcb_util_keysyms_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "d1151e2c45a544f32441a567d1690e701ec89b00" +uuid = "975044d2-76e6-5fbe-bf08-97ce7c6574c7" +version = "0.4.0+1" + +[[deps.Xorg_xcb_util_renderutil_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "dfd7a8f38d4613b6a575253b3174dd991ca6183e" +uuid = "0d47668e-0667-5a69-a72c-f761630bfb7e" +version = "0.3.9+1" + +[[deps.Xorg_xcb_util_wm_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "e78d10aab01a4a154142c5006ed44fd9e8e31b67" +uuid = "c22f9ab0-d5fe-5066-847c-f4bb1cd4e361" +version = "0.4.1+1" + +[[deps.Xorg_xkbcomp_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxkbfile_jll"] +git-tree-sha1 = "330f955bc41bb8f5270a369c473fc4a5a4e4d3cb" +uuid = "35661453-b289-5fab-8a00-3d9160c6a3a4" +version = "1.4.6+0" + +[[deps.Xorg_xkeyboard_config_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_xkbcomp_jll"] +git-tree-sha1 = "691634e5453ad362044e2ad653e79f3ee3bb98c3" +uuid = "33bec58e-1273-512f-9401-5d533626f822" +version = "2.39.0+0" + +[[deps.Xorg_xtrans_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "e92a1a012a10506618f10b7047e478403a046c77" +uuid = "c5fb5394-a638-5e4d-96e5-b29de1b5cf10" +version = "1.5.0+0" + +[[deps.Zlib_jll]] +deps = ["Libdl"] +uuid = "83775a58-1f1d-513f-b197-d71354ab007a" +version = "1.2.13+0" + +[[deps.Zstd_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "49ce682769cd5de6c72dcf1b94ed7790cd08974c" +uuid = "3161d3a3-bdf6-5164-811a-617609db77b4" +version = "1.5.5+0" + +[[deps.ZygoteRules]] +deps = ["ChainRulesCore", "MacroTools"] +git-tree-sha1 = "9d749cd449fb448aeca4feee9a2f4186dbb5d184" +uuid = "700de1a5-db45-46bc-99cf-38207098b444" +version = "0.2.4" + +[[deps.eudev_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "gperf_jll"] +git-tree-sha1 = "431b678a28ebb559d224c0b6b6d01afce87c51ba" +uuid = "35ca27e7-8b34-5b7f-bca9-bdc33f59eb06" +version = "3.2.9+0" + +[[deps.fzf_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "47cf33e62e138b920039e8ff9f9841aafe1b733e" +uuid = "214eeab7-80f7-51ab-84ad-2988db7cef09" +version = "0.35.1+0" + +[[deps.gperf_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "3516a5630f741c9eecb3720b1ec9d8edc3ecc033" +uuid = "1a1c6b14-54f6-533d-8383-74cd7377aa70" +version = "3.1.1+0" + +[[deps.libaom_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "3a2ea60308f0996d26f1e5354e10c24e9ef905d4" +uuid = "a4ae2306-e953-59d6-aa16-d00cac43593b" +version = "3.4.0+0" + +[[deps.libass_jll]] +deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] +git-tree-sha1 = "5982a94fcba20f02f42ace44b9894ee2b140fe47" +uuid = "0ac62f75-1d6f-5e53-bd7c-93b484bb37c0" +version = "0.15.1+0" + +[[deps.libblastrampoline_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "8e850b90-86db-534c-a0d3-1478176c7d93" +version = "5.8.0+0" + +[[deps.libevdev_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "141fe65dc3efabb0b1d5ba74e91f6ad26f84cc22" +uuid = "2db6ffa8-e38f-5e21-84af-90c45d0032cc" +version = "1.11.0+0" + +[[deps.libfdk_aac_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "daacc84a041563f965be61859a36e17c4e4fcd55" +uuid = "f638f0a6-7fb0-5443-88ba-1cc74229b280" +version = "2.0.2+0" + +[[deps.libinput_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "eudev_jll", "libevdev_jll", "mtdev_jll"] +git-tree-sha1 = "ad50e5b90f222cfe78aa3d5183a20a12de1322ce" +uuid = "36db933b-70db-51c0-b978-0f229ee0e533" +version = "1.18.0+0" + +[[deps.liblinear_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "7f5f1953394b74739eaebd345f4515515a022a5b" +uuid = "275f1f90-abd2-5ca1-9ad8-abd4e3d66eb7" +version = "2.47.0+0" + +[[deps.libpng_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] +git-tree-sha1 = "94d180a6d2b5e55e447e2d27a29ed04fe79eb30c" +uuid = "b53b4c65-9356-5827-b1ea-8c7a1a84506f" +version = "1.6.38+0" + +[[deps.libsvm_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LLVMOpenMP_jll", "Libdl", "Pkg"] +git-tree-sha1 = "7625dde5e9eab416c1cb791627f065ce55297eff" +uuid = "08558c22-525a-5d2a-acf6-0ac6658ffce4" +version = "3.25.0+0" + +[[deps.libvorbis_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Ogg_jll", "Pkg"] +git-tree-sha1 = "b910cb81ef3fe6e78bf6acee440bda86fd6ae00c" +uuid = "f27f6e37-5d2b-51aa-960f-b287f2bc3b7a" +version = "1.3.7+1" + +[[deps.mtdev_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "814e154bdb7be91d78b6802843f76b6ece642f11" +uuid = "009596ad-96f7-51b1-9f1b-5ce2d5e8a71e" +version = "1.1.6+0" + +[[deps.nghttp2_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d" +version = "1.52.0+1" + +[[deps.p7zip_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" +version = "17.4.0+0" + +[[deps.x264_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "4fea590b89e6ec504593146bf8b988b2c00922b2" +uuid = "1270edf5-f2f9-52d2-97e9-ab00b5d0237a" +version = "2021.5.5+0" + +[[deps.x265_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "ee567a171cce03570d77ad3a43e90218e38937a9" +uuid = "dfaa095f-4041-5dcd-9319-2fabd8486b76" +version = "3.5.0+0" + +[[deps.xkbcommon_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Wayland_jll", "Wayland_protocols_jll", "Xorg_libxcb_jll", "Xorg_xkeyboard_config_jll"] +git-tree-sha1 = "9c304562909ab2bab0262639bd4f444d7bc2be37" +uuid = "d8fb68d0-12a3-5cfd-a85a-d49703b185fd" +version = "1.4.1+1" diff --git a/v0.10.59/examples/support-vector-machine/index.html b/v0.10.59/examples/support-vector-machine/index.html new file mode 100644 index 000000000..52ce2e645 --- /dev/null +++ b/v0.10.59/examples/support-vector-machine/index.html @@ -0,0 +1,222 @@ + +Support Vector Machine · KernelFunctions.jl

    Support Vector Machine

    You are seeing the HTML output generated by Documenter.jl and Literate.jl from the Julia source file. The corresponding notebook can be viewed in nbviewer.


    In this notebook we show how you can use KernelFunctions.jl to generate kernel matrices for classification with a support vector machine, as implemented by LIBSVM.

    using Distributions
    +using KernelFunctions
    +using LIBSVM
    +using LinearAlgebra
    +using Plots
    +using Random
    +
    +# Set seed
    +Random.seed!(1234);

    Generate half-moon dataset

    Number of samples per class:

    n1 = n2 = 50;

    We generate data based on SciKit-Learn's sklearn.datasets.make_moons function:

    angle1 = range(0, π; length=n1)
    +angle2 = range(0, π; length=n2)
    +X1 = [cos.(angle1) sin.(angle1)] .+ 0.1 .* randn.()
    +X2 = [1 .- cos.(angle2) 1 .- sin.(angle2) .- 0.5] .+ 0.1 .* randn.()
    +X = [X1; X2]
    +x_train = RowVecs(X)
    +y_train = vcat(fill(-1, n1), fill(1, n2));

    Training

    We create a kernel function:

    k = SqExponentialKernel() ∘ ScaleTransform(1.5)
    Squared Exponential Kernel (metric = Distances.Euclidean(0.0))
    +	- Scale Transform (s = 1.5)

    LIBSVM can make use of a pre-computed kernel matrix. KernelFunctions.jl can be used to produce that using kernelmatrix:

    model = svmtrain(kernelmatrix(k, x_train), y_train; kernel=LIBSVM.Kernel.Precomputed)
    LIBSVM.SVM{Int64, LIBSVM.Kernel.KERNEL}(LIBSVM.SVC, LIBSVM.Kernel.Precomputed, nothing, 100, 100, 2, [-1, 1], Int32[1, 2], Float64[], Int32[], LIBSVM.SupportVectors{Vector{Int64}, Matrix{Float64}}(23, Int32[11, 12], [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1.0 0.8982223633317491 0.9596163170022011 0.8681749917956418 0.7405298560587654 0.6670753594660519 0.1779671467515013 0.12581804740739566 0.05707943398657384 0.02764121723161683 0.033765857073249396 0.2680295766735067 0.29939058530607915 0.37151489965630213 0.3524014409758097 0.2908959282977835 0.3880509811446821 0.8766234308310106 0.82681374480545 0.8144257681324784 0.6772129558340088 0.6360692761241019 0.27226866397259536; 0.8982223633317491 1.0 0.965182128960536 0.9914891432258488 0.8867564750187009 0.9019354510254446 0.2147708440814802 0.15771406856492454 0.05887040570928494 0.017222970583007854 0.019222888349132574 0.221500149894056 0.2978310573718274 0.3053559535776424 0.2890446485251837 0.22090114119439183 0.3141485519019614 0.6220352391872924 0.5857825177211226 0.6973386670166851 0.7178826818314505 0.7710611517712889 0.4654568122945319; 0.9596163170022011 0.965182128960536 1.0 0.9626046043667029 0.8869903689807833 0.8153402743825475 0.25975227903072295 0.19192116220346336 0.08434059685077588 0.03220850516134753 0.0366758927128704 0.31408772981722 0.3824704266612618 0.4200037751884887 0.4001773046096343 0.3219312217176709 0.43280734456335546 0.750503533504958 0.6647402210580929 0.6926170128782051 0.6277007998632926 0.6433503699452944 0.32400415670963956; 0.8681749917956418 0.9914891432258488 0.9626046043667029 1.0 0.9370667957752087 0.934295025587645 0.26444251222948995 0.19879359752203962 0.07665919270519939 0.021595654487073727 0.023425682392132743 0.2566761906912133 0.3496676024988405 0.34456852113508585 0.3275077643059417 0.25092423515822787 0.35232020079983056 0.5892979561473187 0.5284801502144095 0.6217604813241744 0.6430231195027034 0.7109544049100224 0.44057810112560447; 0.7465952329465504 0.9304484985812767 0.8897100197930106 0.9678435903690089 0.9814954031669109 0.9779840213642631 0.3466778268733209 0.27206683288049266 0.10510054534990214 0.024906016068519672 0.02537581531241299 0.2819293887595886 0.4088052209237594 0.3636370022084356 0.34754098347809126 0.26247121953918195 0.3672027632424591 0.46578384178509197 0.38887087230008666 0.4701103002702702 0.5145210485797571 0.6123061110630164 0.42723601664089345; 0.7405298560587654 0.8867564750187009 0.8869903689807833 0.9370667957752087 1.0 0.9265705090470907 0.4401947652983322 0.35262403649115526 0.15320607160230898 0.041175981935510725 0.04156995738050753 0.37540034365943104 0.5190650165661463 0.46669986410386666 0.4490622985140926 0.3499350203111987 0.46962470972808273 0.4883331096338951 0.3798584854063081 0.4217137127807958 0.4303538604829861 0.5091151748567635 0.32622076287640006; 0.6670753594660519 0.9019354510254446 0.8153402743825475 0.934295025587645 0.9265705090470907 1.0 0.2827193698331228 0.2209480096839663 0.07504013686337539 0.014371637034094253 0.01439904495484344 0.2022331299863698 0.3174100045147389 0.2670237514797323 0.2539121194008726 0.18411214167319784 0.26924082958699697 0.3775897748372698 0.33049550236819253 0.4440238046305932 0.5378606847561948 0.6649412466468505 0.5362623212460318; 0.6702595528823198 0.8606244226283823 0.8314916696615914 0.9158026981710833 0.9886587344335546 0.9560332901136585 0.43011039397992096 0.34820512587201075 0.14124895742843027 0.032158966523388476 0.031580446301945404 0.32479775862613985 0.47740665014325184 0.4040619518789057 0.38836949912884633 0.29482897357398075 0.4047606090427496 0.40908071544297814 0.3195106528226398 0.37846326245707385 0.41478881966429043 0.5119444241914671 0.36732348167804796; 0.5958832606985172 0.7761919158084817 0.764543603784896 0.8444984180740654 0.9708780964035508 0.9003101222501712 0.5272836631986195 0.4399206665565803 0.19102502302045962 0.043420828006372085 0.04129805359453605 0.37942807492906316 0.5573589063405943 0.4543619576452872 0.4394388167665561 0.3375627830189747 0.45182010123593386 0.36215845599297103 0.2634668608558619 0.30067673081800705 0.3243249963940758 0.4116488074528402 0.2958856882102383; 0.6885947324331928 0.8568830230020188 0.8463587912182832 0.9136212483096897 0.9958882004323975 0.9330458507202257 0.460198027818651 0.3733503341923742 0.15937475820815994 0.0394059990098187 0.038929261709730496 0.3649438549033214 0.5202001774588284 0.4496246527453173 0.4330574268345955 0.33404405039411145 0.4506081711573255 0.43638796244437944 0.33426657209516675 0.3798417694355356 0.4001476735300954 0.48685776367870665 0.3302703252897188; 0.5090115987229845 0.66413624932743 0.6748754932289617 0.7410778570661924 0.9169250942417487 0.8005426352978952 0.6529042363424815 0.563579434224383 0.2698518181195754 0.06354590398806001 0.05851083802910193 0.45550338406982604 0.6594734277650144 0.5208034250731294 0.5076214704665837 0.3978825263055807 0.5138380455506879 0.3131959074096939 0.20890435984227568 0.22461858592695394 0.23387430115253083 0.30414333483721223 0.21357650440692952; 0.45093840203402863 0.6528439740207388 0.621293380868375 0.7281001827134798 0.8878776747702869 0.8483652168656046 0.5523273229286175 0.4772875263856446 0.19761071338591454 0.03572808338522635 0.03200591765116194 0.3254023798230707 0.5196262009999181 0.37997186968805663 0.36850957018497515 0.27531375747209685 0.37362641649043415 0.24573139502121816 0.17123499867505312 0.20822585856181272 0.24503580982318168 0.3360215134566464 0.282452943899592; 0.3853374653727806 0.5531275651750578 0.5456456216692458 0.63187924915747 0.8272788783068459 0.7400449329312268 0.6740778081979193 0.6015241987774301 0.27711939662891033 0.05315958324949652 0.046303407217568385 0.39204087574676183 0.6116325191520129 0.4372487002786384 0.42739649234665433 0.3269933488950957 0.42689765420513015 0.2149742263615225 0.1373845757765515 0.15601083788315914 0.1754427451629185 0.24492436885056065 0.19788854100040332; 0.4618500914094273 0.6128977794159381 0.6250323394686075 0.6915365382967459 0.88189001173394 0.7603121381740631 0.6931399190748629 0.6074867523562785 0.29692455405263407 0.0681577107585657 0.06159926451755685 0.4645954678327457 0.6786212904021323 0.5221512124616867 0.5102875582105725 0.40055028127076997 0.5131110004920902 0.28037311469308024 0.18119852159344918 0.19343543701106478 0.20210176995756082 0.2678694503178588 0.1914666250241892; 0.2696302037951813 0.39638152158224865 0.403404894882526 0.46949354523118425 0.6809782176032294 0.5691943970817303 0.7959863116838541 0.7460243621745607 0.383759661562218 0.07333545211725394 0.06062770952823484 0.4276361345098877 0.6667776453895222 0.44825730820354187 0.44260682761401715 0.34513919555944916 0.43243837419232345 0.14931467351759206 0.08501132835349595 0.09090598935589621 0.09966166276310144 0.14565406652997917 0.1181167187860405; 0.3002590494463073 0.4115977376244659 0.43517761205157995 0.4854137709312024 0.7013669019363106 0.5580577880472913 0.8536237862527719 0.7944463939442774 0.4423829365109098 0.10024118415255136 0.08491613895458582 0.5164984752370707 0.7562127396153628 0.5384043672737264 0.532633886946863 0.4273028327796133 0.5213353428367101 0.17995021704234954 0.10110435738873308 0.10066689644324499 0.1023456357653284 0.14371084800072215 0.10376729355409814; 0.23895991490217605 0.33249975589925446 0.3570356667989706 0.3998440847736826 0.6103384074505219 0.46903410987322885 0.8998463600755164 0.8599178355605582 0.5066796013929806 0.11396841785672483 0.0938145408103168 0.5199141678644349 0.7624727563004503 0.5243659291344558 0.5215260868720673 0.4222997164056707 0.5044431497960399 0.14229601411077292 0.07518839830888858 0.07265639350751003 0.0730416671251987 0.10523885318589322 0.07641455926683688; 0.1915586377215268 0.2782828209211749 0.2967514734538114 0.33993222993655975 0.5402177192407522 0.41457098384450736 0.8940395698131182 0.8732189313788711 0.5158710981816049 0.10661722182344716 0.08504323591413473 0.47313025445505164 0.7153672453884371 0.46747599643639337 0.4662739691425648 0.37502751142299 0.4468899647601597 0.10944611467787402 0.05573856274262572 0.054529742226822116 0.05633615986012236 0.0842054572140432 0.06479883181573562; 0.22705224038961044 0.31938520593304515 0.34224069664715906 0.385495402966531 0.5939999674274448 0.4566062935524366 0.899155765927396 0.8637017932666784 0.5087259826371333 0.11196526875215826 0.09146631735404127 0.5082775947180933 0.7512932189769945 0.5102218707630334 0.5077837081682253 0.41038655426963877 0.4900958753322606 0.1337816259051161 0.0700979881035211 0.06799122461651445 0.06885045790765319 0.10009947593776944 0.0737756297099595; 0.13939429772646458 0.19866201340261797 0.22114257212806596 0.24864914930042606 0.42520802222653464 0.302501776239137 0.9372245539818653 0.9455339290308946 0.6315082072142529 0.14232088029862777 0.11065257979685114 0.497993580135406 0.7281911500795765 0.46872860910213954 0.4714826024303301 0.3903354300403334 0.44502619470509736 0.08256405886680711 0.03835534537202231 0.034581508309323515 0.033704650675767854 0.05102221540013976 0.03704322052953614; 0.14536068431690077 0.22095226487516476 0.23447742603357294 0.274909660351764 0.45833250114914875 0.34957510182253293 0.8743978358229307 0.8761033364462417 0.5229671176330489 0.0991832584928122 0.07635359024682037 0.42104563348070084 0.6565602859173729 0.40568985690003667 0.40610443722599326 0.3248474190874977 0.3850374404413671 0.07960429303749694 0.03874287443935803 0.03821774674349671 0.040517865120029126 0.0630563129568011 0.0514750781731886; 0.14763143381426758 0.20697373951526962 0.23172641379954417 0.25814071080843315 0.43782614347195603 0.3097871356075422 0.948191751644435 0.9518038099641223 0.6412421014386851 0.14982574968207624 0.11752904351897316 0.5195447242996001 0.7497513218160706 0.4906394512641361 0.4933596158142264 0.41032684627296356 0.46659647468974 0.08895540630063033 0.041555343865819036 0.0370694847518811 0.035626747327519616 0.05330326825496781 0.03775624173646896; 0.0988933742294342 0.12124815101071282 0.1522607181459668 0.1549588355463188 0.2869756433774373 0.17057949531906372 0.9559135116536135 0.9892814033753422 0.8831001155923481 0.301076796055474 0.23744952288817556 0.6342825599362547 0.794592834668333 0.5579899828492979 0.5688794841651086 0.5133182360119145 0.5290723135633687 0.07062859133770322 0.028724907143533655 0.02063694811643021 0.0163555000764835 0.023361093148916098 0.012804211869588852; 0.1779671467515013 0.2147708440814802 0.25975227903072295 0.26444251222948995 0.4401947652983322 0.2827193698331228 1.0 0.9840440354640055 0.7746626759108745 0.259331300415348 0.21532000371278573 0.7098399745938505 0.897129803886899 0.6668121606496512 0.6725100792205622 0.5926610833970605 0.639910660474017 0.12677413631301512 0.05828369828510033 0.04500739970678052 0.03699408218865754 0.05063099709508791 0.028066326109481347; 0.12581804740739566 0.15771406856492454 0.19192116220346336 0.19879359752203962 0.35262403649115526 0.2209480096839663 0.9840440354640055 1.0 0.8196815897955259 0.2585454040835821 0.2062681823099032 0.6395908524826316 0.8253149042783318 0.5796701178937012 0.5878473919825917 0.5191073343197649 0.5515646672943586 0.08688786848645763 0.03740368096386031 0.028523064291676215 0.023677093828563235 0.033770552150204226 0.0195077208623248; 0.13635764102815603 0.17700879424928978 0.20952156641370756 0.22209299900339824 0.387023745781692 0.2526789145766851 0.9840473928465677 0.9944545163994348 0.7628015511728252 0.21862995489084638 0.17378734562194012 0.6072327127100751 0.8120913399429163 0.5587815024853605 0.5649398681849662 0.48910402339466696 0.531808973769114 0.09017310666726844 0.03999940594359134 0.032134604355827 0.02797743047976866 0.04045661550302929 0.024940657478324198; 0.03738526797037774 0.0518722922443791 0.06469761673719454 0.07006166077431174 0.15008890206353956 0.08665512641758483 0.7784277540898672 0.8696233384872661 0.8146647085648284 0.22136689810316545 0.15743791729748416 0.3968445993948711 0.5391261134094336 0.32293628667971663 0.33300869834150976 0.2972564334545365 0.29975944910030017 0.023848286045824146 0.008420633155828174 0.006112619378410749 0.00516049180195299 0.008268679880159445 0.0052975977111670795; 0.042144581324510336 0.0494746902418995 0.06742933413721425 0.06600663846708471 0.13930785683731703 0.07183957093968951 0.7790781696938223 0.8536051172386016 0.9590138186434369 0.3903921195934206 0.2950426290497306 0.5288899615616742 0.6189309135561756 0.4262505758493195 0.44128790558923603 0.4208889858046393 0.39942670313494494 0.032438697615701076 0.011172295974476632 0.006870690987412239 0.004857666087518073 0.007060720348024933 0.0034344193347111735; 0.05312991544390621 0.05941513640392731 0.08194706236820062 0.07813203139092116 0.15906453281962285 0.08151519050847295 0.8085392731314344 0.8681139298684074 0.9848651453003653 0.443246308165159 0.3456733523248384 0.6037896564824075 0.6813118162978405 0.4950714556869529 0.5113993322285312 0.49277881830487924 0.4667583768828605 0.0429226487701534 0.015239324750107681 0.009170625347595353 0.006257708243494053 0.00875319860215057 0.0039747823519354995; 0.05707943398657384 0.05887040570928494 0.08434059685077588 0.07665919270519939 0.15320607160230898 0.07504013686337539 0.7746626759108745 0.8196815897955259 1.0 0.5440195902835544 0.43906982651942317 0.6673967547317672 0.7023400808140081 0.5485677304431098 0.5670659502059522 0.5624209010974132 0.5201938090487075 0.05039216793847928 0.01791524354832784 0.010043369678747171 0.006325305381042625 0.00840984174401409 0.0033555198691232182; 0.0239028553317282 0.030184756247153024 0.040854218058537374 0.041510328633494326 0.09483008177233723 0.048340772261097814 0.6717838510012278 0.7676403150888159 0.8793112190224525 0.3119804989346951 0.22247711097256292 0.3913818163355702 0.481152264589789 0.30253086008317853 0.3150901394384516 0.29804879470704987 0.2801577440280252 0.0171896769354173 0.005490096384196609 0.0034159985987988898 0.0025153999701487658 0.0039043781883587865 0.002087265775451305; 0.031461748783796255 0.03877763079418788 0.05235828887075337 0.05259747403989502 0.11577900027217572 0.059784830395976214 0.7284683797887744 0.8167846933186389 0.9160729338118098 0.3382566896841279 0.24707350935618375 0.44839573463782234 0.5435604959271204 0.35385233350424394 0.3673850921598674 0.3474062654846442 0.32935166307385894 0.023094272546330587 0.007660825323682672 0.004791128233787445 0.003499654757292123 0.005296572963316763 0.002754516536638302; 0.0202635020156832 0.0209515968555071 0.031856292217650496 0.028621916401232315 0.06575704582809962 0.028713198747047974 0.5561499763492528 0.6276780889906601 0.9225361894208831 0.537563426752421 0.40805784519141053 0.45230817484429436 0.46279255715733986 0.34051076155197635 0.35722093503244967 0.36821581556576116 0.3181318631289292 0.018326268390209892 0.005525107949270952 0.002764399785944711 0.0016269608580749297 0.0022643385581135253 0.0008634402327095031; 0.03917881206249196 0.04187141495743542 0.0602770437308414 0.05569284553771938 0.11787868067422283 0.05651647912609812 0.7170279636314995 0.7811392796869542 0.9868755418205789 0.507181661805653 0.3946817184897088 0.5692597969620196 0.6111220282142971 0.45306704851231877 0.47065706470710794 0.467410267660561 0.4263135976218018 0.0335840367945797 0.0112547984221705 0.006246809772638481 0.003975045243333954 0.005489661056955841 0.0022783159887154033; 0.04503255088410135 0.0439137702967996 0.06568078940616273 0.05754622086226787 0.11797430518899149 0.0542341914980732 0.6848945717357943 0.7301845715877101 0.9867821313846442 0.6248955778853352 0.5079623735649396 0.6419956195484627 0.6383844961053452 0.5159463011662203 0.5357861713088927 0.5480569804281196 0.4892367713976803 0.0425914300452601 0.014482620179200524 0.0074868753371495735 0.0043749674598642044 0.0056845719431328585 0.002045738397676184; 0.020015288581754945 0.019539997383675744 0.0305983363763088 0.026560055130788258 0.060568717016068814 0.02548996952986846 0.5212517692914928 0.5837589968251036 0.9104128747187193 0.6087759155456162 0.4723327572739916 0.4681713902460597 0.4553175340992092 0.3517956141533186 0.3694712715628193 0.3893559371646623 0.3298272088546007 0.01929969464392214 0.005784803454931787 0.0027392873350079857 0.0015186313676977968 0.00204248371497284 0.0007090901969261304; 0.020666052296526998 0.023467210104345954 0.03394439944734565 0.03227571537361978 0.07474354689359762 0.03478309139442751 0.6050706431823535 0.6902380132644816 0.9157011962379701 0.4252868608831877 0.31207368821244674 0.41915963873727863 0.46633517155931187 0.3173525840288823 0.3321740061129138 0.32987532663994706 0.29493718842290595 0.01682097194725037 0.005145059748221362 0.0028260660732993795 0.0018375597258384604 0.0027007138580146654 0.0012020186941257484; 0.02453101432184634 0.020098364892380587 0.033807186321682364 0.026519136869644185 0.05668770862680506 0.022080288969644857 0.4402683441382192 0.4723140706097761 0.8338110421697035 0.8296862086740819 0.7008351158890717 0.5440749777729216 0.45737691515438816 0.41745398965791825 0.43796100209216043 0.48788632097996637 0.39735131936242424 0.028530362783343567 0.008830718283431016 0.003661080212258824 0.0017275175383884805 0.0020652670212335587 0.0005465605530047422; 0.010772381969517289 0.00808979915556405 0.014769223974223632 0.010907548917201483 0.025105066248112838 0.00861005735113974 0.27446992177652213 0.30268057727357456 0.6563261019548249 0.8423122954493703 0.7087959360554233 0.3816217504493905 0.2915784265479316 0.27667027303245256 0.29339896442424834 0.3462653613105691 0.2623718667950521 0.014036631757401184 0.003892193697218935 0.0013824598149453928 0.000570663656527681 0.0006655357305495249 0.00014821787811893474; 0.013102125076381291 0.009501254374372565 0.01743056916880381 0.012641115714999962 0.028109874095783 0.009665720685806211 0.2779944240132419 0.3009422157277764 0.6496100565156806 0.8921208950268356 0.7707215094068156 0.4153473315697215 0.3097033352945198 0.30652449538189097 0.3242452180605052 0.38457230531389347 0.29222754331272954 0.0176491442562162 0.005052976710183603 0.0017795086910056906 0.0007191096459963922 0.0008135871421187968 0.0001729568595091208; 0.010048640046801751 0.007556801509146678 0.01383630447940828 0.010219144448059669 0.023720538640699704 0.008086205235382792 0.2673028201381964 0.2959612329986008 0.6480835552991425 0.8326590465631913 0.6977877995262115 0.3695874583691571 0.282221028802535 0.26655787487127675 0.28291666669202015 0.3345015952465225 0.2525390976336497 0.013094227782891262 0.003595847554140322 0.001270090006133873 0.0005228431863253228 0.0006118815220643209 0.00013617786605785216; 0.022349563450720516 0.015126611441125632 0.027736426902443566 0.019448577925125717 0.03948248730102741 0.013912843541017676 0.29407180499185603 0.3036682389024967 0.6295948777410747 0.9760878235703699 0.8971483297034317 0.510873410149174 0.3648754706376355 0.3962367174131936 0.4160536437133086 0.49505438923170403 0.38266060041477884 0.032002468097764726 0.010030791663580315 0.003541268511179874 0.001388397560167188 0.0014686522229405998 0.0002871893433972941; 0.010020005268819202 0.006809770300057249 0.013011105080329613 0.009061216335098812 0.0203203311204038 0.006608239130026839 0.2181377208067792 0.23591612481445193 0.5571316265641847 0.9019480717339876 0.7928873516646797 0.3622506780828305 0.25412502873565396 0.26395075463572065 0.2800632926839618 0.34220302701090444 0.25218637023914864 0.014558062704000863 0.004058708035772421 0.0013244042014423662 0.0004960057823668772 0.000542796465649497 0.00010316672930654405; 0.01106332568616253 0.006887193194115914 0.013554569709165635 0.008985016403844404 0.019232335629336378 0.00608875040752228 0.18606570349931004 0.19565849249653774 0.48225133952423743 0.9453876390694811 0.8725629002342125 0.3644945741438321 0.23844406528632542 0.27079632723779745 0.28673978102317077 0.35878774000611285 0.26108600973253054 0.017606861104932217 0.005073103983778686 0.001567301714496989 0.0005453728216072849 0.0005601086767381032 9.34005648300471e-5; 0.01657908523512305 0.011582747078381944 0.021314338205802762 0.015167963313664786 0.032355502612115034 0.011201905491084553 0.28242091851773066 0.29908821320436807 0.6382850228010263 0.9397497324044695 0.8367176827710091 0.45643200424037295 0.3319584631188468 0.3443458093220082 0.3630946413341951 0.4323367624470917 0.3303136751483621 0.023116247423315056 0.006887297927401206 0.0024132953755383753 0.0009557168244199856 0.001045242382536408 0.00021182221215739486; 0.02764121723161683 0.017222970583007854 0.03220850516134753 0.021595654487073727 0.041175981935510725 0.014371637034094253 0.259331300415348 0.2585454040835821 0.5440195902835544 1.0 0.9702064166750799 0.530245218387723 0.3560307890203881 0.4238742345642878 0.44332843787390197 0.5365850265213121 0.4136915663687128 0.04297162933120202 0.01420754067753986 0.00483919981495718 0.0017871776252900312 0.0017700462041020729 0.00030801400193521903; 0.033765857073249396 0.019222888349132574 0.0366758927128704 0.023425682392132743 0.04156995738050753 0.01439904495484344 0.21532000371278573 0.2062681823099032 0.43906982651942317 0.9702064166750799 1.0 0.5266287956023967 0.3307939384157074 0.43601990045358663 0.4539182184875824 0.5591960801816629 0.4306259447317991 0.057385150231952155 0.02019180375858439 0.006632129374597611 0.002298515218977774 0.0021163880760639107 0.00032463677682729514; 0.02553578820521561 0.0158644870161105 0.029838914605637666 0.019953454894567846 0.038401012604959726 0.013269650716428449 0.2509244773194308 0.251186735069333 0.5371677022503326 0.9995646051393732 0.9667899675361993 0.513751166350262 0.3433357299717392 0.4081395073506391 0.42733645217635563 0.5192419691029252 0.39799729028929487 0.03990347409204987 0.013038212795705478 0.0043927214930709535 0.0016094244034674434 0.0015961297818598565 0.0002754711459087229; 0.014684836067894124 0.007863396938894306 0.016093036470496366 0.009825718452488018 0.0189014126385701 0.005844366606428707 0.13849007975235583 0.13706934957395644 0.3505681951871089 0.9408488893951146 0.9551754247357206 0.3639737993290779 0.21243271709551226 0.2843646309443169 0.29919652216983733 0.3870026762693761 0.2792653571316844 0.027184350652692695 0.008556747740127378 0.002461193413214283 0.0007652106152402142 0.0006987527433192667 9.397135335575793e-5; 0.021425769737078368 0.011961446785158796 0.023616854868073967 0.014831082339553991 0.027747811476019044 0.009060931748526886 0.17752833012020347 0.17401094944541437 0.40750501628989283 0.9721752042840985 0.985527711544548 0.4396878920679833 0.2681896715550059 0.35127963758750874 0.36800110805489483 0.46402546238163483 0.34531620678243374 0.037617774125204916 0.012368962147916036 0.0038068720385083673 0.001257026852505441 0.0011643628241787124 0.00016961483943713626; 0.2680295766735067 0.221500149894056 0.31408772981722 0.2566761906912133 0.37540034365943104 0.2022331299863698 0.7098399745938505 0.6395908524826316 0.6673967547317672 0.530245218387723 0.5266287956023967 1.0 0.9204011029470381 0.9763204269194343 0.9834744899012892 0.9800453255225883 0.9670027469525624 0.2868166055620744 0.1396173432997934 0.0802050018418445 0.04629682347632554 0.04928910656810396 0.015144618580948671; 0.29939058530607915 0.2978310573718274 0.3824704266612618 0.3496676024988405 0.5190650165661463 0.3174100045147389 0.897129803886899 0.8253149042783318 0.7023400808140081 0.3560307890203881 0.3307939384157074 0.9204011029470381 1.0 0.9092611854055276 0.9117485102579749 0.8437830107817399 0.8913223951781822 0.26003030092553525 0.1303827813666727 0.09015777074260106 0.06341517666632882 0.07518254013006463 0.03137762242865076; 0.37151489965630213 0.3053559535776424 0.4200037751884887 0.34456852113508585 0.46669986410386666 0.2670237514797323 0.6668121606496512 0.5796701178937012 0.5485677304431098 0.4238742345642878 0.43601990045358663 0.9763204269194343 0.9092611854055276 1.0 0.9993139026257465 0.9765798100043396 0.9987957619674939 0.39412877854863043 0.2098767698470255 0.12780803517686787 0.07623734052074496 0.07896775479712795 0.02470799941856937; 0.3524014409758097 0.2890446485251837 0.4001773046096343 0.3275077643059417 0.4490622985140926 0.2539121194008726 0.6725100792205622 0.5878473919825917 0.5670659502059522 0.44332843787390197 0.4539182184875824 0.9834744899012892 0.9117485102579749 0.9993139026257465 1.0 0.9815187936126483 0.9969143579721336 0.37562956856679103 0.19703163333480644 0.11850074321536054 0.07008717427360553 0.07279694039680448 0.022599211149285328; 0.39465231175913795 0.31587551141322445 0.43642677197878865 0.3530737581159885 0.46672673050010677 0.26715889535835474 0.622155656205321 0.5337483231906022 0.5046262630854164 0.41089803125627195 0.43085691731721165 0.961384843855092 0.8785837060449794 0.9969370612351908 0.9945537399369616 0.97609997854102 0.9995568027554731 0.4295214100756645 0.2338386266049015 0.14126529235623905 0.08283907919566438 0.08390006402557657 0.025324299741833464; 0.2908959282977835 0.22090114119439183 0.3219312217176709 0.25092423515822787 0.3499350203111987 0.18411214167319784 0.5926610833970605 0.5191073343197649 0.5624209010974132 0.5365850265213121 0.5591960801816629 0.9800453255225883 0.8437830107817399 0.9765798100043396 0.9815187936126483 1.0 0.9760363402932355 0.3396761689366942 0.17122729619266394 0.09352156540595309 0.05035919518075388 0.05038867912666139 0.01366097735931823; 0.3514836919845527 0.25827905726818784 0.37376328779438567 0.2871031630484072 0.3774708549469005 0.20356442769718722 0.527254124515189 0.4483191866084228 0.46652883939298834 0.4676429245287537 0.505344784277436 0.9424242881899214 0.7976158902909226 0.971098264163409 0.9709671758028702 0.9864017590543077 0.9781505431297239 0.42127512095013353 0.22585472214185204 0.1251177654786094 0.06693346651287566 0.06454104481834383 0.01690822793519799; 0.3880509811446821 0.3141485519019614 0.43280734456335546 0.35232020079983056 0.46962470972808273 0.26924082958699697 0.639910660474017 0.5515646672943586 0.5201938090487075 0.4136915663687128 0.4306259447317991 0.9670027469525624 0.8913223951781822 0.9987957619674939 0.9969143579721336 0.9760363402932355 1.0 0.4175584225095954 0.22574366435124235 0.13708488052338838 0.08106449463694666 0.08284201786267843 0.02541251142320079; 0.37961657901188395 0.25192283506342733 0.37396034073513706 0.27177013275063033 0.3316295475090898 0.17635188715914188 0.3805158733692937 0.31022132785589657 0.32995603743246077 0.4085529653091237 0.4713640504577533 0.8305039703656368 0.6510083421165387 0.8867144586887958 0.8825664115254728 0.9163437520779888 0.9045793138133195 0.5037709664927494 0.28752565713902434 0.1520569532177624 0.07546592900068064 0.0671567954033988 0.01522336553239881; 0.4702831429583742 0.3213335719746325 0.4597881972580735 0.34164544472267744 0.39813969852691955 0.22491433200447894 0.3765147624730655 0.3011668417307773 0.2904874285924168 0.3265331196970446 0.3807124240825537 0.7964028874115803 0.6475849179588237 0.878341751854222 0.8691210753475811 0.879767432078501 0.8991737718575608 0.5982998949558497 0.3633531261013041 0.20600362457781846 0.10808286790933438 0.09633093909886627 0.02331194601865261; 0.526795288057018 0.3940391213462967 0.5388779005079533 0.42266049253674903 0.49969396504753033 0.298501330474785 0.4644036535619441 0.37649106648873704 0.3319524786282605 0.300825324374188 0.33846013954020493 0.8391821514224157 0.7387531166728089 0.9266670512086935 0.9155922954238254 0.89576457108235 0.9431591120717556 0.6061425707332225 0.37032063184699016 0.22846758678703566 0.1315297906335085 0.12382813579712616 0.03470780014308738; 0.326708533419188 0.2430452816843132 0.3528498094599045 0.2724891632283225 0.36673219291844344 0.19573728896816622 0.5532605885480469 0.4759742322481321 0.5037422336172169 0.49604598976832465 0.5285094201634164 0.9600456733812273 0.81751796330167 0.9761094484348516 0.9780088993021706 0.9950015905287559 0.9801978533385329 0.3878742388347221 0.20288958549179464 0.11167812171391878 0.05985022255614695 0.05853988792012992 0.015526771107081744; 0.5619207849380442 0.38384512737319587 0.5345032833933165 0.39943888193571503 0.4372646966133805 0.26024918463886315 0.3280472343236939 0.2549281555415764 0.22593650441538846 0.24574382979335188 0.29442973469375133 0.7110437799713303 0.5859751095762021 0.8158127630991835 0.8019023386938486 0.7975187692574014 0.8407203767536858 0.7064956340024616 0.4621084542264419 0.27596525043225517 0.1494008366974313 0.13051365577846652 0.03227936170155413; 0.6430706658631261 0.45006841886534327 0.6078444172622047 0.46271359870464523 0.4874771713377931 0.30510864810623706 0.31132575025507137 0.23812417686552184 0.19454650831020817 0.19524813962125906 0.23598888415659178 0.6574493787863069 0.5585838247963583 0.7749782758058278 0.7580532503023097 0.7381503679619124 0.8009681622942774 0.7806334105161824 0.5376983537943203 0.34025026525820296 0.1929222057620414 0.16874582807373442 0.04406772611548003; 0.7231647963646257 0.5056851000850311 0.6655850205917616 0.509266230976612 0.5052334681260294 0.3323247700429202 0.2584463004813027 0.19226030577292572 0.14491990312468314 0.1411260347060979 0.17513016835138412 0.5593127995804646 0.4810917747190298 0.6847600297393145 0.6655572238457713 0.6373481626655303 0.7122690618954836 0.868572031742886 0.642367727412946 0.4270069268585453 0.2493471672518346 0.21386764096672656 0.05697307908855304; 0.6316227556282686 0.40743503740482884 0.5606965055218779 0.4084491148331317 0.4039103078167204 0.2507422704206328 0.21745362046021305 0.16055009821413815 0.13282860708891472 0.15755645787174735 0.20099144507894512 0.5395481654674688 0.4314691749241478 0.6558364264722154 0.6389336863189395 0.6324492597708506 0.6850231211028036 0.8312537908937804 0.6045643859848966 0.3697286562941463 0.19778414654099596 0.16205085142829598 0.037740738988576696; 0.7401079629435721 0.5428295877160711 0.7031806864585685 0.5526524918348173 0.5625668683648273 0.37535456334989986 0.3049670044118855 0.23040058563288934 0.16976699088029149 0.1490124483780644 0.1800509174051033 0.6031858853281993 0.5388764898497265 0.7305283258443571 0.7108620688983256 0.6720656802992333 0.756102320334855 0.846021274392779 0.614290483608926 0.42053331865050503 0.25553244125721153 0.22690103237680803 0.06489412637619173; 0.7774171295635275 0.5183587196531081 0.6671856182761694 0.5011275436908067 0.4439717097364589 0.3097901912593574 0.15499968292212957 0.10904978972531522 0.07466261292508483 0.07694096980958384 0.10184805385603908 0.3794525394526092 0.3203312365762359 0.4963074588528718 0.4773711871808398 0.4516508142874447 0.5236420497371012 0.9644741236400529 0.8060189579870737 0.5597466310187597 0.32836661338632694 0.2646093759094215 0.0677441637131662; 0.8181308100490108 0.5561243868737823 0.698575060593573 0.5324654697166794 0.45752368437996377 0.33230408198860933 0.14048366252196495 0.09759286203453564 0.06262356218316165 0.06053539611033345 0.08069598037760621 0.3368883734358375 0.29138104057505876 0.45023153710385133 0.4313705725132026 0.40132171704812075 0.4761351054919458 0.9870428644119942 0.8596029953159898 0.6251306019773151 0.38047255238126104 0.306893210606778 0.0820423232658685; 0.7328677140374111 0.45686249352211705 0.5790469862711584 0.4222181599919014 0.33080357486099415 0.2432499454983849 0.07720430058897658 0.05106405047245464 0.032093401151864966 0.0365474112100408 0.05215633420045098 0.22181457534510465 0.18089489184494278 0.3111666840414051 0.2960670894164659 0.27828806542602247 0.3336621538628581 0.9586604604379003 0.9112627551291514 0.6526801185016419 0.37822360606526256 0.2823655882683267 0.0674470136857995; 0.7515232704337115 0.4757416292999305 0.5968371635299031 0.43944272397447637 0.34313013101024226 0.2559666012514232 0.07813514522593748 0.051658187653842315 0.03172311639963259 0.0347198448127321 0.0493745953085397 0.21905996675855813 0.18130230551737894 0.3085046198554848 0.2932786599324534 0.273623488478172 0.33068669985787785 0.9653564796429168 0.9249527424633506 0.6753413167030635 0.3987464830705314 0.2999086114297358 0.07359809262134936; 0.8766234308310106 0.6220352391872924 0.750503533504958 0.5892979561473187 0.4883331096338951 0.3775897748372698 0.12677413631301512 0.08688786848645763 0.05039216793847928 0.04297162933120202 0.057385150231952155 0.2868166055620744 0.26003030092553525 0.39412877854863043 0.37562956856679103 0.3396761689366942 0.4175584225095954 1.0 0.9191899116391927 0.7213092819491199 0.46889441622459455 0.3828925347230843 0.11144275482456456; 0.8119268400431263 0.5616029351132952 0.6474473854693175 0.5069931386383051 0.3661982883577541 0.311649120820824 0.05829641266312954 0.03742883021724568 0.018577266239422643 0.01567128213557683 0.0223986923163361 0.14511479304623873 0.13244337225859604 0.21687298617558284 0.2038675593583631 0.17921730237397668 0.23341261540835537 0.9285566477571606 0.9982284285344054 0.8549662123185122 0.57919180548843 0.4463677903452444 0.1306883528369306; 0.82681374480545 0.5857825177211226 0.6647402210580929 0.5284801502144095 0.3798584854063081 0.33049550236819253 0.05828369828510033 0.03740368096386031 0.01791524354832784 0.01420754067753986 0.02019180375858439 0.1396173432997934 0.1303827813666727 0.2098767698470255 0.19703163333480644 0.17122729619266394 0.22574366435124235 0.9191899116391927 1.0 0.8822702532119937 0.6152795204486762 0.47978346763635193 0.14650071169191572; 0.822809521622991 0.5948037025016687 0.661623292177756 0.5335057440538382 0.37607346176075984 0.33764855167756436 0.05284701060910418 0.033662036456081526 0.015324720335777151 0.011444005832743251 0.016295443067505327 0.12330208096295307 0.11778021084065203 0.18808039767468007 0.17608616190280213 0.1508937925165944 0.2025242052804488 0.8905990321407163 0.9966670165629197 0.9131581140097302 0.6576167422401595 0.5153533855760121 0.16390625359706507; 0.7332380005310724 0.47966685651323304 0.561270991827678 0.4262991752111288 0.2962414470348876 0.24973189593616663 0.04268972320232483 0.026811837976605572 0.013507495536566362 0.012805825713678201 0.018952874629094556 0.11843861804971419 0.1036060543552713 0.18023196881388742 0.16904117283919085 0.1504765142358632 0.1952861714325238 0.8869877129551653 0.9842217337887395 0.8203423350576758 0.5328025632598246 0.39324760863940933 0.10628991718440418; 0.7187809376310704 0.4761254396371267 0.54656074185958 0.4194008209483607 0.28353726603906537 0.24690043097609538 0.03654000044570406 0.022681143697437862 0.010842333019539772 0.009820791891003388 0.014650008345521303 0.10032334124866865 0.08930018079843059 0.15556684998216727 0.14542078103482645 0.12776685893780718 0.16895268664252294 0.8526318330670217 0.9806401970911786 0.8475881317911022 0.5659917900792554 0.416984564845228 0.11622851300686755; 0.8144257681324784 0.6973386670166851 0.6926170128782051 0.6217604813241744 0.4217137127807958 0.4440238046305932 0.04500739970678052 0.028523064291676215 0.010043369678747171 0.00483919981495718 0.006632129374597611 0.0802050018418445 0.09015777074260106 0.12780803517686787 0.11850074321536054 0.09352156540595309 0.13708488052338838 0.7213092819491199 0.8822702532119937 1.0 0.8855923329934225 0.7530367236790085 0.3226608405615575; 0.7464895770624135 0.5594351352421899 0.5895776094001356 0.4895311220674548 0.319643609141359 0.3143758003701468 0.03288525229499247 0.020274680144724787 0.007964199195053414 0.005222443768633631 0.0075982008115135 0.07437307723826476 0.0746522813603369 0.11956373319655095 0.11089845782781486 0.09158557641127746 0.12957243004933744 0.7640400790614297 0.9450363171851921 0.9591969772942559 0.7472623695905949 0.5830550774121601 0.20244287264478314; 0.7530030245919059 0.5431234673379363 0.5891717554326777 0.47712932171407574 0.3166487512948445 0.2985208761222979 0.035649105448995015 0.022080553461329762 0.009286847786499046 0.006751278027436788 0.009875494227672841 0.08544232307820761 0.08252777611615113 0.13536175637433384 0.1259284644875634 0.10617928562160212 0.14670596019757695 0.8076447950677335 0.9703716409266376 0.932762917865407 0.690834745158495 0.5304385201337295 0.17171039308680663; 0.8235336782281178 0.6405111214096829 0.6751170957730195 0.5708263832967825 0.3913225084959072 0.3799338589125705 0.04683919106442962 0.02961614926842436 0.011883757732761544 0.00729943919314527 0.010273385080068998 0.09769000743415807 0.10036147536710764 0.1529345825839084 0.1424119148518332 0.11739714058688706 0.1645958816308224 0.8155975950934103 0.9611942517618203 0.9745530337256978 0.7718025112426161 0.6243230838122039 0.22676040918673873; 0.6867468433693716 0.5331666327402476 0.5401499281722351 0.4602101153093634 0.2874857014122235 0.3013099698294809 0.02441925668731399 0.014789893132036517 0.005242128466115685 0.003076690211929651 0.00451111846293758 0.05293690792581018 0.05540759589202033 0.08787213190071044 0.08102581610167775 0.06510209996936658 0.09551563939482735 0.6693717151437683 0.8805139185030549 0.962976949860865 0.7977752137717908 0.625906121249835 0.23426112680791764; 0.6123022959216866 0.4999976772262982 0.48269268480676464 0.42595719513313823 0.25449585634974026 0.28756933949188684 0.017618908610842147 0.010493756806911569 0.0032937887074633177 0.001666429247984283 0.0024505350619450157 0.03569336809287439 0.03950235279527152 0.061294039927021746 0.056157172390876364 0.04361457849901721 0.06678097895617935 0.5585565589403414 0.784685636948393 0.9400073084858939 0.8422729086934179 0.6700290694351737 0.27733472967577766; 0.5208071432762769 0.44790727672851793 0.4112620733348449 0.37629227912890906 0.2144655272958558 0.26209976266649593 0.011972269254734097 0.007004322353126643 0.001936938649234545 0.0008408093661474044 0.0012409452628291877 0.022638140748971483 0.026538216827193314 0.040289711699862236 0.036665355400374564 0.02748985316984334 0.04400815817355934 0.44374622631342764 0.6680658291966547 0.8797756865237958 0.8549882792013699 0.6895556341694858 0.3166405198571644; 0.5891681247974004 0.6090837294623026 0.5248133057027008 0.5327362038278587 0.33368944124026373 0.43261895730019134 0.022886397413172065 0.01418017863278169 0.0035688318479617353 0.0010351877552663635 0.0013814109028705312 0.030641695234509592 0.041619482122225035 0.0524656862959539 0.047934392864311254 0.03415916876832351 0.05624683422303738 0.4144251498547713 0.5845546024608902 0.8657575960256906 0.9832623417700396 0.9050029006040501 0.5474453725428048; 0.6772129558340088 0.7178826818314505 0.6277007998632926 0.6430231195027034 0.4303538604829861 0.5378606847561948 0.03699408218865754 0.023677093828563235 0.006325305381042625 0.0017871776252900312 0.002298515218977774 0.04629682347632554 0.06341517666632882 0.07623734052074496 0.07008717427360553 0.05035919518075388 0.08106449463694666 0.46889441622459455 0.6152795204486762 0.8855923329934225 1.0 0.95317462877265 0.5874035637208949; 0.5749644296822503 0.5614640934267493 0.49299286294186273 0.48468047798417707 0.2942832944957974 0.3752064819757136 0.018804501447141315 0.011435890401526988 0.002955760433948493 0.0009704067285291062 0.0013371056870898458 0.028038292943887058 0.036400349970850336 0.04864456022600958 0.044380183342761476 0.032110546803158134 0.052463579032817904 0.42901781989141297 0.6188663970979027 0.885220316479004 0.9589037954214876 0.8466889875934079 0.4705785731761298; 0.5966298504595813 0.6497959021929185 0.5508610734329186 0.575651052751428 0.37181328597797036 0.48854896269750847 0.02743297932990087 0.01730727969785368 0.004264146632423846 0.0011057799083934747 0.0014316397886228248 0.03325744456483746 0.04705515434685252 0.056183095043217876 0.051409730819183534 0.036153416730729984 0.0598890375403915 0.3978048409442719 0.5482579229273747 0.8366872356964472 0.9911306477477079 0.9482157541926657 0.6192712131547955; 0.6360692761241019 0.7710611517712889 0.6433503699452944 0.7109544049100224 0.5091151748567635 0.6649412466468505 0.05063099709508791 0.033770552150204226 0.00840984174401409 0.0017700462041020729 0.0021163880760639107 0.04928910656810396 0.07518254013006463 0.07896775479712795 0.07279694039680448 0.05038867912666139 0.08284201786267843 0.3828925347230843 0.47978346763635193 0.7530367236790085 0.95317462877265 1.0 0.7536774603025823; 0.37477044321888536 0.4349863927333212 0.3388839022817558 0.3720494346085627 0.21519711025421284 0.3253138317147909 0.010037093974181666 0.0060467417410972725 0.0011875118732063588 0.0002480707283038141 0.0003300424159388177 0.011407470827613422 0.017521330331462935 0.020814669795918655 0.018784268442022023 0.012463171657650072 0.02238095595512163 0.227469653973088 0.3632368032599243 0.6505486498358429 0.8743314602327298 0.8366314316745298 0.6323552576352361; 0.4308494365065684 0.5521961142878209 0.42568510936624304 0.49172463488628315 0.3159269411000278 0.47114743317643165 0.020125652113509692 0.012821784701747635 0.0025763216834118296 0.0004459216390885389 0.000548863514666901 0.01860102653889555 0.03056557154533914 0.03212075732520414 0.029217027826914762 0.01915472861237837 0.03399621120406532 0.23833695351973763 0.3445536527228856 0.6283027956928183 0.8935450448439365 0.9340508327639085 0.803367738440086; 0.42588556793724963 0.514599887489171 0.40225454811321515 0.45008699593865603 0.2764547431869833 0.4095893081877711 0.015610214582617616 0.009697779434859725 0.001968411270910264 0.0003845846633845169 0.0004920266487864112 0.016205332099098156 0.025484432603544913 0.028598027606397586 0.025939220913629255 0.017212264615019613 0.030497065232210633 0.24978921540415677 0.3752433713507336 0.6671808968998799 0.9094166321017612 0.9070024503194692 0.717969244338302; 0.25616724404676827 0.36064432234093263 0.25458348363076183 0.31381508570267086 0.18628923825270452 0.3185209800604343 0.0082263007895151 0.005088772835099111 0.0008198400207983819 0.00010788314848899607 0.0001332981971132782 0.006693772956053487 0.012191493624789688 0.01228286410458982 0.011044429533844548 0.0068049702629956145 0.0130512812361402 0.1253743856343511 0.2039176585333789 0.43910102741499013 0.7211374530045427 0.7744022012346895 0.802098239373476; 0.28531440235914857 0.4002858555284273 0.28636704091166787 0.3513821641026911 0.21409246587444314 0.35723120432949906 0.010439773572454236 0.006534374708804699 0.001095215285484182 0.00014740693870887804 0.0001802894669450021 0.00845972297584198 0.015272137647549196 0.015263798894214076 0.013764458115931638 0.008556389143525862 0.016176721587662174 0.1409025065904775 0.22200076169575395 0.46602649035313587 0.7524428671746313 0.8131717721925134 0.8296434593833473; 0.24903410779923643 0.35904933061176014 0.25127407578055966 0.31395393231584934 0.18847617044543946 0.3249998991514615 0.008516438259839807 0.005305086528612752 0.0008432117182715994 0.00010526431950490199 0.0001284332102931466 0.006629678280122173 0.012309626926329458 0.012112089324700176 0.010895282626047198 0.006667249932579161 0.012840082356890036 0.11887527798719272 0.1919477286751715 0.4200001386101343 0.7041663984132576 0.76897079297106 0.8256707173813529; 0.22886067841582372 0.3877508069941566 0.26235980762663824 0.35736249399182723 0.2450825591516219 0.42670313988850206 0.01598520519681239 0.010717359719015747 0.0016793924477414128 0.00015125353768022373 0.00016529025327248037 0.009017807932986543 0.018843636469128917 0.015426968275166236 0.013999905415617844 0.008311948797036561 0.01600287954319619 0.09324670458766982 0.13395130511607745 0.31152426355295504 0.5837246484964872 0.7272861670149322 0.9767715590737112; 0.22999157462853717 0.3739192895482388 0.2539677229913929 0.3387311467563276 0.22207608922889335 0.3892663265674966 0.012660670510976866 0.008288158348560032 0.0012841413529425093 0.00012498125252143175 0.00014115406860773277 0.007787904576648366 0.015827422324756663 0.013643282830861742 0.012338925297899555 0.007359598121597874 0.01424797224163647 0.09737079522136055 0.14601439689786624 0.337413917584164 0.6179492443333177 0.741809464150622 0.9445687130630891; 0.17472537202867305 0.31946950253651746 0.20757504481875824 0.2960646945670436 0.2043837708525398 0.37471801359443757 0.012869683364298182 0.00870439065575205 0.001255146163388405 9.40099767528817e-5 9.993772188331276e-5 0.006372183619931549 0.014253099520981844 0.0109507207417646 0.009919585760279565 0.005713849249271425 0.011310824574965789 0.06534582815086555 0.09496735574229902 0.23825024277808274 0.48407885194721434 0.6304863404013172 0.9601419182825064; 0.27226866397259536 0.4654568122945319 0.32400415670963956 0.44057810112560447 0.32622076287640006 0.5362623212460318 0.028066326109481347 0.0195077208623248 0.0033555198691232182 0.00030801400193521903 0.00032463677682729514 0.015144618580948671 0.03137762242865076 0.02470799941856937 0.022599211149285328 0.01366097735931823 0.02541251142320079 0.11144275482456456 0.14650071169191572 0.3226608405615575 0.5874035637208949 0.7536774603025823 1.0; 0.1378713016583555 0.2643436673110578 0.16623288617478832 0.24439157750945995 0.16654595332868682 0.319866938036741 0.009632633551903613 0.0064994006534456195 0.0008695399375500576 5.753081953910816e-5 6.056131084754415e-5 0.004425777296702749 0.010366726569778452 0.007709894663229764 0.006963352996732379 0.003917093375501153 0.007956455372461188 0.04872180791505365 0.07277779799754423 0.19415214531611902 0.41848453319317924 0.5573025470555464 0.9233874841127124], Int32[1, 2, 3, 4, 6, 7, 24, 25, 30, 46, 47, 51, 52, 53, 54, 56, 58, 72, 74, 78, 86, 89, 99], LIBSVM.SVMNode[LIBSVM.SVMNode(0, 1.0), LIBSVM.SVMNode(0, 2.0), LIBSVM.SVMNode(0, 3.0), LIBSVM.SVMNode(0, 4.0), LIBSVM.SVMNode(0, 6.0), LIBSVM.SVMNode(0, 7.0), LIBSVM.SVMNode(0, 24.0), LIBSVM.SVMNode(0, 25.0), LIBSVM.SVMNode(0, 30.0), LIBSVM.SVMNode(0, 46.0), LIBSVM.SVMNode(0, 47.0), LIBSVM.SVMNode(0, 51.0), LIBSVM.SVMNode(0, 52.0), LIBSVM.SVMNode(0, 53.0), LIBSVM.SVMNode(0, 54.0), LIBSVM.SVMNode(0, 56.0), LIBSVM.SVMNode(0, 58.0), LIBSVM.SVMNode(0, 72.0), LIBSVM.SVMNode(0, 74.0), LIBSVM.SVMNode(0, 78.0), LIBSVM.SVMNode(0, 86.0), LIBSVM.SVMNode(0, 89.0), LIBSVM.SVMNode(0, 99.0)]), 0.0, [1.0; 1.0; 1.0; 1.0; 0.4545873718969774; 0.36172853884920114; 1.0; 1.0; 0.9976825435225717; 1.0; 1.0; -1.0; -1.0; -1.0; -1.0; -0.5005315477488701; -0.21806563021962358; -1.0; -0.3833339180359196; -1.0; -0.7120673582643366; -1.0; -1.0;;], Float64[], Float64[], [-0.015075000482567661], 3, 0.01, 200.0, 0.001, 1.0, 0.5, 0.1, true, false)

    Prediction

    For evaluation, we create a 100×100 2D grid based on the extent of the training data:

    test_range = range(floor(Int, minimum(X)), ceil(Int, maximum(X)); length=100)
    +x_test = ColVecs(mapreduce(collect, hcat, Iterators.product(test_range, test_range)));

    Again, we pass the result of KernelFunctions.jl's kernelmatrix to LIBSVM:

    y_pred, _ = svmpredict(model, kernelmatrix(k, x_train, x_test));

    We can see that the kernelized, non-linear classification successfully separates the two classes in the training data:

    plot(; lim=extrema(test_range), aspect_ratio=1)
    +contourf!(
    +    test_range,
    +    test_range,
    +    y_pred;
    +    levels=1,
    +    color=cgrad(:redsblues),
    +    alpha=0.7,
    +    colorbar_title="prediction",
    +)
    +scatter!(X1[:, 1], X1[:, 2]; color=:red, label="training data: class –1")
    +scatter!(X2[:, 1], X2[:, 2]; color=:blue, label="training data: class 1")
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    Package and system information
    +
    +Package information (click to expand) +
    +Status `~/work/KernelFunctions.jl/KernelFunctions.jl/examples/support-vector-machine/Project.toml`
    +  [31c24e10] Distributions v0.25.103
    +  [ec8451be] KernelFunctions v0.10.59 `/home/runner/work/KernelFunctions.jl/KernelFunctions.jl#ec19a94`
    +  [b1bec4e5] LIBSVM v0.8.0
    +  [98b081ad] Literate v2.16.0
    +  [91a5bcdd] Plots v1.39.0
    +  [37e2e46d] LinearAlgebra
    +
    +To reproduce this notebook's package environment, you can + +download the full Manifest.toml. +
    +
    +System information (click to expand) +
    +Julia Version 1.9.4
    +Commit 8e5136fa297 (2023-11-14 08:46 UTC)
    +Build Info:
    +  Official https://julialang.org/ release
    +Platform Info:
    +  OS: Linux (x86_64-linux-gnu)
    +  CPU: 4 × AMD EPYC 7763 64-Core Processor
    +  WORD_SIZE: 64
    +  LIBM: libopenlibm
    +  LLVM: libLLVM-14.0.6 (ORCJIT, znver3)
    +  Threads: 1 on 4 virtual cores
    +Environment:
    +  JULIA_DEBUG = Documenter
    +  JULIA_LOAD_PATH = :/home/runner/.julia/packages/JuliaGPsDocs/7M86H/src
    +
    +

    This page was generated using Literate.jl.

    diff --git a/v0.10.59/examples/support-vector-machine/notebook.ipynb b/v0.10.59/examples/support-vector-machine/notebook.ipynb new file mode 100644 index 000000000..be75e539c --- /dev/null +++ b/v0.10.59/examples/support-vector-machine/notebook.ipynb @@ -0,0 +1,599 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# Support Vector Machine\n", + "\n", + "*You are seeing the\n", + "notebook output generated by\n", + "[Literate.jl](https://github.com/fredrikekre/Literate.jl) from the\n", + "[Julia source file](https://github.com/JuliaGaussianProcesses/KernelFunctions.jl/blob/master/examples/support-vector-machine/script.jl).\n", + "The rendered HTML can be viewed [in the docs](https://juliagaussianprocesses.github.io/KernelFunctions.jl/dev/examples/support-vector-machine/).*" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "In this notebook we show how you can use KernelFunctions.jl to generate\n", + "kernel matrices for classification with a support vector machine, as\n", + "implemented by [LIBSVM](https://github.com/JuliaML/LIBSVM.jl)." + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "using Distributions\n", + "using KernelFunctions\n", + "using LIBSVM\n", + "using LinearAlgebra\n", + "using Plots\n", + "using Random\n", + "\n", + "# Set seed\n", + "Random.seed!(1234);" + ], + "metadata": {}, + "execution_count": 1 + }, + { + "cell_type": "markdown", + "source": [ + "## Generate half-moon dataset" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "Number of samples per class:" + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "n1 = n2 = 50;" + ], + "metadata": {}, + "execution_count": 2 + }, + { + "cell_type": "markdown", + "source": [ + "We generate data based on SciKit-Learn's sklearn.datasets.make_moons function:" + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "angle1 = range(0, π; length=n1)\n", + "angle2 = range(0, π; length=n2)\n", + "X1 = [cos.(angle1) sin.(angle1)] .+ 0.1 .* randn.()\n", + "X2 = [1 .- cos.(angle2) 1 .- sin.(angle2) .- 0.5] .+ 0.1 .* randn.()\n", + "X = [X1; X2]\n", + "x_train = RowVecs(X)\n", + "y_train = vcat(fill(-1, n1), fill(1, n2));" + ], + "metadata": {}, + "execution_count": 3 + }, + { + "cell_type": "markdown", + "source": [ + "## Training\n", + "\n", + "We create a kernel function:" + ], + "metadata": {} + }, + { + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "Squared Exponential Kernel (metric = Distances.Euclidean(0.0))\n\t- Scale Transform (s = 1.5)" + }, + "metadata": {}, + "execution_count": 4 + } + ], + "cell_type": "code", + "source": [ + "k = SqExponentialKernel() ∘ ScaleTransform(1.5)" + ], + "metadata": {}, + "execution_count": 4 + }, + { + "cell_type": "markdown", + "source": [ + "LIBSVM can make use of a pre-computed kernel matrix.\n", + "KernelFunctions.jl can be used to produce that using `kernelmatrix`:" + ], + "metadata": {} + }, + { + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "LIBSVM.SVM{Int64, LIBSVM.Kernel.KERNEL}(LIBSVM.SVC, LIBSVM.Kernel.Precomputed, nothing, 100, 100, 2, [-1, 1], Int32[1, 2], Float64[], Int32[], LIBSVM.SupportVectors{Vector{Int64}, Matrix{Float64}}(23, Int32[11, 12], [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1 … 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1.0 0.8982223633317491 … 0.6360692761241019 0.27226866397259536; 0.8982223633317491 1.0 … 0.7710611517712889 0.4654568122945319; … ; 0.27226866397259536 0.4654568122945319 … 0.7536774603025823 1.0; 0.1378713016583555 0.2643436673110578 … 0.5573025470555464 0.9233874841127124], Int32[1, 2, 3, 4, 6, 7, 24, 25, 30, 46 … 53, 54, 56, 58, 72, 74, 78, 86, 89, 99], LIBSVM.SVMNode[LIBSVM.SVMNode(0, 1.0), LIBSVM.SVMNode(0, 2.0), LIBSVM.SVMNode(0, 3.0), LIBSVM.SVMNode(0, 4.0), LIBSVM.SVMNode(0, 6.0), LIBSVM.SVMNode(0, 7.0), LIBSVM.SVMNode(0, 24.0), LIBSVM.SVMNode(0, 25.0), LIBSVM.SVMNode(0, 30.0), LIBSVM.SVMNode(0, 46.0) … LIBSVM.SVMNode(0, 53.0), LIBSVM.SVMNode(0, 54.0), LIBSVM.SVMNode(0, 56.0), LIBSVM.SVMNode(0, 58.0), LIBSVM.SVMNode(0, 72.0), LIBSVM.SVMNode(0, 74.0), LIBSVM.SVMNode(0, 78.0), LIBSVM.SVMNode(0, 86.0), LIBSVM.SVMNode(0, 89.0), LIBSVM.SVMNode(0, 99.0)]), 0.0, [1.0; 1.0; … ; -1.0; -1.0;;], Float64[], Float64[], [-0.015075000482567661], 3, 0.01, 200.0, 0.001, 1.0, 0.5, 0.1, true, false)" + }, + "metadata": {}, + "execution_count": 5 + } + ], + "cell_type": "code", + "source": [ + "model = svmtrain(kernelmatrix(k, x_train), y_train; kernel=LIBSVM.Kernel.Precomputed)" + ], + "metadata": {}, + "execution_count": 5 + }, + { + "cell_type": "markdown", + "source": [ + "## Prediction\n", + "\n", + "For evaluation, we create a 100×100 2D grid based on the extent of the training data:" + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "test_range = range(floor(Int, minimum(X)), ceil(Int, maximum(X)); length=100)\n", + "x_test = ColVecs(mapreduce(collect, hcat, Iterators.product(test_range, test_range)));" + ], + "metadata": {}, + "execution_count": 6 + }, + { + "cell_type": "markdown", + "source": [ + "Again, we pass the result of KernelFunctions.jl's `kernelmatrix` to LIBSVM:" + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "y_pred, _ = svmpredict(model, kernelmatrix(k, x_train, x_test));" + ], + "metadata": {}, + "execution_count": 7 + }, + { + "cell_type": "markdown", + "source": [ + "We can see that the kernelized, non-linear classification successfully separates the two classes in the training data:" + ], + "metadata": {} + }, + { + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "Plot{Plots.GRBackend() n=3}", + "image/png": "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", + "text/html": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ], + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "metadata": {}, + "execution_count": 8 + } + ], + "cell_type": "code", + "source": [ + "plot(; lim=extrema(test_range), aspect_ratio=1)\n", + "contourf!(\n", + " test_range,\n", + " test_range,\n", + " y_pred;\n", + " levels=1,\n", + " color=cgrad(:redsblues),\n", + " alpha=0.7,\n", + " colorbar_title=\"prediction\",\n", + ")\n", + "scatter!(X1[:, 1], X1[:, 2]; color=:red, label=\"training data: class –1\")\n", + "scatter!(X2[:, 1], X2[:, 2]; color=:blue, label=\"training data: class 1\")" + ], + "metadata": {}, + "execution_count": 8 + }, + { + "cell_type": "markdown", + "source": [ + "
    \n", + "
    Package and system information
    \n", + "
    \n", + "Package information (click to expand)\n", + "
    \n",
    +    "Status `~/work/KernelFunctions.jl/KernelFunctions.jl/examples/support-vector-machine/Project.toml`\n",
    +    "  [31c24e10] Distributions v0.25.103\n",
    +    "  [ec8451be] KernelFunctions v0.10.59 `/home/runner/work/KernelFunctions.jl/KernelFunctions.jl#ec19a94`\n",
    +    "  [b1bec4e5] LIBSVM v0.8.0\n",
    +    "  [98b081ad] Literate v2.16.0\n",
    +    "  [91a5bcdd] Plots v1.39.0\n",
    +    "  [37e2e46d] LinearAlgebra\n",
    +    "
    \n", + "To reproduce this notebook's package environment, you can\n", + "\n", + "download the full Manifest.toml.\n", + "
    \n", + "
    \n", + "System information (click to expand)\n", + "
    \n",
    +    "Julia Version 1.9.4\n",
    +    "Commit 8e5136fa297 (2023-11-14 08:46 UTC)\n",
    +    "Build Info:\n",
    +    "  Official https://julialang.org/ release\n",
    +    "Platform Info:\n",
    +    "  OS: Linux (x86_64-linux-gnu)\n",
    +    "  CPU: 4 × AMD EPYC 7763 64-Core Processor\n",
    +    "  WORD_SIZE: 64\n",
    +    "  LIBM: libopenlibm\n",
    +    "  LLVM: libLLVM-14.0.6 (ORCJIT, znver3)\n",
    +    "  Threads: 1 on 4 virtual cores\n",
    +    "Environment:\n",
    +    "  JULIA_DEBUG = Documenter\n",
    +    "  JULIA_LOAD_PATH = :/home/runner/.julia/packages/JuliaGPsDocs/7M86H/src\n",
    +    "
    \n", + "
    " + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "---\n", + "\n", + "*This notebook was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).*" + ], + "metadata": {} + } + ], + "nbformat_minor": 3, + "metadata": { + "language_info": { + "file_extension": ".jl", + "mimetype": "application/julia", + "name": "julia", + "version": "1.9.4" + }, + "kernelspec": { + "name": "julia-1.9", + "display_name": "Julia 1.9.4", + "language": "julia" + } + }, + "nbformat": 4 +} diff --git a/v0.10.59/examples/train-kernel-parameters/Manifest.toml b/v0.10.59/examples/train-kernel-parameters/Manifest.toml new file mode 100644 index 000000000..2a7a5e880 --- /dev/null +++ b/v0.10.59/examples/train-kernel-parameters/Manifest.toml @@ -0,0 +1,1639 @@ +# This file is machine-generated - editing it directly is not advised + +julia_version = "1.9.4" +manifest_format = "2.0" +project_hash = "f3af2d5178fe96f25b295696ea2c040e29f49bbf" + +[[deps.AbstractFFTs]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "d92ad398961a3ed262d8bf04a1a2b8340f915fef" +uuid = "621f4979-c628-5d54-868e-fcf4e3e8185c" +version = "1.5.0" +weakdeps = ["ChainRulesCore", "Test"] + + [deps.AbstractFFTs.extensions] + AbstractFFTsChainRulesCoreExt = "ChainRulesCore" + AbstractFFTsTestExt = "Test" + +[[deps.Adapt]] +deps = ["LinearAlgebra", "Requires"] +git-tree-sha1 = "02f731463748db57cc2ebfbd9fbc9ce8280d3433" +uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" +version = "3.7.1" +weakdeps = ["StaticArrays"] + + [deps.Adapt.extensions] + AdaptStaticArraysExt = "StaticArrays" + +[[deps.ArgCheck]] +git-tree-sha1 = "a3a402a35a2f7e0b87828ccabbd5ebfbebe356b4" +uuid = "dce04be8-c92d-5529-be00-80e4d2c0e197" +version = "2.3.0" + +[[deps.ArgTools]] +uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" +version = "1.1.1" + +[[deps.Artifacts]] +uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" + +[[deps.Atomix]] +deps = ["UnsafeAtomics"] +git-tree-sha1 = "c06a868224ecba914baa6942988e2f2aade419be" +uuid = "a9b6321e-bd34-4604-b9c9-b65b8de01458" +version = "0.1.0" + +[[deps.BangBang]] +deps = ["Compat", "ConstructionBase", "InitialValues", "LinearAlgebra", "Requires", "Setfield", "Tables"] +git-tree-sha1 = "e28912ce94077686443433c2800104b061a827ed" +uuid = "198e06fe-97b7-11e9-32a5-e1d131e6ad66" +version = "0.3.39" + + [deps.BangBang.extensions] + BangBangChainRulesCoreExt = "ChainRulesCore" + BangBangDataFramesExt = "DataFrames" + BangBangStaticArraysExt = "StaticArrays" + BangBangStructArraysExt = "StructArrays" + BangBangTypedTablesExt = "TypedTables" + + [deps.BangBang.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" + StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" + StructArrays = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" + TypedTables = "9d95f2ec-7b3d-5a63-8d20-e2491e220bb9" + +[[deps.Base64]] +uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" + +[[deps.Baselet]] +git-tree-sha1 = "aebf55e6d7795e02ca500a689d326ac979aaf89e" +uuid = "9718e550-a3fa-408a-8086-8db961cd8217" +version = "0.1.1" + +[[deps.BenchmarkTools]] +deps = ["JSON", "Logging", "Printf", "Profile", "Statistics", "UUIDs"] +git-tree-sha1 = "d9a9701b899b30332bbcb3e1679c41cce81fb0e8" +uuid = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" +version = "1.3.2" + +[[deps.BitFlags]] +git-tree-sha1 = "2dc09997850d68179b69dafb58ae806167a32b1b" +uuid = "d1d4a3ce-64b1-5f1a-9ba4-7e7e69966f35" +version = "0.1.8" + +[[deps.Bzip2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "19a35467a82e236ff51bc17a3a44b69ef35185a2" +uuid = "6e34b625-4abd-537c-b88f-471c36dfa7a0" +version = "1.0.8+0" + +[[deps.CEnum]] +git-tree-sha1 = "eb4cb44a499229b3b8426dcfb5dd85333951ff90" +uuid = "fa961155-64e5-5f13-b03f-caf6b980ea82" +version = "0.4.2" + +[[deps.Cairo_jll]] +deps = ["Artifacts", "Bzip2_jll", "CompilerSupportLibraries_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "LZO_jll", "Libdl", "Pixman_jll", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"] +git-tree-sha1 = "4b859a208b2397a7a623a03449e4636bdb17bcf2" +uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a" +version = "1.16.1+1" + +[[deps.Calculus]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "f641eb0a4f00c343bbc32346e1217b86f3ce9dad" +uuid = "49dc2e85-a5d0-5ad3-a950-438e2897f1b9" +version = "0.5.1" + +[[deps.ChainRules]] +deps = ["Adapt", "ChainRulesCore", "Compat", "Distributed", "GPUArraysCore", "IrrationalConstants", "LinearAlgebra", "Random", "RealDot", "SparseArrays", "SparseInverseSubset", "Statistics", "StructArrays", "SuiteSparse"] +git-tree-sha1 = "006cc7170be3e0fa02ccac6d4164a1eee1fc8c27" +uuid = "082447d4-558c-5d27-93f4-14fc19e9eca2" +version = "1.58.0" + +[[deps.ChainRulesCore]] +deps = ["Compat", "LinearAlgebra"] +git-tree-sha1 = "e0af648f0692ec1691b5d094b8724ba1346281cf" +uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" +version = "1.18.0" +weakdeps = ["SparseArrays"] + + [deps.ChainRulesCore.extensions] + ChainRulesCoreSparseArraysExt = "SparseArrays" + +[[deps.CodecZlib]] +deps = ["TranscodingStreams", "Zlib_jll"] +git-tree-sha1 = "cd67fc487743b2f0fd4380d4cbd3a24660d0eec8" +uuid = "944b1d66-785c-5afd-91f1-9de20f533193" +version = "0.7.3" + +[[deps.ColorSchemes]] +deps = ["ColorTypes", "ColorVectorSpace", "Colors", "FixedPointNumbers", "PrecompileTools", "Random"] +git-tree-sha1 = "67c1f244b991cad9b0aa4b7540fb758c2488b129" +uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4" +version = "3.24.0" + +[[deps.ColorTypes]] +deps = ["FixedPointNumbers", "Random"] +git-tree-sha1 = "eb7f0f8307f71fac7c606984ea5fb2817275d6e4" +uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f" +version = "0.11.4" + +[[deps.ColorVectorSpace]] +deps = ["ColorTypes", "FixedPointNumbers", "LinearAlgebra", "Requires", "Statistics", "TensorCore"] +git-tree-sha1 = "a1f44953f2382ebb937d60dafbe2deea4bd23249" +uuid = "c3611d14-8923-5661-9e6a-0046d554d3a4" +version = "0.10.0" +weakdeps = ["SpecialFunctions"] + + [deps.ColorVectorSpace.extensions] + SpecialFunctionsExt = "SpecialFunctions" + +[[deps.Colors]] +deps = ["ColorTypes", "FixedPointNumbers", "Reexport"] +git-tree-sha1 = "fc08e5930ee9a4e03f84bfb5211cb54e7769758a" +uuid = "5ae59095-9a9b-59fe-a467-6f913c188581" +version = "0.12.10" + +[[deps.CommonSubexpressions]] +deps = ["MacroTools", "Test"] +git-tree-sha1 = "7b8a93dba8af7e3b42fecabf646260105ac373f7" +uuid = "bbf7d656-a473-5ed7-a52c-81e309532950" +version = "0.3.0" + +[[deps.Compat]] +deps = ["UUIDs"] +git-tree-sha1 = "8a62af3e248a8c4bad6b32cbbe663ae02275e32c" +uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" +version = "4.10.0" +weakdeps = ["Dates", "LinearAlgebra"] + + [deps.Compat.extensions] + CompatLinearAlgebraExt = "LinearAlgebra" + +[[deps.CompilerSupportLibraries_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" +version = "1.0.5+0" + +[[deps.CompositionsBase]] +git-tree-sha1 = "802bb88cd69dfd1509f6670416bd4434015693ad" +uuid = "a33af91c-f02d-484b-be07-31d278c5ca2b" +version = "0.1.2" +weakdeps = ["InverseFunctions"] + + [deps.CompositionsBase.extensions] + CompositionsBaseInverseFunctionsExt = "InverseFunctions" + +[[deps.ConcurrentUtilities]] +deps = ["Serialization", "Sockets"] +git-tree-sha1 = "8cfa272e8bdedfa88b6aefbbca7c19f1befac519" +uuid = "f0e56b4a-5159-44fe-b623-3e5288b988bb" +version = "2.3.0" + +[[deps.ConstructionBase]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "c53fc348ca4d40d7b371e71fd52251839080cbc9" +uuid = "187b0558-2788-49d3-abe0-74a17ed4e7c9" +version = "1.5.4" + + [deps.ConstructionBase.extensions] + ConstructionBaseIntervalSetsExt = "IntervalSets" + ConstructionBaseStaticArraysExt = "StaticArrays" + + [deps.ConstructionBase.weakdeps] + IntervalSets = "8197267c-284f-5f27-9208-e0e47529a953" + StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" + +[[deps.ContextVariablesX]] +deps = ["Compat", "Logging", "UUIDs"] +git-tree-sha1 = "25cc3803f1030ab855e383129dcd3dc294e322cc" +uuid = "6add18c4-b38d-439d-96f6-d6bc489c04c5" +version = "0.1.3" + +[[deps.Contour]] +git-tree-sha1 = "d05d9e7b7aedff4e5b51a029dced05cfb6125781" +uuid = "d38c429a-6771-53c6-b99e-75d170b6e991" +version = "0.6.2" + +[[deps.DataAPI]] +git-tree-sha1 = "8da84edb865b0b5b0100c0666a9bc9a0b71c553c" +uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" +version = "1.15.0" + +[[deps.DataStructures]] +deps = ["Compat", "InteractiveUtils", "OrderedCollections"] +git-tree-sha1 = "3dbd312d370723b6bb43ba9d02fc36abade4518d" +uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" +version = "0.18.15" + +[[deps.DataValueInterfaces]] +git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6" +uuid = "e2d170a0-9d28-54be-80f0-106bbe20a464" +version = "1.0.0" + +[[deps.Dates]] +deps = ["Printf"] +uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" + +[[deps.DefineSingletons]] +git-tree-sha1 = "0fba8b706d0178b4dc7fd44a96a92382c9065c2c" +uuid = "244e2a9f-e319-4986-a169-4d1fe445cd52" +version = "0.1.2" + +[[deps.DelimitedFiles]] +deps = ["Mmap"] +git-tree-sha1 = "9e2f36d3c96a820c678f2f1f1782582fcf685bae" +uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab" +version = "1.9.1" + +[[deps.DiffResults]] +deps = ["StaticArraysCore"] +git-tree-sha1 = "782dd5f4561f5d267313f23853baaaa4c52ea621" +uuid = "163ba53b-c6d8-5494-b064-1a9d43ac40c5" +version = "1.1.0" + +[[deps.DiffRules]] +deps = ["IrrationalConstants", "LogExpFunctions", "NaNMath", "Random", "SpecialFunctions"] +git-tree-sha1 = "23163d55f885173722d1e4cf0f6110cdbaf7e272" +uuid = "b552c78f-8df3-52c6-915a-8e097449b14b" +version = "1.15.1" + +[[deps.Distances]] +deps = ["LinearAlgebra", "Statistics", "StatsAPI"] +git-tree-sha1 = "5225c965635d8c21168e32a12954675e7bea1151" +uuid = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7" +version = "0.10.10" +weakdeps = ["ChainRulesCore", "SparseArrays"] + + [deps.Distances.extensions] + DistancesChainRulesCoreExt = "ChainRulesCore" + DistancesSparseArraysExt = "SparseArrays" + +[[deps.Distributed]] +deps = ["Random", "Serialization", "Sockets"] +uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" + +[[deps.Distributions]] +deps = ["FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns"] +git-tree-sha1 = "a6c00f894f24460379cb7136633cef54ac9f6f4a" +uuid = "31c24e10-a181-5473-b8eb-7969acd0382f" +version = "0.25.103" + + [deps.Distributions.extensions] + DistributionsChainRulesCoreExt = "ChainRulesCore" + DistributionsDensityInterfaceExt = "DensityInterface" + DistributionsTestExt = "Test" + + [deps.Distributions.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + DensityInterface = "b429d917-457f-4dbc-8f4c-0cc954292b1d" + Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[[deps.DocStringExtensions]] +deps = ["LibGit2"] +git-tree-sha1 = "2fb1e02f2b635d0845df5d7c167fec4dd739b00d" +uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" +version = "0.9.3" + +[[deps.Downloads]] +deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] +uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6" +version = "1.6.0" + +[[deps.DualNumbers]] +deps = ["Calculus", "NaNMath", "SpecialFunctions"] +git-tree-sha1 = "5837a837389fccf076445fce071c8ddaea35a566" +uuid = "fa6b7ba4-c1ee-5f82-b5fc-ecf0adba8f74" +version = "0.6.8" + +[[deps.EpollShim_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "8e9441ee83492030ace98f9789a654a6d0b1f643" +uuid = "2702e6a9-849d-5ed8-8c21-79e8b8f9ee43" +version = "0.0.20230411+0" + +[[deps.ExceptionUnwrapping]] +deps = ["Test"] +git-tree-sha1 = "e90caa41f5a86296e014e148ee061bd6c3edec96" +uuid = "460bff9d-24e4-43bc-9d9f-a8973cb893f4" +version = "0.1.9" + +[[deps.Expat_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "4558ab818dcceaab612d1bb8c19cee87eda2b83c" +uuid = "2e619515-83b5-522b-bb60-26c02a35a201" +version = "2.5.0+0" + +[[deps.FFMPEG]] +deps = ["FFMPEG_jll"] +git-tree-sha1 = "b57e3acbe22f8484b4b5ff66a7499717fe1a9cc8" +uuid = "c87230d0-a227-11e9-1b43-d7ebe4e7570a" +version = "0.4.1" + +[[deps.FFMPEG_jll]] +deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "JLLWrappers", "LAME_jll", "Libdl", "Ogg_jll", "OpenSSL_jll", "Opus_jll", "PCRE2_jll", "Zlib_jll", "libaom_jll", "libass_jll", "libfdk_aac_jll", "libvorbis_jll", "x264_jll", "x265_jll"] +git-tree-sha1 = "466d45dc38e15794ec7d5d63ec03d776a9aff36e" +uuid = "b22a6f82-2f65-5046-a5b2-351ab43fb4e5" +version = "4.4.4+1" + +[[deps.FLoops]] +deps = ["BangBang", "Compat", "FLoopsBase", "InitialValues", "JuliaVariables", "MLStyle", "Serialization", "Setfield", "Transducers"] +git-tree-sha1 = "ffb97765602e3cbe59a0589d237bf07f245a8576" +uuid = "cc61a311-1640-44b5-9fba-1b764f453329" +version = "0.2.1" + +[[deps.FLoopsBase]] +deps = ["ContextVariablesX"] +git-tree-sha1 = "656f7a6859be8673bf1f35da5670246b923964f7" +uuid = "b9860ae5-e623-471e-878b-f6a53c775ea6" +version = "0.1.1" + +[[deps.FileWatching]] +uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" + +[[deps.FillArrays]] +deps = ["LinearAlgebra", "Random"] +git-tree-sha1 = "35f0c0f345bff2c6d636f95fdb136323b5a796ef" +uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" +version = "1.7.0" +weakdeps = ["SparseArrays", "Statistics"] + + [deps.FillArrays.extensions] + FillArraysSparseArraysExt = "SparseArrays" + FillArraysStatisticsExt = "Statistics" + +[[deps.FixedPointNumbers]] +deps = ["Statistics"] +git-tree-sha1 = "335bfdceacc84c5cdf16aadc768aa5ddfc5383cc" +uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93" +version = "0.8.4" + +[[deps.Flux]] +deps = ["Adapt", "ChainRulesCore", "Functors", "LinearAlgebra", "MLUtils", "MacroTools", "NNlib", "OneHotArrays", "Optimisers", "Preferences", "ProgressLogging", "Random", "Reexport", "SparseArrays", "SpecialFunctions", "Statistics", "Zygote"] +git-tree-sha1 = "b97c3fc4f3628b8835d83789b09382961a254da4" +uuid = "587475ba-b771-5e3f-ad9e-33799f191a9c" +version = "0.14.6" + + [deps.Flux.extensions] + FluxAMDGPUExt = "AMDGPU" + FluxCUDAExt = "CUDA" + FluxCUDAcuDNNExt = ["CUDA", "cuDNN"] + FluxMetalExt = "Metal" + + [deps.Flux.weakdeps] + AMDGPU = "21141c5a-9bdb-4563-92ae-f87d6854732e" + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + Metal = "dde4c033-4e86-420c-a63e-0dd931031962" + cuDNN = "02a925ec-e4fe-4b08-9a7e-0d78e3d38ccd" + +[[deps.Fontconfig_jll]] +deps = ["Artifacts", "Bzip2_jll", "Expat_jll", "FreeType2_jll", "JLLWrappers", "Libdl", "Libuuid_jll", "Pkg", "Zlib_jll"] +git-tree-sha1 = "21efd19106a55620a188615da6d3d06cd7f6ee03" +uuid = "a3f928ae-7b40-5064-980b-68af3947d34b" +version = "2.13.93+0" + +[[deps.Formatting]] +deps = ["Printf"] +git-tree-sha1 = "8339d61043228fdd3eb658d86c926cb282ae72a8" +uuid = "59287772-0a20-5a39-b81b-1366585eb4c0" +version = "0.4.2" + +[[deps.ForwardDiff]] +deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "LinearAlgebra", "LogExpFunctions", "NaNMath", "Preferences", "Printf", "Random", "SpecialFunctions"] +git-tree-sha1 = "cf0fe81336da9fb90944683b8c41984b08793dad" +uuid = "f6369f11-7733-5829-9624-2563aa707210" +version = "0.10.36" +weakdeps = ["StaticArrays"] + + [deps.ForwardDiff.extensions] + ForwardDiffStaticArraysExt = "StaticArrays" + +[[deps.FreeType2_jll]] +deps = ["Artifacts", "Bzip2_jll", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "d8db6a5a2fe1381c1ea4ef2cab7c69c2de7f9ea0" +uuid = "d7e528f0-a631-5988-bf34-fe36492bcfd7" +version = "2.13.1+0" + +[[deps.FriBidi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "aa31987c2ba8704e23c6c8ba8a4f769d5d7e4f91" +uuid = "559328eb-81f9-559d-9380-de523a88c83c" +version = "1.0.10+0" + +[[deps.Functors]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "9a68d75d466ccc1218d0552a8e1631151c569545" +uuid = "d9f16b24-f501-4c13-a1f2-28368ffc5196" +version = "0.4.5" + +[[deps.Future]] +deps = ["Random"] +uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820" + +[[deps.GLFW_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libglvnd_jll", "Pkg", "Xorg_libXcursor_jll", "Xorg_libXi_jll", "Xorg_libXinerama_jll", "Xorg_libXrandr_jll"] +git-tree-sha1 = "d972031d28c8c8d9d7b41a536ad7bb0c2579caca" +uuid = "0656b61e-2033-5cc2-a64a-77c0f6c09b89" +version = "3.3.8+0" + +[[deps.GPUArrays]] +deps = ["Adapt", "GPUArraysCore", "LLVM", "LinearAlgebra", "Printf", "Random", "Reexport", "Serialization", "Statistics"] +git-tree-sha1 = "85d7fb51afb3def5dcb85ad31c3707795c8bccc1" +uuid = "0c68f7d7-f131-5f86-a1c3-88cf8149b2d7" +version = "9.1.0" + +[[deps.GPUArraysCore]] +deps = ["Adapt"] +git-tree-sha1 = "2d6ca471a6c7b536127afccfa7564b5b39227fe0" +uuid = "46192b85-c4d5-4398-a991-12ede77f4527" +version = "0.1.5" + +[[deps.GR]] +deps = ["Artifacts", "Base64", "DelimitedFiles", "Downloads", "GR_jll", "HTTP", "JSON", "Libdl", "LinearAlgebra", "Pkg", "Preferences", "Printf", "Random", "Serialization", "Sockets", "TOML", "Tar", "Test", "UUIDs", "p7zip_jll"] +git-tree-sha1 = "27442171f28c952804dede8ff72828a96f2bfc1f" +uuid = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71" +version = "0.72.10" + +[[deps.GR_jll]] +deps = ["Artifacts", "Bzip2_jll", "Cairo_jll", "FFMPEG_jll", "Fontconfig_jll", "FreeType2_jll", "GLFW_jll", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Libtiff_jll", "Pixman_jll", "Qt6Base_jll", "Zlib_jll", "libpng_jll"] +git-tree-sha1 = "025d171a2847f616becc0f84c8dc62fe18f0f6dd" +uuid = "d2c73de3-f751-5644-a686-071e5b155ba9" +version = "0.72.10+0" + +[[deps.Gettext_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "XML2_jll"] +git-tree-sha1 = "9b02998aba7bf074d14de89f9d37ca24a1a0b046" +uuid = "78b55507-aeef-58d4-861c-77aaff3498b1" +version = "0.21.0+0" + +[[deps.Glib_jll]] +deps = ["Artifacts", "Gettext_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE2_jll", "Zlib_jll"] +git-tree-sha1 = "e94c92c7bf4819685eb80186d51c43e71d4afa17" +uuid = "7746bdde-850d-59dc-9ae8-88ece973131d" +version = "2.76.5+0" + +[[deps.Graphite2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "344bf40dcab1073aca04aa0df4fb092f920e4011" +uuid = "3b182d85-2403-5c21-9c21-1e1f0cc25472" +version = "1.3.14+0" + +[[deps.Grisu]] +git-tree-sha1 = "53bb909d1151e57e2484c3d1b53e19552b887fb2" +uuid = "42e2da0e-8278-4e71-bc24-59509adca0fe" +version = "1.0.2" + +[[deps.HTTP]] +deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] +git-tree-sha1 = "5eab648309e2e060198b45820af1a37182de3cce" +uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" +version = "1.10.0" + +[[deps.HarfBuzz_jll]] +deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg"] +git-tree-sha1 = "129acf094d168394e80ee1dc4bc06ec835e510a3" +uuid = "2e76f6c2-a576-52d4-95c1-20adfe4de566" +version = "2.8.1+1" + +[[deps.HypergeometricFunctions]] +deps = ["DualNumbers", "LinearAlgebra", "OpenLibm_jll", "SpecialFunctions"] +git-tree-sha1 = "f218fe3736ddf977e0e772bc9a586b2383da2685" +uuid = "34004b35-14d8-5ef3-9330-4cdb6864b03a" +version = "0.3.23" + +[[deps.IOCapture]] +deps = ["Logging", "Random"] +git-tree-sha1 = "d75853a0bdbfb1ac815478bacd89cd27b550ace6" +uuid = "b5f81e59-6552-4d32-b1f0-c071b021bf89" +version = "0.2.3" + +[[deps.IRTools]] +deps = ["InteractiveUtils", "MacroTools", "Test"] +git-tree-sha1 = "8aa91235360659ca7560db43a7d57541120aa31d" +uuid = "7869d1d1-7146-5819-86e3-90919afe41df" +version = "0.4.11" + +[[deps.InitialValues]] +git-tree-sha1 = "4da0f88e9a39111c2fa3add390ab15f3a44f3ca3" +uuid = "22cec73e-a1b8-11e9-2c92-598750a2cf9c" +version = "0.3.1" + +[[deps.InteractiveUtils]] +deps = ["Markdown"] +uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" + +[[deps.InverseFunctions]] +deps = ["Test"] +git-tree-sha1 = "68772f49f54b479fa88ace904f6127f0a3bb2e46" +uuid = "3587e190-3f89-42d0-90ee-14403ec27112" +version = "0.1.12" + +[[deps.IrrationalConstants]] +git-tree-sha1 = "630b497eafcc20001bba38a4651b327dcfc491d2" +uuid = "92d709cd-6900-40b7-9082-c6be49f344b6" +version = "0.2.2" + +[[deps.IterTools]] +git-tree-sha1 = "4ced6667f9974fc5c5943fa5e2ef1ca43ea9e450" +uuid = "c8e1da08-722c-5040-9ed9-7db0dc04731e" +version = "1.8.0" + +[[deps.IteratorInterfaceExtensions]] +git-tree-sha1 = "a3f24677c21f5bbe9d2a714f95dcd58337fb2856" +uuid = "82899510-4779-5014-852e-03e436cf321d" +version = "1.0.0" + +[[deps.JLFzf]] +deps = ["Pipe", "REPL", "Random", "fzf_jll"] +git-tree-sha1 = "9fb0b890adab1c0a4a475d4210d51f228bfc250d" +uuid = "1019f520-868f-41f5-a6de-eb00f4b6a39c" +version = "0.1.6" + +[[deps.JLLWrappers]] +deps = ["Artifacts", "Preferences"] +git-tree-sha1 = "7e5d6779a1e09a36db2a7b6cff50942a0a7d0fca" +uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" +version = "1.5.0" + +[[deps.JSON]] +deps = ["Dates", "Mmap", "Parsers", "Unicode"] +git-tree-sha1 = "31e996f0a15c7b280ba9f76636b3ff9e2ae58c9a" +uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" +version = "0.21.4" + +[[deps.JpegTurbo_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "6f2675ef130a300a112286de91973805fcc5ffbc" +uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" +version = "2.1.91+0" + +[[deps.JuliaVariables]] +deps = ["MLStyle", "NameResolution"] +git-tree-sha1 = "49fb3cb53362ddadb4415e9b73926d6b40709e70" +uuid = "b14d175d-62b4-44ba-8fb7-3064adc8c3ec" +version = "0.2.4" + +[[deps.KernelAbstractions]] +deps = ["Adapt", "Atomix", "InteractiveUtils", "LinearAlgebra", "MacroTools", "PrecompileTools", "Requires", "SparseArrays", "StaticArrays", "UUIDs", "UnsafeAtomics", "UnsafeAtomicsLLVM"] +git-tree-sha1 = "b0737cbbe1c8da6f1139d1c23e35e7cea129c0af" +uuid = "63c18a36-062a-441e-b654-da1e3ab1ce7c" +version = "0.9.13" + + [deps.KernelAbstractions.extensions] + EnzymeExt = "EnzymeCore" + + [deps.KernelAbstractions.weakdeps] + EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869" + +[[deps.KernelFunctions]] +deps = ["ChainRulesCore", "Compat", "CompositionsBase", "Distances", "FillArrays", "Functors", "IrrationalConstants", "LinearAlgebra", "LogExpFunctions", "Random", "Requires", "SpecialFunctions", "Statistics", "StatsBase", "TensorCore", "Test", "ZygoteRules"] +git-tree-sha1 = "2e9c8eb5f2acd58fe7b738affe2ca24da171c904" +repo-rev = "ec19a948f0d43543be1edf24a5ebac6fe3195f5a" +repo-url = "/home/runner/work/KernelFunctions.jl/KernelFunctions.jl" +uuid = "ec8451be-7e33-11e9-00cf-bbf324bd1392" +version = "0.10.59" + +[[deps.LAME_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "f6250b16881adf048549549fba48b1161acdac8c" +uuid = "c1c5ebd0-6772-5130-a774-d5fcae4a789d" +version = "3.100.1+0" + +[[deps.LERC_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "bf36f528eec6634efc60d7ec062008f171071434" +uuid = "88015f11-f218-50d7-93a8-a6af411a945d" +version = "3.0.0+1" + +[[deps.LLVM]] +deps = ["CEnum", "LLVMExtra_jll", "Libdl", "Preferences", "Printf", "Requires", "Unicode"] +git-tree-sha1 = "c879e47398a7ab671c782e02b51a4456794a7fa3" +uuid = "929cbde3-209d-540e-8aea-75f648917ca0" +version = "6.4.0" + + [deps.LLVM.extensions] + BFloat16sExt = "BFloat16s" + + [deps.LLVM.weakdeps] + BFloat16s = "ab4f0b2a-ad5b-11e8-123f-65d77653426b" + +[[deps.LLVMExtra_jll]] +deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] +git-tree-sha1 = "98eaee04d96d973e79c25d49167668c5c8fb50e2" +uuid = "dad2f222-ce93-54a1-a47d-0025e8a3acab" +version = "0.0.27+1" + +[[deps.LLVMOpenMP_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "f689897ccbe049adb19a065c495e75f372ecd42b" +uuid = "1d63c593-3942-5779-bab2-d838dc0a180e" +version = "15.0.4+0" + +[[deps.LZO_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "e5b909bcf985c5e2605737d2ce278ed791b89be6" +uuid = "dd4b983a-f0e5-5f8d-a1b7-129d4a5fb1ac" +version = "2.10.1+0" + +[[deps.LaTeXStrings]] +git-tree-sha1 = "50901ebc375ed41dbf8058da26f9de442febbbec" +uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" +version = "1.3.1" + +[[deps.Latexify]] +deps = ["Formatting", "InteractiveUtils", "LaTeXStrings", "MacroTools", "Markdown", "OrderedCollections", "Printf", "Requires"] +git-tree-sha1 = "f428ae552340899a935973270b8d98e5a31c49fe" +uuid = "23fbe1c1-3f47-55db-b15f-69d7ec21a316" +version = "0.16.1" + + [deps.Latexify.extensions] + DataFramesExt = "DataFrames" + SymEngineExt = "SymEngine" + + [deps.Latexify.weakdeps] + DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" + SymEngine = "123dc426-2d89-5057-bbad-38513e3affd8" + +[[deps.LazyArtifacts]] +deps = ["Artifacts", "Pkg"] +uuid = "4af54fe1-eca0-43a8-85a7-787d91b784e3" + +[[deps.LibCURL]] +deps = ["LibCURL_jll", "MozillaCACerts_jll"] +uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21" +version = "0.6.4" + +[[deps.LibCURL_jll]] +deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"] +uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0" +version = "8.4.0+0" + +[[deps.LibGit2]] +deps = ["Base64", "NetworkOptions", "Printf", "SHA"] +uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" + +[[deps.LibSSH2_jll]] +deps = ["Artifacts", "Libdl", "MbedTLS_jll"] +uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8" +version = "1.11.0+1" + +[[deps.Libdl]] +uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" + +[[deps.Libffi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "0b4a5d71f3e5200a7dff793393e09dfc2d874290" +uuid = "e9f186c6-92d2-5b65-8a66-fee21dc1b490" +version = "3.2.2+1" + +[[deps.Libgcrypt_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgpg_error_jll", "Pkg"] +git-tree-sha1 = "64613c82a59c120435c067c2b809fc61cf5166ae" +uuid = "d4300ac3-e22c-5743-9152-c294e39db1e4" +version = "1.8.7+0" + +[[deps.Libglvnd_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll", "Xorg_libXext_jll"] +git-tree-sha1 = "6f73d1dd803986947b2c750138528a999a6c7733" +uuid = "7e76a0d4-f3c7-5321-8279-8d96eeed0f29" +version = "1.6.0+0" + +[[deps.Libgpg_error_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "c333716e46366857753e273ce6a69ee0945a6db9" +uuid = "7add5ba3-2f88-524e-9cd5-f83b8a55f7b8" +version = "1.42.0+0" + +[[deps.Libiconv_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "f9557a255370125b405568f9767d6d195822a175" +uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531" +version = "1.17.0+0" + +[[deps.Libmount_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "9c30530bf0effd46e15e0fdcf2b8636e78cbbd73" +uuid = "4b2f31a3-9ecc-558c-b454-b3730dcb73e9" +version = "2.35.0+0" + +[[deps.Libtiff_jll]] +deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "LERC_jll", "Libdl", "XZ_jll", "Zlib_jll", "Zstd_jll"] +git-tree-sha1 = "2da088d113af58221c52828a80378e16be7d037a" +uuid = "89763e89-9b03-5906-acba-b20f662cd828" +version = "4.5.1+1" + +[[deps.Libuuid_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "7f3efec06033682db852f8b3bc3c1d2b0a0ab066" +uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700" +version = "2.36.0+0" + +[[deps.LinearAlgebra]] +deps = ["Libdl", "OpenBLAS_jll", "libblastrampoline_jll"] +uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" + +[[deps.Literate]] +deps = ["Base64", "IOCapture", "JSON", "REPL"] +git-tree-sha1 = "7cf4b8ca67b6a86a2ad7526bfe514ecd00d944f9" +uuid = "98b081ad-f1c9-55d3-8b20-4c87d4299306" +version = "2.16.0" + +[[deps.LogExpFunctions]] +deps = ["DocStringExtensions", "IrrationalConstants", "LinearAlgebra"] +git-tree-sha1 = "7d6dd4e9212aebaeed356de34ccf262a3cd415aa" +uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688" +version = "0.3.26" + + [deps.LogExpFunctions.extensions] + LogExpFunctionsChainRulesCoreExt = "ChainRulesCore" + LogExpFunctionsChangesOfVariablesExt = "ChangesOfVariables" + LogExpFunctionsInverseFunctionsExt = "InverseFunctions" + + [deps.LogExpFunctions.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + ChangesOfVariables = "9e997f8a-9a97-42d5-a9f1-ce6bfc15e2c0" + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.Logging]] +uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" + +[[deps.LoggingExtras]] +deps = ["Dates", "Logging"] +git-tree-sha1 = "c1dd6d7978c12545b4179fb6153b9250c96b0075" +uuid = "e6f89c97-d47a-5376-807f-9c37f3926c36" +version = "1.0.3" + +[[deps.MLStyle]] +git-tree-sha1 = "bc38dff0548128765760c79eb7388a4b37fae2c8" +uuid = "d8e11817-5142-5d16-987a-aa16d5891078" +version = "0.4.17" + +[[deps.MLUtils]] +deps = ["ChainRulesCore", "Compat", "DataAPI", "DelimitedFiles", "FLoops", "NNlib", "Random", "ShowCases", "SimpleTraits", "Statistics", "StatsBase", "Tables", "Transducers"] +git-tree-sha1 = "3504cdb8c2bc05bde4d4b09a81b01df88fcbbba0" +uuid = "f1d291b0-491e-4a28-83b9-f70985020b54" +version = "0.4.3" + +[[deps.MacroTools]] +deps = ["Markdown", "Random"] +git-tree-sha1 = "9ee1618cbf5240e6d4e0371d6f24065083f60c48" +uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" +version = "0.5.11" + +[[deps.Markdown]] +deps = ["Base64"] +uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" + +[[deps.MbedTLS]] +deps = ["Dates", "MbedTLS_jll", "MozillaCACerts_jll", "NetworkOptions", "Random", "Sockets"] +git-tree-sha1 = "f512dc13e64e96f703fd92ce617755ee6b5adf0f" +uuid = "739be429-bea8-5141-9913-cc70e7f3736d" +version = "1.1.8" + +[[deps.MbedTLS_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" +version = "2.28.2+0" + +[[deps.Measures]] +git-tree-sha1 = "c13304c81eec1ed3af7fc20e75fb6b26092a1102" +uuid = "442fdcdd-2543-5da2-b0f3-8c86c306513e" +version = "0.3.2" + +[[deps.MicroCollections]] +deps = ["BangBang", "InitialValues", "Setfield"] +git-tree-sha1 = "629afd7d10dbc6935ec59b32daeb33bc4460a42e" +uuid = "128add7d-3638-4c79-886c-908ea0c25c34" +version = "0.1.4" + +[[deps.Missings]] +deps = ["DataAPI"] +git-tree-sha1 = "f66bdc5de519e8f8ae43bdc598782d35a25b1272" +uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28" +version = "1.1.0" + +[[deps.Mmap]] +uuid = "a63ad114-7e13-5084-954f-fe012c677804" + +[[deps.MozillaCACerts_jll]] +uuid = "14a3606d-f60d-562e-9121-12d972cd8159" +version = "2022.10.11" + +[[deps.NNlib]] +deps = ["Adapt", "Atomix", "ChainRulesCore", "GPUArraysCore", "KernelAbstractions", "LinearAlgebra", "Pkg", "Random", "Requires", "Statistics"] +git-tree-sha1 = "3bc568de99214f72a76c7773ade218819afcc36e" +uuid = "872c559c-99b0-510c-b3b7-b6c96a88d5cd" +version = "0.9.7" + + [deps.NNlib.extensions] + NNlibAMDGPUExt = "AMDGPU" + NNlibCUDACUDNNExt = ["CUDA", "cuDNN"] + NNlibCUDAExt = "CUDA" + NNlibEnzymeCoreExt = "EnzymeCore" + + [deps.NNlib.weakdeps] + AMDGPU = "21141c5a-9bdb-4563-92ae-f87d6854732e" + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869" + cuDNN = "02a925ec-e4fe-4b08-9a7e-0d78e3d38ccd" + +[[deps.NaNMath]] +deps = ["OpenLibm_jll"] +git-tree-sha1 = "0877504529a3e5c3343c6f8b4c0381e57e4387e4" +uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" +version = "1.0.2" + +[[deps.NameResolution]] +deps = ["PrettyPrint"] +git-tree-sha1 = "1a0fa0e9613f46c9b8c11eee38ebb4f590013c5e" +uuid = "71a1bf82-56d0-4bbc-8a3c-48b961074391" +version = "0.1.5" + +[[deps.NetworkOptions]] +uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" +version = "1.2.0" + +[[deps.Ogg_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "887579a3eb005446d514ab7aeac5d1d027658b8f" +uuid = "e7412a2a-1a6e-54c0-be00-318e2571c051" +version = "1.3.5+1" + +[[deps.OneHotArrays]] +deps = ["Adapt", "ChainRulesCore", "Compat", "GPUArraysCore", "LinearAlgebra", "NNlib"] +git-tree-sha1 = "5e4029759e8699ec12ebdf8721e51a659443403c" +uuid = "0b1bfda6-eb8a-41d2-88d8-f5af5cad476f" +version = "0.2.4" + +[[deps.OpenBLAS_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] +uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" +version = "0.3.21+4" + +[[deps.OpenLibm_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "05823500-19ac-5b8b-9628-191a04bc5112" +version = "0.8.1+0" + +[[deps.OpenSSL]] +deps = ["BitFlags", "Dates", "MozillaCACerts_jll", "OpenSSL_jll", "Sockets"] +git-tree-sha1 = "51901a49222b09e3743c65b8847687ae5fc78eb2" +uuid = "4d8831e6-92b7-49fb-bdf8-b643e874388c" +version = "1.4.1" + +[[deps.OpenSSL_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "cc6e1927ac521b659af340e0ca45828a3ffc748f" +uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" +version = "3.0.12+0" + +[[deps.OpenSpecFun_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "13652491f6856acfd2db29360e1bbcd4565d04f1" +uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" +version = "0.5.5+0" + +[[deps.Optimisers]] +deps = ["ChainRulesCore", "Functors", "LinearAlgebra", "Random", "Statistics"] +git-tree-sha1 = "34205b1204cc83c43cd9cfe53ffbd3b310f6e8c5" +uuid = "3bd65402-5787-11e9-1adc-39752487f4e2" +version = "0.3.1" + +[[deps.Opus_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "51a08fb14ec28da2ec7a927c4337e4332c2a4720" +uuid = "91d4177d-7536-5919-b921-800302f37372" +version = "1.3.2+0" + +[[deps.OrderedCollections]] +git-tree-sha1 = "2e73fe17cac3c62ad1aebe70d44c963c3cfdc3e3" +uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" +version = "1.6.2" + +[[deps.PCRE2_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "efcefdf7-47ab-520b-bdef-62a2eaa19f15" +version = "10.42.0+0" + +[[deps.PDMats]] +deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] +git-tree-sha1 = "f6f85a2edb9c356b829934ad3caed2ad0ebbfc99" +uuid = "90014a1f-27ba-587c-ab20-58faa44d9150" +version = "0.11.29" + +[[deps.ParameterHandling]] +deps = ["ChainRulesCore", "Compat", "InverseFunctions", "IterTools", "LinearAlgebra", "LogExpFunctions", "SparseArrays", "Test"] +git-tree-sha1 = "d2a5316cb09c254a51faf96dc60c5a5f7a23ef53" +uuid = "2412ca09-6db7-441c-8e3a-88d5709968c5" +version = "0.4.7" + +[[deps.Parsers]] +deps = ["Dates", "PrecompileTools", "UUIDs"] +git-tree-sha1 = "a935806434c9d4c506ba941871b327b96d41f2bf" +uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" +version = "2.8.0" + +[[deps.Pipe]] +git-tree-sha1 = "6842804e7867b115ca9de748a0cf6b364523c16d" +uuid = "b98c9c47-44ae-5843-9183-064241ee97a0" +version = "1.3.0" + +[[deps.Pixman_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LLVMOpenMP_jll", "Libdl"] +git-tree-sha1 = "64779bc4c9784fee475689a1752ef4d5747c5e87" +uuid = "30392449-352a-5448-841d-b1acce4e97dc" +version = "0.42.2+0" + +[[deps.Pkg]] +deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"] +uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" +version = "1.9.2" + +[[deps.PlotThemes]] +deps = ["PlotUtils", "Statistics"] +git-tree-sha1 = "1f03a2d339f42dca4a4da149c7e15e9b896ad899" +uuid = "ccf2f8ad-2431-5c83-bf29-c5338b663b6a" +version = "3.1.0" + +[[deps.PlotUtils]] +deps = ["ColorSchemes", "Colors", "Dates", "PrecompileTools", "Printf", "Random", "Reexport", "Statistics"] +git-tree-sha1 = "f92e1315dadf8c46561fb9396e525f7200cdc227" +uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" +version = "1.3.5" + +[[deps.Plots]] +deps = ["Base64", "Contour", "Dates", "Downloads", "FFMPEG", "FixedPointNumbers", "GR", "JLFzf", "JSON", "LaTeXStrings", "Latexify", "LinearAlgebra", "Measures", "NaNMath", "Pkg", "PlotThemes", "PlotUtils", "PrecompileTools", "Preferences", "Printf", "REPL", "Random", "RecipesBase", "RecipesPipeline", "Reexport", "RelocatableFolders", "Requires", "Scratch", "Showoff", "SparseArrays", "Statistics", "StatsBase", "UUIDs", "UnicodeFun", "UnitfulLatexify", "Unzip"] +git-tree-sha1 = "ccee59c6e48e6f2edf8a5b64dc817b6729f99eb5" +uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" +version = "1.39.0" + + [deps.Plots.extensions] + FileIOExt = "FileIO" + GeometryBasicsExt = "GeometryBasics" + IJuliaExt = "IJulia" + ImageInTerminalExt = "ImageInTerminal" + UnitfulExt = "Unitful" + + [deps.Plots.weakdeps] + FileIO = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" + GeometryBasics = "5c1252a2-5f33-56bf-86c9-59e7332b4326" + IJulia = "7073ff75-c697-5162-941a-fcdaad2a7d2a" + ImageInTerminal = "d8c32880-2388-543b-8c61-d9f865259254" + Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" + +[[deps.PrecompileTools]] +deps = ["Preferences"] +git-tree-sha1 = "03b4c25b43cb84cee5c90aa9b5ea0a78fd848d2f" +uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a" +version = "1.2.0" + +[[deps.Preferences]] +deps = ["TOML"] +git-tree-sha1 = "00805cd429dcb4870060ff49ef443486c262e38e" +uuid = "21216c6a-2e73-6563-6e65-726566657250" +version = "1.4.1" + +[[deps.PrettyPrint]] +git-tree-sha1 = "632eb4abab3449ab30c5e1afaa874f0b98b586e4" +uuid = "8162dcfd-2161-5ef2-ae6c-7681170c5f98" +version = "0.2.0" + +[[deps.Printf]] +deps = ["Unicode"] +uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" + +[[deps.Profile]] +deps = ["Printf"] +uuid = "9abbd945-dff8-562f-b5e8-e1ebf5ef1b79" + +[[deps.ProgressLogging]] +deps = ["Logging", "SHA", "UUIDs"] +git-tree-sha1 = "80d919dee55b9c50e8d9e2da5eeafff3fe58b539" +uuid = "33c8b6b6-d38a-422a-b730-caa89a2f386c" +version = "0.1.4" + +[[deps.Qt6Base_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Fontconfig_jll", "Glib_jll", "JLLWrappers", "Libdl", "Libglvnd_jll", "OpenSSL_jll", "Vulkan_Loader_jll", "Xorg_libSM_jll", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Xorg_libxcb_jll", "Xorg_xcb_util_cursor_jll", "Xorg_xcb_util_image_jll", "Xorg_xcb_util_keysyms_jll", "Xorg_xcb_util_renderutil_jll", "Xorg_xcb_util_wm_jll", "Zlib_jll", "libinput_jll", "xkbcommon_jll"] +git-tree-sha1 = "37b7bb7aabf9a085e0044307e1717436117f2b3b" +uuid = "c0090381-4147-56d7-9ebc-da0b1113ec56" +version = "6.5.3+1" + +[[deps.QuadGK]] +deps = ["DataStructures", "LinearAlgebra"] +git-tree-sha1 = "9ebcd48c498668c7fa0e97a9cae873fbee7bfee1" +uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" +version = "2.9.1" + +[[deps.REPL]] +deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] +uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" + +[[deps.Random]] +deps = ["SHA", "Serialization"] +uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" + +[[deps.RealDot]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "9f0a1b71baaf7650f4fa8a1d168c7fb6ee41f0c9" +uuid = "c1ae055f-0cd5-4b69-90a6-9a35b1a98df9" +version = "0.1.0" + +[[deps.RecipesBase]] +deps = ["PrecompileTools"] +git-tree-sha1 = "5c3d09cc4f31f5fc6af001c250bf1278733100ff" +uuid = "3cdcf5f2-1ef4-517c-9805-6587b60abb01" +version = "1.3.4" + +[[deps.RecipesPipeline]] +deps = ["Dates", "NaNMath", "PlotUtils", "PrecompileTools", "RecipesBase"] +git-tree-sha1 = "45cf9fd0ca5839d06ef333c8201714e888486342" +uuid = "01d81517-befc-4cb6-b9ec-a95719d0359c" +version = "0.6.12" + +[[deps.Reexport]] +git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b" +uuid = "189a3867-3050-52da-a836-e630ba90ab69" +version = "1.2.2" + +[[deps.RelocatableFolders]] +deps = ["SHA", "Scratch"] +git-tree-sha1 = "ffdaf70d81cf6ff22c2b6e733c900c3321cab864" +uuid = "05181044-ff0b-4ac5-8273-598c1e38db00" +version = "1.0.1" + +[[deps.Requires]] +deps = ["UUIDs"] +git-tree-sha1 = "838a3a4188e2ded87a4f9f184b4b0d78a1e91cb7" +uuid = "ae029012-a4dd-5104-9daa-d747884805df" +version = "1.3.0" + +[[deps.Rmath]] +deps = ["Random", "Rmath_jll"] +git-tree-sha1 = "f65dcb5fa46aee0cf9ed6274ccbd597adc49aa7b" +uuid = "79098fc4-a85e-5d69-aa6a-4863f24498fa" +version = "0.7.1" + +[[deps.Rmath_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "6ed52fdd3382cf21947b15e8870ac0ddbff736da" +uuid = "f50d1b31-88e8-58de-be2c-1cc44531875f" +version = "0.4.0+0" + +[[deps.SHA]] +uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" +version = "0.7.0" + +[[deps.Scratch]] +deps = ["Dates"] +git-tree-sha1 = "3bac05bc7e74a75fd9cba4295cde4045d9fe2386" +uuid = "6c6a2e73-6563-6170-7368-637461726353" +version = "1.2.1" + +[[deps.Serialization]] +uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" + +[[deps.Setfield]] +deps = ["ConstructionBase", "Future", "MacroTools", "StaticArraysCore"] +git-tree-sha1 = "e2cc6d8c88613c05e1defb55170bf5ff211fbeac" +uuid = "efcf1570-3423-57d1-acb7-fd33fddbac46" +version = "1.1.1" + +[[deps.ShowCases]] +git-tree-sha1 = "7f534ad62ab2bd48591bdeac81994ea8c445e4a5" +uuid = "605ecd9f-84a6-4c9e-81e2-4798472b76a3" +version = "0.1.0" + +[[deps.Showoff]] +deps = ["Dates", "Grisu"] +git-tree-sha1 = "91eddf657aca81df9ae6ceb20b959ae5653ad1de" +uuid = "992d4aef-0814-514b-bc4d-f2e9a6c4116f" +version = "1.0.3" + +[[deps.SimpleBufferStream]] +git-tree-sha1 = "874e8867b33a00e784c8a7e4b60afe9e037b74e1" +uuid = "777ac1f9-54b0-4bf8-805c-2214025038e7" +version = "1.1.0" + +[[deps.SimpleTraits]] +deps = ["InteractiveUtils", "MacroTools"] +git-tree-sha1 = "5d7e3f4e11935503d3ecaf7186eac40602e7d231" +uuid = "699a6c99-e7fa-54fc-8d76-47d257e15c1d" +version = "0.9.4" + +[[deps.Sockets]] +uuid = "6462fe0b-24de-5631-8697-dd941f90decc" + +[[deps.SortingAlgorithms]] +deps = ["DataStructures"] +git-tree-sha1 = "5165dfb9fd131cf0c6957a3a7605dede376e7b63" +uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c" +version = "1.2.0" + +[[deps.SparseArrays]] +deps = ["Libdl", "LinearAlgebra", "Random", "Serialization", "SuiteSparse_jll"] +uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" + +[[deps.SparseInverseSubset]] +deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] +git-tree-sha1 = "91402087fd5d13b2d97e3ef29bbdf9d7859e678a" +uuid = "dc90abb0-5640-4711-901d-7e5b23a2fada" +version = "0.1.1" + +[[deps.SpecialFunctions]] +deps = ["IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] +git-tree-sha1 = "e2cfc4012a19088254b3950b85c3c1d8882d864d" +uuid = "276daf66-3868-5448-9aa4-cd146d93841b" +version = "2.3.1" +weakdeps = ["ChainRulesCore"] + + [deps.SpecialFunctions.extensions] + SpecialFunctionsChainRulesCoreExt = "ChainRulesCore" + +[[deps.SplittablesBase]] +deps = ["Setfield", "Test"] +git-tree-sha1 = "e08a62abc517eb79667d0a29dc08a3b589516bb5" +uuid = "171d559e-b47b-412a-8079-5efa626c420e" +version = "0.1.15" + +[[deps.StaticArrays]] +deps = ["LinearAlgebra", "PrecompileTools", "Random", "StaticArraysCore"] +git-tree-sha1 = "5ef59aea6f18c25168842bded46b16662141ab87" +uuid = "90137ffa-7385-5640-81b9-e52037218182" +version = "1.7.0" +weakdeps = ["Statistics"] + + [deps.StaticArrays.extensions] + StaticArraysStatisticsExt = "Statistics" + +[[deps.StaticArraysCore]] +git-tree-sha1 = "36b3d696ce6366023a0ea192b4cd442268995a0d" +uuid = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" +version = "1.4.2" + +[[deps.Statistics]] +deps = ["LinearAlgebra", "SparseArrays"] +uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" +version = "1.9.0" + +[[deps.StatsAPI]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "1ff449ad350c9c4cbc756624d6f8a8c3ef56d3ed" +uuid = "82ae8749-77ed-4fe6-ae5f-f523153014b0" +version = "1.7.0" + +[[deps.StatsBase]] +deps = ["DataAPI", "DataStructures", "LinearAlgebra", "LogExpFunctions", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics", "StatsAPI"] +git-tree-sha1 = "1d77abd07f617c4868c33d4f5b9e1dbb2643c9cf" +uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" +version = "0.34.2" + +[[deps.StatsFuns]] +deps = ["HypergeometricFunctions", "IrrationalConstants", "LogExpFunctions", "Reexport", "Rmath", "SpecialFunctions"] +git-tree-sha1 = "f625d686d5a88bcd2b15cd81f18f98186fdc0c9a" +uuid = "4c63d2b9-4356-54db-8cca-17b64c39e42c" +version = "1.3.0" +weakdeps = ["ChainRulesCore", "InverseFunctions"] + + [deps.StatsFuns.extensions] + StatsFunsChainRulesCoreExt = "ChainRulesCore" + StatsFunsInverseFunctionsExt = "InverseFunctions" + +[[deps.StructArrays]] +deps = ["Adapt", "ConstructionBase", "DataAPI", "GPUArraysCore", "StaticArraysCore", "Tables"] +git-tree-sha1 = "0a3db38e4cce3c54fe7a71f831cd7b6194a54213" +uuid = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" +version = "0.6.16" + +[[deps.SuiteSparse]] +deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"] +uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9" + +[[deps.SuiteSparse_jll]] +deps = ["Artifacts", "Libdl", "Pkg", "libblastrampoline_jll"] +uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c" +version = "5.10.1+6" + +[[deps.TOML]] +deps = ["Dates"] +uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76" +version = "1.0.3" + +[[deps.TableTraits]] +deps = ["IteratorInterfaceExtensions"] +git-tree-sha1 = "c06b2f539df1c6efa794486abfb6ed2022561a39" +uuid = "3783bdb8-4a98-5b6b-af9a-565f29a5fe9c" +version = "1.0.1" + +[[deps.Tables]] +deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "LinearAlgebra", "OrderedCollections", "TableTraits"] +git-tree-sha1 = "cb76cf677714c095e535e3501ac7954732aeea2d" +uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" +version = "1.11.1" + +[[deps.Tar]] +deps = ["ArgTools", "SHA"] +uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e" +version = "1.10.0" + +[[deps.TensorCore]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "1feb45f88d133a655e001435632f019a9a1bcdb6" +uuid = "62fd8b95-f654-4bbd-a8a5-9c27f68ccd50" +version = "0.1.1" + +[[deps.Test]] +deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] +uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[[deps.TranscodingStreams]] +git-tree-sha1 = "1fbeaaca45801b4ba17c251dd8603ef24801dd84" +uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" +version = "0.10.2" +weakdeps = ["Random", "Test"] + + [deps.TranscodingStreams.extensions] + TestExt = ["Test", "Random"] + +[[deps.Transducers]] +deps = ["Adapt", "ArgCheck", "BangBang", "Baselet", "CompositionsBase", "ConstructionBase", "DefineSingletons", "Distributed", "InitialValues", "Logging", "Markdown", "MicroCollections", "Requires", "Setfield", "SplittablesBase", "Tables"] +git-tree-sha1 = "e579d3c991938fecbb225699e8f611fa3fbf2141" +uuid = "28d57a85-8fef-5791-bfe6-a80928e7c999" +version = "0.4.79" + + [deps.Transducers.extensions] + TransducersBlockArraysExt = "BlockArrays" + TransducersDataFramesExt = "DataFrames" + TransducersLazyArraysExt = "LazyArrays" + TransducersOnlineStatsBaseExt = "OnlineStatsBase" + TransducersReferenceablesExt = "Referenceables" + + [deps.Transducers.weakdeps] + BlockArrays = "8e7c35d0-a365-5155-bbbb-fb81a777f24e" + DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" + LazyArrays = "5078a376-72f3-5289-bfd5-ec5146d43c02" + OnlineStatsBase = "925886fa-5bf2-5e8e-b522-a9147a512338" + Referenceables = "42d2dcc6-99eb-4e98-b66c-637b7d73030e" + +[[deps.URIs]] +git-tree-sha1 = "67db6cc7b3821e19ebe75791a9dd19c9b1188f2b" +uuid = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4" +version = "1.5.1" + +[[deps.UUIDs]] +deps = ["Random", "SHA"] +uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" + +[[deps.Unicode]] +uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" + +[[deps.UnicodeFun]] +deps = ["REPL"] +git-tree-sha1 = "53915e50200959667e78a92a418594b428dffddf" +uuid = "1cfade01-22cf-5700-b092-accc4b62d6e1" +version = "0.4.1" + +[[deps.Unitful]] +deps = ["Dates", "LinearAlgebra", "Random"] +git-tree-sha1 = "242982d62ff0d1671e9029b52743062739255c7e" +uuid = "1986cc42-f94f-5a68-af5c-568840ba703d" +version = "1.18.0" +weakdeps = ["ConstructionBase", "InverseFunctions"] + + [deps.Unitful.extensions] + ConstructionBaseUnitfulExt = "ConstructionBase" + InverseFunctionsUnitfulExt = "InverseFunctions" + +[[deps.UnitfulLatexify]] +deps = ["LaTeXStrings", "Latexify", "Unitful"] +git-tree-sha1 = "e2d817cc500e960fdbafcf988ac8436ba3208bfd" +uuid = "45397f5d-5981-4c77-b2b3-fc36d6e9b728" +version = "1.6.3" + +[[deps.UnsafeAtomics]] +git-tree-sha1 = "6331ac3440856ea1988316b46045303bef658278" +uuid = "013be700-e6cd-48c3-b4a1-df204f14c38f" +version = "0.2.1" + +[[deps.UnsafeAtomicsLLVM]] +deps = ["LLVM", "UnsafeAtomics"] +git-tree-sha1 = "323e3d0acf5e78a56dfae7bd8928c989b4f3083e" +uuid = "d80eeb9a-aca5-4d75-85e5-170c8b632249" +version = "0.1.3" + +[[deps.Unzip]] +git-tree-sha1 = "ca0969166a028236229f63514992fc073799bb78" +uuid = "41fe7b60-77ed-43a1-b4f0-825fd5a5650d" +version = "0.2.0" + +[[deps.Vulkan_Loader_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Wayland_jll", "Xorg_libX11_jll", "Xorg_libXrandr_jll", "xkbcommon_jll"] +git-tree-sha1 = "2f0486047a07670caad3a81a075d2e518acc5c59" +uuid = "a44049a8-05dd-5a78-86c9-5fde0876e88c" +version = "1.3.243+0" + +[[deps.Wayland_jll]] +deps = ["Artifacts", "EpollShim_jll", "Expat_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg", "XML2_jll"] +git-tree-sha1 = "7558e29847e99bc3f04d6569e82d0f5c54460703" +uuid = "a2964d1f-97da-50d4-b82a-358c7fce9d89" +version = "1.21.0+1" + +[[deps.Wayland_protocols_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "4528479aa01ee1b3b4cd0e6faef0e04cf16466da" +uuid = "2381bf8a-dfd0-557d-9999-79630e7b1b91" +version = "1.25.0+0" + +[[deps.XML2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Zlib_jll"] +git-tree-sha1 = "24b81b59bd35b3c42ab84fa589086e19be919916" +uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" +version = "2.11.5+0" + +[[deps.XSLT_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgcrypt_jll", "Libgpg_error_jll", "Libiconv_jll", "Pkg", "XML2_jll", "Zlib_jll"] +git-tree-sha1 = "91844873c4085240b95e795f692c4cec4d805f8a" +uuid = "aed1982a-8fda-507f-9586-7b0439959a61" +version = "1.1.34+0" + +[[deps.XZ_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "522b8414d40c4cbbab8dee346ac3a09f9768f25d" +uuid = "ffd25f8a-64ca-5728-b0f7-c24cf3aae800" +version = "5.4.5+0" + +[[deps.Xorg_libICE_jll]] +deps = ["Libdl", "Pkg"] +git-tree-sha1 = "e5becd4411063bdcac16be8b66fc2f9f6f1e8fe5" +uuid = "f67eecfb-183a-506d-b269-f58e52b52d7c" +version = "1.0.10+1" + +[[deps.Xorg_libSM_jll]] +deps = ["Libdl", "Pkg", "Xorg_libICE_jll"] +git-tree-sha1 = "4a9d9e4c180e1e8119b5ffc224a7b59d3a7f7e18" +uuid = "c834827a-8449-5923-a945-d239c165b7dd" +version = "1.2.3+0" + +[[deps.Xorg_libX11_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxcb_jll", "Xorg_xtrans_jll"] +git-tree-sha1 = "afead5aba5aa507ad5a3bf01f58f82c8d1403495" +uuid = "4f6342f7-b3d2-589e-9d20-edeb45f2b2bc" +version = "1.8.6+0" + +[[deps.Xorg_libXau_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "6035850dcc70518ca32f012e46015b9beeda49d8" +uuid = "0c0b7dd1-d40b-584c-a123-a41640f87eec" +version = "1.0.11+0" + +[[deps.Xorg_libXcursor_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXfixes_jll", "Xorg_libXrender_jll"] +git-tree-sha1 = "12e0eb3bc634fa2080c1c37fccf56f7c22989afd" +uuid = "935fb764-8cf2-53bf-bb30-45bb1f8bf724" +version = "1.2.0+4" + +[[deps.Xorg_libXdmcp_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "34d526d318358a859d7de23da945578e8e8727b7" +uuid = "a3789734-cfe1-5b06-b2d0-1dd0d9d62d05" +version = "1.1.4+0" + +[[deps.Xorg_libXext_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] +git-tree-sha1 = "b7c0aa8c376b31e4852b360222848637f481f8c3" +uuid = "1082639a-0dae-5f34-9b06-72781eeb8cb3" +version = "1.3.4+4" + +[[deps.Xorg_libXfixes_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] +git-tree-sha1 = "0e0dc7431e7a0587559f9294aeec269471c991a4" +uuid = "d091e8ba-531a-589c-9de9-94069b037ed8" +version = "5.0.3+4" + +[[deps.Xorg_libXi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll", "Xorg_libXfixes_jll"] +git-tree-sha1 = "89b52bc2160aadc84d707093930ef0bffa641246" +uuid = "a51aa0fd-4e3c-5386-b890-e753decda492" +version = "1.7.10+4" + +[[deps.Xorg_libXinerama_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll"] +git-tree-sha1 = "26be8b1c342929259317d8b9f7b53bf2bb73b123" +uuid = "d1454406-59df-5ea1-beac-c340f2130bc3" +version = "1.1.4+4" + +[[deps.Xorg_libXrandr_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll"] +git-tree-sha1 = "34cea83cb726fb58f325887bf0612c6b3fb17631" +uuid = "ec84b674-ba8e-5d96-8ba1-2a689ba10484" +version = "1.5.2+4" + +[[deps.Xorg_libXrender_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] +git-tree-sha1 = "19560f30fd49f4d4efbe7002a1037f8c43d43b96" +uuid = "ea2f1a96-1ddc-540d-b46f-429655e07cfa" +version = "0.9.10+4" + +[[deps.Xorg_libpthread_stubs_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "8fdda4c692503d44d04a0603d9ac0982054635f9" +uuid = "14d82f49-176c-5ed1-bb49-ad3f5cbd8c74" +version = "0.1.1+0" + +[[deps.Xorg_libxcb_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "XSLT_jll", "Xorg_libXau_jll", "Xorg_libXdmcp_jll", "Xorg_libpthread_stubs_jll"] +git-tree-sha1 = "b4bfde5d5b652e22b9c790ad00af08b6d042b97d" +uuid = "c7cfdc94-dc32-55de-ac96-5a1b8d977c5b" +version = "1.15.0+0" + +[[deps.Xorg_libxkbfile_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] +git-tree-sha1 = "730eeca102434283c50ccf7d1ecdadf521a765a4" +uuid = "cc61e674-0454-545c-8b26-ed2c68acab7a" +version = "1.1.2+0" + +[[deps.Xorg_xcb_util_cursor_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_xcb_util_image_jll", "Xorg_xcb_util_jll", "Xorg_xcb_util_renderutil_jll"] +git-tree-sha1 = "04341cb870f29dcd5e39055f895c39d016e18ccd" +uuid = "e920d4aa-a673-5f3a-b3d7-f755a4d47c43" +version = "0.1.4+0" + +[[deps.Xorg_xcb_util_image_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "0fab0a40349ba1cba2c1da699243396ff8e94b97" +uuid = "12413925-8142-5f55-bb0e-6d7ca50bb09b" +version = "0.4.0+1" + +[[deps.Xorg_xcb_util_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libxcb_jll"] +git-tree-sha1 = "e7fd7b2881fa2eaa72717420894d3938177862d1" +uuid = "2def613f-5ad1-5310-b15b-b15d46f528f5" +version = "0.4.0+1" + +[[deps.Xorg_xcb_util_keysyms_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "d1151e2c45a544f32441a567d1690e701ec89b00" +uuid = "975044d2-76e6-5fbe-bf08-97ce7c6574c7" +version = "0.4.0+1" + +[[deps.Xorg_xcb_util_renderutil_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "dfd7a8f38d4613b6a575253b3174dd991ca6183e" +uuid = "0d47668e-0667-5a69-a72c-f761630bfb7e" +version = "0.3.9+1" + +[[deps.Xorg_xcb_util_wm_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "e78d10aab01a4a154142c5006ed44fd9e8e31b67" +uuid = "c22f9ab0-d5fe-5066-847c-f4bb1cd4e361" +version = "0.4.1+1" + +[[deps.Xorg_xkbcomp_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxkbfile_jll"] +git-tree-sha1 = "330f955bc41bb8f5270a369c473fc4a5a4e4d3cb" +uuid = "35661453-b289-5fab-8a00-3d9160c6a3a4" +version = "1.4.6+0" + +[[deps.Xorg_xkeyboard_config_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_xkbcomp_jll"] +git-tree-sha1 = "691634e5453ad362044e2ad653e79f3ee3bb98c3" +uuid = "33bec58e-1273-512f-9401-5d533626f822" +version = "2.39.0+0" + +[[deps.Xorg_xtrans_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "e92a1a012a10506618f10b7047e478403a046c77" +uuid = "c5fb5394-a638-5e4d-96e5-b29de1b5cf10" +version = "1.5.0+0" + +[[deps.Zlib_jll]] +deps = ["Libdl"] +uuid = "83775a58-1f1d-513f-b197-d71354ab007a" +version = "1.2.13+0" + +[[deps.Zstd_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "49ce682769cd5de6c72dcf1b94ed7790cd08974c" +uuid = "3161d3a3-bdf6-5164-811a-617609db77b4" +version = "1.5.5+0" + +[[deps.Zygote]] +deps = ["AbstractFFTs", "ChainRules", "ChainRulesCore", "DiffRules", "Distributed", "FillArrays", "ForwardDiff", "GPUArrays", "GPUArraysCore", "IRTools", "InteractiveUtils", "LinearAlgebra", "LogExpFunctions", "MacroTools", "NaNMath", "PrecompileTools", "Random", "Requires", "SparseArrays", "SpecialFunctions", "Statistics", "ZygoteRules"] +git-tree-sha1 = "5ded212acd815612df112bb895ef3910c5a03f57" +uuid = "e88e6eb3-aa80-5325-afca-941959d7151f" +version = "0.6.67" + + [deps.Zygote.extensions] + ZygoteColorsExt = "Colors" + ZygoteDistancesExt = "Distances" + ZygoteTrackerExt = "Tracker" + + [deps.Zygote.weakdeps] + Colors = "5ae59095-9a9b-59fe-a467-6f913c188581" + Distances = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + +[[deps.ZygoteRules]] +deps = ["ChainRulesCore", "MacroTools"] +git-tree-sha1 = "9d749cd449fb448aeca4feee9a2f4186dbb5d184" +uuid = "700de1a5-db45-46bc-99cf-38207098b444" +version = "0.2.4" + +[[deps.eudev_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "gperf_jll"] +git-tree-sha1 = "431b678a28ebb559d224c0b6b6d01afce87c51ba" +uuid = "35ca27e7-8b34-5b7f-bca9-bdc33f59eb06" +version = "3.2.9+0" + +[[deps.fzf_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "47cf33e62e138b920039e8ff9f9841aafe1b733e" +uuid = "214eeab7-80f7-51ab-84ad-2988db7cef09" +version = "0.35.1+0" + +[[deps.gperf_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "3516a5630f741c9eecb3720b1ec9d8edc3ecc033" +uuid = "1a1c6b14-54f6-533d-8383-74cd7377aa70" +version = "3.1.1+0" + +[[deps.libaom_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "3a2ea60308f0996d26f1e5354e10c24e9ef905d4" +uuid = "a4ae2306-e953-59d6-aa16-d00cac43593b" +version = "3.4.0+0" + +[[deps.libass_jll]] +deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] +git-tree-sha1 = "5982a94fcba20f02f42ace44b9894ee2b140fe47" +uuid = "0ac62f75-1d6f-5e53-bd7c-93b484bb37c0" +version = "0.15.1+0" + +[[deps.libblastrampoline_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "8e850b90-86db-534c-a0d3-1478176c7d93" +version = "5.8.0+0" + +[[deps.libevdev_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "141fe65dc3efabb0b1d5ba74e91f6ad26f84cc22" +uuid = "2db6ffa8-e38f-5e21-84af-90c45d0032cc" +version = "1.11.0+0" + +[[deps.libfdk_aac_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "daacc84a041563f965be61859a36e17c4e4fcd55" +uuid = "f638f0a6-7fb0-5443-88ba-1cc74229b280" +version = "2.0.2+0" + +[[deps.libinput_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "eudev_jll", "libevdev_jll", "mtdev_jll"] +git-tree-sha1 = "ad50e5b90f222cfe78aa3d5183a20a12de1322ce" +uuid = "36db933b-70db-51c0-b978-0f229ee0e533" +version = "1.18.0+0" + +[[deps.libpng_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] +git-tree-sha1 = "94d180a6d2b5e55e447e2d27a29ed04fe79eb30c" +uuid = "b53b4c65-9356-5827-b1ea-8c7a1a84506f" +version = "1.6.38+0" + +[[deps.libvorbis_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Ogg_jll", "Pkg"] +git-tree-sha1 = "b910cb81ef3fe6e78bf6acee440bda86fd6ae00c" +uuid = "f27f6e37-5d2b-51aa-960f-b287f2bc3b7a" +version = "1.3.7+1" + +[[deps.mtdev_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "814e154bdb7be91d78b6802843f76b6ece642f11" +uuid = "009596ad-96f7-51b1-9f1b-5ce2d5e8a71e" +version = "1.1.6+0" + +[[deps.nghttp2_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d" +version = "1.52.0+1" + +[[deps.p7zip_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" +version = "17.4.0+0" + +[[deps.x264_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "4fea590b89e6ec504593146bf8b988b2c00922b2" +uuid = "1270edf5-f2f9-52d2-97e9-ab00b5d0237a" +version = "2021.5.5+0" + +[[deps.x265_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "ee567a171cce03570d77ad3a43e90218e38937a9" +uuid = "dfaa095f-4041-5dcd-9319-2fabd8486b76" +version = "3.5.0+0" + +[[deps.xkbcommon_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Wayland_jll", "Wayland_protocols_jll", "Xorg_libxcb_jll", "Xorg_xkeyboard_config_jll"] +git-tree-sha1 = "9c304562909ab2bab0262639bd4f444d7bc2be37" +uuid = "d8fb68d0-12a3-5cfd-a85a-d49703b185fd" +version = "1.4.1+1" diff --git a/v0.10.59/examples/train-kernel-parameters/index.html b/v0.10.59/examples/train-kernel-parameters/index.html new file mode 100644 index 000000000..e9d506baa --- /dev/null +++ b/v0.10.59/examples/train-kernel-parameters/index.html @@ -0,0 +1,385 @@ + +Train Kernel Parameters · KernelFunctions.jl

    Train Kernel Parameters

    You are seeing the HTML output generated by Documenter.jl and Literate.jl from the Julia source file. The corresponding notebook can be viewed in nbviewer.


    Here we show a few ways to train (optimize) the kernel (hyper)parameters at the example of kernel-based regression using KernelFunctions.jl. All options are functionally identical, but differ a little in readability, dependencies, and computational cost.

    We load KernelFunctions and some other packages. Note that while we use Zygote for automatic differentiation and Flux.optimise for optimization, you should be able to replace them with your favourite autodiff framework or optimizer.

    using KernelFunctions
    +using LinearAlgebra
    +using Distributions
    +using Plots
    +using BenchmarkTools
    +using Flux
    +using Flux: Optimise
    +using Zygote
    +using Random: seed!
    +seed!(42);

    Data Generation

    We generate a toy dataset in 1 dimension:

    xmin, xmax = -3, 3  # Bounds of the data
    +N = 50 # Number of samples
    +x_train = rand(Uniform(xmin, xmax), N)  # sample the inputs
    +σ = 0.1
    +y_train = sinc.(x_train) + randn(N) * σ  # evaluate a function and add some noise
    +x_test = range(xmin - 0.1, xmax + 0.1; length=300)

    Plot the data

    scatter(x_train, y_train; label="data")
    +plot!(x_test, sinc; label="true function")
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Manual Approach

    The first option is to rebuild the parametrized kernel from a vector of parameters in each evaluation of the cost function. This is similar to the approach taken in Stheno.jl.

    To train the kernel parameters via Zygote.jl, we need to create a function creating a kernel from an array. A simple way to ensure that the kernel parameters are positive is to optimize over the logarithm of the parameters.

    function kernel_creator(θ)
    +    return (exp(θ[1]) * SqExponentialKernel() + exp(θ[2]) * Matern32Kernel()) ∘
    +           ScaleTransform(exp(θ[3]))
    +end

    From theory we know the prediction for a test set x given the kernel parameters and normalization constant:

    function f(x, x_train, y_train, θ)
    +    k = kernel_creator(θ[1:3])
    +    return kernelmatrix(k, x, x_train) *
    +           ((kernelmatrix(k, x_train) + exp(θ[4]) * I) \ y_train)
    +end

    Let's look at our prediction. With starting parameters p0 (picked so we get the right local minimum for demonstration) we get:

    p0 = [1.1, 0.1, 0.01, 0.001]
    +θ = log.(p0)
    +ŷ = f(x_test, x_train, y_train, θ)
    +scatter(x_train, y_train; label="data")
    +plot!(x_test, sinc; label="true function")
    +plot!(x_test, ŷ; label="prediction")
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    We define the following loss:

    function loss(θ)
    +    ŷ = f(x_train, x_train, y_train, θ)
    +    return norm(y_train - ŷ) + exp(θ[4]) * norm(ŷ)
    +end

    The loss with our starting point:

    loss(θ)
    2.613933959118708

    Computational cost for one step:

    @benchmark let
    +    θ = log.(p0)
    +    opt = Optimise.ADAGrad(0.5)
    +    grads = only((Zygote.gradient(loss, θ)))
    +    Optimise.update!(opt, θ, grads)
    +end
    BenchmarkTools.Trial: 5873 samples with 1 evaluation.
    + Range (min … max):  670.450 μs …   6.545 ms  ┊ GC (min … max):  0.00% … 29.47%
    + Time  (median):     706.909 μs               ┊ GC (median):     0.00%
    + Time  (mean ± σ):   847.977 μs ± 511.185 μs  ┊ GC (mean ± σ):  14.98% ± 17.52%
    +
    +  ██▅▂                                                     ▂▂▂▁ ▁
    +  ████▇▄▁▁▁▁▃▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▅▇████ █
    +  670 μs        Histogram: log(frequency) by time       2.73 ms <
    +
    + Memory estimate: 2.98 MiB, allocs estimate: 1535.

    Training the model

    Setting an initial value and initializing the optimizer:

    θ = log.(p0) # Initial vector
    +opt = Optimise.ADAGrad(0.5)

    Optimize

    anim = Animation()
    +for i in 1:15
    +    grads = only((Zygote.gradient(loss, θ)))
    +    Optimise.update!(opt, θ, grads)
    +    scatter(
    +        x_train, y_train; lab="data", title="i = $(i), Loss = $(round(loss(θ), digits = 4))"
    +    )
    +    plot!(x_test, sinc; lab="true function")
    +    plot!(x_test, f(x_test, x_train, y_train, θ); lab="Prediction", lw=3.0)
    +    frame(anim)
    +end
    +gif(anim, "train-kernel-param.gif"; show_msg=false, fps=15);

    Final loss

    loss(θ)
    0.5241118228076058

    Using ParameterHandling.jl

    Alternatively, we can use the ParameterHandling.jl package to handle the requirement that all kernel parameters should be positive. The package also allows arbitrarily nesting named tuples that make the parameters more human readable, without having to remember their position in a flat vector.

    using ParameterHandling
    +
    +raw_initial_θ = (
    +    k1=positive(1.1), k2=positive(0.1), k3=positive(0.01), noise_var=positive(0.001)
    +)
    +
    +flat_θ, unflatten = ParameterHandling.value_flatten(raw_initial_θ)
    4-element Vector{Float64}:
    +  0.09531016625781467
    + -2.3025852420056685
    + -4.6051716761053205
    + -6.907770180254354

    We define a few relevant functions and note that compared to the previous kernel_creator function, we do not need explicit exps.

    function kernel_creator(θ)
    +    return (θ.k1 * SqExponentialKernel() + θ.k2 * Matern32Kernel()) ∘ ScaleTransform(θ.k3)
    +end
    +
    +function f(x, x_train, y_train, θ)
    +    k = kernel_creator(θ)
    +    return kernelmatrix(k, x, x_train) *
    +           ((kernelmatrix(k, x_train) + θ.noise_var * I) \ y_train)
    +end
    +
    +function loss(θ)
    +    ŷ = f(x_train, x_train, y_train, θ)
    +    return norm(y_train - ŷ) + θ.noise_var * norm(ŷ)
    +end
    +
    +initial_θ = ParameterHandling.value(raw_initial_θ)

    The loss at the initial parameter values:

    (loss ∘ unflatten)(flat_θ)
    2.613933959118708

    Cost per step

    @benchmark let
    +    θ = flat_θ[:]
    +    opt = Optimise.ADAGrad(0.5)
    +    grads = (Zygote.gradient(loss ∘ unflatten, θ))[1]
    +    Optimise.update!(opt, θ, grads)
    +end
    BenchmarkTools.Trial: 4932 samples with 1 evaluation.
    + Range (min … max):  788.132 μs …   6.553 ms  ┊ GC (min … max):  0.00% … 40.55%
    + Time  (median):     827.441 μs               ┊ GC (median):     0.00%
    + Time  (mean ± σ):     1.011 ms ± 645.874 μs  ┊ GC (mean ± σ):  16.42% ± 18.20%
    +
    +  █▇▄▁                                                     ▁▂▁  ▁
    +  ████▆▄▅▇▆▅▄▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▆█████ █
    +  788 μs        Histogram: log(frequency) by time        3.4 ms <
    +
    + Memory estimate: 3.06 MiB, allocs estimate: 2215.

    Training the model

    Optimize

    opt = Optimise.ADAGrad(0.5)
    +for i in 1:15
    +    grads = (Zygote.gradient(loss ∘ unflatten, flat_θ))[1]
    +    Optimise.update!(opt, flat_θ, grads)
    +end

    Final loss

    (loss ∘ unflatten)(flat_θ)
    0.524117624126251

    Flux.destructure

    If we don't want to write an explicit function to construct the kernel, we can alternatively use the Flux.destructure function. Again, we need to ensure that the parameters are positive. Note that the exp function is now part of the loss function, instead of part of the kernel construction.

    We could also use ParameterHandling.jl here. To do so, one would remove the exps from the loss function below and call loss ∘ unflatten as above.

    θ = [1.1, 0.1, 0.01, 0.001]
    +
    +kernel = (θ[1] * SqExponentialKernel() + θ[2] * Matern32Kernel()) ∘ ScaleTransform(θ[3])
    +
    +params, kernelc = Flux.destructure(kernel);

    This returns the trainable params of the kernel and a function to reconstruct the kernel.

    kernelc(params)
    Sum of 2 kernels:
    +	Squared Exponential Kernel (metric = Distances.Euclidean(0.0))
    +			- σ² = 1.1
    +	Matern 3/2 Kernel (metric = Distances.Euclidean(0.0))
    +			- σ² = 0.1
    +	- Scale Transform (s = 0.01)

    From theory we know the prediction for a test set x given the kernel parameters and normalization constant

    function f(x, x_train, y_train, θ)
    +    k = kernelc(θ[1:3])
    +    return kernelmatrix(k, x, x_train) * ((kernelmatrix(k, x_train) + (θ[4]) * I) \ y_train)
    +end
    +
    +function loss(θ)
    +    ŷ = f(x_train, x_train, y_train, exp.(θ))
    +    return norm(y_train - ŷ) + exp(θ[4]) * norm(ŷ)
    +end

    Cost for one step

    @benchmark let θt = θ[:], optt = Optimise.ADAGrad(0.5)
    +    grads = only((Zygote.gradient(loss, θt)))
    +    Optimise.update!(optt, θt, grads)
    +end
    BenchmarkTools.Trial: 5600 samples with 1 evaluation.
    + Range (min … max):  627.821 μs …   7.947 ms  ┊ GC (min … max):  0.00% … 32.27%
    + Time  (median):     705.877 μs               ┊ GC (median):     0.00%
    + Time  (mean ± σ):   889.487 μs ± 673.812 μs  ┊ GC (mean ± σ):  19.23% ± 19.06%
    +
    +  ▄█▆▂                                                     ▁▂▂▁ ▁
    +  ████▇▆▆▇▅▃▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▄▇████ █
    +  628 μs        Histogram: log(frequency) by time       3.38 ms <
    +
    + Memory estimate: 2.98 MiB, allocs estimate: 1556.

    Training the model

    The loss at our initial parameter values:

    θ = log.([1.1, 0.1, 0.01, 0.001]) # Initial vector
    +loss(θ)
    2.613933959118708

    Initialize optimizer

    opt = Optimise.ADAGrad(0.5)

    Optimize

    for i in 1:15
    +    grads = only((Zygote.gradient(loss, θ)))
    +    Optimise.update!(opt, θ, grads)
    +end

    Final loss

    loss(θ)
    0.5241118228076058

    +
    Package and system information
    +
    +Package information (click to expand) +
    +Status `~/work/KernelFunctions.jl/KernelFunctions.jl/examples/train-kernel-parameters/Project.toml`
    +  [6e4b80f9] BenchmarkTools v1.3.2
    +  [31c24e10] Distributions v0.25.103
    +  [587475ba] Flux v0.14.6
    +  [f6369f11] ForwardDiff v0.10.36
    +  [ec8451be] KernelFunctions v0.10.59 `/home/runner/work/KernelFunctions.jl/KernelFunctions.jl#ec19a94`
    +  [98b081ad] Literate v2.16.0
    +  [2412ca09] ParameterHandling v0.4.7
    +  [91a5bcdd] Plots v1.39.0
    +  [e88e6eb3] Zygote v0.6.67
    +  [37e2e46d] LinearAlgebra
    +
    +To reproduce this notebook's package environment, you can + +download the full Manifest.toml. +
    +
    +System information (click to expand) +
    +Julia Version 1.9.4
    +Commit 8e5136fa297 (2023-11-14 08:46 UTC)
    +Build Info:
    +  Official https://julialang.org/ release
    +Platform Info:
    +  OS: Linux (x86_64-linux-gnu)
    +  CPU: 4 × AMD EPYC 7763 64-Core Processor
    +  WORD_SIZE: 64
    +  LIBM: libopenlibm
    +  LLVM: libLLVM-14.0.6 (ORCJIT, znver3)
    +  Threads: 1 on 4 virtual cores
    +Environment:
    +  JULIA_DEBUG = Documenter
    +  JULIA_LOAD_PATH = :/home/runner/.julia/packages/JuliaGPsDocs/7M86H/src
    +
    +

    This page was generated using Literate.jl.

    diff --git a/v0.10.59/examples/train-kernel-parameters/notebook.ipynb b/v0.10.59/examples/train-kernel-parameters/notebook.ipynb new file mode 100644 index 000000000..aff6f18e4 --- /dev/null +++ b/v0.10.59/examples/train-kernel-parameters/notebook.ipynb @@ -0,0 +1,1234 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# Train Kernel Parameters\n", + "\n", + "*You are seeing the\n", + "notebook output generated by\n", + "[Literate.jl](https://github.com/fredrikekre/Literate.jl) from the\n", + "[Julia source file](https://github.com/JuliaGaussianProcesses/KernelFunctions.jl/blob/master/examples/train-kernel-parameters/script.jl).\n", + "The rendered HTML can be viewed [in the docs](https://juliagaussianprocesses.github.io/KernelFunctions.jl/dev/examples/train-kernel-parameters/).*" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "Here we show a few ways to train (optimize) the kernel (hyper)parameters at the example of kernel-based regression using KernelFunctions.jl.\n", + "All options are functionally identical, but differ a little in readability, dependencies, and computational cost." + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "We load KernelFunctions and some other packages. Note that while we use `Zygote` for automatic differentiation and `Flux.optimise` for optimization, you should be able to replace them with your favourite autodiff framework or optimizer." + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "using KernelFunctions\n", + "using LinearAlgebra\n", + "using Distributions\n", + "using Plots\n", + "using BenchmarkTools\n", + "using Flux\n", + "using Flux: Optimise\n", + "using Zygote\n", + "using Random: seed!\n", + "seed!(42);" + ], + "metadata": {}, + "execution_count": 1 + }, + { + "cell_type": "markdown", + "source": [ + "## Data Generation\n", + "We generate a toy dataset in 1 dimension:" + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "xmin, xmax = -3, 3 # Bounds of the data\n", + "N = 50 # Number of samples\n", + "x_train = rand(Uniform(xmin, xmax), N) # sample the inputs\n", + "σ = 0.1\n", + "y_train = sinc.(x_train) + randn(N) * σ # evaluate a function and add some noise\n", + "x_test = range(xmin - 0.1, xmax + 0.1; length=300)\n", + "nothing #hide" + ], + "metadata": {}, + "execution_count": 2 + }, + { + "cell_type": "markdown", + "source": [ + "Plot the data" + ], + "metadata": {} + }, + { + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "Plot{Plots.GRBackend() n=2}", + "image/png": "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", + "text/html": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ], + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "metadata": {}, + "execution_count": 3 + } + ], + "cell_type": "code", + "source": [ + "scatter(x_train, y_train; label=\"data\")\n", + "plot!(x_test, sinc; label=\"true function\")" + ], + "metadata": {}, + "execution_count": 3 + }, + { + "cell_type": "markdown", + "source": [ + "## Manual Approach\n", + "The first option is to rebuild the parametrized kernel from a vector of parameters\n", + "in each evaluation of the cost function. This is similar to the approach taken in\n", + "[Stheno.jl](https://github.com/JuliaGaussianProcesses/Stheno.jl)." + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "To train the kernel parameters via [Zygote.jl](https://github.com/FluxML/Zygote.jl),\n", + "we need to create a function creating a kernel from an array.\n", + "A simple way to ensure that the kernel parameters are positive\n", + "is to optimize over the logarithm of the parameters." + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "function kernel_creator(θ)\n", + " return (exp(θ[1]) * SqExponentialKernel() + exp(θ[2]) * Matern32Kernel()) ∘\n", + " ScaleTransform(exp(θ[3]))\n", + "end\n", + "nothing #hide" + ], + "metadata": {}, + "execution_count": 4 + }, + { + "cell_type": "markdown", + "source": [ + "From theory we know the prediction for a test set x given\n", + "the kernel parameters and normalization constant:" + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "function f(x, x_train, y_train, θ)\n", + " k = kernel_creator(θ[1:3])\n", + " return kernelmatrix(k, x, x_train) *\n", + " ((kernelmatrix(k, x_train) + exp(θ[4]) * I) \\ y_train)\n", + "end\n", + "nothing #hide" + ], + "metadata": {}, + "execution_count": 5 + }, + { + "cell_type": "markdown", + "source": [ + "Let's look at our prediction.\n", + "With starting parameters `p0` (picked so we get the right local\n", + "minimum for demonstration) we get:" + ], + "metadata": {} + }, + { + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "Plot{Plots.GRBackend() n=3}", + "image/png": "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", + "text/html": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ], + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "metadata": {}, + "execution_count": 6 + } + ], + "cell_type": "code", + "source": [ + "p0 = [1.1, 0.1, 0.01, 0.001]\n", + "θ = log.(p0)\n", + "ŷ = f(x_test, x_train, y_train, θ)\n", + "scatter(x_train, y_train; label=\"data\")\n", + "plot!(x_test, sinc; label=\"true function\")\n", + "plot!(x_test, ŷ; label=\"prediction\")" + ], + "metadata": {}, + "execution_count": 6 + }, + { + "cell_type": "markdown", + "source": [ + "We define the following loss:" + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "function loss(θ)\n", + " ŷ = f(x_train, x_train, y_train, θ)\n", + " return norm(y_train - ŷ) + exp(θ[4]) * norm(ŷ)\n", + "end\n", + "nothing #hide" + ], + "metadata": {}, + "execution_count": 7 + }, + { + "cell_type": "markdown", + "source": [ + "The loss with our starting point:" + ], + "metadata": {} + }, + { + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "2.613933959118708" + }, + "metadata": {}, + "execution_count": 8 + } + ], + "cell_type": "code", + "source": [ + "loss(θ)" + ], + "metadata": {}, + "execution_count": 8 + }, + { + "cell_type": "markdown", + "source": [ + "Computational cost for one step:" + ], + "metadata": {} + }, + { + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "BenchmarkTools.Trial: 5610 samples with 1 evaluation.\n Range \u001b[90m(\u001b[39m\u001b[36m\u001b[1mmin\u001b[22m\u001b[39m … \u001b[35mmax\u001b[39m\u001b[90m): \u001b[39m\u001b[36m\u001b[1m637.900 μs\u001b[22m\u001b[39m … \u001b[35m 6.989 ms\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmin … max\u001b[90m): \u001b[39m 0.00% … 37.31%\n Time \u001b[90m(\u001b[39m\u001b[34m\u001b[1mmedian\u001b[22m\u001b[39m\u001b[90m): \u001b[39m\u001b[34m\u001b[1m706.042 μs \u001b[22m\u001b[39m\u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmedian\u001b[90m): \u001b[39m 0.00%\n Time \u001b[90m(\u001b[39m\u001b[32m\u001b[1mmean\u001b[22m\u001b[39m ± \u001b[32mσ\u001b[39m\u001b[90m): \u001b[39m\u001b[32m\u001b[1m888.147 μs\u001b[22m\u001b[39m ± \u001b[32m665.168 μs\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmean ± σ\u001b[90m): \u001b[39m19.34% ± 19.18%\n\n \u001b[39m▅\u001b[39m█\u001b[34m▅\u001b[39m\u001b[39m▁\u001b[39m \u001b[39m \u001b[32m \u001b[39m\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m▁\u001b[39m▂\u001b[39m▂\u001b[39m▁\u001b[39m \u001b[39m▁\n \u001b[39m█\u001b[39m█\u001b[34m█\u001b[39m\u001b[39m█\u001b[39m▆\u001b[39m▃\u001b[32m▅\u001b[39m\u001b[39m▆\u001b[39m▅\u001b[39m▄\u001b[39m▅\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▄\u001b[39m▅\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m \u001b[39m█\n 638 μs\u001b[90m \u001b[39m\u001b[90mHistogram: \u001b[39m\u001b[90m\u001b[1mlog(\u001b[22m\u001b[39m\u001b[90mfrequency\u001b[39m\u001b[90m\u001b[1m)\u001b[22m\u001b[39m\u001b[90m by time\u001b[39m 3.38 ms \u001b[0m\u001b[1m<\u001b[22m\n\n Memory estimate\u001b[90m: \u001b[39m\u001b[33m2.98 MiB\u001b[39m, allocs estimate\u001b[90m: \u001b[39m\u001b[33m1531\u001b[39m." + }, + "metadata": {}, + "execution_count": 9 + } + ], + "cell_type": "code", + "source": [ + "@benchmark let\n", + " θ = log.(p0)\n", + " opt = Optimise.ADAGrad(0.5)\n", + " grads = only((Zygote.gradient(loss, θ)))\n", + " Optimise.update!(opt, θ, grads)\n", + "end" + ], + "metadata": {}, + "execution_count": 9 + }, + { + "cell_type": "markdown", + "source": [ + "### Training the model" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "Setting an initial value and initializing the optimizer:" + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "θ = log.(p0) # Initial vector\n", + "opt = Optimise.ADAGrad(0.5)\n", + "nothing #hide" + ], + "metadata": {}, + "execution_count": 10 + }, + { + "cell_type": "markdown", + "source": [ + "Optimize" + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "anim = Animation()\n", + "for i in 1:15\n", + " grads = only((Zygote.gradient(loss, θ)))\n", + " Optimise.update!(opt, θ, grads)\n", + " scatter(\n", + " x_train, y_train; lab=\"data\", title=\"i = $(i), Loss = $(round(loss(θ), digits = 4))\"\n", + " )\n", + " plot!(x_test, sinc; lab=\"true function\")\n", + " plot!(x_test, f(x_test, x_train, y_train, θ); lab=\"Prediction\", lw=3.0)\n", + " frame(anim)\n", + "end\n", + "gif(anim, \"train-kernel-param.gif\"; show_msg=false, fps=15);\n", + "nothing; #hide" + ], + "metadata": {}, + "execution_count": 11 + }, + { + "cell_type": "markdown", + "source": [ + "![](train-kernel-param.gif)" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "Final loss" + ], + "metadata": {} + }, + { + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "0.5241118228076058" + }, + "metadata": {}, + "execution_count": 12 + } + ], + "cell_type": "code", + "source": [ + "loss(θ)" + ], + "metadata": {}, + "execution_count": 12 + }, + { + "cell_type": "markdown", + "source": [ + "## Using ParameterHandling.jl\n", + "Alternatively, we can use the [ParameterHandling.jl](https://github.com/invenia/ParameterHandling.jl) package\n", + "to handle the requirement that all kernel parameters should be positive.\n", + "The package also allows arbitrarily nesting named tuples that make the parameters\n", + "more human readable, without having to remember their position in a flat vector." + ], + "metadata": {} + }, + { + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "4-element Vector{Float64}:\n 0.09531016625781467\n -2.3025852420056685\n -4.6051716761053205\n -6.907770180254354" + }, + "metadata": {}, + "execution_count": 13 + } + ], + "cell_type": "code", + "source": [ + "using ParameterHandling\n", + "\n", + "raw_initial_θ = (\n", + " k1=positive(1.1), k2=positive(0.1), k3=positive(0.01), noise_var=positive(0.001)\n", + ")\n", + "\n", + "flat_θ, unflatten = ParameterHandling.value_flatten(raw_initial_θ)\n", + "flat_θ #hide" + ], + "metadata": {}, + "execution_count": 13 + }, + { + "cell_type": "markdown", + "source": [ + "We define a few relevant functions and note that compared to the previous `kernel_creator` function, we do not need explicit `exp`s." + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "function kernel_creator(θ)\n", + " return (θ.k1 * SqExponentialKernel() + θ.k2 * Matern32Kernel()) ∘ ScaleTransform(θ.k3)\n", + "end\n", + "nothing #hide\n", + "\n", + "function f(x, x_train, y_train, θ)\n", + " k = kernel_creator(θ)\n", + " return kernelmatrix(k, x, x_train) *\n", + " ((kernelmatrix(k, x_train) + θ.noise_var * I) \\ y_train)\n", + "end\n", + "nothing #hide\n", + "\n", + "function loss(θ)\n", + " ŷ = f(x_train, x_train, y_train, θ)\n", + " return norm(y_train - ŷ) + θ.noise_var * norm(ŷ)\n", + "end\n", + "nothing #hide\n", + "\n", + "initial_θ = ParameterHandling.value(raw_initial_θ)\n", + "nothing #hide" + ], + "metadata": {}, + "execution_count": 14 + }, + { + "cell_type": "markdown", + "source": [ + "The loss at the initial parameter values:" + ], + "metadata": {} + }, + { + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "2.613933959118708" + }, + "metadata": {}, + "execution_count": 15 + } + ], + "cell_type": "code", + "source": [ + "(loss ∘ unflatten)(flat_θ)" + ], + "metadata": {}, + "execution_count": 15 + }, + { + "cell_type": "markdown", + "source": [ + "Cost per step" + ], + "metadata": {} + }, + { + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "BenchmarkTools.Trial: 4855 samples with 1 evaluation.\n Range \u001b[90m(\u001b[39m\u001b[36m\u001b[1mmin\u001b[22m\u001b[39m … \u001b[35mmax\u001b[39m\u001b[90m): \u001b[39m\u001b[36m\u001b[1m741.724 μs\u001b[22m\u001b[39m … \u001b[35m 11.122 ms\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmin … max\u001b[90m): \u001b[39m 0.00% … 26.76%\n Time \u001b[90m(\u001b[39m\u001b[34m\u001b[1mmedian\u001b[22m\u001b[39m\u001b[90m): \u001b[39m\u001b[34m\u001b[1m826.842 μs \u001b[22m\u001b[39m\u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmedian\u001b[90m): \u001b[39m 0.00%\n Time \u001b[90m(\u001b[39m\u001b[32m\u001b[1mmean\u001b[22m\u001b[39m ± \u001b[32mσ\u001b[39m\u001b[90m): \u001b[39m\u001b[32m\u001b[1m 1.027 ms\u001b[22m\u001b[39m ± \u001b[32m739.607 μs\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmean ± σ\u001b[90m): \u001b[39m18.21% ± 18.91%\n\n \u001b[39m▄\u001b[39m█\u001b[34m▆\u001b[39m\u001b[39m▃\u001b[39m \u001b[39m \u001b[32m \u001b[39m\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m▁\u001b[39m▂\u001b[39m▁\u001b[39m \u001b[39m \u001b[39m▁\n \u001b[39m█\u001b[39m█\u001b[34m█\u001b[39m\u001b[39m█\u001b[39m▆\u001b[39m▄\u001b[32m▁\u001b[39m\u001b[39m▆\u001b[39m▆\u001b[39m▄\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▃\u001b[39m▃\u001b[39m▅\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m \u001b[39m█\n 742 μs\u001b[90m \u001b[39m\u001b[90mHistogram: \u001b[39m\u001b[90m\u001b[1mlog(\u001b[22m\u001b[39m\u001b[90mfrequency\u001b[39m\u001b[90m\u001b[1m)\u001b[22m\u001b[39m\u001b[90m by time\u001b[39m 3.69 ms \u001b[0m\u001b[1m<\u001b[22m\n\n Memory estimate\u001b[90m: \u001b[39m\u001b[33m3.06 MiB\u001b[39m, allocs estimate\u001b[90m: \u001b[39m\u001b[33m2215\u001b[39m." + }, + "metadata": {}, + "execution_count": 16 + } + ], + "cell_type": "code", + "source": [ + "@benchmark let\n", + " θ = flat_θ[:]\n", + " opt = Optimise.ADAGrad(0.5)\n", + " grads = (Zygote.gradient(loss ∘ unflatten, θ))[1]\n", + " Optimise.update!(opt, θ, grads)\n", + "end" + ], + "metadata": {}, + "execution_count": 16 + }, + { + "cell_type": "markdown", + "source": [ + "### Training the model" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "Optimize" + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "opt = Optimise.ADAGrad(0.5)\n", + "for i in 1:15\n", + " grads = (Zygote.gradient(loss ∘ unflatten, flat_θ))[1]\n", + " Optimise.update!(opt, flat_θ, grads)\n", + "end\n", + "nothing #hide" + ], + "metadata": {}, + "execution_count": 17 + }, + { + "cell_type": "markdown", + "source": [ + "Final loss" + ], + "metadata": {} + }, + { + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "0.524117624126251" + }, + "metadata": {}, + "execution_count": 18 + } + ], + "cell_type": "code", + "source": [ + "(loss ∘ unflatten)(flat_θ)" + ], + "metadata": {}, + "execution_count": 18 + }, + { + "cell_type": "markdown", + "source": [ + "## Flux.destructure\n", + "If we don't want to write an explicit function to construct the kernel, we can alternatively use the `Flux.destructure` function.\n", + "Again, we need to ensure that the parameters are positive. Note that the `exp` function is now part of the loss function, instead of part of the kernel construction." + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "We could also use ParameterHandling.jl here.\n", + "To do so, one would remove the `exp`s from the loss function below and call `loss ∘ unflatten` as above." + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "θ = [1.1, 0.1, 0.01, 0.001]\n", + "\n", + "kernel = (θ[1] * SqExponentialKernel() + θ[2] * Matern32Kernel()) ∘ ScaleTransform(θ[3])\n", + "\n", + "params, kernelc = Flux.destructure(kernel);" + ], + "metadata": {}, + "execution_count": 19 + }, + { + "cell_type": "markdown", + "source": [ + "This returns the trainable `params` of the kernel and a function to reconstruct the kernel." + ], + "metadata": {} + }, + { + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "Sum of 2 kernels:\n\tSquared Exponential Kernel (metric = Distances.Euclidean(0.0))\n\t\t\t- σ² = 1.1\n\tMatern 3/2 Kernel (metric = Distances.Euclidean(0.0))\n\t\t\t- σ² = 0.1\n\t- Scale Transform (s = 0.01)" + }, + "metadata": {}, + "execution_count": 20 + } + ], + "cell_type": "code", + "source": [ + "kernelc(params)" + ], + "metadata": {}, + "execution_count": 20 + }, + { + "cell_type": "markdown", + "source": [ + "From theory we know the prediction for a test set x given\n", + "the kernel parameters and normalization constant" + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "function f(x, x_train, y_train, θ)\n", + " k = kernelc(θ[1:3])\n", + " return kernelmatrix(k, x, x_train) * ((kernelmatrix(k, x_train) + (θ[4]) * I) \\ y_train)\n", + "end\n", + "nothing #hide\n", + "\n", + "function loss(θ)\n", + " ŷ = f(x_train, x_train, y_train, exp.(θ))\n", + " return norm(y_train - ŷ) + exp(θ[4]) * norm(ŷ)\n", + "end\n", + "nothing #hide" + ], + "metadata": {}, + "execution_count": 21 + }, + { + "cell_type": "markdown", + "source": [ + "Cost for one step" + ], + "metadata": {} + }, + { + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "BenchmarkTools.Trial: 5631 samples with 1 evaluation.\n Range \u001b[90m(\u001b[39m\u001b[36m\u001b[1mmin\u001b[22m\u001b[39m … \u001b[35mmax\u001b[39m\u001b[90m): \u001b[39m\u001b[36m\u001b[1m624.755 μs\u001b[22m\u001b[39m … \u001b[35m 8.890 ms\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmin … max\u001b[90m): \u001b[39m 0.00% … 30.99%\n Time \u001b[90m(\u001b[39m\u001b[34m\u001b[1mmedian\u001b[22m\u001b[39m\u001b[90m): \u001b[39m\u001b[34m\u001b[1m700.776 μs \u001b[22m\u001b[39m\u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmedian\u001b[90m): \u001b[39m 0.00%\n Time \u001b[90m(\u001b[39m\u001b[32m\u001b[1mmean\u001b[22m\u001b[39m ± \u001b[32mσ\u001b[39m\u001b[90m): \u001b[39m\u001b[32m\u001b[1m884.557 μs\u001b[22m\u001b[39m ± \u001b[32m686.114 μs\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmean ± σ\u001b[90m): \u001b[39m20.03% ± 19.37%\n\n \u001b[39m▅\u001b[39m█\u001b[34m▆\u001b[39m\u001b[39m▂\u001b[39m \u001b[39m \u001b[32m \u001b[39m\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m▁\u001b[39m▂\u001b[39m▁\u001b[39m▁\u001b[39m \u001b[39m▁\n \u001b[39m█\u001b[39m█\u001b[34m█\u001b[39m\u001b[39m█\u001b[39m▆\u001b[39m▄\u001b[32m▄\u001b[39m\u001b[39m▅\u001b[39m▁\u001b[39m▁\u001b[39m▃\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▃\u001b[39m▅\u001b[39m▇\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m \u001b[39m█\n 625 μs\u001b[90m \u001b[39m\u001b[90mHistogram: \u001b[39m\u001b[90m\u001b[1mlog(\u001b[22m\u001b[39m\u001b[90mfrequency\u001b[39m\u001b[90m\u001b[1m)\u001b[22m\u001b[39m\u001b[90m by time\u001b[39m 3.47 ms \u001b[0m\u001b[1m<\u001b[22m\n\n Memory estimate\u001b[90m: \u001b[39m\u001b[33m2.98 MiB\u001b[39m, allocs estimate\u001b[90m: \u001b[39m\u001b[33m1556\u001b[39m." + }, + "metadata": {}, + "execution_count": 22 + } + ], + "cell_type": "code", + "source": [ + "@benchmark let θt = θ[:], optt = Optimise.ADAGrad(0.5)\n", + " grads = only((Zygote.gradient(loss, θt)))\n", + " Optimise.update!(optt, θt, grads)\n", + "end" + ], + "metadata": {}, + "execution_count": 22 + }, + { + "cell_type": "markdown", + "source": [ + "### Training the model" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "The loss at our initial parameter values:" + ], + "metadata": {} + }, + { + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "2.613933959118708" + }, + "metadata": {}, + "execution_count": 23 + } + ], + "cell_type": "code", + "source": [ + "θ = log.([1.1, 0.1, 0.01, 0.001]) # Initial vector\n", + "loss(θ)" + ], + "metadata": {}, + "execution_count": 23 + }, + { + "cell_type": "markdown", + "source": [ + "Initialize optimizer" + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "opt = Optimise.ADAGrad(0.5)\n", + "nothing #hide" + ], + "metadata": {}, + "execution_count": 24 + }, + { + "cell_type": "markdown", + "source": [ + "Optimize" + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "for i in 1:15\n", + " grads = only((Zygote.gradient(loss, θ)))\n", + " Optimise.update!(opt, θ, grads)\n", + "end\n", + "nothing #hide" + ], + "metadata": {}, + "execution_count": 25 + }, + { + "cell_type": "markdown", + "source": [ + "Final loss" + ], + "metadata": {} + }, + { + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "0.5241118228076058" + }, + "metadata": {}, + "execution_count": 26 + } + ], + "cell_type": "code", + "source": [ + "loss(θ)" + ], + "metadata": {}, + "execution_count": 26 + }, + { + "cell_type": "markdown", + "source": [ + "
    \n", + "
    Package and system information
    \n", + "
    \n", + "Package information (click to expand)\n", + "
    \n",
    +    "Status `~/work/KernelFunctions.jl/KernelFunctions.jl/examples/train-kernel-parameters/Project.toml`\n",
    +    "  [6e4b80f9] BenchmarkTools v1.3.2\n",
    +    "  [31c24e10] Distributions v0.25.103\n",
    +    "  [587475ba] Flux v0.14.6\n",
    +    "  [f6369f11] ForwardDiff v0.10.36\n",
    +    "  [ec8451be] KernelFunctions v0.10.59 `/home/runner/work/KernelFunctions.jl/KernelFunctions.jl#ec19a94`\n",
    +    "  [98b081ad] Literate v2.16.0\n",
    +    "  [2412ca09] ParameterHandling v0.4.7\n",
    +    "  [91a5bcdd] Plots v1.39.0\n",
    +    "  [e88e6eb3] Zygote v0.6.67\n",
    +    "  [37e2e46d] LinearAlgebra\n",
    +    "
    \n", + "To reproduce this notebook's package environment, you can\n", + "\n", + "download the full Manifest.toml.\n", + "
    \n", + "
    \n", + "System information (click to expand)\n", + "
    \n",
    +    "Julia Version 1.9.4\n",
    +    "Commit 8e5136fa297 (2023-11-14 08:46 UTC)\n",
    +    "Build Info:\n",
    +    "  Official https://julialang.org/ release\n",
    +    "Platform Info:\n",
    +    "  OS: Linux (x86_64-linux-gnu)\n",
    +    "  CPU: 4 × AMD EPYC 7763 64-Core Processor\n",
    +    "  WORD_SIZE: 64\n",
    +    "  LIBM: libopenlibm\n",
    +    "  LLVM: libLLVM-14.0.6 (ORCJIT, znver3)\n",
    +    "  Threads: 1 on 4 virtual cores\n",
    +    "Environment:\n",
    +    "  JULIA_DEBUG = Documenter\n",
    +    "  JULIA_LOAD_PATH = :/home/runner/.julia/packages/JuliaGPsDocs/7M86H/src\n",
    +    "
    \n", + "
    " + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "---\n", + "\n", + "*This notebook was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).*" + ], + "metadata": {} + } + ], + "nbformat_minor": 3, + "metadata": { + "language_info": { + "file_extension": ".jl", + "mimetype": "application/julia", + "name": "julia", + "version": "1.9.4" + }, + "kernelspec": { + "name": "julia-1.9", + "display_name": "Julia 1.9.4", + "language": "julia" + } + }, + "nbformat": 4 +} diff --git a/v0.10.59/examples/train-kernel-parameters/train-kernel-param.gif b/v0.10.59/examples/train-kernel-parameters/train-kernel-param.gif new file mode 100644 index 000000000..ea5e43afa Binary files /dev/null and b/v0.10.59/examples/train-kernel-parameters/train-kernel-param.gif differ diff --git a/v0.10.59/index.html b/v0.10.59/index.html new file mode 100644 index 000000000..ec5c5ae40 --- /dev/null +++ b/v0.10.59/index.html @@ -0,0 +1,2 @@ + +Home · KernelFunctions.jl

    KernelFunctions.jl

    KernelFunctions.jl is a general purpose kernel package. It provides a flexible framework for creating kernel functions and manipulating them, and an extensive collection of implementations. The main goals of this package are:

    • Flexibility: operations between kernels should be fluid and easy without breaking, with a user-friendly API.
    • Plug-and-play: being model-agnostic; including the kernels before/after other steps should be straightforward. To interoperate well with generic packages for handling parameters like ParameterHandling.jl and FluxML's Functors.jl.
    • Automatic Differentiation compatibility: all kernel functions which ought to be differentiable using AD packages like ForwardDiff.jl or Zygote.jl should be.

    This package replaces the now-defunct MLKernels.jl. It incorporates lots of excellent existing work from packages such as GaussianProcesses.jl, and is used in downstream packages such as AbstractGPs.jl, ApproximateGPs.jl, Stheno.jl, and AugmentedGaussianProcesses.jl.

    See the User guide for a brief introduction.

    diff --git a/v0.10.59/kernels/index.html b/v0.10.59/kernels/index.html new file mode 100644 index 000000000..3c765494d --- /dev/null +++ b/v0.10.59/kernels/index.html @@ -0,0 +1,97 @@ + +Kernel Functions · KernelFunctions.jl

    Kernel Functions

    Base Kernels

    These are the basic kernels without any transformation of the data. They are the building blocks of KernelFunctions.

    Constant Kernels

    KernelFunctions.WhiteKernelType
    WhiteKernel()

    White noise kernel.

    Definition

    For inputs $x, x'$, the white noise kernel is defined as

    \[k(x, x') = \delta(x, x').\]

    source

    Cosine Kernel

    KernelFunctions.CosineKernelType
    CosineKernel(; metric=Euclidean())

    Cosine kernel with respect to the metric.

    Definition

    For inputs $x, x'$ and metric $d(\cdot, \cdot)$, the cosine kernel is defined as

    \[k(x, x') = \cos(\pi d(x, x')).\]

    By default, $d$ is the Euclidean metric $d(x, x') = \|x - x'\|_2$.

    source

    Exponential Kernels

    KernelFunctions.ExponentialKernelType
    ExponentialKernel(; metric=Euclidean())

    Exponential kernel with respect to the metric.

    Definition

    For inputs $x, x'$ and metric $d(\cdot, \cdot)$, the exponential kernel is defined as

    \[k(x, x') = \exp\big(- d(x, x')\big).\]

    By default, $d$ is the Euclidean metric $d(x, x') = \|x - x'\|_2$.

    See also: GammaExponentialKernel

    source
    KernelFunctions.GibbsKernelType
    GibbsKernel(; lengthscale)

    Gibbs Kernel with lengthscale function lengthscale.

    The Gibbs kernel is a non-stationary generalisation of the squared exponential kernel. The lengthscale parameter $l$ becomes a function of position $l(x)$.

    Definition

    For inputs $x, x'$, the Gibbs kernel with lengthscale function $l(\cdot)$ is defined as

    \[k(x, x'; l) = \sqrt{\left(\frac{2 l(x) l(x')}{l(x)^2 + l(x')^2}\right)} +\quad \exp{\left(-\frac{(x - x')^2}{l(x)^2 + l(x')^2}\right)}.\]

    For a constant function $l \equiv c$, one recovers the SqExponentialKernel with lengthscale c.

    References

    Mark N. Gibbs. "Bayesian Gaussian Processes for Regression and Classication." PhD thesis, 1997

    Christopher J. Paciorek and Mark J. Schervish. "Nonstationary Covariance Functions for Gaussian Process Regression". NeurIPS, 2003

    Sami Remes, Markus Heinonen, Samuel Kaski. "Non-Stationary Spectral Kernels". arXiV:1705.08736, 2017

    Sami Remes, Markus Heinonen, Samuel Kaski. "Neural Non-Stationary Spectral Kernel". arXiv:1811.10978, 2018

    source
    KernelFunctions.SqExponentialKernelType
    SqExponentialKernel(; metric=Euclidean())

    Squared exponential kernel with respect to the metric.

    Definition

    For inputs $x, x'$ and metric $d(\cdot, \cdot)$, the squared exponential kernel is defined as

    \[k(x, x') = \exp\bigg(- \frac{d(x, x')^2}{2}\bigg).\]

    By default, $d$ is the Euclidean metric $d(x, x') = \|x - x'\|_2$.

    See also: GammaExponentialKernel

    source
    KernelFunctions.GammaExponentialKernelType
    GammaExponentialKernel(; γ::Real=1.0, metric=Euclidean())

    γ-exponential kernel with respect to the metric and with parameter γ.

    Definition

    For inputs $x, x'$ and metric $d(\cdot, \cdot)$, the γ-exponential kernel[RW] with parameter $\gamma \in (0, 2]$ is defined as

    \[k(x, x'; \gamma) = \exp\big(- d(x, x')^{\gamma}\big).\]

    By default, $d$ is the Euclidean metric $d(x, x') = \|x - x'\|_2$.

    See also: ExponentialKernel, SqExponentialKernel

    source

    Exponentiated Kernel

    KernelFunctions.ExponentiatedKernelType
    ExponentiatedKernel()

    Exponentiated kernel.

    Definition

    For inputs $x, x' \in \mathbb{R}^d$, the exponentiated kernel is defined as

    \[k(x, x') = \exp(x^\top x').\]

    source

    Fractional Brownian Motion Kernel

    KernelFunctions.FBMKernelType
    FBMKernel(; h::Real=0.5)

    Fractional Brownian motion kernel with Hurst index h.

    Definition

    For inputs $x, x' \in \mathbb{R}^d$, the fractional Brownian motion kernel with Hurst index $h \in [0,1]$ is defined as

    \[k(x, x'; h) = \frac{\|x\|_2^{2h} + \|x'\|_2^{2h} - \|x - x'\|^{2h}}{2}.\]

    source

    Gabor Kernel

    KernelFunctions.gaborkernelFunction
    gaborkernel(;
    +    sqexponential_transform=IdentityTransform(), cosine_tranform=IdentityTransform()
    +)

    Construct a Gabor kernel with transformations sqexponential_transform and cosine_transform of the inputs of the underlying squared exponential and cosine kernel, respectively.

    Definition

    For inputs $x, x' \in \mathbb{R}^d$, the Gabor kernel with transformations $f$ and $g$ of the inputs to the squared exponential and cosine kernel, respectively, is defined as

    \[k(x, x'; f, g) = \exp\bigg(- \frac{\| f(x) - f(x')\|_2^2}{2}\bigg) + \cos\big(\pi \|g(x) - g(x')\|_2 \big).\]

    source

    Matérn Kernels

    KernelFunctions.MaternKernelType
    MaternKernel(; ν::Real=1.5, metric=Euclidean())

    Matérn kernel of order ν with respect to the metric.

    Definition

    For inputs $x, x'$ and metric $d(\cdot, \cdot)$, the Matérn kernel of order $\nu > 0$ is defined as

    \[k(x,x';\nu) = \frac{2^{1-\nu}}{\Gamma(\nu)}\big(\sqrt{2\nu} d(x, x')\big) K_\nu\big(\sqrt{2\nu} d(x, x')\big),\]

    where $\Gamma$ is the Gamma function and $K_{\nu}$ is the modified Bessel function of the second kind of order $\nu$. By default, $d$ is the Euclidean metric $d(x, x') = \|x - x'\|_2$.

    A Gaussian process with a Matérn kernel is $\lceil \nu \rceil - 1$-times differentiable in the mean-square sense.

    Note

    Differentiation with respect to the order ν is not currently supported.

    See also: Matern12Kernel, Matern32Kernel, Matern52Kernel

    source
    KernelFunctions.Matern32KernelType
    Matern32Kernel(; metric=Euclidean())

    Matérn kernel of order $3/2$ with respect to the metric.

    Definition

    For inputs $x, x'$ and metric $d(\cdot, \cdot)$, the Matérn kernel of order $3/2$ is given by

    \[k(x, x') = \big(1 + \sqrt{3} d(x, x') \big) \exp\big(- \sqrt{3} d(x, x') \big).\]

    By default, $d$ is the Euclidean metric $d(x, x') = \|x - x'\|_2$.

    See also: MaternKernel

    source
    KernelFunctions.Matern52KernelType
    Matern52Kernel(; metric=Euclidean())

    Matérn kernel of order $5/2$ with respect to the metric.

    Definition

    For inputs $x, x'$ and metric $d(\cdot, \cdot)$, the Matérn kernel of order $5/2$ is given by

    \[k(x, x') = \bigg(1 + \sqrt{5} d(x, x') + \frac{5}{3} d(x, x')^2\bigg) + \exp\big(- \sqrt{5} d(x, x') \big).\]

    By default, $d$ is the Euclidean metric $d(x, x') = \|x - x'\|_2$.

    See also: MaternKernel

    source

    Neural Network Kernel

    KernelFunctions.NeuralNetworkKernelType
    NeuralNetworkKernel()

    Kernel of a Gaussian process obtained as the limit of a Bayesian neural network with a single hidden layer as the number of units goes to infinity.

    Definition

    Consider the single-layer Bayesian neural network $f \colon \mathbb{R}^d \to \mathbb{R}$ with $h$ hidden units defined by

    \[f(x; b, v, u) = b + \sqrt{\frac{\pi}{2}} \sum_{i=1}^{h} v_i \mathrm{erf}\big(u_i^\top x\big),\]

    where $\mathrm{erf}$ is the error function, and with prior distributions

    \[\begin{aligned} +b &\sim \mathcal{N}(0, \sigma_b^2),\\ +v &\sim \mathcal{N}(0, \sigma_v^2 \mathrm{I}_{h}/h),\\ +u_i &\sim \mathcal{N}(0, \mathrm{I}_{d}/2) \qquad (i = 1,\ldots,h). +\end{aligned}\]

    As $h \to \infty$, the neural network converges to the Gaussian process

    \[g(\cdot) \sim \mathcal{GP}\big(0, \sigma_b^2 + \sigma_v^2 k(\cdot, \cdot)\big),\]

    where the neural network kernel $k$ is given by

    \[k(x, x') = \arcsin\left(\frac{x^\top x'}{\sqrt{\big(1 + \|x\|^2_2\big) \big(1 + \|x'\|_2^2\big)}}\right)\]

    for inputs $x, x' \in \mathbb{R}^d$.[CW]

    source

    Periodic Kernel

    KernelFunctions.PeriodicKernelType
    PeriodicKernel(; r::AbstractVector=ones(Float64, 1))

    Periodic kernel with parameter r.

    Definition

    For inputs $x, x' \in \mathbb{R}^d$, the periodic kernel with parameter $r_i > 0$ is defined[DM] as

    \[k(x, x'; r) = \exp\bigg(- \frac{1}{2} \sum_{i=1}^d \bigg(\frac{\sin\big(\pi(x_i - x'_i)\big)}{r_i}\bigg)^2\bigg).\]

    source

    Piecewise Polynomial Kernel

    KernelFunctions.PiecewisePolynomialKernelType
    PiecewisePolynomialKernel(; dim::Int, degree::Int=0, metric=Euclidean())
    +PiecewisePolynomialKernel{degree}(; dim::Int, metric=Euclidean())

    Piecewise polynomial kernel of degree degree for inputs of dimension dim with support in the unit ball with respect to the metric.

    Definition

    For inputs $x, x'$ of dimension $m$ and metric $d(\cdot, \cdot)$, the piecewise polynomial kernel of degree $v \in \{0,1,2,3\}$ is defined as

    \[k(x, x'; v) = \max(1 - d(x, x'), 0)^{\alpha(v,m)} f_{v,m}(d(x, x')),\]

    where $\alpha(v, m) = \lfloor \frac{m}{2}\rfloor + 2v + 1$ and $f_{v,m}$ are polynomials of degree $v$ given by

    \[\begin{aligned} +f_{0,m}(r) &= 1, \\ +f_{1,m}(r) &= 1 + (j + 1) r, \\ +f_{2,m}(r) &= 1 + (j + 2) r + \big((j^2 + 4j + 3) / 3\big) r^2, \\ +f_{3,m}(r) &= 1 + (j + 3) r + \big((6 j^2 + 36j + 45) / 15\big) r^2 + \big((j^3 + 9 j^2 + 23j + 15) / 15\big) r^3, +\end{aligned}\]

    where $j = \lfloor \frac{m}{2}\rfloor + v + 1$. By default, $d$ is the Euclidean metric $d(x, x') = \|x - x'\|_2$.

    The kernel is $2v$ times continuously differentiable and the corresponding Gaussian process is hence $v$ times mean-square differentiable.

    source

    Polynomial Kernels

    KernelFunctions.LinearKernelType
    LinearKernel(; c::Real=0.0)

    Linear kernel with constant offset c.

    Definition

    For inputs $x, x' \in \mathbb{R}^d$, the linear kernel with constant offset $c \geq 0$ is defined as

    \[k(x, x'; c) = x^\top x' + c.\]

    See also: PolynomialKernel

    source
    KernelFunctions.PolynomialKernelType
    PolynomialKernel(; degree::Int=2, c::Real=0.0)

    Polynomial kernel of degree degree with constant offset c.

    Definition

    For inputs $x, x' \in \mathbb{R}^d$, the polynomial kernel of degree $\nu \in \mathbb{N}$ with constant offset $c \geq 0$ is defined as

    \[k(x, x'; c, \nu) = (x^\top x' + c)^\nu.\]

    See also: LinearKernel

    source

    Rational Kernels

    KernelFunctions.RationalKernelType
    RationalKernel(; α::Real=2.0, metric=Euclidean())

    Rational kernel with shape parameter α and given metric.

    Definition

    For inputs $x, x'$ and metric $d(\cdot, \cdot)$, the rational kernel with shape parameter $\alpha > 0$ is defined as

    \[k(x, x'; \alpha) = \bigg(1 + \frac{d(x, x')}{\alpha}\bigg)^{-\alpha}.\]

    By default, $d$ is the Euclidean metric $d(x, x') = \|x - x'\|_2$.

    The ExponentialKernel is recovered in the limit as $\alpha \to \infty$.

    See also: GammaRationalKernel

    source
    KernelFunctions.RationalQuadraticKernelType
    RationalQuadraticKernel(; α::Real=2.0, metric=Euclidean())

    Rational-quadratic kernel with respect to the metric and with shape parameter α.

    Definition

    For inputs $x, x'$ and metric $d(\cdot, \cdot)$, the rational-quadratic kernel with shape parameter $\alpha > 0$ is defined as

    \[k(x, x'; \alpha) = \bigg(1 + \frac{d(x, x')^2}{2\alpha}\bigg)^{-\alpha}.\]

    By default, $d$ is the Euclidean metric $d(x, x') = \|x - x'\|_2$.

    The SqExponentialKernel is recovered in the limit as $\alpha \to \infty$.

    See also: GammaRationalKernel

    source
    KernelFunctions.GammaRationalKernelType
    GammaRationalKernel(; α::Real=2.0, γ::Real=1.0, metric=Euclidean())

    γ-rational kernel with respect to the metric with shape parameters α and γ.

    Definition

    For inputs $x, x'$ and metric $d(\cdot, \cdot)$, the γ-rational kernel with shape parameters $\alpha > 0$ and $\gamma \in (0, 2]$ is defined as

    \[k(x, x'; \alpha, \gamma) = \bigg(1 + \frac{d(x, x')^{\gamma}}{\alpha}\bigg)^{-\alpha}.\]

    By default, $d$ is the Euclidean metric $d(x, x') = \|x - x'\|_2$.

    The GammaExponentialKernel is recovered in the limit as $\alpha \to \infty$.

    See also: RationalKernel, RationalQuadraticKernel

    source

    Spectral Mixture Kernels

    KernelFunctions.spectral_mixture_kernelFunction
    spectral_mixture_kernel(
    +    h::Kernel=SqExponentialKernel(),
    +    αs::AbstractVector{<:Real},
    +    γs::AbstractMatrix{<:Real},
    +    ωs::AbstractMatrix{<:Real},
    +)

    where αs are the weights of dimension (A, ), γs is the covariance matrix of dimension (D, A) and ωs are the mean vectors and is of dimension (D, A). Here, D is input dimension and A is the number of spectral components.

    h is the kernel, which defaults to SqExponentialKernel if not specified.

    Warning

    If you want to make sure that the constructor is type-stable, you should provide StaticArrays arguments: αs as a StaticVector, γs and ωs as StaticMatrix.

    Generalised Spectral Mixture kernel function. This family of functions is dense in the family of stationary real-valued kernels with respect to the pointwise convergence.[1]

    \[ κ(x, y) = αs' (h(-(γs' * t)^2) .* cos(π * ωs' * t), t = x - y\]

    References:

    [1] Generalized Spectral Kernels, by Yves-Laurent Kom Samo and Stephen J. Roberts
    +[2] SM: Gaussian Process Kernels for Pattern Discovery and Extrapolation,
    +        ICML, 2013, by Andrew Gordon Wilson and Ryan Prescott Adams,
    +[3] Covariance kernels for fast automatic pattern discovery and extrapolation
    +    with Gaussian processes, Andrew Gordon Wilson, PhD Thesis, January 2014.
    +    http://www.cs.cmu.edu/~andrewgw/andrewgwthesis.pdf
    +[4] http://www.cs.cmu.edu/~andrewgw/pattern/.
    source
    KernelFunctions.spectral_mixture_product_kernelFunction
    spectral_mixture_product_kernel(
    +    h::Kernel=SqExponentialKernel(),
    +    αs::AbstractMatrix{<:Real},
    +    γs::AbstractMatrix{<:Real},
    +    ωs::AbstractMatrix{<:Real},
    +)

    where αs are the weights of dimension (D, A), γs is the covariance matrix of dimension (D, A) and ωs are the mean vectors and is of dimension (D, A). Here, D is input dimension and A is the number of spectral components.

    Spectral Mixture Product Kernel. With enough components A, the SMP kernel can model any product kernel to arbitrary precision, and is flexible even with a small number of components [1]

    h is the kernel, which defaults to SqExponentialKernel if not specified.

    \[ κ(x, y) = Πᵢ₌₁ᴷ Σ(αsᵢᵀ .* (h(-(γsᵢᵀ * tᵢ)²) .* cos(ωsᵢᵀ * tᵢ))), tᵢ = xᵢ - yᵢ\]

    References:

    [1] GPatt: Fast Multidimensional Pattern Extrapolation with GPs,
    +    arXiv 1310.5288, 2013, by Andrew Gordon Wilson, Elad Gilboa,
    +    Arye Nehorai and John P. Cunningham
    source

    Wiener Kernel

    KernelFunctions.WienerKernelType
    WienerKernel(; i::Int=0)
    +WienerKernel{i}()

    The i-times integrated Wiener process kernel function.

    Definition

    For inputs $x, x' \in \mathbb{R}^d$, the $i$-times integrated Wiener process kernel with $i \in \{-1, 0, 1, 2, 3\}$ is defined[SDH] as

    \[k_i(x, x') = \begin{cases} + \delta(x, x') & \text{if } i=-1,\\ + \min\big(\|x\|_2, \|x'\|_2\big) & \text{if } i=0,\\ + a_{i1}^{-1} \min\big(\|x\|_2, \|x'\|_2\big)^{2i + 1} + + a_{i2}^{-1} \|x - x'\|_2 r_i\big(\|x\|_2, \|x'\|_2\big) \min\big(\|x\|_2, \|x'\|_2\big)^{i + 1} + & \text{otherwise}, +\end{cases}\]

    where the coefficients $a$ are given by

    \[a = \begin{bmatrix} +3 & 2 \\ +20 & 12 \\ +252 & 720 +\end{bmatrix}\]

    and the functions $r_i$ are defined as

    \[\begin{aligned} +r_1(t, t') &= 1,\\ +r_2(t, t') &= t + t' - \frac{\min(t, t')}{2},\\ +r_3(t, t') &= 5 \max(t, t')^2 + 2 tt' + 3 \min(t, t')^2. +\end{aligned}\]

    The WhiteKernel is recovered for $i = -1$.

    source

    Composite Kernels

    The modular design of KernelFunctions uses base kernels as building blocks for more complex kernels. There are a variety of composite kernels implemented, including those which transform the inputs to a wrapped kernel to implement length scales, scale the variance of a kernel, and sum or multiply collections of kernels together.

    KernelFunctions.TransformedKernelType
    TransformedKernel(k::Kernel, t::Transform)

    Kernel derived from k for which inputs are transformed via a Transform t.

    The preferred way to create kernels with input transformations is to use the composition operator or its alias compose instead of TransformedKernel directly since this allows optimized implementations for specific kernels and transformations.

    See also:

    source
    Base.:∘Method
    kernel ∘ transform
    +∘(kernel, transform)
    +compose(kernel, transform)

    Compose a kernel with a transformation transform of its inputs.

    The prefix forms support chains of multiple transformations: ∘(kernel, transform1, transform2) = kernel ∘ transform1 ∘ transform2.

    Definition

    For inputs $x, x'$, the transformed kernel $\widetilde{k}$ derived from kernel $k$ by input transformation $t$ is defined as

    \[\widetilde{k}(x, x'; k, t) = k\big(t(x), t(x')\big).\]

    Examples

    julia> (SqExponentialKernel() ∘ ScaleTransform(0.5))(0, 2) == exp(-0.5)
    +true
    +
    +julia> ∘(ExponentialKernel(), ScaleTransform(2), ScaleTransform(0.5))(1, 2) == exp(-1)
    +true

    See also: TransformedKernel

    source
    KernelFunctions.ScaledKernelType
    ScaledKernel(k::Kernel, σ²::Real=1.0)

    Scaled kernel derived from k by multiplication with variance σ².

    Definition

    For inputs $x, x'$, the scaled kernel $\widetilde{k}$ derived from kernel $k$ by multiplication with variance $\sigma^2 > 0$ is defined as

    \[\widetilde{k}(x, x'; k, \sigma^2) = \sigma^2 k(x, x').\]

    source
    KernelFunctions.KernelSumType
    KernelSum <: Kernel

    Create a sum of kernels. One can also use the operator +.

    There are various ways in which you create a KernelSum:

    The simplest way to specify a KernelSum would be to use the overloaded + operator. This is equivalent to creating a KernelSum by specifying the kernels as the arguments to the constructor.

    julia> k1 = SqExponentialKernel(); k2 = LinearKernel(); X = rand(5);
    +
    +julia> (k = k1 + k2) == KernelSum(k1, k2)
    +true
    +
    +julia> kernelmatrix(k1 + k2, X) == kernelmatrix(k1, X) .+ kernelmatrix(k2, X)
    +true
    +
    +julia> kernelmatrix(k, X) == kernelmatrix(k1 + k2, X)
    +true

    You could also specify a KernelSum by providing a Tuple or a Vector of the kernels to be summed. We suggest you to use a Tuple when you have fewer components and a Vector when dealing with a large number of components.

    julia> KernelSum((k1, k2)) == k1 + k2
    +true
    +
    +julia> KernelSum([k1, k2]) == KernelSum((k1, k2)) == k1 + k2
    +true
    source
    KernelFunctions.KernelProductType
    KernelProduct <: Kernel

    Create a product of kernels. One can also use the overloaded operator *.

    There are various ways in which you create a KernelProduct:

    The simplest way to specify a KernelProduct would be to use the overloaded * operator. This is equivalent to creating a KernelProduct by specifying the kernels as the arguments to the constructor.

    julia> k1 = SqExponentialKernel(); k2 = LinearKernel(); X = rand(5);
    +
    +julia> (k = k1 * k2) == KernelProduct(k1, k2)
    +true
    +
    +julia> kernelmatrix(k1 * k2, X) == kernelmatrix(k1, X) .* kernelmatrix(k2, X)
    +true
    +
    +julia> kernelmatrix(k, X) == kernelmatrix(k1 * k2, X)
    +true

    You could also specify a KernelProduct by providing a Tuple or a Vector of the kernels to be multiplied. We suggest you to use a Tuple when you have fewer components and a Vector when dealing with a large number of components.

    julia> KernelProduct((k1, k2)) == k1 * k2
    +true
    +
    +julia> KernelProduct([k1, k2]) == KernelProduct((k1, k2)) == k1 * k2
    +true
    source
    KernelFunctions.KernelTensorProductType
    KernelTensorProduct

    Tensor product of kernels.

    Definition

    For inputs $x = (x_1, \ldots, x_n)$ and $x' = (x'_1, \ldots, x'_n)$, the tensor product of kernels $k_1, \ldots, k_n$ is defined as

    \[k(x, x'; k_1, \ldots, k_n) = \Big(\bigotimes_{i=1}^n k_i\Big)(x, x') = \prod_{i=1}^n k_i(x_i, x'_i).\]

    Construction

    The simplest way to specify a KernelTensorProduct is to use the overloaded tensor operator or its alias (can be typed by \otimes<tab>).

    julia> k1 = SqExponentialKernel(); k2 = LinearKernel(); X = rand(5, 2);
    +
    +julia> kernelmatrix(k1 ⊗ k2, RowVecs(X)) == kernelmatrix(k1, X[:, 1]) .* kernelmatrix(k2, X[:, 2])
    +true

    You can also specify a KernelTensorProduct by providing kernels as individual arguments or as an iterable data structure such as a Tuple or a Vector. Using a tuple or individual arguments guarantees that KernelTensorProduct is concretely typed but might lead to large compilation times if the number of kernels is large.

    julia> KernelTensorProduct(k1, k2) == k1 ⊗ k2
    +true
    +
    +julia> KernelTensorProduct((k1, k2)) == k1 ⊗ k2
    +true
    +
    +julia> KernelTensorProduct([k1, k2]) == k1 ⊗ k2
    +true
    source
    KernelFunctions.NormalizedKernelType
    NormalizedKernel(k::Kernel)

    A normalized kernel derived from k.

    Definition

    For inputs $x, x'$, the normalized kernel $\widetilde{k}$ derived from kernel $k$ is defined as

    \[\widetilde{k}(x, x'; k) = \frac{k(x, x')}{\sqrt{k(x, x) k(x', x')}}.\]

    source

    Multi-output Kernels

    Kernelfunctions implements multi-output kernels as scalar kernels on an extended output domain. For more details on this read the section on inputs for multi-output GPs.

    For a function $f(x) \rightarrow y$ denote the inputs as $x, x'$, such that we compute the covariance between output components $y_{p}$ and $y_{p'}$. The total number of outputs is $m$.

    KernelFunctions.IndependentMOKernelType
    IndependentMOKernel(k::Kernel)

    Kernel for multiple independent outputs with kernel k each.

    Definition

    For inputs $x, x'$ and output dimensions $p, p'$, the kernel $\widetilde{k}$ for independent outputs with kernel $k$ each is defined as

    \[\widetilde{k}\big((x, p), (x', p')\big) = \begin{cases} + k(x, x') & \text{if } p = p', \\ + 0 & \text{otherwise}. +\end{cases}\]

    Mathematically, it is equivalent to a matrix-valued kernel defined as

    \[\widetilde{K}(x, x') = \mathrm{diag}\big(k(x, x'), \ldots, k(x, x')\big) \in \mathbb{R}^{m \times m},\]

    where $m$ is the number of outputs.

    source
    KernelFunctions.LatentFactorMOKernelType
    LatentFactorMOKernel(g::AbstractVector{<:Kernel}, e::MOKernel, A::AbstractMatrix)

    Kernel associated with the semiparametric latent factor model.

    Definition

    For inputs $x, x'$ and output dimensions $p_x, p_{x'}'$, the kernel is defined as[STJ]

    \[k\big((x, p_x), (x, p_{x'})\big) = \sum^{Q}_{q=1} A_{p_xq}g_q(x, x')A_{p_{x'}q} + + e\big((x, p_x), (x', p_{x'})\big),\]

    where $g_1, \ldots, g_Q$ are $Q$ kernels, one for each latent process, $e$ is a multi-output kernel for $m$ outputs, and $A$ is a matrix of weights for the kernels of size $m \times Q$.

    source
    KernelFunctions.IntrinsicCoregionMOKernelType
    IntrinsicCoregionMOKernel(; kernel::Kernel, B::AbstractMatrix)

    Kernel associated with the intrinsic coregionalization model.

    Definition

    For inputs $x, x'$ and output dimensions $p, p'$, the kernel is defined as[ARL]

    \[k\big((x, p), (x', p'); B, \tilde{k}\big) = B_{p, p'} \tilde{k}\big(x, x'\big),\]

    where $B$ is a positive semidefinite matrix of size $m \times m$, with $m$ being the number of outputs, and $\tilde{k}$ is a scalar-valued kernel shared by the latent processes.

    source
    KernelFunctions.LinearMixingModelKernelType
    LinearMixingModelKernel(k::Kernel, H::AbstractMatrix)
    +LinearMixingModelKernel(Tk::AbstractVector{<:Kernel},Th::AbstractMatrix)

    Kernel associated with the linear mixing model, taking a vector of Q kernels and a Q × m mixing matrix H for a function with m outputs. Also accepts a single kernel k for use across all Q basis vectors.

    Definition

    For inputs $x, x'$ and output dimensions $p, p'$, the kernel is defined as[BPTHST]

    \[k\big((x, p), (x, p')\big) = H_{:,p}K(x, x')H_{:,p'}\]

    where $K(x, x') = Diag(k_1(x, x'), ..., k_Q(x, x'))$ with zero off-diagonal entries. $H_{:,p}$ is the $p$-th column (p-th output) of $H \in \mathbb{R}^{Q \times m}$ representing $Q$ basis vectors for the $m$ dimensional output space of $f$. $k_1, \ldots, k_Q$ are $Q$ kernels, one for each latent process, $H$ is a mixing matrix of $Q$ basis vectors spanning the output space.

    source
    diff --git a/v0.10.59/metrics/index.html b/v0.10.59/metrics/index.html new file mode 100644 index 000000000..e00807905 --- /dev/null +++ b/v0.10.59/metrics/index.html @@ -0,0 +1,13 @@ + +Metrics · KernelFunctions.jl

    Metrics

    SimpleKernel implementations rely on Distances.jl for efficiently computing the pairwise matrix. This requires a distance measure or metric, such as the commonly used SqEuclidean and Euclidean.

    The metric used by a given kernel type is specified as

    KernelFunctions.metric(::CustomKernel) = SqEuclidean()

    However, there are kernels that can be implemented efficiently using "metrics" that do not respect all the definitions expected by Distances.jl. For this reason, KernelFunctions.jl provides additional "metrics" such as DotProduct ($\langle x, y \rangle$) and Delta ($\delta(x,y)$).

    Adding a new metric

    If you want to create a new "metric" just implement the following:

    struct Delta <: Distances.PreMetric
    +end
    +
    +@inline function Distances._evaluate(::Delta,a::AbstractVector{T},b::AbstractVector{T}) where {T}
    +    @boundscheck if length(a) != length(b)
    +        throw(DimensionMismatch("first array has length $(length(a)) which does not match the length of the second, $(length(b))."))
    +    end
    +    return a==b
    +end
    +
    +@inline (dist::Delta)(a::AbstractArray,b::AbstractArray) = Distances._evaluate(dist,a,b)
    +@inline (dist::Delta)(a::Number,b::Number) = a==b
    diff --git a/v0.10.59/search/index.html b/v0.10.59/search/index.html new file mode 100644 index 000000000..1b8832647 --- /dev/null +++ b/v0.10.59/search/index.html @@ -0,0 +1,2 @@ + +Search · KernelFunctions.jl

    Loading search...

      diff --git a/v0.10.59/search_index.js b/v0.10.59/search_index.js new file mode 100644 index 000000000..0beffc1bf --- /dev/null +++ b/v0.10.59/search_index.js @@ -0,0 +1,3 @@ +var documenterSearchIndex = {"docs": +[{"location":"create_kernel/#Custom-Kernels","page":"Custom Kernels","title":"Custom Kernels","text":"","category":"section"},{"location":"create_kernel/#Creating-your-own-kernel","page":"Custom Kernels","title":"Creating your own kernel","text":"","category":"section"},{"location":"create_kernel/","page":"Custom Kernels","title":"Custom Kernels","text":"KernelFunctions.jl contains the most popular kernels already but you might want to make your own!","category":"page"},{"location":"create_kernel/","page":"Custom Kernels","title":"Custom Kernels","text":"Here are a few ways depending on how complicated your kernel is:","category":"page"},{"location":"create_kernel/#SimpleKernel-for-kernel-functions-depending-on-a-metric","page":"Custom Kernels","title":"SimpleKernel for kernel functions depending on a metric","text":"","category":"section"},{"location":"create_kernel/","page":"Custom Kernels","title":"Custom Kernels","text":"If your kernel function is of the form k(x, y) = f(d(x, y)) where d(x, y) is a PreMetric, you can construct your custom kernel by defining kappa and metric for your kernel. Here is for example how one can define the SqExponentialKernel again:","category":"page"},{"location":"create_kernel/","page":"Custom Kernels","title":"Custom Kernels","text":"struct MyKernel <: KernelFunctions.SimpleKernel end\n\nKernelFunctions.kappa(::MyKernel, d2::Real) = exp(-d2)\nKernelFunctions.metric(::MyKernel) = SqEuclidean()","category":"page"},{"location":"create_kernel/#Kernel-for-more-complex-kernels","page":"Custom Kernels","title":"Kernel for more complex kernels","text":"","category":"section"},{"location":"create_kernel/","page":"Custom Kernels","title":"Custom Kernels","text":"If your kernel does not satisfy such a representation, all you need to do is define (k::MyKernel)(x, y) and inherit from Kernel. For example, we recreate here the NeuralNetworkKernel:","category":"page"},{"location":"create_kernel/","page":"Custom Kernels","title":"Custom Kernels","text":"struct MyKernel <: KernelFunctions.Kernel end\n\n(::MyKernel)(x, y) = asin(dot(x, y) / sqrt((1 + sum(abs2, x)) * (1 + sum(abs2, y))))","category":"page"},{"location":"create_kernel/","page":"Custom Kernels","title":"Custom Kernels","text":"Note that the fallback implementation of the base Kernel evaluation does not use Distances.jl and can therefore be a bit slower.","category":"page"},{"location":"create_kernel/#Additional-Options","page":"Custom Kernels","title":"Additional Options","text":"","category":"section"},{"location":"create_kernel/","page":"Custom Kernels","title":"Custom Kernels","text":"Finally there are additional functions you can define to bring in more features:","category":"page"},{"location":"create_kernel/","page":"Custom Kernels","title":"Custom Kernels","text":"KernelFunctions.iskroncompatible(k::MyKernel): if your kernel factorizes in dimensions, you can declare your kernel as iskroncompatible(k) = true to use Kronecker methods.\nKernelFunctions.dim(x::MyDataType): by default the dimension of the inputs will only be checked for vectors of type AbstractVector{<:Real}. If you want to check the dimensionality of your inputs, dispatch the dim function on your datatype. Note that 0 is the default.\ndim is called within KernelFunctions.validate_inputs(x::MyDataType, y::MyDataType), which can instead be directly overloaded if you want to run special checks for your input types.\nkernelmatrix(k::MyKernel, ...): you can redefine the diverse kernelmatrix functions to eventually optimize the computations.\nBase.print(io::IO, k::MyKernel): if you want to specialize the printing of your kernel.","category":"page"},{"location":"create_kernel/","page":"Custom Kernels","title":"Custom Kernels","text":"KernelFunctions uses Functors.jl for specifying trainable kernel parameters in a way that is compatible with the Flux ML framework. You can use Functors.@functor if all fields of your kernel struct are trainable. Note that optimization algorithms in Flux are not compatible with scalar parameters (yet), and hence vector-valued parameters should be preferred.","category":"page"},{"location":"create_kernel/","page":"Custom Kernels","title":"Custom Kernels","text":"import Functors\n\nstruct MyKernel{T} <: KernelFunctions.Kernel\n a::Vector{T}\nend\n\nFunctors.@functor MyKernel","category":"page"},{"location":"create_kernel/","page":"Custom Kernels","title":"Custom Kernels","text":"If only a subset of the fields are trainable, you have to specify explicitly how to (re)construct the kernel with modified parameter values by implementing Functors.functor(::Type{<:MyKernel}, x) for your kernel struct:","category":"page"},{"location":"create_kernel/","page":"Custom Kernels","title":"Custom Kernels","text":"import Functors\n\nstruct MyKernel{T} <: KernelFunctions.Kernel\n n::Int\n a::Vector{T}\nend\n\nfunction Functors.functor(::Type{<:MyKernel}, x::MyKernel)\n function reconstruct_mykernel(xs)\n # keep field `n` of the original kernel and set `a` to (possibly different) `xs.a`\n return MyKernel(x.n, xs.a)\n end\n return (a = x.a,), reconstruct_mykernel\nend","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"EditURL = \"../../../../examples/train-kernel-parameters/script.jl\"","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"EditURL = \"https://github.com/JuliaGaussianProcesses/KernelFunctions.jl/blob/master/examples/train-kernel-parameters/script.jl\"","category":"page"},{"location":"examples/train-kernel-parameters/#Train-Kernel-Parameters","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"","category":"section"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"(Image: )","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"You are seeing the HTML output generated by Documenter.jl and Literate.jl from the Julia source file. The corresponding notebook can be viewed in nbviewer.","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"Here we show a few ways to train (optimize) the kernel (hyper)parameters at the example of kernel-based regression using KernelFunctions.jl. All options are functionally identical, but differ a little in readability, dependencies, and computational cost.","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"We load KernelFunctions and some other packages. Note that while we use Zygote for automatic differentiation and Flux.optimise for optimization, you should be able to replace them with your favourite autodiff framework or optimizer.","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"using KernelFunctions\nusing LinearAlgebra\nusing Distributions\nusing Plots\nusing BenchmarkTools\nusing Flux\nusing Flux: Optimise\nusing Zygote\nusing Random: seed!\nseed!(42);","category":"page"},{"location":"examples/train-kernel-parameters/#Data-Generation","page":"Train Kernel Parameters","title":"Data Generation","text":"","category":"section"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"We generate a toy dataset in 1 dimension:","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"xmin, xmax = -3, 3 # Bounds of the data\nN = 50 # Number of samples\nx_train = rand(Uniform(xmin, xmax), N) # sample the inputs\nσ = 0.1\ny_train = sinc.(x_train) + randn(N) * σ # evaluate a function and add some noise\nx_test = range(xmin - 0.1, xmax + 0.1; length=300)","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"Plot the data","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"scatter(x_train, y_train; label=\"data\")\nplot!(x_test, sinc; label=\"true function\")","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","category":"page"},{"location":"examples/train-kernel-parameters/#Manual-Approach","page":"Train Kernel Parameters","title":"Manual Approach","text":"","category":"section"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"The first option is to rebuild the parametrized kernel from a vector of parameters in each evaluation of the cost function. This is similar to the approach taken in Stheno.jl.","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"To train the kernel parameters via Zygote.jl, we need to create a function creating a kernel from an array. A simple way to ensure that the kernel parameters are positive is to optimize over the logarithm of the parameters.","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"function kernel_creator(θ)\n return (exp(θ[1]) * SqExponentialKernel() + exp(θ[2]) * Matern32Kernel()) ∘\n ScaleTransform(exp(θ[3]))\nend","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"From theory we know the prediction for a test set x given the kernel parameters and normalization constant:","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"function f(x, x_train, y_train, θ)\n k = kernel_creator(θ[1:3])\n return kernelmatrix(k, x, x_train) *\n ((kernelmatrix(k, x_train) + exp(θ[4]) * I) \\ y_train)\nend","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"Let's look at our prediction. With starting parameters p0 (picked so we get the right local minimum for demonstration) we get:","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"p0 = [1.1, 0.1, 0.01, 0.001]\nθ = log.(p0)\nŷ = f(x_test, x_train, y_train, θ)\nscatter(x_train, y_train; label=\"data\")\nplot!(x_test, sinc; label=\"true function\")\nplot!(x_test, ŷ; label=\"prediction\")","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"We define the following loss:","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"function loss(θ)\n ŷ = f(x_train, x_train, y_train, θ)\n return norm(y_train - ŷ) + exp(θ[4]) * norm(ŷ)\nend","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"The loss with our starting point:","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"loss(θ)","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"2.613933959118708","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"Computational cost for one step:","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"@benchmark let\n θ = log.(p0)\n opt = Optimise.ADAGrad(0.5)\n grads = only((Zygote.gradient(loss, θ)))\n Optimise.update!(opt, θ, grads)\nend","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"BenchmarkTools.Trial: 5873 samples with 1 evaluation.\n Range (min … max): 670.450 μs … 6.545 ms ┊ GC (min … max): 0.00% … 29.47%\n Time (median): 706.909 μs ┊ GC (median): 0.00%\n Time (mean ± σ): 847.977 μs ± 511.185 μs ┊ GC (mean ± σ): 14.98% ± 17.52%\n\n ██▅▂ ▂▂▂▁ ▁\n ████▇▄▁▁▁▁▃▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▅▇████ █\n 670 μs Histogram: log(frequency) by time 2.73 ms <\n\n Memory estimate: 2.98 MiB, allocs estimate: 1535.","category":"page"},{"location":"examples/train-kernel-parameters/#Training-the-model","page":"Train Kernel Parameters","title":"Training the model","text":"","category":"section"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"Setting an initial value and initializing the optimizer:","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"θ = log.(p0) # Initial vector\nopt = Optimise.ADAGrad(0.5)","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"Optimize","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"anim = Animation()\nfor i in 1:15\n grads = only((Zygote.gradient(loss, θ)))\n Optimise.update!(opt, θ, grads)\n scatter(\n x_train, y_train; lab=\"data\", title=\"i = $(i), Loss = $(round(loss(θ), digits = 4))\"\n )\n plot!(x_test, sinc; lab=\"true function\")\n plot!(x_test, f(x_test, x_train, y_train, θ); lab=\"Prediction\", lw=3.0)\n frame(anim)\nend\ngif(anim, \"train-kernel-param.gif\"; show_msg=false, fps=15);","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"(Image: )","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"Final loss","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"loss(θ)","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"0.5241118228076058","category":"page"},{"location":"examples/train-kernel-parameters/#Using-ParameterHandling.jl","page":"Train Kernel Parameters","title":"Using ParameterHandling.jl","text":"","category":"section"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"Alternatively, we can use the ParameterHandling.jl package to handle the requirement that all kernel parameters should be positive. The package also allows arbitrarily nesting named tuples that make the parameters more human readable, without having to remember their position in a flat vector.","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"using ParameterHandling\n\nraw_initial_θ = (\n k1=positive(1.1), k2=positive(0.1), k3=positive(0.01), noise_var=positive(0.001)\n)\n\nflat_θ, unflatten = ParameterHandling.value_flatten(raw_initial_θ)","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"4-element Vector{Float64}:\n 0.09531016625781467\n -2.3025852420056685\n -4.6051716761053205\n -6.907770180254354","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"We define a few relevant functions and note that compared to the previous kernel_creator function, we do not need explicit exps.","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"function kernel_creator(θ)\n return (θ.k1 * SqExponentialKernel() + θ.k2 * Matern32Kernel()) ∘ ScaleTransform(θ.k3)\nend\n\nfunction f(x, x_train, y_train, θ)\n k = kernel_creator(θ)\n return kernelmatrix(k, x, x_train) *\n ((kernelmatrix(k, x_train) + θ.noise_var * I) \\ y_train)\nend\n\nfunction loss(θ)\n ŷ = f(x_train, x_train, y_train, θ)\n return norm(y_train - ŷ) + θ.noise_var * norm(ŷ)\nend\n\ninitial_θ = ParameterHandling.value(raw_initial_θ)","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"The loss at the initial parameter values:","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"(loss ∘ unflatten)(flat_θ)","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"2.613933959118708","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"Cost per step","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"@benchmark let\n θ = flat_θ[:]\n opt = Optimise.ADAGrad(0.5)\n grads = (Zygote.gradient(loss ∘ unflatten, θ))[1]\n Optimise.update!(opt, θ, grads)\nend","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"BenchmarkTools.Trial: 4932 samples with 1 evaluation.\n Range (min … max): 788.132 μs … 6.553 ms ┊ GC (min … max): 0.00% … 40.55%\n Time (median): 827.441 μs ┊ GC (median): 0.00%\n Time (mean ± σ): 1.011 ms ± 645.874 μs ┊ GC (mean ± σ): 16.42% ± 18.20%\n\n █▇▄▁ ▁▂▁ ▁\n ████▆▄▅▇▆▅▄▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▆█████ █\n 788 μs Histogram: log(frequency) by time 3.4 ms <\n\n Memory estimate: 3.06 MiB, allocs estimate: 2215.","category":"page"},{"location":"examples/train-kernel-parameters/#Training-the-model-2","page":"Train Kernel Parameters","title":"Training the model","text":"","category":"section"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"Optimize","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"opt = Optimise.ADAGrad(0.5)\nfor i in 1:15\n grads = (Zygote.gradient(loss ∘ unflatten, flat_θ))[1]\n Optimise.update!(opt, flat_θ, grads)\nend","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"Final loss","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"(loss ∘ unflatten)(flat_θ)","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"0.524117624126251","category":"page"},{"location":"examples/train-kernel-parameters/#Flux.destructure","page":"Train Kernel Parameters","title":"Flux.destructure","text":"","category":"section"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"If we don't want to write an explicit function to construct the kernel, we can alternatively use the Flux.destructure function. Again, we need to ensure that the parameters are positive. Note that the exp function is now part of the loss function, instead of part of the kernel construction.","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"We could also use ParameterHandling.jl here. To do so, one would remove the exps from the loss function below and call loss ∘ unflatten as above.","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"θ = [1.1, 0.1, 0.01, 0.001]\n\nkernel = (θ[1] * SqExponentialKernel() + θ[2] * Matern32Kernel()) ∘ ScaleTransform(θ[3])\n\nparams, kernelc = Flux.destructure(kernel);","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"This returns the trainable params of the kernel and a function to reconstruct the kernel.","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"kernelc(params)","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"Sum of 2 kernels:\n\tSquared Exponential Kernel (metric = Distances.Euclidean(0.0))\n\t\t\t- σ² = 1.1\n\tMatern 3/2 Kernel (metric = Distances.Euclidean(0.0))\n\t\t\t- σ² = 0.1\n\t- Scale Transform (s = 0.01)","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"From theory we know the prediction for a test set x given the kernel parameters and normalization constant","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"function f(x, x_train, y_train, θ)\n k = kernelc(θ[1:3])\n return kernelmatrix(k, x, x_train) * ((kernelmatrix(k, x_train) + (θ[4]) * I) \\ y_train)\nend\n\nfunction loss(θ)\n ŷ = f(x_train, x_train, y_train, exp.(θ))\n return norm(y_train - ŷ) + exp(θ[4]) * norm(ŷ)\nend","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"Cost for one step","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"@benchmark let θt = θ[:], optt = Optimise.ADAGrad(0.5)\n grads = only((Zygote.gradient(loss, θt)))\n Optimise.update!(optt, θt, grads)\nend","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"BenchmarkTools.Trial: 5600 samples with 1 evaluation.\n Range (min … max): 627.821 μs … 7.947 ms ┊ GC (min … max): 0.00% … 32.27%\n Time (median): 705.877 μs ┊ GC (median): 0.00%\n Time (mean ± σ): 889.487 μs ± 673.812 μs ┊ GC (mean ± σ): 19.23% ± 19.06%\n\n ▄█▆▂ ▁▂▂▁ ▁\n ████▇▆▆▇▅▃▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▄▇████ █\n 628 μs Histogram: log(frequency) by time 3.38 ms <\n\n Memory estimate: 2.98 MiB, allocs estimate: 1556.","category":"page"},{"location":"examples/train-kernel-parameters/#Training-the-model-3","page":"Train Kernel Parameters","title":"Training the model","text":"","category":"section"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"The loss at our initial parameter values:","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"θ = log.([1.1, 0.1, 0.01, 0.001]) # Initial vector\nloss(θ)","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"2.613933959118708","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"Initialize optimizer","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"opt = Optimise.ADAGrad(0.5)","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"Optimize","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"for i in 1:15\n grads = only((Zygote.gradient(loss, θ)))\n Optimise.update!(opt, θ, grads)\nend","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"Final loss","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"loss(θ)","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"0.5241118228076058","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"
      \n
      Package and system information
      \n
      \nPackage information (click to expand)\n
      \nStatus `~/work/KernelFunctions.jl/KernelFunctions.jl/examples/train-kernel-parameters/Project.toml`\n  [6e4b80f9] BenchmarkTools v1.3.2\n  [31c24e10] Distributions v0.25.103\n  [587475ba] Flux v0.14.6\n  [f6369f11] ForwardDiff v0.10.36\n  [ec8451be] KernelFunctions v0.10.59 `/home/runner/work/KernelFunctions.jl/KernelFunctions.jl#ec19a94`\n  [98b081ad] Literate v2.16.0\n  [2412ca09] ParameterHandling v0.4.7\n  [91a5bcdd] Plots v1.39.0\n  [e88e6eb3] Zygote v0.6.67\n  [37e2e46d] LinearAlgebra\n
      \nTo reproduce this notebook's package environment, you can\n\ndownload the full Manifest.toml.\n
      \n
      \nSystem information (click to expand)\n
      \nJulia Version 1.9.4\nCommit 8e5136fa297 (2023-11-14 08:46 UTC)\nBuild Info:\n  Official https://julialang.org/ release\nPlatform Info:\n  OS: Linux (x86_64-linux-gnu)\n  CPU: 4 × AMD EPYC 7763 64-Core Processor\n  WORD_SIZE: 64\n  LIBM: libopenlibm\n  LLVM: libLLVM-14.0.6 (ORCJIT, znver3)\n  Threads: 1 on 4 virtual cores\nEnvironment:\n  JULIA_DEBUG = Documenter\n  JULIA_LOAD_PATH = :/home/runner/.julia/packages/JuliaGPsDocs/7M86H/src\n
      \n
      ","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"This page was generated using Literate.jl.","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"EditURL = \"../../../../examples/kernel-ridge-regression/script.jl\"","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"EditURL = \"https://github.com/JuliaGaussianProcesses/KernelFunctions.jl/blob/master/examples/kernel-ridge-regression/script.jl\"","category":"page"},{"location":"examples/kernel-ridge-regression/#Kernel-Ridge-Regression","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"","category":"section"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"(Image: )","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"You are seeing the HTML output generated by Documenter.jl and Literate.jl from the Julia source file. The corresponding notebook can be viewed in nbviewer.","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"Building on linear regression, we can fit non-linear data sets by introducing a feature space. In a higher-dimensional feature space, we can overfit the data; ridge regression introduces regularization to avoid this. In this notebook we show how we can use KernelFunctions.jl for kernel ridge regression.","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"# Loading and setup of required packages\nusing KernelFunctions\nusing LinearAlgebra\nusing Distributions\n\n# Plotting\nusing Plots;\ndefault(; lw=2.0, legendfontsize=11.0, ylims=(-150, 500));\n\nusing Random: seed!\nseed!(42);","category":"page"},{"location":"examples/kernel-ridge-regression/#Toy-data","page":"Kernel Ridge Regression","title":"Toy data","text":"","category":"section"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"Here we use a one-dimensional toy problem. We generate data using the fourth-order polynomial f(x) = (x+4)(x+1)(x-1)(x-3):","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"f_truth(x) = (x + 4) * (x + 1) * (x - 1) * (x - 3)\n\nx_train = -5:0.5:5\nx_test = -7:0.1:7\n\nnoise = rand(Uniform(-20, 20), length(x_train))\ny_train = f_truth.(x_train) + noise\ny_test = f_truth.(x_test)\n\nplot(x_test, y_test; label=raw\"$f(x)$\")\nscatter!(x_train, y_train; seriescolor=1, label=\"observations\")","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","category":"page"},{"location":"examples/kernel-ridge-regression/#Linear-regression","page":"Kernel Ridge Regression","title":"Linear regression","text":"","category":"section"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"For training inputs mathrmX=(mathbfx_n)_n=1^N and observations mathbfy=(y_n)_n=1^N, the linear regression weights mathbfw using the least-squares estimator are given by","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"mathbfw = (mathrmX^top mathrmX)^-1 mathrmX^top mathbfy","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"We predict at test inputs mathbfx_* using","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"haty_* = mathbfx_*^top mathbfw","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"This is implemented by linear_regression:","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"function linear_regression(X, y, Xstar)\n weights = (X' * X) \\ (X' * y)\n return Xstar * weights\nend;","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"A linear regression fit to the above data set:","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"y_pred = linear_regression(x_train, y_train, x_test)\nscatter(x_train, y_train; label=\"observations\")\nplot!(x_test, y_pred; label=\"linear fit\")","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","category":"page"},{"location":"examples/kernel-ridge-regression/#Featurization","page":"Kernel Ridge Regression","title":"Featurization","text":"","category":"section"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"We can improve the fit by including additional features, i.e. generalizing to tildemathrmX = (phi(x_n))_n=1^N, where phi(x) constructs a feature vector for each input x. Here we include powers of the input, phi(x) = (1 x x^2 dots x^d):","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"function featurize_poly(x; degree=1)\n return repeat(x, 1, degree + 1) .^ (0:degree)'\nend\n\nfunction featurized_fit_and_plot(degree)\n X = featurize_poly(x_train; degree=degree)\n Xstar = featurize_poly(x_test; degree=degree)\n y_pred = linear_regression(X, y_train, Xstar)\n scatter(x_train, y_train; legend=false, title=\"fit of order $degree\")\n return plot!(x_test, y_pred)\nend\n\nplot((featurized_fit_and_plot(degree) for degree in 1:4)...)","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"Note that the fit becomes perfect when we include exactly as many orders in the features as we have in the underlying polynomial (4).","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"However, when increasing the number of features, we can quickly overfit to noise in the data set:","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"featurized_fit_and_plot(20)","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","category":"page"},{"location":"examples/kernel-ridge-regression/#Ridge-regression","page":"Kernel Ridge Regression","title":"Ridge regression","text":"","category":"section"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"To counteract this unwanted behaviour, we can introduce regularization. This leads to ridge regression with L_2 regularization of the weights (Tikhonov regularization). Instead of the weights in linear regression,","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"mathbfw = (mathrmX^top mathrmX)^-1 mathrmX^top mathbfy","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"we introduce the ridge parameter lambda:","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"mathbfw = (mathrmX^top mathrmX + lambda mathbb1)^-1 mathrmX^top mathbfy","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"As before, we predict at test inputs mathbfx_* using","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"haty_* = mathbfx_*^top mathbfw","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"This is implemented by ridge_regression:","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"function ridge_regression(X, y, Xstar, lambda)\n weights = (X' * X + lambda * I) \\ (X' * y)\n return Xstar * weights\nend\n\nfunction regularized_fit_and_plot(degree, lambda)\n X = featurize_poly(x_train; degree=degree)\n Xstar = featurize_poly(x_test; degree=degree)\n y_pred = ridge_regression(X, y_train, Xstar, lambda)\n scatter(x_train, y_train; legend=false, title=\"\\$\\\\lambda=$lambda\\$\")\n return plot!(x_test, y_pred)\nend\n\nplot((regularized_fit_and_plot(20, lambda) for lambda in (1e-3, 1e-2, 1e-1, 1))...)","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","category":"page"},{"location":"examples/kernel-ridge-regression/#Kernel-ridge-regression","page":"Kernel Ridge Regression","title":"Kernel ridge regression","text":"","category":"section"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"Instead of constructing the feature matrix explicitly, we can use kernels to replace inner products of feature vectors with a kernel evaluation: langle phi(x) phi(x) rangle = k(x x) or tildemathrmX tildemathrmX^top = mathrmK, where mathrmK_ij = k(x_i x_j).","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"To apply this \"kernel trick\" to ridge regression, we can rewrite the ridge estimate for the weights","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"mathbfw = (mathrmX^top mathrmX + lambda mathbb1)^-1 mathrmX^top mathbfy","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"using the matrix inversion lemma as","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"mathbfw = mathrmX^top (mathrmX mathrmX^top + lambda mathbb1)^-1 mathbfy","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"where we can now replace the inner product with the kernel matrix,","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"mathbfw = mathrmX^top (mathrmK + lambda mathbb1)^-1 mathbfy","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"And the prediction yields another inner product,","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"haty_* = mathbfx_*^top mathbfw = langle mathbfx_* mathbfw rangle = mathbfk_* (mathrmK + lambda mathbb1)^-1 mathbfy","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"where (mathbfk_*)_n = k(x_* x_n).","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"This is implemented by kernel_ridge_regression:","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"function kernel_ridge_regression(k, X, y, Xstar, lambda)\n K = kernelmatrix(k, X)\n kstar = kernelmatrix(k, Xstar, X)\n return kstar * ((K + lambda * I) \\ y)\nend;","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"Now, instead of explicitly constructing features, we can simply pass in a PolynomialKernel object:","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"function kernelized_fit_and_plot(kernel, lambda=1e-4)\n y_pred = kernel_ridge_regression(kernel, x_train, y_train, x_test, lambda)\n if kernel isa PolynomialKernel\n title = string(\"order \", kernel.degree)\n else\n title = string(nameof(typeof(kernel)))\n end\n scatter(x_train, y_train; label=nothing)\n return plot!(x_test, y_pred; label=nothing, title=title)\nend\n\nplot((kernelized_fit_and_plot(PolynomialKernel(; degree=degree, c=1)) for degree in 1:4)...)","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"However, we can now also use kernels that would have an infinite-dimensional feature expansion, such as the squared exponential kernel:","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"kernelized_fit_and_plot(SqExponentialKernel())","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"
      \n
      Package and system information
      \n
      \nPackage information (click to expand)\n
      \nStatus `~/work/KernelFunctions.jl/KernelFunctions.jl/examples/kernel-ridge-regression/Project.toml`\n  [31c24e10] Distributions v0.25.103\n  [ec8451be] KernelFunctions v0.10.59 `/home/runner/work/KernelFunctions.jl/KernelFunctions.jl#ec19a94`\n  [98b081ad] Literate v2.16.0\n  [91a5bcdd] Plots v1.39.0\n  [37e2e46d] LinearAlgebra\n
      \nTo reproduce this notebook's package environment, you can\n\ndownload the full Manifest.toml.\n
      \n
      \nSystem information (click to expand)\n
      \nJulia Version 1.9.4\nCommit 8e5136fa297 (2023-11-14 08:46 UTC)\nBuild Info:\n  Official https://julialang.org/ release\nPlatform Info:\n  OS: Linux (x86_64-linux-gnu)\n  CPU: 4 × AMD EPYC 7763 64-Core Processor\n  WORD_SIZE: 64\n  LIBM: libopenlibm\n  LLVM: libLLVM-14.0.6 (ORCJIT, znver3)\n  Threads: 1 on 4 virtual cores\nEnvironment:\n  JULIA_DEBUG = Documenter\n  JULIA_LOAD_PATH = :/home/runner/.julia/packages/JuliaGPsDocs/7M86H/src\n
      \n
      ","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"This page was generated using Literate.jl.","category":"page"},{"location":"kernels/","page":"Kernel Functions","title":"Kernel Functions","text":" CurrentModule = KernelFunctions","category":"page"},{"location":"kernels/#Kernel-Functions","page":"Kernel Functions","title":"Kernel Functions","text":"","category":"section"},{"location":"kernels/#base_kernels","page":"Kernel Functions","title":"Base Kernels","text":"","category":"section"},{"location":"kernels/","page":"Kernel Functions","title":"Kernel Functions","text":"These are the basic kernels without any transformation of the data. They are the building blocks of KernelFunctions.","category":"page"},{"location":"kernels/#Constant-Kernels","page":"Kernel Functions","title":"Constant Kernels","text":"","category":"section"},{"location":"kernels/","page":"Kernel Functions","title":"Kernel Functions","text":"ZeroKernel\nConstantKernel\nWhiteKernel\nEyeKernel","category":"page"},{"location":"kernels/#KernelFunctions.ZeroKernel","page":"Kernel Functions","title":"KernelFunctions.ZeroKernel","text":"ZeroKernel()\n\nZero kernel.\n\nDefinition\n\nFor inputs x x, the zero kernel is defined as\n\nk(x x) = 0\n\nThe output type depends on x and x.\n\nSee also: ConstantKernel\n\n\n\n\n\n","category":"type"},{"location":"kernels/#KernelFunctions.ConstantKernel","page":"Kernel Functions","title":"KernelFunctions.ConstantKernel","text":"ConstantKernel(; c::Real=1.0)\n\nKernel of constant value c.\n\nDefinition\n\nFor inputs x x, the kernel of constant value c geq 0 is defined as\n\nk(x x) = c\n\nSee also: ZeroKernel\n\n\n\n\n\n","category":"type"},{"location":"kernels/#KernelFunctions.WhiteKernel","page":"Kernel Functions","title":"KernelFunctions.WhiteKernel","text":"WhiteKernel()\n\nWhite noise kernel.\n\nDefinition\n\nFor inputs x x, the white noise kernel is defined as\n\nk(x x) = delta(x x)\n\n\n\n\n\n","category":"type"},{"location":"kernels/#KernelFunctions.EyeKernel","page":"Kernel Functions","title":"KernelFunctions.EyeKernel","text":"EyeKernel()\n\nAlias of WhiteKernel.\n\n\n\n\n\n","category":"type"},{"location":"kernels/#Cosine-Kernel","page":"Kernel Functions","title":"Cosine Kernel","text":"","category":"section"},{"location":"kernels/","page":"Kernel Functions","title":"Kernel Functions","text":"CosineKernel","category":"page"},{"location":"kernels/#KernelFunctions.CosineKernel","page":"Kernel Functions","title":"KernelFunctions.CosineKernel","text":"CosineKernel(; metric=Euclidean())\n\nCosine kernel with respect to the metric.\n\nDefinition\n\nFor inputs x x and metric d(cdot cdot), the cosine kernel is defined as\n\nk(x x) = cos(pi d(x x))\n\nBy default, d is the Euclidean metric d(x x) = x - x_2.\n\n\n\n\n\n","category":"type"},{"location":"kernels/#Exponential-Kernels","page":"Kernel Functions","title":"Exponential Kernels","text":"","category":"section"},{"location":"kernels/","page":"Kernel Functions","title":"Kernel Functions","text":"ExponentialKernel\nGibbsKernel\nLaplacianKernel\nSqExponentialKernel\nSEKernel\nGaussianKernel\nRBFKernel\nGammaExponentialKernel","category":"page"},{"location":"kernels/#KernelFunctions.ExponentialKernel","page":"Kernel Functions","title":"KernelFunctions.ExponentialKernel","text":"ExponentialKernel(; metric=Euclidean())\n\nExponential kernel with respect to the metric.\n\nDefinition\n\nFor inputs x x and metric d(cdot cdot), the exponential kernel is defined as\n\nk(x x) = expbig(- d(x x)big)\n\nBy default, d is the Euclidean metric d(x x) = x - x_2.\n\nSee also: GammaExponentialKernel\n\n\n\n\n\n","category":"type"},{"location":"kernels/#KernelFunctions.GibbsKernel","page":"Kernel Functions","title":"KernelFunctions.GibbsKernel","text":"GibbsKernel(; lengthscale)\n\nGibbs Kernel with lengthscale function lengthscale.\n\nThe Gibbs kernel is a non-stationary generalisation of the squared exponential kernel. The lengthscale parameter l becomes a function of position l(x).\n\nDefinition\n\nFor inputs x x, the Gibbs kernel with lengthscale function l(cdot) is defined as\n\nk(x x l) = sqrtleft(frac2 l(x) l(x)l(x)^2 + l(x)^2right)\nquad expleft(-frac(x - x)^2l(x)^2 + l(x)^2right)\n\nFor a constant function l equiv c, one recovers the SqExponentialKernel with lengthscale c.\n\nReferences\n\nMark N. Gibbs. \"Bayesian Gaussian Processes for Regression and Classication.\" PhD thesis, 1997\n\nChristopher J. Paciorek and Mark J. Schervish. \"Nonstationary Covariance Functions for Gaussian Process Regression\". NeurIPS, 2003\n\nSami Remes, Markus Heinonen, Samuel Kaski. \"Non-Stationary Spectral Kernels\". arXiV:1705.08736, 2017\n\nSami Remes, Markus Heinonen, Samuel Kaski. \"Neural Non-Stationary Spectral Kernel\". arXiv:1811.10978, 2018\n\n\n\n\n\n","category":"type"},{"location":"kernels/#KernelFunctions.LaplacianKernel","page":"Kernel Functions","title":"KernelFunctions.LaplacianKernel","text":"LaplacianKernel()\n\nAlias of ExponentialKernel.\n\n\n\n\n\n","category":"type"},{"location":"kernels/#KernelFunctions.SqExponentialKernel","page":"Kernel Functions","title":"KernelFunctions.SqExponentialKernel","text":"SqExponentialKernel(; metric=Euclidean())\n\nSquared exponential kernel with respect to the metric.\n\nDefinition\n\nFor inputs x x and metric d(cdot cdot), the squared exponential kernel is defined as\n\nk(x x) = expbigg(- fracd(x x)^22bigg)\n\nBy default, d is the Euclidean metric d(x x) = x - x_2.\n\nSee also: GammaExponentialKernel\n\n\n\n\n\n","category":"type"},{"location":"kernels/#KernelFunctions.SEKernel","page":"Kernel Functions","title":"KernelFunctions.SEKernel","text":"SEKernel()\n\nAlias of SqExponentialKernel.\n\n\n\n\n\n","category":"type"},{"location":"kernels/#KernelFunctions.GaussianKernel","page":"Kernel Functions","title":"KernelFunctions.GaussianKernel","text":"GaussianKernel()\n\nAlias of SqExponentialKernel.\n\n\n\n\n\n","category":"type"},{"location":"kernels/#KernelFunctions.RBFKernel","page":"Kernel Functions","title":"KernelFunctions.RBFKernel","text":"RBFKernel()\n\nAlias of SqExponentialKernel.\n\n\n\n\n\n","category":"type"},{"location":"kernels/#KernelFunctions.GammaExponentialKernel","page":"Kernel Functions","title":"KernelFunctions.GammaExponentialKernel","text":"GammaExponentialKernel(; γ::Real=1.0, metric=Euclidean())\n\nγ-exponential kernel with respect to the metric and with parameter γ.\n\nDefinition\n\nFor inputs x x and metric d(cdot cdot), the γ-exponential kernel[RW] with parameter gamma in (0 2 is defined as\n\nk(x x gamma) = expbig(- d(x x)^gammabig)\n\nBy default, d is the Euclidean metric d(x x) = x - x_2.\n\nSee also: ExponentialKernel, SqExponentialKernel\n\n[RW]: C. E. Rasmussen & C. K. I. Williams (2006). Gaussian Processes for Machine Learning.\n\n\n\n\n\n","category":"type"},{"location":"kernels/#Exponentiated-Kernel","page":"Kernel Functions","title":"Exponentiated Kernel","text":"","category":"section"},{"location":"kernels/","page":"Kernel Functions","title":"Kernel Functions","text":"ExponentiatedKernel","category":"page"},{"location":"kernels/#KernelFunctions.ExponentiatedKernel","page":"Kernel Functions","title":"KernelFunctions.ExponentiatedKernel","text":"ExponentiatedKernel()\n\nExponentiated kernel.\n\nDefinition\n\nFor inputs x x in mathbbR^d, the exponentiated kernel is defined as\n\nk(x x) = exp(x^top x)\n\n\n\n\n\n","category":"type"},{"location":"kernels/#Fractional-Brownian-Motion-Kernel","page":"Kernel Functions","title":"Fractional Brownian Motion Kernel","text":"","category":"section"},{"location":"kernels/","page":"Kernel Functions","title":"Kernel Functions","text":"FBMKernel","category":"page"},{"location":"kernels/#KernelFunctions.FBMKernel","page":"Kernel Functions","title":"KernelFunctions.FBMKernel","text":"FBMKernel(; h::Real=0.5)\n\nFractional Brownian motion kernel with Hurst index h.\n\nDefinition\n\nFor inputs x x in mathbbR^d, the fractional Brownian motion kernel with Hurst index h in 01 is defined as\n\nk(x x h) = fracx_2^2h + x_2^2h - x - x^2h2\n\n\n\n\n\n","category":"type"},{"location":"kernels/#Gabor-Kernel","page":"Kernel Functions","title":"Gabor Kernel","text":"","category":"section"},{"location":"kernels/","page":"Kernel Functions","title":"Kernel Functions","text":"gaborkernel","category":"page"},{"location":"kernels/#KernelFunctions.gaborkernel","page":"Kernel Functions","title":"KernelFunctions.gaborkernel","text":"gaborkernel(;\n sqexponential_transform=IdentityTransform(), cosine_tranform=IdentityTransform()\n)\n\nConstruct a Gabor kernel with transformations sqexponential_transform and cosine_transform of the inputs of the underlying squared exponential and cosine kernel, respectively.\n\nDefinition\n\nFor inputs x x in mathbbR^d, the Gabor kernel with transformations f and g of the inputs to the squared exponential and cosine kernel, respectively, is defined as\n\nk(x x f g) = expbigg(- frac f(x) - f(x)_2^22bigg)\n cosbig(pi g(x) - g(x)_2 big)\n\n\n\n\n\n","category":"function"},{"location":"kernels/#Matérn-Kernels","page":"Kernel Functions","title":"Matérn Kernels","text":"","category":"section"},{"location":"kernels/","page":"Kernel Functions","title":"Kernel Functions","text":"MaternKernel\nMatern12Kernel\nMatern32Kernel\nMatern52Kernel","category":"page"},{"location":"kernels/#KernelFunctions.MaternKernel","page":"Kernel Functions","title":"KernelFunctions.MaternKernel","text":"MaternKernel(; ν::Real=1.5, metric=Euclidean())\n\nMatérn kernel of order ν with respect to the metric.\n\nDefinition\n\nFor inputs x x and metric d(cdot cdot), the Matérn kernel of order nu 0 is defined as\n\nk(xxnu) = frac2^1-nuGamma(nu)big(sqrt2nu d(x x)big) K_nubig(sqrt2nu d(x x)big)\n\nwhere Gamma is the Gamma function and K_nu is the modified Bessel function of the second kind of order nu. By default, d is the Euclidean metric d(x x) = x - x_2.\n\nA Gaussian process with a Matérn kernel is lceil nu rceil - 1-times differentiable in the mean-square sense.\n\nnote: Note\nDifferentiation with respect to the order ν is not currently supported.\n\nSee also: Matern12Kernel, Matern32Kernel, Matern52Kernel\n\n\n\n\n\n","category":"type"},{"location":"kernels/#KernelFunctions.Matern12Kernel","page":"Kernel Functions","title":"KernelFunctions.Matern12Kernel","text":"Matern12Kernel()\n\nAlias of ExponentialKernel.\n\n\n\n\n\n","category":"type"},{"location":"kernels/#KernelFunctions.Matern32Kernel","page":"Kernel Functions","title":"KernelFunctions.Matern32Kernel","text":"Matern32Kernel(; metric=Euclidean())\n\nMatérn kernel of order 32 with respect to the metric.\n\nDefinition\n\nFor inputs x x and metric d(cdot cdot), the Matérn kernel of order 32 is given by\n\nk(x x) = big(1 + sqrt3 d(x x) big) expbig(- sqrt3 d(x x) big)\n\nBy default, d is the Euclidean metric d(x x) = x - x_2.\n\nSee also: MaternKernel\n\n\n\n\n\n","category":"type"},{"location":"kernels/#KernelFunctions.Matern52Kernel","page":"Kernel Functions","title":"KernelFunctions.Matern52Kernel","text":"Matern52Kernel(; metric=Euclidean())\n\nMatérn kernel of order 52 with respect to the metric.\n\nDefinition\n\nFor inputs x x and metric d(cdot cdot), the Matérn kernel of order 52 is given by\n\nk(x x) = bigg(1 + sqrt5 d(x x) + frac53 d(x x)^2bigg)\n expbig(- sqrt5 d(x x) big)\n\nBy default, d is the Euclidean metric d(x x) = x - x_2.\n\nSee also: MaternKernel\n\n\n\n\n\n","category":"type"},{"location":"kernels/#Neural-Network-Kernel","page":"Kernel Functions","title":"Neural Network Kernel","text":"","category":"section"},{"location":"kernels/","page":"Kernel Functions","title":"Kernel Functions","text":"NeuralNetworkKernel","category":"page"},{"location":"kernels/#KernelFunctions.NeuralNetworkKernel","page":"Kernel Functions","title":"KernelFunctions.NeuralNetworkKernel","text":"NeuralNetworkKernel()\n\nKernel of a Gaussian process obtained as the limit of a Bayesian neural network with a single hidden layer as the number of units goes to infinity.\n\nDefinition\n\nConsider the single-layer Bayesian neural network f colon mathbbR^d to mathbbR with h hidden units defined by\n\nf(x b v u) = b + sqrtfracpi2 sum_i=1^h v_i mathrmerfbig(u_i^top xbig)\n\nwhere mathrmerf is the error function, and with prior distributions\n\nbeginaligned\nb sim mathcalN(0 sigma_b^2)\nv sim mathcalN(0 sigma_v^2 mathrmI_hh)\nu_i sim mathcalN(0 mathrmI_d2) qquad (i = 1ldotsh)\nendaligned\n\nAs h to infty, the neural network converges to the Gaussian process\n\ng(cdot) sim mathcalGPbig(0 sigma_b^2 + sigma_v^2 k(cdot cdot)big)\n\nwhere the neural network kernel k is given by\n\nk(x x) = arcsinleft(fracx^top xsqrtbig(1 + x^2_2big) big(1 + x_2^2big)right)\n\nfor inputs x x in mathbbR^d.[CW]\n\n[CW]: C. K. I. Williams (1998). Computation with infinite neural networks.\n\n\n\n\n\n","category":"type"},{"location":"kernels/#Periodic-Kernel","page":"Kernel Functions","title":"Periodic Kernel","text":"","category":"section"},{"location":"kernels/","page":"Kernel Functions","title":"Kernel Functions","text":"PeriodicKernel\nPeriodicKernel(::DataType, ::Int)","category":"page"},{"location":"kernels/#KernelFunctions.PeriodicKernel","page":"Kernel Functions","title":"KernelFunctions.PeriodicKernel","text":"PeriodicKernel(; r::AbstractVector=ones(Float64, 1))\n\nPeriodic kernel with parameter r.\n\nDefinition\n\nFor inputs x x in mathbbR^d, the periodic kernel with parameter r_i 0 is defined[DM] as\n\nk(x x r) = expbigg(- frac12 sum_i=1^d bigg(fracsinbig(pi(x_i - x_i)big)r_ibigg)^2bigg)\n\n[DM]: D. J. C. MacKay (1998). Introduction to Gaussian Processes.\n\n\n\n\n\n","category":"type"},{"location":"kernels/#KernelFunctions.PeriodicKernel-Tuple{DataType, Int64}","page":"Kernel Functions","title":"KernelFunctions.PeriodicKernel","text":"PeriodicKernel([T=Float64, dims::Int=1])\n\nCreate a PeriodicKernel with parameter r=ones(T, dims).\n\n\n\n\n\n","category":"method"},{"location":"kernels/#Piecewise-Polynomial-Kernel","page":"Kernel Functions","title":"Piecewise Polynomial Kernel","text":"","category":"section"},{"location":"kernels/","page":"Kernel Functions","title":"Kernel Functions","text":"PiecewisePolynomialKernel","category":"page"},{"location":"kernels/#KernelFunctions.PiecewisePolynomialKernel","page":"Kernel Functions","title":"KernelFunctions.PiecewisePolynomialKernel","text":"PiecewisePolynomialKernel(; dim::Int, degree::Int=0, metric=Euclidean())\nPiecewisePolynomialKernel{degree}(; dim::Int, metric=Euclidean())\n\nPiecewise polynomial kernel of degree degree for inputs of dimension dim with support in the unit ball with respect to the metric.\n\nDefinition\n\nFor inputs x x of dimension m and metric d(cdot cdot), the piecewise polynomial kernel of degree v in 0123 is defined as\n\nk(x x v) = max(1 - d(x x) 0)^alpha(vm) f_vm(d(x x))\n\nwhere alpha(v m) = lfloor fracm2rfloor + 2v + 1 and f_vm are polynomials of degree v given by\n\nbeginaligned\nf_0m(r) = 1 \nf_1m(r) = 1 + (j + 1) r \nf_2m(r) = 1 + (j + 2) r + big((j^2 + 4j + 3) 3big) r^2 \nf_3m(r) = 1 + (j + 3) r + big((6 j^2 + 36j + 45) 15big) r^2 + big((j^3 + 9 j^2 + 23j + 15) 15big) r^3\nendaligned\n\nwhere j = lfloor fracm2rfloor + v + 1. By default, d is the Euclidean metric d(x x) = x - x_2.\n\nThe kernel is 2v times continuously differentiable and the corresponding Gaussian process is hence v times mean-square differentiable.\n\n\n\n\n\n","category":"type"},{"location":"kernels/#Polynomial-Kernels","page":"Kernel Functions","title":"Polynomial Kernels","text":"","category":"section"},{"location":"kernels/","page":"Kernel Functions","title":"Kernel Functions","text":"LinearKernel\nPolynomialKernel","category":"page"},{"location":"kernels/#KernelFunctions.LinearKernel","page":"Kernel Functions","title":"KernelFunctions.LinearKernel","text":"LinearKernel(; c::Real=0.0)\n\nLinear kernel with constant offset c.\n\nDefinition\n\nFor inputs x x in mathbbR^d, the linear kernel with constant offset c geq 0 is defined as\n\nk(x x c) = x^top x + c\n\nSee also: PolynomialKernel\n\n\n\n\n\n","category":"type"},{"location":"kernels/#KernelFunctions.PolynomialKernel","page":"Kernel Functions","title":"KernelFunctions.PolynomialKernel","text":"PolynomialKernel(; degree::Int=2, c::Real=0.0)\n\nPolynomial kernel of degree degree with constant offset c.\n\nDefinition\n\nFor inputs x x in mathbbR^d, the polynomial kernel of degree nu in mathbbN with constant offset c geq 0 is defined as\n\nk(x x c nu) = (x^top x + c)^nu\n\nSee also: LinearKernel\n\n\n\n\n\n","category":"type"},{"location":"kernels/#Rational-Kernels","page":"Kernel Functions","title":"Rational Kernels","text":"","category":"section"},{"location":"kernels/","page":"Kernel Functions","title":"Kernel Functions","text":"RationalKernel\nRationalQuadraticKernel\nGammaRationalKernel","category":"page"},{"location":"kernels/#KernelFunctions.RationalKernel","page":"Kernel Functions","title":"KernelFunctions.RationalKernel","text":"RationalKernel(; α::Real=2.0, metric=Euclidean())\n\nRational kernel with shape parameter α and given metric.\n\nDefinition\n\nFor inputs x x and metric d(cdot cdot), the rational kernel with shape parameter alpha 0 is defined as\n\nk(x x alpha) = bigg(1 + fracd(x x)alphabigg)^-alpha\n\nBy default, d is the Euclidean metric d(x x) = x - x_2.\n\nThe ExponentialKernel is recovered in the limit as alpha to infty.\n\nSee also: GammaRationalKernel\n\n\n\n\n\n","category":"type"},{"location":"kernels/#KernelFunctions.RationalQuadraticKernel","page":"Kernel Functions","title":"KernelFunctions.RationalQuadraticKernel","text":"RationalQuadraticKernel(; α::Real=2.0, metric=Euclidean())\n\nRational-quadratic kernel with respect to the metric and with shape parameter α.\n\nDefinition\n\nFor inputs x x and metric d(cdot cdot), the rational-quadratic kernel with shape parameter alpha 0 is defined as\n\nk(x x alpha) = bigg(1 + fracd(x x)^22alphabigg)^-alpha\n\nBy default, d is the Euclidean metric d(x x) = x - x_2.\n\nThe SqExponentialKernel is recovered in the limit as alpha to infty.\n\nSee also: GammaRationalKernel\n\n\n\n\n\n","category":"type"},{"location":"kernels/#KernelFunctions.GammaRationalKernel","page":"Kernel Functions","title":"KernelFunctions.GammaRationalKernel","text":"GammaRationalKernel(; α::Real=2.0, γ::Real=1.0, metric=Euclidean())\n\nγ-rational kernel with respect to the metric with shape parameters α and γ.\n\nDefinition\n\nFor inputs x x and metric d(cdot cdot), the γ-rational kernel with shape parameters alpha 0 and gamma in (0 2 is defined as\n\nk(x x alpha gamma) = bigg(1 + fracd(x x)^gammaalphabigg)^-alpha\n\nBy default, d is the Euclidean metric d(x x) = x - x_2.\n\nThe GammaExponentialKernel is recovered in the limit as alpha to infty.\n\nSee also: RationalKernel, RationalQuadraticKernel\n\n\n\n\n\n","category":"type"},{"location":"kernels/#Spectral-Mixture-Kernels","page":"Kernel Functions","title":"Spectral Mixture Kernels","text":"","category":"section"},{"location":"kernels/","page":"Kernel Functions","title":"Kernel Functions","text":"spectral_mixture_kernel\nspectral_mixture_product_kernel","category":"page"},{"location":"kernels/#KernelFunctions.spectral_mixture_kernel","page":"Kernel Functions","title":"KernelFunctions.spectral_mixture_kernel","text":"spectral_mixture_kernel(\n h::Kernel=SqExponentialKernel(),\n αs::AbstractVector{<:Real},\n γs::AbstractMatrix{<:Real},\n ωs::AbstractMatrix{<:Real},\n)\n\nwhere αs are the weights of dimension (A, ), γs is the covariance matrix of dimension (D, A) and ωs are the mean vectors and is of dimension (D, A). Here, D is input dimension and A is the number of spectral components.\n\nh is the kernel, which defaults to SqExponentialKernel if not specified.\n\nwarning: Warning\nIf you want to make sure that the constructor is type-stable, you should provide StaticArrays arguments: αs as a StaticVector, γs and ωs as StaticMatrix.\n\nGeneralised Spectral Mixture kernel function. This family of functions is dense in the family of stationary real-valued kernels with respect to the pointwise convergence.[1]\n\n κ(x y) = αs (h(-(γs * t)^2) * cos(π * ωs * t) t = x - y\n\nReferences:\n\n[1] Generalized Spectral Kernels, by Yves-Laurent Kom Samo and Stephen J. Roberts\n[2] SM: Gaussian Process Kernels for Pattern Discovery and Extrapolation,\n ICML, 2013, by Andrew Gordon Wilson and Ryan Prescott Adams,\n[3] Covariance kernels for fast automatic pattern discovery and extrapolation\n with Gaussian processes, Andrew Gordon Wilson, PhD Thesis, January 2014.\n http://www.cs.cmu.edu/~andrewgw/andrewgwthesis.pdf\n[4] http://www.cs.cmu.edu/~andrewgw/pattern/.\n\n\n\n\n\n","category":"function"},{"location":"kernels/#KernelFunctions.spectral_mixture_product_kernel","page":"Kernel Functions","title":"KernelFunctions.spectral_mixture_product_kernel","text":"spectral_mixture_product_kernel(\n h::Kernel=SqExponentialKernel(),\n αs::AbstractMatrix{<:Real},\n γs::AbstractMatrix{<:Real},\n ωs::AbstractMatrix{<:Real},\n)\n\nwhere αs are the weights of dimension (D, A), γs is the covariance matrix of dimension (D, A) and ωs are the mean vectors and is of dimension (D, A). Here, D is input dimension and A is the number of spectral components.\n\nSpectral Mixture Product Kernel. With enough components A, the SMP kernel can model any product kernel to arbitrary precision, and is flexible even with a small number of components [1]\n\nh is the kernel, which defaults to SqExponentialKernel if not specified.\n\n κ(x y) = Πᵢ₁ᴷ Σ(αsᵢᵀ * (h(-(γsᵢᵀ * tᵢ)²) * cos(ωsᵢᵀ * tᵢ))) tᵢ = xᵢ - yᵢ\n\nReferences:\n\n[1] GPatt: Fast Multidimensional Pattern Extrapolation with GPs,\n arXiv 1310.5288, 2013, by Andrew Gordon Wilson, Elad Gilboa,\n Arye Nehorai and John P. Cunningham\n\n\n\n\n\n","category":"function"},{"location":"kernels/#Wiener-Kernel","page":"Kernel Functions","title":"Wiener Kernel","text":"","category":"section"},{"location":"kernels/","page":"Kernel Functions","title":"Kernel Functions","text":"WienerKernel","category":"page"},{"location":"kernels/#KernelFunctions.WienerKernel","page":"Kernel Functions","title":"KernelFunctions.WienerKernel","text":"WienerKernel(; i::Int=0)\nWienerKernel{i}()\n\nThe i-times integrated Wiener process kernel function.\n\nDefinition\n\nFor inputs x x in mathbbR^d, the i-times integrated Wiener process kernel with i in -1 0 1 2 3 is defined[SDH] as\n\nk_i(x x) = begincases\n delta(x x) textif i=-1\n minbig(x_2 x_2big) textif i=0\n a_i1^-1 minbig(x_2 x_2big)^2i + 1\n + a_i2^-1 x - x_2 r_ibig(x_2 x_2big) minbig(x_2 x_2big)^i + 1\n textotherwise\nendcases\n\nwhere the coefficients a are given by\n\na = beginbmatrix\n3 2 \n20 12 \n252 720\nendbmatrix\n\nand the functions r_i are defined as\n\nbeginaligned\nr_1(t t) = 1\nr_2(t t) = t + t - fracmin(t t)2\nr_3(t t) = 5 max(t t)^2 + 2 tt + 3 min(t t)^2\nendaligned\n\nThe WhiteKernel is recovered for i = -1.\n\n[SDH]: Schober, Duvenaud & Hennig (2014). Probabilistic ODE Solvers with Runge-Kutta Means.\n\n\n\n\n\n","category":"type"},{"location":"kernels/#Composite-Kernels","page":"Kernel Functions","title":"Composite Kernels","text":"","category":"section"},{"location":"kernels/","page":"Kernel Functions","title":"Kernel Functions","text":"The modular design of KernelFunctions uses base kernels as building blocks for more complex kernels. There are a variety of composite kernels implemented, including those which transform the inputs to a wrapped kernel to implement length scales, scale the variance of a kernel, and sum or multiply collections of kernels together.","category":"page"},{"location":"kernels/","page":"Kernel Functions","title":"Kernel Functions","text":"TransformedKernel\n∘(::Kernel, ::Transform)\nScaledKernel\nKernelSum\nKernelProduct\nKernelTensorProduct\nNormalizedKernel","category":"page"},{"location":"kernels/#KernelFunctions.TransformedKernel","page":"Kernel Functions","title":"KernelFunctions.TransformedKernel","text":"TransformedKernel(k::Kernel, t::Transform)\n\nKernel derived from k for which inputs are transformed via a Transform t.\n\nThe preferred way to create kernels with input transformations is to use the composition operator ∘ or its alias compose instead of TransformedKernel directly since this allows optimized implementations for specific kernels and transformations.\n\nSee also: ∘\n\n\n\n\n\n","category":"type"},{"location":"kernels/#Base.:∘-Tuple{Kernel, Transform}","page":"Kernel Functions","title":"Base.:∘","text":"kernel ∘ transform\n∘(kernel, transform)\ncompose(kernel, transform)\n\nCompose a kernel with a transformation transform of its inputs.\n\nThe prefix forms support chains of multiple transformations: ∘(kernel, transform1, transform2) = kernel ∘ transform1 ∘ transform2.\n\nDefinition\n\nFor inputs x x, the transformed kernel widetildek derived from kernel k by input transformation t is defined as\n\nwidetildek(x x k t) = kbig(t(x) t(x)big)\n\nExamples\n\njulia> (SqExponentialKernel() ∘ ScaleTransform(0.5))(0, 2) == exp(-0.5)\ntrue\n\njulia> ∘(ExponentialKernel(), ScaleTransform(2), ScaleTransform(0.5))(1, 2) == exp(-1)\ntrue\n\nSee also: TransformedKernel\n\n\n\n\n\n","category":"method"},{"location":"kernels/#KernelFunctions.ScaledKernel","page":"Kernel Functions","title":"KernelFunctions.ScaledKernel","text":"ScaledKernel(k::Kernel, σ²::Real=1.0)\n\nScaled kernel derived from k by multiplication with variance σ².\n\nDefinition\n\nFor inputs x x, the scaled kernel widetildek derived from kernel k by multiplication with variance sigma^2 0 is defined as\n\nwidetildek(x x k sigma^2) = sigma^2 k(x x)\n\n\n\n\n\n","category":"type"},{"location":"kernels/#KernelFunctions.KernelSum","page":"Kernel Functions","title":"KernelFunctions.KernelSum","text":"KernelSum <: Kernel\n\nCreate a sum of kernels. One can also use the operator +.\n\nThere are various ways in which you create a KernelSum:\n\nThe simplest way to specify a KernelSum would be to use the overloaded + operator. This is equivalent to creating a KernelSum by specifying the kernels as the arguments to the constructor. \n\njulia> k1 = SqExponentialKernel(); k2 = LinearKernel(); X = rand(5);\n\njulia> (k = k1 + k2) == KernelSum(k1, k2)\ntrue\n\njulia> kernelmatrix(k1 + k2, X) == kernelmatrix(k1, X) .+ kernelmatrix(k2, X)\ntrue\n\njulia> kernelmatrix(k, X) == kernelmatrix(k1 + k2, X)\ntrue\n\nYou could also specify a KernelSum by providing a Tuple or a Vector of the kernels to be summed. We suggest you to use a Tuple when you have fewer components and a Vector when dealing with a large number of components.\n\njulia> KernelSum((k1, k2)) == k1 + k2\ntrue\n\njulia> KernelSum([k1, k2]) == KernelSum((k1, k2)) == k1 + k2\ntrue\n\n\n\n\n\n","category":"type"},{"location":"kernels/#KernelFunctions.KernelProduct","page":"Kernel Functions","title":"KernelFunctions.KernelProduct","text":"KernelProduct <: Kernel\n\nCreate a product of kernels. One can also use the overloaded operator *.\n\nThere are various ways in which you create a KernelProduct:\n\nThe simplest way to specify a KernelProduct would be to use the overloaded * operator. This is equivalent to creating a KernelProduct by specifying the kernels as the arguments to the constructor. \n\njulia> k1 = SqExponentialKernel(); k2 = LinearKernel(); X = rand(5);\n\njulia> (k = k1 * k2) == KernelProduct(k1, k2)\ntrue\n\njulia> kernelmatrix(k1 * k2, X) == kernelmatrix(k1, X) .* kernelmatrix(k2, X)\ntrue\n\njulia> kernelmatrix(k, X) == kernelmatrix(k1 * k2, X)\ntrue\n\nYou could also specify a KernelProduct by providing a Tuple or a Vector of the kernels to be multiplied. We suggest you to use a Tuple when you have fewer components and a Vector when dealing with a large number of components.\n\njulia> KernelProduct((k1, k2)) == k1 * k2\ntrue\n\njulia> KernelProduct([k1, k2]) == KernelProduct((k1, k2)) == k1 * k2\ntrue\n\n\n\n\n\n","category":"type"},{"location":"kernels/#KernelFunctions.KernelTensorProduct","page":"Kernel Functions","title":"KernelFunctions.KernelTensorProduct","text":"KernelTensorProduct\n\nTensor product of kernels.\n\nDefinition\n\nFor inputs x = (x_1 ldots x_n) and x = (x_1 ldots x_n), the tensor product of kernels k_1 ldots k_n is defined as\n\nk(x x k_1 ldots k_n) = Big(bigotimes_i=1^n k_iBig)(x x) = prod_i=1^n k_i(x_i x_i)\n\nConstruction\n\nThe simplest way to specify a KernelTensorProduct is to use the overloaded tensor operator or its alias ⊗ (can be typed by \\otimes).\n\njulia> k1 = SqExponentialKernel(); k2 = LinearKernel(); X = rand(5, 2);\n\njulia> kernelmatrix(k1 ⊗ k2, RowVecs(X)) == kernelmatrix(k1, X[:, 1]) .* kernelmatrix(k2, X[:, 2])\ntrue\n\nYou can also specify a KernelTensorProduct by providing kernels as individual arguments or as an iterable data structure such as a Tuple or a Vector. Using a tuple or individual arguments guarantees that KernelTensorProduct is concretely typed but might lead to large compilation times if the number of kernels is large.\n\njulia> KernelTensorProduct(k1, k2) == k1 ⊗ k2\ntrue\n\njulia> KernelTensorProduct((k1, k2)) == k1 ⊗ k2\ntrue\n\njulia> KernelTensorProduct([k1, k2]) == k1 ⊗ k2\ntrue\n\n\n\n\n\n","category":"type"},{"location":"kernels/#KernelFunctions.NormalizedKernel","page":"Kernel Functions","title":"KernelFunctions.NormalizedKernel","text":"NormalizedKernel(k::Kernel)\n\nA normalized kernel derived from k.\n\nDefinition\n\nFor inputs x x, the normalized kernel widetildek derived from kernel k is defined as\n\nwidetildek(x x k) = frack(x x)sqrtk(x x) k(x x)\n\n\n\n\n\n","category":"type"},{"location":"kernels/#Multi-output-Kernels","page":"Kernel Functions","title":"Multi-output Kernels","text":"","category":"section"},{"location":"kernels/","page":"Kernel Functions","title":"Kernel Functions","text":"Kernelfunctions implements multi-output kernels as scalar kernels on an extended output domain. For more details on this read the section on inputs for multi-output GPs.","category":"page"},{"location":"kernels/","page":"Kernel Functions","title":"Kernel Functions","text":"For a function f(x) rightarrow y denote the inputs as x x, such that we compute the covariance between output components y_p and y_p. The total number of outputs is m.","category":"page"},{"location":"kernels/","page":"Kernel Functions","title":"Kernel Functions","text":"MOKernel\nIndependentMOKernel\nLatentFactorMOKernel\nIntrinsicCoregionMOKernel\nLinearMixingModelKernel","category":"page"},{"location":"kernels/#KernelFunctions.MOKernel","page":"Kernel Functions","title":"KernelFunctions.MOKernel","text":"MOKernel\n\nAbstract type for kernels with multiple outpus.\n\n\n\n\n\n","category":"type"},{"location":"kernels/#KernelFunctions.IndependentMOKernel","page":"Kernel Functions","title":"KernelFunctions.IndependentMOKernel","text":"IndependentMOKernel(k::Kernel)\n\nKernel for multiple independent outputs with kernel k each.\n\nDefinition\n\nFor inputs x x and output dimensions p p, the kernel widetildek for independent outputs with kernel k each is defined as\n\nwidetildekbig((x p) (x p)big) = begincases\n k(x x) textif p = p \n 0 textotherwise\nendcases\n\nMathematically, it is equivalent to a matrix-valued kernel defined as\n\nwidetildeK(x x) = mathrmdiagbig(k(x x) ldots k(x x)big) in mathbbR^m times m\n\nwhere m is the number of outputs.\n\n\n\n\n\n","category":"type"},{"location":"kernels/#KernelFunctions.LatentFactorMOKernel","page":"Kernel Functions","title":"KernelFunctions.LatentFactorMOKernel","text":"LatentFactorMOKernel(g::AbstractVector{<:Kernel}, e::MOKernel, A::AbstractMatrix)\n\nKernel associated with the semiparametric latent factor model.\n\nDefinition\n\nFor inputs x x and output dimensions p_x p_x, the kernel is defined as[STJ]\n\nkbig((x p_x) (x p_x)big) = sum^Q_q=1 A_p_xqg_q(x x)A_p_xq\n + ebig((x p_x) (x p_x)big)\n\nwhere g_1 ldots g_Q are Q kernels, one for each latent process, e is a multi-output kernel for m outputs, and A is a matrix of weights for the kernels of size m times Q.\n\n[STJ]: M. Seeger, Y. Teh, & M. I. Jordan (2005). Semiparametric Latent Factor Models.\n\n\n\n\n\n","category":"type"},{"location":"kernels/#KernelFunctions.IntrinsicCoregionMOKernel","page":"Kernel Functions","title":"KernelFunctions.IntrinsicCoregionMOKernel","text":"IntrinsicCoregionMOKernel(; kernel::Kernel, B::AbstractMatrix)\n\nKernel associated with the intrinsic coregionalization model.\n\nDefinition\n\nFor inputs x x and output dimensions p p, the kernel is defined as[ARL]\n\nkbig((x p) (x p) B tildekbig) = B_p p tildekbig(x xbig)\n\nwhere B is a positive semidefinite matrix of size m times m, with m being the number of outputs, and tildek is a scalar-valued kernel shared by the latent processes.\n\n[ARL]: M. Álvarez, L. Rosasco, & N. Lawrence (2012). Kernels for Vector-Valued Functions: a Review.\n\n\n\n\n\n","category":"type"},{"location":"kernels/#KernelFunctions.LinearMixingModelKernel","page":"Kernel Functions","title":"KernelFunctions.LinearMixingModelKernel","text":"LinearMixingModelKernel(k::Kernel, H::AbstractMatrix)\nLinearMixingModelKernel(Tk::AbstractVector{<:Kernel},Th::AbstractMatrix)\n\nKernel associated with the linear mixing model, taking a vector of Q kernels and a Q × m mixing matrix H for a function with m outputs. Also accepts a single kernel k for use across all Q basis vectors. \n\nDefinition\n\nFor inputs x x and output dimensions p p, the kernel is defined as[BPTHST]\n\nkbig((x p) (x p)big) = H_pK(x x)H_p\n\nwhere K(x x) = Diag(k_1(x x) k_Q(x x)) with zero off-diagonal entries. H_p is the p-th column (p-th output) of H in mathbbR^Q times m representing Q basis vectors for the m dimensional output space of f. k_1 ldots k_Q are Q kernels, one for each latent process, H is a mixing matrix of Q basis vectors spanning the output space.\n\n[BPTHST]: Wessel P. Bruinsma, Eric Perim, Will Tebbutt, J. Scott Hosking, Arno Solin, Richard E. Turner (2020). Scalable Exact Inference in Multi-Output Gaussian Processes.\n\n\n\n\n\n","category":"type"},{"location":"api/#API-Library","page":"API","title":"API Library","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"CurrentModule = KernelFunctions","category":"page"},{"location":"api/#Functions","page":"API","title":"Functions","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"The KernelFunctions API comprises the following four functions.","category":"page"},{"location":"api/","page":"API","title":"API","text":"kernelmatrix\nkernelmatrix!\nkernelmatrix_diag\nkernelmatrix_diag!","category":"page"},{"location":"api/#KernelFunctions.kernelmatrix","page":"API","title":"KernelFunctions.kernelmatrix","text":"kernelmatrix(κ::Kernel, x::AbstractVector)\n\nCompute the kernel κ for each pair of inputs in x. Returns a matrix of size (length(x), length(x)) satisfying kernelmatrix(κ, x)[p, q] == κ(x[p], x[q]).\n\nkernelmatrix(κ::Kernel, x::AbstractVector, y::AbstractVector)\n\nCompute the kernel κ for each pair of inputs in x and y. Returns a matrix of size (length(x), length(y)) satisfying kernelmatrix(κ, x, y)[p, q] == κ(x[p], y[q]).\n\nkernelmatrix(κ::Kernel, X::AbstractMatrix; obsdim)\nkernelmatrix(κ::Kernel, X::AbstractMatrix, Y::AbstractMatrix; obsdim)\n\nIf obsdim=1, equivalent to kernelmatrix(κ, RowVecs(X)) and kernelmatrix(κ, RowVecs(X), RowVecs(Y)), respectively. If obsdim=2, equivalent to kernelmatrix(κ, ColVecs(X)) and kernelmatrix(κ, ColVecs(X), ColVecs(Y)), respectively.\n\nSee also: ColVecs, RowVecs\n\n\n\n\n\n","category":"function"},{"location":"api/#KernelFunctions.kernelmatrix!","page":"API","title":"KernelFunctions.kernelmatrix!","text":"kernelmatrix!(K::AbstractMatrix, κ::Kernel, x::AbstractVector)\nkernelmatrix!(K::AbstractMatrix, κ::Kernel, x::AbstractVector, y::AbstractVector)\n\nIn-place version of kernelmatrix where pre-allocated matrix K will be overwritten with the kernel matrix.\n\nkernelmatrix!(K::AbstractMatrix, κ::Kernel, X::AbstractMatrix; obsdim)\nkernelmatrix!(\n K::AbstractMatrix,\n κ::Kernel,\n X::AbstractMatrix,\n Y::AbstractMatrix;\n obsdim,\n)\n\nIf obsdim=1, equivalent to kernelmatrix!(K, κ, RowVecs(X)) and kernelmatrix(K, κ, RowVecs(X), RowVecs(Y)), respectively. If obsdim=2, equivalent to kernelmatrix!(K, κ, ColVecs(X)) and kernelmatrix(K, κ, ColVecs(X), ColVecs(Y)), respectively.\n\nSee also: ColVecs, RowVecs\n\n\n\n\n\n","category":"function"},{"location":"api/#KernelFunctions.kernelmatrix_diag","page":"API","title":"KernelFunctions.kernelmatrix_diag","text":"kernelmatrix_diag(κ::Kernel, x::AbstractVector)\n\nCompute the diagonal of kernelmatrix(κ, x) efficiently.\n\nkernelmatrix_diag(κ::Kernel, x::AbstractVector, y::AbstractVector)\n\nCompute the diagonal of kernelmatrix(κ, x, y) efficiently. Requires that x and y are the same length.\n\nkernelmatrix_diag(κ::Kernel, X::AbstractMatrix; obsdim)\nkernelmatrix_diag(κ::Kernel, X::AbstractMatrix, Y::AbstractMatrix; obsdim)\n\nIf obsdim=1, equivalent to kernelmatrix_diag(κ, RowVecs(X)) and kernelmatrix_diag(κ, RowVecs(X), RowVecs(Y)), respectively. If obsdim=2, equivalent to kernelmatrix_diag(κ, ColVecs(X)) and kernelmatrix_diag(κ, ColVecs(X), ColVecs(Y)), respectively.\n\nSee also: ColVecs, RowVecs\n\n\n\n\n\n","category":"function"},{"location":"api/#KernelFunctions.kernelmatrix_diag!","page":"API","title":"KernelFunctions.kernelmatrix_diag!","text":"kernelmatrix_diag!(K::AbstractVector, κ::Kernel, x::AbstractVector)\nkernelmatrix_diag!(K::AbstractVector, κ::Kernel, x::AbstractVector, y::AbstractVector)\n\nIn place version of kernelmatrix_diag.\n\nkernelmatrix_diag!(K::AbstractVector, κ::Kernel, X::AbstractMatrix; obsdim)\nkernelmatrix_diag!(\n K::AbstractVector,\n κ::Kernel,\n X::AbstractMatrix,\n Y::AbstractMatrix;\n obsdim\n)\n\nIf obsdim=1, equivalent to kernelmatrix_diag!(K, κ, RowVecs(X)) and kernelmatrix_diag!(K, κ, RowVecs(X), RowVecs(Y)), respectively. If obsdim=2, equivalent to kernelmatrix_diag!(K, κ, ColVecs(X)) and kernelmatrix_diag!(K, κ, ColVecs(X), ColVecs(Y)), respectively.\n\nSee also: ColVecs, RowVecs\n\n\n\n\n\n","category":"function"},{"location":"api/#Input-Types","page":"API","title":"Input Types","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"The above API operates on collections of inputs. All collections of inputs in KernelFunctions.jl are represented as AbstractVectors. To understand this choice, please see the design notes on collections of inputs. The length of any such AbstractVector is equal to the number of inputs in the collection. For example, this means that","category":"page"},{"location":"api/","page":"API","title":"API","text":"size(kernelmatrix(k, x)) == (length(x), length(x))","category":"page"},{"location":"api/","page":"API","title":"API","text":"is always true, for some Kernel k, and AbstractVector x.","category":"page"},{"location":"api/#Univariate-Inputs","page":"API","title":"Univariate Inputs","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"If each input to your kernel is Real-valued, then any AbstractVector{<:Real} is a valid representation for a collection of inputs. More generally, it's completely fine to represent a collection of inputs of type T as, for example, a Vector{T}. However, this may not be the most efficient way to represent collection of inputs. See Vector-Valued Inputs for an example.","category":"page"},{"location":"api/#Vector-Valued-Inputs","page":"API","title":"Vector-Valued Inputs","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"We recommend that collections of vector-valued inputs are stored in an AbstractMatrix{<:Real} when possible, and wrapped inside a ColVecs or RowVecs to make their interpretation clear:","category":"page"},{"location":"api/","page":"API","title":"API","text":"ColVecs\nRowVecs","category":"page"},{"location":"api/#KernelFunctions.ColVecs","page":"API","title":"KernelFunctions.ColVecs","text":"ColVecs(X::AbstractMatrix)\n\nA lightweight wrapper for an AbstractMatrix which interprets it as a vector-of-vectors, in which each column of X represents a single vector.\n\nThat is, by writing x = ColVecs(X), you are saying \"x is a vector-of-vectors, each of which has length size(X, 1). The total number of vectors is size(X, 2).\"\n\nPhrased differently, ColVecs(X) says that X should be interpreted as a vector of horizontally-concatenated column-vectors, hence the name ColVecs.\n\njulia> X = randn(2, 5);\n\njulia> x = ColVecs(X);\n\njulia> length(x) == 5\ntrue\n\njulia> X[:, 3] == x[3]\ntrue\n\nColVecs is related to RowVecs via transposition:\n\njulia> X = randn(2, 5);\n\njulia> ColVecs(X) == RowVecs(X')\ntrue\n\n\n\n\n\n","category":"type"},{"location":"api/#KernelFunctions.RowVecs","page":"API","title":"KernelFunctions.RowVecs","text":"RowVecs(X::AbstractMatrix)\n\nA lightweight wrapper for an AbstractMatrix which interprets it as a vector-of-vectors, in which each row of X represents a single vector.\n\nThat is, by writing x = RowVecs(X), you are saying \"x is a vector-of-vectors, each of which has length size(X, 2). The total number of vectors is size(X, 1).\"\n\nPhrased differently, RowVecs(X) says that X should be interpreted as a vector of vertically-concatenated row-vectors, hence the name RowVecs.\n\nInternally, the data continues to be represented as an AbstractMatrix, so using this type does not introduce any kind of performance penalty.\n\njulia> X = randn(5, 2);\n\njulia> x = RowVecs(X);\n\njulia> length(x) == 5\ntrue\n\njulia> X[3, :] == x[3]\ntrue\n\nRowVecs is related to ColVecs via transposition:\n\njulia> X = randn(5, 2);\n\njulia> RowVecs(X) == ColVecs(X')\ntrue\n\n\n\n\n\n","category":"type"},{"location":"api/","page":"API","title":"API","text":"These types are specialised upon to ensure good performance e.g. when computing Euclidean distances between pairs of elements. The benefit of using this representation, rather than using a Vector{Vector{<:Real}}, is that optimised matrix-matrix multiplication functionality can be utilised when computing pairwise distances between inputs, which are needed for kernelmatrix computation.","category":"page"},{"location":"api/#Inputs-for-Multiple-Outputs","page":"API","title":"Inputs for Multiple Outputs","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"KernelFunctions.jl views multi-output GPs as GPs on an extended input domain. For an explanation of this design choice, see the design notes on multi-output GPs.","category":"page"},{"location":"api/","page":"API","title":"API","text":"An input to a multi-output Kernel should be a Tuple{T, Int}, whose first element specifies a location in the domain of the multi-output GP, and whose second element specifies which output the inputs corresponds to. The type of collections of inputs for multi-output GPs is therefore AbstractVector{<:Tuple{T, Int}}.","category":"page"},{"location":"api/","page":"API","title":"API","text":"KernelFunctions.jl provides the following helper functions to reduce the cognitive load associated with working with multi-output kernels by dealing with transforming data from the formats in which it is commonly found into the format required by KernelFunctions. The intention is that users can pass their data to these functions, and use the returned values throughout their code, without having to worry further about correctly formatting their data for KernelFunctions' sake:","category":"page"},{"location":"api/","page":"API","title":"API","text":"prepare_isotopic_multi_output_data(x::AbstractVector, y::ColVecs)\nprepare_isotopic_multi_output_data(x::AbstractVector, y::RowVecs)\nprepare_heterotopic_multi_output_data","category":"page"},{"location":"api/#KernelFunctions.prepare_isotopic_multi_output_data-Tuple{AbstractVector, ColVecs}","page":"API","title":"KernelFunctions.prepare_isotopic_multi_output_data","text":"prepare_isotopic_multi_output_data(x::AbstractVector, y::ColVecs)\n\nUtility functionality to convert a collection of N = length(x) inputs x, and a vector-of-vectors y (efficiently represented by a ColVecs) into a format suitable for use with multi-output kernels.\n\ny[n] is the vector-valued output corresponding to the input x[n]. Consequently, it is necessary that length(x) == length(y).\n\nFor example, if outputs are initially stored in a num_outputs × N matrix:\n\njulia> x = [1.0, 2.0, 3.0];\n\njulia> Y = [1.1 2.1 3.1; 1.2 2.2 3.2]\n2×3 Matrix{Float64}:\n 1.1 2.1 3.1\n 1.2 2.2 3.2\n\njulia> inputs, outputs = prepare_isotopic_multi_output_data(x, ColVecs(Y));\n\njulia> inputs\n6-element KernelFunctions.MOInputIsotopicByFeatures{Float64, Vector{Float64}, Int64}:\n (1.0, 1)\n (1.0, 2)\n (2.0, 1)\n (2.0, 2)\n (3.0, 1)\n (3.0, 2)\n\njulia> outputs\n6-element Vector{Float64}:\n 1.1\n 1.2\n 2.1\n 2.2\n 3.1\n 3.2\n\nSee also prepare_heterotopic_multi_output_data.\n\n\n\n\n\n","category":"method"},{"location":"api/#KernelFunctions.prepare_isotopic_multi_output_data-Tuple{AbstractVector, RowVecs}","page":"API","title":"KernelFunctions.prepare_isotopic_multi_output_data","text":"prepare_isotopic_multi_output_data(x::AbstractVector, y::RowVecs)\n\nUtility functionality to convert a collection of N = length(x) inputs x and output vectors y (efficiently represented by a RowVecs) into a format suitable for use with multi-output kernels.\n\ny[n] is the vector-valued output corresponding to the input x[n]. Consequently, it is necessary that length(x) == length(y).\n\nFor example, if outputs are initial stored in an N × num_outputs matrix:\n\njulia> x = [1.0, 2.0, 3.0];\n\njulia> Y = [1.1 1.2; 2.1 2.2; 3.1 3.2]\n3×2 Matrix{Float64}:\n 1.1 1.2\n 2.1 2.2\n 3.1 3.2\n\njulia> inputs, outputs = prepare_isotopic_multi_output_data(x, RowVecs(Y));\n\njulia> inputs\n6-element KernelFunctions.MOInputIsotopicByOutputs{Float64, Vector{Float64}, Int64}:\n (1.0, 1)\n (2.0, 1)\n (3.0, 1)\n (1.0, 2)\n (2.0, 2)\n (3.0, 2)\n\njulia> outputs\n6-element Vector{Float64}:\n 1.1\n 2.1\n 3.1\n 1.2\n 2.2\n 3.2\n\nSee also prepare_heterotopic_multi_output_data.\n\n\n\n\n\n","category":"method"},{"location":"api/#KernelFunctions.prepare_heterotopic_multi_output_data","page":"API","title":"KernelFunctions.prepare_heterotopic_multi_output_data","text":"prepare_heterotopic_multi_output_data(\n x::AbstractVector, y::AbstractVector{<:Real}, output_indices::AbstractVector{Int},\n)\n\nUtility functionality to convert a collection of inputs x, observations y, and output_indices into a format suitable for use with multi-output kernels. Handles the situation in which only one (or a subset) of outputs are observed at each feature. Ensures that all arguments are compatible with one another, and returns a vector of inputs and a vector of outputs.\n\ny[n] should be the observed value associated with output output_indices[n] at feature x[n].\n\njulia> x = [1.0, 2.0, 3.0];\n\njulia> y = [-1.0, 0.0, 1.0];\n\njulia> output_indices = [3, 2, 1];\n\njulia> inputs, outputs = prepare_heterotopic_multi_output_data(x, y, output_indices);\n\njulia> inputs\n3-element Vector{Tuple{Float64, Int64}}:\n (1.0, 3)\n (2.0, 2)\n (3.0, 1)\n\njulia> outputs\n3-element Vector{Float64}:\n -1.0\n 0.0\n 1.0\n\nSee also prepare_isotopic_multi_output_data.\n\n\n\n\n\n","category":"function"},{"location":"api/","page":"API","title":"API","text":"The input types returned by prepare_isotopic_multi_output_data can also be constructed manually:","category":"page"},{"location":"api/","page":"API","title":"API","text":"MOInput","category":"page"},{"location":"api/#KernelFunctions.MOInput","page":"API","title":"KernelFunctions.MOInput","text":"MOInput(x::AbstractVector, out_dim::Integer)\n\nA data type to accommodate modelling multi-dimensional output data. MOInput(x, out_dim) has length length(x) * out_dim.\n\njulia> x = [1, 2, 3];\n\njulia> MOInput(x, 2)\n6-element KernelFunctions.MOInputIsotopicByOutputs{Int64, Vector{Int64}, Int64}:\n (1, 1)\n (2, 1)\n (3, 1)\n (1, 2)\n (2, 2)\n (3, 2)\n\nAs shown above, an MOInput represents a vector of tuples. The first length(x) elements represent the inputs for the first output, the second length(x) elements represent the inputs for the second output, etc. See Inputs for Multiple Outputs in the docs for more info.\n\nMOInput will be deprecated in version 0.11 in favour of MOInputIsotopicByOutputs, and removed in version 0.12.\n\n\n\n\n\n","category":"type"},{"location":"api/","page":"API","title":"API","text":"As with ColVecs and RowVecs for vector-valued input spaces, this type enables specialised implementations of e.g. kernelmatrix for MOInputs in some situations.","category":"page"},{"location":"api/","page":"API","title":"API","text":"To find out more about the background, read this review of kernels for vector-valued functions.","category":"page"},{"location":"api/#Generic-Utilities","page":"API","title":"Generic Utilities","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"KernelFunctions also provides miscellaneous utility functions.","category":"page"},{"location":"api/","page":"API","title":"API","text":"nystrom\nNystromFact","category":"page"},{"location":"api/#KernelFunctions.nystrom","page":"API","title":"KernelFunctions.nystrom","text":"nystrom(k::Kernel, X::AbstractVector, S::AbstractVector{<:Integer})\n\nCompute a factorization of a Nystrom approximation of the square kernel matrix of data vector X with respect to kernel k, using indices S. Returns a NystromFact struct which stores a Nystrom factorization satisfying:\n\nmathbfK approx mathbfC^intercalmathbfWmathbfC\n\n\n\n\n\nnystrom(k::Kernel, X::AbstractVector, r::Real)\n\nCompute a factorization of a Nystrom approximation of the square kernel matrix of data vector X with respect to kernel k using a sample ratio of r. Returns a NystromFact struct which stores a Nystrom factorization satisfying:\n\nmathbfK approx mathbfC^intercalmathbfWmathbfC\n\n\n\n\n\nnystrom(k::Kernel, X::AbstractMatrix, S::AbstractVector{<:Integer}; obsdim)\n\nIf obsdim=1, equivalent to nystrom(k, RowVecs(X), S). If obsdim=2, equivalent to nystrom(k, ColVecs(X), S).\n\nSee also: ColVecs, RowVecs\n\n\n\n\n\nnystrom(k::Kernel, X::AbstractMatrix, r::Real; obsdim)\n\nIf obsdim=1, equivalent to nystrom(k, RowVecs(X), r). If obsdim=2, equivalent to nystrom(k, ColVecs(X), r).\n\nSee also: ColVecs, RowVecs\n\n\n\n\n\n","category":"function"},{"location":"api/#KernelFunctions.NystromFact","page":"API","title":"KernelFunctions.NystromFact","text":"NystromFact\n\nType for storing a Nystrom factorization. The factorization contains two fields: W and C, two matrices satisfying:\n\nmathbfK approx mathbfC^intercalmathbfWmathbfC\n\n\n\n\n\n","category":"type"},{"location":"api/#Conditional-Utilities","page":"API","title":"Conditional Utilities","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"To keep the dependencies of KernelFunctions lean, some functionality is only available if specific other packages are explicitly loaded (using).","category":"page"},{"location":"api/#Kronecker.jl","page":"API","title":"Kronecker.jl","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"https://github.com/MichielStock/Kronecker.jl","category":"page"},{"location":"api/","page":"API","title":"API","text":"kronecker_kernelmatrix\nkernelkronmat","category":"page"},{"location":"api/#KernelFunctions.kronecker_kernelmatrix","page":"API","title":"KernelFunctions.kronecker_kernelmatrix","text":"kronecker_kernelmatrix(\n k::Union{IndependentMOKernel,IntrinsicCoregionMOKernel}, x::MOI, y::MOI\n) where {MOI<:IsotopicMOInputsUnion}\n\nRequires Kronecker.jl: Computes the kernelmatrix for the IndependentMOKernel and the IntrinsicCoregionMOKernel, but returns a lazy kronecker product. This object can be very efficiently inverted or decomposed. See also kernelmatrix.\n\n\n\n\n\n","category":"function"},{"location":"api/#KernelFunctions.kernelkronmat","page":"API","title":"KernelFunctions.kernelkronmat","text":"kernelkronmat(κ::Kernel, X::AbstractVector{<:Real}, dims::Int) -> KroneckerPower\n\nReturn a KroneckerPower matrix on the D-dimensional input grid constructed by otimes_i=1^D X, where D is given by dims.\n\nwarning: Warning\nRequires Kronecker.jl and for iskroncompatible(κ) to return true.\n\n\n\n\n\nkernelkronmat(κ::Kernel, X::AbstractVector{<:AbstractVector}) -> KroneckerProduct\n\nReturns a KroneckerProduct matrix on the grid built with the collection of vectors X_i_i=1^D: otimes_i=1^D X_i.\n\nwarning: Warning\nRequires Kronecker.jl and for iskroncompatible(κ) to return true.\n\n\n\n\n\n","category":"function"},{"location":"api/#PDMats.jl","page":"API","title":"PDMats.jl","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"https://github.com/JuliaStats/PDMats.jl","category":"page"},{"location":"api/","page":"API","title":"API","text":"kernelpdmat","category":"page"},{"location":"api/#KernelFunctions.kernelpdmat","page":"API","title":"KernelFunctions.kernelpdmat","text":"kernelpdmat(k::Kernel, X::AbstractVector)\n\nCompute a positive-definite matrix in the form of a PDMat matrix (see PDMats.jl), with the Cholesky decomposition precomputed. The algorithm adds a diagonal \"nugget\" term to the kernel matrix which is increased until positive definiteness is achieved. The algorithm gives up with an error if the nugget becomes larger than 1% of the largest value in the kernel matrix.\n\n\n\n\n\nkernelpdmat(k::Kernel, X::AbstractMatrix; obsdim)\n\nIf obsdim=1, equivalent to kernelpdmat(k, RowVecs(X)). If obsdim=2, equivalent to kernelpdmat(k, ColVecs(X)).\n\nSee also: ColVecs, RowVecs\n\n\n\n\n\n","category":"function"},{"location":"design/#Design","page":"Design","title":"Design","text":"","category":"section"},{"location":"design/#why_abstract_vectors","page":"Design","title":"Why AbstractVectors Everywhere?","text":"","category":"section"},{"location":"design/","page":"Design","title":"Design","text":"To understand the advantages of using AbstractVectors everywhere to represent collections of inputs, first consider the following properties that it is desirable for a collection of inputs to satisfy.","category":"page"},{"location":"design/#Unique-Ordering","page":"Design","title":"Unique Ordering","text":"","category":"section"},{"location":"design/","page":"Design","title":"Design","text":"There must be a clearly-defined first, second, etc element of an input collection. If this were not the case, it would not be possible to determine a unique mapping between a collection of inputs and the output of kernelmatrix, as it would not be clear what order the rows and columns of the output should appear in.","category":"page"},{"location":"design/","page":"Design","title":"Design","text":"Moreover, ordering guarantees that if you permute the collection of inputs, the ordering of the rows and columns of the kernelmatrix are correspondingly permuted.","category":"page"},{"location":"design/#Generality","page":"Design","title":"Generality","text":"","category":"section"},{"location":"design/","page":"Design","title":"Design","text":"There must be no restriction on the domain of the input. Collections of Reals, vectors, graphs, finite-dimensional domains, or really anything else that you fancy should be straightforwardly representable. Moreover, whichever input class is chosen should not prevent optimal performance from being obtained.","category":"page"},{"location":"design/#Unambiguously-Defined-Length","page":"Design","title":"Unambiguously-Defined Length","text":"","category":"section"},{"location":"design/","page":"Design","title":"Design","text":"Knowing the length of a collection of inputs is important. For example, a well-defined length guarantees that the size of the output of kernelmatrix, and related functions, are predictable. It also makes it possible to perform internal error-checking that ensures that e.g. there are the same number of inputs in two collections of inputs.","category":"page"},{"location":"design/#AbstractMatrices-Do-Not-Cut-It","page":"Design","title":"AbstractMatrices Do Not Cut It","text":"","category":"section"},{"location":"design/","page":"Design","title":"Design","text":"Notably, while AbstractMatrix objects are often used to represent collections of vector-valued inputs, they do not immediately satisfy these properties as it is unclear whether a matrix of size P x Q represents a collection of P Q-dimensional inputs (each row is an input), or Q P-dimensional inputs (each column is an input).","category":"page"},{"location":"design/","page":"Design","title":"Design","text":"Moreover, they occasionally add some aesthetic inconvenience. For example, a collection of Real-valued inputs, which might be straightforwardly represented as an AbstractVector{<:Real}, must be reshaped into a matrix.","category":"page"},{"location":"design/","page":"Design","title":"Design","text":"There are two commonly used ways to partly resolve these shortcomings:","category":"page"},{"location":"design/#Resolution-1:-Specify-a-Convention","page":"Design","title":"Resolution 1: Specify a Convention","text":"","category":"section"},{"location":"design/","page":"Design","title":"Design","text":"One way that these shortcomings can be partly resolved is by specifying a convention that everyone adheres to regarding the interpretation of rows vs columns. However, opinions about the choice of convention are often surprisingly strongly held, and users regularly have to remind themselves which convention has been chosen. While this resolves the ordering problem, and in principle defines the \"length\" of a collection of inputs, AbstractMatrixs already have a length defined in Julia, which would generally disagree with our internal notion of length. This isn't a show-stopper, but it isn't an especially clean situation.","category":"page"},{"location":"design/","page":"Design","title":"Design","text":"There is also the opportunity for some kinds of silent bugs. For example, if an input matrix happens to be square because the number of input dimensions is the same as the number of inputs, it would be hard to know whether the correct kernelmatrix has been computed. This kind of bug seems unlikely, but it exists regardless.","category":"page"},{"location":"design/","page":"Design","title":"Design","text":"Finally, suppose that your inputs are some type T that is not simply a vector of real numbers, say a graph. In this situation, how should a collection of inputs be represented? A N x 1 or 1 x N matrix is the only obvious candidate, but the additional singular dimension seems somewhat redundant.","category":"page"},{"location":"design/#Resolution-2:-Always-Specify-An-obsdim-Argument","page":"Design","title":"Resolution 2: Always Specify An obsdim Argument","text":"","category":"section"},{"location":"design/","page":"Design","title":"Design","text":"Another way to partly resolve these problems is to not commit to a convention, and instead to propagate some additional information through the codebase that specifies how the input data is to be interpreted. For example, a kernel k that represents the sum of two other kernels might implement kernelmatrix as follows:","category":"page"},{"location":"design/","page":"Design","title":"Design","text":"function kernelmatrix(k::KernelSum, x::AbstractMatrix; obsdim=1)\n return kernelmatrix(k.kernels[1], x; obsdim=obsdim) +\n kernelmatrix(k.kernels[2], x; obsdim=obsdim)\nend","category":"page"},{"location":"design/","page":"Design","title":"Design","text":"While this prevents this package from having to pre-specify a convention, it doesn't resolve the length issue, or the issue of representing collections of inputs which aren't immediately represented as vectors. Moreover, it complicates the internals; in contrast, consider what this function looks like with an AbstractVector:","category":"page"},{"location":"design/","page":"Design","title":"Design","text":"function kernelmatrix(k::KernelSum, x::AbstractVector)\n return kernelmatrix(k.kernels[1], x) + kernelmatrix(k.kernels[2], x)\nend","category":"page"},{"location":"design/","page":"Design","title":"Design","text":"This code is clearer (less visual noise), and has removed a possible bug – if the implementer of kernelmatrix forgets to pass the obsdim kwarg into each subsequent kernelmatrix call, it's possible to get the wrong answer.","category":"page"},{"location":"design/","page":"Design","title":"Design","text":"This being said, we do support matrix-valued inputs – see Why We Have Support for Both.","category":"page"},{"location":"design/#AbstractVectors","page":"Design","title":"AbstractVectors","text":"","category":"section"},{"location":"design/","page":"Design","title":"Design","text":"Requiring all collections of inputs to be AbstractVectors resolves all of these problems, and ensures that the data is self-describing to the extent that KernelFunctions.jl requires.","category":"page"},{"location":"design/","page":"Design","title":"Design","text":"Firstly, the question of how to interpret the columns and rows of a matrix of inputs is resolved. Users must wrap matrices which represent collections of inputs in either a ColVecs or RowVecs, both of which have clearly defined semantics which are hard to confuse.","category":"page"},{"location":"design/","page":"Design","title":"Design","text":"By design, there is also no discrepancy between the number of inputs in the collection, and the length function – the length of a ColVecs, RowVecs, or Vector{<:Real} is equal to the number of inputs.","category":"page"},{"location":"design/","page":"Design","title":"Design","text":"There is no loss of performance.","category":"page"},{"location":"design/","page":"Design","title":"Design","text":"A collection of N Real-valued inputs can be represented by an AbstractVector{<:Real} of length N, rather than needing to use an AbstractMatrix{<:Real} of size either N x 1 or 1 x N. The same can be said for any other input type T, and new subtypes of AbstractVector can be added if particularly efficient ways exist to store collections of inputs of type T. A good example of this in practice is using Tuple{S, Int}, for some input type S, as the Inputs for Multiple Outputs.","category":"page"},{"location":"design/","page":"Design","title":"Design","text":"This approach can also lead to clearer user code. A user need only wrap their inputs in a ColVecs or RowVecs once in their code, and this specification is automatically re-used everywhere in their code. In this sense, it is straightforward to write code in such a way that there is one unique source of \"truth\" about the way in which a particular data set should be interpreted. Conversely, the obsdim resolution requires that the obsdim keyword argument is passed around with the data every single time that you use it.","category":"page"},{"location":"design/","page":"Design","title":"Design","text":"The benefits of the AbstractVector approach are likely most strongly felt when writing a substantial amount of code on top of KernelFunctions.jl – in the same way that using AbstractVectors inside KernelFunctions.jl removes the need for large amounts of keyword argument propagation, the same will be true of other code.","category":"page"},{"location":"design/#Why-We-Have-Support-for-Both","page":"Design","title":"Why We Have Support for Both","text":"","category":"section"},{"location":"design/","page":"Design","title":"Design","text":"In short: many people like matrices, and are familiar with obsdim-style keyword arguments.","category":"page"},{"location":"design/","page":"Design","title":"Design","text":"All internals are implemented using AbstractVectors though, and the obsdim interface is just a thin layer of utility functionality which sits on top of this. To avoid confusion and silent errors, we do not favour a specific convention (rows or columns) but instead it is necessary to specify the obsdim keyword argument explicitly.","category":"page"},{"location":"design/#inputs_for_multiple_outputs","page":"Design","title":"Kernels for Multiple-Outputs","text":"","category":"section"},{"location":"design/","page":"Design","title":"Design","text":"There are two equally-valid perspectives on multi-output kernels: they can either be treated as matrix-valued kernels, or standard kernels on an extended input domain. Each of these perspectives are convenient in different circumstances, but the latter greatly simplifies the incorporation of multi-output kernels in KernelFunctions.","category":"page"},{"location":"design/","page":"Design","title":"Design","text":"More concretely, let k_mat be a matrix-valued kernel, mapping pairs of inputs of type T to matrices of size P x P to describe the covariance between P outputs. Given inputs x and y of type T, and integers p and q, we can always find an equivalent standard kernel k mapping from pairs of inputs of type Tuple{T, Int} to the Reals as follows:","category":"page"},{"location":"design/","page":"Design","title":"Design","text":"k((x, p), (y, q)) = k_mat(x, y)[p, q]","category":"page"},{"location":"design/","page":"Design","title":"Design","text":"This ability to treat multi-output kernels as single-output kernels is very helpful, as it means that there is no need to introduce additional concepts into the API of KernelFunctions.jl, just additional kernels! This in turn simplifies downstream code as they don't need to \"know\" about the existence of multi-output kernels in addition to standard kernels. For example, GP libraries built on top of KernelFunctions.jl just need to know about Kernels, and they get multi-output kernels, and hence multi-output GPs, for free.","category":"page"},{"location":"design/","page":"Design","title":"Design","text":"Where there is the need to specialise implementations for multi-output kernels, this is done in an encapsulated manner – parts of KernelFunctions that have nothing to do with multi-output kernels know nothing about the existence of multi-output kernels.","category":"page"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"EditURL = \"../../../../examples/support-vector-machine/script.jl\"","category":"page"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"EditURL = \"https://github.com/JuliaGaussianProcesses/KernelFunctions.jl/blob/master/examples/support-vector-machine/script.jl\"","category":"page"},{"location":"examples/support-vector-machine/#Support-Vector-Machine","page":"Support Vector Machine","title":"Support Vector Machine","text":"","category":"section"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"(Image: )","category":"page"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"You are seeing the HTML output generated by Documenter.jl and Literate.jl from the Julia source file. The corresponding notebook can be viewed in nbviewer.","category":"page"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"","category":"page"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"In this notebook we show how you can use KernelFunctions.jl to generate kernel matrices for classification with a support vector machine, as implemented by LIBSVM.","category":"page"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"using Distributions\nusing KernelFunctions\nusing LIBSVM\nusing LinearAlgebra\nusing Plots\nusing Random\n\n# Set seed\nRandom.seed!(1234);","category":"page"},{"location":"examples/support-vector-machine/#Generate-half-moon-dataset","page":"Support Vector Machine","title":"Generate half-moon dataset","text":"","category":"section"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"Number of samples per class:","category":"page"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"n1 = n2 = 50;","category":"page"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"We generate data based on SciKit-Learn's sklearn.datasets.make_moons function:","category":"page"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"angle1 = range(0, π; length=n1)\nangle2 = range(0, π; length=n2)\nX1 = [cos.(angle1) sin.(angle1)] .+ 0.1 .* randn.()\nX2 = [1 .- cos.(angle2) 1 .- sin.(angle2) .- 0.5] .+ 0.1 .* randn.()\nX = [X1; X2]\nx_train = RowVecs(X)\ny_train = vcat(fill(-1, n1), fill(1, n2));","category":"page"},{"location":"examples/support-vector-machine/#Training","page":"Support Vector Machine","title":"Training","text":"","category":"section"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"We create a kernel function:","category":"page"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"k = SqExponentialKernel() ∘ ScaleTransform(1.5)","category":"page"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"Squared Exponential Kernel (metric = Distances.Euclidean(0.0))\n\t- Scale Transform (s = 1.5)","category":"page"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"LIBSVM can make use of a pre-computed kernel matrix. KernelFunctions.jl can be used to produce that using kernelmatrix:","category":"page"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"model = svmtrain(kernelmatrix(k, x_train), y_train; kernel=LIBSVM.Kernel.Precomputed)","category":"page"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"LIBSVM.SVM{Int64, LIBSVM.Kernel.KERNEL}(LIBSVM.SVC, LIBSVM.Kernel.Precomputed, nothing, 100, 100, 2, [-1, 1], Int32[1, 2], Float64[], Int32[], LIBSVM.SupportVectors{Vector{Int64}, Matrix{Float64}}(23, Int32[11, 12], [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1.0 0.8982223633317491 0.9596163170022011 0.8681749917956418 0.7405298560587654 0.6670753594660519 0.1779671467515013 0.12581804740739566 0.05707943398657384 0.02764121723161683 0.033765857073249396 0.2680295766735067 0.29939058530607915 0.37151489965630213 0.3524014409758097 0.2908959282977835 0.3880509811446821 0.8766234308310106 0.82681374480545 0.8144257681324784 0.6772129558340088 0.6360692761241019 0.27226866397259536; 0.8982223633317491 1.0 0.965182128960536 0.9914891432258488 0.8867564750187009 0.9019354510254446 0.2147708440814802 0.15771406856492454 0.05887040570928494 0.017222970583007854 0.019222888349132574 0.221500149894056 0.2978310573718274 0.3053559535776424 0.2890446485251837 0.22090114119439183 0.3141485519019614 0.6220352391872924 0.5857825177211226 0.6973386670166851 0.7178826818314505 0.7710611517712889 0.4654568122945319; 0.9596163170022011 0.965182128960536 1.0 0.9626046043667029 0.8869903689807833 0.8153402743825475 0.25975227903072295 0.19192116220346336 0.08434059685077588 0.03220850516134753 0.0366758927128704 0.31408772981722 0.3824704266612618 0.4200037751884887 0.4001773046096343 0.3219312217176709 0.43280734456335546 0.750503533504958 0.6647402210580929 0.6926170128782051 0.6277007998632926 0.6433503699452944 0.32400415670963956; 0.8681749917956418 0.9914891432258488 0.9626046043667029 1.0 0.9370667957752087 0.934295025587645 0.26444251222948995 0.19879359752203962 0.07665919270519939 0.021595654487073727 0.023425682392132743 0.2566761906912133 0.3496676024988405 0.34456852113508585 0.3275077643059417 0.25092423515822787 0.35232020079983056 0.5892979561473187 0.5284801502144095 0.6217604813241744 0.6430231195027034 0.7109544049100224 0.44057810112560447; 0.7465952329465504 0.9304484985812767 0.8897100197930106 0.9678435903690089 0.9814954031669109 0.9779840213642631 0.3466778268733209 0.27206683288049266 0.10510054534990214 0.024906016068519672 0.02537581531241299 0.2819293887595886 0.4088052209237594 0.3636370022084356 0.34754098347809126 0.26247121953918195 0.3672027632424591 0.46578384178509197 0.38887087230008666 0.4701103002702702 0.5145210485797571 0.6123061110630164 0.42723601664089345; 0.7405298560587654 0.8867564750187009 0.8869903689807833 0.9370667957752087 1.0 0.9265705090470907 0.4401947652983322 0.35262403649115526 0.15320607160230898 0.041175981935510725 0.04156995738050753 0.37540034365943104 0.5190650165661463 0.46669986410386666 0.4490622985140926 0.3499350203111987 0.46962470972808273 0.4883331096338951 0.3798584854063081 0.4217137127807958 0.4303538604829861 0.5091151748567635 0.32622076287640006; 0.6670753594660519 0.9019354510254446 0.8153402743825475 0.934295025587645 0.9265705090470907 1.0 0.2827193698331228 0.2209480096839663 0.07504013686337539 0.014371637034094253 0.01439904495484344 0.2022331299863698 0.3174100045147389 0.2670237514797323 0.2539121194008726 0.18411214167319784 0.26924082958699697 0.3775897748372698 0.33049550236819253 0.4440238046305932 0.5378606847561948 0.6649412466468505 0.5362623212460318; 0.6702595528823198 0.8606244226283823 0.8314916696615914 0.9158026981710833 0.9886587344335546 0.9560332901136585 0.43011039397992096 0.34820512587201075 0.14124895742843027 0.032158966523388476 0.031580446301945404 0.32479775862613985 0.47740665014325184 0.4040619518789057 0.38836949912884633 0.29482897357398075 0.4047606090427496 0.40908071544297814 0.3195106528226398 0.37846326245707385 0.41478881966429043 0.5119444241914671 0.36732348167804796; 0.5958832606985172 0.7761919158084817 0.764543603784896 0.8444984180740654 0.9708780964035508 0.9003101222501712 0.5272836631986195 0.4399206665565803 0.19102502302045962 0.043420828006372085 0.04129805359453605 0.37942807492906316 0.5573589063405943 0.4543619576452872 0.4394388167665561 0.3375627830189747 0.45182010123593386 0.36215845599297103 0.2634668608558619 0.30067673081800705 0.3243249963940758 0.4116488074528402 0.2958856882102383; 0.6885947324331928 0.8568830230020188 0.8463587912182832 0.9136212483096897 0.9958882004323975 0.9330458507202257 0.460198027818651 0.3733503341923742 0.15937475820815994 0.0394059990098187 0.038929261709730496 0.3649438549033214 0.5202001774588284 0.4496246527453173 0.4330574268345955 0.33404405039411145 0.4506081711573255 0.43638796244437944 0.33426657209516675 0.3798417694355356 0.4001476735300954 0.48685776367870665 0.3302703252897188; 0.5090115987229845 0.66413624932743 0.6748754932289617 0.7410778570661924 0.9169250942417487 0.8005426352978952 0.6529042363424815 0.563579434224383 0.2698518181195754 0.06354590398806001 0.05851083802910193 0.45550338406982604 0.6594734277650144 0.5208034250731294 0.5076214704665837 0.3978825263055807 0.5138380455506879 0.3131959074096939 0.20890435984227568 0.22461858592695394 0.23387430115253083 0.30414333483721223 0.21357650440692952; 0.45093840203402863 0.6528439740207388 0.621293380868375 0.7281001827134798 0.8878776747702869 0.8483652168656046 0.5523273229286175 0.4772875263856446 0.19761071338591454 0.03572808338522635 0.03200591765116194 0.3254023798230707 0.5196262009999181 0.37997186968805663 0.36850957018497515 0.27531375747209685 0.37362641649043415 0.24573139502121816 0.17123499867505312 0.20822585856181272 0.24503580982318168 0.3360215134566464 0.282452943899592; 0.3853374653727806 0.5531275651750578 0.5456456216692458 0.63187924915747 0.8272788783068459 0.7400449329312268 0.6740778081979193 0.6015241987774301 0.27711939662891033 0.05315958324949652 0.046303407217568385 0.39204087574676183 0.6116325191520129 0.4372487002786384 0.42739649234665433 0.3269933488950957 0.42689765420513015 0.2149742263615225 0.1373845757765515 0.15601083788315914 0.1754427451629185 0.24492436885056065 0.19788854100040332; 0.4618500914094273 0.6128977794159381 0.6250323394686075 0.6915365382967459 0.88189001173394 0.7603121381740631 0.6931399190748629 0.6074867523562785 0.29692455405263407 0.0681577107585657 0.06159926451755685 0.4645954678327457 0.6786212904021323 0.5221512124616867 0.5102875582105725 0.40055028127076997 0.5131110004920902 0.28037311469308024 0.18119852159344918 0.19343543701106478 0.20210176995756082 0.2678694503178588 0.1914666250241892; 0.2696302037951813 0.39638152158224865 0.403404894882526 0.46949354523118425 0.6809782176032294 0.5691943970817303 0.7959863116838541 0.7460243621745607 0.383759661562218 0.07333545211725394 0.06062770952823484 0.4276361345098877 0.6667776453895222 0.44825730820354187 0.44260682761401715 0.34513919555944916 0.43243837419232345 0.14931467351759206 0.08501132835349595 0.09090598935589621 0.09966166276310144 0.14565406652997917 0.1181167187860405; 0.3002590494463073 0.4115977376244659 0.43517761205157995 0.4854137709312024 0.7013669019363106 0.5580577880472913 0.8536237862527719 0.7944463939442774 0.4423829365109098 0.10024118415255136 0.08491613895458582 0.5164984752370707 0.7562127396153628 0.5384043672737264 0.532633886946863 0.4273028327796133 0.5213353428367101 0.17995021704234954 0.10110435738873308 0.10066689644324499 0.1023456357653284 0.14371084800072215 0.10376729355409814; 0.23895991490217605 0.33249975589925446 0.3570356667989706 0.3998440847736826 0.6103384074505219 0.46903410987322885 0.8998463600755164 0.8599178355605582 0.5066796013929806 0.11396841785672483 0.0938145408103168 0.5199141678644349 0.7624727563004503 0.5243659291344558 0.5215260868720673 0.4222997164056707 0.5044431497960399 0.14229601411077292 0.07518839830888858 0.07265639350751003 0.0730416671251987 0.10523885318589322 0.07641455926683688; 0.1915586377215268 0.2782828209211749 0.2967514734538114 0.33993222993655975 0.5402177192407522 0.41457098384450736 0.8940395698131182 0.8732189313788711 0.5158710981816049 0.10661722182344716 0.08504323591413473 0.47313025445505164 0.7153672453884371 0.46747599643639337 0.4662739691425648 0.37502751142299 0.4468899647601597 0.10944611467787402 0.05573856274262572 0.054529742226822116 0.05633615986012236 0.0842054572140432 0.06479883181573562; 0.22705224038961044 0.31938520593304515 0.34224069664715906 0.385495402966531 0.5939999674274448 0.4566062935524366 0.899155765927396 0.8637017932666784 0.5087259826371333 0.11196526875215826 0.09146631735404127 0.5082775947180933 0.7512932189769945 0.5102218707630334 0.5077837081682253 0.41038655426963877 0.4900958753322606 0.1337816259051161 0.0700979881035211 0.06799122461651445 0.06885045790765319 0.10009947593776944 0.0737756297099595; 0.13939429772646458 0.19866201340261797 0.22114257212806596 0.24864914930042606 0.42520802222653464 0.302501776239137 0.9372245539818653 0.9455339290308946 0.6315082072142529 0.14232088029862777 0.11065257979685114 0.497993580135406 0.7281911500795765 0.46872860910213954 0.4714826024303301 0.3903354300403334 0.44502619470509736 0.08256405886680711 0.03835534537202231 0.034581508309323515 0.033704650675767854 0.05102221540013976 0.03704322052953614; 0.14536068431690077 0.22095226487516476 0.23447742603357294 0.274909660351764 0.45833250114914875 0.34957510182253293 0.8743978358229307 0.8761033364462417 0.5229671176330489 0.0991832584928122 0.07635359024682037 0.42104563348070084 0.6565602859173729 0.40568985690003667 0.40610443722599326 0.3248474190874977 0.3850374404413671 0.07960429303749694 0.03874287443935803 0.03821774674349671 0.040517865120029126 0.0630563129568011 0.0514750781731886; 0.14763143381426758 0.20697373951526962 0.23172641379954417 0.25814071080843315 0.43782614347195603 0.3097871356075422 0.948191751644435 0.9518038099641223 0.6412421014386851 0.14982574968207624 0.11752904351897316 0.5195447242996001 0.7497513218160706 0.4906394512641361 0.4933596158142264 0.41032684627296356 0.46659647468974 0.08895540630063033 0.041555343865819036 0.0370694847518811 0.035626747327519616 0.05330326825496781 0.03775624173646896; 0.0988933742294342 0.12124815101071282 0.1522607181459668 0.1549588355463188 0.2869756433774373 0.17057949531906372 0.9559135116536135 0.9892814033753422 0.8831001155923481 0.301076796055474 0.23744952288817556 0.6342825599362547 0.794592834668333 0.5579899828492979 0.5688794841651086 0.5133182360119145 0.5290723135633687 0.07062859133770322 0.028724907143533655 0.02063694811643021 0.0163555000764835 0.023361093148916098 0.012804211869588852; 0.1779671467515013 0.2147708440814802 0.25975227903072295 0.26444251222948995 0.4401947652983322 0.2827193698331228 1.0 0.9840440354640055 0.7746626759108745 0.259331300415348 0.21532000371278573 0.7098399745938505 0.897129803886899 0.6668121606496512 0.6725100792205622 0.5926610833970605 0.639910660474017 0.12677413631301512 0.05828369828510033 0.04500739970678052 0.03699408218865754 0.05063099709508791 0.028066326109481347; 0.12581804740739566 0.15771406856492454 0.19192116220346336 0.19879359752203962 0.35262403649115526 0.2209480096839663 0.9840440354640055 1.0 0.8196815897955259 0.2585454040835821 0.2062681823099032 0.6395908524826316 0.8253149042783318 0.5796701178937012 0.5878473919825917 0.5191073343197649 0.5515646672943586 0.08688786848645763 0.03740368096386031 0.028523064291676215 0.023677093828563235 0.033770552150204226 0.0195077208623248; 0.13635764102815603 0.17700879424928978 0.20952156641370756 0.22209299900339824 0.387023745781692 0.2526789145766851 0.9840473928465677 0.9944545163994348 0.7628015511728252 0.21862995489084638 0.17378734562194012 0.6072327127100751 0.8120913399429163 0.5587815024853605 0.5649398681849662 0.48910402339466696 0.531808973769114 0.09017310666726844 0.03999940594359134 0.032134604355827 0.02797743047976866 0.04045661550302929 0.024940657478324198; 0.03738526797037774 0.0518722922443791 0.06469761673719454 0.07006166077431174 0.15008890206353956 0.08665512641758483 0.7784277540898672 0.8696233384872661 0.8146647085648284 0.22136689810316545 0.15743791729748416 0.3968445993948711 0.5391261134094336 0.32293628667971663 0.33300869834150976 0.2972564334545365 0.29975944910030017 0.023848286045824146 0.008420633155828174 0.006112619378410749 0.00516049180195299 0.008268679880159445 0.0052975977111670795; 0.042144581324510336 0.0494746902418995 0.06742933413721425 0.06600663846708471 0.13930785683731703 0.07183957093968951 0.7790781696938223 0.8536051172386016 0.9590138186434369 0.3903921195934206 0.2950426290497306 0.5288899615616742 0.6189309135561756 0.4262505758493195 0.44128790558923603 0.4208889858046393 0.39942670313494494 0.032438697615701076 0.011172295974476632 0.006870690987412239 0.004857666087518073 0.007060720348024933 0.0034344193347111735; 0.05312991544390621 0.05941513640392731 0.08194706236820062 0.07813203139092116 0.15906453281962285 0.08151519050847295 0.8085392731314344 0.8681139298684074 0.9848651453003653 0.443246308165159 0.3456733523248384 0.6037896564824075 0.6813118162978405 0.4950714556869529 0.5113993322285312 0.49277881830487924 0.4667583768828605 0.0429226487701534 0.015239324750107681 0.009170625347595353 0.006257708243494053 0.00875319860215057 0.0039747823519354995; 0.05707943398657384 0.05887040570928494 0.08434059685077588 0.07665919270519939 0.15320607160230898 0.07504013686337539 0.7746626759108745 0.8196815897955259 1.0 0.5440195902835544 0.43906982651942317 0.6673967547317672 0.7023400808140081 0.5485677304431098 0.5670659502059522 0.5624209010974132 0.5201938090487075 0.05039216793847928 0.01791524354832784 0.010043369678747171 0.006325305381042625 0.00840984174401409 0.0033555198691232182; 0.0239028553317282 0.030184756247153024 0.040854218058537374 0.041510328633494326 0.09483008177233723 0.048340772261097814 0.6717838510012278 0.7676403150888159 0.8793112190224525 0.3119804989346951 0.22247711097256292 0.3913818163355702 0.481152264589789 0.30253086008317853 0.3150901394384516 0.29804879470704987 0.2801577440280252 0.0171896769354173 0.005490096384196609 0.0034159985987988898 0.0025153999701487658 0.0039043781883587865 0.002087265775451305; 0.031461748783796255 0.03877763079418788 0.05235828887075337 0.05259747403989502 0.11577900027217572 0.059784830395976214 0.7284683797887744 0.8167846933186389 0.9160729338118098 0.3382566896841279 0.24707350935618375 0.44839573463782234 0.5435604959271204 0.35385233350424394 0.3673850921598674 0.3474062654846442 0.32935166307385894 0.023094272546330587 0.007660825323682672 0.004791128233787445 0.003499654757292123 0.005296572963316763 0.002754516536638302; 0.0202635020156832 0.0209515968555071 0.031856292217650496 0.028621916401232315 0.06575704582809962 0.028713198747047974 0.5561499763492528 0.6276780889906601 0.9225361894208831 0.537563426752421 0.40805784519141053 0.45230817484429436 0.46279255715733986 0.34051076155197635 0.35722093503244967 0.36821581556576116 0.3181318631289292 0.018326268390209892 0.005525107949270952 0.002764399785944711 0.0016269608580749297 0.0022643385581135253 0.0008634402327095031; 0.03917881206249196 0.04187141495743542 0.0602770437308414 0.05569284553771938 0.11787868067422283 0.05651647912609812 0.7170279636314995 0.7811392796869542 0.9868755418205789 0.507181661805653 0.3946817184897088 0.5692597969620196 0.6111220282142971 0.45306704851231877 0.47065706470710794 0.467410267660561 0.4263135976218018 0.0335840367945797 0.0112547984221705 0.006246809772638481 0.003975045243333954 0.005489661056955841 0.0022783159887154033; 0.04503255088410135 0.0439137702967996 0.06568078940616273 0.05754622086226787 0.11797430518899149 0.0542341914980732 0.6848945717357943 0.7301845715877101 0.9867821313846442 0.6248955778853352 0.5079623735649396 0.6419956195484627 0.6383844961053452 0.5159463011662203 0.5357861713088927 0.5480569804281196 0.4892367713976803 0.0425914300452601 0.014482620179200524 0.0074868753371495735 0.0043749674598642044 0.0056845719431328585 0.002045738397676184; 0.020015288581754945 0.019539997383675744 0.0305983363763088 0.026560055130788258 0.060568717016068814 0.02548996952986846 0.5212517692914928 0.5837589968251036 0.9104128747187193 0.6087759155456162 0.4723327572739916 0.4681713902460597 0.4553175340992092 0.3517956141533186 0.3694712715628193 0.3893559371646623 0.3298272088546007 0.01929969464392214 0.005784803454931787 0.0027392873350079857 0.0015186313676977968 0.00204248371497284 0.0007090901969261304; 0.020666052296526998 0.023467210104345954 0.03394439944734565 0.03227571537361978 0.07474354689359762 0.03478309139442751 0.6050706431823535 0.6902380132644816 0.9157011962379701 0.4252868608831877 0.31207368821244674 0.41915963873727863 0.46633517155931187 0.3173525840288823 0.3321740061129138 0.32987532663994706 0.29493718842290595 0.01682097194725037 0.005145059748221362 0.0028260660732993795 0.0018375597258384604 0.0027007138580146654 0.0012020186941257484; 0.02453101432184634 0.020098364892380587 0.033807186321682364 0.026519136869644185 0.05668770862680506 0.022080288969644857 0.4402683441382192 0.4723140706097761 0.8338110421697035 0.8296862086740819 0.7008351158890717 0.5440749777729216 0.45737691515438816 0.41745398965791825 0.43796100209216043 0.48788632097996637 0.39735131936242424 0.028530362783343567 0.008830718283431016 0.003661080212258824 0.0017275175383884805 0.0020652670212335587 0.0005465605530047422; 0.010772381969517289 0.00808979915556405 0.014769223974223632 0.010907548917201483 0.025105066248112838 0.00861005735113974 0.27446992177652213 0.30268057727357456 0.6563261019548249 0.8423122954493703 0.7087959360554233 0.3816217504493905 0.2915784265479316 0.27667027303245256 0.29339896442424834 0.3462653613105691 0.2623718667950521 0.014036631757401184 0.003892193697218935 0.0013824598149453928 0.000570663656527681 0.0006655357305495249 0.00014821787811893474; 0.013102125076381291 0.009501254374372565 0.01743056916880381 0.012641115714999962 0.028109874095783 0.009665720685806211 0.2779944240132419 0.3009422157277764 0.6496100565156806 0.8921208950268356 0.7707215094068156 0.4153473315697215 0.3097033352945198 0.30652449538189097 0.3242452180605052 0.38457230531389347 0.29222754331272954 0.0176491442562162 0.005052976710183603 0.0017795086910056906 0.0007191096459963922 0.0008135871421187968 0.0001729568595091208; 0.010048640046801751 0.007556801509146678 0.01383630447940828 0.010219144448059669 0.023720538640699704 0.008086205235382792 0.2673028201381964 0.2959612329986008 0.6480835552991425 0.8326590465631913 0.6977877995262115 0.3695874583691571 0.282221028802535 0.26655787487127675 0.28291666669202015 0.3345015952465225 0.2525390976336497 0.013094227782891262 0.003595847554140322 0.001270090006133873 0.0005228431863253228 0.0006118815220643209 0.00013617786605785216; 0.022349563450720516 0.015126611441125632 0.027736426902443566 0.019448577925125717 0.03948248730102741 0.013912843541017676 0.29407180499185603 0.3036682389024967 0.6295948777410747 0.9760878235703699 0.8971483297034317 0.510873410149174 0.3648754706376355 0.3962367174131936 0.4160536437133086 0.49505438923170403 0.38266060041477884 0.032002468097764726 0.010030791663580315 0.003541268511179874 0.001388397560167188 0.0014686522229405998 0.0002871893433972941; 0.010020005268819202 0.006809770300057249 0.013011105080329613 0.009061216335098812 0.0203203311204038 0.006608239130026839 0.2181377208067792 0.23591612481445193 0.5571316265641847 0.9019480717339876 0.7928873516646797 0.3622506780828305 0.25412502873565396 0.26395075463572065 0.2800632926839618 0.34220302701090444 0.25218637023914864 0.014558062704000863 0.004058708035772421 0.0013244042014423662 0.0004960057823668772 0.000542796465649497 0.00010316672930654405; 0.01106332568616253 0.006887193194115914 0.013554569709165635 0.008985016403844404 0.019232335629336378 0.00608875040752228 0.18606570349931004 0.19565849249653774 0.48225133952423743 0.9453876390694811 0.8725629002342125 0.3644945741438321 0.23844406528632542 0.27079632723779745 0.28673978102317077 0.35878774000611285 0.26108600973253054 0.017606861104932217 0.005073103983778686 0.001567301714496989 0.0005453728216072849 0.0005601086767381032 9.34005648300471e-5; 0.01657908523512305 0.011582747078381944 0.021314338205802762 0.015167963313664786 0.032355502612115034 0.011201905491084553 0.28242091851773066 0.29908821320436807 0.6382850228010263 0.9397497324044695 0.8367176827710091 0.45643200424037295 0.3319584631188468 0.3443458093220082 0.3630946413341951 0.4323367624470917 0.3303136751483621 0.023116247423315056 0.006887297927401206 0.0024132953755383753 0.0009557168244199856 0.001045242382536408 0.00021182221215739486; 0.02764121723161683 0.017222970583007854 0.03220850516134753 0.021595654487073727 0.041175981935510725 0.014371637034094253 0.259331300415348 0.2585454040835821 0.5440195902835544 1.0 0.9702064166750799 0.530245218387723 0.3560307890203881 0.4238742345642878 0.44332843787390197 0.5365850265213121 0.4136915663687128 0.04297162933120202 0.01420754067753986 0.00483919981495718 0.0017871776252900312 0.0017700462041020729 0.00030801400193521903; 0.033765857073249396 0.019222888349132574 0.0366758927128704 0.023425682392132743 0.04156995738050753 0.01439904495484344 0.21532000371278573 0.2062681823099032 0.43906982651942317 0.9702064166750799 1.0 0.5266287956023967 0.3307939384157074 0.43601990045358663 0.4539182184875824 0.5591960801816629 0.4306259447317991 0.057385150231952155 0.02019180375858439 0.006632129374597611 0.002298515218977774 0.0021163880760639107 0.00032463677682729514; 0.02553578820521561 0.0158644870161105 0.029838914605637666 0.019953454894567846 0.038401012604959726 0.013269650716428449 0.2509244773194308 0.251186735069333 0.5371677022503326 0.9995646051393732 0.9667899675361993 0.513751166350262 0.3433357299717392 0.4081395073506391 0.42733645217635563 0.5192419691029252 0.39799729028929487 0.03990347409204987 0.013038212795705478 0.0043927214930709535 0.0016094244034674434 0.0015961297818598565 0.0002754711459087229; 0.014684836067894124 0.007863396938894306 0.016093036470496366 0.009825718452488018 0.0189014126385701 0.005844366606428707 0.13849007975235583 0.13706934957395644 0.3505681951871089 0.9408488893951146 0.9551754247357206 0.3639737993290779 0.21243271709551226 0.2843646309443169 0.29919652216983733 0.3870026762693761 0.2792653571316844 0.027184350652692695 0.008556747740127378 0.002461193413214283 0.0007652106152402142 0.0006987527433192667 9.397135335575793e-5; 0.021425769737078368 0.011961446785158796 0.023616854868073967 0.014831082339553991 0.027747811476019044 0.009060931748526886 0.17752833012020347 0.17401094944541437 0.40750501628989283 0.9721752042840985 0.985527711544548 0.4396878920679833 0.2681896715550059 0.35127963758750874 0.36800110805489483 0.46402546238163483 0.34531620678243374 0.037617774125204916 0.012368962147916036 0.0038068720385083673 0.001257026852505441 0.0011643628241787124 0.00016961483943713626; 0.2680295766735067 0.221500149894056 0.31408772981722 0.2566761906912133 0.37540034365943104 0.2022331299863698 0.7098399745938505 0.6395908524826316 0.6673967547317672 0.530245218387723 0.5266287956023967 1.0 0.9204011029470381 0.9763204269194343 0.9834744899012892 0.9800453255225883 0.9670027469525624 0.2868166055620744 0.1396173432997934 0.0802050018418445 0.04629682347632554 0.04928910656810396 0.015144618580948671; 0.29939058530607915 0.2978310573718274 0.3824704266612618 0.3496676024988405 0.5190650165661463 0.3174100045147389 0.897129803886899 0.8253149042783318 0.7023400808140081 0.3560307890203881 0.3307939384157074 0.9204011029470381 1.0 0.9092611854055276 0.9117485102579749 0.8437830107817399 0.8913223951781822 0.26003030092553525 0.1303827813666727 0.09015777074260106 0.06341517666632882 0.07518254013006463 0.03137762242865076; 0.37151489965630213 0.3053559535776424 0.4200037751884887 0.34456852113508585 0.46669986410386666 0.2670237514797323 0.6668121606496512 0.5796701178937012 0.5485677304431098 0.4238742345642878 0.43601990045358663 0.9763204269194343 0.9092611854055276 1.0 0.9993139026257465 0.9765798100043396 0.9987957619674939 0.39412877854863043 0.2098767698470255 0.12780803517686787 0.07623734052074496 0.07896775479712795 0.02470799941856937; 0.3524014409758097 0.2890446485251837 0.4001773046096343 0.3275077643059417 0.4490622985140926 0.2539121194008726 0.6725100792205622 0.5878473919825917 0.5670659502059522 0.44332843787390197 0.4539182184875824 0.9834744899012892 0.9117485102579749 0.9993139026257465 1.0 0.9815187936126483 0.9969143579721336 0.37562956856679103 0.19703163333480644 0.11850074321536054 0.07008717427360553 0.07279694039680448 0.022599211149285328; 0.39465231175913795 0.31587551141322445 0.43642677197878865 0.3530737581159885 0.46672673050010677 0.26715889535835474 0.622155656205321 0.5337483231906022 0.5046262630854164 0.41089803125627195 0.43085691731721165 0.961384843855092 0.8785837060449794 0.9969370612351908 0.9945537399369616 0.97609997854102 0.9995568027554731 0.4295214100756645 0.2338386266049015 0.14126529235623905 0.08283907919566438 0.08390006402557657 0.025324299741833464; 0.2908959282977835 0.22090114119439183 0.3219312217176709 0.25092423515822787 0.3499350203111987 0.18411214167319784 0.5926610833970605 0.5191073343197649 0.5624209010974132 0.5365850265213121 0.5591960801816629 0.9800453255225883 0.8437830107817399 0.9765798100043396 0.9815187936126483 1.0 0.9760363402932355 0.3396761689366942 0.17122729619266394 0.09352156540595309 0.05035919518075388 0.05038867912666139 0.01366097735931823; 0.3514836919845527 0.25827905726818784 0.37376328779438567 0.2871031630484072 0.3774708549469005 0.20356442769718722 0.527254124515189 0.4483191866084228 0.46652883939298834 0.4676429245287537 0.505344784277436 0.9424242881899214 0.7976158902909226 0.971098264163409 0.9709671758028702 0.9864017590543077 0.9781505431297239 0.42127512095013353 0.22585472214185204 0.1251177654786094 0.06693346651287566 0.06454104481834383 0.01690822793519799; 0.3880509811446821 0.3141485519019614 0.43280734456335546 0.35232020079983056 0.46962470972808273 0.26924082958699697 0.639910660474017 0.5515646672943586 0.5201938090487075 0.4136915663687128 0.4306259447317991 0.9670027469525624 0.8913223951781822 0.9987957619674939 0.9969143579721336 0.9760363402932355 1.0 0.4175584225095954 0.22574366435124235 0.13708488052338838 0.08106449463694666 0.08284201786267843 0.02541251142320079; 0.37961657901188395 0.25192283506342733 0.37396034073513706 0.27177013275063033 0.3316295475090898 0.17635188715914188 0.3805158733692937 0.31022132785589657 0.32995603743246077 0.4085529653091237 0.4713640504577533 0.8305039703656368 0.6510083421165387 0.8867144586887958 0.8825664115254728 0.9163437520779888 0.9045793138133195 0.5037709664927494 0.28752565713902434 0.1520569532177624 0.07546592900068064 0.0671567954033988 0.01522336553239881; 0.4702831429583742 0.3213335719746325 0.4597881972580735 0.34164544472267744 0.39813969852691955 0.22491433200447894 0.3765147624730655 0.3011668417307773 0.2904874285924168 0.3265331196970446 0.3807124240825537 0.7964028874115803 0.6475849179588237 0.878341751854222 0.8691210753475811 0.879767432078501 0.8991737718575608 0.5982998949558497 0.3633531261013041 0.20600362457781846 0.10808286790933438 0.09633093909886627 0.02331194601865261; 0.526795288057018 0.3940391213462967 0.5388779005079533 0.42266049253674903 0.49969396504753033 0.298501330474785 0.4644036535619441 0.37649106648873704 0.3319524786282605 0.300825324374188 0.33846013954020493 0.8391821514224157 0.7387531166728089 0.9266670512086935 0.9155922954238254 0.89576457108235 0.9431591120717556 0.6061425707332225 0.37032063184699016 0.22846758678703566 0.1315297906335085 0.12382813579712616 0.03470780014308738; 0.326708533419188 0.2430452816843132 0.3528498094599045 0.2724891632283225 0.36673219291844344 0.19573728896816622 0.5532605885480469 0.4759742322481321 0.5037422336172169 0.49604598976832465 0.5285094201634164 0.9600456733812273 0.81751796330167 0.9761094484348516 0.9780088993021706 0.9950015905287559 0.9801978533385329 0.3878742388347221 0.20288958549179464 0.11167812171391878 0.05985022255614695 0.05853988792012992 0.015526771107081744; 0.5619207849380442 0.38384512737319587 0.5345032833933165 0.39943888193571503 0.4372646966133805 0.26024918463886315 0.3280472343236939 0.2549281555415764 0.22593650441538846 0.24574382979335188 0.29442973469375133 0.7110437799713303 0.5859751095762021 0.8158127630991835 0.8019023386938486 0.7975187692574014 0.8407203767536858 0.7064956340024616 0.4621084542264419 0.27596525043225517 0.1494008366974313 0.13051365577846652 0.03227936170155413; 0.6430706658631261 0.45006841886534327 0.6078444172622047 0.46271359870464523 0.4874771713377931 0.30510864810623706 0.31132575025507137 0.23812417686552184 0.19454650831020817 0.19524813962125906 0.23598888415659178 0.6574493787863069 0.5585838247963583 0.7749782758058278 0.7580532503023097 0.7381503679619124 0.8009681622942774 0.7806334105161824 0.5376983537943203 0.34025026525820296 0.1929222057620414 0.16874582807373442 0.04406772611548003; 0.7231647963646257 0.5056851000850311 0.6655850205917616 0.509266230976612 0.5052334681260294 0.3323247700429202 0.2584463004813027 0.19226030577292572 0.14491990312468314 0.1411260347060979 0.17513016835138412 0.5593127995804646 0.4810917747190298 0.6847600297393145 0.6655572238457713 0.6373481626655303 0.7122690618954836 0.868572031742886 0.642367727412946 0.4270069268585453 0.2493471672518346 0.21386764096672656 0.05697307908855304; 0.6316227556282686 0.40743503740482884 0.5606965055218779 0.4084491148331317 0.4039103078167204 0.2507422704206328 0.21745362046021305 0.16055009821413815 0.13282860708891472 0.15755645787174735 0.20099144507894512 0.5395481654674688 0.4314691749241478 0.6558364264722154 0.6389336863189395 0.6324492597708506 0.6850231211028036 0.8312537908937804 0.6045643859848966 0.3697286562941463 0.19778414654099596 0.16205085142829598 0.037740738988576696; 0.7401079629435721 0.5428295877160711 0.7031806864585685 0.5526524918348173 0.5625668683648273 0.37535456334989986 0.3049670044118855 0.23040058563288934 0.16976699088029149 0.1490124483780644 0.1800509174051033 0.6031858853281993 0.5388764898497265 0.7305283258443571 0.7108620688983256 0.6720656802992333 0.756102320334855 0.846021274392779 0.614290483608926 0.42053331865050503 0.25553244125721153 0.22690103237680803 0.06489412637619173; 0.7774171295635275 0.5183587196531081 0.6671856182761694 0.5011275436908067 0.4439717097364589 0.3097901912593574 0.15499968292212957 0.10904978972531522 0.07466261292508483 0.07694096980958384 0.10184805385603908 0.3794525394526092 0.3203312365762359 0.4963074588528718 0.4773711871808398 0.4516508142874447 0.5236420497371012 0.9644741236400529 0.8060189579870737 0.5597466310187597 0.32836661338632694 0.2646093759094215 0.0677441637131662; 0.8181308100490108 0.5561243868737823 0.698575060593573 0.5324654697166794 0.45752368437996377 0.33230408198860933 0.14048366252196495 0.09759286203453564 0.06262356218316165 0.06053539611033345 0.08069598037760621 0.3368883734358375 0.29138104057505876 0.45023153710385133 0.4313705725132026 0.40132171704812075 0.4761351054919458 0.9870428644119942 0.8596029953159898 0.6251306019773151 0.38047255238126104 0.306893210606778 0.0820423232658685; 0.7328677140374111 0.45686249352211705 0.5790469862711584 0.4222181599919014 0.33080357486099415 0.2432499454983849 0.07720430058897658 0.05106405047245464 0.032093401151864966 0.0365474112100408 0.05215633420045098 0.22181457534510465 0.18089489184494278 0.3111666840414051 0.2960670894164659 0.27828806542602247 0.3336621538628581 0.9586604604379003 0.9112627551291514 0.6526801185016419 0.37822360606526256 0.2823655882683267 0.0674470136857995; 0.7515232704337115 0.4757416292999305 0.5968371635299031 0.43944272397447637 0.34313013101024226 0.2559666012514232 0.07813514522593748 0.051658187653842315 0.03172311639963259 0.0347198448127321 0.0493745953085397 0.21905996675855813 0.18130230551737894 0.3085046198554848 0.2932786599324534 0.273623488478172 0.33068669985787785 0.9653564796429168 0.9249527424633506 0.6753413167030635 0.3987464830705314 0.2999086114297358 0.07359809262134936; 0.8766234308310106 0.6220352391872924 0.750503533504958 0.5892979561473187 0.4883331096338951 0.3775897748372698 0.12677413631301512 0.08688786848645763 0.05039216793847928 0.04297162933120202 0.057385150231952155 0.2868166055620744 0.26003030092553525 0.39412877854863043 0.37562956856679103 0.3396761689366942 0.4175584225095954 1.0 0.9191899116391927 0.7213092819491199 0.46889441622459455 0.3828925347230843 0.11144275482456456; 0.8119268400431263 0.5616029351132952 0.6474473854693175 0.5069931386383051 0.3661982883577541 0.311649120820824 0.05829641266312954 0.03742883021724568 0.018577266239422643 0.01567128213557683 0.0223986923163361 0.14511479304623873 0.13244337225859604 0.21687298617558284 0.2038675593583631 0.17921730237397668 0.23341261540835537 0.9285566477571606 0.9982284285344054 0.8549662123185122 0.57919180548843 0.4463677903452444 0.1306883528369306; 0.82681374480545 0.5857825177211226 0.6647402210580929 0.5284801502144095 0.3798584854063081 0.33049550236819253 0.05828369828510033 0.03740368096386031 0.01791524354832784 0.01420754067753986 0.02019180375858439 0.1396173432997934 0.1303827813666727 0.2098767698470255 0.19703163333480644 0.17122729619266394 0.22574366435124235 0.9191899116391927 1.0 0.8822702532119937 0.6152795204486762 0.47978346763635193 0.14650071169191572; 0.822809521622991 0.5948037025016687 0.661623292177756 0.5335057440538382 0.37607346176075984 0.33764855167756436 0.05284701060910418 0.033662036456081526 0.015324720335777151 0.011444005832743251 0.016295443067505327 0.12330208096295307 0.11778021084065203 0.18808039767468007 0.17608616190280213 0.1508937925165944 0.2025242052804488 0.8905990321407163 0.9966670165629197 0.9131581140097302 0.6576167422401595 0.5153533855760121 0.16390625359706507; 0.7332380005310724 0.47966685651323304 0.561270991827678 0.4262991752111288 0.2962414470348876 0.24973189593616663 0.04268972320232483 0.026811837976605572 0.013507495536566362 0.012805825713678201 0.018952874629094556 0.11843861804971419 0.1036060543552713 0.18023196881388742 0.16904117283919085 0.1504765142358632 0.1952861714325238 0.8869877129551653 0.9842217337887395 0.8203423350576758 0.5328025632598246 0.39324760863940933 0.10628991718440418; 0.7187809376310704 0.4761254396371267 0.54656074185958 0.4194008209483607 0.28353726603906537 0.24690043097609538 0.03654000044570406 0.022681143697437862 0.010842333019539772 0.009820791891003388 0.014650008345521303 0.10032334124866865 0.08930018079843059 0.15556684998216727 0.14542078103482645 0.12776685893780718 0.16895268664252294 0.8526318330670217 0.9806401970911786 0.8475881317911022 0.5659917900792554 0.416984564845228 0.11622851300686755; 0.8144257681324784 0.6973386670166851 0.6926170128782051 0.6217604813241744 0.4217137127807958 0.4440238046305932 0.04500739970678052 0.028523064291676215 0.010043369678747171 0.00483919981495718 0.006632129374597611 0.0802050018418445 0.09015777074260106 0.12780803517686787 0.11850074321536054 0.09352156540595309 0.13708488052338838 0.7213092819491199 0.8822702532119937 1.0 0.8855923329934225 0.7530367236790085 0.3226608405615575; 0.7464895770624135 0.5594351352421899 0.5895776094001356 0.4895311220674548 0.319643609141359 0.3143758003701468 0.03288525229499247 0.020274680144724787 0.007964199195053414 0.005222443768633631 0.0075982008115135 0.07437307723826476 0.0746522813603369 0.11956373319655095 0.11089845782781486 0.09158557641127746 0.12957243004933744 0.7640400790614297 0.9450363171851921 0.9591969772942559 0.7472623695905949 0.5830550774121601 0.20244287264478314; 0.7530030245919059 0.5431234673379363 0.5891717554326777 0.47712932171407574 0.3166487512948445 0.2985208761222979 0.035649105448995015 0.022080553461329762 0.009286847786499046 0.006751278027436788 0.009875494227672841 0.08544232307820761 0.08252777611615113 0.13536175637433384 0.1259284644875634 0.10617928562160212 0.14670596019757695 0.8076447950677335 0.9703716409266376 0.932762917865407 0.690834745158495 0.5304385201337295 0.17171039308680663; 0.8235336782281178 0.6405111214096829 0.6751170957730195 0.5708263832967825 0.3913225084959072 0.3799338589125705 0.04683919106442962 0.02961614926842436 0.011883757732761544 0.00729943919314527 0.010273385080068998 0.09769000743415807 0.10036147536710764 0.1529345825839084 0.1424119148518332 0.11739714058688706 0.1645958816308224 0.8155975950934103 0.9611942517618203 0.9745530337256978 0.7718025112426161 0.6243230838122039 0.22676040918673873; 0.6867468433693716 0.5331666327402476 0.5401499281722351 0.4602101153093634 0.2874857014122235 0.3013099698294809 0.02441925668731399 0.014789893132036517 0.005242128466115685 0.003076690211929651 0.00451111846293758 0.05293690792581018 0.05540759589202033 0.08787213190071044 0.08102581610167775 0.06510209996936658 0.09551563939482735 0.6693717151437683 0.8805139185030549 0.962976949860865 0.7977752137717908 0.625906121249835 0.23426112680791764; 0.6123022959216866 0.4999976772262982 0.48269268480676464 0.42595719513313823 0.25449585634974026 0.28756933949188684 0.017618908610842147 0.010493756806911569 0.0032937887074633177 0.001666429247984283 0.0024505350619450157 0.03569336809287439 0.03950235279527152 0.061294039927021746 0.056157172390876364 0.04361457849901721 0.06678097895617935 0.5585565589403414 0.784685636948393 0.9400073084858939 0.8422729086934179 0.6700290694351737 0.27733472967577766; 0.5208071432762769 0.44790727672851793 0.4112620733348449 0.37629227912890906 0.2144655272958558 0.26209976266649593 0.011972269254734097 0.007004322353126643 0.001936938649234545 0.0008408093661474044 0.0012409452628291877 0.022638140748971483 0.026538216827193314 0.040289711699862236 0.036665355400374564 0.02748985316984334 0.04400815817355934 0.44374622631342764 0.6680658291966547 0.8797756865237958 0.8549882792013699 0.6895556341694858 0.3166405198571644; 0.5891681247974004 0.6090837294623026 0.5248133057027008 0.5327362038278587 0.33368944124026373 0.43261895730019134 0.022886397413172065 0.01418017863278169 0.0035688318479617353 0.0010351877552663635 0.0013814109028705312 0.030641695234509592 0.041619482122225035 0.0524656862959539 0.047934392864311254 0.03415916876832351 0.05624683422303738 0.4144251498547713 0.5845546024608902 0.8657575960256906 0.9832623417700396 0.9050029006040501 0.5474453725428048; 0.6772129558340088 0.7178826818314505 0.6277007998632926 0.6430231195027034 0.4303538604829861 0.5378606847561948 0.03699408218865754 0.023677093828563235 0.006325305381042625 0.0017871776252900312 0.002298515218977774 0.04629682347632554 0.06341517666632882 0.07623734052074496 0.07008717427360553 0.05035919518075388 0.08106449463694666 0.46889441622459455 0.6152795204486762 0.8855923329934225 1.0 0.95317462877265 0.5874035637208949; 0.5749644296822503 0.5614640934267493 0.49299286294186273 0.48468047798417707 0.2942832944957974 0.3752064819757136 0.018804501447141315 0.011435890401526988 0.002955760433948493 0.0009704067285291062 0.0013371056870898458 0.028038292943887058 0.036400349970850336 0.04864456022600958 0.044380183342761476 0.032110546803158134 0.052463579032817904 0.42901781989141297 0.6188663970979027 0.885220316479004 0.9589037954214876 0.8466889875934079 0.4705785731761298; 0.5966298504595813 0.6497959021929185 0.5508610734329186 0.575651052751428 0.37181328597797036 0.48854896269750847 0.02743297932990087 0.01730727969785368 0.004264146632423846 0.0011057799083934747 0.0014316397886228248 0.03325744456483746 0.04705515434685252 0.056183095043217876 0.051409730819183534 0.036153416730729984 0.0598890375403915 0.3978048409442719 0.5482579229273747 0.8366872356964472 0.9911306477477079 0.9482157541926657 0.6192712131547955; 0.6360692761241019 0.7710611517712889 0.6433503699452944 0.7109544049100224 0.5091151748567635 0.6649412466468505 0.05063099709508791 0.033770552150204226 0.00840984174401409 0.0017700462041020729 0.0021163880760639107 0.04928910656810396 0.07518254013006463 0.07896775479712795 0.07279694039680448 0.05038867912666139 0.08284201786267843 0.3828925347230843 0.47978346763635193 0.7530367236790085 0.95317462877265 1.0 0.7536774603025823; 0.37477044321888536 0.4349863927333212 0.3388839022817558 0.3720494346085627 0.21519711025421284 0.3253138317147909 0.010037093974181666 0.0060467417410972725 0.0011875118732063588 0.0002480707283038141 0.0003300424159388177 0.011407470827613422 0.017521330331462935 0.020814669795918655 0.018784268442022023 0.012463171657650072 0.02238095595512163 0.227469653973088 0.3632368032599243 0.6505486498358429 0.8743314602327298 0.8366314316745298 0.6323552576352361; 0.4308494365065684 0.5521961142878209 0.42568510936624304 0.49172463488628315 0.3159269411000278 0.47114743317643165 0.020125652113509692 0.012821784701747635 0.0025763216834118296 0.0004459216390885389 0.000548863514666901 0.01860102653889555 0.03056557154533914 0.03212075732520414 0.029217027826914762 0.01915472861237837 0.03399621120406532 0.23833695351973763 0.3445536527228856 0.6283027956928183 0.8935450448439365 0.9340508327639085 0.803367738440086; 0.42588556793724963 0.514599887489171 0.40225454811321515 0.45008699593865603 0.2764547431869833 0.4095893081877711 0.015610214582617616 0.009697779434859725 0.001968411270910264 0.0003845846633845169 0.0004920266487864112 0.016205332099098156 0.025484432603544913 0.028598027606397586 0.025939220913629255 0.017212264615019613 0.030497065232210633 0.24978921540415677 0.3752433713507336 0.6671808968998799 0.9094166321017612 0.9070024503194692 0.717969244338302; 0.25616724404676827 0.36064432234093263 0.25458348363076183 0.31381508570267086 0.18628923825270452 0.3185209800604343 0.0082263007895151 0.005088772835099111 0.0008198400207983819 0.00010788314848899607 0.0001332981971132782 0.006693772956053487 0.012191493624789688 0.01228286410458982 0.011044429533844548 0.0068049702629956145 0.0130512812361402 0.1253743856343511 0.2039176585333789 0.43910102741499013 0.7211374530045427 0.7744022012346895 0.802098239373476; 0.28531440235914857 0.4002858555284273 0.28636704091166787 0.3513821641026911 0.21409246587444314 0.35723120432949906 0.010439773572454236 0.006534374708804699 0.001095215285484182 0.00014740693870887804 0.0001802894669450021 0.00845972297584198 0.015272137647549196 0.015263798894214076 0.013764458115931638 0.008556389143525862 0.016176721587662174 0.1409025065904775 0.22200076169575395 0.46602649035313587 0.7524428671746313 0.8131717721925134 0.8296434593833473; 0.24903410779923643 0.35904933061176014 0.25127407578055966 0.31395393231584934 0.18847617044543946 0.3249998991514615 0.008516438259839807 0.005305086528612752 0.0008432117182715994 0.00010526431950490199 0.0001284332102931466 0.006629678280122173 0.012309626926329458 0.012112089324700176 0.010895282626047198 0.006667249932579161 0.012840082356890036 0.11887527798719272 0.1919477286751715 0.4200001386101343 0.7041663984132576 0.76897079297106 0.8256707173813529; 0.22886067841582372 0.3877508069941566 0.26235980762663824 0.35736249399182723 0.2450825591516219 0.42670313988850206 0.01598520519681239 0.010717359719015747 0.0016793924477414128 0.00015125353768022373 0.00016529025327248037 0.009017807932986543 0.018843636469128917 0.015426968275166236 0.013999905415617844 0.008311948797036561 0.01600287954319619 0.09324670458766982 0.13395130511607745 0.31152426355295504 0.5837246484964872 0.7272861670149322 0.9767715590737112; 0.22999157462853717 0.3739192895482388 0.2539677229913929 0.3387311467563276 0.22207608922889335 0.3892663265674966 0.012660670510976866 0.008288158348560032 0.0012841413529425093 0.00012498125252143175 0.00014115406860773277 0.007787904576648366 0.015827422324756663 0.013643282830861742 0.012338925297899555 0.007359598121597874 0.01424797224163647 0.09737079522136055 0.14601439689786624 0.337413917584164 0.6179492443333177 0.741809464150622 0.9445687130630891; 0.17472537202867305 0.31946950253651746 0.20757504481875824 0.2960646945670436 0.2043837708525398 0.37471801359443757 0.012869683364298182 0.00870439065575205 0.001255146163388405 9.40099767528817e-5 9.993772188331276e-5 0.006372183619931549 0.014253099520981844 0.0109507207417646 0.009919585760279565 0.005713849249271425 0.011310824574965789 0.06534582815086555 0.09496735574229902 0.23825024277808274 0.48407885194721434 0.6304863404013172 0.9601419182825064; 0.27226866397259536 0.4654568122945319 0.32400415670963956 0.44057810112560447 0.32622076287640006 0.5362623212460318 0.028066326109481347 0.0195077208623248 0.0033555198691232182 0.00030801400193521903 0.00032463677682729514 0.015144618580948671 0.03137762242865076 0.02470799941856937 0.022599211149285328 0.01366097735931823 0.02541251142320079 0.11144275482456456 0.14650071169191572 0.3226608405615575 0.5874035637208949 0.7536774603025823 1.0; 0.1378713016583555 0.2643436673110578 0.16623288617478832 0.24439157750945995 0.16654595332868682 0.319866938036741 0.009632633551903613 0.0064994006534456195 0.0008695399375500576 5.753081953910816e-5 6.056131084754415e-5 0.004425777296702749 0.010366726569778452 0.007709894663229764 0.006963352996732379 0.003917093375501153 0.007956455372461188 0.04872180791505365 0.07277779799754423 0.19415214531611902 0.41848453319317924 0.5573025470555464 0.9233874841127124], Int32[1, 2, 3, 4, 6, 7, 24, 25, 30, 46, 47, 51, 52, 53, 54, 56, 58, 72, 74, 78, 86, 89, 99], LIBSVM.SVMNode[LIBSVM.SVMNode(0, 1.0), LIBSVM.SVMNode(0, 2.0), LIBSVM.SVMNode(0, 3.0), LIBSVM.SVMNode(0, 4.0), LIBSVM.SVMNode(0, 6.0), LIBSVM.SVMNode(0, 7.0), LIBSVM.SVMNode(0, 24.0), LIBSVM.SVMNode(0, 25.0), LIBSVM.SVMNode(0, 30.0), LIBSVM.SVMNode(0, 46.0), LIBSVM.SVMNode(0, 47.0), LIBSVM.SVMNode(0, 51.0), LIBSVM.SVMNode(0, 52.0), LIBSVM.SVMNode(0, 53.0), LIBSVM.SVMNode(0, 54.0), LIBSVM.SVMNode(0, 56.0), LIBSVM.SVMNode(0, 58.0), LIBSVM.SVMNode(0, 72.0), LIBSVM.SVMNode(0, 74.0), LIBSVM.SVMNode(0, 78.0), LIBSVM.SVMNode(0, 86.0), LIBSVM.SVMNode(0, 89.0), LIBSVM.SVMNode(0, 99.0)]), 0.0, [1.0; 1.0; 1.0; 1.0; 0.4545873718969774; 0.36172853884920114; 1.0; 1.0; 0.9976825435225717; 1.0; 1.0; -1.0; -1.0; -1.0; -1.0; -0.5005315477488701; -0.21806563021962358; -1.0; -0.3833339180359196; -1.0; -0.7120673582643366; -1.0; -1.0;;], Float64[], Float64[], [-0.015075000482567661], 3, 0.01, 200.0, 0.001, 1.0, 0.5, 0.1, true, false)","category":"page"},{"location":"examples/support-vector-machine/#Prediction","page":"Support Vector Machine","title":"Prediction","text":"","category":"section"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"For evaluation, we create a 100×100 2D grid based on the extent of the training data:","category":"page"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"test_range = range(floor(Int, minimum(X)), ceil(Int, maximum(X)); length=100)\nx_test = ColVecs(mapreduce(collect, hcat, Iterators.product(test_range, test_range)));","category":"page"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"Again, we pass the result of KernelFunctions.jl's kernelmatrix to LIBSVM:","category":"page"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"y_pred, _ = svmpredict(model, kernelmatrix(k, x_train, x_test));","category":"page"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"We can see that the kernelized, non-linear classification successfully separates the two classes in the training data:","category":"page"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"plot(; lim=extrema(test_range), aspect_ratio=1)\ncontourf!(\n test_range,\n test_range,\n y_pred;\n levels=1,\n color=cgrad(:redsblues),\n alpha=0.7,\n colorbar_title=\"prediction\",\n)\nscatter!(X1[:, 1], X1[:, 2]; color=:red, label=\"training data: class –1\")\nscatter!(X2[:, 1], X2[:, 2]; color=:blue, label=\"training data: class 1\")","category":"page"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n","category":"page"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"
      \n
      Package and system information
      \n
      \nPackage information (click to expand)\n
      \nStatus `~/work/KernelFunctions.jl/KernelFunctions.jl/examples/support-vector-machine/Project.toml`\n  [31c24e10] Distributions v0.25.103\n  [ec8451be] KernelFunctions v0.10.59 `/home/runner/work/KernelFunctions.jl/KernelFunctions.jl#ec19a94`\n  [b1bec4e5] LIBSVM v0.8.0\n  [98b081ad] Literate v2.16.0\n  [91a5bcdd] Plots v1.39.0\n  [37e2e46d] LinearAlgebra\n
      \nTo reproduce this notebook's package environment, you can\n\ndownload the full Manifest.toml.\n
      \n
      \nSystem information (click to expand)\n
      \nJulia Version 1.9.4\nCommit 8e5136fa297 (2023-11-14 08:46 UTC)\nBuild Info:\n  Official https://julialang.org/ release\nPlatform Info:\n  OS: Linux (x86_64-linux-gnu)\n  CPU: 4 × AMD EPYC 7763 64-Core Processor\n  WORD_SIZE: 64\n  LIBM: libopenlibm\n  LLVM: libLLVM-14.0.6 (ORCJIT, znver3)\n  Threads: 1 on 4 virtual cores\nEnvironment:\n  JULIA_DEBUG = Documenter\n  JULIA_LOAD_PATH = :/home/runner/.julia/packages/JuliaGPsDocs/7M86H/src\n
      \n
      ","category":"page"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"","category":"page"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"This page was generated using Literate.jl.","category":"page"},{"location":"metrics/#Metrics","page":"Metrics","title":"Metrics","text":"","category":"section"},{"location":"metrics/","page":"Metrics","title":"Metrics","text":"SimpleKernel implementations rely on Distances.jl for efficiently computing the pairwise matrix. This requires a distance measure or metric, such as the commonly used SqEuclidean and Euclidean.","category":"page"},{"location":"metrics/","page":"Metrics","title":"Metrics","text":"The metric used by a given kernel type is specified as","category":"page"},{"location":"metrics/","page":"Metrics","title":"Metrics","text":"KernelFunctions.metric(::CustomKernel) = SqEuclidean()","category":"page"},{"location":"metrics/","page":"Metrics","title":"Metrics","text":"However, there are kernels that can be implemented efficiently using \"metrics\" that do not respect all the definitions expected by Distances.jl. For this reason, KernelFunctions.jl provides additional \"metrics\" such as DotProduct (langle x y rangle) and Delta (delta(xy)).","category":"page"},{"location":"metrics/#Adding-a-new-metric","page":"Metrics","title":"Adding a new metric","text":"","category":"section"},{"location":"metrics/","page":"Metrics","title":"Metrics","text":"If you want to create a new \"metric\" just implement the following:","category":"page"},{"location":"metrics/","page":"Metrics","title":"Metrics","text":"struct Delta <: Distances.PreMetric\nend\n\n@inline function Distances._evaluate(::Delta,a::AbstractVector{T},b::AbstractVector{T}) where {T}\n @boundscheck if length(a) != length(b)\n throw(DimensionMismatch(\"first array has length $(length(a)) which does not match the length of the second, $(length(b)).\"))\n end\n return a==b\nend\n\n@inline (dist::Delta)(a::AbstractArray,b::AbstractArray) = Distances._evaluate(dist,a,b)\n@inline (dist::Delta)(a::Number,b::Number) = a==b","category":"page"},{"location":"transform/#input_transforms","page":"Input Transforms","title":"Input Transforms","text":"","category":"section"},{"location":"transform/#Overview","page":"Input Transforms","title":"Overview","text":"","category":"section"},{"location":"transform/","page":"Input Transforms","title":"Input Transforms","text":"Transforms are designed to change input data before passing it on to a kernel object.","category":"page"},{"location":"transform/","page":"Input Transforms","title":"Input Transforms","text":"It can be as standard as IdentityTransform returning the same input, or multiplying the data by a scalar with ScaleTransform or by a vector with ARDTransform. There is a more general FunctionTransform that uses a function and applies it to each input.","category":"page"},{"location":"transform/","page":"Input Transforms","title":"Input Transforms","text":"You can also create a pipeline of Transforms via ChainTransform, e.g.,","category":"page"},{"location":"transform/","page":"Input Transforms","title":"Input Transforms","text":"LowRankTransform(rand(10, 5)) ∘ ScaleTransform(2.0)","category":"page"},{"location":"transform/","page":"Input Transforms","title":"Input Transforms","text":"A transformation t can be applied to a single input x with t(x) and to multiple inputs xs with map(t, xs).","category":"page"},{"location":"transform/","page":"Input Transforms","title":"Input Transforms","text":"Kernels can be coupled with input transformations with ∘ or its alias compose. It falls back to creating a TransformedKernel but allows more optimized implementations for specific kernels and transformations.","category":"page"},{"location":"transform/#List-of-Input-Transforms","page":"Input Transforms","title":"List of Input Transforms","text":"","category":"section"},{"location":"transform/","page":"Input Transforms","title":"Input Transforms","text":"Transform\nIdentityTransform\nScaleTransform\nARDTransform\nARDTransform(::Real, ::Integer)\nLinearTransform\nFunctionTransform\nSelectTransform\nChainTransform\nPeriodicTransform","category":"page"},{"location":"transform/#KernelFunctions.Transform","page":"Input Transforms","title":"KernelFunctions.Transform","text":"Transform\n\nAbstract type defining a transformation of the input.\n\n\n\n\n\n","category":"type"},{"location":"transform/#KernelFunctions.IdentityTransform","page":"Input Transforms","title":"KernelFunctions.IdentityTransform","text":"IdentityTransform()\n\nTransformation that returns exactly the input.\n\n\n\n\n\n","category":"type"},{"location":"transform/#KernelFunctions.ScaleTransform","page":"Input Transforms","title":"KernelFunctions.ScaleTransform","text":"ScaleTransform(l::Real)\n\nTransformation that multiplies the input elementwise with l.\n\nExamples\n\njulia> l = rand(); t = ScaleTransform(l); X = rand(100, 10);\n\njulia> map(t, ColVecs(X)) == ColVecs(l .* X)\ntrue\n\n\n\n\n\n","category":"type"},{"location":"transform/#KernelFunctions.ARDTransform","page":"Input Transforms","title":"KernelFunctions.ARDTransform","text":"ARDTransform(v::AbstractVector)\n\nTransformation that multiplies the input elementwise by v.\n\nExamples\n\njulia> v = rand(10); t = ARDTransform(v); X = rand(10, 100);\n\njulia> map(t, ColVecs(X)) == ColVecs(v .* X)\ntrue\n\n\n\n\n\n","category":"type"},{"location":"transform/#KernelFunctions.ARDTransform-Tuple{Real, Integer}","page":"Input Transforms","title":"KernelFunctions.ARDTransform","text":"ARDTransform(s::Real, dims::Integer)\n\nCreate an ARDTransform with vector fill(s, dims).\n\n\n\n\n\n","category":"method"},{"location":"transform/#KernelFunctions.LinearTransform","page":"Input Transforms","title":"KernelFunctions.LinearTransform","text":"LinearTransform(A::AbstractMatrix)\n\nLinear transformation of the input realised by the matrix A.\n\nThe second dimension of A must match the number of features of the target.\n\nExamples\n\njulia> A = rand(10, 5); t = LinearTransform(A); X = rand(5, 100);\n\njulia> map(t, ColVecs(X)) == ColVecs(A * X)\ntrue\n\n\n\n\n\n","category":"type"},{"location":"transform/#KernelFunctions.FunctionTransform","page":"Input Transforms","title":"KernelFunctions.FunctionTransform","text":"FunctionTransform(f)\n\nTransformation that applies function f to the input.\n\nMake sure that f can act on an input. For instance, if the inputs are vectors, use f(x) = sin.(x) instead of f = sin.\n\nExamples\n\njulia> f(x) = sum(x); t = FunctionTransform(f); X = randn(100, 10);\n\njulia> map(t, ColVecs(X)) == ColVecs(sum(X; dims=1))\ntrue\n\n\n\n\n\n","category":"type"},{"location":"transform/#KernelFunctions.SelectTransform","page":"Input Transforms","title":"KernelFunctions.SelectTransform","text":"SelectTransform(dims)\n\nTransformation that selects the dimensions dims of the input.\n\nExamples\n\njulia> dims = [1, 3, 5, 6, 7]; t = SelectTransform(dims); X = rand(100, 10);\n\njulia> map(t, ColVecs(X)) == ColVecs(X[dims, :])\ntrue\n\n\n\n\n\n","category":"type"},{"location":"transform/#KernelFunctions.ChainTransform","page":"Input Transforms","title":"KernelFunctions.ChainTransform","text":"ChainTransform(transforms)\n\nTransformation that applies a chain of transformations ts to the input.\n\nThe transformation first(ts) is applied first.\n\nExamples\n\njulia> l = rand(); A = rand(3, 4); t1 = ScaleTransform(l); t2 = LinearTransform(A);\n\njulia> X = rand(4, 10);\n\njulia> map(ChainTransform([t1, t2]), ColVecs(X)) == ColVecs(A * (l .* X))\ntrue\n\njulia> map(t2 ∘ t1, ColVecs(X)) == ColVecs(A * (l .* X))\ntrue\n\n\n\n\n\n","category":"type"},{"location":"transform/#KernelFunctions.PeriodicTransform","page":"Input Transforms","title":"KernelFunctions.PeriodicTransform","text":"PeriodicTransform(f)\n\nTransformation that maps the input elementwise onto the unit circle with frequency f.\n\nSamples from a GP with a kernel with this transformation applied to the inputs will produce samples with frequency f.\n\nExamples\n\njulia> f = rand(); t = PeriodicTransform(f); x = rand();\n\njulia> t(x) == [sinpi(2 * f * x), cospi(2 * f * x)]\ntrue\n\n\n\n\n\n","category":"type"},{"location":"transform/#Convenience-functions","page":"Input Transforms","title":"Convenience functions","text":"","category":"section"},{"location":"transform/","page":"Input Transforms","title":"Input Transforms","text":"with_lengthscale\nmedian_heuristic_transform","category":"page"},{"location":"transform/#KernelFunctions.with_lengthscale","page":"Input Transforms","title":"KernelFunctions.with_lengthscale","text":"with_lengthscale(kernel::Kernel, lengthscale::Real)\n\nConstruct a transformed kernel with lengthscale.\n\nExamples\n\njulia> kernel = with_lengthscale(SqExponentialKernel(), 2.5);\n\njulia> x = rand(2);\n\njulia> y = rand(2);\n\njulia> kernel(x, y) ≈ (SqExponentialKernel() ∘ ScaleTransform(0.4))(x, y)\ntrue\n\n\n\n\n\nwith_lengthscale(kernel::Kernel, lengthscales::AbstractVector{<:Real})\n\nConstruct a transformed \"ARD\" kernel with different lengthscales for each dimension.\n\nExamples\n\njulia> kernel = with_lengthscale(SqExponentialKernel(), [0.5, 2.5]);\n\njulia> x = rand(2);\n\njulia> y = rand(2);\n\njulia> kernel(x, y) ≈ (SqExponentialKernel() ∘ ARDTransform([2, 0.4]))(x, y)\ntrue\n\n\n\n\n\n","category":"function"},{"location":"transform/#KernelFunctions.median_heuristic_transform","page":"Input Transforms","title":"KernelFunctions.median_heuristic_transform","text":"median_heuristic_transform(distance, x::AbstractVector)\n\nCreate a ScaleTransform that divides the input elementwise by the median distance of the data points in x.\n\nThe distance has to support pairwise evaluation with KernelFunctions.pairwise. All PreMetrics of the package Distances.jl such as Euclidean satisfy this requirement automatically.\n\nExamples\n\njulia> using Distances, Statistics\n\njulia> x = ColVecs(rand(100, 10));\n\njulia> t = median_heuristic_transform(Euclidean(), x);\n\njulia> y = map(t, x);\n\njulia> median(euclidean(y[i], y[j]) for i in 1:10, j in 1:10 if i != j) ≈ 1\ntrue\n\n\n\n\n\n","category":"function"},{"location":"userguide/#User-guide","page":"User guide","title":"User guide","text":"","category":"section"},{"location":"userguide/#Kernel-Creation","page":"User guide","title":"Kernel Creation","text":"","category":"section"},{"location":"userguide/","page":"User guide","title":"User guide","text":"To create a kernel object, choose one of the pre-implemented kernels, see Kernel Functions, or create your own, see Creating your own kernel. For example, a squared exponential kernel is created by","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":" k = SqExponentialKernel()","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"tip: How do I set the lengthscale(s)?\nInstead of having lengthscale(s) for each kernel we use Transform objects which act on the inputs before passing them to the kernel. Note that the transforms such as ScaleTransform and ARDTransform multiply the input by a scale factor, which corresponds to the inverse of the lengthscale. For example, a lengthscale of 0.5 is equivalent to premultiplying the input by 2.0, and you can create the corresponding kernel in either of the following equivalent ways: k = SqExponentialKernel() ∘ ScaleTransform(2.0)\n k = compose(SqExponentialKernel(), ScaleTransform(2.0))Alternatively, you can use the convenience function with_lengthscale:k = with_lengthscale(SqExponentialKernel(), 0.5)with_lengthscale also works with vector-valued lengthscales for multiple-dimensional inputs, and is equivalent to pre-composing with an ARDTransform:length_scales = [1.0, 2.0]\nk = with_lengthscale(SqExponentialKernel(), length_scales)\nk = SqExponentialKernel() ∘ ARDTransform(1 ./ length_scales)Check the Input Transforms page for more details.","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"tip: How do I set the kernel variance?\nTo premultiply the kernel by a variance, you can use * with a scalar number: k = 3.0 * SqExponentialKernel()","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"tip: How do I use a Mahalanobis kernel?\nThe MahalanobisKernel(; P=P), defined byk(x x P) = expbig(- (x - x)^top P (x - x)big)for a positive definite matrix P = Q^top Q, was removed in 0.9. Instead you can use a squared exponential kernel together with a LinearTransform of the inputs:k = SqExponentialKernel() ∘ LinearTransform(sqrt(2) .* Q)Analogously, you can combine other kernels such as the PiecewisePolynomialKernel with a LinearTransform of the inputs to obtain a kernel that is a function of the Mahalanobis distance between inputs.","category":"page"},{"location":"userguide/#Using-a-Kernel-Function","page":"User guide","title":"Using a Kernel Function","text":"","category":"section"},{"location":"userguide/","page":"User guide","title":"User guide","text":"To evaluate the kernel function on two vectors you simply call the kernel object:","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"k = SqExponentialKernel()\nx1 = rand(3)\nx2 = rand(3)\nk(x1, x2)","category":"page"},{"location":"userguide/#Creating-a-Kernel-Matrix","page":"User guide","title":"Creating a Kernel Matrix","text":"","category":"section"},{"location":"userguide/","page":"User guide","title":"User guide","text":"Kernel matrices can be created via the kernelmatrix function or kernelmatrix_diag for only the diagonal. For example, for a collection of 10 Real-valued inputs:","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"k = SqExponentialKernel()\nx = rand(10)\nkernelmatrix(k, x) # 10x10 matrix","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"If your inputs are multi-dimensional, it is common to represent them as a matrix. For example","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"X = rand(10, 5)","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"However, it is ambiguous whether this represents a collection of 10 5-dimensional row-vectors, or 5 10-dimensional column-vectors. Therefore, we require users to provide some more information.","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"You can write RowVecs(X) to declare that X contains 10 5-dimensional row-vectors, or ColVecs(X) to declare that X contains 5 10-dimensional column-vectors, then","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"kernelmatrix(k, RowVecs(X)) # returns a 10×10 matrix -- each row of X treated as input\nkernelmatrix(k, ColVecs(X)) # returns a 5×5 matrix -- each column of X treated as input","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"This is the mechanism used throughout KernelFunctions.jl to handle multi-dimensional inputs.","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"You can utilise the obsdim keyword argument if you prefer:","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"kernelmatrix(k, X; obsdim=1) # same as RowVecs(X)\nkernelmatrix(k, X; obsdim=2) # same as ColVecs(X)","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"This is similar to the convention used in Distances.jl.","category":"page"},{"location":"userguide/#So-what-type-should-I-use-to-represent-a-collection-of-inputs?","page":"User guide","title":"So what type should I use to represent a collection of inputs?","text":"","category":"section"},{"location":"userguide/","page":"User guide","title":"User guide","text":"The central assumption made by KernelFunctions.jl is that all collections of N inputs are represented by AbstractVectors of length N. Abstraction is then used to ensure that efficiency is retained, ColVecs and RowVecs being the most obvious examples of this.","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"Concretely:","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"For Real-valued inputs (scalars), a Vector{<:Real} is fine.\nFor vector-valued inputs, consider a ColVecs or RowVecs.\nFor a new input type, simply represent collections of inputs of this type as an AbstractVector.","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"See Input Types and Design for a more thorough discussion of the considerations made when this design was adopted.","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"The obsdim kwarg mentioned above is a special case for vector-valued inputs stored in a matrix. It is implemented as a lightweight wrapper that constructs either a RowVecs or ColVecs from your inputs, and passes this on.","category":"page"},{"location":"userguide/#Output-Types","page":"User guide","title":"Output Types","text":"","category":"section"},{"location":"userguide/","page":"User guide","title":"User guide","text":"In addition to plain Matrix-like output, KernelFunctions.jl supports specific output types:","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"For a positive-definite matrix object of type PDMat from PDMats.jl, you can call the following:","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"using PDMats\nk = SqExponentialKernel()\nK = kernelpdmat(k, RowVecs(X)) # PDMat\nK = kernelpdmat(k, X; obsdim=1) # PDMat","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"It will create a matrix and in case of bad conditioning will add some diagonal noise until the matrix is considered positive-definite; it will then return a PDMat object. For this method to work in your code you need to include using PDMats first.","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"For a Kronecker matrix, we rely on Kronecker.jl. Here are two examples:","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"using Kronecker\nx = range(0, 1; length=10)\ny = range(0, 1; length=50)\nK = kernelkronmat(k, [x, y]) # Kronecker matrix\nK = kernelkronmat(k, x, 5) # Kronecker matrix","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"Make sure that k is a kernel compatible with such constructions (with iskroncompatible(k)). Both methods will return a Kronecker matrix. For those methods to work in your code you need to include using Kronecker first.","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"For a Nystrom approximation: kernelmatrix(nystrom(k, X, ρ, obsdim=1)) where ρ is the fraction of data samples used in the approximation.","category":"page"},{"location":"userguide/#Composite-Kernels","page":"User guide","title":"Composite Kernels","text":"","category":"section"},{"location":"userguide/","page":"User guide","title":"User guide","text":"Sums and products of kernels are also valid kernels. They can be created via KernelSum and KernelProduct or using simple operators + and *. For example:","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"k1 = SqExponentialKernel()\nk2 = Matern32Kernel()\nk = 0.5 * k1 + 0.2 * k2 # KernelSum\nk = k1 * k2 # KernelProduct","category":"page"},{"location":"userguide/#Kernel-Parameters","page":"User guide","title":"Kernel Parameters","text":"","category":"section"},{"location":"userguide/","page":"User guide","title":"User guide","text":"What if you want to differentiate through the kernel parameters? This is easy even in a highly nested structure such as:","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"k = (\n 0.5 * SqExponentialKernel() * Matern12Kernel() +\n 0.2 * (LinearKernel() ∘ ScaleTransform(2.0) + PolynomialKernel())\n) ∘ ARDTransform([0.1, 0.5])","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"One can access the named tuple of trainable parameters via Functors.functor from Functors.jl. This means that in practice you can implicitly optimize the kernel parameters by calling:","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"using Flux\nkernelparams = Flux.params(k)\nFlux.gradient(kernelparams) do\n # ... some loss function on the kernel ....\nend","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"EditURL = \"../../../../examples/gaussian-process-priors/script.jl\"","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"EditURL = \"https://github.com/JuliaGaussianProcesses/KernelFunctions.jl/blob/master/examples/gaussian-process-priors/script.jl\"","category":"page"},{"location":"examples/gaussian-process-priors/#Gaussian-process-prior-samples","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"","category":"section"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"(Image: )","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"You are seeing the HTML output generated by Documenter.jl and Literate.jl from the Julia source file. The corresponding notebook can be viewed in nbviewer.","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"The kernels defined in this package can also be used to specify the covariance of a Gaussian process prior. A Gaussian process (GP) is defined by its mean function m(cdot) and its covariance function or kernel k(cdot cdot):","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":" f sim mathcalGPbig(m(cdot) k(cdot cdot)big)","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"In this notebook we show how the choice of kernel affects the samples from a GP (with zero mean).","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"# Load required packages\nusing KernelFunctions, LinearAlgebra\nusing Plots, Plots.PlotMeasures\ndefault(; lw=1.0, legendfontsize=8.0)\nusing Random: seed!\nseed!(42); # reproducibility","category":"page"},{"location":"examples/gaussian-process-priors/#Evaluation-at-finite-set-of-points","page":"Gaussian process prior samples","title":"Evaluation at finite set of points","text":"","category":"section"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"The function values mathbff = f(x_n)_n=1^N of the GP at a finite number N of points X = x_n_n=1^N follow a multivariate normal distribution mathbff sim mathcalMVN(mathbfm mathrmK) with mean vector mathbfm and covariance matrix mathrmK, where","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"beginaligned\n mathbfm_i = m(x_i) \n mathrmK_ij = k(x_i x_j)\nendaligned","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"with 1 le i j le N.","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"We can visualize the infinite-dimensional GP by evaluating it on a fine grid to approximate the dense real line:","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"num_inputs = 101\nxlim = (-5, 5)\nX = range(xlim...; length=num_inputs);","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"Given a kernel k, we can compute the kernel matrix as K = kernelmatrix(k, X).","category":"page"},{"location":"examples/gaussian-process-priors/#Random-samples","page":"Gaussian process prior samples","title":"Random samples","text":"","category":"section"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"To sample from the multivariate normal distribution p(mathbff) = mathcalMVN(0 mathrmK), we could make use of Distributions.jl and call rand(MvNormal(K)). Alternatively, we could use the AbstractGPs.jl package and construct a GP object which we evaluate at the points of interest and from which we can then sample: rand(GP(k)(X)).","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"Here, we will explicitly construct samples using the Cholesky factorization mathrmL = operatornamecholesky(mathrmK), with mathbff = mathrmL mathbfv, where mathbfv sim mathcalN(0 mathbfI) is a vector of standard-normal random variables.","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"We will use the same randomness mathbfv to generate comparable samples across different kernels.","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"num_samples = 7\nv = randn(num_inputs, num_samples);","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"Mathematically, a kernel matrix is by definition positive semi-definite, but due to finite-precision inaccuracies, the computed kernel matrix might not be exactly positive definite. To avoid Cholesky errors, we add a small \"nugget\" term on the diagonal:","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"function mvn_sample(K)\n L = cholesky(K + 1e-6 * I)\n f = L.L * v\n return f\nend;","category":"page"},{"location":"examples/gaussian-process-priors/#Visualization","page":"Gaussian process prior samples","title":"Visualization","text":"","category":"section"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"We now define a function that visualizes a kernel for us.","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"function visualize(k::Kernel)\n K = kernelmatrix(k, X)\n f = mvn_sample(K)\n\n p_kernel_2d = heatmap(\n X,\n X,\n K;\n yflip=true,\n colorbar=false,\n ylabel=string(nameof(typeof(k))),\n ylim=xlim,\n yticks=([xlim[1], 0, xlim[end]], [\"\\u22125\", raw\"$x'$\", \"5\"]),\n vlim=(0, 1),\n title=raw\"$k(x, x')$\",\n aspect_ratio=:equal,\n left_margin=5mm,\n )\n\n p_kernel_cut = plot(\n X,\n k.(X, 0.0);\n title=string(raw\"$k(x, x_\\mathrm{ref})$\"),\n label=raw\"$x_\\mathrm{ref}=0.0$\",\n legend=:topleft,\n foreground_color_legend=nothing,\n )\n plot!(X, k.(X, 1.5); label=raw\"$x_\\mathrm{ref}=1.5$\")\n\n p_samples = plot(X, f; c=\"blue\", title=raw\"$f(x)$\", ylim=(-3, 3), label=nothing)\n\n return plot(\n p_kernel_2d,\n p_kernel_cut,\n p_samples;\n layout=(1, 3),\n xlabel=raw\"$x$\",\n xlim=xlim,\n xticks=collect(xlim),\n )\nend;","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"We can now visualize a kernel and show samples from a Gaussian process with a given kernel:","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"plot(visualize(SqExponentialKernel()); size=(800, 210), bottommargin=5mm, topmargin=5mm)","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","category":"page"},{"location":"examples/gaussian-process-priors/#Kernel-comparison","page":"Gaussian process prior samples","title":"Kernel comparison","text":"","category":"section"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"This also allows us to compare different kernels:","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"kernels = [\n Matern12Kernel(),\n Matern32Kernel(),\n Matern52Kernel(),\n SqExponentialKernel(),\n WhiteKernel(),\n ConstantKernel(),\n LinearKernel(),\n compose(PeriodicKernel(), ScaleTransform(0.2)),\n NeuralNetworkKernel(),\n GibbsKernel(; lengthscale=x -> sum(exp ∘ sin, x)),\n]\nplot(\n [visualize(k) for k in kernels]...;\n layout=(length(kernels), 1),\n size=(800, 220 * length(kernels) + 100),\n)","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"
      \n
      Package and system information
      \n
      \nPackage information (click to expand)\n
      \nStatus `~/work/KernelFunctions.jl/KernelFunctions.jl/examples/gaussian-process-priors/Project.toml`\n  [31c24e10] Distributions v0.25.103\n  [ec8451be] KernelFunctions v0.10.59 `/home/runner/work/KernelFunctions.jl/KernelFunctions.jl#ec19a94`\n  [98b081ad] Literate v2.16.0\n  [91a5bcdd] Plots v1.39.0\n  [37e2e46d] LinearAlgebra\n  [9a3f8284] Random\n
      \nTo reproduce this notebook's package environment, you can\n\ndownload the full Manifest.toml.\n
      \n
      \nSystem information (click to expand)\n
      \nJulia Version 1.9.4\nCommit 8e5136fa297 (2023-11-14 08:46 UTC)\nBuild Info:\n  Official https://julialang.org/ release\nPlatform Info:\n  OS: Linux (x86_64-linux-gnu)\n  CPU: 4 × AMD EPYC 7763 64-Core Processor\n  WORD_SIZE: 64\n  LIBM: libopenlibm\n  LLVM: libLLVM-14.0.6 (ORCJIT, znver3)\n  Threads: 1 on 4 virtual cores\nEnvironment:\n  JULIA_DEBUG = Documenter\n  JULIA_LOAD_PATH = :/home/runner/.julia/packages/JuliaGPsDocs/7M86H/src\n
      \n
      ","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"This page was generated using Literate.jl.","category":"page"},{"location":"#KernelFunctions.jl","page":"Home","title":"KernelFunctions.jl","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"KernelFunctions.jl is a general purpose kernel package. It provides a flexible framework for creating kernel functions and manipulating them, and an extensive collection of implementations. The main goals of this package are:","category":"page"},{"location":"","page":"Home","title":"Home","text":"Flexibility: operations between kernels should be fluid and easy without breaking, with a user-friendly API.\nPlug-and-play: being model-agnostic; including the kernels before/after other steps should be straightforward. To interoperate well with generic packages for handling parameters like ParameterHandling.jl and FluxML's Functors.jl.\nAutomatic Differentiation compatibility: all kernel functions which ought to be differentiable using AD packages like ForwardDiff.jl or Zygote.jl should be.","category":"page"},{"location":"","page":"Home","title":"Home","text":"This package replaces the now-defunct MLKernels.jl. It incorporates lots of excellent existing work from packages such as GaussianProcesses.jl, and is used in downstream packages such as AbstractGPs.jl, ApproximateGPs.jl, Stheno.jl, and AugmentedGaussianProcesses.jl.","category":"page"},{"location":"","page":"Home","title":"Home","text":"See the User guide for a brief introduction.","category":"page"}] +} diff --git a/v0.10.59/siteinfo.js b/v0.10.59/siteinfo.js new file mode 100644 index 000000000..6c1d353ae --- /dev/null +++ b/v0.10.59/siteinfo.js @@ -0,0 +1 @@ +var DOCUMENTER_CURRENT_VERSION = "v0.10.59"; diff --git a/v0.10.59/transform/index.html b/v0.10.59/transform/index.html new file mode 100644 index 000000000..1d6ccecab --- /dev/null +++ b/v0.10.59/transform/index.html @@ -0,0 +1,51 @@ + +Input Transforms · KernelFunctions.jl

      Input Transforms

      Overview

      Transforms are designed to change input data before passing it on to a kernel object.

      It can be as standard as IdentityTransform returning the same input, or multiplying the data by a scalar with ScaleTransform or by a vector with ARDTransform. There is a more general FunctionTransform that uses a function and applies it to each input.

      You can also create a pipeline of Transforms via ChainTransform, e.g.,

      LowRankTransform(rand(10, 5)) ∘ ScaleTransform(2.0)

      A transformation t can be applied to a single input x with t(x) and to multiple inputs xs with map(t, xs).

      Kernels can be coupled with input transformations with or its alias compose. It falls back to creating a TransformedKernel but allows more optimized implementations for specific kernels and transformations.

      List of Input Transforms

      KernelFunctions.ScaleTransformType
      ScaleTransform(l::Real)

      Transformation that multiplies the input elementwise with l.

      Examples

      julia> l = rand(); t = ScaleTransform(l); X = rand(100, 10);
      +
      +julia> map(t, ColVecs(X)) == ColVecs(l .* X)
      +true
      source
      KernelFunctions.ARDTransformType
      ARDTransform(v::AbstractVector)

      Transformation that multiplies the input elementwise by v.

      Examples

      julia> v = rand(10); t = ARDTransform(v); X = rand(10, 100);
      +
      +julia> map(t, ColVecs(X)) == ColVecs(v .* X)
      +true
      source
      KernelFunctions.LinearTransformType
      LinearTransform(A::AbstractMatrix)

      Linear transformation of the input realised by the matrix A.

      The second dimension of A must match the number of features of the target.

      Examples

      julia> A = rand(10, 5); t = LinearTransform(A); X = rand(5, 100);
      +
      +julia> map(t, ColVecs(X)) == ColVecs(A * X)
      +true
      source
      KernelFunctions.FunctionTransformType
      FunctionTransform(f)

      Transformation that applies function f to the input.

      Make sure that f can act on an input. For instance, if the inputs are vectors, use f(x) = sin.(x) instead of f = sin.

      Examples

      julia> f(x) = sum(x); t = FunctionTransform(f); X = randn(100, 10);
      +
      +julia> map(t, ColVecs(X)) == ColVecs(sum(X; dims=1))
      +true
      source
      KernelFunctions.SelectTransformType
      SelectTransform(dims)

      Transformation that selects the dimensions dims of the input.

      Examples

      julia> dims = [1, 3, 5, 6, 7]; t = SelectTransform(dims); X = rand(100, 10);
      +
      +julia> map(t, ColVecs(X)) == ColVecs(X[dims, :])
      +true
      source
      KernelFunctions.ChainTransformType
      ChainTransform(transforms)

      Transformation that applies a chain of transformations ts to the input.

      The transformation first(ts) is applied first.

      Examples

      julia> l = rand(); A = rand(3, 4); t1 = ScaleTransform(l); t2 = LinearTransform(A);
      +
      +julia> X = rand(4, 10);
      +
      +julia> map(ChainTransform([t1, t2]), ColVecs(X)) == ColVecs(A * (l .* X))
      +true
      +
      +julia> map(t2 ∘ t1, ColVecs(X)) == ColVecs(A * (l .* X))
      +true
      source
      KernelFunctions.PeriodicTransformType
      PeriodicTransform(f)

      Transformation that maps the input elementwise onto the unit circle with frequency f.

      Samples from a GP with a kernel with this transformation applied to the inputs will produce samples with frequency f.

      Examples

      julia> f = rand(); t = PeriodicTransform(f); x = rand();
      +
      +julia> t(x) == [sinpi(2 * f * x), cospi(2 * f * x)]
      +true
      source

      Convenience functions

      KernelFunctions.with_lengthscaleFunction
      with_lengthscale(kernel::Kernel, lengthscale::Real)

      Construct a transformed kernel with lengthscale.

      Examples

      julia> kernel = with_lengthscale(SqExponentialKernel(), 2.5);
      +
      +julia> x = rand(2);
      +
      +julia> y = rand(2);
      +
      +julia> kernel(x, y) ≈ (SqExponentialKernel() ∘ ScaleTransform(0.4))(x, y)
      +true
      source
      with_lengthscale(kernel::Kernel, lengthscales::AbstractVector{<:Real})

      Construct a transformed "ARD" kernel with different lengthscales for each dimension.

      Examples

      julia> kernel = with_lengthscale(SqExponentialKernel(), [0.5, 2.5]);
      +
      +julia> x = rand(2);
      +
      +julia> y = rand(2);
      +
      +julia> kernel(x, y) ≈ (SqExponentialKernel() ∘ ARDTransform([2, 0.4]))(x, y)
      +true
      source
      KernelFunctions.median_heuristic_transformFunction
      median_heuristic_transform(distance, x::AbstractVector)

      Create a ScaleTransform that divides the input elementwise by the median distance of the data points in x.

      The distance has to support pairwise evaluation with KernelFunctions.pairwise. All PreMetrics of the package Distances.jl such as Euclidean satisfy this requirement automatically.

      Examples

      julia> using Distances, Statistics
      +
      +julia> x = ColVecs(rand(100, 10));
      +
      +julia> t = median_heuristic_transform(Euclidean(), x);
      +
      +julia> y = map(t, x);
      +
      +julia> median(euclidean(y[i], y[j]) for i in 1:10, j in 1:10 if i != j) ≈ 1
      +true
      source
      diff --git a/v0.10.59/userguide/index.html b/v0.10.59/userguide/index.html new file mode 100644 index 000000000..56028da41 --- /dev/null +++ b/v0.10.59/userguide/index.html @@ -0,0 +1,29 @@ + +User guide · KernelFunctions.jl

      User guide

      Kernel Creation

      To create a kernel object, choose one of the pre-implemented kernels, see Kernel Functions, or create your own, see Creating your own kernel. For example, a squared exponential kernel is created by

        k = SqExponentialKernel()
      How do I set the lengthscale(s)?

      Instead of having lengthscale(s) for each kernel we use Transform objects which act on the inputs before passing them to the kernel. Note that the transforms such as ScaleTransform and ARDTransform multiply the input by a scale factor, which corresponds to the inverse of the lengthscale. For example, a lengthscale of 0.5 is equivalent to premultiplying the input by 2.0, and you can create the corresponding kernel in either of the following equivalent ways:

        k = SqExponentialKernel() ∘ ScaleTransform(2.0)
      +  k = compose(SqExponentialKernel(), ScaleTransform(2.0))

      Alternatively, you can use the convenience function with_lengthscale:

      k = with_lengthscale(SqExponentialKernel(), 0.5)

      with_lengthscale also works with vector-valued lengthscales for multiple-dimensional inputs, and is equivalent to pre-composing with an ARDTransform:

      length_scales = [1.0, 2.0]
      +k = with_lengthscale(SqExponentialKernel(), length_scales)
      +k = SqExponentialKernel() ∘ ARDTransform(1 ./ length_scales)

      Check the Input Transforms page for more details.

      How do I set the kernel variance?

      To premultiply the kernel by a variance, you can use * with a scalar number:

        k = 3.0 * SqExponentialKernel()
      How do I use a Mahalanobis kernel?

      The MahalanobisKernel(; P=P), defined by

      \[k(x, x'; P) = \exp{\big(- (x - x')^\top P (x - x')\big)}\]

      for a positive definite matrix $P = Q^\top Q$, was removed in 0.9. Instead you can use a squared exponential kernel together with a LinearTransform of the inputs:

      k = SqExponentialKernel() ∘ LinearTransform(sqrt(2) .* Q)

      Analogously, you can combine other kernels such as the PiecewisePolynomialKernel with a LinearTransform of the inputs to obtain a kernel that is a function of the Mahalanobis distance between inputs.

      Using a Kernel Function

      To evaluate the kernel function on two vectors you simply call the kernel object:

      k = SqExponentialKernel()
      +x1 = rand(3)
      +x2 = rand(3)
      +k(x1, x2)

      Creating a Kernel Matrix

      Kernel matrices can be created via the kernelmatrix function or kernelmatrix_diag for only the diagonal. For example, for a collection of 10 Real-valued inputs:

      k = SqExponentialKernel()
      +x = rand(10)
      +kernelmatrix(k, x) # 10x10 matrix

      If your inputs are multi-dimensional, it is common to represent them as a matrix. For example

      X = rand(10, 5)

      However, it is ambiguous whether this represents a collection of 10 5-dimensional row-vectors, or 5 10-dimensional column-vectors. Therefore, we require users to provide some more information.

      You can write RowVecs(X) to declare that X contains 10 5-dimensional row-vectors, or ColVecs(X) to declare that X contains 5 10-dimensional column-vectors, then

      kernelmatrix(k, RowVecs(X))  # returns a 10×10 matrix -- each row of X treated as input
      +kernelmatrix(k, ColVecs(X))  # returns a 5×5 matrix -- each column of X treated as input

      This is the mechanism used throughout KernelFunctions.jl to handle multi-dimensional inputs.

      You can utilise the obsdim keyword argument if you prefer:

      kernelmatrix(k, X; obsdim=1) # same as RowVecs(X)
      +kernelmatrix(k, X; obsdim=2) # same as ColVecs(X)

      This is similar to the convention used in Distances.jl.

      So what type should I use to represent a collection of inputs?

      The central assumption made by KernelFunctions.jl is that all collections of N inputs are represented by AbstractVectors of length N. Abstraction is then used to ensure that efficiency is retained, ColVecs and RowVecs being the most obvious examples of this.

      Concretely:

      1. For Real-valued inputs (scalars), a Vector{<:Real} is fine.
      2. For vector-valued inputs, consider a ColVecs or RowVecs.
      3. For a new input type, simply represent collections of inputs of this type as an AbstractVector.

      See Input Types and Design for a more thorough discussion of the considerations made when this design was adopted.

      The obsdim kwarg mentioned above is a special case for vector-valued inputs stored in a matrix. It is implemented as a lightweight wrapper that constructs either a RowVecs or ColVecs from your inputs, and passes this on.

      Output Types

      In addition to plain Matrix-like output, KernelFunctions.jl supports specific output types:

      • For a positive-definite matrix object of type PDMat from PDMats.jl, you can call the following:
      using PDMats
      +k = SqExponentialKernel()
      +K = kernelpdmat(k, RowVecs(X)) # PDMat
      +K = kernelpdmat(k, X; obsdim=1) # PDMat

      It will create a matrix and in case of bad conditioning will add some diagonal noise until the matrix is considered positive-definite; it will then return a PDMat object. For this method to work in your code you need to include using PDMats first.

      • For a Kronecker matrix, we rely on Kronecker.jl. Here are two examples:
      using Kronecker
      +x = range(0, 1; length=10)
      +y = range(0, 1; length=50)
      +K = kernelkronmat(k, [x, y]) # Kronecker matrix
      +K = kernelkronmat(k, x, 5) # Kronecker matrix

      Make sure that k is a kernel compatible with such constructions (with iskroncompatible(k)). Both methods will return a Kronecker matrix. For those methods to work in your code you need to include using Kronecker first.

      • For a Nystrom approximation: kernelmatrix(nystrom(k, X, ρ, obsdim=1)) where ρ is the fraction of data samples used in the approximation.

      Composite Kernels

      Sums and products of kernels are also valid kernels. They can be created via KernelSum and KernelProduct or using simple operators + and *. For example:

      k1 = SqExponentialKernel()
      +k2 = Matern32Kernel()
      +k = 0.5 * k1 + 0.2 * k2 # KernelSum
      +k = k1 * k2 # KernelProduct

      Kernel Parameters

      What if you want to differentiate through the kernel parameters? This is easy even in a highly nested structure such as:

      k = (
      +    0.5 * SqExponentialKernel() * Matern12Kernel() +
      +    0.2 * (LinearKernel() ∘ ScaleTransform(2.0) + PolynomialKernel())
      +) ∘ ARDTransform([0.1, 0.5])

      One can access the named tuple of trainable parameters via Functors.functor from Functors.jl. This means that in practice you can implicitly optimize the kernel parameters by calling:

      using Flux
      +kernelparams = Flux.params(k)
      +Flux.gradient(kernelparams) do
      +    # ... some loss function on the kernel ....
      +end
      diff --git a/versions.js b/versions.js index 012614d94..66f150b96 100644 --- a/versions.js +++ b/versions.js @@ -5,5 +5,5 @@ var DOC_VERSIONS = [ "v0.8", "dev", ]; -var DOCUMENTER_NEWEST = "v0.10.58"; +var DOCUMENTER_NEWEST = "v0.10.59"; var DOCUMENTER_STABLE = "stable";