From 0d2499abf907e52dc037c66ec22f0a90c5c9b02d Mon Sep 17 00:00:00 2001 From: "Documenter.jl" Date: Mon, 4 Mar 2024 16:02:59 +0000 Subject: [PATCH] build based on 3cb99f6 --- previews/PR273/.documenter-siteinfo.json | 1 + previews/PR273/API/blocks/index.html | 32 + previews/PR273/API/electrical/index.html | 2 + previews/PR273/API/hydraulic/index.html | 10 + .../PR273/API/linear_analysis/131b184f.svg | 50 + .../PR273/API/linear_analysis/b9a126ee.svg | 78 + previews/PR273/API/linear_analysis/index.html | 157 ++ previews/PR273/API/magnetic/index.html | 2 + previews/PR273/API/mechanical/index.html | 2 + previews/PR273/API/thermal/index.html | 2 + previews/PR273/assets/Manifest.toml | 2392 +++++++++++++++++ previews/PR273/assets/Project.toml | 18 + previews/PR273/assets/documenter.js | 1050 ++++++++ previews/PR273/assets/favicon.ico | Bin 0 -> 1394 bytes previews/PR273/assets/logo.png | Bin 0 -> 26575 bytes .../PR273/assets/themes/documenter-dark.css | 7 + .../PR273/assets/themes/documenter-light.css | 9 + previews/PR273/assets/themeswap.js | 84 + previews/PR273/assets/warner.js | 52 + .../PR273/connectors/connections/18c1cc07.svg | 48 + .../PR273/connectors/connections/5324a0c8.svg | 82 + .../PR273/connectors/connections/7c482eba.svg | 43 + .../PR273/connectors/connections/91f3ddc2.svg | 82 + .../PR273/connectors/connections/e178a151.svg | 116 + .../PR273/connectors/connections/f85bc71b.svg | 56 + .../PR273/connectors/connections/index.html | 99 + previews/PR273/connectors/model.png | Bin 0 -> 12022 bytes previews/PR273/connectors/model.svg | 201 ++ previews/PR273/connectors/through_across.png | Bin 0 -> 30457 bytes previews/PR273/connectors/through_across.svg | 317 +++ previews/PR273/index.html | 377 +++ previews/PR273/objects.inv | Bin 0 -> 2965 bytes previews/PR273/search_index.js | 3 + previews/PR273/siteinfo.js | 1 + previews/PR273/tutorials/chua.png | Bin 0 -> 125060 bytes previews/PR273/tutorials/chua_phase_plane.png | Bin 0 -> 172119 bytes .../tutorials/custom_component/index.html | 58 + .../PR273/tutorials/dc_motor_pi/203ac178.svg | 55 + .../PR273/tutorials/dc_motor_pi/992f6694.svg | 54 + .../PR273/tutorials/dc_motor_pi/b1dbe5a8.svg | 83 + .../PR273/tutorials/dc_motor_pi/index.html | 82 + .../tutorials/input_component/index.html | 104 + previews/PR273/tutorials/plot.png | Bin 0 -> 25077 bytes .../PR273/tutorials/rc_circuit/index.html | 29 + .../PR273/tutorials/thermal_model/index.html | 31 + previews/PR273/tutorials/thermal_plot.png | Bin 0 -> 28500 bytes 46 files changed, 5869 insertions(+) create mode 100644 previews/PR273/.documenter-siteinfo.json create mode 100644 previews/PR273/API/blocks/index.html create mode 100644 previews/PR273/API/electrical/index.html create mode 100644 previews/PR273/API/hydraulic/index.html create mode 100644 previews/PR273/API/linear_analysis/131b184f.svg create mode 100644 previews/PR273/API/linear_analysis/b9a126ee.svg create mode 100644 previews/PR273/API/linear_analysis/index.html create mode 100644 previews/PR273/API/magnetic/index.html create mode 100644 previews/PR273/API/mechanical/index.html create mode 100644 previews/PR273/API/thermal/index.html create mode 100644 previews/PR273/assets/Manifest.toml create mode 100644 previews/PR273/assets/Project.toml create mode 100644 previews/PR273/assets/documenter.js create mode 100644 previews/PR273/assets/favicon.ico create mode 100644 previews/PR273/assets/logo.png create mode 100644 previews/PR273/assets/themes/documenter-dark.css create mode 100644 previews/PR273/assets/themes/documenter-light.css create mode 100644 previews/PR273/assets/themeswap.js create mode 100644 previews/PR273/assets/warner.js create mode 100644 previews/PR273/connectors/connections/18c1cc07.svg create mode 100644 previews/PR273/connectors/connections/5324a0c8.svg create mode 100644 previews/PR273/connectors/connections/7c482eba.svg create mode 100644 previews/PR273/connectors/connections/91f3ddc2.svg create mode 100644 previews/PR273/connectors/connections/e178a151.svg create mode 100644 previews/PR273/connectors/connections/f85bc71b.svg create mode 100644 previews/PR273/connectors/connections/index.html create mode 100644 previews/PR273/connectors/model.png create mode 100644 previews/PR273/connectors/model.svg create mode 100644 previews/PR273/connectors/through_across.png create mode 100644 previews/PR273/connectors/through_across.svg create mode 100644 previews/PR273/index.html create mode 100644 previews/PR273/objects.inv create mode 100644 previews/PR273/search_index.js create mode 100644 previews/PR273/siteinfo.js create mode 100644 previews/PR273/tutorials/chua.png create mode 100644 previews/PR273/tutorials/chua_phase_plane.png create mode 100644 previews/PR273/tutorials/custom_component/index.html create mode 100644 previews/PR273/tutorials/dc_motor_pi/203ac178.svg create mode 100644 previews/PR273/tutorials/dc_motor_pi/992f6694.svg create mode 100644 previews/PR273/tutorials/dc_motor_pi/b1dbe5a8.svg create mode 100644 previews/PR273/tutorials/dc_motor_pi/index.html create mode 100644 previews/PR273/tutorials/input_component/index.html create mode 100644 previews/PR273/tutorials/plot.png create mode 100644 previews/PR273/tutorials/rc_circuit/index.html create mode 100644 previews/PR273/tutorials/thermal_model/index.html create mode 100644 previews/PR273/tutorials/thermal_plot.png diff --git a/previews/PR273/.documenter-siteinfo.json b/previews/PR273/.documenter-siteinfo.json new file mode 100644 index 000000000..8ea0084e1 --- /dev/null +++ b/previews/PR273/.documenter-siteinfo.json @@ -0,0 +1 @@ +{"documenter":{"julia_version":"1.10.2","generation_timestamp":"2024-03-04T16:02:51","documenter_version":"1.3.0"}} \ No newline at end of file diff --git a/previews/PR273/API/blocks/index.html b/previews/PR273/API/blocks/index.html new file mode 100644 index 000000000..294e0ef6f --- /dev/null +++ b/previews/PR273/API/blocks/index.html @@ -0,0 +1,32 @@ + +Basic Blocks · ModelingToolkitStandardLibrary.jl

ModelingToolkitStandardLibrary: Blocks

Index

Utility Blocks

ModelingToolkitStandardLibrary.Blocks.RealOutputFunction
RealOutput(;name, nout, u_start)

Connector with one output signal of type Real.

Parameters:

  • nout=1: Number of inputs
  • u_start=0: Initial value for u

States:

  • u: Value of the connector; if nout=1 this is a scalar
source

Math Blocks

ModelingToolkitStandardLibrary.Blocks.Add3Constant
Add(; name, k1 = 1, k2 = 1, k3 = 1)

Output the sum of the three scalar inputs.

Parameters:

  • k1: Gain for first input
  • k2: Gain for second input
  • k3: Gain for third input

Connectors:

  • input1
  • input2
  • input3
  • output
source

Source Blocks

ModelingToolkitStandardLibrary.Blocks.SineFunction
Sine(; name, frequency, amplitude = 1, phase = 0, offset = 0, start_time = 0,
+smooth = false)

Generate sine signal.

Parameters:

  • frequency: [Hz] Frequency of sine wave
  • amplitude: Amplitude of sine wave
  • phase: [rad] Phase of sine wave
  • offset: Offset of output signal
  • start_time: [s] Output y = offset for t < start_time
  • smooth: If true, returns a smooth wave. Defaults to false It uses a default smoothing factor of δ=1e-5, but this can be changed by supplying smooth=δ.

Connectors:

  • output
source
Missing docstring.

Missing docstring for Cosine. Check Documenter's build log for details.

ModelingToolkitStandardLibrary.Blocks.RampFunction

Ramp(; name, height = 1, duration = 1, offset = 0, start_time = 0, smooth = false)

Generate ramp signal.

Parameters:

  • height: Height of ramp
  • duration: [s] Duration of ramp (= 0.0 gives a Step)
  • offset: Offset of output signal
  • start_time: [s] Output y = offset for t < start_time
  • smooth: If true, returns a smooth wave. Defaults to false It uses a default smoothing factor of δ=1e-5, but this can be changed by supplying smooth=δ.

Connectors:

  • output
source
ModelingToolkitStandardLibrary.Blocks.StepFunction
Step(;name, height=1, offset=0, start_time=0, duration=Inf, smooth=true)

Generate step signal.

Parameters:

  • height: Height of step
  • offset: Offset of output signal
  • start_time: [s] Output y = offset for t < start_time and thereafter offset+height.
  • duration: [s] If duration < Inf is supplied, the output will revert to offset after duration seconds.
  • smooth: If true, returns a smooth wave. Defaults to true It uses a default smoothing factor of δ=1e-5, but this can be changed by supplying smooth=δ.

Connectors:

  • output
source
ModelingToolkitStandardLibrary.Blocks.ExpSineFunction
ExpSine(; name, frequency, amplitude = 1, damping = 0.1, phase = 0, offset = 0, start_time = 0, smooth = false)

Exponentially damped sine signal.

Parameters:

  • frequency: [Hz] Frequency of sine wave
  • amplitude: Amplitude of sine wave
  • damping: [1/s] Damping coefficient of sine wave
  • phase: [rad] Phase of sine wave
  • offset: Offset of output signal
  • start_time: [s] Output y = offset for t < start_time
  • smooth: If true, returns a smooth wave. Defaults to false It uses a default smoothing factor of δ=1e-5, but this can be changed by supplying smooth=δ.

Connectors:

  • output
source

Nonlinear Blocks

ModelingToolkitStandardLibrary.Blocks.DeadZoneConstant
DeadZone(; name, u_max, u_min = -u_max)

The DeadZone block defines a region of zero output. If the input is within u_min ... u_max, the output is zero. Outside of this zone, the output is a linear function of the input with a slope of 1.

       y▲
+        │     /
+        │    /
+  u_min │   /
+─────|──┼──|───────► u
+    /   │   u_max
+   /    │
+  /     │

Parameters:

  • u_max: Upper limit of dead zone
  • u_min: Lower limit of dead zone

Connectors:

  • input
  • output
source
ModelingToolkitStandardLibrary.Blocks.SlewRateLimiterConstant
SlewRateLimiter(; name, y_start, rising = 1.0, falling = -rising, Td = 0.001)

Limits the slew rate of a signal. Initial value of state Y can be set with int.y

Parameters:

  • rising: Maximum rising slew rate
  • falling: Maximum falling slew rate
  • Td: [s] Derivative time constant
  • y_start: Initial value of y state of SISO

Connectors:

  • input
  • output
source

Continuous Blocks

ModelingToolkitStandardLibrary.Blocks.IntegratorConstant
Integrator(;name, k = 1, x = 0.0)

Outputs y = ∫k*u dt, corresponding to the transfer function $1/s$. Initial value of integrator state $x$ can be set with x

Connectors:

  • input
  • output

Parameters:

  • k: Gain of integrator
source
ModelingToolkitStandardLibrary.Blocks.DerivativeConstant
Derivative(; name, k = 1, T, x = 0.0)

Outputs an approximate derivative of the input. The transfer function of this block is Initial value of the state $x$ can be set with x

k       k
+─ - ──────────
+T    2 ⎛    1⎞
+    T ⋅⎜s + ─⎟
+       ⎝    T⎠

and a state-space realization is given by ss(-1/T, 1/T, -k/T, k/T) where T is the time constant of the filter. A smaller T leads to a more ideal approximation of the derivative.

Parameters:

  • k: Gain
  • T: [s] Time constants (T>0 required; T=0 is ideal derivative block)

Connectors:

  • input
  • output
source
ModelingToolkitStandardLibrary.Blocks.FirstOrderConstant
FirstOrder(; name, k = 1.0, T, x = 0.0, lowpass = true)

A first-order filter with a single real pole in s = -T and gain k. If lowpass=true (default), the transfer function is given by $Y(s)/U(s) =$

   k
+───────
+sT + 1

and if lowpass=false, by

sT + 1 - k
+──────────
+  sT + 1

Initial value of the state x can be set with x

Parameters:

  • k: Gain
  • T: [s] Time constant (T>0 required)

Connectors:

  • input
  • output

See also SecondOrder

source
ModelingToolkitStandardLibrary.Blocks.SecondOrderConstant
SecondOrder(; name, k = 1.0, w = 1.0, d = 1.0, x = 0.0, xd = 0.0)

A second-order filter with gain k, a bandwidth of w rad/s and relative damping d. The transfer function is given by Y(s)/U(s) =

      k*w^2
+─────────────────
+s² + 2d*w*s + w^2

Critical damping corresponds to d=1, which yields the fastest step response without overshoot, d < 1 results in an underdamped filter while d > 1 results in an overdamped filter. d = 1/√2 corresponds to a Butterworth filter of order 2 (maximally flat frequency response). Initial value of the state x can be set with x, and of derivative state xd with xd.

Parameters:

  • k: Gain
  • w: [rad/s] Angular frequency
  • d: Damping

Connectors:

  • input
  • output
source
ModelingToolkitStandardLibrary.Blocks.StateSpaceFunction
StateSpace(A, B, C, D = 0; x = zeros(size(A,1)), u0 = zeros(size(B,2)), y0 = zeros(size(C,1)), name)

A linear, time-invariant state-space system on the form.

\[\begin{aligned} +ẋ &= Ax + Bu \\ +y &= Cx + Du +\end{aligned}\]

Transfer functions can also be simulated by converting them to a StateSpace form.

y0 and u0 can be used to set an operating point, providing them changes the dynamics from an LTI system to the affine system

\[\begin{aligned} +ẋ &= Ax + B(u - u0) \\ +y &= Cx + D(u - u0) + y0 +\end{aligned}\]

For a nonlinear system

\[\begin{aligned} +ẋ &= f(x, u) \\ +y &= h(x, u) +\end{aligned}\]

linearized around the operating point x₀, u₀, we have y0, u0 = h(x₀, u₀), u₀.

source
ModelingToolkitStandardLibrary.Blocks.TransferFunctionFunction
TransferFunction(; b, a, name)

A single input, single output, linear time-invariant system provided as a transfer-function.

Y(s) = b(s) / a(s)  U(s)

where b and a are vectors of coefficients of the numerator and denominator polynomials, respectively, ordered such that the coefficient of the highest power of s is first.

The internal state realization is on controller canonical form, with state variable x, output variable y and input variable u. For numerical robustness, the realization used by the integrator is scaled by the last entry of the a parameter. The internally scaled state variable is available as x_scaled.

To set the initial state, it's recommended to set the initial condition for x, and let that of x_scaled be computed automatically.

Parameters:

  • b: Numerator polynomial coefficients, e.g., 2s + 3 is specified as [2, 3]
  • a: Denominator polynomial coefficients, e.g., s² + 2ωs + ω^2 is specified as [1, 2ω, ω^2]

Connectors:

  • input
  • output

See also StateSpace which handles MIMO systems, as well as ControlSystemsMTK.jl for an interface between ControlSystems.jl and ModelingToolkit.jl for advanced manipulation of transfer functions and linear statespace systems. For linearization, see linearize and Linear Analysis.

source
ModelingToolkitStandardLibrary.Blocks.PIConstant
PI(;name, k = 1.0, T = 1.0, int.x = 0.0)

Textbook version of a PI-controller without actuator saturation and anti-windup measure. The proportional gain can be set with k Initial value of integrator state x can be set with int.x

The PI controller is implemented on standard form:

\[U(s) = k (1 + \dfrac{1}{sT}) E(S)\]

Parameters:

  • k: Proportional gain
  • T: [s] Integrator time constant (T>0 required)

Connectors:

  • err_input
  • ctr_output

See also LimPI

source
ModelingToolkitStandardLibrary.Blocks.LimPIFunction
LimPI(; name, k = 1.0, T, Ta, int__x = 0.0, u_max = 1.0, u_min = -u_max)

Text-book version of a PI-controller with actuator saturation and anti-windup measure.

The PI controller is implemented on standard form

\[u(t) = sat(k (e(t) + ∫\dfrac{1}{T}e(t) dt) )\]

The simplified expression above is given without the anti-windup protection.

Parameters:

  • k: Proportional gain
  • T: [s] Integrator time constant (T>0 required)
  • Ta: [s] Tracking time constant (Ta>0 required)

Connectors:

  • err_input
  • ctr_output
source
ModelingToolkitStandardLibrary.Blocks.PIDFunction
PID(;name, k=1, Ti=false, Td=false, Nd=10, int__x=0, der__x=0)

Text-book version of a PID-controller without actuator saturation and anti-windup measure.

Parameters:

  • k: Gain
  • Ti: [s] Integrator time constant (Ti>0 required). If set to false, no integral action is used.
  • Td: [s] Derivative time constant (Td>0 required). If set to false, no derivative action is used.
  • Nd: [s] Time constant for the derivative approximation (Nd>0 required; Nd=0 is ideal derivative).
  • int__x: Initial value for the integrator.
  • der__x: Initial value for the derivative state.

Connectors:

  • err_input
  • ctr_output

See also LimPID

source
ModelingToolkitStandardLibrary.Blocks.LimPIDFunction
LimPID(; k, Ti=false, Td=false, wp=1, wd=1, Ni, Nd=12, u_max=Inf, u_min=-u_max, gains = false, name)

Proportional-Integral-Derivative (PID) controller with output saturation, set-point weighting and integrator anti-windup.

The equation for the control signal is roughly

k(ep + 1/Ti * ∫e + Td * d/dt(ed))
+e = u_r - u_y
+ep = wp*u_r - u_y
+ed = wd*u_r - u_y

where the transfer function for the derivative includes additional filtering, see ? Derivative for more details.

Parameters:

  • k: Proportional gain
  • Ti: [s] Integrator time constant. Set to false to turn off integral action.
  • Td: [s] Derivative time constant. Set to false to turn off derivative action.
  • wp: [0,1] Set-point weighting in the proportional part.
  • wd: [0,1] Set-point weighting in the derivative part.
  • Nd: [1/s] Derivative limit, limits the derivative gain to Nd/Td. Reasonable values are ∈ [8, 20]. A higher value gives a better approximation of an ideal derivative at the expense of higher noise amplification.
  • Ni: Ni*Ti controls the time constant Ta of anti-windup tracking. A common (default) choice is Ta = √(Ti*Td) which is realized by Ni = √(Td / Ti). Anti-windup can be effectively turned off by setting Ni = Inf.
  • gains: If gains = true, Ti and Td will be interpreted as gains with a fundamental PID transfer function on parallel form ki=Ti, kd=Td, k + ki/s + kd*s.

Connectors:

  • reference
  • measurement
  • ctr_output
source
diff --git a/previews/PR273/API/electrical/index.html b/previews/PR273/API/electrical/index.html new file mode 100644 index 000000000..e81133226 --- /dev/null +++ b/previews/PR273/API/electrical/index.html @@ -0,0 +1,2 @@ + +Electrical Components · ModelingToolkitStandardLibrary.jl

ModelingToolkitStandardLibrary: Electrical Components

Index

Electrical Utilities

ModelingToolkitStandardLibrary.Electrical.OnePortConstant
OnePort(; name, v = 0.0, i = 0.0)

Component with two electrical pins p and n and current i flows from p to n.

States:

  • v(t): [V] The voltage across component p.v - n.v
  • i(t): [A] The current passing through positive pin

Connectors:

  • p Positive pin
  • n Negative pin
source
ModelingToolkitStandardLibrary.Electrical.DigitalPinFunction
DigitalPin(; name)

A pin in a digital circuit.

States:

  • v(t): [V] The voltage at this pin
  • i(t): [A] The current passing through this pin
  • val(t): The binary value of the pin at this point. A voltage from 0V to 0.8V is a binary value of 0.

A voltage in the range 2.0V to 5.0V is 1. Any other value is X.

source

Analog Components

ModelingToolkitStandardLibrary.Electrical.IdealOpAmpConstant
IdealOpAmp(; name)

Ideal operational amplifier (norator-nullator pair). The ideal OpAmp is a two-port. The left port is fixed to v1 = 0 and i1 = 0 (nullator). At the right port both any voltage v2 and any current i2 are possible (norator).

States:

See TwoPort

Connectors:

  • p1 Positive pin (left port)
  • p2 Positive pin (right port)
  • n1 Negative pin (left port)
  • n2 Negative pin (right port)
source

Analog Sensors

ModelingToolkitStandardLibrary.Electrical.VoltageSensorConstant

VoltageSensor(; name)

Creates a circuit component that measures the voltage across it. Analogous to an ideal voltmeter.

States:

  • v(t): [V] The voltage difference from positive to negative pin p.v - n.v

Connectors:

  • p Positive pin
  • n Negative pin
source
ModelingToolkitStandardLibrary.Electrical.PowerSensorConstant

PowerSensor(; name)

Combines a VoltageSensor and a CurrentSensor to measure the power being consumed by a circuit.

States:

Connectors:

source

Analog Sources

Digital Gates

Missing docstring.

Missing docstring for Not. Check Documenter's build log for details.

Missing docstring.

Missing docstring for And. Check Documenter's build log for details.

Missing docstring.

Missing docstring for Nand. Check Documenter's build log for details.

Missing docstring.

Missing docstring for Or. Check Documenter's build log for details.

Missing docstring.

Missing docstring for Nor. Check Documenter's build log for details.

Missing docstring.

Missing docstring for Xor. Check Documenter's build log for details.

Missing docstring.

Missing docstring for Xnor. Check Documenter's build log for details.

Digital Components

Missing docstring.

Missing docstring for HalfAdder. Check Documenter's build log for details.

Missing docstring.

Missing docstring for FullAdder. Check Documenter's build log for details.

Missing docstring.

Missing docstring for MUX. Check Documenter's build log for details.

Missing docstring.

Missing docstring for DEMUX. Check Documenter's build log for details.

Missing docstring.

Missing docstring for Encoder. Check Documenter's build log for details.

Missing docstring.

Missing docstring for Decoder. Check Documenter's build log for details.

Digital Sources

Missing docstring.

Missing docstring for PulseDiff. Check Documenter's build log for details.

Missing docstring.

Missing docstring for Set. Check Documenter's build log for details.

Missing docstring.

Missing docstring for Reset. Check Documenter's build log for details.

Missing docstring.

Missing docstring for Pulse. Check Documenter's build log for details.

diff --git a/previews/PR273/API/hydraulic/index.html b/previews/PR273/API/hydraulic/index.html new file mode 100644 index 000000000..ba8c88251 --- /dev/null +++ b/previews/PR273/API/hydraulic/index.html @@ -0,0 +1,10 @@ + +Hydraulic Components · ModelingToolkitStandardLibrary.jl

ModelingToolkit Standard Library: Hydraulic Components

Index

IsothermalCompressible Components

IsothermalCompressible Utils

ModelingToolkitStandardLibrary.Hydraulic.IsothermalCompressible.HydraulicFluidFunction
HydraulicFluid(; density = 997, bulk_modulus = 2.09e9, viscosity = 0.0010016, gas_density = 0.0073955, gas_pressure = -1000, n = 1, let_gas = 1, name)

Fluid parameter setter for isothermal compressible fluid domain. Defaults given for water at 20°C and 0Pa gage (1atm absolute) reference pressure. Density is modeled using the Tait equation of state. For pressures below the reference pressure, density is linearly interpolated to the gas state (when let_gas is set to 1), this helps prevent pressures from going below the reference pressure.

Parameters:

  • ρ: [kg/m^3] fluid density at 0Pa reference gage pressure (set by density argument)
  • Β: [Pa] fluid bulk modulus describing the compressibility (set by bulk_modulus argument)
  • μ: [Pa*s] or [kg/m-s] fluid dynamic viscosity (set by viscosity argument)
  • n: density exponent
  • let_gas: set to 1 to allow fluid to transition from liquid to gas (for density calculation only)
  • ρ_gas: [kg/m^3] density of fluid in gas state at reference gage pressure p_gas (set by gas_density argument)
  • p_gas: [Pa] reference pressure (set by gas_pressure argument)
source
ModelingToolkitStandardLibrary.Hydraulic.IsothermalCompressible.friction_factorFunction
friction_factor(dm, area, d_h, viscosity, shape_factor)

Calculates the friction factor $f$ for fully developed flow in a tube such that $Δp = f \cdot \rho \frac{u^2}{2} \frac{l}{d_h}$ where

  • $Δp$: [Pa] is the pressure difference over the tube length $l$
  • $\rho$: [kg/m^3] is the average fluid density
  • $u$: [m/s] is the average fluid velocity
  • $l$: [m] is the tube length

The friction factor is calculated for laminar and turbulent flow with a transition region between Reynolds number 2000 to 3000. Turbulent flow equation is for smooth tubes, valid for the Reynolds number range up to 5e6.

Arguments:

  • dm: [kg/s] mass flow
  • area: [m^2] tube cross sectional area
  • d_h: [m] tube hydraulic diameter. For circular tubes d_h is the tube diameter, otherwise it can be found from 4*area/perimeter
  • density: [kg/m^3] fluid density
  • viscosity: [Pa*s] or [kg/m-s] fluid dynamic viscosity
  • shape_factor: the constant defining the laminar fully developed constant f*Re related to the shape of the tube cross section

Reference: Introduction to Fluid Mechanics, Fox & McDonald, 5th Edition, equations 8.19 and 8.21

source

IsothermalCompressible Components

ModelingToolkitStandardLibrary.Hydraulic.IsothermalCompressible.TubeBaseFunction
TubeBase(add_inertia = true; p_int, area, length_int, head_factor = 1, perimeter = 2 * sqrt(area * pi), shape_factor = 64, name)

Variable length internal flow model of the fully developed incompressible flow friction. Includes optional inertia term when add_inertia = true to model wave propagation. Hydraulic ports have equal flow but variable pressure. Density is averaged over the pressures, used to calculated average flow velocity and flow friction.

States:

  • x: [m] length of the pipe
  • ddm: [kg/s^2] Rate of change of mass flow rate in control volume.

Parameters:

  • p_int: [Pa] initial pressure
  • area: [m^2] tube cross sectional area
  • length_int: [m] initial tube length
  • perimeter: [m] perimeter of the pipe cross section (needed only for non-circular pipes)
  • shape_factor: shape factor, see friction_factor function
  • head_factor: effective length multiplier, used to account for addition friction from flow development and additional friction such as pipe bends, entrance/exit lossses, etc.

Connectors:

  • port_a: hydraulic port
  • port_b: hydraulic port
source
ModelingToolkitStandardLibrary.Hydraulic.IsothermalCompressible.TubeFunction
Tube(N, add_inertia=true; p_int, area, length, head_factor=1, perimeter = 2 * sqrt(area * pi), shape_factor = 64, name)

Constant length internal flow model discretized by N (FixedVolume: N, TubeBase:N-1) which models the fully developed flow friction, compressibility (when N>1), and inertia effects when add_inertia = true. See TubeBase and FixedVolume for more information.

Parameters:

  • p_int: [Pa] initial pressure
  • area: [m^2] tube cross sectional area
  • length: [m] real length of the tube
  • perimeter: [m] perimeter of the pipe cross section (needed only for non-circular pipes)
  • shape_factor: shape factor, see friction_factor function
  • head_factor: effective length multiplier, used to account for addition friction from flow development and additional friction such as pipe bends, entrance/exit lossses, etc.

Connectors:

  • port_a: hydraulic port
  • port_b: hydraulic port
source
ModelingToolkitStandardLibrary.Hydraulic.IsothermalCompressible.DynamicVolumeFunction

DynamicVolume(N, addinertia=true; pint, area, xint = 0, xmax, xmin = 0, xdamp = xmin, direction = +1, perimeter = 2 * sqrt(area * pi), shapefactor = 64, headfactor = 1, Cd = 1e2, Cdreverse = Cd, name)

Volume with moving wall with flange connector for converting hydraulic energy to 1D mechanical. The direction argument aligns the mechanical port with the hydraulic port, useful when connecting two dynamic volumes together in oppsing directions to create an actuator.

     ┌─────────────────┐ ───
+     │                 │  ▲
+                       │  │
+dm ────►               │  │ area
+                       │  │
+     │                 │  ▼
+     └─────────────────┤ ───
+                       │
+                       └─► x (= ∫ flange.v * direction)

Features:

  • volume discretization with flow resistance and inertia: use N to control number of volume and resistance elements. Set N=0 to turn off volume discretization. See TubeBase for more information about flow resistance.
  • minimum volume flow shutoff with damping and directional resistance. Use reversible=false when problem defines volume position x and solves for dm to prevent numerical instability.

Parameters:

volume

  • p_int: [Pa] initial pressure

  • area: [m^2] moving wall area

  • x_int: [m] initial wall position

  • x_max: [m] max wall position, needed for volume discretization to apply the correct volume sizing as a function of x

  • x_min: [m] wall position that shuts off flow and prevents negative volume.

  • x_damp: [m] wall position that initiates a linear damping region before reaching full flow shut off. Helps provide a smooth end stop.

  • direction: [+/-1] applies the direction conversion from the flange to x

flow resistance

  • perimeter: [m] perimeter of the cross section (needed only for non-circular volumes)
  • shape_factor: shape factor, see friction_factor function
  • head_factor: effective length multiplier, used to account for addition friction from flow development and additional friction such as pipe bends, entrance/exit lossses, etc.

flow shut off and damping

  • Cd: discharge coefficient for flow out of the volume. Note: area is 1m² when valve is fully open. Ensure this does not induce unwanted flow resistance.
  • Cd_reverse: discharge coefficient for flow into the volume. Use a lower value to allow easy wall release, in some cases the wall can "stick".

Connectors:

  • port: hydraulic port
  • flange: mechanical translational port
source

IsothermalCompressible Sources

diff --git a/previews/PR273/API/linear_analysis/131b184f.svg b/previews/PR273/API/linear_analysis/131b184f.svg new file mode 100644 index 000000000..5fedec94b --- /dev/null +++ b/previews/PR273/API/linear_analysis/131b184f.svg @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/previews/PR273/API/linear_analysis/b9a126ee.svg b/previews/PR273/API/linear_analysis/b9a126ee.svg new file mode 100644 index 000000000..2d206b280 --- /dev/null +++ b/previews/PR273/API/linear_analysis/b9a126ee.svg @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/previews/PR273/API/linear_analysis/index.html b/previews/PR273/API/linear_analysis/index.html new file mode 100644 index 000000000..643e3f444 --- /dev/null +++ b/previews/PR273/API/linear_analysis/index.html @@ -0,0 +1,157 @@ + +Linear Analysis · ModelingToolkitStandardLibrary.jl

Linear Analysis

Experimental

The interface described here is currently experimental and at any time subject to breaking changes not respecting semantic versioning.

Linear analysis refers to the process of linearizing a nonlinear model and analysing the resulting linear dynamical system. To facilitate linear analysis, ModelingToolkitStandardLibrary provides the concept of an AnalysisPoint, which can be inserted in-between two causal blocks (such as those from the Blocks sub module). Once a model containing analysis points is built, several operations are available:

  • get_sensitivity get the sensitivity function (wiki), $S(s)$, as defined in the field of control theory.
  • get_comp_sensitivity get the complementary sensitivity function $T(s) : S(s)+T(s)=1$.
  • get_looptransfer get the (open) loop-transfer function where the loop starts and ends in the analysis point. For a typical simple feedback connection with a plant $P(s)$ and a controller $C(s)$, the loop-transfer function at the plant output is $P(s)C(s)$.
  • linearize can be called with two analysis points denoting the input and output of the linearized system.
  • open_loop return a new (nonlinear) system where the loop has been broken in the analysis point, i.e., the connection the analysis point usually implies has been removed.

An analysis point can be created explicitly using the constructor AnalysisPoint, or automatically when connecting two causal components using connect:

connect(comp1.output, :analysis_point_name, comp2.input)
Causality

Analysis points are causal, i.e., they imply a directionality for the flow of information. The order of the connections in the connect statement is thus important, i.e., connect(out, :name, in) is different from connect(in, :name, out).

The directionality of an analysis point can be thought of as an arrow in a block diagram, where the name of the analysis point applies to the arrow itself.

┌─────┐         ┌─────┐
+│     │  name   │     │
+│  out├────────►│in   │
+│     │         │     │
+└─────┘         └─────┘

This is signified by the name being the middle argument to connect.

Of the above mentioned functions, all except for open_loop return the output of ModelingToolkit.linearize, which is

matrices, simplified_sys = linearize(...)
+# matrices = (; A, B, C, D)

i.e., matrices is a named tuple containing the matrices of a linear state-space system on the form

\[\begin{aligned} +\dot x &= Ax + Bu\\ +y &= Cx + Du +\end{aligned}\]

Example

The following example builds a simple closed-loop system with a plant $P$ and a controller $C$. Two analysis points are inserted, one before and one after $P$. We then derive a number of sensitivity functions and show the corresponding code using the package ControlSystemBase.jl

using ModelingToolkitStandardLibrary.Blocks, ModelingToolkit
+@named P = FirstOrder(k = 1, T = 1) # A first-order system with pole in -1
+@named C = Gain(-1)             # A P controller
+t = ModelingToolkit.get_iv(P)
+eqs = [connect(P.output, :plant_output, C.input)  # Connect with an automatically created analysis point called :plant_output
+       connect(C.output, :plant_input, P.input)]
+sys = ODESystem(eqs, t, systems = [P, C], name = :feedback_system)
+
+matrices_S = get_sensitivity(sys, :plant_input)[1] # Compute the matrices of a state-space representation of the (input)sensitivity function.
+matrices_T = get_comp_sensitivity(sys, :plant_input)[1]
(A = [-2.0;;], B = [-1.0;;], C = [-1.0;;], D = [0.0;;])

Continued linear analysis and design can be performed using ControlSystemsBase.jl. We create ControlSystemsBase.StateSpace objects using

using ControlSystemsBase, Plots
+S = ss(matrices_S...)
+T = ss(matrices_T...)
+bodeplot([S, T], lab = ["S" "" "T" ""], plot_title = "Bode plot of sensitivity functions",
+    margin = 5Plots.mm)
Example block output

The sensitivity functions obtained this way should be equivalent to the ones obtained with the code below

using ControlSystemsBase
+P = tf(1.0, [1, 1]) |> ss
+C = 1                      # Negative feedback assumed in ControlSystems
+S = sensitivity(P, C)      # or feedback(1, P*C)
+T = comp_sensitivity(P, C) # or feedback(P*C)
ControlSystemsBase.StateSpace{ControlSystemsBase.Continuous, Float64}
+A = 
+ -2.0
+B = 
+ 1.0
+C = 
+ 1.0
+D = 
+ 0.0
+
+Continuous-time state-space model

We may also derive the loop-transfer function $L(s) = P(s)C(s)$ using

matrices_L = get_looptransfer(sys, :plant_output)[1]
+L = ss(matrices_L...)
ControlSystemsBase.StateSpace{ControlSystemsBase.Continuous, Float64}
+A = 
+ -1.0
+B = 
+ -1.0
+C = 
+ 1.0
+D = 
+ 0.0
+
+Continuous-time state-space model

which is equivalent to the following with ControlSystems

L = P * (-C) # Add the minus sign to build the negative feedback into the controller
ControlSystemsBase.StateSpace{ControlSystemsBase.Continuous, Float64}
+A = 
+ -1.0
+B = 
+ -1.0
+C = 
+ 1.0
+D = 
+ -0.0
+
+Continuous-time state-space model

To obtain the transfer function between two analysis points, we call linearize

matrices_PS = linearize(sys, :plant_input, :plant_output)[1]
(A = [-2.0;;], B = [1.0;;], C = [1.0;;], D = [0.0;;])

this particular transfer function should be equivalent to the linear system P(s)S(s), i.e., equivalent to

feedback(P, C)
ControlSystemsBase.StateSpace{ControlSystemsBase.Continuous, Float64}
+A = 
+ -2.0
+B = 
+ 1.0
+C = 
+ 1.0
+D = 
+ 0.0
+
+Continuous-time state-space model

Obtaining transfer functions

A statespace system from ControlSystemsBase can be converted to a transfer function using the function tf:

tf(S)
ControlSystemsBase.TransferFunction{ControlSystemsBase.Continuous, ControlSystemsBase.SisoRational{Float64}}
+1.0s + 1.0
+----------
+1.0s + 2.0
+
+Continuous-time transfer function model

Gain and phase margins

Further linear analysis can be performed using the analysis methods from ControlSystemsBase. For example, calculating the gain and phase margins of a system can be done using

margin(P)
(wgm = [NaN;;], gm = [Inf;;], wpm = [NaN;;], pm = [Inf;;])

(they are infinite for this system). A Nyquist plot can be produced using

nyquistplot(P)
Example block output

Index

ModelingToolkitStandardLibrary.Blocks.get_comp_sensitivityFunction
get_comp_sensitivity(sys, ap::AnalysisPoint; kwargs)
+get_comp_sensitivity(sys, ap_name::Symbol; kwargs)

Compute the complementary sensitivity function in analysis point ap. The complementary sensitivity function is obtained by introducing an infinitesimal perturbation d at the output of ap, linearizing the system and computing the transfer function between d and the input of ap.

Experimental

The analysis-point interface is currently experimental and at any time subject to breaking changes not respecting semantic versioning.

Arguments:

  • kwargs: Are sent to ModelingToolkit.linearize

See also get_sensitivity, get_looptransfer.

source
ModelingToolkitStandardLibrary.Blocks.get_looptransferFunction
get_looptransfer(sys, ap::AnalysisPoint; kwargs)
+get_looptransfer(sys, ap_name::Symbol; kwargs)

Compute the (linearized) loop-transfer function in analysis point ap, from ap.out to ap.in.

Negative feedback

Feedback loops often use negative feedback, and the computed loop-transfer function will in this case have the negative feedback included. Standard analysis tools often assume a loop-transfer function without the negative gain built in, and the result of this function may thus need negation before use.

Experimental

The analysis-point interface is currently experimental and at any time subject to breaking changes not respecting semantic versioning.

Arguments:

  • kwargs: Are sent to ModelingToolkit.linearize

See also get_sensitivity, get_comp_sensitivity, open_loop.

source
ModelingToolkitStandardLibrary.Blocks.get_sensitivityFunction
get_sensitivity(sys, ap::AnalysisPoint; kwargs)
+get_sensitivity(sys, ap_name::Symbol; kwargs)

Compute the sensitivity function in analysis point ap. The sensitivity function is obtained by introducing an infinitesimal perturbation d at the input of ap, linearizing the system and computing the transfer function between d and the output of ap.

Experimental

The analysis-point interface is currently experimental and at any time subject to breaking changes not respecting semantic versioning.

Arguments:

  • kwargs: Are sent to ModelingToolkit.linearize

See also get_comp_sensitivity, get_looptransfer.

source
ModelingToolkitStandardLibrary.Blocks.open_loopMethod
open_sys = open_loop(sys, ap::AnalysisPoint; kwargs)
+open_sys = open_loop(sys, ap_name::Symbol; kwargs)

Open the loop at analysis point ap by breaking the connection through ap.

open_sys will have u ~ ap.out as input and y ~ ap.in as output.

Experimental

The analysis-point interface is currently experimental and at any time subject to breaking changes not respecting semantic versioning.

Arguments:

  • kwargs: Are sent to ModelingToolkit.linearize

See also get_sensitivity, get_comp_sensitivity, get_looptransfer.

source
ModelingToolkitStandardLibrary.Blocks.AnalysisPointMethod
AnalysisPoint(in, out, name::Symbol)
+AnalysisPoint(in, out; name::Symbol)
+AnalysisPoint(name::Symbol)

Create an AnalysisPoint for linear analysis. Analysis points can also be created automatically by calling

connect(in, :ap_name, out)
Experimental

The analysis-point interface is currently experimental and at any time subject to breaking changes not respecting semantic versioning.

Arguments:

  • in: A connector of type RealOutput.
  • out: A connector of type RealInput.
  • name: The name of the analysis point.

See also get_sensitivity, get_comp_sensitivity, get_looptransfer, open_loop

Example

using ModelingToolkitStandardLibrary.Blocks
+@named P = FirstOrder(k = 1, T = 1)
+@named C = Gain(; k = -1)
+t = ModelingToolkit.get_iv(P)
+eqs = [connect(P.output, C.input)
+       connect(C.output, :plant_input, P.input)]
+sys = ODESystem(eqs, t, systems = [P, C], name = :feedback_system)
+
+matrices_S, _ = get_sensitivity(sys, :plant_input) # Compute the matrices of a state-space representation of the (input) sensitivity function.
+matrices_T, _ = get_comp_sensitivity(sys, :plant_input)

Continued linear analysis and design can be performed using ControlSystemsBase.jl. Create ControlSystemsBase.StateSpace objects using

using ControlSystemsBase, Plots
+S = ss(matrices_S...)
+T = ss(matrices_T...)
+bodeplot([S, T], lab = ["S" "T"])

The sensitivity functions obtained this way should be equivalent to the ones obtained with the code below

using ControlSystemsBase
+P = tf(1.0, [1, 1])
+C = 1                      # Negative feedback assumed in ControlSystems
+S = sensitivity(P, C)      # or feedback(1, P*C)
+T = comp_sensitivity(P, C) # or feedback(P*C)
source
ModelingToolkit.linearizeFunction
(; A, B, C, D), simplified_sys = linearize(sys, inputs, outputs;    t=0.0, op = Dict(), allow_input_derivatives = false, zero_dummy_der=false, kwargs...)
+(; A, B, C, D)                 = linearize(simplified_sys, lin_fun; t=0.0, op = Dict(), allow_input_derivatives = false, zero_dummy_der=false)

Linearize sys between inputs and outputs, both vectors of variables. Return a NamedTuple with the matrices of a linear statespace representation on the form

\[\begin{aligned} +ẋ &= Ax + Bu\\ +y &= Cx + Du +\end{aligned}\]

The first signature automatically calls linearization_function internally, while the second signature expects the outputs of linearization_function as input.

op denotes the operating point around which to linearize. If none is provided, the default values of sys are used.

If allow_input_derivatives = false, an error will be thrown if input derivatives ($u̇$) appear as inputs in the linearized equations. If input derivatives are allowed, the returned B matrix will be of double width, corresponding to the input [u; u̇].

zero_dummy_der can be set to automatically set the operating point to zero for all dummy derivatives.

See also linearization_function which provides a lower-level interface, linearize_symbolic and ModelingToolkit.reorder_unknowns.

See extended help for an example.

The implementation and notation follows that of "Linear Analysis Approach for Modelica Models", Allain et al. 2009

Extended help

This example builds the following feedback interconnection and linearizes it from the input of F to the output of P.


+  r ┌─────┐       ┌─────┐     ┌─────┐
+───►│     ├──────►│     │  u  │     │
+    │  F  │       │  C  ├────►│  P  │ y
+    └─────┘     ┌►│     │     │     ├─┬─►
+                │ └─────┘     └─────┘ │
+                │                     │
+                └─────────────────────┘
using ModelingToolkit
+@variables t
+function plant(; name)
+    @variables x(t) = 1
+    @variables u(t)=0 y(t)=0
+    D = Differential(t)
+    eqs = [D(x) ~ -x + u
+           y ~ x]
+    ODESystem(eqs, t; name = name)
+end
+
+function ref_filt(; name)
+    @variables x(t)=0 y(t)=0
+    @variables u(t)=0 [input = true]
+    D = Differential(t)
+    eqs = [D(x) ~ -2 * x + u
+           y ~ x]
+    ODESystem(eqs, t, name = name)
+end
+
+function controller(kp; name)
+    @variables y(t)=0 r(t)=0 u(t)=0
+    @parameters kp = kp
+    eqs = [
+        u ~ kp * (r - y),
+    ]
+    ODESystem(eqs, t; name = name)
+end
+
+@named f = ref_filt()
+@named c = controller(1)
+@named p = plant()
+
+connections = [f.y ~ c.r # filtered reference to controller reference
+               c.u ~ p.u # controller output to plant input
+               p.y ~ c.y]
+
+@named cl = ODESystem(connections, t, systems = [f, c, p])
+
+lsys0, ssys = linearize(cl, [f.u], [p.x])
+desired_order = [f.x, p.x]
+lsys = ModelingToolkit.reorder_unknowns(lsys0, unknowns(ssys), desired_order)
+
+@assert lsys.A == [-2 0; 1 -2]
+@assert lsys.B == [1; 0;;]
+@assert lsys.C == [0 1]
+@assert lsys.D[] == 0
+
+## Symbolic linearization
+lsys_sym, _ = ModelingToolkit.linearize_symbolic(cl, [f.u], [p.x])
+
+@assert substitute(lsys_sym.A, ModelingToolkit.defaults(cl)) == lsys.A
source
ModelingToolkit.linearize(sys, input_name::Symbol, output_name; kwargs...)

Linearize a system between two analysis points. To get a loop-transfer function, see get_looptransfer.

The output is allowed to be either an analysis-point name, or a vector of symbolic variables like the standard interface to linearize. The input must be an analysis-point name.

source
diff --git a/previews/PR273/API/magnetic/index.html b/previews/PR273/API/magnetic/index.html new file mode 100644 index 000000000..0f5462438 --- /dev/null +++ b/previews/PR273/API/magnetic/index.html @@ -0,0 +1,2 @@ + +Magnetic Components · ModelingToolkitStandardLibrary.jl

ModelingToolkitStandardLibrary: Magnetic Components

Index

Flux Tubes

Flux Tube Utilities

ModelingToolkitStandardLibrary.Magnetic.FluxTubes.TwoPortConstant
TwoPort(; name, V_m = 0.0, Phi = 0.0)

Partial component with magnetic potential difference between two magnetic ports p and n and magnetic flux Phi from p to n.

Parameters:

  • V_m: Initial magnetic potential difference between both ports
  • Phi: Initial magnetic flux from portp to portn
source

Basic Flux Tube Blocks

ModelingToolkitStandardLibrary.Magnetic.FluxTubes.EddyCurrentConstant
EddyCurrent(;name, Phi, rho = 0.098e-6, l = 1, A = 1)

For modelling of eddy current in a conductive magnetic flux tube. Initial magnetic flux flowing into the port_p can be set with Phi ([Wb])

Parameters:

  • rho: [ohm * m] Resistivity of flux tube material (default: Iron at 20degC)
  • l: [m] Average length of eddy current path
  • A: [m^2] Cross sectional area of eddy current path
source

Flux Tube Sources

diff --git a/previews/PR273/API/mechanical/index.html b/previews/PR273/API/mechanical/index.html new file mode 100644 index 000000000..2b4e7d05b --- /dev/null +++ b/previews/PR273/API/mechanical/index.html @@ -0,0 +1,2 @@ + +Mechanical Components · ModelingToolkitStandardLibrary.jl

ModelingToolkit Standard Library: Mechanical Components

Index

Rotational Components

Rotational Utils

ModelingToolkitStandardLibrary.Mechanical.Rotational.PartialCompliantWithRelativeStatesConstant
PartialCompliantWithRelativeStates(; name, phi_rel = 0.0, tau = 0.0)

Partial model for the compliant connection of two rotational 1-dim. shaft flanges where the relative angle and speed are used as preferred states

States:

  • phi_rel(t): [rad] Relative rotation angle (= flangeb.phi - flangea.phi). It accepts an initial value, which defaults to 0.0.
  • w_rel(t): [rad/s] Relative angular velocity (= D(phi_rel)). It accepts an initial value, which defaults to 0.0.
  • a_rel(t): [rad/s²] Relative angular acceleration (= D(w_rel)). It accepts an initial value, which defaults to 0.0.
  • tau(t): [N.m] Torque between flanges (= flange_b.tau). It accepts an initial value, which defaults to 0.0.

Connectors:

source
ModelingToolkitStandardLibrary.Mechanical.Rotational.PartialElementaryTwoFlangesAndSupport2Function
PartialElementaryTwoFlangesAndSupport2(;name, use_support=false)

Partial model for a component with two rotational 1-dim. shaft flanges and a support used for textual modeling, i.e., for elementary models

States:

  • phi_support(t): [rad] Absolute angle of support flange

Connectors:

Parameters:

  • use_support: If support flange enabled, otherwise implicitly grounded
source
ModelingToolkitStandardLibrary.Mechanical.Rotational.PartialCompliantConstant
PartialCompliant(;  name, phi_rel = 0.0, tau = 0.0)

Partial model for the compliant connection of two rotational 1-dim. shaft flanges.

States:

  • phi_rel(t): [rad] Relative rotation angle (flange_b.phi - flange_a.phi). It accepts an initial value, which defaults to 0.0.
  • tau(t): [N.m] Torque between flanges (flange_b.tau). It accepts an initial value, which defaults to 0.0.

Connectors:

source

Rotational Core Components

ModelingToolkitStandardLibrary.Mechanical.Rotational.InertiaConstant
Inertia(;name, J, phi = 0.0, w = 0.0, a = 0.0)

1D-rotational component with inertia.

States:

  • phi: [rad] Absolute rotation angle of component
  • w: [rad/s] Absolute angular velocity of component (= D(phi))
  • a: [rad/s²] Absolute angular acceleration of component (= D(w))

Connectors:

Parameters:

  • J: [kg·m²] Moment of inertia
source
ModelingToolkitStandardLibrary.Mechanical.Rotational.SpringConstant
Spring(; name, c, phi_rel0 = 0.0)

Linear 1D rotational spring

States:

  • phi_rel(t): [rad] Relative rotation angle (flange_b.phi - flange_a.phi)
  • tau(t): [N.m] Torque between flanges (flange_b.tau)

Connectors:

Parameters:

  • c: [N.m/rad] Spring constant
  • phi_rel0: [rad] Unstretched spring angle
source
ModelingToolkitStandardLibrary.Mechanical.Rotational.DamperConstant
Damper(; name, d)

Linear 1D rotational damper

States:

  • phi_rel(t): [rad] Relative rotation angle (= flangeb.phi - flangea.phi)
  • w_rel(t): [rad/s] Relative angular velocity (= D(phi_rel))
  • a_rel(t): [rad/s²] Relative angular acceleration (= D(w_rel))
  • tau(t): [N.m] Torque between flanges (= flange_b.tau)

Connectors:

Parameters:

  • d: [N.m.s/rad] Damping constant
source
ModelingToolkitStandardLibrary.Mechanical.Rotational.SpringDamperConstant
SpringDamper(; name, d)

Linear 1D rotational spring and damper

States:

  • phi_rel(t): [rad] Relative rotation angle (= flangeb.phi - flangea.phi)
  • w_rel(t): [rad/s] Relative angular velocity (= D(phi_rel))
  • a_rel(t): [rad/s²] Relative angular acceleration (= D(w_rel))
  • tau(t): [N.m] Torque between flanges (= flange_b.tau)

Connectors:

Parameters:

  • d: [N.m.s/rad] Damping constant
  • c: [N.m/rad] Spring constant
  • phi_rel0: [rad] Unstretched spring angle
source
ModelingToolkitStandardLibrary.Mechanical.Rotational.IdealGearConstant
IdealGear(; name, ratio, use_support = false)

Ideal gear without inertia.

This element characterizes any type of gear box which is fixed in the ground and which has one driving shaft and one driven shaft.

States:

  • phi_a(t): [rad] Relative angle between shaft a and the support
  • phi_b(t): [rad] Relative angle between shaft b and the support

Connectors:

Parameters:

  • ratio: Transmission ratio (flangea.phi/flangeb.phi)
  • use_support: If support flange enabled, otherwise implicitly grounded. By default it is false
source
ModelingToolkitStandardLibrary.Mechanical.Rotational.RotationalFrictionConstant
RotationalFriction(; name, f, tau_c, w_brk, tau_brk)

Models rotational friction with Stribeck effect, Coulomb friction and viscous friction between the two flanges. The friction torque is a function of the relative angular velocity between flange_a and flange_b.

Friction model: "Armstrong, B. and C.C. de Wit, Friction Modeling and Compensation, The Control Handbook, CRC Press, 1995."

States:

  • phi_rel(t): [rad] Relative rotation angle (= flange_b.phi - flange_a.phi)
  • w_rel(t): [rad/s] Relative angular velocity (= D(phi_rel))
  • a_rel(t): [rad/s²] Relative angular acceleration (= D(w_rel))
  • tau(t): [N.m] Torque between flanges (= flange_b.tau)

Connectors:

Parameters:

  • f: [N⋅m/(rad/s)] Viscous friction coefficient
  • tau_c: [N⋅m] Coulomb friction torque
  • w_brk: [rad/s] Breakaway friction velocity
  • tau_brk: [N⋅m] Breakaway friction torque
source

Rotational Sources

ModelingToolkitStandardLibrary.Mechanical.Rotational.SpeedFunction
Speed(; name, use_support = false, exact = false, f_crit = 50)

Forced movement of a flange according to a reference angular velocity signal

States:

  • phi_support(t): [rad] Absolute angle of support flange"

Connectors:

  • flange Flange
  • w_ref RealInput Reference angular velocity of flange with respect to support as input signal needs to be continuously differential

Parameters:

  • use_support: If support flange enabled, otherwise implicitly grounded
  • exact: true/false exact treatment/filtering the input signal
  • tau_filt: [rad/s] if exact=false, Time constant of low-pass filter to filter input signal
source

Rotational Sensors

Translational Components

Translational Utils

Translational Core Components

ModelingToolkitStandardLibrary.Mechanical.Translational.MassFunction
Mass(; name, v_0 = 0.0, m, s = nothing, g = nothing)

Sliding mass with inertia

Parameters:

  • m: [kg] mass of sliding body
  • v_0: [m/s] Initial value of absolute linear velocity of sliding mass (default 0 m/s)
  • s: [m] initial value of absolute position of sliding mass (optional)
  • g: [m/s²] gravity field acting on the mass, positive value acts in the positive direction (optional)

States:

  • v: [m/s] absolute linear velocity of sliding mass
  • s: [m] absolute position of sliding mass (optional with parameter s)

Connectors:

  • flange: 1-dim. translational flange
source
ModelingToolkitStandardLibrary.Mechanical.Translational.SpringFunction
Spring(; name, k, delta_s = 0.0,  va=0.0, v_b_0=0.0)

Linear 1D translational spring

Parameters:

  • k: [N/m] Spring constant
  • delta_s: initial spring stretch
  • va: [m/s] Initial value of absolute linear velocity at flange_a (default 0 m/s)
  • v_b_0: [m/s] Initial value of absolute linear velocity at flange_b (default 0 m/s)

Connectors:

  • flange_a: 1-dim. translational flange on one side of spring
  • flange_b: 1-dim. translational flange on opposite side of spring
source
ModelingToolkitStandardLibrary.Mechanical.Translational.DamperConstant
Damper(; name, d, flange_a.v = 0.0, flange_b.v = 0.0)

Linear 1D translational damper

Parameters:

  • d: [N.s/m] Damping constant

Connectors:

  • flange_a: 1-dim. translational flange on one side of damper. Initial value of state v is set to 0.0 m/s.
  • flange_b: 1-dim. translational flange on opposite side of damper. Initial value of state v is set to 0.0 m/s.
source

Translational Sources

ModelingToolkitStandardLibrary.Mechanical.Translational.PositionFunction
Position(solves_force = true; name)

Linear 1D position input source. Set solves_force=false to force input force to 0 (i.e. only the position is given, the respective force needed is already provided elsewhere in the model).

Connectors:

  • flange: 1-dim. translational flange
  • s: real input
source
ModelingToolkitStandardLibrary.Mechanical.Translational.VelocityFunction
Velocity(solves_force = true; name)

Linear 1D position input source. Set solves_force=false to force input force to 0 (i.e. only the velocity is given, the respective force needed is already provided elsewhere in the model).

Connectors:

  • flange: 1-dim. translational flange
  • v: real input
source
ModelingToolkitStandardLibrary.Mechanical.Translational.AccelerationFunction

Acceleration(solves_force = true; name)

Linear 1D position input source. Set solves_force=false to force input force to 0 (i.e. only the acceleration is given, the respective force needed is already provided elsewhere in the model).

Connectors:

  • flange: 1-dim. translational flange
  • a: real input
source

Translational Sensors

diff --git a/previews/PR273/API/thermal/index.html b/previews/PR273/API/thermal/index.html new file mode 100644 index 000000000..de2ab98db --- /dev/null +++ b/previews/PR273/API/thermal/index.html @@ -0,0 +1,2 @@ + +Thermal Components · ModelingToolkitStandardLibrary.jl

ModelingToolkitStandardLibrary: Thermal Components

Index

Thermal Utilities

ModelingToolkitStandardLibrary.Thermal.HeatPortConstant
HeatPort(; name, T = 273.15 + 20.0, Q_flow = 0.0)

Port for a thermal system.

States:

  • T: [K] Temperature of the port. It accepts an initial value, which defaults to 273.15 + 20.
  • Q_flow: [W] Heat flow rate at the port. It accepts an initial value, which defaults to 0.0.
source
ModelingToolkitStandardLibrary.Thermal.Element1DConstant
Element1D(; name, dT = 0.0, Q_flow = 0.0)

This partial model contains the basic connectors and variables to allow heat transfer models to be created that do not store energy. This model defines and includes equations for the temperature drop across the element, dT, and the heat flow rate through the element from port_a to port_b, Q_flow.

States:

  • dT: [K] Temperature difference across the component a.T - b.T. It accepts an initial value, which defaults to 0.0.
  • Q_flow: [W] Heat flow rate from port a -> port b. It accepts an initial value, which defaults to 0.0.

Connectors:

port_a port_b

source

Thermal Components

ModelingToolkitStandardLibrary.Thermal.BodyRadiationConstant
BodyRadiation(; name, G)

Lumped thermal element for radiation heat transfer.

States:

  • dT: [K] Temperature difference across the component a.T - b.T
  • Q_flow: [W] Heat flow rate from port a -> port b

Connectors:

  • port_a
  • port_b

Parameters:

  • G: [m^2] Net radiation conductance between two surfaces # Stefan-Boltzmann constant TODO: extract into physical constants module or use existing one
source
ModelingToolkitStandardLibrary.Thermal.ConvectiveConductorConstant
ConvectiveConductor(; name, G)

Lumped thermal element for heat convection.

States:

  • dT: [K] Temperature difference across the component solid.T - fluid.T
  • Q_flow: [W] Heat flow rate from solid -> fluid

Connectors:

  • solid
  • fluid

Parameters:

  • G: [W/K] Convective thermal conductance
source
ModelingToolkitStandardLibrary.Thermal.ConvectiveResistorConstant
ConvectiveResistor(; name, R)

Lumped thermal element for heat convection.

States:

  • dT: [K] Temperature difference across the component solid.T - fluid.T
  • Q_flow: [W] Heat flow rate from solid -> fluid

Connectors:

  • solid
  • fluid

Parameters:

  • R: [K/W] Constant thermal resistance of material
source
ModelingToolkitStandardLibrary.Thermal.HeatCapacitorConstant
HeatCapacitor(; name, C, T = 273.15 + 20)

Lumped thermal element storing heat

States:

  • T: [K] Temperature of element. It accepts an initial value, which defaults to 273.15 + 20.
  • der_T: [K/s] Time derivative of temperature

Connectors:

  • port

Parameters:

  • C: [J/K] Heat capacity of element (= cp*m)
source
ModelingToolkitStandardLibrary.Thermal.ThermalResistorConstant
ThermalResistor(; name, R)

Lumped thermal element transporting heat without storing it.

States:

  • dT: [K] Temperature difference across the component a.T - b.T
  • Q_flow: [W] Heat flow rate from port a -> port b

Connectors:

  • port_a
  • port_b

Parameters:

  • R: [K/W] Constant thermal resistance of material
source
ModelingToolkitStandardLibrary.Thermal.ThermalCollectorFunction
ThermalCollector(; name, m = 1)

Collects m heat flows

This is a model to collect the heat flows from m heatports to one single heatport.

States:

Connectors:

  • port_a1 to port_am
  • port_b

Parameters:

  • m: Number of heat ports (e.g. m=2: port_a1, port_a2)
source

Thermal Sensors

ModelingToolkitStandardLibrary.Thermal.RelativeTemperatureSensorConstant
RelativeTemperatureSensor(; name)

Relative Temperature sensor.

The relative temperature port_a.T - port_b.T is determined between the two ports of this component and is provided as output signal in kelvin.

States:

  • T(t): [K] Relative temperature a.T - b.T

Connectors:

  • port_a
  • port_b
source
ModelingToolkitStandardLibrary.Thermal.HeatFlowSensorConstant
HeatFlowSensor(; name)

Heat flow rate sensor.

This model is capable of monitoring the heat flow rate flowing through this component. The sensed value of heat flow rate is the amount that passes through this sensor while keeping the temperature drop across the sensor zero. This is an ideal model, so it does not absorb any energy, and it has no direct effect on the thermal response of a system it is included in. The output signal is positive, if the heat flows from port_a to port_b.

States:

  • Q_flow(t): [W] Heat flow from port_a to port_b

Connectors:

  • port_a
  • port_b
source
ModelingToolkitStandardLibrary.Thermal.TemperatureSensorConstant
TemperatureSensor(; name)

Absolute temperature sensor in kelvin.

This is an ideal absolute temperature sensor which returns the temperature of the connected port in kelvin as an output signal. The sensor itself has no thermal interaction with whatever it is connected to. Furthermore, no thermocouple-like lags are associated with this sensor model.

States:

  • T(t): [K] Absolute temperature

Connectors:

  • port
source

Thermal Sources

ModelingToolkitStandardLibrary.Thermal.FixedHeatFlowConstant
FixedHeatFlow(; name, Q_flow = 1.0, T_ref = 293.15, alpha = 0.0)

Fixed heat flow boundary condition.

This model allows a specified amount of heat flow rate to be "injected" into a thermal system at a given port. The constant amount of heat flow rate Q_flow is given as a parameter. The heat flows into the component to which the component FixedHeatFlow is connected, if parameter Q_flow is positive.

Connectors:

  • port

Parameters:

  • Q_flow: [W] Fixed heat flow rate at port
  • T_ref: [K] Reference temperature
  • alpha: [1/K] Temperature coefficient of heat flow rate
source
ModelingToolkitStandardLibrary.Thermal.FixedTemperatureConstant
FixedTemperature(; name, T)

Fixed temperature boundary condition in kelvin.

This model defines a fixed temperature T at its port in kelvin, i.e., it defines a fixed temperature as a boundary condition.

Connectors:

  • port

Parameters:

  • T: [K] Fixed temperature boundary condition
source
ModelingToolkitStandardLibrary.Thermal.PrescribedHeatFlowConstant
PrescribedHeatFlow(; name, T_ref = 293.15, alpha = 0.0)

Prescribed heat flow boundary condition.

This model allows a specified amount of heat flow rate to be "injected" into a thermal system at a given port. The amount of heat is given by the input signal Q_flow into the model. The heat flows into the component to which the component PrescribedHeatFlow is connected, if the input signal is positive. If parameter alpha is > 0, the heat flow is multiplied by 1 + alpha*(port.T - T_ref) in order to simulate temperature dependent losses (which are given a reference temperature T_ref).

Connectors:

  • port
  • RealInput Q_flow Input for the heat flow

Parameters:

  • T_ref: [K] Reference temperature
  • alpha: [1/K] Temperature coefficient of heat flow rate
source
ModelingToolkitStandardLibrary.Thermal.PrescribedTemperatureConstant
PrescribedTemperature(; name)

This model represents a variable temperature boundary condition.

The temperature in kelvin is given as input signal to the RealInput T. The effect is that an instance of this model acts as an infinite reservoir, able to absorb or generate as much energy as required to keep the temperature at the specified value.

Connectors:

  • port
  • RealInput T input for the temperature
source
diff --git a/previews/PR273/assets/Manifest.toml b/previews/PR273/assets/Manifest.toml new file mode 100644 index 000000000..1448cf90b --- /dev/null +++ b/previews/PR273/assets/Manifest.toml @@ -0,0 +1,2392 @@ +# This file is machine-generated - editing it directly is not advised + +julia_version = "1.10.2" +manifest_format = "2.0" +project_hash = "9b5297bd80af2372f663377026185c8f798355d4" + +[[deps.ADTypes]] +git-tree-sha1 = "41c37aa88889c171f1300ceac1313c06e891d245" +uuid = "47edcb42-4c32-4615-8424-f2b9edc5f35b" +version = "0.2.6" + +[[deps.ANSIColoredPrinters]] +git-tree-sha1 = "574baf8110975760d391c710b6341da1afa48d8c" +uuid = "a4c015fc-c6ff-483c-b24f-f7ea428134e9" +version = "0.0.1" + +[[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.AbstractTrees]] +git-tree-sha1 = "2d9c9a55f9c93e8887ad391fbae72f8ef55e1177" +uuid = "1520ce14-60c1-5f80-bbc7-55ef81b5835c" +version = "0.4.5" + +[[deps.Adapt]] +deps = ["LinearAlgebra", "Requires"] +git-tree-sha1 = "0fb305e0253fd4e833d486914367a2ee2c2e78d0" +uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" +version = "4.0.1" +weakdeps = ["StaticArrays"] + + [deps.Adapt.extensions] + AdaptStaticArraysExt = "StaticArrays" + +[[deps.ArgTools]] +uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" +version = "1.1.1" + +[[deps.ArnoldiMethod]] +deps = ["LinearAlgebra", "Random", "StaticArrays"] +git-tree-sha1 = "62e51b39331de8911e4a7ff6f5aaf38a5f4cc0ae" +uuid = "ec485272-7323-5ecc-a04f-4719b315124d" +version = "0.2.0" + +[[deps.ArrayInterface]] +deps = ["Adapt", "LinearAlgebra", "Requires", "SparseArrays", "SuiteSparse"] +git-tree-sha1 = "881e43f1aa014a6f75c8fc0847860e00a1500846" +uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" +version = "7.8.0" + + [deps.ArrayInterface.extensions] + ArrayInterfaceBandedMatricesExt = "BandedMatrices" + ArrayInterfaceBlockBandedMatricesExt = "BlockBandedMatrices" + ArrayInterfaceCUDAExt = "CUDA" + ArrayInterfaceGPUArraysCoreExt = "GPUArraysCore" + ArrayInterfaceReverseDiffExt = "ReverseDiff" + ArrayInterfaceStaticArraysCoreExt = "StaticArraysCore" + ArrayInterfaceTrackerExt = "Tracker" + + [deps.ArrayInterface.weakdeps] + BandedMatrices = "aae01518-5342-5314-be14-df237901396f" + BlockBandedMatrices = "ffab5731-97b5-5995-9138-79e8c1846df0" + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + GPUArraysCore = "46192b85-c4d5-4398-a991-12ede77f4527" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + StaticArraysCore = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + +[[deps.ArrayLayouts]] +deps = ["FillArrays", "LinearAlgebra"] +git-tree-sha1 = "64d582bcb9c93ac741234789eeb4f16812413efb" +uuid = "4c555306-a7a7-4459-81d9-ec55ddd5c99a" +version = "1.6.0" +weakdeps = ["SparseArrays"] + + [deps.ArrayLayouts.extensions] + ArrayLayoutsSparseArraysExt = "SparseArrays" + +[[deps.Artifacts]] +uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" + +[[deps.BandedMatrices]] +deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra", "PrecompileTools"] +git-tree-sha1 = "931f3f49902e9b6b527fd7cd02d1cd7b4a84264c" +uuid = "aae01518-5342-5314-be14-df237901396f" +version = "1.5.0" +weakdeps = ["SparseArrays"] + + [deps.BandedMatrices.extensions] + BandedMatricesSparseArraysExt = "SparseArrays" + +[[deps.Base64]] +uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" + +[[deps.BenchmarkTools]] +deps = ["JSON", "Logging", "Printf", "Profile", "Statistics", "UUIDs"] +git-tree-sha1 = "f1dff6729bc61f4d49e140da1af55dcd1ac97b2f" +uuid = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" +version = "1.5.0" + +[[deps.Bijections]] +git-tree-sha1 = "c9b163bd832e023571e86d0b90d9de92a9879088" +uuid = "e2ed5e7c-b2de-5872-ae92-c73ca462fb04" +version = "0.1.6" + +[[deps.BitFlags]] +git-tree-sha1 = "2dc09997850d68179b69dafb58ae806167a32b1b" +uuid = "d1d4a3ce-64b1-5f1a-9ba4-7e7e69966f35" +version = "0.1.8" + +[[deps.BitTwiddlingConvenienceFunctions]] +deps = ["Static"] +git-tree-sha1 = "0c5f81f47bbbcf4aea7b2959135713459170798b" +uuid = "62783981-4cbd-42fc-bca8-16325de8dc4b" +version = "0.1.5" + +[[deps.BoundaryValueDiffEq]] +deps = ["ADTypes", "Adapt", "ArrayInterface", "BandedMatrices", "ConcreteStructs", "DiffEqBase", "FastAlmostBandedMatrices", "ForwardDiff", "LinearAlgebra", "LinearSolve", "NonlinearSolve", "PreallocationTools", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "Setfield", "SparseArrays", "SparseDiffTools", "Tricks", "TruncatedStacktraces", "UnPack"] +git-tree-sha1 = "3ff968887be48760b0e9e8650c2d05c96cdea9d8" +uuid = "764a87c0-6b3e-53db-9096-fe964310641d" +version = "5.6.3" + + [deps.BoundaryValueDiffEq.extensions] + BoundaryValueDiffEqODEInterfaceExt = "ODEInterface" + BoundaryValueDiffEqOrdinaryDiffEqExt = "OrdinaryDiffEq" + + [deps.BoundaryValueDiffEq.weakdeps] + ODEInterface = "54ca160b-1b9f-5127-a996-1867f4bc2a2c" + OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" + +[[deps.Bzip2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "9e2a6b69137e6969bab0152632dcb3bc108c8bdd" +uuid = "6e34b625-4abd-537c-b88f-471c36dfa7a0" +version = "1.0.8+1" + +[[deps.CEnum]] +git-tree-sha1 = "389ad5c84de1ae7cf0e28e381131c98ea87d54fc" +uuid = "fa961155-64e5-5f13-b03f-caf6b980ea82" +version = "0.5.0" + +[[deps.CPUSummary]] +deps = ["CpuId", "IfElse", "PrecompileTools", "Static"] +git-tree-sha1 = "601f7e7b3d36f18790e2caf83a882d88e9b71ff1" +uuid = "2a0fbf3d-bb9c-48f3-b0a9-814d99fd7ab9" +version = "0.2.4" + +[[deps.CSTParser]] +deps = ["Tokenize"] +git-tree-sha1 = "b1d309487c04e92253b55c1f803b1d6f0e136920" +uuid = "00ebfdb7-1f24-5e51-bd34-a7502290713f" +version = "3.4.1" + +[[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 = "575cd02e080939a33b6df6c5853d14924c08e35b" +uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" +version = "1.23.0" +weakdeps = ["SparseArrays"] + + [deps.ChainRulesCore.extensions] + ChainRulesCoreSparseArraysExt = "SparseArrays" + +[[deps.CloseOpenIntervals]] +deps = ["Static", "StaticArrayInterface"] +git-tree-sha1 = "70232f82ffaab9dc52585e0dd043b5e0c6b714f1" +uuid = "fb6a15b2-703c-40df-9091-08a04967cfa9" +version = "0.1.12" + +[[deps.CodecBzip2]] +deps = ["Bzip2_jll", "Libdl", "TranscodingStreams"] +git-tree-sha1 = "9b1ca1aa6ce3f71b3d1840c538a8210a043625eb" +uuid = "523fee87-0ab8-5b00-afb7-3ecf72e48cfd" +version = "0.8.2" + +[[deps.CodecZlib]] +deps = ["TranscodingStreams", "Zlib_jll"] +git-tree-sha1 = "59939d8a997469ee05c4b4944560a820f9ba0d73" +uuid = "944b1d66-785c-5afd-91f1-9de20f533193" +version = "0.7.4" + +[[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.Combinatorics]] +git-tree-sha1 = "08c8b6831dc00bfea825826be0bc8336fc369860" +uuid = "861a8166-3701-5b0c-9a16-15d98fcdc6aa" +version = "1.0.2" + +[[deps.CommonMark]] +deps = ["Crayons", "JSON", "PrecompileTools", "URIs"] +git-tree-sha1 = "532c4185d3c9037c0237546d817858b23cf9e071" +uuid = "a80b9123-70ca-4bc0-993e-6e3bcb318db6" +version = "0.8.12" + +[[deps.CommonSolve]] +git-tree-sha1 = "0eee5eb66b1cf62cd6ad1b460238e60e4b09400c" +uuid = "38540f10-b2f7-11e9-35d8-d573e4eb0ff2" +version = "0.2.4" + +[[deps.CommonSubexpressions]] +deps = ["MacroTools", "Test"] +git-tree-sha1 = "7b8a93dba8af7e3b42fecabf646260105ac373f7" +uuid = "bbf7d656-a473-5ed7-a52c-81e309532950" +version = "0.3.0" + +[[deps.Compat]] +deps = ["TOML", "UUIDs"] +git-tree-sha1 = "c955881e3c981181362ae4088b35995446298b80" +uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" +version = "4.14.0" +weakdeps = ["Dates", "LinearAlgebra"] + + [deps.Compat.extensions] + CompatLinearAlgebraExt = "LinearAlgebra" + +[[deps.CompilerSupportLibraries_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" +version = "1.1.0+0" + +[[deps.CompositeTypes]] +git-tree-sha1 = "02d2316b7ffceff992f3096ae48c7829a8aa0638" +uuid = "b152e2b5-7a66-4b01-a709-34e65c35f657" +version = "0.1.3" + +[[deps.ConcreteStructs]] +git-tree-sha1 = "f749037478283d372048690eb3b5f92a79432b34" +uuid = "2569d6c7-a4a2-43d3-a901-331e8e4be471" +version = "0.2.3" + +[[deps.ConcurrentUtilities]] +deps = ["Serialization", "Sockets"] +git-tree-sha1 = "9c4708e3ed2b799e6124b5673a712dda0b596a9b" +uuid = "f0e56b4a-5159-44fe-b623-3e5288b988bb" +version = "2.3.1" + +[[deps.ConstructionBase]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "c53fc348ca4d40d7b371e71fd52251839080cbc9" +uuid = "187b0558-2788-49d3-abe0-74a17ed4e7c9" +version = "1.5.4" +weakdeps = ["IntervalSets", "StaticArrays"] + + [deps.ConstructionBase.extensions] + ConstructionBaseIntervalSetsExt = "IntervalSets" + ConstructionBaseStaticArraysExt = "StaticArrays" + +[[deps.Contour]] +git-tree-sha1 = "d05d9e7b7aedff4e5b51a029dced05cfb6125781" +uuid = "d38c429a-6771-53c6-b99e-75d170b6e991" +version = "0.6.2" + +[[deps.ControlSystemsBase]] +deps = ["DSP", "ForwardDiff", "IterTools", "LaTeXStrings", "LinearAlgebra", "MacroTools", "MatrixEquations", "MatrixPencils", "Polyester", "Polynomials", "PrecompileTools", "Printf", "Random", "RecipesBase", "SparseArrays", "StaticArraysCore", "UUIDs"] +git-tree-sha1 = "a58517a0b734b4a79789687518fed76ab521212b" +uuid = "aaaaaaaa-a6ca-5380-bf3e-84a91bcd477e" +version = "1.10.2" + + [deps.ControlSystemsBase.extensions] + ControlSystemsBaseImplicitDifferentiationExt = ["ImplicitDifferentiation", "ComponentArrays"] + + [deps.ControlSystemsBase.weakdeps] + ComponentArrays = "b0b7db55-cfe3-40fc-9ded-d10e2dbeff66" + ImplicitDifferentiation = "57b37032-215b-411a-8a7c-41a003a55207" + +[[deps.CpuId]] +deps = ["Markdown"] +git-tree-sha1 = "fcbb72b032692610bfbdb15018ac16a36cf2e406" +uuid = "adafc99b-e345-5852-983c-f28acb93d879" +version = "0.3.1" + +[[deps.Crayons]] +git-tree-sha1 = "249fe38abf76d48563e2f4556bebd215aa317e15" +uuid = "a8cc5b0e-0ffa-5ad4-8c14-923d3ee1735f" +version = "4.1.1" + +[[deps.DSP]] +deps = ["Compat", "FFTW", "IterTools", "LinearAlgebra", "Polynomials", "Random", "Reexport", "SpecialFunctions", "Statistics"] +git-tree-sha1 = "f7f4319567fe769debfcf7f8c03d8da1dd4e2fb0" +uuid = "717857b8-e6f2-59f4-9121-6e50c889abd2" +version = "0.7.9" + +[[deps.DataAPI]] +git-tree-sha1 = "abe83f3a2f1b857aac70ef8b269080af17764bbe" +uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" +version = "1.16.0" + +[[deps.DataStructures]] +deps = ["Compat", "InteractiveUtils", "OrderedCollections"] +git-tree-sha1 = "1fb174f0d48fe7d142e1109a10636bc1d14f5ac2" +uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" +version = "0.18.17" + +[[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.DelayDiffEq]] +deps = ["ArrayInterface", "DataStructures", "DiffEqBase", "LinearAlgebra", "Logging", "OrdinaryDiffEq", "Printf", "RecursiveArrayTools", "Reexport", "SciMLBase", "SimpleNonlinearSolve", "SimpleUnPack"] +git-tree-sha1 = "10c892dd12113644bd6c7fae520691f8a78032dc" +uuid = "bcd4f6db-9728-5f36-b5f7-82caef46ccdb" +version = "5.47.0" + +[[deps.DelimitedFiles]] +deps = ["Mmap"] +git-tree-sha1 = "9e2f36d3c96a820c678f2f1f1782582fcf685bae" +uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab" +version = "1.9.1" + +[[deps.DiffEqBase]] +deps = ["ArrayInterface", "DataStructures", "DocStringExtensions", "EnumX", "EnzymeCore", "FastBroadcast", "ForwardDiff", "FunctionWrappers", "FunctionWrappersWrappers", "LinearAlgebra", "Logging", "Markdown", "MuladdMacro", "Parameters", "PreallocationTools", "PrecompileTools", "Printf", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators", "Setfield", "SparseArrays", "Static", "StaticArraysCore", "Statistics", "Tricks", "TruncatedStacktraces"] +git-tree-sha1 = "b19b2bb1ecd1271334e4b25d605e50f75e68fcae" +uuid = "2b5f629d-d688-5b77-993f-72d75c75574e" +version = "6.148.0" + + [deps.DiffEqBase.extensions] + DiffEqBaseChainRulesCoreExt = "ChainRulesCore" + DiffEqBaseDistributionsExt = "Distributions" + DiffEqBaseEnzymeExt = ["ChainRulesCore", "Enzyme"] + DiffEqBaseGeneralizedGeneratedExt = "GeneralizedGenerated" + DiffEqBaseMPIExt = "MPI" + DiffEqBaseMeasurementsExt = "Measurements" + DiffEqBaseMonteCarloMeasurementsExt = "MonteCarloMeasurements" + DiffEqBaseReverseDiffExt = "ReverseDiff" + DiffEqBaseTrackerExt = "Tracker" + DiffEqBaseUnitfulExt = "Unitful" + + [deps.DiffEqBase.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f" + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" + GeneralizedGenerated = "6b9d7cbe-bcb9-11e9-073f-15a7a543e2eb" + MPI = "da04e1cc-30fd-572f-bb4f-1f8673147195" + Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7" + MonteCarloMeasurements = "0987c9cc-fe09-11e8-30f0-b96dd679fdca" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" + +[[deps.DiffEqCallbacks]] +deps = ["DataStructures", "DiffEqBase", "ForwardDiff", "Functors", "LinearAlgebra", "Markdown", "NonlinearSolve", "Parameters", "RecipesBase", "RecursiveArrayTools", "SciMLBase", "StaticArraysCore"] +git-tree-sha1 = "32b4359949681e76eb09f9b7a4536cb664172980" +uuid = "459566f4-90b8-5000-8ac3-15dfb0a30def" +version = "3.3.0" +weakdeps = ["OrdinaryDiffEq", "Sundials"] + +[[deps.DiffEqNoiseProcess]] +deps = ["DiffEqBase", "Distributions", "GPUArraysCore", "LinearAlgebra", "Markdown", "Optim", "PoissonRandom", "QuadGK", "Random", "Random123", "RandomNumbers", "RecipesBase", "RecursiveArrayTools", "Requires", "ResettableStacks", "SciMLBase", "StaticArraysCore", "Statistics"] +git-tree-sha1 = "65cbbe1450ced323b4b17228ccd96349d96795a7" +uuid = "77a26b50-5914-5dd7-bc55-306e6241c503" +version = "5.21.0" + + [deps.DiffEqNoiseProcess.extensions] + DiffEqNoiseProcessReverseDiffExt = "ReverseDiff" + + [deps.DiffEqNoiseProcess.weakdeps] + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + +[[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.DifferentialEquations]] +deps = ["BoundaryValueDiffEq", "DelayDiffEq", "DiffEqBase", "DiffEqCallbacks", "DiffEqNoiseProcess", "JumpProcesses", "LinearAlgebra", "LinearSolve", "NonlinearSolve", "OrdinaryDiffEq", "Random", "RecursiveArrayTools", "Reexport", "SciMLBase", "SteadyStateDiffEq", "StochasticDiffEq", "Sundials"] +git-tree-sha1 = "81042254a307980b8ab5b67033aca26c2e157ebb" +uuid = "0c46a032-eb83-5123-abaf-570d42b7fbaa" +version = "7.13.0" + +[[deps.Distances]] +deps = ["LinearAlgebra", "Statistics", "StatsAPI"] +git-tree-sha1 = "66c4c81f259586e8f002eacebc177e1fb06363b0" +uuid = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7" +version = "0.10.11" +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 = "7c302d7a5fec5214eb8a5a4c466dcf7a51fcf169" +uuid = "31c24e10-a181-5473-b8eb-7969acd0382f" +version = "0.25.107" + + [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.Documenter]] +deps = ["ANSIColoredPrinters", "AbstractTrees", "Base64", "CodecZlib", "Dates", "DocStringExtensions", "Downloads", "Git", "IOCapture", "InteractiveUtils", "JSON", "LibGit2", "Logging", "Markdown", "MarkdownAST", "Pkg", "PrecompileTools", "REPL", "RegistryInstances", "SHA", "TOML", "Test", "Unicode"] +git-tree-sha1 = "4a40af50e8b24333b9ec6892546d9ca5724228eb" +uuid = "e30172f5-a6a5-5a46-863b-614d45cd2de4" +version = "1.3.0" + +[[deps.DomainSets]] +deps = ["CompositeTypes", "IntervalSets", "LinearAlgebra", "Random", "StaticArrays"] +git-tree-sha1 = "15b469c178ecfbdc1ca5608d8bb5b4ae6cb1352d" +uuid = "5b8099bc-c8ec-5219-889f-1d9e522a28bf" +version = "0.7.8" + +[[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.DynamicPolynomials]] +deps = ["Future", "LinearAlgebra", "MultivariatePolynomials", "MutableArithmetics", "Pkg", "Reexport", "Test"] +git-tree-sha1 = "0bb0a6f812213ecc8fbbcf472f4a993036858971" +uuid = "7c1d4256-1411-5781-91ec-d7bc3513ac07" +version = "0.5.5" + +[[deps.DynamicQuantities]] +deps = ["Compat", "PackageExtensionCompat", "Tricks"] +git-tree-sha1 = "512a6072b362bb24a0579ddb78dba3ea4dd551db" +uuid = "06fc5a27-2a28-4c7c-a15d-362465fb6821" +version = "0.11.3" + + [deps.DynamicQuantities.extensions] + DynamicQuantitiesLinearAlgebraExt = "LinearAlgebra" + DynamicQuantitiesMeasurementsExt = "Measurements" + DynamicQuantitiesScientificTypesExt = "ScientificTypes" + DynamicQuantitiesUnitfulExt = "Unitful" + + [deps.DynamicQuantities.weakdeps] + LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" + Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7" + ScientificTypes = "321657f4-b219-11e9-178b-2701a2544e81" + Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" + +[[deps.EnumX]] +git-tree-sha1 = "bdb1942cd4c45e3c678fd11569d5cccd80976237" +uuid = "4e289a0a-7415-4d19-859d-a7e5c4648b56" +version = "1.0.4" + +[[deps.EnzymeCore]] +git-tree-sha1 = "59c44d8fbc651c0395d8a6eda64b05ce316f58b4" +uuid = "f151be2c-9106-41f4-ab19-57ee4f262869" +version = "0.6.5" +weakdeps = ["Adapt"] + + [deps.EnzymeCore.extensions] + AdaptExt = "Adapt" + +[[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 = "dcb08a0d93ec0b1cdc4af184b26b591e9695423a" +uuid = "460bff9d-24e4-43bc-9d9f-a8973cb893f4" +version = "0.1.10" + +[[deps.Expat_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "4558ab818dcceaab612d1bb8c19cee87eda2b83c" +uuid = "2e619515-83b5-522b-bb60-26c02a35a201" +version = "2.5.0+0" + +[[deps.ExponentialUtilities]] +deps = ["Adapt", "ArrayInterface", "GPUArraysCore", "GenericSchur", "LinearAlgebra", "PrecompileTools", "Printf", "SparseArrays", "libblastrampoline_jll"] +git-tree-sha1 = "8e18940a5ba7f4ddb41fe2b79b6acaac50880a86" +uuid = "d4d017d3-3776-5f7e-afef-a10c40355c18" +version = "1.26.1" + +[[deps.ExprTools]] +git-tree-sha1 = "27415f162e6028e81c72b82ef756bf321213b6ec" +uuid = "e2ba6199-217a-4e67-a87a-7c52f15ade04" +version = "0.1.10" + +[[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.FFTW]] +deps = ["AbstractFFTs", "FFTW_jll", "LinearAlgebra", "MKL_jll", "Preferences", "Reexport"] +git-tree-sha1 = "4820348781ae578893311153d69049a93d05f39d" +uuid = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341" +version = "1.8.0" + +[[deps.FFTW_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "c6033cc3892d0ef5bb9cd29b7f2f0331ea5184ea" +uuid = "f5851436-0d7a-5f13-b9de-f02708fd171a" +version = "3.3.10+0" + +[[deps.FastAlmostBandedMatrices]] +deps = ["ArrayInterface", "ArrayLayouts", "BandedMatrices", "ConcreteStructs", "LazyArrays", "LinearAlgebra", "MatrixFactorizations", "PrecompileTools", "Reexport"] +git-tree-sha1 = "178316d87f883f0702e79d9c83a8049484c9f619" +uuid = "9d29842c-ecb8-4973-b1e9-a27b1157504e" +version = "0.1.0" + +[[deps.FastBroadcast]] +deps = ["ArrayInterface", "LinearAlgebra", "Polyester", "Static", "StaticArrayInterface", "StrideArraysCore"] +git-tree-sha1 = "a6e756a880fc419c8b41592010aebe6a5ce09136" +uuid = "7034ab61-46d4-4ed7-9d0f-46aef9175898" +version = "0.2.8" + +[[deps.FastClosures]] +git-tree-sha1 = "acebe244d53ee1b461970f8910c235b259e772ef" +uuid = "9aa1b823-49e4-5ca5-8b0f-3971ec8bab6a" +version = "0.3.2" + +[[deps.FastLapackInterface]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "0a59c7d1002f3131de53dc4568a47d15a44daef7" +uuid = "29a986be-02c6-4525-aec4-84b980013641" +version = "2.0.2" + +[[deps.FileWatching]] +uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" + +[[deps.FillArrays]] +deps = ["LinearAlgebra", "Random"] +git-tree-sha1 = "5b93957f6dcd33fc343044af3d48c215be2562f1" +uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" +version = "1.9.3" +weakdeps = ["PDMats", "SparseArrays", "Statistics"] + + [deps.FillArrays.extensions] + FillArraysPDMatsExt = "PDMats" + FillArraysSparseArraysExt = "SparseArrays" + FillArraysStatisticsExt = "Statistics" + +[[deps.FindFirstFunctions]] +git-tree-sha1 = "e90fef90f7d75e6a5b435b0fd65609759f99717a" +uuid = "64ca27bc-2ba2-4a57-88aa-44e436879224" +version = "1.2.0" + +[[deps.FiniteDiff]] +deps = ["ArrayInterface", "LinearAlgebra", "Requires", "Setfield", "SparseArrays"] +git-tree-sha1 = "73d1214fec245096717847c62d389a5d2ac86504" +uuid = "6a86dc24-6348-571c-b903-95158fe2bd41" +version = "2.22.0" + + [deps.FiniteDiff.extensions] + FiniteDiffBandedMatricesExt = "BandedMatrices" + FiniteDiffBlockBandedMatricesExt = "BlockBandedMatrices" + FiniteDiffStaticArraysExt = "StaticArrays" + + [deps.FiniteDiff.weakdeps] + BandedMatrices = "aae01518-5342-5314-be14-df237901396f" + BlockBandedMatrices = "ffab5731-97b5-5995-9138-79e8c1846df0" + StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" + +[[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.Format]] +git-tree-sha1 = "f3cf88025f6d03c194d73f5d13fee9004a108329" +uuid = "1fa38f19-a742-5d3f-a2b9-30dd87b9d5f8" +version = "1.3.6" + +[[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.FunctionWrappers]] +git-tree-sha1 = "d62485945ce5ae9c0c48f124a84998d755bae00e" +uuid = "069b7b12-0de2-55c6-9aab-29f3d0a68a2e" +version = "1.1.3" + +[[deps.FunctionWrappersWrappers]] +deps = ["FunctionWrappers"] +git-tree-sha1 = "b104d487b34566608f8b4e1c39fb0b10aa279ff8" +uuid = "77dc65aa-8811-40c2-897b-53d922fa7daf" +version = "0.1.3" + +[[deps.Functors]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "166c544477f97bbadc7179ede1c1868e0e9b426b" +uuid = "d9f16b24-f501-4c13-a1f2-28368ffc5196" +version = "0.4.7" + +[[deps.Future]] +deps = ["Random"] +uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820" + +[[deps.GLFW_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libglvnd_jll", "Xorg_libXcursor_jll", "Xorg_libXi_jll", "Xorg_libXinerama_jll", "Xorg_libXrandr_jll"] +git-tree-sha1 = "ff38ba61beff76b8f4acad8ab0c97ef73bb670cb" +uuid = "0656b61e-2033-5cc2-a64a-77c0f6c09b89" +version = "3.3.9+0" + +[[deps.GPUArraysCore]] +deps = ["Adapt"] +git-tree-sha1 = "ec632f177c0d990e64d955ccc1b8c04c485a0950" +uuid = "46192b85-c4d5-4398-a991-12ede77f4527" +version = "0.1.6" + +[[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 = "3458564589be207fa6a77dbbf8b97674c9836aab" +uuid = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71" +version = "0.73.2" + +[[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 = "77f81da2964cc9fa7c0127f941e8bce37f7f1d70" +uuid = "d2c73de3-f751-5644-a686-071e5b155ba9" +version = "0.73.2+0" + +[[deps.GenericSchur]] +deps = ["LinearAlgebra", "Printf"] +git-tree-sha1 = "fb69b2a645fa69ba5f474af09221b9308b160ce6" +uuid = "c145ed77-6b09-5dd9-b285-bf645a82121e" +version = "0.5.3" + +[[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.Git]] +deps = ["Git_jll"] +git-tree-sha1 = "04eff47b1354d702c3a85e8ab23d539bb7d5957e" +uuid = "d7ba0133-e1db-5d97-8f8c-041e4b3a1eb2" +version = "1.3.1" + +[[deps.Git_jll]] +deps = ["Artifacts", "Expat_jll", "JLLWrappers", "LibCURL_jll", "Libdl", "Libiconv_jll", "OpenSSL_jll", "PCRE2_jll", "Zlib_jll"] +git-tree-sha1 = "12945451c5d0e2d0dca0724c3a8d6448b46bbdf9" +uuid = "f8c6e375-362e-5223-8a59-34ff63f689eb" +version = "2.44.0+1" + +[[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.Glob]] +git-tree-sha1 = "97285bbd5230dd766e9ef6749b80fc617126d496" +uuid = "c27321d9-0574-5035-807b-f59d2c89b15c" +version = "1.3.1" + +[[deps.Graphite2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "344bf40dcab1073aca04aa0df4fb092f920e4011" +uuid = "3b182d85-2403-5c21-9c21-1e1f0cc25472" +version = "1.3.14+0" + +[[deps.Graphs]] +deps = ["ArnoldiMethod", "Compat", "DataStructures", "Distributed", "Inflate", "LinearAlgebra", "Random", "SharedArrays", "SimpleTraits", "SparseArrays", "Statistics"] +git-tree-sha1 = "899050ace26649433ef1af25bc17a815b3db52b7" +uuid = "86223c79-3864-5bf0-83f7-82e725a168b6" +version = "1.9.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 = "db864f2d91f68a5912937af80327d288ea1f3aee" +uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" +version = "1.10.3" + +[[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.HostCPUFeatures]] +deps = ["BitTwiddlingConvenienceFunctions", "IfElse", "Libdl", "Static"] +git-tree-sha1 = "eb8fed28f4994600e29beef49744639d985a04b2" +uuid = "3e5b6fbb-0976-4d2c-9146-d79de83f2fb0" +version = "0.1.16" + +[[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 = "8b72179abc660bfab5e28472e019392b97d0985c" +uuid = "b5f81e59-6552-4d32-b1f0-c071b021bf89" +version = "0.2.4" + +[[deps.IfElse]] +git-tree-sha1 = "debdd00ffef04665ccbb3e150747a77560e8fad1" +uuid = "615f187c-cbe4-4ef1-ba3b-2fcf58d6d173" +version = "0.1.1" + +[[deps.Inflate]] +git-tree-sha1 = "ea8031dea4aff6bd41f1df8f2fdfb25b33626381" +uuid = "d25df0c9-e2be-5dd7-82c8-3ad0b3e990b9" +version = "0.1.4" + +[[deps.IntelOpenMP_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "5fdf2fe6724d8caabf43b557b84ce53f3b7e2f6b" +uuid = "1d5cc7b8-4909-519e-a0f8-d0f5ad9712d0" +version = "2024.0.2+0" + +[[deps.InteractiveUtils]] +deps = ["Markdown"] +uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" + +[[deps.IntervalSets]] +git-tree-sha1 = "dba9ddf07f77f60450fe5d2e2beb9854d9a49bd0" +uuid = "8197267c-284f-5f27-9208-e0e47529a953" +version = "0.7.10" +weakdeps = ["Random", "RecipesBase", "Statistics"] + + [deps.IntervalSets.extensions] + IntervalSetsRandomExt = "Random" + IntervalSetsRecipesBaseExt = "RecipesBase" + IntervalSetsStatisticsExt = "Statistics" + +[[deps.IrrationalConstants]] +git-tree-sha1 = "630b497eafcc20001bba38a4651b327dcfc491d2" +uuid = "92d709cd-6900-40b7-9082-c6be49f344b6" +version = "0.2.2" + +[[deps.IterTools]] +git-tree-sha1 = "42d5f897009e7ff2cf88db414a389e5ed1bdd023" +uuid = "c8e1da08-722c-5040-9ed9-7db0dc04731e" +version = "1.10.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 = "a53ebe394b71470c7f97c2e7e170d51df21b17af" +uuid = "1019f520-868f-41f5-a6de-eb00f4b6a39c" +version = "0.1.7" + +[[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 = "3336abae9a713d2210bb57ab484b1e065edd7d23" +uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" +version = "3.0.2+0" + +[[deps.JuliaFormatter]] +deps = ["CSTParser", "Combinatorics", "CommonMark", "DataStructures", "Glob", "Pkg", "PrecompileTools", "Tokenize"] +git-tree-sha1 = "fde717f9e3fe6ffb0336bcc2142cfa71dd9df1f5" +uuid = "98e50ef6-434e-11e9-1051-2b60c6c9e899" +version = "1.0.50" + +[[deps.JumpProcesses]] +deps = ["ArrayInterface", "DataStructures", "DiffEqBase", "DocStringExtensions", "FunctionWrappers", "Graphs", "LinearAlgebra", "Markdown", "PoissonRandom", "Random", "RandomNumbers", "RecursiveArrayTools", "Reexport", "SciMLBase", "StaticArrays", "UnPack"] +git-tree-sha1 = "c451feb97251965a9fe40bacd62551a72cc5902c" +uuid = "ccbc3e58-028d-4f4c-8cd5-9ae44345cda5" +version = "9.10.1" +weakdeps = ["FastBroadcast"] + + [deps.JumpProcesses.extensions] + JumpProcessFastBroadcastExt = "FastBroadcast" + +[[deps.KLU]] +deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse_jll"] +git-tree-sha1 = "07649c499349dad9f08dde4243a4c597064663e9" +uuid = "ef3ab10e-7fda-4108-b977-705223b18434" +version = "0.6.0" + +[[deps.Krylov]] +deps = ["LinearAlgebra", "Printf", "SparseArrays"] +git-tree-sha1 = "8a6837ec02fe5fb3def1abc907bb802ef11a0729" +uuid = "ba0b0d4f-ebba-5204-a429-3ac8c609bfb7" +version = "0.9.5" + +[[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"] +git-tree-sha1 = "d986ce2d884d49126836ea94ed5bfb0f12679713" +uuid = "1d63c593-3942-5779-bab2-d838dc0a180e" +version = "15.0.7+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.LabelledArrays]] +deps = ["ArrayInterface", "ChainRulesCore", "ForwardDiff", "LinearAlgebra", "MacroTools", "PreallocationTools", "RecursiveArrayTools", "StaticArrays"] +git-tree-sha1 = "d1f981fba6eb3ec393eede4821bca3f2b7592cd4" +uuid = "2ee39098-c373-598a-b85f-a56591580800" +version = "1.15.1" + +[[deps.LambertW]] +git-tree-sha1 = "c5ffc834de5d61d00d2b0e18c96267cffc21f648" +uuid = "984bce1d-4616-540c-a9ee-88d1112d94c9" +version = "0.4.6" + +[[deps.Latexify]] +deps = ["Format", "InteractiveUtils", "LaTeXStrings", "MacroTools", "Markdown", "OrderedCollections", "Requires"] +git-tree-sha1 = "cad560042a7cc108f5a4c24ea1431a9221f22c1b" +uuid = "23fbe1c1-3f47-55db-b15f-69d7ec21a316" +version = "0.16.2" + + [deps.Latexify.extensions] + DataFramesExt = "DataFrames" + SymEngineExt = "SymEngine" + + [deps.Latexify.weakdeps] + DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" + SymEngine = "123dc426-2d89-5057-bbad-38513e3affd8" + +[[deps.LayoutPointers]] +deps = ["ArrayInterface", "LinearAlgebra", "ManualMemory", "SIMDTypes", "Static", "StaticArrayInterface"] +git-tree-sha1 = "62edfee3211981241b57ff1cedf4d74d79519277" +uuid = "10f19ff3-798f-405d-979b-55457f8fc047" +version = "0.1.15" + +[[deps.LazilyInitializedFields]] +git-tree-sha1 = "8f7f3cabab0fd1800699663533b6d5cb3fc0e612" +uuid = "0e77f7df-68c5-4e49-93ce-4cd80f5598bf" +version = "1.2.2" + +[[deps.LazyArrays]] +deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra", "MacroTools", "MatrixFactorizations", "SparseArrays"] +git-tree-sha1 = "9cfca23ab83b0dfac93cb1a1ef3331ab9fe596a5" +uuid = "5078a376-72f3-5289-bfd5-ec5146d43c02" +version = "1.8.3" +weakdeps = ["StaticArrays"] + + [deps.LazyArrays.extensions] + LazyArraysStaticArraysExt = "StaticArrays" + +[[deps.LazyArtifacts]] +deps = ["Artifacts", "Pkg"] +uuid = "4af54fe1-eca0-43a8-85a7-787d91b784e3" + +[[deps.LevyArea]] +deps = ["LinearAlgebra", "Random", "SpecialFunctions"] +git-tree-sha1 = "56513a09b8e0ae6485f34401ea9e2f31357958ec" +uuid = "2d8b4e74-eb68-11e8-0fb9-d5eb67b50637" +version = "1.0.0" + +[[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", "LibGit2_jll", "NetworkOptions", "Printf", "SHA"] +uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" + +[[deps.LibGit2_jll]] +deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll"] +uuid = "e37daf67-58a4-590a-8e99-b0245dd2ffc5" +version = "1.6.4+0" + +[[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"] +git-tree-sha1 = "e5edc369a598dfde567269dc6add5812cfa10cd5" +uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700" +version = "2.39.3+0" + +[[deps.LineSearches]] +deps = ["LinearAlgebra", "NLSolversBase", "NaNMath", "Parameters", "Printf"] +git-tree-sha1 = "7bbea35cec17305fc70a0e5b4641477dc0789d9d" +uuid = "d3d80556-e9d4-5f37-9878-2ab0fcc64255" +version = "7.2.0" + +[[deps.LinearAlgebra]] +deps = ["Libdl", "OpenBLAS_jll", "libblastrampoline_jll"] +uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" + +[[deps.LinearMaps]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "9948d6f8208acfebc3e8cf4681362b2124339e7e" +uuid = "7a12625a-238d-50fd-b39a-03d52299707e" +version = "3.11.2" +weakdeps = ["ChainRulesCore", "SparseArrays", "Statistics"] + + [deps.LinearMaps.extensions] + LinearMapsChainRulesCoreExt = "ChainRulesCore" + LinearMapsSparseArraysExt = "SparseArrays" + LinearMapsStatisticsExt = "Statistics" + +[[deps.LinearSolve]] +deps = ["ArrayInterface", "ChainRulesCore", "ConcreteStructs", "DocStringExtensions", "EnumX", "FastLapackInterface", "GPUArraysCore", "InteractiveUtils", "KLU", "Krylov", "Libdl", "LinearAlgebra", "MKL_jll", "Markdown", "PrecompileTools", "Preferences", "RecursiveFactorization", "Reexport", "SciMLBase", "SciMLOperators", "Setfield", "SparseArrays", "Sparspak", "StaticArraysCore", "UnPack"] +git-tree-sha1 = "b2cc25978eb8efda63ee5786f2ed72c35a711b61" +uuid = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae" +version = "2.26.0" + + [deps.LinearSolve.extensions] + LinearSolveBandedMatricesExt = "BandedMatrices" + LinearSolveBlockDiagonalsExt = "BlockDiagonals" + LinearSolveCUDAExt = "CUDA" + LinearSolveEnzymeExt = ["Enzyme", "EnzymeCore"] + LinearSolveFastAlmostBandedMatricesExt = ["FastAlmostBandedMatrices"] + LinearSolveHYPREExt = "HYPRE" + LinearSolveIterativeSolversExt = "IterativeSolvers" + LinearSolveKernelAbstractionsExt = "KernelAbstractions" + LinearSolveKrylovKitExt = "KrylovKit" + LinearSolveMetalExt = "Metal" + LinearSolvePardisoExt = "Pardiso" + LinearSolveRecursiveArrayToolsExt = "RecursiveArrayTools" + + [deps.LinearSolve.weakdeps] + BandedMatrices = "aae01518-5342-5314-be14-df237901396f" + BlockDiagonals = "0a1fb500-61f7-11e9-3c65-f5ef3456f9f0" + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" + EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869" + FastAlmostBandedMatrices = "9d29842c-ecb8-4973-b1e9-a27b1157504e" + HYPRE = "b5ffcf37-a2bd-41ab-a3da-4bd9bc8ad771" + IterativeSolvers = "42fd0dbc-a981-5370-80f2-aaf504508153" + KernelAbstractions = "63c18a36-062a-441e-b654-da1e3ab1ce7c" + KrylovKit = "0b1a1467-8014-51b9-945f-bf0ae24f4b77" + Metal = "dde4c033-4e86-420c-a63e-0dd931031962" + Pardiso = "46dd5b70-b6fb-5a00-ae2d-e8fea33afaf2" + RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd" + +[[deps.LogExpFunctions]] +deps = ["DocStringExtensions", "IrrationalConstants", "LinearAlgebra"] +git-tree-sha1 = "18144f3e9cbe9b15b070288eef858f71b291ce37" +uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688" +version = "0.3.27" + + [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.LoopVectorization]] +deps = ["ArrayInterface", "CPUSummary", "CloseOpenIntervals", "DocStringExtensions", "HostCPUFeatures", "IfElse", "LayoutPointers", "LinearAlgebra", "OffsetArrays", "PolyesterWeave", "PrecompileTools", "SIMDTypes", "SLEEFPirates", "Static", "StaticArrayInterface", "ThreadingUtilities", "UnPack", "VectorizationBase"] +git-tree-sha1 = "0f5648fbae0d015e3abe5867bca2b362f67a5894" +uuid = "bdcacae8-1622-11e9-2a5c-532679323890" +version = "0.12.166" +weakdeps = ["ChainRulesCore", "ForwardDiff", "SpecialFunctions"] + + [deps.LoopVectorization.extensions] + ForwardDiffExt = ["ChainRulesCore", "ForwardDiff"] + SpecialFunctionsExt = "SpecialFunctions" + +[[deps.MKL_jll]] +deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl"] +git-tree-sha1 = "72dc3cf284559eb8f53aa593fe62cb33f83ed0c0" +uuid = "856f044c-d86e-5d09-b602-aeab76dc8ba7" +version = "2024.0.0+0" + +[[deps.MLStyle]] +git-tree-sha1 = "bc38dff0548128765760c79eb7388a4b37fae2c8" +uuid = "d8e11817-5142-5d16-987a-aa16d5891078" +version = "0.4.17" + +[[deps.MacroTools]] +deps = ["Markdown", "Random"] +git-tree-sha1 = "2fa9ee3e63fd3a4f7a9a4f4744a52f4856de82df" +uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" +version = "0.5.13" + +[[deps.ManualMemory]] +git-tree-sha1 = "bcaef4fc7a0cfe2cba636d84cda54b5e4e4ca3cd" +uuid = "d125e4d3-2237-4719-b19c-fa641b8a4667" +version = "0.1.8" + +[[deps.Markdown]] +deps = ["Base64"] +uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" + +[[deps.MarkdownAST]] +deps = ["AbstractTrees", "Markdown"] +git-tree-sha1 = "465a70f0fc7d443a00dcdc3267a497397b8a3899" +uuid = "d0879d2d-cac2-40c8-9cee-1863dc0c7391" +version = "0.1.2" + +[[deps.MathOptInterface]] +deps = ["BenchmarkTools", "CodecBzip2", "CodecZlib", "DataStructures", "ForwardDiff", "JSON", "LinearAlgebra", "MutableArithmetics", "NaNMath", "OrderedCollections", "PrecompileTools", "Printf", "SparseArrays", "SpecialFunctions", "Test", "Unicode"] +git-tree-sha1 = "679c1aec6934d322783bd15db4d18f898653be4f" +uuid = "b8f27783-ece8-5eb3-8dc8-9495eed66fee" +version = "1.27.0" + +[[deps.MatrixEquations]] +deps = ["LinearAlgebra", "LinearMaps"] +git-tree-sha1 = "f765b4eda3ea9be8e644b9127809ca5151f3d9ea" +uuid = "99c1a7ee-ab34-5fd5-8076-27c950a045f4" +version = "2.4.2" + +[[deps.MatrixFactorizations]] +deps = ["ArrayLayouts", "LinearAlgebra", "Printf", "Random"] +git-tree-sha1 = "78f6e33434939b0ac9ba1df81e6d005ee85a7396" +uuid = "a3b82374-2e81-5b9e-98ce-41277c0e4c87" +version = "2.1.0" + +[[deps.MatrixPencils]] +deps = ["LinearAlgebra", "Polynomials", "Random"] +git-tree-sha1 = "c00a086f4f1df792c77dc1bd674357044aa08d74" +uuid = "48965c70-4690-11ea-1f13-43a2532b2fa8" +version = "1.8.0" + +[[deps.MaybeInplace]] +deps = ["ArrayInterface", "LinearAlgebra", "MacroTools", "SparseArrays"] +git-tree-sha1 = "a85c6a98c9e5a2a7046bc1bb89f28a3241e1de4d" +uuid = "bb5d69b7-63fc-4a16-80bd-7e42200c7bdb" +version = "0.1.1" + +[[deps.MbedTLS]] +deps = ["Dates", "MbedTLS_jll", "MozillaCACerts_jll", "NetworkOptions", "Random", "Sockets"] +git-tree-sha1 = "c067a280ddc25f196b5e7df3877c6b226d390aaf" +uuid = "739be429-bea8-5141-9913-cc70e7f3736d" +version = "1.1.9" + +[[deps.MbedTLS_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" +version = "2.28.2+1" + +[[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.ModelingToolkit]] +deps = ["AbstractTrees", "ArrayInterface", "Combinatorics", "Compat", "ConstructionBase", "DataStructures", "DiffEqBase", "DiffEqCallbacks", "DiffRules", "Distributed", "Distributions", "DocStringExtensions", "DomainSets", "DynamicQuantities", "ExprTools", "FindFirstFunctions", "ForwardDiff", "FunctionWrappersWrappers", "Graphs", "InteractiveUtils", "JuliaFormatter", "JumpProcesses", "LabelledArrays", "Latexify", "Libdl", "LinearAlgebra", "MLStyle", "NaNMath", "OrdinaryDiffEq", "PrecompileTools", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLBase", "SciMLStructures", "Serialization", "Setfield", "SimpleNonlinearSolve", "SparseArrays", "SpecialFunctions", "StaticArrays", "SymbolicIndexingInterface", "SymbolicUtils", "Symbolics", "URIs", "UnPack", "Unitful"] +git-tree-sha1 = "4cea76a71cac2f9b1b2b2e236f9e32ccae48f56c" +uuid = "961ee093-0014-501f-94e3-6117800e7a78" +version = "9.3.0" + + [deps.ModelingToolkit.extensions] + MTKBifurcationKitExt = "BifurcationKit" + MTKDeepDiffsExt = "DeepDiffs" + + [deps.ModelingToolkit.weakdeps] + BifurcationKit = "0f109fa4-8a5d-4b75-95aa-f515264e7665" + DeepDiffs = "ab62b9b5-e342-54a8-a765-a90f495de1a6" + +[[deps.ModelingToolkitStandardLibrary]] +deps = ["ChainRulesCore", "DiffEqBase", "IfElse", "LinearAlgebra", "ModelingToolkit", "Symbolics"] +path = "/home/runner/work/ModelingToolkitStandardLibrary.jl/ModelingToolkitStandardLibrary.jl" +uuid = "16a59e39-deab-5bd0-87e4-056b12336739" +version = "2.6.0" + +[[deps.MozillaCACerts_jll]] +uuid = "14a3606d-f60d-562e-9121-12d972cd8159" +version = "2023.1.10" + +[[deps.MuladdMacro]] +git-tree-sha1 = "cac9cc5499c25554cba55cd3c30543cff5ca4fab" +uuid = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221" +version = "0.2.4" + +[[deps.MultivariatePolynomials]] +deps = ["ChainRulesCore", "DataStructures", "LinearAlgebra", "MutableArithmetics"] +git-tree-sha1 = "769c9175942d91ed9b83fa929eee4fe6a1d128ad" +uuid = "102ac46a-7ee4-5c85-9060-abc95bfdeaa3" +version = "0.5.4" + +[[deps.MutableArithmetics]] +deps = ["LinearAlgebra", "SparseArrays", "Test"] +git-tree-sha1 = "302fd161eb1c439e4115b51ae456da4e9984f130" +uuid = "d8a4904e-b15c-11e9-3269-09a3773c0cb0" +version = "1.4.1" + +[[deps.NLSolversBase]] +deps = ["DiffResults", "Distributed", "FiniteDiff", "ForwardDiff"] +git-tree-sha1 = "a0b464d183da839699f4c79e7606d9d186ec172c" +uuid = "d41bc354-129a-5804-8e4c-c37616107c6c" +version = "7.8.3" + +[[deps.NLsolve]] +deps = ["Distances", "LineSearches", "LinearAlgebra", "NLSolversBase", "Printf", "Reexport"] +git-tree-sha1 = "019f12e9a1a7880459d0173c182e6a99365d7ac1" +uuid = "2774e3e8-f4cf-5e23-947b-6d7e65073b56" +version = "4.5.1" + +[[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.NonlinearSolve]] +deps = ["ADTypes", "ArrayInterface", "ConcreteStructs", "DiffEqBase", "FastBroadcast", "FastClosures", "FiniteDiff", "ForwardDiff", "LazyArrays", "LineSearches", "LinearAlgebra", "LinearSolve", "MaybeInplace", "PrecompileTools", "Preferences", "Printf", "RecursiveArrayTools", "Reexport", "SciMLBase", "SimpleNonlinearSolve", "SparseArrays", "SparseDiffTools", "StaticArraysCore", "TimerOutputs"] +git-tree-sha1 = "f409959245f04c8004bd3711915d71c93b2043f7" +uuid = "8913a72c-1f9b-4ce2-8d82-65094dcecaec" +version = "3.7.3" + + [deps.NonlinearSolve.extensions] + NonlinearSolveBandedMatricesExt = "BandedMatrices" + NonlinearSolveFastLevenbergMarquardtExt = "FastLevenbergMarquardt" + NonlinearSolveFixedPointAccelerationExt = "FixedPointAcceleration" + NonlinearSolveLeastSquaresOptimExt = "LeastSquaresOptim" + NonlinearSolveMINPACKExt = "MINPACK" + NonlinearSolveNLSolversExt = "NLSolvers" + NonlinearSolveNLsolveExt = "NLsolve" + NonlinearSolveSIAMFANLEquationsExt = "SIAMFANLEquations" + NonlinearSolveSpeedMappingExt = "SpeedMapping" + NonlinearSolveSymbolicsExt = "Symbolics" + NonlinearSolveZygoteExt = "Zygote" + + [deps.NonlinearSolve.weakdeps] + BandedMatrices = "aae01518-5342-5314-be14-df237901396f" + FastLevenbergMarquardt = "7a0df574-e128-4d35-8cbd-3d84502bf7ce" + FixedPointAcceleration = "817d07cb-a79a-5c30-9a31-890123675176" + LeastSquaresOptim = "0fc2ff8b-aaa3-5acd-a817-1944a5e08891" + MINPACK = "4854310b-de5a-5eb6-a2a5-c1dee2bd17f9" + NLSolvers = "337daf1e-9722-11e9-073e-8b9effe078ba" + NLsolve = "2774e3e8-f4cf-5e23-947b-6d7e65073b56" + SIAMFANLEquations = "084e46ad-d928-497d-ad5e-07fa361a48c4" + SpeedMapping = "f1835b91-879b-4a3f-a438-e4baacf14412" + Symbolics = "0c5d862f-8b57-4792-8d23-62f2024744c7" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[[deps.OffsetArrays]] +git-tree-sha1 = "6a731f2b5c03157418a20c12195eb4b74c8f8621" +uuid = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" +version = "1.13.0" +weakdeps = ["Adapt"] + + [deps.OffsetArrays.extensions] + OffsetArraysAdaptExt = "Adapt" + +[[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.23+4" + +[[deps.OpenLibm_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "05823500-19ac-5b8b-9628-191a04bc5112" +version = "0.8.1+2" + +[[deps.OpenSSL]] +deps = ["BitFlags", "Dates", "MozillaCACerts_jll", "OpenSSL_jll", "Sockets"] +git-tree-sha1 = "af81a32750ebc831ee28bdaaba6e1067decef51e" +uuid = "4d8831e6-92b7-49fb-bdf8-b643e874388c" +version = "1.4.2" + +[[deps.OpenSSL_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "60e3045590bd104a16fefb12836c00c0ef8c7f8c" +uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" +version = "3.0.13+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.Optim]] +deps = ["Compat", "FillArrays", "ForwardDiff", "LineSearches", "LinearAlgebra", "MathOptInterface", "NLSolversBase", "NaNMath", "Parameters", "PositiveFactorizations", "Printf", "SparseArrays", "StatsBase"] +git-tree-sha1 = "d024bfb56144d947d4fafcd9cb5cafbe3410b133" +uuid = "429524aa-4258-5aef-a3af-852621145aeb" +version = "1.9.2" + +[[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 = "dfdf5519f235516220579f949664f1bf44e741c5" +uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" +version = "1.6.3" + +[[deps.OrdinaryDiffEq]] +deps = ["ADTypes", "Adapt", "ArrayInterface", "DataStructures", "DiffEqBase", "DocStringExtensions", "ExponentialUtilities", "FastBroadcast", "FastClosures", "FillArrays", "FiniteDiff", "ForwardDiff", "FunctionWrappersWrappers", "IfElse", "InteractiveUtils", "LineSearches", "LinearAlgebra", "LinearSolve", "Logging", "MacroTools", "MuladdMacro", "NonlinearSolve", "Polyester", "PreallocationTools", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators", "SimpleNonlinearSolve", "SimpleUnPack", "SparseArrays", "SparseDiffTools", "StaticArrayInterface", "StaticArrays", "TruncatedStacktraces"] +git-tree-sha1 = "287159684e32db56c82dbf545004a7884c6e5198" +uuid = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" +version = "6.74.0" + +[[deps.PCRE2_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "efcefdf7-47ab-520b-bdef-62a2eaa19f15" +version = "10.42.0+1" + +[[deps.PDMats]] +deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] +git-tree-sha1 = "949347156c25054de2db3b166c52ac4728cbad65" +uuid = "90014a1f-27ba-587c-ab20-58faa44d9150" +version = "0.11.31" + +[[deps.PackageExtensionCompat]] +git-tree-sha1 = "fb28e33b8a95c4cee25ce296c817d89cc2e53518" +uuid = "65ce6f38-6b18-4e1d-a461-8949797d7930" +version = "1.0.2" +weakdeps = ["Requires", "TOML"] + +[[deps.Parameters]] +deps = ["OrderedCollections", "UnPack"] +git-tree-sha1 = "34c0e9ad262e5f7fc75b10a9952ca7692cfc5fbe" +uuid = "d96e819e-fc66-5662-9728-84c9c7592b0a" +version = "0.12.3" + +[[deps.Parsers]] +deps = ["Dates", "PrecompileTools", "UUIDs"] +git-tree-sha1 = "8489905bcdbcfac64d1daa51ca07c0d8f0283821" +uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" +version = "2.8.1" + +[[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.10.0" + +[[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 = "862942baf5663da528f66d24996eb6da85218e76" +uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" +version = "1.4.0" + +[[deps.Plots]] +deps = ["Base64", "Contour", "Dates", "Downloads", "FFMPEG", "FixedPointNumbers", "GR", "JLFzf", "JSON", "LaTeXStrings", "Latexify", "LinearAlgebra", "Measures", "NaNMath", "Pkg", "PlotThemes", "PlotUtils", "PrecompileTools", "Printf", "REPL", "Random", "RecipesBase", "RecipesPipeline", "Reexport", "RelocatableFolders", "Requires", "Scratch", "Showoff", "SparseArrays", "Statistics", "StatsBase", "UUIDs", "UnicodeFun", "UnitfulLatexify", "Unzip"] +git-tree-sha1 = "c4fa93d7d66acad8f6f4ff439576da9d2e890ee0" +uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" +version = "1.40.1" + + [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.PoissonRandom]] +deps = ["Random"] +git-tree-sha1 = "a0f1159c33f846aa77c3f30ebbc69795e5327152" +uuid = "e409e4f3-bfea-5376-8464-e040bb5c01ab" +version = "0.4.4" + +[[deps.Polyester]] +deps = ["ArrayInterface", "BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "ManualMemory", "PolyesterWeave", "Requires", "Static", "StaticArrayInterface", "StrideArraysCore", "ThreadingUtilities"] +git-tree-sha1 = "fca25670784a1ae44546bcb17288218310af2778" +uuid = "f517fe37-dbe3-4b94-8317-1923a5111588" +version = "0.7.9" + +[[deps.PolyesterWeave]] +deps = ["BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "Static", "ThreadingUtilities"] +git-tree-sha1 = "240d7170f5ffdb285f9427b92333c3463bf65bf6" +uuid = "1d0040c9-8b98-4ee7-8388-3f51789ca0ad" +version = "0.2.1" + +[[deps.Polynomials]] +deps = ["LinearAlgebra", "RecipesBase", "Setfield", "SparseArrays"] +git-tree-sha1 = "a9c7a523d5ed375be3983db190f6a5874ae9286d" +uuid = "f27b6e38-b328-58d1-80ce-0feddd5e7a45" +version = "4.0.6" + + [deps.Polynomials.extensions] + PolynomialsChainRulesCoreExt = "ChainRulesCore" + PolynomialsFFTWExt = "FFTW" + PolynomialsMakieCoreExt = "MakieCore" + PolynomialsMutableArithmeticsExt = "MutableArithmetics" + + [deps.Polynomials.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + FFTW = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341" + MakieCore = "20f20a25-4f0e-4fdf-b5d1-57303727442b" + MutableArithmetics = "d8a4904e-b15c-11e9-3269-09a3773c0cb0" + +[[deps.PositiveFactorizations]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "17275485f373e6673f7e7f97051f703ed5b15b20" +uuid = "85a6dd25-e78a-55b7-8502-1745935b8125" +version = "0.2.4" + +[[deps.PreallocationTools]] +deps = ["Adapt", "ArrayInterface", "ForwardDiff"] +git-tree-sha1 = "b6665214f2d0739f2d09a17474dd443b9139784a" +uuid = "d236fae5-4411-538c-8e31-a6e3d9e00b46" +version = "0.4.20" + + [deps.PreallocationTools.extensions] + PreallocationToolsReverseDiffExt = "ReverseDiff" + + [deps.PreallocationTools.weakdeps] + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + +[[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 = "9306f6085165d270f7e3db02af26a400d580f5c6" +uuid = "21216c6a-2e73-6563-6e65-726566657250" +version = "1.4.3" + +[[deps.Printf]] +deps = ["Unicode"] +uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" + +[[deps.Profile]] +deps = ["Printf"] +uuid = "9abbd945-dff8-562f-b5e8-e1ebf5ef1b79" + +[[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 = "9b23c31e76e333e6fb4c1595ae6afa74966a729e" +uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" +version = "2.9.4" + +[[deps.REPL]] +deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] +uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" + +[[deps.Random]] +deps = ["SHA"] +uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" + +[[deps.Random123]] +deps = ["Random", "RandomNumbers"] +git-tree-sha1 = "4743b43e5a9c4a2ede372de7061eed81795b12e7" +uuid = "74087812-796a-5b5d-8853-05524746bad3" +version = "1.7.0" + +[[deps.RandomNumbers]] +deps = ["Random", "Requires"] +git-tree-sha1 = "043da614cc7e95c703498a491e2c21f58a2b8111" +uuid = "e6cf234a-135c-5ec9-84dd-332b85af5143" +version = "1.5.3" + +[[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.RecursiveArrayTools]] +deps = ["Adapt", "ArrayInterface", "DocStringExtensions", "GPUArraysCore", "IteratorInterfaceExtensions", "LinearAlgebra", "RecipesBase", "SparseArrays", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables"] +git-tree-sha1 = "dc428bb59c20dafd1ec500c3432b9e3d7e78e7f3" +uuid = "731186ca-8d62-57ce-b412-fbd966d074cd" +version = "3.10.1" + + [deps.RecursiveArrayTools.extensions] + RecursiveArrayToolsFastBroadcastExt = "FastBroadcast" + RecursiveArrayToolsForwardDiffExt = "ForwardDiff" + RecursiveArrayToolsMeasurementsExt = "Measurements" + RecursiveArrayToolsMonteCarloMeasurementsExt = "MonteCarloMeasurements" + RecursiveArrayToolsReverseDiffExt = ["ReverseDiff", "Zygote"] + RecursiveArrayToolsTrackerExt = "Tracker" + RecursiveArrayToolsZygoteExt = "Zygote" + + [deps.RecursiveArrayTools.weakdeps] + FastBroadcast = "7034ab61-46d4-4ed7-9d0f-46aef9175898" + ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" + Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7" + MonteCarloMeasurements = "0987c9cc-fe09-11e8-30f0-b96dd679fdca" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[[deps.RecursiveFactorization]] +deps = ["LinearAlgebra", "LoopVectorization", "Polyester", "PrecompileTools", "StrideArraysCore", "TriangularSolve"] +git-tree-sha1 = "8bc86c78c7d8e2a5fe559e3721c0f9c9e303b2ed" +uuid = "f2c3362d-daeb-58d1-803e-2bc74f2840b4" +version = "0.2.21" + +[[deps.Reexport]] +git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b" +uuid = "189a3867-3050-52da-a836-e630ba90ab69" +version = "1.2.2" + +[[deps.RegistryInstances]] +deps = ["LazilyInitializedFields", "Pkg", "TOML", "Tar"] +git-tree-sha1 = "ffd19052caf598b8653b99404058fce14828be51" +uuid = "2792f1a3-b283-48e8-9a74-f99dce5104f3" +version = "0.1.0" + +[[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.ResettableStacks]] +deps = ["StaticArrays"] +git-tree-sha1 = "256eeeec186fa7f26f2801732774ccf277f05db9" +uuid = "ae5879a3-cd67-5da8-be7f-38c6eb64a37b" +version = "1.1.1" + +[[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.RuntimeGeneratedFunctions]] +deps = ["ExprTools", "SHA", "Serialization"] +git-tree-sha1 = "6aacc5eefe8415f47b3e34214c1d79d2674a0ba2" +uuid = "7e49a35a-f44a-4d26-94aa-eba1b4ca6b47" +version = "0.5.12" + +[[deps.SHA]] +uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" +version = "0.7.0" + +[[deps.SIMDTypes]] +git-tree-sha1 = "330289636fb8107c5f32088d2741e9fd7a061a5c" +uuid = "94e857df-77ce-4151-89e5-788b33177be4" +version = "0.1.0" + +[[deps.SLEEFPirates]] +deps = ["IfElse", "Static", "VectorizationBase"] +git-tree-sha1 = "3aac6d68c5e57449f5b9b865c9ba50ac2970c4cf" +uuid = "476501e8-09a2-5ece-8869-fb82de89a1fa" +version = "0.6.42" + +[[deps.SciMLBase]] +deps = ["ADTypes", "ArrayInterface", "CommonSolve", "ConstructionBase", "Distributed", "DocStringExtensions", "EnumX", "FunctionWrappersWrappers", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "Markdown", "PrecompileTools", "Preferences", "Printf", "RecipesBase", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLOperators", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables"] +git-tree-sha1 = "3a281a9fce9cd62b849d7f16e412933a5fe755cb" +uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" +version = "2.29.0" + + [deps.SciMLBase.extensions] + SciMLBaseChainRulesCoreExt = "ChainRulesCore" + SciMLBaseMakieExt = "Makie" + SciMLBasePartialFunctionsExt = "PartialFunctions" + SciMLBasePyCallExt = "PyCall" + SciMLBasePythonCallExt = "PythonCall" + SciMLBaseRCallExt = "RCall" + SciMLBaseZygoteExt = "Zygote" + + [deps.SciMLBase.weakdeps] + ChainRules = "082447d4-558c-5d27-93f4-14fc19e9eca2" + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + Makie = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a" + PartialFunctions = "570af359-4316-4cb7-8c74-252c00c2016b" + PyCall = "438e738f-606a-5dbb-bf0a-cddfbfd45ab0" + PythonCall = "6099a3de-0909-46bc-b1f4-468b9a2dfc0d" + RCall = "6f49c342-dc21-5d91-9882-a32aef131414" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[[deps.SciMLOperators]] +deps = ["ArrayInterface", "DocStringExtensions", "LinearAlgebra", "MacroTools", "Setfield", "SparseArrays", "StaticArraysCore"] +git-tree-sha1 = "10499f619ef6e890f3f4a38914481cc868689cd5" +uuid = "c0aeaf25-5076-4817-a8d5-81caf7dfa961" +version = "0.3.8" + +[[deps.SciMLStructures]] +git-tree-sha1 = "5833c10ce83d690c124beedfe5f621b50b02ba4d" +uuid = "53ae85a6-f571-4167-b2af-e1d143709226" +version = "1.1.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.SharedArrays]] +deps = ["Distributed", "Mmap", "Random", "Serialization"] +uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383" + +[[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.SimpleNonlinearSolve]] +deps = ["ADTypes", "ArrayInterface", "ConcreteStructs", "DiffEqBase", "FastClosures", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "MaybeInplace", "PrecompileTools", "Reexport", "SciMLBase", "StaticArraysCore"] +git-tree-sha1 = "873a1bf90744acfa615e45cd5dddfd0ee89a094f" +uuid = "727e6d20-b764-4bd8-a329-72de5adea6c7" +version = "1.5.0" + + [deps.SimpleNonlinearSolve.extensions] + SimpleNonlinearSolveChainRulesCoreExt = "ChainRulesCore" + SimpleNonlinearSolvePolyesterForwardDiffExt = "PolyesterForwardDiff" + SimpleNonlinearSolveStaticArraysExt = "StaticArrays" + + [deps.SimpleNonlinearSolve.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + PolyesterForwardDiff = "98d1487c-24ca-40b6-b7ab-df2af84e126b" + StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" + +[[deps.SimpleTraits]] +deps = ["InteractiveUtils", "MacroTools"] +git-tree-sha1 = "5d7e3f4e11935503d3ecaf7186eac40602e7d231" +uuid = "699a6c99-e7fa-54fc-8d76-47d257e15c1d" +version = "0.9.4" + +[[deps.SimpleUnPack]] +git-tree-sha1 = "58e6353e72cde29b90a69527e56df1b5c3d8c437" +uuid = "ce78b400-467f-4804-87d8-8f486da07d0a" +version = "1.1.0" + +[[deps.Sockets]] +uuid = "6462fe0b-24de-5631-8697-dd941f90decc" + +[[deps.SortingAlgorithms]] +deps = ["DataStructures"] +git-tree-sha1 = "66e0a8e672a0bdfca2c3f5937efb8538b9ddc085" +uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c" +version = "1.2.1" + +[[deps.SparseArrays]] +deps = ["Libdl", "LinearAlgebra", "Random", "Serialization", "SuiteSparse_jll"] +uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" +version = "1.10.0" + +[[deps.SparseDiffTools]] +deps = ["ADTypes", "Adapt", "ArrayInterface", "Compat", "DataStructures", "FiniteDiff", "ForwardDiff", "Graphs", "LinearAlgebra", "PackageExtensionCompat", "Random", "Reexport", "SciMLOperators", "Setfield", "SparseArrays", "StaticArrayInterface", "StaticArrays", "Tricks", "UnPack", "VertexSafeGraphs"] +git-tree-sha1 = "a616ac46c38da60ac05cecf52064d44732edd05e" +uuid = "47a9eef4-7e08-11e9-0b38-333d64bd3804" +version = "2.17.0" + + [deps.SparseDiffTools.extensions] + SparseDiffToolsEnzymeExt = "Enzyme" + SparseDiffToolsPolyesterExt = "Polyester" + SparseDiffToolsPolyesterForwardDiffExt = "PolyesterForwardDiff" + SparseDiffToolsSymbolicsExt = "Symbolics" + SparseDiffToolsZygoteExt = "Zygote" + + [deps.SparseDiffTools.weakdeps] + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" + Polyester = "f517fe37-dbe3-4b94-8317-1923a5111588" + PolyesterForwardDiff = "98d1487c-24ca-40b6-b7ab-df2af84e126b" + Symbolics = "0c5d862f-8b57-4792-8d23-62f2024744c7" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[[deps.Sparspak]] +deps = ["Libdl", "LinearAlgebra", "Logging", "OffsetArrays", "Printf", "SparseArrays", "Test"] +git-tree-sha1 = "342cf4b449c299d8d1ceaf00b7a49f4fbc7940e7" +uuid = "e56a9233-b9d6-4f03-8d0f-1825330902ac" +version = "0.3.9" + +[[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.Static]] +deps = ["IfElse"] +git-tree-sha1 = "d2fdac9ff3906e27f7a618d47b676941baa6c80c" +uuid = "aedffcd0-7271-4cad-89d0-dc628f76c6d3" +version = "0.8.10" + +[[deps.StaticArrayInterface]] +deps = ["ArrayInterface", "Compat", "IfElse", "LinearAlgebra", "PrecompileTools", "Requires", "SparseArrays", "Static", "SuiteSparse"] +git-tree-sha1 = "5d66818a39bb04bf328e92bc933ec5b4ee88e436" +uuid = "0d7ed370-da01-4f52-bd93-41d350b8b718" +version = "1.5.0" +weakdeps = ["OffsetArrays", "StaticArrays"] + + [deps.StaticArrayInterface.extensions] + StaticArrayInterfaceOffsetArraysExt = "OffsetArrays" + StaticArrayInterfaceStaticArraysExt = "StaticArrays" + +[[deps.StaticArrays]] +deps = ["LinearAlgebra", "PrecompileTools", "Random", "StaticArraysCore"] +git-tree-sha1 = "bf074c045d3d5ffd956fa0a461da38a44685d6b2" +uuid = "90137ffa-7385-5640-81b9-e52037218182" +version = "1.9.3" +weakdeps = ["ChainRulesCore", "Statistics"] + + [deps.StaticArrays.extensions] + StaticArraysChainRulesCoreExt = "ChainRulesCore" + 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.10.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 = "cef0472124fab0695b58ca35a77c6fb942fdab8a" +uuid = "4c63d2b9-4356-54db-8cca-17b64c39e42c" +version = "1.3.1" + + [deps.StatsFuns.extensions] + StatsFunsChainRulesCoreExt = "ChainRulesCore" + StatsFunsInverseFunctionsExt = "InverseFunctions" + + [deps.StatsFuns.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.SteadyStateDiffEq]] +deps = ["ConcreteStructs", "DiffEqBase", "DiffEqCallbacks", "LinearAlgebra", "Reexport", "SciMLBase"] +git-tree-sha1 = "3875ef009bc726f12c8af2ea9a8bb115ff545d6d" +uuid = "9672c7b4-1e72-59bd-8a11-6ac3964bc41f" +version = "2.1.0" + +[[deps.StochasticDiffEq]] +deps = ["Adapt", "ArrayInterface", "DataStructures", "DiffEqBase", "DiffEqNoiseProcess", "DocStringExtensions", "FiniteDiff", "ForwardDiff", "JumpProcesses", "LevyArea", "LinearAlgebra", "Logging", "MuladdMacro", "NLsolve", "OrdinaryDiffEq", "Random", "RandomNumbers", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators", "SparseArrays", "SparseDiffTools", "StaticArrays", "UnPack"] +git-tree-sha1 = "97e5d0b7e5ec2e68eec6626af97c59e9f6b6c3d0" +uuid = "789caeaf-c7a9-5a7d-9973-96adeb23e2a0" +version = "6.65.1" + +[[deps.StrideArraysCore]] +deps = ["ArrayInterface", "CloseOpenIntervals", "IfElse", "LayoutPointers", "ManualMemory", "SIMDTypes", "Static", "StaticArrayInterface", "ThreadingUtilities"] +git-tree-sha1 = "d6415f66f3d89c615929af907fdc6a3e17af0d8c" +uuid = "7792a7ef-975c-4747-a70f-980b88e8d1da" +version = "0.5.2" + +[[deps.SuiteSparse]] +deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"] +uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9" + +[[deps.SuiteSparse_jll]] +deps = ["Artifacts", "Libdl", "libblastrampoline_jll"] +uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c" +version = "7.2.1+1" + +[[deps.Sundials]] +deps = ["CEnum", "DataStructures", "DiffEqBase", "Libdl", "LinearAlgebra", "Logging", "PrecompileTools", "Reexport", "SciMLBase", "SparseArrays", "Sundials_jll"] +git-tree-sha1 = "e15f5a73f0d14b9079b807a9d1dac13e4302e997" +uuid = "c3572dad-4567-51f8-b174-8c6c989267f4" +version = "4.24.0" + +[[deps.Sundials_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "SuiteSparse_jll", "libblastrampoline_jll"] +git-tree-sha1 = "ba4d38faeb62de7ef47155ed321dce40a549c305" +uuid = "fb77eaff-e24c-56d4-86b1-d163f2edb164" +version = "5.2.2+0" + +[[deps.SymbolicIndexingInterface]] +git-tree-sha1 = "251bb311585143931a306175c3b7ced220300578" +uuid = "2efcf032-c050-4f8e-a9bb-153293bab1f5" +version = "0.3.8" + +[[deps.SymbolicUtils]] +deps = ["AbstractTrees", "Bijections", "ChainRulesCore", "Combinatorics", "ConstructionBase", "DataStructures", "DocStringExtensions", "DynamicPolynomials", "IfElse", "LabelledArrays", "LinearAlgebra", "MultivariatePolynomials", "NaNMath", "Setfield", "SparseArrays", "SpecialFunctions", "StaticArrays", "SymbolicIndexingInterface", "TimerOutputs", "Unityper"] +git-tree-sha1 = "849b1dfb1680a9e9f2c6023f79a49b694fb6d0da" +uuid = "d1185830-fcd6-423d-90d6-eec64667417b" +version = "1.5.0" + +[[deps.Symbolics]] +deps = ["ArrayInterface", "Bijections", "ConstructionBase", "DataStructures", "DiffRules", "Distributions", "DocStringExtensions", "DomainSets", "DynamicPolynomials", "ForwardDiff", "IfElse", "LaTeXStrings", "LambertW", "Latexify", "Libdl", "LinearAlgebra", "LogExpFunctions", "MacroTools", "Markdown", "NaNMath", "PrecompileTools", "RecipesBase", "Reexport", "Requires", "RuntimeGeneratedFunctions", "SciMLBase", "Setfield", "SparseArrays", "SpecialFunctions", "StaticArrays", "SymbolicIndexingInterface", "SymbolicUtils"] +git-tree-sha1 = "febe1df0dc665c874cbf6fd88283603201749509" +uuid = "0c5d862f-8b57-4792-8d23-62f2024744c7" +version = "5.22.1" + + [deps.Symbolics.extensions] + SymbolicsGroebnerExt = "Groebner" + SymbolicsPreallocationToolsExt = "PreallocationTools" + SymbolicsSymPyExt = "SymPy" + + [deps.Symbolics.weakdeps] + Groebner = "0b43b601-686d-58a3-8a1c-6623616c7cd4" + PreallocationTools = "d236fae5-4411-538c-8e31-a6e3d9e00b46" + SymPy = "24249f21-da20-56a4-8eb1-6a02cf4ae2e6" + +[[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.ThreadingUtilities]] +deps = ["ManualMemory"] +git-tree-sha1 = "eda08f7e9818eb53661b3deb74e3159460dfbc27" +uuid = "8290d209-cae3-49c0-8002-c8c24d57dab5" +version = "0.5.2" + +[[deps.TimerOutputs]] +deps = ["ExprTools", "Printf"] +git-tree-sha1 = "f548a9e9c490030e545f72074a41edfd0e5bcdd7" +uuid = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f" +version = "0.5.23" + +[[deps.Tokenize]] +git-tree-sha1 = "5b5a892ba7704c0977013bd0f9c30f5d962181e0" +uuid = "0796e94c-ce3b-5d07-9a54-7f471281c624" +version = "0.5.28" + +[[deps.TranscodingStreams]] +git-tree-sha1 = "54194d92959d8ebaa8e26227dbe3cdefcdcd594f" +uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" +version = "0.10.3" +weakdeps = ["Random", "Test"] + + [deps.TranscodingStreams.extensions] + TestExt = ["Test", "Random"] + +[[deps.TriangularSolve]] +deps = ["CloseOpenIntervals", "IfElse", "LayoutPointers", "LinearAlgebra", "LoopVectorization", "Polyester", "Static", "VectorizationBase"] +git-tree-sha1 = "fadebab77bf3ae041f77346dd1c290173da5a443" +uuid = "d5829a12-d9aa-46ab-831f-fb7c9ab06edf" +version = "0.1.20" + +[[deps.Tricks]] +git-tree-sha1 = "eae1bb484cd63b36999ee58be2de6c178105112f" +uuid = "410a4b4d-49e4-4fbc-ab6d-cb71b17b3775" +version = "0.1.8" + +[[deps.TruncatedStacktraces]] +deps = ["InteractiveUtils", "MacroTools", "Preferences"] +git-tree-sha1 = "ea3e54c2bdde39062abf5a9758a23735558705e1" +uuid = "781d530d-4396-4725-bb49-402e4bee1e77" +version = "1.4.0" + +[[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.UnPack]] +git-tree-sha1 = "387c1f73762231e86e0c9c5443ce3b4a0a9a0c2b" +uuid = "3a884ed6-31ef-47d7-9d2a-63182c4928ed" +version = "1.0.2" + +[[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 = "3c793be6df9dd77a0cf49d80984ef9ff996948fa" +uuid = "1986cc42-f94f-5a68-af5c-568840ba703d" +version = "1.19.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.Unityper]] +deps = ["ConstructionBase"] +git-tree-sha1 = "25008b734a03736c41e2a7dc314ecb95bd6bbdb0" +uuid = "a7c27f48-0311-42f6-a7f8-2c11e75eb415" +version = "0.1.6" + +[[deps.Unzip]] +git-tree-sha1 = "ca0969166a028236229f63514992fc073799bb78" +uuid = "41fe7b60-77ed-43a1-b4f0-825fd5a5650d" +version = "0.2.0" + +[[deps.VectorizationBase]] +deps = ["ArrayInterface", "CPUSummary", "HostCPUFeatures", "IfElse", "LayoutPointers", "Libdl", "LinearAlgebra", "SIMDTypes", "Static", "StaticArrayInterface"] +git-tree-sha1 = "7209df901e6ed7489fe9b7aa3e46fb788e15db85" +uuid = "3d5dd08c-fd9d-11e8-17fa-ed2836048c2f" +version = "0.21.65" + +[[deps.VertexSafeGraphs]] +deps = ["Graphs"] +git-tree-sha1 = "8351f8d73d7e880bfc042a8b6922684ebeafb35c" +uuid = "19fa3120-7c27-5ec5-8db8-b0b0aa330d6f" +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 = "93f43ab61b16ddfb2fd3bb13b3ce241cafb0e6c9" +uuid = "2381bf8a-dfd0-557d-9999-79630e7b1b91" +version = "1.31.0+0" + +[[deps.XML2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Zlib_jll"] +git-tree-sha1 = "07e470dabc5a6a4254ffebc29a1b3fc01464e105" +uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" +version = "2.12.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 = "37195dcb94a5970397ad425b95a9a26d0befce3a" +uuid = "ffd25f8a-64ca-5728-b0f7-c24cf3aae800" +version = "5.6.0+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+1" + +[[deps.Zstd_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "49ce682769cd5de6c72dcf1b94ed7790cd08974c" +uuid = "3161d3a3-bdf6-5164-811a-617609db77b4" +version = "1.5.5+0" + +[[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"] +git-tree-sha1 = "a68c9655fbe6dfcab3d972808f1aafec151ce3f8" +uuid = "214eeab7-80f7-51ab-84ad-2988db7cef09" +version = "0.43.0+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+1" + +[[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", "Zlib_jll"] +git-tree-sha1 = "1ea2ebe8ffa31f9c324e8c1d6e86b4165b84a024" +uuid = "b53b4c65-9356-5827-b1ea-8c7a1a84506f" +version = "1.6.43+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+2" + +[[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/previews/PR273/assets/Project.toml b/previews/PR273/assets/Project.toml new file mode 100644 index 000000000..dffb4fce9 --- /dev/null +++ b/previews/PR273/assets/Project.toml @@ -0,0 +1,18 @@ +[deps] +ControlSystemsBase = "aaaaaaaa-a6ca-5380-bf3e-84a91bcd477e" +DifferentialEquations = "0c46a032-eb83-5123-abaf-570d42b7fbaa" +Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4" +IfElse = "615f187c-cbe4-4ef1-ba3b-2fcf58d6d173" +ModelingToolkit = "961ee093-0014-501f-94e3-6117800e7a78" +ModelingToolkitStandardLibrary = "16a59e39-deab-5bd0-87e4-056b12336739" +OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" +Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" + +[compat] +ControlSystemsBase = "1.1" +DifferentialEquations = "7.6" +Documenter = "1" +IfElse = "0.1" +ModelingToolkit = "9" +OrdinaryDiffEq = "6.31" +Plots = "1.36" diff --git a/previews/PR273/assets/documenter.js b/previews/PR273/assets/documenter.js new file mode 100644 index 000000000..c6562b558 --- /dev/null +++ b/previews/PR273/assets/documenter.js @@ -0,0 +1,1050 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/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.13.2/jquery-ui.min', + 'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.8/contrib/auto-render.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.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.16.8/katex.min', + 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/highlight.min', + 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/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(['jquery'], function($) { + +let timer = 0; +var isExpanded = true; + +$(document).on("click", ".docstring header", function () { + let articleToggleTitle = "Expand docstring"; + + debounce(() => { + if ($(this).siblings("section").is(":visible")) { + $(this) + .find(".docstring-article-toggle-button") + .removeClass("fa-chevron-down") + .addClass("fa-chevron-right"); + } else { + $(this) + .find(".docstring-article-toggle-button") + .removeClass("fa-chevron-right") + .addClass("fa-chevron-down"); + + articleToggleTitle = "Collapse docstring"; + } + + $(this) + .find(".docstring-article-toggle-button") + .prop("title", articleToggleTitle); + $(this).siblings("section").slideToggle(); + }); +}); + +$(document).on("click", ".docs-article-toggle-button", function (event) { + let articleToggleTitle = "Expand docstring"; + let navArticleToggleTitle = "Expand all docstrings"; + let animationSpeed = event.noToggleAnimation ? 0 : 400; + + debounce(() => { + if (isExpanded) { + $(this).removeClass("fa-chevron-up").addClass("fa-chevron-down"); + $(".docstring-article-toggle-button") + .removeClass("fa-chevron-down") + .addClass("fa-chevron-right"); + + isExpanded = false; + + $(".docstring section").slideUp(animationSpeed); + } else { + $(this).removeClass("fa-chevron-down").addClass("fa-chevron-up"); + $(".docstring-article-toggle-button") + .removeClass("fa-chevron-right") + .addClass("fa-chevron-down"); + + isExpanded = true; + articleToggleTitle = "Collapse docstring"; + navArticleToggleTitle = "Collapse all docstrings"; + + $(".docstring section").slideDown(animationSpeed); + } + + $(this).prop("title", navArticleToggleTitle); + $(".docstring-article-toggle-button").prop("title", articleToggleTitle); + }); +}); + +function debounce(callback, timeout = 300) { + if (Date.now() - timer > timeout) { + callback(); + } + + clearTimeout(timer); + + timer = Date.now(); +} + +}) +//////////////////////////////////////////////////////////////////////////////// +require([], function() { +function addCopyButtonCallbacks() { + for (const el of document.getElementsByTagName("pre")) { + const button = document.createElement("button"); + button.classList.add("copy-button", "fa-solid", "fa-copy"); + button.setAttribute("aria-label", "Copy this code block"); + button.setAttribute("title", "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-xmark"); + 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-xmark"); + }, 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($) { + +$(document).ready(function () { + let meta = $("div[data-docstringscollapsed]").data(); + + if (meta?.docstringscollapsed) { + $("#documenter-article-toggle-button").trigger({ + type: "click", + noToggleAnimation: true, + }); + } +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +/* +To get an in-depth about the thought process you can refer: https://hetarth02.hashnode.dev/series/gsoc + +PSEUDOCODE: + +Searching happens automatically as the user types or adjusts the selected filters. +To preserve responsiveness, as much as possible of the slow parts of the search are done +in a web worker. Searching and result generation are done in the worker, and filtering and +DOM updates are done in the main thread. The filters are in the main thread as they should +be very quick to apply. This lets filters be changed without re-searching with minisearch +(which is possible even if filtering is on the worker thread) and also lets filters be +changed _while_ the worker is searching and without message passing (neither of which are +possible if filtering is on the worker thread) + +SEARCH WORKER: + +Import minisearch + +Build index + +On message from main thread + run search + find the first 200 unique results from each category, and compute their divs for display + note that this is necessary and sufficient information for the main thread to find the + first 200 unique results from any given filter set + post results to main thread + +MAIN: + +Launch worker + +Declare nonconstant globals (worker_is_running, last_search_text, unfiltered_results) + +On text update + if worker is not running, launch_search() + +launch_search + set worker_is_running to true, set last_search_text to the search text + post the search query to worker + +on message from worker + if last_search_text is not the same as the text in the search field, + the latest search result is not reflective of the latest search query, so update again + launch_search() + otherwise + set worker_is_running to false + + regardless, display the new search results to the user + save the unfiltered_results as a global + update_search() + +on filter click + adjust the filter selection + update_search() + +update_search + apply search filters by looping through the unfiltered_results and finding the first 200 + unique results that match the filters + + Update the DOM +*/ + +/////// SEARCH WORKER /////// + +function worker_function(documenterSearchIndex, documenterBaseURL, filters) { + importScripts( + "https://cdn.jsdelivr.net/npm/minisearch@6.1.0/dist/umd/index.min.js" + ); + + let data = documenterSearchIndex.map((x, key) => { + x["id"] = key; // minisearch requires a unique for each object + return x; + }); + + // 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 + const stopWords = new Set([ + "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", + ]); + + let index = new MiniSearch({ + fields: ["title", "text"], // fields to index for full-text search + storeFields: ["location", "title", "text", "category", "page"], // fields to return with results + processTerm: (term) => { + let word = stopWords.has(term) ? null : term; + if (word) { + // custom trimmer that doesn't strip @ and !, which are used in julia macro and function names + word = word + .replace(/^[^a-zA-Z0-9@!]+/, "") + .replace(/[^a-zA-Z0-9@!]+$/, ""); + + word = word.toLowerCase(); + } + + return word ?? null; + }, + // add . as a separator, because otherwise "title": "Documenter.Anchors.add!", would not + // find anything if searching for "add!", only for the entire qualification + tokenize: (string) => string.split(/[\s\-\.]+/), + // options which will be applied during the search + searchOptions: { + prefix: true, + boost: { title: 100 }, + fuzzy: 2, + }, + }); + + index.addAll(data); + + /** + * Used to map characters to HTML entities. + * Refer: https://github.com/lodash/lodash/blob/main/src/escape.ts + */ + const htmlEscapes = { + "&": "&", + "<": "<", + ">": ">", + '"': """, + "'": "'", + }; + + /** + * Used to match HTML entities and HTML characters. + * Refer: https://github.com/lodash/lodash/blob/main/src/escape.ts + */ + const reUnescapedHtml = /[&<>"']/g; + const reHasUnescapedHtml = RegExp(reUnescapedHtml.source); + + /** + * Escape function from lodash + * Refer: https://github.com/lodash/lodash/blob/main/src/escape.ts + */ + function escape(string) { + return string && reHasUnescapedHtml.test(string) + ? string.replace(reUnescapedHtml, (chr) => htmlEscapes[chr]) + : string || ""; + } + + /** + * Make the result component given a minisearch result data object and the value + * of the search input as queryString. To view the result object structure, refer: + * https://lucaong.github.io/minisearch/modules/_minisearch_.html#searchresult + * + * @param {object} result + * @param {string} querystring + * @returns string + */ + function make_search_result(result, querystring) { + let search_divider = `
`; + let display_link = + result.location.slice(Math.max(0), Math.min(50, result.location.length)) + + (result.location.length > 30 ? "..." : ""); // To cut-off the link because it messes with the overflow of the whole div + + if (result.page !== "") { + display_link += ` (${result.page})`; + } + + let textindex = new RegExp(`${querystring}`, "i").exec(result.text); + let text = + textindex !== null + ? result.text.slice( + Math.max(textindex.index - 100, 0), + Math.min( + textindex.index + querystring.length + 100, + result.text.length + ) + ) + : ""; // cut-off text before and after from the match + + text = text.length ? escape(text) : ""; + + let display_result = text.length + ? "..." + + text.replace( + new RegExp(`${escape(querystring)}`, "i"), // For first occurrence + '$&' + ) + + "..." + : ""; // highlights the match + + let in_code = false; + if (!["page", "section"].includes(result.category.toLowerCase())) { + in_code = true; + } + + // We encode the full url to escape some special characters which can lead to broken links + let result_div = ` + +
+
${escape(result.title)}
+
${result.category}
+
+

+ ${display_result} +

+
+ ${display_link} +
+
+ ${search_divider} + `; + + return result_div; + } + + self.onmessage = function (e) { + let query = e.data; + let results = index.search(query, { + filter: (result) => { + // Only return relevant results + return result.score >= 1; + }, + }); + + // Pre-filter to deduplicate and limit to 200 per category to the extent + // possible without knowing what the filters are. + let filtered_results = []; + let counts = {}; + for (let filter of filters) { + counts[filter] = 0; + } + let present = {}; + + for (let result of results) { + cat = result.category; + cnt = counts[cat]; + if (cnt < 200) { + id = cat + "---" + result.location; + if (present[id]) { + continue; + } + present[id] = true; + filtered_results.push({ + location: result.location, + category: cat, + div: make_search_result(result, query), + }); + } + } + + postMessage(filtered_results); + }; +} + +// `worker = Threads.@spawn worker_function(documenterSearchIndex)`, but in JavaScript! +const filters = [ + ...new Set(documenterSearchIndex["docs"].map((x) => x.category)), +]; +const worker_str = + "(" + + worker_function.toString() + + ")(" + + JSON.stringify(documenterSearchIndex["docs"]) + + "," + + JSON.stringify(documenterBaseURL) + + "," + + JSON.stringify(filters) + + ")"; +const worker_blob = new Blob([worker_str], { type: "text/javascript" }); +const worker = new Worker(URL.createObjectURL(worker_blob)); + +/////// SEARCH MAIN /////// + +// Whether the worker is currently handling a search. This is a boolean +// as the worker only ever handles 1 or 0 searches at a time. +var worker_is_running = false; + +// The last search text that was sent to the worker. This is used to determine +// if the worker should be launched again when it reports back results. +var last_search_text = ""; + +// The results of the last search. This, in combination with the state of the filters +// in the DOM, is used compute the results to display on calls to update_search. +var unfiltered_results = []; + +// Which filter is currently selected +var selected_filter = ""; + +$(document).on("input", ".documenter-search-input", function (event) { + if (!worker_is_running) { + launch_search(); + } +}); + +function launch_search() { + worker_is_running = true; + last_search_text = $(".documenter-search-input").val(); + worker.postMessage(last_search_text); +} + +worker.onmessage = function (e) { + if (last_search_text !== $(".documenter-search-input").val()) { + launch_search(); + } else { + worker_is_running = false; + } + + unfiltered_results = e.data; + update_search(); +}; + +$(document).on("click", ".search-filter", function () { + if ($(this).hasClass("search-filter-selected")) { + selected_filter = ""; + } else { + selected_filter = $(this).text().toLowerCase(); + } + + // This updates search results and toggles classes for UI: + update_search(); +}); + +/** + * Make/Update the search component + */ +function update_search() { + let querystring = $(".documenter-search-input").val(); + + if (querystring.trim()) { + if (selected_filter == "") { + results = unfiltered_results; + } else { + results = unfiltered_results.filter((result) => { + return selected_filter == result.category.toLowerCase(); + }); + } + + let search_result_container = ``; + let modal_filters = make_modal_body_filters(); + let search_divider = `
`; + + if (results.length) { + let links = []; + let count = 0; + let search_results = ""; + + for (var i = 0, n = results.length; i < n && count < 200; ++i) { + let result = results[i]; + if (result.location && !links.includes(result.location)) { + search_results += result.div; + count++; + links.push(result.location); + } + } + + if (count == 1) { + count_str = "1 result"; + } else if (count == 200) { + count_str = "200+ results"; + } else { + count_str = count + " results"; + } + let result_count = `
${count_str}
`; + + search_result_container = ` +
+ ${modal_filters} + ${search_divider} + ${result_count} +
+ ${search_results} +
+
+ `; + } else { + search_result_container = ` +
+ ${modal_filters} + ${search_divider} +
0 result(s)
+
+
No result found!
+ `; + } + + if ($(".search-modal-card-body").hasClass("is-justify-content-center")) { + $(".search-modal-card-body").removeClass("is-justify-content-center"); + } + + $(".search-modal-card-body").html(search_result_container); + } else { + if (!$(".search-modal-card-body").hasClass("is-justify-content-center")) { + $(".search-modal-card-body").addClass("is-justify-content-center"); + } + + $(".search-modal-card-body").html(` +
Type something to get started!
+ `); + } +} + +/** + * Make the modal filter html + * + * @returns string + */ +function make_modal_body_filters() { + let str = filters + .map((val) => { + if (selected_filter == val.toLowerCase()) { + return `${val}`; + } else { + return `${val}`; + } + }) + .join(""); + + return ` +
+ Filters: + ${str} +
`; +} + +}) +//////////////////////////////////////////////////////////////////////////////// +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($) { + +$(document).ready(function () { + let search_modal_header = ` + + `; + + let initial_search_body = ` +
Type something to get started!
+ `; + + let search_modal_footer = ` + + `; + + $(document.body).append( + ` + + ` + ); + + document.querySelector(".docs-search-query").addEventListener("click", () => { + openModal(); + }); + + document + .querySelector(".close-search-modal") + .addEventListener("click", () => { + closeModal(); + }); + + $(document).on("click", ".search-result-link", function () { + closeModal(); + }); + + document.addEventListener("keydown", (event) => { + if ((event.ctrlKey || event.metaKey) && event.key === "/") { + openModal(); + } else if (event.key === "Escape") { + closeModal(); + } + + return false; + }); + + // Functions to open and close a modal + function openModal() { + let searchModal = document.querySelector("#search-modal"); + + searchModal.classList.add("is-active"); + document.querySelector(".documenter-search-input").focus(); + } + + function closeModal() { + let searchModal = document.querySelector("#search-modal"); + let initial_search_body = ` +
Type something to get started!
+ `; + + searchModal.classList.remove("is-active"); + document.querySelector(".documenter-search-input").blur(); + + if (!$(".search-modal-card-body").hasClass("is-justify-content-center")) { + $(".search-modal-card-body").addClass("is-justify-content-center"); + } + + $(".documenter-search-input").val(""); + $(".search-modal-card-body").html(initial_search_body); + } + + document + .querySelector("#search-modal .modal-background") + .addEventListener("click", () => { + closeModal(); + }); +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +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($) { + +// Theme picker setup +$(document).ready(function () { + // onchange callback + $("#documenter-themepicker").change(function themepick_callback(ev) { + var themename = $("#documenter-themepicker option:selected").attr("value"); + if (themename === "auto") { + // set_theme(window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'); + window.localStorage.removeItem("documenter-theme"); + } else { + // set_theme(themename); + window.localStorage.setItem("documenter-theme", themename); + } + // We re-use the global function from themeswap.js to actually do the swapping. + set_theme_from_local_storage(); + }); + + // Make sure that the themepicker displays the correct theme when the theme is retrieved + // from localStorage + if (typeof window.localStorage !== "undefined") { + var theme = window.localStorage.getItem("documenter-theme"); + if (theme !== null) { + $("#documenter-themepicker option").each(function (i, e) { + e.selected = e.value === theme; + }); + } + } +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// update the version selector with info from the siteinfo.js and ../versions.js files +$(document).ready(function () { + // If the version selector is disabled with DOCUMENTER_VERSION_SELECTOR_DISABLED in the + // siteinfo.js file, we just return immediately and not display the version selector. + if ( + typeof DOCUMENTER_VERSION_SELECTOR_DISABLED === "boolean" && + DOCUMENTER_VERSION_SELECTOR_DISABLED + ) { + return; + } + + var version_selector = $("#documenter .docs-version-selector"); + var version_selector_select = $("#documenter .docs-version-selector select"); + + version_selector_select.change(function (x) { + target_href = version_selector_select + .children("option:selected") + .get(0).value; + window.location.href = target_href; + }); + + // add the current version to the selector based on siteinfo.js, but only if the selector is empty + if ( + typeof DOCUMENTER_CURRENT_VERSION !== "undefined" && + $("#version-selector > option").length == 0 + ) { + var option = $( + "" + ); + version_selector_select.append(option); + } + + if (typeof DOC_VERSIONS !== "undefined") { + var existing_versions = version_selector_select.children("option"); + var existing_versions_texts = existing_versions.map(function (i, x) { + return x.text; + }); + DOC_VERSIONS.forEach(function (each) { + var version_url = documenterBaseURL + "/../" + each + "/"; + var existing_id = $.inArray(each, existing_versions_texts); + // if not already in the version selector, add it as a new option, + // otherwise update the old option with the URL and enable it + if (existing_id == -1) { + var option = $( + "" + ); + version_selector_select.append(option); + } else { + var option = existing_versions[existing_id]; + option.value = version_url; + option.disabled = false; + } + }); + } + + // only show the version selector if the selector has been populated + if (version_selector_select.children("option").length > 0) { + version_selector.toggleClass("visible"); + } +}); + +}) diff --git a/previews/PR273/assets/favicon.ico b/previews/PR273/assets/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..3c6bd470373d2cccea2154d70907b0e02ab202c8 GIT binary patch literal 1394 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 literal 0 HcmV?d00001 diff --git a/previews/PR273/assets/themes/documenter-dark.css b/previews/PR273/assets/themes/documenter-dark.css new file mode 100644 index 000000000..53889fb99 --- /dev/null +++ b/previews/PR273/assets/themes/documenter-dark.css @@ -0,0 +1,7 @@ +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:1rem;height:2.5em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(0.5em - 1px);padding-left:calc(0.75em - 1px);padding-right:calc(0.75em - 1px);padding-top:calc(0.5em - 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}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{-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 .pagination:not(:last-child),html.theme--documenter-dark .message:not(:last-child),html.theme--documenter-dark .level:not(:last-child),html.theme--documenter-dark .breadcrumb: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{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:9999px;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:9999px;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 .navbar-burger{-moz-appearance:none;-webkit-appearance:none;appearance:none;background:none;border:none;color:currentColor;font-family:inherit;font-size:1em;margin:0;padding:0}/*! minireset.css v0.0.6 | 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,video{height:auto;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:inherit}.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-primary-light{color:#f1f5f9 !important}a.has-text-primary-light:hover,a.has-text-primary-light:focus{color:#cddbe9 !important}.has-background-primary-light{background-color:#f1f5f9 !important}.has-text-primary-dark{color:#4d7eb2 !important}a.has-text-primary-dark:hover,a.has-text-primary-dark:focus{color:#7198c1 !important}.has-background-primary-dark{background-color:#4d7eb2 !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-link-light{color:#edfdf9 !important}a.has-text-link-light:hover,a.has-text-link-light:focus{color:#c0f6ec !important}.has-background-link-light{background-color:#edfdf9 !important}.has-text-link-dark{color:#15987e !important}a.has-text-link-dark:hover,a.has-text-link-dark:focus{color:#1bc5a4 !important}.has-background-link-dark{background-color:#15987e !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-info-light{color:#ebf7ff !important}a.has-text-info-light:hover,a.has-text-info-light:focus{color:#b9e2fe !important}.has-background-info-light{background-color:#ebf7ff !important}.has-text-info-dark{color:#0e9dfb !important}a.has-text-info-dark:hover,a.has-text-info-dark:focus{color:#40b1fc !important}.has-background-info-dark{background-color:#0e9dfb !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-success-light{color:#ebfff3 !important}a.has-text-success-light:hover,a.has-text-success-light:focus{color:#b8ffd6 !important}.has-background-success-light{background-color:#ebfff3 !important}.has-text-success-dark{color:#00eb64 !important}a.has-text-success-dark:hover,a.has-text-success-dark:focus{color:#1fff7e !important}.has-background-success-dark{background-color:#00eb64 !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-warning-light{color:#fffaeb !important}a.has-text-warning-light:hover,a.has-text-warning-light:focus{color:#ffedb8 !important}.has-background-warning-light{background-color:#fffaeb !important}.has-text-warning-dark{color:#d19c00 !important}a.has-text-warning-dark:hover,a.has-text-warning-dark:focus{color:#ffbf05 !important}.has-background-warning-dark{background-color:#d19c00 !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-danger-light{color:#fdeeec !important}a.has-text-danger-light:hover,a.has-text-danger-light:focus{color:#fac3bd !important}.has-background-danger-light{background-color:#fdeeec !important}.has-text-danger-dark{color:#ec311d !important}a.has-text-danger-dark:hover,a.has-text-danger-dark:focus{color:#f05c4c !important}.has-background-danger-dark{background-color:#ec311d !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}.is-flex-direction-row{flex-direction:row !important}.is-flex-direction-row-reverse{flex-direction:row-reverse !important}.is-flex-direction-column{flex-direction:column !important}.is-flex-direction-column-reverse{flex-direction:column-reverse !important}.is-flex-wrap-nowrap{flex-wrap:nowrap !important}.is-flex-wrap-wrap{flex-wrap:wrap !important}.is-flex-wrap-wrap-reverse{flex-wrap:wrap-reverse !important}.is-justify-content-flex-start{justify-content:flex-start !important}.is-justify-content-flex-end{justify-content:flex-end !important}.is-justify-content-center{justify-content:center !important}.is-justify-content-space-between{justify-content:space-between !important}.is-justify-content-space-around{justify-content:space-around !important}.is-justify-content-space-evenly{justify-content:space-evenly !important}.is-justify-content-start{justify-content:start !important}.is-justify-content-end{justify-content:end !important}.is-justify-content-left{justify-content:left !important}.is-justify-content-right{justify-content:right !important}.is-align-content-flex-start{align-content:flex-start !important}.is-align-content-flex-end{align-content:flex-end !important}.is-align-content-center{align-content:center !important}.is-align-content-space-between{align-content:space-between !important}.is-align-content-space-around{align-content:space-around !important}.is-align-content-space-evenly{align-content:space-evenly !important}.is-align-content-stretch{align-content:stretch !important}.is-align-content-start{align-content:start !important}.is-align-content-end{align-content:end !important}.is-align-content-baseline{align-content:baseline !important}.is-align-items-stretch{align-items:stretch !important}.is-align-items-flex-start{align-items:flex-start !important}.is-align-items-flex-end{align-items:flex-end !important}.is-align-items-center{align-items:center !important}.is-align-items-baseline{align-items:baseline !important}.is-align-items-start{align-items:start !important}.is-align-items-end{align-items:end !important}.is-align-items-self-start{align-items:self-start !important}.is-align-items-self-end{align-items:self-end !important}.is-align-self-auto{align-self:auto !important}.is-align-self-flex-start{align-self:flex-start !important}.is-align-self-flex-end{align-self:flex-end !important}.is-align-self-center{align-self:center !important}.is-align-self-baseline{align-self:baseline !important}.is-align-self-stretch{align-self:stretch !important}.is-flex-grow-0{flex-grow:0 !important}.is-flex-grow-1{flex-grow:1 !important}.is-flex-grow-2{flex-grow:2 !important}.is-flex-grow-3{flex-grow:3 !important}.is-flex-grow-4{flex-grow:4 !important}.is-flex-grow-5{flex-grow:5 !important}.is-flex-shrink-0{flex-shrink:0 !important}.is-flex-shrink-1{flex-shrink:1 !important}.is-flex-shrink-2{flex-shrink:2 !important}.is-flex-shrink-3{flex-shrink:3 !important}.is-flex-shrink-4{flex-shrink:4 !important}.is-flex-shrink-5{flex-shrink:5 !important}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left !important}.is-pulled-right{float:right !important}.is-radiusless{border-radius:0 !important}.is-shadowless{box-shadow:none !important}.is-clickable{cursor:pointer !important;pointer-events:all !important}.is-clipped{overflow:hidden !important}.is-relative{position:relative !important}.is-marginless{margin:0 !important}.is-paddingless{padding:0 !important}.m-0{margin:0 !important}.mt-0{margin-top:0 !important}.mr-0{margin-right:0 !important}.mb-0{margin-bottom:0 !important}.ml-0{margin-left:0 !important}.mx-0{margin-left:0 !important;margin-right:0 !important}.my-0{margin-top:0 !important;margin-bottom:0 !important}.m-1{margin:.25rem !important}.mt-1{margin-top:.25rem !important}.mr-1{margin-right:.25rem !important}.mb-1{margin-bottom:.25rem !important}.ml-1{margin-left:.25rem !important}.mx-1{margin-left:.25rem !important;margin-right:.25rem !important}.my-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.m-2{margin:.5rem !important}.mt-2{margin-top:.5rem !important}.mr-2{margin-right:.5rem !important}.mb-2{margin-bottom:.5rem !important}.ml-2{margin-left:.5rem !important}.mx-2{margin-left:.5rem !important;margin-right:.5rem !important}.my-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.m-3{margin:.75rem !important}.mt-3{margin-top:.75rem !important}.mr-3{margin-right:.75rem !important}.mb-3{margin-bottom:.75rem !important}.ml-3{margin-left:.75rem !important}.mx-3{margin-left:.75rem !important;margin-right:.75rem !important}.my-3{margin-top:.75rem !important;margin-bottom:.75rem !important}.m-4{margin:1rem !important}.mt-4{margin-top:1rem !important}.mr-4{margin-right:1rem !important}.mb-4{margin-bottom:1rem !important}.ml-4{margin-left:1rem !important}.mx-4{margin-left:1rem !important;margin-right:1rem !important}.my-4{margin-top:1rem !important;margin-bottom:1rem !important}.m-5{margin:1.5rem !important}.mt-5{margin-top:1.5rem !important}.mr-5{margin-right:1.5rem !important}.mb-5{margin-bottom:1.5rem !important}.ml-5{margin-left:1.5rem !important}.mx-5{margin-left:1.5rem !important;margin-right:1.5rem !important}.my-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.m-6{margin:3rem !important}.mt-6{margin-top:3rem !important}.mr-6{margin-right:3rem !important}.mb-6{margin-bottom:3rem !important}.ml-6{margin-left:3rem !important}.mx-6{margin-left:3rem !important;margin-right:3rem !important}.my-6{margin-top:3rem !important;margin-bottom:3rem !important}.m-auto{margin:auto !important}.mt-auto{margin-top:auto !important}.mr-auto{margin-right:auto !important}.mb-auto{margin-bottom:auto !important}.ml-auto{margin-left:auto !important}.mx-auto{margin-left:auto !important;margin-right:auto !important}.my-auto{margin-top:auto !important;margin-bottom:auto !important}.p-0{padding:0 !important}.pt-0{padding-top:0 !important}.pr-0{padding-right:0 !important}.pb-0{padding-bottom:0 !important}.pl-0{padding-left:0 !important}.px-0{padding-left:0 !important;padding-right:0 !important}.py-0{padding-top:0 !important;padding-bottom:0 !important}.p-1{padding:.25rem !important}.pt-1{padding-top:.25rem !important}.pr-1{padding-right:.25rem !important}.pb-1{padding-bottom:.25rem !important}.pl-1{padding-left:.25rem !important}.px-1{padding-left:.25rem !important;padding-right:.25rem !important}.py-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.p-2{padding:.5rem !important}.pt-2{padding-top:.5rem !important}.pr-2{padding-right:.5rem !important}.pb-2{padding-bottom:.5rem !important}.pl-2{padding-left:.5rem !important}.px-2{padding-left:.5rem !important;padding-right:.5rem !important}.py-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.p-3{padding:.75rem !important}.pt-3{padding-top:.75rem !important}.pr-3{padding-right:.75rem !important}.pb-3{padding-bottom:.75rem !important}.pl-3{padding-left:.75rem !important}.px-3{padding-left:.75rem !important;padding-right:.75rem !important}.py-3{padding-top:.75rem !important;padding-bottom:.75rem !important}.p-4{padding:1rem !important}.pt-4{padding-top:1rem !important}.pr-4{padding-right:1rem !important}.pb-4{padding-bottom:1rem !important}.pl-4{padding-left:1rem !important}.px-4{padding-left:1rem !important;padding-right:1rem !important}.py-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-5{padding:1.5rem !important}.pt-5{padding-top:1.5rem !important}.pr-5{padding-right:1.5rem !important}.pb-5{padding-bottom:1.5rem !important}.pl-5{padding-left:1.5rem !important}.px-5{padding-left:1.5rem !important;padding-right:1.5rem !important}.py-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-6{padding:3rem !important}.pt-6{padding-top:3rem !important}.pr-6{padding-right:3rem !important}.pb-6{padding-bottom:3rem !important}.pl-6{padding-left:3rem !important}.px-6{padding-left:3rem !important;padding-right:3rem !important}.py-6{padding-top:3rem !important;padding-bottom:3rem !important}.p-auto{padding:auto !important}.pt-auto{padding-top:auto !important}.pr-auto{padding-right:auto !important}.pb-auto{padding-bottom:auto !important}.pl-auto{padding-left:auto !important}.px-auto{padding-left:auto !important;padding-right:auto !important}.py-auto{padding-top:auto !important;padding-bottom:auto !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,html.theme--documenter-dark .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}.is-underlined{text-decoration:underline !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}}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 optgroup,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:inherit}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 0.5em 1em -0.125em 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.5em - 1px);padding-left:1em;padding-right:1em;padding-top:calc(0.5em - 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.5em - 1px);margin-right:.25em}html.theme--documenter-dark .button .icon:last-child:not(:first-child){margin-left:.25em;margin-right:calc(-0.5em - 1px)}html.theme--documenter-dark .button .icon:first-child:last-child{margin-left:calc(-0.5em - 1px);margin-right:calc(-0.5em - 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-ghost{background:none;border-color:rgba(0,0,0,0);color:#1abc9c;text-decoration:none}html.theme--documenter-dark .button.is-ghost:hover,html.theme--documenter-dark .button.is-ghost.is-hovered{color:#1abc9c;text-decoration:underline}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:#fff;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:#0a0a0a;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:rgba(0,0,0,0.7)}html.theme--documenter-dark .button.is-light:hover,html.theme--documenter-dark .button.is-light.is-hovered{background-color:#e5eaec;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .button.is-light:focus,html.theme--documenter-dark .button.is-light.is-focused{border-color:transparent;color:rgba(0,0,0,0.7)}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:rgba(0,0,0,0.7)}html.theme--documenter-dark .button.is-light[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light{background-color:#ecf0f1;border-color:#ecf0f1;box-shadow:none}html.theme--documenter-dark .button.is-light.is-inverted{background-color:rgba(0,0,0,0.7);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:rgba(0,0,0,0.7)}html.theme--documenter-dark .button.is-light.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted{background-color:rgba(0,0,0,0.7);border-color:transparent;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-loading::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !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:rgba(0,0,0,0.7)}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 rgba(0,0,0,0.7) rgba(0,0,0,0.7) !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:rgba(0,0,0,0.7);color:rgba(0,0,0,0.7)}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:rgba(0,0,0,0.7);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:rgba(0,0,0,0.7);box-shadow:none;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .button.is-dark,html.theme--documenter-dark .content kbd.button{background-color:#282f2f;border-color:transparent;color:#fff}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:#fff}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:#fff}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:#fff}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:#282f2f;box-shadow:none}html.theme--documenter-dark .button.is-dark.is-inverted,html.theme--documenter-dark .content kbd.button.is-inverted{background-color:#fff;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:#f2f2f2}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:#fff;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 #fff #fff !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:#fff}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 #fff #fff !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:#fff;color:#fff}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:#fff;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:#fff;box-shadow:none;color:#fff}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:#375a7f;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-primary.is-light,html.theme--documenter-dark .docstring>section>a.button.is-light.docs-sourcelink{background-color:#f1f5f9;color:#4d7eb2}html.theme--documenter-dark .button.is-primary.is-light:hover,html.theme--documenter-dark .docstring>section>a.button.is-light.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-light.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-light.is-hovered.docs-sourcelink{background-color:#e8eef5;border-color:transparent;color:#4d7eb2}html.theme--documenter-dark .button.is-primary.is-light:active,html.theme--documenter-dark .docstring>section>a.button.is-light.docs-sourcelink:active,html.theme--documenter-dark .button.is-primary.is-light.is-active,html.theme--documenter-dark .docstring>section>a.button.is-light.is-active.docs-sourcelink{background-color:#dfe8f1;border-color:transparent;color:#4d7eb2}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:#1abc9c;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-link.is-light{background-color:#edfdf9;color:#15987e}html.theme--documenter-dark .button.is-link.is-light:hover,html.theme--documenter-dark .button.is-link.is-light.is-hovered{background-color:#e2fbf6;border-color:transparent;color:#15987e}html.theme--documenter-dark .button.is-link.is-light:active,html.theme--documenter-dark .button.is-link.is-light.is-active{background-color:#d7f9f3;border-color:transparent;color:#15987e}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:#024c7d;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-info.is-light{background-color:#ebf7ff;color:#0e9dfb}html.theme--documenter-dark .button.is-info.is-light:hover,html.theme--documenter-dark .button.is-info.is-light.is-hovered{background-color:#def2fe;border-color:transparent;color:#0e9dfb}html.theme--documenter-dark .button.is-info.is-light:active,html.theme--documenter-dark .button.is-info.is-light.is-active{background-color:#d2edfe;border-color:transparent;color:#0e9dfb}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:#008438;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-success.is-light{background-color:#ebfff3;color:#00eb64}html.theme--documenter-dark .button.is-success.is-light:hover,html.theme--documenter-dark .button.is-success.is-light.is-hovered{background-color:#deffec;border-color:transparent;color:#00eb64}html.theme--documenter-dark .button.is-success.is-light:active,html.theme--documenter-dark .button.is-success.is-light.is-active{background-color:#d1ffe5;border-color:transparent;color:#00eb64}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:#ad8100;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-warning.is-light{background-color:#fffaeb;color:#d19c00}html.theme--documenter-dark .button.is-warning.is-light:hover,html.theme--documenter-dark .button.is-warning.is-light.is-hovered{background-color:#fff7de;border-color:transparent;color:#d19c00}html.theme--documenter-dark .button.is-warning.is-light:active,html.theme--documenter-dark .button.is-warning.is-light.is-active{background-color:#fff3d1;border-color:transparent;color:#d19c00}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:#9e1b0d;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-danger.is-light{background-color:#fdeeec;color:#ec311d}html.theme--documenter-dark .button.is-danger.is-light:hover,html.theme--documenter-dark .button.is-danger.is-light.is-hovered{background-color:#fce3e0;border-color:transparent;color:#ec311d}html.theme--documenter-dark .button.is-danger.is-light:active,html.theme--documenter-dark .button.is-danger.is-light.is-active{background-color:#fcd8d5;border-color:transparent;color:#ec311d}html.theme--documenter-dark .button.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.button{font-size:.75rem}html.theme--documenter-dark .button.is-small:not(.is-rounded),html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.button:not(.is-rounded){border-radius:3px}html.theme--documenter-dark .button.is-normal{font-size:1rem}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:#5e6d6f;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 * 0.5));top:calc(50% - (1em * 0.5));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:9999px;padding-left:calc(1em + 0.25em);padding-right:calc(1em + 0.25em)}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:.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){font-size:.75rem}html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large):not(.is-rounded){border-radius:3px}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}@media screen and (max-width: 768px){html.theme--documenter-dark .button.is-responsive.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-responsive{font-size:.5625rem}html.theme--documenter-dark .button.is-responsive,html.theme--documenter-dark .button.is-responsive.is-normal{font-size:.65625rem}html.theme--documenter-dark .button.is-responsive.is-medium{font-size:.75rem}html.theme--documenter-dark .button.is-responsive.is-large{font-size:1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .button.is-responsive.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-responsive{font-size:.65625rem}html.theme--documenter-dark .button.is-responsive,html.theme--documenter-dark .button.is-responsive.is-normal{font-size:.75rem}html.theme--documenter-dark .button.is-responsive.is-medium{font-size:1rem}html.theme--documenter-dark .button.is-responsive.is-large{font-size:1.25rem}}html.theme--documenter-dark .container{flex-grow:1;margin:0 auto;position:relative;width:auto}html.theme--documenter-dark .container.is-fluid{max-width:none !important;padding-left:32px;padding-right:32px;width:100%}@media screen and (min-width: 1056px){html.theme--documenter-dark .container{max-width:992px}}@media screen and (max-width: 1215px){html.theme--documenter-dark .container.is-widescreen:not(.is-max-desktop){max-width:1152px}}@media screen and (max-width: 1407px){html.theme--documenter-dark .container.is-fullhd:not(.is-max-desktop):not(.is-max-widescreen){max-width:1344px}}@media screen and (min-width: 1216px){html.theme--documenter-dark .container:not(.is-max-desktop){max-width:1152px}}@media screen and (min-width: 1408px){html.theme--documenter-dark .container:not(.is-max-desktop):not(.is-max-widescreen){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:inherit}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:.75rem}html.theme--documenter-dark .content.is-normal{font-size:1rem}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 .icon-text{align-items:flex-start;color:inherit;display:inline-flex;flex-wrap:wrap;line-height:1.5rem;vertical-align:top}html.theme--documenter-dark .icon-text .icon{flex-grow:0;flex-shrink:0}html.theme--documenter-dark .icon-text .icon:not(:last-child){margin-right:.25em}html.theme--documenter-dark .icon-text .icon:not(:first-child){margin-left:.25em}html.theme--documenter-dark div.icon-text{display:flex}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:9999px}html.theme--documenter-dark .image.is-fullwidth,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-fullwidth{width:100%}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;position:relative;padding:1.25rem 2.5rem 1.25rem 1.5rem}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{right:.5rem;position:absolute;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:rgba(0,0,0,0.7)}html.theme--documenter-dark .notification.is-dark,html.theme--documenter-dark .content kbd.notification{background-color:#282f2f;color:#fff}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-primary.is-light,html.theme--documenter-dark .docstring>section>a.notification.is-light.docs-sourcelink{background-color:#f1f5f9;color:#4d7eb2}html.theme--documenter-dark .notification.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .notification.is-link.is-light{background-color:#edfdf9;color:#15987e}html.theme--documenter-dark .notification.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .notification.is-info.is-light{background-color:#ebf7ff;color:#0e9dfb}html.theme--documenter-dark .notification.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .notification.is-success.is-light{background-color:#ebfff3;color:#00eb64}html.theme--documenter-dark .notification.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .notification.is-warning.is-light{background-color:#fffaeb;color:#d19c00}html.theme--documenter-dark .notification.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .notification.is-danger.is-light{background-color:#fdeeec;color:#ec311d}html.theme--documenter-dark .progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:9999px;display:block;height:1rem;overflow:hidden;padding:0;width:100%}html.theme--documenter-dark .progress::-webkit-progress-bar{background-color:#343c3d}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%, #343c3d 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%, #343c3d 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%, #343c3d 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%, #343c3d 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%, #343c3d 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%, #343c3d 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%, #343c3d 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%, #343c3d 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%, #343c3d 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%, #343c3d 30%)}html.theme--documenter-dark .progress:indeterminate{animation-duration:1.5s;animation-iteration-count:infinite;animation-name:moveIndeterminate;animation-timing-function:linear;background-color:#343c3d;background-image:linear-gradient(to right, #fff 30%, #343c3d 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:indeterminate::-ms-fill{animation-name:none}html.theme--documenter-dark .progress.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.progress{height:.75rem}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:rgba(0,0,0,0.7)}html.theme--documenter-dark .table td.is-dark,html.theme--documenter-dark .table th.is-dark{background-color:#282f2f;border-color:#282f2f;color:#fff}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 td.is-vcentered,html.theme--documenter-dark .table th.is-vcentered{vertical-align:middle}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:.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:1rem}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-top-left-radius:0;border-bottom-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-top-right-radius:0;border-bottom-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:.75rem;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:.25rem;margin-right:-.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:rgba(0,0,0,0.7)}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:#fff}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-primary.is-light:not(body),html.theme--documenter-dark .content kbd.is-primary.is-light:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#f1f5f9;color:#4d7eb2}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-link.is-light:not(body),html.theme--documenter-dark .content kbd.is-link.is-light:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-link.is-light:not(body){background-color:#edfdf9;color:#15987e}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-info.is-light:not(body),html.theme--documenter-dark .content kbd.is-info.is-light:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-info.is-light:not(body){background-color:#ebf7ff;color:#0e9dfb}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-success.is-light:not(body),html.theme--documenter-dark .content kbd.is-success.is-light:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-success.is-light:not(body){background-color:#ebfff3;color:#00eb64}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-warning.is-light:not(body),html.theme--documenter-dark .content kbd.is-warning.is-light:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-warning.is-light:not(body){background-color:#fffaeb;color:#d19c00}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-danger.is-light:not(body),html.theme--documenter-dark .content kbd.is-danger.is-light:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-danger.is-light:not(body){background-color:#fdeeec;color:#ec311d}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:.75rem}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:1rem}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:-.375em;margin-right:.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:.1875em;margin-right:-.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:-.375em;margin-right:-.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:9999px}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: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:1rem}html.theme--documenter-dark .title.is-7{font-size:.75rem}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:1rem}html.theme--documenter-dark .subtitle.is-7{font-size:.75rem}html.theme--documenter-dark .heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}html.theme--documenter-dark .number{align-items:center;background-color:#282f2f;border-radius:9999px;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:#868c98}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:#868c98}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:#868c98}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:#868c98}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 0.0625em 0.125em rgba(10,10,10,0.05);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:.75rem}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:9999px;padding-left:calc(calc(0.75em - 1px) + 0.375em);padding-right:calc(calc(0.75em - 1px) + 0.375em)}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:calc(0.75em - 1px);resize:vertical}html.theme--documenter-dark .textarea:not([rows]){max-height:40em;min-height:8em}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,html.theme--documenter-dark .radio input[disabled],html.theme--documenter-dark .checkbox input[disabled]{color:#fff;cursor:not-allowed}html.theme--documenter-dark .radio+.radio{margin-left:.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.5em}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:9999px;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:.75rem}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 !important;opacity:0.5}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:.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:.75rem}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:rgba(0,0,0,0.7)}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:rgba(0,0,0,0.7)}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:rgba(0,0,0,0.7)}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:rgba(0,0,0,0.7)}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:#fff}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:#fff}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:#fff}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:#fff}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:.75rem}html.theme--documenter-dark .file.is-normal{font-size:1rem}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:#232829;color:#f2f2f2}html.theme--documenter-dark .file-label:hover .file-name{border-color:#596668}html.theme--documenter-dark .file-label:active .file-cta{background-color:#1d2122;color:#f2f2f2}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:#282f2f;color:#fff}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:inherit;text-overflow:ellipsis}html.theme--documenter-dark .file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:.5em;width:1em}html.theme--documenter-dark .file-icon .fa{font-size:14px}html.theme--documenter-dark .label{color:#f2f2f2;display:block;font-size:1rem;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:.75rem}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:.75rem;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:.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:.75rem;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:.75rem}}html.theme--documenter-dark .control{box-sizing:border-box;clear:both;font-size:1rem;position:relative;text-align:inherit}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:#282f2f}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:.75rem}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:#5e6d6f;height:2.5em;pointer-events:none;position:absolute;top:0;width:2.5em;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.5em}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.5em}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:.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:.75rem}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:1rem;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:.5em}html.theme--documenter-dark .breadcrumb .icon:last-child{margin-left:.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:.75rem}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;border-radius:.25rem;box-shadow:#171717;color:#fff;max-width:100%;position:relative}html.theme--documenter-dark .card-footer:first-child,html.theme--documenter-dark .card-content:first-child,html.theme--documenter-dark .card-header:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}html.theme--documenter-dark .card-footer:last-child,html.theme--documenter-dark .card-content:last-child,html.theme--documenter-dark .card-header:last-child{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}html.theme--documenter-dark .card-header{background-color:rgba(0,0,0,0);align-items:stretch;box-shadow:0 0.125em 0.25em rgba(10,10,10,0.1);display:flex}html.theme--documenter-dark .card-header-title{align-items:center;color:#f2f2f2;display:flex;flex-grow:1;font-weight:700;padding:0.75rem 1rem}html.theme--documenter-dark .card-header-title.is-centered{justify-content:center}html.theme--documenter-dark .card-header-icon{-moz-appearance:none;-webkit-appearance:none;appearance:none;background:none;border:none;color:currentColor;font-family:inherit;font-size:1em;margin:0;padding:0;align-items:center;cursor:pointer;display:flex;justify-content:center;padding:0.75rem 1rem}html.theme--documenter-dark .card-image{display:block;position:relative}html.theme--documenter-dark .card-image:first-child img{border-top-left-radius:.25rem;border-top-right-radius:.25rem}html.theme--documenter-dark .card-image:last-child img{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}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 #ededed;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 #ededed}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:#171717;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:inherit;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:#ededed;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 .media{align-items:flex-start;display:flex;text-align:inherit}html.theme--documenter-dark .media .content:not(:last-child){margin-bottom:.75rem}html.theme--documenter-dark .media .media{border-top:1px solid rgba(94,109,111,0.5);display:flex;padding-top:.75rem}html.theme--documenter-dark .media .media .content:not(:last-child),html.theme--documenter-dark .media .media .control:not(:last-child){margin-bottom:.5rem}html.theme--documenter-dark .media .media .media{padding-top:.5rem}html.theme--documenter-dark .media .media .media+.media{margin-top:.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:inherit}@media screen and (max-width: 768px){html.theme--documenter-dark .media-content{overflow-x:auto}}html.theme--documenter-dark .menu{font-size:1rem}html.theme--documenter-dark .menu.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.menu{font-size:.75rem}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:1rem}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:.75rem}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}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}html.theme--documenter-dark .message.is-light{background-color:#f9fafb}html.theme--documenter-dark .message.is-light .message-header{background-color:#ecf0f1;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .message.is-light .message-body{border-color:#ecf0f1}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:#fff}html.theme--documenter-dark .message.is-dark .message-body,html.theme--documenter-dark .content kbd.message .message-body{border-color:#282f2f}html.theme--documenter-dark .message.is-primary,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink{background-color:#f1f5f9}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:#4d7eb2}html.theme--documenter-dark .message.is-link{background-color:#edfdf9}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:#15987e}html.theme--documenter-dark .message.is-info{background-color:#ebf7ff}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:#0e9dfb}html.theme--documenter-dark .message.is-success{background-color:#ebfff3}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:#00eb64}html.theme--documenter-dark .message.is-warning{background-color:#fffaeb}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:#d19c00}html.theme--documenter-dark .message.is-danger{background-color:#fdeeec}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:#ec311d}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:.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){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:.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:rgba(0,0,0,0.7)}html.theme--documenter-dark .navbar.is-light .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link{color:rgba(0,0,0,0.7)}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:rgba(0,0,0,0.7)}html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,0.7)}html.theme--documenter-dark .navbar.is-light .navbar-burger{color:rgba(0,0,0,0.7)}@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:rgba(0,0,0,0.7)}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:rgba(0,0,0,0.7)}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:rgba(0,0,0,0.7)}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:rgba(0,0,0,0.7)}html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#ecf0f1;color:rgba(0,0,0,0.7)}}html.theme--documenter-dark .navbar.is-dark,html.theme--documenter-dark .content kbd.navbar{background-color:#282f2f;color:#fff}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:#fff}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:#fff}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:#fff}html.theme--documenter-dark .navbar.is-dark .navbar-burger,html.theme--documenter-dark .content kbd.navbar .navbar-burger{color:#fff}@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:#fff}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:#fff}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:#fff}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:#fff}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:#fff}}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;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:none;border:none;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{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.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:1rem;margin:-.25rem}html.theme--documenter-dark .pagination.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination{font-size:.75rem}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:9999px}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:9999px}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.5em}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-previous.is-disabled,html.theme--documenter-dark .pagination-next[disabled],html.theme--documenter-dark .pagination-next.is-disabled,html.theme--documenter-dark .pagination-link[disabled],html.theme--documenter-dark .pagination-link.is-disabled{background-color:#5e6d6f;border-color:#5e6d6f;box-shadow:none;color:#fff;opacity:0.5}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next{padding-left:.75em;padding-right:.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}html.theme--documenter-dark .pagination-list li{list-style:none}@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,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis{margin-bottom:0;margin-top:0}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;margin-bottom:0;margin-top:0}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{border-radius:8px;box-shadow:#171717;font-size:1rem}html.theme--documenter-dark .panel:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .panel.is-white .panel-heading{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .panel.is-white .panel-tabs a.is-active{border-bottom-color:#fff}html.theme--documenter-dark .panel.is-white .panel-block.is-active .panel-icon{color:#fff}html.theme--documenter-dark .panel.is-black .panel-heading{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .panel.is-black .panel-tabs a.is-active{border-bottom-color:#0a0a0a}html.theme--documenter-dark .panel.is-black .panel-block.is-active .panel-icon{color:#0a0a0a}html.theme--documenter-dark .panel.is-light .panel-heading{background-color:#ecf0f1;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .panel.is-light .panel-tabs a.is-active{border-bottom-color:#ecf0f1}html.theme--documenter-dark .panel.is-light .panel-block.is-active .panel-icon{color:#ecf0f1}html.theme--documenter-dark .panel.is-dark .panel-heading,html.theme--documenter-dark .content kbd.panel .panel-heading{background-color:#282f2f;color:#fff}html.theme--documenter-dark .panel.is-dark .panel-tabs a.is-active,html.theme--documenter-dark .content kbd.panel .panel-tabs a.is-active{border-bottom-color:#282f2f}html.theme--documenter-dark .panel.is-dark .panel-block.is-active .panel-icon,html.theme--documenter-dark .content kbd.panel .panel-block.is-active .panel-icon{color:#282f2f}html.theme--documenter-dark .panel.is-primary .panel-heading,html.theme--documenter-dark .docstring>section>a.panel.docs-sourcelink .panel-heading{background-color:#375a7f;color:#fff}html.theme--documenter-dark .panel.is-primary .panel-tabs a.is-active,html.theme--documenter-dark .docstring>section>a.panel.docs-sourcelink .panel-tabs a.is-active{border-bottom-color:#375a7f}html.theme--documenter-dark .panel.is-primary .panel-block.is-active .panel-icon,html.theme--documenter-dark .docstring>section>a.panel.docs-sourcelink .panel-block.is-active .panel-icon{color:#375a7f}html.theme--documenter-dark .panel.is-link .panel-heading{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .panel.is-link .panel-tabs a.is-active{border-bottom-color:#1abc9c}html.theme--documenter-dark .panel.is-link .panel-block.is-active .panel-icon{color:#1abc9c}html.theme--documenter-dark .panel.is-info .panel-heading{background-color:#024c7d;color:#fff}html.theme--documenter-dark .panel.is-info .panel-tabs a.is-active{border-bottom-color:#024c7d}html.theme--documenter-dark .panel.is-info .panel-block.is-active .panel-icon{color:#024c7d}html.theme--documenter-dark .panel.is-success .panel-heading{background-color:#008438;color:#fff}html.theme--documenter-dark .panel.is-success .panel-tabs a.is-active{border-bottom-color:#008438}html.theme--documenter-dark .panel.is-success .panel-block.is-active .panel-icon{color:#008438}html.theme--documenter-dark .panel.is-warning .panel-heading{background-color:#ad8100;color:#fff}html.theme--documenter-dark .panel.is-warning .panel-tabs a.is-active{border-bottom-color:#ad8100}html.theme--documenter-dark .panel.is-warning .panel-block.is-active .panel-icon{color:#ad8100}html.theme--documenter-dark .panel.is-danger .panel-heading{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .panel.is-danger .panel-tabs a.is-active{border-bottom-color:#9e1b0d}html.theme--documenter-dark .panel.is-danger .panel-block.is-active .panel-icon{color:#9e1b0d}html.theme--documenter-dark .panel-tabs:not(:last-child),html.theme--documenter-dark .panel-block:not(:last-child){border-bottom:1px solid #ededed}html.theme--documenter-dark .panel-heading{background-color:#343c3d;border-radius:8px 8px 0 0;color:#f2f2f2;font-size:1.25em;font-weight:700;line-height:1.25;padding:0.75em 1em}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:.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 .panel-block:last-child{border-bottom-left-radius:8px;border-bottom-right-radius:8px}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:.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:1rem;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:.5em}html.theme--documenter-dark .tabs .icon:last-child{margin-left:.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-top-left-radius:.4em;border-bottom-left-radius:.4em}html.theme--documenter-dark .tabs.is-toggle li:last-child a{border-top-right-radius:.4em;border-bottom-right-radius:.4em}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:9999px;border-top-left-radius:9999px;padding-left:1.25em}html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:9999px;border-top-right-radius:9999px;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:.75rem}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;width:unset}.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.33333337%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-1{margin-left:8.33333337%}.columns.is-mobile>html.theme--documenter-dark .column.is-2{flex:none;width:16.66666674%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-2{margin-left:16.66666674%}.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.33333337%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-4{margin-left:33.33333337%}.columns.is-mobile>html.theme--documenter-dark .column.is-5{flex:none;width:41.66666674%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-5{margin-left:41.66666674%}.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.33333337%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-7{margin-left:58.33333337%}.columns.is-mobile>html.theme--documenter-dark .column.is-8{flex:none;width:66.66666674%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-8{margin-left:66.66666674%}.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.33333337%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-10{margin-left:83.33333337%}.columns.is-mobile>html.theme--documenter-dark .column.is-11{flex:none;width:91.66666674%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-11{margin-left:91.66666674%}.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;width:unset}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.33333337%}html.theme--documenter-dark .column.is-offset-1-mobile{margin-left:8.33333337%}html.theme--documenter-dark .column.is-2-mobile{flex:none;width:16.66666674%}html.theme--documenter-dark .column.is-offset-2-mobile{margin-left:16.66666674%}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.33333337%}html.theme--documenter-dark .column.is-offset-4-mobile{margin-left:33.33333337%}html.theme--documenter-dark .column.is-5-mobile{flex:none;width:41.66666674%}html.theme--documenter-dark .column.is-offset-5-mobile{margin-left:41.66666674%}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.33333337%}html.theme--documenter-dark .column.is-offset-7-mobile{margin-left:58.33333337%}html.theme--documenter-dark .column.is-8-mobile{flex:none;width:66.66666674%}html.theme--documenter-dark .column.is-offset-8-mobile{margin-left:66.66666674%}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.33333337%}html.theme--documenter-dark .column.is-offset-10-mobile{margin-left:83.33333337%}html.theme--documenter-dark .column.is-11-mobile{flex:none;width:91.66666674%}html.theme--documenter-dark .column.is-offset-11-mobile{margin-left:91.66666674%}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;width:unset}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.33333337%}html.theme--documenter-dark .column.is-offset-1,html.theme--documenter-dark .column.is-offset-1-tablet{margin-left:8.33333337%}html.theme--documenter-dark .column.is-2,html.theme--documenter-dark .column.is-2-tablet{flex:none;width:16.66666674%}html.theme--documenter-dark .column.is-offset-2,html.theme--documenter-dark .column.is-offset-2-tablet{margin-left:16.66666674%}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.33333337%}html.theme--documenter-dark .column.is-offset-4,html.theme--documenter-dark .column.is-offset-4-tablet{margin-left:33.33333337%}html.theme--documenter-dark .column.is-5,html.theme--documenter-dark .column.is-5-tablet{flex:none;width:41.66666674%}html.theme--documenter-dark .column.is-offset-5,html.theme--documenter-dark .column.is-offset-5-tablet{margin-left:41.66666674%}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.33333337%}html.theme--documenter-dark .column.is-offset-7,html.theme--documenter-dark .column.is-offset-7-tablet{margin-left:58.33333337%}html.theme--documenter-dark .column.is-8,html.theme--documenter-dark .column.is-8-tablet{flex:none;width:66.66666674%}html.theme--documenter-dark .column.is-offset-8,html.theme--documenter-dark .column.is-offset-8-tablet{margin-left:66.66666674%}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.33333337%}html.theme--documenter-dark .column.is-offset-10,html.theme--documenter-dark .column.is-offset-10-tablet{margin-left:83.33333337%}html.theme--documenter-dark .column.is-11,html.theme--documenter-dark .column.is-11-tablet{flex:none;width:91.66666674%}html.theme--documenter-dark .column.is-offset-11,html.theme--documenter-dark .column.is-offset-11-tablet{margin-left:91.66666674%}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;width:unset}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.33333337%}html.theme--documenter-dark .column.is-offset-1-touch{margin-left:8.33333337%}html.theme--documenter-dark .column.is-2-touch{flex:none;width:16.66666674%}html.theme--documenter-dark .column.is-offset-2-touch{margin-left:16.66666674%}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.33333337%}html.theme--documenter-dark .column.is-offset-4-touch{margin-left:33.33333337%}html.theme--documenter-dark .column.is-5-touch{flex:none;width:41.66666674%}html.theme--documenter-dark .column.is-offset-5-touch{margin-left:41.66666674%}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.33333337%}html.theme--documenter-dark .column.is-offset-7-touch{margin-left:58.33333337%}html.theme--documenter-dark .column.is-8-touch{flex:none;width:66.66666674%}html.theme--documenter-dark .column.is-offset-8-touch{margin-left:66.66666674%}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.33333337%}html.theme--documenter-dark .column.is-offset-10-touch{margin-left:83.33333337%}html.theme--documenter-dark .column.is-11-touch{flex:none;width:91.66666674%}html.theme--documenter-dark .column.is-offset-11-touch{margin-left:91.66666674%}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;width:unset}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.33333337%}html.theme--documenter-dark .column.is-offset-1-desktop{margin-left:8.33333337%}html.theme--documenter-dark .column.is-2-desktop{flex:none;width:16.66666674%}html.theme--documenter-dark .column.is-offset-2-desktop{margin-left:16.66666674%}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.33333337%}html.theme--documenter-dark .column.is-offset-4-desktop{margin-left:33.33333337%}html.theme--documenter-dark .column.is-5-desktop{flex:none;width:41.66666674%}html.theme--documenter-dark .column.is-offset-5-desktop{margin-left:41.66666674%}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.33333337%}html.theme--documenter-dark .column.is-offset-7-desktop{margin-left:58.33333337%}html.theme--documenter-dark .column.is-8-desktop{flex:none;width:66.66666674%}html.theme--documenter-dark .column.is-offset-8-desktop{margin-left:66.66666674%}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.33333337%}html.theme--documenter-dark .column.is-offset-10-desktop{margin-left:83.33333337%}html.theme--documenter-dark .column.is-11-desktop{flex:none;width:91.66666674%}html.theme--documenter-dark .column.is-offset-11-desktop{margin-left:91.66666674%}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;width:unset}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.33333337%}html.theme--documenter-dark .column.is-offset-1-widescreen{margin-left:8.33333337%}html.theme--documenter-dark .column.is-2-widescreen{flex:none;width:16.66666674%}html.theme--documenter-dark .column.is-offset-2-widescreen{margin-left:16.66666674%}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.33333337%}html.theme--documenter-dark .column.is-offset-4-widescreen{margin-left:33.33333337%}html.theme--documenter-dark .column.is-5-widescreen{flex:none;width:41.66666674%}html.theme--documenter-dark .column.is-offset-5-widescreen{margin-left:41.66666674%}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.33333337%}html.theme--documenter-dark .column.is-offset-7-widescreen{margin-left:58.33333337%}html.theme--documenter-dark .column.is-8-widescreen{flex:none;width:66.66666674%}html.theme--documenter-dark .column.is-offset-8-widescreen{margin-left:66.66666674%}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.33333337%}html.theme--documenter-dark .column.is-offset-10-widescreen{margin-left:83.33333337%}html.theme--documenter-dark .column.is-11-widescreen{flex:none;width:91.66666674%}html.theme--documenter-dark .column.is-offset-11-widescreen{margin-left:91.66666674%}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;width:unset}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.33333337%}html.theme--documenter-dark .column.is-offset-1-fullhd{margin-left:8.33333337%}html.theme--documenter-dark .column.is-2-fullhd{flex:none;width:16.66666674%}html.theme--documenter-dark .column.is-offset-2-fullhd{margin-left:16.66666674%}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.33333337%}html.theme--documenter-dark .column.is-offset-4-fullhd{margin-left:33.33333337%}html.theme--documenter-dark .column.is-5-fullhd{flex:none;width:41.66666674%}html.theme--documenter-dark .column.is-offset-5-fullhd{margin-left:41.66666674%}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.33333337%}html.theme--documenter-dark .column.is-offset-7-fullhd{margin-left:58.33333337%}html.theme--documenter-dark .column.is-8-fullhd{flex:none;width:66.66666674%}html.theme--documenter-dark .column.is-offset-8-fullhd{margin-left:66.66666674%}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.33333337%}html.theme--documenter-dark .column.is-offset-10-fullhd{margin-left:83.33333337%}html.theme--documenter-dark .column.is-11-fullhd{flex:none;width:91.66666674%}html.theme--documenter-dark .column.is-offset-11-fullhd{margin-left:91.66666674%}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.33333337%}html.theme--documenter-dark .tile.is-2{flex:none;width:16.66666674%}html.theme--documenter-dark .tile.is-3{flex:none;width:25%}html.theme--documenter-dark .tile.is-4{flex:none;width:33.33333337%}html.theme--documenter-dark .tile.is-5{flex:none;width:41.66666674%}html.theme--documenter-dark .tile.is-6{flex:none;width:50%}html.theme--documenter-dark .tile.is-7{flex:none;width:58.33333337%}html.theme--documenter-dark .tile.is-8{flex:none;width:66.66666674%}html.theme--documenter-dark .tile.is-9{flex:none;width:75%}html.theme--documenter-dark .tile.is-10{flex:none;width:83.33333337%}html.theme--documenter-dark .tile.is-11{flex:none;width:91.66666674%}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{color:#fff !important;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{color:#0a0a0a !important;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:rgba(0,0,0,0.7)}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:rgba(0,0,0,0.7)}html.theme--documenter-dark .hero.is-light .subtitle{color:rgba(0,0,0,0.9)}html.theme--documenter-dark .hero.is-light .subtitle a:not(.button),html.theme--documenter-dark .hero.is-light .subtitle strong{color:rgba(0,0,0,0.7)}@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(0,0,0,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:rgba(0,0,0,0.7)}html.theme--documenter-dark .hero.is-light .tabs a{color:rgba(0,0,0,0.7);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{color:#ecf0f1 !important;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:rgba(0,0,0,0.7)}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:rgba(0,0,0,0.7);border-color:rgba(0,0,0,0.7);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:#fff}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:#fff}html.theme--documenter-dark .hero.is-dark .subtitle,html.theme--documenter-dark .content kbd.hero .subtitle{color:rgba(255,255,255,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:#fff}@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(255,255,255,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:#fff}html.theme--documenter-dark .hero.is-dark .tabs a,html.theme--documenter-dark .content kbd.hero .tabs a{color:#fff;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{color:#282f2f !important;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:#fff}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:#fff;border-color:#fff;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{color:#375a7f !important;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{color:#1abc9c !important;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{color:#024c7d !important;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{color:#008438 !important;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{color:#ad8100 !important;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{color:#9e1b0d !important;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:1.5rem}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero.is-medium .hero-body{padding:9rem 4.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero.is-large .hero-body{padding:18rem 6rem}}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}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero-body{padding:3rem 3rem}}html.theme--documenter-dark .section{padding:3rem 1.5rem}@media screen and (min-width: 1056px){html.theme--documenter-dark .section{padding:3rem 3rem}html.theme--documenter-dark .section.is-medium{padding:9rem 4.5rem}html.theme--documenter-dark .section.is-large{padding:18rem 6rem}}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:rgba(0,0,0,0.7);text-decoration:underline}html.theme--documenter-dark .notification.is-dark a:not(.button),html.theme--documenter-dark .content kbd.notification a:not(.button){color:#fff;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 6 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 6 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:1rem}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:.75rem}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 6 Free";font-weight:900;margin-right:.75rem;content:"\f06a"}html.theme--documenter-dark details.admonition.is-details>.admonition-header{list-style:none}html.theme--documenter-dark details.admonition.is-details>.admonition-header:before{font-family:"Font Awesome 6 Free";font-weight:900;content:"\f055"}html.theme--documenter-dark details.admonition.is-details[open]>.admonition-header:before{font-family:"Font Awesome 6 Free";font-weight:900;content:"\f056"}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{cursor:pointer;display:flex;flex-grow:1;align-items:stretch;padding:0.5rem .75rem;background-color:#282f2f;box-shadow:0 0.125em 0.25em rgba(10,10,10,0.1);box-shadow:none;border-bottom:1px solid #5e6d6f;overflow:auto}html.theme--documenter-dark .docstring>header code{background-color:transparent}html.theme--documenter-dark .docstring>header .docstring-article-toggle-button{min-width:1.1rem;padding:0.2rem 0.2rem 0.2rem 0}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;overflow-x:hidden}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-sidebar-button{display:block;font-size:1.5rem;padding-bottom:0.1rem;margin-right:1rem}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right{display:flex;white-space:nowrap;gap:1rem;align-items:center}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{display:inline-block}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label{padding:0;margin-left:0.3em}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-navbar-link{margin-left:0.4rem;margin-right:0.4rem}}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:1rem;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:.95rem;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:.75rem;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 6 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:.85rem;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}html.theme--documenter-dark #documenter .docs-sidebar #documenter-search-query{color:#868c98;width:14.4rem;box-shadow:inset 0 1px 2px rgba(10,10,10,0.1)}@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 kbd.search-modal-key-hints{border-radius:0.25rem;border:1px solid rgba(245,245,245,0.6);box-shadow:0 2px 0 1px rgba(245,245,245,0.6);cursor:default;font-size:0.9rem;line-height:1.5;min-width:0.75rem;text-align:center;padding:0.1rem 0.3rem;position:relative;top:-1px}html.theme--documenter-dark .search-min-width-50{min-width:50%}html.theme--documenter-dark .search-min-height-100{min-height:100%}html.theme--documenter-dark .search-modal-card-body{max-height:calc(100vh - 15rem)}html.theme--documenter-dark .search-result-link{border-radius:0.7em;transition:all 300ms}html.theme--documenter-dark .search-result-link:hover,html.theme--documenter-dark .search-result-link:focus{background-color:rgba(0,128,128,0.1)}html.theme--documenter-dark .search-result-link .property-search-result-badge,html.theme--documenter-dark .search-result-link .search-filter{transition:all 300ms}html.theme--documenter-dark .property-search-result-badge,html.theme--documenter-dark .search-filter{padding:0.15em 0.5em;font-size:0.8em;font-style:italic;text-transform:none !important;line-height:1.5;color:#f5f5f5;background-color:rgba(51,65,85,0.501961);border-radius:0.6rem}html.theme--documenter-dark .search-result-link:hover .property-search-result-badge,html.theme--documenter-dark .search-result-link:hover .search-filter,html.theme--documenter-dark .search-result-link:focus .property-search-result-badge,html.theme--documenter-dark .search-result-link:focus .search-filter{color:#333;background-color:#f1f5f9}html.theme--documenter-dark .search-filter{color:#333;background-color:#f5f5f5;transition:all 300ms}html.theme--documenter-dark .search-filter:hover,html.theme--documenter-dark .search-filter:focus{color:#333}html.theme--documenter-dark .search-filter-selected{color:#f5f5f5;background-color:rgba(139,0,139,0.5)}html.theme--documenter-dark .search-filter-selected:hover,html.theme--documenter-dark .search-filter-selected:focus{color:#f5f5f5}html.theme--documenter-dark .search-result-highlight{background-color:#ffdd57;color:black}html.theme--documenter-dark .search-divider{border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .search-result-title{width:85%;color:#f5f5f5}html.theme--documenter-dark .search-result-code-title{font-size:0.875rem;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}html.theme--documenter-dark #search-modal .modal-card-body::-webkit-scrollbar,html.theme--documenter-dark #search-modal .filter-tabs::-webkit-scrollbar{height:10px;width:10px;background-color:transparent}html.theme--documenter-dark #search-modal .modal-card-body::-webkit-scrollbar-thumb,html.theme--documenter-dark #search-modal .filter-tabs::-webkit-scrollbar-thumb{background-color:gray;border-radius:1rem}html.theme--documenter-dark #search-modal .modal-card-body::-webkit-scrollbar-track,html.theme--documenter-dark #search-modal .filter-tabs::-webkit-scrollbar-track{-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,0.6);background-color:transparent}html.theme--documenter-dark .w-100{width:100%}html.theme--documenter-dark .gap-2{gap:0.5rem}html.theme--documenter-dark .gap-4{gap:1rem}html.theme--documenter-dark .gap-8{gap:2rem}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}html.theme--documenter-dark .search-result-link{border-radius:0.7em;transition:all 300ms}html.theme--documenter-dark .search-result-link:hover,html.theme--documenter-dark .search-result-link:focus{background-color:rgba(0,128,128,0.1)}html.theme--documenter-dark .search-result-link .property-search-result-badge,html.theme--documenter-dark .search-result-link .search-filter{transition:all 300ms}html.theme--documenter-dark .search-result-link:hover .property-search-result-badge,html.theme--documenter-dark .search-result-link:hover .search-filter,html.theme--documenter-dark .search-result-link:focus .property-search-result-badge,html.theme--documenter-dark .search-result-link:focus .search-filter{color:#333 !important;background-color:#f1f5f9 !important}html.theme--documenter-dark .search-result-title{color:whitesmoke}html.theme--documenter-dark .search-result-highlight{background-color:greenyellow;color:black}html.theme--documenter-dark .search-divider{border-bottom:1px solid #5e6d6f50}html.theme--documenter-dark .w-100{width:100%}html.theme--documenter-dark .gap-2{gap:0.5rem}html.theme--documenter-dark .gap-4{gap:1rem} diff --git a/previews/PR273/assets/themes/documenter-light.css b/previews/PR273/assets/themes/documenter-light.css new file mode 100644 index 000000000..2f168c77b --- /dev/null +++ b/previews/PR273/assets/themes/documenter-light.css @@ -0,0 +1,9 @@ +.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.5em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(0.5em - 1px);padding-left:calc(0.75em - 1px);padding-right:calc(0.75em - 1px);padding-top:calc(0.5em - 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}.tabs,.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis,.breadcrumb,.file,.button,.is-unselectable{-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),.pagination:not(:last-child),.message:not(:last-child),.level:not(:last-child),.breadcrumb: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{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:9999px;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:9999px;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}.navbar-burger{-moz-appearance:none;-webkit-appearance:none;appearance:none;background:none;border:none;color:currentColor;font-family:inherit;font-size:1em;margin:0;padding:0}.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-primary-light{color:#eef8fc !important}a.has-text-primary-light:hover,a.has-text-primary-light:focus{color:#c3e6f4 !important}.has-background-primary-light{background-color:#eef8fc !important}.has-text-primary-dark{color:#1a6d8e !important}a.has-text-primary-dark:hover,a.has-text-primary-dark:focus{color:#228eb9 !important}.has-background-primary-dark{background-color:#1a6d8e !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-link-light{color:#eff3fb !important}a.has-text-link-light:hover,a.has-text-link-light:focus{color:#c6d6f1 !important}.has-background-link-light{background-color:#eff3fb !important}.has-text-link-dark{color:#3169c4 !important}a.has-text-link-dark:hover,a.has-text-link-dark:focus{color:#5485d4 !important}.has-background-link-dark{background-color:#3169c4 !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-info-light{color:#ecf7fe !important}a.has-text-info-light:hover,a.has-text-info-light:focus{color:#bde2fa !important}.has-background-info-light{background-color:#ecf7fe !important}.has-text-info-dark{color:#0e72b4 !important}a.has-text-info-dark:hover,a.has-text-info-dark:focus{color:#1190e3 !important}.has-background-info-dark{background-color:#0e72b4 !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-success-light{color:#eefcf3 !important}a.has-text-success-light:hover,a.has-text-success-light:focus{color:#c2f4d4 !important}.has-background-success-light{background-color:#eefcf3 !important}.has-text-success-dark{color:#198f43 !important}a.has-text-success-dark:hover,a.has-text-success-dark:focus{color:#21bb57 !important}.has-background-success-dark{background-color:#198f43 !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-warning-light{color:#fffbeb !important}a.has-text-warning-light:hover,a.has-text-warning-light:focus{color:#fff1b8 !important}.has-background-warning-light{background-color:#fffbeb !important}.has-text-warning-dark{color:#947600 !important}a.has-text-warning-dark:hover,a.has-text-warning-dark:focus{color:#c79f00 !important}.has-background-warning-dark{background-color:#947600 !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-danger-light{color:#ffeceb !important}a.has-text-danger-light:hover,a.has-text-danger-light:focus{color:#ffbbb8 !important}.has-background-danger-light{background-color:#ffeceb !important}.has-text-danger-dark{color:#f50c00 !important}a.has-text-danger-dark:hover,a.has-text-danger-dark:focus{color:#ff3429 !important}.has-background-danger-dark{background-color:#f50c00 !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}.is-flex-direction-row{flex-direction:row !important}.is-flex-direction-row-reverse{flex-direction:row-reverse !important}.is-flex-direction-column{flex-direction:column !important}.is-flex-direction-column-reverse{flex-direction:column-reverse !important}.is-flex-wrap-nowrap{flex-wrap:nowrap !important}.is-flex-wrap-wrap{flex-wrap:wrap !important}.is-flex-wrap-wrap-reverse{flex-wrap:wrap-reverse !important}.is-justify-content-flex-start{justify-content:flex-start !important}.is-justify-content-flex-end{justify-content:flex-end !important}.is-justify-content-center{justify-content:center !important}.is-justify-content-space-between{justify-content:space-between !important}.is-justify-content-space-around{justify-content:space-around !important}.is-justify-content-space-evenly{justify-content:space-evenly !important}.is-justify-content-start{justify-content:start !important}.is-justify-content-end{justify-content:end !important}.is-justify-content-left{justify-content:left !important}.is-justify-content-right{justify-content:right !important}.is-align-content-flex-start{align-content:flex-start !important}.is-align-content-flex-end{align-content:flex-end !important}.is-align-content-center{align-content:center !important}.is-align-content-space-between{align-content:space-between !important}.is-align-content-space-around{align-content:space-around !important}.is-align-content-space-evenly{align-content:space-evenly !important}.is-align-content-stretch{align-content:stretch !important}.is-align-content-start{align-content:start !important}.is-align-content-end{align-content:end !important}.is-align-content-baseline{align-content:baseline !important}.is-align-items-stretch{align-items:stretch !important}.is-align-items-flex-start{align-items:flex-start !important}.is-align-items-flex-end{align-items:flex-end !important}.is-align-items-center{align-items:center !important}.is-align-items-baseline{align-items:baseline !important}.is-align-items-start{align-items:start !important}.is-align-items-end{align-items:end !important}.is-align-items-self-start{align-items:self-start !important}.is-align-items-self-end{align-items:self-end !important}.is-align-self-auto{align-self:auto !important}.is-align-self-flex-start{align-self:flex-start !important}.is-align-self-flex-end{align-self:flex-end !important}.is-align-self-center{align-self:center !important}.is-align-self-baseline{align-self:baseline !important}.is-align-self-stretch{align-self:stretch !important}.is-flex-grow-0{flex-grow:0 !important}.is-flex-grow-1{flex-grow:1 !important}.is-flex-grow-2{flex-grow:2 !important}.is-flex-grow-3{flex-grow:3 !important}.is-flex-grow-4{flex-grow:4 !important}.is-flex-grow-5{flex-grow:5 !important}.is-flex-shrink-0{flex-shrink:0 !important}.is-flex-shrink-1{flex-shrink:1 !important}.is-flex-shrink-2{flex-shrink:2 !important}.is-flex-shrink-3{flex-shrink:3 !important}.is-flex-shrink-4{flex-shrink:4 !important}.is-flex-shrink-5{flex-shrink:5 !important}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left !important}.is-pulled-right{float:right !important}.is-radiusless{border-radius:0 !important}.is-shadowless{box-shadow:none !important}.is-clickable{cursor:pointer !important;pointer-events:all !important}.is-clipped{overflow:hidden !important}.is-relative{position:relative !important}.is-marginless{margin:0 !important}.is-paddingless{padding:0 !important}.m-0{margin:0 !important}.mt-0{margin-top:0 !important}.mr-0{margin-right:0 !important}.mb-0{margin-bottom:0 !important}.ml-0{margin-left:0 !important}.mx-0{margin-left:0 !important;margin-right:0 !important}.my-0{margin-top:0 !important;margin-bottom:0 !important}.m-1{margin:.25rem !important}.mt-1{margin-top:.25rem !important}.mr-1{margin-right:.25rem !important}.mb-1{margin-bottom:.25rem !important}.ml-1{margin-left:.25rem !important}.mx-1{margin-left:.25rem !important;margin-right:.25rem !important}.my-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.m-2{margin:.5rem !important}.mt-2{margin-top:.5rem !important}.mr-2{margin-right:.5rem !important}.mb-2{margin-bottom:.5rem !important}.ml-2{margin-left:.5rem !important}.mx-2{margin-left:.5rem !important;margin-right:.5rem !important}.my-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.m-3{margin:.75rem !important}.mt-3{margin-top:.75rem !important}.mr-3{margin-right:.75rem !important}.mb-3{margin-bottom:.75rem !important}.ml-3{margin-left:.75rem !important}.mx-3{margin-left:.75rem !important;margin-right:.75rem !important}.my-3{margin-top:.75rem !important;margin-bottom:.75rem !important}.m-4{margin:1rem !important}.mt-4{margin-top:1rem !important}.mr-4{margin-right:1rem !important}.mb-4{margin-bottom:1rem !important}.ml-4{margin-left:1rem !important}.mx-4{margin-left:1rem !important;margin-right:1rem !important}.my-4{margin-top:1rem !important;margin-bottom:1rem !important}.m-5{margin:1.5rem !important}.mt-5{margin-top:1.5rem !important}.mr-5{margin-right:1.5rem !important}.mb-5{margin-bottom:1.5rem !important}.ml-5{margin-left:1.5rem !important}.mx-5{margin-left:1.5rem !important;margin-right:1.5rem !important}.my-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.m-6{margin:3rem !important}.mt-6{margin-top:3rem !important}.mr-6{margin-right:3rem !important}.mb-6{margin-bottom:3rem !important}.ml-6{margin-left:3rem !important}.mx-6{margin-left:3rem !important;margin-right:3rem !important}.my-6{margin-top:3rem !important;margin-bottom:3rem !important}.m-auto{margin:auto !important}.mt-auto{margin-top:auto !important}.mr-auto{margin-right:auto !important}.mb-auto{margin-bottom:auto !important}.ml-auto{margin-left:auto !important}.mx-auto{margin-left:auto !important;margin-right:auto !important}.my-auto{margin-top:auto !important;margin-bottom:auto !important}.p-0{padding:0 !important}.pt-0{padding-top:0 !important}.pr-0{padding-right:0 !important}.pb-0{padding-bottom:0 !important}.pl-0{padding-left:0 !important}.px-0{padding-left:0 !important;padding-right:0 !important}.py-0{padding-top:0 !important;padding-bottom:0 !important}.p-1{padding:.25rem !important}.pt-1{padding-top:.25rem !important}.pr-1{padding-right:.25rem !important}.pb-1{padding-bottom:.25rem !important}.pl-1{padding-left:.25rem !important}.px-1{padding-left:.25rem !important;padding-right:.25rem !important}.py-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.p-2{padding:.5rem !important}.pt-2{padding-top:.5rem !important}.pr-2{padding-right:.5rem !important}.pb-2{padding-bottom:.5rem !important}.pl-2{padding-left:.5rem !important}.px-2{padding-left:.5rem !important;padding-right:.5rem !important}.py-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.p-3{padding:.75rem !important}.pt-3{padding-top:.75rem !important}.pr-3{padding-right:.75rem !important}.pb-3{padding-bottom:.75rem !important}.pl-3{padding-left:.75rem !important}.px-3{padding-left:.75rem !important;padding-right:.75rem !important}.py-3{padding-top:.75rem !important;padding-bottom:.75rem !important}.p-4{padding:1rem !important}.pt-4{padding-top:1rem !important}.pr-4{padding-right:1rem !important}.pb-4{padding-bottom:1rem !important}.pl-4{padding-left:1rem !important}.px-4{padding-left:1rem !important;padding-right:1rem !important}.py-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-5{padding:1.5rem !important}.pt-5{padding-top:1.5rem !important}.pr-5{padding-right:1.5rem !important}.pb-5{padding-bottom:1.5rem !important}.pl-5{padding-left:1.5rem !important}.px-5{padding-left:1.5rem !important;padding-right:1.5rem !important}.py-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-6{padding:3rem !important}.pt-6{padding-top:3rem !important}.pr-6{padding-right:3rem !important}.pb-6{padding-bottom:3rem !important}.pl-6{padding-left:3rem !important}.px-6{padding-left:3rem !important;padding-right:3rem !important}.py-6{padding-top:3rem !important;padding-bottom:3rem !important}.p-auto{padding:auto !important}.pt-auto{padding-top:auto !important}.pr-auto{padding-right:auto !important}.pb-auto{padding-bottom:auto !important}.pl-auto{padding-left:auto !important}.px-auto{padding-left:auto !important;padding-right:auto !important}.py-auto{padding-top:auto !important;padding-bottom:auto !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}.is-underlined{text-decoration:underline !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}}/*! minireset.css v0.0.6 | 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,video{height:auto;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:inherit}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,optgroup,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:inherit}table th{color:#222}@keyframes spinAround{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}.box{background-color:#fff;border-radius:6px;box-shadow:#bbb;color:#222;display:block;padding:1.25rem}a.box:hover,a.box:focus{box-shadow:0 0.5em 1em -0.125em 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:#222;cursor:pointer;justify-content:center;padding-bottom:calc(0.5em - 1px);padding-left:1em;padding-right:1em;padding-top:calc(0.5em - 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.5em - 1px);margin-right:.25em}.button .icon:last-child:not(:first-child){margin-left:.25em;margin-right:calc(-0.5em - 1px)}.button .icon:first-child:last-child{margin-left:calc(-0.5em - 1px);margin-right:calc(-0.5em - 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-ghost{background:none;border-color:rgba(0,0,0,0);color:#2e63b8;text-decoration:none}.button.is-ghost:hover,.button.is-ghost.is-hovered{color:#2e63b8;text-decoration:underline}.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:#fff;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:#0a0a0a;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:rgba(0,0,0,0.7)}.button.is-light:hover,.button.is-light.is-hovered{background-color:#eee;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-light:focus,.button.is-light.is-focused{border-color:transparent;color:rgba(0,0,0,0.7)}.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:rgba(0,0,0,0.7)}.button.is-light[disabled],fieldset[disabled] .button.is-light{background-color:#f5f5f5;border-color:#f5f5f5;box-shadow:none}.button.is-light.is-inverted{background-color:rgba(0,0,0,0.7);color:#f5f5f5}.button.is-light.is-inverted:hover,.button.is-light.is-inverted.is-hovered{background-color:rgba(0,0,0,0.7)}.button.is-light.is-inverted[disabled],fieldset[disabled] .button.is-light.is-inverted{background-color:rgba(0,0,0,0.7);border-color:transparent;box-shadow:none;color:#f5f5f5}.button.is-light.is-loading::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !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:rgba(0,0,0,0.7)}.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 rgba(0,0,0,0.7) rgba(0,0,0,0.7) !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:rgba(0,0,0,0.7);color:rgba(0,0,0,0.7)}.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:rgba(0,0,0,0.7);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:rgba(0,0,0,0.7);box-shadow:none;color:rgba(0,0,0,0.7)}.button.is-dark,.content kbd.button{background-color:#363636;border-color:transparent;color:#fff}.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:#fff}.button.is-dark:focus,.content kbd.button:focus,.button.is-dark.is-focused,.content kbd.button.is-focused{border-color:transparent;color:#fff}.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:#fff}.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:#363636;box-shadow:none}.button.is-dark.is-inverted,.content kbd.button.is-inverted{background-color:#fff;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:#f2f2f2}.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:#fff;border-color:transparent;box-shadow:none;color:#363636}.button.is-dark.is-loading::after,.content kbd.button.is-loading::after{border-color:transparent transparent #fff #fff !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:#fff}.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 #fff #fff !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:#fff;color:#fff}.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:#fff;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:#fff;box-shadow:none;color:#fff}.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:#4eb5de;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-primary.is-light,.docstring>section>a.button.is-light.docs-sourcelink{background-color:#eef8fc;color:#1a6d8e}.button.is-primary.is-light:hover,.docstring>section>a.button.is-light.docs-sourcelink:hover,.button.is-primary.is-light.is-hovered,.docstring>section>a.button.is-light.is-hovered.docs-sourcelink{background-color:#e3f3fa;border-color:transparent;color:#1a6d8e}.button.is-primary.is-light:active,.docstring>section>a.button.is-light.docs-sourcelink:active,.button.is-primary.is-light.is-active,.docstring>section>a.button.is-light.is-active.docs-sourcelink{background-color:#d8eff8;border-color:transparent;color:#1a6d8e}.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:#2e63b8;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-link.is-light{background-color:#eff3fb;color:#3169c4}.button.is-link.is-light:hover,.button.is-link.is-light.is-hovered{background-color:#e4ecf8;border-color:transparent;color:#3169c4}.button.is-link.is-light:active,.button.is-link.is-light.is-active{background-color:#dae5f6;border-color:transparent;color:#3169c4}.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:#209cee;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-info.is-light{background-color:#ecf7fe;color:#0e72b4}.button.is-info.is-light:hover,.button.is-info.is-light.is-hovered{background-color:#e0f1fd;border-color:transparent;color:#0e72b4}.button.is-info.is-light:active,.button.is-info.is-light.is-active{background-color:#d4ecfc;border-color:transparent;color:#0e72b4}.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:#22c35b;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-success.is-light{background-color:#eefcf3;color:#198f43}.button.is-success.is-light:hover,.button.is-success.is-light.is-hovered{background-color:#e3faeb;border-color:transparent;color:#198f43}.button.is-success.is-light:active,.button.is-success.is-light.is-active{background-color:#d8f8e3;border-color:transparent;color:#198f43}.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:#ffdd57;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-warning.is-light{background-color:#fffbeb;color:#947600}.button.is-warning.is-light:hover,.button.is-warning.is-light.is-hovered{background-color:#fff8de;border-color:transparent;color:#947600}.button.is-warning.is-light:active,.button.is-warning.is-light.is-active{background-color:#fff6d1;border-color:transparent;color:#947600}.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:#da0b00;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-danger.is-light{background-color:#ffeceb;color:#f50c00}.button.is-danger.is-light:hover,.button.is-danger.is-light.is-hovered{background-color:#ffe0de;border-color:transparent;color:#f50c00}.button.is-danger.is-light:active,.button.is-danger.is-light.is-active{background-color:#ffd3d1;border-color:transparent;color:#f50c00}.button.is-small,#documenter .docs-sidebar form.docs-search>input.button{font-size:.75rem}.button.is-small:not(.is-rounded),#documenter .docs-sidebar form.docs-search>input.button:not(.is-rounded){border-radius:2px}.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 * 0.5));top:calc(50% - (1em * 0.5));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:9999px;padding-left:calc(1em + 0.25em);padding-right:calc(1em + 0.25em)}.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:.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){font-size:.75rem}.buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large):not(.is-rounded){border-radius:2px}.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}@media screen and (max-width: 768px){.button.is-responsive.is-small,#documenter .docs-sidebar form.docs-search>input.is-responsive{font-size:.5625rem}.button.is-responsive,.button.is-responsive.is-normal{font-size:.65625rem}.button.is-responsive.is-medium{font-size:.75rem}.button.is-responsive.is-large{font-size:1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.button.is-responsive.is-small,#documenter .docs-sidebar form.docs-search>input.is-responsive{font-size:.65625rem}.button.is-responsive,.button.is-responsive.is-normal{font-size:.75rem}.button.is-responsive.is-medium{font-size:1rem}.button.is-responsive.is-large{font-size:1.25rem}}.container{flex-grow:1;margin:0 auto;position:relative;width:auto}.container.is-fluid{max-width:none !important;padding-left:32px;padding-right:32px;width:100%}@media screen and (min-width: 1056px){.container{max-width:992px}}@media screen and (max-width: 1215px){.container.is-widescreen:not(.is-max-desktop){max-width:1152px}}@media screen and (max-width: 1407px){.container.is-fullhd:not(.is-max-desktop):not(.is-max-widescreen){max-width:1344px}}@media screen and (min-width: 1216px){.container:not(.is-max-desktop){max-width:1152px}}@media screen and (min-width: 1408px){.container:not(.is-max-desktop):not(.is-max-widescreen){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:inherit}.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-normal{font-size:1rem}.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}.icon-text{align-items:flex-start;color:inherit;display:inline-flex;flex-wrap:wrap;line-height:1.5rem;vertical-align:top}.icon-text .icon{flex-grow:0;flex-shrink:0}.icon-text .icon:not(:last-child){margin-right:.25em}.icon-text .icon:not(:first-child){margin-left:.25em}div.icon-text{display:flex}.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:9999px}.image.is-fullwidth,#documenter .docs-sidebar .docs-logo>img.is-fullwidth{width:100%}.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;position:relative;padding:1.25rem 2.5rem 1.25rem 1.5rem}.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{right:.5rem;position:absolute;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:rgba(0,0,0,0.7)}.notification.is-dark,.content kbd.notification{background-color:#363636;color:#fff}.notification.is-primary,.docstring>section>a.notification.docs-sourcelink{background-color:#4eb5de;color:#fff}.notification.is-primary.is-light,.docstring>section>a.notification.is-light.docs-sourcelink{background-color:#eef8fc;color:#1a6d8e}.notification.is-link{background-color:#2e63b8;color:#fff}.notification.is-link.is-light{background-color:#eff3fb;color:#3169c4}.notification.is-info{background-color:#209cee;color:#fff}.notification.is-info.is-light{background-color:#ecf7fe;color:#0e72b4}.notification.is-success{background-color:#22c35b;color:#fff}.notification.is-success.is-light{background-color:#eefcf3;color:#198f43}.notification.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.notification.is-warning.is-light{background-color:#fffbeb;color:#947600}.notification.is-danger{background-color:#da0b00;color:#fff}.notification.is-danger.is-light{background-color:#ffeceb;color:#f50c00}.progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:9999px;display:block;height:1rem;overflow:hidden;padding:0;width:100%}.progress::-webkit-progress-bar{background-color:#ededed}.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%, #ededed 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%, #ededed 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%, #ededed 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%, #ededed 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%, #ededed 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%, #ededed 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%, #ededed 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%, #ededed 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%, #ededed 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%, #ededed 30%)}.progress:indeterminate{animation-duration:1.5s;animation-iteration-count:infinite;animation-name:moveIndeterminate;animation-timing-function:linear;background-color:#ededed;background-image:linear-gradient(to right, #222 30%, #ededed 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:indeterminate::-ms-fill{animation-name:none}.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:#222}.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:rgba(0,0,0,0.7)}.table td.is-dark,.table th.is-dark{background-color:#363636;border-color:#363636;color:#fff}.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 td.is-vcentered,.table th.is-vcentered{vertical-align:middle}.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:.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-top-left-radius:0;border-bottom-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-top-right-radius:0;border-bottom-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:.25rem;margin-right:-.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:rgba(0,0,0,0.7)}.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:#fff}.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-primary.is-light:not(body),.content kbd.is-primary.is-light:not(body),.docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#eef8fc;color:#1a6d8e}.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-link.is-light:not(body),.content kbd.is-link.is-light:not(body),.docstring>section>a.docs-sourcelink.is-link.is-light:not(body){background-color:#eff3fb;color:#3169c4}.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-info.is-light:not(body),.content kbd.is-info.is-light:not(body),.docstring>section>a.docs-sourcelink.is-info.is-light:not(body){background-color:#ecf7fe;color:#0e72b4}.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-success.is-light:not(body),.content kbd.is-success.is-light:not(body),.docstring>section>a.docs-sourcelink.is-success.is-light:not(body){background-color:#eefcf3;color:#198f43}.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-warning.is-light:not(body),.content kbd.is-warning.is-light:not(body),.docstring>section>a.docs-sourcelink.is-warning.is-light:not(body){background-color:#fffbeb;color:#947600}.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-danger.is-light:not(body),.content kbd.is-danger.is-light:not(body),.docstring>section>a.docs-sourcelink.is-danger.is-light:not(body){background-color:#ffeceb;color:#f50c00}.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:-.375em;margin-right:.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:.1875em;margin-right:-.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:-.375em;margin-right:-.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:9999px}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:#222;font-size:2rem;font-weight:600;line-height:1.125}.title strong{color:inherit;font-weight:inherit}.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:#222;font-size:1.25rem;font-weight:400;line-height:1.25}.subtitle strong{color:#222;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}.number{align-items:center;background-color:#f5f5f5;border-radius:9999px;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:#222}.select select::-moz-placeholder,.textarea::-moz-placeholder,.input::-moz-placeholder,#documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:#707070}.select select::-webkit-input-placeholder,.textarea::-webkit-input-placeholder,.input::-webkit-input-placeholder,#documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:#707070}.select select:-moz-placeholder,.textarea:-moz-placeholder,.input:-moz-placeholder,#documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:#707070}.select select:-ms-input-placeholder,.textarea:-ms-input-placeholder,.input:-ms-input-placeholder,#documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:#707070}.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 0.0625em 0.125em rgba(10,10,10,0.05);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:9999px;padding-left:calc(calc(0.75em - 1px) + 0.375em);padding-right:calc(calc(0.75em - 1px) + 0.375em)}.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:calc(0.75em - 1px);resize:vertical}.textarea:not([rows]){max-height:40em;min-height:8em}.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:#222}.radio[disabled],.checkbox[disabled],fieldset[disabled] .radio,fieldset[disabled] .checkbox,.radio input[disabled],.checkbox input[disabled]{color:#6b6b6b;cursor:not-allowed}.radio+.radio{margin-left:.5em}.select{display:inline-block;max-width:100%;position:relative;vertical-align:top}.select:not(.is-multiple){height:2.5em}.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:9999px;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:#222}.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 !important;opacity:0.5}.select.is-fullwidth{width:100%}.select.is-fullwidth select{width:100%}.select.is-loading::after{margin-top:0;position:absolute;right:.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:rgba(0,0,0,0.7)}.file.is-light:hover .file-cta,.file.is-light.is-hovered .file-cta{background-color:#eee;border-color:transparent;color:rgba(0,0,0,0.7)}.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:rgba(0,0,0,0.7)}.file.is-light:active .file-cta,.file.is-light.is-active .file-cta{background-color:#e8e8e8;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-dark .file-cta,.content kbd.file .file-cta{background-color:#363636;border-color:transparent;color:#fff}.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:#fff}.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:#fff}.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:#fff}.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-normal{font-size:1rem}.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:#222}.file-label:hover .file-name{border-color:#d5d5d5}.file-label:active .file-cta{background-color:#e8e8e8;color:#222}.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:#222}.file-name{border-color:#dbdbdb;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:inherit;text-overflow:ellipsis}.file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:.5em;width:1em}.file-icon .fa{font-size:14px}.label{color:#222;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:.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:.75rem}}.control{box-sizing:border-box;clear:both;font-size:1rem;position:relative;text-align:inherit}.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:#222}.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.5em;pointer-events:none;position:absolute;top:0;width:2.5em;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.5em}.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.5em}.control.has-icons-right .icon.is-right{right:0}.control.is-loading::after{position:absolute !important;right:.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:.5em}.breadcrumb .icon:last-child{margin-left:.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;border-radius:.25rem;box-shadow:#bbb;color:#222;max-width:100%;position:relative}.card-footer:first-child,.card-content:first-child,.card-header:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card-footer:last-child,.card-content:last-child,.card-header:last-child{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.card-header{background-color:rgba(0,0,0,0);align-items:stretch;box-shadow:0 0.125em 0.25em 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:0.75rem 1rem}.card-header-title.is-centered{justify-content:center}.card-header-icon{-moz-appearance:none;-webkit-appearance:none;appearance:none;background:none;border:none;color:currentColor;font-family:inherit;font-size:1em;margin:0;padding:0;align-items:center;cursor:pointer;display:flex;justify-content:center;padding:0.75rem 1rem}.card-image{display:block;position:relative}.card-image:first-child img{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card-image:last-child img{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.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 #ededed;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 #ededed}.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:#bbb;padding-bottom:.5rem;padding-top:.5rem}.dropdown-item{color:#222;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:inherit;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:#ededed;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}}.media{align-items:flex-start;display:flex;text-align:inherit}.media .content:not(:last-child){margin-bottom:.75rem}.media .media{border-top:1px solid rgba(219,219,219,0.5);display:flex;padding-top:.75rem}.media .media .content:not(:last-child),.media .media .control:not(:last-child){margin-bottom:.5rem}.media .media .media{padding-top:.5rem}.media .media .media+.media{margin-top:.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:inherit}@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}.message.is-black{background-color:#fafafa}.message.is-black .message-header{background-color:#0a0a0a;color:#fff}.message.is-black .message-body{border-color:#0a0a0a}.message.is-light{background-color:#fafafa}.message.is-light .message-header{background-color:#f5f5f5;color:rgba(0,0,0,0.7)}.message.is-light .message-body{border-color:#f5f5f5}.message.is-dark,.content kbd.message{background-color:#fafafa}.message.is-dark .message-header,.content kbd.message .message-header{background-color:#363636;color:#fff}.message.is-dark .message-body,.content kbd.message .message-body{border-color:#363636}.message.is-primary,.docstring>section>a.message.docs-sourcelink{background-color:#eef8fc}.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:#1a6d8e}.message.is-link{background-color:#eff3fb}.message.is-link .message-header{background-color:#2e63b8;color:#fff}.message.is-link .message-body{border-color:#2e63b8;color:#3169c4}.message.is-info{background-color:#ecf7fe}.message.is-info .message-header{background-color:#209cee;color:#fff}.message.is-info .message-body{border-color:#209cee;color:#0e72b4}.message.is-success{background-color:#eefcf3}.message.is-success .message-header{background-color:#22c35b;color:#fff}.message.is-success .message-body{border-color:#22c35b;color:#198f43}.message.is-warning{background-color:#fffbeb}.message.is-warning .message-header{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.message.is-warning .message-body{border-color:#ffdd57;color:#947600}.message.is-danger{background-color:#ffeceb}.message.is-danger .message-header{background-color:#da0b00;color:#fff}.message.is-danger .message-body{border-color:#da0b00;color:#f50c00}.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:.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){.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:.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:rgba(0,0,0,0.7)}.navbar.is-light .navbar-brand>.navbar-item,.navbar.is-light .navbar-brand .navbar-link{color:rgba(0,0,0,0.7)}.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:rgba(0,0,0,0.7)}.navbar.is-light .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,0.7)}.navbar.is-light .navbar-burger{color:rgba(0,0,0,0.7)}@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:rgba(0,0,0,0.7)}.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:rgba(0,0,0,0.7)}.navbar.is-light .navbar-start .navbar-link::after,.navbar.is-light .navbar-end .navbar-link::after{border-color:rgba(0,0,0,0.7)}.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:rgba(0,0,0,0.7)}.navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:rgba(0,0,0,0.7)}}.navbar.is-dark,.content kbd.navbar{background-color:#363636;color:#fff}.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:#fff}.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:#fff}.navbar.is-dark .navbar-brand .navbar-link::after,.content kbd.navbar .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-dark .navbar-burger,.content kbd.navbar .navbar-burger{color:#fff}@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:#fff}.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:#fff}.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:#fff}.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:#fff}.navbar.is-dark .navbar-dropdown a.navbar-item.is-active,.content kbd.navbar .navbar-dropdown a.navbar-item.is-active{background-color:#363636;color:#fff}}.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:#222;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:none;border:none;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:#222;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{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.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:9999px}.pagination.is-rounded .pagination-link,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-link{border-radius:9999px}.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:#222;min-width:2.5em}.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-previous.is-disabled,.pagination-next[disabled],.pagination-next.is-disabled,.pagination-link[disabled],.pagination-link.is-disabled{background-color:#dbdbdb;border-color:#dbdbdb;box-shadow:none;color:#6b6b6b;opacity:0.5}.pagination-previous,.pagination-next{padding-left:.75em;padding-right:.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}.pagination-list li{list-style:none}@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,.pagination-next,.pagination-link,.pagination-ellipsis{margin-bottom:0;margin-top:0}.pagination-previous{order:2}.pagination-next{order:3}.pagination{justify-content:space-between;margin-bottom:0;margin-top:0}.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{border-radius:6px;box-shadow:#bbb;font-size:1rem}.panel:not(:last-child){margin-bottom:1.5rem}.panel.is-white .panel-heading{background-color:#fff;color:#0a0a0a}.panel.is-white .panel-tabs a.is-active{border-bottom-color:#fff}.panel.is-white .panel-block.is-active .panel-icon{color:#fff}.panel.is-black .panel-heading{background-color:#0a0a0a;color:#fff}.panel.is-black .panel-tabs a.is-active{border-bottom-color:#0a0a0a}.panel.is-black .panel-block.is-active .panel-icon{color:#0a0a0a}.panel.is-light .panel-heading{background-color:#f5f5f5;color:rgba(0,0,0,0.7)}.panel.is-light .panel-tabs a.is-active{border-bottom-color:#f5f5f5}.panel.is-light .panel-block.is-active .panel-icon{color:#f5f5f5}.panel.is-dark .panel-heading,.content kbd.panel .panel-heading{background-color:#363636;color:#fff}.panel.is-dark .panel-tabs a.is-active,.content kbd.panel .panel-tabs a.is-active{border-bottom-color:#363636}.panel.is-dark .panel-block.is-active .panel-icon,.content kbd.panel .panel-block.is-active .panel-icon{color:#363636}.panel.is-primary .panel-heading,.docstring>section>a.panel.docs-sourcelink .panel-heading{background-color:#4eb5de;color:#fff}.panel.is-primary .panel-tabs a.is-active,.docstring>section>a.panel.docs-sourcelink .panel-tabs a.is-active{border-bottom-color:#4eb5de}.panel.is-primary .panel-block.is-active .panel-icon,.docstring>section>a.panel.docs-sourcelink .panel-block.is-active .panel-icon{color:#4eb5de}.panel.is-link .panel-heading{background-color:#2e63b8;color:#fff}.panel.is-link .panel-tabs a.is-active{border-bottom-color:#2e63b8}.panel.is-link .panel-block.is-active .panel-icon{color:#2e63b8}.panel.is-info .panel-heading{background-color:#209cee;color:#fff}.panel.is-info .panel-tabs a.is-active{border-bottom-color:#209cee}.panel.is-info .panel-block.is-active .panel-icon{color:#209cee}.panel.is-success .panel-heading{background-color:#22c35b;color:#fff}.panel.is-success .panel-tabs a.is-active{border-bottom-color:#22c35b}.panel.is-success .panel-block.is-active .panel-icon{color:#22c35b}.panel.is-warning .panel-heading{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.panel.is-warning .panel-tabs a.is-active{border-bottom-color:#ffdd57}.panel.is-warning .panel-block.is-active .panel-icon{color:#ffdd57}.panel.is-danger .panel-heading{background-color:#da0b00;color:#fff}.panel.is-danger .panel-tabs a.is-active{border-bottom-color:#da0b00}.panel.is-danger .panel-block.is-active .panel-icon{color:#da0b00}.panel-tabs:not(:last-child),.panel-block:not(:last-child){border-bottom:1px solid #ededed}.panel-heading{background-color:#ededed;border-radius:6px 6px 0 0;color:#222;font-size:1.25em;font-weight:700;line-height:1.25;padding:0.75em 1em}.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:.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}.panel-block:last-child{border-bottom-left-radius:6px;border-bottom-right-radius:6px}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:.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:.5em}.tabs .icon:last-child{margin-left:.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-top-left-radius:4px;border-bottom-left-radius:4px}.tabs.is-toggle li:last-child a{border-top-right-radius:4px;border-bottom-right-radius:4px}.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:9999px;border-top-left-radius:9999px;padding-left:1.25em}.tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:9999px;border-top-right-radius:9999px;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;width:unset}.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.33333337%}.columns.is-mobile>.column.is-offset-1{margin-left:8.33333337%}.columns.is-mobile>.column.is-2{flex:none;width:16.66666674%}.columns.is-mobile>.column.is-offset-2{margin-left:16.66666674%}.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.33333337%}.columns.is-mobile>.column.is-offset-4{margin-left:33.33333337%}.columns.is-mobile>.column.is-5{flex:none;width:41.66666674%}.columns.is-mobile>.column.is-offset-5{margin-left:41.66666674%}.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.33333337%}.columns.is-mobile>.column.is-offset-7{margin-left:58.33333337%}.columns.is-mobile>.column.is-8{flex:none;width:66.66666674%}.columns.is-mobile>.column.is-offset-8{margin-left:66.66666674%}.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.33333337%}.columns.is-mobile>.column.is-offset-10{margin-left:83.33333337%}.columns.is-mobile>.column.is-11{flex:none;width:91.66666674%}.columns.is-mobile>.column.is-offset-11{margin-left:91.66666674%}.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;width:unset}.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.33333337%}.column.is-offset-1-mobile{margin-left:8.33333337%}.column.is-2-mobile{flex:none;width:16.66666674%}.column.is-offset-2-mobile{margin-left:16.66666674%}.column.is-3-mobile{flex:none;width:25%}.column.is-offset-3-mobile{margin-left:25%}.column.is-4-mobile{flex:none;width:33.33333337%}.column.is-offset-4-mobile{margin-left:33.33333337%}.column.is-5-mobile{flex:none;width:41.66666674%}.column.is-offset-5-mobile{margin-left:41.66666674%}.column.is-6-mobile{flex:none;width:50%}.column.is-offset-6-mobile{margin-left:50%}.column.is-7-mobile{flex:none;width:58.33333337%}.column.is-offset-7-mobile{margin-left:58.33333337%}.column.is-8-mobile{flex:none;width:66.66666674%}.column.is-offset-8-mobile{margin-left:66.66666674%}.column.is-9-mobile{flex:none;width:75%}.column.is-offset-9-mobile{margin-left:75%}.column.is-10-mobile{flex:none;width:83.33333337%}.column.is-offset-10-mobile{margin-left:83.33333337%}.column.is-11-mobile{flex:none;width:91.66666674%}.column.is-offset-11-mobile{margin-left:91.66666674%}.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;width:unset}.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.33333337%}.column.is-offset-1,.column.is-offset-1-tablet{margin-left:8.33333337%}.column.is-2,.column.is-2-tablet{flex:none;width:16.66666674%}.column.is-offset-2,.column.is-offset-2-tablet{margin-left:16.66666674%}.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.33333337%}.column.is-offset-4,.column.is-offset-4-tablet{margin-left:33.33333337%}.column.is-5,.column.is-5-tablet{flex:none;width:41.66666674%}.column.is-offset-5,.column.is-offset-5-tablet{margin-left:41.66666674%}.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.33333337%}.column.is-offset-7,.column.is-offset-7-tablet{margin-left:58.33333337%}.column.is-8,.column.is-8-tablet{flex:none;width:66.66666674%}.column.is-offset-8,.column.is-offset-8-tablet{margin-left:66.66666674%}.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.33333337%}.column.is-offset-10,.column.is-offset-10-tablet{margin-left:83.33333337%}.column.is-11,.column.is-11-tablet{flex:none;width:91.66666674%}.column.is-offset-11,.column.is-offset-11-tablet{margin-left:91.66666674%}.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;width:unset}.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.33333337%}.column.is-offset-1-touch{margin-left:8.33333337%}.column.is-2-touch{flex:none;width:16.66666674%}.column.is-offset-2-touch{margin-left:16.66666674%}.column.is-3-touch{flex:none;width:25%}.column.is-offset-3-touch{margin-left:25%}.column.is-4-touch{flex:none;width:33.33333337%}.column.is-offset-4-touch{margin-left:33.33333337%}.column.is-5-touch{flex:none;width:41.66666674%}.column.is-offset-5-touch{margin-left:41.66666674%}.column.is-6-touch{flex:none;width:50%}.column.is-offset-6-touch{margin-left:50%}.column.is-7-touch{flex:none;width:58.33333337%}.column.is-offset-7-touch{margin-left:58.33333337%}.column.is-8-touch{flex:none;width:66.66666674%}.column.is-offset-8-touch{margin-left:66.66666674%}.column.is-9-touch{flex:none;width:75%}.column.is-offset-9-touch{margin-left:75%}.column.is-10-touch{flex:none;width:83.33333337%}.column.is-offset-10-touch{margin-left:83.33333337%}.column.is-11-touch{flex:none;width:91.66666674%}.column.is-offset-11-touch{margin-left:91.66666674%}.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;width:unset}.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.33333337%}.column.is-offset-1-desktop{margin-left:8.33333337%}.column.is-2-desktop{flex:none;width:16.66666674%}.column.is-offset-2-desktop{margin-left:16.66666674%}.column.is-3-desktop{flex:none;width:25%}.column.is-offset-3-desktop{margin-left:25%}.column.is-4-desktop{flex:none;width:33.33333337%}.column.is-offset-4-desktop{margin-left:33.33333337%}.column.is-5-desktop{flex:none;width:41.66666674%}.column.is-offset-5-desktop{margin-left:41.66666674%}.column.is-6-desktop{flex:none;width:50%}.column.is-offset-6-desktop{margin-left:50%}.column.is-7-desktop{flex:none;width:58.33333337%}.column.is-offset-7-desktop{margin-left:58.33333337%}.column.is-8-desktop{flex:none;width:66.66666674%}.column.is-offset-8-desktop{margin-left:66.66666674%}.column.is-9-desktop{flex:none;width:75%}.column.is-offset-9-desktop{margin-left:75%}.column.is-10-desktop{flex:none;width:83.33333337%}.column.is-offset-10-desktop{margin-left:83.33333337%}.column.is-11-desktop{flex:none;width:91.66666674%}.column.is-offset-11-desktop{margin-left:91.66666674%}.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;width:unset}.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.33333337%}.column.is-offset-1-widescreen{margin-left:8.33333337%}.column.is-2-widescreen{flex:none;width:16.66666674%}.column.is-offset-2-widescreen{margin-left:16.66666674%}.column.is-3-widescreen{flex:none;width:25%}.column.is-offset-3-widescreen{margin-left:25%}.column.is-4-widescreen{flex:none;width:33.33333337%}.column.is-offset-4-widescreen{margin-left:33.33333337%}.column.is-5-widescreen{flex:none;width:41.66666674%}.column.is-offset-5-widescreen{margin-left:41.66666674%}.column.is-6-widescreen{flex:none;width:50%}.column.is-offset-6-widescreen{margin-left:50%}.column.is-7-widescreen{flex:none;width:58.33333337%}.column.is-offset-7-widescreen{margin-left:58.33333337%}.column.is-8-widescreen{flex:none;width:66.66666674%}.column.is-offset-8-widescreen{margin-left:66.66666674%}.column.is-9-widescreen{flex:none;width:75%}.column.is-offset-9-widescreen{margin-left:75%}.column.is-10-widescreen{flex:none;width:83.33333337%}.column.is-offset-10-widescreen{margin-left:83.33333337%}.column.is-11-widescreen{flex:none;width:91.66666674%}.column.is-offset-11-widescreen{margin-left:91.66666674%}.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;width:unset}.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.33333337%}.column.is-offset-1-fullhd{margin-left:8.33333337%}.column.is-2-fullhd{flex:none;width:16.66666674%}.column.is-offset-2-fullhd{margin-left:16.66666674%}.column.is-3-fullhd{flex:none;width:25%}.column.is-offset-3-fullhd{margin-left:25%}.column.is-4-fullhd{flex:none;width:33.33333337%}.column.is-offset-4-fullhd{margin-left:33.33333337%}.column.is-5-fullhd{flex:none;width:41.66666674%}.column.is-offset-5-fullhd{margin-left:41.66666674%}.column.is-6-fullhd{flex:none;width:50%}.column.is-offset-6-fullhd{margin-left:50%}.column.is-7-fullhd{flex:none;width:58.33333337%}.column.is-offset-7-fullhd{margin-left:58.33333337%}.column.is-8-fullhd{flex:none;width:66.66666674%}.column.is-offset-8-fullhd{margin-left:66.66666674%}.column.is-9-fullhd{flex:none;width:75%}.column.is-offset-9-fullhd{margin-left:75%}.column.is-10-fullhd{flex:none;width:83.33333337%}.column.is-offset-10-fullhd{margin-left:83.33333337%}.column.is-11-fullhd{flex:none;width:91.66666674%}.column.is-offset-11-fullhd{margin-left:91.66666674%}.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.33333337%}.tile.is-2{flex:none;width:16.66666674%}.tile.is-3{flex:none;width:25%}.tile.is-4{flex:none;width:33.33333337%}.tile.is-5{flex:none;width:41.66666674%}.tile.is-6{flex:none;width:50%}.tile.is-7{flex:none;width:58.33333337%}.tile.is-8{flex:none;width:66.66666674%}.tile.is-9{flex:none;width:75%}.tile.is-10{flex:none;width:83.33333337%}.tile.is-11{flex:none;width:91.66666674%}.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{color:#fff !important;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{color:#0a0a0a !important;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:rgba(0,0,0,0.7)}.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:rgba(0,0,0,0.7)}.hero.is-light .subtitle{color:rgba(0,0,0,0.9)}.hero.is-light .subtitle a:not(.button),.hero.is-light .subtitle strong{color:rgba(0,0,0,0.7)}@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(0,0,0,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:rgba(0,0,0,0.7)}.hero.is-light .tabs a{color:rgba(0,0,0,0.7);opacity:0.9}.hero.is-light .tabs a:hover{opacity:1}.hero.is-light .tabs li.is-active a{color:#f5f5f5 !important;opacity:1}.hero.is-light .tabs.is-boxed a,.hero.is-light .tabs.is-toggle a{color:rgba(0,0,0,0.7)}.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:rgba(0,0,0,0.7);border-color:rgba(0,0,0,0.7);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:#fff}.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:#fff}.hero.is-dark .subtitle,.content kbd.hero .subtitle{color:rgba(255,255,255,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:#fff}@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(255,255,255,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:#fff}.hero.is-dark .tabs a,.content kbd.hero .tabs a{color:#fff;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{color:#363636 !important;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:#fff}.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:#fff;border-color:#fff;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{color:#4eb5de !important;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{color:#2e63b8 !important;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{color:#209cee !important;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{color:#22c35b !important;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{color:#ffdd57 !important;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{color:#da0b00 !important;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:1.5rem}@media screen and (min-width: 769px),print{.hero.is-medium .hero-body{padding:9rem 4.5rem}}@media screen and (min-width: 769px),print{.hero.is-large .hero-body{padding:18rem 6rem}}.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}@media screen and (min-width: 769px),print{.hero-body{padding:3rem 3rem}}.section{padding:3rem 1.5rem}@media screen and (min-width: 1056px){.section{padding:3rem 3rem}.section.is-medium{padding:9rem 4.5rem}.section.is-large{padding:18rem 6rem}}.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 6 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 6 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 6 Free";font-weight:900;margin-right:.75rem;content:"\f06a"}details.admonition.is-details>.admonition-header{list-style:none}details.admonition.is-details>.admonition-header:before{font-family:"Font Awesome 6 Free";font-weight:900;content:"\f055"}details.admonition.is-details[open]>.admonition-header:before{font-family:"Font Awesome 6 Free";font-weight:900;content:"\f056"}.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{cursor:pointer;display:flex;flex-grow:1;align-items:stretch;padding:0.5rem .75rem;background-color:#f5f5f5;box-shadow:0 0.125em 0.25em rgba(10,10,10,0.1);box-shadow:none;border-bottom:1px solid #dbdbdb;overflow:auto}.docstring>header code{background-color:transparent}.docstring>header .docstring-article-toggle-button{min-width:1.1rem;padding:0.2rem 0.2rem 0.2rem 0}.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;overflow-x:hidden}#documenter .docs-main header.docs-navbar .docs-sidebar-button{display:block;font-size:1.5rem;padding-bottom:0.1rem;margin-right:1rem}#documenter .docs-main header.docs-navbar .docs-right{display:flex;white-space:nowrap;gap:1rem;align-items:center}#documenter .docs-main header.docs-navbar .docs-right .docs-icon,#documenter .docs-main header.docs-navbar .docs-right .docs-label{display:inline-block}#documenter .docs-main header.docs-navbar .docs-right .docs-label{padding:0;margin-left:0.3em}@media screen and (max-width: 1055px){#documenter .docs-main header.docs-navbar .docs-right .docs-navbar-link{margin-left:0.4rem;margin-right:0.4rem}}#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 6 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}#documenter .docs-sidebar #documenter-search-query{color:#707070;width:14.4rem;box-shadow:inset 0 1px 2px rgba(10,10,10,0.1)}@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}}kbd.search-modal-key-hints{border-radius:0.25rem;border:1px solid rgba(0,0,0,0.6);box-shadow:0 2px 0 1px rgba(0,0,0,0.6);cursor:default;font-size:0.9rem;line-height:1.5;min-width:0.75rem;text-align:center;padding:0.1rem 0.3rem;position:relative;top:-1px}.search-min-width-50{min-width:50%}.search-min-height-100{min-height:100%}.search-modal-card-body{max-height:calc(100vh - 15rem)}.search-result-link{border-radius:0.7em;transition:all 300ms}.search-result-link:hover,.search-result-link:focus{background-color:rgba(0,128,128,0.1)}.search-result-link .property-search-result-badge,.search-result-link .search-filter{transition:all 300ms}.property-search-result-badge,.search-filter{padding:0.15em 0.5em;font-size:0.8em;font-style:italic;text-transform:none !important;line-height:1.5;color:#f5f5f5;background-color:rgba(51,65,85,0.501961);border-radius:0.6rem}.search-result-link:hover .property-search-result-badge,.search-result-link:hover .search-filter,.search-result-link:focus .property-search-result-badge,.search-result-link:focus .search-filter{color:#f1f5f9;background-color:#333}.search-filter{color:#333;background-color:#f5f5f5;transition:all 300ms}.search-filter:hover,.search-filter:focus{color:#333}.search-filter-selected{color:#f5f5f5;background-color:rgba(139,0,139,0.5)}.search-filter-selected:hover,.search-filter-selected:focus{color:#f5f5f5}.search-result-highlight{background-color:#ffdd57;color:black}.search-divider{border-bottom:1px solid #dbdbdb}.search-result-title{width:85%;color:#333}.search-result-code-title{font-size:0.875rem;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}#search-modal .modal-card-body::-webkit-scrollbar,#search-modal .filter-tabs::-webkit-scrollbar{height:10px;width:10px;background-color:transparent}#search-modal .modal-card-body::-webkit-scrollbar-thumb,#search-modal .filter-tabs::-webkit-scrollbar-thumb{background-color:gray;border-radius:1rem}#search-modal .modal-card-body::-webkit-scrollbar-track,#search-modal .filter-tabs::-webkit-scrollbar-track{-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,0.6);background-color:transparent}.w-100{width:100%}.gap-2{gap:0.5rem}.gap-4{gap:1rem}.gap-8{gap:2rem}.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;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#F3F3F3;color:#444}.hljs-comment{color:#697070}.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:#ab5656}.hljs-literal{color:#695}.hljs-built_in,.hljs-bullet,.hljs-code,.hljs-addition{color:#397300}.hljs-meta{color:#1f7199}.hljs-meta .hljs-string{color:#38a}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:bold}.gap-4{gap:1rem} diff --git a/previews/PR273/assets/themeswap.js b/previews/PR273/assets/themeswap.js new file mode 100644 index 000000000..9f5eebe6a --- /dev/null +++ b/previews/PR273/assets/themeswap.js @@ -0,0 +1,84 @@ +// Small function to quickly swap out themes. Gets put into the tag.. +function set_theme_from_local_storage() { + // Initialize 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 users preference is for dark color scheme + var darkPreference = + window.matchMedia("(prefers-color-scheme: dark)").matches === 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 primaryLightTheme = null; + var primaryDarkTheme = 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. + if (ss.ownerNode.getAttribute("data-theme-primary") !== null) { + primaryLightTheme = themename; + } + // Check if the theme is primary dark theme so that we could store its name in darkTheme + if (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null) { + primaryDarkTheme = 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); + } + var activeTheme = null; + 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; + activeTheme = theme; + } else { + // If we did _not_ find an active theme, then we need to fall back to the primary theme + // which can either be dark or light, depending on the user's OS preference. + var activeTheme = darkPreference ? primaryDarkTheme : primaryLightTheme; + // In case it somehow happens that the relevant primary theme was not found in the + // preceding loop, we abort without doing anything. + if (activeTheme === null) { + console.error("Unable to determine primary theme."); + return; + } + // When switching to the primary light theme, then we must not have a class name + // for the tag. That's only for non-primary or the primary dark theme. + if (darkPreference) { + document.getElementsByTagName("html")[0].className = + "theme--" + activeTheme; + } else { + document.getElementsByTagName("html")[0].className = ""; + } + } + 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; + // we'll disable all the stylesheets, except for the active one + ss.disabled = !(themename == activeTheme); + } +} +set_theme_from_local_storage(); diff --git a/previews/PR273/assets/warner.js b/previews/PR273/assets/warner.js new file mode 100644 index 000000000..3f6f5d008 --- /dev/null +++ b/previews/PR273/assets/warner.js @@ -0,0 +1,52 @@ +function maybeAddWarning() { + // DOCUMENTER_NEWEST is defined in versions.js, DOCUMENTER_CURRENT_VERSION and DOCUMENTER_STABLE + // in siteinfo.js. + // If either of these are undefined something went horribly wrong, so we abort. + if ( + window.DOCUMENTER_NEWEST === undefined || + window.DOCUMENTER_CURRENT_VERSION === undefined || + window.DOCUMENTER_STABLE === undefined + ) { + return; + } + + // Current version is not a version number, so we can't tell if it's the newest version. Abort. + if (!/v(\d+\.)*\d+/.test(window.DOCUMENTER_CURRENT_VERSION)) { + return; + } + + // Current version is newest version, so no need to add a warning. + if (window.DOCUMENTER_NEWEST === window.DOCUMENTER_CURRENT_VERSION) { + return; + } + + // Add a noindex meta tag (unless one exists) so that search engines don't index this version of the docs. + if (document.body.querySelector('meta[name="robots"]') === null) { + const meta = document.createElement("meta"); + meta.name = "robots"; + meta.content = "noindex"; + + document.getElementsByTagName("head")[0].appendChild(meta); + } + + const div = document.createElement("div"); + div.classList.add("outdated-warning-overlay"); + const closer = document.createElement("button"); + closer.classList.add("outdated-warning-closer", "delete"); + closer.addEventListener("click", function () { + document.body.removeChild(div); + }); + const href = window.documenterBaseURL + "/../" + window.DOCUMENTER_STABLE; + div.innerHTML = + 'This documentation is not for the latest stable release, but for either the development version or an older release.
Click here to go to the documentation for the latest stable release.'; + div.appendChild(closer); + document.body.appendChild(div); +} + +if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", maybeAddWarning); +} else { + maybeAddWarning(); +} diff --git a/previews/PR273/connectors/connections/18c1cc07.svg b/previews/PR273/connectors/connections/18c1cc07.svg new file mode 100644 index 000000000..05d76fde4 --- /dev/null +++ b/previews/PR273/connectors/connections/18c1cc07.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/previews/PR273/connectors/connections/5324a0c8.svg b/previews/PR273/connectors/connections/5324a0c8.svg new file mode 100644 index 000000000..866b19ded --- /dev/null +++ b/previews/PR273/connectors/connections/5324a0c8.svg @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/previews/PR273/connectors/connections/7c482eba.svg b/previews/PR273/connectors/connections/7c482eba.svg new file mode 100644 index 000000000..517a9c0ac --- /dev/null +++ b/previews/PR273/connectors/connections/7c482eba.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/previews/PR273/connectors/connections/91f3ddc2.svg b/previews/PR273/connectors/connections/91f3ddc2.svg new file mode 100644 index 000000000..362015a83 --- /dev/null +++ b/previews/PR273/connectors/connections/91f3ddc2.svg @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/previews/PR273/connectors/connections/e178a151.svg b/previews/PR273/connectors/connections/e178a151.svg new file mode 100644 index 000000000..e2a83ccaa --- /dev/null +++ b/previews/PR273/connectors/connections/e178a151.svg @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/previews/PR273/connectors/connections/f85bc71b.svg b/previews/PR273/connectors/connections/f85bc71b.svg new file mode 100644 index 000000000..cfc2ad0ae --- /dev/null +++ b/previews/PR273/connectors/connections/f85bc71b.svg @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/previews/PR273/connectors/connections/index.html b/previews/PR273/connectors/connections/index.html new file mode 100644 index 000000000..812d4798e --- /dev/null +++ b/previews/PR273/connectors/connections/index.html @@ -0,0 +1,99 @@ + +About Acausal Connections · ModelingToolkitStandardLibrary.jl

Introduction

In Physical Network Acausal modeling, each physical domain must define a connector to combine model components. Each physical domain connector defines a minimum of 2 variables, one which is called a Through variable, and one which is called an Across variable. Both Modelica and SimScape define these variables in the same way:

However, the standard libraries differ on the selection of the Across variable for the Mechanical Translation and Rotation libraries, Modelica choosing position and angle and SimScape choosing velocity and angular velocity, respectively for Translation and Rotation. Modelica describes their decision here. In summary, they would like to provide less integration in the model to avoid lossy numerical behavior, but this decision assumes the lowest order derivative is needed by the model. Numerically it is possible to define the connector either way, but there are some consequences of this decision, and therefore we will study them in detail here as they relate to ModelingToolkit.

Through and Across Variable Theory

General

The idea behind the selection of the through variable is that it should be a time derivative of some conserved quantity. The conserved quantity should be expressed by the across variable. In general terms, the physical system is given by

  • Energy Dissipation & Flow:

\[\begin{aligned} + \partial {\color{blue}{across}} / \partial t \cdot c_1 = {\color{green}{through}} \\ + {\color{green}{through}} \cdot c_2 = {\color{blue}{across}} +\end{aligned}\]

Electrical

For the Electrical domain, the across variable is voltage and the through variable current. Therefore

  • Energy Dissipation:

\[\partial {\color{blue}{voltage}} / \partial t \cdot capacitance = {\color{green}{current}}\]

  • Flow:

\[{\color{green}{current}} \cdot resistance = {\color{blue}{voltage}}\]

Translational

For the translation domain, choosing velocity for the across variable and force for the through gives

  • Energy Dissipation:

\[\partial {\color{blue}{velocity}} / \partial t \cdot mass = {\color{green}{force}}\]

  • Flow:

\[{\color{green}{force}} \cdot (1/damping) = {\color{blue}{velocity}}\]

The diagram here shows the similarity of problems in different physical domains.

Through and Across Variables

Translational Connector using Position Across Variable

Now, if we choose position for the across variable, a similar relationship can be established, but the pattern must be broken.

  • Energy Dissipation:

\[\partial^2 {\color{blue}{position}} / \partial t^2 \cdot mass = {\color{green}{force}}\]

  • Flow:

\[{\color{green}{force}} \cdot (1/damping) = \partial {\color{blue}{position}} / \partial t\]

As can be seen, we must now establish a higher order derivative to define the Energy Dissipation and Flow equations, requiring an extra equation, as will be shown in the example below.

Examples

Electrical Domain

We can generate the above relationship with ModelingToolkit and the ModelingToolkitStandardLibrary using 3 blocks:

  • Capacitor: for energy storage with initial voltage = 1V
  • Resistor: for energy flow
  • Ground: for energy sink

As can be seen, this will give a 1 equation model matching our energy dissipation relationship

using ModelingToolkitStandardLibrary.Electrical, ModelingToolkit, DifferentialEquations
+using ModelingToolkit: t_nounits as t
+using Plots
+
+@named resistor = Resistor(R = 1)
+@named capacitor = Capacitor(C = 1)
+@named ground = Ground()
+
+eqs = [connect(capacitor.p, resistor.p)
+       connect(resistor.n, ground.g, capacitor.n)]
+
+@named model = ODESystem(eqs, t; systems = [resistor, capacitor, ground])
+
+sys = structural_simplify(model)
+
+println.(equations(sys))
Differential(t)(capacitor₊v(t)) ~ capacitor₊i(t) / capacitor₊C

The solution shows what we would expect, a non-linear dissipation of voltage and related decrease in current flow…

prob = ODEProblem(sys, [1.0], (0, 10.0), [])
+sol = solve(prob)
+
+p1 = plot(sol, idxs = [capacitor.v])
+p2 = plot(sol, idxs = [resistor.i])
+plot(p1, p2)
Example block output

Mechanical Translational Domain

Across Variable = velocity

Now using the Translational library based on velocity, we can see the same relationship with a system reduced to a single equation, using the components:

  • Body (i.e. moving mass): for kinetic energy storage with an initial velocity = 1m/s
  • Damper: for energy flow
  • Fixed: for energy sink
using ModelingToolkitStandardLibrary
+const TV = ModelingToolkitStandardLibrary.Mechanical.Translational
+
+@named damping = TV.Damper(d = 1, flange_a.v = 1)
+@named body = TV.Mass(m = 1, v = 1)
+@named ground = TV.Fixed()
+
+eqs = [connect(damping.flange_a, body.flange)
+       connect(ground.flange, damping.flange_b)]
+
+@named model = ODESystem(eqs, t; systems = [damping, body, ground])
+
+sys = structural_simplify(model)
+
+println.(full_equations(sys))
Differential(t)(body₊v(t)) ~ (-damping₊d*body₊v(t)) / body₊m

As expected, we have a similar solution…

prob = ODEProblem(sys, [], (0, 10.0), [])
+sol_v = solve(prob)
+
+p1 = plot(sol_v, idxs = [body.v])
+p2 = plot(sol_v, idxs = [damping.f])
+plot(p1, p2)
Example block output

Across Variable = position

Now, let's consider the position-based approach. We can build the same model with the same components. As can be seen, we now end of up with 2 equations, because we need to relate the lower derivative (position) to force (with acceleration).

const TP = ModelingToolkitStandardLibrary.Mechanical.TranslationalPosition
+
+@named damping = TP.Damper(d = 1, va = 1, vb = 0.0)
+@named body = TP.Mass(m = 1, v = 1)
+@named ground = TP.Fixed(s_0 = 0)
+
+eqs = [connect(damping.flange_a, body.flange)
+       connect(ground.flange, damping.flange_b)]
+
+@named model = ODESystem(eqs, t; systems = [damping, body, ground])
+
+sys = structural_simplify(model)
+
+println.(full_equations(sys))
Differential(t)(body₊s(t)) ~ body₊v(t)
+Differential(t)(body₊v(t)) ~ (-damping₊d*body₊v(t)) / body₊m

As can be seen, we get exactly the same result. The only difference here is that we are solving an extra equation, which allows us to plot the body position as well.

prob = ODEProblem(sys, [], (0, 10.0), [])
+sol_p = solve(prob)
+
+p1 = plot(sol_p, idxs = [body.v])
+p2 = plot(sol_p, idxs = [damping.f])
+p3 = plot(sol_p, idxs = [body.s])
+
+plot(p1, p2, p3)
Example block output

The question then arises, can the position be plotted when using the Mechanical Translational Domain based on the Velocity Across variable? Yes, we can! There are 2 solutions:

  1. the Mass component will add the position variable when the s parameter is used to set an initial position. Otherwise, the component does not track the position.
@named body = TV.Mass(m = 1, v = 1, s = 0)
  1. implement a PositionSensor TODO: Implement Translation Sensors

Either option will produce the same result regardless of which across variable is used. If the same result is given, why are both options included in the Standard Library, what are the differences? These differences will be discussed next so that an informed decision can be made about which domain is best for your model.

Mechanical/Translational Library Differences (Velocity vs. Position Connectors)

Initialization

The main difference between ModelingToolkitStandardLibrary.Mechanical.Translational and ModelingToolkitStandardLibrary.Mechanical.TranslationalPosition is how they are initialized. In the ModelingToolkitStandardLibrary initialization, parameters are defined at the component level, so we simply need to be careful to set the correct initial conditions for the domain that it used. Let's use the following example problem to explain the differences.

Example Mechanical Model

In this problem, we have a mass, spring, and damper which are connected to a fixed point. Let's see how each component is defined.

Damper

The damper will connect the flange/flange 1 (flange_a) to the mass, and flange/flange 2 (flange_b) to the fixed point. For both position- and velocity-based domains, we set the damping constant d=1 and va=1 and leave the default for v_b_0 at 0. For the position domain, we also need to set the initial positions for flange_a and flange_b.

@named dv = TV.Damper(d = 1, flange_a.v = 1)
+@named dp = TP.Damper(d = 1, va = 1, vb = 0.0, flange_a__s = 3, flange_b__s = 1)

Spring

The spring will connect the flange/flange 1 (flange_a) to the mass, and flange/flange 2 (flange_b) to the fixed point. For both position- and velocity-based domains, we set the spring constant k=1. The velocity domain then requires the initial velocity va and initial spring stretch delta_s. The position domain instead needs the initial positions for flange_a and flange_b and the natural spring length l.

@named sv = TV.Spring(k = 1, flange_a__v = 1, delta_s = 1)
+@named sp = TP.Spring(k = 1, flange_a__s = 3, flange_b__s = 1, l = 1)

Mass

For both position- and velocity-based domains, we set the mass m=1 and initial velocity v=1. Like the damper, the position domain requires the position initial conditions set as well.

@named bv = TV.Mass(m = 1, v = 1)
+@named bp = TP.Mass(m = 1, v = 1, s = 3)

Fixed

Here the velocity domain requires no initial condition, but for our model to work as defined we must set the position domain component to the correct initial position.

@named gv = TV.Fixed()
+@named gp = TP.Fixed(s_0 = 1)

Comparison

As can be seen, the position-based domain requires more initial condition information to be properly defined, since the absolute position information is required. Therefore, based on the model being described, it may be more natural to choose one domain over the other.

Let's define a quick function to simplify and solve the 2 different systems. Note, we will solve with a fixed time step and a set tolerance to compare the numerical differences.

function simplify_and_solve(damping, spring, body, ground)
+    eqs = [connect(spring.flange_a, body.flange, damping.flange_a)
+           connect(spring.flange_b, damping.flange_b, ground.flange)]
+
+    @named model = ODESystem(eqs, t; systems = [ground, body, spring, damping])
+
+    sys = structural_simplify(model)
+
+    println.(full_equations(sys))
+
+    prob = ODEProblem(sys, [], (0, 10.0), [])
+    sol = solve(prob; dt = 0.1, adaptive = false, reltol = 1e-9, abstol = 1e-9)
+
+    return sol
+end

Now let's solve the velocity domain model

solv = simplify_and_solve(dv, sv, bv, gv);
Differential(t)(bv₊v(t)) ~ (-dv₊d*bv₊v(t) - sv₊k*sv₊delta_s(t)) / bv₊m
+Differential(t)(sv₊delta_s(t)) ~ bv₊v(t)

And the position domain model

solp = simplify_and_solve(dp, sp, bp, gp);
Differential(t)(bp₊s(t)) ~ bp₊v(t)
+Differential(t)(bp₊v(t)) ~ (-dp₊d*bp₊v(t) - (-gp₊s_0 - sp₊l + bp₊s(t))*sp₊k) / bp₊m

Now we can plot the comparison of the 2 models and see they give the same result.

plot(ylabel = "mass velocity [m/s]")
+plot!(solv, idxs = [bv.v])
+plot!(solp, idxs = [bp.v])
Example block output

But, what if we wanted to plot the mass position? This is easy for the position-based domain, we have the state bp₊s(t), but for the velocity-based domain we have sv₊delta_s(t) which is the spring stretch. To get the absolute position, we add the spring natural length (1m) and the fixed position (1m). As can be seen, we then get the same result.

plot(ylabel = "mass position [m]")
+plot!(solv, idxs = [sv.delta_s + 1 + 1])
+plot!(solp, idxs = [bp.s])
Example block output

So in conclusion, the position based domain gives easier access to absolute position information, but requires more initial condition information.

Accuracy

One may then ask, what the trade-off in terms of numerical accuracy is. When we look at the simplified equations, we can see that actually both systems solve the same equations. The differential equations of the velocity domain are

\[\begin{aligned} +m \cdot \dot{v} + d \cdot v + k \cdot \Delta s = 0 \\ +\dot{\Delta s} = v +\end{aligned}\]

And for the position domain are

\[\begin{aligned} +m \cdot \dot{v} + d \cdot v + k \cdot (s - s_{b_0} - l) = 0 \\ +\dot{s} = v +\end{aligned}\]

By definition, the spring stretch is

\[\Delta s = s - s_{b_0} - l\]

Which means both systems are actually solving the same exact system. We can plot the numerical difference between the 2 systems and see the result is negligible.

plot(title = "numerical difference: vel. vs. pos. domain", xlabel = "time [s]",
+    ylabel = "solv[bv.v] .- solp[bp.v]")
+time = 0:0.1:10
+plot!(time, (solv(time)[bv.v] .- solp(time)[bp.v]), label = "")
+Plots.ylims!(-1e-15, 1e-15)
Example block output
diff --git a/previews/PR273/connectors/model.png b/previews/PR273/connectors/model.png new file mode 100644 index 0000000000000000000000000000000000000000..ac1f6f68a4db586093c2af1cda63ba59a4d540e8 GIT binary patch literal 12022 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 abCuhBl17+?{s+{oljv)kXw_*rJ^vp~v0a(~ literal 0 HcmV?d00001 diff --git a/previews/PR273/connectors/model.svg b/previews/PR273/connectors/model.svg new file mode 100644 index 000000000..e7000210a --- /dev/null +++ b/previews/PR273/connectors/model.svg @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + s0 = 3 mv0 = 1 m/s + k=1 N/ml =1 m + d=1 N/(m/s) + 1m + 3m + + + + diff --git a/previews/PR273/connectors/through_across.png b/previews/PR273/connectors/through_across.png new file mode 100644 index 0000000000000000000000000000000000000000..758704af8137c536caf0aef2816fb351c54143a4 GIT binary patch literal 30457 zcmbrm2{hDS_&;te8B`3ihV1(~)~wlgm9l0FBOydaWSJTzI|*Y+vK2x`wy{iPDT7d$ z7)uhuP+~BK-+TIeKEL1h{LcS>&i|bMJvub*z3+RU=XIawxv%GWdwkK>>=ZK}GYt*R zDGPJs%QQ6fE;KYCdhiM06Q27Q(ZDyR5Oe1+8XBW2>OT-jO-=>)kT=}KDcn9777q8i z?MnlP!xj8*1%!Efh4?B2-}WmY>hRIfoTITYzHlY7aGd}zympn)|7%2%=@nblikoHD zsS??je?-*6IWx>SFF@p2bwosv7t3Vt-&f_=jsIf{zE3+g2s66mA_bx?DVHQiA89Vb zB%f$^Y^>j#tDEeEEzgE+>O#>U*6)!D=ak`Q#$^t;!07o{&n65hAUw|aZ@c-*u~hq< z$Ukk&Ug`$q-}Wj?FO?W?j#frrz^Y^O4dUj5<}bnHM5_sH*cVs~@yI@A2AuR(~h z?At|PKSh$9;hQPbximR+6}{ULuxrZ#@Zz)6J0J&f1*{S_emP#75M%o>GyqO`n~Jv8?Ip}vV_@=AJkx@j&{^F{GxD8n zQju>m^hr60r>~&1cqF<153K@&I*lG^cX#y2x#K`iWUL5hfNIPVnOY6Gp7$vYqGTPMGoQm3h*%AN7qj4Fx=A^@efW5+8y|+CwD83na306 zp@t5{nqjT5VxCJ=yGc{Ti%{1w-0+E6#v_(?=9CYSCtk7&Ev|aPvrR0JXr08{aJWghDzV%K&*jFuh%tO1!YF*oPcCHJbz^*VxolJWRHEb zN`E?(RE^$MJax#PmwP+1JWYgN-VbC)hX(h=>kr&)<`$OII^Dvsm!ZU53SVEmg&jqD z40rw{j`-<5>|!^})Wrqz!-a~+a(lt09=72mJC!s68*ovCI{N7hMSuo=9NJf96h?@7 zbh{X7IVIhsU9Y>v5VLn{*W>s_z)G(ujaw4wXNT>p>ZFAU$i~dCAm&QdA z5yE6G^3#zs{Mff|H|oTSd~a+39k_&xr=M)GIvx`mkv`}4LsEW={P79P+l~HA-1PuY zy4l5x-B+9;kXIR|fYz24OXbpTVA(3duB5gB$M2*=a`VQi4HMb@ zLLnMiTE&HHg_XXMK`GoUMPqRb_R6+NaJzbz*B-qTP6#CR21NQjZh|(ebueyta)RJD z`J5$A_ICbY%-tlS0w_>$^9TPJ(1yN6z#@5HN4t0UeJk_wabOB%*i4Z#@^RuHr(cxsa`OS9<9)CQ z3)3h41j-2S2ANKuW|ywhc#p7cGjBWJOgswxsP+(~5BkwUz7#rbioB#MOKXo9MKMe* zDnFw0V9XJ3_pqVA#n9JA=60S`^7QDw@g)_^FsCnW{ip*=5Gv(=qdbxOJzcL4ADcDe z_HyV|lXTJ96E&dtZF&ADm$YlSOX~X%fz2`txqn8Oy5^T} z!s$Zv>Q8Q+>QCp0z)lr86Sje1@Vz-)L@3G6>66Sa zJ}7SeO$nZyjZ5 zy^teXUy2t89sg z9mKxH?qExit5tb;JEjt=U_->N&(k6`#Ag5E6VfjqvB9Uv3}4!k49YpUhq@qK#EWk| zcqnjutoT{}zG-`h_OiL9pU#3>B=lBmJZ`eDReKp99U68>td3}s&p{U@CUTmHx)?K) zg3S>P|1tCveDkBS$JF$a6Tu|+$x0R zjHQD$InJo!2}0)n2R5G2?y7s!7;+qRSC@;Wyo;vBHjjNfPI`I8Mr!^@0Nw?Su0)*z z#R_abBNDqlPU)U$nZebb`+VN2VxD+%-2$8vVVTt2->-f~a|rh}o(^2f&uSYZ@^e$x zAoBRbJ2SG6XG7{6#p~0#hh?89VGG`Nf0lz%V!(2P*6I&tCLxf_?zSFAgG{2rc5aX2 z(~xU^?Hi}#cn=iaD0n%K9zOHfR=4*_dFU%wi?%CcI@a~Kd9P~MJ>ldyx=avyl4u^L zDK(om#OzEHLK^XkCDdH=>XY+~bQxe50G~XEl&Gvw+nQ(PeLH+QxtSaGP|mqFso8aT zY7V?WVqM1bxr?F%-9B!f7ZJ%aqzW{IYlja!rWde7iW#rgEUv0LwpmamT zz^#gmA#*~b+4odJQc$`Xb=X?ePIBDanup)_mAdQK6LM^8dHoXh+7i}vTV?f(vIv*Cs;**R=8?F`=*q;zYzttGNn!5ox}R~KxgF!U94K0!{h_4fv$SUI zeEg@H-D${=)Vj;b!#_fz+6hd14^XEDZm|jVqmVD|fB7xrR_d}_{q1hDveK-BHh4ef zyYi6F#it|kB4eMw39;v-z~_d?|GZAw%#~fdJXl#M>Ctt-<{(C^$=o8=Kl%8LjiO=b zT;I=vUwY`3!&ThdjKb(qK6fMIGVvS6$>yO75}Z%?P4c!WM)Qzvsnil6RujRFK-2bR zw^+I#Q6z`fg}blq>@byHtLU#od`4jA1RaAl1^0yOi%|qKo{cwBN?A&b?W|h`GVUZJ zD5m&g_AV`y|4dyg^Hx&y!R3!vy&_YLssv<6BJI2N<|J8Kz{-1~j+cLs^;N<=w2tj0 z`~S!{#0X^_V-}q9^iQc4|LI2We9=0_w5m}={TpsRnVmE?mMME~QU)f@`oqZVhDqM> zsf&)+Pls@X1otTiQzN!HaP`r8{^${?+hd&gJT0t*K*@#eo(*9ZUe{8p{vg+#bpEPy ziDVBc-W8F$;-UrmeO!*_%M!sZ$vGCedT{ye9&UCGOgk8t^|p}Zpya}frGZO2HjYDk zM?ESEYT~oC?mk_xd^|T&U!lFAG%=Wjmh#vNJv@SPRR&nzdYeG994F@|nwL}KpAUp( z+RA)07EHQ(Lm**T!yKZ`k)XVif#Fl>1YbAJgARsh<#-a-V z!CyJ)XdES{|89((;GOR9u^ljj z(}>hEE%AswdmdAd5( z7WlZ2P)QdJ=_abrOGBgQa1s#HKq9?0-L9SUL@TGh@aHpYHZS#eV{3YTGlX#0^OvN# zjMZsjpCK>3qAV%{(mH8a)NssZ+IO;4`%J=y+HpsqwsucW?ZLh_UOyIIm%fX?I}KQ@ z3xK-HD#`Zkgr2^sDlJ!Dd$388(8uT|=d;WwY23@7#9ggS77?*o_U%4KZM5>WL^FC- zE#1ZPW7!NtXQYu3MNtA}Hrq%)Y1y`D;>n#<6!QG_X!iR%ACSkTm5`rr4r!gf5VQgF zz&52I2xlpoa1k0p)^0Q5*3yWV^8O(An*FA&nbR72<_f>yz=fYzxM+~a6cwa z0h2BwqEh@+LmW6}cc*wT59)u8FX??{q1?~k)JbN4*j*PNT3`I#(XkrnsOwfUIHsKz zk;#tdnHFjh%rlJZyz;uuTfMK3MiOKfrc#jOtY~IztOA&^#K!wiXc$kwRc>-lSat^G z4P30Pwj2QzkHm~z9=M#zkKm5?&HEtzMYE&`769shkCBx20m6&Z41g6~+`kcbq9spB z?(n0NU%6OB(uTpFZ@6Gc*{0)Xl^4Lp_Ub}u2ge>niCgol?He~)tzyc=38nOE#0Bh- z-q+14Lk$ySdg??nIp5+Ceuz7Hy@ZI`Q!=|3`MuW`Q^XI8@8+lPKDznY3UHf+_Zp8m z7JaZGeP3Vgez`sDt>F}`w`e&(h!s2Fsv!eU6TkRLL`42w`mQrp17U?&MhQBemcjNp zDSGOA%7t+CXugf;0AgQhtk#2ivE8fT4avYUu+r-{ZW7}Z=;WN5OedvRO$8IsGzyIFYUtuT=Po{y z1+W-tKo6G#l5;;rM9n%;hKW0&7%} z3IWXACF;4+o)(O}h5#O^`bI3|t_kpyc>q-zLk538#9X~J53HUY5SclY`lHB@EwvA8 zB_PlIOj>SWo(Md`>ev)+Zfsm-bRjuW6)hIhI*3!h8SV!N@nZ(Pf+7k}8nW&x27ad% zMlvN`D05Xpt1)%0nBUnr`R7&7ogcJw5u~-BAwVR4YY?X(#_9R=CoibRy)uA6yS_*) zy3_V7G4Toti1i0>>h#b2!}ZHVglJ`3$%UqHV7r%aH3B@dE3xJ#5pa?=AK~$J6bf?W zq}EHY3!+jse6I!Ld~;|OI{u8kor!tG&KkXwD4NFO_;R!eK8ycB^pIV858Lgo#Sjl} zJf=WaPv3@IYi*W8i(40&f27ullbctWr-v6iF9uu{^A@vm8Td_GUu4Jy@%N|cal{%4+7bX*q)fTt+@h5NX4?A_%_#5kf0K*85Lz&R)r z8@IZl{iNP{+nIP|n|fd$MxFcPWc8>3Tc+UV2a&Jsr-4i58qrY-FoT)5D)LATC~N}O zg?O|m$kuQz5fDLU!{3vqjZ(UIekcG-x=4LAVR{Zxd3(LUf@eRIUT$-u&h<+!q~TD? zx0yOZggPSsHmNdR0I{1gB!G z<-hyj{6ZZVMv9{m#RY0T&&702uIN1mLg#LR{)y8n=pKYHc3O9pmBHkpoY0qMM?jVq z!14N=is_nL(E|+Fm2N^M1FoW}ciRJh+JvwU3Ymb}9Yf=0CQsQGqJ_ zs}=uP!7{ZSBdVSN`2Hm>{cV!V0_~~76$XS$ZGZJrW!M`6=))xsRm2)Nz7pG54+#5i zDiI0ZI$3XYt*^}oHo=&;OmrvQdYq^#^mpj%pi`a{0LKZhr&dlUvY9rlJ6#wU<8NW# z>&B&pkcO*vZH>!505YRCf432K(}rv{w*ed%sFrSbc&eh_#MmYOzeQKr%CI`uN{ae` zPSYtULt}>7GIPrR8g&(qV!aqAzoI*QgjB%~1e9jz^-_#*mVeY4!<>%G5p_&|7+?;c zG$5H3RBRa=|KQh&R06s?lww9jho0#c#O&fLM+t1NoDdmHUY^+)Kw7}u!ZCk$e>q#k zFvpERNj})MG%kz21lU7rW1#v^>9mT|fR+GByDR(fvaF*T$X=e@@M4F*r^1eJ^q;<3 zfBU8aXs0%daw?p|0XS2ekMLh)mj0s*V=hlv%m;ynLprL8wEk5|=Kl48+q$d5gB0vA zwfAlNe-~kJNqA5SunyG6sdCG20%L%N8c#4SUw5FYPz+#*sLen0FD}gf#Rbb>{kr|T z1eYtozV$d80JvHI+hOe^cfV`#5TkD@Fh8B6A|UiS`v0^US~^K}yiCUx%;n zZPjVC$;x}ZPh7eYK$Z=7{Wh``LtWAK-(cf@Bd2TG+dST$hehe+bVTWmfa%oT-CwCh zhjg{u-`UP<3(UpgAQs< z;kX!J81nkh2rJ{VeW@Fn6I_Nlb0D*RdAiUpBQLAel(SmM*06q1Q0Sm(%Um6Rr80i# z+5?Q~xeET7mD5)&RIfbHOdD|#_4TN>tQ$G=7tAqs|SJa*b7 zMaJ%NHkt?gi?$66BAb_e_(ETBCuSW?hCnVI` z=+5LjCuI0mXA_D!49^0{1#XHi$tdOUl>}`1<=sx^niGG9rqqGG@SYEMl(0QCb32%N z()d?Xh`0|C)vo`xBdDB$=|$NT^ej;`w~VXGG%6u|^}UmifI=e7GUSr24|z$L8r zGP{8znn{!v^}(z7l6J7~sDs)7a6PM@$q+B8FIU|+%Gthbl!N@+@s z8#Ba5&oo`jZgBJhjJr#?=Kvmrbphr2=ScY=I~>tKTXTd*^` zaG;ju-w`oqAPx6isXK@TI{QgU_@Fd@l_u4d){DRN1=e-8=_QOh^O^r{3S);q&oqb` zPBlor=4<-S>OB0~av*C!s44I{aJY=i&f@|@|C)$|`&|CFV0~K)U3IPlSvP{an#Fr^ z0KptzrR4ur%1xPva-`?^R3}vO+$7(Ty`e=2)zBOP=;h*+O5oJ48YV(iRm8_aDiE+; zuO5pS<=oxbcnX{eKz~E8Mun|JJf_B~9Y>g4`FI<|{(|C4K?zmNKLKTIuPOjN9H+kN zJvT$j6NLYpr{ahz*;nTo(&>JHaY=jkGqLr%VU;xIwOQMj!MoQQDr0znc{}|EKVXIA@0^v;g{;ja3vi zO?iRdcIfso^%P$j6I>beD7H8aWNe5+lXYzQD)VF0&j}>#H^(WeE4C{my+cIA52)RcB5l)1<=#`R3DnVZx8{PC% zJP032x$gN#Fn`RmcY%x&wlzzSetv7;`xevqb|Zm2q#8EWFdHR1h9O0I7G-yIRdi60 zQE-1@05$nuJqI*qKE(64e}CUOKKLM6H`&6-4f3ycdz{D_-Y-*KKlJ&lVMFkIl~R{gozbM^x$y=Ss-ixAJzIv#c3h4S7X9NTyU)XLh2kSwCy&vC)qo ztwg-OBw$&xrafNj`0z67+<;j*puNXtaDiq}?P1*Rjc|`PeyFR2o<@H!p8GNbOkHa6 zu3J^gB5QL0t&0}=F2Hq6wbf2r8-J9lp_kt_8x_pX+^lQmw|x3kkwW%hvf}Jy_IP4< zcnKq-gk>Y(Pk70-tW0^MN9>glo0uD48{4cwFIhS&zQ_#K22HW-;RwyI$NafV*Y0-kO6{=z z?x$G;71NA7on`{?eMN6|JsdWCc!F|JWK^uzuk2+=is4`#PuzV^;mQ{dbcPe2u8jNX z)bARSakiBm6h{D(nOXI|dt3fkwM|?R8Ep!;FfKD&d-!&yOfKxDoR700kKNwItSO$B zL0r=vQdLYy;O(CHx`~yUw};Iw(5-TnblvKFfy}HSx?Q>^fZ>e_E$ukwo;uM|D=2K$ zD6?>!LWF9USh`5xXl06Q9W63PAO0R>r8E6PZi^ z*icA#ZIomDa{b;}8dx*kro%pSzvKQrk+JUDqd)e7#mWy9cQ(lHV;?Z419^OAC(xel zM3aSD%P_B+W~EPL&~PCE(Uf9?mO1<3Hx0`}xyNQ_8vcMKvjo4dgVvebSqrllr!)e- zNK1cwiahYJ0%?PqmjeP}vUIM!7{@P70W2-tdCb;zi)w2xeD8C?yDCOw29_EI704Bs zN!=U!KQy{f0h6Vy`iEPJYxrD2d27+H98OAsh}b;B=dF72-c z6pRp#Pak%;PgYmvFu54>{p{u5^q#7}1h}YxW@gtYPavuk5qS%^G#M`#9n+mZ>Y~=K zt7qKy|6(f0gb%Wq} zEqHNOLzjk^6}9~NciRXtgu{MS59>K}aDcuUliEY%MH@zct(KO3?2RM`@m&-|`tardk%Z482& zK%uk*F?C;Qyo-&Sp@czQQTA3!*$fNCne6W#8MJ*FT9+~8 z$ylX_V$N#L^r-G%zILjR`Q$myLP~&(C^SG6$;(!8R(zWE!yW5C&rkwCi2fsZr|z}p zE|f0oVLqFo_Ls_V6*zF~uEeA3&(s47@a5q)$(Dsauw}ab z?1T1vJSjd5T<71!jSB>_bm;)^67^HTYj7Y_77DKgoDLAHBpGtO`Xtr;C)*#nN~nV{ zm!yfLfLkVT6X7Iht+ZpckaH}Iyfk@urS6gC>&UjkxU@+pI?ZgQDxX4B(53kYcP+lX zOm;8MjfP?zPLNSr;^`&Z$I?E`4H>eSpBf-w4+VVDj^$Iaosmd;eS zvw%IocEFlSsJoZtY)avIqo~*!X*N___gC$f07FsbNwYvl3Pp`0ff}Li8<}UAO0{mw zgJRgc5~}SH{WCEY3He4sy_8&tVUAgRkxH_1zi-v1F#TyqwhH;HgREfT!9Y((xQFM3 zOrH1F=VG#LDw+{O7;*=1|E_q-A07*EvL&<23t6W0Xuz4hBg_r{EQZk5mjzXXVm}f) zKhbi)B6Nh?ow)b(TFsuVpK3Rhs=1eriG#tco`@<9-ew9(!o+2D^xzyA-OnA)tlRA2 zEyqEJ?+HR5H6tMNriPc6M}fqCt@K6b$w1MRfuHmMfktlF^#HYlYnTq}9ZNWp%uj`f z&)E4bOW_)1f0Ihl+oq-|Q?Df^hqxPBimBIHfQ>!_b{@VuAY#%sN?^5l)vJUgRTGe9EqQQhH_7o0h4mZ3W=JkN$x=Kke&POlhPZpQpfFO} zry7?bE~s5l8{%t>qF^#F4pwNmAuKEEI80xLXPx=}ep%zr89VqfZHw@%4Y^A=lvint z&@WMHJ3}dLbkUTajMS3%c}$)?M<1L}+vNcpU{5bH0>_@SKE`)m^mtLsZrXn>N1);T zcI*Y74O%5jAW6w5J~xoV)^r8#V^xw-Ub@JA6_W#8I8-|T3gEapEVu0Lkj?Z8@fHjK z`G7*^^4|3J=dmgE+0G{cE*Y3E&N?(K@OblETajxGFB;Y!9hOjO6%!kO+&A4jsPzgH zcN5kOVq`OAph#3(s06JD!;6iXp=%~QSJ8S4cU(?5j>@MpT3~n(Kx7j7T8s z{SzWL$`Ll+PcD={8z*=up(mN_2i0kl_Hl2$+hYcBV?WUblS%iCfZLhsWw2`}0`Dfb zS8S|*UOV{u`^1)&wxF{^f96iu!Cx0wgjb-0-I_nhQ!va*~SYnJgEOoUW_!tbA>UZ#x8z|78N z!{=pn^rRaPLJ<)by1Dm6l|HsA82seSm3jH671WYmf4Ifg4bJiC-N4XTfyS8_lF*dY z+Er5^v+~oLe)gQsBqONbu_TV=v8-0AXo?GpamGdpMph|#He`n7MSjWtsHQf%EBj*O zI`7<^9i*-qIJU&+7pKN1niMxSnse{XvNfbIPPp7C{%gNJT!#&E=*?|C3dr)5IjLWJZ6PErScJfq_q+jATiLe9vf>osClQs-0G-aN%~&#rcWIK_ zVGh+HO!F9^LPEWy<(HB4WU>2#TGpzQ&{EJDA3gm_3|XI9;5m?zAeaE+Y1uS%+EuXk zm9Yo3+uKdT4uo>lC6LlWGG$2CwJoqbO$H~q|IP^}D8v3i`kKXBCDVrZzef&=& z13Sd+A573RDWQ82goa(;1DEy~ae1Ft556BXmnXvOHR83n@xmkDE{CB zoL1YD+WMvB8r|{)`F%q!O=sZlmze1D5$yc1VqLGF5a+(E@R)Ng7Rxm588I*l3+PVd zlC&=WkZrBS_iS;hd|bVa{0KY#i)c4yCiLV4&^VbD?!Ou0m*C(lhYq?Eb@M#$K^m!_?T%`t3>lQ*fyU zmni2Y%7u?_x+H5l(d=7EC|!U!Zcr{s>v#R`EsSWW-P791Q=R( zKEzYoaNxFVeK}@XCZ(|2qnSNckSInk;|h8NiJetv{LvRyTnP}s1ZS$X5$a?K;ob+B zqrb*(?9@43AFXLZdNtgy%)bzHm{Tj#uz%JHtOHy2-wx`2w2E?`2BKa!#EdM%5Vuh_ zP?~tvlf~1bTctg{mzB7m*6|*9OXMD#N0L(1^>$3$S(a4^iuoz48Op70_V+Bx=%-LY zyNX=sa6te=ahy-%tA}o@Rj;!))!q?~yVQtwo_xLI;6GZ&q-aUiWzhcQ4uQJCOEu)9&9-iru(Qw)MPs z_;FU_NkY#XACF6-CcleBiN&Cq9Pc^R%l8Y{i}~Tj%rn=lFd#= zms#U8l=rt;)zNq26=x^}nO%!A-gT>&zwV=KB&~g&vy}vx=b7gB`oeAaOn?+ezC|?o z0kZqbDJdi`)Q)Rc9*$_4-Q3t;ebf{7kY_IMGApaEtEc_2qc)_}8~> z(zBjf0Wn0r4G+G7kqFPwZ7>maz9}7DTQ{o&FjJD6gM_$C#CN>HgGr&|klbKscZRQS_wP@#K7sE1k)Lqti3xJ9&w!d>h=X;epaPfq86aUX)+k{e z>2owT0`sFLf->{-)YeWN>{2cO2@snYDjEKAy{n}F--bM+;V|%Z3A=fwA<niL0G+sbE*(jujl)D` zzOyE%8N{vrTyg2(`KUm~tu>$dZ`9;q$Lz{!bE^VZB7%23fot%q8l&b{g5Q-fWncZ-1t#l&TK5^%55XWzhc3Ix|nei83oPfj5bB=>f>n&D$l#)N!-~t!-&faqAR;GhK zBbVRAcclc>-hz>P>(=AQPa{w7@$5P9_Pg_>Z{&#L)Lu|=ZEVb(q~?6vhWqls*!kTP zwZkoOG)heuV*DebX}f4E3h=*)M|UCp>x_pCc}z7Idpdo;p4hWLjCFgS7u%%zZ%!_= z9Y7RW*2iCZF0Fa{+lFxJPjl7~-*y4;`ql5sjD6GEGn6Mk;nH8^JZ~Q6J3fE?{NEhm zZz&O<*7Bo{EK?=)QvAju0s3vjHWZURK=1$^32X}H)yc=BUeg3}Z@Q!Eg49~cYQ)Yf zhX=tOwbQu&urHG!m$hVIxc`_5pd=)J9f8UV-{THYcxIS-%U1za^wLnE0MxbZ{UT5g z_7OJGjP%Y?K|jUSWQ}~W@NDQn$$LEC02u^(GB3>e*6O|XgmuWS*gMNP4dWhO2}wi1 znwn6roqA*CIpQQ7hTjaB{FhzMOaQ`c&JT?x)iW^?A>I?ag}6Wnl#D>>p2E@0GU%zH zCx_NGVCp)h8zInWnb@7w{@8xpEoC%Nhxrb7PMm8+_Z@DQewNPtL`9zSBUFsOBO5zi zad82j-jI-KfwhK4_v30c&>aowslt6ixOKOA(fJ_Hhp3L5Fz)QjQ|fJ}^K8HuJDs0z zT=<|2Fh{$7&eSrWBX1b`dhsj+tN!zvh`7|D0d(s0=Me#mKdKQu@iw@?JPiE1 zW<=;bm*-l`Do6LDIp6p%h+>E#(uaBMoaf>m1%_QhiqxP^ybn{f+;gV5%pCD;f$C+H zI9oWUzT!GJh()|Hd^9tx_tb7hJz%>mM^|%VU8swTQ7^f_hDGP(N#V~jtLHe&-A?VX zhlHL=jGUutj)Cl|fX-tmilQn}L15gNa;xwZv3Mi5} zikk4B6ww(uRzX7%-cCxQ=I$dVt5LcQuUUK^3U6}UFZD&dMR?F+^6^|mJ>7n-v~xPa zAEXNJ{vzLrFBn=kfOqNjzhQa&Zg>NmgT3}#ATqhO_^}7AYd(ILs8>C;okJ~arZ%5W z9e@|%Y-nuo`TS9ocmz8<^6HiX#Xs0SOLjCI_$@8W>C{J<6h_i}oTz2g>3_4xD!_Xu&a;f_aFW_g39oWT8=H3}XxVH?dQuUQAdsACy8L zo40(nfNq4NyW#?ImT^k;)*8d1@WVU3Z7FOGI&?LQMA4ZTN4O9u(12&>k6QPLz0JRt z7V_M4;C8%W&IIRLjM%ut55gFJ zqy9$>Dd8l#8Hx`4_%%j|-|T)3=$>Q~xfY|JH>v?A$uc3Bu)kpHN{j8<@2B}^D8Fzl zZDdzs?D={@CEZ1>DG7D0Ny6Mv+r&6AmcHIDtv_=_0GTQEX-8*-do4+9np^7r8o=pL z7>TiuFmX9=VxD2r>1@*qnufwCc;qLq7L3p)u?tQD;;@l~^F-ot2&uS#8pS*9*G5)D zj+%eE`d(uwINpXpY4Z7;jL~OUw*t@Sq|I^rzzQIyA~DSCPj!>}3DbzhMS^IOmY>$Y zHVp9HAN=?|#k*HB_|d!K?*^-|4$}P+<1T^#Zx!YSyh}3lCcqCKr`6wi2`McR%+Z~s znhP;S$(c-k7GL3mpfgeBIiEvF(!^&e7gxn}V!`9rF1M1&t-DKFFfOn6r?CiW23HNn z2{GhpNBelxsl)^ijdLl1KwYwAu6`d|b>XO{|D?xfoJ0D~&8$^}!5>=R6L9`+Oz>k? zx6+$qu}x$5WM^l;6N8s-gxR&b_2L|4ez%KXO8pzdWODhzJm`o(fK+A$unDU~dnmkx z%mUjLQ4(q5FTN9a+41{=N?lQaB?Rezj;5|9`ldGg_%m*n&O!KdUaKsz?THcr#_}8} zRuoTpcK0Je-$E_2#FJ z@^3*UtRI6p?&sjdi|d|OM+~%u+q?;d21o)W8v3#ZT6|8KY{P+8li`J0uw8J-8;oE2 zp7ca1Hje4S;Dz@02Op<#$a+y zC-ox#(kVkip&HZM>mQ${uzfr_md^G0jvLs!YTlIi!Fh0kHK1PKSVPz;v+Ql0YR-U5W-aHqin6*FRnyf26 zw~)W@1q1xZO6HLFv`ON-WK_`tu}f|T@g4$o1eGFyqHVuWrsX2AaNo&>ilAO;Qw@Oi zwLqR*8OBK)yfL-4xz7c4rETGLqK)L+W7@j$V+F|M=6}4O<0EEWdnUO-+&&{sl9Nf{ z`}Y4>_v=?0B@%-#oTtw;m{<6G{Zxt-z58|J^vUE6=!2XONZ;7Wmlx(F`lqilH@d3L z0&iM~PQ>w^VoTnywR2+Me}p`@M8hRVvyNQ7w795DiLc{GBHm&+oWUK<6PK*bTA4K; zE6I49b^oEx9Yj3xcOaiy;d}cgF5=SM`Kc#t4c3gE3q<>yA*o-!ZIrdYZfiG_y54TM ztJ)m(A13k-IBs(KTpkeFM&XmfUvq_B|52qU9dv9YrGt5ZlHVj+fPX6*vb{m0c5EHa zR%P{r5d&bT>t{lj`RXKq3f?HW=(q}}j2*3R^IQPLMJZAtK#3v<8l9tbwL(KUL`LgI zDCsy4?~QzA!HB~5V1f4t496d?Fy|F2y(pW_TI+I7&JaK0@nOV6*~-SqDJq)ZGZ?C^ z5GGz0HCAQxSN*SnstwND=Y%yQxg%d1Oc#KwfBz{7SmKWFVy_6RVJ@?MrHt;y1zPh` zFbVZ3o9E_{+1q?uYmv=#ks{u6(y$x{Rduaf7u&VPZ}DG;l`evFR8gWmdU8t_d@N|6 zUcw3^`DBG?NEMAXrhz>5p}V$F*N1GzUo3A^zI=PzP}imIWqh&qD0eFiS|sA&npAtv z8sf^^a!z5egAK~>0~5FVC6fctGUn+V$+yqAqS{~DR|N9kf<1El#Ydxoi53sW0ozyt zgzTT?Z!}ph-&OE|P}z6&?rusyMg3OX2V5-6S-L`Yv%JHnY_oE9FXuv~7D%s0%fp8W z`Wom(L~^`G9^SM2WxfS+)v~|$D4bS**adaNV;*?t;zY}t8u};T&%q|;pZ|9kX@>VI8+?aIHf81{=|eHf9Ori z3ngiI$KO7^72{cka-(lI0DESAYiI21q@15@l>zERjH6y0gF5XO0|EuQs#bYr$Sl+w zjTVfK+(H&eB?4tZF!ij9b@W^{tyv>#NKbDgXh0Zgw?)_a)rudI^%GOpt4=$Fk4kNtPTq9w} zalcZCQ}aueK`q2)8MK@;RTnlCC?Wjvt6XgP-8b1lm~+8O;}agQHH4d$TgtnB{Bwg? z{4|u9Zso5?#j4GMQ8#0qFE|eIkgZ|8GNZggkH+#Krk(z6js6?@5H2MGp;+d3p7uB8 zPjCOIyipi@1B=k|5_>0syu@0}o+Bc-Mnqj0jOJao;Q#Q31}@|cYo>VwD(DOAvU@oh z`Ua!;=MY1-g*EYdohjcz2qQBUgE^9pj^ww)GBI`l$AxeM%Yt5;IhEYt@{(S{APT-& zUU+(*B~mR`e~1t^;Sow=918TFUq%{u32vP)$sm3~jta-Dx}-{u&mnRLJihZ7NuMujCszh2G%VVp!O3$*dO{bp+RixeVp&(^~b#-U6?iIn7213e&fK2GUWZl^F1G z)8#mI0)+&y?hDHsYsgW13Rs_egtobb3}q06<7@8M+ZdO*s-X4l$q@Os_5Ms<0{|Sd zdvOP}*QDOr{8tMw$)Tr2TqZWFwO9f58A-soqPE5iO~O2lXXyz!Mp@wf2kJ%rk0z{1 zuHH$_&Vq*)wQ6a2q48#vqyj|hugS2XCWp%UAFHKQIb2a!_?5c>B#>XbOtMjVjLc^x z|8IW*fc;;O159%D#lN>VAO-S&zjQ#I1(-+XzuHoua8vwW&IAa7tBf!F!;AoEr;-5w zwpafjCjW5U44++y;`}0Xd@s!Y920`g5c>Hdz4RFEWlrfa&Wl*^%X7W7Qbz{#S5)KA zNhL}NTwutq04G{LxoG0D(ve^*#Z+SSai0a{qvvF|489W8b8+-S6^gFX62o|xrDFk}c zsqweVJe{eW05i4ozh5hC1UVNm`4cDU-GMxv_SK6j2zO=;j%O!zykO(nPvdF}g|Xj& zKLp_n4Y)~ZF6+cLL>B0b`!6?VwQZ4$xg+T!Yo3zrR&(DKZR`2M>Qqs+b~5nJE5t>Z z`s?1G8ZzFuJjIkw@dU#*!&Q!{Yh=kfk%y1&$Oz_EqK_QMMGbwuGG^czkFvR`Ot@y? z0gXoI{`|t7#~6tz+I{+2h=;y?)=~&Re!D=<`y4S_|6qc;@V)p?j0R(eS+S!2v|FlM zY)V>MRT%TJU1wU0IEG={${2B7cW~DL_c{OgG9l0iD4njEE}d4O#KOq+JEu%Q zi~w$bq#Yb*H@2}F<9_q4%lmV#Qzab{y~t5MD5+(x%H5{EsdQ)U%5 zPsomaQD!eTH2!=>SB!93iX>S&>ncC+qe8)GQJ*(~V zf|b2~eq2y{HDNrgfiAxKb|`Dbc68X}Et(U){4rwQZ8U^T6HALZ%cB1j6&x%p=jiCFzFicYw_Fhu9sb1Z>HB8wmk?V{dTGq ztXp{SZvD{q-ott);tMRrnPAUf%yP&|s`kddHRv*Iqu9>`VVmv0-qY5}eByQ@Qi7Yr z8N$7FS$HTYK}Er4vaV+QR<#6b70bNQ7=r{uL~z7-*GKNT(L%QGCC|=&bc@!P)Nd-Q z8+?Sm-9T$Q*xQkLkZjQ!zzw2U{k-G&zbgCcsHXluZWFYy(>U{rAb8gh%Xr4%IJmoem(4o)-&F?-Lhw}gB zxF79zQiSf~sw36kFM#_n(wZ$TR>vy!A4OufUfct?v&o*)L40K)K;lEu&&1pNprQKmv=CxOwE}Z|Q6bc>pPJSqT zu+m;weCt=;RgyCyofT#Tp3;3FE5+Nl5En5!a^E>sxRF8qll+xmK+xwd#=;mwZ`Oc25u}#)~>!Ee=tARgfH|#&MDsd<< z#xl4WYfUqnRhV;KW|sH{qiMV^Yv2CgO;e{9gv?TG`<2r>fu4(>ub56qFQMeTE-uGq zU_XmJ%_x7>Z0!6Y!THB#V6F-UU(qxFv`@6Hwe_o>CJCl z5l*=73KvF&Wf*+9QC$2gnBmt~{dWAw&)F(?-G8))2ht;?`s~>HJjxlKg zs&|kNMYy-$OIQ!HN*U0^XCiNSJb2OZB^q5>Dh7UQn${c$Z)*2aGp^I657+ZBv`OaH za~JVFx`f~ymj(F4gnQ1ut~Wlx!dIBw>q71R3}2XF5(-`8m!j;Ezm;kxdrm55EQQnJ zt{sS^{|E9k#bKqm_zwALG^VPF^!H&jTKDHJB*ZKbm7wbb)AHdk`9|uNdUoYdfAjc` zOI%`<1kU4eP8_@S(^Rn__VVNbR<$1W+iQWMRBIVX<3FJ0{ikRjjF+Q!y5J&Xn#2P+ zjd*JE2c)M=-Jl-<$R>AUlJ-*rYgDY;InHmV@7A&DeqLOHgBE17NHiGR{-gNE@3tRY z3B%oIvZrk_ZuBq@O?(cDVPU{`IoR~afuV`Bda%5H;+Torg!vSM!#5l)bBlM;(7}Q(X z{FXy1u( zy}su1V=`ZDfUZd+!Go~<8sxAVp$*b8NLHa3eUoiQ<`oSN%ZqgmGPwu(o^li%xY zx|j@H8lnn+i{E2LcS*h6@;hyHD-~1_(7{8t=U1a_@gL^iyd2^5WKHOgcXD_#FTzY>Sb+b}4 z{kot8$ydzptMzBK>4vExjIDmEq+Q?1gfEqFjxi<;vA!~}VD)S%LWPf4@dv6jS2>(GXyffbsn*?Wq8|w&RxD?$sXVn-A+!msQB^wOAQ>c$&wr zOeRek<%O6?$+%=jZRbUE{nUrS_vd{ZQxq2|>+OnxDfu*cXdFEOt~{8*B}i1YJ{lK4 z(I9jEqwusWSuG%{FG8r+7c4=8?*qM6>STOl#)=CZ8#syfldSTVt_@OdsC6qg@4W@) z2cn*g1A}e#`l8pg>xcKy%Y8nrX|Prwj?HDCf}X~A*0r;jG3y>+rG-R(68x`V4Ol}7S6SYF@yeeE9T`2>}4yZPE;+;U|EFCg#f7vWDV%irTNabG6S{U4U^ z4;2v^TU;R!_Qy;7nDHb29;A0j6Mg?Y8~ z5Ts_lanH~{NoQp@N4kBYD8xdb)mW~0gHWS_#!n^ahCh)&sS}Oozp)XD{j7CyMvgRa z_QK+;zgN<#F7`g%li3|(ADPQbT+{h8fO*O`QL>mg@co5pO8QB<_-Zfjtx!{y(cp7z zmaY?XLVJSe^I7@?1=LB1VWZbuZn{pMctq=S2)Va$0ed_#<|`P?&-ZNWr`3q}b8r#= z5}birf_=$q-UG@hD&HutWN^T2XKbW0Xw03m|6sZ_(YL`?lB5Hl`ts-1+jR?fiPG;2 z4T#X8IcJ?m zgkNP35Xfi%?^KjeT<&WL?hNX1tD>cpx(~?iDal2a(gga55n*iRV4yR&Z+_^I%ln#o zs1iqw=GXC0lZw9iuYkJF)(tD^V0QU;-x;T!eAZn_Y>`bfCO&lb!$NoOIuo*ja<8J`TSr|*`F~x zT)x`vl72)``}xJPXBNj?6Oq%-vxH%?Hw z^wig|xdfRi{GKjZ{vqz#sCq9Y2Y$_c9Cq0w_6}$p1dh?N)WgxhGg9lq{`B#Qtp1(F zY|>QemWURg3?H}AM#g*=o3QG|cyx;bJJPRlfRA&LNnlG890Q!WuTMPvQi|gDR_?p% zdFQ$~fb)84db4fz-QZkHGTw!AF=7NqWQiyN*hmu@ti62%^$tB{QGumm$YVm-Zozb^ z@joR?x8V(}x?FlGiKgHVaF-gdF`sw+XoShft{a;)xEs#+3zZe9O)`WZK`fvT0`8ti z+HR?f(5kTGuq-oA1wefKw>h^VpOj5Tbq?>JV3qf?nXOH<0x7xGU-aktL=j993+?g4 z4&xG}+K1WyydAwceA{7%Ou^R6L%Ax+>NW1Aoi8RFwBf(>RW#pS73j*n=|%szHJqqm zkAnNDESN@V9HB1xFq-x|&fmNbIKrndv`>FiOQ;wzSUE}E;=sM{VB>Y%^(1_!qb;tR zYzT{d$vx9f9ms~;nD|^k8;)?0mWo}YNpvZkVZ1~<08eZ=FU)<#wd#p29kF|v14+rd z7IJ38cGyjF%ztLv)%j1X4iGI%-d|kioM!5}J#1GdXkZF>#Aj}JMqi~-h7RrP5?sg9 z+t)J}>;s{$ozKyqT5=+RSU0G~TxjuEYY+AK(W_urg38^B1gnLXq+v-L#?uk#+mb8@ zRh!={9jF*)ucLj(U5TT!(z`fovO1^qkw)v=BItN$BW68b2GK-&*vu9{m0ZWX%}KZi zR4EZ0*7GWOAWpOc^}vHl|Sc&l}X_dWYJDGm>Med&XqCixgbT=E{q&Fu#1CnLX*Tk7V^+jH&e zk)-O?91A6Wo>G?MYjZL(Z%Eadw0-k~*$1?gtdBshv5)$*lv4vv=sEuFKAG@7+#OxR zO1S}#^tQuy#DFTbg2NlzSEwj`cy35IWauqd#gMAcyquaWnkEpFb-AZb-b@Rtn2J)z zW;lCC-<3z(07o(qr35&myUT;_!YEd!hO^B~49VMD07GjL|7o3DzwgPRCT(H}kKQ3+ z)K*k6Sr$bX{q;9Vknw@~zyBT~K6jr46Upl|A{@Rn+vLRXapV3J-I_ZD= z!XE)=z_YtgGwOue>fDq!ldHv(*iw1?I>2`Scn10-rS6@0fGfOCG1(&4)1(OKH12PNDu@emA+H&o(D9yE{9T=KFXAQHSKUd-Q-?Q!? zGS^fiUA2Id?MJxR=n?C8lMVkwZ9kBXv|(($3*;pUGzLC<2#$*IEE%~WIsT53^4gt}qR=`z zcOhp^>w(&Z*3D*cB6h!R7RFC%>hgV;VaVV!;AE(-J+g@Sj=cZ~9`S|80 z73m8DQIlqx@-)nPrEP`Bf06_6rV#M|puP*QKRkK^ocXtp|NCRU7MJn=E+~KgzpsA= z2AEM$%U4=ctaxSL7R1?$fC(r42QU2XNBoWrfSYUg^C@LcMI$=cpqi3kh6h*wvcnsw zOsO}4DA>^EG4yIm7R#Zja@daq9hKzOJN8L_AqAW}ZvS>@3y`!FPphz{NgkF&9p5%V0`m& z+rJYw)VOU~Mx?#0_q^)ijA-O^!ZC9nd;7)zNxlA;f`)@(vG`ca}E5mHj* zMP9EmxQdC@@}manm4K8MiF3C_k3x_1l+^?+e*RN5fUHS#pvvuNmN$j;cW>Iw`BrkS z9z3BQ(Do_tJ9dw~*7{WcA6a3RE}P+?Xnd?f#B=nszS)i*$bpf570c$jyA-skqw8=t zJ2Rprvb-$q2K-5p{J(BN@Qfa(a`v#M)*7Er@hOa!Z zyL2;WfmxA*p_n>}hLWe#%v5Vf^EHASv)<$9{>VNm_tybjGVnYNF`MncNc$;bEJ7o4 zzQcrIK>!o319Qxu4sRHRT6;on2v;WMj7ZbAyqEcTcLX!%;??d-P?yfoChbakUAZ%k zDbDO?(OQPGE2)KZp!x3(V=VJ+;B^XjsDdUi=T9{~eC_!N&w$Ov11+dk-z18suIUkc zN;*zN*qB}?-?NuE4ZKGmbn~zrF*~NKX2i!taBuMXTK5{cz;!l=U4Jj!&Qqg!t{Stb zGb%zQv(Vm{!$uvvy-29oc{b_NO(HkmNiHepx2QzhP^%Tf2T|H8h8D2M&R%%#=Q zY}22T4;))yVYf0N9;c*M1pnEXm1 zC4P@tDlexmc4_i5HT36Ixg0_CXlBo8C>}3QM7YN$g|2iKjKMJL2O_wG?!H^)^NV$6 z5#B-VvQnZ-tma%zOfvN%+fiK-&tR9;xZpc0S^nvVzQMTfrR^`28QdJPx4< zwGm>HxI+fmKXf*MB9j%U%*FE5U-eEO1p%v4DeYKzysj$r{1?XYV+IPnXFKR%lQ6wL zN2}jIAZ;X&8BOdU-fx%GlinzRW9%YQy?P$Wo(bEZ!Rrd#3^z??bWMBe#LmRgzSy$A zjkHWlOL+YWr9m6+=?~0K%MR`M`v(g4ei}A-J-KFTGZSPx$PWMTn0}k(XIX6@?HVht zB1$6S`%($@%kSUIIJS$-Ecoyh$((r$B~%6O0$VVoU#3#>i5Xl4g?wL@zv>4)3&F!r z!;>9625hE3bfOgPn{rPjt~gZFt(2n+u60PU5$A@^0s_Rr)AXm=yJQtwK1NfwbIxCS z_6z~9coD9t7(4DI|8SvuH8#4VlM+u0g6>1YQ1xOoliTs+6}dIT0F^Y9cisBB?6b;$o1* z0MCzyb53md5jLMblY#lOiEnWyXZ&{xg|S=4r~DG%x%2X!Eb=pHyVpkjU0b%KbxwF{ zJU{Z#+Vl&;=io@mjbW@ zSQ`PTw#a{A=HuVs-%PiNCmr5*C#Y5zP$vA{j4@UOmDnZ3TiCiyJS^9s7i6uZ z6BVh3iy&P1J}Jw~Pb1yy^evOREs}*w242_VUm$>>nTcTeO{t~)<}}uzpLfo(!`T7c zjTH`~L0>CS3*j=`Red+SQk}%&HKDayZ8FN);-25_wA(px!%DjCt^`T>{HH2&5CcD2 zG7ndMAy7m&_+`l$xW)*P_?HUE zJ?%EvQHs{+D~4y(z$Z<>@tv0o_)1o)NPUd;u7u%}n*_*dw!}GfQjzUP8&X7nZ|Kr7~}7CR)_KM*`9vvefXLg9639B<@@_=Q|WU zZ~nX>Zyij!em>m_SVqy*fYgo848Y~)wQZ$>l_g{o5b-E`<`wA7)DpGJ)?4g0spsi{i??e_(g}x$Ma`?P4OH8r;PPyX zw)SftM_Cp~wO9iaObjW;bzxA}woj@{HN{HMI)QB07AFDN?7<63EN+dZpxOGy#ISIB2B7kL^|;9*5^XiH*XO*4j+$*9X9(2&Q)*5S_#_nH+r!`yn+X;IF>prOhY_Hbyv@QPJ@h{sp75CLU4J5J7!Ilsa zXGeAnOgDg(68nwSKC+p( zl*d0@<%3N|4`ToW&$Ht9os85aD?=wwpMz5tlJt+%Y_Dfp)V0I~5^SOm$3A2G$>^&} zSF;-Rn=IzYQq~+^nh$83C{qR4U;LX95Z7EO$pWnjx?bb3X{i*S;TIO>f&$G#F8NX# z8Jx3u`_5~N&?ZX84o?wMUL1*?zhMP6naB9?zh!C5lmSn(9D?j~tWO*=)Z42*Z&8b# z6BmH4tT^9hl_J=Mo4Kx0DkJ+StFh|~+Q}tG$Fgj4F~~#j=(UrQwQB0Y4CJ&3DPcn5 zn?LH+K#xuSLipT=&2$tDZ6uxp;4ykP2(hyhaS||29)Nrc6t~99*}z&C@)=jAeDNXs zfx*)P*bD08_dTe74T29CDS&+Op=PJH6b^1}mR%%YbH(Zm`}o}*30k04U5oiH=-xX- z<%MdRC+rRlgFV&O@7B6NhdL($P?{c`%7dmg3x37c!ld6hbB{jxPV^$>S!iY@skYVs zzN-z?iBil~nP5@PhOItb8`+{^sHe;YXb*sDKp{=C7jI@Yw<)WO8M!#d%3z_9*L8Tr zB`u9kS~3>G&ETs>O{z&^-`>;BfxSz9gv}uTs@wwwR_18vNN@gS4K$UN7TsGE22$TN zyxx9SVX)s|f1Uj8ZG@iA);=y=N;K3Keqx|;x@$jT{QF>9y8j%o?C)prhyQ;OwY2Ed z`|I;BR%fGhC&0n_pKAUJDtR4;<^6RMK}=gp22Q7KE_dyp)+Ro)>aW&}%MjTeo;vS> zQ{p1E&KgsvYEt>l>cUF5By7rz;S;@+5fyIt(;XNHz)%Kg?fXz0MWudKQ5%(edH4qd z9jyaUSoUsE*`ee%qFvPJloDfNDOro5Ae7&0J8$zE*2$wwI-8uDwKqdx)?l2wmz@^* zG9`fKc5&)~KaMZUq3V^j0e31x>8hf@NxATeAwrOTy^0m@D$$L#zGkCRUb&`)Ohw)9q=NG1KmZWDot|0@Dks)yh!p%?NdCU#E;M1S`tg`fz zXQ}IsdFOinFbaxl3G*(gp@N}uh3X;6qtQ8+t0QGjINz!qoSI)JMp;Ry`<|Y1pU!`*MmX*vYGmQ(y?MU zu&I4@;H*`8ZiV5rexRlHpo!mePn^;sgj*(R_>SUxgj%+40hwVvmxnv4SFfPmK`+}j z(~H5QzV>e0Q`$Tp_u9`7R|J1s3VdYk_sr7J%>VZVOJchX!p`7RVAeKW<-YFOAKBKUo~qu;c=oJcm%AGJ3nAzmDMH1s$alYD)j>8}5)W z#WshsX`>rpep*F?k|W2W!iE_?Hy?4UC*yn)@)nsD1-z6PhiSh9b6X5yFtnDm1R(}h zA@oYcKNt@SEh{|0MIXwowr&@_=(t>R6p9?d`+q>M2Oif<>gs$MycsW%n?V~uA8u4W zaal)lTfO8OB8vQ5=bvAgIFdQ8o&mY#tOTuGFU+fAt>2&Zo#)R;HAaMaF`__SjBsqN zgK~pkk{VzG;>D_d^X8BF^}VQt7Km_YzKm5*;uC;mdLs8Cb0oJcascYog*lfdn$HM2 z$e+*4PFc>B7ACLy!lk<_5dlsR`fnb@!__X$Z!enKB?3Q1a9Xj+h=3vEuc&^>!xg*p zaN~O=M#3lk*}a&!28el9_QNd$z5d}5bBEro5A*srAgbcB?Brj+-scuZPlX(}Bc2Av zq&*CFKVzn7RiWv7RdX532wnV(H%No|wy)~%4Lsz#uXMn?drql4NW!ymGL@}tfp^rK zl2_yjp@-MA_9)349{SE643vhi;*Lg-FzZHO&BYAClcGV!?8$Vs{yhaS2O(^G6SF?@ zk^@Q{d#|`B9s8(MtXamRFe^BxLVtWXW0Nj3h|jKSRAvC5#R{6N(n?pM+P^Nk5SQT( z2*bIksBc6Vc(lGb`9Tz$Y(A}j@*0x$jo48gF)Q4gg*ANP5l!-!8JR&1_Gcw$a2 zy!zHEwPdqoG6T}(s4{H+#2DqQk+p%k1Sd!J` z0s1<)ppP-q25s=#*UPmqW+!sZ;d_Cd>6VySUDt;he2F2sEwVTl1K|(DHVl@c3zrA4 zC7Cv9f9VN=r?4GBivg6XUPv#H$`1^X0#p3S*dK{b&UuGSFlCzu=iT5z~NoO z-{S>6Z}F;ElUg_&5bms4%{x%BMe_4_yN}*w`a}bPxQW%uaPSyUt0leGOC=0|6WEF z=j;3h{DT>)e{vK&xS7b3%>@roJ91W5yLRZ|T?|4j9lW6*@zyT0YY4@VaQg*_$>#w7 z^6xS^0E-sw4~!;kU)8D{5N}U{IH#qa`-g=-45)r&RnygvQ+0qa?msD_62?Xkhx^ZK zSNBAKw5Fj6@RIkP4y`evtaA)z z1a%IGQ5g~t?C3D;EDas6w}=O19pxKHIj08nXM|piRFOyFb5jY%#jW?Be4Y8| z8&c}1Jg%VF+gQEATJY+2xDreSI#mzFW3WLE<%52A0ND1+t}(E=a+cCY#OAa1ExjKO<6o<3vnHG2bA9R5Sj%B~9bi;)s#iNuMdw&x z&ZD5K&q*}!GoREx0Ma7peQhpjo!MIC%bm8DAD;g5uVwxp=d?cIcPakts)T?9yX4J3 z&9l}|d70-~$d=E1n>tOX zXn|yK(s#zB_moP-pLstWz)3<5D42*7gi^k-;T=B;EBak+h79h(NGqToVcdjf?0S6< zvtFzQP@r0a)7EYAwy2?#4i2wq1A~EzPqO# z#=J~{Y~XCQ3PA-^6~W6;cYlc;;Eyz*&lAnBNmAs%v|9( z1wk)*k4s>zk|=i0s1qgzq6PhnfSXi#UWOZK&z^(xpYJ! zF|<_Xvl$6;((PukDKa4VIl+x{S?B(oH<^uyMj^G!lN`KfE+gnQyJfZh$dHru+heR! z?mOiYAP!r*jzx&${*ajn8Q!h7H*9Jx?p(|n z4vsIWpQ21huyq-yidkV4fWOsN&YcRG45<)wE}j$w^Y^6-c6&P&9PLjoZbzm>bOZK> zi>$P8o~6IOe8cd4YFNYUz}wQ2GUab$i)VFsQFA;=hI=2sn5hej#eG-_b->m=dSnX$ zfHOz#m;PjSo`@70A#TFMa~l^@Mgh(eGm-Oe#jxF@JV-tnA{kdjbEGVD%h_(`MKMD0 zdkJrJ4m!&7Ufz|m@MxA>Cp4?etRShE5E(;bVV;~sCrZjfb;_r0{KyJC9L^)plye<2 zDit`W^Lei44+mQCl{di!T)rZ-Tp>lYhN}F0;vllWriHy1sLXmd@xqI z7+c{uKCD;h7@TfVpPwMnuesnJSb~@}7o3nzS_pHub7}wdRhX&Y&FN!Qsl_t|;5nwh zLPe!sRq`K+xFFL(YxC#)m+gkUCDcFp%CwpEZ6_+E4yzkU6*Wg?)AVlZtH$%^;tjaS z9~!NL6pF%B1KqFJ1bEB1K<}p-1ahCxgX#@8a{$gU!bg&4i$p$hJPZn%$Q&vPR+}z7EE5P zW_p)|Pb>f(C-?JwoL73CW@^y`;PZk*(;;JDZ=H;>(!%`ikydUmAMokx(zDC>*kU_W zaOP6I^L%6d3)-WCWe5K5Mw-@J^_fLZ+tF}8kk(FP+Bd1#VRi^{t26zLC+#2rQN8>< zjJu$TC&n|%_LOWjW*g+~cSIRd{3NaEdI6jUsZ|#i)o5RTbdTt(Bl( z!gpw=%Z^qZ?6jS0e{ArrA!ikeIPsfX!VlkAuzAJzuEShrFCkiuPQ(0n2Sm6Iq^v5C>m5XPpR+f1E@AvbyMV#b_i`7+KrrHaDYbbOh(QvuQtG~!_a z{zKSTub%SxuvhI5PidM$n>c^tqnu>Rw%cYtMxN@A_R4Q9q~52r0BB9IEC_NInB5xL z2W2cZ$=0`>iCIVPj{Kb|My^e8ObZm9xm01yb_PD(7&%el?zS#S<K5D&u7$w z$ix$O2wy_WdsswOX6i;4==YpNzdAFNTd6NMtLp>eQiT{*Rku^nZm@2r(^95XWyNq% z9tOjI_Ey3wpes-waY5B8C0zP+@i_Y7F%ixANBW4Gxr!?5f}06^;{MG1RN6z^cI-d` zRWJKO$vo{KrBF(Yyr;bj6X#aL`8NgK8Y^+Z9ki!m*rr8~Bg9yfK&Ie#e zYnyBBvI+o8_BpzY?*q`BY#$)gjR;vZ3vzw3%HnD7ZRiiOCxOx<=vIN2_YI@)95bX1 z1KB(%Z<>{&M|Xa-OKcu`j$dR$Ch?j$r5j}n8Nt&wE8PmP#NQ0{m#tQ%bs7tYQZ_N9oO09 z3W~>9$yG7KLau!ruO5~roxD0S(BN*3Pcl=KL6(}-ArG(I-pVW?T&j-r|ATtE$rtxB z>r02?y-95iojAPUgxS)g^g_o1RZZIHR-Dg&3LG=@2r-)P!b(=EIGK?x56+g5&2` z>I@J$hvNW*baf)^G^ugQD6Kd}{(4}GB7M*(Cfo9>A$(XBeQ(2r&{PW*u8hdJW$owzyw}{($+FaVEm04kyc2&)DUiBnIm8EUZ`W z%(Wt3mkPMiE%lpW1xd%2amR@|4&JUm!D5|Q_Aojpz1sN`Sex#6VhH~Y;_8?%QtDMaN891BpcCjxFa#fwP_D&6IGNEYseun=7P@6eVA7)XkpwwGv|wjO!`ko^hJEi`UGSh&%ON5vjhr> z8T%OYWSWtJ1Pfbu+Guj)t9)&|++lQR7{l}o(zi)qL-#9K#G0&SyG-Zs2{|li1mO38VyhO1r<+y2bMq|lL*bT1HYnULT7Y0y~ zU58jF48+ZG>ZNd7#1_)AV-teG6$MiE#Q#iKiry_xU!|$YR|%6P{Y9v)v+LmcOU%uY z(o?__DoPDNs8#D7x^v;F}dGrlQo&3$3_({ vvXiI3Bq0lGLoHnI$UA&X_1|f^o`Q6>UrDP&N_;3|YpK8*`j4v~+Q0rk`_A?E literal 0 HcmV?d00001 diff --git a/previews/PR273/connectors/through_across.svg b/previews/PR273/connectors/through_across.svg new file mode 100644 index 000000000..82edb6497 --- /dev/null +++ b/previews/PR273/connectors/through_across.svg @@ -0,0 +1,317 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + current + force + stored energy =capacitance x voltage + stored energy = mass x velocity + (f) + (i) + (v) + (v) + + + Through Variable + Across Variable + + diff --git a/previews/PR273/index.html b/previews/PR273/index.html new file mode 100644 index 000000000..af95e8611 --- /dev/null +++ b/previews/PR273/index.html @@ -0,0 +1,377 @@ + +ModelingToolkitStandardLibrary.jl: A Standard Library for ModelingToolkit · ModelingToolkitStandardLibrary.jl

ModelingToolkitStandardLibrary.jl

ModelingToolkitStandardLibrary.jl is a standard library for the ModelingToolkit acausal modeling system.

Installation

To install ModelingToolkitStandardLibrary.jl, use the Julia package manager:

using Pkg
+Pkg.add("ModelingToolkitStandardLibrary")

Tutorials

Libraries

The following are the constituent libraries of the ModelingToolkit Standard Library.

Contributing

Reproducibility

The documentation of this SciML package was built using these direct dependencies,
Status `~/work/ModelingToolkitStandardLibrary.jl/ModelingToolkitStandardLibrary.jl/docs/Project.toml`
+  [aaaaaaaa] ControlSystemsBase v1.10.2
+  [0c46a032] DifferentialEquations v7.13.0
+  [e30172f5] Documenter v1.3.0
+  [615f187c] IfElse v0.1.1
+  [961ee093] ModelingToolkit v9.3.0
+  [16a59e39] ModelingToolkitStandardLibrary v2.6.0 `~/work/ModelingToolkitStandardLibrary.jl/ModelingToolkitStandardLibrary.jl`
+  [1dea7af3] OrdinaryDiffEq v6.74.0
+  [91a5bcdd] Plots v1.40.1
and using this machine and Julia version.
Julia Version 1.10.2
+Commit bd47eca2c8a (2024-03-01 10:14 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-15.0.7 (ORCJIT, znver3)
+Threads: 1 default, 0 interactive, 1 GC (on 4 virtual cores)
A more complete overview of all dependencies and their versions is also provided.
Status `~/work/ModelingToolkitStandardLibrary.jl/ModelingToolkitStandardLibrary.jl/docs/Manifest.toml`
+  [47edcb42] ADTypes v0.2.6
+  [a4c015fc] ANSIColoredPrinters v0.0.1
+  [621f4979] AbstractFFTs v1.5.0
+  [1520ce14] AbstractTrees v0.4.5
+  [79e6a3ab] Adapt v4.0.1
+⌅ [ec485272] ArnoldiMethod v0.2.0
+  [4fba245c] ArrayInterface v7.8.0
+  [4c555306] ArrayLayouts v1.6.0
+  [aae01518] BandedMatrices v1.5.0
+  [6e4b80f9] BenchmarkTools v1.5.0
+  [e2ed5e7c] Bijections v0.1.6
+  [d1d4a3ce] BitFlags v0.1.8
+  [62783981] BitTwiddlingConvenienceFunctions v0.1.5
+  [764a87c0] BoundaryValueDiffEq v5.6.3
+  [fa961155] CEnum v0.5.0
+  [2a0fbf3d] CPUSummary v0.2.4
+  [00ebfdb7] CSTParser v3.4.1
+  [49dc2e85] Calculus v0.5.1
+  [d360d2e6] ChainRulesCore v1.23.0
+  [fb6a15b2] CloseOpenIntervals v0.1.12
+  [523fee87] CodecBzip2 v0.8.2
+  [944b1d66] CodecZlib v0.7.4
+  [35d6a980] ColorSchemes v3.24.0
+  [3da002f7] ColorTypes v0.11.4
+  [c3611d14] ColorVectorSpace v0.10.0
+  [5ae59095] Colors v0.12.10
+  [861a8166] Combinatorics v1.0.2
+  [a80b9123] CommonMark v0.8.12
+  [38540f10] CommonSolve v0.2.4
+  [bbf7d656] CommonSubexpressions v0.3.0
+  [34da2185] Compat v4.14.0
+  [b152e2b5] CompositeTypes v0.1.3
+  [2569d6c7] ConcreteStructs v0.2.3
+  [f0e56b4a] ConcurrentUtilities v2.3.1
+  [187b0558] ConstructionBase v1.5.4
+  [d38c429a] Contour v0.6.2
+  [aaaaaaaa] ControlSystemsBase v1.10.2
+  [adafc99b] CpuId v0.3.1
+  [a8cc5b0e] Crayons v4.1.1
+  [717857b8] DSP v0.7.9
+  [9a962f9c] DataAPI v1.16.0
+  [864edb3b] DataStructures v0.18.17
+  [e2d170a0] DataValueInterfaces v1.0.0
+  [bcd4f6db] DelayDiffEq v5.47.0
+  [8bb1440f] DelimitedFiles v1.9.1
+  [2b5f629d] DiffEqBase v6.148.0
+  [459566f4] DiffEqCallbacks v3.3.0
+  [77a26b50] DiffEqNoiseProcess v5.21.0
+  [163ba53b] DiffResults v1.1.0
+  [b552c78f] DiffRules v1.15.1
+  [0c46a032] DifferentialEquations v7.13.0
+  [b4f34e82] Distances v0.10.11
+  [31c24e10] Distributions v0.25.107
+  [ffbed154] DocStringExtensions v0.9.3
+  [e30172f5] Documenter v1.3.0
+  [5b8099bc] DomainSets v0.7.8
+  [fa6b7ba4] DualNumbers v0.6.8
+  [7c1d4256] DynamicPolynomials v0.5.5
+⌅ [06fc5a27] DynamicQuantities v0.11.3
+  [4e289a0a] EnumX v1.0.4
+⌃ [f151be2c] EnzymeCore v0.6.5
+  [460bff9d] ExceptionUnwrapping v0.1.10
+  [d4d017d3] ExponentialUtilities v1.26.1
+  [e2ba6199] ExprTools v0.1.10
+  [c87230d0] FFMPEG v0.4.1
+  [7a1cc6ca] FFTW v1.8.0
+  [9d29842c] FastAlmostBandedMatrices v0.1.0
+  [7034ab61] FastBroadcast v0.2.8
+  [9aa1b823] FastClosures v0.3.2
+  [29a986be] FastLapackInterface v2.0.2
+  [1a297f60] FillArrays v1.9.3
+  [64ca27bc] FindFirstFunctions v1.2.0
+  [6a86dc24] FiniteDiff v2.22.0
+  [53c48c17] FixedPointNumbers v0.8.4
+  [1fa38f19] Format v1.3.6
+  [f6369f11] ForwardDiff v0.10.36
+  [069b7b12] FunctionWrappers v1.1.3
+  [77dc65aa] FunctionWrappersWrappers v0.1.3
+  [d9f16b24] Functors v0.4.7
+  [46192b85] GPUArraysCore v0.1.6
+  [28b8d3ca] GR v0.73.2
+  [c145ed77] GenericSchur v0.5.3
+  [d7ba0133] Git v1.3.1
+  [c27321d9] Glob v1.3.1
+  [86223c79] Graphs v1.9.0
+  [42e2da0e] Grisu v1.0.2
+  [cd3eb016] HTTP v1.10.3
+  [3e5b6fbb] HostCPUFeatures v0.1.16
+  [34004b35] HypergeometricFunctions v0.3.23
+  [b5f81e59] IOCapture v0.2.4
+  [615f187c] IfElse v0.1.1
+  [d25df0c9] Inflate v0.1.4
+  [8197267c] IntervalSets v0.7.10
+  [92d709cd] IrrationalConstants v0.2.2
+  [c8e1da08] IterTools v1.10.0
+  [82899510] IteratorInterfaceExtensions v1.0.0
+  [1019f520] JLFzf v0.1.7
+  [692b3bcd] JLLWrappers v1.5.0
+  [682c06a0] JSON v0.21.4
+  [98e50ef6] JuliaFormatter v1.0.50
+  [ccbc3e58] JumpProcesses v9.10.1
+  [ef3ab10e] KLU v0.6.0
+  [ba0b0d4f] Krylov v0.9.5
+  [b964fa9f] LaTeXStrings v1.3.1
+  [2ee39098] LabelledArrays v1.15.1
+  [984bce1d] LambertW v0.4.6
+  [23fbe1c1] Latexify v0.16.2
+  [10f19ff3] LayoutPointers v0.1.15
+  [0e77f7df] LazilyInitializedFields v1.2.2
+  [5078a376] LazyArrays v1.8.3
+  [2d8b4e74] LevyArea v1.0.0
+  [d3d80556] LineSearches v7.2.0
+  [7a12625a] LinearMaps v3.11.2
+  [7ed4a6bd] LinearSolve v2.26.0
+  [2ab3a3ac] LogExpFunctions v0.3.27
+  [e6f89c97] LoggingExtras v1.0.3
+  [bdcacae8] LoopVectorization v0.12.166
+  [d8e11817] MLStyle v0.4.17
+  [1914dd2f] MacroTools v0.5.13
+  [d125e4d3] ManualMemory v0.1.8
+  [d0879d2d] MarkdownAST v0.1.2
+  [b8f27783] MathOptInterface v1.27.0
+  [99c1a7ee] MatrixEquations v2.4.2
+  [a3b82374] MatrixFactorizations v2.1.0
+  [48965c70] MatrixPencils v1.8.0
+  [bb5d69b7] MaybeInplace v0.1.1
+  [739be429] MbedTLS v1.1.9
+  [442fdcdd] Measures v0.3.2
+  [e1d29d7a] Missings v1.1.0
+  [961ee093] ModelingToolkit v9.3.0
+  [16a59e39] ModelingToolkitStandardLibrary v2.6.0 `~/work/ModelingToolkitStandardLibrary.jl/ModelingToolkitStandardLibrary.jl`
+  [46d2c3a1] MuladdMacro v0.2.4
+  [102ac46a] MultivariatePolynomials v0.5.4
+  [d8a4904e] MutableArithmetics v1.4.1
+  [d41bc354] NLSolversBase v7.8.3
+  [2774e3e8] NLsolve v4.5.1
+  [77ba4419] NaNMath v1.0.2
+  [8913a72c] NonlinearSolve v3.7.3
+  [6fe1bfb0] OffsetArrays v1.13.0
+  [4d8831e6] OpenSSL v1.4.2
+  [429524aa] Optim v1.9.2
+  [bac558e1] OrderedCollections v1.6.3
+  [1dea7af3] OrdinaryDiffEq v6.74.0
+  [90014a1f] PDMats v0.11.31
+  [65ce6f38] PackageExtensionCompat v1.0.2
+  [d96e819e] Parameters v0.12.3
+  [69de0a69] Parsers v2.8.1
+  [b98c9c47] Pipe v1.3.0
+  [ccf2f8ad] PlotThemes v3.1.0
+  [995b91a9] PlotUtils v1.4.0
+  [91a5bcdd] Plots v1.40.1
+  [e409e4f3] PoissonRandom v0.4.4
+  [f517fe37] Polyester v0.7.9
+  [1d0040c9] PolyesterWeave v0.2.1
+  [f27b6e38] Polynomials v4.0.6
+  [85a6dd25] PositiveFactorizations v0.2.4
+  [d236fae5] PreallocationTools v0.4.20
+  [aea7be01] PrecompileTools v1.2.0
+  [21216c6a] Preferences v1.4.3
+  [1fd47b50] QuadGK v2.9.4
+  [74087812] Random123 v1.7.0
+  [e6cf234a] RandomNumbers v1.5.3
+  [3cdcf5f2] RecipesBase v1.3.4
+  [01d81517] RecipesPipeline v0.6.12
+  [731186ca] RecursiveArrayTools v3.10.1
+  [f2c3362d] RecursiveFactorization v0.2.21
+  [189a3867] Reexport v1.2.2
+  [2792f1a3] RegistryInstances v0.1.0
+  [05181044] RelocatableFolders v1.0.1
+  [ae029012] Requires v1.3.0
+  [ae5879a3] ResettableStacks v1.1.1
+  [79098fc4] Rmath v0.7.1
+  [7e49a35a] RuntimeGeneratedFunctions v0.5.12
+  [94e857df] SIMDTypes v0.1.0
+  [476501e8] SLEEFPirates v0.6.42
+  [0bca4576] SciMLBase v2.29.0
+  [c0aeaf25] SciMLOperators v0.3.8
+  [53ae85a6] SciMLStructures v1.1.0
+  [6c6a2e73] Scratch v1.2.1
+  [efcf1570] Setfield v1.1.1
+  [992d4aef] Showoff v1.0.3
+  [777ac1f9] SimpleBufferStream v1.1.0
+  [727e6d20] SimpleNonlinearSolve v1.5.0
+  [699a6c99] SimpleTraits v0.9.4
+  [ce78b400] SimpleUnPack v1.1.0
+  [a2af1166] SortingAlgorithms v1.2.1
+  [47a9eef4] SparseDiffTools v2.17.0
+  [e56a9233] Sparspak v0.3.9
+  [276daf66] SpecialFunctions v2.3.1
+  [aedffcd0] Static v0.8.10
+  [0d7ed370] StaticArrayInterface v1.5.0
+  [90137ffa] StaticArrays v1.9.3
+  [1e83bf80] StaticArraysCore v1.4.2
+  [82ae8749] StatsAPI v1.7.0
+  [2913bbd2] StatsBase v0.34.2
+  [4c63d2b9] StatsFuns v1.3.1
+  [9672c7b4] SteadyStateDiffEq v2.1.0
+  [789caeaf] StochasticDiffEq v6.65.1
+  [7792a7ef] StrideArraysCore v0.5.2
+  [c3572dad] Sundials v4.24.0
+  [2efcf032] SymbolicIndexingInterface v0.3.8
+  [d1185830] SymbolicUtils v1.5.0
+  [0c5d862f] Symbolics v5.22.1
+  [3783bdb8] TableTraits v1.0.1
+  [bd369af6] Tables v1.11.1
+  [62fd8b95] TensorCore v0.1.1
+  [8290d209] ThreadingUtilities v0.5.2
+  [a759f4b9] TimerOutputs v0.5.23
+  [0796e94c] Tokenize v0.5.28
+  [3bb67fe8] TranscodingStreams v0.10.3
+  [d5829a12] TriangularSolve v0.1.20
+  [410a4b4d] Tricks v0.1.8
+  [781d530d] TruncatedStacktraces v1.4.0
+  [5c2747f8] URIs v1.5.1
+  [3a884ed6] UnPack v1.0.2
+  [1cfade01] UnicodeFun v0.4.1
+  [1986cc42] Unitful v1.19.0
+  [45397f5d] UnitfulLatexify v1.6.3
+  [a7c27f48] Unityper v0.1.6
+  [41fe7b60] Unzip v0.2.0
+  [3d5dd08c] VectorizationBase v0.21.65
+  [19fa3120] VertexSafeGraphs v0.2.0
+  [6e34b625] Bzip2_jll v1.0.8+1
+  [83423d85] Cairo_jll v1.16.1+1
+  [2702e6a9] EpollShim_jll v0.0.20230411+0
+  [2e619515] Expat_jll v2.5.0+0
+⌅ [b22a6f82] FFMPEG_jll v4.4.4+1
+  [f5851436] FFTW_jll v3.3.10+0
+  [a3f928ae] Fontconfig_jll v2.13.93+0
+  [d7e528f0] FreeType2_jll v2.13.1+0
+  [559328eb] FriBidi_jll v1.0.10+0
+  [0656b61e] GLFW_jll v3.3.9+0
+  [d2c73de3] GR_jll v0.73.2+0
+  [78b55507] Gettext_jll v0.21.0+0
+  [f8c6e375] Git_jll v2.44.0+1
+  [7746bdde] Glib_jll v2.76.5+0
+  [3b182d85] Graphite2_jll v1.3.14+0
+  [2e76f6c2] HarfBuzz_jll v2.8.1+1
+  [1d5cc7b8] IntelOpenMP_jll v2024.0.2+0
+  [aacddb02] JpegTurbo_jll v3.0.2+0
+  [c1c5ebd0] LAME_jll v3.100.1+0
+  [88015f11] LERC_jll v3.0.0+1
+  [1d63c593] LLVMOpenMP_jll v15.0.7+0
+  [dd4b983a] LZO_jll v2.10.1+0
+⌅ [e9f186c6] Libffi_jll v3.2.2+1
+  [d4300ac3] Libgcrypt_jll v1.8.7+0
+  [7e76a0d4] Libglvnd_jll v1.6.0+0
+  [7add5ba3] Libgpg_error_jll v1.42.0+0
+  [94ce4f54] Libiconv_jll v1.17.0+0
+  [4b2f31a3] Libmount_jll v2.35.0+0
+⌅ [89763e89] Libtiff_jll v4.5.1+1
+  [38a345b3] Libuuid_jll v2.39.3+0
+  [856f044c] MKL_jll v2024.0.0+0
+  [e7412a2a] Ogg_jll v1.3.5+1
+  [458c3c95] OpenSSL_jll v3.0.13+0
+  [efe28fd5] OpenSpecFun_jll v0.5.5+0
+  [91d4177d] Opus_jll v1.3.2+0
+  [30392449] Pixman_jll v0.42.2+0
+  [c0090381] Qt6Base_jll v6.5.3+1
+  [f50d1b31] Rmath_jll v0.4.0+0
+⌅ [fb77eaff] Sundials_jll v5.2.2+0
+  [a44049a8] Vulkan_Loader_jll v1.3.243+0
+  [a2964d1f] Wayland_jll v1.21.0+1
+  [2381bf8a] Wayland_protocols_jll v1.31.0+0
+  [02c8fc9c] XML2_jll v2.12.5+0
+  [aed1982a] XSLT_jll v1.1.34+0
+  [ffd25f8a] XZ_jll v5.6.0+0
+  [f67eecfb] Xorg_libICE_jll v1.0.10+1
+  [c834827a] Xorg_libSM_jll v1.2.3+0
+  [4f6342f7] Xorg_libX11_jll v1.8.6+0
+  [0c0b7dd1] Xorg_libXau_jll v1.0.11+0
+  [935fb764] Xorg_libXcursor_jll v1.2.0+4
+  [a3789734] Xorg_libXdmcp_jll v1.1.4+0
+  [1082639a] Xorg_libXext_jll v1.3.4+4
+  [d091e8ba] Xorg_libXfixes_jll v5.0.3+4
+  [a51aa0fd] Xorg_libXi_jll v1.7.10+4
+  [d1454406] Xorg_libXinerama_jll v1.1.4+4
+  [ec84b674] Xorg_libXrandr_jll v1.5.2+4
+  [ea2f1a96] Xorg_libXrender_jll v0.9.10+4
+  [14d82f49] Xorg_libpthread_stubs_jll v0.1.1+0
+  [c7cfdc94] Xorg_libxcb_jll v1.15.0+0
+  [cc61e674] Xorg_libxkbfile_jll v1.1.2+0
+  [e920d4aa] Xorg_xcb_util_cursor_jll v0.1.4+0
+  [12413925] Xorg_xcb_util_image_jll v0.4.0+1
+  [2def613f] Xorg_xcb_util_jll v0.4.0+1
+  [975044d2] Xorg_xcb_util_keysyms_jll v0.4.0+1
+  [0d47668e] Xorg_xcb_util_renderutil_jll v0.3.9+1
+  [c22f9ab0] Xorg_xcb_util_wm_jll v0.4.1+1
+  [35661453] Xorg_xkbcomp_jll v1.4.6+0
+  [33bec58e] Xorg_xkeyboard_config_jll v2.39.0+0
+  [c5fb5394] Xorg_xtrans_jll v1.5.0+0
+  [3161d3a3] Zstd_jll v1.5.5+0
+  [35ca27e7] eudev_jll v3.2.9+0
+  [214eeab7] fzf_jll v0.43.0+0
+  [1a1c6b14] gperf_jll v3.1.1+0
+  [a4ae2306] libaom_jll v3.4.0+0
+  [0ac62f75] libass_jll v0.15.1+0
+  [2db6ffa8] libevdev_jll v1.11.0+0
+  [f638f0a6] libfdk_aac_jll v2.0.2+0
+  [36db933b] libinput_jll v1.18.0+0
+  [b53b4c65] libpng_jll v1.6.43+0
+  [f27f6e37] libvorbis_jll v1.3.7+1
+  [009596ad] mtdev_jll v1.1.6+0
+  [1270edf5] x264_jll v2021.5.5+0
+  [dfaa095f] x265_jll v3.5.0+0
+  [d8fb68d0] xkbcommon_jll v1.4.1+1
+  [0dad84c5] ArgTools v1.1.1
+  [56f22d72] Artifacts
+  [2a0f44e3] Base64
+  [ade2ca70] Dates
+  [8ba89e20] Distributed
+  [f43a241f] Downloads v1.6.0
+  [7b1f6079] FileWatching
+  [9fa8497b] Future
+  [b77e0a4c] InteractiveUtils
+  [4af54fe1] LazyArtifacts
+  [b27032c2] LibCURL v0.6.4
+  [76f85450] LibGit2
+  [8f399da3] Libdl
+  [37e2e46d] LinearAlgebra
+  [56ddb016] Logging
+  [d6f4376e] Markdown
+  [a63ad114] Mmap
+  [ca575930] NetworkOptions v1.2.0
+  [44cfe95a] Pkg v1.10.0
+  [de0858da] Printf
+  [9abbd945] Profile
+  [3fa0cd96] REPL
+  [9a3f8284] Random
+  [ea8e919c] SHA v0.7.0
+  [9e88b42a] Serialization
+  [1a1011a3] SharedArrays
+  [6462fe0b] Sockets
+  [2f01184e] SparseArrays v1.10.0
+  [10745b16] Statistics v1.10.0
+  [4607b0f0] SuiteSparse
+  [fa267f1f] TOML v1.0.3
+  [a4e569a6] Tar v1.10.0
+  [8dfed614] Test
+  [cf7118a7] UUIDs
+  [4ec0a83e] Unicode
+  [e66e0078] CompilerSupportLibraries_jll v1.1.0+0
+  [deac9b47] LibCURL_jll v8.4.0+0
+  [e37daf67] LibGit2_jll v1.6.4+0
+  [29816b5a] LibSSH2_jll v1.11.0+1
+  [c8ffd9c3] MbedTLS_jll v2.28.2+1
+  [14a3606d] MozillaCACerts_jll v2023.1.10
+  [4536629a] OpenBLAS_jll v0.3.23+4
+  [05823500] OpenLibm_jll v0.8.1+2
+  [efcefdf7] PCRE2_jll v10.42.0+1
+  [bea87d4a] SuiteSparse_jll v7.2.1+1
+  [83775a58] Zlib_jll v1.2.13+1
+  [8e850b90] libblastrampoline_jll v5.8.0+1
+  [8e850ede] nghttp2_jll v1.52.0+1
+  [3f19e933] p7zip_jll v17.4.0+2
+Info Packages marked with ⌃ and ⌅ have new versions available. Those with ⌃ may be upgradable, but those with ⌅ are restricted by compatibility constraints from upgrading. To see why use `status --outdated -m`

You can also download the manifest file and the project file.

diff --git a/previews/PR273/objects.inv b/previews/PR273/objects.inv new file mode 100644 index 0000000000000000000000000000000000000000..23322e4e3cec7a0fda971e4bca5b480a12f6ea36 GIT binary patch literal 2965 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 L26%q~A@ciTS1-{& literal 0 HcmV?d00001 diff --git a/previews/PR273/search_index.js b/previews/PR273/search_index.js new file mode 100644 index 000000000..ba2944415 --- /dev/null +++ b/previews/PR273/search_index.js @@ -0,0 +1,3 @@ +var documenterSearchIndex = {"docs": +[{"location":"API/magnetic/#ModelingToolkitStandardLibrary:-Magnetic-Components","page":"Magnetic Components","title":"ModelingToolkitStandardLibrary: Magnetic Components","text":"","category":"section"},{"location":"API/magnetic/","page":"Magnetic Components","title":"Magnetic Components","text":"Pages = [\"magnetic.md\"]","category":"page"},{"location":"API/magnetic/#Index","page":"Magnetic Components","title":"Index","text":"","category":"section"},{"location":"API/magnetic/","page":"Magnetic Components","title":"Magnetic Components","text":"Pages = [\"magnetic.md\"]","category":"page"},{"location":"API/magnetic/#Flux-Tubes","page":"Magnetic Components","title":"Flux Tubes","text":"","category":"section"},{"location":"API/magnetic/","page":"Magnetic Components","title":"Magnetic Components","text":"CurrentModule = ModelingToolkitStandardLibrary.Magnetic.FluxTubes","category":"page"},{"location":"API/magnetic/#Flux-Tube-Utilities","page":"Magnetic Components","title":"Flux Tube Utilities","text":"","category":"section"},{"location":"API/magnetic/","page":"Magnetic Components","title":"Magnetic Components","text":"PositiveMagneticPort\nNegativeMagneticPort\nTwoPort","category":"page"},{"location":"API/magnetic/#ModelingToolkitStandardLibrary.Magnetic.FluxTubes.PositiveMagneticPort","page":"Magnetic Components","title":"ModelingToolkitStandardLibrary.Magnetic.FluxTubes.PositiveMagneticPort","text":"Positive magnetic port\n\n\n\n\n\n","category":"constant"},{"location":"API/magnetic/#ModelingToolkitStandardLibrary.Magnetic.FluxTubes.NegativeMagneticPort","page":"Magnetic Components","title":"ModelingToolkitStandardLibrary.Magnetic.FluxTubes.NegativeMagneticPort","text":"Negative magnetic port\n\n\n\n\n\n","category":"constant"},{"location":"API/magnetic/#ModelingToolkitStandardLibrary.Magnetic.FluxTubes.TwoPort","page":"Magnetic Components","title":"ModelingToolkitStandardLibrary.Magnetic.FluxTubes.TwoPort","text":"TwoPort(; name, V_m = 0.0, Phi = 0.0)\n\nPartial component with magnetic potential difference between two magnetic ports p and n and magnetic flux Phi from p to n.\n\nParameters:\n\nV_m: Initial magnetic potential difference between both ports\nPhi: Initial magnetic flux from portp to portn\n\n\n\n\n\n","category":"constant"},{"location":"API/magnetic/#Basic-Flux-Tube-Blocks","page":"Magnetic Components","title":"Basic Flux Tube Blocks","text":"","category":"section"},{"location":"API/magnetic/","page":"Magnetic Components","title":"Magnetic Components","text":"Ground\nIdle\nShort\nCrossing\nConstantPermeance\nConstantReluctance\nEddyCurrent\nElectroMagneticConverter","category":"page"},{"location":"API/magnetic/#ModelingToolkitStandardLibrary.Magnetic.FluxTubes.Ground","page":"Magnetic Components","title":"ModelingToolkitStandardLibrary.Magnetic.FluxTubes.Ground","text":"Ground(; name)\n\nZero magnetic potential.\n\n\n\n\n\n","category":"constant"},{"location":"API/magnetic/#ModelingToolkitStandardLibrary.Magnetic.FluxTubes.Idle","page":"Magnetic Components","title":"ModelingToolkitStandardLibrary.Magnetic.FluxTubes.Idle","text":"Idle(;name)\n\nIdle running branch.\n\n\n\n\n\n","category":"constant"},{"location":"API/magnetic/#ModelingToolkitStandardLibrary.Magnetic.FluxTubes.Short","page":"Magnetic Components","title":"ModelingToolkitStandardLibrary.Magnetic.FluxTubes.Short","text":"Short(;name)\n\nShort cut branch.\n\n\n\n\n\n","category":"constant"},{"location":"API/magnetic/#ModelingToolkitStandardLibrary.Magnetic.FluxTubes.Crossing","page":"Magnetic Components","title":"ModelingToolkitStandardLibrary.Magnetic.FluxTubes.Crossing","text":"Crossing(;name)\n\nCrossing of two branches.\n\nThis is a simple crossing of two branches. The ports portp1 and portp2 are connected, as well as portn1 and portn2.\n\n\n\n\n\n","category":"constant"},{"location":"API/magnetic/#ModelingToolkitStandardLibrary.Magnetic.FluxTubes.ConstantPermeance","page":"Magnetic Components","title":"ModelingToolkitStandardLibrary.Magnetic.FluxTubes.ConstantPermeance","text":"ConstantPermeance(; name, G_m = 1.0)\n\nConstant permeance.\n\nParameters:\n\nG_m: [H] Magnetic permeance\n\n\n\n\n\n","category":"constant"},{"location":"API/magnetic/#ModelingToolkitStandardLibrary.Magnetic.FluxTubes.ConstantReluctance","page":"Magnetic Components","title":"ModelingToolkitStandardLibrary.Magnetic.FluxTubes.ConstantReluctance","text":"ConstantReluctance(; name, R_m = 1.0)\n\nConstant reluctance.\n\nParameters:\n\nR_m: [H^-1] Magnetic reluctance\n\n\n\n\n\n","category":"constant"},{"location":"API/magnetic/#ModelingToolkitStandardLibrary.Magnetic.FluxTubes.EddyCurrent","page":"Magnetic Components","title":"ModelingToolkitStandardLibrary.Magnetic.FluxTubes.EddyCurrent","text":"EddyCurrent(;name, Phi, rho = 0.098e-6, l = 1, A = 1)\n\nFor modelling of eddy current in a conductive magnetic flux tube. Initial magnetic flux flowing into the port_p can be set with Phi ([Wb])\n\nParameters:\n\nrho: [ohm * m] Resistivity of flux tube material (default: Iron at 20degC)\nl: [m] Average length of eddy current path\nA: [m^2] Cross sectional area of eddy current path\n\n\n\n\n\n","category":"constant"},{"location":"API/magnetic/#ModelingToolkitStandardLibrary.Magnetic.FluxTubes.ElectroMagneticConverter","page":"Magnetic Components","title":"ModelingToolkitStandardLibrary.Magnetic.FluxTubes.ElectroMagneticConverter","text":"ElectroMagneticConverter(; name, N, Phi)\n\nIdeal electromagnetic energy conversion.\n\nThe electromagnetic energy conversion is given by Ampere's law and Faraday's law respectively V_m = N * i N * dΦ/dt = -v\n\nInitial magnetic flux flowing into the port_p can be set with Phi ([Wb])\n\nParameters:\n\nN: Number of turns\n\n\n\n\n\n","category":"constant"},{"location":"API/magnetic/#Flux-Tube-Sources","page":"Magnetic Components","title":"Flux Tube Sources","text":"","category":"section"},{"location":"API/magnetic/","page":"Magnetic Components","title":"Magnetic Components","text":"ConstantMagneticPotentialDifference\nConstantMagneticFlux","category":"page"},{"location":"API/magnetic/#ModelingToolkitStandardLibrary.Magnetic.FluxTubes.ConstantMagneticPotentialDifference","page":"Magnetic Components","title":"ModelingToolkitStandardLibrary.Magnetic.FluxTubes.ConstantMagneticPotentialDifference","text":"ConstantMagneticPotentialDifference(; name, V_m = 0.0)\n\nConstant magnetomotive force.\n\nParameters:\n\nV_m: [A] Magnetic potential difference\n\n\n\n\n\n","category":"constant"},{"location":"API/magnetic/#ModelingToolkitStandardLibrary.Magnetic.FluxTubes.ConstantMagneticFlux","page":"Magnetic Components","title":"ModelingToolkitStandardLibrary.Magnetic.FluxTubes.ConstantMagneticFlux","text":"ConstantMagneticFlux(; name, Phi = 0.0)\n\nSource of constant magnetic flux.\n\nParameters:\n\nPhi: [Wb] Magnetic flux\n\n\n\n\n\n","category":"constant"},{"location":"tutorials/thermal_model/#Heat-Conduction-Model","page":"Thermal Conduction Model","title":"Heat Conduction Model","text":"","category":"section"},{"location":"tutorials/thermal_model/","page":"Thermal Conduction Model","title":"Thermal Conduction Model","text":"This example demonstrates the thermal response of two masses connected by a conducting element. The two masses have the same heat capacity but different initial temperatures (T1=100 [°C], T2=0 [°C]). The mass with the higher temperature will cool off, while the mass with the lower temperature heats up. They will each asymptotically approach the calculated temperature TfinalK that results from dividing the total initial energy in the system by the sum of the heat capacities of each element.","category":"page"},{"location":"tutorials/thermal_model/","page":"Thermal Conduction Model","title":"Thermal Conduction Model","text":"using ModelingToolkitStandardLibrary.Thermal, ModelingToolkit, OrdinaryDiffEq, Plots\nusing ModelingToolkit: t_nounits as t\n\nC1 = 15\nC2 = 15\n@named mass1 = HeatCapacitor(C = C1, T = 373.15)\n@named mass2 = HeatCapacitor(C = C2, T = 273.15)\n@named conduction = ThermalConductor(G = 10)\n@named Tsensor1 = TemperatureSensor()\n@named Tsensor2 = TemperatureSensor()\n\nconnections = [\n connect(mass1.port, conduction.port_a),\n connect(conduction.port_b, mass2.port),\n connect(mass1.port, Tsensor1.port),\n connect(mass2.port, Tsensor2.port)\n]\n\n@named model = ODESystem(connections, t,\n systems = [mass1, mass2, conduction, Tsensor1, Tsensor2])\nsys = structural_simplify(model)\nprob = ODEProblem(sys, Pair[], (0, 5.0))\nsol = solve(prob, Tsit5())\n\nT_final_K = sol[(mass1.T * C1 + mass2.T * C2) / (C1 + C2)]\n\nplot(title = \"Thermal Conduction Demonstration\")\nplot!(sol, idxs = [mass1.T, mass2.T], labels = [\"Mass 1 Temperature\" \"Mass 2 Temperature\"])\nplot!(sol.t, T_final_K, label = \"Steady-State Temperature\")\nsavefig(\"thermal_plot.png\");\nnothing; # hide","category":"page"},{"location":"tutorials/thermal_model/","page":"Thermal Conduction Model","title":"Thermal Conduction Model","text":"(Image: Plot of Temperatures)","category":"page"},{"location":"API/hydraulic/#hydraulic","page":"Hydraulic Components","title":"ModelingToolkit Standard Library: Hydraulic Components","text":"","category":"section"},{"location":"API/hydraulic/","page":"Hydraulic Components","title":"Hydraulic Components","text":"Pages = [\"hydraulic.md\"]\nDepth = 3","category":"page"},{"location":"API/hydraulic/#Index","page":"Hydraulic Components","title":"Index","text":"","category":"section"},{"location":"API/hydraulic/","page":"Hydraulic Components","title":"Hydraulic Components","text":"Pages = [\"hydraulic.md\"]","category":"page"},{"location":"API/hydraulic/#IsothermalCompressible-Components","page":"Hydraulic Components","title":"IsothermalCompressible Components","text":"","category":"section"},{"location":"API/hydraulic/","page":"Hydraulic Components","title":"Hydraulic Components","text":"CurrentModule = ModelingToolkitStandardLibrary.Hydraulic.IsothermalCompressible","category":"page"},{"location":"API/hydraulic/#IsothermalCompressible-Utils","page":"Hydraulic Components","title":"IsothermalCompressible Utils","text":"","category":"section"},{"location":"API/hydraulic/","page":"Hydraulic Components","title":"Hydraulic Components","text":"HydraulicPort\nHydraulicFluid\nfriction_factor","category":"page"},{"location":"API/hydraulic/#ModelingToolkitStandardLibrary.Hydraulic.IsothermalCompressible.HydraulicPort","page":"Hydraulic Components","title":"ModelingToolkitStandardLibrary.Hydraulic.IsothermalCompressible.HydraulicPort","text":"HydraulicPort(;p_int, name)\n\nConnector port for hydraulic components.\n\nArguments:\n\np_int: [Pa] initial gauge pressure\n\nStates:\n\np: [Pa] gauge total pressure\ndm: [kg/s] mass flow\n\n\n\n\n\n","category":"function"},{"location":"API/hydraulic/#ModelingToolkitStandardLibrary.Hydraulic.IsothermalCompressible.HydraulicFluid","page":"Hydraulic Components","title":"ModelingToolkitStandardLibrary.Hydraulic.IsothermalCompressible.HydraulicFluid","text":"HydraulicFluid(; density = 997, bulk_modulus = 2.09e9, viscosity = 0.0010016, gas_density = 0.0073955, gas_pressure = -1000, n = 1, let_gas = 1, name)\n\nFluid parameter setter for isothermal compressible fluid domain. Defaults given for water at 20°C and 0Pa gage (1atm absolute) reference pressure. Density is modeled using the Tait equation of state. For pressures below the reference pressure, density is linearly interpolated to the gas state (when let_gas is set to 1), this helps prevent pressures from going below the reference pressure. \n\nParameters:\n\nρ: [kg/m^3] fluid density at 0Pa reference gage pressure (set by density argument)\nΒ: [Pa] fluid bulk modulus describing the compressibility (set by bulk_modulus argument)\nμ: [Pa*s] or [kg/m-s] fluid dynamic viscosity (set by viscosity argument)\nn: density exponent\nlet_gas: set to 1 to allow fluid to transition from liquid to gas (for density calculation only) \nρ_gas: [kg/m^3] density of fluid in gas state at reference gage pressure p_gas (set by gas_density argument)\np_gas: [Pa] reference pressure (set by gas_pressure argument)\n\n\n\n\n\n","category":"function"},{"location":"API/hydraulic/#ModelingToolkitStandardLibrary.Hydraulic.IsothermalCompressible.friction_factor","page":"Hydraulic Components","title":"ModelingToolkitStandardLibrary.Hydraulic.IsothermalCompressible.friction_factor","text":"friction_factor(dm, area, d_h, viscosity, shape_factor)\n\nCalculates the friction factor f for fully developed flow in a tube such that Δp = f cdot rho fracu^22 fracld_h where \n\nΔp: [Pa] is the pressure difference over the tube length l\nrho: [kg/m^3] is the average fluid density\nu: [m/s] is the average fluid velocity\nl: [m] is the tube length \n\nThe friction factor is calculated for laminar and turbulent flow with a transition region between Reynolds number 2000 to 3000. Turbulent flow equation is for smooth tubes, valid for the Reynolds number range up to 5e6.\n\nArguments:\n\ndm: [kg/s] mass flow\narea: [m^2] tube cross sectional area\nd_h: [m] tube hydraulic diameter. For circular tubes d_h is the tube diameter, otherwise it can be found from 4*area/perimeter\ndensity: [kg/m^3] fluid density\nviscosity: [Pa*s] or [kg/m-s] fluid dynamic viscosity\nshape_factor: the constant defining the laminar fully developed constant f*Re related to the shape of the tube cross section\n\nReference: Introduction to Fluid Mechanics, Fox & McDonald, 5th Edition, equations 8.19 and 8.21\n\n\n\n\n\n","category":"function"},{"location":"API/hydraulic/#IsothermalCompressible-Components-2","page":"Hydraulic Components","title":"IsothermalCompressible Components","text":"","category":"section"},{"location":"API/hydraulic/","page":"Hydraulic Components","title":"Hydraulic Components","text":"Cap\nTubeBase\nTube\nFixedVolume\nDynamicVolume","category":"page"},{"location":"API/hydraulic/#ModelingToolkitStandardLibrary.Hydraulic.IsothermalCompressible.Cap","page":"Hydraulic Components","title":"ModelingToolkitStandardLibrary.Hydraulic.IsothermalCompressible.Cap","text":"Cap(; p_int, name)\n\nCaps a hydraulic port to prevent mass flow in or out.\n\nParameters:\n\np_int: [Pa] initial pressure (set by p_int argument)\n\nConnectors:\n\nport: hydraulic port\n\n\n\n\n\n","category":"function"},{"location":"API/hydraulic/#ModelingToolkitStandardLibrary.Hydraulic.IsothermalCompressible.TubeBase","page":"Hydraulic Components","title":"ModelingToolkitStandardLibrary.Hydraulic.IsothermalCompressible.TubeBase","text":"TubeBase(add_inertia = true; p_int, area, length_int, head_factor = 1, perimeter = 2 * sqrt(area * pi), shape_factor = 64, name)\n\nVariable length internal flow model of the fully developed incompressible flow friction. Includes optional inertia term when add_inertia = true to model wave propagation. Hydraulic ports have equal flow but variable pressure. Density is averaged over the pressures, used to calculated average flow velocity and flow friction.\n\nStates:\n\nx: [m] length of the pipe\nddm: [kg/s^2] Rate of change of mass flow rate in control volume.\n\nParameters:\n\np_int: [Pa] initial pressure\narea: [m^2] tube cross sectional area\nlength_int: [m] initial tube length\nperimeter: [m] perimeter of the pipe cross section (needed only for non-circular pipes)\nshape_factor: shape factor, see friction_factor function\nhead_factor: effective length multiplier, used to account for addition friction from flow development and additional friction such as pipe bends, entrance/exit lossses, etc.\n\nConnectors:\n\nport_a: hydraulic port\nport_b: hydraulic port\n\n\n\n\n\n","category":"function"},{"location":"API/hydraulic/#ModelingToolkitStandardLibrary.Hydraulic.IsothermalCompressible.Tube","page":"Hydraulic Components","title":"ModelingToolkitStandardLibrary.Hydraulic.IsothermalCompressible.Tube","text":"Tube(N, add_inertia=true; p_int, area, length, head_factor=1, perimeter = 2 * sqrt(area * pi), shape_factor = 64, name)\n\nConstant length internal flow model discretized by N (FixedVolume: N, TubeBase:N-1) which models the fully developed flow friction, compressibility (when N>1), and inertia effects when add_inertia = true. See TubeBase and FixedVolume for more information.\n\nParameters:\n\np_int: [Pa] initial pressure\narea: [m^2] tube cross sectional area\nlength: [m] real length of the tube\nperimeter: [m] perimeter of the pipe cross section (needed only for non-circular pipes)\nshape_factor: shape factor, see friction_factor function\nhead_factor: effective length multiplier, used to account for addition friction from flow development and additional friction such as pipe bends, entrance/exit lossses, etc.\n\nConnectors:\n\nport_a: hydraulic port\nport_b: hydraulic port\n\n\n\n\n\n","category":"function"},{"location":"API/hydraulic/#ModelingToolkitStandardLibrary.Hydraulic.IsothermalCompressible.FixedVolume","page":"Hydraulic Components","title":"ModelingToolkitStandardLibrary.Hydraulic.IsothermalCompressible.FixedVolume","text":"FixedVolume(; vol, p_int, name)\n\nFixed fluid volume.\n\nParameters:\n\nvol: [m^3] fixed volume\np_int: [Pa] initial pressure\n\nConnectors:\n\nport: hydraulic port\n\n\n\n\n\n","category":"function"},{"location":"API/hydraulic/#ModelingToolkitStandardLibrary.Hydraulic.IsothermalCompressible.DynamicVolume","page":"Hydraulic Components","title":"ModelingToolkitStandardLibrary.Hydraulic.IsothermalCompressible.DynamicVolume","text":"DynamicVolume(N, addinertia=true; pint, area, xint = 0, xmax, xmin = 0, xdamp = xmin, direction = +1, perimeter = 2 * sqrt(area * pi), shapefactor = 64, headfactor = 1, Cd = 1e2, Cdreverse = Cd, name)\n\nVolume with moving wall with flange connector for converting hydraulic energy to 1D mechanical. The direction argument aligns the mechanical port with the hydraulic port, useful when connecting two dynamic volumes together in oppsing directions to create an actuator.\n\n ┌─────────────────┐ ───\n │ │ ▲\n │ │\ndm ────► │ │ area\n │ │\n │ │ ▼\n └─────────────────┤ ───\n │\n └─► x (= ∫ flange.v * direction)\n\nFeatures:\n\nvolume discretization with flow resistance and inertia: use N to control number of volume and resistance elements. Set N=0 to turn off volume discretization. See TubeBase for more information about flow resistance.\nminimum volume flow shutoff with damping and directional resistance. Use reversible=false when problem defines volume position x and solves for dm to prevent numerical instability.\n\nParameters:\n\nvolume\n\np_int: [Pa] initial pressure\narea: [m^2] moving wall area\nx_int: [m] initial wall position\nx_max: [m] max wall position, needed for volume discretization to apply the correct volume sizing as a function of x\nx_min: [m] wall position that shuts off flow and prevents negative volume.\nx_damp: [m] wall position that initiates a linear damping region before reaching full flow shut off. Helps provide a smooth end stop.\ndirection: [+/-1] applies the direction conversion from the flange to x\n\nflow resistance\n\nperimeter: [m] perimeter of the cross section (needed only for non-circular volumes)\nshape_factor: shape factor, see friction_factor function\nhead_factor: effective length multiplier, used to account for addition friction from flow development and additional friction such as pipe bends, entrance/exit lossses, etc.\n\nflow shut off and damping\n\nCd: discharge coefficient for flow out of the volume. Note: area is 1m² when valve is fully open. Ensure this does not induce unwanted flow resistance.\nCd_reverse: discharge coefficient for flow into the volume. Use a lower value to allow easy wall release, in some cases the wall can \"stick\".\n\nConnectors:\n\nport: hydraulic port\nflange: mechanical translational port\n\n\n\n\n\n","category":"function"},{"location":"API/hydraulic/#IsothermalCompressible-Sources","page":"Hydraulic Components","title":"IsothermalCompressible Sources","text":"","category":"section"},{"location":"API/hydraulic/","page":"Hydraulic Components","title":"Hydraulic Components","text":"MassFlow\nPressure\nFixedPressure","category":"page"},{"location":"API/hydraulic/#ModelingToolkitStandardLibrary.Hydraulic.IsothermalCompressible.MassFlow","page":"Hydraulic Components","title":"ModelingToolkitStandardLibrary.Hydraulic.IsothermalCompressible.MassFlow","text":"MassFlow(; name, p_int)\n\nHydraulic mass flow input source\n\nConnectors:\n\nport: hydraulic port\ndm: real input \n\n\n\n\n\n","category":"function"},{"location":"API/hydraulic/#ModelingToolkitStandardLibrary.Hydraulic.IsothermalCompressible.Pressure","page":"Hydraulic Components","title":"ModelingToolkitStandardLibrary.Hydraulic.IsothermalCompressible.Pressure","text":"Pressure(; p_int, name)\n\ninput pressure source\n\nParameters:\n\np_int: [Pa] initial pressure (set by p_int argument)\n\nConnectors:\n\nport: hydraulic port\np: real input \n\n\n\n\n\n","category":"function"},{"location":"API/hydraulic/#ModelingToolkitStandardLibrary.Hydraulic.IsothermalCompressible.FixedPressure","page":"Hydraulic Components","title":"ModelingToolkitStandardLibrary.Hydraulic.IsothermalCompressible.FixedPressure","text":"FixedPressure(; p, name)\n\nFixed pressure source\n\nParameters:\n\np: [Pa] set pressure (set by p argument)\n\nConnectors:\n\nport: hydraulic port\n\n\n\n\n\n","category":"function"},{"location":"API/blocks/#ModelingToolkitStandardLibrary:-Blocks","page":"Basic Blocks","title":"ModelingToolkitStandardLibrary: Blocks","text":"","category":"section"},{"location":"API/blocks/","page":"Basic Blocks","title":"Basic Blocks","text":"CurrentModule = ModelingToolkitStandardLibrary.Blocks","category":"page"},{"location":"API/blocks/","page":"Basic Blocks","title":"Basic Blocks","text":"Pages = [\"blocks.md\"]","category":"page"},{"location":"API/blocks/#Index","page":"Basic Blocks","title":"Index","text":"","category":"section"},{"location":"API/blocks/","page":"Basic Blocks","title":"Basic Blocks","text":"Pages = [\"blocks.md\"]","category":"page"},{"location":"API/blocks/#Utility-Blocks","page":"Basic Blocks","title":"Utility Blocks","text":"","category":"section"},{"location":"API/blocks/","page":"Basic Blocks","title":"Basic Blocks","text":"RealInput\nRealOutput\nSISO","category":"page"},{"location":"API/blocks/#ModelingToolkitStandardLibrary.Blocks.RealInput","page":"Basic Blocks","title":"ModelingToolkitStandardLibrary.Blocks.RealInput","text":"RealInput(;name, nin, u_start)\n\nConnector with one input signal of type Real.\n\nParameters:\n\nnin=1: Number of inputs\nu_start=0: Initial value for u\n\nStates:\n\nu: Value of the connector; if nin=1 this is a scalar\n\n\n\n\n\n","category":"function"},{"location":"API/blocks/#ModelingToolkitStandardLibrary.Blocks.RealOutput","page":"Basic Blocks","title":"ModelingToolkitStandardLibrary.Blocks.RealOutput","text":"RealOutput(;name, nout, u_start)\n\nConnector with one output signal of type Real.\n\nParameters:\n\nnout=1: Number of inputs\nu_start=0: Initial value for u\n\nStates:\n\nu: Value of the connector; if nout=1 this is a scalar\n\n\n\n\n\n","category":"function"},{"location":"API/blocks/#ModelingToolkitStandardLibrary.Blocks.SISO","page":"Basic Blocks","title":"ModelingToolkitStandardLibrary.Blocks.SISO","text":"SISO(;name, u_start = 0.0, y_start = 0.0)\n\nSingle input single output (SISO) continuous system block.\n\nParameters:\n\nu: Initial value for the input\ny: Initial value for the output\n\n\n\n\n\n","category":"constant"},{"location":"API/blocks/#Math-Blocks","page":"Basic Blocks","title":"Math Blocks","text":"","category":"section"},{"location":"API/blocks/","page":"Basic Blocks","title":"Basic Blocks","text":"Gain\nMatrixGain\nSum\nFeedback\nAdd\nAdd3\nProduct\nDivision\nStaticNonLinearity\nAbs\nSign\nSqrt\nSin\nCos\nTan\nAsin\nAcos\nAtan\nAtan2\nSinh\nCosh\nTanh\nExp\nLog\nLog10","category":"page"},{"location":"API/blocks/#ModelingToolkitStandardLibrary.Blocks.Gain","page":"Basic Blocks","title":"ModelingToolkitStandardLibrary.Blocks.Gain","text":"Gain(; name, k)\n\nOutput the product of a gain value with the input signal.\n\nParameters:\n\nk: Scalar gain\n\nConnectors:\n\ninput\noutput\n\n\n\n\n\n","category":"constant"},{"location":"API/blocks/#ModelingToolkitStandardLibrary.Blocks.MatrixGain","page":"Basic Blocks","title":"ModelingToolkitStandardLibrary.Blocks.MatrixGain","text":"MatrixGain(; K::AbstractArray, name)\n\nOutput the product of a gain matrix with the input signal vector.\n\nStructural parameters:\n\nK: Matrix gain\n\nConnectors:\n\ninput\noutput\n\n\n\n\n\n","category":"constant"},{"location":"API/blocks/#ModelingToolkitStandardLibrary.Blocks.Sum","page":"Basic Blocks","title":"ModelingToolkitStandardLibrary.Blocks.Sum","text":"Sum(; input__nin::Int, name)\n\nOutput the sum of the elements of the input port vector. Input port dimension can be set with input__nin\n\nConnectors:\n\ninput\noutput\n\n\n\n\n\n","category":"constant"},{"location":"API/blocks/#ModelingToolkitStandardLibrary.Blocks.Feedback","page":"Basic Blocks","title":"ModelingToolkitStandardLibrary.Blocks.Feedback","text":"Feedback(; name)\n\nOutput difference between reference input (input1) and feedback input (input2).\n\nConnectors:\n\ninput1\ninput2\noutput\n\n\n\n\n\n","category":"constant"},{"location":"API/blocks/#ModelingToolkitStandardLibrary.Blocks.Add","page":"Basic Blocks","title":"ModelingToolkitStandardLibrary.Blocks.Add","text":"Add(; name, k1 = 1, k2 = 1)\n\nOutput the sum of the two scalar inputs.\n\nParameters:\n\nk1: Gain for first input\nk2: Gain for second input\n\nConnectors:\n\ninput1\ninput2\noutput\n\n\n\n\n\n","category":"constant"},{"location":"API/blocks/#ModelingToolkitStandardLibrary.Blocks.Add3","page":"Basic Blocks","title":"ModelingToolkitStandardLibrary.Blocks.Add3","text":"Add(; name, k1 = 1, k2 = 1, k3 = 1)\n\nOutput the sum of the three scalar inputs.\n\nParameters:\n\nk1: Gain for first input\nk2: Gain for second input\nk3: Gain for third input\n\nConnectors:\n\ninput1\ninput2\ninput3\noutput\n\n\n\n\n\n","category":"constant"},{"location":"API/blocks/#ModelingToolkitStandardLibrary.Blocks.Product","page":"Basic Blocks","title":"ModelingToolkitStandardLibrary.Blocks.Product","text":"Product(; name)\n\nOutput product of the two inputs.\n\nConnectors:\n\ninput1\ninput2\noutput\n\n\n\n\n\n","category":"constant"},{"location":"API/blocks/#ModelingToolkitStandardLibrary.Blocks.Division","page":"Basic Blocks","title":"ModelingToolkitStandardLibrary.Blocks.Division","text":"Division(; name)\n\nOutput first input divided by second input.\n\nConnectors:\n\ninput1\ninput2\noutput\n\n\n\n\n\n","category":"constant"},{"location":"API/blocks/#ModelingToolkitStandardLibrary.Blocks.StaticNonLinearity","page":"Basic Blocks","title":"ModelingToolkitStandardLibrary.Blocks.StaticNonLinearity","text":"StaticNonLinearity(func; name)\n\nApplies the given function to the input.\n\nIf the given function is not composed of simple core methods (e.g. sin, abs, ...), it has to be registered via @register_symbolic func(u)\n\nConnectors:\n\ninput\noutput\n\n\n\n\n\n","category":"constant"},{"location":"API/blocks/#ModelingToolkitStandardLibrary.Blocks.Abs","page":"Basic Blocks","title":"ModelingToolkitStandardLibrary.Blocks.Abs","text":"Abs(; name)\n\nOutput the absolute value of the input.\n\nConnectors:\n\nSee StaticNonLinearity\n\n\n\n\n\n","category":"function"},{"location":"API/blocks/#ModelingToolkitStandardLibrary.Blocks.Sign","page":"Basic Blocks","title":"ModelingToolkitStandardLibrary.Blocks.Sign","text":"Sign(; name)\n\nOutput the sign of the input\n\nConnectors:\n\nSee StaticNonLinearity\n\n\n\n\n\n","category":"function"},{"location":"API/blocks/#ModelingToolkitStandardLibrary.Blocks.Sqrt","page":"Basic Blocks","title":"ModelingToolkitStandardLibrary.Blocks.Sqrt","text":"Sqrt(; name)\n\nOutput the square root of the input (input >= 0 required).\n\nConnectors:\n\nSee StaticNonLinearity\n\n\n\n\n\n","category":"function"},{"location":"API/blocks/#ModelingToolkitStandardLibrary.Blocks.Sin","page":"Basic Blocks","title":"ModelingToolkitStandardLibrary.Blocks.Sin","text":"Sin(; name)\n\nOutput the sine of the input.\n\nConnectors:\n\nSee StaticNonLinearity\n\n\n\n\n\n","category":"function"},{"location":"API/blocks/#ModelingToolkitStandardLibrary.Blocks.Cos","page":"Basic Blocks","title":"ModelingToolkitStandardLibrary.Blocks.Cos","text":"Cos(; name)\n\nOutput the cosine of the input.\n\nConnectors:\n\nSee StaticNonLinearity\n\n\n\n\n\n","category":"function"},{"location":"API/blocks/#ModelingToolkitStandardLibrary.Blocks.Tan","page":"Basic Blocks","title":"ModelingToolkitStandardLibrary.Blocks.Tan","text":"Tan(; name)\n\nOutput the tangent of the input.\n\nConnectors:\n\nSee StaticNonLinearity\n\n\n\n\n\n","category":"function"},{"location":"API/blocks/#ModelingToolkitStandardLibrary.Blocks.Asin","page":"Basic Blocks","title":"ModelingToolkitStandardLibrary.Blocks.Asin","text":"Asin(; name)\n\nOutput the arc sine of the input.\n\nConnectors:\n\nSee StaticNonLinearity\n\n\n\n\n\n","category":"function"},{"location":"API/blocks/#ModelingToolkitStandardLibrary.Blocks.Acos","page":"Basic Blocks","title":"ModelingToolkitStandardLibrary.Blocks.Acos","text":"Acos(; name)\n\nOutput the arc cosine of the input.\n\nConnectors:\n\nSee StaticNonLinearity\n\n\n\n\n\n","category":"function"},{"location":"API/blocks/#ModelingToolkitStandardLibrary.Blocks.Atan","page":"Basic Blocks","title":"ModelingToolkitStandardLibrary.Blocks.Atan","text":"Atan(; name)\n\nOutput the arc tangent of the input.\n\nConnectors:\n\nSee StaticNonLinearity\n\n\n\n\n\n","category":"function"},{"location":"API/blocks/#ModelingToolkitStandardLibrary.Blocks.Atan2","page":"Basic Blocks","title":"ModelingToolkitStandardLibrary.Blocks.Atan2","text":"Atan2(; name)\n\nOutput the arc tangent of the input.\n\nConnectors:\n\ninput1\ninput2\noutput\n\n\n\n\n\n","category":"constant"},{"location":"API/blocks/#ModelingToolkitStandardLibrary.Blocks.Sinh","page":"Basic Blocks","title":"ModelingToolkitStandardLibrary.Blocks.Sinh","text":"Sinh(; name)\n\nOutput the hyperbolic sine of the input.\n\nConnectors:\n\nSee StaticNonLinearity\n\n\n\n\n\n","category":"function"},{"location":"API/blocks/#ModelingToolkitStandardLibrary.Blocks.Cosh","page":"Basic Blocks","title":"ModelingToolkitStandardLibrary.Blocks.Cosh","text":"Cosh(; name)\n\nOutput the hyperbolic cosine of the input.\n\nConnectors:\n\nSee StaticNonLinearity\n\n\n\n\n\n","category":"function"},{"location":"API/blocks/#ModelingToolkitStandardLibrary.Blocks.Tanh","page":"Basic Blocks","title":"ModelingToolkitStandardLibrary.Blocks.Tanh","text":"Tanh(; name)\n\nOutput the hyperbolic tangent of the input.\n\nConnectors:\n\nSee StaticNonLinearity\n\n\n\n\n\n","category":"function"},{"location":"API/blocks/#ModelingToolkitStandardLibrary.Blocks.Exp","page":"Basic Blocks","title":"ModelingToolkitStandardLibrary.Blocks.Exp","text":"Exp(; name)\n\nOutput the exponential (base e) of the input.\n\nConnectors:\n\nSee StaticNonLinearity\n\n\n\n\n\n","category":"function"},{"location":"API/blocks/#ModelingToolkitStandardLibrary.Blocks.Log","page":"Basic Blocks","title":"ModelingToolkitStandardLibrary.Blocks.Log","text":"Log(; name)\n\nOutput the natural (base e) logarithm of the input.\n\nConnectors:\n\nSee StaticNonLinearity\n\n\n\n\n\n","category":"function"},{"location":"API/blocks/#ModelingToolkitStandardLibrary.Blocks.Log10","page":"Basic Blocks","title":"ModelingToolkitStandardLibrary.Blocks.Log10","text":"Log10(; name)\n\nOutput the base 10 logarithm of the input.\n\nConnectors:\n\nSee StaticNonLinearity\n\n\n\n\n\n","category":"function"},{"location":"API/blocks/#Source-Blocks","page":"Basic Blocks","title":"Source Blocks","text":"","category":"section"},{"location":"API/blocks/","page":"Basic Blocks","title":"Basic Blocks","text":"Constant\nSine\nCosine\nContinuousClock\nRamp\nStep\nExpSine","category":"page"},{"location":"API/blocks/#ModelingToolkitStandardLibrary.Blocks.Constant","page":"Basic Blocks","title":"ModelingToolkitStandardLibrary.Blocks.Constant","text":"Constant(; name, k = 0.0)\n\nGenerate constant signal.\n\nParameters:\n\nk: Constant output value\n\nConnectors:\n\noutput\n\n\n\n\n\n","category":"constant"},{"location":"API/blocks/#ModelingToolkitStandardLibrary.Blocks.Sine","page":"Basic Blocks","title":"ModelingToolkitStandardLibrary.Blocks.Sine","text":"Sine(; name, frequency, amplitude = 1, phase = 0, offset = 0, start_time = 0,\nsmooth = false)\n\nGenerate sine signal.\n\nParameters:\n\nfrequency: [Hz] Frequency of sine wave\namplitude: Amplitude of sine wave\nphase: [rad] Phase of sine wave\noffset: Offset of output signal\nstart_time: [s] Output y = offset for t < start_time\nsmooth: If true, returns a smooth wave. Defaults to false It uses a default smoothing factor of δ=1e-5, but this can be changed by supplying smooth=δ.\n\nConnectors:\n\noutput\n\n\n\n\n\n","category":"function"},{"location":"API/blocks/#ModelingToolkitStandardLibrary.Blocks.ContinuousClock","page":"Basic Blocks","title":"ModelingToolkitStandardLibrary.Blocks.ContinuousClock","text":"ContinuousClock(; name, offset = 0, start_time = 0)\n\nGenerate current time signal.\n\nParameters:\n\noffset: Offset of output signal\nstart_time: [s] Output y = offset for t < start_time\n\nConnectors:\n\noutput\n\n\n\n\n\n","category":"function"},{"location":"API/blocks/#ModelingToolkitStandardLibrary.Blocks.Ramp","page":"Basic Blocks","title":"ModelingToolkitStandardLibrary.Blocks.Ramp","text":"Ramp(; name, height = 1, duration = 1, offset = 0, start_time = 0, smooth = false)\n\nGenerate ramp signal.\n\nParameters:\n\nheight: Height of ramp\nduration: [s] Duration of ramp (= 0.0 gives a Step)\noffset: Offset of output signal\nstart_time: [s] Output y = offset for t < start_time\nsmooth: If true, returns a smooth wave. Defaults to false It uses a default smoothing factor of δ=1e-5, but this can be changed by supplying smooth=δ.\n\nConnectors:\n\noutput\n\n\n\n\n\n","category":"function"},{"location":"API/blocks/#ModelingToolkitStandardLibrary.Blocks.Step","page":"Basic Blocks","title":"ModelingToolkitStandardLibrary.Blocks.Step","text":"Step(;name, height=1, offset=0, start_time=0, duration=Inf, smooth=true)\n\nGenerate step signal.\n\nParameters:\n\nheight: Height of step\noffset: Offset of output signal\nstart_time: [s] Output y = offset for t < start_time and thereafter offset+height.\nduration: [s] If duration < Inf is supplied, the output will revert to offset after duration seconds.\nsmooth: If true, returns a smooth wave. Defaults to true It uses a default smoothing factor of δ=1e-5, but this can be changed by supplying smooth=δ.\n\nConnectors:\n\noutput\n\n\n\n\n\n","category":"function"},{"location":"API/blocks/#ModelingToolkitStandardLibrary.Blocks.ExpSine","page":"Basic Blocks","title":"ModelingToolkitStandardLibrary.Blocks.ExpSine","text":"ExpSine(; name, frequency, amplitude = 1, damping = 0.1, phase = 0, offset = 0, start_time = 0, smooth = false)\n\nExponentially damped sine signal.\n\nParameters:\n\nfrequency: [Hz] Frequency of sine wave\namplitude: Amplitude of sine wave\ndamping: [1/s] Damping coefficient of sine wave\nphase: [rad] Phase of sine wave\noffset: Offset of output signal\nstart_time: [s] Output y = offset for t < start_time\nsmooth: If true, returns a smooth wave. Defaults to false It uses a default smoothing factor of δ=1e-5, but this can be changed by supplying smooth=δ.\n\nConnectors:\n\noutput\n\n\n\n\n\n","category":"function"},{"location":"API/blocks/#Nonlinear-Blocks","page":"Basic Blocks","title":"Nonlinear Blocks","text":"","category":"section"},{"location":"API/blocks/","page":"Basic Blocks","title":"Basic Blocks","text":"Limiter\nDeadZone\nSlewRateLimiter","category":"page"},{"location":"API/blocks/#ModelingToolkitStandardLibrary.Blocks.Limiter","page":"Basic Blocks","title":"ModelingToolkitStandardLibrary.Blocks.Limiter","text":"Limiter(;name, y_max, y_min = y_max > 0 ? -y_max : -Inf)\n\nLimit the range of a signal.\n\nParameters:\n\ny_max: Maximum of output signal\ny_min: Minimum of output signal\n\nConnectors:\n\ninput\noutput\n\n\n\n\n\n","category":"function"},{"location":"API/blocks/#ModelingToolkitStandardLibrary.Blocks.DeadZone","page":"Basic Blocks","title":"ModelingToolkitStandardLibrary.Blocks.DeadZone","text":"DeadZone(; name, u_max, u_min = -u_max)\n\nThe DeadZone block defines a region of zero output. If the input is within u_min ... u_max, the output is zero. Outside of this zone, the output is a linear function of the input with a slope of 1.\n\n y▲\n │ /\n │ /\n u_min │ /\n─────|──┼──|───────► u\n / │ u_max\n / │\n / │\n\nParameters:\n\nu_max: Upper limit of dead zone\nu_min: Lower limit of dead zone\n\nConnectors:\n\ninput\noutput\n\n\n\n\n\n","category":"constant"},{"location":"API/blocks/#ModelingToolkitStandardLibrary.Blocks.SlewRateLimiter","page":"Basic Blocks","title":"ModelingToolkitStandardLibrary.Blocks.SlewRateLimiter","text":"SlewRateLimiter(; name, y_start, rising = 1.0, falling = -rising, Td = 0.001)\n\nLimits the slew rate of a signal. Initial value of state Y can be set with int.y\n\nParameters:\n\nrising: Maximum rising slew rate\nfalling: Maximum falling slew rate\nTd: [s] Derivative time constant\ny_start: Initial value of y state of SISO\n\nConnectors:\n\ninput\noutput\n\n\n\n\n\n","category":"constant"},{"location":"API/blocks/#Continuous-Blocks","page":"Basic Blocks","title":"Continuous Blocks","text":"","category":"section"},{"location":"API/blocks/","page":"Basic Blocks","title":"Basic Blocks","text":"Integrator\nDerivative\nFirstOrder\nSecondOrder\nStateSpace\nTransferFunction\nPI\nLimPI\nPID\nLimPID","category":"page"},{"location":"API/blocks/#ModelingToolkitStandardLibrary.Blocks.Integrator","page":"Basic Blocks","title":"ModelingToolkitStandardLibrary.Blocks.Integrator","text":"Integrator(;name, k = 1, x = 0.0)\n\nOutputs y = ∫k*u dt, corresponding to the transfer function 1s. Initial value of integrator state x can be set with x\n\nConnectors:\n\ninput\noutput\n\nParameters:\n\nk: Gain of integrator\n\n\n\n\n\n","category":"constant"},{"location":"API/blocks/#ModelingToolkitStandardLibrary.Blocks.Derivative","page":"Basic Blocks","title":"ModelingToolkitStandardLibrary.Blocks.Derivative","text":"Derivative(; name, k = 1, T, x = 0.0)\n\nOutputs an approximate derivative of the input. The transfer function of this block is Initial value of the state x can be set with x\n\nk k\n─ - ──────────\nT 2 ⎛ 1⎞\n T ⋅⎜s + ─⎟\n ⎝ T⎠\n\nand a state-space realization is given by ss(-1/T, 1/T, -k/T, k/T) where T is the time constant of the filter. A smaller T leads to a more ideal approximation of the derivative.\n\nParameters:\n\nk: Gain\nT: [s] Time constants (T>0 required; T=0 is ideal derivative block)\n\nConnectors:\n\ninput\noutput\n\n\n\n\n\n","category":"constant"},{"location":"API/blocks/#ModelingToolkitStandardLibrary.Blocks.FirstOrder","page":"Basic Blocks","title":"ModelingToolkitStandardLibrary.Blocks.FirstOrder","text":"FirstOrder(; name, k = 1.0, T, x = 0.0, lowpass = true)\n\nA first-order filter with a single real pole in s = -T and gain k. If lowpass=true (default), the transfer function is given by Y(s)U(s) =\n\n k\n───────\nsT + 1\n\nand if lowpass=false, by\n\nsT + 1 - k\n──────────\n sT + 1\n\nInitial value of the state x can be set with x\n\nParameters:\n\nk: Gain\nT: [s] Time constant (T>0 required)\n\nConnectors:\n\ninput\noutput\n\nSee also SecondOrder\n\n\n\n\n\n","category":"constant"},{"location":"API/blocks/#ModelingToolkitStandardLibrary.Blocks.SecondOrder","page":"Basic Blocks","title":"ModelingToolkitStandardLibrary.Blocks.SecondOrder","text":"SecondOrder(; name, k = 1.0, w = 1.0, d = 1.0, x = 0.0, xd = 0.0)\n\nA second-order filter with gain k, a bandwidth of w rad/s and relative damping d. The transfer function is given by Y(s)/U(s) =\n\n k*w^2\n─────────────────\ns² + 2d*w*s + w^2\n\nCritical damping corresponds to d=1, which yields the fastest step response without overshoot, d < 1 results in an underdamped filter while d > 1 results in an overdamped filter. d = 1/√2 corresponds to a Butterworth filter of order 2 (maximally flat frequency response). Initial value of the state x can be set with x, and of derivative state xd with xd.\n\nParameters:\n\nk: Gain\nw: [rad/s] Angular frequency\nd: Damping\n\nConnectors:\n\ninput\noutput\n\n\n\n\n\n","category":"constant"},{"location":"API/blocks/#ModelingToolkitStandardLibrary.Blocks.StateSpace","page":"Basic Blocks","title":"ModelingToolkitStandardLibrary.Blocks.StateSpace","text":"StateSpace(A, B, C, D = 0; x = zeros(size(A,1)), u0 = zeros(size(B,2)), y0 = zeros(size(C,1)), name)\n\nA linear, time-invariant state-space system on the form.\n\nbeginaligned\nx = Ax + Bu \ny = Cx + Du\nendaligned\n\nTransfer functions can also be simulated by converting them to a StateSpace form.\n\ny0 and u0 can be used to set an operating point, providing them changes the dynamics from an LTI system to the affine system\n\nbeginaligned\nx = Ax + B(u - u0) \ny = Cx + D(u - u0) + y0\nendaligned\n\nFor a nonlinear system\n\nbeginaligned\nx = f(x u) \ny = h(x u)\nendaligned\n\nlinearized around the operating point x₀, u₀, we have y0, u0 = h(x₀, u₀), u₀.\n\n\n\n\n\n","category":"function"},{"location":"API/blocks/#ModelingToolkitStandardLibrary.Blocks.TransferFunction","page":"Basic Blocks","title":"ModelingToolkitStandardLibrary.Blocks.TransferFunction","text":"TransferFunction(; b, a, name)\n\nA single input, single output, linear time-invariant system provided as a transfer-function.\n\nY(s) = b(s) / a(s) U(s)\n\nwhere b and a are vectors of coefficients of the numerator and denominator polynomials, respectively, ordered such that the coefficient of the highest power of s is first.\n\nThe internal state realization is on controller canonical form, with state variable x, output variable y and input variable u. For numerical robustness, the realization used by the integrator is scaled by the last entry of the a parameter. The internally scaled state variable is available as x_scaled.\n\nTo set the initial state, it's recommended to set the initial condition for x, and let that of x_scaled be computed automatically.\n\nParameters:\n\nb: Numerator polynomial coefficients, e.g., 2s + 3 is specified as [2, 3]\na: Denominator polynomial coefficients, e.g., s² + 2ωs + ω^2 is specified as [1, 2ω, ω^2]\n\nConnectors:\n\ninput\noutput\n\nSee also StateSpace which handles MIMO systems, as well as ControlSystemsMTK.jl for an interface between ControlSystems.jl and ModelingToolkit.jl for advanced manipulation of transfer functions and linear statespace systems. For linearization, see linearize and Linear Analysis.\n\n\n\n\n\n","category":"function"},{"location":"API/blocks/#ModelingToolkitStandardLibrary.Blocks.PI","page":"Basic Blocks","title":"ModelingToolkitStandardLibrary.Blocks.PI","text":"PI(;name, k = 1.0, T = 1.0, int.x = 0.0)\n\nTextbook version of a PI-controller without actuator saturation and anti-windup measure. The proportional gain can be set with k Initial value of integrator state x can be set with int.x\n\nThe PI controller is implemented on standard form:\n\nU(s) = k (1 + dfrac1sT) E(S)\n\nParameters:\n\nk: Proportional gain\nT: [s] Integrator time constant (T>0 required)\n\nConnectors:\n\nerr_input\nctr_output\n\nSee also LimPI\n\n\n\n\n\n","category":"constant"},{"location":"API/blocks/#ModelingToolkitStandardLibrary.Blocks.LimPI","page":"Basic Blocks","title":"ModelingToolkitStandardLibrary.Blocks.LimPI","text":"LimPI(; name, k = 1.0, T, Ta, int__x = 0.0, u_max = 1.0, u_min = -u_max)\n\nText-book version of a PI-controller with actuator saturation and anti-windup measure.\n\nThe PI controller is implemented on standard form\n\nu(t) = sat(k (e(t) + dfrac1Te(t) dt) )\n\nThe simplified expression above is given without the anti-windup protection.\n\nParameters:\n\nk: Proportional gain\nT: [s] Integrator time constant (T>0 required)\nTa: [s] Tracking time constant (Ta>0 required)\n\nConnectors:\n\nerr_input\nctr_output\n\n\n\n\n\n","category":"function"},{"location":"API/blocks/#ModelingToolkitStandardLibrary.Blocks.PID","page":"Basic Blocks","title":"ModelingToolkitStandardLibrary.Blocks.PID","text":"PID(;name, k=1, Ti=false, Td=false, Nd=10, int__x=0, der__x=0)\n\nText-book version of a PID-controller without actuator saturation and anti-windup measure.\n\nParameters:\n\nk: Gain\nTi: [s] Integrator time constant (Ti>0 required). If set to false, no integral action is used.\nTd: [s] Derivative time constant (Td>0 required). If set to false, no derivative action is used.\nNd: [s] Time constant for the derivative approximation (Nd>0 required; Nd=0 is ideal derivative).\nint__x: Initial value for the integrator.\nder__x: Initial value for the derivative state.\n\nConnectors:\n\nerr_input\nctr_output\n\nSee also LimPID\n\n\n\n\n\n","category":"function"},{"location":"API/blocks/#ModelingToolkitStandardLibrary.Blocks.LimPID","page":"Basic Blocks","title":"ModelingToolkitStandardLibrary.Blocks.LimPID","text":"LimPID(; k, Ti=false, Td=false, wp=1, wd=1, Ni, Nd=12, u_max=Inf, u_min=-u_max, gains = false, name)\n\nProportional-Integral-Derivative (PID) controller with output saturation, set-point weighting and integrator anti-windup.\n\nThe equation for the control signal is roughly\n\nk(ep + 1/Ti * ∫e + Td * d/dt(ed))\ne = u_r - u_y\nep = wp*u_r - u_y\ned = wd*u_r - u_y\n\nwhere the transfer function for the derivative includes additional filtering, see ? Derivative for more details.\n\nParameters:\n\nk: Proportional gain\nTi: [s] Integrator time constant. Set to false to turn off integral action.\nTd: [s] Derivative time constant. Set to false to turn off derivative action.\nwp: [0,1] Set-point weighting in the proportional part.\nwd: [0,1] Set-point weighting in the derivative part.\nNd: [1/s] Derivative limit, limits the derivative gain to Nd/Td. Reasonable values are ∈ [8, 20]. A higher value gives a better approximation of an ideal derivative at the expense of higher noise amplification.\nNi: Ni*Ti controls the time constant Ta of anti-windup tracking. A common (default) choice is Ta = √(Ti*Td) which is realized by Ni = √(Td / Ti). Anti-windup can be effectively turned off by setting Ni = Inf.\ngains: If gains = true, Ti and Td will be interpreted as gains with a fundamental PID transfer function on parallel form ki=Ti, kd=Td, k + ki/s + kd*s.\n\nConnectors:\n\nreference\nmeasurement\nctr_output\n\n\n\n\n\n","category":"function"},{"location":"API/thermal/#ModelingToolkitStandardLibrary:-Thermal-Components","page":"Thermal Components","title":"ModelingToolkitStandardLibrary: Thermal Components","text":"","category":"section"},{"location":"API/thermal/","page":"Thermal Components","title":"Thermal Components","text":"CurrentModule = ModelingToolkitStandardLibrary.Thermal","category":"page"},{"location":"API/thermal/","page":"Thermal Components","title":"Thermal Components","text":"Pages = [\"thermal.md\"]","category":"page"},{"location":"API/thermal/#Index","page":"Thermal Components","title":"Index","text":"","category":"section"},{"location":"API/thermal/","page":"Thermal Components","title":"Thermal Components","text":"Pages = [\"thermal.md\"]","category":"page"},{"location":"API/thermal/#Thermal-Utilities","page":"Thermal Components","title":"Thermal Utilities","text":"","category":"section"},{"location":"API/thermal/","page":"Thermal Components","title":"Thermal Components","text":"HeatPort\nElement1D","category":"page"},{"location":"API/thermal/#ModelingToolkitStandardLibrary.Thermal.HeatPort","page":"Thermal Components","title":"ModelingToolkitStandardLibrary.Thermal.HeatPort","text":"HeatPort(; name, T = 273.15 + 20.0, Q_flow = 0.0)\n\nPort for a thermal system.\n\nStates:\n\nT: [K] Temperature of the port. It accepts an initial value, which defaults to 273.15 + 20.\nQ_flow: [W] Heat flow rate at the port. It accepts an initial value, which defaults to 0.0.\n\n\n\n\n\n","category":"constant"},{"location":"API/thermal/#ModelingToolkitStandardLibrary.Thermal.Element1D","page":"Thermal Components","title":"ModelingToolkitStandardLibrary.Thermal.Element1D","text":"Element1D(; name, dT = 0.0, Q_flow = 0.0)\n\nThis partial model contains the basic connectors and variables to allow heat transfer models to be created that do not store energy. This model defines and includes equations for the temperature drop across the element, dT, and the heat flow rate through the element from port_a to port_b, Q_flow.\n\nStates:\n\ndT: [K] Temperature difference across the component a.T - b.T. It accepts an initial value, which defaults to 0.0.\nQ_flow: [W] Heat flow rate from port a -> port b. It accepts an initial value, which defaults to 0.0.\n\nConnectors:\n\nport_a port_b\n\n\n\n\n\n","category":"constant"},{"location":"API/thermal/#Thermal-Components","page":"Thermal Components","title":"Thermal Components","text":"","category":"section"},{"location":"API/thermal/","page":"Thermal Components","title":"Thermal Components","text":"BodyRadiation\nConvectiveConductor\nConvectiveResistor\nHeatCapacitor\nThermalConductor\nThermalResistor\nThermalCollector","category":"page"},{"location":"API/thermal/#ModelingToolkitStandardLibrary.Thermal.BodyRadiation","page":"Thermal Components","title":"ModelingToolkitStandardLibrary.Thermal.BodyRadiation","text":"BodyRadiation(; name, G)\n\nLumped thermal element for radiation heat transfer.\n\nStates:\n\ndT: [K] Temperature difference across the component a.T - b.T\nQ_flow: [W] Heat flow rate from port a -> port b\n\nConnectors:\n\nport_a\nport_b\n\nParameters:\n\nG: [m^2] Net radiation conductance between two surfaces # Stefan-Boltzmann constant TODO: extract into physical constants module or use existing one\n\n\n\n\n\n","category":"constant"},{"location":"API/thermal/#ModelingToolkitStandardLibrary.Thermal.ConvectiveConductor","page":"Thermal Components","title":"ModelingToolkitStandardLibrary.Thermal.ConvectiveConductor","text":"ConvectiveConductor(; name, G)\n\nLumped thermal element for heat convection.\n\nStates:\n\ndT: [K] Temperature difference across the component solid.T - fluid.T\nQ_flow: [W] Heat flow rate from solid -> fluid\n\nConnectors:\n\nsolid\nfluid\n\nParameters:\n\nG: [W/K] Convective thermal conductance\n\n\n\n\n\n","category":"constant"},{"location":"API/thermal/#ModelingToolkitStandardLibrary.Thermal.ConvectiveResistor","page":"Thermal Components","title":"ModelingToolkitStandardLibrary.Thermal.ConvectiveResistor","text":"ConvectiveResistor(; name, R)\n\nLumped thermal element for heat convection.\n\nStates:\n\ndT: [K] Temperature difference across the component solid.T - fluid.T\nQ_flow: [W] Heat flow rate from solid -> fluid\n\nConnectors:\n\nsolid\nfluid\n\nParameters:\n\nR: [K/W] Constant thermal resistance of material\n\n\n\n\n\n","category":"constant"},{"location":"API/thermal/#ModelingToolkitStandardLibrary.Thermal.HeatCapacitor","page":"Thermal Components","title":"ModelingToolkitStandardLibrary.Thermal.HeatCapacitor","text":"HeatCapacitor(; name, C, T = 273.15 + 20)\n\nLumped thermal element storing heat\n\nStates:\n\nT: [K] Temperature of element. It accepts an initial value, which defaults to 273.15 + 20.\nder_T: [K/s] Time derivative of temperature\n\nConnectors:\n\nport\n\nParameters:\n\nC: [J/K] Heat capacity of element (= cp*m)\n\n\n\n\n\n","category":"constant"},{"location":"API/thermal/#ModelingToolkitStandardLibrary.Thermal.ThermalConductor","page":"Thermal Components","title":"ModelingToolkitStandardLibrary.Thermal.ThermalConductor","text":"ThermalConductor(; name, G)\n\nLumped thermal element transporting heat without storing it.\n\nStates:\n\nsee Element1D\n\nConnectors:\n\nport_a port_b\n\nParameters:\n\nG: [W/K] Constant thermal conductance of material\n\n\n\n\n\n","category":"constant"},{"location":"API/thermal/#ModelingToolkitStandardLibrary.Thermal.ThermalResistor","page":"Thermal Components","title":"ModelingToolkitStandardLibrary.Thermal.ThermalResistor","text":"ThermalResistor(; name, R)\n\nLumped thermal element transporting heat without storing it.\n\nStates:\n\ndT: [K] Temperature difference across the component a.T - b.T\nQ_flow: [W] Heat flow rate from port a -> port b\n\nConnectors:\n\nport_a\nport_b\n\nParameters:\n\nR: [K/W] Constant thermal resistance of material\n\n\n\n\n\n","category":"constant"},{"location":"API/thermal/#ModelingToolkitStandardLibrary.Thermal.ThermalCollector","page":"Thermal Components","title":"ModelingToolkitStandardLibrary.Thermal.ThermalCollector","text":"ThermalCollector(; name, m = 1)\n\nCollects m heat flows\n\nThis is a model to collect the heat flows from m heatports to one single heatport.\n\nStates:\n\nConnectors:\n\nport_a1 to port_am\nport_b\n\nParameters:\n\nm: Number of heat ports (e.g. m=2: port_a1, port_a2)\n\n\n\n\n\n","category":"function"},{"location":"API/thermal/#Thermal-Sensors","page":"Thermal Components","title":"Thermal Sensors","text":"","category":"section"},{"location":"API/thermal/","page":"Thermal Components","title":"Thermal Components","text":"RelativeTemperatureSensor\nHeatFlowSensor\nTemperatureSensor","category":"page"},{"location":"API/thermal/#ModelingToolkitStandardLibrary.Thermal.RelativeTemperatureSensor","page":"Thermal Components","title":"ModelingToolkitStandardLibrary.Thermal.RelativeTemperatureSensor","text":"RelativeTemperatureSensor(; name)\n\nRelative Temperature sensor.\n\nThe relative temperature port_a.T - port_b.T is determined between the two ports of this component and is provided as output signal in kelvin.\n\nStates:\n\nT(t): [K] Relative temperature a.T - b.T\n\nConnectors:\n\nport_a\nport_b\n\n\n\n\n\n","category":"constant"},{"location":"API/thermal/#ModelingToolkitStandardLibrary.Thermal.HeatFlowSensor","page":"Thermal Components","title":"ModelingToolkitStandardLibrary.Thermal.HeatFlowSensor","text":"HeatFlowSensor(; name)\n\nHeat flow rate sensor.\n\nThis model is capable of monitoring the heat flow rate flowing through this component. The sensed value of heat flow rate is the amount that passes through this sensor while keeping the temperature drop across the sensor zero. This is an ideal model, so it does not absorb any energy, and it has no direct effect on the thermal response of a system it is included in. The output signal is positive, if the heat flows from port_a to port_b.\n\nStates:\n\nQ_flow(t): [W] Heat flow from port_a to port_b\n\nConnectors:\n\nport_a\nport_b\n\n\n\n\n\n","category":"constant"},{"location":"API/thermal/#ModelingToolkitStandardLibrary.Thermal.TemperatureSensor","page":"Thermal Components","title":"ModelingToolkitStandardLibrary.Thermal.TemperatureSensor","text":"TemperatureSensor(; name)\n\nAbsolute temperature sensor in kelvin.\n\nThis is an ideal absolute temperature sensor which returns the temperature of the connected port in kelvin as an output signal. The sensor itself has no thermal interaction with whatever it is connected to. Furthermore, no thermocouple-like lags are associated with this sensor model.\n\nStates:\n\nT(t): [K] Absolute temperature\n\nConnectors:\n\nport\n\n\n\n\n\n","category":"constant"},{"location":"API/thermal/#Thermal-Sources","page":"Thermal Components","title":"Thermal Sources","text":"","category":"section"},{"location":"API/thermal/","page":"Thermal Components","title":"Thermal Components","text":"FixedHeatFlow\nFixedTemperature\nPrescribedHeatFlow\nPrescribedTemperature ","category":"page"},{"location":"API/thermal/#ModelingToolkitStandardLibrary.Thermal.FixedHeatFlow","page":"Thermal Components","title":"ModelingToolkitStandardLibrary.Thermal.FixedHeatFlow","text":"FixedHeatFlow(; name, Q_flow = 1.0, T_ref = 293.15, alpha = 0.0)\n\nFixed heat flow boundary condition.\n\nThis model allows a specified amount of heat flow rate to be \"injected\" into a thermal system at a given port. The constant amount of heat flow rate Q_flow is given as a parameter. The heat flows into the component to which the component FixedHeatFlow is connected, if parameter Q_flow is positive.\n\nConnectors:\n\nport\n\nParameters:\n\nQ_flow: [W] Fixed heat flow rate at port\nT_ref: [K] Reference temperature\nalpha: [1/K] Temperature coefficient of heat flow rate\n\n\n\n\n\n","category":"constant"},{"location":"API/thermal/#ModelingToolkitStandardLibrary.Thermal.FixedTemperature","page":"Thermal Components","title":"ModelingToolkitStandardLibrary.Thermal.FixedTemperature","text":"FixedTemperature(; name, T)\n\nFixed temperature boundary condition in kelvin.\n\nThis model defines a fixed temperature T at its port in kelvin, i.e., it defines a fixed temperature as a boundary condition.\n\nConnectors:\n\nport\n\nParameters:\n\nT: [K] Fixed temperature boundary condition\n\n\n\n\n\n","category":"constant"},{"location":"API/thermal/#ModelingToolkitStandardLibrary.Thermal.PrescribedHeatFlow","page":"Thermal Components","title":"ModelingToolkitStandardLibrary.Thermal.PrescribedHeatFlow","text":"PrescribedHeatFlow(; name, T_ref = 293.15, alpha = 0.0)\n\nPrescribed heat flow boundary condition.\n\nThis model allows a specified amount of heat flow rate to be \"injected\" into a thermal system at a given port. The amount of heat is given by the input signal Q_flow into the model. The heat flows into the component to which the component PrescribedHeatFlow is connected, if the input signal is positive. If parameter alpha is > 0, the heat flow is multiplied by 1 + alpha*(port.T - T_ref) in order to simulate temperature dependent losses (which are given a reference temperature T_ref).\n\nConnectors:\n\nport\nRealInput Q_flow Input for the heat flow\n\nParameters:\n\nT_ref: [K] Reference temperature\nalpha: [1/K] Temperature coefficient of heat flow rate\n\n\n\n\n\n","category":"constant"},{"location":"API/thermal/#ModelingToolkitStandardLibrary.Thermal.PrescribedTemperature","page":"Thermal Components","title":"ModelingToolkitStandardLibrary.Thermal.PrescribedTemperature","text":"PrescribedTemperature(; name)\n\nThis model represents a variable temperature boundary condition.\n\nThe temperature in kelvin is given as input signal to the RealInput T. The effect is that an instance of this model acts as an infinite reservoir, able to absorb or generate as much energy as required to keep the temperature at the specified value.\n\nConnectors:\n\nport\nRealInput T input for the temperature\n\n\n\n\n\n","category":"constant"},{"location":"tutorials/dc_motor_pi/#DC-Motor-with-PI-controller","page":"DC Motor with Speed Controller","title":"DC Motor with PI-controller","text":"","category":"section"},{"location":"tutorials/dc_motor_pi/","page":"DC Motor with Speed Controller","title":"DC Motor with Speed Controller","text":"In this example, a PI-controller is set up for speed control of a DC-motor. An equivalent circuit diagram is depicted below.","category":"page"},{"location":"tutorials/dc_motor_pi/","page":"DC Motor with Speed Controller","title":"DC Motor with Speed Controller","text":"(Image: DC-motor)","category":"page"},{"location":"tutorials/dc_motor_pi/#Modeling-and-simulation","page":"DC Motor with Speed Controller","title":"Modeling and simulation","text":"","category":"section"},{"location":"tutorials/dc_motor_pi/","page":"DC Motor with Speed Controller","title":"DC Motor with Speed Controller","text":"The electrical part consists of a resistance and inductance. The coupling between the electrical and rotational domain is done via an electro-motive force (EMF) component. The voltage across the EMF is proportional to the angular velocity and the current is proportional to the torque. On the mechanical side, viscous friction in, e.g., a bearing and the inertia of the shaft is modelled.","category":"page"},{"location":"tutorials/dc_motor_pi/","page":"DC Motor with Speed Controller","title":"DC Motor with Speed Controller","text":"A PI-controller with anti-windup measure should be used as a speed controller. A simulation is performed to verify the tracking performance of the controller and the disturbance rejection capabilities.","category":"page"},{"location":"tutorials/dc_motor_pi/","page":"DC Motor with Speed Controller","title":"DC Motor with Speed Controller","text":"First, the needed packages are imported and the parameters of the model defined.","category":"page"},{"location":"tutorials/dc_motor_pi/","page":"DC Motor with Speed Controller","title":"DC Motor with Speed Controller","text":"using ModelingToolkit\nusing ModelingToolkit: t_nounits as t\nusing ModelingToolkitStandardLibrary.Electrical\nusing ModelingToolkitStandardLibrary.Mechanical.Rotational\nusing ModelingToolkitStandardLibrary.Blocks\nusing OrdinaryDiffEq\nusing Plots\n\nR = 0.5 # [Ohm] armature resistance\nL = 4.5e-3 # [H] armature inductance\nk = 0.5 # [N.m/A] motor constant\nJ = 0.02 # [kg.m²] inertia\nf = 0.01 # [N.m.s/rad] friction factor\ntau_L_step = -0.3 # [N.m] amplitude of the load torque step\nnothing # hide","category":"page"},{"location":"tutorials/dc_motor_pi/","page":"DC Motor with Speed Controller","title":"DC Motor with Speed Controller","text":"The actual model can now be composed.","category":"page"},{"location":"tutorials/dc_motor_pi/","page":"DC Motor with Speed Controller","title":"DC Motor with Speed Controller","text":"@named ground = Ground()\n@named source = Voltage()\n@named ref = Blocks.Step(height = 1, start_time = 0)\n@named pi_controller = Blocks.LimPI(k = 1.1, T = 0.035, u_max = 10, Ta = 0.035)\n@named feedback = Blocks.Feedback()\n@named R1 = Resistor(R = R)\n@named L1 = Inductor(L = L)\n@named emf = EMF(k = k)\n@named fixed = Fixed()\n@named load = Torque()\n@named load_step = Blocks.Step(height = tau_L_step, start_time = 3)\n@named inertia = Inertia(J = J)\n@named friction = Damper(d = f)\n@named speed_sensor = SpeedSensor()\n\nconnections = [connect(fixed.flange, emf.support, friction.flange_b)\n connect(emf.flange, friction.flange_a, inertia.flange_a)\n connect(inertia.flange_b, load.flange)\n connect(inertia.flange_b, speed_sensor.flange)\n connect(load_step.output, load.tau)\n connect(ref.output, feedback.input1)\n connect(speed_sensor.w, :y, feedback.input2)\n connect(feedback.output, pi_controller.err_input)\n connect(pi_controller.ctr_output, :u, source.V)\n connect(source.p, R1.p)\n connect(R1.n, L1.p)\n connect(L1.n, emf.p)\n connect(emf.n, source.n, ground.g)]\n\n@named model = ODESystem(connections, t,\n systems = [\n ground,\n ref,\n pi_controller,\n feedback,\n source,\n R1,\n L1,\n emf,\n fixed,\n load,\n load_step,\n inertia,\n friction,\n speed_sensor\n ])\nnothing # hide","category":"page"},{"location":"tutorials/dc_motor_pi/","page":"DC Motor with Speed Controller","title":"DC Motor with Speed Controller","text":"Now the model can be simulated. Typical rotational mechanical systems are described via DAE (differential algebraic equations), however in this case, ModelingToolkit can simplify the model enough so that it can be represented as a system of ODEs (ordinary differential equations).","category":"page"},{"location":"tutorials/dc_motor_pi/","page":"DC Motor with Speed Controller","title":"DC Motor with Speed Controller","text":"sys = structural_simplify(model)\nprob = ODEProblem(sys, [], (0, 6.0))\nsol = solve(prob, Rodas4())\n\np1 = Plots.plot(sol.t, sol[inertia.w], ylabel = \"Angular Vel. in rad/s\",\n label = \"Measurement\", title = \"DC Motor with Speed Controller\")\nPlots.plot!(sol.t, sol[ref.output.u], label = \"Reference\")\np2 = Plots.plot(sol.t, sol[load.tau.u], ylabel = \"Disturbance in Nm\", label = \"\")\nPlots.plot(p1, p2, layout = (2, 1))","category":"page"},{"location":"tutorials/dc_motor_pi/#Closed-loop-analysis","page":"DC Motor with Speed Controller","title":"Closed-loop analysis","text":"","category":"section"},{"location":"tutorials/dc_motor_pi/","page":"DC Motor with Speed Controller","title":"DC Motor with Speed Controller","text":"When implementing and tuning a control system in simulation, it is a good practice to analyze the closed-loop properties and verify robustness of the closed-loop with respect to, e.g., modeling errors. To facilitate this, we added two analysis points to the set of connections above, more specifically, we added the analysis points named :y and :u to the connections (for more details on analysis points, see Linear Analysis)","category":"page"},{"location":"tutorials/dc_motor_pi/","page":"DC Motor with Speed Controller","title":"DC Motor with Speed Controller","text":"connect(speed_sensor.w, :y, feedback.input2)\nconnect(pi_controller.ctr_output, :u, source.V)","category":"page"},{"location":"tutorials/dc_motor_pi/","page":"DC Motor with Speed Controller","title":"DC Motor with Speed Controller","text":"one at the plant output (:y) and one at the plant input (:u). We may use these analysis points to calculate, e.g., sensitivity functions, illustrated below. Here, we calculate the sensitivity function S(s) and the complimentary sensitivity function T(s) = I - S(s), defined as","category":"page"},{"location":"tutorials/dc_motor_pi/","page":"DC Motor with Speed Controller","title":"DC Motor with Speed Controller","text":"beginaligned\nS(s) = dfrac1I + P(s)C(s) \nT(s) = dfracP(s)C(s)I + P(s)C(s)\nendaligned","category":"page"},{"location":"tutorials/dc_motor_pi/","page":"DC Motor with Speed Controller","title":"DC Motor with Speed Controller","text":"using ControlSystemsBase\nmatrices_S, simplified_sys = Blocks.get_sensitivity(model, :y)\nSo = ss(matrices_S...) |> minreal # The output-sensitivity function as a StateSpace system\nmatrices_T, simplified_sys = Blocks.get_comp_sensitivity(model, :y)\nTo = ss(matrices_T...)# The output complementary sensitivity function as a StateSpace system\nbodeplot([So, To], label = [\"S\" \"T\"], plot_title = \"Sensitivity functions\",\n plotphase = false)","category":"page"},{"location":"tutorials/dc_motor_pi/","page":"DC Motor with Speed Controller","title":"DC Motor with Speed Controller","text":"Similarly, we may compute the loop-transfer function and plot its Nyquist curve","category":"page"},{"location":"tutorials/dc_motor_pi/","page":"DC Motor with Speed Controller","title":"DC Motor with Speed Controller","text":"matrices_L, simplified_sys = Blocks.get_looptransfer(model, :y)\nL = -ss(matrices_L...) # The loop-transfer function as a StateSpace system. The negative sign is to negate the built-in negative feedback\nMs, ωMs = hinfnorm(So) # Compute the peak of the sensitivity function to draw a circle in the Nyquist plot\nnyquistplot(L, label = \"\\$L(s)\\$\", ylims = (-2.5, 0.5), xlims = (-1.2, 0.1),\n Ms_circles = Ms)","category":"page"},{"location":"API/electrical/#ModelingToolkitStandardLibrary:-Electrical-Components","page":"Electrical Components","title":"ModelingToolkitStandardLibrary: Electrical Components","text":"","category":"section"},{"location":"API/electrical/","page":"Electrical Components","title":"Electrical Components","text":"CurrentModule = ModelingToolkitStandardLibrary.Electrical","category":"page"},{"location":"API/electrical/","page":"Electrical Components","title":"Electrical Components","text":"Pages = [\"electrical.md\"]","category":"page"},{"location":"API/electrical/#Index","page":"Electrical Components","title":"Index","text":"","category":"section"},{"location":"API/electrical/","page":"Electrical Components","title":"Electrical Components","text":"Pages = [\"electrical.md\"]","category":"page"},{"location":"API/electrical/#Electrical-Utilities","page":"Electrical Components","title":"Electrical Utilities","text":"","category":"section"},{"location":"API/electrical/","page":"Electrical Components","title":"Electrical Components","text":"Pin\nOnePort\nDigitalPin","category":"page"},{"location":"API/electrical/#ModelingToolkitStandardLibrary.Electrical.Pin","page":"Electrical Components","title":"ModelingToolkitStandardLibrary.Electrical.Pin","text":"Pin(; name)\n\nA pin in an analog circuit.\n\nStates:\n\nv(t): [V] The voltage at this pin\ni(t): [A] The current passing through this pin\n\n\n\n\n\n","category":"constant"},{"location":"API/electrical/#ModelingToolkitStandardLibrary.Electrical.OnePort","page":"Electrical Components","title":"ModelingToolkitStandardLibrary.Electrical.OnePort","text":"OnePort(; name, v = 0.0, i = 0.0)\n\nComponent with two electrical pins p and n and current i flows from p to n.\n\nStates:\n\nv(t): [V] The voltage across component p.v - n.v\ni(t): [A] The current passing through positive pin\n\nConnectors:\n\np Positive pin\nn Negative pin\n\n\n\n\n\n","category":"constant"},{"location":"API/electrical/#ModelingToolkitStandardLibrary.Electrical.DigitalPin","page":"Electrical Components","title":"ModelingToolkitStandardLibrary.Electrical.DigitalPin","text":"DigitalPin(; name)\n\nA pin in a digital circuit.\n\nStates:\n\nv(t): [V] The voltage at this pin\ni(t): [A] The current passing through this pin\nval(t): The binary value of the pin at this point. A voltage from 0V to 0.8V is a binary value of 0.\n\nA voltage in the range 2.0V to 5.0V is 1. Any other value is X.\n\n\n\n\n\n","category":"function"},{"location":"API/electrical/#Analog-Components","page":"Electrical Components","title":"Analog Components","text":"","category":"section"},{"location":"API/electrical/","page":"Electrical Components","title":"Electrical Components","text":"Ground\nResistor\nConductor\nCapacitor\nInductor\nIdealOpAmp","category":"page"},{"location":"API/electrical/#ModelingToolkitStandardLibrary.Electrical.Ground","page":"Electrical Components","title":"ModelingToolkitStandardLibrary.Electrical.Ground","text":"Ground(; name)\n\nGround node with the potential of zero and connector g. Every circuit must have one ground node.\n\nConnectors:\n\ng\n\n\n\n\n\n","category":"constant"},{"location":"API/electrical/#ModelingToolkitStandardLibrary.Electrical.Resistor","page":"Electrical Components","title":"ModelingToolkitStandardLibrary.Electrical.Resistor","text":"Resistor(; name, R)\n\nCreates an ideal Resistor following Ohm's Law.\n\nStates:\n\nSee OnePort\n\nConnectors:\n\np Positive pin\nn Negative pin\n\nParameters:\n\nR: [Ohm] Resistance\n\n\n\n\n\n","category":"constant"},{"location":"API/electrical/#ModelingToolkitStandardLibrary.Electrical.Conductor","page":"Electrical Components","title":"ModelingToolkitStandardLibrary.Electrical.Conductor","text":"Conductor(; name, G)\n\nCreates an ideal conductor.\n\nStates:\n\nSee OnePort\n\nConnectors:\n\np Positive pin\nn Negative pin\n\nParameters:\n\nG: [S] Conductance\n\n\n\n\n\n","category":"constant"},{"location":"API/electrical/#ModelingToolkitStandardLibrary.Electrical.Capacitor","page":"Electrical Components","title":"ModelingToolkitStandardLibrary.Electrical.Capacitor","text":"Capacitor(; name, C, v)\n\nCreates an ideal capacitor. Initial voltage of capacitor can be set with v ([V])\n\nStates:\n\nSee OnePort\n\nConnectors:\n\np Positive pin\nn Negative pin\n\nParameters:\n\nC: [F] Capacitance\n\n\n\n\n\n","category":"constant"},{"location":"API/electrical/#ModelingToolkitStandardLibrary.Electrical.Inductor","page":"Electrical Components","title":"ModelingToolkitStandardLibrary.Electrical.Inductor","text":"Inductor(; name, L, i)\n\nCreates an ideal Inductor. Initial current through inductor can be set with i ([A]).\n\nStates:\n\nSee OnePort\n\nConnectors:\n\np Positive pin\nn Negative pin\n\nParameters:\n\nL: [H] Inductance\n\n\n\n\n\n","category":"constant"},{"location":"API/electrical/#ModelingToolkitStandardLibrary.Electrical.IdealOpAmp","page":"Electrical Components","title":"ModelingToolkitStandardLibrary.Electrical.IdealOpAmp","text":"IdealOpAmp(; name)\n\nIdeal operational amplifier (norator-nullator pair). The ideal OpAmp is a two-port. The left port is fixed to v1 = 0 and i1 = 0 (nullator). At the right port both any voltage v2 and any current i2 are possible (norator).\n\nStates:\n\nSee TwoPort\n\nConnectors:\n\np1 Positive pin (left port)\np2 Positive pin (right port)\nn1 Negative pin (left port)\nn2 Negative pin (right port)\n\n\n\n\n\n","category":"constant"},{"location":"API/electrical/#Analog-Sensors","page":"Electrical Components","title":"Analog Sensors","text":"","category":"section"},{"location":"API/electrical/","page":"Electrical Components","title":"Electrical Components","text":"CurrentSensor\nPotentialSensor\nVoltageSensor\nPowerSensor\nMultiSensor","category":"page"},{"location":"API/electrical/#ModelingToolkitStandardLibrary.Electrical.CurrentSensor","page":"Electrical Components","title":"ModelingToolkitStandardLibrary.Electrical.CurrentSensor","text":"CurrentSensor(; name)\n\nCreates a circuit component that measures the current flowing through it. Analogous to an ideal ammeter.\n\nStates:\n\ni(t): [A] Current through the sensor\n\nConnectors:\n\np Positive pin\nn Negative pin\n\n\n\n\n\n","category":"constant"},{"location":"API/electrical/#ModelingToolkitStandardLibrary.Electrical.PotentialSensor","page":"Electrical Components","title":"ModelingToolkitStandardLibrary.Electrical.PotentialSensor","text":"PotentialSensor(; name)\n\nCreates a circuit component which measures the potential at a pin.\n\nStates:\n\nphi(t): [V] The measured potential at this point\n\nConnectors:\n\np Pin at which potential is to be measured\n\n\n\n\n\n","category":"constant"},{"location":"API/electrical/#ModelingToolkitStandardLibrary.Electrical.VoltageSensor","page":"Electrical Components","title":"ModelingToolkitStandardLibrary.Electrical.VoltageSensor","text":"VoltageSensor(; name)\n\nCreates a circuit component that measures the voltage across it. Analogous to an ideal voltmeter.\n\nStates:\n\nv(t): [V] The voltage difference from positive to negative pin p.v - n.v\n\nConnectors:\n\np Positive pin\nn Negative pin\n\n\n\n\n\n","category":"constant"},{"location":"API/electrical/#ModelingToolkitStandardLibrary.Electrical.PowerSensor","page":"Electrical Components","title":"ModelingToolkitStandardLibrary.Electrical.PowerSensor","text":"PowerSensor(; name)\n\nCombines a VoltageSensor and a CurrentSensor to measure the power being consumed by a circuit.\n\nStates:\n\npower(t): [W] The power being consumed, given by the product of voltage and current\nSee VoltageSensor\nSee CurrentSensor\n\nConnectors:\n\npc Corresponds to the p pin of the CurrentSensor\nnc Corresponds to the n pin of the CurrentSensor\npv Corresponds to the p pin of the VoltageSensor\nnv Corresponds to the n pin of the VoltageSensor\n\n\n\n\n\n","category":"constant"},{"location":"API/electrical/#ModelingToolkitStandardLibrary.Electrical.MultiSensor","page":"Electrical Components","title":"ModelingToolkitStandardLibrary.Electrical.MultiSensor","text":"MultiSensor(; name)\n\nCombines a VoltageSensor and a CurrentSensor.\n\nStates:\n\nv(t): [V] The voltage across the VoltageSensor. Defaults to 1.0.\ni(t): [A] The current across the CurrentSensor. Defaults to 1.0.\n\nConnectors:\n\npc Corresponds to the p pin of the CurrentSensor\nnc Corresponds to the n pin of the CurrentSensor\npv Corresponds to the p pin of the VoltageSensor\nnv Corresponds to the n pin of the VoltageSensor\n\n\n\n\n\n","category":"constant"},{"location":"API/electrical/#Analog-Sources","page":"Electrical Components","title":"Analog Sources","text":"","category":"section"},{"location":"API/electrical/","page":"Electrical Components","title":"Electrical Components","text":"Voltage\nCurrent","category":"page"},{"location":"API/electrical/#ModelingToolkitStandardLibrary.Electrical.Voltage","page":"Electrical Components","title":"ModelingToolkitStandardLibrary.Electrical.Voltage","text":"Voltage(; name)\n\nActs as an ideal voltage source with no internal resistance.\n\nStates:\n\nSee OnePort\n\nConnectors:\n\np Positive pin\nn Negative pin\nV RealInput Input for the voltage control signal, i.e. V ~ p.v - n.v\n\n\n\n\n\n","category":"constant"},{"location":"API/electrical/#ModelingToolkitStandardLibrary.Electrical.Current","page":"Electrical Components","title":"ModelingToolkitStandardLibrary.Electrical.Current","text":"Current(; name)\n\nActs as an ideal current source with no internal resistance.\n\nStates:\n\nSee OnePort\n\nConnectors:\n\np Positive pin\nn Negative pin\nI RealInput Input for the current control signal, i.e. `I ~ p.i\n\n\n\n\n\n","category":"constant"},{"location":"API/electrical/#Digital-Gates","page":"Electrical Components","title":"Digital Gates","text":"","category":"section"},{"location":"API/electrical/","page":"Electrical Components","title":"Electrical Components","text":"Not\nAnd\nNand\nOr\nNor\nXor\nXnor","category":"page"},{"location":"API/electrical/#Digital-Components","page":"Electrical Components","title":"Digital Components","text":"","category":"section"},{"location":"API/electrical/","page":"Electrical Components","title":"Electrical Components","text":"HalfAdder\nFullAdder\nMUX\nDEMUX\nEncoder\nDecoder","category":"page"},{"location":"API/electrical/#Digital-Sources","page":"Electrical Components","title":"Digital Sources","text":"","category":"section"},{"location":"API/electrical/","page":"Electrical Components","title":"Electrical Components","text":"PulseDiff\nSet\nReset\nPulse","category":"page"},{"location":"connectors/connections/#Introduction","page":"About Acausal Connections","title":"Introduction","text":"","category":"section"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"In Physical Network Acausal modeling, each physical domain must define a connector to combine model components. Each physical domain connector defines a minimum of 2 variables, one which is called a Through variable, and one which is called an Across variable. Both Modelica and SimScape define these variables in the same way:","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"Modelica Connectors\nSimScape Connectors","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"However, the standard libraries differ on the selection of the Across variable for the Mechanical Translation and Rotation libraries, Modelica choosing position and angle and SimScape choosing velocity and angular velocity, respectively for Translation and Rotation. Modelica describes their decision here. In summary, they would like to provide less integration in the model to avoid lossy numerical behavior, but this decision assumes the lowest order derivative is needed by the model. Numerically it is possible to define the connector either way, but there are some consequences of this decision, and therefore we will study them in detail here as they relate to ModelingToolkit.","category":"page"},{"location":"connectors/connections/#Through-and-Across-Variable-Theory","page":"About Acausal Connections","title":"Through and Across Variable Theory","text":"","category":"section"},{"location":"connectors/connections/#General","page":"About Acausal Connections","title":"General","text":"","category":"section"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"The idea behind the selection of the through variable is that it should be a time derivative of some conserved quantity. The conserved quantity should be expressed by the across variable. In general terms, the physical system is given by","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"Energy Dissipation & Flow:","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"beginaligned\n partial colorblueacross partial t cdot c_1 = colorgreenthrough \n colorgreenthrough cdot c_2 = colorblueacross\nendaligned","category":"page"},{"location":"connectors/connections/#Electrical","page":"About Acausal Connections","title":"Electrical","text":"","category":"section"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"For the Electrical domain, the across variable is voltage and the through variable current. Therefore","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"Energy Dissipation:","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"partial colorbluevoltage partial t cdot capacitance = colorgreencurrent","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"Flow:","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"colorgreencurrent cdot resistance = colorbluevoltage","category":"page"},{"location":"connectors/connections/#Translational","page":"About Acausal Connections","title":"Translational","text":"","category":"section"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"For the translation domain, choosing velocity for the across variable and force for the through gives","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"Energy Dissipation:","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"partial colorbluevelocity partial t cdot mass = colorgreenforce","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"Flow:","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"colorgreenforce cdot (1damping) = colorbluevelocity","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"The diagram here shows the similarity of problems in different physical domains.","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"(Image: Through and Across Variables)","category":"page"},{"location":"connectors/connections/#Translational-Connector-using-*Position*-Across-Variable","page":"About Acausal Connections","title":"Translational Connector using Position Across Variable","text":"","category":"section"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"Now, if we choose position for the across variable, a similar relationship can be established, but the pattern must be broken.","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"Energy Dissipation:","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"partial^2 colorblueposition partial t^2 cdot mass = colorgreenforce","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"Flow:","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"colorgreenforce cdot (1damping) = partial colorblueposition partial t","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"As can be seen, we must now establish a higher order derivative to define the Energy Dissipation and Flow equations, requiring an extra equation, as will be shown in the example below.","category":"page"},{"location":"connectors/connections/#Examples","page":"About Acausal Connections","title":"Examples","text":"","category":"section"},{"location":"connectors/connections/#Electrical-Domain","page":"About Acausal Connections","title":"Electrical Domain","text":"","category":"section"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"We can generate the above relationship with ModelingToolkit and the ModelingToolkitStandardLibrary using 3 blocks:","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"Capacitor: for energy storage with initial voltage = 1V\nResistor: for energy flow\nGround: for energy sink","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"As can be seen, this will give a 1 equation model matching our energy dissipation relationship","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"using ModelingToolkitStandardLibrary.Electrical, ModelingToolkit, DifferentialEquations\nusing ModelingToolkit: t_nounits as t\nusing Plots\n\n@named resistor = Resistor(R = 1)\n@named capacitor = Capacitor(C = 1)\n@named ground = Ground()\n\neqs = [connect(capacitor.p, resistor.p)\n connect(resistor.n, ground.g, capacitor.n)]\n\n@named model = ODESystem(eqs, t; systems = [resistor, capacitor, ground])\n\nsys = structural_simplify(model)\n\nprintln.(equations(sys))\nnothing # hide","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"The solution shows what we would expect, a non-linear dissipation of voltage and related decrease in current flow…","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"prob = ODEProblem(sys, [1.0], (0, 10.0), [])\nsol = solve(prob)\n\np1 = plot(sol, idxs = [capacitor.v])\np2 = plot(sol, idxs = [resistor.i])\nplot(p1, p2)","category":"page"},{"location":"connectors/connections/#Mechanical-Translational-Domain","page":"About Acausal Connections","title":"Mechanical Translational Domain","text":"","category":"section"},{"location":"connectors/connections/#Across-Variable-velocity","page":"About Acausal Connections","title":"Across Variable = velocity","text":"","category":"section"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"Now using the Translational library based on velocity, we can see the same relationship with a system reduced to a single equation, using the components:","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"Body (i.e. moving mass): for kinetic energy storage with an initial velocity = 1m/s\nDamper: for energy flow\nFixed: for energy sink","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"using ModelingToolkitStandardLibrary\nconst TV = ModelingToolkitStandardLibrary.Mechanical.Translational\n\n@named damping = TV.Damper(d = 1, flange_a.v = 1)\n@named body = TV.Mass(m = 1, v = 1)\n@named ground = TV.Fixed()\n\neqs = [connect(damping.flange_a, body.flange)\n connect(ground.flange, damping.flange_b)]\n\n@named model = ODESystem(eqs, t; systems = [damping, body, ground])\n\nsys = structural_simplify(model)\n\nprintln.(full_equations(sys))\nnothing # hide","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"As expected, we have a similar solution…","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"prob = ODEProblem(sys, [], (0, 10.0), [])\nsol_v = solve(prob)\n\np1 = plot(sol_v, idxs = [body.v])\np2 = plot(sol_v, idxs = [damping.f])\nplot(p1, p2)","category":"page"},{"location":"connectors/connections/#Across-Variable-position","page":"About Acausal Connections","title":"Across Variable = position","text":"","category":"section"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"Now, let's consider the position-based approach. We can build the same model with the same components. As can be seen, we now end of up with 2 equations, because we need to relate the lower derivative (position) to force (with acceleration).","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"const TP = ModelingToolkitStandardLibrary.Mechanical.TranslationalPosition\n\n@named damping = TP.Damper(d = 1, va = 1, vb = 0.0)\n@named body = TP.Mass(m = 1, v = 1)\n@named ground = TP.Fixed(s_0 = 0)\n\neqs = [connect(damping.flange_a, body.flange)\n connect(ground.flange, damping.flange_b)]\n\n@named model = ODESystem(eqs, t; systems = [damping, body, ground])\n\nsys = structural_simplify(model)\n\nprintln.(full_equations(sys))\nnothing # hide","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"As can be seen, we get exactly the same result. The only difference here is that we are solving an extra equation, which allows us to plot the body position as well.","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"prob = ODEProblem(sys, [], (0, 10.0), [])\nsol_p = solve(prob)\n\np1 = plot(sol_p, idxs = [body.v])\np2 = plot(sol_p, idxs = [damping.f])\np3 = plot(sol_p, idxs = [body.s])\n\nplot(p1, p2, p3)","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"The question then arises, can the position be plotted when using the Mechanical Translational Domain based on the Velocity Across variable? Yes, we can! There are 2 solutions:","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"the Mass component will add the position variable when the s parameter is used to set an initial position. Otherwise, the component does not track the position.","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"@named body = TV.Mass(m = 1, v = 1, s = 0)","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"implement a PositionSensor TODO: Implement Translation Sensors","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"Either option will produce the same result regardless of which across variable is used. If the same result is given, why are both options included in the Standard Library, what are the differences? These differences will be discussed next so that an informed decision can be made about which domain is best for your model.","category":"page"},{"location":"connectors/connections/#Mechanical/Translational-Library-Differences-(Velocity-vs.-Position-Connectors)","page":"About Acausal Connections","title":"Mechanical/Translational Library Differences (Velocity vs. Position Connectors)","text":"","category":"section"},{"location":"connectors/connections/#Initialization","page":"About Acausal Connections","title":"Initialization","text":"","category":"section"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"The main difference between ModelingToolkitStandardLibrary.Mechanical.Translational and ModelingToolkitStandardLibrary.Mechanical.TranslationalPosition is how they are initialized. In the ModelingToolkitStandardLibrary initialization, parameters are defined at the component level, so we simply need to be careful to set the correct initial conditions for the domain that it used. Let's use the following example problem to explain the differences.","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"(Image: Example Mechanical Model)","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"In this problem, we have a mass, spring, and damper which are connected to a fixed point. Let's see how each component is defined.","category":"page"},{"location":"connectors/connections/#Damper","page":"About Acausal Connections","title":"Damper","text":"","category":"section"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"The damper will connect the flange/flange 1 (flange_a) to the mass, and flange/flange 2 (flange_b) to the fixed point. For both position- and velocity-based domains, we set the damping constant d=1 and va=1 and leave the default for v_b_0 at 0. For the position domain, we also need to set the initial positions for flange_a and flange_b.","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"@named dv = TV.Damper(d = 1, flange_a.v = 1)\n@named dp = TP.Damper(d = 1, va = 1, vb = 0.0, flange_a__s = 3, flange_b__s = 1)\nnothing # hide","category":"page"},{"location":"connectors/connections/#Spring","page":"About Acausal Connections","title":"Spring","text":"","category":"section"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"The spring will connect the flange/flange 1 (flange_a) to the mass, and flange/flange 2 (flange_b) to the fixed point. For both position- and velocity-based domains, we set the spring constant k=1. The velocity domain then requires the initial velocity va and initial spring stretch delta_s. The position domain instead needs the initial positions for flange_a and flange_b and the natural spring length l.","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"@named sv = TV.Spring(k = 1, flange_a__v = 1, delta_s = 1)\n@named sp = TP.Spring(k = 1, flange_a__s = 3, flange_b__s = 1, l = 1)\nnothing # hide","category":"page"},{"location":"connectors/connections/#Mass","page":"About Acausal Connections","title":"Mass","text":"","category":"section"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"For both position- and velocity-based domains, we set the mass m=1 and initial velocity v=1. Like the damper, the position domain requires the position initial conditions set as well.","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"@named bv = TV.Mass(m = 1, v = 1)\n@named bp = TP.Mass(m = 1, v = 1, s = 3)\nnothing # hide","category":"page"},{"location":"connectors/connections/#Fixed","page":"About Acausal Connections","title":"Fixed","text":"","category":"section"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"Here the velocity domain requires no initial condition, but for our model to work as defined we must set the position domain component to the correct initial position.","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"@named gv = TV.Fixed()\n@named gp = TP.Fixed(s_0 = 1)\nnothing # hide","category":"page"},{"location":"connectors/connections/#Comparison","page":"About Acausal Connections","title":"Comparison","text":"","category":"section"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"As can be seen, the position-based domain requires more initial condition information to be properly defined, since the absolute position information is required. Therefore, based on the model being described, it may be more natural to choose one domain over the other.","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"Let's define a quick function to simplify and solve the 2 different systems. Note, we will solve with a fixed time step and a set tolerance to compare the numerical differences.","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"function simplify_and_solve(damping, spring, body, ground)\n eqs = [connect(spring.flange_a, body.flange, damping.flange_a)\n connect(spring.flange_b, damping.flange_b, ground.flange)]\n\n @named model = ODESystem(eqs, t; systems = [ground, body, spring, damping])\n\n sys = structural_simplify(model)\n\n println.(full_equations(sys))\n\n prob = ODEProblem(sys, [], (0, 10.0), [])\n sol = solve(prob; dt = 0.1, adaptive = false, reltol = 1e-9, abstol = 1e-9)\n\n return sol\nend\nnothing # hide","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"Now let's solve the velocity domain model","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"solv = simplify_and_solve(dv, sv, bv, gv);\nnothing # hide","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"And the position domain model","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"solp = simplify_and_solve(dp, sp, bp, gp);\nnothing # hide","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"Now we can plot the comparison of the 2 models and see they give the same result.","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"plot(ylabel = \"mass velocity [m/s]\")\nplot!(solv, idxs = [bv.v])\nplot!(solp, idxs = [bp.v])","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"But, what if we wanted to plot the mass position? This is easy for the position-based domain, we have the state bp₊s(t), but for the velocity-based domain we have sv₊delta_s(t) which is the spring stretch. To get the absolute position, we add the spring natural length (1m) and the fixed position (1m). As can be seen, we then get the same result.","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"plot(ylabel = \"mass position [m]\")\nplot!(solv, idxs = [sv.delta_s + 1 + 1])\nplot!(solp, idxs = [bp.s])","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"So in conclusion, the position based domain gives easier access to absolute position information, but requires more initial condition information.","category":"page"},{"location":"connectors/connections/#Accuracy","page":"About Acausal Connections","title":"Accuracy","text":"","category":"section"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"One may then ask, what the trade-off in terms of numerical accuracy is. When we look at the simplified equations, we can see that actually both systems solve the same equations. The differential equations of the velocity domain are","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"beginaligned\nm cdot dotv + d cdot v + k cdot Delta s = 0 \ndotDelta s = v\nendaligned","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"And for the position domain are","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"beginaligned\nm cdot dotv + d cdot v + k cdot (s - s_b_0 - l) = 0 \ndots = v\nendaligned","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"By definition, the spring stretch is","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"Delta s = s - s_b_0 - l","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"Which means both systems are actually solving the same exact system. We can plot the numerical difference between the 2 systems and see the result is negligible.","category":"page"},{"location":"connectors/connections/","page":"About Acausal Connections","title":"About Acausal Connections","text":"plot(title = \"numerical difference: vel. vs. pos. domain\", xlabel = \"time [s]\",\n ylabel = \"solv[bv.v] .- solp[bp.v]\")\ntime = 0:0.1:10\nplot!(time, (solv(time)[bv.v] .- solp(time)[bp.v]), label = \"\")\nPlots.ylims!(-1e-15, 1e-15)","category":"page"},{"location":"tutorials/custom_component/#Custom-Component","page":"Custom Components","title":"Custom Component","text":"","category":"section"},{"location":"tutorials/custom_component/","page":"Custom Components","title":"Custom Components","text":"In this tutorial, the creation of a custom component is demonstrated via the Chua's circuit. The circuit is a simple circuit that shows chaotic behavior. Except for a non-linear resistor, every other component already is part of ModelingToolkitStandardLibrary.Electrical.","category":"page"},{"location":"tutorials/custom_component/","page":"Custom Components","title":"Custom Components","text":"First, we need to make some imports.","category":"page"},{"location":"tutorials/custom_component/","page":"Custom Components","title":"Custom Components","text":"using ModelingToolkit\nusing ModelingToolkit: t_nounits as t\nusing ModelingToolkitStandardLibrary.Electrical\nusing ModelingToolkitStandardLibrary.Electrical: OnePort\nusing OrdinaryDiffEq\nusing IfElse: ifelse\nusing Plots","category":"page"},{"location":"tutorials/custom_component/#Custom-Component-2","page":"Custom Components","title":"Custom Component","text":"","category":"section"},{"location":"tutorials/custom_component/","page":"Custom Components","title":"Custom Components","text":"Now the custom component can be defined. The Modelica implementation of the NonlinearResistor looks as follows:","category":"page"},{"location":"tutorials/custom_component/","page":"Custom Components","title":"Custom Components","text":"model NonlinearResistor \"Chua's resistor\"\n extends Interfaces.OnePort;\n\n parameter SI.Conductance Ga \"conductance in inner voltage range\";\n parameter SI.Conductance Gb \"conductance in outer voltage range\";\n parameter SI.Voltage Ve \"inner voltage range limit\";\nequation\n i = if (v < -Ve) then Gb*(v + Ve) - Ga*Ve else if (v > Ve) then Gb*(v - Ve) + Ga*Ve else Ga*v;\nend NonlinearResistor;","category":"page"},{"location":"tutorials/custom_component/","page":"Custom Components","title":"Custom Components","text":"this can almost be directly translated to the syntax of ModelingToolkit.","category":"page"},{"location":"tutorials/custom_component/","page":"Custom Components","title":"Custom Components","text":"function NonlinearResistor(; name, Ga, Gb, Ve)\n @named oneport = OnePort()\n @unpack v, i = oneport\n pars = @parameters Ga=Ga Gb=Gb Ve=Ve\n eqs = [\n i ~ ifelse(v < -Ve,\n Gb * (v + Ve) - Ga * Ve,\n ifelse(v > Ve,\n Gb * (v - Ve) + Ga * Ve,\n Ga * v))\n ]\n extend(ODESystem(eqs, t, [], pars; name = name), oneport)\nend\nnothing # hide","category":"page"},{"location":"tutorials/custom_component/#Explanation","page":"Custom Components","title":"Explanation","text":"","category":"section"},{"location":"tutorials/custom_component/","page":"Custom Components","title":"Custom Components","text":"All components in ModelingToolkit are created via a function that serves as the constructor and returns some form of system, in this case, an ODESystem. Since the non-linear resistor is essentially a standard electrical component with two ports, we can extend from the OnePort component of the library.","category":"page"},{"location":"tutorials/custom_component/","page":"Custom Components","title":"Custom Components","text":"@named oneport = OnePort()","category":"page"},{"location":"tutorials/custom_component/","page":"Custom Components","title":"Custom Components","text":"This creates a OnePort with the name = :oneport. For easier notation, we can unpack the states of the component","category":"page"},{"location":"tutorials/custom_component/","page":"Custom Components","title":"Custom Components","text":"@unpack v, i = oneport","category":"page"},{"location":"tutorials/custom_component/","page":"Custom Components","title":"Custom Components","text":"It might be a good idea to create parameters for the constants of the NonlinearResistor.","category":"page"},{"location":"tutorials/custom_component/","page":"Custom Components","title":"Custom Components","text":"pars = @parameters Ga=Ga Gb=Gb Ve=Ve","category":"page"},{"location":"tutorials/custom_component/","page":"Custom Components","title":"Custom Components","text":"The syntax looks funny but it simply creates symbolic parameters with the name Ga where its default value is set from the function's argument Ga. While this is not strictly necessary it allows the user to remake the problem easily with different parameters or allow for auto-tuning or parameter optimization without having to do all the costly steps that may be involved with building and simplifying a model. The non-linear (in this case piece-wise constant) equation for the current can be implemented using IfElse.ifelse. Finally, the created oneport component is extended with the created equations and parameters. In this case, no extra state variables are added, hence an empty vector is supplied. The independent variable t needs to be supplied as the second argument.","category":"page"},{"location":"tutorials/custom_component/","page":"Custom Components","title":"Custom Components","text":"extend(ODESystem(eqs, t, [], pars; name = name), oneport)","category":"page"},{"location":"tutorials/custom_component/#Building-the-Model","page":"Custom Components","title":"Building the Model","text":"","category":"section"},{"location":"tutorials/custom_component/","page":"Custom Components","title":"Custom Components","text":"The final model can now be created with the components from the library and the new custom component.","category":"page"},{"location":"tutorials/custom_component/","page":"Custom Components","title":"Custom Components","text":"@named L = Inductor(L = 18)\n@named Ro = Resistor(R = 12.5e-3)\n@named G = Conductor(G = 0.565)\n@named C1 = Capacitor(C = 10, v = 4)\n@named C2 = Capacitor(C = 100)\n@named Nr = NonlinearResistor(Ga = -0.757576,\n Gb = -0.409091,\n Ve = 1)\n@named Gnd = Ground()\n\nconnections = [connect(L.p, G.p)\n connect(G.n, Nr.p)\n connect(Nr.n, Gnd.g)\n connect(C1.p, G.n)\n connect(L.n, Ro.p)\n connect(G.p, C2.p)\n connect(C1.n, Gnd.g)\n connect(C2.n, Gnd.g)\n connect(Ro.n, Gnd.g)]\n\n@named model = ODESystem(connections, t, systems = [L, Ro, G, C1, C2, Nr, Gnd])\nnothing # hide","category":"page"},{"location":"tutorials/custom_component/#Simulating-the-Model","page":"Custom Components","title":"Simulating the Model","text":"","category":"section"},{"location":"tutorials/custom_component/","page":"Custom Components","title":"Custom Components","text":"Now the model can be simulated. First, structural_simplify is called on the model and an ODEProblem is built from the result. Since the initial voltage of the first capacitor was already specified via v, no initial condition is given and an empty pair is supplied.","category":"page"},{"location":"tutorials/custom_component/","page":"Custom Components","title":"Custom Components","text":"sys = structural_simplify(model)\nprob = ODEProblem(sys, Pair[], (0, 5e4), saveat = 0.01)\nsol = solve(prob, Rodas4())\n\nPlots.plot(sol[C1.v], sol[C2.v], title = \"Chaotic Attractor\", label = \"\",\n ylabel = \"C1 Voltage in V\", xlabel = \"C2 Voltage in V\")\nPlots.savefig(\"chua_phase_plane.png\")\nnothing # hide\n\nPlots.plot(sol; idxs = [C1.v, C2.v, L.i],\n labels = [\"C1 Voltage in V\" \"C2 Voltage in V\" \"Inductor Current in A\"])\nPlots.savefig(\"chua.png\")\nnothing # hide","category":"page"},{"location":"tutorials/custom_component/","page":"Custom Components","title":"Custom Components","text":"(Image: Time series plot of C1.v, C2.v and L.i)","category":"page"},{"location":"tutorials/custom_component/","page":"Custom Components","title":"Custom Components","text":"(Image: Phase plane plot of C1.v and C2.v)","category":"page"},{"location":"tutorials/rc_circuit/#RC-Circuit-Model","page":"RC Circuit","title":"RC Circuit Model","text":"","category":"section"},{"location":"tutorials/rc_circuit/","page":"RC Circuit","title":"RC Circuit","text":"This tutorial is a simplified version of the RC circuit tutorial in the ModelingToolkit.jl documentation. In that tutorial, the full RC circuit is built from scratch. Here, we will use the components of the Electrical model in the ModelingToolkit Standard Library to simply connect pre-made components and simulate the model.","category":"page"},{"location":"tutorials/rc_circuit/","page":"RC Circuit","title":"RC Circuit","text":"using ModelingToolkit, OrdinaryDiffEq, Plots\nusing ModelingToolkitStandardLibrary.Electrical\nusing ModelingToolkitStandardLibrary.Blocks: Constant\nusing ModelingToolkit: t_nounits as t\n\nR = 1.0\nC = 1.0\nV = 1.0\n@named resistor = Resistor(R = R)\n@named capacitor = Capacitor(C = C, v = 0.0)\n@named source = Voltage()\n@named constant = Constant(k = V)\n@named ground = Ground()\n\nrc_eqs = [connect(constant.output, source.V)\n connect(source.p, resistor.p)\n connect(resistor.n, capacitor.p)\n connect(capacitor.n, source.n, ground.g)]\n\n@named rc_model = ODESystem(rc_eqs, t,\n systems = [resistor, capacitor, constant, source, ground])\nsys = structural_simplify(rc_model)\nprob = ODEProblem(sys, Pair[], (0, 10.0))\nsol = solve(prob, Tsit5())\nplot(sol, idxs = [capacitor.v, resistor.i],\n title = \"RC Circuit Demonstration\",\n labels = [\"Capacitor Voltage\" \"Resistor Current\"])\nsavefig(\"plot.png\");\nnothing; # hide","category":"page"},{"location":"tutorials/rc_circuit/","page":"RC Circuit","title":"RC Circuit","text":"(Image: )","category":"page"},{"location":"API/mechanical/#ModelingToolkit-Standard-Library:-Mechanical-Components","page":"Mechanical Components","title":"ModelingToolkit Standard Library: Mechanical Components","text":"","category":"section"},{"location":"API/mechanical/","page":"Mechanical Components","title":"Mechanical Components","text":"Pages = [\"mechanical.md\"]\nDepth = 3","category":"page"},{"location":"API/mechanical/#Index","page":"Mechanical Components","title":"Index","text":"","category":"section"},{"location":"API/mechanical/","page":"Mechanical Components","title":"Mechanical Components","text":"Pages = [\"mechanical.md\"]","category":"page"},{"location":"API/mechanical/#Rotational-Components","page":"Mechanical Components","title":"Rotational Components","text":"","category":"section"},{"location":"API/mechanical/","page":"Mechanical Components","title":"Mechanical Components","text":"CurrentModule = ModelingToolkitStandardLibrary.Mechanical.Rotational","category":"page"},{"location":"API/mechanical/#Rotational-Utils","page":"Mechanical Components","title":"Rotational Utils","text":"","category":"section"},{"location":"API/mechanical/","page":"Mechanical Components","title":"Mechanical Components","text":"Flange\nSupport\nPartialCompliantWithRelativeStates\nPartialElementaryOneFlangeAndSupport2\nPartialElementaryTwoFlangesAndSupport2\nPartialCompliant","category":"page"},{"location":"API/mechanical/#ModelingToolkitStandardLibrary.Mechanical.Rotational.Flange","page":"Mechanical Components","title":"ModelingToolkitStandardLibrary.Mechanical.Rotational.Flange","text":"Support(;name)\n\n1-dim. rotational flange of a shaft.\n\nStates:\n\nphi(t): [rad] Absolute rotation angle of flange\ntau(t): [N.m] Cut torque in the flange\n\n\n\n\n\n","category":"constant"},{"location":"API/mechanical/#ModelingToolkitStandardLibrary.Mechanical.Rotational.Support","page":"Mechanical Components","title":"ModelingToolkitStandardLibrary.Mechanical.Rotational.Support","text":"Support(;name)\n\nSupport/housing of a 1-dim. rotational shaft\n\nStates:\n\nphi(t): [rad] Absolute rotation angle of the support/housing\ntau(t): [N.m] Cut torque in the support/housing\n\n\n\n\n\n","category":"constant"},{"location":"API/mechanical/#ModelingToolkitStandardLibrary.Mechanical.Rotational.PartialCompliantWithRelativeStates","page":"Mechanical Components","title":"ModelingToolkitStandardLibrary.Mechanical.Rotational.PartialCompliantWithRelativeStates","text":"PartialCompliantWithRelativeStates(; name, phi_rel = 0.0, tau = 0.0)\n\nPartial model for the compliant connection of two rotational 1-dim. shaft flanges where the relative angle and speed are used as preferred states\n\nStates:\n\nphi_rel(t): [rad] Relative rotation angle (= flangeb.phi - flangea.phi). It accepts an initial value, which defaults to 0.0.\nw_rel(t): [rad/s] Relative angular velocity (= D(phi_rel)). It accepts an initial value, which defaults to 0.0.\na_rel(t): [rad/s²] Relative angular acceleration (= D(w_rel)). It accepts an initial value, which defaults to 0.0.\ntau(t): [N.m] Torque between flanges (= flange_b.tau). It accepts an initial value, which defaults to 0.0.\n\nConnectors:\n\nflange_a Flange\nflange_b Flange\n\n\n\n\n\n","category":"constant"},{"location":"API/mechanical/#ModelingToolkitStandardLibrary.Mechanical.Rotational.PartialElementaryOneFlangeAndSupport2","page":"Mechanical Components","title":"ModelingToolkitStandardLibrary.Mechanical.Rotational.PartialElementaryOneFlangeAndSupport2","text":"PartialElementaryOneFlangeAndSupport2(; name, use_support = false)\n\nPartial model for a component with one rotational 1-dim. shaft flange and a support used for textual modeling, i.e., for elementary models\n\nStates:\n\nphi_support(t): [rad] Absolute angle of support flange\"\n\nConnectors:\n\nflange Flange\n\nParameters:\n\nuse_support: If support flange enabled, otherwise implicitly grounded\n\n\n\n\n\n","category":"function"},{"location":"API/mechanical/#ModelingToolkitStandardLibrary.Mechanical.Rotational.PartialElementaryTwoFlangesAndSupport2","page":"Mechanical Components","title":"ModelingToolkitStandardLibrary.Mechanical.Rotational.PartialElementaryTwoFlangesAndSupport2","text":"PartialElementaryTwoFlangesAndSupport2(;name, use_support=false)\n\nPartial model for a component with two rotational 1-dim. shaft flanges and a support used for textual modeling, i.e., for elementary models\n\nStates:\n\nphi_support(t): [rad] Absolute angle of support flange\n\nConnectors:\n\nflange_a Flange\nflange_b Flange\nsupport Support if use_support == true\n\nParameters:\n\nuse_support: If support flange enabled, otherwise implicitly grounded\n\n\n\n\n\n","category":"function"},{"location":"API/mechanical/#ModelingToolkitStandardLibrary.Mechanical.Rotational.PartialCompliant","page":"Mechanical Components","title":"ModelingToolkitStandardLibrary.Mechanical.Rotational.PartialCompliant","text":"PartialCompliant(; name, phi_rel = 0.0, tau = 0.0)\n\nPartial model for the compliant connection of two rotational 1-dim. shaft flanges.\n\nStates:\n\nphi_rel(t): [rad] Relative rotation angle (flange_b.phi - flange_a.phi). It accepts an initial value, which defaults to 0.0.\ntau(t): [N.m] Torque between flanges (flange_b.tau). It accepts an initial value, which defaults to 0.0.\n\nConnectors:\n\nflange_a Flange\nflange_b Flange\n\n\n\n\n\n","category":"constant"},{"location":"API/mechanical/#Rotational-Core-Components","page":"Mechanical Components","title":"Rotational Core Components","text":"","category":"section"},{"location":"API/mechanical/","page":"Mechanical Components","title":"Mechanical Components","text":"Fixed\nInertia\nSpring\nDamper\nSpringDamper\nIdealGear\nRotationalFriction","category":"page"},{"location":"API/mechanical/#ModelingToolkitStandardLibrary.Mechanical.Rotational.Fixed","page":"Mechanical Components","title":"ModelingToolkitStandardLibrary.Mechanical.Rotational.Fixed","text":"Fixed(;name, phi0 = 0.0)\n\nFlange fixed in housing at a given angle.\n\nConnectors:\n\nflange Flange\n\nParameters:\n\nphi0: [rad] Fixed offset angle of housing\n\n\n\n\n\n","category":"constant"},{"location":"API/mechanical/#ModelingToolkitStandardLibrary.Mechanical.Rotational.Inertia","page":"Mechanical Components","title":"ModelingToolkitStandardLibrary.Mechanical.Rotational.Inertia","text":"Inertia(;name, J, phi = 0.0, w = 0.0, a = 0.0)\n\n1D-rotational component with inertia.\n\nStates:\n\nphi: [rad] Absolute rotation angle of component\nw: [rad/s] Absolute angular velocity of component (= D(phi))\na: [rad/s²] Absolute angular acceleration of component (= D(w))\n\nConnectors:\n\nflange_a Flange Left flange\nflange_b Flange Right flange\n\nParameters:\n\nJ: [kg·m²] Moment of inertia\n\n\n\n\n\n","category":"constant"},{"location":"API/mechanical/#ModelingToolkitStandardLibrary.Mechanical.Rotational.Spring","page":"Mechanical Components","title":"ModelingToolkitStandardLibrary.Mechanical.Rotational.Spring","text":"Spring(; name, c, phi_rel0 = 0.0)\n\nLinear 1D rotational spring\n\nStates:\n\nphi_rel(t): [rad] Relative rotation angle (flange_b.phi - flange_a.phi)\ntau(t): [N.m] Torque between flanges (flange_b.tau)\n\nConnectors:\n\nflange_a Flange\nflange_b Flange\n\nParameters:\n\nc: [N.m/rad] Spring constant\nphi_rel0: [rad] Unstretched spring angle\n\n\n\n\n\n","category":"constant"},{"location":"API/mechanical/#ModelingToolkitStandardLibrary.Mechanical.Rotational.Damper","page":"Mechanical Components","title":"ModelingToolkitStandardLibrary.Mechanical.Rotational.Damper","text":"Damper(; name, d)\n\nLinear 1D rotational damper\n\nStates:\n\nphi_rel(t): [rad] Relative rotation angle (= flangeb.phi - flangea.phi)\nw_rel(t): [rad/s] Relative angular velocity (= D(phi_rel))\na_rel(t): [rad/s²] Relative angular acceleration (= D(w_rel))\ntau(t): [N.m] Torque between flanges (= flange_b.tau)\n\nConnectors:\n\nflange_a Flange\nflange_b Flange\n\nParameters:\n\nd: [N.m.s/rad] Damping constant\n\n\n\n\n\n","category":"constant"},{"location":"API/mechanical/#ModelingToolkitStandardLibrary.Mechanical.Rotational.SpringDamper","page":"Mechanical Components","title":"ModelingToolkitStandardLibrary.Mechanical.Rotational.SpringDamper","text":"SpringDamper(; name, d)\n\nLinear 1D rotational spring and damper\n\nStates:\n\nphi_rel(t): [rad] Relative rotation angle (= flangeb.phi - flangea.phi)\nw_rel(t): [rad/s] Relative angular velocity (= D(phi_rel))\na_rel(t): [rad/s²] Relative angular acceleration (= D(w_rel))\ntau(t): [N.m] Torque between flanges (= flange_b.tau)\n\nConnectors:\n\nflange_a Flange\nflange_b Flange\n\nParameters:\n\nd: [N.m.s/rad] Damping constant\nc: [N.m/rad] Spring constant\nphi_rel0: [rad] Unstretched spring angle\n\n\n\n\n\n","category":"constant"},{"location":"API/mechanical/#ModelingToolkitStandardLibrary.Mechanical.Rotational.IdealGear","page":"Mechanical Components","title":"ModelingToolkitStandardLibrary.Mechanical.Rotational.IdealGear","text":"IdealGear(; name, ratio, use_support = false)\n\nIdeal gear without inertia.\n\nThis element characterizes any type of gear box which is fixed in the ground and which has one driving shaft and one driven shaft.\n\nStates:\n\nphi_a(t): [rad] Relative angle between shaft a and the support\nphi_b(t): [rad] Relative angle between shaft b and the support\n\nConnectors:\n\nflange_a Flange\nflange_b Flange\nsupport Support if use_support == true\n\nParameters:\n\nratio: Transmission ratio (flangea.phi/flangeb.phi)\nuse_support: If support flange enabled, otherwise implicitly grounded. By default it is false\n\n\n\n\n\n","category":"constant"},{"location":"API/mechanical/#ModelingToolkitStandardLibrary.Mechanical.Rotational.RotationalFriction","page":"Mechanical Components","title":"ModelingToolkitStandardLibrary.Mechanical.Rotational.RotationalFriction","text":"RotationalFriction(; name, f, tau_c, w_brk, tau_brk)\n\nModels rotational friction with Stribeck effect, Coulomb friction and viscous friction between the two flanges. The friction torque is a function of the relative angular velocity between flange_a and flange_b.\n\nFriction model: \"Armstrong, B. and C.C. de Wit, Friction Modeling and Compensation, The Control Handbook, CRC Press, 1995.\"\n\nStates:\n\nphi_rel(t): [rad] Relative rotation angle (= flange_b.phi - flange_a.phi)\nw_rel(t): [rad/s] Relative angular velocity (= D(phi_rel))\na_rel(t): [rad/s²] Relative angular acceleration (= D(w_rel))\ntau(t): [N.m] Torque between flanges (= flange_b.tau)\n\nConnectors:\n\nflange_a Flange\nflange_b Flange\n\nParameters:\n\nf: [N⋅m/(rad/s)] Viscous friction coefficient\ntau_c: [N⋅m] Coulomb friction torque\nw_brk: [rad/s] Breakaway friction velocity\ntau_brk: [N⋅m] Breakaway friction torque\n\n\n\n\n\n","category":"constant"},{"location":"API/mechanical/#Rotational-Sources","page":"Mechanical Components","title":"Rotational Sources","text":"","category":"section"},{"location":"API/mechanical/","page":"Mechanical Components","title":"Mechanical Components","text":"Torque\nSpeed","category":"page"},{"location":"API/mechanical/#ModelingToolkitStandardLibrary.Mechanical.Rotational.Torque","page":"Mechanical Components","title":"ModelingToolkitStandardLibrary.Mechanical.Rotational.Torque","text":"Torque(; name, use_support = false)\n\nInput signal acting as external torque on a flange\n\nStates:\n\nphi_support(t): [rad] Absolute angle of support flange\n\nConnectors:\n\nflange Flange\ntau RealInput Accelerating torque acting at flange -flange.tau\n\nParameters:\n\nuse_support\n\n\n\n\n\n","category":"constant"},{"location":"API/mechanical/#ModelingToolkitStandardLibrary.Mechanical.Rotational.Speed","page":"Mechanical Components","title":"ModelingToolkitStandardLibrary.Mechanical.Rotational.Speed","text":"Speed(; name, use_support = false, exact = false, f_crit = 50)\n\nForced movement of a flange according to a reference angular velocity signal\n\nStates:\n\nphi_support(t): [rad] Absolute angle of support flange\"\n\nConnectors:\n\nflange Flange\nw_ref RealInput Reference angular velocity of flange with respect to support as input signal needs to be continuously differential\n\nParameters:\n\nuse_support: If support flange enabled, otherwise implicitly grounded\nexact: true/false exact treatment/filtering the input signal\ntau_filt: [rad/s] if exact=false, Time constant of low-pass filter to filter input signal\n\n\n\n\n\n","category":"function"},{"location":"API/mechanical/#Rotational-Sensors","page":"Mechanical Components","title":"Rotational Sensors","text":"","category":"section"},{"location":"API/mechanical/","page":"Mechanical Components","title":"Mechanical Components","text":"AngleSensor\nSpeedSensor\nTorqueSensor\nRelSpeedSensor","category":"page"},{"location":"API/mechanical/#ModelingToolkitStandardLibrary.Mechanical.Rotational.AngleSensor","page":"Mechanical Components","title":"ModelingToolkitStandardLibrary.Mechanical.Rotational.AngleSensor","text":"AngleSensor(; name)\n\nIdeal sensor to measure the absolute flange angle\n\nConnectors:\n\nflange: Flange Flange of shaft from which sensor information shall be measured\nphi: RealOutput Absolute angle of flange\n\n\n\n\n\n","category":"constant"},{"location":"API/mechanical/#ModelingToolkitStandardLibrary.Mechanical.Rotational.SpeedSensor","page":"Mechanical Components","title":"ModelingToolkitStandardLibrary.Mechanical.Rotational.SpeedSensor","text":"SpeedSensor(; name)\n\nIdeal sensor to measure the absolute flange angular velocity\n\nConnectors:\n\nflange: Flange Flange of shaft from which sensor information shall be measured\nw: RealOutput Absolute angular velocity of flange\n\n\n\n\n\n","category":"constant"},{"location":"API/mechanical/#ModelingToolkitStandardLibrary.Mechanical.Rotational.TorqueSensor","page":"Mechanical Components","title":"ModelingToolkitStandardLibrary.Mechanical.Rotational.TorqueSensor","text":"TorqueSensor(;name)\n\nIdeal sensor to measure the torque between two flanges (= flange_a.tau)\n\nConnectors:\n\nflange_a: Flange Left flange of shaft\nflange_b: Flange Left flange of shaft\ntau: RealOutput Torque in flange flangea and flangeb (tau = flange_a.tau = -flange_b.tau)\n\n\n\n\n\n","category":"constant"},{"location":"API/mechanical/#ModelingToolkitStandardLibrary.Mechanical.Rotational.RelSpeedSensor","page":"Mechanical Components","title":"ModelingToolkitStandardLibrary.Mechanical.Rotational.RelSpeedSensor","text":"RelSpeedSensor(; name)\n\nIdeal sensor to measure the relative angular velocity\n\nConnectors:\n\nflange_a: Flange Flange of shaft from which sensor information shall be measured\nflange_b: Flange Flange of shaft from which sensor information shall be measured\nw: RealOutput Absolute angular velocity of flange\n\n\n\n\n\n","category":"constant"},{"location":"API/mechanical/#Translational-Components","page":"Mechanical Components","title":"Translational Components","text":"","category":"section"},{"location":"API/mechanical/","page":"Mechanical Components","title":"Mechanical Components","text":"CurrentModule = ModelingToolkitStandardLibrary.Mechanical.Translational","category":"page"},{"location":"API/mechanical/#Translational-Utils","page":"Mechanical Components","title":"Translational Utils","text":"","category":"section"},{"location":"API/mechanical/","page":"Mechanical Components","title":"Mechanical Components","text":"MechanicalPort","category":"page"},{"location":"API/mechanical/#ModelingToolkitStandardLibrary.Mechanical.Translational.MechanicalPort","page":"Mechanical Components","title":"ModelingToolkitStandardLibrary.Mechanical.Translational.MechanicalPort","text":"MechanicalPort(;name)\n\n1-dim. rotational flange of a shaft.\n\nStates:\n\nv: [m/s] velocity of the node\nf: [N] force entering the node\n\n\n\n\n\n","category":"constant"},{"location":"API/mechanical/#Translational-Core-Components","page":"Mechanical Components","title":"Translational Core Components","text":"","category":"section"},{"location":"API/mechanical/","page":"Mechanical Components","title":"Mechanical Components","text":"Mass\nSpring\nDamper\nFixed","category":"page"},{"location":"API/mechanical/#ModelingToolkitStandardLibrary.Mechanical.Translational.Mass","page":"Mechanical Components","title":"ModelingToolkitStandardLibrary.Mechanical.Translational.Mass","text":"Mass(; name, v_0 = 0.0, m, s = nothing, g = nothing)\n\nSliding mass with inertia\n\nParameters:\n\nm: [kg] mass of sliding body\nv_0: [m/s] Initial value of absolute linear velocity of sliding mass (default 0 m/s)\ns: [m] initial value of absolute position of sliding mass (optional)\ng: [m/s²] gravity field acting on the mass, positive value acts in the positive direction (optional)\n\nStates:\n\nv: [m/s] absolute linear velocity of sliding mass\ns: [m] absolute position of sliding mass (optional with parameter s)\n\nConnectors:\n\nflange: 1-dim. translational flange\n\n\n\n\n\n","category":"function"},{"location":"API/mechanical/#ModelingToolkitStandardLibrary.Mechanical.Translational.Spring","page":"Mechanical Components","title":"ModelingToolkitStandardLibrary.Mechanical.Translational.Spring","text":"Spring(; name, k, delta_s = 0.0, va=0.0, v_b_0=0.0)\n\nLinear 1D translational spring\n\nParameters:\n\nk: [N/m] Spring constant\ndelta_s: initial spring stretch\nva: [m/s] Initial value of absolute linear velocity at flange_a (default 0 m/s)\nv_b_0: [m/s] Initial value of absolute linear velocity at flange_b (default 0 m/s)\n\nConnectors:\n\nflange_a: 1-dim. translational flange on one side of spring\nflange_b: 1-dim. translational flange on opposite side of spring\n\n\n\n\n\n","category":"function"},{"location":"API/mechanical/#ModelingToolkitStandardLibrary.Mechanical.Translational.Damper","page":"Mechanical Components","title":"ModelingToolkitStandardLibrary.Mechanical.Translational.Damper","text":"Damper(; name, d, flange_a.v = 0.0, flange_b.v = 0.0)\n\nLinear 1D translational damper\n\nParameters:\n\nd: [N.s/m] Damping constant\n\nConnectors:\n\nflange_a: 1-dim. translational flange on one side of damper. Initial value of state v is set to 0.0 m/s.\nflange_b: 1-dim. translational flange on opposite side of damper. Initial value of state v is set to 0.0 m/s.\n\n\n\n\n\n","category":"constant"},{"location":"API/mechanical/#ModelingToolkitStandardLibrary.Mechanical.Translational.Fixed","page":"Mechanical Components","title":"ModelingToolkitStandardLibrary.Mechanical.Translational.Fixed","text":"Fixed(; name)\n\nFixes a flange position (velocity = 0)\n\nConnectors:\n\nflange: 1-dim. translational flange\n\n\n\n\n\n","category":"constant"},{"location":"API/mechanical/#Translational-Sources","page":"Mechanical Components","title":"Translational Sources","text":"","category":"section"},{"location":"API/mechanical/","page":"Mechanical Components","title":"Mechanical Components","text":"Force\nPosition\nVelocity\nAcceleration","category":"page"},{"location":"API/mechanical/#ModelingToolkitStandardLibrary.Mechanical.Translational.Force","page":"Mechanical Components","title":"ModelingToolkitStandardLibrary.Mechanical.Translational.Force","text":"Force(; name)\n\nLinear 1D force input source\n\nConnectors:\n\nflange: 1-dim. translational flange\nf: real input\n\n\n\n\n\n","category":"constant"},{"location":"API/mechanical/#ModelingToolkitStandardLibrary.Mechanical.Translational.Position","page":"Mechanical Components","title":"ModelingToolkitStandardLibrary.Mechanical.Translational.Position","text":"Position(solves_force = true; name)\n\nLinear 1D position input source. Set solves_force=false to force input force to 0 (i.e. only the position is given, the respective force needed is already provided elsewhere in the model). \n\nConnectors:\n\nflange: 1-dim. translational flange\ns: real input\n\n\n\n\n\n","category":"function"},{"location":"API/mechanical/#ModelingToolkitStandardLibrary.Mechanical.Translational.Velocity","page":"Mechanical Components","title":"ModelingToolkitStandardLibrary.Mechanical.Translational.Velocity","text":"Velocity(solves_force = true; name)\n\nLinear 1D position input source. Set solves_force=false to force input force to 0 (i.e. only the velocity is given, the respective force needed is already provided elsewhere in the model). \n\nConnectors:\n\nflange: 1-dim. translational flange\nv: real input\n\n\n\n\n\n","category":"function"},{"location":"API/mechanical/#ModelingToolkitStandardLibrary.Mechanical.Translational.Acceleration","page":"Mechanical Components","title":"ModelingToolkitStandardLibrary.Mechanical.Translational.Acceleration","text":"Acceleration(solves_force = true; name)\n\nLinear 1D position input source. Set solves_force=false to force input force to 0 (i.e. only the acceleration is given, the respective force needed is already provided elsewhere in the model). \n\nConnectors:\n\nflange: 1-dim. translational flange\na: real input\n\n\n\n\n\n","category":"function"},{"location":"API/mechanical/#Translational-Sensors","page":"Mechanical Components","title":"Translational Sensors","text":"","category":"section"},{"location":"API/mechanical/","page":"Mechanical Components","title":"Mechanical Components","text":"ForceSensor\nPositionSensor\nAccelerationSensor","category":"page"},{"location":"API/mechanical/#ModelingToolkitStandardLibrary.Mechanical.Translational.ForceSensor","page":"Mechanical Components","title":"ModelingToolkitStandardLibrary.Mechanical.Translational.ForceSensor","text":"ForceSensor(; name)\n\nLinear 1D force input sensor.\n\nConnectors:\n\nflange: 1-dim. translational flange\noutput: real output\n\n\n\n\n\n","category":"constant"},{"location":"API/mechanical/#ModelingToolkitStandardLibrary.Mechanical.Translational.PositionSensor","page":"Mechanical Components","title":"ModelingToolkitStandardLibrary.Mechanical.Translational.PositionSensor","text":"PositionSensor(; s = 0, name)\n\nLinear 1D position input sensor.\n\nStates:\n\ns: [m] absolute position (with initial value of 0.0)\n\nConnectors:\n\nflange: 1-dim. translational flange\noutput: real output\n\n\n\n\n\n","category":"constant"},{"location":"API/mechanical/#ModelingToolkitStandardLibrary.Mechanical.Translational.AccelerationSensor","page":"Mechanical Components","title":"ModelingToolkitStandardLibrary.Mechanical.Translational.AccelerationSensor","text":"AccelerationSensor(; name)\n\nLinear 1D position input sensor.\n\nStates:\n\na: [m/s^2] measured acceleration\n\nConnectors:\n\nflange: 1-dim. translational flange\noutput: real output\n\n\n\n\n\n","category":"constant"},{"location":"API/linear_analysis/#Linear-Analysis","page":"Linear Analysis","title":"Linear Analysis","text":"","category":"section"},{"location":"API/linear_analysis/","page":"Linear Analysis","title":"Linear Analysis","text":"danger: Experimental\nThe interface described here is currently experimental and at any time subject to breaking changes not respecting semantic versioning.","category":"page"},{"location":"API/linear_analysis/","page":"Linear Analysis","title":"Linear Analysis","text":"Linear analysis refers to the process of linearizing a nonlinear model and analysing the resulting linear dynamical system. To facilitate linear analysis, ModelingToolkitStandardLibrary provides the concept of an AnalysisPoint, which can be inserted in-between two causal blocks (such as those from the Blocks sub module). Once a model containing analysis points is built, several operations are available:","category":"page"},{"location":"API/linear_analysis/","page":"Linear Analysis","title":"Linear Analysis","text":"get_sensitivity get the sensitivity function (wiki), S(s), as defined in the field of control theory.\nget_comp_sensitivity get the complementary sensitivity function T(s) S(s)+T(s)=1.\nget_looptransfer get the (open) loop-transfer function where the loop starts and ends in the analysis point. For a typical simple feedback connection with a plant P(s) and a controller C(s), the loop-transfer function at the plant output is P(s)C(s).\nlinearize can be called with two analysis points denoting the input and output of the linearized system.\nopen_loop return a new (nonlinear) system where the loop has been broken in the analysis point, i.e., the connection the analysis point usually implies has been removed.","category":"page"},{"location":"API/linear_analysis/","page":"Linear Analysis","title":"Linear Analysis","text":"An analysis point can be created explicitly using the constructor AnalysisPoint, or automatically when connecting two causal components using connect:","category":"page"},{"location":"API/linear_analysis/","page":"Linear Analysis","title":"Linear Analysis","text":"connect(comp1.output, :analysis_point_name, comp2.input)","category":"page"},{"location":"API/linear_analysis/","page":"Linear Analysis","title":"Linear Analysis","text":"warning: Causality\nAnalysis points are causal, i.e., they imply a directionality for the flow of information. The order of the connections in the connect statement is thus important, i.e., connect(out, :name, in) is different from connect(in, :name, out).","category":"page"},{"location":"API/linear_analysis/","page":"Linear Analysis","title":"Linear Analysis","text":"The directionality of an analysis point can be thought of as an arrow in a block diagram, where the name of the analysis point applies to the arrow itself.","category":"page"},{"location":"API/linear_analysis/","page":"Linear Analysis","title":"Linear Analysis","text":"┌─────┐ ┌─────┐\n│ │ name │ │\n│ out├────────►│in │\n│ │ │ │\n└─────┘ └─────┘","category":"page"},{"location":"API/linear_analysis/","page":"Linear Analysis","title":"Linear Analysis","text":"This is signified by the name being the middle argument to connect.","category":"page"},{"location":"API/linear_analysis/","page":"Linear Analysis","title":"Linear Analysis","text":"Of the above mentioned functions, all except for open_loop return the output of ModelingToolkit.linearize, which is","category":"page"},{"location":"API/linear_analysis/","page":"Linear Analysis","title":"Linear Analysis","text":"matrices, simplified_sys = linearize(...)\n# matrices = (; A, B, C, D)","category":"page"},{"location":"API/linear_analysis/","page":"Linear Analysis","title":"Linear Analysis","text":"i.e., matrices is a named tuple containing the matrices of a linear state-space system on the form","category":"page"},{"location":"API/linear_analysis/","page":"Linear Analysis","title":"Linear Analysis","text":"beginaligned\ndot x = Ax + Bu\ny = Cx + Du\nendaligned","category":"page"},{"location":"API/linear_analysis/#Example","page":"Linear Analysis","title":"Example","text":"","category":"section"},{"location":"API/linear_analysis/","page":"Linear Analysis","title":"Linear Analysis","text":"The following example builds a simple closed-loop system with a plant P and a controller C. Two analysis points are inserted, one before and one after P. We then derive a number of sensitivity functions and show the corresponding code using the package ControlSystemBase.jl","category":"page"},{"location":"API/linear_analysis/","page":"Linear Analysis","title":"Linear Analysis","text":"using ModelingToolkitStandardLibrary.Blocks, ModelingToolkit\n@named P = FirstOrder(k = 1, T = 1) # A first-order system with pole in -1\n@named C = Gain(-1) # A P controller\nt = ModelingToolkit.get_iv(P)\neqs = [connect(P.output, :plant_output, C.input) # Connect with an automatically created analysis point called :plant_output\n connect(C.output, :plant_input, P.input)]\nsys = ODESystem(eqs, t, systems = [P, C], name = :feedback_system)\n\nmatrices_S = get_sensitivity(sys, :plant_input)[1] # Compute the matrices of a state-space representation of the (input)sensitivity function.\nmatrices_T = get_comp_sensitivity(sys, :plant_input)[1]","category":"page"},{"location":"API/linear_analysis/","page":"Linear Analysis","title":"Linear Analysis","text":"Continued linear analysis and design can be performed using ControlSystemsBase.jl. We create ControlSystemsBase.StateSpace objects using","category":"page"},{"location":"API/linear_analysis/","page":"Linear Analysis","title":"Linear Analysis","text":"using ControlSystemsBase, Plots\nS = ss(matrices_S...)\nT = ss(matrices_T...)\nbodeplot([S, T], lab = [\"S\" \"\" \"T\" \"\"], plot_title = \"Bode plot of sensitivity functions\",\n margin = 5Plots.mm)","category":"page"},{"location":"API/linear_analysis/","page":"Linear Analysis","title":"Linear Analysis","text":"The sensitivity functions obtained this way should be equivalent to the ones obtained with the code below","category":"page"},{"location":"API/linear_analysis/","page":"Linear Analysis","title":"Linear Analysis","text":"using ControlSystemsBase\nP = tf(1.0, [1, 1]) |> ss\nC = 1 # Negative feedback assumed in ControlSystems\nS = sensitivity(P, C) # or feedback(1, P*C)\nT = comp_sensitivity(P, C) # or feedback(P*C)","category":"page"},{"location":"API/linear_analysis/","page":"Linear Analysis","title":"Linear Analysis","text":"We may also derive the loop-transfer function L(s) = P(s)C(s) using","category":"page"},{"location":"API/linear_analysis/","page":"Linear Analysis","title":"Linear Analysis","text":"matrices_L = get_looptransfer(sys, :plant_output)[1]\nL = ss(matrices_L...)","category":"page"},{"location":"API/linear_analysis/","page":"Linear Analysis","title":"Linear Analysis","text":"which is equivalent to the following with ControlSystems","category":"page"},{"location":"API/linear_analysis/","page":"Linear Analysis","title":"Linear Analysis","text":"L = P * (-C) # Add the minus sign to build the negative feedback into the controller","category":"page"},{"location":"API/linear_analysis/","page":"Linear Analysis","title":"Linear Analysis","text":"To obtain the transfer function between two analysis points, we call linearize","category":"page"},{"location":"API/linear_analysis/","page":"Linear Analysis","title":"Linear Analysis","text":"using ModelingToolkit # hide\nmatrices_PS = linearize(sys, :plant_input, :plant_output)[1]","category":"page"},{"location":"API/linear_analysis/","page":"Linear Analysis","title":"Linear Analysis","text":"this particular transfer function should be equivalent to the linear system P(s)S(s), i.e., equivalent to","category":"page"},{"location":"API/linear_analysis/","page":"Linear Analysis","title":"Linear Analysis","text":"feedback(P, C)","category":"page"},{"location":"API/linear_analysis/#Obtaining-transfer-functions","page":"Linear Analysis","title":"Obtaining transfer functions","text":"","category":"section"},{"location":"API/linear_analysis/","page":"Linear Analysis","title":"Linear Analysis","text":"A statespace system from ControlSystemsBase can be converted to a transfer function using the function tf:","category":"page"},{"location":"API/linear_analysis/","page":"Linear Analysis","title":"Linear Analysis","text":"tf(S)","category":"page"},{"location":"API/linear_analysis/#Gain-and-phase-margins","page":"Linear Analysis","title":"Gain and phase margins","text":"","category":"section"},{"location":"API/linear_analysis/","page":"Linear Analysis","title":"Linear Analysis","text":"Further linear analysis can be performed using the analysis methods from ControlSystemsBase. For example, calculating the gain and phase margins of a system can be done using","category":"page"},{"location":"API/linear_analysis/","page":"Linear Analysis","title":"Linear Analysis","text":"margin(P)","category":"page"},{"location":"API/linear_analysis/","page":"Linear Analysis","title":"Linear Analysis","text":"(they are infinite for this system). A Nyquist plot can be produced using","category":"page"},{"location":"API/linear_analysis/","page":"Linear Analysis","title":"Linear Analysis","text":"nyquistplot(P)","category":"page"},{"location":"API/linear_analysis/#Index","page":"Linear Analysis","title":"Index","text":"","category":"section"},{"location":"API/linear_analysis/","page":"Linear Analysis","title":"Linear Analysis","text":"Pages = [\"linear_analysis.md\"]","category":"page"},{"location":"API/linear_analysis/","page":"Linear Analysis","title":"Linear Analysis","text":"Modules = [ModelingToolkitStandardLibrary.Blocks]\nPages = [\"Blocks/analysis_points.jl\"]\nOrder = [:function, :type]\nPrivate = false","category":"page"},{"location":"API/linear_analysis/#ModelingToolkitStandardLibrary.Blocks.get_comp_sensitivity","page":"Linear Analysis","title":"ModelingToolkitStandardLibrary.Blocks.get_comp_sensitivity","text":"get_comp_sensitivity(sys, ap::AnalysisPoint; kwargs)\nget_comp_sensitivity(sys, ap_name::Symbol; kwargs)\n\nCompute the complementary sensitivity function in analysis point ap. The complementary sensitivity function is obtained by introducing an infinitesimal perturbation d at the output of ap, linearizing the system and computing the transfer function between d and the input of ap.\n\ndanger: Experimental\nThe analysis-point interface is currently experimental and at any time subject to breaking changes not respecting semantic versioning.\n\nArguments:\n\nkwargs: Are sent to ModelingToolkit.linearize\n\nSee also get_sensitivity, get_looptransfer.\n\n\n\n\n\n","category":"function"},{"location":"API/linear_analysis/#ModelingToolkitStandardLibrary.Blocks.get_looptransfer","page":"Linear Analysis","title":"ModelingToolkitStandardLibrary.Blocks.get_looptransfer","text":"get_looptransfer(sys, ap::AnalysisPoint; kwargs)\nget_looptransfer(sys, ap_name::Symbol; kwargs)\n\nCompute the (linearized) loop-transfer function in analysis point ap, from ap.out to ap.in.\n\ninfo: Negative feedback\nFeedback loops often use negative feedback, and the computed loop-transfer function will in this case have the negative feedback included. Standard analysis tools often assume a loop-transfer function without the negative gain built in, and the result of this function may thus need negation before use.\n\ndanger: Experimental\nThe analysis-point interface is currently experimental and at any time subject to breaking changes not respecting semantic versioning.\n\nArguments:\n\nkwargs: Are sent to ModelingToolkit.linearize\n\nSee also get_sensitivity, get_comp_sensitivity, open_loop.\n\n\n\n\n\n","category":"function"},{"location":"API/linear_analysis/#ModelingToolkitStandardLibrary.Blocks.get_sensitivity","page":"Linear Analysis","title":"ModelingToolkitStandardLibrary.Blocks.get_sensitivity","text":"get_sensitivity(sys, ap::AnalysisPoint; kwargs)\nget_sensitivity(sys, ap_name::Symbol; kwargs)\n\nCompute the sensitivity function in analysis point ap. The sensitivity function is obtained by introducing an infinitesimal perturbation d at the input of ap, linearizing the system and computing the transfer function between d and the output of ap.\n\ndanger: Experimental\nThe analysis-point interface is currently experimental and at any time subject to breaking changes not respecting semantic versioning.\n\nArguments:\n\nkwargs: Are sent to ModelingToolkit.linearize\n\nSee also get_comp_sensitivity, get_looptransfer.\n\n\n\n\n\n","category":"function"},{"location":"API/linear_analysis/#ModelingToolkitStandardLibrary.Blocks.open_loop-Tuple{Any, Symbol}","page":"Linear Analysis","title":"ModelingToolkitStandardLibrary.Blocks.open_loop","text":"open_sys = open_loop(sys, ap::AnalysisPoint; kwargs)\nopen_sys = open_loop(sys, ap_name::Symbol; kwargs)\n\nOpen the loop at analysis point ap by breaking the connection through ap.\n\nopen_sys will have u ~ ap.out as input and y ~ ap.in as output.\n\ndanger: Experimental\nThe analysis-point interface is currently experimental and at any time subject to breaking changes not respecting semantic versioning.\n\nArguments:\n\nkwargs: Are sent to ModelingToolkit.linearize\n\nSee also get_sensitivity, get_comp_sensitivity, get_looptransfer.\n\n\n\n\n\n","category":"method"},{"location":"API/linear_analysis/#ModelingToolkitStandardLibrary.Blocks.AnalysisPoint-Tuple{Any, Any}","page":"Linear Analysis","title":"ModelingToolkitStandardLibrary.Blocks.AnalysisPoint","text":"AnalysisPoint(in, out, name::Symbol)\nAnalysisPoint(in, out; name::Symbol)\nAnalysisPoint(name::Symbol)\n\nCreate an AnalysisPoint for linear analysis. Analysis points can also be created automatically by calling\n\nconnect(in, :ap_name, out)\n\ndanger: Experimental\nThe analysis-point interface is currently experimental and at any time subject to breaking changes not respecting semantic versioning.\n\nArguments:\n\nin: A connector of type RealOutput.\nout: A connector of type RealInput.\nname: The name of the analysis point.\n\nSee also get_sensitivity, get_comp_sensitivity, get_looptransfer, open_loop\n\nExample\n\nusing ModelingToolkitStandardLibrary.Blocks\n@named P = FirstOrder(k = 1, T = 1)\n@named C = Gain(; k = -1)\nt = ModelingToolkit.get_iv(P)\neqs = [connect(P.output, C.input)\n connect(C.output, :plant_input, P.input)]\nsys = ODESystem(eqs, t, systems = [P, C], name = :feedback_system)\n\nmatrices_S, _ = get_sensitivity(sys, :plant_input) # Compute the matrices of a state-space representation of the (input) sensitivity function.\nmatrices_T, _ = get_comp_sensitivity(sys, :plant_input)\n\nContinued linear analysis and design can be performed using ControlSystemsBase.jl. Create ControlSystemsBase.StateSpace objects using\n\nusing ControlSystemsBase, Plots\nS = ss(matrices_S...)\nT = ss(matrices_T...)\nbodeplot([S, T], lab = [\"S\" \"T\"])\n\nThe sensitivity functions obtained this way should be equivalent to the ones obtained with the code below\n\nusing ControlSystemsBase\nP = tf(1.0, [1, 1])\nC = 1 # Negative feedback assumed in ControlSystems\nS = sensitivity(P, C) # or feedback(1, P*C)\nT = comp_sensitivity(P, C) # or feedback(P*C)\n\n\n\n\n\n","category":"method"},{"location":"API/linear_analysis/","page":"Linear Analysis","title":"Linear Analysis","text":"ModelingToolkit.linearize","category":"page"},{"location":"API/linear_analysis/#ModelingToolkit.linearize","page":"Linear Analysis","title":"ModelingToolkit.linearize","text":"(; A, B, C, D), simplified_sys = linearize(sys, inputs, outputs; t=0.0, op = Dict(), allow_input_derivatives = false, zero_dummy_der=false, kwargs...)\n(; A, B, C, D) = linearize(simplified_sys, lin_fun; t=0.0, op = Dict(), allow_input_derivatives = false, zero_dummy_der=false)\n\nLinearize sys between inputs and outputs, both vectors of variables. Return a NamedTuple with the matrices of a linear statespace representation on the form\n\nbeginaligned\nx = Ax + Bu\ny = Cx + Du\nendaligned\n\nThe first signature automatically calls linearization_function internally, while the second signature expects the outputs of linearization_function as input.\n\nop denotes the operating point around which to linearize. If none is provided, the default values of sys are used.\n\nIf allow_input_derivatives = false, an error will be thrown if input derivatives (u) appear as inputs in the linearized equations. If input derivatives are allowed, the returned B matrix will be of double width, corresponding to the input [u; u̇].\n\nzero_dummy_der can be set to automatically set the operating point to zero for all dummy derivatives.\n\nSee also linearization_function which provides a lower-level interface, linearize_symbolic and ModelingToolkit.reorder_unknowns.\n\nSee extended help for an example.\n\nThe implementation and notation follows that of \"Linear Analysis Approach for Modelica Models\", Allain et al. 2009\n\nExtended help\n\nThis example builds the following feedback interconnection and linearizes it from the input of F to the output of P.\n\n\n r ┌─────┐ ┌─────┐ ┌─────┐\n───►│ ├──────►│ │ u │ │\n │ F │ │ C ├────►│ P │ y\n └─────┘ ┌►│ │ │ ├─┬─►\n │ └─────┘ └─────┘ │\n │ │\n └─────────────────────┘\n\nusing ModelingToolkit\n@variables t\nfunction plant(; name)\n @variables x(t) = 1\n @variables u(t)=0 y(t)=0\n D = Differential(t)\n eqs = [D(x) ~ -x + u\n y ~ x]\n ODESystem(eqs, t; name = name)\nend\n\nfunction ref_filt(; name)\n @variables x(t)=0 y(t)=0\n @variables u(t)=0 [input = true]\n D = Differential(t)\n eqs = [D(x) ~ -2 * x + u\n y ~ x]\n ODESystem(eqs, t, name = name)\nend\n\nfunction controller(kp; name)\n @variables y(t)=0 r(t)=0 u(t)=0\n @parameters kp = kp\n eqs = [\n u ~ kp * (r - y),\n ]\n ODESystem(eqs, t; name = name)\nend\n\n@named f = ref_filt()\n@named c = controller(1)\n@named p = plant()\n\nconnections = [f.y ~ c.r # filtered reference to controller reference\n c.u ~ p.u # controller output to plant input\n p.y ~ c.y]\n\n@named cl = ODESystem(connections, t, systems = [f, c, p])\n\nlsys0, ssys = linearize(cl, [f.u], [p.x])\ndesired_order = [f.x, p.x]\nlsys = ModelingToolkit.reorder_unknowns(lsys0, unknowns(ssys), desired_order)\n\n@assert lsys.A == [-2 0; 1 -2]\n@assert lsys.B == [1; 0;;]\n@assert lsys.C == [0 1]\n@assert lsys.D[] == 0\n\n## Symbolic linearization\nlsys_sym, _ = ModelingToolkit.linearize_symbolic(cl, [f.u], [p.x])\n\n@assert substitute(lsys_sym.A, ModelingToolkit.defaults(cl)) == lsys.A\n\n\n\n\n\nModelingToolkit.linearize(sys, input_name::Symbol, output_name; kwargs...)\n\nLinearize a system between two analysis points. To get a loop-transfer function, see get_looptransfer.\n\nThe output is allowed to be either an analysis-point name, or a vector of symbolic variables like the standard interface to linearize. The input must be an analysis-point name.\n\n\n\n\n\n","category":"function"},{"location":"tutorials/input_component/#Running-Models-with-Discrete-Data","page":"SampledData Component","title":"Running Models with Discrete Data","text":"","category":"section"},{"location":"tutorials/input_component/","page":"SampledData Component","title":"SampledData Component","text":"There are 3 ways to include data as part of a model.","category":"page"},{"location":"tutorials/input_component/","page":"SampledData Component","title":"SampledData Component","text":"using ModelingToolkitStandardLibrary.Blocks.TimeVaryingFunction\nusing a custom component with external data\nusing ModelingToolkitStandardLibrary.Blocks.SampledData","category":"page"},{"location":"tutorials/input_component/","page":"SampledData Component","title":"SampledData Component","text":"This tutorial demonstrate each case and explain the pros and cons of each.","category":"page"},{"location":"tutorials/input_component/#TimeVaryingFunction-Component","page":"SampledData Component","title":"TimeVaryingFunction Component","text":"","category":"section"},{"location":"tutorials/input_component/","page":"SampledData Component","title":"SampledData Component","text":"The ModelingToolkitStandardLibrary.Blocks.TimeVaryingFunction component is easy to use and is performant. However the data is locked to the ODESystem and can only be changed by building a new ODESystem. Therefore, running a batch of data would not be efficient. Below is an example of how to use the TimeVaryingFunction with DataInterpolations to build the function from sampled discrete data.","category":"page"},{"location":"tutorials/input_component/","page":"SampledData Component","title":"SampledData Component","text":"using ModelingToolkit\nusing ModelingToolkit: t_nounits as t, D_nounits as D\nusing ModelingToolkitStandardLibrary.Blocks\nusing DataInterpolations\nusing OrdinaryDiffEq\n\nfunction System(f; name)\n src = TimeVaryingFunction(f)\n\n vars = @variables f(t)=0 x(t)=0 dx(t)=0 ddx(t)=0\n pars = @parameters m=10 k=1000 d=1\n\n eqs = [f ~ src.output.u\n ddx * 10 ~ k * x + d * dx + f\n D(x) ~ dx\n D(dx) ~ ddx]\n\n ODESystem(eqs, t, vars, pars; systems = [src], name)\nend\n\ndt = 4e-4\ntime = 0:dt:0.1\ndata = sin.(2 * pi * time * 100) # example data\n\nf = LinearInterpolation(data, time)\n\n@named system = System(f)\nsys = structural_simplify(system)\nprob = ODEProblem(sys, [], (0, time[end]))\nsol = solve(prob, ImplicitEuler())","category":"page"},{"location":"tutorials/input_component/","page":"SampledData Component","title":"SampledData Component","text":"If we want to run a new data set, this requires building a new LinearInterpolation and ODESystem followed by running structural_simplify, all of which takes time. Therefore, to run several pieces of data it's better to re-use an ODESystem. The next couple methods will demonstrate how to do this.","category":"page"},{"location":"tutorials/input_component/#Custom-Component-with-External-Data","page":"SampledData Component","title":"Custom Component with External Data","text":"","category":"section"},{"location":"tutorials/input_component/","page":"SampledData Component","title":"SampledData Component","text":"The below code shows how to include data using a Ref and registered get_sampled_data function. This example uses a very basic function which requires non-adaptive solving and sampled data. As can be seen, the data can easily be set and changed before solving.","category":"page"},{"location":"tutorials/input_component/","page":"SampledData Component","title":"SampledData Component","text":"const rdata = Ref{Vector{Float64}}()\n\n# Data Sets\ndata1 = sin.(2 * pi * time * 100)\ndata2 = cos.(2 * pi * time * 50)\n\nfunction get_sampled_data(t)\n i = floor(Int, t / dt) + 1\n x = rdata[][i]\n\n return x\nend\n\nSymbolics.@register_symbolic get_sampled_data(t)\n\nfunction System(; name)\n vars = @variables f(t)=0 x(t)=0 dx(t)=0 ddx(t)=0\n pars = @parameters m=10 k=1000 d=1\n\n eqs = [f ~ get_sampled_data(t)\n ddx * 10 ~ k * x + d * dx + f\n D(x) ~ dx\n D(dx) ~ ddx]\n\n ODESystem(eqs, t, vars, pars; name)\nend\n\n@named system = System()\nsys = structural_simplify(system)\nprob = ODEProblem(sys, [], (0, time[end]))\n\nrdata[] = data1\nsol1 = solve(prob, ImplicitEuler(); dt, adaptive = false)\nddx1 = sol1[sys.ddx]\n\nrdata[] = data2\nsol2 = solve(prob, ImplicitEuler(); dt, adaptive = false)\nddx2 = sol2[sys.ddx]","category":"page"},{"location":"tutorials/input_component/","page":"SampledData Component","title":"SampledData Component","text":"The drawback of this method is that the solution observables can be linked to the data Ref, which means that if the data changes then the observables are no longer valid. In this case ddx is an observable that is derived directly from the data. Therefore, sol1[sys.ddx] is no longer correct after the data is changed for sol2.","category":"page"},{"location":"tutorials/input_component/","page":"SampledData Component","title":"SampledData Component","text":"# the following test will fail\n@test all(ddx1 .== sol1[sys.ddx]) #returns false","category":"page"},{"location":"tutorials/input_component/","page":"SampledData Component","title":"SampledData Component","text":"Additional code could be added to resolve this issue, for example by using a Ref{Dict} that could link a parameter of the model to the data source. This would also be necessary for parallel processing.","category":"page"},{"location":"tutorials/input_component/#SampledData-Component","page":"SampledData Component","title":"SampledData Component","text":"","category":"section"},{"location":"tutorials/input_component/","page":"SampledData Component","title":"SampledData Component","text":"To resolve the issues presented above, the ModelingToolkitStandardLibrary.Blocks.SampledData component can be used which allows for a resusable ODESystem and self contained data which ensures a solution which remains valid for it's lifetime. Now it's possible to also parallelize the call to solve().","category":"page"},{"location":"tutorials/input_component/","page":"SampledData Component","title":"SampledData Component","text":"function System(; name)\n src = SampledData(Float64)\n\n vars = @variables f(t)=0 x(t)=0 dx(t)=0 ddx(t)=0\n pars = @parameters m=10 k=1000 d=1\n\n eqs = [f ~ src.output.u\n ddx * 10 ~ k * x + d * dx + f\n D(x) ~ dx\n D(dx) ~ ddx]\n\n ODESystem(eqs, t, vars, pars; systems = [src], name)\nend\n\n@named system = System()\nsys = structural_simplify(system)\ns = complete(system)\nprob = ODEProblem(sys, [], (0, time[end]); tofloat = false)\ndefs = ModelingToolkit.defaults(sys)\n\nfunction get_prob(data)\n defs[s.src.buffer] = Parameter(data, dt)\n # ensure p is a uniform type of Vector{Parameter{Float64}} (converting from Vector{Any})\n p = Parameter.(ModelingToolkit.varmap_to_vars(defs, parameters(sys); tofloat = false))\n remake(prob; p)\nend\n\nprob1 = get_prob(data1)\nprob2 = get_prob(data2)\n\nsol1 = Ref{ODESolution}()\nsol2 = Ref{ODESolution}()\n@sync begin\n @async sol1[] = solve(prob1, ImplicitEuler())\n @async sol2[] = solve(prob2, ImplicitEuler())\nend","category":"page"},{"location":"tutorials/input_component/","page":"SampledData Component","title":"SampledData Component","text":"Note, in the above example, we can build the system with an empty SampledData component, only setting the expected data type: @named src = SampledData(Float64). It's also possible to initialize the component with real sampled data: @named src = SampledData(data, dt). Additionally note that before running an ODEProblem using the SampledData component, one must be careful about the parameter vector Type. The SampledData component contains a buffer parameter of type Parameter, therefore we must generate the problem using tofloat=false. This will initially give a parameter vector of type Vector{Any} with a mix of numbers and Parameter type. We can convert the vector to a uniform Parameter type by running p = Parameter.(p). This will wrap all the single values in a Parameter which will be mathematically equivalent to a Number.","category":"page"},{"location":"#ModelingToolkitStandardLibrary.jl","page":"ModelingToolkitStandardLibrary.jl: A Standard Library for ModelingToolkit","title":"ModelingToolkitStandardLibrary.jl","text":"","category":"section"},{"location":"","page":"ModelingToolkitStandardLibrary.jl: A Standard Library for ModelingToolkit","title":"ModelingToolkitStandardLibrary.jl: A Standard Library for ModelingToolkit","text":"ModelingToolkitStandardLibrary.jl is a standard library for the ModelingToolkit acausal modeling system.","category":"page"},{"location":"#Installation","page":"ModelingToolkitStandardLibrary.jl: A Standard Library for ModelingToolkit","title":"Installation","text":"","category":"section"},{"location":"","page":"ModelingToolkitStandardLibrary.jl: A Standard Library for ModelingToolkit","title":"ModelingToolkitStandardLibrary.jl: A Standard Library for ModelingToolkit","text":"To install ModelingToolkitStandardLibrary.jl, use the Julia package manager:","category":"page"},{"location":"","page":"ModelingToolkitStandardLibrary.jl: A Standard Library for ModelingToolkit","title":"ModelingToolkitStandardLibrary.jl: A Standard Library for ModelingToolkit","text":"using Pkg\nPkg.add(\"ModelingToolkitStandardLibrary\")","category":"page"},{"location":"#Tutorials","page":"ModelingToolkitStandardLibrary.jl: A Standard Library for ModelingToolkit","title":"Tutorials","text":"","category":"section"},{"location":"","page":"ModelingToolkitStandardLibrary.jl: A Standard Library for ModelingToolkit","title":"ModelingToolkitStandardLibrary.jl: A Standard Library for ModelingToolkit","text":"RC Circuit\nCustom Component\nThermal Model\nDC Motor with PI-controller","category":"page"},{"location":"#Libraries","page":"ModelingToolkitStandardLibrary.jl: A Standard Library for ModelingToolkit","title":"Libraries","text":"","category":"section"},{"location":"","page":"ModelingToolkitStandardLibrary.jl: A Standard Library for ModelingToolkit","title":"ModelingToolkitStandardLibrary.jl: A Standard Library for ModelingToolkit","text":"The following are the constituent libraries of the ModelingToolkit Standard Library.","category":"page"},{"location":"","page":"ModelingToolkitStandardLibrary.jl: A Standard Library for ModelingToolkit","title":"ModelingToolkitStandardLibrary.jl: A Standard Library for ModelingToolkit","text":"Basic Blocks\nMechanical Components\nElectrical Components\nMagnetic Components\nThermal Components\nHydraulic Components","category":"page"},{"location":"#Contributing","page":"ModelingToolkitStandardLibrary.jl: A Standard Library for ModelingToolkit","title":"Contributing","text":"","category":"section"},{"location":"","page":"ModelingToolkitStandardLibrary.jl: A Standard Library for ModelingToolkit","title":"ModelingToolkitStandardLibrary.jl: A Standard Library for ModelingToolkit","text":"Please refer to the SciML ColPrac: Contributor's Guide on Collaborative Practices for Community Packages for guidance on PRs, issues, and other matters relating to contributing to SciML.\nSee the SciML Style Guide for common coding practices and other style decisions.\nThere are a few community forums:\nThe #diffeq-bridged and #sciml-bridged channels in the Julia Slack\nThe #diffeq-bridged and #sciml-bridged channels in the Julia Zulip\nOn the Julia Discourse forums\nSee also SciML Community page","category":"page"},{"location":"#Reproducibility","page":"ModelingToolkitStandardLibrary.jl: A Standard Library for ModelingToolkit","title":"Reproducibility","text":"","category":"section"},{"location":"","page":"ModelingToolkitStandardLibrary.jl: A Standard Library for ModelingToolkit","title":"ModelingToolkitStandardLibrary.jl: A Standard Library for ModelingToolkit","text":"
The documentation of this SciML package was built using these direct dependencies,","category":"page"},{"location":"","page":"ModelingToolkitStandardLibrary.jl: A Standard Library for ModelingToolkit","title":"ModelingToolkitStandardLibrary.jl: A Standard Library for ModelingToolkit","text":"using Pkg # hide\nPkg.status() # hide","category":"page"},{"location":"","page":"ModelingToolkitStandardLibrary.jl: A Standard Library for ModelingToolkit","title":"ModelingToolkitStandardLibrary.jl: A Standard Library for ModelingToolkit","text":"
","category":"page"},{"location":"","page":"ModelingToolkitStandardLibrary.jl: A Standard Library for ModelingToolkit","title":"ModelingToolkitStandardLibrary.jl: A Standard Library for ModelingToolkit","text":"
and using this machine and Julia version.","category":"page"},{"location":"","page":"ModelingToolkitStandardLibrary.jl: A Standard Library for ModelingToolkit","title":"ModelingToolkitStandardLibrary.jl: A Standard Library for ModelingToolkit","text":"using InteractiveUtils # hide\nversioninfo() # hide","category":"page"},{"location":"","page":"ModelingToolkitStandardLibrary.jl: A Standard Library for ModelingToolkit","title":"ModelingToolkitStandardLibrary.jl: A Standard Library for ModelingToolkit","text":"
","category":"page"},{"location":"","page":"ModelingToolkitStandardLibrary.jl: A Standard Library for ModelingToolkit","title":"ModelingToolkitStandardLibrary.jl: A Standard Library for ModelingToolkit","text":"
A more complete overview of all dependencies and their versions is also provided.","category":"page"},{"location":"","page":"ModelingToolkitStandardLibrary.jl: A Standard Library for ModelingToolkit","title":"ModelingToolkitStandardLibrary.jl: A Standard Library for ModelingToolkit","text":"using Pkg # hide\nPkg.status(; mode = PKGMODE_MANIFEST) # hide","category":"page"},{"location":"","page":"ModelingToolkitStandardLibrary.jl: A Standard Library for ModelingToolkit","title":"ModelingToolkitStandardLibrary.jl: A Standard Library for ModelingToolkit","text":"
","category":"page"},{"location":"","page":"ModelingToolkitStandardLibrary.jl: A Standard Library for ModelingToolkit","title":"ModelingToolkitStandardLibrary.jl: A Standard Library for ModelingToolkit","text":"using TOML\nusing Markdown\nversion = TOML.parse(read(\"../../Project.toml\", String))[\"version\"]\nname = TOML.parse(read(\"../../Project.toml\", String))[\"name\"]\nlink_manifest = \"https://github.com/SciML/\" * name * \".jl/tree/gh-pages/v\" * version *\n \"/assets/Manifest.toml\"\nlink_project = \"https://github.com/SciML/\" * name * \".jl/tree/gh-pages/v\" * version *\n \"/assets/Project.toml\"\nMarkdown.parse(\"\"\"You can also download the\n[manifest]($link_manifest)\nfile and the\n[project]($link_project)\nfile.\n\"\"\")","category":"page"}] +} diff --git a/previews/PR273/siteinfo.js b/previews/PR273/siteinfo.js new file mode 100644 index 000000000..b269e8717 --- /dev/null +++ b/previews/PR273/siteinfo.js @@ -0,0 +1 @@ +var DOCUMENTER_CURRENT_VERSION = "previews/PR273"; diff --git a/previews/PR273/tutorials/chua.png b/previews/PR273/tutorials/chua.png new file mode 100644 index 0000000000000000000000000000000000000000..ea940a12d80551c3382bf7c1d214a5b2b7c2607d GIT binary patch literal 125060 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

6n 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

6IwF*DJ!`GCn7_yi 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 Q1_7Ilq=H1Hm|?*G0C`L=^#A|> literal 0 HcmV?d00001 diff --git a/previews/PR273/tutorials/chua_phase_plane.png b/previews/PR273/tutorials/chua_phase_plane.png new file mode 100644 index 0000000000000000000000000000000000000000..c44a0dd60cc4efe9360dfc455bcfc73cb2b371e0 GIT binary patch literal 172119 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 %(>a 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

#F#SZKtmctZj0ae4 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 literal 0 HcmV?d00001 diff --git a/previews/PR273/tutorials/custom_component/index.html b/previews/PR273/tutorials/custom_component/index.html new file mode 100644 index 000000000..72ceb8b35 --- /dev/null +++ b/previews/PR273/tutorials/custom_component/index.html @@ -0,0 +1,58 @@ + +Custom Components · ModelingToolkitStandardLibrary.jl

Custom Component

In this tutorial, the creation of a custom component is demonstrated via the Chua's circuit. The circuit is a simple circuit that shows chaotic behavior. Except for a non-linear resistor, every other component already is part of ModelingToolkitStandardLibrary.Electrical.

First, we need to make some imports.

using ModelingToolkit
+using ModelingToolkit: t_nounits as t
+using ModelingToolkitStandardLibrary.Electrical
+using ModelingToolkitStandardLibrary.Electrical: OnePort
+using OrdinaryDiffEq
+using IfElse: ifelse
+using Plots

Custom Component

Now the custom component can be defined. The Modelica implementation of the NonlinearResistor looks as follows:

model NonlinearResistor "Chua's resistor"
+  extends Interfaces.OnePort;
+
+  parameter SI.Conductance Ga "conductance in inner voltage range";
+  parameter SI.Conductance Gb "conductance in outer voltage range";
+  parameter SI.Voltage Ve "inner voltage range limit";
+equation
+  i = if (v < -Ve) then Gb*(v + Ve) - Ga*Ve else if (v > Ve) then Gb*(v - Ve) + Ga*Ve else Ga*v;
+end NonlinearResistor;

this can almost be directly translated to the syntax of ModelingToolkit.

function NonlinearResistor(; name, Ga, Gb, Ve)
+    @named oneport = OnePort()
+    @unpack v, i = oneport
+    pars = @parameters Ga=Ga Gb=Gb Ve=Ve
+    eqs = [
+        i ~ ifelse(v < -Ve,
+        Gb * (v + Ve) - Ga * Ve,
+        ifelse(v > Ve,
+            Gb * (v - Ve) + Ga * Ve,
+            Ga * v))
+    ]
+    extend(ODESystem(eqs, t, [], pars; name = name), oneport)
+end

Explanation

All components in ModelingToolkit are created via a function that serves as the constructor and returns some form of system, in this case, an ODESystem. Since the non-linear resistor is essentially a standard electrical component with two ports, we can extend from the OnePort component of the library.

@named oneport = OnePort()

This creates a OnePort with the name = :oneport. For easier notation, we can unpack the states of the component

@unpack v, i = oneport

It might be a good idea to create parameters for the constants of the NonlinearResistor.

pars = @parameters Ga=Ga Gb=Gb Ve=Ve

The syntax looks funny but it simply creates symbolic parameters with the name Ga where its default value is set from the function's argument Ga. While this is not strictly necessary it allows the user to remake the problem easily with different parameters or allow for auto-tuning or parameter optimization without having to do all the costly steps that may be involved with building and simplifying a model. The non-linear (in this case piece-wise constant) equation for the current can be implemented using IfElse.ifelse. Finally, the created oneport component is extended with the created equations and parameters. In this case, no extra state variables are added, hence an empty vector is supplied. The independent variable t needs to be supplied as the second argument.

extend(ODESystem(eqs, t, [], pars; name = name), oneport)

Building the Model

The final model can now be created with the components from the library and the new custom component.

@named L = Inductor(L = 18)
+@named Ro = Resistor(R = 12.5e-3)
+@named G = Conductor(G = 0.565)
+@named C1 = Capacitor(C = 10, v = 4)
+@named C2 = Capacitor(C = 100)
+@named Nr = NonlinearResistor(Ga = -0.757576,
+    Gb = -0.409091,
+    Ve = 1)
+@named Gnd = Ground()
+
+connections = [connect(L.p, G.p)
+               connect(G.n, Nr.p)
+               connect(Nr.n, Gnd.g)
+               connect(C1.p, G.n)
+               connect(L.n, Ro.p)
+               connect(G.p, C2.p)
+               connect(C1.n, Gnd.g)
+               connect(C2.n, Gnd.g)
+               connect(Ro.n, Gnd.g)]
+
+@named model = ODESystem(connections, t, systems = [L, Ro, G, C1, C2, Nr, Gnd])

Simulating the Model

Now the model can be simulated. First, structural_simplify is called on the model and an ODEProblem is built from the result. Since the initial voltage of the first capacitor was already specified via v, no initial condition is given and an empty pair is supplied.

sys = structural_simplify(model)
+prob = ODEProblem(sys, Pair[], (0, 5e4), saveat = 0.01)
+sol = solve(prob, Rodas4())
+
+Plots.plot(sol[C1.v], sol[C2.v], title = "Chaotic Attractor", label = "",
+    ylabel = "C1 Voltage in V", xlabel = "C2 Voltage in V")
+Plots.savefig("chua_phase_plane.png")
+
+Plots.plot(sol; idxs = [C1.v, C2.v, L.i],
+    labels = ["C1 Voltage in V" "C2 Voltage in V" "Inductor Current in A"])
+Plots.savefig("chua.png")

Time series plot of C1.v, C2.v and L.i

Phase plane plot of C1.v and C2.v

diff --git a/previews/PR273/tutorials/dc_motor_pi/203ac178.svg b/previews/PR273/tutorials/dc_motor_pi/203ac178.svg new file mode 100644 index 000000000..748c3df7a --- /dev/null +++ b/previews/PR273/tutorials/dc_motor_pi/203ac178.svg @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/previews/PR273/tutorials/dc_motor_pi/992f6694.svg b/previews/PR273/tutorials/dc_motor_pi/992f6694.svg new file mode 100644 index 000000000..c50b13a14 --- /dev/null +++ b/previews/PR273/tutorials/dc_motor_pi/992f6694.svg @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/previews/PR273/tutorials/dc_motor_pi/b1dbe5a8.svg b/previews/PR273/tutorials/dc_motor_pi/b1dbe5a8.svg new file mode 100644 index 000000000..652701c44 --- /dev/null +++ b/previews/PR273/tutorials/dc_motor_pi/b1dbe5a8.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/previews/PR273/tutorials/dc_motor_pi/index.html b/previews/PR273/tutorials/dc_motor_pi/index.html new file mode 100644 index 000000000..1e1fdb997 --- /dev/null +++ b/previews/PR273/tutorials/dc_motor_pi/index.html @@ -0,0 +1,82 @@ + +DC Motor with Speed Controller · ModelingToolkitStandardLibrary.jl

DC Motor with PI-controller

In this example, a PI-controller is set up for speed control of a DC-motor. An equivalent circuit diagram is depicted below.

DC-motor

Modeling and simulation

The electrical part consists of a resistance and inductance. The coupling between the electrical and rotational domain is done via an electro-motive force (EMF) component. The voltage across the EMF is proportional to the angular velocity and the current is proportional to the torque. On the mechanical side, viscous friction in, e.g., a bearing and the inertia of the shaft is modelled.

A PI-controller with anti-windup measure should be used as a speed controller. A simulation is performed to verify the tracking performance of the controller and the disturbance rejection capabilities.

First, the needed packages are imported and the parameters of the model defined.

using ModelingToolkit
+using ModelingToolkit: t_nounits as t
+using ModelingToolkitStandardLibrary.Electrical
+using ModelingToolkitStandardLibrary.Mechanical.Rotational
+using ModelingToolkitStandardLibrary.Blocks
+using OrdinaryDiffEq
+using Plots
+
+R = 0.5 # [Ohm] armature resistance
+L = 4.5e-3 # [H] armature inductance
+k = 0.5 # [N.m/A] motor constant
+J = 0.02 # [kg.m²] inertia
+f = 0.01 # [N.m.s/rad] friction factor
+tau_L_step = -0.3 # [N.m] amplitude of the load torque step

The actual model can now be composed.

@named ground = Ground()
+@named source = Voltage()
+@named ref = Blocks.Step(height = 1, start_time = 0)
+@named pi_controller = Blocks.LimPI(k = 1.1, T = 0.035, u_max = 10, Ta = 0.035)
+@named feedback = Blocks.Feedback()
+@named R1 = Resistor(R = R)
+@named L1 = Inductor(L = L)
+@named emf = EMF(k = k)
+@named fixed = Fixed()
+@named load = Torque()
+@named load_step = Blocks.Step(height = tau_L_step, start_time = 3)
+@named inertia = Inertia(J = J)
+@named friction = Damper(d = f)
+@named speed_sensor = SpeedSensor()
+
+connections = [connect(fixed.flange, emf.support, friction.flange_b)
+               connect(emf.flange, friction.flange_a, inertia.flange_a)
+               connect(inertia.flange_b, load.flange)
+               connect(inertia.flange_b, speed_sensor.flange)
+               connect(load_step.output, load.tau)
+               connect(ref.output, feedback.input1)
+               connect(speed_sensor.w, :y, feedback.input2)
+               connect(feedback.output, pi_controller.err_input)
+               connect(pi_controller.ctr_output, :u, source.V)
+               connect(source.p, R1.p)
+               connect(R1.n, L1.p)
+               connect(L1.n, emf.p)
+               connect(emf.n, source.n, ground.g)]
+
+@named model = ODESystem(connections, t,
+    systems = [
+        ground,
+        ref,
+        pi_controller,
+        feedback,
+        source,
+        R1,
+        L1,
+        emf,
+        fixed,
+        load,
+        load_step,
+        inertia,
+        friction,
+        speed_sensor
+    ])

Now the model can be simulated. Typical rotational mechanical systems are described via DAE (differential algebraic equations), however in this case, ModelingToolkit can simplify the model enough so that it can be represented as a system of ODEs (ordinary differential equations).

sys = structural_simplify(model)
+prob = ODEProblem(sys, [], (0, 6.0))
+sol = solve(prob, Rodas4())
+
+p1 = Plots.plot(sol.t, sol[inertia.w], ylabel = "Angular Vel. in rad/s",
+    label = "Measurement", title = "DC Motor with Speed Controller")
+Plots.plot!(sol.t, sol[ref.output.u], label = "Reference")
+p2 = Plots.plot(sol.t, sol[load.tau.u], ylabel = "Disturbance in Nm", label = "")
+Plots.plot(p1, p2, layout = (2, 1))
Example block output

Closed-loop analysis

When implementing and tuning a control system in simulation, it is a good practice to analyze the closed-loop properties and verify robustness of the closed-loop with respect to, e.g., modeling errors. To facilitate this, we added two analysis points to the set of connections above, more specifically, we added the analysis points named :y and :u to the connections (for more details on analysis points, see Linear Analysis)

connect(speed_sensor.w, :y, feedback.input2)
+connect(pi_controller.ctr_output, :u, source.V)

one at the plant output (:y) and one at the plant input (:u). We may use these analysis points to calculate, e.g., sensitivity functions, illustrated below. Here, we calculate the sensitivity function $S(s)$ and the complimentary sensitivity function $T(s) = I - S(s)$, defined as

\[\begin{aligned} +S(s) &= \dfrac{1}{I + P(s)C(s)} \\ +T(s) &= \dfrac{P(s)C(s)}{I + P(s)C(s)} +\end{aligned}\]

using ControlSystemsBase
+matrices_S, simplified_sys = Blocks.get_sensitivity(model, :y)
+So = ss(matrices_S...) |> minreal # The output-sensitivity function as a StateSpace system
+matrices_T, simplified_sys = Blocks.get_comp_sensitivity(model, :y)
+To = ss(matrices_T...)# The output complementary sensitivity function as a StateSpace system
+bodeplot([So, To], label = ["S" "T"], plot_title = "Sensitivity functions",
+    plotphase = false)
Example block output

Similarly, we may compute the loop-transfer function and plot its Nyquist curve

matrices_L, simplified_sys = Blocks.get_looptransfer(model, :y)
+L = -ss(matrices_L...) # The loop-transfer function as a StateSpace system. The negative sign is to negate the built-in negative feedback
+Ms, ωMs = hinfnorm(So) # Compute the peak of the sensitivity function to draw a circle in the Nyquist plot
+nyquistplot(L, label = "\$L(s)\$", ylims = (-2.5, 0.5), xlims = (-1.2, 0.1),
+    Ms_circles = Ms)
Example block output
diff --git a/previews/PR273/tutorials/input_component/index.html b/previews/PR273/tutorials/input_component/index.html new file mode 100644 index 000000000..47fbfd20b --- /dev/null +++ b/previews/PR273/tutorials/input_component/index.html @@ -0,0 +1,104 @@ + +SampledData Component · ModelingToolkitStandardLibrary.jl

Running Models with Discrete Data

There are 3 ways to include data as part of a model.

  1. using ModelingToolkitStandardLibrary.Blocks.TimeVaryingFunction
  2. using a custom component with external data
  3. using ModelingToolkitStandardLibrary.Blocks.SampledData

This tutorial demonstrate each case and explain the pros and cons of each.

TimeVaryingFunction Component

The ModelingToolkitStandardLibrary.Blocks.TimeVaryingFunction component is easy to use and is performant. However the data is locked to the ODESystem and can only be changed by building a new ODESystem. Therefore, running a batch of data would not be efficient. Below is an example of how to use the TimeVaryingFunction with DataInterpolations to build the function from sampled discrete data.

using ModelingToolkit
+using ModelingToolkit: t_nounits as t, D_nounits as D
+using ModelingToolkitStandardLibrary.Blocks
+using DataInterpolations
+using OrdinaryDiffEq
+
+function System(f; name)
+    src = TimeVaryingFunction(f)
+
+    vars = @variables f(t)=0 x(t)=0 dx(t)=0 ddx(t)=0
+    pars = @parameters m=10 k=1000 d=1
+
+    eqs = [f ~ src.output.u
+           ddx * 10 ~ k * x + d * dx + f
+           D(x) ~ dx
+           D(dx) ~ ddx]
+
+    ODESystem(eqs, t, vars, pars; systems = [src], name)
+end
+
+dt = 4e-4
+time = 0:dt:0.1
+data = sin.(2 * pi * time * 100) # example data
+
+f = LinearInterpolation(data, time)
+
+@named system = System(f)
+sys = structural_simplify(system)
+prob = ODEProblem(sys, [], (0, time[end]))
+sol = solve(prob, ImplicitEuler())

If we want to run a new data set, this requires building a new LinearInterpolation and ODESystem followed by running structural_simplify, all of which takes time. Therefore, to run several pieces of data it's better to re-use an ODESystem. The next couple methods will demonstrate how to do this.

Custom Component with External Data

The below code shows how to include data using a Ref and registered get_sampled_data function. This example uses a very basic function which requires non-adaptive solving and sampled data. As can be seen, the data can easily be set and changed before solving.

const rdata = Ref{Vector{Float64}}()
+
+# Data Sets
+data1 = sin.(2 * pi * time * 100)
+data2 = cos.(2 * pi * time * 50)
+
+function get_sampled_data(t)
+    i = floor(Int, t / dt) + 1
+    x = rdata[][i]
+
+    return x
+end
+
+Symbolics.@register_symbolic get_sampled_data(t)
+
+function System(; name)
+    vars = @variables f(t)=0 x(t)=0 dx(t)=0 ddx(t)=0
+    pars = @parameters m=10 k=1000 d=1
+
+    eqs = [f ~ get_sampled_data(t)
+           ddx * 10 ~ k * x + d * dx + f
+           D(x) ~ dx
+           D(dx) ~ ddx]
+
+    ODESystem(eqs, t, vars, pars; name)
+end
+
+@named system = System()
+sys = structural_simplify(system)
+prob = ODEProblem(sys, [], (0, time[end]))
+
+rdata[] = data1
+sol1 = solve(prob, ImplicitEuler(); dt, adaptive = false)
+ddx1 = sol1[sys.ddx]
+
+rdata[] = data2
+sol2 = solve(prob, ImplicitEuler(); dt, adaptive = false)
+ddx2 = sol2[sys.ddx]

The drawback of this method is that the solution observables can be linked to the data Ref, which means that if the data changes then the observables are no longer valid. In this case ddx is an observable that is derived directly from the data. Therefore, sol1[sys.ddx] is no longer correct after the data is changed for sol2.

# the following test will fail
+@test all(ddx1 .== sol1[sys.ddx]) #returns false

Additional code could be added to resolve this issue, for example by using a Ref{Dict} that could link a parameter of the model to the data source. This would also be necessary for parallel processing.

SampledData Component

To resolve the issues presented above, the ModelingToolkitStandardLibrary.Blocks.SampledData component can be used which allows for a resusable ODESystem and self contained data which ensures a solution which remains valid for it's lifetime. Now it's possible to also parallelize the call to solve().

function System(; name)
+    src = SampledData(Float64)
+
+    vars = @variables f(t)=0 x(t)=0 dx(t)=0 ddx(t)=0
+    pars = @parameters m=10 k=1000 d=1
+
+    eqs = [f ~ src.output.u
+           ddx * 10 ~ k * x + d * dx + f
+           D(x) ~ dx
+           D(dx) ~ ddx]
+
+    ODESystem(eqs, t, vars, pars; systems = [src], name)
+end
+
+@named system = System()
+sys = structural_simplify(system)
+s = complete(system)
+prob = ODEProblem(sys, [], (0, time[end]); tofloat = false)
+defs = ModelingToolkit.defaults(sys)
+
+function get_prob(data)
+    defs[s.src.buffer] = Parameter(data, dt)
+    # ensure p is a uniform type of Vector{Parameter{Float64}} (converting from Vector{Any})
+    p = Parameter.(ModelingToolkit.varmap_to_vars(defs, parameters(sys); tofloat = false))
+    remake(prob; p)
+end
+
+prob1 = get_prob(data1)
+prob2 = get_prob(data2)
+
+sol1 = Ref{ODESolution}()
+sol2 = Ref{ODESolution}()
+@sync begin
+    @async sol1[] = solve(prob1, ImplicitEuler())
+    @async sol2[] = solve(prob2, ImplicitEuler())
+end

Note, in the above example, we can build the system with an empty SampledData component, only setting the expected data type: @named src = SampledData(Float64). It's also possible to initialize the component with real sampled data: @named src = SampledData(data, dt). Additionally note that before running an ODEProblem using the SampledData component, one must be careful about the parameter vector Type. The SampledData component contains a buffer parameter of type Parameter, therefore we must generate the problem using tofloat=false. This will initially give a parameter vector of type Vector{Any} with a mix of numbers and Parameter type. We can convert the vector to a uniform Parameter type by running p = Parameter.(p). This will wrap all the single values in a Parameter which will be mathematically equivalent to a Number.

diff --git a/previews/PR273/tutorials/plot.png b/previews/PR273/tutorials/plot.png new file mode 100644 index 0000000000000000000000000000000000000000..c022cf226109d6b7b83cb6ff4c9c41f4432166ec GIT binary patch literal 25077 zcmY(r1yojB7d8BV0ZK?C(ntviN;iUZmvl?FNViA`NH+*bmvlFRgi_KCB1)H1(*Jty z`+Z}4KX(kTa(K?!XYaMwnrqIv2~}278fk)fR}>U{{y-ct^qXR0(tEA;b;B)`k|ztzk8C&V z)~??y?QW-}SeSPSdJTPe9sJSi0sJJjoWuiu1bn71`U!5feQaDDJ|$&lbhNU%`gr8T z!NGyUVvEPY>R?NYV0u(>NlDUU-Q$gdOjpU|v)Rg*y;WxY-}?KTUl$bmgoTI0#X6fQ z*5_ye?+GK6Nwsx#ZLWN^SQ2w`Rz8Zpt+QX4{r>%XjiZD__f~oP?(S~crRG$%#qd4h ze;?c0u0qd?OG|xD7Tmf`Dvvi!D&66+FJ8QmPr118M%?GJR%f8JD4~~6Mj)anMJ8Eh z;FF)hP-_Fax6zGO7!jR){DRWPoF-uu5Iei<|eWj&bZud-eY2B7I3T9 z*4AEvCq$6)I42h5=c9Iv7pV!jx%JsrG_!Wo9B^BYGqNUOAb$V;9U2;X=gyswdz5Xi zJE_WywGAaBn*1o=NadBg#d2%;UQ7u!4hK8;VhDDZq&v*X)`=?f*SX&i7Ffi~) zEnm>{uy1I{ek5Ds^XJbuMSuPNoi60%x;0t4Hk{f1YUMU!|McSN%bvrXx%!fO+PX_^ zJ_)jU2?+`2U%w?Vx3;tpv1olA%lz~_2Yo71{ib-@8hV{Anz0HXdk&FE<3}RN> z`Gy$ne^=*w!~_K5l9Ib~^-;9fYxbN;{XV}FG>KUCroVBETwfg2)YSN1o?ZUwr6j|a zI)6wMe$%^Yq8MLzh9H#-F#|2j+_Lg54?XMNVcZR zMPB_3R7{bIqR?-4Ep2IOfxpGX#86OB%x12xttBNSoSvW0&CKYx`wBgJ6gs>HvAsAo zmGnqiSs90vRQJV;iDtLGKP$Z)A)gdVH4Gb_eqUXlTi4DmE&0tiyqbMsfan_-_*7H` z!BJUN)#UVB*2#%Iq>BXhikGR8B7kJ=jP_VewCq*6LR10SX^v_jW;X$?e|}~B-Xrwf*a2q z9ru%;zD$6}_dhCuBd*o4!L8XR$8-US4VJ0ky&y>{N0D zCZ+HP59S2fTc{`qJygpV>W>F2E&MvxiH;>-cfw`jbo?eJz1wHJ4aK zd^|w_RkEbfU}tf0F$sscr9)=da?8Px0D*+nH*pCGl#cTDtFv)6B`e}{2t2FQtHUv+ zT0bTEbp97v%In*j442K#&6z@88qEU(DI6$N+}y6?g(|5gH$_|i^pMVWm+3WTzt+5u zpjZ4LJ;oV_nq~rHGr5Hz<9D`%l}wF#KuT(rn!#xmtGMdw>@4WIoors9(5`{_w;V#b zPPB__(Cj)mH>cZNk(rq}bSaS^dbB#2HjA~#LS)k$N&eWUv5&x*M%-@Fmc|=00Ky0Y zePE7Rvkc)cO*`7Ay0r&^gXs9}WX3*&k5M0w4r#Wz`8>(c*W>rM1bhZX$Wc$*cTtRB zFn(937Ut%wkSAStX1P56nwobX({=v*`7=5BegKu8zW&RrnE3c{)s9jIvDEw&?qx&Y z(;yG#xUaXd$O;2ynH*!!@FaP=)CqLmaRi>Zn5*{9&@@=>HMG2H7H8nNJ5YMqgx_&!3 zEHvdk>Y)`gG+cu0PbuWd2?$0VhrQEmjheFu9Z<~jY?=;%BfE(1|Au@ApZ^E)8EfcF*re{oq46~0fL~Tp1uTI(#IAmm>l$I0msAXay(T%a5 zj!03WbilN|V0uxVW^G7g>by^pRi|BTj?yt%s+&?T;I@0yKL~@^I;p6z(9zksroMj4 zdD09o3v!z4$%3YVM^I7kmoHx|i459(_1E5)>NjhgyJ4=ZM2Xz?@9UEu#G}VO-WZc= z=KlI&2Vy0~1CqZ!!hN@KO^5HsHYkk8#Q$wq z52JQKtuNDm&v$2bEkz~}a^GzG8n?qDCPKH)*25&QPyGk4*tnvosAyzlBsMlS>Kh{n zN666a7k|U^NloqS9wVlwr)wNm$o0~nnth9hHL_s~jf}kQ4`}1b$%pquYP}|ksE8*D zKXhlVO`6%(-op#r|_2WI(m9x?|;!&1E%l~E8>^CtBLXPPaL{U{si8^H!(43X>Bc#Phof6 zo-WAn1SltW-R0oAE)5XPBGc!1%FvIHh{$^QrLwkm(RCsT6upRuh_<%2fv+Plp&`x9 zUdG18_V#6vlFU7}dcy}0^st!i*H;3sHD$7tZD(sX03T&?SSaf0k&TJQH|{@e{WtqY zJAH$4dUrN0E-vm^H~+ITE#AfJKUDSwwVKgQTieFFo`k?PbXH9vx*Wy+~YhB?th;^S+~W9R1P zo}8RiV2k08%jOF2TCT})9UX7KzI3S75iZ^Hv z^nm@NqsOeQlZuHDbg)DA@p*QamsM0$s1s!89wbPyI?ELsz=zsEl+I9E06W>9i)zM={#_zAw zvJ1#A`69CGC%gHCco(7xFsZz9({_%tFLKN9VKu8O@~f-$;&Bse^ZiKMJ7Z zY8W=}tL$e~`+xtY3VJv(|F*HQNl6r{)zR12zuaH$(yh0DlpxE)QxD6OLc-gpRck#F z^H2&>PcSrBo=2Mot)4{_o7>yl2W!KW{LY07=^VAKfSBNI1>N_lGKUS@y!kSRui?Ff zPk-SHXSUnT)p6Txb_QXTxBUGE=|#k-1CgKYadx<2=yy3WGvl#6T`5npx^CdLQwy*z zzxUhU-~BH6l%w2`7vP0HL5(X?KL&9A@uSgPot>GP89!DdOfZCc0Yq25z5cUj2*A)n zo;8Y^#65|RbrmxNzrGL86!8;Q7&|}NTWa;HZ*9GV?6j1>BC*=x_>d>M$lCRp(96y7 zqW$*gp8&LEdTu^S#~@1TPZ#m?m6YtkKS{{Q5PsQ%nJ!0r5N^Pc-I(_(a27w)dVG9* zAdN?fAp`fJq~+Z{Q}%pA;kQ)ppikQAXKN2+hokcLS( zR!hp;ii?V@n!?0sv>ToBhJ?hRuE|ez8uj322zsb`bwi6N7KakRso>@A?#N5FLpKoU zIy-mr=TD>aMyxA|IoWc$fLjeQyS`j!S652?RJkE>s5rkAGM@=OG0amf)vlKG3gFyH zF$36Kfd5!Rr9`82^lCET?OT9kcLMeg4#rqLetx;LgPmDAz!Dc7{W0#L*U@Gk2No(v zWJN=RmKXIwTw%fV)2Vq#4lonnm=C|DhDZqy186{{C-Z`(qU4bG>@-yd*4Fy~25 zN+O1z)79NtU!R6|&Tl2b$HRjqIQ71Ihx-uHNHP}8k-|e`6_prqnm>R3jL0YgJ&>C# z&YA@2rMa<@tJy72wP?Y+*QCWmRMhVwgG&^Hhlh66_<@rg1teKI~4~T!4$g-Lmb($D=PfzQU zmOMr#28NLS-|VkHamej1wO{}Hv-0<^lb4s5pWpSnckj%Zz2yfGKeo2yaBdz@lyvegpOaumB1Q%0tQbMwMEy@yM_XHl{I))OA!<#l~u?tE-_fs}>D>{fdizlix4V zy7mmfr_ol5#& zULLt%{8g8*d?j2lyP&m-mHqbD1>e^=AB^bb(8Mr4eAqQIGV=XR@{=O)UF{# zT}S6^fBAW()~8E^r5&u0#n1z4IaBwgrO!ofv)77-EaSV|99zzz|nXOI7=Ykm+ zmpN1j1Z4fGq$CYEA-P*^P#G#JDxitFIG%F=9%!NRB^sj7w8{;dSO|h8?}NeL{Yij} zyc7apmIL3vX$$>6HdcM4cv_&8nIYuGec(CyNgMut+aGFHmDVRn1_*!X&tNY=N*=59 zho#CI8n?PJbQc3dNKi0&3OEEnC!7kzgoGaM?l?EIv<-l?8zl;EzSB0{80TQt-LeBc zO|DEFKeHf4mO2wk@3JeV!kBDcEMHvVLemZzH>2px-|0(!x*FjM!~EMti(~GEjD>sC zProuo7acujNm3(=45OXn<9d@Cz#o3ioNvWHfFkK3n59)fCl;2?c_*sd| z7=lWsDxvY^;{9Lenl4re7t=yf_f4mBb#n$6R#x*Z7j3j*G0$T)fU8 zjSN+4yhU8c2kKY^*DV&jaf0ZZ%GWHW1{E?DBWyYkKY!SntVI84`F#zO-SDZxSfrlN z-7Wk~VQ4(RefyR?1uzb>#7)tL=4Klr_I@;MvguJG_AOJDehdD4ne+LVtU5J}j~|!% zJWZp_XSJjVjqd*qQ2;=zF72eBR!lf^Y4F@mqZHNDI=XP3{}v--q1r_{!)C(A?2nQt z)(@-+IpaE#{a$d6Gh3wwKj>c4{b*^aKH_wj5iSAE%bLL+r(eD4MWs%wSVkn>a@G401Irmm_9NP8_*N_ejrH@dJM+kG~G_4RH78sa_g`*+H0T)kw}m8o<3bCn;3$dU|R=+cES@u`2^ zu)d|_4OnVb0L|gIhG?mfY$Hcb0frN5P8oYtZ zXd7whKpX?pwbbtCxB6HOzZ)DcM$|MIpt!AzO3( z-z%wJt33+&#Lr)nF;o_^?a5z|F=XdIe|t9ghJje8+B0{I&t0kOJLnXXfkM>xoQcri zuZy6G6=IM~UAv4<=xWDDgyOh}m!eWkjBeCAdp=HA!ANmAT;YF!@SMf-)+iwCG^)fEK?JuEe8V7wXs*u_7t1K5+r7VBT-XgW%+W|NAB6IpHDdJU|m)O zmuZScljB-S-JJc*>Cm~9xNRl(F4cKV3Y|Lm6`fe8#3$)?vvo%K_hMP=tJsN531PG{ zv7FED;Sk=ks&#gv^C=HgEX&=~98)C>$-ly_bRd`o3f+&L($H0=f)O zM6UIX?fdJxsp+M!{`jnWo6!58;?R!UARWeQ2mvFHwVDnK;cUXic1QmZ?`i-rn;(Tpu|L ztE{XXcq!QgEn?%^i%7Ki1J*(|;<3-iUm~eL#Rh$-Y21Du^NFYH>m!4k=A!U)63qx4 zL<5EIw``WWxI4oH2cvRqrCOCgtA~YOE@G2%%hSXloyWfkwpH&CRghJ{`m{1T7sMIiFK5Kq(fYa-G_5gM$$>vmiYA!fbVRc6M}hOq6H> zp${y$5eyjef`W`pQAtVv&=9hp0cw~I?<)@g0?05we*AzR#<+=!_y_q9#3o;O^5Nm( z4K!>^6XXqZva{=KXF3ljfOBwiaXG578Y8&dUBBe(wYMk)I$dEQBN`goAQN=oKmo%e zd=CbB$jQl}4>|%;4~9hq;K0iZInarTghw8$11a#$riKQ=^X+Q*p(y}~DE`@n09w0y zdjR*q#mAnISgegUAdVKa^W zzR>J;3-vQ}pwKGv+0Qo&49Fw;zJ2ptOLuEK+bn?=abjX3;sIA!O0@_p>ktSRkZuSh zBJMwhe&q&&BOwY}DG(Wf^W=!y0zLu=j+M<#YX^tDot*{9WtCd;D(a@Dzkrm0Zqo(y z3qZsi_`5rh=s=wm%TiwZN&y;HjZUes-<9BjE2wFpCjB}%g$}yi{m)OBbU9hs+xI9~ z;=Xd00D2DXHbFxR0o=!de|w?f)x#%G9AQkdc}_r1-wi@V0Ebd%(jC^<*9S`^5l*x- zQyrr1v)ma3?P030Pg8aE!S}4^ATl@)(S`&rm;D!NnjB3Js0%_2S4yWNZH<>DT)ee; z2Jt$mmxpCoMAEJuKEBN0pd$)TBl2BMu|RyRtK+7kq7oLqny!3F%59541c_AwYfMU- zR-{%C91@ZV-84W#Xw(tP8XBv6dw$Sc0yd0%z_odKvb0oTd_yf~^sDKcH*X9K3@*=( z(gfUC5g!EHpx@wRWsU4MQOFSFqoVo&1z9a$9>qUTE{WT&*sOX6=4KwCE)*vSMd-yr znQ#JP2>Jw2T5W8QG$ZiWR}ha^Q|(vXpG+()rl8mr7c-ehAu7xVA1DkkC}p%jVt^P1 z4Y3iZadW)c;NaW&kGOys2L+RlkBUmFekWBH&RDEq{WA-T) zy5GMm=lh#aL3J%JF20M6ZN4};KEChH+lE4IdS5aLeTK%Zsq&4rEmdjI&RhTo<%iST zThDO`2wUsH$$_SqD6X`JcstnV_^FBKvFZ8@$@`Hqx41~@InJg_BFM% z{sH@8qw#fc5EvB}gsHi?L4%|5#lJsygT(SwD`#vG4Nkwq=#2+H@EwG+wHY-nO6RGr z1_gsy;Cr=HofriK1_(3|J}CY$M?e!jz1L&CfWg+XKVy-((Bcu7LgCXFO)ViILCj`g zY65j(9wN53KU_S!vr~+I`Ri||uRcug^fs18KkFWpCtO`?c@4_(#AoL-vL?Fw_jR3}ye~nQ+$g}941B>?L2{7w}X*^MMhC z^bL-f{$~Jd)Oexn?CfOZ_Gc5C>ANIsLRNNrlsjh znZL=hg5opX-5pf4Q(M;5q{EuT6Or-t6Iv#up;&>pa}b8sxVuS7r+fl3YgJcIAGcH>UPkJ6u ze_pLf_bik>;LW&FVzv7T0Z?OsmS>f^!E4@VCnNiUk&v#AKo3R+x&ht-S4m({Pz0rj zFL0JXa*)rY3In4aNyaxi;U$Wm<;pQC-gmTJ#Nuwd&NvIu0a^E$H9i5RvjUR3!ng}e zFh_<9Gc%{aIz9F|gDL{7M&m-I9aK>WJ80XGEbF4@Rw+b1NFw!KHlDI_axeJ@X#%5P zvG?SwAbz<2o6q zWw3QCv_3&%gKZhkp0W+bh=ENW`}yf+HwWkpLqd9+T(cYR%(gZBOQ<>Y3 z0y&vqP=I#x<|o7U3@haYsQ)0^Ky5yT@jnm2w(@)l*B$2S9t#Wm0v(N1M+MCX?wjv^ zKUws00J=tABndbfkPpF4ve@{Vfsb$I^XFx#TH!>GAq(!!RIhc16RWAJww><^0I)?$ z`~a7MSpjm`&CSiiRmik2`k_=LWT^KbT+CFN$>t$NDK=JCB-BFr0rO=)D?mUUh}kb~ z6G)~cLU&*!rlz5%H$OeyhndL>pcPUY4hab#s1&8T_3W>e9A>KMK;L9y+6*E#Fv_1O zD=)W@OizlBmj`{YGw@D%+nF^Wn3578Ju6|?fN=u(zG7nI)<@u=xO?}mf%l(oU`(NO zgItB+b^Or*WO!?9D>18HAvr9%h1m1wDJ+Gb-%rAXvvF3>ed*}|X^0$wM4+(AAcVZZ z9RNBW(wEZUn5E39S7mx9ZIA-A8CTb1Ikwhco16Rq@}Z_9rlIx&C9Eao>Aba&h|5%s^68d;$~ogNASJ!FR?` z@xKt|U-@hMUl$MdX zlhjWx?A=gMuog}IJUIw*raa9}B*XARQ}cRF)_NGLnA_dm zT{`b$n^;?W1lf_RE7^QFV{jnc=j_m`NWBS6Nl0JWc&*J;B&A3j$bbkfaAa`Q>p407 zg}AU7NFFIS6d@%gg~pCL$1FD#2f<5m6&BFDBOQqSdP;dTxD37MQ9!rxjKBuVFQ-Nr zePL;7X>qZMxu{yn1auG(GxIf8_=rOFVnDPAcZiuJ7VRo1H{b*S9U@UC<^BHtK6u$e zU|NEMhhXsl9`KK;S^$XIT}b_>6109XCOg< zEl1&ZRaKP}2#EtW<~n2uoKSIX?Rb#>Ls!6O+M7}kFM5|@%f3S>Myng_U|IAHVmU1v9E z^717TeZh)?gTlHTX!k-P6gM-oJab3SYPF8{WPE?S?uoFlu-NhsWCGbejD6F8c2);S z`oTAr#ACJ^w0Kw#IHfHtTj;m*<=$Hy1LJJ{O?nR(l_P*=iB=%enwOs+**nNT-fvvX zn5!}iS7*9~NRV|wdJm)(6*WpGfYSgmBAcdV?hblcLUHkz?{BE!7P^w@=qUco*vhH@ zERhmJ&%iW3HJSrHgyp8Jq>wi%qQT(J(VCw_o_|8Z3wL+->bLtWabc);{S^>aKZga1 z!F`ZoKu8_f6fnXd_UgydL4VCYSu=>c9QU4x(W#!D%E{`o{@Fo~%-OKOAqtcp@ z0lOyyUB-rVRHv|*(L`WNk#Ml0u5LFwMM1v57SD6h?1XrFeuIfq z3o3y}l#Xm5I-<=-x-~O*Q6yMsR7D1%*azdbGeWJOZ1_nfvH0-0lyPo6!Kaq|EBb`6 zw4RK008M0xnSepmqJH;pztjY zGtptCbJqxt>^2f^le;{8*YuaOU-z9h@&*xB_V#v^06$dn(4{er_Hq2C3jQP2BZymT)ugvkYh9Ef+hhbw5gxVWIT?coSwpNKG#AG-~ktDM2XV;ZM2Z z9Q^4l>||KnLV;ve8roCTx}1_K#yJ>G!ZtK*hMRj*6~R9-tzks^@{e#)5mN$M880(R zb0(aUofKOe+4u(MzO)g*KCq&99sGS3%sB8Am+4V5c}eP~#HUR&lO=R9^b~&l=4~e* zF@hQMWOPk^%{iw~CA3ORa=4^ThA$ULM$9HV`?0K?+nFkTBm8{4)afkg>Az1Na90Fe zeuksBXY|^dJmOKVNNa)c(-^v6_xa(GRnqy1=qL?stpoJ9<`ZM#Y(>}-Kf4kjOpN5& zaQ}M4^NIj|<8u}pxqdp^L7$Z7K~Amdll&y~M&Zw40rEO|oX%9_wSQBaq8?U0XbuIW zDw?wRBKgPP8P*J0d_SGb`g=uQFAn{JU-BRU_>(cYKt#vE4&AV)5x``&q5xkunaf`H zM8di6S+JtrHeCt-PL}+T%(+agUZqJl*hpN2g*^WL0$!#jX?wOdym#etzw2JT{enrN zmagvJd}H-n+#86g`lQ35gh+>8s?GTQ`CCW3#w>oiEnFay1{XNc2m=0tZmz{)NjO2a z)_G$TxT$+UKQ;riu>^oBWePC2l7hnTKkfrzVp)zqzl0*qngVo|2E&V7Qf(-yw>uA= zzJ`@-hGu*rGmQHb{xC55bc6?YceZv5dQ+dXjRKS(&;dgws8yuF1i2Us%gn$Jz75Wk zF>eA~+^5h&E8e}2@HbOv>PW>{=q4gJF;OD`Z z#s>FD*l8aBd-`K35wjnv$!{to5D=yhA(6<2I` zFDpAN5$9oPYJ6fMv`kORC1_MYik71T4o1Lck_Di}>JHFeP%55L@xJ;g4saJhIMU3f zUzwFKk0)eYc|!Q z_^xHkA!=*1)O^5dSmZ%pH{kVAVIa-3``4I%G0WX zEzwsAJXf}P{*@lgDm&DHnwYM|;pw5(_T66)? z%T0z zR~VaA@`8~b{sOSqv`5AHZbqinVUou|qUSq~r#CVMqF|&lOZh5qo`JPJEiFwhHWz8F z_jvg-C;!ge*qBh(8*Nz3=e<)Gu}8;f;i zkp62s0_V2SiPE;nbNjd#E%4jCbcLpa+$C*08AzxD2QsV-b3BB+`Z?4v$t4c(nAZ&{ z)C@5{mkqJayAhDMPBa8WZl3$3uA40^giFPI=zF!7!AJozFNb|{AN-zl3irFYp+!ZrG^ z$bpEG$FgxKY^Uh?nR?*?KOkrPm)JI-f5r3PBd7O2xtA?Y3Vjv7xZkrSfQxa)f1!+Ol!n|Eb>NEQiDqQm?eGQy6Ku2{y5PK-cfE8^2Rdum}+nU1#n`3^!z$z5AeE zr95~o4H*|>o!QT}VsZo~lngIp%Zi=>AD$PMqSt(ivRozg_4Z7y`Yi`KRe|7&{Y5DD zDKs21fqHvXE)q}aingxw_ga*&T+1r9vHC} z03*W^b*lH-1I6bz$-)AE6PLD7IYa1J7)!5 zc?&TyJHUvGx{rGPwb=%zdoFamN0^0F@njndKBoD!1fCZL&qGPw-6UTq%5_K_D-j#m z+y)S8#$F=F*Z(=F29Ghks>xGoZ!v!nv-i#f6h5-#7XY7p9sRU*RFigpYVf7&$+X`$ zwJ*Simy2uEAM|*GTXk5b5V*%sbiI)D%b1M>${NOMBKqkYAHqhf8r2brx%L-|OCZ>A{5n)w*J*MRN9@C6K{#TG z1A^t-7e7$`zW1upnb0Pk_sGVs*yB;f>7Px+!EdITJ@X%U6 z*&~A)HkYHh*Q>RY2aIwG>+uSg3=y6^X@>+qUamvPVx~CIV3K@)bZPd>`rjE!ZC3qE z2IK!e;E!l{s$4X_b8rW!+wEKlp1E8#ykTZrGv@# z-KU7s9L^4&d#}Rm;6>3_{YuwDuwoXY9LAWQ2G#gub?H?$Gr|Bw4wM1~GYvLVonE{s zx+>XL%+vTU8d%=m(%Y38EuNyfWcV>;^KnJ?5g8ZsfJB`%tS1+X&+|@x9|OYuxlS3E--o4Mdf|K zht|f3FEpB9+UW~QRn26Eb~{fxjNz}N1{d6oHZc}?w_)^+)~&}r#o0zn4?R7iZ>8fP zKV}^2*sv{%TB^ZyzLA3ZZR&PK8YV#22N<$}EV^iQC0bYOiq)CB3I$338$^_u{#j{P zh}@omO;d~dT}|1-#1$XOTmYzk9T9LQDQ0$+0(uvjl6*3N8RfD)Cxv-e$ z9>22nV5|?xcq{^M47QgxeYjj83mS1ET~*3NN${flCN+mc zgsVqIf)KgOkG~*Yctpimq0#vpz&8X3Gl&dGhsfrEFrCo<+fKhSTT>1j$9%okhSGtLp_5BQbb!L+dAtqK{3~|v{GCr{k?}(E z7ecMCaO=Whf0~UkWBpoNi=*9GS?Ov4$)@k?S1TPBe*W2+8EslTI}k#$845X z?9`Y_2rf$9SqupkAdOltqX6A00M#Kfo`T4(C-==8maZD zZ$QV@C>YqDsfNR^<`xzw02!fAXliaQ*RIZQYcsIu)<~5ESPCYmev`{f!H%rwA@*~1 zrC1@Ol1UO>N#=&JGPl2G=uMh}J_aY8%(sqev&~017pAAB$7-@}Jhj_de-Yvg7r~y< zNSp2Ykr7UtIPxkrpyW>x0;N(54=L5)FqCm|sRhnhk;K8lVO7G?avjc24P^*5gI-Ha zoCIp2LJGJ!z@?aYOha&&O~2_E&~{4Ft;%Fpg(b2!D7I zI4{G(?jk-~oxy30((-9L)#7!hZ?e-i&sIck+(mj%>09xr;dJMpZekwWX-8ODFcSbW z1%(WO*j;Qbk+IG6J=*|M6rAZuGbWN7-x$q9P!Wa0u@!J(xxi9^n__Heh?Skasy{Lh z%Xct$^@#QpTBJ>j&u1_KL4u_9IhRLr_rP`nig%Jne!XvP6+%Gw77`rHev6lE2wEQS zY9KX!VAd2<*n_mM#*{=t#j`;&BPJpOsVJB>B0Fhy+1ArnDVB0vNniU@F(bP(FVrZ^ z;3pZ1DF2yTb4Yh_>Ep-bSW75}jBh*}tlX1kezTJ+q2D^T`zGCtKQiAcR6O7WU7)b7 zjbabiRr%%1hl>xlsa7eL@df(tOI&_RBmb72ad7T69%%HVq36qi5oh~tq-T`_5(8() zp7!BuUq4FT-m%Od`@d%HVUiL;mU&*;Anu+MU$-Xu?(#Y+r=Ehh?J0GSKQ*#CP{HRy zs*5bH-4gA#P+~^CrmTW01<7szL~*P7Brbh}>}$To`PFcZHH)rPnG)N^f=zJPT|f;e z+8Q+P*>ZLouE$uv;b3MkHhK&Jj|#VB>6Z;`w@`VV=54am-ZfHdZ+PKeV+a-p9^gl%$!!jG5kK zp~I!<&oVy~JT(e>ULgH*_y^fMe4men2A4>B{ljg~K$|T>F$5ygLMbsKXPeqJ1*jl7 zW8BbvaaN&;aMLZfPXWtnq-B|#KOqC7lVCu(8+YDg&_pAd#LWR925LPk)*YD0m?zib zP|nlL4#kyxqT+uz-n!8v^YdzZv=I5ZJ5Y=*{uVtIl16F9DnXYNd>kqw#Z0JAL;%Bl zX?zvBpB7##@qfJlrWBVoNo_mXn00FR$~65sPi2XNV2b+OlRaqERUGU5Q%8HCr|66s z=G41%&H9|a3T>G9d5~)&+5G{3d4<2p;LfE^x@9vV z?b57gM?X8qjluzocKQrVWIAl*O5c?PWG4GBK&4*|M#B2=g|&hFHntFYzn=P z9S0c9Z)StM80JCWi8jF*?r(HHBop`yhdbu==J53*pYC&*8u9mUW-ucAv0e-iO)z^@O5slK0VOcP)D!<a@-y-c-$J7XgpyOAzn{38%Mz=DqKkG#)zmf|8SEW}&(E^+rVf6s5#a*=Yp z)=ivriu(GKgrr~%G{rGbLEk9guPu0g+sf|YeSVTX0;q3%PwT~#)s&`~)`cVWkr>E) z;8Tx)=Kc&!vMKk#W8AA3(n|YO%}iLR(P9Fhe}uXhAR&KnBVFgTm}iUB)NfG)BCW46 z!i}}W=3BEf8%#)3h&G)V7Z!0?;VYpgZroV--1o08ewVX(ATd*q3k@*g(!cn=I~iE; z(FUIyG5tRMajTcY3+>Sf0eFY;3Ao-vFpA&QpdT-K*EZ;3!9=>iG}bxtS|0Kmk?M+I z)5g2Nm*!t7>6zsIHd(kKpZe~Uwo{UDzWAe5ql*+6_N3ctpExNlWS;*&*KP8g1K(9_ zY^O}+CT`NF85U%GW`Nn-Z?Sg+|Cf_WeKmW$>_?2=>uYq(*0tcq8~wlVjbA-f?^|EQ4pxF@e2*)7 zXM4u+&%3M}u&TLiaY}(n;YBLDv{nQjIEW74Nx389sKS!||M*?%)?{BAmMkf^DSU>* z&qR$F5b%6wrT_aVG4i8f8zYk6)g;ptevz4Jzu}}C`cGEzWFJ!uG*e}a8}%WJV8+F> zjqIA|;*z?4-k%p7c?-M~_{pv`EqY=RjvU#L*ujr;(eZ9}?EJrnW-$Oa;$EA3P9d|T z;X0NCfV`_0bi(Ku4)}iKG>C6jb}vP2%#IucEE7imtMk?|cNjXY`F?SK$Gx3yQsbhr z{BWl1XVYsmAW7ix1X1M?TWVU`c`v13G%cUouAY*TQo2%t>~A<84Tryb*ABqdw!ODE z%n}t9H9S0QVeqF2M5#TS4jg9=bxb0>S0rV!q=^*gMh>L#^_DR)7{!R^`Y?%R6adRJo6(arq z*#w?vZrZB?QAA?I+l7Io;(PW533s3OBDp1!vq^Nf?dhlBzh!Ithl&9AeLD!FaBAL$ zc)G?a?(N$f2Th>j!zsRGeix<#S8$AgF1p#0eC=8rcxC#rk^$mumq*fb&vPN=(seA6 zl%EKqsp(LG7VNF5Uy#5Zj>n{&MqA(#A>D8)tpgfqInP~(U5O^Fx z4#q@B{|ATlX0}(|nBu-JdaRLyHo0mCKozW`y0iTgsx$)>TGowvrE9qN3DOuov^H%f z4R25Ri2l8$Urz}K@>Sw>?C==6rAIg)C-v9*ea&)(QxkfuQ{PpRxf}Jc5iCUg$a6(u z+2{f8Km9Cx@Zpp^{PqU!g;6&(IE)DDFw%em$9v2Zku1Ikb&NE~vv9`q`l#HGtC>|4 z2hN|Tid$M(NX0(Z&|3LsluLSlMeB@c|M_jEF?+d4KZ|;!=TkdD7gAF@o!cXv5y;a` zWUgdaZoAxP^kSgbf?IIa<<%?r#R^_y?9e2@!zkdSX9%V5^r70DXHVdicufrvTJnK= z%hA@906+gGzLIy4^$YZ`%gLje@45z(z6l%V$hVmYIqDJbfRXMM?}xcg{_*M z9M_K5)2{~jzC19NTAvZicc4iT^!N)+TJjXQ^!ykUQopn)%E-h>(;}#1q%%BLQ{Z%y zH@G7BUp--i$XQugxp70lnBYxn@IQ9XK-JVw`mFX=Ff7hb)CwFM4|9JuFiW&92 zoxuY9a&Xd0CiVljU8*##2~mcCoBj8XqOcISg84(AmZbHZx66R7kjI?duu$!s)?sD z58ZvvH+z%@F8dr$QYWqczrxNunyN2+_=m(bUnE23GG(44<28$f%(F6wOc~0QE6EsF zrVLl+lnfCicX9#zda@Y0C+=Nom_p<+;kpO21SPVO-U^By#={|?i_H%{jI z@Lg59e>UL5>LBO;X^}9bDG5TQ@wxq|t_KkGD$i2&cp2;vaL|Ci0{5##Cxe8Iqp8+E zOBGeh^q;rerkYC9-(g&jk?Nz;qjmlkbs?uo>0o#PtSHxD&$P%})=-`;CT$!R zlD#dR@>!mTO2?Y~4nKwwbzzcGBSYP^QuMiB4Iy8R>PjyE3H^<>ti8yTc(bj5{=HJ% z_LG}XpLux6nBsNFFP<~lw=`1z^^Q$ZM+vQ)QE^X?BSotjrsx}`w#(B33ONgIVvRnL zb2sbsmTVBDbzEDt*eVNmK$zrcj_`Qmu@qzn-V1Jvt!GGT?l3|GE@+o2)NqXu% zYcMD8>g6`Gep24o>dX0%%m4id(LSUe-3sBlu_iIN5R%i5Ayp*9e_7`16HTJ|Hj+jlos2`47Ex zp5BWIoU_1tlORhitmJR^dnc z-nXIsNM+t2IRr7~kBL@1!IpQiAvLn+Kq_^>&u+VA^_4ua?P+Hy$($212?;zeRf9ir z{t6`A_&Gb;u*~`HI98kjQFrO#!s5~xMFtYHjRdE3xw3E@{{jdL4IM|);%ubI%!yhG z=eT6{Ov9HpOG;X)CZ2}IFRNG7ikD}1trBPvo?9++A5pWNd9Nf_{_T%1ALObz6sv}a zhJP{C5%_!5jv%+0Zl*q)G+5U{6KJ%ztFgNxvB}RLxCS=2oW%pKhdwV%#_RTO=8VN- zg#o(??i+>Q{GzV^+-Fa$B|#cA#x&lV1@svBDe$7EHQ}nU&HXd+Ay#uya+7uv#IEP# zU*S={^5_@4fCYaLXF7kX@x|;vjdhkCElmZ1%*@5!DCD}F359cICL!jh6Gd%Zg;Z*f z+Wwu@R|;E?58ql#P}-xB=ofdDQ2sH`>V@8`Fn$-ebf<3+&0CnPO(0jqi;yB{Y7+|H zpZQCMqTZ~#>RsG~t%K0f-`{2016?sJWC#z{m$sp#@{(#28CRto7yv()wF?#~a#gLX zeh>ur<_d6Z3vuF9h`QdFHHLzEvkZ0_S6@n_!Dl^cPwxwseQevUj@Tz(*`~5*K%$*` zPGL(~S=usL83m8uI{_#M}9rl5_5%>zifk4 zo#o6ZkMcc#lTN9m7RYkVX&n9$C-fU?4+^Y5>K`i)!+hb{pr9bPITZ0TO;z;x$?cb>Y+!!gTR*aoI}dqm|6=n-71c&;Iq{miMtM8#qsqyInkblET5Zr<~99cr&49GF9ARkC3-DeVOiEsl}n z&eq4)xD$DPykl*~WJ;-LN<|xHceduYzq`_Y?}}03q1fc5$9nyyrE_IJK3R^R&NFcy z2u60q?uw&Q*4%YC4h|JR%&Y6`@gSB3(s9JFZ$^|x6C+b${8fv=h7<7nEuUQ|M!bC)(@?HrTbmJ zNR?3`mgoun`I6)aQECm8Lh`tFW%yzPf&V`FzlU3VmX6)yj++yg16+?-8XTymPPv-Y z)=g@KUHkG)?aCKdDayK~b2|7F&ms|Y+Kb!IX5M^vDx(P^*TK`+t6qypBX4#JjCh7m z@vf$p9}gSKJf0`oS+-X+@U9|Q`pQF5rHj5v3uEB|y!vi;@3Spf#hR2UxcHxo7B|$= z(94`k&Y%DXKu;^&8w{TP@WeE4obLpN~P?HlL7%jwRQ zV)zLsU0t?Jr0r$B?>f`!9)4dr2Q zJ&74%#n4+N7mTl1KPfO@wR%!uvTBu_V&Z*27b#}+MYjWX2t~I9C@zK)Wbj!6q~|Gp z@BzC8+C(v{XHHPVWb@?4Xo)@)BGIdCqIpY-ig<*DJt1WP&;%>gM?(#@Yn`{mBW786 ze*4AwF9K2G7Rk`gyE-DE9Z<6>hu266Q4DR$4>=#26}x>dtSPpI!_J<0-TyZi%eud5 zYT|ZF#l*nP*=mcSis#h^{S~s+2HhS(#IMGZOb5Jzk_@_qa9OEBm*I=E<67eGa^yPV z?zk77s3I9D+~_I!-{EbuEy2^xf$k0tT)bDIiirtyrQp6=l?MP1A_+sq+KDLMb$|`P z+y~FdVeqgHPiSKwKfdYdxnuwir$Yd0Qco%T%v~?esa+ZW^ud7*8$mfWwD3#l1XZ)0 z)@eezrf{(R$my5ILz^<7#Y38HzN(w$6GjIPE8B1-Tg{%YhW3@m7V#w9TVY`xS=UJj z3nd)72M#)wE?=oEo}8xX_u9frCh7D_(mWbrz`$pN?(zzPe=!|+`z`55z^yxxT5w_| zA6C*!%z5$wi*!9-3sx{;IAc39Vtgwg-1 zkWD|c7t)OX$c<^0qT+WGPBgI6uySJ|l~#r5Yl7Td*O5_lk?tg$P^oXz`G@xz=Y<=v=wdIC zOKcdWa|cO#%GgCpUK}-gFl4uAPWSfAw_XzNdD4!CGQ1FNcpKI8-0P95pO3cYn7?93 z{)yD&1Ldwrtc(aczfor_q=gvMv_K6f|T;{ zy>#)Xm6UQ_KMhmcPED@;1*XDr+y23j;7wMxM>e|KsprEA=oe0@Te-g<8@qhR8EV}$rEUP64E_v}sS?N% zD+am&ONb{2h60-gW(Gw+B z9X@2}gVV;HCtWSpolcU5xw4*+F2s#O93~RX!ub9eHHZU2z)8~wl(_AX8_gT|z7-Cp zMMa+}S&SaA#o#a60>*^_1D+Ka%b@F=JanW)kfQpyn-c_xiKTKVrh^Bpf^{> z6VWcURzx$~rC43Au&)I-e=ZZ+T0dPQ3MC;gtl0~|X@}Q%6#&_gw+08URe9@A&dZS< zj_fRMS|IDIhUnnZ*^(#C&AX62##r)(f#&zgFu$Gy6ixd0JQ+6Ev(?npG%*>W&5H}( z*P<@}P&wi;#ajP&_m=XIV}#F;TRmWsQa(@3Uf2DA(nSmd^_ooJ_xHS-ca-6BF)Vz} zfQ;P)tP!p$PF!mWNa=B}ajzPwBc`rRP|Csewn05AOADHE8c1xwu>dW^ZiMiT=9oczXI-50W)A zSOPgY^B+DG4dP||I6S-op}(f;M`UaD0OGc;x3{`7(|N=LoRw`TQ2&W|l7*wAF-kFf z(_?x-D`;`+l;6vkdSeP}(UbWXC*F+Nz2NPbb98h}m0;qOg^(o-2`c-z1|SO9XvhuE zt)L2rSOzJCin(|ZY`I2=2Cei!R z$JDOQ0~NcJt+T{Y)}-oSVp8ij*N(&COdjdjM_8r`g=3?R_UC$&PZ3EzxD|A4bWvln zPU}OmIr8r(cVflC_4zK~cpi_R4bnDcMv(~^7XZwb4Y4;$`@}PVKb@12`NMs*(+f9l zsE)*n>!z#je2yhbP=Nr0T=l@)w?YyUEG>MVP+A+`>BI^#VK9T*av!Zct^pTx02q!z z8b@?3PlWO_=T5K5=NLjruN-G#Ztf|Y3xELKjbztPx!U5b_@Wre}WbTJ`iAoyv`7JAn-S$?%dc z4_Su;>wLASL$G_}Rb47NcD5!Q9Y=I_ys>g}a?IQ>AL`oQ%bnKQ;c}K_y>_q-iZO~<4U*OS4S?M%Z@fAN2>Q_5x9FCW z%hmv9`uh5UV0t)CFS~c48Abq1#3uiRH-H>+D2HB$;$vc;6yEwxIrIni5MUr*0Zm5N zC!3Q`7w_G@-*=Ux*B&m63;*d_qm`(bG4MBl?Tb69jGEiqt3aTZ#UYeL=ET(EfWjOH zpl;RH^%%$3z&vMyxEAb{T1zb@P~olr!~$%4+34aA%b@ECg_Rc=M@M+CXW`dN`1GMQ z%K(q_f(s3B|K@1n4F$h#O{7yO3-F#mz04VHnFZDv+K5#k!bdTRdDknE0G8q>I-~JRb3Y`wz%J;+|@U z|6e#8Do(&YUIQQfix;d-R|wE=ZbX?@j(dTpmzNE!j=6H)T(>qfV8$ScuYZ@T9aMs| z=-IQ41i=CT7o!gU6jJg+B4)4O@lYDJdcdwi$JGMGeb1Isn*oa(g>+6aR9VT$1Wq-0 z;^{9 z0|dJT^;uBt-CO3grY;N<(Hl@}ne60bUZ6o}^B5_HWC%b3 zOqe_1q%?m*qNKNz97e)p*w@zwtTiA--FHChfU>7kXNkd^{C^rKOzHD +RC Circuit · ModelingToolkitStandardLibrary.jl

RC Circuit Model

This tutorial is a simplified version of the RC circuit tutorial in the ModelingToolkit.jl documentation. In that tutorial, the full RC circuit is built from scratch. Here, we will use the components of the Electrical model in the ModelingToolkit Standard Library to simply connect pre-made components and simulate the model.

using ModelingToolkit, OrdinaryDiffEq, Plots
+using ModelingToolkitStandardLibrary.Electrical
+using ModelingToolkitStandardLibrary.Blocks: Constant
+using ModelingToolkit: t_nounits as t
+
+R = 1.0
+C = 1.0
+V = 1.0
+@named resistor = Resistor(R = R)
+@named capacitor = Capacitor(C = C, v = 0.0)
+@named source = Voltage()
+@named constant = Constant(k = V)
+@named ground = Ground()
+
+rc_eqs = [connect(constant.output, source.V)
+          connect(source.p, resistor.p)
+          connect(resistor.n, capacitor.p)
+          connect(capacitor.n, source.n, ground.g)]
+
+@named rc_model = ODESystem(rc_eqs, t,
+    systems = [resistor, capacitor, constant, source, ground])
+sys = structural_simplify(rc_model)
+prob = ODEProblem(sys, Pair[], (0, 10.0))
+sol = solve(prob, Tsit5())
+plot(sol, idxs = [capacitor.v, resistor.i],
+    title = "RC Circuit Demonstration",
+    labels = ["Capacitor Voltage" "Resistor Current"])
+savefig("plot.png");

diff --git a/previews/PR273/tutorials/thermal_model/index.html b/previews/PR273/tutorials/thermal_model/index.html new file mode 100644 index 000000000..45563eb93 --- /dev/null +++ b/previews/PR273/tutorials/thermal_model/index.html @@ -0,0 +1,31 @@ + +Thermal Conduction Model · ModelingToolkitStandardLibrary.jl

Heat Conduction Model

This example demonstrates the thermal response of two masses connected by a conducting element. The two masses have the same heat capacity but different initial temperatures (T1=100 [°C], T2=0 [°C]). The mass with the higher temperature will cool off, while the mass with the lower temperature heats up. They will each asymptotically approach the calculated temperature TfinalK that results from dividing the total initial energy in the system by the sum of the heat capacities of each element.

using ModelingToolkitStandardLibrary.Thermal, ModelingToolkit, OrdinaryDiffEq, Plots
+using ModelingToolkit: t_nounits as t
+
+C1 = 15
+C2 = 15
+@named mass1 = HeatCapacitor(C = C1, T = 373.15)
+@named mass2 = HeatCapacitor(C = C2, T = 273.15)
+@named conduction = ThermalConductor(G = 10)
+@named Tsensor1 = TemperatureSensor()
+@named Tsensor2 = TemperatureSensor()
+
+connections = [
+    connect(mass1.port, conduction.port_a),
+    connect(conduction.port_b, mass2.port),
+    connect(mass1.port, Tsensor1.port),
+    connect(mass2.port, Tsensor2.port)
+]
+
+@named model = ODESystem(connections, t,
+    systems = [mass1, mass2, conduction, Tsensor1, Tsensor2])
+sys = structural_simplify(model)
+prob = ODEProblem(sys, Pair[], (0, 5.0))
+sol = solve(prob, Tsit5())
+
+T_final_K = sol[(mass1.T * C1 + mass2.T * C2) / (C1 + C2)]
+
+plot(title = "Thermal Conduction Demonstration")
+plot!(sol, idxs = [mass1.T, mass2.T], labels = ["Mass 1 Temperature" "Mass 2 Temperature"])
+plot!(sol.t, T_final_K, label = "Steady-State Temperature")
+savefig("thermal_plot.png");

Plot of Temperatures

diff --git a/previews/PR273/tutorials/thermal_plot.png b/previews/PR273/tutorials/thermal_plot.png new file mode 100644 index 0000000000000000000000000000000000000000..58f1e9d272562fa18e06139dca2938ceaac00d7d GIT binary patch literal 28500 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 QFuEa1cvW1UyxG(L1Lf+OX8-^I literal 0 HcmV?d00001