From 97911d7c6d604f1fd1bc90b1646f22808b709503 Mon Sep 17 00:00:00 2001 From: Thomas Wutzler Date: Thu, 29 May 2025 09:17:34 +0200 Subject: [PATCH 01/21] inspect (create figures) of MMDouble example --- dev/Project.toml | 3 + dev/doubleMM.jl | 370 ++++++++++++++++++++++++++++--------- src/DoubleMM/f_doubleMM.jl | 22 +++ 3 files changed, 303 insertions(+), 92 deletions(-) diff --git a/dev/Project.toml b/dev/Project.toml index 89fb121..8cdb38c 100644 --- a/dev/Project.toml +++ b/dev/Project.toml @@ -1,7 +1,9 @@ [deps] Bijectors = "76274a88-744f-5084-9051-94815aaf08c4" CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" +CategoricalArrays = "324d7699-5711-5eae-9e2f-1d82baa6b597" ChainRulesTestUtils = "cdddcdb0-9152-4a09-a978-84456f9df70a" +ColorBrewer = "a2cac450-b92f-5266-8821-25eda20663c8" ComponentArrays = "b0b7db55-cfe3-40fc-9ded-d10e2dbeff66" DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" DistributionFits = "45214091-1ed4-4409-9bcf-fdb48a05e921" @@ -10,6 +12,7 @@ Flux = "587475ba-b771-5e3f-ad9e-33799f191a9c" GPUArraysCore = "46192b85-c4d5-4398-a991-12ede77f4527" HybridVariationalInference = "a108c475-a4e2-4021-9a84-cfa7df242f64" JLD2 = "033835bb-8acc-5ee8-8aae-3f567f8a3819" +LaTeXStrings = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" MCMCChains = "c7f686f2-ff18-58e9-bc7b-31028e88f75d" MLDataDevices = "7e8f7934-dd98-4c1a-8fe8-92b47a384d40" MLUtils = "f1d291b0-491e-4a28-83b9-f70985020b54" diff --git a/dev/doubleMM.jl b/dev/doubleMM.jl index 3a9455b..28dc78f 100644 --- a/dev/doubleMM.jl +++ b/dev/doubleMM.jl @@ -1,4 +1,4 @@ -using Test +using Test # Pkg.activate("dev"); cd("dev") using HybridVariationalInference using HybridVariationalInference: HybridVariationalInference as HVI using StableRNGs @@ -21,7 +21,9 @@ scenario = Val((:use_Flux, :use_gpu, :omit_r0, :few_sites)) scenario = Val((:use_Flux, :use_gpu, :omit_r0, :few_sites, :covarK2)) scenario = Val((:use_Flux, :use_gpu, :omit_r0, :sites20, :covarK2)) scenario = Val((:use_Flux, :use_gpu, :omit_r0)) -scenario = Val((:use_Flux, :use_gpu, :omit_r0, :covarK2)) +scenario = Val((:use_Flux, :use_gpu, :omit_r0, :covarK2, :neglect_cor,)) +scenario = Val((:use_Flux, :use_gpu, :omit_r0, :covarK2, :K1global,)) +scenario = Val((:use_Flux, :use_gpu, :omit_r0, :covarK2, )) # prob = DoubleMM.DoubleMMCase() gdev = :use_gpu ∈ HVI._val_value(scenario) ? gpu_device() : identity @@ -42,6 +44,7 @@ train_dataloader = MLUtils.DataLoader( # assign the train_loader, otherwise it eatch time creates another version of synthetic data prob0 = HVI.update(prob0_; train_dataloader); #tmp = HVI.get_hybridproblem_ϕunc(prob0; scenario) +#prob0.covar #------- pointwise hybrid model fit solver_point = HybridPointSolver(; alg = OptimizationOptimisers.Adam(0.01)) @@ -146,36 +149,40 @@ using MLUtils import Zygote using Bijectors -probh = prob0o # start from point optimized to infer uncertainty -#probh = prob1o # start from point optimized to infer uncertainty -#probh = prob0 # start from no information -solver_post = HybridPosteriorSolver(; - alg = OptimizationOptimisers.Adam(0.01), n_MC = 3) -#solver_point = HybridPointSolver(; alg = Adam(), n_batch = 200) -n_batches_in_epoch = n_site ÷ n_batch -n_epoch = 40 -(; ϕ, θP, resopt, interpreters, probo) = solve(probh, solver_post; scenario, - rng, callback = callback_loss(n_batches_in_epoch * 5), - maxiters = n_batches_in_epoch * n_epoch, - θmean_quant = 0.05); -#probh.get_train_loader(;n_batch = 50, scenario) -# update the problem with optimized parameters, including uncertainty -prob1o = probo; -n_sample_pred = 400 -#(; θ, y) = predict_hvi(rng, prob1o, xM, xP; scenario, n_sample_pred); -(; y, θsP, θsMs) = predict_hvi(rng, prob1o; scenario, n_sample_pred, is_inferred=Val(true)); -(y1, θsP1, θsMs1) = (y, θsP, θsMs); - -() -> begin # prediction with fitted parameters (should be smaller than mean) - y_pred_global, y_pred2, θMs = gf(prob1o, xM, xP; scenario) - scatterplot(θMs_true[1, :], θMs[1, :]) - scatterplot(θMs_true[2, :], θMs[2, :]) - hcat(θP_true, θP) # all parameters overestimated - histogram(vec(y_pred2) - vec(y_true)) # predicts an unsymmytric distribution +solver_post = HybridPosteriorSolver(; alg = OptimizationOptimisers.Adam(0.01), n_MC = 3) + +() -> begin # priors on mean θ + get_hybridproblem_cor_ends(prob0o) + probh = prob0o # start from point optimized to infer uncertainty + #probh = prob1o # start from point optimized to infer uncertainty + #probh = prob0 # start from no information + #solver_point = HybridPointSolver(; alg = Adam(), n_batch = 200) + n_batches_in_epoch = n_site ÷ n_batch + n_epoch = 40 + (; ϕ, θP, resopt, interpreters, probo) = solve(probh, solver_post; scenario, + rng, callback = callback_loss(n_batches_in_epoch * 5), + maxiters = n_batches_in_epoch * n_epoch, + θmean_quant = 0.05); + #probh.get_train_loader(;n_batch = 50, scenario) + # update the problem with optimized parameters, including uncertainty + prob1o = probo; + n_sample_pred = 400 + #(; θ, y) = predict_hvi(rng, prob1o, xM, xP; scenario, n_sample_pred); + (; y, θsP, θsMs) = predict_hvi(rng, prob1o; scenario, n_sample_pred, is_inferred=Val(true)); + (y1, θsP1, θsMs1) = (y, θsP, θsMs); + + () -> begin # prediction with fitted parameters (should be smaller than mean) + y_pred_global, y_pred2, θMs = gf(prob1o, xM, xP; scenario) + scatterplot(θMs_true[1, :], θMs[1, :]) + scatterplot(θMs_true[2, :], θMs[2, :]) + hcat(θP_true, θP) # all parameters overestimated + histogram(vec(y_pred2) - vec(y_true)) # predicts an unsymmytric distribution + end end -#----------- continue HVI without strong prior on θmean -prob2 = HVI.update(prob1o); # copy +#----------- HVI without strong prior on θmean +#prob2 = HVI.update(prob1o); # copy +prob2 = HVI.update(prob0o); # copy function fstate_ϕunc(state) u = state.u |> cpu #Main.@infiltrate_main @@ -188,27 +195,55 @@ n_epoch = 100 HVI.update(solver_post, n_MC = 12); #HVI.update(solver_post, n_MC = 30); scenario, rng, maxiters = n_batches_in_epoch * n_epoch, - callback = HVI.callback_loss_fstate(n_batches_in_epoch*5, fstate_ϕunc)); + #callback = HVI.callback_loss_fstate(n_batches_in_epoch*5, fstate_ϕunc), + callback = callback_loss(n_batches_in_epoch * 5), + ); prob2o = probo; -() -> begin +() -> begin # store and reload optimized problem using JLD2 #fname_probos = "intermediate/probos_$(last(scenario)).jld2" fname_probos = "intermediate/probos800_$(last(HVI._val_value(scenario))).jld2" - JLD2.save(fname_probos, Dict("prob1o" => prob1o, "prob2o" => prob2o)) + #JLD2.save(fname_probos, Dict("prob1o" => prob1o, "prob2o" => prob2o)) + JLD2.save(fname_probos, Dict("prob2o" => prob2o)) tmp = JLD2.load(fname_probos) + prob2o = tmp["prob2o"] end -() -> begin # load the non-covar scenario +() -> begin # load the non-covar scenario, and neglect_cor scenario using JLD2 - #fname_probos = "intermediate/probos_$(last(_val_value(scenario))).jld2" - fname_probos = "intermediate/probos800_omit_r0.jld2" - tmp = JLD2.load(fname_probos) + scenario_indep = Val(Tuple(s for s in HVI._val_value(scenario) if s != :covarK2)) + fname_probos_indep = "intermediate/probos800_$(last(HVI._val_value(scenario_indep))).jld2" + #fname_probos = "intermediate/probos800_omit_r0.jld2" + tmp = JLD2.load(fname_probos_indep) + prob2o_indep = tmp["prob2o"] # test predicting correct obs-uncertainty of predictive posterior n_sample_pred = 400 - (; θ, y, entropy_ζ) = predict_hvi(rng, prob2o_indep, xM, xP; scenario, n_sample_pred); - (θ2_indep, y2_indep) = (θ, y) + (; y, θsP, θsMs) = predict_hvi(rng, prob2o_indep; scenario = scenario_indep, n_sample_pred); + (y2_indep, θsP2_indep, θsMs2_indep) = (y, θsP, θsMs); + #θsMs2_indep .- θsMs2 #(θ2_indep, y2_indep) = (θ2, y2) # workaround to use covarK2 when loading failed + # + scenario_neglect_cor = Val((HVI._val_value(scenario)..., :neglect_cor)) + fname_probos_neglect_cor = "intermediate/probos800_$(last(HVI._val_value(scenario_neglect_cor))).jld2" + #fname_probos = "intermediate/probos800_omit_r0.jld2" + tmp = JLD2.load(fname_probos_neglect_cor) + prob2o_neglect_cor = tmp["prob2o"] + # test predicting correct obs-uncertainty of predictive posterior + n_sample_pred = 400 + (; y, θsP, θsMs) = predict_hvi(rng, prob2o_neglect_cor; scenario = scenario_neglect_cor, n_sample_pred); + (y2_neglect_cor, θsP2_neglect_cor, θsMs2_neglect_cor) = (y, θsP, θsMs); + # + scenario_K1global = Val((HVI._val_value(scenario)..., :K1global)) + fname_probos_K1global = "intermediate/probos800_$(last(HVI._val_value(scenario_K1global))).jld2" + #fname_probos = "intermediate/probos800_omit_r0.jld2" + tmp = JLD2.load(fname_probos_K1global) + prob2o_K1global = tmp["prob2o"] + # test predicting correct obs-uncertainty of predictive posterior + n_sample_pred = 400 + (; y, θsP, θsMs) = predict_hvi(rng, prob2o_K1global; scenario = scenario_K1global, n_sample_pred); + (y2_K1global, θsP2_K1global, θsMs2_K1global) = (y, θsP, θsMs); + end () -> begin # otpimize using LUX @@ -447,7 +482,7 @@ f = get_hybridproblem_PBmodel(prob; scenario) #TODO specify with transPM # @show ζP # Main.@infiltrate_main # step to second time - y_pred = f(exp.(ζP), exp.(ζMs), xP)[2] # first is global + y_pred = f(exp.(ζP), exp.(ζMs)', xP)[2] # first is global for i_obs in 1:n_obs y[i_obs, :] ~ MvNormal(y_pred[i_obs, :], σ_o[i_obs]) # single value σ instead of variance end @@ -457,7 +492,7 @@ f = get_hybridproblem_PBmodel(prob; scenario) y_pred end -model = fsites(y_o; f, n_θP, n_θM, σ_o) +model = fsites(y_o; f = prob0.f_allsites, n_θP, n_θM, σ_o) # setup transformers and interpreters for forward prediction cor_ends = get_hybridproblem_cor_ends(prob; scenario) @@ -465,7 +500,7 @@ g, ϕg0 = get_hybridproblem_MLapplicator(prob; scenario) ϕunc0 = get_hybridproblem_ϕunc(prob; scenario) (; transP, transM) = get_hybridproblem_transforms(prob; scenario) hpints = HybridProblemInterpreters(prob; scenario) -(; ϕ, transPMs_batch, interpreters, get_transPMs, get_ca_int_PMs) = init_hybrid_params( +(; ϕ, transPMs_batch, interpreters, get_transPMs, get_ca_int_PMs) = HVI.init_hybrid_params( θP, θM, cor_ends, ϕg0, hpints; transP, transM, ϕunc0); intm_PMs_gen = get_int_PMs_site(hpints); @@ -496,6 +531,7 @@ end # takes ~ 25 minutes #n_sample_NUTS = 800 n_sample_NUTS = 2000 +#tmp = sample(model, NUTS(0,0.65), 2, initial_params = ζ0_true .+ 0.001) #chain = sample(model, NUTS(), n_sample_NUTS, initial_params = ζ0_true .+ 0.001) #n_sample_NUTS = 24 n_threads = 8 @@ -511,6 +547,15 @@ chain = sample(model, NUTS(), MCMCThreads(), ceil(Integer,n_sample_NUTS/n_thread n_sample_NUTS = size(Array(chain),1) end +() -> begin # load HMC sample for K1global scenario + using JLD2 + fname_K1global = "intermediate/doubleMM_chain_zeta_K1global.jld2" + chain_K1global = load(fname_K1global, "chain"; iotype = IOStream); + ζsP_hmc_K1global = Array(chain_K1global)[:,1:n_θP]' + ζsMst_hmc_K1global = reshape(Array(chain_K1global)[:,(n_θP+1) : end], n_sample_NUTS, n_site, n_θM) + ζsMs_hmc_K1global = permutedims(ζsMst_K1global, (2,3,1)) +end + #ζi = first(eachrow(Array(chain))) f_allsites = get_hybridproblem_PBmodel(prob0; scenario, use_all_sites = true) #ζs = mapreduce(ζi -> transposeMs(ζi, intm_PMs_gen, true), hcat, eachrow(Array(chain))); @@ -570,9 +615,22 @@ plt = scatterplot(θMs_true'[:,2], mean_θMs[:,2]); lineplot!(plt, 0, 1) #------------------ compare HVI vs HMC sample +# reload results from run without covars, see above () -> begin # compare against HVI sample #@usingany AlgebraOfGraphics, TwPrototypes, CairoMakie, DataFrames makie_config = ppt_MakieConfig() + + using ColorBrewer: ColorBrewer + # two same colors for hmc anc hvi , additional for further unspecified labels + cDark2 = cgrad(ColorBrewer.palette("Dark2",3),3,categorical=true) + #color_methods = vcat([k => col for (k, col) in zip([:hmc, :hvi], cDark2[1:2])], cDark2[3], Makie.wong_colors()[2:end]); + cpal0 = Makie.wong_colors() + color_methods = vcat([k => col for (k, col) in zip([:hmc, :hvi], cpal0[1:2])], cpal0[3:end]); + + function lower_lastdigits(sym::Symbol,n_digit=1) + s = string(sym) + latexstring(s[1:(end-n_digit)] * "_" * s[(end-n_digit+1):end]) + end function get_fig_size(cfg; width2height=golden_ratio, xfac=1.0) cfg = makie_config x_inch = first(cfg.size_inches) * xfac @@ -581,23 +639,35 @@ lineplot!(plt, 0, 1) end ζsP_hvi = log.(θsP2) - ζsP_hvi_indep = log.(θsP2) # TODO rerun and reload replace θsP2 + ζsP_hvi_indep = log.(θsP2_indep) + ζsP_hvi_neglect_cor = log.(θsP2_neglect_cor) + ζsP_hvi_K1global = log.(θsP2_K1global) ζsP_hmc = log.(θsP_hmc) ζsMs_hvi = log.(θsMs2) - ζsMs_hvi_indep = log.(θsMs2) # TODO rerun and reload replace θsMs2 + ζsMs_hvi_indep = log.(θsMs2_indep) + ζsMs_hvi_neglect_cor = log.(θsMs2_neglect_cor) + ζsMs_hvi_K1global = log.(θsMs2_K1global) ζsMs_hmc = log.(θsMs_hmc) # int_pms = interpreters.PMs # par_pos = int_pms(1:length(int_pms)) - i_sites = 1:10 + #i_sites = 1:10 + i_sites = 1:5 #i_sites = 6:10 #i_sites = 11:15 - scen = vcat(fill(:hvi,size(ζsP_hvi,2)),fill(:hmc,size(ζsP_hmc,2)),fill(:hvi_indep,size(ζsP_hvi_indep,2))) + scen = vcat( + fill(:hvi,size(ζsP_hvi,2)), + fill(:hmc,size(ζsP_hmc,2)), + fill(:hvi_indep,size(ζsP_hvi_indep,2)), + fill(:neglect_cor,size(ζsP_hvi_neglect_cor,2)), + ) dfP = mapreduce(vcat, axes(θP_true,1)) do i_par #pos = par_pos.P[i_par] DataFrame( - value = vcat(ζsP_hvi[i_par, :], ζsP_hmc[i_par,:], ζsP_hvi_indep[i_par,:]), - variable = keys(θP_true)[i_par], - site = i_sites[1], + value = vcat( + ζsP_hvi[i_par, :], ζsP_hmc[i_par,:], + ζsP_hvi_indep[i_par,:], ζsP_hvi_neglect_cor[i_par,:]), + variable = lower_lastdigits.(keys(θP_true)[i_par]), + site = "site $(i_sites[1])", Method = scen ) end @@ -608,9 +678,10 @@ lineplot!(plt, 0, 1) value = vcat( ζsMs_hvi[i_site,i_par,:], ζsMs_hmc[i_site,i_par,:], - ζsMs_hvi_indep[i_site,i_par,:]), - variable = keys(θM)[i_par], - site = i_site, + ζsMs_hvi_indep[i_site,i_par,:], + ζsMs_hvi_neglect_cor[i_site,i_par,:],), + variable = lower_lastdigits.(keys(θM)[i_par]), + site = "site $(i_site)", Method = scen ) end @@ -620,8 +691,8 @@ lineplot!(plt, 0, 1) mapreduce(vcat, axes(θP,1)) do i_par DataFrame( value = ζP_true[i_par], - variable = keys(θP)[i_par], - site = i_sites[1], + variable = lower_lastdigits.(keys(θP)[i_par]), + site = "site $(i_sites[1])", Method = :true ) end, @@ -629,28 +700,39 @@ lineplot!(plt, 0, 1) mapreduce(vcat, axes(θM,1)) do i_par DataFrame( value = ζMs_true[i_par, i_site], - variable = keys(θM)[i_par], - site = i_site, + variable = lower_lastdigits.(keys(θM)[i_par]), + site = "site $(i_site)", Method = :true ) end end ) # vcat #cf90 = (x) -> quantile(x, [0.05,0.95]) - plt = (data(subset(df, :Method => ByRow(∈((:hvi,:hmc))))) * mapping(:value=> (x -> x ) => "", color=:Method) * AlgebraOfGraphics.density(datalimits=extrema) + - data(df_true) * mapping(:value) * visual(VLines; color=:blue, linestyle=:dash)) * - mapping(col=:variable => sorter(vcat(keys(θP)..., keys(θM)...)), row = (:site => nonnumeric)) - fig = Figure(size = get_fig_size(makie_config, xfac=1, width2height = 1/2)); - fg = draw!(fig, plt, facet=(; linkxaxes=:minimal, linkyaxes=:none,), axis=(xlabelvisible=false,)); - fig + plot_par_densities = (dfs) -> begin + plt = (data(dfs) * mapping(:value=> (x -> x ) => "", color=:Method) * AlgebraOfGraphics.density(datalimits=extrema) + + data(df_true) * mapping(:value => "") * visual(VLines; color=:blue, linestyle=:dash)) * + mapping(col=:variable => sorter(lower_lastdigits.(vcat(keys(θP)..., keys(θM)...))), + row = (:site => nonnumeric)) + #mapping(col=:variable, row = (:site => nonnumeric)) + #fig = Figure(size = get_fig_size(makie_config, xfac=1, width2height = 1/2)); # 10 sites + fig = Figure(size = get_fig_size(makie_config, xfac=1, width2height = 1)); + ffig = draw!(fig, plt, + facet=(; linkxaxes=:minimal, linkyaxes=:none,), + axis=(xlabelvisible=false,yticklabelsvisible=false), + scales(Color = (; palette = color_methods)), + ); + legend!(fig[length(i_sites),1], ffig, ; tellwidth=false, halign=:left, valign=:bottom , margin=(10, 10, 10, 10)) + fig + end + fig = plot_par_densities(subset(df, :Method => ByRow(∈((:hvi,:hmc))))) save("tmp.svg", fig) save_with_config("intermediate/compare_hmc_hvi_sites_$(last(HVI._val_value(scenario)))", fig; makie_config) - plt = (data(subset(df, :Method => ByRow(∈((:hvi, :hvi_indep))))) * mapping(:value=> (x -> x ) => "", color=:Method) * AlgebraOfGraphics.density(datalimits=extrema) + - data(df_true) * mapping(:value) * visual(VLines; color=:blue, linestyle=:dash)) * - mapping(col=:variable => sorter(vcat(keys(θP)..., keys(θM)...)), row = (:site => nonnumeric)) - fig = Figure(size = get_fig_size(makie_config, xfac=1, width2height = 1/2)); - fg = draw!(fig, plt, facet=(; linkxaxes=:minimal, linkyaxes=:none,), axis=(xlabelvisible=false,)); + fig = plot_par_densities(subset(df, :Method => ByRow(∈((:hmc,:neglect_cor))))) + save("tmp.svg", fig) + save_with_config("intermediate/compare_hmc_neglectcor_sites_$(last(HVI._val_value(scenario)))", fig; makie_config) + + fig = plot_par_densities(subset(df, :Method => ByRow(∈((:hvi,:hvi_indep))))) fig save("tmp.svg", fig) save_with_config("intermediate/compare_hvi_indep_sites_$(last(HVI._val_value(scenario)))", fig; makie_config) @@ -665,17 +747,19 @@ lineplot!(plt, 0, 1) vcat( DataFrame( value = y_hmc[i_obs,i_site,:], - site = i_site, + site = "site $(i_site)", Method = :hmc, variable = :y, i_obs = i_obs, + y_i = latexstring("y_$(i_obs)"), ), DataFrame( value = y_hvi[i_obs,i_site,:], - site = i_site, + site = "site $(i_site)", Method = :hvi, variable = :y, i_obs = i_obs, + y_i = latexstring("y_$(i_obs)"), ) )# vcat end @@ -685,54 +769,156 @@ lineplot!(plt, 0, 1) vcat( DataFrame( value = y_true[i_obs,i_site], - site = i_site, - Method = :truth, + site = "site $(i_site)", + Reference = :truth, variable = :y, i_obs = i_obs, + y_i = latexstring("y_$(i_obs)"), ), DataFrame( value = y_o[i_obs,i_site,:], - site = i_site, - Method = :obs, + site = "site $(i_site)", + Reference = :obs, variable = :y, i_obs = i_obs, + y_i = latexstring("y_$(i_obs)"), ) )# vcat end end + using CategoricalArrays + DataFrames.transform!(dfyt, :Reference => (x -> categorical(string.(x); ordered = true, levels = ["truth", "obs"])) => :Reference) # plt = (data(dfy) * mapping(color=:Method) * AlgebraOfGraphics.density(datalimits=extrema) + - data(dfyt) * mapping(color=:Method) * visual(VLines; linestyle=:dash)) * - #data(dfyt) * mapping(color=:Method, linestyle=:Method) * visual(VLines; linestyle=:dash)) * - mapping(:value=>"", col=:i_obs => nonnumeric, row = :site => nonnumeric) - - fig = Figure(size = get_fig_size(makie_config, xfac=1, width2height = 1/2)); - f = draw!(fig, plt, + data(dfyt) * mapping(color=:Reference => AlgebraOfGraphics.scale(:Reference)) * visual(VLines; linestyle=:dash)) * + #data(dfyt) * mapping(linestyle=:Reference => AlgebraOfGraphics.scale(:Reference)) * visual(VLines; linestyle=:dash)) * + #data(dfyt) * mapping(color=:Reference => AlgebraOfGraphics.scale(:Reference), + # linestyle= :Reference => AlgebraOfGraphics.scale(:Reference)) * visual(VLines)) * # bug? + mapping(:value=>"", col=:y_i, row = :site) + + #fig = Figure(size = get_fig_size(makie_config, xfac=1, width2height = 1/2)); + fig = Figure(size = get_fig_size(makie_config, xfac=1, width2height = 1)); + ffig = draw!(fig, plt, facet=(; linkxaxes=:minimal, linkyaxes=:none,), - axis=(xlabelvisible=false,yticklabelsvisible=false)); - legend!(fig[1,3], f, ; tellwidth=false, halign=:right, valign=:top) # , margin=(-10, -10, 10, 10) + axis=(xlabelvisible=false,yticklabelsvisible=false), + scales(Color = (; palette = color_methods)), + ); + #legend!(fig[1,3], f, ; tellwidth=false, halign=:right, valign=:top) # , margin=(-10, -10, 10, 10) + legend!(fig[1,4], ffig, ; tellwidth=true, halign=:right, valign=:top) # , margin=(-10, -10, 10, 10) fig save("tmp.svg", fig) - save_with_config("intermediate/compare_hmc_hvi_sites_y_$(last(scenario))", fig; makie_config) + save_with_config("intermediate/compare_hmc_hvi_sites_y_$(last(HVI._val_value(scenario)))", fig; makie_config) # hvi predicts y better, hmc fails for quite a few obs: 3,5,6 - # todo compare mean_predictions + # compare mean_predictions mean_y_hvi = map(mean, eachslice(y_hvi; dims = (1, 2))); + size(y_o) + histogram(vec(mean_y_hvi .- y_o)) +end - +#------------------------------------- correlations ----------------- +""" +Compute standard deviation and correlation for predicted parameters on unconstrained scale. + +## Arguments +_ζsP: n_P x n_pred matrix of draws of predicted cross-sites parameters +_ζsMs: n_site x n_M x n_pred of draws of predicted physical parameters + +returns sdP (n_P), sdMs (n_site x n_M), cor_PMs n_P + (n_M * length(i_sites)) square matrix +""" +function compute_sd_cor_PMs(_ζsP, _ζsMs; i_sites_inspect = [1,2,3]) + mP = mean(_ζsP; dims=2) + residP = _ζsP .- mP + sdP = vec(std(residP; dims=2)) + mMs = mean(_ζsMs; dims=3)[:,:,1] + residMs = _ζsMs .- mMs + sdMs = std(residMs; dims=3)[:,:,1] + residMst = permutedims(residMs[i_sites_inspect,:,:], (2,1,3)) # n_M x n_site x n_pred + residPMst = vcat(residP, + reshape(residMst, size(residMst,1)*size(residMst,2), size(residMst,3))) # n_P x n_pred + corPMs = cor(residPMst') + sdP, sdMs, corPMs +end + +function draw_cor_fig(cor, method; makie_config, par_names) + fig = Figure(size = get_fig_size(makie_config, xfac=0.8, width2height = 1.3)); + ax = Axis(fig[1,1], + xticklabelsvisible=false,yticklabelsvisible=true, + xticksvisible=false, yticksvisible=true, + yticks = (axes(par_names,1), par_names), + yreversed = true, + aspect = 1, + title = "Correlations in $method") + hm = heatmap!(ax, cor) + rowsize!(fig.layout, 1, Aspect(1, 1)) + Colorbar(fig[1,2], hm ; tellwidth=true, tellheight=false) + fig end () -> begin # inspect correlation of residuals - mean_ζ_hvi = map(mean, eachrow(CA.getdata(ζs_hvi))) - r_hvi = ζs_hvi .- mean_ζ_hvi - cor_hvi = cor(CA.getdata(r_hvi)') - mean_ζ_hmc = map(mean, eachrow(CA.getdata(ζs_hmc))) - r_hmc = ζs_hmc .- mean_ζ_hmc - cor_hmc = cor(CA.getdata(r_hmc)') + # get true + i_sites_inspect = [1,2,3] + sdP_hmc, sdMs_hmc, corPMs_hmc = compute_sd_cor_PMs(ζsP_hmc, ζsMs_hmc; i_sites_inspect) + sdP_hvi, sdMs_hvi, corPMs_hvi = compute_sd_cor_PMs(ζsP_hvi, ζsMs_hvi; i_sites_inspect) + sdP_hvi_indep, sdMs_hvi_indep, corPMs_hvi_indep = compute_sd_cor_PMs( + ζsP_hvi_indep, ζsMs_hvi_indep; i_sites_inspect) + sdP_hvi_neglect_cor, sdMs_hvi_neglect_cor, corPMs_hvi_neglect_cor = compute_sd_cor_PMs( + ζsP_hvi_neglect_cor, ζsMs_hvi_neglect_cor; i_sites_inspect) + sdP_hvi_K1global, sdMs_hvi_K1global, corPMs_hvi_K1global = compute_sd_cor_PMs( + ζsP_hvi_K1global, ζsMs_hvi_K1global; i_sites_inspect) + sdP_hmc_K1global, sdMs_hmc_K1global, corPMs_hmc_K1global = compute_sd_cor_PMs( + ζsP_hmc_K1global, ζsMs_hmc_K1global; i_sites_inspect) + # no correlations of K2(global) ML parameters in inversion? + par_names = vcat(["global $k" for k in keys(θP)], vec(["site $i $k" for k in keys(θM), i in i_sites_inspect])) + par_names_globalK1 = vcat(["global K1" for k in keys(θP)], vec(["site $i $k" for k in (:r1, :K2), i in i_sites_inspect])) + fig = draw_cor_fig(corPMs_hmc, "Hamiltonian Monte Carlo posterior"; makie_config, par_names) + save_with_config("intermediate/cor_hmc_$(last(HVI._val_value(scenario)))", fig; makie_config) + fig = draw_cor_fig(corPMs_hvi, "Hybrid Variational Inference posterior"; makie_config, par_names) + save_with_config("intermediate/cor_hvi_$(last(HVI._val_value(scenario)))", fig; makie_config) + fig = draw_cor_fig(corPMs_hvi_neglect_cor, "HVI neglecting block correlations"; makie_config, par_names) + save_with_config("intermediate/cor_hvi_neglect_cor_$(last(HVI._val_value(scenario)))", fig; makie_config) # - hcat(cor_hvi[:,1], cor_hmc[:,1]) - # positive correlations of K2(1) in θP with K1(3) in θMs + fig = draw_cor_fig(corPMs_hvi_K1global, "HVI K1 global K2 site-dependent"; makie_config, par_names = par_names_globalK1) + save_with_config("intermediate/cor_hvi_K1global_$(last(HVI._val_value(scenario)))", fig; makie_config) + fig = draw_cor_fig(corPMs_hmc_K1global, "HMC K1 global K2 site-dependent"; makie_config, par_names = par_names_globalK1) + save_with_config("intermediate/cor_hmc_K1global_$(last(HVI._val_value(scenario)))", fig; makie_config) + + + df_sd = reduce(vcat, map(axes(θM,1)) do i_par + vcat(DataFrame( + Method = :hmc, + par = lower_lastdigits.(keys(θM)[i_par]), + sd = sdMs_hmc[:,i_par], + value = ζMs_true'[:,i_par], + ), DataFrame( + Method = :hvi, + par = lower_lastdigits.(keys(θM)[i_par]), + sd = sdMs_hvi[:,i_par], + value = ζMs_true'[:,i_par], + ), DataFrame( + Method = :neglect_cor, + par = lower_lastdigits.(keys(θM)[i_par]), + sd = sdMs_hvi_neglect_cor[:,i_par], + value = ζMs_true'[:,i_par], + ),) + end) + plt = data(df_sd) * mapping(color=:Method, row=:par) * + mapping(:value=>"", :sd => "Predicted Standard Deviation") * visual(Scatter, alpha = 0.5) + + #fig = Figure(size = get_fig_size(makie_config, xfac=1, width2height = 1/2)); + fig = Figure(size = get_fig_size(makie_config, xfac=1, width2height = 1)); + ffig = draw!(fig, plt, scales(Color = (; palette = color_methods)); facet=(; linkxaxes=:none, linkyaxes=:none,)) + #legend!(fig[1,1], ffig, ;tellheight=false, tellwidth=false, halign=:right, valign=:top, margin=(10, 10, 10, 10)) + legend!(fig[1,1], ffig, ;tellheight=false, tellwidth=false, halign=:left, valign=:bottom, margin=(10, 10, 10, 10)) + fig + save_with_config("intermediate/compare_hmc_hvi_sdMs_$(last(HVI._val_value(scenario)))", fig; makie_config) + +end + +() -> begin # inspect marginal variance + + end diff --git a/src/DoubleMM/f_doubleMM.jl b/src/DoubleMM/f_doubleMM.jl index 01b58b2..2b5c549 100644 --- a/src/DoubleMM/f_doubleMM.jl +++ b/src/DoubleMM/f_doubleMM.jl @@ -5,6 +5,9 @@ const θM = CA.ComponentVector{Float32}(r1 = 0.5, K1 = 0.2) const θall = vcat(θP, θM) const θP_nor0 = θP[(:K2,)] +θP_nor0_K1 = θM[(:K1,)] +θM_nor0_K1 = vcat(θM[(:r1,)], θP[(:K2,)]) + const xP_S1 = Float32[0.5, 0.5, 0.5, 0.5, 0.4, 0.3, 0.2, 0.1] const xP_S2 = Float32[1.0, 3.0, 4.0, 5.0, 5.0, 5.0, 5.0, 5.0] @@ -87,6 +90,10 @@ function HVI.get_hybridproblem_par_templates( ::DoubleMMCase; scenario::Val{scen}) where {scen} if (:omit_r0 ∈ scen) #return ((; θP = θP_nor0, θM, θf = θP[(:K2r)])) + if (:K1global ∈ scen) + # scenario of K1 global but K2 site-dependent to inspect correlations^ + return ((; θP = θP_nor0_K1, θM = θM_nor0_K1)) + end return ((; θP = θP_nor0, θM)) end #(; θP, θM, θf = eltype(θP)[]) @@ -135,6 +142,9 @@ end function HVI.get_hybridproblem_pbmpar_covars( ::DoubleMMCase; scenario::Val{scen}) where {scen} if (:covarK2 ∈ scen) + if (:K1global ∈ scen) + return (:K1,) + end return (:K2,) end () @@ -292,3 +302,15 @@ function HVI.gen_hybridproblem_synthetic(rng::AbstractRNG, prob::DoubleMMCase; ) end +function HVI.get_hybridproblem_cor_ends(prob::DoubleMMCase; scenario::Val{scen}) where {scen} + pt = get_hybridproblem_par_templates(prob; scenario) + if (:neglect_cor ∈ scen) + # one block for each parameter, i.e. neglect all correlations + (P = 1:length(pt.θP), M = 1:length(pt.θM)) + else + # single big blocks + (P = [length(pt.θP)], M = [length(pt.θM)]) + end +end + + From f82e7a5c38c2ba17a9c1a17260eebff845e53997 Mon Sep 17 00:00:00 2001 From: Thomas Wutzler Date: Fri, 13 Jun 2025 13:55:45 +0200 Subject: [PATCH 02/21] Start of README and background docu --- README.md | 73 +++++++++-- docs/make.jl | 3 + docs/src/autodocs.md | 9 ++ docs/src/background.md | 167 ++++++++++++++++++++++++++ docs/src/hybrid_variational_setup.png | Bin 0 -> 16611 bytes docs/src/index.md | 3 - docs/src/problem.md | 20 +++ docs/src/worked_example.md | 6 + 8 files changed, 271 insertions(+), 10 deletions(-) create mode 100644 docs/src/autodocs.md create mode 100644 docs/src/background.md create mode 100644 docs/src/hybrid_variational_setup.png create mode 100644 docs/src/problem.md create mode 100644 docs/src/worked_example.md diff --git a/README.md b/README.md index e336dc4..0e5dfd8 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# HybridVariationalInference +# HybridVariationalInference HVI [![Stable](https://img.shields.io/badge/docs-stable-blue.svg)](https://EarthyScience.github.io/HybridVariationalInference.jl/stable/) [![Dev](https://img.shields.io/badge/docs-dev-blue.svg)](https://EarthyScience.github.io/HybridVariationalInference.jl/dev/) @@ -6,11 +6,70 @@ [![Coverage](https://codecov.io/gh/EarthyScience/HybridVariationalInference.jl/branch/main/graph/badge.svg)](https://codecov.io/gh/EarthyScience/HybridVariationalInference.jl) [![Aqua](https://raw.githubusercontent.com/JuliaTesting/Aqua.jl/master/badge.svg)](https://github.com/JuliaTesting/Aqua.jl) -Extending Variational Inference (VI), an approximate bayesian inversion method, -to hybrid models, i.e. models that combine mechanistic and machine-learning parts. +Estimating uncertainty in hybrid models, +i.e. models that combine mechanistic and machine-learning parts, +by extending Variational Inference (VI), an approximate bayesian inversion method. + +## Problem + +Consider the case of Parameter learning, a special case of hybrid models, +where a machine learning model, $g_{\phi_g}$, uses known covariates $x_{Mi}$ at site $i$, +to predict a subset of the parameters, $\theta$ of the process based model, $f$. + +We are interested in both, +- the uncertainty of hybrid model predictions, $ŷ$ (predictive posterior), and +- the uncertainty of process-model parameters $\theta$, including their correlations + (posterior) + +For example we have soil organic matter process-model that predicts carbon stocks for +different sites. We need to parameterize the unknown carbon use efficiency (CUE) of the soil +microbial community that differs by site, but is hypothesized to correlate with climate variables +and pedogenic factors, such as clay content. +We apply a machine learnign model to estimate CUE and fit it end-to-end with other +parameters of the process-model to observed carbon stocks. +In addtion to the predicted CUE, we are interested in the uncertainty of CUE and its correlation with other parameters, such a the capacity of the soil minerals to bind carbon. +I.e. we are interetes in the entire posterior probability distribution of the model parameters. + +To understand the background of HVI, refer to the [documentation]((https://EarthyScience.github.io/HybridVariationalInference.jl/dev/)). + +## Usage +![image info](./docs/src/hybrid_variational_setup.png) + +In order to apply HVI, the user has to construct a `HybridProblem` object by specifying +- the machine learning model, $g$ +- covariates $X_{Mi}$ for each site, $i$ +- the names of parameters that differs across sites, $\theta_M$, and global parameters + that are the same across sites, $\theta_P$ + - optionally, sub-blocks in the within-site correlation structure of the parameters + - optionally, which global parameters should be provided to $g$ as additional covariates, + to account for correlations between global and site parameters +- the parameter transformations from unconstrained scale to the scale relevant to the process models, $\theta = T(\zeta)$, e.g. for strictly positive parameters specify `exp`. +- the process-model, $f$ +- drivers of the process-model $X_{Pi}$ at each site, $i$ +- the likelihood function of the observations, given the model predictions, $p(y|ŷ, \theta)$ + +Next this problem is passed to a `HybridPosteriorSolver` that fits an approximation +of the posterior. It returns a NamedTuple of +- `ϕ`: the fitted parameters, a ComponentVector with components + - the machine learning model parameters (usually weights), $\phi_g$ + - means of the global parameters, $\phi_P = \mu_{\zeta_P}$ at transformed + unconstrained scale + - additional parameters, $\phi_{unc}$ of the posterior, $q(\zeta)$, such as + coefficients that describe the scaling of variance with magnitude + and coefficients that parameterize the choleski-factor or the correlation matrix. +- `θP`: predicted means of the global parameters, $\theta_P$ +- `resopt`: the original result object of the optimizer (useful for debugging) + +TODO to get +- means of the site parameters for each site +- samples of posterior +- samples of predictive posterior +## Example +TODO + +see test/test_HybridProblem.jl + + + -The model inversion, infers parametric approximations of posterior density -of model parameters, by comparing model outputs to uncertain observations. At -the same time, a machine learning model is fit that predicts parameters of these -approximations by covariates. diff --git a/docs/make.jl b/docs/make.jl index 46caa1c..75cc599 100644 --- a/docs/make.jl +++ b/docs/make.jl @@ -14,6 +14,9 @@ makedocs(; ), pages=[ "Home" => "index.md", + "Problem" => "problem.md", + "Background" => "background.md", + "Example" => "worked_example.md", ], ) diff --git a/docs/src/autodocs.md b/docs/src/autodocs.md new file mode 100644 index 0000000..2520155 --- /dev/null +++ b/docs/src/autodocs.md @@ -0,0 +1,9 @@ +```@meta +CurrentModule = HybridVariationalInference +``` + +# Generated documentation + +```@autodocs +Modules = [HybridVariationalInference] +``` diff --git a/docs/src/background.md b/docs/src/background.md new file mode 100644 index 0000000..150d1da --- /dev/null +++ b/docs/src/background.md @@ -0,0 +1,167 @@ +# Background + +## Setup of the Problem +The hybrid variational inferecne, HVI, infers a parametric approximations of +the posterior density, $q(\theta|y)$, +by comparing model outputs to uncertain observations, $y$. +At the same time, the machine learning model, $g$, is fitted, +which predicts a subset, $\phi_M$ of the parameters of the approximation $q$. +In the case where it predicts the marginal means of process-model's +parameters, $\theta$, this corresponds to the same machine learning model, $g$, + as in parameter learning without consideration of uncertainty. + +HVI approximates the +posterior distribution of process-model parameters +as a transformation of a multivariate normally distributed variable $\zeta$: +$q(\theta) = T(q(\zeta))$, $q(\zeta) \sim \mathcal{N}(\mu, \Sigma)$. +This allows for efficient sampling, ensures a finite nonzero probability across +the entire real space, and, at the same, time provides sufficient flexibility. + +![image info](hybrid_variational_setup.png) + +The optimized parameters, $\phi = (\phi_g, \phi_P, \phi_q)$ are the same for each site. +This allows to apply minibatching, which does not require predicting the +full observation vector, $y$, during paramter fitting. + +In order to learn $\phi_g$, the user needs to provide a batch of $i \in \{1 \ldots n_{b}\}$ observation $y_i$, their uncertinaty, $y_{unc,i}$, covariates $x_{Mi}$ and drivers $x_{Pi}$ in each iteration of the optimization. Moreover, for each $i$, HVI needs to draw $n_{MC}$ samples parameters $\zeta_i$, transforms and runs the model to compute a prediction for $y_i$ and computes $\log p(y_i)$ to estimate the exptected value occuring in the ELBO (see next section). + +## Estimation using the ELBO + +In order to find the parameters of the approximation of the posterior, HVI +minizes the KL divergence between the approximation and the true posterior. +This is achieve by maximizing the evidence lower bound (ELBO). + +$$\mathcal{L}(\phi) = \mathbb{E}_{q(\theta)} \left[\log p(y,\theta) \right] - \mathbb{E}_{q(\theta)} \left[\log q(\theta) \right]$$ + +The second term is the entropy of the approximating distribution, which has a closed form +for a multivariate normal distribution. +The expectation of the first term can be estimated using Monte-Carlo integration. +When combined with stochastic gradient descent, this needs only a small number of samples. +However, HVI needs to compute the gradient of this expectation of the joint posterior +density of observations and parameter, +$\log p(y,\theta) = \log p(y|\theta) + \log p(\theta)$, +by automatic differentiation. Hence, HVI needs to differentiate the process-model, $f$, +that is run during compuatation of the Likelihood of the data, $p(y|\theta)$. + +## Parameter transformations +HVI prescribes $q(\theta)$ to be the distribution of a transfored random variable, +$\theta = T^{-1}(\zeta)$, where $\zeta = T(\theta)$ has a multivariate Normal distribution +(MVN) in unconstrained $\mathbb{R}^n$. The transformation, $T$, provides more flexibility +to model the posterior and takes care of the case where the support of $q(\theta)$ is +smaller than $\mathbb{R}^n$, the support of the MVN. For example if the the log of +$\theta$ is normally distributed, then $\theta$ has LogNormal distribution, and +$\theta = T^{-1}(\zeta) \equiv e^{\zeta}$. The transformed joint density then is + +$$p_\zeta(y,\zeta) = p(x, T^{-1}(\zeta)) \, \left| det J_{T^{-1}}(\zeta)\right|,$$ + +where $\left| det J_{T^{-1}}(\zeta)\right|$ denotes the absolute value of the determinant of the Jacobian of the inverse of transformation, $T$ evaluated at $\zeta$. + +With those assumptions, the ELBO becomes + +$$\mathcal{L}(\phi) = \mathbb{E}_{q(\zeta)} \left[ \log p(y, T^{-1}(\zeta)) + \log \left| det J_{T^{-1}}(\zeta)\right| \right] + \mathbb{H}_{q(\zeta)},$$ +where $\mathbb{H}_{q(\zeta)}$ is the entropy of the approximating density and the expectation is across a normally distributed random variable, $\zeta$. + +## Covariance structure + +HVI assumes that transforms of the latent variable follow a multivariate normal distribution: $\zeta = T((\theta_P, \theta_M)) = (\zeta_P, \zeta_M) \sim \mathcal{N}(\mu(\phi_g), \Sigma)$. The covariance matrix can be decomposed into standard deviation and the correlation matrix. + +$$\Sigma = diag(\sigma_\zeta) C_\zeta \, diag(\sigma_\zeta),$$ + +where $\sigma_\zeta$ is the vector of standard deviations, and $C$ is the correlation matrix. HVI further assumes that uncertainties of site parameters, $\zeta_{M1}, \zeta_{M2}, \ldots$, differ only by their standard deviation, i.e. that the parameter correlations is the same and independent of other sites. With the additionalassumtion of $\zeta_{Ms}$ being independent of $\zeta_P$, the covariance matrix has a block-diagonal structure with one block for $\zeta_P$ and $n_{site}$ repetitions of a block for $\zeta_{M}$. By definition of a correlation matrix, all the main diagonal elements are 1. E.g. for 2 elements in $\zeta_{P}$ and 3 enlements in $\zeta_{M}$ this results in: + +$$\begin{pmatrix} +\begin{matrix} 1 & \rho_{Pab} \\ \rho_{Pab} & 1 \end{matrix} +& 0 & 0 & \cdots\\ +0 & +\begin{matrix} 1 & \rho_{Mab} & \rho_{Mac} \\ \rho_{Mab} & 1 & \rho_{Mbc} \\ \rho_{Mac} & \rho_{Mbc} & 1 \end{matrix} +& 0 +\\ +0 & 0 & +\begin{matrix} 1 & \rho_{Mab} & \rho_{Mac} \\ \rho_{Mab} & 1 & \rho_{Mbc} \\ \rho_{Mac} & \rho_{Mbc} & 1 \end{matrix} +\\ +\cdots & & & \ddots +\end{pmatrix}$$ + +In order to draw random numbers from such a normal distribution, the Cholesky +decomposition of the covariance matrix is required: $\Sigma = U_{\Sigma}^T U_{\Sigma} = +diag(\sigma_\zeta)^T U_C^T U_C \, diag(\sigma_\zeta)$, where $U_{\Sigma}$ and $U_C$ are +the cholesky factors of the covariance and correlation matrices repectively. They are +upper triangular matrices. + +Since, the block-diagonal structure of the correlation matrix carries over to the cholesky +factor, $U_C$ is a block-diagnonal matrix of smaller cholesky factors. If HVI modeled the +depence between $\zeta_{Ms}$ and $\zeta_P$, the correlation matrhix would have an +additional block repeated in the first row and its transpose repeated in the first column +in $\Sigma$, leading to a cholesky factor $U_C$ having entries in all the rows. HVI allows +to accoung for correlations among those +parameters by providing the values of the global parameters to the maching learning +model, $g$ in addition to the covariates. + +Since the differentiation through a general cholesky-decomposition is problematic, +HVI directly parameterizes the Cholesky factor of the correlation matrix rather than the +correlation matrix itself. For details see the Wutzler in prep. + +## Combining variational inference (VI) with hybrid models + +Traditional VI estimates all means and uncertainties of the parameters +$(\zeta_P, \zeta_{M1}, \ldots, \zeta_{Mn} )$ by inverting the model given the observations +and its uncertainty. HVI, directly inverts only the means of $\zeta_P$ +and predicts the means, $\mu_{\zeta_{Ms}}$ of the covariate-dependent parameters +by the machine learning model $q(X_M, \zeta_P; \phi_q)$. +If there is enough information in the observations, the ML model could predict additional +parameters of the posterior distribution based on covariates, such as diagonals of the +covariance matrix. + +Currently, HVI assumes +$\zeta_{Ms} \sim \mathcal{N}(\mu_{\zeta_{Ms}}, \Sigma(\mu_{\zeta_{Ms}}))$ +is normally distributed with the covariance matrix $\Sigma$ being only dependent on the +magnitude of $\mu_{\zeta_{Ms}}$, i.e. conditionally independent of covariates, $X_M$ +(see details on $\mu_{\zeta_{Ms}}$). + +In the specific setting, the parameter vector to be opmized, +$\phi = (\phi_P, \phi_g, \phi_u)$, comprises +- $\phi_P = \mu_{\zeta_P}$: the means of the distributions of the transformed global + parameters, +- $\phi_g$: the parameters of the machine learning model, and +- $\phi_u$: paramerization of $\Sigma_\zeta$ that is additional to the means. + +### Details +Specifically, $\phi_u= (log\sigma^2_P, log\sigma^2_{M0}, log\sigma^2_{M\eta}, a_P, a_M)$, +where the variance of $\zeta_P$ is $\sigma^2_P$, the variance of the $i^{th}$ entry of +$\zeta_{M}$ scales with its magnitude: +$\log \sigma^2_{Mi} = log\sigma^2_{M0i} + log\sigma^2_{M\eta i} \, \mu_{\zeta_{Mi}}$, +and $a_P$ and $a_M$ are parameter vectors of the blocks of the correlation matrix. + +In order to account for correlations between global and site-specific parameters, +HVI models $p(\zeta)$ as a multivariate normal distribution that is a shifted +zero-zentered multivariate normal, $p(\zeta_r)$. + +$$\zeta = (\zeta_P, \zeta_{Ms}) = \zeta_r + (\mu_{\zeta_P}, \mu_{\zeta_{Ms}}) +\\ +\zeta_r = (\zeta_{rP}, \zeta_{rMs}) \sim \mathcal{N}(0, diag(\sigma_\zeta)^T C_\zeta \, diag(\sigma_\zeta)) +\\ +\mu_{\zeta_{Ms}} = g_s(X_M, \zeta_P; \phi_g) +\\ +diag(\sigma_\zeta) = e^{(\log\sigma^2_P, \log\sigma^2_{M})/2} +\\ +C_\zeta = U^T U +\\ +U = \operatorname{BlockDiag}(a_P, a_M)$$ + +where the predicted value of $\mu_{\zeta_{Ms}}$ may depend on the random draw value of $\zeta_P = \zeta_{r,P} + \mu_{\zeta_P}$. By this construction HVI better supports the assumption that $\zeta_{rM}$ is conditionally independent of $\zeta_{rP}$, which is required to macke the cholesky-factor, $U$ of the covariance matrix block-diagonal. + +The above procedure makes an additional subtle approximation. HVI allows the variance of $\zeta_{M}$ to scale with its magnitude. In the computation of the correlation matrix, however, HVI uses the mean, $\mu_{\zeta_{Mi}}$, rather than the actual sampled value, $\zeta_{Mi}$. If it used the actual value, then the distribution of $\zeta$ would need to be described as a general distribution, $p(\zeta) = p(\zeta_{Ms}|\zeta_P) \, p(\zeta_P)$, that would not be normal any more, and HVI could not compute the expectation by drawing centered normla random numbers. + +#### Implementation of the cost function +In practical terms the cost function +- generates normally distributed random values $(\zeta_{rP}, \zeta_{rMs})$ based on the cholesky factor of the covariance matrix, which depends on optimized parameters $(a_P, a_M)$ +- generates a sample of $\zeta_P$ by adding optimized parameters $\mu_{\zeta_P}$ to $\zeta_{rP}$ +- computes expected value of $\mu_{\zeta_{Ms}}$ using the machine learning model given covariates, $X_M$, given $\zeta_P$, and given optimized parameters $\phi_g$. +- generates a sample of $\zeta_{Ms}$ by adding the computed $\mu_{\zeta_{Ms}}$ to $\zeta_{rMs}$ +- transforms $(\zeta_{P}, \zeta_{Ms})$ to the original scale to get a sample of model parameters $(\theta_{rP}, \theta_{rMs})$ +- computes negative Log-denstiy of observations for each sample using the physical model, $f$, and subtract the absolute determinant of the transformation, evaluted at the sample. +- approximates the expected value of the former by taking the mean across the samples +- subtract the entropy of the normal distribution approximator + +The automatic differentiation through this cost function including calls to $g$, T, and $f$ allows to estimate parameters, $\phi$, by a stochastic gradient decent method. + diff --git a/docs/src/hybrid_variational_setup.png b/docs/src/hybrid_variational_setup.png new file mode 100644 index 0000000000000000000000000000000000000000..47de951c4690baf199d6785a8191c282898cefce GIT binary patch literal 16611 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 Date: Thu, 31 Jul 2025 11:28:02 +0200 Subject: [PATCH 03/21] update REAMDE --- README.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 0e5dfd8..7cbb6bf 100644 --- a/README.md +++ b/README.md @@ -16,19 +16,20 @@ Consider the case of Parameter learning, a special case of hybrid models, where a machine learning model, $g_{\phi_g}$, uses known covariates $x_{Mi}$ at site $i$, to predict a subset of the parameters, $\theta$ of the process based model, $f$. -We are interested in both, +The analyst is interested in both, - the uncertainty of hybrid model predictions, $ŷ$ (predictive posterior), and - the uncertainty of process-model parameters $\theta$, including their correlations (posterior) -For example we have soil organic matter process-model that predicts carbon stocks for +For example consider a soil organic matter process-model that predicts carbon stocks for different sites. We need to parameterize the unknown carbon use efficiency (CUE) of the soil microbial community that differs by site, but is hypothesized to correlate with climate variables and pedogenic factors, such as clay content. -We apply a machine learnign model to estimate CUE and fit it end-to-end with other +We apply a machine learning model to estimate CUE and fit it end-to-end with other parameters of the process-model to observed carbon stocks. -In addtion to the predicted CUE, we are interested in the uncertainty of CUE and its correlation with other parameters, such a the capacity of the soil minerals to bind carbon. -I.e. we are interetes in the entire posterior probability distribution of the model parameters. +In addtion to the predicted CUE, we are interested in the uncertainty of CUE and its correlation +with other parameters. +We are interested in the entire posterior probability distribution of the model parameters. To understand the background of HVI, refer to the [documentation]((https://EarthyScience.github.io/HybridVariationalInference.jl/dev/)). From 48c255139f70a1d5abe37b50d285c336d6ab846f Mon Sep 17 00:00:00 2001 From: Thomas Wutzler Date: Tue, 12 Aug 2025 09:32:28 +0200 Subject: [PATCH 04/21] implement AbstractPBMApplicator --- dev/doubleMM.jl | 2 +- ext/HybridVariationalInferenceFluxExt.jl | 8 -- src/AbstractHybridProblem.jl | 45 ------ src/DoubleMM/f_doubleMM.jl | 157 +++++++++++--------- src/HybridSolver.jl | 5 +- src/HybridVariationalInference.jl | 6 +- src/PBMApplicator.jl | 174 +++++++++++++++++++++++ src/elbo.jl | 11 +- src/gf.jl | 68 ++++----- src/util_ca.jl | 6 +- test/Project.toml | 1 + test/test_HybridProblem.jl | 78 +++++----- test/test_doubleMM.jl | 28 ++-- 13 files changed, 383 insertions(+), 206 deletions(-) create mode 100644 src/PBMApplicator.jl diff --git a/dev/doubleMM.jl b/dev/doubleMM.jl index 28dc78f..3af5888 100644 --- a/dev/doubleMM.jl +++ b/dev/doubleMM.jl @@ -582,7 +582,7 @@ f_allsites = get_hybridproblem_PBmodel(prob0; scenario, use_all_sites = true) end () -> begin # plot chain - #@usingany TwMakieHelpers, CairoMakie + #@usingany FigureHelpers, CairoMakie # θP and first θMs ch = chain[:,vcat(1:n_θP, n_θP+1, n_θP+n_site+1),:]; fig = plot_chn(ch) diff --git a/ext/HybridVariationalInferenceFluxExt.jl b/ext/HybridVariationalInferenceFluxExt.jl index da8275d..1d8f462 100644 --- a/ext/HybridVariationalInferenceFluxExt.jl +++ b/ext/HybridVariationalInferenceFluxExt.jl @@ -81,12 +81,4 @@ function HVI.construct_3layer_MLApplicator( construct_ChainsApplicator(rng, g_chain, float_type) end -function HVI.cpu_ca(ca::CA.ComponentArray) - CA.ComponentArray(cpu(CA.getdata(ca)), CA.getaxes(ca)) -end - - - - - end # module diff --git a/src/AbstractHybridProblem.jl b/src/AbstractHybridProblem.jl index 1d4a898..7e79545 100644 --- a/src/AbstractHybridProblem.jl +++ b/src/AbstractHybridProblem.jl @@ -265,50 +265,5 @@ function setup_PBMpar_interpreter(θP, θM, θall = vcat(θP, θM)) intθ, θFix end -struct PBmodelClosure{θFixT, θFix_devT, AX, pos_xPT} - θFix::θFixT - θFix_dev::θFix_devT - intθ::StaticComponentArrayInterpreter{AX} - isP::Matrix{Int} - n_site_batch::Int - pos_xP::pos_xPT -end - -function PBmodelClosure(prob::AbstractHybridProblem; scenario::Val{scen}, - use_all_sites = false, - gdev = :f_on_gpu ∈ _val_value(scenario) ? gpu_device() : identity, - θall, int_xP1, -) where {scen} - n_site, n_batch = get_hybridproblem_n_site_and_batch(prob; scenario) - n_site_batch = use_all_sites ? n_site : n_batch - #fsite = (θ, x_site) -> f_doubleMM(θ) # omit x_site drivers - par_templates = get_hybridproblem_par_templates(prob; scenario) - intθ1, θFix1 = setup_PBMpar_interpreter(par_templates.θP, par_templates.θM, θall) - θFix = repeat(θFix1', n_site_batch) - θFix_dev = gdev(θFix) - intθ = get_concrete(ComponentArrayInterpreter((n_site_batch,), intθ1)) - #int_xPb = ComponentArrayInterpreter((n_site_batch,), int_xP1) - isP = repeat(axes(par_templates.θP, 1)', n_site_batch) - pos_xP = get_positions(int_xP1) - PBmodelClosure(;θFix, θFix_dev, intθ, isP, n_site_batch, pos_xP) -end - -function PBmodelClosure(; - θFix::θFixT, - θFix_dev::θFix_devT, - intθ::StaticComponentArrayInterpreter{AX}, - isP::Matrix{Int}, - n_site_batch::Int, - pos_xP::pos_xPT, -) where {θFixT, θFix_devT, AX, pos_xPT} - PBmodelClosure{θFixT, θFix_devT, AX, pos_xPT}( - θFix::AbstractArray, θFix_dev, intθ, isP, n_site_batch, pos_xP) -end - - - - - - diff --git a/src/DoubleMM/f_doubleMM.jl b/src/DoubleMM/f_doubleMM.jl index 2b5c549..ba19233 100644 --- a/src/DoubleMM/f_doubleMM.jl +++ b/src/DoubleMM/f_doubleMM.jl @@ -21,49 +21,69 @@ int_xP1 = ComponentArrayInterpreter(CA.ComponentVector(S1 = xP_S1, S2 = xP_S2)) const int_θdoubleMM = ComponentArrayInterpreter(flatten1(CA.ComponentVector(; θP, θM))) -function f_doubleMM(θ::AbstractVector, x; intθ1) +function f_doubleMM(θc::CA.ComponentVector{ET}, x) where ET # extract parameters not depending on order, i.e whether they are in θP or θM - y = GPUArraysCore.allowscalar() do - θc = intθ1(θ) + GPUArraysCore.allowscalar() do # index to scalar parameter in parameter vector + #θc = intθ1(θ) #using ComponentArrays: ComponentArrays as CA #r0, r1, K1, K2 = θc[(:r0, :r1, :K1, :K2)] # does not work on Zygote+GPU (r0, r1, K1, K2) = map((:r0, :r1, :K1, :K2)) do par # vector will be repeated when broadcasted by a matrix - CA.getdata(θc[par]) + CA.getdata(θc[par])::ET end # r0 = θc[:r0] # r1 = θc[:r1] # K1 = θc[:K1] # K2 = θc[:K2] y = r0 .+ r1 .* x.S1 ./ (K1 .+ x.S1) .* x.S2 ./ (K2 .+ x.S2) + return (y) end - return (y) end -function f_doubleMM( - θ::AbstractMatrix{T}, x; intθ::HVI.AbstractComponentArrayInterpreter) where T - # provide θ for n_row sites - # provide x.S1 as Matrix n_site x n_obs - # extract parameters not depending on order, i.e whether they are in θP or θM - θc = intθ(θ) - @assert size(x.S1, 1) == size(θ, 1) # same number of sites - @assert size(x.S1) == size(x.S2) # same number of observations - #@assert length(x.s2 == n_obs) - # problems on AD on GPU with indexing CA may be related to printing result, use ";" - VT = typeof(θ[:,1]) # workaround for non-stable Symbol-indexing CAMatrix - #VT = first(Base.return_types(getindex, Tuple{typeof(θ),typeof(Colon()),typeof(1)})) +function f_doubleMM_sites(θc::CA.ComponentMatrix, xPc::CA.ComponentMatrix) + # extract the parameters as vectors + VT = typeof(CA.getdata(θc)[:,1]) # workaround for non-type-stable Symbol-indexing (r0, r1, K1, K2) = map((:r0, :r1, :K1, :K2)) do par - # vector will be repeated when broadcasted by a matrix CA.getdata(θc[:, par]) ::VT end - # r0 = CA.getdata(θc[:,:r0]) # vector will be repeated when broadcasted by a matrix - # r1 = CA.getdata(θc[:,:r1]) - # K1 = CA.getdata(θc[:,:K1]) - # K2 = CA.getdata(θc[:,:K2]) - y = r0 .+ r1 .* x.S1 ./ (K1 .+ x.S1) .* x.S2 ./ (K2 .+ x.S2) - return (y) + # + # extract several covariates from xP + # S1 = (xPc[:S1,:])' # transform site-last -> site-first dimension + # S2 = (xPc[:S2,:])' + #Main.@infiltrate_main + + ST = typeof(CA.getdata(xPc)[1:1,:]) # workaround for non-type-stable Symbol-indexing + S1 = (CA.getdata(xPc[:S1,:])::ST)' # transform site-last -> site-first dimension + S2 = (CA.getdata(xPc[:S2,:])::ST)' + # + y = r0 .+ r1 .* S1 ./ (K1 .+ S1) .* S2 ./ (K2 .+ S2) + return (CA.getdata(y)') # transform site-first -> site-last dimension end +# function f_doubleMM( +# θ::AbstractMatrix{T}, x; intθ::HVI.AbstractComponentArrayInterpreter) where T +# # provide θ for n_row sites +# # provide x.S1 as Matrix n_site x n_obs +# # extract parameters not depending on order, i.e whether they are in θP or θM +# θc = intθ(θ) +# @assert size(x.S1, 1) == size(θ, 1) # same number of sites +# @assert size(x.S1) == size(x.S2) # same number of observations +# #@assert length(x.s2 == n_obs) +# # problems on AD on GPU with indexing CA may be related to printing result, use ";" +# VT = typeof(θ[:,1]) # workaround for non-stable Symbol-indexing CAMatrix +# #VT = first(Base.return_types(getindex, Tuple{typeof(θ),typeof(Colon()),typeof(1)})) +# (r0, r1, K1, K2) = map((:r0, :r1, :K1, :K2)) do par +# # vector will be repeated when broadcasted by a matrix +# CA.getdata(θc[:, par]) ::VT +# end +# # r0 = CA.getdata(θc[:,:r0]) # vector will be repeated when broadcasted by a matrix +# # r1 = CA.getdata(θc[:,:r1]) +# # K1 = CA.getdata(θc[:,:K1]) +# # K2 = CA.getdata(θc[:,:K2]) +# y = r0 .+ r1 .* x.S1 ./ (K1 .+ x.S1) .* x.S2 ./ (K2 .+ x.S2) +# return (y) +# end + # function f_doubleMM(θ::AbstractMatrix, x::NamedTuple, θpos::NamedTuple) # # provide θ for n_row sites # # provide x.S1 as Matrix n_site x n_obs @@ -176,59 +196,54 @@ end # (; n_covar, n_batch, n_θM, n_θP) # end -# function HVI.get_hybridproblem_PBmodel(prob::DoubleMMCase; scenario::NTuple = (), -# gdev = :f_on_gpu ∈ scenario ? gpu_device() : identity, -# ) -# #fsite = (θ, x_site) -> f_doubleMM(θ) # omit x_site drivers -# par_templates = get_hybridproblem_par_templates(prob; scenario) -# intθ, θFix = setup_PBMpar_interpreter(par_templates.θP, par_templates.θM, θall) -# let θFix = gdev(θFix), intθ = get_concrete(intθ) -# function f_doubleMM_with_global(θP::AbstractVector, θMs::AbstractMatrix, xP) -# pred_sites = map_f_each_site(f_doubleMM, θMs, θP, θFix, xP, intθ) -# pred_global = eltype(pred_sites)[] -# return pred_global, pred_sites -# end -# end -# end - # defining the PBmodel as a closure with let leads to problems of JLD2 reloading # Define all the variables additional to the ones passed curing the call by # a dedicated Closure object and define the PBmodel as a callable -struct DoubleMMCaller{CLT} - cl::CLT -end +# struct DoubleMMCaller{CLT} +# cl::CLT +# end -function HVI.get_hybridproblem_PBmodel(prob::DoubleMMCase; scenario, kwargs...) +function HVI.get_hybridproblem_PBmodel(prob::DoubleMMCase; use_all_sites=false, scenario::Val{scen}) where {scen} # θall defined in this module above - cl = HVI.PBmodelClosure(prob; scenario, θall, int_xP1, kwargs...) - return DoubleMMCaller{typeof(cl)}(cl) + # TODO check and test for population or sites, currently return only site specific + pt = get_hybridproblem_par_templates(prob; scenario) + keys_fixed = Tuple(k for k in setdiff(keys(θall), (keys(pt.θP)..., keys(pt.θM)...))) + θFix = isempty(keys_fixed) ? CA.ComponentVector{eltype(θall)}() : θall[keys_fixed] + xPvec = int_xP1(vcat(xP_S1, xP_S2)) + if (:useSitePBM ∈ scen) + PBMSiteApplicator(f_doubleMM; pt.θP, pt.θM, θFix, xPvec) + else + n_site, n_batch = get_hybridproblem_n_site_and_batch(prob; scenario) + n_site_batch = use_all_sites ? n_site : n_batch + PBMPopulationApplicator(f_doubleMM_sites, n_site_batch; pt.θP, pt.θM, θFix, xPvec) + end end -function(caller::DoubleMMCaller)(θP::AbstractVector, θMs::AbstractMatrix, xP) - cl = caller.cl - @assert size(xP, 2) == cl.n_site_batch - @assert size(θMs, 1) == cl.n_site_batch - # # convert vector of tuples to tuple of matricesByRows - # # need to supply xP as vectorOfTuples to work with DataLoader - # # k = first(keys(xP[1])) - # xPM = (; zip(keys(xP[1]), map(keys(xP[1])) do k - # #stack(map(r -> r[k], xP))' - # stack(map(r -> r[k], xP); dims = 1) - # end)...) - #xPM = map(transpose, xPM1) - #xPc = int_xPb(CA.getdata(xP)) - #xPM = (S1 = xPc[:,:S1], S2 = xPc[:,:S2]) # problems with Zygote - # make sure the same order of columns as in intθ - # reshape big matrix into NamedTuple of drivers S1 and S2 - # for broadcasting need sites in rows - #xPM = map(p -> CA.getdata(xP[p,:])', pos_xP) - xPM = map(p -> CA.getdata(xP)'[:, p], cl.pos_xP) - θFixd = (θP isa GPUArraysCore.AbstractGPUVector) ? cl.θFix_dev : cl.θFix - θ = hcat(CA.getdata(θP[cl.isP]), CA.getdata(θMs), θFixd) - pred_sites = f_doubleMM(θ, xPM; cl.intθ)' - pred_global = eltype(pred_sites)[] - return pred_global, pred_sites -end +# function(caller::DoubleMMCaller)(θP::AbstractVector, θMs::AbstractMatrix, xP) +# cl = caller.cl +# @assert size(xP, 2) == cl.n_site_batch +# @assert size(θMs, 1) == cl.n_site_batch +# # # convert vector of tuples to tuple of matricesByRows +# # # need to supply xP as vectorOfTuples to work with DataLoader +# # # k = first(keys(xP[1])) +# # xPM = (; zip(keys(xP[1]), map(keys(xP[1])) do k +# # #stack(map(r -> r[k], xP))' +# # stack(map(r -> r[k], xP); dims = 1) +# # end)...) +# #xPM = map(transpose, xPM1) +# #xPc = int_xPb(CA.getdata(xP)) +# #xPM = (S1 = xPc[:,:S1], S2 = xPc[:,:S2]) # problems with Zygote +# # make sure the same order of columns as in intθ +# # reshape big matrix into NamedTuple of drivers S1 and S2 +# # for broadcasting need sites in rows +# #xPM = map(p -> CA.getdata(xP[p,:])', pos_xP)get_hybridproblem_PBmodel +# xPM = map(p -> CA.getdata(xP)'[:, p], cl.pos_xP) +# θFixd = (θP isa GPUArraysCore.AbstractGPUVector) ? cl.θFix_dev : cl.θFix +# θ = hcat(CA.getdata(θP[cl.isP]), CA.getdata(θMs), θFixd) +# pred_sites = f_doubleMM(θ, xPM; cl.intθ)' +# pred_global = eltype(pred_sites)[] +# return pred_global, pred_sites +# end function HVI.get_hybridproblem_neg_logden_obs(::DoubleMMCase; scenario::Val) neg_logden_indep_normal @@ -276,7 +291,7 @@ function HVI.gen_hybridproblem_synthetic(rng::AbstractRNG, prob::DoubleMMCase; int_θMs_sites = ComponentArrayInterpreter(θM, (n_site,)) # normalize to be distributed around the prescribed true values θMs_true = int_θMs_sites(scale_centered_at(θMs_true0, θM, FloatType(0.1))) - f = get_hybridproblem_PBmodel(prob; scenario, gdev = identity, use_all_sites = true) + f = get_hybridproblem_PBmodel(prob; scenario, use_all_sites = true) #xP = fill((; S1 = xP_S1, S2 = xP_S2), n_site) int_xP_sites = ComponentArrayInterpreter(int_xP1, (n_site,)) xP = int_xP_sites(vcat(repeat(xP_S1, 1, n_site), repeat(xP_S2, 1, n_site))) diff --git a/src/HybridSolver.jl b/src/HybridSolver.jl index f33e632..2751de9 100644 --- a/src/HybridSolver.jl +++ b/src/HybridSolver.jl @@ -121,7 +121,10 @@ function CommonSolve.solve(prob::AbstractHybridProblem, solver::HybridPosteriorS solver.n_MC, solver.n_MC_cap, cor_ends, priors_θP_mean, priors_θMs_mean, cdev, pbm_covars, θP, int_unc, int_μP_ϕg_unc) # test loss function once - #Main.@infiltrate_main + # tmp = first(train_loader_dev) + # using ShareAdd + # @usingany Cthulhu + # @descend_code_warntype loss_elbo(ϕ0_dev, rng, first(train_loader_dev)...) l0 = is_infer ? (Test.@inferred loss_elbo(ϕ0_dev, rng, first(train_loader_dev)...)) : loss_elbo(ϕ0_dev, rng, first(train_loader_dev)...) diff --git a/src/HybridVariationalInference.jl b/src/HybridVariationalInference.jl index 9ea9b57..7d43cb7 100644 --- a/src/HybridVariationalInference.jl +++ b/src/HybridVariationalInference.jl @@ -36,6 +36,9 @@ export construct_3layer_MLApplicator, select_ml_engine export NullModelApplicator, MagnitudeModelApplicator, NormalScalingModelApplicator include("ModelApplicator.jl") +export PBMSiteApplicator, PBMPopulationApplicator +include("PBMApplicator.jl") + # export AbstractGPUDataHandler, NullGPUDataHandler, get_default_GPUHandler # include("GPUDataHandler.jl") @@ -67,7 +70,8 @@ export HybridProblem export get_quantile_transformed include("HybridProblem.jl") -export map_f_each_site, gf, get_loss_gf +export gf, get_loss_gf +#export map_f_each_site include("gf.jl") export compute_correlated_covars, scale_centered_at diff --git a/src/PBMApplicator.jl b/src/PBMApplicator.jl new file mode 100644 index 0000000..4cba53e --- /dev/null +++ b/src/PBMApplicator.jl @@ -0,0 +1,174 @@ +""" + AbstractPBMApplicator(θP::AbstractVector, θMs::AbstractMatrix, xP::AbstractMatrix) + +Abstraction of applying a process-based model with +global parameters, `x`, site-specific paramters, `θMs` (sites in columns), +and site-specific model drivers, `xP` (sites in columns), +It returns a matrix of predictions sites in columns. + +Specific implementations need to implement function `apply_model(app, θP, θMs, xP)`. +Provided are implementations +- `NullPBMApplicator`: returning its input `θMs` for testing +- `PBMSiteApplicator`: based on a function that computes predictions per site +- `PBMPopulationApplicator`: based on a function that computes predictions for entire population +""" +abstract type AbstractPBMApplicator end + +# function apply_model end # already defined in ModelApplicator.jl for ML model + +function (app::AbstractPBMApplicator)(θP::AbstractVector, θMs::AbstractMatrix, xP::AbstractMatrix) + apply_model(app, θP, θMs, xP) +end + + +""" + NullPBMApplicator() + +Process-Base-Model applicator that returns its θMs inputs. Used for testing. +""" +struct NullPBMApplicator <: AbstractPBMApplicator end + +function apply_model(app::NullPBMApplicator, θP::AbstractVector, θMs::AbstractMatrix, xP) + return CA.getdata(θMs) +end + + +struct PBMSiteApplicator{F, IT, IXT, VFT} <: AbstractPBMApplicator + fθ::F + intθ1::IT + int_xPsite::IXT + θFix::VFT # can be a CuArray instead of a Vector +end + +""" + PBMSiteApplicator(fθ, n_batch; θP, θM, θFix, xPvec) + +Construct AbstractPBMApplicator from process-based model `fθ` that computes predictions +for a single site. +The Applicator combines enclosed `θFix`, with provided `θMs` and `θP` and +constructs a `ComponentVector` that can be indexed by +symbolic parameter names, correspondning to the templates provided during +construction of the applicator. + +## Aguments +- `fθ`: process model, process model `fθ(θc, xP)`, which is agnostic of the partitioning +of parameters. +- `θP`: ComponentVector template of global process model parameters +- `θM`: ComponentVector template of individual process model parameters +- `θFix`: ComponentVector of actual fixed process model parameters +- `xPvec`::ComponentVector template of model drivers for a single site +""" +function PBMSiteApplicator(fθ; + θP::CA.ComponentVector, θM::CA.ComponentVector, θFix::CA.ComponentVector, + xPvec::CA.ComponentVector + ) + intθ1 = get_concrete(ComponentArrayInterpreter(flatten1(CA.ComponentVector(; θP, θM, θFix)))) + int_xPsite = get_concrete(ComponentArrayInterpreter(xPvec)) + PBMSiteApplicator(fθ, intθ1, int_xPsite, CA.getdata(θFix)) +end + +function apply_model(app::PBMSiteApplicator, θP::AbstractVector, θMs::AbstractMatrix, xP) + function apply_PBMsite(θM, xP1) + if (CA.getdata(θP) isa GPUArraysCore.AbstractGPUArray) && + (!(app.θFix isa GPUArraysCore.AbstractGPUArray) || + !(CA.getdata(θMs) isa GPUArraysCore.AbstractGPUArray)) + error("concatenating GPUarrays with non-gpu arrays θFix or θMs. " * + "May fmap PBMModelapplicators to gdev, " * + "or compute PBMmodel on CPU") + end + θ = vcat(CA.getdata(θP), CA.getdata(θM), app.θFix) + θc = app.intθ1(θ); # show errors without ";" + xPc = app.int_xPsite(xP1); + ans = CA.getdata(app.fθ(θc, xPc)) + ans + end + # mapreduce-hcat is only typestable with init, which needs number of rows + # https://discourse.julialang.org/t/type-instability-of-mapreduce-vs-map-reduce/121136 + # local pred_sites = mapreduce( + # apply_PBMsite, hcat, eachrow(θMs), eachcol(xP); init=Matrix{Float64}(undef,n_obs,0)) + θMs1, it_θMs = if (CA.getdata(θP) isa GPUArraysCore.AbstractGPUArray) + # if working on CuArray, better materialize transpose and use eachcol for contiguous + # avoid eachrow, because it does produce non-strided views which are bad on GPU, + # https://discourse.julialang.org/t/using-view-with-cuarrays/104057/5 + # better compute on CPU or use matrix-version of PBMModel + θMst = copy(CA.getdata(θMs)') + Iterators.peel(eachcol(θMst)); + else + Iterators.peel(eachrow(CA.getdata(θMs))) + end + xP1, it_xP = Iterators.peel(eachcol(CA.getdata(xP))) + obs1 = apply_PBMsite(θMs1, xP1) + local pred_sites = mapreduce( + apply_PBMsite, hcat, it_θMs, it_xP; init=reshape(obs1, :, 1)) + # # special case of mapreduce producing a vector rather than a matrix + # pred_sites = !(pred_sites0 isa AbstractMatrix) ? hcat(pred_sites0) : pred_sites0 + #obs1 = apply_PBMsite(first(eachrow(θMs)), first(eachcol(xP))) + #obs_vecs = map(apply_PBMsite, eachrow(θMs), eachcol(xP)) + #obs_vecs = (apply_PBMsite(θMs1, xP1) for (θMs1, xP1) in zip(eachrow(θMs), eachcol(xP))) + #pred_sites = stack(obs_vecs; dims = 1) + #pred_sites = stack(obs_vecs) # does not work with Zygote + local pred_global = eltype(pred_sites)[] # TODO remove + return pred_global, pred_sites +end + +struct PBMPopulationApplicator{MFT, IPT, IT, IXT, F} <: AbstractPBMApplicator + fθpop::F + θFixm::MFT # may be CuMatrix rather than Matrix + isP::IPT #Matrix{Int} # transferred to CuMatrix? + intθ::IT + int_xP::IXT +end + +# let fmap not descend into isP +# @functor PBMPopulationApplicator (θFixm, ) + +""" + PBMPopulationApplicator(fθpop, n_batch; θP, θM, θFix, xPvec) + +Construct AbstractPBMApplicator from process-based model `fθ` that computes predictions +across sites for a population of size `n_batch`. +The closure provides a function that combines enclosed `θFix`, with provided `θMs` and `θP` +to a ComponentMatrix with parameters with one row for each site, that +can be column-indexed by Symbols. + +## Aguments +- `fθpop`: process model, process model `f(θc, xPc)`, which is agnostic of the partitioning +of parameters into fixed, global, and individual. +- `n_batch`: number of indiduals, i.e. rows in `θMs` +- `θP`: ComponentVector template of global process model parameters +- `θM`: ComponentVector template of individual process model parameters +- `θFix`: ComponentVector of actual fixed process model parameters +- `xPvec`::ComponentVector template of model drivers for a single site +""" +function PBMPopulationApplicator(fθpop, n_batch; + θP::CA.ComponentVector, θM::CA.ComponentVector, θFix::CA.ComponentVector, + xPvec::CA.ComponentVector + ) + intθvec = ComponentArrayInterpreter(flatten1(CA.ComponentVector(; θP, θM, θFix))) + int_xP_vec = ComponentArrayInterpreter(xPvec) + isFix = repeat(axes(θFix, 1)', n_batch) + # + intθ = get_concrete(ComponentArrayInterpreter((n_batch,), intθvec)) + int_xP = get_concrete(ComponentArrayInterpreter(int_xP_vec, (n_batch,))) + isP = repeat(axes(θP, 1)', n_batch) + θFixm = CA.getdata(θFix[isFix]) + PBMPopulationApplicator(fθpop, θFixm, isP, intθ, int_xP) +end + +function apply_model(app::PBMPopulationApplicator, θP::AbstractVector, θMs::AbstractMatrix, xP) + if (CA.getdata(θP) isa GPUArraysCore.AbstractGPUArray) && + (!(app.θFixm isa GPUArraysCore.AbstractGPUArray) || + !(CA.getdata(θMs) isa GPUArraysCore.AbstractGPUArray)) + error("concatenating GPUarrays with non-gpu arrays θFixm or θMs. " * + "May transfer PBMPopulationApplicator to gdev, " * + "or compute PBM on CPU.") + end + # repeat θP and concatenate with + local θ = hcat(CA.getdata(θP[app.isP]), CA.getdata(θMs), app.θFixm) + local θc = app.intθ(CA.getdata(θ)) + local xPc = app.int_xP(CA.getdata(xP)) + local pred_sites = app.fθpop(θc, xPc) + local pred_global = eltype(pred_sites)[] # TODO remove + return pred_global, pred_sites +end + diff --git a/src/elbo.jl b/src/elbo.jl index 8bd4708..315a7e0 100644 --- a/src/elbo.jl +++ b/src/elbo.jl @@ -97,6 +97,11 @@ function neg_elbo_ζtf(ζsP, ζsMs, σ, f, py, xP, y_ob, y_unc; y_pred_global, y_pred_i = f(θP, θMs, xP) # TODO nLogDen prior on \theta #nLy1 = neg_logden_indep_normal(y_ob, y_pred_i, y_unc) + # Main.@infiltrate_main + # Test.@inferred( f(θP, θMs, xP) ) + # using ShareAdd + # @usingany Cthulhu + # @descend_code_warntype f(θP, θMs, xP) nLy1 = py(y_ob, y_pred_i, y_unc) nLy1 - logjac end @@ -113,7 +118,11 @@ function neg_elbo_ζtf(ζsP, ζsMs, σ, f, py, xP, y_ob, y_unc; # logdet_jacT2 = -sum_log_σ # log Prod(1/σ_i) = -sum log σ_i logdetΣ = 2 * sum(log.(σ)) n_θ = size(ζsP, 1) + prod(size(ζsMs)[1:2]) - @assert length(σ) == n_θ + if length(σ) != n_θ + error("TODO infiltrate") + #Main.@infiltrate_main + end + #@assert length(σ) == n_θ entropy_ζ = entropy_MvNormal(n_θ, logdetΣ) # defined in logden_normal # if i_sites[1] == 1 # #Main.@infiltrate_main diff --git a/src/gf.jl b/src/gf.jl index 44ee7eb..11c552a 100644 --- a/src/gf.jl +++ b/src/gf.jl @@ -1,43 +1,43 @@ # Point solver where ML directly predicts PBL parameters, rather than their # distribution. -""" -Map process base model (PBM), `f`, across each site. +# """ +# Map process base model (PBM), `f`, across each site. -## Arguments -- `f(θ, xP, args...; intθ1, kwargs...)`: Process based model for single site +# ## Arguments +# - `f(θ, xP, args...; intθ1, kwargs...)`: Process based model for single site - Make sure to hint the type, so that results can be inferred. -- `θMst`: transposed model parameters across sites matrix: (n_parM, n_site_batch) -- `θP`: transposed model parameters that do not differ by site: (n_parP,) -- `θFix`: Further parameter required by f that are not calibrated. -- `xP`: Model drivers: Matrix with n_site_batch columns. - If provided a ComponentArray with labeled rows, f can then access `xP[:key]`. -- `intθ1`: ComponentArrayInterpreter that can be applied to θ, - so that entries can be extracted. +# Make sure to hint the type, so that results can be inferred. +# - `θMst`: transposed model parameters across sites matrix: (n_parM, n_site_batch) +# - `θP`: transposed model parameters that do not differ by site: (n_parP,) +# - `θFix`: Further parameter required by f that are not calibrated. +# - `xP`: Model drivers: Matrix with n_site_batch columns. +# If provided a ComponentArray with labeled rows, f can then access `xP[:key]`. +# - `intθ1`: ComponentArrayInterpreter that can be applied to θ, +# so that entries can be extracted. -See test_HybridProblem of using this function to construct a PBM function that -can predict across all sites. -""" -function map_f_each_site( - f, θMst::AbstractMatrix, θP::AbstractVector, θFix::AbstractVector, xP, args...; - intθ1::AbstractComponentArrayInterpreter, kwargs... -) - # predict several sites with same global parameters θP and fixed parameters θFix - it1 = eachcol(CA.getdata(θMst)) - it2 = eachcol(xP) - _θM = first(it1) - _x_site = first(it2) - TXS = typeof(_x_site) - TY = typeof(f(vcat(θP, _θM, θFix), _x_site, args...; intθ1, kwargs...)) - #TY = typeof(f(vcat(θP, _θM, θFix), _x_site; intθ1)) - yv = map(it1, it2) do θM, x_site - x_site_typed = x_site::TXS - f(vcat(θP, θM, θFix), x_site_typed, args...; intθ1, kwargs...) - end::Vector{TY} - y = stack(yv) - return(y) -end +# See test_HybridProblem of using this function to construct a PBM function that +# can predict across all sites. +# """ +# function map_f_each_site( +# f, θMst::AbstractMatrix, θP::AbstractVector, θFix::AbstractVector, xP, args...; +# intθ1::AbstractComponentArrayInterpreter, kwargs... +# ) +# # predict several sites with same global parameters θP and fixed parameters θFix +# it1 = eachcol(CA.getdata(θMst)) +# it2 = eachcol(xP) +# _θM = first(it1) +# _x_site = first(it2) +# TXS = typeof(_x_site) +# TY = typeof(f(vcat(θP, _θM, θFix), _x_site, args...; intθ1, kwargs...)) +# #TY = typeof(f(vcat(θP, _θM, θFix), _x_site; intθ1)) +# yv = map(it1, it2) do θM, x_site +# x_site_typed = x_site::TXS +# f(vcat(θP, θM, θFix), x_site_typed, args...; intθ1, kwargs...) +# end::Vector{TY} +# y = stack(yv) +# return(y) +# end # function map_f_each_site(f, θMs::AbstractMatrix, θPs::AbstractMatrix, θFix::AbstractVector, xP, args...; kwargs...) # # do not call f with matrix θ, because .* with vectors S1 would go wrong # yv = map(eachcol(θMs), eachcol(θPs), xP) do θM, θP, xP_site diff --git a/src/util_ca.jl b/src/util_ca.jl index 63561da..5336cd2 100644 --- a/src/util_ca.jl +++ b/src/util_ca.jl @@ -3,8 +3,12 @@ Move ComponentArray form gpu to cpu. """ -function cpu_ca end +#function cpu_ca end # define in FluxExt +function cpu_ca(ca::CA.ComponentArray) + CA.ComponentArray(cpu_device()(CA.getdata(ca)), CA.getaxes(ca)) +end + function apply_preserve_axes(f, ca::CA.ComponentArray) CA.ComponentArray(f(CA.getdata(ca)), CA.getaxes(ca)) diff --git a/test/Project.toml b/test/Project.toml index d1e29ea..81c469c 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -7,6 +7,7 @@ ComponentArrays = "b0b7db55-cfe3-40fc-9ded-d10e2dbeff66" DistributionFits = "45214091-1ed4-4409-9bcf-fdb48a05e921" Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f" Flux = "587475ba-b771-5e3f-ad9e-33799f191a9c" +Functors = "d9f16b24-f501-4c13-a1f2-28368ffc5196" GPUArraysCore = "46192b85-c4d5-4398-a991-12ede77f4527" LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" Lux = "b2108857-7c20-44ae-9111-449ecde12c47" diff --git a/test/test_HybridProblem.jl b/test/test_HybridProblem.jl index 1ab7bc3..9a175ad 100644 --- a/test/test_HybridProblem.jl +++ b/test/test_HybridProblem.jl @@ -17,6 +17,8 @@ using OptimizationOptimisers using MLDataDevices using Suppressor +using Functors + cdev = cpu_device() #scenario = Val((:default,)) @@ -32,27 +34,14 @@ function construct_problem(; scenario::Val{scen}) where scen cor_ends = (P=1:length(θP), M=[length(θM)]) # assume r0 independent of K2 int_θdoubleMM = get_concrete(ComponentArrayInterpreter( flatten1(CA.ComponentVector(; θP, θM)))) - function f_doubleMM(θ::AbstractVector{ET}, x; intθ1) where ET + function f_doubleMM(θc::CA.ComponentVector{ET}, x) where ET # extract parameters not depending on order, i.e whether they are in θP or θM - local θc = intθ1(θ) (r0, r1, K1, K2) = map((:r0, :r1, :K1, :K2)) do par CA.getdata(θc[par])::ET end local y = r0 .+ r1 .* x.S1 ./ (K1 .+ x.S1) .* x.S2 ./ (K2 .+ x.S2) return (y) end - f_doubleMM_sites = let intθ1 = int_θdoubleMM, f_doubleMM=f_doubleMM, - θFix = CA.ComponentVector{FT}() - function f_doubleMM_with_global_inner( - θP::AbstractVector{ET}, θMs::AbstractMatrix, xP - ) where ET - #first(eachcol(xP)) - local θMst = θMs' # map_f_each:site requires sites-last format - local pred_sites = map_f_each_site(f_doubleMM, θMst, θP, θFix, xP; intθ1) - local pred_global = eltype(pred_sites)[] - return pred_global, pred_sites - end - end n_out = length(θM) rng = StableRNG(111) # n_batch = 10 @@ -93,8 +82,11 @@ function construct_problem(; scenario::Val{scen}) where scen #g_chain_scaled = app ϕunc0 = init_hybrid_ϕunc(cor_ends, zero(FT)) pbm_covars = (:covarK2 ∈ scen) ? (:K2,) : () + f_batch = f_sites = PBMSiteApplicator( + f_doubleMM; θP, θM, θFix=CA.ComponentVector{FT}(), + xPvec=xP[:,1]) HybridProblem(θP, θM, g_chain_scaled, ϕg0, ϕunc0, - f_doubleMM_sites, f_doubleMM_sites, priors_dict, py, + f_batch, f_sites, priors_dict, py, transM, transP, train_dataloader, n_covar, n_site, n_batch, cor_ends, pbm_covars) end @@ -120,6 +112,7 @@ end # @descend_code_warntype test_f_doubleMM(CA.getdata(θ2), xP1) end +#scenario = Val((:default,)) test_without_flux = (scenario) -> begin #scen = CP._val_value(scenario) gdev = @suppress gpu_device() @@ -160,6 +153,8 @@ test_without_flux = (scenario) -> begin loss_gf = get_loss_gf(g, transM, transP, f, y_global_o, intϕ; pbm_covars, n_site_batch = n_batch) (_xM, _xP, _y_o, _y_unc, _i_sites) = first(train_loader) + l1 = loss_gf(p0, _xM, _xP, _y_o, _y_unc, _i_sites) + l1 = @inferred ( # @descend_code_warntype ( loss_gf(p0, _xM, _xP, _y_o, _y_unc, _i_sites)) @@ -173,11 +168,13 @@ test_without_flux = (scenario) -> begin optprob = OptimizationProblem(optf, p0, train_loader) res = Optimization.solve( - # optprob, Adam(0.02), callback = callback_loss(100), maxiters = 1000); - optprob, Adam(0.02), maxiters=1000) - - l1, y_pred_global, y_pred, θMs_pred = loss_gf(res.u, train_loader.data...) - @test isapprox(par_templates.θP, intϕ(res.u).θP, rtol=0.11) + # optprob, Adam(0.02), + callback = callback_loss(100), + optprob, Adam(0.02), epochs = 150); + loss_gf_sites = get_loss_gf(g, transM, transP, f, y_global_o, intϕ; + pbm_covars, n_site_batch = n_site) + l1, y_pred_global, y_pred, θMs_pred = loss_gf_sites(res.u, train_loader.data...) + @test isapprox(par_templates.θP, transP(intϕ(res.u).ϕP), rtol=0.5) end end end @@ -202,7 +199,8 @@ test_with_flux = (scenario) -> begin #callback = callback_loss(100), maxiters = 1200 #maxiters = 1200 #maxiters = 20 - maxiters=200, + #maxiters=200, + epochs = 2, gdev = identity, #gpu_handler = NullGPUDataHandler is_inferred = Val(true), @@ -222,7 +220,8 @@ test_with_flux = (scenario) -> begin (; ϕ, θP, resopt) = solve(prob, solver; scenario, rng, #callback = callback_loss(100), maxiters = 1200, #maxiters = 20 # too small so that it yields error - maxiters=37, + #maxiters=37, # still complains "need to specify maxiters or epochs" + epochs = 1, θmean_quant = 0.01, # test constraining mean to initial prediction gdev = identity, is_inferred = Val(true), @@ -233,9 +232,14 @@ test_with_flux = (scenario) -> begin θP prob.θP end; +end # test_with flux +test_with_flux(Val((:default,))) +test_with_flux(Val((:covarK2,))) - +#scenario = Val((:default,:useSitePBM)) +test_with_flux_gpu = (scenario) -> begin + # using Problem from DoubleMMCase if gdev isa MLDataDevices.AbstractGPUDevice @testset "HybridPosteriorSolver gpu $(last(CP._val_value(scenario)))" begin scenf = Val((CP._val_value(scenario)..., :use_Flux, :use_gpu, :omit_r0)) @@ -247,8 +251,9 @@ test_with_flux = (scenario) -> begin n_site, n_batch = get_hybridproblem_n_site_and_batch(prob; scenario = scenf) n_batches_in_epoch = n_site ÷ n_batch (; ϕ, θP, resopt) = solve(prob, solver; scenario = scenf, rng, - maxiters = 37, # smallest value by trial and error + #maxiters = 37, # smallest value by trial and error #maxiters = 20 # too small so that it yields error + epochs = 2, θmean_quant = 0.01, # test constraining mean to initial prediction is_inferred = Val(true), ); @@ -257,7 +262,8 @@ test_with_flux = (scenario) -> begin # solver = HybridPosteriorSolver(; alg=Adam(0.02), n_MC=3) (; ϕ, θP, resopt, probo) = solve(prob, solver; scenario = scenf, - maxiters = 37, + #maxiters = 37, + epochs = 2, is_inferred = Val(true), ); @test cdev(ϕ.unc.ρsM)[1] > 0 @@ -304,15 +310,21 @@ test_with_flux = (scenario) -> begin scenf = Val((CP._val_value(scenario)..., :use_Flux, :use_gpu, :omit_r0, :f_on_gpu)) rng = StableRNG(111) probg = HybridProblem(DoubleMM.DoubleMMCase(); scenario = scenf); + # put Applicator to gpu (θFix) + probg = CP.update( + probg, + f_batch = fmap(gdev, probg.f_batch), + f_allsites = fmap(gdev, probg.f_allsites)) #prob = CP.update(probg, transM = identity, transP = identity); solver = HybridPosteriorSolver(; alg=Adam(0.02), n_MC=3) - n_site, n_batch = get_hybridproblem_n_site_and_batch(prob; scenario = scenf) + n_site, n_batch = get_hybridproblem_n_site_and_batch(probg; scenario = scenf) n_batches_in_epoch = n_site ÷ n_batch - (; ϕ, θP, resopt, probo) = solve(prob, solver; scenario = scenf, rng, - maxiters = 37, # smallest value by trial and error - #maxiters = 20 # too small so that it yields error + (; ϕ, θP, resopt, probo) = solve(probg, solver; scenario = scenf, rng, + #maxiters = 37, # smallest value by trial and error + #maxiters = 20, # too small so that it yields error + epochs = 1, #θmean_quant = 0.01, # TODO make possible on gpu - cdev = identity, # do not move ζ to cpu # TODO infer in solve from scenario + cdev = identity, # do not move ζ to cpu is_inferred = Val(true), ); @test CA.getdata(ϕ) isa GPUArraysCore.AbstractGPUVector @@ -324,5 +336,7 @@ test_with_flux = (scenario) -> begin end # if gdev isa MLDataDevices.AbstractGPUDevice end # test_with flux -test_with_flux(Val((:default,))) -test_with_flux(Val((:covarK2,))) +test_with_flux_gpu(Val((:default,))) +test_with_flux_gpu(Val((:covarK2,))) +test_with_flux_gpu(Val((:default,:useSitePBM))) + diff --git a/test/test_doubleMM.jl b/test/test_doubleMM.jl index 1d3407f..e87aab8 100644 --- a/test/test_doubleMM.jl +++ b/test/test_doubleMM.jl @@ -61,7 +61,8 @@ end is = repeat((1:length(θP_true))', n_site) θvec = CA.ComponentVector(P = θP_true, Ms = θMs_true) #xPM = map(xP1s -> repeat(xP1s', n_site), xP[1]) - xPM = (S1 = CA.getdata(xP[:S1, :])', S2 = CA.getdata(xP[:S2, :])') + #xPM = (S1 = CA.getdata(xP[:S1, :])', S2 = CA.getdata(xP[:S2, :])') + xPM = xP #θ = hcat(θP_true[is], θMs_true') intθ1 = get_concrete(ComponentArrayInterpreter(vcat(θP_true, θMs_true[:, 1]))) #θpos = get_positions(intθ1) @@ -70,25 +71,28 @@ end fy = let is = is, intθ = intθ (θvec, xPM) -> begin θ = hcat(CA.getdata(θvec.P[is]), CA.getdata(θvec.Ms')) - y = CP.DoubleMM.f_doubleMM(θ, xPM; intθ) + θc = intθ(θ) + y = CP.DoubleMM.f_doubleMM_sites(θc, xPM) #y = @inferred CP.DoubleMM.f_doubleMM(θ, xPM, intθ) # @descend_code_warntype CP.DoubleMM.f_doubleMM(θ, xPM, intθ) #y = CP.DoubleMM.f_doubleMM(θ, xPM, θpos) end end y = @inferred fy(θvec, xPM) - y_exp = map_f_each_site(CP.DoubleMM.f_doubleMM, θMs_true, θP_true, - Vector{eltype(θP_true)}(undef, 0), xP; intθ1) - @test y == y_exp' + + f_batch = PBMSiteApplicator(CP.DoubleMM.f_doubleMM; + θP = θP_true, θM = θMs_true[:,1], θFix=CA.ComponentVector(), xPvec=xP[:,1]) + y_exp = f_batch(θP_true, θMs_true', xP)[2] + @test y == y_exp ygrad = Zygote.gradient(θv -> sum(fy(θv, xPM)), θvec)[1] if gdev isa MLDataDevices.AbstractGPUDevice # θg = gdev(θ) # xPMg = gdev(xPM) # yg = CP.DoubleMM.f_doubleMM(θg, xPMg, intθ); θvecg = gdev(θvec); # errors without ";" - xPMg = gdev(xPM) + xPMg = CP.apply_preserve_axes(gdev, xPM) yg = @inferred fy(θvecg, xPMg) - @test cdev(yg) == y_exp' + @test cdev(yg) == y_exp ygradg = Zygote.gradient(θv -> sum(fy(θv, xPMg)), θvecg)[1] @test ygradg isa CA.ComponentArray @test CA.getdata(ygradg) isa GPUArraysCore.AbstractGPUArray @@ -101,7 +105,7 @@ end @testset "neg_logden_obs Matrix" begin is = repeat(axes(θP_true, 1)', n_site) θvec = CA.ComponentVector(P = θP_true, Ms = θMs_true) - xPM = (S1 = CA.getdata(xP[:S1, :])', S2 = CA.getdata(xP[:S2, :])') + xPM = xP #(S1 = CA.getdata(xP[:S1, :])', S2 = CA.getdata(xP[:S2, :])') #θ = hcat(θP_true[is], θMs_true') intθ1 = get_concrete(ComponentArrayInterpreter(vcat(θP_true, θMs_true[:, 1]))) #θpos = get_positions(intθ1) @@ -109,9 +113,10 @@ end fcost = let is = is, intθ = intθ, fneglogden=fneglogden (θvec, xPM, y_o, y_unc) -> begin θ = hcat(CA.getdata(θvec.P[is]), CA.getdata(θvec.Ms')) - y = CP.DoubleMM.f_doubleMM(θ, xPM; intθ) + θc = intθ(θ) + y = CP.DoubleMM.f_doubleMM_sites(θc, xPM) #y = CP.DoubleMM.f_doubleMM(θ, xPM, θpos) - res = fneglogden(y_o, y', y_unc) + res = fneglogden(y_o, y, y_unc) res end end @@ -259,7 +264,8 @@ if gdev isa MLDataDevices.AbstractGPUDevice @testset "transfer NormalScalingModelApplicator to gpu" begin @test g_gpu.μ isa GPUArraysCore.AbstractGPUArray y_gpu = g_gpu(xM_gpu, ϕg0_gpu) + @test y_gpu isa GPUArraysCore.AbstractGPUArray y = g(xM, ϕg0) @test cdev(y_gpu) ≈ y end -end \ No newline at end of file +end From 3a00f78b015a0a9d6a933cc15679a246bb59d99d Mon Sep 17 00:00:00 2001 From: Thomas Wutzler Date: Fri, 15 Aug 2025 16:00:10 +0200 Subject: [PATCH 05/21] Setup documentation of tutoritals by quarto --- .gitignore | 4 + README.md | 2 +- dev/Project.toml | 3 + dev/doubleMM.jl | 56 ++- docs/make.jl | 16 +- docs/src/autodocs.md | 9 - .../hybrid_variational_setup.png | Bin .../theory_hvi.md} | 25 +- docs/src/index.md | 3 +- docs/src/problem.md | 2 +- docs/src/reference/reference_internal.md | 19 + docs/src/reference/reference_public.md | 18 + docs/src/tutorials/Project.toml | 14 + docs/src/tutorials/basic_cpu.md | 393 ++++++++++++++++ docs/src/tutorials/basic_cpu.qmd | 431 ++++++++++++++++++ .../how_to_guides/corr_site_global.qmd | 431 ++++++++++++++++++ .../intermediate/basic_cpu_results.jld2 | Bin 0 -> 198608 bytes docs/src/tutorials/test1.md | 77 ++++ docs/src/tutorials/test1.qmd | 78 ++++ docs/src/tutorials/twutz_txt.bib | 36 ++ docs/src/worked_example.md | 6 - src/DoubleMM/f_doubleMM.jl | 46 +- src/HybridProblem.jl | 52 ++- src/HybridSolver.jl | 18 +- src/HybridVariationalInference.jl | 10 +- src/ModelApplicator.jl | 22 +- src/PBMApplicator.jl | 23 +- src/bijectors_utils.jl | 7 + src/cholesky.jl | 7 +- test/test_cholesky_structure.jl | 20 +- 30 files changed, 1723 insertions(+), 105 deletions(-) delete mode 100644 docs/src/autodocs.md rename docs/src/{ => explanation}/hybrid_variational_setup.png (100%) rename docs/src/{background.md => explanation/theory_hvi.md} (91%) create mode 100644 docs/src/reference/reference_internal.md create mode 100644 docs/src/reference/reference_public.md create mode 100644 docs/src/tutorials/Project.toml create mode 100644 docs/src/tutorials/basic_cpu.md create mode 100644 docs/src/tutorials/basic_cpu.qmd create mode 100644 docs/src/tutorials/how_to_guides/corr_site_global.qmd create mode 100644 docs/src/tutorials/intermediate/basic_cpu_results.jld2 create mode 100644 docs/src/tutorials/test1.md create mode 100644 docs/src/tutorials/test1.qmd create mode 100644 docs/src/tutorials/twutz_txt.bib delete mode 100644 docs/src/worked_example.md diff --git a/.gitignore b/.gitignore index 9429e18..54510fd 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,7 @@ tmp/ **/tmp.svg dev/intermediate/* dev/tmp.pdf +docs/src/**/*_files/ +docs/src/**/*.html +docs/src/**/*.ipynb +docs/src/**/*Manifest.toml diff --git a/README.md b/README.md index 7cbb6bf..e3df30f 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ microbial community that differs by site, but is hypothesized to correlate with and pedogenic factors, such as clay content. We apply a machine learning model to estimate CUE and fit it end-to-end with other parameters of the process-model to observed carbon stocks. -In addtion to the predicted CUE, we are interested in the uncertainty of CUE and its correlation +In addition to the predicted CUE, we are interested in the uncertainty of CUE and its correlation with other parameters. We are interested in the entire posterior probability distribution of the model parameters. diff --git a/dev/Project.toml b/dev/Project.toml index 8cdb38c..2466234 100644 --- a/dev/Project.toml +++ b/dev/Project.toml @@ -1,6 +1,8 @@ [deps] +AlgebraOfGraphics = "cbdf2221-f076-402e-a563-3d30da359d67" Bijectors = "76274a88-744f-5084-9051-94815aaf08c4" CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" +CairoMakie = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0" CategoricalArrays = "324d7699-5711-5eae-9e2f-1d82baa6b597" ChainRulesTestUtils = "cdddcdb0-9152-4a09-a978-84456f9df70a" ColorBrewer = "a2cac450-b92f-5266-8821-25eda20663c8" @@ -8,6 +10,7 @@ ComponentArrays = "b0b7db55-cfe3-40fc-9ded-d10e2dbeff66" DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" DistributionFits = "45214091-1ed4-4409-9bcf-fdb48a05e921" Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f" +FigureHelpers = "9ae22f58-2487-4805-bfc5-386577db46c8" Flux = "587475ba-b771-5e3f-ad9e-33799f191a9c" GPUArraysCore = "46192b85-c4d5-4398-a991-12ede77f4527" HybridVariationalInference = "a108c475-a4e2-4021-9a84-cfa7df242f64" diff --git a/dev/doubleMM.jl b/dev/doubleMM.jl index 3af5888..c399787 100644 --- a/dev/doubleMM.jl +++ b/dev/doubleMM.jl @@ -1,3 +1,4 @@ +# start from within dev directory mljulia --project using Test # Pkg.activate("dev"); cd("dev") using HybridVariationalInference using HybridVariationalInference: HybridVariationalInference as HVI @@ -57,7 +58,7 @@ n_epoch = 80 rng, callback = callback_loss(n_batches_in_epoch * 10), maxiters = n_batches_in_epoch * n_epoch); # update the problem with optimized parameters -prob0o = probo; +prob0o = prob1o =probo; y_pred_global, y_pred, θMs = gf(prob0o; scenario, is_inferred=Val(true)); # @descend_code_warntype gf(prob0o; scenario) #@usingany UnicodePlots @@ -191,6 +192,7 @@ function fstate_ϕunc(state) end n_epoch = 100 #n_epoch = 400 +#n_epoch = 2 (; ϕ, θP, resopt, interpreters, probo) = solve(prob2, HVI.update(solver_post, n_MC = 12); #HVI.update(solver_post, n_MC = 30); @@ -204,10 +206,11 @@ prob2o = probo; using JLD2 #fname_probos = "intermediate/probos_$(last(scenario)).jld2" fname_probos = "intermediate/probos800_$(last(HVI._val_value(scenario))).jld2" + @show fname_probos #JLD2.save(fname_probos, Dict("prob1o" => prob1o, "prob2o" => prob2o)) JLD2.save(fname_probos, Dict("prob2o" => prob2o)) tmp = JLD2.load(fname_probos) - prob2o = tmp["prob2o"] + prob2o = probo = tmp["prob2o"] end () -> begin # load the non-covar scenario, and neglect_cor scenario @@ -243,7 +246,6 @@ end n_sample_pred = 400 (; y, θsP, θsMs) = predict_hvi(rng, prob2o_K1global; scenario = scenario_K1global, n_sample_pred); (y2_K1global, θsP2_K1global, θsMs2_K1global) = (y, θsP, θsMs); - end () -> begin # otpimize using LUX @@ -351,6 +353,7 @@ histogram(θsP) end () -> begin # look at distribution of parameters, predictions, and likelihood and elob at one site + # compare prob1o (with constraining theta to be near original mean) to unconstrained HVI function predict_site(probo, i_site) (; y, θsP, θsMs, entropy_ζ) = predict_hvi(rng, probo; scenario, n_sample_pred) y_site = y[:, i_site, :] @@ -372,7 +375,7 @@ end end i_site = 1 (r1s, nLs, ent, y_site) = predict_site(prob2o, i_site) - (r1sc, nLsc, entc, y_sitec) = predict_site(prob1o, i_site) + (r1sc, nLsc, entc, y_sitec) = predict_site(prob1o, i_site) # result from point-solver mean(nLs), mean(nLsc) ent, entc # with larger uncertaintsy (higher entropy) in unconstrained cost much lower @@ -553,7 +556,7 @@ end chain_K1global = load(fname_K1global, "chain"; iotype = IOStream); ζsP_hmc_K1global = Array(chain_K1global)[:,1:n_θP]' ζsMst_hmc_K1global = reshape(Array(chain_K1global)[:,(n_θP+1) : end], n_sample_NUTS, n_site, n_θM) - ζsMs_hmc_K1global = permutedims(ζsMst_K1global, (2,3,1)) + ζsMs_hmc_K1global = permutedims(ζsMst_hmc_K1global, (2,3,1)) end #ζi = first(eachrow(Array(chain))) @@ -589,7 +592,6 @@ end save("tmp.svg", fig) end - mean_y_invζ = mean_y_hmc = map(mean, eachslice(y_hmc; dims = (1, 2))); #describe(mean_y_pred - y_o) histogram(vec(mean_y_invζ) - vec(y_true)) # predictions centered around y_o (or y_true) @@ -617,8 +619,13 @@ lineplot!(plt, 0, 1) #------------------ compare HVI vs HMC sample # reload results from run without covars, see above () -> begin # compare against HVI sample - #@usingany AlgebraOfGraphics, TwPrototypes, CairoMakie, DataFrames - makie_config = ppt_MakieConfig() + #@usingany AlgebraOfGraphics, FigureHelpers, TwPrototypes, CairoMakie, DataFrames + #@usingany LaTeXStrings + using AlgebraOfGraphics, CairoMakie, FigureHelpers + using AlgebraOfGraphics, CairoMakie, FigureHelpers + makie_config = ppt_MakieConfig(fontsize=14) # decrease standard font from 18 to 14 + paper_config = paper_MakieConfig() + set_default_AoGTheme!(;makie_config) using ColorBrewer: ColorBrewer # two same colors for hmc anc hvi , additional for further unspecified labels @@ -708,14 +715,14 @@ lineplot!(plt, 0, 1) end ) # vcat #cf90 = (x) -> quantile(x, [0.05,0.95]) - plot_par_densities = (dfs) -> begin + plot_par_densities = (dfs; makie_config = makie_config) -> begin plt = (data(dfs) * mapping(:value=> (x -> x ) => "", color=:Method) * AlgebraOfGraphics.density(datalimits=extrema) + data(df_true) * mapping(:value => "") * visual(VLines; color=:blue, linestyle=:dash)) * mapping(col=:variable => sorter(lower_lastdigits.(vcat(keys(θP)..., keys(θM)...))), row = (:site => nonnumeric)) #mapping(col=:variable, row = (:site => nonnumeric)) #fig = Figure(size = get_fig_size(makie_config, xfac=1, width2height = 1/2)); # 10 sites - fig = Figure(size = get_fig_size(makie_config, xfac=1, width2height = 1)); + fig = figure_conf(1.0; makie_config); ffig = draw!(fig, plt, facet=(; linkxaxes=:minimal, linkyaxes=:none,), axis=(xlabelvisible=false,yticklabelsvisible=false), @@ -724,8 +731,12 @@ lineplot!(plt, 0, 1) legend!(fig[length(i_sites),1], ffig, ; tellwidth=false, halign=:left, valign=:bottom , margin=(10, 10, 10, 10)) fig end + () -> begin + save_with_config(joinpath(pwd(), "tmp.svg"), fig; makie_config = MakieConfig()) + save_with_config(joinpath(pwd(), "tmp"), fig; makie_config = paper_config) + save_with_config("tmp", fig) # returns path in tmp to click on + end fig = plot_par_densities(subset(df, :Method => ByRow(∈((:hvi,:hmc))))) - save("tmp.svg", fig) save_with_config("intermediate/compare_hmc_hvi_sites_$(last(HVI._val_value(scenario)))", fig; makie_config) fig = plot_par_densities(subset(df, :Method => ByRow(∈((:hmc,:neglect_cor))))) @@ -733,7 +744,6 @@ lineplot!(plt, 0, 1) save_with_config("intermediate/compare_hmc_neglectcor_sites_$(last(HVI._val_value(scenario)))", fig; makie_config) fig = plot_par_densities(subset(df, :Method => ByRow(∈((:hvi,:hvi_indep))))) - fig save("tmp.svg", fig) save_with_config("intermediate/compare_hvi_indep_sites_$(last(HVI._val_value(scenario)))", fig; makie_config) @@ -797,7 +807,7 @@ lineplot!(plt, 0, 1) mapping(:value=>"", col=:y_i, row = :site) #fig = Figure(size = get_fig_size(makie_config, xfac=1, width2height = 1/2)); - fig = Figure(size = get_fig_size(makie_config, xfac=1, width2height = 1)); + fig = figure_conf(1; makie_config); ffig = draw!(fig, plt, facet=(; linkxaxes=:minimal, linkyaxes=:none,), axis=(xlabelvisible=false,yticklabelsvisible=false), @@ -841,14 +851,14 @@ function compute_sd_cor_PMs(_ζsP, _ζsMs; i_sites_inspect = [1,2,3]) end function draw_cor_fig(cor, method; makie_config, par_names) - fig = Figure(size = get_fig_size(makie_config, xfac=0.8, width2height = 1.3)); + fig = figure_conf(1.3, 0.8; makie_config); ax = Axis(fig[1,1], xticklabelsvisible=false,yticklabelsvisible=true, xticksvisible=false, yticksvisible=true, yticks = (axes(par_names,1), par_names), yreversed = true, aspect = 1, - title = "Correlations in $method") + title = "Corr. $method") hm = heatmap!(ax, cor) rowsize!(fig.layout, 1, Aspect(1, 1)) Colorbar(fig[1,2], hm ; tellwidth=true, tellheight=false) @@ -877,6 +887,7 @@ end save_with_config("intermediate/cor_hvi_$(last(HVI._val_value(scenario)))", fig; makie_config) fig = draw_cor_fig(corPMs_hvi_neglect_cor, "HVI neglecting block correlations"; makie_config, par_names) save_with_config("intermediate/cor_hvi_neglect_cor_$(last(HVI._val_value(scenario)))", fig; makie_config) + save_with_config("tmp", fig; makie_config) # fig = draw_cor_fig(corPMs_hvi_K1global, "HVI K1 global K2 site-dependent"; makie_config, par_names = par_names_globalK1) save_with_config("intermediate/cor_hvi_K1global_$(last(HVI._val_value(scenario)))", fig; makie_config) @@ -902,18 +913,19 @@ end value = ζMs_true'[:,i_par], ),) end) - plt = data(df_sd) * mapping(color=:Method, row=:par) * + plt = data(df_sd) * mapping(color=:Method=>"", row=:par) * mapping(:value=>"", :sd => "Predicted Standard Deviation") * visual(Scatter, alpha = 0.5) #fig = Figure(size = get_fig_size(makie_config, xfac=1, width2height = 1/2)); - fig = Figure(size = get_fig_size(makie_config, xfac=1, width2height = 1)); - ffig = draw!(fig, plt, scales(Color = (; palette = color_methods)); facet=(; linkxaxes=:none, linkyaxes=:none,)) + fig = figure_conf(1;makie_config); + #fig = figure_conf(1;makie_config = paper_config); + ffig = draw!(fig, plt, scales(Color = (; palette = color_methods)); + facet=(; linkxaxes=:none, linkyaxes=:none,), + ) #legend!(fig[1,1], ffig, ;tellheight=false, tellwidth=false, halign=:right, valign=:top, margin=(10, 10, 10, 10)) legend!(fig[1,1], ffig, ;tellheight=false, tellwidth=false, halign=:left, valign=:bottom, margin=(10, 10, 10, 10)) - fig - save_with_config("intermediate/compare_hmc_hvi_sdMs_$(last(HVI._val_value(scenario)))", fig; makie_config) - - + save_with_config("tmp", fig; makie_config) + #save_with_config("tmp", fig; makie_config=paper_config) end () -> begin # inspect marginal variance diff --git a/docs/make.jl b/docs/make.jl index 75cc599..e001528 100644 --- a/docs/make.jl +++ b/docs/make.jl @@ -15,8 +15,20 @@ makedocs(; pages=[ "Home" => "index.md", "Problem" => "problem.md", - "Background" => "background.md", - "Example" => "worked_example.md", + "Tutorials" => [ + "Basic workflow" => "tutorials/basic_cpu.md", + "Test quarto markdown" => "tutorials/test1.md", + ], + "How to" => [ + #".. model site-global corr" => "tutorials/how_to_guides/corr_site_global.md", + ], + "Explanation" => [ + "Theory" => "explanation/theory_hvi.md", + ], + "Reference" => [ + "Public" => "reference/reference_public.md", + "Internal" => "reference/reference_internal.md", + ], ], ) diff --git a/docs/src/autodocs.md b/docs/src/autodocs.md deleted file mode 100644 index 2520155..0000000 --- a/docs/src/autodocs.md +++ /dev/null @@ -1,9 +0,0 @@ -```@meta -CurrentModule = HybridVariationalInference -``` - -# Generated documentation - -```@autodocs -Modules = [HybridVariationalInference] -``` diff --git a/docs/src/hybrid_variational_setup.png b/docs/src/explanation/hybrid_variational_setup.png similarity index 100% rename from docs/src/hybrid_variational_setup.png rename to docs/src/explanation/hybrid_variational_setup.png diff --git a/docs/src/background.md b/docs/src/explanation/theory_hvi.md similarity index 91% rename from docs/src/background.md rename to docs/src/explanation/theory_hvi.md index 150d1da..01284d7 100644 --- a/docs/src/background.md +++ b/docs/src/explanation/theory_hvi.md @@ -1,4 +1,4 @@ -# Background +# Theory ## Setup of the Problem The hybrid variational inferecne, HVI, infers a parametric approximations of @@ -21,9 +21,9 @@ the entire real space, and, at the same, time provides sufficient flexibility. The optimized parameters, $\phi = (\phi_g, \phi_P, \phi_q)$ are the same for each site. This allows to apply minibatching, which does not require predicting the -full observation vector, $y$, during paramter fitting. +full observation vector, $y$, during parameter fitting. -In order to learn $\phi_g$, the user needs to provide a batch of $i \in \{1 \ldots n_{b}\}$ observation $y_i$, their uncertinaty, $y_{unc,i}$, covariates $x_{Mi}$ and drivers $x_{Pi}$ in each iteration of the optimization. Moreover, for each $i$, HVI needs to draw $n_{MC}$ samples parameters $\zeta_i$, transforms and runs the model to compute a prediction for $y_i$ and computes $\log p(y_i)$ to estimate the exptected value occuring in the ELBO (see next section). +In order to learn $\phi_g$, the user needs to provide a batch of $i \in \{1 \ldots n_{b}\}$ observation $y_i$, their uncertinaty, $y_{unc,i}$, covariates $x_{Mi}$ and drivers $x_{Pi}$ in each iteration of the optimization. Moreover, for each $i$, HVI needs to draw $n_{MC}$ samples parameters $\zeta_i$, transforms and runs the model to compute a prediction for $y_i$ and computes $\log p(y_i)$ to estimate the expected value occurring in the ELBO (see next section). ## Estimation using the ELBO @@ -41,10 +41,10 @@ However, HVI needs to compute the gradient of this expectation of the joint post density of observations and parameter, $\log p(y,\theta) = \log p(y|\theta) + \log p(\theta)$, by automatic differentiation. Hence, HVI needs to differentiate the process-model, $f$, -that is run during compuatation of the Likelihood of the data, $p(y|\theta)$. +that is run during computation of the Likelihood of the data, $p(y|\theta)$. ## Parameter transformations -HVI prescribes $q(\theta)$ to be the distribution of a transfored random variable, +HVI prescribes $q(\theta)$ to be the distribution of a transformed random variable, $\theta = T^{-1}(\zeta)$, where $\zeta = T(\theta)$ has a multivariate Normal distribution (MVN) in unconstrained $\mathbb{R}^n$. The transformation, $T$, provides more flexibility to model the posterior and takes care of the case where the support of $q(\theta)$ is @@ -67,7 +67,7 @@ HVI assumes that transforms of the latent variable follow a multivariate normal $$\Sigma = diag(\sigma_\zeta) C_\zeta \, diag(\sigma_\zeta),$$ -where $\sigma_\zeta$ is the vector of standard deviations, and $C$ is the correlation matrix. HVI further assumes that uncertainties of site parameters, $\zeta_{M1}, \zeta_{M2}, \ldots$, differ only by their standard deviation, i.e. that the parameter correlations is the same and independent of other sites. With the additionalassumtion of $\zeta_{Ms}$ being independent of $\zeta_P$, the covariance matrix has a block-diagonal structure with one block for $\zeta_P$ and $n_{site}$ repetitions of a block for $\zeta_{M}$. By definition of a correlation matrix, all the main diagonal elements are 1. E.g. for 2 elements in $\zeta_{P}$ and 3 enlements in $\zeta_{M}$ this results in: +where $\sigma_\zeta$ is the vector of standard deviations, and $C$ is the correlation matrix. HVI further assumes that uncertainties of site parameters, $\zeta_{M1}, \zeta_{M2}, \ldots$, differ only by their standard deviation, i.e. that the parameter correlations is the same and independent of other sites. With the additional assumption of $\zeta_{Ms}$ being independent of $\zeta_P$, the covariance matrix has a block-diagonal structure with one block for $\zeta_P$ and $n_{site}$ repetitions of a block for $\zeta_{M}$. By definition of a correlation matrix, all the main diagonal elements are 1. E.g. for 2 elements in $\zeta_{P}$ and 3 enlements in $\zeta_{M}$ this results in: $$\begin{pmatrix} \begin{matrix} 1 & \rho_{Pab} \\ \rho_{Pab} & 1 \end{matrix} @@ -85,18 +85,23 @@ $$\begin{pmatrix} In order to draw random numbers from such a normal distribution, the Cholesky decomposition of the covariance matrix is required: $\Sigma = U_{\Sigma}^T U_{\Sigma} = diag(\sigma_\zeta)^T U_C^T U_C \, diag(\sigma_\zeta)$, where $U_{\Sigma}$ and $U_C$ are -the cholesky factors of the covariance and correlation matrices repectively. They are +the cholesky factors of the covariance and correlation matrices respectively. They are upper triangular matrices. Since, the block-diagonal structure of the correlation matrix carries over to the cholesky factor, $U_C$ is a block-diagnonal matrix of smaller cholesky factors. If HVI modeled the depence between $\zeta_{Ms}$ and $\zeta_P$, the correlation matrhix would have an additional block repeated in the first row and its transpose repeated in the first column -in $\Sigma$, leading to a cholesky factor $U_C$ having entries in all the rows. HVI allows +in $\Sigma$, leading to a cholesky factor $U_C$ having entries in all the rows. + +HVI allows to accoung for correlations among those -parameters by providing the values of the global parameters to the maching learning +parameters by providing the values of the global parameters to the machine learning model, $g$ in addition to the covariates. +$$ +p(\zeta_{Ms}, \zeta_P) = p(\zeta_{Ms} | \zeta_P) p(\zeta_P)$$ + Since the differentiation through a general cholesky-decomposition is problematic, HVI directly parameterizes the Cholesky factor of the correlation matrix rather than the correlation matrix itself. For details see the Wutzler in prep. @@ -159,7 +164,7 @@ In practical terms the cost function - computes expected value of $\mu_{\zeta_{Ms}}$ using the machine learning model given covariates, $X_M$, given $\zeta_P$, and given optimized parameters $\phi_g$. - generates a sample of $\zeta_{Ms}$ by adding the computed $\mu_{\zeta_{Ms}}$ to $\zeta_{rMs}$ - transforms $(\zeta_{P}, \zeta_{Ms})$ to the original scale to get a sample of model parameters $(\theta_{rP}, \theta_{rMs})$ -- computes negative Log-denstiy of observations for each sample using the physical model, $f$, and subtract the absolute determinant of the transformation, evaluted at the sample. +- computes negative Log-density of observations for each sample using the physical model, $f$, and subtract the absolute determinant of the transformation, evaluated at the sample. - approximates the expected value of the former by taking the mean across the samples - subtract the entropy of the normal distribution approximator diff --git a/docs/src/index.md b/docs/src/index.md index 98ca9af..5d09653 100644 --- a/docs/src/index.md +++ b/docs/src/index.md @@ -6,6 +6,5 @@ CurrentModule = HybridVariationalInference Documentation for [HybridVariationalInference](https://github.com/EarthyScience/HybridVariationalInference.jl). -```@index -``` + diff --git a/docs/src/problem.md b/docs/src/problem.md index 36daf44..edfd409 100644 --- a/docs/src/problem.md +++ b/docs/src/problem.md @@ -15,6 +15,6 @@ microbial community that differs by site, but is hypothesized to correlate with and pedogenic factors, such as clay content. We apply a machine learnign model to estimate CUE and fit it end-to-end with other parameters of the process-model to observed carbon stocks. -In addtion to the predicted CUE, we are interested in the uncertainty of CUE and its correlation with other parameters, such a the capacity of the soil minerals to bind carbon. +In addition to the predicted CUE, we are interested in the uncertainty of CUE and its correlation with other parameters, such a the capacity of the soil minerals to bind carbon. I.e. we are interetes in the entire posterior probability distribution of the model parameters. diff --git a/docs/src/reference/reference_internal.md b/docs/src/reference/reference_internal.md new file mode 100644 index 0000000..53b2527 --- /dev/null +++ b/docs/src/reference/reference_internal.md @@ -0,0 +1,19 @@ + + +``` @meta +CurrentModule = HybridVariationalInference +``` + +# Reference of internal functions + +In this reference, you will find a detailed overview of internal functions. +They are documented here mostly for development of the package. +They are not part of the public API and may change without notice. + +``` @autodocs +Modules = [ + HybridVariationalInference, +] +Public = false +``` + diff --git a/docs/src/reference/reference_public.md b/docs/src/reference/reference_public.md new file mode 100644 index 0000000..678706a --- /dev/null +++ b/docs/src/reference/reference_public.md @@ -0,0 +1,18 @@ + + +``` @meta +CurrentModule = HybridVariationalInference +``` + +# Reference + +In this reference, you will find a detailed overview of the package API, +i.e. the docstrings. + +``` @autodocs +Modules = [ + HybridVariationalInference, +] +Private = false +``` + diff --git a/docs/src/tutorials/Project.toml b/docs/src/tutorials/Project.toml new file mode 100644 index 0000000..4987410 --- /dev/null +++ b/docs/src/tutorials/Project.toml @@ -0,0 +1,14 @@ +[deps] +Bijectors = "76274a88-744f-5084-9051-94815aaf08c4" +CommonSolve = "38540f10-b2f7-11e9-35d8-d573e4eb0ff2" +ComponentArrays = "b0b7db55-cfe3-40fc-9ded-d10e2dbeff66" +DistributionFits = "45214091-1ed4-4409-9bcf-fdb48a05e921" +HybridVariationalInference = "a108c475-a4e2-4021-9a84-cfa7df242f64" +JLD2 = "033835bb-8acc-5ee8-8aae-3f567f8a3819" +MLUtils = "f1d291b0-491e-4a28-83b9-f70985020b54" +OptimizationOptimisers = "42dfb2eb-d2b4-4451-abcd-913932933ac1" +Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" +SimpleChains = "de6bee2f-e2f4-4ec7-b6ed-219cc6f6e9e5" +StableRNGs = "860ef19b-820b-49d6-a774-d7a799459cd3" +StatsFuns = "4c63d2b9-4356-54db-8cca-17b64c39e42c" +Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" diff --git a/docs/src/tutorials/basic_cpu.md b/docs/src/tutorials/basic_cpu.md new file mode 100644 index 0000000..3f36331 --- /dev/null +++ b/docs/src/tutorials/basic_cpu.md @@ -0,0 +1,393 @@ +# Basic workflow without GPU + + +``` @meta +CurrentModule = HybridVariationalInference +``` + +First load necessary packages. + +``` julia +using HybridVariationalInference +using HybridVariationalInference: HybridVariationalInference as HVI +using ComponentArrays: ComponentArrays as CA +using Bijectors +using StableRNGs +using SimpleChains +using StatsFuns +using MLUtils +using DistributionFits +``` + +Next, specify many moving parts of the Hybrid variational inference (HVI) + +## The process-based model + +The example process based model (PBM) predicts a double-monod constrained rate +for different substrate concentrations, `S1`, and `S2`. + +$$ +y = r_0+ r_1 \frac{S_1}{K_1 + S_1} \frac{S_2}{K_2 + S_2}$$ + +``` julia +function f_doubleMM(θc::CA.ComponentVector{ET}, x) where ET + # extract parameters not depending on order, i.e whether they are in θP or θM + (r0, r1, K1, K2) = map((:r0, :r1, :K1, :K2)) do par + CA.getdata(θc[par])::ET + end + r0 .+ r1 .* x.S1 ./ (K1 .+ x.S1) .* x.S2 ./ (K2 .+ x.S2) +end +``` + +Its formulation is independent of which parameters are global, site-specific, +or fixed during the model inversion. +However, it cannot assume an ordering in the parameters, but needs to +access the components by its symbolic names in the provided `ComponentArray`. + +## Likelihood function + +HVI requires the evaluation of the likelihood of the predictions. +It corresponds to the cost of predictions given some observations. + +The user specifies a function of the negative log-Likehood +`neg_logden(obs, pred, uncertainty_parameters)`, +where all of the parameters are arrays with columns for sites. + +Here, we use the [`neg_logden_indep_normal`](@ref) function +that assumed observations to be distributed independently +normal around a true value. +The provided `y_unc` uncertainty parameters, here, corresponds to +`logσ2`, denoting the log of the variance parameter of the normal distribution. + +``` julia +py = neg_logden_indep_normal +``` + +## Templates, transformations, and correlation structure of parameters + +### Global and site-specific parameters + +In this example, we will assign a fixed value to r0 parameter, treat +the K2 parameter as unknown but the same across sites, and predict +r1 and K1 for each site separately, based on covariates known at the sites. + +Here we provide initial values for them by using `ComponentVector`. + +``` julia +FT = Float32 +θM0 = θM = CA.ComponentVector{FT}(r1=0.5, K1=0.2) # separately for each individual +θP0 = θP = CA.ComponentVector{FT}(K2=2.0) # population: same across individuals, +θFix = CA.ComponentVector{FT}(r0=0.3) # r0, i.e. not estimated +``` + +### Parameter Transformations + +HVI allows for transformations of parameters in an unconstrained space, +where the probability density is not strictly zero anywhere to the original +constrained space. + +Here, our model parameters are strictly positive, and we use the exponential function +to transform constrained estimates to the original scale. + +``` julia +transP = Stacked(HVI.Exp()) +transM = Stacked(HVI.Exp(), HVI.Exp()) +``` + +Parameter transformations are specified using the `Bijectors` package. +Because, `Bijectors.elementwise(exp)`, has problems with automatic differentiation (AD) +on GPU, we use the non-exported [`Exp`]() wrapper inside `Bijectors.Stacked`. + +### Prior information on parameters at constrained scale + +HVI is an approximate bayesian analysis and combines prior information on +the parameters with the model and observed data. + +Here, we provide a wide prior by fitting a Lognormal distributions to +- the mean corresponding to the initial value provided above +- the 0.95-quantile 3 times the mean + +``` julia +θall = vcat(θP, θM) +priors_dict = Dict{Symbol, Distribution}( + keys(θall) .=> fit.(LogNormal, θall, QuantilePoint.(θall .* 3, 0.95))) +``` + +### Correlation structure + +HVI models the posterior of the parameters at unconstrained scale using a +multivariate normal distribution. It estimates a parameterization of the +associated blocks in the correlation matrx and requires a specification +of the block-structure. + +This is done by specifying the positions of the end of the blocks for +the global (P) and the site-specific parameters (M) respectively using +a `NamedTuple` of integer vectors. + +``` julia +cor_ends = (P=[length(θP)], M=[length(θM)]) +``` + +Here, we specify a single entry each, meaning, there is only one big +block respectively, spanning all parameters. + +### Further parameters for the posterior approximation. + +HVI uses additional fitted parameters to represent the means and the +covariance matrix of the posterior distribution of model parameters. +Here, we obtain construct initial estimates. using [`init_hybrid_ϕunc`](@ref) + +``` julia +ϕunc0 = init_hybrid_ϕunc(cor_ends, zero(FT)) +``` + + ComponentVector{Float32}(logσ2_ζP = Float32[-10.0], coef_logσ2_ζMs = Float32[-10.0 -10.0; 0.0 0.0], ρsP = Float32[], ρsM = Float32[0.0]) + +The returned `ComponentVector` has entries for +- `logσ2_ζP`: log of the estimated marginal variance of global parameters +- `coef_logσ2_ζMs`: coefficients of a linear model of log of +the estimated marginal variance of site-dependent parameters dependent on +the predicted parameter +- `ρsP`, `ρsM`: parameterization of the blocks in the correlation matrix for +global and site-specific parameters respectively. + +## Observations, model drivers and covariates + +The model is inverted using the +- observed data, `y_o` +- its uncertainty, `y_unc` +- known covariates across sites, `xM` +- model drivers, `xP` +Here, we use synthetic data generated by the package. + +``` julia +rng = StableRNG(111) +scenario = Val((:omit_r0, :covarK2, )) +(; xM, xP, y_o, y_unc) = gen_hybridproblem_synthetic(rng, DoubleMM.DoubleMMCase(); scenario) +``` + +Lets look at them. + +``` julia +size(xM), size(xP), size(y_o), size(y_unc) +``` + + ((5, 800), (16, 800), (8, 800), (8, 800)) + +All of them have 800 columns, corresponding to 800 sites. +There are 5 site-covaraitas and 16 values of model drivers, and 8 observations per site. + +``` julia +xP[:,1] +``` + + ComponentVector{Float32}(S1 = Float32[0.5, 0.5, 0.5, 0.5, 0.4, 0.3, 0.2, 0.1], S2 = Float32[1.0, 3.0, 4.0, 5.0, 5.0, 5.0, 5.0, 5.0]) + +In each column of the model drivers there is a ComponentVector with +components S1 and S2 corresponding to the concentrations, for which outputs +were observed. + +The `y_unc` becomes its meaning by the Liklihood-function to be specified with +the problem below. + +### Providing data in Batches + +HVI uses `MLUtils.DataLoader` to provide baches of the data during each +iteration of the solver. In addition to the data, it provides an +index to the sites inside a tuple. + +``` julia +n_site = size(y_o,2) +n_batch = 20 +train_dataloader = MLUtils.DataLoader( + (xM, xP, y_o, y_unc, 1:n_site), batchsize=n_batch, partial=false) +``` + +## The Machine-Learning model + +The machine-learning (ML) part predicts parameters of the posterior of site-specific +PBM parameters, given the covariates. +Here, we specify a 3-layer feed-forward neural network using the `SimpleChains` +framework which works efficiently on CPU. + +``` julia +n_out = length(θM) # number of individuals to predict +pbm_covars = (:K2,) # global parameters used as input to ML-model +n_covar = size(xM,1) +n_input = n_covar + length(pbm_covars) + +g_chain = SimpleChain( + static(n_input), # input dimension (optional) + TurboDense{true}(tanh, n_input * 4), + TurboDense{true}(tanh, n_input * 4), + # dense layer without bias that maps to n outputs to (0..1) + TurboDense{false}(logistic, n_out) +) +# get a template of the parameter vector, ϕg0 +g_chain_app, ϕg0 = construct_ChainsApplicator(rng, g_chain) +``` + +The `g_chain_app` `ChainsApplicator` precits the parameters of the posterior, +given a vector of ML weights,`ϕg`. +During construction, an initial template of this vector is created. +This abstraction layer allows to use different ML frameworks and replace the +`SimpleChains` model by `Flux` or `Lux`. + +### Conditional independence of global and site parameters + +The `pbm_covars` specifies which sampled global parameters should be +provided as inputs to the ML model. + +The reason for providing global parameters as inputs is to allow for +correlations among site-parameters and global parameters, despite +the required conditional independence of parameters. + +### Using priors to scale ML-parameter estimates + +In order to balance gradients, the `g_chain_app` ModelApplicator defined above +predicts on a scale (0..1). +Now the priors are used to translate this to the parameter range by using the +cumulative density distribution. + +However, HVI needs a prior on unconstrained scale, and we need the priors on +this unconstrained scale. +This can be mathematically worked out for specific prior distribution forms. +But for simplicity, here a [`NormalScalingModelApplicator`](@ref) +is fitted to the transformed 5% and 95% quantiles of the original prior. + +``` julia +priorsM = [priors_dict[k] for k in keys(θM)] +lowers, uppers = get_quantile_transformed(priorsM, transM) +g_chain_scaled = NormalScalingModelApplicator(g_chain_app, lowers, uppers, FT) +``` + +The `g_chain_scaled` `ModelApplicator` now predicts in unconstrained scale +with transforms ML predctions around 0.5 to the range of +high prior probability of the parameters, +and transforms ML predictions near 0 or 1 towards the outer lower probability ranges. + +## Assembling the information + +All the specifications above are stored in a [`HybridProblem`](@ref) structure. + +Before, a [`PBMSiteApplicator`](@ref) is constructed that translates an invocation +given a vector of global parameters, and a matrix of site parameters to +invocation of the process based model (PBM), defined at the beginning. + +``` julia +f_batch = f_allsites = PBMSiteApplicator(f_doubleMM; θP, θM, θFix, xPvec=xP[:,1]) + +prob = HybridProblem(θP, θM, g_chain_scaled, ϕg0, ϕunc0, + f_batch, f_allsites, priors_dict, py, + transM, transP, train_dataloader, n_covar, n_site, n_batch, + cor_ends, pbm_covars) +``` + +## Perform the inversion + +Eventually, having assembled all the moving parts of the HVI, we can perform +the inversion. + +``` julia +using OptimizationOptimisers +import Zygote + +solver = HybridPosteriorSolver(; alg=Adam(0.02), n_MC=3) + +(; probo, interpreters) = solve(prob, solver; scenario, rng, + callback = callback_loss(100), # output during fitting + epochs = 2, + gdev = identity, # do not use GPU, here +); +``` + +The solver object is constructed given the specific stochastic optimization algorithm +and the number of Monte-Carlo samples that are drawn in each iteration +from the predicted parameter posterior. + +Then the solver is applied to the problem using [`solve`](@ref) +for a given number of iterations or epochs. +For this tutorial, we additionally specify that the function to transfer structures to +the GPU is the identity function, so that all stays on the CPU, and this tutorial +hence does not require ad GPU or GPU livraries. + +Among the return values are +- `probo`: A copy of the HybridProblem, with updated optimized parameters +- `interpreters`: A `NamedTuple` with several `ComponentArrayInterpreter`s that +will help analyzing the results. + +## Using a population-level process-based model + +So far, we have specified the process-based model to run for a single site. +For this simple model, we can gain some performance from matrix-computations +during running the model for all sites. + +We specify the PBM now to accept a matrices as arguments for parameters and drivers +and returns a matrix of precitions. For the parameters, one row corresponds to +one site. For the drivers and predictions, one column corresponds to one site. + +``` julia +function f_doubleMM_sites(θc::CA.ComponentMatrix, xPc::CA.ComponentMatrix) + # extract several covariates from xP + ST = typeof(CA.getdata(xPc)[1:1,:]) # workaround for non-type-stable Symbol-indexing + S1 = (CA.getdata(xPc[:S1,:])::ST) + S2 = (CA.getdata(xPc[:S2,:])::ST) + # + # extract the parameters as row-repeated vectors + n_obs = size(S1, 1) + VT = typeof(CA.getdata(θc)[:,1]) # workaround for non-type-stable Symbol-indexing + (r0, r1, K1, K2) = map((:r0, :r1, :K1, :K2)) do par + p1 = CA.getdata(θc[:, par]) ::VT + repeat(p1', n_obs) # matrix: same for each concentration row in S1 + end + # + # each variable is a matrix (n_obs x n_site) + r0 .+ r1 .* S1 ./ (K1 .+ S1) .* S2 ./ (K2 .+ S2) +end +``` + +Again, the function should not rely on the order of parameters, but use symbolic indexing +to extract the parameter vectors. For type stability of this symbolic indexing, +it uses a workaround to get the type of a single row. +Similarly, it uses type hints to index into the drivers, `xPc`, to extract +sub-matrices by symbols. Alternatively, here we it could rely on the structure and +ordering of the columns in `xPc`. + +We use the corresponding [`PBMPopulationApplicator`](@ref) +and [update](@ref) the HVI Problem. + +``` julia +f_batch = PBMPopulationApplicator(f_doubleMM_sites, n_batch; θP, θM, θFix, xPvec=xP[:,1]) +f_allsites = PBMPopulationApplicator(f_doubleMM_sites, n_site; θP, θM, θFix, xPvec=xP[:,1]) +probo_sites = HVI.update(probo; f_batch, f_allsites) +``` + +For numerical efficiency, the number of sites within one batch is part of the +`PBMPopulationApplicator`. Hence, we have two different functions, one applied +to a batch of site, and another applied to all sites. + +As a test of the new applicator, we refine the results by running a few more +epochs of the optimization. + +``` julia +(; probo) = solve(probo_sites, solver; scenario, rng, + callback = callback_loss(100), # output during fitting + epochs = 10, + gdev = identity, # do not use GPU, here + #is_inferred = Val(true), # activate type-checks +); +``` + +## Saving the results + +Extracting useful information from the optimized HybridProblem is covered +in the following tutorial. XXLink + +To use it, we save the `probo` HybridProblem and the interpreters to a JLD2 file. + +``` julia +using JLD2 +fname = "intermediate/basic_cpu_results.jld2" +mkpath("intermediate") +jldsave(fname, false, IOStream; probo, interpreters) +``` diff --git a/docs/src/tutorials/basic_cpu.qmd b/docs/src/tutorials/basic_cpu.qmd new file mode 100644 index 0000000..3cd971e --- /dev/null +++ b/docs/src/tutorials/basic_cpu.qmd @@ -0,0 +1,431 @@ +--- +title: "Basic workflow without GPU" +engine: julia +execute: + echo: true + output: false + daemon: 3600 +format: + commonmark: + variant: -raw_html + wrap: preserve +bibliography: twutz_txt.bib +--- + +``` @meta +CurrentModule = HybridVariationalInference +``` + +First load necessary packages. +```{julia} +using HybridVariationalInference +using HybridVariationalInference: HybridVariationalInference as HVI +using ComponentArrays: ComponentArrays as CA +using Bijectors +using StableRNGs +using SimpleChains +using StatsFuns +using MLUtils +using DistributionFits +``` + +Next, specify many moving parts of the Hybrid variational inference (HVI) + +## The process-based model +The example process based model (PBM) predicts a double-monod constrained rate +for different substrate concentrations, `S1`, and `S2`. + +$$ +y = r_0+ r_1 \frac{S_1}{K_1 + S_1} \frac{S_2}{K_2 + S_2}$$ + +```{julia} +function f_doubleMM(θc::CA.ComponentVector{ET}, x) where ET + # extract parameters not depending on order, i.e whether they are in θP or θM + (r0, r1, K1, K2) = map((:r0, :r1, :K1, :K2)) do par + CA.getdata(θc[par])::ET + end + r0 .+ r1 .* x.S1 ./ (K1 .+ x.S1) .* x.S2 ./ (K2 .+ x.S2) +end +``` + +Its formulation is independent of which parameters are global, site-specific, +or fixed during the model inversion. +However, it cannot assume an ordering in the parameters, but needs to +access the components by its symbolic names in the provided `ComponentArray`. + +## Likelihood function + +HVI requires the evaluation of the likelihood of the predictions. +It corresponds to the cost of predictions given some observations. + +The user specifies a function of the negative log-Likehood +`neg_logden(obs, pred, uncertainty_parameters)`, +where all of the parameters are arrays with columns for sites. + +Here, we use the [`neg_logden_indep_normal`](@ref) function +that assumed observations to be distributed independently +normal around a true value. +The provided `y_unc` uncertainty parameters, here, corresponds to +`logσ2`, denoting the log of the variance parameter of the normal distribution. + +```{julia} +py = neg_logden_indep_normal +``` + +## Templates, transformations, and correlation structure of parameters +### Global and site-specific parameters +In this example, we will assign a fixed value to r0 parameter, treat +the K2 parameter as unknown but the same across sites, and predict +r1 and K1 for each site separately, based on covariates known at the sites. + +Here we provide initial values for them by using `ComponentVector`. + +```{julia} +FT = Float32 +θM0 = θM = CA.ComponentVector{FT}(r1=0.5, K1=0.2) # separately for each individual +θP0 = θP = CA.ComponentVector{FT}(K2=2.0) # population: same across individuals, +θFix = CA.ComponentVector{FT}(r0=0.3) # r0, i.e. not estimated +``` +### Parameter Transformations +HVI allows for transformations of parameters in an unconstrained space, +where the probability density is not strictly zero anywhere to the original +constrained space. + +Here, our model parameters are strictly positive, and we use the exponential function +to transform constrained estimates to the original scale. + +```{julia} +transP = Stacked(HVI.Exp()) +transM = Stacked(HVI.Exp(), HVI.Exp()) +``` + +Parameter transformations are specified using the `Bijectors` package. +Because, `Bijectors.elementwise(exp)`, has problems with automatic differentiation (AD) +on GPU, we use the non-exported [`Exp`]() wrapper inside `Bijectors.Stacked`. + +### Prior information on parameters at constrained scale + +HVI is an approximate bayesian analysis and combines prior information on +the parameters with the model and observed data. + +Here, we provide a wide prior by fitting a Lognormal distributions to +- the mean corresponding to the initial value provided above +- the 0.95-quantile 3 times the mean + +```{julia} +θall = vcat(θP, θM) +priors_dict = Dict{Symbol, Distribution}( + keys(θall) .=> fit.(LogNormal, θall, QuantilePoint.(θall .* 3, 0.95))) +``` + + +### Correlation structure +HVI models the posterior of the parameters at unconstrained scale using a +multivariate normal distribution. It estimates a parameterization of the +associated blocks in the correlation matrx and requires a specification +of the block-structure. + +This is done by specifying the positions of the end of the blocks for +the global (P) and the site-specific parameters (M) respectively using +a `NamedTuple` of integer vectors. + +```{julia} +cor_ends = (P=[length(θP)], M=[length(θM)]) +``` + +Here, we specify a single entry each, meaning, there is only one big +block respectively, spanning all parameters. + +### Further parameters for the posterior approximation. +HVI uses additional fitted parameters to represent the means and the +covariance matrix of the posterior distribution of model parameters. +Here, we obtain construct initial estimates. using [`init_hybrid_ϕunc`](@ref) + +```{julia} +#| output: true +ϕunc0 = init_hybrid_ϕunc(cor_ends, zero(FT)) +``` + +The returned `ComponentVector` has entries for +- `logσ2_ζP`: log of the estimated marginal variance of global parameters +- `coef_logσ2_ζMs`: coefficients of a linear model of log of + the estimated marginal variance of site-dependent parameters dependent on + the predicted parameter +- `ρsP`, `ρsM`: parameterization of the blocks in the correlation matrix for + global and site-specific parameters respectively. + +## Observations, model drivers and covariates + +The model is inverted using the +- observed data, `y_o` +- its uncertainty, `y_unc` +- known covariates across sites, `xM` +- model drivers, `xP` +Here, we use synthetic data generated by the package. + +```{julia} +rng = StableRNG(111) +scenario = Val((:omit_r0, :covarK2, )) +(; xM, xP, y_o, y_unc) = gen_hybridproblem_synthetic(rng, DoubleMM.DoubleMMCase(); scenario) +``` + +```{julia} +#| echo: false +#| eval: false +() -> begin + (; xM, θP_true, θMs_true, xP, y_global_true, y_true, y_global_o, y_o, y_unc) = + gen_hybridproblem_synthetic(rng, DoubleMM.DoubleMMCase(); scenario) +end +``` + +Lets look at them. +```{julia} +#| output: true +size(xM), size(xP), size(y_o), size(y_unc) +``` +All of them have 800 columns, corresponding to 800 sites. +There are 5 site-covaraitas and 16 values of model drivers, and 8 observations per site. + +```{julia} +#| output: true +xP[:,1] +``` +In each column of the model drivers there is a ComponentVector with +components S1 and S2 corresponding to the concentrations, for which outputs +were observed. + +The `y_unc` becomes its meaning by the Liklihood-function to be specified with +the problem below. + +### Providing data in Batches + +HVI uses `MLUtils.DataLoader` to provide baches of the data during each +iteration of the solver. In addition to the data, it provides an +index to the sites inside a tuple. + +```{julia} +n_site = size(y_o,2) +n_batch = 20 +train_dataloader = MLUtils.DataLoader( + (xM, xP, y_o, y_unc, 1:n_site), batchsize=n_batch, partial=false) +``` + +## The Machine-Learning model + +The machine-learning (ML) part predicts parameters of the posterior of site-specific +PBM parameters, given the covariates. +Here, we specify a 3-layer feed-forward neural network using the `SimpleChains` +framework which works efficiently on CPU. + +```{julia} +n_out = length(θM) # number of individuals to predict +pbm_covars = (:K2,) # global parameters used as input to ML-model +n_covar = size(xM,1) +n_input = n_covar + length(pbm_covars) + +g_chain = SimpleChain( + static(n_input), # input dimension (optional) + TurboDense{true}(tanh, n_input * 4), + TurboDense{true}(tanh, n_input * 4), + # dense layer without bias that maps to n outputs to (0..1) + TurboDense{false}(logistic, n_out) +) +# get a template of the parameter vector, ϕg0 +g_chain_app, ϕg0 = construct_ChainsApplicator(rng, g_chain) +``` + +The `g_chain_app` `ChainsApplicator` precits the parameters of the posterior, +given a vector of ML weights,`ϕg`. +During construction, an initial template of this vector is created. +This abstraction layer allows to use different ML frameworks and replace the +`SimpleChains` model by `Flux` or `Lux`. + +### Conditional independence of global and site parameters +The `pbm_covars` specifies which sampled global parameters should be +provided as inputs to the ML model. + +The reason for providing global parameters as inputs is to allow for +correlations among site-parameters and global parameters, despite +the required conditional independence of parameters. + +### Using priors to scale ML-parameter estimates + +In order to balance gradients, the `g_chain_app` ModelApplicator defined above +predicts on a scale (0..1). +Now the priors are used to translate this to the parameter range by using the +cumulative density distribution. + +However, HVI needs a prior on unconstrained scale, and we need the priors on +this unconstrained scale. +This can be mathematically worked out for specific prior distribution forms. +But for simplicity, here a [`NormalScalingModelApplicator`](@ref) +is fitted to the transformed 5% and 95% quantiles of the original prior. + +```{julia} +priorsM = [priors_dict[k] for k in keys(θM)] +lowers, uppers = get_quantile_transformed(priorsM, transM) +g_chain_scaled = NormalScalingModelApplicator(g_chain_app, lowers, uppers, FT) +``` + +The `g_chain_scaled` `ModelApplicator` now predicts in unconstrained scale +with transforms ML predctions around 0.5 to the range of +high prior probability of the parameters, +and transforms ML predictions near 0 or 1 towards the outer lower probability ranges. + + +## Assembling the information + +All the specifications above are stored in a [`HybridProblem`](@ref) structure. + +Before, a [`PBMSiteApplicator`](@ref) is constructed that translates an invocation +given a vector of global parameters, and a matrix of site parameters to +invocation of the process based model (PBM), defined at the beginning. + +```{julia} +f_batch = f_allsites = PBMSiteApplicator(f_doubleMM; θP, θM, θFix, xPvec=xP[:,1]) + +prob = HybridProblem(θP, θM, g_chain_scaled, ϕg0, ϕunc0, + f_batch, f_allsites, priors_dict, py, + transM, transP, train_dataloader, n_covar, n_site, n_batch, + cor_ends, pbm_covars) +``` + +```{julia} +#| eval: false +#| echo: false + +# test invoking +#θMs = stack(Iterators.repeated(θM, n_batch); dims=1) +θMs = θM' .+ (randn(n_batch, size(θM,1)) .* 0.05) +x_batch = xP[:,1:n_batch] +y1 = f_batch(CA.getdata(θP), CA.getdata(θMs), CA.getdata(x_batch))[2] + + +() -> begin + y1 - y_o[:,1:n_batch] # check size and roughly equal + #using Test + #@inferred f_batch(CA.getdata(θP), CA.getdata(θMs), CA.getdata(x_batch))[2] + @inferred Vector{Float64} f_batch(CA.getdata(θP), CA.getdata(θMs), CA.getdata(x_batch))[2] + #using Cthulhu + #@descend_code_warntype f_batch(CA.getdata(θP), CA.getdata(θMs), CA.getdata(x_batch)) + prob0 = HVI.DoubleMM.DoubleMMCase() + f_batch0 = get_hybridproblem_PBmodel(prob0; scenario, use_all_sites = false) + y1f = f_batch0(θP, θMs, x_batch)[2] + y1 .- y1f # equal +end +``` + +## Perform the inversion + +Eventually, having assembled all the moving parts of the HVI, we can perform +the inversion. + +```{julia} +using OptimizationOptimisers +import Zygote + +solver = HybridPosteriorSolver(; alg=Adam(0.02), n_MC=3) + +(; probo, interpreters) = solve(prob, solver; scenario, rng, + callback = callback_loss(100), # output during fitting + epochs = 2, + gdev = identity, # do not use GPU, here +); +``` + +The solver object is constructed given the specific stochastic optimization algorithm +and the number of Monte-Carlo samples that are drawn in each iteration +from the predicted parameter posterior. + +Then the solver is applied to the problem using [`solve`](@ref) +for a given number of iterations or epochs. +For this tutorial, we additionally specify that the function to transfer structures to +the GPU is the identity function, so that all stays on the CPU, and this tutorial +hence does not require ad GPU or GPU livraries. + +Among the return values are +- `probo`: A copy of the HybridProblem, with updated optimized parameters +- `interpreters`: A `NamedTuple` with several `ComponentArrayInterpreter`s that + will help analyzing the results. + +## Using a population-level process-based model + +So far, we have specified the process-based model to run for a single site. +For this simple model, we can gain some performance from matrix-computations +during running the model for all sites. + +We specify the PBM now to accept a matrices as arguments for parameters and drivers +and returns a matrix of precitions. For the parameters, one row corresponds to +one site. For the drivers and predictions, one column corresponds to one site. + + +```{julia} +function f_doubleMM_sites(θc::CA.ComponentMatrix, xPc::CA.ComponentMatrix) + # extract several covariates from xP + ST = typeof(CA.getdata(xPc)[1:1,:]) # workaround for non-type-stable Symbol-indexing + S1 = (CA.getdata(xPc[:S1,:])::ST) + S2 = (CA.getdata(xPc[:S2,:])::ST) + # + # extract the parameters as row-repeated vectors + n_obs = size(S1, 1) + VT = typeof(CA.getdata(θc)[:,1]) # workaround for non-type-stable Symbol-indexing + (r0, r1, K1, K2) = map((:r0, :r1, :K1, :K2)) do par + p1 = CA.getdata(θc[:, par]) ::VT + repeat(p1', n_obs) # matrix: same for each concentration row in S1 + end + # + # each variable is a matrix (n_obs x n_site) + r0 .+ r1 .* S1 ./ (K1 .+ S1) .* S2 ./ (K2 .+ S2) +end +``` + +Again, the function should not rely on the order of parameters, but use symbolic indexing +to extract the parameter vectors. For type stability of this symbolic indexing, +it uses a workaround to get the type of a single row. +Similarly, it uses type hints to index into the drivers, `xPc`, to extract +sub-matrices by symbols. Alternatively, here we it could rely on the structure and +ordering of the columns in `xPc`. + +We use the corresponding [`PBMPopulationApplicator`](@ref) +and [update](@ref) the HVI Problem. + +```{julia} +f_batch = PBMPopulationApplicator(f_doubleMM_sites, n_batch; θP, θM, θFix, xPvec=xP[:,1]) +f_allsites = PBMPopulationApplicator(f_doubleMM_sites, n_site; θP, θM, θFix, xPvec=xP[:,1]) +probo_sites = HVI.update(probo; f_batch, f_allsites) +``` + +For numerical efficiency, the number of sites within one batch is part of the +`PBMPopulationApplicator`. Hence, we have two different functions, one applied +to a batch of site, and another applied to all sites. + +As a test of the new applicator, we refine the results by running a few more +epochs of the optimization. + +```{julia} +(; probo) = solve(probo_sites, solver; scenario, rng, + callback = callback_loss(100), # output during fitting + epochs = 10, + gdev = identity, # do not use GPU, here + #is_inferred = Val(true), # activate type-checks +); +``` + +## Saving the results +Extracting useful information from the optimized HybridProblem is covered +in the following tutorial. XXLink + +To use it, we save the `probo` HybridProblem and the interpreters to a JLD2 file. + +```{julia} +using JLD2 +fname = "intermediate/basic_cpu_results.jld2" +mkpath("intermediate") +jldsave(fname, false, IOStream; probo, interpreters) +``` + +```{julia} +#| eval: false +#| echo: false +probo = load(fname, "probo"; iotype = IOStream); +``` \ No newline at end of file diff --git a/docs/src/tutorials/how_to_guides/corr_site_global.qmd b/docs/src/tutorials/how_to_guides/corr_site_global.qmd new file mode 100644 index 0000000..2121b5f --- /dev/null +++ b/docs/src/tutorials/how_to_guides/corr_site_global.qmd @@ -0,0 +1,431 @@ +--- +title: "How to account for correlations between site and global parameters" +engine: julia +execute: + echo: true + output: false + daemon: 3600 +format: + commonmark: + variant: -raw_html + wrap: preserve +bibliography: twutz_txt.bib +--- + +``` @meta +CurrentModule = HybridVariationalInference +``` + +First load necessary packages. +```{julia} +using HybridVariationalInference +using HybridVariationalInference: HybridVariationalInference as HVI +using ComponentArrays: ComponentArrays as CA +using Bijectors +using StableRNGs +using SimpleChains +using StatsFuns +using MLUtils +using DistributionFits +``` + +Next, specify many moving parts of the Hybrid variational inference (HVI) + +## The process-based model +The example process based model (PBM) predicts a double-monod constrained rate +for different substrate concentrations, `S1`, and `S2`. + +$$ +y = r_0+ r_1 \frac{S_1}{K_1 + S_1} \frac{S_2}{K_2 + S_2}$$ + +```{julia} +function f_doubleMM(θc::CA.ComponentVector{ET}, x) where ET + # extract parameters not depending on order, i.e whether they are in θP or θM + (r0, r1, K1, K2) = map((:r0, :r1, :K1, :K2)) do par + CA.getdata(θc[par])::ET + end + r0 .+ r1 .* x.S1 ./ (K1 .+ x.S1) .* x.S2 ./ (K2 .+ x.S2) +end +``` + +Its formulation is independent of which parameters are global, site-specific, +or fixed during the model inversion. +However, it cannot assume an ordering in the parameters, but needs to +access the components by its symbolic names in the provided `ComponentArray`. + +## Likelihood function + +HVI requires the evaluation of the likelihood of the predictions. +It corresponds to the cost of predictions given some observations. + +The user specifies a function of the negative log-Likehood +`neg_logden(obs, pred, uncertainty_parameters)`, +where all of the parameters are arrays with columns for sites. + +Here, we use the [`neg_logden_indep_normal`](@ref) function +that assumed observations to be distributed independently +normal around a true value. +The provided `y_unc` uncertainty parameters, here, corresponds to +`logσ2`, denoting the log of the variance parameter of the normal distribution. + +```{julia} +py = neg_logden_indep_normal +``` + +## Templates, transformations, and correlation structure of parameters +### Global and site-specific parameters +In this example, we will assign a fixed value to r0 parameter, treat +the K2 parameter as unknown but the same across sites, and predict +r1 and K1 for each site separately, based on covariates known at the sites. + +Here we provide initial values for them by using `ComponentVector`. + +```{julia} +FT = Float32 +θM0 = θM = CA.ComponentVector{FT}(r1=0.5, K1=0.2) # separately for each individual +θP0 = θP = CA.ComponentVector{FT}(K2=2.0) # population: same across individuals, +θFix = CA.ComponentVector{FT}(r0=0.3) # r0, i.e. not estimated +``` +### Parameter Transformations +HVI allows for transformations of parameters in an unconstrained space, +where the probability density is not strictly zero anywhere to the original +constrained space. + +Here, our model parameters are strictly positive, and we use the exponential function +to transform constrained estimates to the original scale. + +```{julia} +transP = Stacked(HVI.Exp()) +transM = Stacked(HVI.Exp(), HVI.Exp()) +``` + +Parameter transformations are specified using the `Bijectors` package. +Because, `Bijectors.elementwise(exp)`, has problems with automatic differentiation (AD) +on GPU, we use the non-exported [`Exp`]() wrapper inside `Bijectors.Stacked`. + +### Prior information on parameters at constrained scale + +HVI is an approximate bayesian analysis and combines prior information on +the parameters with the model and observed data. + +Here, we provide a wide prior by fitting a Lognormal distributions to +- the mean corresponding to the initial value provided above +- the 0.95-quantile 3 times the mean + +```{julia} +θall = vcat(θP, θM) +priors_dict = Dict{Symbol, Distribution}( + keys(θall) .=> fit.(LogNormal, θall, QuantilePoint.(θall .* 3, 0.95))) +``` + + +### Correlation structure +HVI models the posterior of the parameters at unconstrained scale using a +multivariate normal distribution. It estimates a parameterization of the +associated blocks in the correlation matrx and requires a specification +of the block-structure. + +This is done by specifying the positions of the end of the blocks for +the global (P) and the site-specific parameters (M) respectively using +a `NamedTuple` of integer vectors. + +```{julia} +cor_ends = (P=[length(θP)], M=[length(θM)]) +``` + +Here, we specify a single entry each, meaning, there is only one big +block respectively, spanning all parameters. + +### Further parameters for the posterior approximation. +HVI uses additional fitted parameters to represent the means and the +covariance matrix of the posterior distribution of model parameters. +Here, we obtain construct initial estimates. using [`init_hybrid_ϕunc`](@ref) + +```{julia} +#| output: true +ϕunc0 = init_hybrid_ϕunc(cor_ends, zero(FT)) +``` + +The returned `ComponentVector` has entries for +- `logσ2_ζP`: log of the estimated marginal variance of global parameters +- `coef_logσ2_ζMs`: coefficients of a linear model of log of + the estimated marginal variance of site-dependent parameters dependent on + the predicted parameter +- `ρsP`, `ρsM`: parameterization of the blocks in the correlation matrix for + global and site-specific parameters respectively. + +## Observations, model drivers and covariates + +The model is inverted using the +- observed data, `y_o` +- its uncertainty, `y_unc` +- known covariates across sites, `xM` +- model drivers, `xP` +Here, we use synthetic data generated by the package. + +```{julia} +rng = StableRNG(111) +scenario = Val((:omit_r0, :covarK2, )) +(; xM, xP, y_o, y_unc) = gen_hybridproblem_synthetic(rng, DoubleMM.DoubleMMCase(); scenario) +``` + +```{julia} +#| echo: false +#| eval: false +() -> begin + (; xM, θP_true, θMs_true, xP, y_global_true, y_true, y_global_o, y_o, y_unc) = + gen_hybridproblem_synthetic(rng, DoubleMM.DoubleMMCase(); scenario) +end +``` + +Lets look at them. +```{julia} +#| output: true +size(xM), size(xP), size(y_o), size(y_unc) +``` +All of them have 800 columns, corresponding to 800 sites. +There are 5 site-covaraitas and 16 values of model drivers, and 8 observations per site. + +```{julia} +#| output: true +xP[:,1] +``` +In each column of the model drivers there is a ComponentVector with +components S1 and S2 corresponding to the concentrations, for which outputs +were observed. + +The `y_unc` becomes its meaning by the Liklihood-function to be specified with +the problem below. + +### Providing data in Batches + +HVI uses `MLUtils.DataLoader` to provide baches of the data during each +iteration of the solver. In addition to the data, it provides an +index to the sites inside a tuple. + +```{julia} +n_site = size(y_o,2) +n_batch = 20 +train_dataloader = MLUtils.DataLoader( + (xM, xP, y_o, y_unc, 1:n_site), batchsize=n_batch, partial=false) +``` + +## The Machine-Learning model + +The machine-learning (ML) part predicts parameters of the posterior of site-specific +PBM parameters, given the covariates. +Here, we specify a 3-layer feed-forward neural network using the `SimpleChains` +framework which works efficiently on CPU. + +```{julia} +n_out = length(θM) # number of individuals to predict +pbm_covars = (:K2,) # global parameters used as input to ML-model +n_covar = size(xM,1) +n_input = n_covar + length(pbm_covars) + +g_chain = SimpleChain( + static(n_input), # input dimension (optional) + TurboDense{true}(tanh, n_input * 4), + TurboDense{true}(tanh, n_input * 4), + # dense layer without bias that maps to n outputs to (0..1) + TurboDense{false}(logistic, n_out) +) +# get a template of the parameter vector, ϕg0 +g_chain_app, ϕg0 = construct_ChainsApplicator(rng, g_chain) +``` + +The `g_chain_app` `ChainsApplicator` precits the parameters of the posterior, +given a vector of ML weights,`ϕg`. +During construction, an initial template of this vector is created. +This abstraction layer allows to use different ML frameworks and replace the +`SimpleChains` model by `Flux` or `Lux`. + +### Conditional independence of global and site parameters +The `pbm_covars` specifies which sampled global parameters should be +provided as inputs to the ML model. + +The reason for providing global parameters as inputs is to allow for +correlations among site-parameters and global parameters, despite +the required conditional independence of parameters. + +### Using priors to scale ML-parameter estimates + +In order to balance gradients, the `g_chain_app` ModelApplicator defined above +predicts on a scale (0..1). +Now the priors are used to translate this to the parameter range by using the +cumulative density distribution. + +However, HVI needs a prior on unconstrained scale, and we need the priors on +this unconstrained scale. +This can be mathematically worked out for specific prior distribution forms. +But for simplicity, here a [`NormalScalingModelApplicator`](@ref) +is fitted to the transformed 5% and 95% quantiles of the original prior. + +```{julia} +priorsM = [priors_dict[k] for k in keys(θM)] +lowers, uppers = get_quantile_transformed(priorsM, transM) +g_chain_scaled = NormalScalingModelApplicator(g_chain_app, lowers, uppers, FT) +``` + +The `g_chain_scaled` `ModelApplicator` now predicts in unconstrained scale +with transforms ML predctions around 0.5 to the range of +high prior probability of the parameters, +and transforms ML predictions near 0 or 1 towards the outer lower probability ranges. + + +## Assembling the information + +All the specifications above are stored in a [`HybridProblem`](@ref) structure. + +Before, a [`PBMSiteApplicator`](@ref) is constructed that translates an invocation +given a vector of global parameters, and a matrix of site parameters to +invocation of the process based model (PBM), defined at the beginning. + +```{julia} +f_batch = f_allsites = PBMSiteApplicator(f_doubleMM; θP, θM, θFix, xPvec=xP[:,1]) + +prob = HybridProblem(θP, θM, g_chain_scaled, ϕg0, ϕunc0, + f_batch, f_allsites, priors_dict, py, + transM, transP, train_dataloader, n_covar, n_site, n_batch, + cor_ends, pbm_covars) +``` + +```{julia} +#| eval: false +#| echo: false + +# test invoking +#θMs = stack(Iterators.repeated(θM, n_batch); dims=1) +θMs = θM' .+ (randn(n_batch, size(θM,1)) .* 0.05) +x_batch = xP[:,1:n_batch] +y1 = f_batch(CA.getdata(θP), CA.getdata(θMs), CA.getdata(x_batch))[2] + + +() -> begin + y1 - y_o[:,1:n_batch] # check size and roughly equal + #using Test + #@inferred f_batch(CA.getdata(θP), CA.getdata(θMs), CA.getdata(x_batch))[2] + @inferred Vector{Float64} f_batch(CA.getdata(θP), CA.getdata(θMs), CA.getdata(x_batch))[2] + #using Cthulhu + #@descend_code_warntype f_batch(CA.getdata(θP), CA.getdata(θMs), CA.getdata(x_batch)) + prob0 = HVI.DoubleMM.DoubleMMCase() + f_batch0 = get_hybridproblem_PBmodel(prob0; scenario, use_all_sites = false) + y1f = f_batch0(θP, θMs, x_batch)[2] + y1 .- y1f # equal +end +``` + +## Perform the inversion + +Eventually, having assembled all the moving parts of the HVI, we can perform +the inversion. + +```{julia} +using OptimizationOptimisers +import Zygote + +solver = HybridPosteriorSolver(; alg=Adam(0.02), n_MC=3) + +(; probo, interpreters) = solve(prob, solver; scenario, rng, + callback = callback_loss(100), # output during fitting + epochs = 2, + gdev = identity, # do not use GPU, here +); +``` + +The solver object is constructed given the specific stochastic optimization algorithm +and the number of Monte-Carlo samples that are drawn in each iteration +from the predicted parameter posterior. + +Then the solver is applied to the problem using [`solve`](@ref) +for a given number of iterations or epochs. +For this tutorial, we additionally specify that the function to transfer structures to +the GPU is the identity function, so that all stays on the CPU, and this tutorial +hence does not require ad GPU or GPU livraries. + +Among the return values are +- `probo`: A copy of the HybridProblem, with updated optimized parameters +- `interpreters`: A `NamedTuple` with several `ComponentArrayInterpreter`s that + will help analyzing the results. + +## Using a population-level process-based model + +So far, we have specified the process-based model to run for a single site. +For this simple model, we can gain some performance from matrix-computations +during running the model for all sites. + +We specify the PBM now to accept a matrices as arguments for parameters and drivers +and returns a matrix of precitions. For the parameters, one row corresponds to +one site. For the drivers and predictions, one column corresponds to one site. + + +```{julia} +function f_doubleMM_sites(θc::CA.ComponentMatrix, xPc::CA.ComponentMatrix) + # extract several covariates from xP + ST = typeof(CA.getdata(xPc)[1:1,:]) # workaround for non-type-stable Symbol-indexing + S1 = (CA.getdata(xPc[:S1,:])::ST) + S2 = (CA.getdata(xPc[:S2,:])::ST) + # + # extract the parameters as row-repeated vectors + n_obs = size(S1, 1) + VT = typeof(CA.getdata(θc)[:,1]) # workaround for non-type-stable Symbol-indexing + (r0, r1, K1, K2) = map((:r0, :r1, :K1, :K2)) do par + p1 = CA.getdata(θc[:, par]) ::VT + repeat(p1', n_obs) # matrix: same for each concentration row in S1 + end + # + # each variable is a matrix (n_obs x n_site) + r0 .+ r1 .* S1 ./ (K1 .+ S1) .* S2 ./ (K2 .+ S2) +end +``` + +Again, the function should not rely on the order of parameters, but use symbolic indexing +to extract the parameter vectors. For type stability of this symbolic indexing, +it uses a workaround to get the type of a single row. +Similarly, it uses type hints to index into the drivers, `xPc`, to extract +sub-matrices by symbols. Alternatively, here we it could rely on the structure and +ordering of the columns in `xPc`. + +We use the corresponding [`PBMPopulationApplicator`](@ref) +and [update](@ref) the HVI Problem. + +```{julia} +f_batch = PBMPopulationApplicator(f_doubleMM_sites, n_batch; θP, θM, θFix, xPvec=xP[:,1]) +f_allsites = PBMPopulationApplicator(f_doubleMM_sites, n_site; θP, θM, θFix, xPvec=xP[:,1]) +probo_sites = HVI.update(probo; f_batch, f_allsites) +``` + +For numerical efficiency, the number of sites within one batch is part of the +`PBMPopulationApplicator`. Hence, we have two different functions, one applied +to a batch of site, and another applied to all sites. + +As a test of the new applicator, we refine the results by running a few more +epochs of the optimization. + +```{julia} +(; probo) = solve(probo_sites, solver; scenario, rng, + callback = callback_loss(100), # output during fitting + epochs = 10, + gdev = identity, # do not use GPU, here + #is_inferred = Val(true), # activate type-checks +); +``` + +## Saving the results +Extracting useful information from the optimized HybridProblem is covered +in the following tutorial. XXLink + +To use it, we save the `probo` HybridProblem and the interpreters to a JLD2 file. + +```{julia} +using JLD2 +fname = "intermediate/basic_cpu_results.jld2" +mkpath("intermediate") +jldsave(fname, false, IOStream; probo, interpreters) +``` + +```{julia} +#| eval: false +#| echo: false +probo = load(fname, "probo"; iotype = IOStream); +``` \ No newline at end of file diff --git a/docs/src/tutorials/intermediate/basic_cpu_results.jld2 b/docs/src/tutorials/intermediate/basic_cpu_results.jld2 new file mode 100644 index 0000000000000000000000000000000000000000..09a9f4e3b19e880c78a16baf62d1d0b2d2418b2f GIT binary patch literal 198608 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. diff --git a/docs/src/tutorials/test1.qmd b/docs/src/tutorials/test1.qmd new file mode 100644 index 0000000..1afa6b2 --- /dev/null +++ b/docs/src/tutorials/test1.qmd @@ -0,0 +1,78 @@ +--- +title: "A julia engine notebook" +engine: julia +execute: + echo: true +format: + commonmark: + variant: -raw_html + wrap: preserve + html: + code-fold: false +bibliography: twutz_txt.bib +--- + +```{julia} +2 + 2 +``` + +```{julia} +#| echo: false +using Plots +``` + +A code block with `#| echo: false`. +```{julia} +#| echo: false +using Pkg +Pkg.status() +``` + +```{julia} +run(`which julia`); +``` + +## Equation +inline: $\sqrt{\pi}$ inside text. + +display equation @eq-general with a number and a reference + +$$ +\begin{aligned} +\frac{n!}{k!(n - k)!} &= \binom{n}{k} +\\ +x^2 =& 3 +\end{aligned} +$$ {#eq-general} + +## Literature references + +See [@Wutzler20]. + +## Plots + +single +```{julia} +#| label: fig-limits +#| fig-cap: "Errorbar limit selector" +plot(1:4) +``` + + +## Not working with Documenter +Julia code is not colored, output block-code + +Figures: The figure captions are not kept, and links do not work + +References: the number is correctly inserted, but the link does not work + +Documenter admonitions: the four spaces before the contents are removed - do not work + +Quarto-Columns are rendered to several paragraphs + +With gfm, references are formatted bad, and there are errors with unclosed divs +after Documenter processes it. + + + +## References diff --git a/docs/src/tutorials/twutz_txt.bib b/docs/src/tutorials/twutz_txt.bib new file mode 100644 index 0000000..1da805e --- /dev/null +++ b/docs/src/tutorials/twutz_txt.bib @@ -0,0 +1,36 @@ +@Article{Wutzler20, + author = {Thomas Wutzler and Oscar Perez-Priego and Kendalynn Morris and Tarek S. El-Madany and Mirco Migliavacca}, + title = {Soil {CO}{\&}lt$\mathsemicolon$sub{\&}gt$\mathsemicolon$2{\&}lt$\mathsemicolon$/sub{\&}gt$\mathsemicolon$ efflux errors are lognormally distributed {\&}amp$\mathsemicolon${\#}8211$\mathsemicolon$ implications and guidance}, + journal = {Geoscientific Instrumentation, Methods and Data Systems}, + year = {2020}, + volume = {9}, + number = {1}, + pages = {239--254}, + month = {may}, + comment = {tomasch 19}, + doi = {10.5194/gi-9-239-2020}, + file = {:2007/stat/Wutzler20_lognormal_soilCO2efflux.pdf:PDF}, + keywords = {stat, tomasch, soil, respiration, chamber}, + owner = {twutz}, + publisher = {Copernicus {GmbH}}, + timestamp = {2020.06.02}, +} + +@Article{Wutzler22, + author = {Thomas Wutzler and Lin Yu and Marion Schrumpf and Sönke Zaehle}, + journal = {Geoscientific Model Development}, + title = {Simulating long-term responses of soil organic matter turnover to substrate stoichiometry by abstracting fast and small-scale microbial processes: the Soil Enzyme Steady Allocation Model ({SESAM}; v3.0)}, + year = {2022}, + month = {nov}, + number = {22}, + pages = {8377--8393}, + volume = {15}, + comment = {tomasch 24}, + doi = {10.5194/gmd-15-8377-2022}, + file = {:tomasch/Wutzler22_SESAM_upscaling.pdf:PDF}, + keywords = {model, soil, enzyme, SESAM, quasi-steady-state-assumption}, + owner = {twutz}, + publisher = {Copernicus {GmbH}}, + timestamp = {2022.11.18}, +} + diff --git a/docs/src/worked_example.md b/docs/src/worked_example.md deleted file mode 100644 index 7bb6f86..0000000 --- a/docs/src/worked_example.md +++ /dev/null @@ -1,6 +0,0 @@ -# Worked Example - - - - - diff --git a/src/DoubleMM/f_doubleMM.jl b/src/DoubleMM/f_doubleMM.jl index ba19233..473fd4e 100644 --- a/src/DoubleMM/f_doubleMM.jl +++ b/src/DoubleMM/f_doubleMM.jl @@ -41,25 +41,45 @@ function f_doubleMM(θc::CA.ComponentVector{ET}, x) where ET end function f_doubleMM_sites(θc::CA.ComponentMatrix, xPc::CA.ComponentMatrix) - # extract the parameters as vectors + # extract several covariates from xP + ST = typeof(CA.getdata(xPc)[1:1,:]) # workaround for non-type-stable Symbol-indexing + S1 = (CA.getdata(xPc[:S1,:])::ST) + S2 = (CA.getdata(xPc[:S2,:])::ST) + # + # extract the parameters as row-repeated vectors + n_obs = size(S1, 1) VT = typeof(CA.getdata(θc)[:,1]) # workaround for non-type-stable Symbol-indexing (r0, r1, K1, K2) = map((:r0, :r1, :K1, :K2)) do par - CA.getdata(θc[:, par]) ::VT + p1 = CA.getdata(θc[:, par]) ::VT + repeat(p1', n_obs) # matrix: same for each concentration row in S1 end # - # extract several covariates from xP - # S1 = (xPc[:S1,:])' # transform site-last -> site-first dimension - # S2 = (xPc[:S2,:])' - #Main.@infiltrate_main - - ST = typeof(CA.getdata(xPc)[1:1,:]) # workaround for non-type-stable Symbol-indexing - S1 = (CA.getdata(xPc[:S1,:])::ST)' # transform site-last -> site-first dimension - S2 = (CA.getdata(xPc[:S2,:])::ST)' - # - y = r0 .+ r1 .* S1 ./ (K1 .+ S1) .* S2 ./ (K2 .+ S2) - return (CA.getdata(y)') # transform site-first -> site-last dimension + # each variable is a matrix (n_obs x n_site) + r0 .+ r1 .* S1 ./ (K1 .+ S1) .* S2 ./ (K2 .+ S2) end +# function f_doubleMM_sites(θc::CA.ComponentMatrix, xPc::CA.ComponentMatrix) +# # extract the parameters as vectors +# VT = typeof(CA.getdata(θc)[:,1]) # workaround for non-type-stable Symbol-indexing +# (r0, r1, K1, K2) = map((:r0, :r1, :K1, :K2)) do par +# CA.getdata(θc[:, par]) ::VT +# end +# # +# # extract several covariates from xP +# # S1 = (xPc[:S1,:])' # transform site-last -> site-first dimension +# # S2 = (xPc[:S2,:])' +# #Main.@infiltrate_main + +# ST = typeof(CA.getdata(xPc)[1:1,:]) # workaround for non-type-stable Symbol-indexing +# S1 = (CA.getdata(xPc[:S1,:])::ST)' # transform site-last -> site-first dimension +# S2 = (CA.getdata(xPc[:S2,:])::ST)' +# # +# y = r0 .+ r1 .* S1 ./ (K1 .+ S1) .* S2 ./ (K2 .+ S2) +# return (CA.getdata(y)') # transform site-first -> site-last dimension +# end + + + # function f_doubleMM( # θ::AbstractMatrix{T}, x; intθ::HVI.AbstractComponentArrayInterpreter) where T # # provide θ for n_row sites diff --git a/src/HybridProblem.jl b/src/HybridProblem.jl index 98d4fc9..87d780e 100644 --- a/src/HybridProblem.jl +++ b/src/HybridProblem.jl @@ -1,3 +1,29 @@ +""" +Implements [`AbstractHybridProblem`](@ref) by gathering all the parts into +one struct. + +Fields: +- `θP::ComponentVector`, `θM::ComponentVector`: parameter templates +- `g::AbstractModelApplicator`, `ϕg::AbstractVector`: ML model and its parameters +- `ϕunc::ComponentVector`: parameters for the Covariance matrix of the approximate posterior +- `f_batch`: Process-based model predicing for `n_batch` sites +- `f_allsites`: Process-based model predicing for `n_site` sites +- `priors`: AbstractDict: Prior distributions for all PBM parameters on constrained scale +- `py`: Likelihood function +- `transM::Stacked`, `transP::Stacked`: bijectors transforming from unconstrained to + constrained scale for site-specific and global parameters respectively. +- `train_dataloader::MLUtils.DataLoader`: providingn Tuple of matrices + `(xM, xP, y_o, y_unc, i_sites)`: covariates, model drivers, observations, + observation uncertainties and index of provided sites. +- `n_covar::Int`, `n_site::Int`, `n_batch::Int`: number covariates, + number of sites, and number of sites within one batch +- `cor_ends::NamedTuple`: block structure in correlations, + defaults to `(P = [length(θP)], M = [length(θM)])` +- `pbm_covars::NTuple{N,Symbol}`: names of global parameters used as covariates + in the ML model, defaults to `()`, i.e. no covariates fed into the ML model + +See also [`update`](@ref) for a copy with some entries modified. +""" struct HybridProblem <: AbstractHybridProblem θP::CA.ComponentVector θM::CA.ComponentVector @@ -41,15 +67,20 @@ struct HybridProblem <: AbstractHybridProblem end end -function HybridProblem(θP::CA.ComponentVector, θM::CA.ComponentVector, - # note no ϕg argument and g_chain unconstrained - g_chain, f_batch, - args...; rng = Random.default_rng(), kwargs...) - # dispatches on type of g_chain - g, ϕg = construct_ChainsApplicator(rng, g_chain, eltype(θM)) - HybridProblem(θP, θM, g, ϕg, f_batch, args...; kwargs...) -end +# function HybridProblem(θP::CA.ComponentVector, θM::CA.ComponentVector, +# # note no ϕg argument and g_chain unconstrained +# g_chain, f_batch, +# args...; rng = Random.default_rng(), kwargs...) +# # dispatches on type of g_chain +# g, ϕg = construct_ChainsApplicator(rng, g_chain, eltype(θM)) +# HybridProblem(θP, θM, g, ϕg, f_batch, args...; kwargs...) +# end + +""" + HybridProblem(prob::AbstractHybridProblem; scenario = () +Gather all information from another `AbstractHybridProblem`. +""" function HybridProblem(prob::AbstractHybridProblem; scenario = ()) (; θP, θM) = get_hybridproblem_par_templates(prob; scenario) g, ϕg = get_hybridproblem_MLapplicator(prob; scenario) @@ -68,6 +99,11 @@ function HybridProblem(prob::AbstractHybridProblem; scenario = ()) n_covar, n_site, n_batch, cor_ends, pbm_covars) end +""" + update(prob::HybridProblem; ...) + +Create a copy of prob, with some parts replaced. +""" function update(prob::HybridProblem; θP::CA.ComponentVector = prob.θP, θM::CA.ComponentVector = prob.θM, diff --git a/src/HybridSolver.jl b/src/HybridSolver.jl index 2751de9..6df6233 100644 --- a/src/HybridSolver.jl +++ b/src/HybridSolver.jl @@ -75,6 +75,22 @@ function update(solver::HybridPosteriorSolver; HybridPosteriorSolver(alg, n_MC, n_MC_cap) end +""" + solve(prob::AbstractHybridProblem, solver::HybridPosteriorSolver; ...) + +Perform the inversion of HVI Problem. + +Returns a `NamedTuple` of +- `probo`: A copy of the HybridProblem, with updated optimized parameters +- `interpreters`: TODO +- `ϕ`: the optimized HVI parameters: A ComponentVector with entries + - `μP`: `ComponentVector` of the mean global PBM parameters at unconstrained scale + - `ϕg`: The MLmodel parameter vector, + - `unc`: ComponentVector of further uncertainty parameters +- `θP`: `ComponentVector` of the mean global PBM parameters at constrained scale +- `resopt`: the structure returned by Optimization.solve. It can contain + more information on convergence. +""" function CommonSolve.solve(prob::AbstractHybridProblem, solver::HybridPosteriorSolver; scenario::Val{scen}, rng=Random.default_rng(), gdev=:use_gpu ∈ _val_value(scenario) ? gpu_device() : identity, @@ -135,7 +151,7 @@ function CommonSolve.solve(prob::AbstractHybridProblem, solver::HybridPosteriorS ϕc = interpreters.μP_ϕg_unc(res.u) θP = cpu_ca(apply_preserve_axes(transP, ϕc.μP)) probo = update(prob; ϕg=cpu_ca(ϕc).ϕg, θP=θP, ϕunc=cpu_ca(ϕc).unc) - (; ϕ=ϕc, θP, resopt=res, interpreters, probo) + (; probo, interpreters, ϕ=ϕc, θP, resopt=res) end function fit_narrow_normal(θi, prior, θmean_quant) diff --git a/src/HybridVariationalInference.jl b/src/HybridVariationalInference.jl index 7d43cb7..0a0688b 100644 --- a/src/HybridVariationalInference.jl +++ b/src/HybridVariationalInference.jl @@ -21,8 +21,12 @@ using StaticArrays: StaticArrays as SA using Functors using Test: Test # @inferred +export DoubleMM + +#? how to reexport public CommonSolve.solve + export extend_stacked_nrow, StackedArray -#export Exp +public Exp include("bijectors_utils.jl") export AbstractComponentArrayInterpreter, ComponentArrayInterpreter, @@ -36,7 +40,7 @@ export construct_3layer_MLApplicator, select_ml_engine export NullModelApplicator, MagnitudeModelApplicator, NormalScalingModelApplicator include("ModelApplicator.jl") -export PBMSiteApplicator, PBMPopulationApplicator +export AbstractPBMApplicator, NullPBMApplicator, PBMSiteApplicator, PBMPopulationApplicator include("PBMApplicator.jl") # export AbstractGPUDataHandler, NullGPUDataHandler, get_default_GPUHandler @@ -53,7 +57,6 @@ export AbstractHybridProblem, get_hybridproblem_MLapplicator, get_hybridproblem_ get_hybridproblem_cor_ends, get_hybridproblem_priors, get_hybridproblem_pbmpar_covars, -#update, gen_cov_pred, construct_dataloader_from_synthetic, gdev_hybridproblem_dataloader, @@ -67,6 +70,7 @@ export AbstractHybridProblemInterpreters, HybridProblemInterpreters, include("hybridprobleminterpreters.jl") export HybridProblem +public update export get_quantile_transformed include("HybridProblem.jl") diff --git a/src/ModelApplicator.jl b/src/ModelApplicator.jl index 85a1140..943a147 100644 --- a/src/ModelApplicator.jl +++ b/src/ModelApplicator.jl @@ -95,9 +95,7 @@ end MagnitudeModelApplicator(app, y0) Wrapper around AbstractModelApplicator that multiplies the prediction -by the absolute inverse of an initial estimate of the prediction. - -This helps to keep raw predictions and weights in a similar magnitude. +of the wrapped `app` by scalar `y0`. """ struct MagnitudeModelApplicator{M,A} <: AbstractModelApplicator app::A @@ -137,18 +135,26 @@ end @functor NormalScalingModelApplicator """ -Fit a Normal distribution to iterators lower and upper. -If `repeat_inner` is given, each fitted distribution is repeated as many times. + NormalScalingModelApplicator(app, lowers, uppers, FT::Type; repeat_inner::Integer = 1) + +Fit a Normal distribution to number iterators `lower` and `upper` and transform +results of the wrapped `app` `AbstractModelApplicator`. +If `repeat_inner` is given, each fitted distribution is repeated as many times +to support independent multivariate normal distribution. + +`FT` is the specific FloatType to use to construct Distributions, +It usually corresponds to the type used in other ML-parts of the model, e.g. `Float32`. """ function NormalScalingModelApplicator( - app::AbstractModelApplicator, lowers::AbstractVector{<:Number}, uppers, ET::Type; repeat_inner::Integer = 1) + app::AbstractModelApplicator, lowers, uppers, FT::Type; + repeat_inner::Integer = 1) pars = map(lowers, uppers) do lower, upper dζ = fit(Normal, @qp_l(lower), @qp_u(upper)) params(dζ) end # use collect to make it an array that works with gpu - μ = repeat(collect(ET, first.(pars)); inner=(repeat_inner,)) - σ = repeat(collect(ET, last.(pars)); inner=(repeat_inner,)) + μ = repeat(collect(FT, first.(pars)); inner=(repeat_inner,)) + σ = repeat(collect(FT, last.(pars)); inner=(repeat_inner,)) NormalScalingModelApplicator(app, μ, σ) end diff --git a/src/PBMApplicator.jl b/src/PBMApplicator.jl index 4cba53e..b35f18c 100644 --- a/src/PBMApplicator.jl +++ b/src/PBMApplicator.jl @@ -2,7 +2,7 @@ AbstractPBMApplicator(θP::AbstractVector, θMs::AbstractMatrix, xP::AbstractMatrix) Abstraction of applying a process-based model with -global parameters, `x`, site-specific paramters, `θMs` (sites in columns), +global parameters, `x`, site-specific parameters, `θMs` (sites in columns), and site-specific model drivers, `xP` (sites in columns), It returns a matrix of predictions sites in columns. @@ -50,7 +50,7 @@ constructs a `ComponentVector` that can be indexed by symbolic parameter names, correspondning to the templates provided during construction of the applicator. -## Aguments +## Arguments - `fθ`: process model, process model `fθ(θc, xP)`, which is agnostic of the partitioning of parameters. - `θP`: ComponentVector template of global process model parameters @@ -127,18 +127,21 @@ end Construct AbstractPBMApplicator from process-based model `fθ` that computes predictions across sites for a population of size `n_batch`. -The closure provides a function that combines enclosed `θFix`, with provided `θMs` and `θP` -to a ComponentMatrix with parameters with one row for each site, that +The applicator combines enclosed `θFix`, with provided `θMs` and `θP` +to a `ComponentMatrix` with parameters with one row for each site, that can be column-indexed by Symbols. -## Aguments +## Arguments - `fθpop`: process model, process model `f(θc, xPc)`, which is agnostic of the partitioning -of parameters into fixed, global, and individual. + of parameters into fixed, global, and individual. + - `θc`: parameters: `ComponentMatrix` (n_site x n_par) with each row a parameter vector + - `xPc`: observations: `ComponentMatrix` (n_obs x n_site) with each column + observationsfor one site - `n_batch`: number of indiduals, i.e. rows in `θMs` -- `θP`: ComponentVector template of global process model parameters -- `θM`: ComponentVector template of individual process model parameters -- `θFix`: ComponentVector of actual fixed process model parameters -- `xPvec`::ComponentVector template of model drivers for a single site +- `θP`: `ComponentVector` template of global process model parameters +- `θM`: `ComponentVector` template of individual process model parameters +- `θFix`: `ComponentVector` of actual fixed process model parameters +- `xPvec`: `ComponentVector` template of model drivers for a single site """ function PBMPopulationApplicator(fθpop, n_batch; θP::CA.ComponentVector, θM::CA.ComponentVector, θFix::CA.ComponentVector, diff --git a/src/bijectors_utils.jl b/src/bijectors_utils.jl index efc0c96..9061ebb 100644 --- a/src/bijectors_utils.jl +++ b/src/bijectors_utils.jl @@ -1,5 +1,12 @@ #------------------- Exp +""" + Exp() + +A bijector that applies broadcasted exponential function, i.e. `exp.(x)`. +It is equivalent to `elementwise(exp)` but works better with automatic +differentiation on GPU. +""" struct Exp <: Bijector end diff --git a/src/cholesky.jl b/src/cholesky.jl index 14af734..24fd444 100644 --- a/src/cholesky.jl +++ b/src/cholesky.jl @@ -59,9 +59,10 @@ end # """ # Convert vector v columnwise entries of upper diagonal matrix to UnitUppterTriangular - +# # Avoid using this repeatedly on GPU arrays, because it only works on CPU (scalar indexing). -# There is a fallback that pulls `v` to the CPU, applies, and pushes back to GPU. +# +# For v isa CuVector, see HybridVariationalInferenceCUDAExt # """ function _vec2uutri( v::AbstractVector{T}; n=invsumn(length(v)) + one(T), diag=one(T)) where {T} @@ -138,7 +139,7 @@ end #function uutri2vec(X::CUDA.CuMatrix{T}; kwargs...) where {T} """ -Takes a vector of entries of a lower UnitUpperTriangular matrix +Takes a vector of parameters for UnitUpperTriangular matrix and transforms it to an UpperTriangular that satisfies diag(U' * U) = 1. diff --git a/test/test_cholesky_structure.jl b/test/test_cholesky_structure.jl index 882c0d6..2ec4b4f 100644 --- a/test/test_cholesky_structure.jl +++ b/test/test_cholesky_structure.jl @@ -118,20 +118,18 @@ end; @test_throws AssertionError CP.utri2vec_pos(2, 1) end -@testset "vec2uutri gpu" begin - if ggdev isa MLDataDevices.AbstractGPUDevice # only run the test, if CUDA is working (not on Github ci) - v_orig = 1.0f0:1.0f0:6.0f0 - #v = ggdev(v_orig) +function test_vec2uutri_gpu(v_orig, n) v = ggdev(collect(v_orig)) U1v = @inferred CP.vec2uutri(v) @test !(U1v isa UnitUpperTriangular) # on CUDA work with normal matrix @test U1v isa GPUArraysCore.AbstractGPUMatrix - @test size(U1v, 1) == 4 + @test size(U1v, 1) == n @test cdev(U1v) == CP.vec2uutri(v_orig) gr = Zygote.gradient(v -> sum(abs2.(CP.vec2uutri(v))), v)[1] # works nice @test gr isa GPUArraysCore.AbstractGPUArray - @test cdev(gr) == (1:6) .* 2.0 + @test cdev(gr) == v_orig .* 2.0 # + # conversion backwards v2 = @inferred CP.uutri2vec(U1v) @test v2 isa GPUArraysCore.AbstractGPUVector @test eltype(v2) == eltype(U1v) @@ -140,6 +138,16 @@ end @test gr isa GPUArraysCore.AbstractGPUArray @test all(diag(gr) .== 0) @test cdev(CP.uutri2vec(gr)) == fill(2.0f0, length(v_orig)) + # + tmp = CP.vec2uutri(v) # now applied to CuVector + #methods(CP.vec2uutri) +end +@testset "vec2uutri gpu" begin + if ggdev isa MLDataDevices.AbstractGPUDevice # only run the test, if CUDA is working (not on Github ci) + v_orig = [1.0f0]; n = 2 # 2x2 matrix with one parameter + test_vec2uutri_gpu(v_orig, n) + v_orig = 1.0f0:1.0f0:6.0f0; n = 4 #4x4 matrix with 1+2+3=6 parameters + test_vec2uutri_gpu(v_orig, n) end end; From 64a5f446b467cb584de7b789a03e09f66fe8cd85 Mon Sep 17 00:00:00 2001 From: Thomas Wutzler Date: Fri, 15 Aug 2025 16:50:33 +0200 Subject: [PATCH 06/21] =?UTF-8?q?provide=20a=20default=20for=20=CF=95unc?= =?UTF-8?q?=20=20in=20constructor=20of=20HybridProblem?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit and remove Covar, correlations and ϕunc from Basic tutorial, better explain in dedicated HowTos. --- docs/make.jl | 1 + docs/src/tutorials/basic_cpu.md | 58 +-- docs/src/tutorials/basic_cpu.qmd | 64 +-- .../tutorials/how_to_guides/blocks_corr.qmd | 440 ++++++++++++++++++ .../intermediate/basic_cpu_results.jld2 | Bin 198608 -> 197799 bytes src/HybridProblem.jl | 12 +- src/HybridSolver.jl | 6 +- src/PBMApplicator.jl | 8 +- test/test_HybridProblem.jl | 8 +- 9 files changed, 473 insertions(+), 124 deletions(-) create mode 100644 docs/src/tutorials/how_to_guides/blocks_corr.qmd diff --git a/docs/make.jl b/docs/make.jl index e001528..05857d6 100644 --- a/docs/make.jl +++ b/docs/make.jl @@ -20,6 +20,7 @@ makedocs(; "Test quarto markdown" => "tutorials/test1.md", ], "How to" => [ + #".. model independent parameters" => "tutorials/how_to_guides/blocks_corr_site.md", #".. model site-global corr" => "tutorials/how_to_guides/corr_site_global.md", ], "Explanation" => [ diff --git a/docs/src/tutorials/basic_cpu.md b/docs/src/tutorials/basic_cpu.md index 3f36331..12ff6eb 100644 --- a/docs/src/tutorials/basic_cpu.md +++ b/docs/src/tutorials/basic_cpu.md @@ -63,7 +63,7 @@ The provided `y_unc` uncertainty parameters, here, corresponds to py = neg_logden_indep_normal ``` -## Templates, transformations, and correlation structure of parameters +## Global-Site, transformations, and priors ### Global and site-specific parameters @@ -113,44 +113,6 @@ priors_dict = Dict{Symbol, Distribution}( keys(θall) .=> fit.(LogNormal, θall, QuantilePoint.(θall .* 3, 0.95))) ``` -### Correlation structure - -HVI models the posterior of the parameters at unconstrained scale using a -multivariate normal distribution. It estimates a parameterization of the -associated blocks in the correlation matrx and requires a specification -of the block-structure. - -This is done by specifying the positions of the end of the blocks for -the global (P) and the site-specific parameters (M) respectively using -a `NamedTuple` of integer vectors. - -``` julia -cor_ends = (P=[length(θP)], M=[length(θM)]) -``` - -Here, we specify a single entry each, meaning, there is only one big -block respectively, spanning all parameters. - -### Further parameters for the posterior approximation. - -HVI uses additional fitted parameters to represent the means and the -covariance matrix of the posterior distribution of model parameters. -Here, we obtain construct initial estimates. using [`init_hybrid_ϕunc`](@ref) - -``` julia -ϕunc0 = init_hybrid_ϕunc(cor_ends, zero(FT)) -``` - - ComponentVector{Float32}(logσ2_ζP = Float32[-10.0], coef_logσ2_ζMs = Float32[-10.0 -10.0; 0.0 0.0], ρsP = Float32[], ρsM = Float32[0.0]) - -The returned `ComponentVector` has entries for -- `logσ2_ζP`: log of the estimated marginal variance of global parameters -- `coef_logσ2_ζMs`: coefficients of a linear model of log of -the estimated marginal variance of site-dependent parameters dependent on -the predicted parameter -- `ρsP`, `ρsM`: parameterization of the blocks in the correlation matrix for -global and site-specific parameters respectively. - ## Observations, model drivers and covariates The model is inverted using the @@ -212,9 +174,7 @@ framework which works efficiently on CPU. ``` julia n_out = length(θM) # number of individuals to predict -pbm_covars = (:K2,) # global parameters used as input to ML-model -n_covar = size(xM,1) -n_input = n_covar + length(pbm_covars) +n_input = n_covar = size(xM,1) g_chain = SimpleChain( static(n_input), # input dimension (optional) @@ -233,15 +193,6 @@ During construction, an initial template of this vector is created. This abstraction layer allows to use different ML frameworks and replace the `SimpleChains` model by `Flux` or `Lux`. -### Conditional independence of global and site parameters - -The `pbm_covars` specifies which sampled global parameters should be -provided as inputs to the ML model. - -The reason for providing global parameters as inputs is to allow for -correlations among site-parameters and global parameters, despite -the required conditional independence of parameters. - ### Using priors to scale ML-parameter estimates In order to balance gradients, the `g_chain_app` ModelApplicator defined above @@ -277,10 +228,9 @@ invocation of the process based model (PBM), defined at the beginning. ``` julia f_batch = f_allsites = PBMSiteApplicator(f_doubleMM; θP, θM, θFix, xPvec=xP[:,1]) -prob = HybridProblem(θP, θM, g_chain_scaled, ϕg0, ϕunc0, +prob = HybridProblem(θP, θM, g_chain_scaled, ϕg0, f_batch, f_allsites, priors_dict, py, - transM, transP, train_dataloader, n_covar, n_site, n_batch, - cor_ends, pbm_covars) + transM, transP, train_dataloader, n_covar, n_site, n_batch) ``` ## Perform the inversion diff --git a/docs/src/tutorials/basic_cpu.qmd b/docs/src/tutorials/basic_cpu.qmd index 3cd971e..41f70c5 100644 --- a/docs/src/tutorials/basic_cpu.qmd +++ b/docs/src/tutorials/basic_cpu.qmd @@ -72,7 +72,7 @@ The provided `y_unc` uncertainty parameters, here, corresponds to py = neg_logden_indep_normal ``` -## Templates, transformations, and correlation structure of parameters +## Global-Site, transformations, and priors ### Global and site-specific parameters In this example, we will assign a fixed value to r0 parameter, treat the K2 parameter as unknown but the same across sites, and predict @@ -92,7 +92,7 @@ where the probability density is not strictly zero anywhere to the original constrained space. Here, our model parameters are strictly positive, and we use the exponential function -to transform constrained estimates to the original scale. +to transform constrained estimates to the original unconstrained domain. ```{julia} transP = Stacked(HVI.Exp()) @@ -118,42 +118,6 @@ priors_dict = Dict{Symbol, Distribution}( keys(θall) .=> fit.(LogNormal, θall, QuantilePoint.(θall .* 3, 0.95))) ``` - -### Correlation structure -HVI models the posterior of the parameters at unconstrained scale using a -multivariate normal distribution. It estimates a parameterization of the -associated blocks in the correlation matrx and requires a specification -of the block-structure. - -This is done by specifying the positions of the end of the blocks for -the global (P) and the site-specific parameters (M) respectively using -a `NamedTuple` of integer vectors. - -```{julia} -cor_ends = (P=[length(θP)], M=[length(θM)]) -``` - -Here, we specify a single entry each, meaning, there is only one big -block respectively, spanning all parameters. - -### Further parameters for the posterior approximation. -HVI uses additional fitted parameters to represent the means and the -covariance matrix of the posterior distribution of model parameters. -Here, we obtain construct initial estimates. using [`init_hybrid_ϕunc`](@ref) - -```{julia} -#| output: true -ϕunc0 = init_hybrid_ϕunc(cor_ends, zero(FT)) -``` - -The returned `ComponentVector` has entries for -- `logσ2_ζP`: log of the estimated marginal variance of global parameters -- `coef_logσ2_ζMs`: coefficients of a linear model of log of - the estimated marginal variance of site-dependent parameters dependent on - the predicted parameter -- `ρsP`, `ρsM`: parameterization of the blocks in the correlation matrix for - global and site-specific parameters respectively. - ## Observations, model drivers and covariates The model is inverted using the @@ -193,11 +157,12 @@ xP[:,1] In each column of the model drivers there is a ComponentVector with components S1 and S2 corresponding to the concentrations, for which outputs were observed. +Thats why we could use notation `x.S1` in the PBM above. The `y_unc` becomes its meaning by the Liklihood-function to be specified with the problem below. -### Providing data in Batches +### Providing data in batches HVI uses `MLUtils.DataLoader` to provide baches of the data during each iteration of the solver. In addition to the data, it provides an @@ -219,9 +184,7 @@ framework which works efficiently on CPU. ```{julia} n_out = length(θM) # number of individuals to predict -pbm_covars = (:K2,) # global parameters used as input to ML-model -n_covar = size(xM,1) -n_input = n_covar + length(pbm_covars) +n_input = n_covar = size(xM,1) g_chain = SimpleChain( static(n_input), # input dimension (optional) @@ -240,14 +203,6 @@ During construction, an initial template of this vector is created. This abstraction layer allows to use different ML frameworks and replace the `SimpleChains` model by `Flux` or `Lux`. -### Conditional independence of global and site parameters -The `pbm_covars` specifies which sampled global parameters should be -provided as inputs to the ML model. - -The reason for providing global parameters as inputs is to allow for -correlations among site-parameters and global parameters, despite -the required conditional independence of parameters. - ### Using priors to scale ML-parameter estimates In order to balance gradients, the `g_chain_app` ModelApplicator defined above @@ -284,10 +239,9 @@ invocation of the process based model (PBM), defined at the beginning. ```{julia} f_batch = f_allsites = PBMSiteApplicator(f_doubleMM; θP, θM, θFix, xPvec=xP[:,1]) -prob = HybridProblem(θP, θM, g_chain_scaled, ϕg0, ϕunc0, +prob = HybridProblem(θP, θM, g_chain_scaled, ϕg0, f_batch, f_allsites, priors_dict, py, - transM, transP, train_dataloader, n_covar, n_site, n_batch, - cor_ends, pbm_covars) + transM, transP, train_dataloader, n_covar, n_site, n_batch) ``` ```{julia} @@ -421,7 +375,9 @@ To use it, we save the `probo` HybridProblem and the interpreters to a JLD2 file using JLD2 fname = "intermediate/basic_cpu_results.jld2" mkpath("intermediate") -jldsave(fname, false, IOStream; probo, interpreters) +if probo isa AbstractHybridProblem # do not save on failure above + jldsave(fname, false, IOStream; probo, interpreters) +end ``` ```{julia} diff --git a/docs/src/tutorials/how_to_guides/blocks_corr.qmd b/docs/src/tutorials/how_to_guides/blocks_corr.qmd new file mode 100644 index 0000000..ad623ea --- /dev/null +++ b/docs/src/tutorials/how_to_guides/blocks_corr.qmd @@ -0,0 +1,440 @@ +--- +title: "How to model blocks of indenpendent parameters in correlation matrix" +engine: julia +execute: + echo: true + output: false + daemon: 3600 +format: + commonmark: + variant: -raw_html + wrap: preserve +bibliography: twutz_txt.bib +--- + +``` @meta +CurrentModule = HybridVariationalInference +``` + +Modelling full correlations among PBM-parameters requires many degrees of +freedom. + +To decrease the number of parameters to estimate, HVI allows to decompose the +correlations among site parameters or the correlations among global parameters +into sub-blocks of independent parameters. + +TODO + +First load necessary packages. +```{julia} +using HybridVariationalInference +using HybridVariationalInference: HybridVariationalInference as HVI +using ComponentArrays: ComponentArrays as CA +using Bijectors +using StableRNGs +using SimpleChains +using StatsFuns +using MLUtils +using DistributionFits +``` + +Next, specify many moving parts of the Hybrid variational inference (HVI) + +## The process-based model +The example process based model (PBM) predicts a double-monod constrained rate +for different substrate concentrations, `S1`, and `S2`. + +$$ +y = r_0+ r_1 \frac{S_1}{K_1 + S_1} \frac{S_2}{K_2 + S_2}$$ + +```{julia} +function f_doubleMM(θc::CA.ComponentVector{ET}, x) where ET + # extract parameters not depending on order, i.e whether they are in θP or θM + (r0, r1, K1, K2) = map((:r0, :r1, :K1, :K2)) do par + CA.getdata(θc[par])::ET + end + r0 .+ r1 .* x.S1 ./ (K1 .+ x.S1) .* x.S2 ./ (K2 .+ x.S2) +end +``` + +Its formulation is independent of which parameters are global, site-specific, +or fixed during the model inversion. +However, it cannot assume an ordering in the parameters, but needs to +access the components by its symbolic names in the provided `ComponentArray`. + +## Likelihood function + +HVI requires the evaluation of the likelihood of the predictions. +It corresponds to the cost of predictions given some observations. + +The user specifies a function of the negative log-Likehood +`neg_logden(obs, pred, uncertainty_parameters)`, +where all of the parameters are arrays with columns for sites. + +Here, we use the [`neg_logden_indep_normal`](@ref) function +that assumed observations to be distributed independently +normal around a true value. +The provided `y_unc` uncertainty parameters, here, corresponds to +`logσ2`, denoting the log of the variance parameter of the normal distribution. + +```{julia} +py = neg_logden_indep_normal +``` + +## Templates, transformations, and correlation structure of parameters +### Global and site-specific parameters +In this example, we will assign a fixed value to r0 parameter, treat +the K2 parameter as unknown but the same across sites, and predict +r1 and K1 for each site separately, based on covariates known at the sites. + +Here we provide initial values for them by using `ComponentVector`. + +```{julia} +FT = Float32 +θM0 = θM = CA.ComponentVector{FT}(r1=0.5, K1=0.2) # separately for each individual +θP0 = θP = CA.ComponentVector{FT}(K2=2.0) # population: same across individuals, +θFix = CA.ComponentVector{FT}(r0=0.3) # r0, i.e. not estimated +``` +### Parameter Transformations +HVI allows for transformations of parameters in an unconstrained space, +where the probability density is not strictly zero anywhere to the original +constrained space. + +Here, our model parameters are strictly positive, and we use the exponential function +to transform constrained estimates to the original scale. + +```{julia} +transP = Stacked(HVI.Exp()) +transM = Stacked(HVI.Exp(), HVI.Exp()) +``` + +Parameter transformations are specified using the `Bijectors` package. +Because, `Bijectors.elementwise(exp)`, has problems with automatic differentiation (AD) +on GPU, we use the non-exported [`Exp`]() wrapper inside `Bijectors.Stacked`. + +### Prior information on parameters at constrained scale + +HVI is an approximate bayesian analysis and combines prior information on +the parameters with the model and observed data. + +Here, we provide a wide prior by fitting a Lognormal distributions to +- the mean corresponding to the initial value provided above +- the 0.95-quantile 3 times the mean + +```{julia} +θall = vcat(θP, θM) +priors_dict = Dict{Symbol, Distribution}( + keys(θall) .=> fit.(LogNormal, θall, QuantilePoint.(θall .* 3, 0.95))) +``` + + +### Correlation structure +HVI models the posterior of the parameters at unconstrained scale using a +multivariate normal distribution. It estimates a parameterization of the +associated blocks in the correlation matrx and requires a specification +of the block-structure. + +This is done by specifying the positions of the end of the blocks for +the global (P) and the site-specific parameters (M) respectively using +a `NamedTuple` of integer vectors. + +```{julia} +cor_ends = (P=[length(θP)], M=[length(θM)]) +``` + +Here, we specify a single entry each, meaning, there is only one big +block respectively, spanning all parameters. + +### Further parameters for the posterior approximation. +HVI uses additional fitted parameters to represent the means and the +covariance matrix of the posterior distribution of model parameters. +Here, we obtain construct initial estimates. using [`init_hybrid_ϕunc`](@ref) + +```{julia} +#| output: true +ϕunc0 = init_hybrid_ϕunc(cor_ends, zero(FT)) +``` + +The returned `ComponentVector` has entries for +- `logσ2_ζP`: log of the estimated marginal variance of global parameters +- `coef_logσ2_ζMs`: coefficients of a linear model of log of + the estimated marginal variance of site-dependent parameters dependent on + the predicted parameter +- `ρsP`, `ρsM`: parameterization of the blocks in the correlation matrix for + global and site-specific parameters respectively. + +## Observations, model drivers and covariates + +The model is inverted using the +- observed data, `y_o` +- its uncertainty, `y_unc` +- known covariates across sites, `xM` +- model drivers, `xP` +Here, we use synthetic data generated by the package. + +```{julia} +rng = StableRNG(111) +scenario = Val((:omit_r0, :covarK2, )) +(; xM, xP, y_o, y_unc) = gen_hybridproblem_synthetic(rng, DoubleMM.DoubleMMCase(); scenario) +``` + +```{julia} +#| echo: false +#| eval: false +() -> begin + (; xM, θP_true, θMs_true, xP, y_global_true, y_true, y_global_o, y_o, y_unc) = + gen_hybridproblem_synthetic(rng, DoubleMM.DoubleMMCase(); scenario) +end +``` + +Lets look at them. +```{julia} +#| output: true +size(xM), size(xP), size(y_o), size(y_unc) +``` +All of them have 800 columns, corresponding to 800 sites. +There are 5 site-covaraitas and 16 values of model drivers, and 8 observations per site. + +```{julia} +#| output: true +xP[:,1] +``` +In each column of the model drivers there is a ComponentVector with +components S1 and S2 corresponding to the concentrations, for which outputs +were observed. + +The `y_unc` becomes its meaning by the Liklihood-function to be specified with +the problem below. + +### Providing data in Batches + +HVI uses `MLUtils.DataLoader` to provide baches of the data during each +iteration of the solver. In addition to the data, it provides an +index to the sites inside a tuple. + +```{julia} +n_site = size(y_o,2) +n_batch = 20 +train_dataloader = MLUtils.DataLoader( + (xM, xP, y_o, y_unc, 1:n_site), batchsize=n_batch, partial=false) +``` + +## The Machine-Learning model + +The machine-learning (ML) part predicts parameters of the posterior of site-specific +PBM parameters, given the covariates. +Here, we specify a 3-layer feed-forward neural network using the `SimpleChains` +framework which works efficiently on CPU. + +```{julia} +n_out = length(θM) # number of individuals to predict +pbm_covars = (:K2,) # global parameters used as input to ML-model +n_covar = size(xM,1) +n_input = n_covar + length(pbm_covars) + +g_chain = SimpleChain( + static(n_input), # input dimension (optional) + TurboDense{true}(tanh, n_input * 4), + TurboDense{true}(tanh, n_input * 4), + # dense layer without bias that maps to n outputs to (0..1) + TurboDense{false}(logistic, n_out) +) +# get a template of the parameter vector, ϕg0 +g_chain_app, ϕg0 = construct_ChainsApplicator(rng, g_chain) +``` + +The `g_chain_app` `ChainsApplicator` precits the parameters of the posterior, +given a vector of ML weights,`ϕg`. +During construction, an initial template of this vector is created. +This abstraction layer allows to use different ML frameworks and replace the +`SimpleChains` model by `Flux` or `Lux`. + +### Conditional independence of global and site parameters +The `pbm_covars` specifies which sampled global parameters should be +provided as inputs to the ML model. + +The reason for providing global parameters as inputs is to allow for +correlations among site-parameters and global parameters, despite +the required conditional independence of parameters. + +### Using priors to scale ML-parameter estimates + +In order to balance gradients, the `g_chain_app` ModelApplicator defined above +predicts on a scale (0..1). +Now the priors are used to translate this to the parameter range by using the +cumulative density distribution. + +However, HVI needs a prior on unconstrained scale, and we need the priors on +this unconstrained scale. +This can be mathematically worked out for specific prior distribution forms. +But for simplicity, here a [`NormalScalingModelApplicator`](@ref) +is fitted to the transformed 5% and 95% quantiles of the original prior. + +```{julia} +priorsM = [priors_dict[k] for k in keys(θM)] +lowers, uppers = get_quantile_transformed(priorsM, transM) +g_chain_scaled = NormalScalingModelApplicator(g_chain_app, lowers, uppers, FT) +``` + +The `g_chain_scaled` `ModelApplicator` now predicts in unconstrained scale +with transforms ML predctions around 0.5 to the range of +high prior probability of the parameters, +and transforms ML predictions near 0 or 1 towards the outer lower probability ranges. + + +## Assembling the information + +All the specifications above are stored in a [`HybridProblem`](@ref) structure. + +Before, a [`PBMSiteApplicator`](@ref) is constructed that translates an invocation +given a vector of global parameters, and a matrix of site parameters to +invocation of the process based model (PBM), defined at the beginning. + +```{julia} +f_batch = f_allsites = PBMSiteApplicator(f_doubleMM; θP, θM, θFix, xPvec=xP[:,1]) + +prob = HybridProblem(θP, θM, g_chain_scaled, ϕg0, ϕunc0, + f_batch, f_allsites, priors_dict, py, + transM, transP, train_dataloader, n_covar, n_site, n_batch, + cor_ends, pbm_covars) +``` + +```{julia} +#| eval: false +#| echo: false + +# test invoking +#θMs = stack(Iterators.repeated(θM, n_batch); dims=1) +θMs = θM' .+ (randn(n_batch, size(θM,1)) .* 0.05) +x_batch = xP[:,1:n_batch] +y1 = f_batch(CA.getdata(θP), CA.getdata(θMs), CA.getdata(x_batch))[2] + + +() -> begin + y1 - y_o[:,1:n_batch] # check size and roughly equal + #using Test + #@inferred f_batch(CA.getdata(θP), CA.getdata(θMs), CA.getdata(x_batch))[2] + @inferred Vector{Float64} f_batch(CA.getdata(θP), CA.getdata(θMs), CA.getdata(x_batch))[2] + #using Cthulhu + #@descend_code_warntype f_batch(CA.getdata(θP), CA.getdata(θMs), CA.getdata(x_batch)) + prob0 = HVI.DoubleMM.DoubleMMCase() + f_batch0 = get_hybridproblem_PBmodel(prob0; scenario, use_all_sites = false) + y1f = f_batch0(θP, θMs, x_batch)[2] + y1 .- y1f # equal +end +``` + +## Perform the inversion + +Eventually, having assembled all the moving parts of the HVI, we can perform +the inversion. + +```{julia} +using OptimizationOptimisers +import Zygote + +solver = HybridPosteriorSolver(; alg=Adam(0.02), n_MC=3) + +(; probo, interpreters) = solve(prob, solver; scenario, rng, + callback = callback_loss(100), # output during fitting + epochs = 2, + gdev = identity, # do not use GPU, here +); +``` + +The solver object is constructed given the specific stochastic optimization algorithm +and the number of Monte-Carlo samples that are drawn in each iteration +from the predicted parameter posterior. + +Then the solver is applied to the problem using [`solve`](@ref) +for a given number of iterations or epochs. +For this tutorial, we additionally specify that the function to transfer structures to +the GPU is the identity function, so that all stays on the CPU, and this tutorial +hence does not require ad GPU or GPU livraries. + +Among the return values are +- `probo`: A copy of the HybridProblem, with updated optimized parameters +- `interpreters`: A `NamedTuple` with several `ComponentArrayInterpreter`s that + will help analyzing the results. + +## Using a population-level process-based model + +So far, we have specified the process-based model to run for a single site. +For this simple model, we can gain some performance from matrix-computations +during running the model for all sites. + +We specify the PBM now to accept a matrices as arguments for parameters and drivers +and returns a matrix of precitions. For the parameters, one row corresponds to +one site. For the drivers and predictions, one column corresponds to one site. + + +```{julia} +function f_doubleMM_sites(θc::CA.ComponentMatrix, xPc::CA.ComponentMatrix) + # extract several covariates from xP + ST = typeof(CA.getdata(xPc)[1:1,:]) # workaround for non-type-stable Symbol-indexing + S1 = (CA.getdata(xPc[:S1,:])::ST) + S2 = (CA.getdata(xPc[:S2,:])::ST) + # + # extract the parameters as row-repeated vectors + n_obs = size(S1, 1) + VT = typeof(CA.getdata(θc)[:,1]) # workaround for non-type-stable Symbol-indexing + (r0, r1, K1, K2) = map((:r0, :r1, :K1, :K2)) do par + p1 = CA.getdata(θc[:, par]) ::VT + repeat(p1', n_obs) # matrix: same for each concentration row in S1 + end + # + # each variable is a matrix (n_obs x n_site) + r0 .+ r1 .* S1 ./ (K1 .+ S1) .* S2 ./ (K2 .+ S2) +end +``` + +Again, the function should not rely on the order of parameters, but use symbolic indexing +to extract the parameter vectors. For type stability of this symbolic indexing, +it uses a workaround to get the type of a single row. +Similarly, it uses type hints to index into the drivers, `xPc`, to extract +sub-matrices by symbols. Alternatively, here we it could rely on the structure and +ordering of the columns in `xPc`. + +We use the corresponding [`PBMPopulationApplicator`](@ref) +and [update](@ref) the HVI Problem. + +```{julia} +f_batch = PBMPopulationApplicator(f_doubleMM_sites, n_batch; θP, θM, θFix, xPvec=xP[:,1]) +f_allsites = PBMPopulationApplicator(f_doubleMM_sites, n_site; θP, θM, θFix, xPvec=xP[:,1]) +probo_sites = HVI.update(probo; f_batch, f_allsites) +``` + +For numerical efficiency, the number of sites within one batch is part of the +`PBMPopulationApplicator`. Hence, we have two different functions, one applied +to a batch of site, and another applied to all sites. + +As a test of the new applicator, we refine the results by running a few more +epochs of the optimization. + +```{julia} +(; probo) = solve(probo_sites, solver; scenario, rng, + callback = callback_loss(100), # output during fitting + epochs = 10, + gdev = identity, # do not use GPU, here + #is_inferred = Val(true), # activate type-checks +); +``` + +## Saving the results +Extracting useful information from the optimized HybridProblem is covered +in the following tutorial. XXLink + +To use it, we save the `probo` HybridProblem and the interpreters to a JLD2 file. + +```{julia} +using JLD2 +fname = "intermediate/basic_cpu_results.jld2" +mkpath("intermediate") +jldsave(fname, false, IOStream; probo, interpreters) +``` + +```{julia} +#| eval: false +#| echo: false +probo = load(fname, "probo"; iotype = IOStream); +``` \ No newline at end of file diff --git a/docs/src/tutorials/intermediate/basic_cpu_results.jld2 b/docs/src/tutorials/intermediate/basic_cpu_results.jld2 index 09a9f4e3b19e880c78a16baf62d1d0b2d2418b2f..94f8ebe35398231a280d0398b1288b17539bf06e 100644 GIT binary patch delta 10572 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 delta 11523 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 ynX=FPe>GOla!yk Date: Mon, 18 Aug 2025 10:29:31 +0200 Subject: [PATCH 07/21] remove update method rather provide keyword argument with constructor of HybridProblem --- dev/doubleMM.jl | 28 +++--- docs/src/tutorials/basic_cpu.md | 13 ++- docs/src/tutorials/basic_cpu.qmd | 4 +- .../tutorials/how_to_guides/blocks_corr.qmd | 4 +- .../how_to_guides/corr_site_global.qmd | 4 +- src/HybridProblem.jl | 95 ++++++++++--------- src/HybridSolver.jl | 6 +- src/HybridVariationalInference.jl | 1 - test/test_HybridProblem.jl | 2 +- test/test_elbo.jl | 5 +- 10 files changed, 85 insertions(+), 77 deletions(-) diff --git a/dev/doubleMM.jl b/dev/doubleMM.jl index c399787..74023e6 100644 --- a/dev/doubleMM.jl +++ b/dev/doubleMM.jl @@ -43,7 +43,7 @@ train_dataloader = MLUtils.DataLoader( batchsize = n_batch, partial = false) σ_o = exp.(y_unc[:, 1] / 2) # assign the train_loader, otherwise it eatch time creates another version of synthetic data -prob0 = HVI.update(prob0_; train_dataloader); +prob0 = HybridProblem(prob0_; train_dataloader) #tmp = HVI.get_hybridproblem_ϕunc(prob0; scenario) #prob0.covar @@ -76,7 +76,7 @@ histogram(vec(y_pred) - vec(y_true)) # predictions centered around y_o (or y_tru solver1 = HybridPointSolver(; alg = Adam(0.01), n_batch = n_site) (; ϕ, resopt) = solve(prob0o, solver1; scenario, rng, callback = callback_loss(20), maxiters = 400) - prob1o = HVI.update(prob0o; ϕg = cpu_ca(ϕ).ϕg, θP = cpu_ca(ϕ).θP) + prob1o = HybridProblem(prob0o; ϕg = cpu_ca(ϕ).ϕg, θP = cpu_ca(ϕ).θP) y_pred_global, y_pred, θMs = gf(prob1o, xM, xP; scenario) scatterplot(θMs_true[1, :], θMs[1, :]) scatterplot(θMs_true[2, :], θMs[2, :]) @@ -90,7 +90,7 @@ end prob2 = prob1o (; ϕ, resopt) = solve(prob2, solver1; scenario, rng, callback = callback_loss(20), maxiters = 600) - prob2o = HVI.update(prob2; ϕg = collect(ϕ.ϕg), θP = ϕ.θP) + prob2o = HybridProblem(prob2; ϕg = collect(ϕ.ϕg), θP = ϕ.θP) y_pred_global, y_pred, θMs = gf(prob2o, xM, xP) prob2o.θP end @@ -122,11 +122,11 @@ end #scatterplot(θMs_true[1,:], θMs[1,:]) scatterplot(θMs_true[2, :], θMs[2, :]) # able to fit θMs[2,:] - prob3 = HVI.update(prob0, ϕg = Array(ϕg_opt1), θP = θP_true) + prob3 = HybridProblem(prob0, ϕg = Array(ϕg_opt1), θP = θP_true) solver1 = HybridPointSolver(; alg = Adam(0.01), n_batch = n_site) (; ϕ, resopt) = solve(prob3, solver1; scenario, rng, callback = callback_loss(50), maxiters = 600) - prob3o = HVI.update(prob3; ϕg = cpu_ca(ϕ).ϕg, θP = cpu_ca(ϕ).θP) + prob3o = HybridProblem(prob3; ϕg = cpu_ca(ϕ).ϕg, θP = cpu_ca(ϕ).θP) y_pred_global, y_pred, θMs = gf(prob3o, xM, xP; scenario) scatterplot(θMs_true[2, :], θMs[2, :]) prob3o.θP @@ -182,8 +182,8 @@ solver_post = HybridPosteriorSolver(; alg = OptimizationOptimisers.Adam(0.01), n end #----------- HVI without strong prior on θmean -#prob2 = HVI.update(prob1o); # copy -prob2 = HVI.update(prob0o); # copy +#prob2 = HybridProblem(prob1o); # copy +prob2 = HybridProblem(prob0o); # copy function fstate_ϕunc(state) u = state.u |> cpu #Main.@infiltrate_main @@ -194,8 +194,8 @@ n_epoch = 100 #n_epoch = 400 #n_epoch = 2 (; ϕ, θP, resopt, interpreters, probo) = solve(prob2, - HVI.update(solver_post, n_MC = 12); - #HVI.update(solver_post, n_MC = 30); + HybridProblem(solver_post, n_MC = 12); + #HybridProblem(solver_post, n_MC = 30); scenario, rng, maxiters = n_batches_in_epoch * n_epoch, #callback = HVI.callback_loss_fstate(n_batches_in_epoch*5, fstate_ϕunc), callback = callback_loss(n_batches_in_epoch * 5), @@ -323,10 +323,10 @@ histogram(θsP) # (; ϕ, θP, resopt, interpreters) = solve(prob1o, solver_MC; scenario, # rng, callback = callback_loss(n_batches_in_epoch), maxiters = 14); # resopt.objective - # probo = prob3o = HVI.update(prob2; ϕg = cpu_ca(ϕ).ϕg, θP = θP, ϕunc = cpu_ca(ϕ).unc) + # probo = prob3o = HybridProblem(prob2; ϕg = cpu_ca(ϕ).ϕg, θP = θP, ϕunc = cpu_ca(ϕ).unc) - solver_post2 = HVI.update(solver_post; n_MC = 30) - #solver_post2 = HVI.update(solver_post; n_MC=3) + solver_post2 = HybridPosteriorSovler(solver_post; n_MC = 30) + #solver_post2 = HybridPosteriorSovler(solver_post; n_MC = 3) n_rep = 30 n_batchf = n_site n_batchf = n_site ÷ 10 @@ -456,7 +456,7 @@ using MCMCChains prior_ζ = fit(Normal, @qp_ll(log(1e-2)), @qp_uu(log(10))) prior_ζn = (n) -> MvNormal(fill(prior_ζ.μ, n), PDiagMat(fill(abs2(prior_ζ.σ), n))) prior_ζn(3) -prob = HVI.update(prob0o); +prob = HybridProblem(prob0o); (; θM, θP) = get_hybridproblem_par_templates(prob; scenario) n_θM, n_θP = length.((θM, θP)) @@ -942,7 +942,7 @@ end prior_θ = Normal(0, 10) prior_θn = (n) -> MvNormal(fill(prior_θ.μ, n), PDiagMat(fill(abs2(prior_θ.σ), n))) prior_θn(3) - prob = HVI.update(prob0o); + prob = HybridProblem(prob0o); (; θM, θP) = get_hybridproblem_par_templates(prob; scenario) n_θM, n_θP = length.((θM, θP)) diff --git a/docs/src/tutorials/basic_cpu.md b/docs/src/tutorials/basic_cpu.md index 12ff6eb..d6bf55a 100644 --- a/docs/src/tutorials/basic_cpu.md +++ b/docs/src/tutorials/basic_cpu.md @@ -87,7 +87,7 @@ where the probability density is not strictly zero anywhere to the original constrained space. Here, our model parameters are strictly positive, and we use the exponential function -to transform constrained estimates to the original scale. +to transform constrained estimates to the original unconstrained domain. ``` julia transP = Stacked(HVI.Exp()) @@ -148,11 +148,12 @@ xP[:,1] In each column of the model drivers there is a ComponentVector with components S1 and S2 corresponding to the concentrations, for which outputs were observed. +Thats why we could use notation `x.S1` in the PBM above. The `y_unc` becomes its meaning by the Liklihood-function to be specified with the problem below. -### Providing data in Batches +### Providing data in batches HVI uses `MLUtils.DataLoader` to provide baches of the data during each iteration of the solver. In addition to the data, it provides an @@ -304,12 +305,12 @@ sub-matrices by symbols. Alternatively, here we it could rely on the structure a ordering of the columns in `xPc`. We use the corresponding [`PBMPopulationApplicator`](@ref) -and [update](@ref) the HVI Problem. +and update the HVI Problem. ``` julia f_batch = PBMPopulationApplicator(f_doubleMM_sites, n_batch; θP, θM, θFix, xPvec=xP[:,1]) f_allsites = PBMPopulationApplicator(f_doubleMM_sites, n_site; θP, θM, θFix, xPvec=xP[:,1]) -probo_sites = HVI.update(probo; f_batch, f_allsites) +probo_sites = HybridProblem(probo; f_batch, f_allsites) ``` For numerical efficiency, the number of sites within one batch is part of the @@ -339,5 +340,7 @@ To use it, we save the `probo` HybridProblem and the interpreters to a JLD2 file using JLD2 fname = "intermediate/basic_cpu_results.jld2" mkpath("intermediate") -jldsave(fname, false, IOStream; probo, interpreters) +if probo isa AbstractHybridProblem # do not save on failure above + jldsave(fname, false, IOStream; probo, interpreters) +end ``` diff --git a/docs/src/tutorials/basic_cpu.qmd b/docs/src/tutorials/basic_cpu.qmd index 41f70c5..2c249fa 100644 --- a/docs/src/tutorials/basic_cpu.qmd +++ b/docs/src/tutorials/basic_cpu.qmd @@ -341,12 +341,12 @@ sub-matrices by symbols. Alternatively, here we it could rely on the structure a ordering of the columns in `xPc`. We use the corresponding [`PBMPopulationApplicator`](@ref) -and [update](@ref) the HVI Problem. +and update the HVI Problem. ```{julia} f_batch = PBMPopulationApplicator(f_doubleMM_sites, n_batch; θP, θM, θFix, xPvec=xP[:,1]) f_allsites = PBMPopulationApplicator(f_doubleMM_sites, n_site; θP, θM, θFix, xPvec=xP[:,1]) -probo_sites = HVI.update(probo; f_batch, f_allsites) +probo_sites = HybridProblem(probo; f_batch, f_allsites) ``` For numerical efficiency, the number of sites within one batch is part of the diff --git a/docs/src/tutorials/how_to_guides/blocks_corr.qmd b/docs/src/tutorials/how_to_guides/blocks_corr.qmd index ad623ea..34f4adc 100644 --- a/docs/src/tutorials/how_to_guides/blocks_corr.qmd +++ b/docs/src/tutorials/how_to_guides/blocks_corr.qmd @@ -396,12 +396,12 @@ sub-matrices by symbols. Alternatively, here we it could rely on the structure a ordering of the columns in `xPc`. We use the corresponding [`PBMPopulationApplicator`](@ref) -and [update](@ref) the HVI Problem. +and the HVI Problem. ```{julia} f_batch = PBMPopulationApplicator(f_doubleMM_sites, n_batch; θP, θM, θFix, xPvec=xP[:,1]) f_allsites = PBMPopulationApplicator(f_doubleMM_sites, n_site; θP, θM, θFix, xPvec=xP[:,1]) -probo_sites = HVI.update(probo; f_batch, f_allsites) +probo_sites = HybridProblem(probo; f_batch, f_allsites) ``` For numerical efficiency, the number of sites within one batch is part of the diff --git a/docs/src/tutorials/how_to_guides/corr_site_global.qmd b/docs/src/tutorials/how_to_guides/corr_site_global.qmd index 2121b5f..a516580 100644 --- a/docs/src/tutorials/how_to_guides/corr_site_global.qmd +++ b/docs/src/tutorials/how_to_guides/corr_site_global.qmd @@ -387,12 +387,12 @@ sub-matrices by symbols. Alternatively, here we it could rely on the structure a ordering of the columns in `xPc`. We use the corresponding [`PBMPopulationApplicator`](@ref) -and [update](@ref) the HVI Problem. +and update the HVI Problem. ```{julia} f_batch = PBMPopulationApplicator(f_doubleMM_sites, n_batch; θP, θM, θFix, xPvec=xP[:,1]) f_allsites = PBMPopulationApplicator(f_doubleMM_sites, n_site; θP, θM, θFix, xPvec=xP[:,1]) -probo_sites = HVI.update(probo; f_batch, f_allsites) +probo_sites = HybridProblem(probo; f_batch, f_allsites) ``` For numerical efficiency, the number of sites within one batch is part of the diff --git a/src/HybridProblem.jl b/src/HybridProblem.jl index 0f07c96..0860e29 100644 --- a/src/HybridProblem.jl +++ b/src/HybridProblem.jl @@ -22,7 +22,6 @@ Fields: - `pbm_covars::NTuple{N,Symbol}`: names of global parameters used as covariates in the ML model, defaults to `()`, i.e. no covariates fed into the ML model -See also [`update`](@ref) for a copy with some entries modified. """ struct HybridProblem <: AbstractHybridProblem θP::CA.ComponentVector @@ -79,55 +78,61 @@ end """ HybridProblem(prob::AbstractHybridProblem; scenario = () -Gather all information from another `AbstractHybridProblem`. +Gather all information from another `AbstractHybridProblem` wiht possible +updating of some of the entries. """ -function HybridProblem(prob::AbstractHybridProblem; scenario = ()) - (; θP, θM) = get_hybridproblem_par_templates(prob; scenario) - g, ϕg = get_hybridproblem_MLapplicator(prob; scenario) - ϕunc = get_hybridproblem_ϕunc(prob; scenario) - f_batch = get_hybridproblem_PBmodel(prob; scenario, use_all_sites = false) - f_allsites = get_hybridproblem_PBmodel(prob; scenario, use_all_sites = true) - py = get_hybridproblem_neg_logden_obs(prob; scenario) - (; transP, transM) = get_hybridproblem_transforms(prob; scenario) - train_dataloader = get_hybridproblem_train_dataloader(prob; scenario) - cor_ends = get_hybridproblem_cor_ends(prob; scenario) - pbm_covars = get_hybridproblem_pbmpar_covars(prob; scenario) - priors = get_hybridproblem_priors(prob; scenario) - n_covar = get_hybridproblem_n_covar(prob; scenario) - n_site, n_batch = get_hybridproblem_n_site_and_batch(prob; scenario) +function HybridProblem(prob::AbstractHybridProblem; scenario = (), + θP = get_hybridproblem_par_templates(prob; scenario).θP, + θM = get_hybridproblem_par_templates(prob; scenario).θM, + g = get_hybridproblem_MLapplicator(prob; scenario)[1], + ϕg = get_hybridproblem_MLapplicator(prob; scenario)[2], + f_batch = get_hybridproblem_PBmodel(prob; scenario, use_all_sites = false), + f_allsites = get_hybridproblem_PBmodel(prob; scenario, use_all_sites = true), + priors = get_hybridproblem_priors(prob; scenario), + py = get_hybridproblem_neg_logden_obs(prob; scenario), + transP = get_hybridproblem_transforms(prob; scenario).transP, + transM = get_hybridproblem_transforms(prob; scenario).transM, + train_dataloader = get_hybridproblem_train_dataloader(prob; scenario), + n_covar = get_hybridproblem_n_covar(prob; scenario), + n_site = get_hybridproblem_n_site_and_batch(prob; scenario)[1], + n_batch = get_hybridproblem_n_site_and_batch(prob; scenario)[2], + cor_ends = get_hybridproblem_cor_ends(prob; scenario), + pbm_covars = get_hybridproblem_pbmpar_covars(prob; scenario), + ϕunc = get_hybridproblem_ϕunc(prob; scenario), + ) HybridProblem(θP, θM, g, ϕg, f_batch, f_allsites, priors, py, transM, transP, train_dataloader, n_covar, n_site, n_batch, cor_ends, pbm_covars, ϕunc) end -""" - update(prob::HybridProblem; ...) - -Create a copy of prob, with some parts replaced. -""" -function update(prob::HybridProblem; - θP::CA.ComponentVector = prob.θP, - θM::CA.ComponentVector = prob.θM, - g::AbstractModelApplicator = prob.g, - ϕg::AbstractVector = prob.ϕg, - ϕunc::CA.ComponentVector = prob.ϕunc, - f_batch = prob.f_batch, - f_allsites = prob.f_allsites, - priors::AbstractDict = prob.priors, - py = prob.py, - # transM::Union{Function, Bijectors.Transform} = prob.transM, - # transP::Union{Function, Bijectors.Transform} = prob.transP, - transM = prob.transM, - transP = prob.transP, - cor_ends::NamedTuple = prob.cor_ends, - pbm_covars::NTuple{N,Symbol} = prob.pbm_covars, - train_dataloader::MLUtils.DataLoader = prob.train_dataloader, - n_covar::Integer = prob.n_covar, - n_site::Integer = prob.n_site, - n_batch::Integer = prob.n_batch, -) where N - HybridProblem(θP, θM, g, ϕg, f_batch, f_allsites, priors, py, transM, transP, - train_dataloader, n_covar, n_site, n_batch, cor_ends, pbm_covars, ϕunc) -end +# """ +# update(prob::HybridProblem; ...) + +# Create a copy of prob, with some parts replaced. +# """ +# function update(prob::HybridProblem; +# θP::CA.ComponentVector = prob.θP, +# θM::CA.ComponentVector = prob.θM, +# g::AbstractModelApplicator = prob.g, +# ϕg::AbstractVector = prob.ϕg, +# ϕunc::CA.ComponentVector = prob.ϕunc, +# f_batch = prob.f_batch, +# f_allsites = prob.f_allsites, +# priors::AbstractDict = prob.priors, +# py = prob.py, +# # transM::Union{Function, Bijectors.Transform} = prob.transM, +# # transP::Union{Function, Bijectors.Transform} = prob.transP, +# transM = prob.transM, +# transP = prob.transP, +# cor_ends::NamedTuple = prob.cor_ends, +# pbm_covars::NTuple{N,Symbol} = prob.pbm_covars, +# train_dataloader::MLUtils.DataLoader = prob.train_dataloader, +# n_covar::Integer = prob.n_covar, +# n_site::Integer = prob.n_site, +# n_batch::Integer = prob.n_batch, +# ) where N +# HybridProblem(θP, θM, g, ϕg, f_batch, f_allsites, priors, py, transM, transP, +# train_dataloader, n_covar, n_site, n_batch, cor_ends, pbm_covars, ϕunc) +# end function get_hybridproblem_par_templates(prob::HybridProblem; scenario = ()) (; θP = prob.θP, θM = prob.θM) diff --git a/src/HybridSolver.jl b/src/HybridSolver.jl index d18a70e..724d336 100644 --- a/src/HybridSolver.jl +++ b/src/HybridSolver.jl @@ -56,7 +56,7 @@ function CommonSolve.solve(prob::AbstractHybridProblem, solver::HybridPointSolve res = Optimization.solve(optprob, solver.alg; kwargs...) ϕ = intϕ(res.u) θP = cpu_ca(apply_preserve_axes(transP, cpu_ca(ϕ).ϕP)) - probo = update(prob; ϕg=cpu_ca(ϕ).ϕg, θP) + probo = HybridProblem(prob; ϕg=cpu_ca(ϕ).ϕg, θP) (; ϕ, resopt=res, probo) end @@ -68,7 +68,7 @@ end function HybridPosteriorSolver(; alg, n_MC=12, n_MC_cap=n_MC) HybridPosteriorSolver(alg, n_MC, n_MC_cap) end -function update(solver::HybridPosteriorSolver; +function HybridPosteriorSolver(solver::HybridPosteriorSolver; alg=solver.alg, n_MC=solver.n_MC, n_MC_cap=n_MC) @@ -150,7 +150,7 @@ function CommonSolve.solve(prob::AbstractHybridProblem, solver::HybridPosteriorS res = Optimization.solve(optprob, solver.alg; kwargs...) ϕc = interpreters.μP_ϕg_unc(res.u) θP = cpu_ca(apply_preserve_axes(transP, ϕc.μP)) - probo = update(prob; ϕg=cpu_ca(ϕc).ϕg, θP=θP, ϕunc=cpu_ca(ϕc).unc) + probo = HybridProblem(prob; ϕg=cpu_ca(ϕc).ϕg, θP=θP, ϕunc=cpu_ca(ϕc).unc) (; probo, interpreters, ϕ=ϕc, θP, resopt=res) end diff --git a/src/HybridVariationalInference.jl b/src/HybridVariationalInference.jl index 0a0688b..cefc5c1 100644 --- a/src/HybridVariationalInference.jl +++ b/src/HybridVariationalInference.jl @@ -70,7 +70,6 @@ export AbstractHybridProblemInterpreters, HybridProblemInterpreters, include("hybridprobleminterpreters.jl") export HybridProblem -public update export get_quantile_transformed include("HybridProblem.jl") diff --git a/test/test_HybridProblem.jl b/test/test_HybridProblem.jl index 77c1776..01c1654 100644 --- a/test/test_HybridProblem.jl +++ b/test/test_HybridProblem.jl @@ -313,7 +313,7 @@ test_with_flux_gpu = (scenario) -> begin rng = StableRNG(111) probg = HybridProblem(DoubleMM.DoubleMMCase(); scenario = scenf); # put Applicator to gpu (θFix) - probg = CP.update( + probg = HybridProblem( probg, f_batch = fmap(gdev, probg.f_batch), f_allsites = fmap(gdev, probg.f_allsites)) diff --git a/test/test_elbo.jl b/test/test_elbo.jl index c5b5a56..74536e7 100644 --- a/test/test_elbo.jl +++ b/test/test_elbo.jl @@ -138,7 +138,8 @@ test_scenario = (scenario) -> begin UC = CP.transformU_cholesky1(ϕunc_true.ρsM); Σ = UC' * UC @test Σ[1,2] ≈ ρsM_true[1] - probd = CP.update(probc; ϕunc=ϕunc_true); + probd = HybridProblem(probc; ϕunc=ϕunc_true); + _ϕ = vcat(ϕ_ini.μP, probc.ϕg, probd.ϕunc) #hcat(ϕ_ini, ϕ, _ϕ)[1:4,:] #hcat(ϕ_ini, ϕ, _ϕ)[(end-20):end,:] @@ -205,7 +206,7 @@ test_scenario = (scenario) -> begin @testset "predict_hvi check sd" begin # test if uncertainty and reshaping is propagated # here inverse the predicted θs and then test distribution - probcu = CP.update(probc, ϕunc=ϕunc_true); + probcu = HybridProblem(probc, ϕunc=ϕunc_true); n_sample_pred = 24_000 (; y, θsP, θsMs, entropy_ζ) = predict_hvi(rng, probcu; scenario, n_sample_pred); #size(_ζsMs), size(θsMs) From 2a759bc5f4b326076ae589e4861e911cacd68ca1 Mon Sep 17 00:00:00 2001 From: Thomas Wutzler Date: Mon, 18 Aug 2025 10:51:33 +0200 Subject: [PATCH 08/21] revise text of the basc workflow tutorial --- docs/src/tutorials/basic_cpu.md | 52 ++++++++++++++++++-------------- docs/src/tutorials/basic_cpu.qmd | 52 ++++++++++++++++++-------------- src/HybridProblem.jl | 2 +- 3 files changed, 59 insertions(+), 47 deletions(-) diff --git a/docs/src/tutorials/basic_cpu.md b/docs/src/tutorials/basic_cpu.md index d6bf55a..6b67628 100644 --- a/docs/src/tutorials/basic_cpu.md +++ b/docs/src/tutorials/basic_cpu.md @@ -87,7 +87,7 @@ where the probability density is not strictly zero anywhere to the original constrained space. Here, our model parameters are strictly positive, and we use the exponential function -to transform constrained estimates to the original unconstrained domain. +to transform unconstrained estimates to the original constrained domain. ``` julia transP = Stacked(HVI.Exp()) @@ -106,6 +106,7 @@ the parameters with the model and observed data. Here, we provide a wide prior by fitting a Lognormal distributions to - the mean corresponding to the initial value provided above - the 0.95-quantile 3 times the mean +using the `DistributionFits.jl` package. ``` julia θall = vcat(θP, θM) @@ -115,7 +116,7 @@ priors_dict = Dict{Symbol, Distribution}( ## Observations, model drivers and covariates -The model is inverted using the +The model paraemters are inverted using information on the - observed data, `y_o` - its uncertainty, `y_unc` - known covariates across sites, `xM` @@ -137,7 +138,7 @@ size(xM), size(xP), size(y_o), size(y_unc) ((5, 800), (16, 800), (8, 800), (8, 800)) All of them have 800 columns, corresponding to 800 sites. -There are 5 site-covaraitas and 16 values of model drivers, and 8 observations per site. +There are 5 site-covaritas, 16 values of model drivers, and 8 observations per site. ``` julia xP[:,1] @@ -148,7 +149,7 @@ xP[:,1] In each column of the model drivers there is a ComponentVector with components S1 and S2 corresponding to the concentrations, for which outputs were observed. -Thats why we could use notation `x.S1` in the PBM above. +This allows notation `x.S1` in the PBM above. The `y_unc` becomes its meaning by the Liklihood-function to be specified with the problem below. @@ -188,8 +189,8 @@ g_chain = SimpleChain( g_chain_app, ϕg0 = construct_ChainsApplicator(rng, g_chain) ``` -The `g_chain_app` `ChainsApplicator` precits the parameters of the posterior, -given a vector of ML weights,`ϕg`. +The `g_chain_app` `ChainsApplicator` predicts the parameters of the posterior, +approximation given a vector of ML weights,`ϕg`. During construction, an initial template of this vector is created. This abstraction layer allows to use different ML frameworks and replace the `SimpleChains` model by `Flux` or `Lux`. @@ -201,10 +202,11 @@ predicts on a scale (0..1). Now the priors are used to translate this to the parameter range by using the cumulative density distribution. -However, HVI needs a prior on unconstrained scale, and we need the priors on -this unconstrained scale. -This can be mathematically worked out for specific prior distribution forms. -But for simplicity, here a [`NormalScalingModelApplicator`](@ref) +Priors were specified at constrained scale, but the ML model predicts +parameters on unconstrained scale. +This transformation of the distribution can be mathematically worked out for +specific prior distribution forms. +However, for simplicity, a [`NormalScalingModelApplicator`](@ref) is fitted to the transformed 5% and 95% quantiles of the original prior. ``` julia @@ -213,8 +215,8 @@ lowers, uppers = get_quantile_transformed(priorsM, transM) g_chain_scaled = NormalScalingModelApplicator(g_chain_app, lowers, uppers, FT) ``` -The `g_chain_scaled` `ModelApplicator` now predicts in unconstrained scale -with transforms ML predctions around 0.5 to the range of +The `g_chain_scaled` `ModelApplicator` now predicts in unconstrained scale, +transforms logistic predctions around 0.5 to the range of high prior probability of the parameters, and transforms ML predictions near 0 or 1 towards the outer lower probability ranges. @@ -269,12 +271,14 @@ will help analyzing the results. ## Using a population-level process-based model -So far, we have specified the process-based model to run for a single site. -For this simple model, we can gain some performance from matrix-computations -during running the model for all sites. +So far, the process-based model ram for each single site. +For this simple model, some performance grains result from matrix-computations +when running the model for all sites within one batch simultaneously. -We specify the PBM now to accept a matrices as arguments for parameters and drivers -and returns a matrix of precitions. For the parameters, one row corresponds to +In the following, the PBM specification accepts matrices as arguments +for parameters and drivers +and returns a matrix of precitions. +For the parameters, one row corresponds to one site. For the drivers and predictions, one column corresponds to one site. ``` julia @@ -297,15 +301,16 @@ function f_doubleMM_sites(θc::CA.ComponentMatrix, xPc::CA.ComponentMatrix) end ``` -Again, the function should not rely on the order of parameters, but use symbolic indexing +Again, the function should not rely on the order of parameters but use symbolic indexing to extract the parameter vectors. For type stability of this symbolic indexing, it uses a workaround to get the type of a single row. Similarly, it uses type hints to index into the drivers, `xPc`, to extract -sub-matrices by symbols. Alternatively, here we it could rely on the structure and +sub-matrices by symbols. Alternatively, here it could rely on the structure and ordering of the columns in `xPc`. -We use the corresponding [`PBMPopulationApplicator`](@ref) -and update the HVI Problem. +A corresponding [`PBMPopulationApplicator`](@ref) transforms calls with +partitioned global and site parameters to calls of this matrix version of the PBM. +The HVI Problem needs to be updated with this new applicatior. ``` julia f_batch = PBMPopulationApplicator(f_doubleMM_sites, n_batch; θP, θM, θFix, xPvec=xP[:,1]) @@ -317,7 +322,7 @@ For numerical efficiency, the number of sites within one batch is part of the `PBMPopulationApplicator`. Hence, we have two different functions, one applied to a batch of site, and another applied to all sites. -As a test of the new applicator, we refine the results by running a few more +As a test of the new applicator, the results are refined by running a few more epochs of the optimization. ``` julia @@ -334,7 +339,8 @@ epochs of the optimization. Extracting useful information from the optimized HybridProblem is covered in the following tutorial. XXLink -To use it, we save the `probo` HybridProblem and the interpreters to a JLD2 file. +In order to use the results from this tutorial in other tutorials, +the updated `probo` `HybridProblem` and the interpreters are saved to a JLD2 file. ``` julia using JLD2 diff --git a/docs/src/tutorials/basic_cpu.qmd b/docs/src/tutorials/basic_cpu.qmd index 2c249fa..e121261 100644 --- a/docs/src/tutorials/basic_cpu.qmd +++ b/docs/src/tutorials/basic_cpu.qmd @@ -92,7 +92,7 @@ where the probability density is not strictly zero anywhere to the original constrained space. Here, our model parameters are strictly positive, and we use the exponential function -to transform constrained estimates to the original unconstrained domain. +to transform unconstrained estimates to the original constrained domain. ```{julia} transP = Stacked(HVI.Exp()) @@ -111,6 +111,7 @@ the parameters with the model and observed data. Here, we provide a wide prior by fitting a Lognormal distributions to - the mean corresponding to the initial value provided above - the 0.95-quantile 3 times the mean +using the `DistributionFits.jl` package. ```{julia} θall = vcat(θP, θM) @@ -120,7 +121,7 @@ priors_dict = Dict{Symbol, Distribution}( ## Observations, model drivers and covariates -The model is inverted using the +The model paraemters are inverted using information on the - observed data, `y_o` - its uncertainty, `y_unc` - known covariates across sites, `xM` @@ -148,7 +149,7 @@ Lets look at them. size(xM), size(xP), size(y_o), size(y_unc) ``` All of them have 800 columns, corresponding to 800 sites. -There are 5 site-covaraitas and 16 values of model drivers, and 8 observations per site. +There are 5 site-covaritas, 16 values of model drivers, and 8 observations per site. ```{julia} #| output: true @@ -157,7 +158,7 @@ xP[:,1] In each column of the model drivers there is a ComponentVector with components S1 and S2 corresponding to the concentrations, for which outputs were observed. -Thats why we could use notation `x.S1` in the PBM above. +This allows notation `x.S1` in the PBM above. The `y_unc` becomes its meaning by the Liklihood-function to be specified with the problem below. @@ -197,8 +198,8 @@ g_chain = SimpleChain( g_chain_app, ϕg0 = construct_ChainsApplicator(rng, g_chain) ``` -The `g_chain_app` `ChainsApplicator` precits the parameters of the posterior, -given a vector of ML weights,`ϕg`. +The `g_chain_app` `ChainsApplicator` predicts the parameters of the posterior, +approximation given a vector of ML weights,`ϕg`. During construction, an initial template of this vector is created. This abstraction layer allows to use different ML frameworks and replace the `SimpleChains` model by `Flux` or `Lux`. @@ -210,10 +211,11 @@ predicts on a scale (0..1). Now the priors are used to translate this to the parameter range by using the cumulative density distribution. -However, HVI needs a prior on unconstrained scale, and we need the priors on -this unconstrained scale. -This can be mathematically worked out for specific prior distribution forms. -But for simplicity, here a [`NormalScalingModelApplicator`](@ref) +Priors were specified at constrained scale, but the ML model predicts +parameters on unconstrained scale. +This transformation of the distribution can be mathematically worked out for +specific prior distribution forms. +However, for simplicity, a [`NormalScalingModelApplicator`](@ref) is fitted to the transformed 5% and 95% quantiles of the original prior. ```{julia} @@ -222,8 +224,8 @@ lowers, uppers = get_quantile_transformed(priorsM, transM) g_chain_scaled = NormalScalingModelApplicator(g_chain_app, lowers, uppers, FT) ``` -The `g_chain_scaled` `ModelApplicator` now predicts in unconstrained scale -with transforms ML predctions around 0.5 to the range of +The `g_chain_scaled` `ModelApplicator` now predicts in unconstrained scale, +transforms logistic predctions around 0.5 to the range of high prior probability of the parameters, and transforms ML predictions near 0 or 1 towards the outer lower probability ranges. @@ -304,12 +306,14 @@ Among the return values are ## Using a population-level process-based model -So far, we have specified the process-based model to run for a single site. -For this simple model, we can gain some performance from matrix-computations -during running the model for all sites. +So far, the process-based model ram for each single site. +For this simple model, some performance grains result from matrix-computations +when running the model for all sites within one batch simultaneously. -We specify the PBM now to accept a matrices as arguments for parameters and drivers -and returns a matrix of precitions. For the parameters, one row corresponds to +In the following, the PBM specification accepts matrices as arguments +for parameters and drivers +and returns a matrix of precitions. +For the parameters, one row corresponds to one site. For the drivers and predictions, one column corresponds to one site. @@ -333,15 +337,16 @@ function f_doubleMM_sites(θc::CA.ComponentMatrix, xPc::CA.ComponentMatrix) end ``` -Again, the function should not rely on the order of parameters, but use symbolic indexing +Again, the function should not rely on the order of parameters but use symbolic indexing to extract the parameter vectors. For type stability of this symbolic indexing, it uses a workaround to get the type of a single row. Similarly, it uses type hints to index into the drivers, `xPc`, to extract -sub-matrices by symbols. Alternatively, here we it could rely on the structure and +sub-matrices by symbols. Alternatively, here it could rely on the structure and ordering of the columns in `xPc`. -We use the corresponding [`PBMPopulationApplicator`](@ref) -and update the HVI Problem. +A corresponding [`PBMPopulationApplicator`](@ref) transforms calls with +partitioned global and site parameters to calls of this matrix version of the PBM. +The HVI Problem needs to be updated with this new applicatior. ```{julia} f_batch = PBMPopulationApplicator(f_doubleMM_sites, n_batch; θP, θM, θFix, xPvec=xP[:,1]) @@ -353,7 +358,7 @@ For numerical efficiency, the number of sites within one batch is part of the `PBMPopulationApplicator`. Hence, we have two different functions, one applied to a batch of site, and another applied to all sites. -As a test of the new applicator, we refine the results by running a few more +As a test of the new applicator, the results are refined by running a few more epochs of the optimization. ```{julia} @@ -369,7 +374,8 @@ epochs of the optimization. Extracting useful information from the optimized HybridProblem is covered in the following tutorial. XXLink -To use it, we save the `probo` HybridProblem and the interpreters to a JLD2 file. +In order to use the results from this tutorial in other tutorials, +the updated `probo` `HybridProblem` and the interpreters are saved to a JLD2 file. ```{julia} using JLD2 diff --git a/src/HybridProblem.jl b/src/HybridProblem.jl index 0860e29..c87fdbc 100644 --- a/src/HybridProblem.jl +++ b/src/HybridProblem.jl @@ -78,7 +78,7 @@ end """ HybridProblem(prob::AbstractHybridProblem; scenario = () -Gather all information from another `AbstractHybridProblem` wiht possible +Gather all information from another `AbstractHybridProblem` with possible updating of some of the entries. """ function HybridProblem(prob::AbstractHybridProblem; scenario = (), From befe187eb58b39290561d44988c92cad436ad0c1 Mon Sep 17 00:00:00 2001 From: Thomas Wutzler Date: Mon, 18 Aug 2025 15:36:00 +0200 Subject: [PATCH 09/21] Default empty scenario in precit_hvi --- src/elbo.jl | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/elbo.jl b/src/elbo.jl index 315a7e0..beb0942 100644 --- a/src/elbo.jl +++ b/src/elbo.jl @@ -150,7 +150,7 @@ end end """ - predict_hvi([rng], prob::AbstractHybridProblem [,xM, xP]; scenario, ...) + predict_hvi([rng], prob::AbstractHybridProblem [,xM, xP]; scenario=Val(()), ...) predict_hvi(rng, g, f, ϕ::AbstractVector, xM::AbstractMatrix; get_transPMs, get_ca_int_PMs, n_sample_pred=200, gdev = identity) @@ -164,8 +164,8 @@ Prediction function for hybrid variational inference parameter model. access parts of it, e.g. `xP[:S1,...]`. ## Keyword arguments -- scenario -- n_sample_pred +- `scenario` +- `n_sample_pred` Returns an NamedTuple `(; y, θsP, θsMs, entropy_ζ)` with entries - `y`: Array `(n_obs, n_site, n_sample_pred)` of model predictions. @@ -176,7 +176,7 @@ Returns an NamedTuple `(; y, θsP, θsMs, entropy_ζ)` with entries - `entropy_ζ`: The entropy of the log-determinant of the transformation of the set of model parameters, which is involved in uncertainty quantification. """ -function predict_hvi(rng, prob::AbstractHybridProblem; scenario, kwargs...) +function predict_hvi(rng, prob::AbstractHybridProblem; scenario=Val(()), kwargs...) dl = get_hybridproblem_train_dataloader(prob; scenario) dl_dev = gdev_hybridproblem_dataloader(dl; scenario) # predict for all sites @@ -184,7 +184,7 @@ function predict_hvi(rng, prob::AbstractHybridProblem; scenario, kwargs...) predict_hvi(rng, prob, xM, xP; scenario, kwargs...) end function predict_hvi(rng, prob::AbstractHybridProblem, xM::AbstractMatrix, xP; - scenario, + scenario=Val(()), n_sample_pred=200, gdev=:use_gpu ∈ _val_value(scenario) ? gpu_device() : identity, cdev=!(gdev isa MLDataDevices.AbstractGPUDevice) ? identity : From 2c2c03266d98132894b0d1b57e33f109425fb2ab Mon Sep 17 00:00:00 2001 From: Thomas Wutzler Date: Tue, 19 Aug 2025 12:36:12 +0200 Subject: [PATCH 10/21] factor out sample_posterior from predict_hvi and unify selection of cpu or gpu for g and f by argument gdevs --- .gitignore | 1 + dev/doubleMM.jl | 6 +- src/AbstractHybridProblem.jl | 41 +++++-- src/HybridSolver.jl | 39 ++++--- src/HybridVariationalInference.jl | 2 +- src/elbo.jl | 186 ++++++++++++++++++------------ test/test_HybridProblem.jl | 11 +- test/test_elbo.jl | 32 ++--- 8 files changed, 195 insertions(+), 123 deletions(-) diff --git a/.gitignore b/.gitignore index 54510fd..19af931 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,4 @@ docs/src/**/*_files/ docs/src/**/*.html docs/src/**/*.ipynb docs/src/**/*Manifest.toml +docs/src/tutorials/intermediate/* diff --git a/dev/doubleMM.jl b/dev/doubleMM.jl index 74023e6..c88edda 100644 --- a/dev/doubleMM.jl +++ b/dev/doubleMM.jl @@ -569,7 +569,11 @@ f_allsites = get_hybridproblem_PBmodel(prob0; scenario, use_all_sites = true) ζsMs[:,:,1] # first sample: n_site x n_par ζsMs[:,1,:] # first parameter n_site x n_sample -(; y, θsP, θsMs) = HVI.apply_f_trans(ζsP, ζsMs, f_allsites, xP; transP, transM); +trans_mP=StackedArray(transP, size(ζsP, 2)) +trans_mMs=StackedArray(transM, size(ζsMs, 1) * size(ζsMs, 3)) +θsP, θsMs = transform_ζs(ζsP, ζsMs; trans_mP, trans_mMs) +y = apply_process_model(θsP, θsMs, f, xP) +#(; y, θsP, θsMs) = HVI.apply_f_trans(ζsP, ζsMs, f_allsites, xP; transP, transM); (y_hmc, θsP_hmc, θsMs_hmc) = (; y, θsP, θsMs); diff --git a/src/AbstractHybridProblem.jl b/src/AbstractHybridProblem.jl index 7e79545..7e0106c 100644 --- a/src/AbstractHybridProblem.jl +++ b/src/AbstractHybridProblem.jl @@ -191,25 +191,23 @@ end """ - gdev_hybridproblem_dataloader(dataloader::MLUtils.DataLoader, - scenario = (), - gdev = gpu_device(), - gdev_M = :use_gpu ∈ scenario ? gdev : identity, - gdev_P = :f_on_gpu ∈ scenario ? gdev : identity, + gdev_hybridproblem_dataloader(dataloader::MLUtils.DataLoader; gdev_M, gdev_P, batchsize = dataloader.batchsize, partial = dataloader.partial ) Put relevant parts of the DataLoader to gpu, depending on scenario. """ -function gdev_hybridproblem_dataloader(dataloader::MLUtils.DataLoader; - scenario::Val{scen} = Val(()), - gdev = gpu_device(), - gdev_M = :use_gpu ∈ _val_value(scenario) ? gdev : identity, - gdev_P = :f_on_gpu ∈ _val_value(scenario) ? gdev : identity, +function gdev_hybridproblem_dataloader(dataloader::MLUtils.DataLoader; gdevs, + gdev_M = gdevs.gdev_M, + gdev_P = gdevs.gdev_P, + # scenario::Val{scen} = Val(()), + # gdev = gpu_device(), + # gdev_M = :use_gpu ∈ _val_value(scenario) ? gdev : identity, + # gdev_P = :f_on_gpu ∈ _val_value(scenario) ? gdev : identity, batchsize = dataloader.batchsize, partial = dataloader.partial - ) where scen + ) xM, xP, y_o, y_unc, i_sites = dataloader.data xM_dev = gdev_M(xM) xP_dev, y_o_dev, y_unc_dev = (gdev_P(xP), gdev_P(y_o), gdev_P(y_unc)) @@ -218,6 +216,27 @@ function gdev_hybridproblem_dataloader(dataloader::MLUtils.DataLoader; return(train_loader_dev) end +""" + get_gcdev(scenario::Val{scen}) where scen + +Configure gpu_device() for given scenario, checking for +`:use_gpu` and `:f_on_gpu` in scenario. +Returns a `NamedTuple` `(;gdev_M, gdev_P)` +""" +function get_gdev_MP(scenario::Val{scen}) where scen + gdev_gpu = gpu_device() + gdev_M = :use_gpu ∈ _val_value(scenario) ? gdev_gpu : identity + gdev_P = :f_on_gpu ∈ _val_value(scenario) ? gdev_gpu : identity + (;gdev_M, gdev_P) +end + +function infer_cdev(gdevs; gdev_M = gdevs.gdev_M, gdev_P = gdevs.gdev_P) + # if gdev_M is already on CPU use identity, + # if gdev_P is on GPU also use ideneity to not transfer to CPU + cdev=!(gdev_M isa MLDataDevices.AbstractGPUDevice) ? identity : + ((gdev_P isa MLDataDevices.AbstractGPUDevice) ? identity : cpu_device()) +end + # function get_hybridproblem_train_dataloader(prob::AbstractHybridProblem; scenario = ()) # rng::AbstractRNG = Random.default_rng() # get_hybridproblem_train_dataloader(rng, prob; scenario) diff --git a/src/HybridSolver.jl b/src/HybridSolver.jl index 724d336..dbf2b76 100644 --- a/src/HybridSolver.jl +++ b/src/HybridSolver.jl @@ -8,8 +8,7 @@ HybridPointSolver(; alg) = HybridPointSolver(alg) function CommonSolve.solve(prob::AbstractHybridProblem, solver::HybridPointSolver; scenario, rng=Random.default_rng(), - gdev=:use_gpu ∈ _val_value(scenario) ? gpu_device() : identity, - cdev=gdev isa MLDataDevices.AbstractGPUDevice ? cpu_device() : identity, + gdevs = get_gdev_MP(scenario), is_inferred::Val{is_infer} = Val(false), kwargs... ) where is_infer @@ -22,6 +21,7 @@ function CommonSolve.solve(prob::AbstractHybridProblem, solver::HybridPointSolve #ϕ0_cpu = vcat(ϕg0, par_templates.θP .* FT(0.9)) # slightly disturb θP_true ϕ0_cpu = vcat(ϕg0, apply_preserve_axes(inverse(transP), par_templates.θP)) train_loader = get_hybridproblem_train_dataloader(prob; scenario) + gdev = gdevs.gdev_M if gdev isa MLDataDevices.AbstractGPUDevice ϕ0_dev = gdev(ϕ0_cpu) g_dev = gdev(g) @@ -37,7 +37,7 @@ function CommonSolve.solve(prob::AbstractHybridProblem, solver::HybridPointSolve n_site, n_batch = get_hybridproblem_n_site_and_batch(prob; scenario) #intP = ComponentArrayInterpreter(par_templates.θP) loss_gf = get_loss_gf(g_dev, transM, transP, f, y_global_o, intϕ; - cdev, pbm_covars, n_site_batch=n_batch) + cdev=infer_cdev(gdevs), pbm_covars, n_site_batch=n_batch) # call loss function once l1 = is_infer ? Test.@inferred(loss_gf(ϕ0_dev, first(train_loader_dev)...))[1] : @@ -80,6 +80,16 @@ end Perform the inversion of HVI Problem. +Optional keyword arguments +- `scenario`: Scenario to query prob, defaults to `Val(())`. +- `rng`: Random generator, defaults to `Random.default_rng()`. +- `gdevs`: `NamedTuple` `(;gdev_M, gdev_P)` functions to move + computation and data of ML model on and PBM respectively + to gpu (e.g. `gpu_device()` or cpu (`identity`). + defaults to [`get_gdev_MP`](@ref)`(scenario)` +- `θmean_quant` default to `0.0`: deprecated +- `is_inferred`: set to `Val(true)` to activate type stability checks + Returns a `NamedTuple` of - `probo`: A copy of the HybridProblem, with updated optimized parameters - `interpreters`: TODO @@ -92,9 +102,8 @@ Returns a `NamedTuple` of more information on convergence. """ function CommonSolve.solve(prob::AbstractHybridProblem, solver::HybridPosteriorSolver; - scenario::Val{scen}, rng=Random.default_rng(), - gdev=:use_gpu ∈ _val_value(scenario) ? gpu_device() : identity, - cdev=gdev isa MLDataDevices.AbstractGPUDevice ? cpu_device() : identity, + scenario::Val{scen}=Val(()), rng=Random.default_rng(), + gdevs = get_gdev_MP(scenario), θmean_quant=0.0, is_inferred::Val{is_infer} = Val(false), kwargs... @@ -115,10 +124,10 @@ function CommonSolve.solve(prob::AbstractHybridProblem, solver::HybridPosteriorS transMs = StackedArray(transM, n_batch) # train_loader = get_hybridproblem_train_dataloader(prob; scenario) - if gdev isa MLDataDevices.AbstractGPUDevice - ϕ0_dev = gdev(ϕ) - g_dev = gdev(g) # zygote fails if gdev is a CPUDevice, although should be non-op - train_loader_dev = gdev_hybridproblem_dataloader(train_loader; scenario, gdev) + if gdevs.gdev_M isa MLDataDevices.AbstractGPUDevice + ϕ0_dev = gdevs.gdev_M(ϕ) + g_dev = gdevs.gdev_M(g) # zygote fails if gdev is a CPUDevice, although should be non-op + train_loader_dev = gdev_hybridproblem_dataloader(train_loader; gdevs) else ϕ0_dev = ϕ g_dev = g @@ -129,13 +138,13 @@ function CommonSolve.solve(prob::AbstractHybridProblem, solver::HybridPosteriorS priors_θP_mean, priors_θMs_mean = construct_priors_θ_mean( prob, ϕ0_dev.ϕg, keys(θM), θP, θmean_quant, g_dev, transM, transP; - scenario, get_ca_int_PMs, gdev, cdev, pbm_covars) + scenario, get_ca_int_PMs, gdevs, pbm_covars) y_global_o = Float32[] # TODO loss_elbo = get_loss_elbo( g_dev, transP, transMs, f, py, y_global_o; - solver.n_MC, solver.n_MC_cap, cor_ends, priors_θP_mean, priors_θMs_mean, cdev, - pbm_covars, θP, int_unc, int_μP_ϕg_unc) + solver.n_MC, solver.n_MC_cap, cor_ends, priors_θP_mean, priors_θMs_mean, + cdev=infer_cdev(gdevs), pbm_covars, θP, int_unc, int_μP_ϕg_unc) # test loss function once # tmp = first(train_loader_dev) # using ShareAdd @@ -249,9 +258,11 @@ In order to let mean of θ stay close to initial point parameter estimates construct a prior on mean θ to a Normal around initial prediction. """ function construct_priors_θ_mean(prob, ϕg, keysθM, θP, θmean_quant, g_dev, transM, transP; - scenario::Val{scen}, get_ca_int_PMs, gdev, cdev, pbm_covars) where {scen} + scenario::Val{scen}, get_ca_int_PMs, gdevs, pbm_covars) where {scen} iszero(θmean_quant) ? ([],[]) : begin + gdev=gdevs.gdev_M + #cdev=infer_cdev(gdevs) n_site, n_batch = get_hybridproblem_n_site_and_batch(prob; scenario) # all_loader = MLUtils.DataLoader( # get_hybridproblem_train_dataloader(prob; scenario).data, batchsize = n_site) diff --git a/src/HybridVariationalInference.jl b/src/HybridVariationalInference.jl index cefc5c1..948b4e5 100644 --- a/src/HybridVariationalInference.jl +++ b/src/HybridVariationalInference.jl @@ -92,7 +92,7 @@ include("logden_normal.jl") export get_ca_starts, get_ca_ends, get_cor_count include("cholesky.jl") -export neg_elbo_gtf, predict_hvi +export neg_elbo_gtf, sample_posterior, apply_process_model, predict_hvi include("elbo.jl") export init_hybrid_params, init_hybrid_ϕunc diff --git a/src/elbo.jl b/src/elbo.jl index beb0942..449a58f 100644 --- a/src/elbo.jl +++ b/src/elbo.jl @@ -133,26 +133,8 @@ function neg_elbo_ζtf(ζsP, ζsMs, σ, f, py, xP, y_ob, y_unc; nLy, entropy_ζ end -() -> begin - nLy = reduce( - +, map(eachcol(ζs_cpu[:, 1:n_MC])) do ζi - θ_i, y_pred_i, logjac = apply_f_trans(ζi, xP, f, transPMs, interpreters.PMs) - # TODO nLogDen prior on \theta - #nLy1 = neg_logden_indep_normal(y_ob, y_pred_i, y_unc) - nLy1 = py(y_ob, y_pred_i, y_unc) - nLy1 - logjac - end) / n_MC -end - -() -> begin - # using UnicodePlots - histogram(nLys) -end - """ - predict_hvi([rng], prob::AbstractHybridProblem [,xM, xP]; scenario=Val(()), ...) - predict_hvi(rng, g, f, ϕ::AbstractVector, xM::AbstractMatrix; - get_transPMs, get_ca_int_PMs, n_sample_pred=200, gdev = identity) + predict_hvi([rng], predict_hvi(rng, prob::AbstractHybridProblem) Prediction function for hybrid variational inference parameter model. @@ -176,27 +158,71 @@ Returns an NamedTuple `(; y, θsP, θsMs, entropy_ζ)` with entries - `entropy_ζ`: The entropy of the log-determinant of the transformation of the set of model parameters, which is involved in uncertainty quantification. """ -function predict_hvi(rng, prob::AbstractHybridProblem; scenario=Val(()), kwargs...) +function predict_hvi(rng, prob::AbstractHybridProblem; scenario=Val(()), + gdevs = get_gdev_MP(scenario), + kwargs... + ) dl = get_hybridproblem_train_dataloader(prob; scenario) - dl_dev = gdev_hybridproblem_dataloader(dl; scenario) - # predict for all sites + dl_dev = gdev_hybridproblem_dataloader(dl; gdevs) xM, xP = dl_dev.data[1:2] - predict_hvi(rng, prob, xM, xP; scenario, kwargs...) + (; θsP, θsMs, entropy_ζ) = sample_posterior(rng, prob, xM; scenario, gdevs, kwargs...) + # + n_site, n_batch = get_hybridproblem_n_site_and_batch(prob; scenario) + n_site_pred = size(θsMs,1) + is_predict_batch = (n_site_pred == n_batch) + @assert size(xP, 2) == n_site_pred + f = get_hybridproblem_PBmodel(prob; scenario, use_all_sites=!is_predict_batch) + y = apply_process_model(θsP, θsMs, f, xP) + (; y, θsP, θsMs, entropy_ζ) +end + +""" + sample_posterior(rng, prob, [xM::AbstractMatrix]; scenario=Val(()), kwargs...) + +Sampling the posterior parameter distribution +for hybrid variational inference problem. + +## Arguments +- `rng`: random number generator +- `prob`: The AbstractHybridProblem from to sample +- `xM`: covariates for the machine-learning model (ML): Matrix `(n_θM x n_site_pred)`. + Default to all sites in train_dataloader in prob. + +Optional keyword arguments +- `scenario`: scenario to query `prob` and set default of gpu devices. +- `n_sample_pred`: number of samples to draw, defaults to 200 +- `gdevs`: NamedTuple(gdev_M, gdev_P): GPU devices for machine learning model + and parameter transformtation, default to [`get_gdev_MP`](@ref)`(scenario)`. +- `is_inferred`: set to `Val(true)` to activate type stabilicy check for transformation + +Returns an NamedTuple `(; θsP, θsMs, entropy_ζ)` with entries +- `θsP`: ComponentArray `(n_θP, n_sample_pred)` of PBM model parameters + that are kept constant across sites. +- `θsMs`: ComponentArray `(n_site, n_θM, n_sample_pred)` of PBM model parameters + that vary by site. +- `entropy_ζ`: The entropy of the log-determinant of the transformation of + the set of model parameters, which is involved in uncertainty quantification. +""" +function sample_posterior(rng, prob::AbstractHybridProblem; scenario=Val(()), + gdevs = get_gdev_MP(scenario), + kwargs...) + dl = get_hybridproblem_train_dataloader(prob; scenario) + dl_dev = gdev_hybridproblem_dataloader(dl; gdevs) + xM = dl_dev.data[1] + sample_posterior(rng, prob, xM; scenario, gdevs, kwargs...) end -function predict_hvi(rng, prob::AbstractHybridProblem, xM::AbstractMatrix, xP; + + +function sample_posterior(rng, prob::AbstractHybridProblem, xM::AbstractMatrix; scenario=Val(()), n_sample_pred=200, - gdev=:use_gpu ∈ _val_value(scenario) ? gpu_device() : identity, - cdev=!(gdev isa MLDataDevices.AbstractGPUDevice) ? identity : - (:f_on_gpu ∈ _val_value(scenario) ? identity : cpu_device()), + gdevs = get_gdev_MP(scenario), kwargs... ) n_site, n_batch = get_hybridproblem_n_site_and_batch(prob; scenario) - is_predict_batch = (n_batch == length(xP)) + is_predict_batch = (n_batch == size(xM,2)) n_site_pred = is_predict_batch ? n_batch : n_site - @assert size(xP, 2) == n_site_pred @assert size(xM, 2) == n_site_pred - f = get_hybridproblem_PBmodel(prob; scenario, use_all_sites=!is_predict_batch) par_templates = get_hybridproblem_par_templates(prob; scenario) (; θP, θM) = par_templates cor_ends = get_hybridproblem_cor_ends(prob; scenario) @@ -211,70 +237,83 @@ function predict_hvi(rng, prob::AbstractHybridProblem, xM::AbstractMatrix, xP; int_μP_ϕg_unc = interpreters.μP_ϕg_unc int_unc = interpreters.unc transMs = StackedArray(transM, n_batch) - g_dev, ϕ_dev = gdev(g), gdev(ϕ) - predict_hvi(rng, g_dev, f, ϕ_dev, xM, xP; + g_dev, ϕ_dev = gdevs.gdev_M(g), gdevs.gdev_M(ϕ) + sample_posterior(rng, g_dev, ϕ_dev, xM; int_μP_ϕg_unc, int_unc, transP, transM, - n_sample_pred, cdev, cor_ends, pbm_covar_indices, kwargs...) + n_sample_pred, cdev=infer_cdev(gdevs), cor_ends, pbm_covar_indices, kwargs...) end -function predict_hvi(rng, g, f, ϕ::AbstractVector, xM::AbstractMatrix, xP; +function sample_posterior(rng, g, ϕ::AbstractVector, xM::AbstractMatrix; int_μP_ϕg_unc::AbstractComponentArrayInterpreter, int_unc::AbstractComponentArrayInterpreter, transP, transM, - n_sample_pred=200, - cdev=cpu_device(), + n_sample_pred, + cdev, cor_ends, pbm_covar_indices, is_inferred::Val{is_infer} = Val(false), kwargs... ) where is_infer - ζsP, ζsMs, σ = generate_ζ(rng, g, CA.getdata(ϕ), CA.getdata(xM); + ζsP_gpu, ζsMs_gpu, σ = generate_ζ(rng, g, CA.getdata(ϕ), CA.getdata(xM); int_μP_ϕg_unc, int_unc, n_MC=n_sample_pred, cor_ends, pbm_covar_indices) - ζsP_cpu = cdev(ζsP) - ζsMs_cpu = cdev(ζsMs) + ζsP = cdev(ζsP_gpu) + ζsMs = cdev(ζsMs_gpu) logdetΣ = 2 * sum(log.(σ)) entropy_ζ = entropy_MvNormal(length(σ), logdetΣ) - res_pred = is_infer ? - apply_f_trans(ζsP_cpu, ζsMs_cpu, f, xP; transP, transM, kwargs...) : - Test.@inferred apply_f_trans(ζsP_cpu, ζsMs_cpu, f, xP; transP, transM, kwargs...) - (; res_pred..., entropy_ζ) + trans_mP = StackedArray(transP, size(ζsP, 2)) + trans_mMs = StackedArray(transM, size(ζsMs, 1) * size(ζsMs, 3)) + θsP, θsMs = is_infer ? + Test.@inferred(transform_ζs(ζsP, ζsMs; trans_mP, trans_mMs)) : + transform_ζs(ζsP, ζsMs; trans_mP, trans_mMs) + # res_pred = is_infer ? + # apply_f_trans(ζsP_cpu, ζsMs_cpu, f, xP; transP, transM, kwargs...) : + # Test.@inferred apply_f_trans(ζsP_cpu, ζsMs_cpu, f, xP; transP, transM, kwargs...) + (; θsP, θsMs, entropy_ζ) end -""" -Compute predictions of the transformation at given -transformed parameters for each site. -The number of sites is given by the number of rows in `ζsMs`. +# """ +# Compute predictions of the transformation at given +# transformed parameters for each site. +# The number of sites is given by the number of rows in `ζsMs`. + +# Steps: +# - transform the parameters to original constrained space +# - Applies the mechanistic model for each site + +# `ζsP` and `ζsMs` are shaped according to the output of `generate_ζ`. +# Results are of shape `(n_obs x n_site_pred x n_MC)`. +# """ +# function apply_f_trans(ζsP::AbstractMatrix, ζsMs::AbstractArray, f, xP; +# transP, transM::Stacked, +# trans_mP=StackedArray(transP, size(ζsP, 2)), +# trans_mMs=StackedArray(transM, size(ζsMs, 1) * size(ζsMs, 3)) +# ) +# θsP, θsMs = transform_ζs(ζsP, ζsMs; trans_mP, trans_mMs) +# y = apply_process_model(θsP, θsMs, f, xP) +# (; y, θsP, θsMs) +# end -Steps: -- transform the parameters to original constrained space -- Applies the mechanistic model for each site +# function apply_f_trans(ζP::AbstractVector, ζMs::AbstractMatrix, f, xP; +# transP, transM::Stacked, transMs::StackedArray=StackedArray(transM, size(ζMs, 1)), +# ) +# θP = transP(ζP) +# θMs = transMs(ζMs) +# y_global, y = f(θP, θMs, xP) +# (; y, θP, θMs) +# end -`ζsP` and `ζsMs` are shaped according to the output of `generate_ζ`. -Results are of shape `(n_obs x n_site_pred x n_MC)`. """ -function apply_f_trans(ζsP::AbstractMatrix, ζsMs::AbstractArray, f, xP; - transP, transM::Stacked, - trans_mP=StackedArray(transP, size(ζsP, 2)), - trans_mMs=StackedArray(transM, size(ζsMs, 1) * size(ζsMs, 3)) -) - θsP, θsMs = transform_ζs(ζsP, ζsMs; trans_mP, trans_mMs) - y = apply_f(θsP, θsMs, f, xP) - (; y, θsP, θsMs) -end - -function apply_f_trans(ζP::AbstractVector, ζMs::AbstractMatrix, f, xP; - transP, transM::Stacked, transMs::StackedArray=StackedArray(transM, size(ζMs, 1)), -) - θP = transP(ζP) - θMs = transMs(ζMs) - y_global, y = f(θP, θMs, xP) - (; y, θP, θMs) -end + apply_process_model(θsP::AbstractMatrix, θsMs::AbstractArray{ET,3}, f, xP) +Call a PBM applicator for a sample of parameters of each site, and stack results -function apply_f(θsP::AbstractMatrix, θsMs::AbstractArray{ET,3}, f, xP) where ET +`θsP` and `θsMs` are shaped according to the output of `generate_ζ`, i.e. +`(n_site_pred x n_par x n_MC)`. +Results are of shape `(n_obs x n_site_pred x n_MC)`. +""" +function apply_process_model(θsP::AbstractMatrix, θsMs::AbstractArray{ET,3}, f, xP) where ET y_pred = stack(map(eachcol(θsP), eachslice(θsMs, dims=3)) do θP, θMs y_global, y_pred_i = f(θP, θMs, xP) y_pred_i @@ -549,3 +588,8 @@ function flatten_hybrid_pars(xsP::AbstractMatrix{FT}, xsMs::AbstractArray{FT,3}) end + + + + + diff --git a/test/test_HybridProblem.jl b/test/test_HybridProblem.jl index 01c1654..962b5e4 100644 --- a/test/test_HybridProblem.jl +++ b/test/test_HybridProblem.jl @@ -203,7 +203,7 @@ test_with_flux = (scenario) -> begin #maxiters = 20 #maxiters=200, epochs = 2, - gdev = identity, + gdevs = (; gdev_M=identity, gdev_P=identity), #gpu_handler = NullGPUDataHandler is_inferred = Val(true), ) @@ -225,7 +225,7 @@ test_with_flux = (scenario) -> begin #maxiters=37, # still complains "need to specify maxiters or epochs" epochs = 1, θmean_quant = 0.01, # test constraining mean to initial prediction - gdev = identity, + gdevs = (; gdev_M=identity, gdev_P=identity), is_inferred = Val(true), ) θPt = get_hybridproblem_par_templates(prob; scenario).θP @@ -258,7 +258,8 @@ test_with_flux_gpu = (scenario) -> begin epochs = 2, θmean_quant = 0.01, # test constraining mean to initial prediction is_inferred = Val(true), - ); + gdevs = (; gdev_M=gpu_device(), gdev_P=identity), + ); @test CA.getdata(ϕ) isa GPUArraysCore.AbstractGPUVector #@test cdev(ϕ.unc.ρsM)[1] > 0 # too few iterations in test -> may fail # @@ -266,6 +267,7 @@ test_with_flux_gpu = (scenario) -> begin (; ϕ, θP, resopt, probo) = solve(prob, solver; scenario = scenf, #maxiters = 37, epochs = 2, + gdevs = (; gdev_M=gpu_device(), gdev_P=identity), is_inferred = Val(true), ); @test cdev(ϕ.unc.ρsM)[1] > 0 @@ -281,6 +283,7 @@ test_with_flux_gpu = (scenario) -> begin n_epoch = 20 # requires (; ϕ, θP, resopt, probo) = solve(prob, solver; scenario = scenf, maxiters = n_batches_in_epoch * n_epoch, + gdevs = (; gdev_M=gpu_device(), gdev_P=identity), callback = callback_loss(n_batches_in_epoch*5) ); @test cdev(ϕ.unc.ρsM)[1] > 0 @@ -326,7 +329,7 @@ test_with_flux_gpu = (scenario) -> begin #maxiters = 20, # too small so that it yields error epochs = 1, #θmean_quant = 0.01, # TODO make possible on gpu - cdev = identity, # do not move ζ to cpu + gdevs = (; gdev_M=gpu_device(), gdev_P=gpu_device()), is_inferred = Val(true), ); @test CA.getdata(ϕ) isa GPUArraysCore.AbstractGPUVector diff --git a/test/test_elbo.jl b/test/test_elbo.jl index 74536e7..7569292 100644 --- a/test/test_elbo.jl +++ b/test/test_elbo.jl @@ -369,34 +369,19 @@ test_scenario = (scenario) -> begin end end - @testset "apply_f $(last(CP._val_value(scenario)))" begin - ζP = ζsP[:,1] - ζMs = ζsMs[:,:,1] - y_pred, θP_pred, θMs_pred = @inferred CP.apply_f_trans( - ζP, ζMs, f, xP[:,1:n_batch]; transP, transM) - @test size(y_pred) == size(y_o[:,1:n_batch]) - @test size(θP_pred) == (n_θP,) - @test size(θMs_pred) == (n_batch, n_θM) - # - ym_pred, θPm_pred, θMsm_pred = CP.apply_f_trans( - ζsP[:,1:1], ζMs[:,:,1:1], f, xP[:,1:n_batch]; transP, transM) - @test ym_pred[:,:,1] == y_pred - @test θPm_pred[:,1] == θP_pred - @test θMsm_pred[:,:,1] == θMs_pred - end - - @testset "predict_hvi cpu $(last(CP._val_value(scenario)))" begin + @testset "sample_posterior apply_process_model cpu $(last(CP._val_value(scenario)))" begin # intm_PMs_gen = get_ca_int_PMs(n_site) # trans_PMs_gen = get_transPMs(n_site) # @test length(intm_PMs_gen) == 402 # @test trans_PMs_gen.length_in == 402 n_sample_pred = 30 - (; y, θsP, θsMs, entropy_ζ) = + (; θsP, θsMs, entropy_ζ) = #Cthulhu.@descend_code_warntype ( @inferred ( - predict_hvi(rng, g, f_pred, ϕ_ini, xM, xP; + sample_posterior(rng, g, ϕ_ini, xM; int_μP_ϕg_unc, int_unc, transP, transM, + cdev = identity, n_sample_pred, cor_ends, pbm_covar_indices) ) @test θsP isa AbstractMatrix @@ -404,6 +389,8 @@ test_scenario = (scenario) -> begin int_mP = ComponentArrayInterpreter(int_P, (size(θsP, 2),)) θsPc = int_mP(θsP) @test all(θsPc[:r0, :] .> 0) + # + y = apply_process_model(θsP, θsMs, f_pred, xP) @test y isa Array @test size(y) == (size(y_o)..., n_sample_pred) end @@ -414,12 +401,13 @@ test_scenario = (scenario) -> begin ϕ_ini_g = ggdev(CA.getdata(ϕ_ini)) xMg = ggdev(xM) n_sample_pred = 30 - (; y, θsP, θsMs, entropy_ζ) = + (; θsP, θsMs, entropy_ζ) = #Cthulhu.@descend_code_warntype ( @inferred ( - predict_hvi(rng, g_gpu, f_pred, ϕ_ini_g, xMg, xP; + sample_posterior(rng, g_gpu, ϕ_ini_g, xMg; int_μP_ϕg_unc, int_unc, transP, transM, + cdev = cpu_device(), n_sample_pred, cor_ends, pbm_covar_indices) ) @test θsP isa AbstractMatrix @@ -427,6 +415,8 @@ test_scenario = (scenario) -> begin int_mP = ComponentArrayInterpreter(int_P, (size(θsP, 2),)) θsPc = int_mP(θsP) @test all(θsPc[:r0, :] .> 0) + # + y = apply_process_model(θsP, θsMs, f_pred, xP) @test y isa Array @test size(y) == (size(y_o)..., n_sample_pred) end From 6546a1ab8737437288e2458392d4fff6870a917b Mon Sep 17 00:00:00 2001 From: Thomas Wutzler Date: Tue, 19 Aug 2025 14:16:15 +0200 Subject: [PATCH 11/21] ComponentArrays with names in a center dimension --- src/ComponentArrayInterpreter.jl | 47 ++++++++++++++++++++++++-------- 1 file changed, 36 insertions(+), 11 deletions(-) diff --git a/src/ComponentArrayInterpreter.jl b/src/ComponentArrayInterpreter.jl index 7f15d6c..9977d79 100644 --- a/src/ComponentArrayInterpreter.jl +++ b/src/ComponentArrayInterpreter.jl @@ -108,8 +108,10 @@ get_concrete(cai::ComponentArrayInterpreter) = StaticComponentArrayInterpreter{c """ ComponentArrayInterpreter(; kwargs...) ComponentArrayInterpreter(::AbstractComponentArray) + ComponentArrayInterpreter(::AbstractComponentArray, n_dims::NTuple{N,<:Integer}) ComponentArrayInterpreter(n_dims::NTuple{N,<:Integer}, ::AbstractComponentArray) + ComponentArrayInterpreter(n_dims::NTuple{N,<:Integer}, ::AbstractComponentArray, m_dims::NTuple{M,<:Integer}) Construct a `ComponentArrayInterpreter <: AbstractComponentArrayInterpreter` with components being vectors of given length or given model of a `AbstractComponentArray`. @@ -156,17 +158,17 @@ end # with ComponentArrays in the first dimensions (e.g. rownames of a matrix or array) function ComponentArrayInterpreter( ca::CA.AbstractComponentArray, n_dims::NTuple{N,<:Integer}) where {N} - ComponentArrayInterpreter(CA.getaxes(ca), n_dims) + ComponentArrayInterpreter((), CA.getaxes(ca), n_dims) end function ComponentArrayInterpreter( cai::AbstractComponentArrayInterpreter, n_dims::NTuple{N,<:Integer}) where {N} - ComponentArrayInterpreter(CA.getaxes(cai), n_dims) -end -function ComponentArrayInterpreter( - axes::NTuple{M,<:CA.AbstractAxis}, n_dims::NTuple{N,<:Integer}) where {M,N} - axes_ext = (axes..., map(n_dim -> CA.Axis(i=1:n_dim), n_dims)...) - ComponentArrayInterpreter(axes_ext) + ComponentArrayInterpreter((), CA.getaxes(cai), n_dims) end +# function ComponentArrayInterpreter( +# axes::NTuple{M,<:CA.AbstractAxis}, n_dims::NTuple{N,<:Integer}) where {M,N} +# axes_ext = (axes..., map(n_dim -> CA.Axis(i=1:n_dim), n_dims)...) +# ComponentArrayInterpreter(axes_ext) +# end # support also for other AbstractComponentArrayInterpreter types # in a type-stable way by providing the Tuple of dimensions as a value type @@ -190,18 +192,41 @@ end # with ComponentArrays in the last dimensions (e.g. columnnames of a matrix) function ComponentArrayInterpreter( n_dims::NTuple{N,<:Integer}, ca::CA.AbstractComponentArray) where {N} - ComponentArrayInterpreter(n_dims, CA.getaxes(ca)) + ComponentArrayInterpreter(n_dims, CA.getaxes(ca), ()) end function ComponentArrayInterpreter( n_dims::NTuple{N,<:Integer}, cai::AbstractComponentArrayInterpreter) where {N} - ComponentArrayInterpreter(n_dims, CA.getaxes(cai)) + ComponentArrayInterpreter(n_dims, CA.getaxes(cai), ()) +end +# function ComponentArrayInterpreter( +# n_dims::NTuple{N,<:Integer}, axes::NTuple{M,<:CA.AbstractAxis}) where {N,M} +# axes_ext = (map(n_dim -> CA.Axis(i=1:n_dim), n_dims)..., axes...) +# ComponentArrayInterpreter(axes_ext) +# end + +# with ComponentArrays in the center dimensions (e.g. columnnames of a 3D-array) +function ComponentArrayInterpreter( + n_dims::NTuple{N,<:Integer}, ca::CA.AbstractComponentArray, + m_dims::NTuple{M,<:Integer}) where {N,M} + ComponentArrayInterpreter(n_dims, CA.getaxes(ca), m_dims) end function ComponentArrayInterpreter( - n_dims::NTuple{N,<:Integer}, axes::NTuple{M,<:CA.AbstractAxis}) where {N,M} - axes_ext = (map(n_dim -> CA.Axis(i=1:n_dim), n_dims)..., axes...) + n_dims::NTuple{N,<:Integer}, cai::AbstractComponentArrayInterpreter, + m_dims::NTuple{M,<:Integer}) where {N,M} + ComponentArrayInterpreter(n_dims, CA.getaxes(cai), m_dims) +end + +function ComponentArrayInterpreter( + n_dims::NTuple{N,<:Integer}, axes::NTuple{A,<:CA.AbstractAxis}, + m_dims::NTuple{M,<:Integer}) where {N,A,M} + axes_ext = ( + map(n_dim -> CA.Axis(i=1:n_dim), n_dims)..., + axes..., + map(n_dim -> CA.Axis(i=1:n_dim), m_dims)...) ComponentArrayInterpreter(axes_ext) end + function stack_ca_int( ::Val{n_dims}, cai::IT) where {IT<:AbstractComponentArrayInterpreter,n_dims} @assert n_dims isa NTuple{N,<:Integer} where {N} From a7959b9fbc631268c185ee4bf750b2d9f932b2dd Mon Sep 17 00:00:00 2001 From: Thomas Wutzler Date: Tue, 19 Aug 2025 15:30:58 +0200 Subject: [PATCH 12/21] attach CA axis to result of sample_posterior --- src/elbo.jl | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/elbo.jl b/src/elbo.jl index 449a58f..74520e2 100644 --- a/src/elbo.jl +++ b/src/elbo.jl @@ -186,12 +186,12 @@ for hybrid variational inference problem. - `rng`: random number generator - `prob`: The AbstractHybridProblem from to sample - `xM`: covariates for the machine-learning model (ML): Matrix `(n_θM x n_site_pred)`. - Default to all sites in train_dataloader in prob. + Default to all sites in `get_hybridproblem_train_dataloader(prob; scenario)`. Optional keyword arguments - `scenario`: scenario to query `prob` and set default of gpu devices. - `n_sample_pred`: number of samples to draw, defaults to 200 -- `gdevs`: NamedTuple(gdev_M, gdev_P): GPU devices for machine learning model +- `gdevs`: `NamedTuple(gdev_M, gdev_P)`: GPU devices for machine learning model and parameter transformtation, default to [`get_gdev_MP`](@ref)`(scenario)`. - `is_inferred`: set to `Val(true)` to activate type stabilicy check for transformation @@ -238,9 +238,12 @@ function sample_posterior(rng, prob::AbstractHybridProblem, xM::AbstractMatrix; int_unc = interpreters.unc transMs = StackedArray(transM, n_batch) g_dev, ϕ_dev = gdevs.gdev_M(g), gdevs.gdev_M(ϕ) - sample_posterior(rng, g_dev, ϕ_dev, xM; + (; θsP, θsMs, entropy_ζ) = sample_posterior(rng, g_dev, ϕ_dev, xM; int_μP_ϕg_unc, int_unc, transP, transM, n_sample_pred, cdev=infer_cdev(gdevs), cor_ends, pbm_covar_indices, kwargs...) + θsPc = ComponentArrayInterpreter(prob.θP, (n_sample_pred,))(θsP) + θsMsc = ComponentArrayInterpreter((n_site,), prob.θM, (n_sample_pred,))(θsMs) + (; θsP=θsPc, θsMs=θsMsc, entropy_ζ) end function sample_posterior(rng, g, ϕ::AbstractVector, xM::AbstractMatrix; From e24ff546b9710f225fb104912642b7e6eedab988 Mon Sep 17 00:00:00 2001 From: Thomas Wutzler Date: Tue, 19 Aug 2025 15:31:44 +0200 Subject: [PATCH 13/21] docu: tutorial on inspecting fit --- dev/doubleMM.jl | 2 +- docs/make.jl | 5 +- docs/src/tutorials/Project.toml | 2 + docs/src/tutorials/_pbm_matrix.qmd | 20 +++ docs/src/tutorials/basic_cpu.md | 6 +- docs/src/tutorials/basic_cpu.qmd | 26 +--- docs/src/tutorials/inspect_results.md | 164 +++++++++++++++++++++++ docs/src/tutorials/inspect_results.qmd | 172 +++++++++++++++++++++++++ src/AbstractHybridProblem.jl | 5 +- src/HybridVariationalInference.jl | 3 +- 10 files changed, 372 insertions(+), 33 deletions(-) create mode 100644 docs/src/tutorials/_pbm_matrix.qmd create mode 100644 docs/src/tutorials/inspect_results.md create mode 100644 docs/src/tutorials/inspect_results.qmd diff --git a/dev/doubleMM.jl b/dev/doubleMM.jl index c88edda..f8db103 100644 --- a/dev/doubleMM.jl +++ b/dev/doubleMM.jl @@ -572,7 +572,7 @@ f_allsites = get_hybridproblem_PBmodel(prob0; scenario, use_all_sites = true) trans_mP=StackedArray(transP, size(ζsP, 2)) trans_mMs=StackedArray(transM, size(ζsMs, 1) * size(ζsMs, 3)) θsP, θsMs = transform_ζs(ζsP, ζsMs; trans_mP, trans_mMs) -y = apply_process_model(θsP, θsMs, f, xP) +y = apply_process_model(θsP, θsMs, f, xP) #(; y, θsP, θsMs) = HVI.apply_f_trans(ζsP, ζsMs, f_allsites, xP; transP, transM); (y_hmc, θsP_hmc, θsMs_hmc) = (; y, θsP, θsMs); diff --git a/docs/make.jl b/docs/make.jl index 05857d6..727cf4d 100644 --- a/docs/make.jl +++ b/docs/make.jl @@ -17,14 +17,15 @@ makedocs(; "Problem" => "problem.md", "Tutorials" => [ "Basic workflow" => "tutorials/basic_cpu.md", - "Test quarto markdown" => "tutorials/test1.md", + "Inspect results" => "tutorials/inspect_results.md", + #"Test quarto markdown" => "tutorials/test1.md", ], "How to" => [ #".. model independent parameters" => "tutorials/how_to_guides/blocks_corr_site.md", #".. model site-global corr" => "tutorials/how_to_guides/corr_site_global.md", ], "Explanation" => [ - "Theory" => "explanation/theory_hvi.md", + #"Theory" => "explanation/theory_hvi.md", TODO activate when paper is published ], "Reference" => [ "Public" => "reference/reference_public.md", diff --git a/docs/src/tutorials/Project.toml b/docs/src/tutorials/Project.toml index 4987410..e828ad1 100644 --- a/docs/src/tutorials/Project.toml +++ b/docs/src/tutorials/Project.toml @@ -1,5 +1,6 @@ [deps] Bijectors = "76274a88-744f-5084-9051-94815aaf08c4" +CairoMakie = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0" CommonSolve = "38540f10-b2f7-11e9-35d8-d573e4eb0ff2" ComponentArrays = "b0b7db55-cfe3-40fc-9ded-d10e2dbeff66" DistributionFits = "45214091-1ed4-4409-9bcf-fdb48a05e921" @@ -7,6 +8,7 @@ HybridVariationalInference = "a108c475-a4e2-4021-9a84-cfa7df242f64" JLD2 = "033835bb-8acc-5ee8-8aae-3f567f8a3819" MLUtils = "f1d291b0-491e-4a28-83b9-f70985020b54" OptimizationOptimisers = "42dfb2eb-d2b4-4451-abcd-913932933ac1" +PairPlots = "43a3c2be-4208-490b-832a-a21dcd55d7da" Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" SimpleChains = "de6bee2f-e2f4-4ec7-b6ed-219cc6f6e9e5" StableRNGs = "860ef19b-820b-49d6-a774-d7a799459cd3" diff --git a/docs/src/tutorials/_pbm_matrix.qmd b/docs/src/tutorials/_pbm_matrix.qmd new file mode 100644 index 0000000..8d02eae --- /dev/null +++ b/docs/src/tutorials/_pbm_matrix.qmd @@ -0,0 +1,20 @@ +```{julia} +function f_doubleMM_sites(θc::CA.ComponentMatrix, xPc::CA.ComponentMatrix) + # extract several covariates from xP + ST = typeof(CA.getdata(xPc)[1:1,:]) # workaround for non-type-stable Symbol-indexing + S1 = (CA.getdata(xPc[:S1,:])::ST) + S2 = (CA.getdata(xPc[:S2,:])::ST) + # + # extract the parameters as row-repeated vectors + n_obs = size(S1, 1) + VT = typeof(CA.getdata(θc)[:,1]) # workaround for non-type-stable Symbol-indexing + (r0, r1, K1, K2) = map((:r0, :r1, :K1, :K2)) do par + p1 = CA.getdata(θc[:, par]) ::VT + repeat(p1', n_obs) # matrix: same for each concentration row in S1 + end + # + # each variable is a matrix (n_obs x n_site) + r0 .+ r1 .* S1 ./ (K1 .+ S1) .* S2 ./ (K2 .+ S2) +end +``` + diff --git a/docs/src/tutorials/basic_cpu.md b/docs/src/tutorials/basic_cpu.md index 6b67628..155f124 100644 --- a/docs/src/tutorials/basic_cpu.md +++ b/docs/src/tutorials/basic_cpu.md @@ -247,10 +247,9 @@ import Zygote solver = HybridPosteriorSolver(; alg=Adam(0.02), n_MC=3) -(; probo, interpreters) = solve(prob, solver; scenario, rng, +(; probo, interpreters) = solve(prob, solver; rng, callback = callback_loss(100), # output during fitting epochs = 2, - gdev = identity, # do not use GPU, here ); ``` @@ -326,10 +325,9 @@ As a test of the new applicator, the results are refined by running a few more epochs of the optimization. ``` julia -(; probo) = solve(probo_sites, solver; scenario, rng, +(; probo) = solve(probo_sites, solver; rng, callback = callback_loss(100), # output during fitting epochs = 10, - gdev = identity, # do not use GPU, here #is_inferred = Val(true), # activate type-checks ); ``` diff --git a/docs/src/tutorials/basic_cpu.qmd b/docs/src/tutorials/basic_cpu.qmd index e121261..0eb641f 100644 --- a/docs/src/tutorials/basic_cpu.qmd +++ b/docs/src/tutorials/basic_cpu.qmd @@ -282,10 +282,9 @@ import Zygote solver = HybridPosteriorSolver(; alg=Adam(0.02), n_MC=3) -(; probo, interpreters) = solve(prob, solver; scenario, rng, +(; probo, interpreters) = solve(prob, solver; rng, callback = callback_loss(100), # output during fitting epochs = 2, - gdev = identity, # do not use GPU, here ); ``` @@ -317,25 +316,7 @@ For the parameters, one row corresponds to one site. For the drivers and predictions, one column corresponds to one site. -```{julia} -function f_doubleMM_sites(θc::CA.ComponentMatrix, xPc::CA.ComponentMatrix) - # extract several covariates from xP - ST = typeof(CA.getdata(xPc)[1:1,:]) # workaround for non-type-stable Symbol-indexing - S1 = (CA.getdata(xPc[:S1,:])::ST) - S2 = (CA.getdata(xPc[:S2,:])::ST) - # - # extract the parameters as row-repeated vectors - n_obs = size(S1, 1) - VT = typeof(CA.getdata(θc)[:,1]) # workaround for non-type-stable Symbol-indexing - (r0, r1, K1, K2) = map((:r0, :r1, :K1, :K2)) do par - p1 = CA.getdata(θc[:, par]) ::VT - repeat(p1', n_obs) # matrix: same for each concentration row in S1 - end - # - # each variable is a matrix (n_obs x n_site) - r0 .+ r1 .* S1 ./ (K1 .+ S1) .* S2 ./ (K2 .+ S2) -end -``` +{{< include _pbm_matrix.qmd >}} Again, the function should not rely on the order of parameters but use symbolic indexing to extract the parameter vectors. For type stability of this symbolic indexing, @@ -362,10 +343,9 @@ As a test of the new applicator, the results are refined by running a few more epochs of the optimization. ```{julia} -(; probo) = solve(probo_sites, solver; scenario, rng, +(; probo) = solve(probo_sites, solver; rng, callback = callback_loss(100), # output during fitting epochs = 10, - gdev = identity, # do not use GPU, here #is_inferred = Val(true), # activate type-checks ); ``` diff --git a/docs/src/tutorials/inspect_results.md b/docs/src/tutorials/inspect_results.md new file mode 100644 index 0000000..2432f37 --- /dev/null +++ b/docs/src/tutorials/inspect_results.md @@ -0,0 +1,164 @@ +# Inspect results of fitted problem + + +``` @meta +CurrentModule = HybridVariationalInference +``` + +First load necessary packages. + +``` julia +using HybridVariationalInference +using StableRNGs +using ComponentArrays: ComponentArrays as CA +using SimpleChains # for reloading the optimized problem +using DistributionFits +using JLD2 +using CairoMakie +using PairPlots # scatterplot matrices +``` + +After redefinig the process-based model (currently JLD2 cannot save functions), +the previously optimized Problem can be loaded. + +``` julia +function f_doubleMM_sites(θc::CA.ComponentMatrix, xPc::CA.ComponentMatrix) + # extract several covariates from xP + ST = typeof(CA.getdata(xPc)[1:1,:]) # workaround for non-type-stable Symbol-indexing + S1 = (CA.getdata(xPc[:S1,:])::ST) + S2 = (CA.getdata(xPc[:S2,:])::ST) + # + # extract the parameters as row-repeated vectors + n_obs = size(S1, 1) + VT = typeof(CA.getdata(θc)[:,1]) # workaround for non-type-stable Symbol-indexing + (r0, r1, K1, K2) = map((:r0, :r1, :K1, :K2)) do par + p1 = CA.getdata(θc[:, par]) ::VT + repeat(p1', n_obs) # matrix: same for each concentration row in S1 + end + # + # each variable is a matrix (n_obs x n_site) + r0 .+ r1 .* S1 ./ (K1 .+ S1) .* S2 ./ (K2 .+ S2) +end +``` + +``` julia +fname = "intermediate/basic_cpu_results.jld2" +print(abspath(fname)) +probo, interpreters = load(fname, "probo", "interpreters"); +``` + +## Sample the posterior + +A sample of both, posterior, and predictive posterior can be obtained +using function [`sample_posterior`](@ref). + +``` julia +using StableRNGs +rng = StableRNG(112) +n_sample_pred = 400 +(; θsP, θsMs) = sample_posterior(rng, probo; n_sample_pred) +``` + +Lets look at the results. + +``` julia +size(θsP), size(θsMs) +``` + + ((1, 400), (800, 2, 400)) + +The last dimension is the number of samples, the second-last dimension is +the respective parameter. `θsMs` has an additional dimension denoting +the site for which parameters are samples. + +They are ComponentArrays with the parameter dimension names that can be used: + +``` julia +θsMs[1,:r1,:] # sample of r1 of the first site +``` + +### Corner plots + +The relation between different variables can be well inspected by +scatterplot matrices, also called corner plots or pair plots. +`PairPlots.jl` provides a Makie-implementation of those. + +Here, we plot the global parameters and the site-parameters for the first site. + +``` julia +i_site = 1 +θ1 = vcat(θsP, θsMs[i_site,:,:]) +θ1_nt = NamedTuple(k => CA.getdata(θ1[k,:]) for k in keys(θ1[:,1])) # +plt = pairplot(θ1_nt) +``` + +![](inspect_results_files/figure-commonmark/cell-9-output-1.png) + +The plot shows that parameters for the first site, *K*₁ and *r*₁, are correlated, +but that we did not model correlation with the global parameter, *K*₂. + +Note that this plots shows only the first out of 800 sites. +HVI estimated a 1602-dimensional posterior distribution including +covariances among parameters. + +### Expected values and marginal variances + +Lets look at how the estimated uncertainty of a site parameter changes with +its expected value. + +``` julia +par = :K1 +θmean = [mean(θsMs[s,par,:]) for s in axes(θsMs, 1)] +θsd = [std(θsMs[s,par,:]) for s in axes(θsMs, 1)] +fig = Figure(); ax = Axis(fig[1,1], xlabel="mean($par)",ylabel="sd($par)") +scatter!(ax, θmean, θsd) +fig +``` + +![](inspect_results_files/figure-commonmark/cell-11-output-1.png) + +We see that *K*₁ across sites ranges from about 0.18 to 0.25, and that +its estimated uncertainty is aobut 0.034, slightly decreasing with the +values of the parameter. + +## Predictive Posterior + +In addition to the uncertainty in parameters, we are also interested in +the uncertainty of predictions, i.e. the predictive posterior. + +We cam either run the PBM for all the parameter samples that we obtained already, +using [`apply_process_model`](@ref), or use [`predict_hvi`](@ref) which combines +sampling the posterior and predictive posterior and returns the additional +`NamedTuple` entry `y`. + +``` julia +(; y, θsP, θsMs) = predict_hvi(rng, probo; n_sample_pred) +``` + +``` julia +size(y) +``` + + (8, 800, 400) + +Again, the last dimension is the sample. +The other dimensions correspond to the observations we provided for the fitting: +The first dimension is the observation within one site, the second dimension is the site. + +Lets look on how the uncertainty of the 4th observations scales with its +predicted magnitude across sites. + +``` julia +i_obs = 4 +ymean = [mean(y[i_obs,s,:]) for s in axes(θsMs, 1)] +ysd = [std(y[i_obs,s,:]) for s in axes(θsMs, 1)] +fig = Figure(); ax = Axis(fig[1,1], xlabel="mean(y$i_obs)",ylabel="sd(y$i_obs)") +scatter!(ax, ymean, ysd) +fig +``` + +![](inspect_results_files/figure-commonmark/cell-14-output-1.png) + +We see that observed values for associated substrate concentrations range about from +0.51 to 0.59 with an estimated standard deviation around 0.005 that decreases +with the observed value. diff --git a/docs/src/tutorials/inspect_results.qmd b/docs/src/tutorials/inspect_results.qmd new file mode 100644 index 0000000..2a461e4 --- /dev/null +++ b/docs/src/tutorials/inspect_results.qmd @@ -0,0 +1,172 @@ +--- +title: "Inspect results of fitted problem" +engine: julia +execute: + echo: true + output: false + daemon: 3600 +format: + commonmark: + variant: -raw_html + wrap: preserve +bibliography: twutz_txt.bib +--- + +``` @meta +CurrentModule = HybridVariationalInference +``` + +First load necessary packages. + +```{julia} +using HybridVariationalInference +using StableRNGs +using ComponentArrays: ComponentArrays as CA +using SimpleChains # for reloading the optimized problem +using DistributionFits +using JLD2 +using CairoMakie +using PairPlots # scatterplot matrices +``` + +After redefinig the process-based model (currently JLD2 cannot save functions), +the previously optimized Problem can be loaded. + +{{< include _pbm_matrix.qmd >}} + +```{julia} +fname = "intermediate/basic_cpu_results.jld2" +print(abspath(fname)) +probo, interpreters = load(fname, "probo", "interpreters"); +``` + +```{julia} +#| eval: false +#| echo: false +# outside notebook, need to reset ModelApplicator, due to fθ defined in Notebook module +#θFix = CA.ComponentVector{eltype(probo.θP)}(r0=0.3) +θFix = CA.ComponentVector{eltype(probo.θP)}( + r0=probo.f_allsites.θFixm[1]) +_xP_batch = first(probo.train_dataloader)[2] +f_batch = PBMPopulationApplicator( + f_doubleMM_sites, probo.n_batch; probo.θP, probo.θM, θFix, xPvec=_xP_batch[:,1]) +f_allsites = PBMPopulationApplicator( + f_doubleMM_sites, probo.n_site; probo.θP, probo.θM, θFix, xPvec=_xP_batch[:,1]) +probo = HybridProblem(probo; f_batch, f_allsites) +``` +## Sample the posterior + +A sample of both, posterior, and predictive posterior can be obtained +using function [`sample_posterior`](@ref). + +```{julia} +using StableRNGs +rng = StableRNG(112) +n_sample_pred = 400 +(; θsP, θsMs) = sample_posterior(rng, probo; n_sample_pred) +``` + +Lets look at the results. +```{julia} +#| output: true +size(θsP), size(θsMs) +``` +The last dimension is the number of samples, the second-last dimension is +the respective parameter. `θsMs` has an additional dimension denoting +the site for which parameters are samples. + +They are ComponentArrays with the parameter dimension names that can be used: +```{julia} +θsMs[1,:r1,:] # sample of r1 of the first site +``` + +## Corner plots + +The relation between different variables can be well inspected by +scatterplot matrices, also called corner plots or pair plots. +`PairPlots.jl` provides a Makie-implementation of those. + +Here, we plot the global parameters and the site-parameters for the first site. +```{julia} +#| output: true +i_site = 1 +θ1 = vcat(θsP, θsMs[i_site,:,:]) +θ1_nt = NamedTuple(k => CA.getdata(θ1[k,:]) for k in keys(θ1[:,1])) # +plt = pairplot(θ1_nt) +``` +The plot shows that parameters for the first site, $K_1$ and $r_1$, are correlated, +but that we did not model correlation with the global parameter, $K_2$. + +Note that this plots shows only the first out of 800 sites. +HVI estimated a 1602-dimensional posterior distribution including +covariances among parameters. + +```{julia} +#| eval: false +#| echo: false +probo.θP, probo.θM +``` + + +## Expected values and marginal variances + +Lets look at how the estimated uncertainty of a site parameter changes with +its expected value. + +```{julia} +#| output: true +par = :K1 +θmean = [mean(θsMs[s,par,:]) for s in axes(θsMs, 1)] +θsd = [std(θsMs[s,par,:]) for s in axes(θsMs, 1)] +fig = Figure(); ax = Axis(fig[1,1], xlabel="mean($par)",ylabel="sd($par)") +scatter!(ax, θmean, θsd) +fig +``` + +We see that $K_1$ across sites ranges from about 0.18 to 0.25, and that +its estimated uncertainty is aobut 0.034, slightly decreasing with the +values of the parameter. + +## Predictive Posterior + +In addition to the uncertainty in parameters, we are also interested in +the uncertainty of predictions, i.e. the predictive posterior. + +We cam either run the PBM for all the parameter samples that we obtained already, +using [`apply_process_model`](@ref), or use [`predict_hvi`](@ref) which combines +sampling the posterior and predictive posterior and returns the additional +`NamedTuple` entry `y`. + +```{julia} +(; y, θsP, θsMs) = predict_hvi(rng, probo; n_sample_pred) +``` + +```{julia} +#| output: true +size(y) +``` + +Again, the last dimension is the sample. +The other dimensions correspond to the observations we provided for the fitting: +The first dimension is the observation within one site, the second dimension is the site. + +Lets look on how the uncertainty of the 4th observations scales with its +predicted magnitude across sites. + +```{julia} +#| output: true +i_obs = 4 +ymean = [mean(y[i_obs,s,:]) for s in axes(θsMs, 1)] +ysd = [std(y[i_obs,s,:]) for s in axes(θsMs, 1)] +fig = Figure(); ax = Axis(fig[1,1], xlabel="mean(y$i_obs)",ylabel="sd(y$i_obs)") +scatter!(ax, ymean, ysd) +fig +``` +We see that observed values for associated substrate concentrations range about from +0.51 to 0.59 with an estimated standard deviation around 0.005 that decreases +with the observed value. + + + + + diff --git a/src/AbstractHybridProblem.jl b/src/AbstractHybridProblem.jl index 7e0106c..0d80ba3 100644 --- a/src/AbstractHybridProblem.jl +++ b/src/AbstractHybridProblem.jl @@ -219,8 +219,9 @@ end """ get_gcdev(scenario::Val{scen}) where scen -Configure gpu_device() for given scenario, checking for -`:use_gpu` and `:f_on_gpu` in scenario. +Configure the function that puts data and computations to gpu device +for given `scenario`. +Checking for `:use_gpu` and `:f_on_gpu` in `scenario`. Returns a `NamedTuple` `(;gdev_M, gdev_P)` """ function get_gdev_MP(scenario::Val{scen}) where scen diff --git a/src/HybridVariationalInference.jl b/src/HybridVariationalInference.jl index 948b4e5..15db92e 100644 --- a/src/HybridVariationalInference.jl +++ b/src/HybridVariationalInference.jl @@ -60,7 +60,8 @@ export AbstractHybridProblem, get_hybridproblem_MLapplicator, get_hybridproblem_ gen_cov_pred, construct_dataloader_from_synthetic, gdev_hybridproblem_dataloader, - setup_PBMpar_interpreter + setup_PBMpar_interpreter, + get_gdev_MP include("AbstractHybridProblem.jl") export AbstractHybridProblemInterpreters, HybridProblemInterpreters, From 105e369f9714565069432a228ac215c6d2e35c3e Mon Sep 17 00:00:00 2001 From: Thomas Wutzler Date: Tue, 19 Aug 2025 15:57:17 +0200 Subject: [PATCH 14/21] typos --- dev/doubleMM.jl | 6 +++--- docs/src/explanation/theory_hvi.md | 2 +- docs/src/problem.md | 2 +- docs/src/tutorials/basic_cpu.md | 4 ++-- docs/src/tutorials/basic_cpu.qmd | 4 ++-- docs/src/tutorials/how_to_guides/blocks_corr.qmd | 2 +- docs/src/tutorials/how_to_guides/corr_site_global.qmd | 2 +- docs/src/tutorials/inspect_results.md | 2 +- docs/src/tutorials/inspect_results.qmd | 2 +- src/AbstractHybridProblem.jl | 2 +- src/PBMApplicator.jl | 2 +- 11 files changed, 15 insertions(+), 15 deletions(-) diff --git a/dev/doubleMM.jl b/dev/doubleMM.jl index f8db103..895ea13 100644 --- a/dev/doubleMM.jl +++ b/dev/doubleMM.jl @@ -325,8 +325,8 @@ histogram(θsP) # resopt.objective # probo = prob3o = HybridProblem(prob2; ϕg = cpu_ca(ϕ).ϕg, θP = θP, ϕunc = cpu_ca(ϕ).unc) - solver_post2 = HybridPosteriorSovler(solver_post; n_MC = 30) - #solver_post2 = HybridPosteriorSovler(solver_post; n_MC = 3) + solver_post2 = HybridPosteriorSolver(solver_post; n_MC = 30) + #solver_post2 = HybridPosteriorSolver(solver_post; n_MC = 3) n_rep = 30 n_batchf = n_site n_batchf = n_site ÷ 10 @@ -632,7 +632,7 @@ lineplot!(plt, 0, 1) set_default_AoGTheme!(;makie_config) using ColorBrewer: ColorBrewer - # two same colors for hmc anc hvi , additional for further unspecified labels + # two same colors for hmc and hvi , additional for further unspecified labels cDark2 = cgrad(ColorBrewer.palette("Dark2",3),3,categorical=true) #color_methods = vcat([k => col for (k, col) in zip([:hmc, :hvi], cDark2[1:2])], cDark2[3], Makie.wong_colors()[2:end]); cpal0 = Makie.wong_colors() diff --git a/docs/src/explanation/theory_hvi.md b/docs/src/explanation/theory_hvi.md index 01284d7..18053a7 100644 --- a/docs/src/explanation/theory_hvi.md +++ b/docs/src/explanation/theory_hvi.md @@ -89,7 +89,7 @@ the cholesky factors of the covariance and correlation matrices respectively. Th upper triangular matrices. Since, the block-diagonal structure of the correlation matrix carries over to the cholesky -factor, $U_C$ is a block-diagnonal matrix of smaller cholesky factors. If HVI modeled the +factor, $U_C$ is a block-diagonal matrix of smaller cholesky factors. If HVI modeled the depence between $\zeta_{Ms}$ and $\zeta_P$, the correlation matrhix would have an additional block repeated in the first row and its transpose repeated in the first column in $\Sigma$, leading to a cholesky factor $U_C$ having entries in all the rows. diff --git a/docs/src/problem.md b/docs/src/problem.md index edfd409..1a2b295 100644 --- a/docs/src/problem.md +++ b/docs/src/problem.md @@ -13,7 +13,7 @@ For example we have soil organic matter process-model that predicts carbon stock different sites. We need to parameterize the unknown carbon use efficiency (CUE) of the soil microbial community that differs by site, but is hypothesized to correlate with climate variables and pedogenic factors, such as clay content. -We apply a machine learnign model to estimate CUE and fit it end-to-end with other +We apply a machine learning model to estimate CUE and fit it end-to-end with other parameters of the process-model to observed carbon stocks. In addition to the predicted CUE, we are interested in the uncertainty of CUE and its correlation with other parameters, such a the capacity of the soil minerals to bind carbon. I.e. we are interetes in the entire posterior probability distribution of the model parameters. diff --git a/docs/src/tutorials/basic_cpu.md b/docs/src/tutorials/basic_cpu.md index 155f124..6dc5e8f 100644 --- a/docs/src/tutorials/basic_cpu.md +++ b/docs/src/tutorials/basic_cpu.md @@ -116,7 +116,7 @@ priors_dict = Dict{Symbol, Distribution}( ## Observations, model drivers and covariates -The model paraemters are inverted using information on the +The model parameters are inverted using information on the - observed data, `y_o` - its uncertainty, `y_unc` - known covariates across sites, `xM` @@ -151,7 +151,7 @@ components S1 and S2 corresponding to the concentrations, for which outputs were observed. This allows notation `x.S1` in the PBM above. -The `y_unc` becomes its meaning by the Liklihood-function to be specified with +The `y_unc` becomes its meaning by the Likelihood-function to be specified with the problem below. ### Providing data in batches diff --git a/docs/src/tutorials/basic_cpu.qmd b/docs/src/tutorials/basic_cpu.qmd index 0eb641f..2edb42e 100644 --- a/docs/src/tutorials/basic_cpu.qmd +++ b/docs/src/tutorials/basic_cpu.qmd @@ -121,7 +121,7 @@ priors_dict = Dict{Symbol, Distribution}( ## Observations, model drivers and covariates -The model paraemters are inverted using information on the +The model parameters are inverted using information on the - observed data, `y_o` - its uncertainty, `y_unc` - known covariates across sites, `xM` @@ -160,7 +160,7 @@ components S1 and S2 corresponding to the concentrations, for which outputs were observed. This allows notation `x.S1` in the PBM above. -The `y_unc` becomes its meaning by the Liklihood-function to be specified with +The `y_unc` becomes its meaning by the Likelihood-function to be specified with the problem below. ### Providing data in batches diff --git a/docs/src/tutorials/how_to_guides/blocks_corr.qmd b/docs/src/tutorials/how_to_guides/blocks_corr.qmd index 34f4adc..c98a8d1 100644 --- a/docs/src/tutorials/how_to_guides/blocks_corr.qmd +++ b/docs/src/tutorials/how_to_guides/blocks_corr.qmd @@ -203,7 +203,7 @@ In each column of the model drivers there is a ComponentVector with components S1 and S2 corresponding to the concentrations, for which outputs were observed. -The `y_unc` becomes its meaning by the Liklihood-function to be specified with +The `y_unc` becomes its meaning by the Likelihood-function to be specified with the problem below. ### Providing data in Batches diff --git a/docs/src/tutorials/how_to_guides/corr_site_global.qmd b/docs/src/tutorials/how_to_guides/corr_site_global.qmd index a516580..fc5854c 100644 --- a/docs/src/tutorials/how_to_guides/corr_site_global.qmd +++ b/docs/src/tutorials/how_to_guides/corr_site_global.qmd @@ -194,7 +194,7 @@ In each column of the model drivers there is a ComponentVector with components S1 and S2 corresponding to the concentrations, for which outputs were observed. -The `y_unc` becomes its meaning by the Liklihood-function to be specified with +The `y_unc` becomes its meaning by the Likelihood-function to be specified with the problem below. ### Providing data in Batches diff --git a/docs/src/tutorials/inspect_results.md b/docs/src/tutorials/inspect_results.md index 2432f37..9b5260e 100644 --- a/docs/src/tutorials/inspect_results.md +++ b/docs/src/tutorials/inspect_results.md @@ -118,7 +118,7 @@ fig ![](inspect_results_files/figure-commonmark/cell-11-output-1.png) We see that *K*₁ across sites ranges from about 0.18 to 0.25, and that -its estimated uncertainty is aobut 0.034, slightly decreasing with the +its estimated uncertainty is about 0.034, slightly decreasing with the values of the parameter. ## Predictive Posterior diff --git a/docs/src/tutorials/inspect_results.qmd b/docs/src/tutorials/inspect_results.qmd index 2a461e4..3c080c1 100644 --- a/docs/src/tutorials/inspect_results.qmd +++ b/docs/src/tutorials/inspect_results.qmd @@ -124,7 +124,7 @@ fig ``` We see that $K_1$ across sites ranges from about 0.18 to 0.25, and that -its estimated uncertainty is aobut 0.034, slightly decreasing with the +its estimated uncertainty is about 0.034, slightly decreasing with the values of the parameter. ## Predictive Posterior diff --git a/src/AbstractHybridProblem.jl b/src/AbstractHybridProblem.jl index 0d80ba3..798ed57 100644 --- a/src/AbstractHybridProblem.jl +++ b/src/AbstractHybridProblem.jl @@ -164,7 +164,7 @@ Return a DataLoader that provides a tuple of - `xP`: Iterator of process-model drivers, with one element per site - `y_o`: matrix of observations with added noise, with one column per site - `y_unc`: matrix `sizeof(y_o)` of uncertainty information -- `i_sites`: Vector of indices of sites in toal sitevector for the minibatch +- `i_sites`: Vector of indices of sites in the minibatch """ function get_hybridproblem_train_dataloader end diff --git a/src/PBMApplicator.jl b/src/PBMApplicator.jl index 1efc532..a040840 100644 --- a/src/PBMApplicator.jl +++ b/src/PBMApplicator.jl @@ -47,7 +47,7 @@ Construct AbstractPBMApplicator from process-based model `fθ` that computes pre for a single site. The Applicator combines enclosed `θFix`, with provided `θMs` and `θP` and constructs a `ComponentVector` that can be indexed by -symbolic parameter names, correspondning to the templates provided during +symbolic parameter names, corresponding to the templates provided during construction of the applicator. ## Arguments From 50217c1c3734caf6952deb00eb15a1b057c494d6 Mon Sep 17 00:00:00 2001 From: Thomas Wutzler Date: Wed, 20 Aug 2025 09:28:28 +0200 Subject: [PATCH 15/21] adapt public keyword to julia 1.10 --- src/HybridVariationalInference.jl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/HybridVariationalInference.jl b/src/HybridVariationalInference.jl index 15db92e..7cf9d88 100644 --- a/src/HybridVariationalInference.jl +++ b/src/HybridVariationalInference.jl @@ -23,10 +23,10 @@ using Test: Test # @inferred export DoubleMM -#? how to reexport public CommonSolve.solve - export extend_stacked_nrow, StackedArray -public Exp +#public Exp +#julia 1.10 public: https://github.com/JuliaLang/julia/pull/55097 +VERSION >= v"1.11.0-DEV.469" && eval(Meta.parse("public Exp")) include("bijectors_utils.jl") export AbstractComponentArrayInterpreter, ComponentArrayInterpreter, From 2c4d3380df7bf8c136928060343526a05be32ab7 Mon Sep 17 00:00:00 2001 From: Thomas Wutzler Date: Wed, 20 Aug 2025 09:29:19 +0200 Subject: [PATCH 16/21] test Aqua only on Julia 1.11 (upper constraint) --- test/runtests.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/runtests.jl b/test/runtests.jl index c41db77..7247a5c 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -42,7 +42,7 @@ end @time begin if GROUP == "All" || GROUP == "Aqua" #@safetestset "test" include("test/test_aqua.jl") - if VERSION >= VersionNumber("1.11.2") + if VersionNumber("1.11.2") <= VERSION < VersionNumber("1.12") #@safetestset "test" include("test/test_aqua.jl") @time @safetestset "test_aqua" include("test_aqua.jl") end From b943536abf2aa8a9834494489817c36f95b6e62e Mon Sep 17 00:00:00 2001 From: Thomas Wutzler Date: Wed, 20 Aug 2025 09:49:46 +0200 Subject: [PATCH 17/21] tutorail: save with PBM from DoubleMM --- .gitignore | 1 - docs/make.jl | 2 + docs/src/reference/reference_public.md | 2 +- docs/src/tutorials/basic_cpu.md | 23 ++++--- docs/src/tutorials/basic_cpu.qmd | 31 ++++++---- docs/src/tutorials/inspect_results.md | 34 +++-------- docs/src/tutorials/inspect_results.qmd | 8 +-- .../intermediate/basic_cpu_results.jld2 | Bin 197799 -> 197807 bytes src/DoubleMM/DoubleMM.jl | 2 +- src/DoubleMM/f_doubleMM.jl | 56 +++++++++++++++++- 10 files changed, 106 insertions(+), 53 deletions(-) diff --git a/.gitignore b/.gitignore index 19af931..54510fd 100644 --- a/.gitignore +++ b/.gitignore @@ -14,4 +14,3 @@ docs/src/**/*_files/ docs/src/**/*.html docs/src/**/*.ipynb docs/src/**/*Manifest.toml -docs/src/tutorials/intermediate/* diff --git a/docs/make.jl b/docs/make.jl index 727cf4d..3a06459 100644 --- a/docs/make.jl +++ b/docs/make.jl @@ -1,9 +1,11 @@ using HybridVariationalInference +import HybridVariationalInference.DoubleMM using Documenter DocMeta.setdocmeta!(HybridVariationalInference, :DocTestSetup, :(using HybridVariationalInference); recursive=true) makedocs(; + #modules=[HybridVariationalInference, HybridVariationalInference.DoubleMM], modules=[HybridVariationalInference], authors="Thomas Wutzler and contributors", sitename="HybridVariationalInference.jl", diff --git a/docs/src/reference/reference_public.md b/docs/src/reference/reference_public.md index 678706a..891df45 100644 --- a/docs/src/reference/reference_public.md +++ b/docs/src/reference/reference_public.md @@ -11,7 +11,7 @@ i.e. the docstrings. ``` @autodocs Modules = [ - HybridVariationalInference, + HybridVariationalInference, HybridVariationalInference.DoubleMM ] Private = false ``` diff --git a/docs/src/tutorials/basic_cpu.md b/docs/src/tutorials/basic_cpu.md index 6dc5e8f..182c27e 100644 --- a/docs/src/tutorials/basic_cpu.md +++ b/docs/src/tutorials/basic_cpu.md @@ -96,7 +96,7 @@ transM = Stacked(HVI.Exp(), HVI.Exp()) Parameter transformations are specified using the `Bijectors` package. Because, `Bijectors.elementwise(exp)`, has problems with automatic differentiation (AD) -on GPU, we use the non-exported [`Exp`]() wrapper inside `Bijectors.Stacked`. +on GPU, we use the public but non-exported [`Exp`](@ref) wrapper inside `Bijectors.Stacked`. ### Prior information on parameters at constrained scale @@ -125,8 +125,8 @@ Here, we use synthetic data generated by the package. ``` julia rng = StableRNG(111) -scenario = Val((:omit_r0, :covarK2, )) -(; xM, xP, y_o, y_unc) = gen_hybridproblem_synthetic(rng, DoubleMM.DoubleMMCase(); scenario) +(; xM, xP, y_o, y_unc) = gen_hybridproblem_synthetic( + rng, DoubleMM.DoubleMMCase(); scenario=Val((:omit_r0,))) ``` Lets look at them. @@ -335,16 +335,25 @@ epochs of the optimization. ## Saving the results Extracting useful information from the optimized HybridProblem is covered -in the following tutorial. XXLink - +in the following [Inspect results of fitted problem](@ref) tutorial. In order to use the results from this tutorial in other tutorials, the updated `probo` `HybridProblem` and the interpreters are saved to a JLD2 file. +Before the problem is updated to use the redefinition [`DoubleMM.f_doubleMM_sites`](@ref) +of the PBM in module `DoubleMM` rather than +module `Main` to allow for easier reloading with JLD2. + +``` julia +f_batch = PBMPopulationApplicator(DoubleMM.f_doubleMM_sites, n_batch; θP, θM, θFix, xPvec=xP[:,1]) +f_allsites = PBMPopulationApplicator(DoubleMM.f_doubleMM_sites, n_site; θP, θM, θFix, xPvec=xP[:,1]) +probo2 = HybridProblem(probo; f_batch, f_allsites) +``` + ``` julia using JLD2 fname = "intermediate/basic_cpu_results.jld2" mkpath("intermediate") -if probo isa AbstractHybridProblem # do not save on failure above - jldsave(fname, false, IOStream; probo, interpreters) +if probo2 isa AbstractHybridProblem # do not save on failure above + jldsave(fname, false, IOStream; probo=probo2, interpreters) end ``` diff --git a/docs/src/tutorials/basic_cpu.qmd b/docs/src/tutorials/basic_cpu.qmd index 2edb42e..af96b35 100644 --- a/docs/src/tutorials/basic_cpu.qmd +++ b/docs/src/tutorials/basic_cpu.qmd @@ -31,7 +31,7 @@ using DistributionFits Next, specify many moving parts of the Hybrid variational inference (HVI) -## The process-based model +## The process-based model The example process based model (PBM) predicts a double-monod constrained rate for different substrate concentrations, `S1`, and `S2`. @@ -101,7 +101,7 @@ transM = Stacked(HVI.Exp(), HVI.Exp()) Parameter transformations are specified using the `Bijectors` package. Because, `Bijectors.elementwise(exp)`, has problems with automatic differentiation (AD) -on GPU, we use the non-exported [`Exp`]() wrapper inside `Bijectors.Stacked`. +on GPU, we use the public but non-exported [`Exp`](@ref) wrapper inside `Bijectors.Stacked`. ### Prior information on parameters at constrained scale @@ -130,8 +130,8 @@ Here, we use synthetic data generated by the package. ```{julia} rng = StableRNG(111) -scenario = Val((:omit_r0, :covarK2, )) -(; xM, xP, y_o, y_unc) = gen_hybridproblem_synthetic(rng, DoubleMM.DoubleMMCase(); scenario) +(; xM, xP, y_o, y_unc) = gen_hybridproblem_synthetic( + rng, DoubleMM.DoubleMMCase(); scenario=Val((:omit_r0,))) ``` ```{julia} @@ -139,7 +139,7 @@ scenario = Val((:omit_r0, :covarK2, )) #| eval: false () -> begin (; xM, θP_true, θMs_true, xP, y_global_true, y_true, y_global_o, y_o, y_unc) = - gen_hybridproblem_synthetic(rng, DoubleMM.DoubleMMCase(); scenario) + gen_hybridproblem_synthetic(rng, DoubleMM.DoubleMMCase(); scenario=Val((:omit_r0,))) end ``` @@ -265,7 +265,7 @@ y1 = f_batch(CA.getdata(θP), CA.getdata(θMs), CA.getdata(x_batch))[2] #using Cthulhu #@descend_code_warntype f_batch(CA.getdata(θP), CA.getdata(θMs), CA.getdata(x_batch)) prob0 = HVI.DoubleMM.DoubleMMCase() - f_batch0 = get_hybridproblem_PBmodel(prob0; scenario, use_all_sites = false) + f_batch0 = get_hybridproblem_PBmodel(prob0; use_all_sites = false) y1f = f_batch0(θP, θMs, x_batch)[2] y1 .- y1f # equal end @@ -352,17 +352,26 @@ epochs of the optimization. ## Saving the results Extracting useful information from the optimized HybridProblem is covered -in the following tutorial. XXLink - -In order to use the results from this tutorial in other tutorials, +in the following [Inspect results of fitted problem](@ref) tutorial. +In order to use the results from this tutorial in other tutorials, the updated `probo` `HybridProblem` and the interpreters are saved to a JLD2 file. +Before the problem is updated to use the redefinition [`DoubleMM.f_doubleMM_sites`](@ref) +of the PBM in module `DoubleMM` rather than +module `Main` to allow for easier reloading with JLD2. + +```{julia} +f_batch = PBMPopulationApplicator(DoubleMM.f_doubleMM_sites, n_batch; θP, θM, θFix, xPvec=xP[:,1]) +f_allsites = PBMPopulationApplicator(DoubleMM.f_doubleMM_sites, n_site; θP, θM, θFix, xPvec=xP[:,1]) +probo2 = HybridProblem(probo; f_batch, f_allsites) +``` + ```{julia} using JLD2 fname = "intermediate/basic_cpu_results.jld2" mkpath("intermediate") -if probo isa AbstractHybridProblem # do not save on failure above - jldsave(fname, false, IOStream; probo, interpreters) +if probo2 isa AbstractHybridProblem # do not save on failure above + jldsave(fname, false, IOStream; probo=probo2, interpreters) end ``` diff --git a/docs/src/tutorials/inspect_results.md b/docs/src/tutorials/inspect_results.md index 9b5260e..d164660 100644 --- a/docs/src/tutorials/inspect_results.md +++ b/docs/src/tutorials/inspect_results.md @@ -18,28 +18,8 @@ using CairoMakie using PairPlots # scatterplot matrices ``` -After redefinig the process-based model (currently JLD2 cannot save functions), -the previously optimized Problem can be loaded. - -``` julia -function f_doubleMM_sites(θc::CA.ComponentMatrix, xPc::CA.ComponentMatrix) - # extract several covariates from xP - ST = typeof(CA.getdata(xPc)[1:1,:]) # workaround for non-type-stable Symbol-indexing - S1 = (CA.getdata(xPc[:S1,:])::ST) - S2 = (CA.getdata(xPc[:S2,:])::ST) - # - # extract the parameters as row-repeated vectors - n_obs = size(S1, 1) - VT = typeof(CA.getdata(θc)[:,1]) # workaround for non-type-stable Symbol-indexing - (r0, r1, K1, K2) = map((:r0, :r1, :K1, :K2)) do par - p1 = CA.getdata(θc[:, par]) ::VT - repeat(p1', n_obs) # matrix: same for each concentration row in S1 - end - # - # each variable is a matrix (n_obs x n_site) - r0 .+ r1 .* S1 ./ (K1 .+ S1) .* S2 ./ (K2 .+ S2) -end -``` +This tutorial uses the fitted object saved in the +[Basic workflow without GPU](@ref) tutorial. ``` julia fname = "intermediate/basic_cpu_results.jld2" @@ -77,7 +57,7 @@ They are ComponentArrays with the parameter dimension names that can be used: θsMs[1,:r1,:] # sample of r1 of the first site ``` -### Corner plots +## Corner plots The relation between different variables can be well inspected by scatterplot matrices, also called corner plots or pair plots. @@ -92,7 +72,7 @@ i_site = 1 plt = pairplot(θ1_nt) ``` -![](inspect_results_files/figure-commonmark/cell-9-output-1.png) +![](inspect_results_files/figure-commonmark/cell-8-output-1.png) The plot shows that parameters for the first site, *K*₁ and *r*₁, are correlated, but that we did not model correlation with the global parameter, *K*₂. @@ -101,7 +81,7 @@ Note that this plots shows only the first out of 800 sites. HVI estimated a 1602-dimensional posterior distribution including covariances among parameters. -### Expected values and marginal variances +## Expected values and marginal variances Lets look at how the estimated uncertainty of a site parameter changes with its expected value. @@ -115,7 +95,7 @@ scatter!(ax, θmean, θsd) fig ``` -![](inspect_results_files/figure-commonmark/cell-11-output-1.png) +![](inspect_results_files/figure-commonmark/cell-10-output-1.png) We see that *K*₁ across sites ranges from about 0.18 to 0.25, and that its estimated uncertainty is about 0.034, slightly decreasing with the @@ -157,7 +137,7 @@ scatter!(ax, ymean, ysd) fig ``` -![](inspect_results_files/figure-commonmark/cell-14-output-1.png) +![](inspect_results_files/figure-commonmark/cell-13-output-1.png) We see that observed values for associated substrate concentrations range about from 0.51 to 0.59 with an estimated standard deviation around 0.005 that decreases diff --git a/docs/src/tutorials/inspect_results.qmd b/docs/src/tutorials/inspect_results.qmd index 3c080c1..a60ae24 100644 --- a/docs/src/tutorials/inspect_results.qmd +++ b/docs/src/tutorials/inspect_results.qmd @@ -29,10 +29,8 @@ using CairoMakie using PairPlots # scatterplot matrices ``` -After redefinig the process-based model (currently JLD2 cannot save functions), -the previously optimized Problem can be loaded. - -{{< include _pbm_matrix.qmd >}} +This tutorial uses the fitted object saved at the end of the +[Basic workflow without GPU](@ref) tutorial. ```{julia} fname = "intermediate/basic_cpu_results.jld2" @@ -43,6 +41,8 @@ probo, interpreters = load(fname, "probo", "interpreters"); ```{julia} #| eval: false #| echo: false +# not necessary any more with DoubleMM.f_doubleMM_sites +# {{< include _pbm_matrix.qmd >}} # outside notebook, need to reset ModelApplicator, due to fθ defined in Notebook module #θFix = CA.ComponentVector{eltype(probo.θP)}(r0=0.3) θFix = CA.ComponentVector{eltype(probo.θP)}( diff --git a/docs/src/tutorials/intermediate/basic_cpu_results.jld2 b/docs/src/tutorials/intermediate/basic_cpu_results.jld2 index 94f8ebe35398231a280d0398b1288b17539bf06e..126fa0405551f5128f72f99216c4a4ed0a0c3336 100644 GIT binary patch delta 12425 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 diff --git a/src/DoubleMM/DoubleMM.jl b/src/DoubleMM/DoubleMM.jl index e0a3d4c..6b39306 100644 --- a/src/DoubleMM/DoubleMM.jl +++ b/src/DoubleMM/DoubleMM.jl @@ -14,7 +14,7 @@ using MLDataDevices import GPUArraysCore # used in conditional breakpoints import StableRNGs -export f_doubleMM, xP_S1, xP_S2 +export f_doubleMM, f_doubleMM_sites, xP_S1, xP_S2 include("f_doubleMM.jl") diff --git a/src/DoubleMM/f_doubleMM.jl b/src/DoubleMM/f_doubleMM.jl index 473fd4e..2d8afbb 100644 --- a/src/DoubleMM/f_doubleMM.jl +++ b/src/DoubleMM/f_doubleMM.jl @@ -21,6 +21,29 @@ int_xP1 = ComponentArrayInterpreter(CA.ComponentVector(S1 = xP_S1, S2 = xP_S2)) const int_θdoubleMM = ComponentArrayInterpreter(flatten1(CA.ComponentVector(; θP, θM))) +""" + f_doubleMM(θc::CA.ComponentVector{ET}, x) where ET + +Example process based model (PBM) predicts a double-monod constrained rate +for different substrate concentration vectors, `x.S1`, and `x.S2` for a single site. +θc is a ComponentVector with scalar parameters as components: `r0`, `r1`, `K1`, and `K2` + +It predicts a rate for each entry in concentrations: +`y = r0 .+ r1 .* x.S1 ./ (K1 .+ x.S1) .* x.S2 ./ (K2 .+ x.S2)`. + +It is defined as +```julia +function f_doubleMM(θc::ComponentVector{ET}, x) where ET + # extract parameters not depending on order, i.e whether they are in θP or θM + # r0 = θc[:r0] + (r0, r1, K1, K2) = map((:r0, :r1, :K1, :K2)) do par + getdata(θc[par])::ET + end + y = r0 .+ r1 .* x.S1 ./ (K1 .+ x.S1) .* x.S2 ./ (K2 .+ x.S2) + return (y) +end +``` +""" function f_doubleMM(θc::CA.ComponentVector{ET}, x) where ET # extract parameters not depending on order, i.e whether they are in θP or θM GPUArraysCore.allowscalar() do # index to scalar parameter in parameter vector @@ -40,13 +63,44 @@ function f_doubleMM(θc::CA.ComponentVector{ET}, x) where ET end end +""" + f_doubleMM_sites(θc::CA.ComponentMatrix, xPc::CA.ComponentMatrix) + +Example process based model (PBM) that predicts for a batch of sites. + +Arguments +- `θc`: parameters with one row per site and symbolic column index +- `xPc`: model drivers with one column per site, and symbolic row index + +Returns a matrix `(n_obs x n_site)` of predictions. + +```julia +function f_doubleMM_sites(θc::ComponentMatrix, xPc::ComponentMatrix) + # extract several covariates from xP + ST = typeof(getdata(xPc)[1:1,:]) # workaround for non-type-stable Symbol-indexing + S1 = (getdata(xPc[:S1,:])::ST) + S2 = (getdata(xPc[:S2,:])::ST) + # + # extract the parameters as vectors that are row-repeated into a matrix + n_obs = size(S1, 1) + VT = typeof(getdata(θc)[:,1]) # workaround for non-type-stable Symbol-indexing + (r0, r1, K1, K2) = map((:r0, :r1, :K1, :K2)) do par + p1 = getdata(θc[:, par]) ::VT + repeat(p1', n_obs) # matrix: same for each concentration row in S1 + end + # + # each variable is a matrix (n_obs x n_site) + r0 .+ r1 .* S1 ./ (K1 .+ S1) .* S2 ./ (K2 .+ S2) +end +``` +""" function f_doubleMM_sites(θc::CA.ComponentMatrix, xPc::CA.ComponentMatrix) # extract several covariates from xP ST = typeof(CA.getdata(xPc)[1:1,:]) # workaround for non-type-stable Symbol-indexing S1 = (CA.getdata(xPc[:S1,:])::ST) S2 = (CA.getdata(xPc[:S2,:])::ST) # - # extract the parameters as row-repeated vectors + # extract the parameters as vectors that are row-repeated into a matrix n_obs = size(S1, 1) VT = typeof(CA.getdata(θc)[:,1]) # workaround for non-type-stable Symbol-indexing (r0, r1, K1, K2) = map((:r0, :r1, :K1, :K2)) do par From 59fb78d9812147b5596a07d751ecbc6f9b22a1dc Mon Sep 17 00:00:00 2001 From: Thomas Wutzler Date: Wed, 20 Aug 2025 09:58:31 +0200 Subject: [PATCH 18/21] simplify ComponentArrayInterpreter by using Union type --- src/ComponentArrayInterpreter.jl | 68 ++++++++------------------ test/test_ComponentArrayInterpreter.jl | 32 ++++++------ 2 files changed, 37 insertions(+), 63 deletions(-) diff --git a/src/ComponentArrayInterpreter.jl b/src/ComponentArrayInterpreter.jl index 9977d79..960d5ee 100644 --- a/src/ComponentArrayInterpreter.jl +++ b/src/ComponentArrayInterpreter.jl @@ -154,21 +154,32 @@ function ComponentArrayInterpreter(vc::CA.AbstractComponentArray) ComponentArrayInterpreter(CA.getaxes(vc)) end +const CAorCAI = Union{CA.AbstractComponentArray, AbstractComponentArrayInterpreter} + # Attach axes to matrices and arrays of ComponentArrays # with ComponentArrays in the first dimensions (e.g. rownames of a matrix or array) -function ComponentArrayInterpreter( - ca::CA.AbstractComponentArray, n_dims::NTuple{N,<:Integer}) where {N} +function ComponentArrayInterpreter(ca::CAorCAI, n_dims::NTuple{N,<:Integer}) where {N} ComponentArrayInterpreter((), CA.getaxes(ca), n_dims) end +# with ComponentArrays in the last dimensions (e.g. columnnames of a matrix) +function ComponentArrayInterpreter(n_dims::NTuple{N,<:Integer}, ca::CAorCAI) where {N} + ComponentArrayInterpreter(n_dims, CA.getaxes(ca), ()) +end +# with ComponentArrays in the center dimensions (e.g. columnnames of a 3D-array) function ComponentArrayInterpreter( - cai::AbstractComponentArrayInterpreter, n_dims::NTuple{N,<:Integer}) where {N} - ComponentArrayInterpreter((), CA.getaxes(cai), n_dims) + n_dims::NTuple{N,<:Integer}, ca::CAorCAI, m_dims::NTuple{M,<:Integer}) where {N,M} + ComponentArrayInterpreter(n_dims, CA.getaxes(ca), m_dims) +end + +function ComponentArrayInterpreter( + n_dims::NTuple{N,<:Integer}, axes::NTuple{A,<:CA.AbstractAxis}, + m_dims::NTuple{M,<:Integer}) where {N,A,M} + axes_ext = ( + map(n_dim -> CA.Axis(i=1:n_dim), n_dims)..., + axes..., + map(n_dim -> CA.Axis(i=1:n_dim), m_dims)...) + ComponentArrayInterpreter(axes_ext) end -# function ComponentArrayInterpreter( -# axes::NTuple{M,<:CA.AbstractAxis}, n_dims::NTuple{N,<:Integer}) where {M,N} -# axes_ext = (axes..., map(n_dim -> CA.Axis(i=1:n_dim), n_dims)...) -# ComponentArrayInterpreter(axes_ext) -# end # support also for other AbstractComponentArrayInterpreter types # in a type-stable way by providing the Tuple of dimensions as a value type @@ -184,48 +195,11 @@ function stack_ca_int( IT.name.wrapper(CA.getaxes(cai), n_dims)::IT.name.wrapper end function StaticComponentArrayInterpreter( - axes::NTuple{M,<:CA.AbstractAxis}, n_dims::NTuple{N,<:Integer}) where {M,N} + axes::NTuple{A,<:CA.AbstractAxis}, n_dims::NTuple{N,<:Integer}) where {A,N} axes_ext = (axes..., map(n_dim -> CA.Axis(i=1:n_dim), n_dims)...) StaticComponentArrayInterpreter{axes_ext}() end -# with ComponentArrays in the last dimensions (e.g. columnnames of a matrix) -function ComponentArrayInterpreter( - n_dims::NTuple{N,<:Integer}, ca::CA.AbstractComponentArray) where {N} - ComponentArrayInterpreter(n_dims, CA.getaxes(ca), ()) -end -function ComponentArrayInterpreter( - n_dims::NTuple{N,<:Integer}, cai::AbstractComponentArrayInterpreter) where {N} - ComponentArrayInterpreter(n_dims, CA.getaxes(cai), ()) -end -# function ComponentArrayInterpreter( -# n_dims::NTuple{N,<:Integer}, axes::NTuple{M,<:CA.AbstractAxis}) where {N,M} -# axes_ext = (map(n_dim -> CA.Axis(i=1:n_dim), n_dims)..., axes...) -# ComponentArrayInterpreter(axes_ext) -# end - -# with ComponentArrays in the center dimensions (e.g. columnnames of a 3D-array) -function ComponentArrayInterpreter( - n_dims::NTuple{N,<:Integer}, ca::CA.AbstractComponentArray, - m_dims::NTuple{M,<:Integer}) where {N,M} - ComponentArrayInterpreter(n_dims, CA.getaxes(ca), m_dims) -end -function ComponentArrayInterpreter( - n_dims::NTuple{N,<:Integer}, cai::AbstractComponentArrayInterpreter, - m_dims::NTuple{M,<:Integer}) where {N,M} - ComponentArrayInterpreter(n_dims, CA.getaxes(cai), m_dims) -end - -function ComponentArrayInterpreter( - n_dims::NTuple{N,<:Integer}, axes::NTuple{A,<:CA.AbstractAxis}, - m_dims::NTuple{M,<:Integer}) where {N,A,M} - axes_ext = ( - map(n_dim -> CA.Axis(i=1:n_dim), n_dims)..., - axes..., - map(n_dim -> CA.Axis(i=1:n_dim), m_dims)...) - ComponentArrayInterpreter(axes_ext) -end - function stack_ca_int( ::Val{n_dims}, cai::IT) where {IT<:AbstractComponentArrayInterpreter,n_dims} diff --git a/test/test_ComponentArrayInterpreter.jl b/test/test_ComponentArrayInterpreter.jl index 1286bf5..bd9a765 100644 --- a/test/test_ComponentArrayInterpreter.jl +++ b/test/test_ComponentArrayInterpreter.jl @@ -80,9 +80,9 @@ end; end; @testset "ComponentArrayInterpreter matrix and array" begin - mv = ComponentArrayInterpreter(; c1=2, c2=3) - #mv = ComponentArrayInterpreter(CA.ComponentVector(c1=1:2, c2=1:3)) - cv = mv(1:length(mv)) + mvi = ComponentArrayInterpreter(; c1=2, c2=3) + #mvi = ComponentArrayInterpreter(CA.ComponentVector(c1=1:2, c2=1:3)) + cv = mvi(1:length(mvi)) n_col = 4 mm = ComponentArrayInterpreter(cv, (n_col,)) # 1-tuple testm = (m) -> begin @@ -94,7 +94,7 @@ end; testm(mm) mmc = get_concrete(mm) testm(mmc) - mmi = ComponentArrayInterpreter(mv, (n_col,)) # construct on interpreter itself + mmi = ComponentArrayInterpreter(mvi, (n_col,)) # construct on interpreter itself testm(mmi) # n_z = 3 @@ -106,7 +106,7 @@ end; end testm(mm) testm(get_concrete(mm)) - mmi = ComponentArrayInterpreter(mv, (n_col, n_z)) # construct on interpreter itself + mmi = ComponentArrayInterpreter(mvi, (n_col, n_z)) # construct on interpreter itself testm(mmi) # n_row = 3 @@ -118,17 +118,17 @@ end; end testm(mm) testm(get_concrete(mm)) - mm = ComponentArrayInterpreter((n_row,), mv) # construct on interpreter itself + mm = ComponentArrayInterpreter((n_row,), mvi) # construct on interpreter itself testm(mmi) end; @testset "stack_ca_int" begin - mv = get_concrete(ComponentArrayInterpreter(CA.ComponentVector(c1=1:2, c2=1:3))) - #mv = ComponentArrayInterpreter(CA.ComponentVector(c1=1:2, c2=1:3)) - cv = mv(1:length(mv)) + mvi = get_concrete(ComponentArrayInterpreter(CA.ComponentVector(c1=1:2, c2=1:3))) + #mvi = ComponentArrayInterpreter(CA.ComponentVector(c1=1:2, c2=1:3)) + cv = mvi(1:length(mvi)) n_col = 4 n_dims = (n_col,) - mm = @inferred CP.stack_ca_int(mv, Val((n_col,))) # 1-tuple + mm = @inferred CP.stack_ca_int(mvi, Val((n_col,))) # 1-tuple @inferred get_positions(mm) # sizes are inferred here testm = (m) -> begin @test length(mm) == length(cv) * n_col @@ -139,7 +139,7 @@ end; testm(mm) # n_z = 3 - mm = @inferred stack_ca_int(mv, Val((n_col, n_z))) + mm = @inferred stack_ca_int(mvi, Val((n_col, n_z))) testm = (m) -> begin @test mm isa AbstractComponentArrayInterpreter @test length(mm) == length(cv) * n_col * n_z @@ -149,23 +149,23 @@ end; testm(mm) # n_row = 3 - mm = @inferred stack_ca_int(Val((n_row,)), mv) + mm = @inferred stack_ca_int(Val((n_row,)), mvi) testm = (m) -> begin @test mm isa AbstractComponentArrayInterpreter - @test length(mm) == n_row * length(mv) + @test length(mm) == n_row * length(mvi) cm = mm(1:length(mm)) @test cm[2, :c1] == [2, 5] end testm(mm) # f_n_within = (n) -> begin - mm = @inferred stack_ca_int(Val((n,)), mv) + mm = @inferred stack_ca_int(Val((n,)), mvi) end @test_broken @inferred f_n_within(3) # inferred is only f_outer = () -> begin f_n_within_cols = (n) -> begin - mm = @inferred stack_ca_int(mv, Val((n,))) - mm = get_concrete(ComponentArrayInterpreter(mv, (3,))) # same effects + mm = @inferred stack_ca_int(mvi, Val((n,))) + mm = get_concrete(ComponentArrayInterpreter(mvi, (3,))) # same effects end # @inferred f_n_within_cols(3) # inferred is only Any res = f_n_within_cols(3) # inferred is only From e6e858837d00791d31d7dbc041def50813d5c228 Mon Sep 17 00:00:00 2001 From: Thomas Wutzler Date: Wed, 20 Aug 2025 10:01:28 +0200 Subject: [PATCH 19/21] remove test1.md from src because it causes problems in deploy --- docs/src/tutorials/test1.md | 77 --------------------- docs/{src/tutorials => src_stash}/test1.qmd | 0 2 files changed, 77 deletions(-) delete mode 100644 docs/src/tutorials/test1.md rename docs/{src/tutorials => src_stash}/test1.qmd (100%) diff --git a/docs/src/tutorials/test1.md b/docs/src/tutorials/test1.md deleted file mode 100644 index 79147ba..0000000 --- a/docs/src/tutorials/test1.md +++ /dev/null @@ -1,77 +0,0 @@ -# A julia engine notebook - - -``` julia -2 + 2 -``` - - 4 - -A code block with `#| echo: false`. - - Status `/Net/Groups/BGI/people/twutz/julia/dev/HybridVariationalInference/docs/src/tutorials/Project.toml` - [76274a88] Bijectors v0.15.9 - [38540f10] CommonSolve v0.2.4 - [b0b7db55] ComponentArrays v0.15.29 - [45214091] DistributionFits v0.3.9 - [a108c475] HybridVariationalInference v1.0.0-DEV `../..` - [f1d291b0] MLUtils v0.4.8 - [42dfb2eb] OptimizationOptimisers v0.3.9 - [91a5bcdd] Plots v1.40.18 - [de6bee2f] SimpleChains v0.4.7 - [860ef19b] StableRNGs v1.0.3 - [4c63d2b9] StatsFuns v1.5.0 - [e88e6eb3] Zygote v0.7.10 - -``` julia -run(`which julia`); -``` - - /Net/Groups/Services/HPC_22/apps/julia/julia-1.11.4/bin/julia - -## Equation - -inline: $\sqrt{\pi}$ inside text. - -display equation [Equation 1](#eq-general) with a number and a reference - -$$ -\begin{aligned} -\frac{n!}{k!(n - k)!} &= \binom{n}{k} -\\ -x^2 =& 3 -\end{aligned} - \qquad(1)$$ - -## Literature references - -See (Wutzler et al. 2020). - -## Plots - -single - -``` julia -plot(1:4) -``` - -![](test1_files/figure-commonmark/fig-limits-output-1.svg) - -## Not working with Documenter - -Julia code is not colored, output block-code - -Figures: The figure captions are not kept - -References: the number is correctly inserted, but the link does not work - -Admonitions: the four spaces before the contents are removed - -Columns are rendered to several paragraphs - -With gfm, references are formatted bad, and there are errors with unclosed divs -after Documenter processes it. - -## References - -Wutzler, Thomas, Oscar Perez-Priego, Kendalynn Morris, Tarek S. El-Madany, and Mirco Migliavacca. 2020. “Soil CO<$\mathsemicolon$sub>$\mathsemicolon$2<$\mathsemicolon$/Sub>$\mathsemicolon$ Efflux Errors Are Lognormally Distributed &Amp$\mathsemicolon$\#8211$\mathsemicolon$ Implications and Guidance.” *Geoscientific Instrumentation, Methods and Data Systems* 9 (1): 239–54. . diff --git a/docs/src/tutorials/test1.qmd b/docs/src_stash/test1.qmd similarity index 100% rename from docs/src/tutorials/test1.qmd rename to docs/src_stash/test1.qmd From 9d45f24880a46df50c222261c788ff668b1709cb Mon Sep 17 00:00:00 2001 From: Thomas Wutzler Date: Wed, 20 Aug 2025 10:10:51 +0200 Subject: [PATCH 20/21] fix worng ignoring quarto generated tutorial files --- .gitignore | 1 - .../figure-commonmark/cell-10-output-1.png | Bin 0 -> 98280 bytes .../figure-commonmark/cell-11-output-1.png | Bin 0 -> 98280 bytes .../figure-commonmark/cell-13-output-1.png | Bin 0 -> 81385 bytes .../figure-commonmark/cell-14-output-1.png | Bin 0 -> 81385 bytes .../figure-commonmark/cell-8-output-1.png | Bin 0 -> 92057 bytes .../figure-commonmark/cell-9-output-1.png | Bin 0 -> 92057 bytes .../fig-gapminder-output-1.svg | 42 + .../figure-commonmark/fig-limits-output-1.svg | 42 + ...p-0b8ec595872a4bdb2164ef456dcde0ad.min.css | 12 + .../libs/bootstrap/bootstrap-icons.css | 2078 +++++++++++++++++ .../libs/bootstrap/bootstrap-icons.woff | Bin 0 -> 176200 bytes .../libs/bootstrap/bootstrap.min.js | 7 + .../libs/clipboard/clipboard.min.js | 7 + .../libs/quarto-html/anchor.min.js | 9 + .../libs/quarto-html/popper.min.js | 6 + ...hting-ea385d0e468b0dd5ea5bf0780b1290d9.css | 236 ++ .../test1_files/libs/quarto-html/quarto.js | 845 +++++++ .../libs/quarto-html/tabsets/tabsets.js | 95 + .../test1_files/libs/quarto-html/tippy.css | 1 + .../libs/quarto-html/tippy.umd.min.js | 2 + 21 files changed, 3382 insertions(+), 1 deletion(-) create mode 100644 docs/src/tutorials/inspect_results_files/figure-commonmark/cell-10-output-1.png create mode 100644 docs/src/tutorials/inspect_results_files/figure-commonmark/cell-11-output-1.png create mode 100644 docs/src/tutorials/inspect_results_files/figure-commonmark/cell-13-output-1.png create mode 100644 docs/src/tutorials/inspect_results_files/figure-commonmark/cell-14-output-1.png create mode 100644 docs/src/tutorials/inspect_results_files/figure-commonmark/cell-8-output-1.png create mode 100644 docs/src/tutorials/inspect_results_files/figure-commonmark/cell-9-output-1.png create mode 100644 docs/src/tutorials/test1_files/figure-commonmark/fig-gapminder-output-1.svg create mode 100644 docs/src/tutorials/test1_files/figure-commonmark/fig-limits-output-1.svg create mode 100644 docs/src/tutorials/test1_files/libs/bootstrap/bootstrap-0b8ec595872a4bdb2164ef456dcde0ad.min.css create mode 100644 docs/src/tutorials/test1_files/libs/bootstrap/bootstrap-icons.css create mode 100644 docs/src/tutorials/test1_files/libs/bootstrap/bootstrap-icons.woff create mode 100644 docs/src/tutorials/test1_files/libs/bootstrap/bootstrap.min.js create mode 100644 docs/src/tutorials/test1_files/libs/clipboard/clipboard.min.js create mode 100644 docs/src/tutorials/test1_files/libs/quarto-html/anchor.min.js create mode 100644 docs/src/tutorials/test1_files/libs/quarto-html/popper.min.js create mode 100644 docs/src/tutorials/test1_files/libs/quarto-html/quarto-syntax-highlighting-ea385d0e468b0dd5ea5bf0780b1290d9.css create mode 100644 docs/src/tutorials/test1_files/libs/quarto-html/quarto.js create mode 100644 docs/src/tutorials/test1_files/libs/quarto-html/tabsets/tabsets.js create mode 100644 docs/src/tutorials/test1_files/libs/quarto-html/tippy.css create mode 100644 docs/src/tutorials/test1_files/libs/quarto-html/tippy.umd.min.js diff --git a/.gitignore b/.gitignore index 54510fd..ec6bf9a 100644 --- a/.gitignore +++ b/.gitignore @@ -10,7 +10,6 @@ tmp/ **/tmp.svg dev/intermediate/* dev/tmp.pdf -docs/src/**/*_files/ docs/src/**/*.html docs/src/**/*.ipynb docs/src/**/*Manifest.toml diff --git a/docs/src/tutorials/inspect_results_files/figure-commonmark/cell-10-output-1.png b/docs/src/tutorials/inspect_results_files/figure-commonmark/cell-10-output-1.png new file mode 100644 index 0000000000000000000000000000000000000000..32ef60be007c2c5f6eb9f23fd5761b8faaf06bdb GIT binary patch literal 98280 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 z%0A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 z%0A~4QWBGkWMHW75Ia*-{_yi)`eCqQCk!I5^`{4pjt7*?WOt>ZDu%_94w7(~Gq%7K zUoSG5*Sukrlxz6Xu{4u*M-<7KYUeDR$en@aRq&!GLXyO>i2niD(P!+1W(em9xeNeh6G_R%KWOx^+L#%iAl953S9)5Z^&F!fFMD{# z64DM+0IZYqk)jD$sVcjzKu!ERL9_N;jBSZ#Vl73k8brtwa(2si8eRiI{|`X|`uNQC zH)%Jm3&U||Bub_^=PW4H7bWL4JXZJHp;xF-r6~_d5J^XtDfOckKOkQ4c(ZUcqRm-*{2D;`axmWe1JCA#ibR){ZYxObmU02H_ZSXzO{V58+gxWc)RP7-j`MTXP2=4?)^1U&-e8HX-CSD=_{J zSPw5eKxCw9C;;-6r0kEc4bRg&pR$BBhm3_G$zQkFmzwWGJAK9MY9NWl%1r5h%0~?e z5I=}UEhxvF$(s9VVXxIavzjrJD-c}zl+bmB(yWNyi0-}W0b9Bj-V0VY%^ zJQDG3J(|y|8TICd`mZfbF7G!Qk|t{&XH8K!=_2W}5!Ef6>L9Yh%luc{;X1N~Zi z%5MW|P$WP*2L3=Aa=#%@dttk&=JH`4c|fsW&JQp^wU#NhFzj*D=l^rg5rY=cs2PXX z+NvgJzZ_uKPXwnM@LXm%6{1rbn$n5yt=37x`XoU0U*ntSDXSPj2$1@_v3Kk;a6@Y0 z8l4g2Z3y%zjt6;+hX49&_`G>x@^qv$3~>Kv(z&4AWhk%da(rvkT;u;=wE!4U$7KVq z2r}J0WVpDH-^RZkxB%676)!Oc*dL6&Hz@BTG4*+`m6AGX-aL?u^^To`@4X8REh`tL z|NKrnSlFS`&d?#-Sob@~6VCQXNI)8@(BLVJLWDVTLZHMQQpC3bqHXUtZrau$LV(p%NmFg{|M&zMG$c=-vpqr!MKnb)q3=!F?hIElxl|6zz2;vu`dBwoz89lX)uAn`AkL1^Q7y_pXMjzG`@{;a{L-c_bif!?&n=_RMqNo3g zDC0IRp#>3Li%NG)tQca*?#!kj&Y=#QRp>e1c952QHpK7XVfPV4>I%>kHnnU%LPGU+ zAV+~g<9+jY0Z^R)MH49}H;Ya`Gb*Cv1jTDXH3p#YU18yc`K;to5m7r%q=Ew~pV%No z&)f9P&_O=bha1uyn3Md`V1kfT1&>JcaF9SYXV(-`Z}_s%F{jn(IxpV4@bc|tmP619 zkO*3yqt?x~azV7pcTM_~mV@(fv zDyW^?E}4UD63{^irg1{k+CJR)v0im0g%zKwRY(o2-Y}e9dpp5hDvac~x(7&petJ-4 z@QZ#mulKLYPWK1m8&{X^1kXU;-QLLj88*}|H`Goq>6MH?Dhtu7!&2r~8JhLZb_^Y* zuCToVrOg?NAlK=wl0cFL69@YL!@!75IPb32>09~{0lYl{2t_y4ZlYV?{V2<&*y`V zE3I7xQdr_f&RkBMsV3Ab*-Z}`7<_{y%7LUsbu{p{!jxPhT2L20-;74;nxogH4j>nX zpq&XoTD(A)aFKfE?_ei9cu+aj0D&u$Tb+>f4N}JnYLomcs}_I?AP;wC**1PdB|kgI z77HSC2=Z;8VTMTICHlN_sabHaB-$nhBtC+rJE{3du>e=`9jNI7V)zF9bVC1gS2`=! zf$+vpx16(o8_e%eV9u}hZDHDUR@`v?jb4>9Ob6vsGa^ub%aY%*1oegsisd*Isq?U9 z(94yG4gy#0F7&l2fcuGjR~$kjG}Q?i0iY+aF)&Fs_$;a zH~k>sdi6`EWnir77TCxG*ivIiE`prTm-lYsI2#YDX@1CPOB%4Ll8ak_Pn$5XGUSFBCNL9jN6XipBl`$txLr(A9=^(2%-lg*>E? z1{92eaPaut>e5^gsT+Dl??A1oCO2Cs)L-)|v&%oPv@-QTVmM?c`5-%qBzze_23o>I zUG_-~0#E-PU70jv|j zf+>pp(vybiR(ta1agoBp1Mo&Oryp~`s$I#M+dH#yADDXp&SE`hM)ko55N^9Glz^Mf?5#5yBob7w%@8k z{yHcDxdF`Ib?K;M17lU;qBGh(x|U;b3Q2>uuznYAPxC{LN8d<|on3pp2{IP}Si4CK zaBQ4T+g%@^JIE6JPoa4ZplkeaESNcb+1)8Qx0VWORB!aXnjHa1$n6y!!oBlepXf%1t?9ygWv9g^&G zS-eC7C45*Qn{tD)Zj|g{!Pms3y#N3$4tBgfL*dOoAokED!)MeHzf4yQQ$O3 zuRG`%2MY_C-UOhu2^9=f=+}y-V?Gi8L<(g3wsv{@2OHm83nvJ1dx412^A4yDuoT;( z$-_68aFx|i>V=dQzz|zrt!Nx~c<>TVDmTC*{olZJrJ-K157JKoImP;wtHo}vW%=k1 z1M<%#u!il@0pZyKT|~qM$odPrSB3Tar9;n}+MOdTKV>g^VH%Y%A5NUUJWKRQ;N*-FHU$;x?cTW4w3|YzTA1v6`#|b~jx)jlYCHWt zH{C0-EcI1;I24lg3Xrt`nnqb?>b$mhriAQ3Bv>>Oil2B>Kq?Q7s2;R%HW2pI6_ z$mttbDzMzuMg&R`o5GFfLMyA~b zx-L#XhK(+P*yg08?m?dLsi_0vD^ej)^rf9r;?y18PTG@$j%fDNtR=E1mTJsCWWt+kOIgqI=7d zwDqva5Q?cgg14zTrDSDm3roLRq;(^B2da#2d|+4C{1$2^-hv2u6M|4SMep;%%Kw@c z=>5@`39o}BC=T16$rjLr;1cHQ;17@V0Mp$bG%VX0`Fot(l_#2aufoy#9^#jk{eQ@K zK+W1}zLk-_4K6d1rAcA%g99gnl`qsX?ZFoewH6!@PV)1+#h^e*&iF5%RUgxR#(l)k^?rTiit|rByN}!Di3n@mAB(t4e$E^=hmsESspC2# zw4x-GOFqD(ILM$Ya?;kt=lUyoK5BjN%ps|R=M@Y;5u5bOv*osua~*c`jSL=gR0o6b7K+NLgv@i~3Br%xYRkXx)71rnI9#qVmc4{qzr6LZHt8Qhzbg)dEn{>fc?&eTYAU#q2EcPE>J2HuJ-3G|KWS^B#Bd&k_=*`xQSR+v>tO7^c;QBsf3i=XF?dJqLwt2-81 zNHX>usuSl>uq^6#*1bFq4nljdXpUL7&J){AQRvz$>Mre{!H#iD+!hiQb{}GFC3B9} zf8oh!v%EP@z))p8*<`#(xcf5kG0R&2w0zIbS{eI2rIj5AyM+y13&%|TD;EN;;jj?7 z(Nf!+n|m$ghx5ZVkTYInE_lqzSl~RPs8NMdRy~ewv3u>&o?R&_O=7nNIPR!Aa-WhlKUo^!5`%b#uAvJA>m2UZG=L#-bftS;F` zsEOyUKJ;EVK{TQ7q}GYON1u~jcXV^%J6`;)8tbfraqeHIs|62U`*JGvZQJK#tN*Kf zrQz)7yfct?&2-o9Z9{~@uw>@TMDm(v(#|OX9^`dDzrCO^U+ru9qHTA-_@k-UrU)?y6Rtx{|7KM%1F2#G2$Z5ouF^4dS-s{s}d6w;s)jx35gEt4` z9xfgOvLz7fd$hqLU{xC&q&Di_sjAF7xfr+aj zzPDNjMlm%6;x|mX__(c_hS1`VJImM&@c)>M4~F}AQJc)J2CMDSgu1fx!b}a>?Y;14 z*CxrLNrpe;$VnelpL3Pm5ibtp`Kaa}U8_86)jalVtk-9(M92EUKjx(`&O%u1qA9vl z?;~!TEOwq+$toyd$QrGEhQoVG1aw>`;&j#NQZ4_8u|VvN}N+-StEY)9ow>$ zvWFu7itR--w9c0}TEm?uNH-kczIZ@AcC3&HX0Tdj&za4K&sGBQ zVl^(dKw1~y`{#av*w0SU?uGcKf5$wHfz`3cu%%tpWIj~)xjH-LxVmm)-1ZJ_A@8f* zLb#HCk`jl&B!joMyv5_)9ofj^Szw}kF0hJyZN1^X=?mD`SH9`r0I#@!SiGfl;&L^8j)%w)Vq)(w{lEOZNNWGkm;_J-Em_ znx3V6;GWY^i1ZcbeA5|VraEA(qpBg?HAOrWA+CRo_oLbiIHf10`(io9N1V0KYFCIC zdSoNf3%H7{2t9l=z)J1&U#%6Fzl)zAJh*Gw*4~H}<;bt7{CknrO+k_1y9K?EdYY7W^-0V&7%- z|8$tCo}T$(tjCSTlfzRGYLYp(GXrm-C?zGya}YawgBw1LQ~Obmsh##y$G|$31?=T0 zj|0YN-~WQ=!mPKWxBIBhV~!av-mra?bRvG8kOKEb7`CkC@8cRa_a4R;4I^1_=-@rI z*$U0DX^VoKxDNzwrJxzPFy&7V1WqMssg~?Hq{P>g)ca){j|dbpuz1+Tkgf7^*c9pO z4c||<$6AtkyQ_{?CUR1Ry|O97piQu}f2Vo68>cu&6mR6ShPr54qkl^F{U@T}yz=}H z9p*dHSWoe%)24Nh+sol1bh7*-@lJTuYwR6!`PYC%vZa5)nkB?{n#Z^noByTk^p6gx zp8eTYB3J**F7^ejxZL5*V~u|s!87%pu$;@!5*`jW!d$ZTWE$~j5y`g#- z{$NCXTHO3`9&I0qbkti^YyI)Bn~s0h3q?~tl>3!0rai^cWTvAX93Ub<2_KvJGuIF( z*T*3y_9dXyB-+)6gCwP+rJ&4RYK7Qaxo`U=7+K-s`QdpDUn(AF>F(R7N*pU8G>A*G zR>W($c!l!}Rc^UwIb651a)Qk?w$FfS_6rB5HdB+772D2nA7dAn(3nr#4+GDPdLG|C zgQhXW`AUgV^<#6 zV$7y%vm%KDK3M1AIavh}7A?O(+Yv}*PWIeAg3Z~Pu4L%v+@-v?2UjT$b? z&@WtU;gr#0nBADQIDW|f&%2O|=}TNcJtKtoZN*+}b1;z~+MAZGd)kRD26Oei+320( zqSWV+V5|Oo1WS3%5!O~@r5md6SpD+x0thzO5@en0{5(Z z<`}^Fk41k6V(|BS5r`eq5#KSaW5yimAMCzboT4V`>T+@mGrOsvOd9RbdM@k;EE<+O zrmpu#TGH`R`%8gyZSjH^LT}^28c5>@2;dGaGd@cSdQ3Wn#!N{I_6A)Cj8)bg@t!91 zRG^sK<0WtVXq>$Ian<7-D?<3D)6bP>>iztKK^v>w){3RUrdzTQ&*wa{Pyr{{+2~FM z`D~dhtPQTRTXNe$zPtU&zWh zY)VonN8>-W5B7%14}>?N*9k;)r?7sQkl{^JQX~o@d5F?liKKk^R_qN>gxKMG-`_9 zyQh1y((1tdwiqt{;_q8D7k?fvYZJZ~Yu>W8BGL8~jH`&!4lSj1E}1E(|2}9(nIHVb zffoEnrWyGCP3>5*@F{;LAH3famfbNtbF&8G?oOOT5YnCr#N)hu38vm+0hSrOMf~IF z`-ju$^%C?8;_+y|FYZg`GLH;dKWyf@XI>8(O&!rucjPOcol*LkbElg-qB$HoBnih8>RkLNHkCG z`vY(4sI*C)rfb#ujXk#-4DTC(=S_5VyseI7g zua^NZsNgd`rlxYWcjcw@o&GaEz#Rog2mkji>Y#UV4}VUFu*P32ScE`wQdjR+M1S27 zLTUlEpkJcVA!Uj2ZWz=~Q$Z*Um=AG3{D25ZnfTC!2b270E$7rqP^s^F2YVK-DnEe!$$(+SEpK6(f? zFk+jM`dRpAhfHVs4y)AZ`s05r1aQgZ>%W2*Q<8C-@DUsE2n;%2tf|~%gwTZcw~v+f z`$J$MBF)R+=mh}s7|pBO^1}}EWTRufGj5yqsCeIK+%&c#bM^G|_oth#&fDmmZ!r#M zlp%=CXAsrW(dD;w$OL(1|N2EJO#_fQZoPzq1J-_(Hw^|9fL9VrNzzh4eEFa6k&1V# z?YT!=!=uvTIu{fDig=2WH^Z{dtGFAq#cms2wS$@{O#IyK(n5w_Gv&5KF!(G^ zSWYL@HSTH1>Lqcs0KAWtVEQ_n~ zWzr_=HN5=%EP1Pz2+7*3HfFFA=2`tDSzC&tUQF4^PrZCkBro3@JCt%Wk*ul-L3945 zYd_cPbSEsclN<5*^E@-_H%&G=!y(sl898Q7h-wG!jWG=7TryHGq);N}pdf_j~U~us3SYhybQqi_;ad zHBq;F>$4&Sez?hpK2EE~KPE_(h|v*qc3^}{x#7A$|B&YF&tn?gi;aB#-a-Qrjr70h zqNsBJ6xRy>4Cl|!&3P6Vv)79n8q%DfpBtB|o6<8g(?IjHhK464>P(#BU%$SRllxF! z&J9MeNgD1<&0fzJ+R@_SXxS-2V}GaV_fz<^YQ?pr9F=@F*CT683ZdZ9qn&xRI#=Gn zWSvf=72?gVXJCus$3W@po^CuyfIpN+?w?6dGbUiy5e(>M{HVMhg@iGgfB^(hE zk-?icvukTVp-)(&HySR|0dQ(+ss_5Pu8$V`1qa`b;V@}}hMm!TZ|N^imxbZb^&K5o zjm#Tlqyd)%CyV{71&2~(Lm|tE`E^x`!?as_Uy3;N<@NUSV}HA*D0IAln=TzICQZU^ z+0xkfVYJvNg$}*h_fCq#)>N)qu`e`a`SQB@9V>K?baiuMjb%5&^f>O+ejzK{K0Y2B zCVUnK|dKd1YOW@X4-Y{4qtre%8D^P14GA;AKx^}EmiIR422+V@e%}IMl!#~MpmPH zWB9Xj9kaQ>XP-s`JpgWE5(J!>SFVtEONcyG6y;8#B&t5Y{|D0m`jm{bug6Y(!Im}h z&a_foi#8knKD)Xaz{$eGBKh*=qeqV#TU&3!i?5pp25`-^w6qM2jPwnytincPIL#bS zciOXZa~GyB&bi^b;QMu#;LSd@wSvsd%J;*+zfYh=J1=a6^uW9EAVRwL#fX?gD#J)KwyK|g(dP^v4Uek zJU2XBIjH#hwY0mtkXXtmU&c0Ey^|B&PvLLFef9pfQVo&)Xc;^BESYdJ-0RB2@l{)o zBl-vZ_qIv7AW(M_^OBQ2`}^hLJmcI^v9V$O{{8y|dbl&RYu`-A_lKj;*$MfOudNlf_NR}1~*C;`SWPEkJ*@m!x>nB zxUh`=cr+hL?Ck7crlm(GCsdYUUF>g0Y-#fEYHMqok2>%2DF_Qc zRhGLMDApV$(|vTG5}iMFn!Ee)1uW@}4Unw*^6(a}+-yRQ$2T}jD=PEkozNy)o{C`8OFJ3BM` zXS}i2E)o5{Snk8bsz!(9UBdpKk!_Y+KCWf)9ZBiKb^M(Rn@k0U9K>=;cuGn*Z>ft5 zJpX!BG%R}B@^RQTx3}VGT#MmJ%BJUh-Nj!o< ziBFZ3F27o&IgJjzTrw?T^;gn$L+BBk0rn9EotXPe%~Z@+hw@0^gr-$h5%cr&cgZU# zRQ{cEk-O*P?R_JHMY{*=%um$B_(CKK_FPhT~AN=(acmYQ3x;Rd= zAsuBoxyDSnlqhg?J3BkKiP&zy_9r+k5hb`Cs&QG2wG`^Nk3gd`LoC64Z1AYf-Q9O! zFS*P|8o)ulc=4iPy@NK<;Bb9(f9*GhgM-6TPkbjh7@K$R#87RP(GU7LtDaxc&z3$&8f4WS( zq?FWc=&5WzUKV259iw~LMq&jn?+cA|a%!qKCK+FW+rM{BO-+x%Lz5mK9}66g=zk3l zXSH2;G3B}^4Ux1=bSH21UWX5$PU&5MC}5vP-HxoMMFA!ErTEYSGlj*Qc%(&42u}%9yh~mF z)zTLV0vm8Q>~fW;^3cIOr@_H~jdm-%_1P9*alW0IvBXDt{d>Yv?{9(Hbk^*KJ=dEG z#HA_yg*E{qzVWM--^Z%D>2!ZB46^Yft^%O`#Qk-4K3^~M$=QJqgvpqb@6v! zf?~w`P)X!u4d4z{OQJNuLT~Ilf%UP}pfAa5#BkfBI^l|YXEGpg8wk!IB?4pM=e3Uj zxR96LA}AE0K77c<0|tZYrwmo9 z3kvUwFPB$3C%ZFtXfHJ3fD_btb8(`cCIr`R-gpXv_@*NA5hB;E(+WImis+l%G(m16 z_Vgg@Nlu@W6zrhQXMMyK)wT|_8mtj$PFg?;*)vsy!ceXi0)Ny$-(impeWSmWR=f;y zT4jE`@IgEpZdsIZ&Cl%H!RlYccC-FORq|xk@KXiuyuOap^bEP7%=RTWw?OIkqQW0c zd2^o*P*zWK`5Vb)2941A&QITH@F8s9SLCE$wKmE%a6w_XkPdw9Vtpt!$@)_aZl-5Z zmp67WvV=Q2sHpsArh16o@mblzkIB9x zR+ce6Q`jSo(j3Sb3>f?xze`@znjc?*y~sUoNd}YI*#mjU~GrV62D07!a5cz>AWSykk=+J}4~v_jcMh&ED#2b~?J@0oI0)znf-$0AUsv7g2T7k=-8D z2M8Vy!rGr-Twj$}P3DaKGV3{rqlD=^kG-fe;jx`pc;1;3$c-3ZQ51cSE6y*{Jo}9v zRX6B=e|%u8$q*6&_mYfxxq?7N{Sa!6?8)>0$0?Ls27z&|bwPo&O8&)1Kla`OvyNY7 z?h|O2Z`ir01ZP`a-D|fb_6SFaFJTkUGe7A1vq4`5A3P*uH_=bu#fHH^Sm-P~P9Bzq zB-HpXkN2q`r>wIB+B+{t4mZeas5UvDF%3Y|_2C4pUo^SAI@}-ICUa>3 z7rGsPi6HsYpbk-aYyIa8$Sv^q=s$A`AJ*5z@PD|x;q&I!Q#SL;kJ>U84B5YmX*Sp* zcRK?tm)e@iuD`;&lWbF+<3n4vZ#>%(j|j%z*cX&d?Kd^3-0TO_L3(Oo9PNhK$f&$o z{UbEXA&H(?WS+Amk3wO~v~gFEpa2Pm7}uLBaW7B9oN(6)nIuRY{dSUt#;bYr(Lzas z=_+OMv$juphu#@26f!e?L5_UL_&>CbsD8nyW|bh&UXx`r2>_7Y_|ICP0NDlc#c(k! zk_WOqs1yX`fAGC?yd*97obqmHglaR0O%Pp1Ja+C)j{g|^MFmf$zySYOVFk$4jDWo7 zj~#+AG*n8lbm-{l)(#Hh z0P=`KpfeiVdqFwVU!y-;i2-=f zkKW#lq>*wf3K$iFY6A#LiB#A2TD@l``>R4Ic}HM)JOvG3Ebc zz5i{^IUJ#PyHbwwr-%qKM@OD7w6bl@&0gAjJM9#>TD1icpFcN2H))_7sU8>S z0^1GOjX8)#nlpy~sFj-HnV6U$?9OS|KtMp?=pnGkT=mjGSPpC=qK>bR6t;JFo94D> zn_W*VzX#PQ5@1Au$pB4Y zP*6Zf$eYunoy=@W>8z|QR~SlgdXVoS${|Fb+(;q_JOGOV`ed`3Pt`;p{24B`nih(S zi#vJKFDJ&|UmSFfJHPJ$Jrs^n|c zoUG-nkC%sqGpOjjl$XB?;7<=4zn7Sger^pSDAsMhRc0~nn@p#=u)NF;HwZ8pC*(_@ z@vl%)UgRJE{k_k_69wcQ7Y7IFGcF+|m71QMOm*^it9Q29FYEjF^mMquoe}-8Li16! zF0ds>*nOwHZf@Wkeb!{Ww%(vqeE#(5skQZEnAt)@MdgXS5Eb=88o_+9?s~9rQG$D2 z?Di|aK7eeJ=z~G93x|Gt#tW+m#zu5qyLL^r!kRK5Ai&>u1K7IxM8zkNC_KHqq6J;J z5Qqyew6utrI&YK?BU59X&X1Q_5m?*U*tkAc8U&rrwOlqhwcL;2BzT-Vb-|5@!{t=J z+n{1*#_Y4sQ!BnDD)&N0rmd$Z6dD%y7wU^^Ij=tS^z_VJEgjaHhfcFg$IFTB@I^K^ zP*94^hMA##cLB0RfywuYS@8P4S&SC>fD(dDN*WvunD+049TpIyhpeohV!$_nk+iHQ zxNIiTfaY`i)^&Wb6dZAJ7s^9>Cz^-yG?101QBop;vZcp zhOuMfuC4<3?(Xg@_Iz+P1*+f_B3ZNz;Q+htcF_8_Nr-Y7!v{f&a$N-AZ;Y4g2Px;I zfhk0dj*lx0zz`8&O!t8+gMHN<&0&DsgyZM$%f!GC^zGaITo8E*ftHx7m6;O_9d1qc zf~Qt3wYuav@}qbtG{@2Ds%<3D}+R22gqT@Q?BF!i^o1Uz&% zw!7Gwm6`cXHc<#<9q=jzWv<7zpct$SWMC!hcK-aSceFi=yo(CHIR+FzP+?RxK)b`k z!vlVWQVcz3cjkgvcAK$;KgPuc8`mg`cquC?ddp-q#{>mo0AV`Cx#e|LNeOY5si`+a z<*-AZ%gN#J#bcU*E&~Q-#~vOY&iK0OE7FjkHo?&oIB-v*a9A|*5i%Ln!on1N1@Lt+ zfumq)ZtfY#E!=h+W1L#9JEBAR+OlA;SFc`$Nh}-0Naud=IJ98;@84e$Y5wmQGSLNE zkK;}&0pda6?r+?<@k&Xl6^85}VxO+Au78^}Yz*j1nibYp&0vikU0n8DRu7y(Q~8;# zlyk{q2eTAP%!Wh3!2&4+Z6h+0fPh)ELH+5|s~`=Yem?v6ckc&v*v#Bq6YSc`csYw9 zd}0*bfUYhF@grvDw()V2z5>`Oo7twDxp?>P!Gql0EXeebfecxrhWA%V1)abC`t>R| z?{#$q99wpshAW}uf|AC@bjh=OySvGmnW)Ic*>6rnYZtxSP)CmU`>WS^ocHOHl9HmB zv}!=+d9JET2u|L>z~Gg-x}>Qoy_}pJq6-pZff3#W+XN?>8_(|$3dhMkAA+1bj4^>v zDKP$>jR)(wK3N@EQ1Do!8IP2-3%p;!yUht+F!X{&=r(?vl;W_HI%<=c3`m7G=MK!9nPm10wJ)YyBqukPVwBF9t1UT00!ML zoXBD9bIkO=#Y9Q@L9N)(W_#u--@Ek}(8<4}qa#(0@BqTH;1q%cu z+Z_B6tA3l#yOm#*(2GAHFz^|NIT{)oOxy{Ac>suuv$eC6kdZM24KxZ5AOCYgf(*>< z2@MUcIo<7?@VGdWN)#f~*sQ;B2X`d??AbL#@D3>;Q-Y_WCN6{146;INqZi8RNFjA) zWhHo~V(8G@1ruZ>WMygT>CvHeFU)pQEiyoZHAqSS`BM_YTst&+Ux7PLwyC^0{};{g zz?@%y&Ic+XSP|%7%>}y6k2|}%9)K2qxG}Dvrq=O){|wO}{6gbCDn>*%2Z+|1^xO|S zBn%=Jf{IR$_lVdGP(jB@1wE?X!{Zhfc`*1RB34#bBqSr#F=9cOF>DRQlZxR80JE7} zS@{89g9t-peD+T`%)4W`jm}SxK?w2&hY11}BDEj`6wLo_PTnTt`o0tO?+*_H|bPwDv&K+$~jiO<6(sSS2ltMxYgM*4l z^n}yKI$rC-4Zd*^ES2!~En8dLC>VpKkS^5-9_ub8CFR1x!ec;N=~B_2rKzb8kQVyJ z6=EU8qVVg zMeGO7-UDEK$;XI@Hb7JUK|z3Ax~d$udXOtXLrcoe4g>?%L$VceO5y+YBhH;zki50s zk00{CTc3fg1}NqQTc^(o=>|}c1Jt08Jio(cO9WW8`~cttfQ6zQGW77=Qa}JQGz4+; zAjh^wfR8gb=}W#DCUioVY!mpuep^#hgLpN3_>;w9&|CriV%;ash>9YFQ5%^ZzzJX) zl3x12D)Lv{1LaoQBJ*#IjM`x*3m-Bv27_1Wf_*@KTd(xw$rW%mNJPBE{Qpb3`5)N8 z|G>TfgWmncXdy(w_CqS?xvec5f;_=wRmUssXszncxZrf9xcuEz)vU4)fN2Ui1O$H2 zEmyD|hQxTnf$4C#xH9KW@bZ_OH#Yi~9u)ssGiS4jZ zst`-dkYo~A(IxN#IhAqB?eA-ZBOw;YV?#AWBNO*xxhEb;d_l~Fl8!v2$jRm<{2p-= zuy3>7+|#LWAS&&a?~;@Eu=ffy!z3fb$`d`#c@GZ{qw=(BV}`X{LiUz>ae;?G;D^|P zWeDgO;RJ}*_?XZ?G;|39c`CpxMJ1)aECpKSe64PXc)a#2*g*M!i}Zm*?80YKZ-E?M z;bJ?5$HHdymLYh8t^`36vxJ0%miBf9Rn-^LmX?l|feCcQa)&J} z7Xwtuw33p}8rjz%A>)lAe$B*SWa}U7Xs%7YATJo48Dt zmd+v5IJ&z-pu~~YVN(;IS<@f-s)G{~5f`^RJ9*m`!Kl_0$7=_#wy$SpBv1hy1gr5M z*7k@8|8N%{Uks+ruvUY}kC5IWpjl605||+_jg-!6e_GV*N?RWg++piNOChXn*8Q_2 zciWdkyf@-nM~i9e#UbH=jG6=CA{_J!e+?wN1>nOFB2ko+i;Mp3%8Gw$mO{pluC9fg z{JN&OCLat(CnsHe0)qB6=)@0vi}&r?Js^2))6*0%tfsW7siOle2zvX+#mAcroI0UIs z&rv`Szl=Eq&X49HDk6vgz&vj*i0$Tu#l>_x*>w|I_*Aq8Nv88V_P^aAg&2lQPvq{I zj=@k-$c9q<@2(CRac34Lct|)zMMdQZgG34+!WSU)*y3b=RrT`M04PO7MRi&2mZUbT z{xCxf_w(|){<_K@VQGVqa76}IW|}}m9kf5*eFJNOq?Z0qHz~KXy{!Ycia-N_la-V~ zUs&g`n;7_zeEF|S;^0FdF<8!E1b`S;y%tmuW4RDT(byi&ERqDxWI`knD8TvuMaKPa gLeT$*h;)JSUQNX^%MY*b3j9w(R7T|cGab+W18WYl={I=kpC3p_ z9$ZLBKVKsuiKHVT5j$tMXo!I~(46HB+>ns4dZEX?R8}l<@O>l&>F3(8d;48zep8`2 z$7@G7JCeK^ix&!x^8YxSpf%lRk$ILFrRz|&9(smU^xo0#jd)9K!*o?~K?+e-Re^qG z#G?Yj`ypDWf+09hpB=hc@noDXd9RGOiHeFomB&N56p#OT%ZW-If+K}GA)^ibp$_>W z#RC1ok#eUdynBbbB_ZnW9h_J4GI#Gpa1_zpeOQ`U6Zh`J1?Xk}zD(%<X z^L62sm27v{=I|mUB>Z)-kQV;rZTgX-jC*-f65f~L;mD{cDde>Cb5Ai0lm}AC=ymhT z^75#LRYcT5feQ!y7CgAPxPdrSzUTX0_5!EJJ=mwO$|6)#lapVls$!uNb4Vkny?aMw z#6dhUF@cK9R$fsN85h_8n(L`FmvggGwuFDC<5CNC$Ut`}db9rjm#v`rCmvh-bo*TK z`@U+wNBquOqQQ@b$9MZotR#afsnnFcdP~@f_-$jt-#0)8`+G=zxA{hFgw!`;r@PcQ zRczutxxDPZR3fFJch=2HQP+BQUA3ld=@Y(KvHEM#+#MU7ghlG|D+}2Pez&l`d3RdD z#8*~s3h2-yqKj!l@+6gyhGU)VyM8*aot^IaBoLC{8A5NLCT{mQ{1CC96~NBwnfGD( z=j!hp@%E*zzIN%`%4PQ|BU&hgEc_5#Y(fs7F@KXOlO}+>fMeb0W zovQ{P+1;TBB}T#RGaOVqE`Afm&14~LZ0qV?pWV}zF+H54_^(e?i5m@1`0(BuFKBly z)(GFN9+{TVW!|<%1huGmDG;((=}(%tX;q2y++gzrO3+OVF4 z?e>`eor|7c>n;qirR!`hL%Li0>tY%Xy9;7Vo@Ot+1vLSD{Bm=c6^5Zq@c+DOd&(fr z2ZE5N(B)i&)&I)}TyoEK8)~b|Q!DjpLrJ;sCgw-XB9$E;zRYPkw7mgS+0PgZzrd2I z)`6}T0>@!_K4QUR+F%$NAHU)SJl<+;%f;x|RBYlF@zLQ)OD-zjsSAM7=odW-3j8|Jo%WB-Bt>|EJH) z^ygHW*q>jMBRQgJ{B|>3{=eO$qN13XnBLdcCNXP$_+&AJ=h*qj6I`n6mDf_=C1PWD zvIIMth}~@RgGx$T8a^RmU;UfObbdP`R^7@~TU^2d+60?Itbfg{7%$`<`^)~tW;X>j zwE^?B?oj1)uD}l;7zzpt5e=?eiXgI_ZjZjuAo!q~^Cg|zT))Fl7`ph@msAoAl1 z@B${~9FbIR^ZrkMSFX@9zZENyiu>?+EqM@Ac`dp;!U}&7D;qpeYdM?_7Pz~+3u7~a zC!paoe4Uz-c6aB~3vLbf+}JwXs&5oM{>DOP6+3w6;p5DLouG!l^*Q6ruOi=}^I{NzZZ{9FdU0)no|M;5E6cwarYD!&PTnr;1CgwHm zM#iEP>7A*1xjR!u4oxbm;Op|Ts<*drXlN*mkch~vZk~yi)qF64+6dEiqx*6{kS5pI z?H~W?DvQ35lheHuk{tYK$V7WXHPLvcr>9}P{r&63vwLXR*d^uVj|0F<&?~GQ9C794 zEMia`jg9To1BR-jqXWwpb_-LJxC-fuCe~6{|2&o>x;tOTXgB+@xTS?Ger`^`?U#@E z+S;17j?UUqAF;_Mc=XP$b_MS)G;yY;rW%cX(}CI9qWm3IwX~#9<4qn48Q$u)-~nD; zT2awsFHktUhf6~OH{t*T<91gR7l#fG%5#J%CTQpoVu$wxa)L(z)1{UUVa0URzn;KK z%cG`k`_g*Wo@o$>jaczgQ&Urj!4kfHRVO1ShYZN64S@m-sHbPmd3AWr`90I)TPoju zZYtR7J-_x}-;`_`3^ld1aJ#@ZKTI2z0mlduP?fF{_zz0(J&=IF9BKLa38}?sXlUU2 zEYBI3nbBl4z>H}*IkBstBW0b{s2Omw&8@8(&jZK= z5FjpBzHEv!sI%gB|Dk?za-!er$zE1g27`9tVkIEYI?w-|b*^{Va=Y&-u645U8Za2ve}lkyW+lB;q{z}iP1#g^g4ees=%J%J`E0rRV_PNE(|d!?!?k_ zFa87hzDRf!oMk?TqrbB;BWWWR#y;NnDEx_)p=w498YkQ@pwMpu#M)0_FM5X;xwsJ zW2K`a)N{S2_2JUVZ;Zl0V>lmYPv*t{%uTMYYuBZAEfox^VcY?o93?O?L2TIc1>woe zxniT9Kq7(TYDWQvChZHj_Penk<3+_U0i@Z;pJZwCQF^l8^UIw`rqI;hkphbSKSWs8 z%Zpja4oTmQiT8X%L+PnA6S~IW!|22-oA%=^j*>f&C`HRNl+#zVKmy#)@E#kHUGrs+addfMdoMN# z|K|L|{q2~c=g=4RhzO}UYCZ^vj{CbH2S{FTKCP3rz%5|;*KG4?q#xNjc&&QAu!#6_ zRc_yC=GAg+T_ap(Ta)x}kol2qEy5A*1MlODY6gs{;}#w`_-sk2|VQ zRnX{ew_eC|dU_sY$ij^bv_pO%d3CfWV{T!>szfyhuy0$EW8>pC7oyqutBrzl5Ej+&GlmtisI6Gr;9X)v8A=UmMarIjoSam~d9=wCLaL zg@(9WH1W``tDAsoT9(@z`?}K-c1EFzIoZ4vRO8I=>q3=Jh=H!6(w{j^Jj*1M~nO)$kS3m*K6z&5|$ z=ho&kJRXcflPO%w#+pt?-F)2;8I2e%v${WTFdqZi7Kb|6=Mum33_lhr zBbud+p1HGLePe@wm?&BF2b#3re#%&DD1_C9$+2a_jhfbtYZF#pCtt!`&0ctjx%pEC zZuW=PASN{0j{9)2W;21C?yNBUdMYYF5TMkQw-y?Z`gP8Vk$drTfb#BWe3<(SXzn0- zL?|(d3Z$etaje=)h-$ycnGfsiJS^SJ*gF-~fdU5;mRwy?H0+ z6&Q+#NAxb5yJHbj2c<9VGT^ihkM{XEsqx<$ISL+uXgIj954q`tFsP8sHhg>W%V*7M zgc1A=Pa~tZoSV^l58dy~48%NXoZ$%WlUY#|m%qNPWr7RG>4pg-=*d27!)vam(Q4Q= z_IqfC-zj5;A~z&U&hq8_NUV98C3CUQr`L}@NDM(MDL5@f#ohdHreb9_jttfxi8-A} z<J8fFOh@E?l>p-Bwju?GAd1c!@$3$wJvZ_{ zmvSNH`dR-=Eq2rXouhDIXHSDwhlJsHZ*FAvC}+PVV&vkn(DGMV&+Nof9Ll>xGXjTp zZ$#ixU^*!1RAMyblr!%DxH~2x^+zOpAG+hNT;9valXj$ugm<-7P;?Z|$^@ccK=}a6 zhb|<4mc>Z1dih(pIVMqu@N|qE2o~f`=ZydMcVuD^V$|E``(p&Xjx7x+sorQ%v;FOQ z)_)PPqp1*yVY;wC;pbMK0fJEQWML%tPgIlvGPV)phWP6E8GHxrW@~*EHKSxDxG{ut zUHCO|^(ZQOWPjn1fXYGCx#^_}h4EBMvTztf_0g-6-hwX$vudAs-Eu@NmP@ z2-f~OyZB?DA(u85GB&?}E39))c-Yh+j!2a11WrWxv~%+t2d|TfIK`i%0#1_GAt1R$1iAG4-)1h{4%d@95z&qsS zbqN<2dsJKk8EN-7(m&p-?MuK??q^J~qW#Y+H~mst>*E|gCUjJ9mXHjLo<4Nu-o_?} zVv-)n%m}qGt#s0!;#KEn@0~2I{R&%pUWSw>Si7=dysPgX{UMS~EuXY=CT3b z3S*5by*h;Z#=cnj8Q817J*_Tm^SZ!k$z0l9|1RlhwNZo8cDrF>Y47jH=VIzJCg)eG zsADI3i`RqcUf=8dK=533y?e#`(gzGag8SzWd4L&E0T9YoGBwd*4cxD?-SSg8N{&#SINm-q{5c{Z zYdHXwdtdDc??RKec8Cx*FG|q~Ff`!b@p>^D19kYmuFUSySkyQ&6VB8O7cmW&Zpuu(C3NR#m8gTQ^4<|Ve@ zKbfkXBviGsatdPPbF&gg-~X`r&%9A-o*YzvDCi36Tp@n4G4Ns%F%8JCSd>M_+wf%t zT;!9i0Lrbhc0PIZedpk_J+)z5$m`^X;n!V6*Hw<0N;12oO@Sj+UD=ll$S75^jUv%_~9g3t) zAZEN+Z)tD0(A z!uXDR-bJj&=SkldrgYd3xUan6ThCWiQo^ z!*c9x&3~UbP&j>p;M(PIWAdf#r@5=Gop6`tH9h>(=A@hb^?f z4>+(#dsSj86dk43p2*HxL-d^uNx_uUipVP?=H>4iL#HMbUBgp{s}lkH#ZHQJg>Gh0 zogoqh*2x68JxazbZotf{Zx4qq#)Qi$XCpm`o0h{Q^!EsRQ@ zXPdgKvO(4;r-4g@O8CTXHLl5P-Mtwhq;GE4pS3W5`GYCUQW{@grto3fLTqQhfM~3P z=S`L9x4|EkHUipwYpmQO&tl7RP65Uu`ZyHZGuu(F3)NYma1yJJ3R_WSU#*##M=pdQ zaFdy!9riSCM1c+D0U}9Ykv}*WRH5+zZ18rwR=68WSD7hFHhB1;AB4u}zU^LWK+|6y>ZG4N8-J;5M**3=Yw` z_3B9!PeBCsBw}ab(W=u0zPb1AULnA!>&i-^I#maktRoSo09xNR=Gb@VE$y0FTk-

3evgqhhI7MnN82_EG1+K(+Cb1laGMenrF!Z+?z$cJ`qch4W@ zq19zINV-O6u&gG-a1vMGltCpv(D=AG&+^lT6Z7j=g>6bY zd%RwM_Nd2J!fVr(H@{HmAJjJZy>WWf%>e;&n`kHY?Dr2JW>Jyu4GW>mu6kL?EP z<^0c7sP|8V*#h)$jL-cwLN2ESN8S8lhJ>~MK(1SA6zYMMwi#YOx%BNkW^V^Ag#?1< zZYMv{w6bGTPL|1|xQT7{|HcHZdek6szn20*DBxH!A4jUjo|&T_AJh0*U1>hL$5c_a z&Y(nf`_ky*_MhFBH`Ao9(RDQgGudU$FY_JtBUGh6cZRveTVog79{T6?w>A>xrI2ko z^hxY1<;q09T!a1PH@|(|fX9Xt=QOgKg~+;yvf4JY#DHy<*9HjKHI@bP6zn`^1msZ5 zR%>Z)E=7Kv&f=|u_fq+Fcysl4rovV9uS6d{wpEPn)}St{{{4vi01p9s3Ayj%?0>#N z8imO(qy^gUGIsL^Ggg!bh zfBm#wY!gdnRAb=e#3pQ>9|kqR>GmLrFSGU5M{E5k*RS8tnb=+fWh~2!v%{0Ev8$HGWp(Mfm_Bjqti*_y5$nBVmO86f0=xi$TPP_8_;%CMv)cX+v=O*k_7 z7Cs+}@9ynRx!jwdo4q)$UPq?_*`MV8?x@?ex*!n($}_wca}6#Q*48|M7v9|5+`7%4 zY@kWlF*{2-*#O$+8GW1+stew9i3>@g*7-mi7KzBj^Hx z*`%X>A8FOJ@YUT~T@+D-RN;f>*jv%UTNJ`<@UCslGF2JV)6@M=#uOUjhl`%D(V+Lq_7z%Dk+(R?&h5LYCLEOYKe=B&-w0F*w4HT z2em=1=g*(VkqRUTEcz!$<1((SxC{3W4zA@Vig#Lq`iF9kc-CrPqIs?UZ6t^X#qZC> zG#mu_`_`ahaPCDAKt>f+UjEKAobSf){rhlO;8QT27iwXnhK!amP+xm@$vD2NSU3T9d=%6Nkv6r zQPK5y`A}??;I8GDb#*B(UXTPPC>o1>|Bl{={LJOlACOLWp&xT)-KwkCcjuJEZAJ6a z@^YEti9-V>UM~I&jOQID@3J~fUe?q+JGbX21q~@L`TVEj#+`SpWxZMb!?2)2rnkB^XQ zF>Yj6Ft&;uTmXdLu&}VgY|ua^4rH#p{rqTOw<`SJ6kMP5oNM)4BFnD`JV6&2Ct^2l zivy|KdUYE!Wd__k8AA~uFZZ&gC39)XWQQkRd2MrZ_4TV)aqz7cEc1&C|2cTKx5>zq z;S*smZ-9Ky=DXmlC3~JC3W*ej4zqPNj`JkXhpf7KmYor0P-kb(Qbr>vTsd#zuT)wQQ1j@(^Pwm{q zz$oM*ikA;$31{dX8A*Kn_#anS*R8omp0bt}QFufU;yY(0xHVhn&}Hc8$Zl0l{Jh7^ z6uxa37#ixa=SPIw+S?^KT2FA;*VoqzK;i~=ulV^E?UgH6-uL(Cg1TwR(a{my5ojpF zWl|je z;U`wZnf~#i2h$lzQ~*9fx}3Nu#5p5alIwa^YtM1$1xU zz9r%``9~%KT?+s9?T$<#HzHwoCeWs|u(aeddG}8QI&tU7Aqb5or=`7L>Il7wifRIz z3cMi_hET_*fu?!?;!~W%3-2hs-*9w5q4@82u_c|otk7b>o9&kH}g)B;NZZMlZq;Ox9x6LJ#+B=y8`MYh*U?%#lgPBZZ8M*!LqV4 z*!yz4Y%qH8|&fVScV zLQAZ&6E)7u((Hy!-67X*fiv5ht>;h^|3MdUegYr61Oi*`Tcg3Sb*Z~2^Zx(r(Vz-T zGnPf?HEdcWVtIQDO7r4_?-xB8l|gmkV@7q!+JX2e&C7=+dhm}lFa7n<;F)S`+V08! zJ3I55%gM>T(ya=CeeHX?)6*S|I|gWf4eWQf5V3;%B1Jd<+Qa4_RY-A@2aZG*Ftz#%@L1phCPcz zNElgGQW6D`^9e{ORT{OX3A)gb#9yc0nQigm$q77X4h{~6VCvF^Aux(vJkf9b`&)UAHs8K|j);XbP2+H=J5@&PBU`7!puQJER0N`k_W$|)XW-8%Db+w& z>hSPzFhd|w%Ez^ed6*caz6g8Gdn4UiQBl!k>a`*3!-gjf4T29tLPFB`9Y~}bm{7-* zEA(s8{>uLOwr0a39OZ;KVx6imYGR*9gAWx0)w>V>&1`bmS5jy_ZC_+7FzxC zcRp2+dd+(fs)-(=2xldL=X_gT9UUJp7e)CN6sJKwSFg(KS{bM}ZVYEBfg&{qphnYA zuk=LEmO?*T*U$Ekj4%Q|ou1a+F{rh}2W?Fd=sfWiqg6;Kcr^8TFk6hYdL|CL?DJ=R zxWd40Wjms4U8a#Q|1>)rfvY7PAaMQU3AX3{++7*?Bf6QR{UWJUvzR;J++9mZNC=%m z6cMMR>c-N*&P)Fcf{}0wTc^HSSt4Expz#Txx8MFda0dxXcD1f2TN z)N)r*@ug0sQA3TxEP^j$Vq+Wqe{ic7C&Pz=-$sQ%XxQwDx;(t?o|K;6uRs|PHju_; zo(7uFpmW)0S9{+W;vei}%dZQq-oCy#q@=M%l?tcxUW?1_!l0N)&B78pI;swOmyrVq zii1s1IhDTyp;SXd1LBqI?_b|(!|dQK;t>+^KtOuf8%NwVn9gIX2p85ae-4q-W#=Pv zUVgsq%v*Yl(u#`pQ2Q*OjA;fLf4BWPq05tEiRCX}Q~(uGQ&Zc| zH9Up&2%jFUT1?B&PY@Io1ffv|b|k5QBOMjhW6)AVl;TCIXOvA%sihkLVd4-GMUB~X zBS1n+OV-ekTsRBUi%~6mZPuy15CR&^hH*JRv84z+Gd1#A$KUY-xl4GHR16H)QvoBr z_1M)0TLW6v($ae4zI`7;a^zo^@c%%47=TJako4$1ZQ@H`xI{XyEe^c0u*k?&*R4_N zBDI`huf>2qu$soq7f;wBy-D;+5CA}~d$iJ6BHL$!80H&f7EuZ;ZUw?xHCGetZHYokyDnmqMUPRGNc1((R7k1 zREnihL=IzLB#KD2*DN{2QkirRlF4aEq?B_@F%C0KLozu{Mr7^#&AQh9v-jHj&vspY zV7~d@?|q-=e(w7o*YgY-$=B9_FLDxW>A52}vhP6Ol8# z%h#{hVTC3qd!$8pbF>jO$Fs3q7~_XEw_mfSQfKjaJn3{tWQty*-5YNsLM^S0qgwV)5r_@77OL|=4^8K;h2HK z!g;e1Rj)0^xK{S|-#`i8LKd^zpkGn*fLPA4HtKkRs`KRJB*?M~fCz1AGhWoxRPg8r zjgoHb8XGgi!)NikyL}0mfLR5Pi7Gt}2n575cv@#RrRVPbzNe?BO9!u%S*odWHm1@o z9o#-fPIrl-VyrfPjmDg~P<;5vk;Z%bjh!BOpP#;z=eTQEC5njz{i(_JRDqw!>v>3D z_$95;(*TVj{Y;gnv7ON5XDh;zadO@L{WVzQ*`pdhO@)xy@-cin+Pzw(NT2s05o z0%*Gi@u*EKe4z{6fQF8Ax_EcTzvdu#45an1TaKdQB|B$ z4fwIVMUX)jXn9lK(H&3#S)khdzP_!X{;RaK(p)(VMa(Eb!qZT`bW%+H)l5u&CaP3W z!#wrj%{r)%2Wvf z`0NW*otK^UyhZT#nxR*3dyz5ttBSgM1XyE2S=mM!1fe##R}V}Gi9~V%+6Nbx|2M86J80SL~4$s!v}- zhLpU#e6fTd1Ef$pTLeTwJEJGy2PUW9EyQ`l378F1{}()FSAL6&JJOmEd@u@>r_I9J zl<^kMROLWHXD!PigH8+t%xp>Duwumu;0+lPf=5?|DAg^Mgri^VQf1}1X;f8KRt`aD z(U7TeVUIvC1U#+3X)EWf9N0C}CQk8u&5f;BqT}O_;tnXyfJ`clwk!+WsL-#EYK8o& z?-whY2VR2E23e996@Ag%LgdHqt{oab{L;FY2{i)iD?k71{7dE9&M7+YqbJzPT7E=goL(kKBub1vHFGuI# zsHi9@s`QW-v0d3Z-ftevEOCjq$>0fFk%{hAu{?4OOfwdc?Kud?83`}yTWYkc71sCk zV=a%4p0vKxj!na*!a`G^8s(`^L59|R%G2pTf<=p5Xzu<&AG--*R7u4IX)2U;V`4{kI>A-ZLkNJaS) zA?kZOIg}G6;^q2BUT&0DWvn7%cTWm-y*fdiI3}pWamp6k+}zY)l^%kA0SK-2sFv*r z>|R7@4}4Tm(Rp6K-c5(-zU#_K1qsN3G(q$QVxfCE42%7byj2l;&{%7aHEN)&4-OBj zq3#fe4q23QQm_q1Nd<6?JyL7d(C0@CMNs6l`7$zaXOo~b^iI9ABLzp5;4|)!GmX?u8N5l|+6FzEs;lQIdEp2V8`2C&i zVIk$WM3^Hq((o8Y=;W7=VWbWaf78387(-P)rzwD*0uXq>Uu$dYG=&WzCNQ|E;@*t- z;a0C~2bf(OH_m`n(*3B-r(z{E+waSTLq*zKqt4p+O9l^Nno$|_OvCYf0}YtCp%b65 z)0}hUUrRc-!|~N|adDX=CDqL*n3CiE%p~~J_t!&)Wpu{J#|gIqMFt2*KnN#brVikN zr36hoZl;rnnI?Ob8@MxA7rceRp&?`d zLxvoAOLAuBcRO#{9jZ^WWRJj%5Wm!~8w3ar1FNn;^rNRfrfIR8`urwkOI+$Oi-``a z;s*RM@79Osp}EPij*j+xc$*h8F;GB!VBhYlbhxhWF!e`8?Mcw>v_1EoEpKYUS@}Ix z-eKrT6};j=IM9UNYT74P!-|iNjrD-GczMk*MoKww272@_=V0^aKx+|1VuLT|LTJaW zpxDDx%i4X=^gqn`>o8Gnl?FKfuyJdUt9&t%GFbEZs@OFfyR18q#g;|R^c^oIKT2h4)T zL>IRK{tErQxX1FHoE~~wVj>S6l!u3zEjHNKMboLY`_5rV4RW$%92K9>r^}nrRlrnt zLFJH7LV*4P%p1rAal7mM_%bOTCpce>2;!lV`h9ql08W^5v`(2w&*Oj|zy4nr$z?QD z<7tpcR8oD>C4D_NGAat@x;%wpPC0^di~$v0B0QX1Gs^)bLv8^K-aO`yjrTYTA{#?Pus$bJqDUYl={I=kpC3p_ z9$ZLBKVKsuiKHVT5j$tMXo!I~(46HB+>ns4dZEX?R8}l<@O>l&>F3(8d;48zep8`2 z$7@G7JCeK^ix&!x^8YxSpf%lRk$ILFrRz|&9(smU^xo0#jd)9K!*o?~K?+e-Re^qG z#G?Yj`ypDWf+09hpB=hc@noDXd9RGOiHeFomB&N56p#OT%ZW-If+K}GA)^ibp$_>W z#RC1ok#eUdynBbbB_ZnW9h_J4GI#Gpa1_zpeOQ`U6Zh`J1?Xk}zD(%<X z^L62sm27v{=I|mUB>Z)-kQV;rZTgX-jC*-f65f~L;mD{cDde>Cb5Ai0lm}AC=ymhT z^75#LRYcT5feQ!y7CgAPxPdrSzUTX0_5!EJJ=mwO$|6)#lapVls$!uNb4Vkny?aMw z#6dhUF@cK9R$fsN85h_8n(L`FmvggGwuFDC<5CNC$Ut`}db9rjm#v`rCmvh-bo*TK z`@U+wNBquOqQQ@b$9MZotR#afsnnFcdP~@f_-$jt-#0)8`+G=zxA{hFgw!`;r@PcQ zRczutxxDPZR3fFJch=2HQP+BQUA3ld=@Y(KvHEM#+#MU7ghlG|D+}2Pez&l`d3RdD z#8*~s3h2-yqKj!l@+6gyhGU)VyM8*aot^IaBoLC{8A5NLCT{mQ{1CC96~NBwnfGD( z=j!hp@%E*zzIN%`%4PQ|BU&hgEc_5#Y(fs7F@KXOlO}+>fMeb0W zovQ{P+1;TBB}T#RGaOVqE`Afm&14~LZ0qV?pWV}zF+H54_^(e?i5m@1`0(BuFKBly z)(GFN9+{TVW!|<%1huGmDG;((=}(%tX;q2y++gzrO3+OVF4 z?e>`eor|7c>n;qirR!`hL%Li0>tY%Xy9;7Vo@Ot+1vLSD{Bm=c6^5Zq@c+DOd&(fr z2ZE5N(B)i&)&I)}TyoEK8)~b|Q!DjpLrJ;sCgw-XB9$E;zRYPkw7mgS+0PgZzrd2I z)`6}T0>@!_K4QUR+F%$NAHU)SJl<+;%f;x|RBYlF@zLQ)OD-zjsSAM7=odW-3j8|Jo%WB-Bt>|EJH) z^ygHW*q>jMBRQgJ{B|>3{=eO$qN13XnBLdcCNXP$_+&AJ=h*qj6I`n6mDf_=C1PWD zvIIMth}~@RgGx$T8a^RmU;UfObbdP`R^7@~TU^2d+60?Itbfg{7%$`<`^)~tW;X>j zwE^?B?oj1)uD}l;7zzpt5e=?eiXgI_ZjZjuAo!q~^Cg|zT))Fl7`ph@msAoAl1 z@B${~9FbIR^ZrkMSFX@9zZENyiu>?+EqM@Ac`dp;!U}&7D;qpeYdM?_7Pz~+3u7~a zC!paoe4Uz-c6aB~3vLbf+}JwXs&5oM{>DOP6+3w6;p5DLouG!l^*Q6ruOi=}^I{NzZZ{9FdU0)no|M;5E6cwarYD!&PTnr;1CgwHm zM#iEP>7A*1xjR!u4oxbm;Op|Ts<*drXlN*mkch~vZk~yi)qF64+6dEiqx*6{kS5pI z?H~W?DvQ35lheHuk{tYK$V7WXHPLvcr>9}P{r&63vwLXR*d^uVj|0F<&?~GQ9C794 zEMia`jg9To1BR-jqXWwpb_-LJxC-fuCe~6{|2&o>x;tOTXgB+@xTS?Ger`^`?U#@E z+S;17j?UUqAF;_Mc=XP$b_MS)G;yY;rW%cX(}CI9qWm3IwX~#9<4qn48Q$u)-~nD; zT2awsFHktUhf6~OH{t*T<91gR7l#fG%5#J%CTQpoVu$wxa)L(z)1{UUVa0URzn;KK z%cG`k`_g*Wo@o$>jaczgQ&Urj!4kfHRVO1ShYZN64S@m-sHbPmd3AWr`90I)TPoju zZYtR7J-_x}-;`_`3^ld1aJ#@ZKTI2z0mlduP?fF{_zz0(J&=IF9BKLa38}?sXlUU2 zEYBI3nbBl4z>H}*IkBstBW0b{s2Omw&8@8(&jZK= z5FjpBzHEv!sI%gB|Dk?za-!er$zE1g27`9tVkIEYI?w-|b*^{Va=Y&-u645U8Za2ve}lkyW+lB;q{z}iP1#g^g4ees=%J%J`E0rRV_PNE(|d!?!?k_ zFa87hzDRf!oMk?TqrbB;BWWWR#y;NnDEx_)p=w498YkQ@pwMpu#M)0_FM5X;xwsJ zW2K`a)N{S2_2JUVZ;Zl0V>lmYPv*t{%uTMYYuBZAEfox^VcY?o93?O?L2TIc1>woe zxniT9Kq7(TYDWQvChZHj_Penk<3+_U0i@Z;pJZwCQF^l8^UIw`rqI;hkphbSKSWs8 z%Zpja4oTmQiT8X%L+PnA6S~IW!|22-oA%=^j*>f&C`HRNl+#zVKmy#)@E#kHUGrs+addfMdoMN# z|K|L|{q2~c=g=4RhzO}UYCZ^vj{CbH2S{FTKCP3rz%5|;*KG4?q#xNjc&&QAu!#6_ zRc_yC=GAg+T_ap(Ta)x}kol2qEy5A*1MlODY6gs{;}#w`_-sk2|VQ zRnX{ew_eC|dU_sY$ij^bv_pO%d3CfWV{T!>szfyhuy0$EW8>pC7oyqutBrzl5Ej+&GlmtisI6Gr;9X)v8A=UmMarIjoSam~d9=wCLaL zg@(9WH1W``tDAsoT9(@z`?}K-c1EFzIoZ4vRO8I=>q3=Jh=H!6(w{j^Jj*1M~nO)$kS3m*K6z&5|$ z=ho&kJRXcflPO%w#+pt?-F)2;8I2e%v${WTFdqZi7Kb|6=Mum33_lhr zBbud+p1HGLePe@wm?&BF2b#3re#%&DD1_C9$+2a_jhfbtYZF#pCtt!`&0ctjx%pEC zZuW=PASN{0j{9)2W;21C?yNBUdMYYF5TMkQw-y?Z`gP8Vk$drTfb#BWe3<(SXzn0- zL?|(d3Z$etaje=)h-$ycnGfsiJS^SJ*gF-~fdU5;mRwy?H0+ z6&Q+#NAxb5yJHbj2c<9VGT^ihkM{XEsqx<$ISL+uXgIj954q`tFsP8sHhg>W%V*7M zgc1A=Pa~tZoSV^l58dy~48%NXoZ$%WlUY#|m%qNPWr7RG>4pg-=*d27!)vam(Q4Q= z_IqfC-zj5;A~z&U&hq8_NUV98C3CUQr`L}@NDM(MDL5@f#ohdHreb9_jttfxi8-A} z<J8fFOh@E?l>p-Bwju?GAd1c!@$3$wJvZ_{ zmvSNH`dR-=Eq2rXouhDIXHSDwhlJsHZ*FAvC}+PVV&vkn(DGMV&+Nof9Ll>xGXjTp zZ$#ixU^*!1RAMyblr!%DxH~2x^+zOpAG+hNT;9valXj$ugm<-7P;?Z|$^@ccK=}a6 zhb|<4mc>Z1dih(pIVMqu@N|qE2o~f`=ZydMcVuD^V$|E``(p&Xjx7x+sorQ%v;FOQ z)_)PPqp1*yVY;wC;pbMK0fJEQWML%tPgIlvGPV)phWP6E8GHxrW@~*EHKSxDxG{ut zUHCO|^(ZQOWPjn1fXYGCx#^_}h4EBMvTztf_0g-6-hwX$vudAs-Eu@NmP@ z2-f~OyZB?DA(u85GB&?}E39))c-Yh+j!2a11WrWxv~%+t2d|TfIK`i%0#1_GAt1R$1iAG4-)1h{4%d@95z&qsS zbqN<2dsJKk8EN-7(m&p-?MuK??q^J~qW#Y+H~mst>*E|gCUjJ9mXHjLo<4Nu-o_?} zVv-)n%m}qGt#s0!;#KEn@0~2I{R&%pUWSw>Si7=dysPgX{UMS~EuXY=CT3b z3S*5by*h;Z#=cnj8Q817J*_Tm^SZ!k$z0l9|1RlhwNZo8cDrF>Y47jH=VIzJCg)eG zsADI3i`RqcUf=8dK=533y?e#`(gzGag8SzWd4L&E0T9YoGBwd*4cxD?-SSg8N{&#SINm-q{5c{Z zYdHXwdtdDc??RKec8Cx*FG|q~Ff`!b@p>^D19kYmuFUSySkyQ&6VB8O7cmW&Zpuu(C3NR#m8gTQ^4<|Ve@ zKbfkXBviGsatdPPbF&gg-~X`r&%9A-o*YzvDCi36Tp@n4G4Ns%F%8JCSd>M_+wf%t zT;!9i0Lrbhc0PIZedpk_J+)z5$m`^X;n!V6*Hw<0N;12oO@Sj+UD=ll$S75^jUv%_~9g3t) zAZEN+Z)tD0(A z!uXDR-bJj&=SkldrgYd3xUan6ThCWiQo^ z!*c9x&3~UbP&j>p;M(PIWAdf#r@5=Gop6`tH9h>(=A@hb^?f z4>+(#dsSj86dk43p2*HxL-d^uNx_uUipVP?=H>4iL#HMbUBgp{s}lkH#ZHQJg>Gh0 zogoqh*2x68JxazbZotf{Zx4qq#)Qi$XCpm`o0h{Q^!EsRQ@ zXPdgKvO(4;r-4g@O8CTXHLl5P-Mtwhq;GE4pS3W5`GYCUQW{@grto3fLTqQhfM~3P z=S`L9x4|EkHUipwYpmQO&tl7RP65Uu`ZyHZGuu(F3)NYma1yJJ3R_WSU#*##M=pdQ zaFdy!9riSCM1c+D0U}9Ykv}*WRH5+zZ18rwR=68WSD7hFHhB1;AB4u}zU^LWK+|6y>ZG4N8-J;5M**3=Yw` z_3B9!PeBCsBw}ab(W=u0zPb1AULnA!>&i-^I#maktRoSo09xNR=Gb@VE$y0FTk-

M3WP3nv1hpZ8Nj`2>58qWN>&v#lZA)Pi$WqmTZ#1;CzQ3sxZqB!+;Z!+@ zEtpv4I8r*5T_Xb$EJb=Oo@%1;nSwK-h zJ~{p(UN35N`Q5)I)cmhNZVUmTgK^{gkS7PoTaobM%M>9DH32}5Dh<@@XH3I z8)(OKo`W4Pn)tlF>uhN8P zPTOxCtz;L>+gbxtpWUMW3YD>hl4K(QTRDH~50U#jCBNL^b{BuGHE;`pfwe$Z8l4Jk zg|}b+>EA`Y(V-6lH|>UgF;6ge`@M=MS?FX)N`b?*ezjS>El@t>{IY4(m}d`V%YNXv ze}%ijbYNH8_ggeqQsmEXev!pZWlpe=xo${-f1!gIE1(I%ZX)L+>qssKi@bV`U2&mT zc+c@LtNW=wtm7$bEZt;iHDpsCgE1GseXt3M%%lEzb=*P_+}A&(GkC{TX^LMt})lya@nBVV=Kh zM5H)AX*y9~-<*jhO@hBp6#&h>CLVU83#tORrs@#dRjoLFHI@F|pk)iWB(v(5O5Emh zxBD-{htRAlN+T+aqo=!Km6}|k^96`tXNHPeyJV{jAujY}fPCR{cEabz-|u~czy_SMJEywO4Uur zbvjN^UtaIUDN^}$5=4(i%2gLROSE@J023u%mo_I44rt01sl%+^T2QOKWu*Q32Eqst zAK&BkDl_2gR-|5D!p7tPKMP1pK#krntE>dn<-;o7=u4-(Cm**gw8(F7>$m9CVvoA6 zK7G$YUiS>1UMr}B;zrZCn(6hB6^J4+V{rgfUw&L(@^}nlYg44aPq_a0Th6@Qfcd!U zy;FRWRLW=wh65{45opD)elX2IW!xMN=%b#zzU`v6E-3)mftKXQeshE4VMX4d7$v`Qmppx526 znajzprb07ykH;>o9E+)b%be&Q{Wza@t3Nc6oLE-Qxn;>OYlMVW>v0lXzv-8X=~Crd zn}%x;KojO}8!&r!0T9Bg*%`?I$VOaDPl(*K8@pyR-ZnqcYJC8T^L*Tlo41Bf2x3v< zX&bEW3me(Vf=Ka$h2^=;M1hR`_xi|_6W4-*f^-1~GKjY9iz2+N17ssmD@yX-W;VO+ z)LM;_eNf9&)zH9w`0ydbc>8OP|*D^U%r3<=661Cefbl} z2vp%%lm#Z8Z`lm%Q90X<$5Smpu%Ipv0{Yo3<`r5tCz#&S6Rhp);U>4rt{^#MDH5j@ z{)pkBQGZPs1c)r9$pJFJ7>`=(8)}byJTZX_Dz@=k-C&;f+Sfc4pka8;{|tp21K+vL1>v)36IqX$vaMyF+lnX`TSyPZf-Vm8|6oK{q;j5 z41=_rf7Ylcm4&x|@Y@0k*WMpZ!v#uM%t+i;aoIzoi04ZMLZ4O*K?Hd|Ve=ykFA#F; z)Y+GFCQFJ|F^L`E=tId*@L?{loNp1k)RkDo0Hg-FG>eJWFs6O^kuCI_PVQ4vIiU&Q z#@6-<{ilUqIo?1hOis>n12J-Tb>n8j-y)9L_@7>YsspSx@SWpA>Ln-?w?ru>ym4|W zX=}^w?v`o;G%FHgX&9}h1tLdbO!6|nS+o(m3qf`Yt$m(GAjm($lL z(MuA2RLotbN7Jg-gkwH6!AXx78-{MBP8e1s=T-wDh!y`=aR7su8?IRB-q@g)7v$HC zb~cJ)#}5`1)Wiy8MfZ3xbg)#IgZLRG`$CVm^l`-z>tiz#c*9OHbqfLYo3RRO7TF@j*GG`*^L# z`(nw9RLJ=$5YiZhg)?evd9qa*)x;3U<>e=>D}Um~CI4mvSp#S(9m{^FD$725?0%u) z;gjvYUbeQjaEf1XtDQn+RSm9Xe#SGsN`FP7ssr}R*5~7ut`tlkQx-Qg5T*@>j#|+s zq;-_OzWQhj3XJM|L#Ay3zMM1|hAo-6`Zw(uPajnOZZY(GwJ`emGzz74IJTPHjkdI` ztcw*xUp?g?y_aqe93oz8=;?(oIm%Vf(%v;IOifSc0~xFv$YJub(J z$6L-qK=cVHFE?v21P~E=f~})dV_0?RDntRaLP&Cf{VXdP92@K37!y4za$4zNGpG$Q zxmhP}yV}kIN(U}EdGtVUBtDR;OnbsGV<<(5ObTUVX@I7lRgVZ~ae}Hy&L(j;lrKuTI-O?fg^zvhQRn-qgMaU)|9v($SMXM7PdYpc5 z8VrGN2z&06K$7+4m%+iO;^H~x199A*`}%%co0|#A$-&j@>t^r`m9orpE@k`c*s9;sPk4=`k1=V7x0ZsVY?Rpi%@k#b`kl+!fKJ`&3 zF5cWE7$G4cKx462lNr_e&A+5DFTTA#SoGe> zfu*LUL6Wa(p2Vn%;8O2Pr*@g~TyX^0!KtaKgsiOS9~6=l-(pwZ`V-WRMgq7FnAfkk zAYFmbRXl3;K`#h5;K@P7wozu4=dJ%MQYFWOfq78dUhS*1fAD-{?z-^<_lc~YViXr7 z$sn_)KK(UF8_(smEG8RIr2^DXbRxFb+annvVPWgsK)VAy46u_S#tb1Bn#jn=kqqAO ztJ57wm^(jQ8vc^Xib(%&-yz|%!ExIe>pSqAtTvHc4*2WudGNh&x(qZ39!_|JUYnY$8Vz^4@Zr$|r-My^ zw2Zef9Tu-)$G4t&j;0s8MBfTukYtgEgF4Q1>Wy#~>9E&VAk2Bxg(Z_Xu8xYL)c$I`)wfp# zNn*Gu&*CUUw{}CS*-Kx9(@#V8silV%&vXi!59#bMF|DF-B^`;cn6h<$;W z6@9b@DC-}wkEwurt+Rp-sAr(FB7IRb@?iz`svQ7JJv;>n*H%*#4^~Vfa?phZI663m zzk%)m_fL~ zB`J6yD1agDFFO`Y?BlY1&!PL;_(2#bKmp4M140#DLM$OBOl2=?q_&DtD9ffW?i6T# z_I?%w)eaKC!$u(wgIN%jB~ru0#CW2^<*aZAZ>FyeOpN2x%9gqw935BzsY}=;--u&* z!5;-c-hhB*pP>JBTn>Jg5WuJMfAI8^2`dG%%Nn7BHX2=j>42T<5nV3TO0bMc>Y8&i z;^Ids+ZbR%hCzpzQRz6=^m_Hu+PaC{-eBbLsw+^6ARYrE*M)$P5R_eR1N$@c7NR}A zQ*wv_ZlQ1T8n=9Q-D7su5h4=LtjLX{WP8jD>kwyvgMg;b@2h&^_=f-5maR8**W1EE z05pxQ58J!d0@nkP70M0P~Oy#u3+*z5SfLs{bJy#;@ z4nG3aLC2|>fdB5>!zO3F+>Ycfk_|h4wIs@x0~sH5AyAbz>zllrMx3f)xfG2-TE$zB z7ZUg`>&&k%$bF%=Ox*yt_qLPZt&a)^JVpfwfLhzIh~5sXJhq-yG#uX6R0+7Tf$AfH1 zv>32oN|DkNHqOmUmt+ZKGIBOvaJb`;75H|SotDgl&MQ4qlQFXARx!9H7g$O=!?YeZ zf3mb-OMvJFY`stxt%ue2TX_7sIc9IzPna`|;q>E>%*4OwMkov&#%IM%+Ba+f>jv@L z93r_zv_hU+cEJyklK=re{&BAh=!!9V^%?^eO~3MKD}~j24ky_!S*x44PM2Q!A-+2M zF_U2iwA$gI_j~L-^I#RnrzJ@s8k$f4PO0qI9&+M?PNm}DNmMEEPdU>FW!4@42PAz| zSK#XRA?8-|dJFT)uiBc%By}3sVT!xmL7yRDB z-+_z%r%4pX-#8C#8(1mm4N2#xi6$wGi#rAiHyHBs$H`I1VJ7Wb-FDvdL3wCiJLHnc zQP76ZhzCe4h%^UAgrJak=4XxP=${=6AH5?o9XuIdd@GFPDuty3 zvg6zL!_O66X4b1to!fv*F$PM+*jTeUP+?uTfkNN>Rsju=6;!}5yxQB7o!j4m5CFnH z)XO1_gh?b?r*~jEz03kw8<3;Dx3=#?Qc^>Bn02kK8X@rGHGUe_ck|}1@FdLP2rJMZ z`}W#H_}1}BdYEy=u>;WX(@#pOD9U&@5<#QLf#@TbSH|~&pZ|+k@8~~^7}#qvd9nqj z))6Pzh-f{N^Y%1Tpu=U+40rFZ>;TtOJOOyS5-QZ!Rks#eTR@GxhmP075tb;yM$~5+L+sv63P5 z>}t9Ha4uwMCiMQ1AysCUw_1o~05AXun(v_+vp*b99t1>=sewo3-sh*Z6n38gOPIau zuZ6mqxd`JR1Y|0ps6jsh!1!Pykj8%lW(!|Jwx|)sO$&Rj1IH1mLdntX0!i_x?ghV} zXK5I=;`pcYe3}mgbhv}r+|6yx?MYz5Fw1_D3~`2V^qR7Qz^pWfo;BAE4Rc%T>mdfv z4&6siKLE5VSj<@D7U(#D6M*)gwGP5o;YqW;jq5*}`nSP>|5B2EfcEsuT_VdOFHPj@ zikFB~5XIszxq7#rSL;Ax5RmD+=KTP=kh?BNohZ}h(+BMMYmi@!0a@lL&i$^BoK?uk zjs}Q>AWZ?W5ROyrAQA_pp|tsJIsxs0z=yN7*Y3PPRm2#N0pw1Qp9}n*wS=g&K~4r0 zVomJ2-4E(dm&$gmISKAOd=DBu_Wpe1Es`Pi2DC1;OHfC;4c~E7D~ijoNu!3bQx~oH z_d!ufiWuFAr?(5=dm7q0uQ9OFvJ~3!GL|_*U!R@rD5}MxVC#z>x=(cv}b;@a;3OA8~bVXn(TX$>oAYjQLvJ=qZ zRM!#cmaFyGs(C6hPQqT z&!Er{0gx}KbdH<;Sl|OcW(E>g>tGz_R;YqFf-HfkueDXp90;yaz(K(fP@4;IZ!?tx7O-Ib^=&sF&v5rEqVJubOfbIFEvm_WQs39@h;RQt?IPZL6g zFa_BKUmoZuU~?P~@}fFHfWS4Vf!gTwWFb-(*F6PvRea!F30ndpc-wL}Tr%Z&^YTzS zv{ad0emnUZ{Z1g$r;Itm9WN}bB?V1*$eONgiR8ZYF4Qzq^-~#WKS1LrQAN(F%f(lB zh6_~y45g1j%NxsvYpZtyJgC!NJZ^q_^>^+NghfG`@yp6d9gVr_kp-t>EJ?8#D|kc_ zAsLIZ+~W3BkaIy6bczIm+f=Miw<#aMx5gKk#V3R0bnTgrZk@SAs-)yH5ZhS$9D*In z0*|0xN-A^-iO-Tpl>MzBl2*gHCvxOvt^@FQ%bk4?h1Aq?f{ z_22YaK+ov!DV;nS*!6GrwGjb@G#~}mPYP*zb+!Ro>01G(3PeOJeObO8*V2CJr;qHE z|AvcSBE^?KBM`XB$>8NrRyYdPPC~jTmAWkb?A~(%f*KAx6PdoCSJky2F^4}EFjYK_ z_`*^e5z2uYhKGDVgdizl`P$;U@L%2w3Aew^buYA@5sh8*@NtuvjQAwRTU+7oR-3zc zG845X-*b81=H|h0E0Tz>QGwhd_uH)znY>}DVL>Rd;5U|`2xa;ijbovvlmV|V5~l-O zQRR@-Q94p?UV>`6!tm}V5jwx-BBiH)TgoJZkX{90><8G;NfPpZ{kFTB#1SZ+amGaO zICNbyEkeo#H_;-4A^L&IPf`19Wuy0j<+`lP>klxqBUH5!GgDM;+{L20;UUipxBZUK z>y`UC7UM<`8D}(a4f&V*OTu|2#Isk-rDTPi9K@rVUOwujMZMvyGVDvAQU@bQxtQW; zFmceZJbxcx^t3ZYU|oT;9JGF}S{TE{au7#w+sD#%pf36V1tg`bYV`Hc0`;+L57@sJ(K3C8yWUkTwVyc5=3 zi0eBn@-31yYyczYtKaNEWAj9RxUkr76)kmaSTE42fbEql)BN$s9+~@SYTxO_bacR! z|8c4RQ}63Ts>}#QoJ-p2dIN(`%@Hs79q7VInggVHYVP@{_7N_1Hy13}7*%3L&NdMs z{EgWS8$O@;n`cZjzFR4*Y{oC4o1`E7hf~dDCbboXF+p!Z*6dSaI+8e}<~JMD@8P2J zuV!MD!1k(Hotes;aX~Y@9DiD%Ze+nzII<}&5;g6s^ya{wi<&pC2#2=B_L<+)2kQ@n zO{SU_eq4Vi`jRQ?a&4nW>idM^x&1%6llk~MVmuln-w%5YyP!V z1K2~~m6~)u9QEN3e&t=FFggWf6tXL|^LU586n?MuvW}&GR&sQ2e?_mcqQ!FE51jL( zT|ae=d}K4O_WL`ELbHxNdrl}kQ~1`;?PSnr+2;E?nrYS1?stav9a_A2PPxotC^E$C zWaTV%w|1ewkxT?pZsk4Oo71DA_H3mCCXB9be}z6+$)3DS6)-q1E~*LURd{FmJ86lc z(y`CM#1fr1?ZEWnPY*(S(#mpg0;O$Bw;@SyQdKr2az&~NPaXX}mO+1(ZWTCsCW61D z(qKixw8LEHyN(^g`mqao%{qQug~Ux*5d)Kjc33sXJ9r}dSOud#66woX+^=3B-cdPr zr^TQKj1>j__QcX{T6a)0;03$X`;g383+?_uA>QR^y)EIaRo^kiR}(Whr2DZ^m#X2|%h zm}c~FLhoydmXCr#pO5g~&mK>B7$^^-S|9!lw&$oU`5Tl6`&s*Ogfuq<+JdnF8W2#j zcd2&c6>$68^Uy z1HN|R4(Y738|Q0!K7)OE9%OR{(FZ(Vd4a$Ate2df0^}!s^3bMhL9RaB5>}J{9;?oH^JlIG2&*td54(WhZM6?8w7RQI?4Mp> zDs37y2Y7IhqyId%46tO?JCE3mH*-_GH1qlbThN*rp|!(8*vas6-}9lOO6~SA0PT|j zufY9C4|L!jB6L(YKcBw93*LP~907LO$o|f#1(~QLo})ddP-}7yu+1YMV9i1oHeBiI zbxc$~qU@W0?IFK8+kkI2g=0Chp}D*`l=U)NC>JF<7FZ!j1vj`1p3$$n-qBcO{599S zKo!%ecXyrl6)kmYTGL#x+W2khdpsMdyie5Ce6qA=*rrfBGMcwu2mTi`-0s0Y<5jPn}g`716eeBbQ*V2c{yFcr4FXKT@OJc)unVs~RkO z-?0?NXb{%aM95q75_u=;d0}^2@N`w%Cyuq)dc#R3$&iBQ{p_?n9 zBH1nM;#ts*6!pDyE1@*W6gkLNYQl)H)-o0E@bfLr{ND%k@zA0^I}i}lX>>oCnJIKf zc6b|^<390l^H(bmaK8bL!^{S7r1yBpjf8>;xQ;aJ ziyQ$L4p>L))mQOsfk zc?ls?sJnJjoptTH+kN0JLZ{kWs^iw^F_(RFb!u`&S3+SBmZC1XoVA>+CrDJYtNtHj}GS9UB z(+gnspSif;vO4Z>=Bs&qDtnLBptzc8JkiGA@F)-klQ<{_6~Dthnu{CYf!Bp$VOXNM zR#tthJapXYHv|30)&7L_207B19*c-835ukcEJJ!{5behr(8tOH_jo3D&GIsWdkR8ADs+HDrH@_U*|>jCk~2Dw4Qzj*XA`uH z;Ms0oq3vR*qHfz?-^@O4YnacztgU$;r?5nOJjFi}|IzgA&4esN_$Q}BR5njWlvpxo zO8Owz5tl7ydIB1EA0{gnVG!!ad3I zAOtFN+f3bsDP@q(<>#~UI^=6(dYA)C*QHiVblheWkX7k=)rNPO9O^%v>f?9GviBqh zfiYlqhxO*)qDpn{ch2gF(;8g5q2-SFU^?hN0%l_MEpqWICxAM|lU<($-xid1JZOsd zOs&}oTq_Fu?ZT7Fo+EZV{k%h5JM=N(1_H3xF_k{E8olhrQX z)m6cBy9WTnR{?_3-m5LFKcE-18!yB+}Sx@3x9F~uPY%Vx7VNU3g=VIPtOd{e zURF$ZZAHIbvw87|0~}C%fN#2Nbk4)9XlF$p$7Y?X#ZHm5t-9ap)3%mh)^qp__u(K& z5ZN=+j1*Zer)$4uO;)woQu$-^X9E=zZz2gkjFk?A~7Kj>~m)pp*;eg4@}l`_jRkuLdpdph1tBi69{5 zw&r$ooLt3Ght)?z#Ss1k1a`@sX=;F5;rs^sZ1Xx{P2&Mot9kQlY)h{|Rm%8aBN*oB zM>P1#vz4=^hY&Y@^&n;Z%PcoR zGg{xuN?tM=2F511xpzJA5!Gkgh644Q34rtrxbJ1NkLGxu>oww8eErJa{p9(o7dZHM z&v&2zz?7}Z+^aPsS>VS=^N_R6s1r#8xVT$I1my9NVA|w2hwe{@csdq;?;0;+=`_`x z**w6GRqRj0YQ;CXk4a_(q9DLFy}Rkn_Sk!IQ|ssFjb@qbo)R4$*twv-!??Z{IM-=h z^|Xwa?|?T$`_}}wd`9u)K&1bCU3PK(KBgGAKx*;N3uz|F$j_ILaO|g!UoJJf zN`hjj>mYA_;PSOBrz~AK*H)hBn=d){l9*N7tcntka?%1b+f!S*1|6;vM{87<)l z@14x+0n9o5sQi+yBxvut*O_HzXBKf2FUMs2aSB2r!}x5Z4qI;Yv0n`-ai;ve8pOfmb~; zn_ATCu&Aw#!U?n#nk_UsfS-|goCdnppxeQvT=H2R>Yaz9+V%HU7aOS@Rs*YDua3Vj z-w=hK9kewSB0HVVP;B3>Db$0T60U7_xE+6x4+Dg({AWj%Ok^L9OvZP)CmqLcaLj;2 zn-ny!t{%_%s^`XL*BxiQWDCIjMQ%7chXS=M1f#tw7v)}rQ>MKUFN6%eqSvr~WC(m*D(#f-_XzW0X6biVddgr^7?&gm{b8+$+toqlKE{=HZ7kIy$I zoUk;$S>(TjN0tl}PcRA~na~+ntzUP3D*Hs$l-hje=e6*x-xKo%gpQ?YtOud{y0e@* zA}4HmUvsT)I}6!3I9P&PyWy3_?U~>%bzm7wYI5YC=5k=yht8OtIsmSj*nY39pQpI| zwwnMYB&jZQ^ErL>aJrtsO&luyoZ)XvmN0UhClPtNqhUclei@=X8N<9Zu+<8qTz%j4 ztG&~VX~A~@Bf6+m+W^eDD(@hg|JKm#{;$jR1Ph734M9CnjeW^o=*1_ZA>#v&w5iLD zdZ#LO7V(R*+eEJ9#kv#uV||bJNl7T^9Uzno5&oU?Bxu#@)>0}7?wcUwgsok zM!S5Q@oFH`8HBQ{g|Pdeym+YRIq+U%lJ)xtLZ1?^aQQ0Zpf48Q-d6L^!39=d5x#*$ z1@>gx{)Z2vQA&OZfyKPntFA|B*9P^4DI1Z;vo6E`2&u{x_Qi3=5{Wu`^E*_EsP}Ey zVQ-{Z7=ii~!X^H0a(GtXPJC|?^ujqGRV;u25rv*QNJ@ixAGAJM{`xTi{Yn974?6i- zQ4Pq5O5nY;9A7`zFreo;lHv?F5fa<1)+lMgKvrA?81$udgj`7Hu~L@*dA9#x1$qwC@k zPRN5XT$79(|1b`Gz;pbzHk>6%xm8sq2L&iDiHO6*+e;ogY7&Dm$$(qd=sKlD%Ucy7 zix;;J!(L0{IbO5Aob#y602MX>C|}EUvX!H!!#E2RpFvKdO=GQ}C*eQW?kfoW>dc?t zXB!_|4?zqe0c4k*753^O=XqT_92b;&=g-kb$dmsEU2h$g)zi4qzKX|Dc#Z_B3;rgAl*oaq;OG!fRqS=_|AQv=Y7Zb&o{<#+-KY#;#zyHIe)e0 z9xP6{K#>I53z8hF-hgPhCGZ4OYHj*0{}N;(v9gI(|Hk@U(n>(?U z?j6x!em7I}{e#H9-t5Ex|2Jy$%k{0(iE;D7cln94*H$0Z<^_Xj>LePS{`1ft%hQ+h zhL*g01~#$uOVC4WzNedDqCLkJ()v6R4zy>#v#t&H9yAp3rV}1hsv?;;R!r7%JY4iq zbAse`j(WaueTW3$|NeVi@wDf3%+F-MJpxq>b*O4bUp?Gz@Zx>UoflLVX1=(jcbR}T z6+2W-&=2O&1l>qssmcEJ;x?+v`A$t?S(=hme3&9LKNsii|80flFnr{FLBX>Tff<+8 zXdylrCj#MCsE5ZpqFWRWr)Cc$!_$A3 zq>`ukNp}ZmVNo+~Ztt%pS*nn6G%hqfqgH*9vT_oe6M5D*)%krC0lw{Raqmw-xb!!W0N;I^O7qF|a{VWXX3o|EahxSvr@9?lOCc#nA09aYp zTqmVbCNT`P1J30ET<=D>?)=)`-S@$Nv@~a8xDz-M_2)w$hm8!Feq0z^?xsP6R!*Qp zOLN{yI}=Qw{?;uB2)`O;f#(M@;Qh7R_~@@-<`WNub45i(AJy3tBA@m0;_Nnsa2&aF zYdlOH!pFr0y;At&JchgZ$`~U80r_pGF05?nY*b}F#QTIXqRL^y+I-h^W(2DQ-9i2K zeZnOuJ~J4lTlnPnfpZK1+=)RIKfy{}Up6cY#Fe$|+;Go~II7X$V;A*a zXk9P*XsG_3;EJiFvplT_NhM61bO~;G74%|-NyFsQg2a^&(q$Jdc zj+psVZj>(Xvr>c8V*lVEs^itQow>Tmh=`keEk7lZIX#djhhps^;HZZn5a=?v(`b`E z@<%8_QidDkv(LuNvd>pA5wR1PaClYm^T_>8qeLt9fvI7oOK8h}Z zsgQ|KWfjp4YaorJ2c%=viL~)+tnoyGC+`8aPEK399s0;;xcfdgCW025!nH68tSB=I zT#5$3B@xiAJ*&kS3;Y@*;iS8rzvb#i|BlquBdDn#p3ZQ=?T`ToA+y5xtA$3_;T)+P z_R3bg!~rCcoyud5w%QlVEFnP&XhYCqz)6ts%POL`*FG10#K#{AE2XzI6)Tl)z|F@b z5CtGwB)hQJV}16(&VjYW#>bVO*59z;R}@|U+m+@r5&+OE%FHE=Z2UJ5^Hl}J}C7G z#w}2)po9=|>iy}xF)lGd?F|0T3$-gf*kA&2dg4E1TRJVq)Tnb5+&e>E;no;jzPzg} z&Rfq8awOe_dt+HYtBvakuVFb3UJy1#iBs1+`D4&UiU|I6qkjOc8lg0(tei+Fly2_} zqG|F%#cnWa&e?WmFbqK{K>KNwr7Z8p4Enti-?6tlKYUxG{~p@gn2{HE5dVhxSz|#o z)S#HYA}u$|CEJBd!76g_2-S60b~SP?2T?oP3)#l{{bK>7D#7hI&MAe8JjFifrki?h z;!ye#3&nH4WHqD3);17BJpsq0)gT%7fjjOnh5|%$>U%tP?JGh^4zAh zV4BhZC3V5h=2&cgR_9ApBuxiMx2^Z8$eq?lvW_2r2x;~p{|HJ>+})KhZa`uCvL@J~ zT0J@`?pAs^kKX)bwNcfQ`02#m>8Pko{}B;IF8-FNDYUjlL+4!r%>}rY%MjP1YNN7Z z>GZ1xrJ8IwgHU)~)7m9-{&_POEXfV;Y=qO*@ALfLkVnb^bS@XZcZMC0_0+CNd&dg} zh=L6NMEkeW_Ppb%_KZ`P<4hIPm-U&I!iW3<{1JejxFqQQf>(p=sT8D*Ky2;oNdVzP zFq?XA@Q5-Jq)1pjIIV6e3t!d3LgPR0=3(T=YgcUV$%s-jc|Z;}=A}{s2mirehc8qW zox36KXBW@DX@atXcrVIpw~@hpuy-gk1RYUzGbR==N3XWN{)u3Qoui|Cx!z=ZK!8)z zI?G^OJn8pawTK1yKAhAC!moCzoKUE%TS9 z=xHBkVQZS?Eq|E=E2Cjk>a`Uu)>A$fTFexEK|)X^F@THAw+e(kI^R?!c|#DTP>!l0 zKj(w0uR_M@+1zXc*J_pe$_qvY-wHKo>wbGRkAMg00xpR-rWeocmljQAUYb~f(GHUF zQWTkh)}<)h<8sf)JAC_!k71Y1bqRQ~IelN=`g!DOW2o`JOGPg7jDcP;rhCOj)6h@_ zhW=UCq`_6%C16AT}GWyC6#{q!FH?6O|f z(^Xb-K1NV`&N8=b;M107scu<|1uh&q2qC~XfHLgKwEB;IPDTtbvf*C;h<0pw6 z05$R1EIi{bHQjo{gDD}wmmvCGdKj#Al>wRRZRzhN5V& z@elY77w}A&e(+Z7*4He)r9VB_L4$4tFA}LSTu<-Jxb&R2(+p)+b4lL_We%ai%p8BW z)dm0r+%9Eo-6WntGp zjuix6)k+E0_C^x$fyVE0gnky+gyS<0t$m@o4HJ^yb@=GRGjD1Z9HK$QQMDH8qoGNqPn^q}{ys0-!D+m>!x^h^G%j@^kIU41Qs2l8*s zr!UzQ3WHJ4jw0H8YmZ2r;OTw!oG}A;y}bvL5g$j(6%wqN-Ybra^+wHq4#m0oV{VJg z8ujMVwe{De*5Qvi*U50Ujc8?Q@O4{3Rfid-=!KKvL#Up}*?LEEcqCFFrNh+H1DLOS zmzr9m-T$v}8X>zL4_teLKB)vZ1z#+AF?+OR5u5tnbxvU5^@ec{lamImp1fc_AcHEA z%aw4?kwH0%N+SIjMgVe~48x>L#CGxW@&Xp5X=F4EKWR)yLn4H^%_Mdxf{;Cx-v*gp z&A`AAEcUY%zh!YWlKUeBg(@7_$~L!SJrGlhapC=HWX3r!*n2wWZYmT{t6|68FV$Od z^!{mE@H?h=eXvLDjIH6ObJf)wgV|(5B@1jIf`dwvI2$hj}&4-R>uN}gWsO2GTD45d3lD;|E|NcJvfBt>`B)h)rmKyo;yDr8M3 zs}j2P&rwf)#O<#SR2hpH$405IgwfXlN7K-#7+F1|z6B#A8^cS;e6fxuQD3ax;SA3b z2-LcX+b6#qN;xk*1yxskm+R@q8THZGeD`hj85A+wXYIQ2hkWrTA&X0nl`Bt&!zmM7M$>`-%Bk zC`{_aOaXKQbU+!dSel!gH;$z81`Q9ZK_@2_bRc0q>?L>Rd9i0?J(3O@wY3{tP-9UH;;`!ga8cjJe(}qqNIE|w0-U2g~emux?Q~+ z?pPZT*TCDVT-7aph}M-LdwS`Dy##%pFYf}8jx+xB#Oo{#PgCzAcB3iUF+^L3N$Tto z5k6{(H?soN1f&sxJ;l)SK73n{-AOMDUjs+^Q`yY;gk9gHY@W7@&l5+g#}V5iRLL|v zZTk1PkPzBXOoD=X$|9@l4DmUz1SfUnjV10oVBjBia_2V!ISAyGzpZ|I1KjfeIIxgk zf~;!cwUl5p`fsCDN(#YPNU{x71sp1IB~MRbc%YsWw)fuW=esU312 zLmlVqd0|5w9vvw|kN|wD_5OJJ_l1T0?%TR@THRaE6SA^KRJq%N=V5BJt*z}cY>eaW z>02Qv2lle3g{@8a&LAdTrup4Y37L;P``*j}%NAK!7xpyu{Fn3sJWHy}4Vpk2eh${) zrO#KP{bWN_LDk=woZFG5dn1YGhrCJJR5avFG6zScKKI2Ps51fNIxTTNMXp9Iy#-ey(V+$AP8quP>R0 zi~HNLae;QU*yqDi@^jf!uCAlE<;Iauv>J}NZh1U`b~-8C(dw?DODx4EHl zg5(;?L5`O4t53=K$4BtLPY~)QR9W+pbO9sR9>PXSVV9TDUonrJj{K66i2Z#Rak!>mW6_6Wbo1uTuOG~>aTzy1 zH-};0tuW5mVYWIXH1r08GM%_Mg%Av8HmNLx$<)rK0e=O)`5s|s8$Ny<9vPXJn|rnA z47tOvoDjzlev~$4w`yrgN@e8tatJ>P6YbyAv(YEMUf+MnHZq`Z89Z|rUF`b1|NP%e zm%SZ)6|2(dM>RyzhVrtq*Rtmv)$8Bfo7{?PWEfQohB)YJp^oMZ{@I615!0;vETd`; zFJs_0%KmrBv-GUg&>-HpKbbVwbCBz)`NYIEghfNfrc6w`>&tv~BPV;(ddrYqm8eVP z;S3-Bq8j`JuAb}>c$6nUK({to#o`17P{ znGa@9+_*zE97W3SQe0WdOiv#KQ3i}*d+7;1*Zscw1g5=z8<_IgL{VgfFYZKG zSig}9>21_`rp{$ z^b@9G8SPpda({YKz0MBr)f!?KJ~{fV@KIPZNH&2qgX~k1leuTc7y3Z`0Jas+=k~8K z!kFWXKO-sAU>b=f>))|fHnX(iA!l|?#ir1Zh%|T&IluiYzBA@5Josu`@X58~1u2G@ zm4VJou5zM1a=bp(4AuSTeI1XOtb(imm`Q*vT%c8&I?YT5<9Z5d@^DO{i}-tUvPs`} z^^aq~g5mYBez`7MrPCKCbT*w`ccg~DR#_Odc?+zsuLJBv>Yzdl#lQdnmgR}BUtec* zt-LKSkA|TTt@3hm$kc(t-d+VddV1IJ*RN@Wgorgj>4r%MC_b2NE*=sb>@sVWQe`tn z1#K@{)xv__2`4P5zFrW%;^0ezv+19c-N-^1p?!lGhQFgO=#=pi7|i+7guih%eWZ@9 zlo$pm2>$lr8}+y|sdvNPbb)BN=$A9@eyax6g$ei~k0#Y?bQqZKj}GS29XibrQ-2`w-@Z0Z_zlBo@0tTsbxgLfOyCEX2 z6l(m|+ef0O23dR`eOp^Hkq3J?x3*`QBIsH+5I7HF)$OP|pE3-%QA1#5sZX17|5UJB zbpmmX786a!Tki0rHXE@Z*uof&#%IFzPf)#RA0;0}>m;x`eWwu|?`Y*^J< zJMe^gu&i&_RP3n9yT@GIFF{A$F7bLH1O7^-g-Wc_M!AUG!%{-xIu$dBczVlc%zD%! z$$sd=;4rufLWnHmyw4RPc&)}6gk5z8y#0KbXnpy3=#Vv$x)b0R2S8zevZM)oYYpQs zgwQQl@I`JR1MVS3pzPx#mg9FqI%DF)+1c5N%oKsKCU9R)&Z&8e>GJY-JHOk88q6X= zhKb-at25lYN01ULb(#9|D}x=sCJS64 z5rw?#!g@4w0OkZe0^iUb+l0bc^s zn3h37G>0MnFeBuhW+o@~Pp(zOB!1e!OC$OEETu4!#G!lF8K0jdfutK`6B0QA$aM42 zNaC7;^i$JboxIw_#vfspcS8emIeeFGrjTb&0bUNsBmSrZ^P<)s3K*pz^HSh#vQ}96 z-r^6ccuoh>H*h5QA|TUJ1a`DAZR*v7SDxnwN}T^i!q@iV)rO)_y3jUxQM-;X6z@XF zpx|vq)|H_CgQ@yi&+i#QWe`(W*X0G2>K4lQdBSe4?YRy9N9?)(?y}1c{~l zt=6jD;1H4!>JNc!BkuAKd61InO3?k; zrI+8s?FWvuG*EvA_=KVO8p5Nc#S`g@p^_K`IN1$v69^q@`T21OUqieTW>@tO4_ofe z)v0BRr{Q}Ye^#7@wVqsyyO9QaL*#NsEjo0D^GS&#* z&e3{tICQ+XNDhVd|L1Q~Kn6a4?s=cyKb&D}$sswEQq~{uy@W+~{@t9fxkR^yqbA`~dB76yNH}`X$@t;ky4| zhL{LpVv8bbK%*2PLH{|^{e1rlG#su3cCdQ=ITr_cU3|CPme%X?29tXv&3$e@&_3ab zH;z1N&H&uo$oW-U4mg7}Zk$z`PL-`9794QY1MZSjPGDQv)z%B(tGP*0nL{K6v=BGG z(mT4YASFQjz43YMvCYWND^RlE3co;r`YBtAmCs<6CQ|9Z*On+kBvdC zy&BZ{ve0$47bZR_`uj`5lY|$~EP!A772+`P`Vn|JMLf)o0f_XVat4{K1GA{UfB#Mc zUkO~p+fViG5~y)!5V}kAdm?NM2_OF~vB2N;DRGc!1xe2O4$P3?ekKl$k;HDuKE_DDm7-Wx1}q z@3uBK#RWFwOmsaE7iUXrynihliDl-4CMhOGym|<$|wbK6rmx;EZM?jH2rDP2)ncsELZ)M)<7IA&-JIl?g#t2x!iiEA9}jD7{d28-$Y%ZWw2zn98-NZu-meE z)?V>%=GTih6Pb?P-kPtke}IZ)PSOj$WfxwGn#Bhh zv+7zhBvrX&%{Q`6$#Wdm)-E0m&gsm0e3fgN?R?u69eYLT;@=yBUbmSG3J&!)@K_`ECOMu3IYk35bY%|`z6&3qC}sb~xw38?eab-QUiQ&}Z*qcu z-+s3NU(GFtGJsTz_QFf~YJ>lC+{no;&F5^_U2_eO?HQeogyU~5vGiKHuOt%{+c;R>6iH4r1HIp@U0DKnNTM{hFrv#7Az4L5+OFf3rlw!6@; zLppZ4=V&uJuMfpQt2QKJfsZv^A}k^m<1<5vg2mi%*jaB*BlXp>c{k#)8Jy%o^;rA9 zQ4vv&EM<_<@rDV7(_QXD#kHyj0`G%=kR;l^uN{eM4>_wUlN?ug>-dX_0So==>~E!F z+()UzLpFq2r;)t2sR=}{)K1*qp)lTRvLH(ArBma|4NJb+_?{4Z)+Rq3Q$6?30^coF z4AHM2m|uK_PdwDeyz;XlN8jAld%vMFKd0e$oy+W+t}jzT@X4fSK2KkLoV>VWzq6`DB`%VK z8;w^fe^xcM(DE`X%twozuu+_@@Z$&kfOEq?2F7!vIyQtWiA2SHrWQHT@h)C+>E4bP zmr1_9qBkfwPB(ExF(^Ij(sy^9wpSC`3#&b!Q*@SbKJ8l}!a7EcLMrwNpOD|9-rjAl z+hm08>6xEUTCV@Cj!PSv^!<}-o|g+%nP-DeCxX9MlW_~yf8AonEqF+q_&2jCZosmS zGFrRSE^k$2>0W9Xx{h---uDPrJ0l+2G&d7=Yhy3Cn6l%vBsJc9kxBASW{M)ZZR9Vy z&cZ_2*sfcRm!C5~wuIhAIh&nTKxrDBD+QHuf<`#xmvq1E)kz7%X1d5rv8;W9u&A{X zY`1Ihi}fw0iuVU&v8~>VzYA`Eandj@^1UO6p;PDa4+C-07&G|H=sJ^*wDfGjb^2<( z^eRcU>1RVibqi-(wC}L(y*aop7J1n5XYbGp$c*h}*tmW0yOJ@~m5NSJOUB4II~IL2 zO^t~>xAoDrmW)4`NyOwTJl=H)#G{l$Wrg)x&ef5 zY6gZ+m0~fm$py{)iBQ)oW6RC|7DLmKpQ!D%msw>b${LdLLZGUxGdNbOw0mcNS%Vfc zQ;Q(BT{0uX%)6W`G=VgqnWSZ27QWdJ{ggvxFAOIwI!(*h>8F~UDG$`wPnu@Y;TBvZ zr@KV(k0~P_-n1ka%4&-|T=ZThviJf2QQdyn(wKi&rnJf`zjwnabw`#)j^x^{sQg`uI zPl616_02ko5qP-DkyAAcI%7IM&7LRoOyck4QuTUPRd1%I6NR^@k;bF*v$IF!4v$7K zr4B1y8#3j#e%uzG`(x+9N;0QSBO!m*j};%^+&wT;Wq4(qh4mMIqQx3 z*g?#-yNr9L`kh0Yu{J(I;fjKKN9_z>^q*HZ(fqOnR{w$rh1uuEe+9=&mk! z7%EX^d|ANWT6vN&V5f6Ww|@CJnPbS?+X{-^)?ZArjQLEFU3+QCvfp%xabM9 zSB{-X#H+9w=@euL|MyN4^EDjsfL$k4#hFM{#H}87DXyeDTp7WNN&P;@?A~Qup>WN; zujTx4)Bea4-}DiWioeTOa!e(n-v#r89(I$481XVjqc;4t>7Ne|#1vFd$~eY`w0_k* ze1eVc{r3~r@IZvMg*&lAR{9WAAzp>PE5nMn0PhX#SA$|VFbm53t{{aV0x1V#DnHmo z&(7a?UtoV-MAup3?La;l>xyVEQ>g1($Cv+@;)$Pju=B}{XzJd4RTU1R*C(t2@#d<~ zQE3d=#~R$^L;R0_h>TnJKGm}(a5ff?pTd+ddEu`;x|(5spoK{jf!9f~SI5i7MGyeT zV%xinVxVa?VZX_0R~k(jPrR<~Rft#B?Lr>fs87K>a>}UchTlituKXr}SJ(>*j&?*W z?xMSR%iUAC&KA-kz(3JstsrW`72BWlu|zsgclr4B?e#I$o0{x|=qlmkchyuHss2Bo z?ePz_s44QEkxVICtPq;zUuV;kES?VhZGyy-S~oa(J^U`n$aJZDUg`e4-blLn~#xSVj_@(OqqVQ!1|*@^AuTvrIaMqgW(M zcjPLypLKRyjs~=)HdC=*5(M5iDSLHav@UQ3Gq7VlQOCu2!ed1lG<9-&!pS3!`04TiI`NQDdDGu9b3Vf6I>Pmwv)PR>W`b>oP;!#NpXXYhJy`-7LQ+|88 z)nf%+o%^*SQzB&!w20~)$_AFI)1EAcQlXWag4(PG?(F_E`~(rbcMJ!E6-5Xj&#&Ct$swf9>)5 zA_1lAJUgdYnwyug%ODM*d8@@*v{xTTZb36XpOV>8`HkJ&PoDW5dc3!QY9!ui7wZ`V ziTmmCtkJNiJ-J7U(%VK&PU_^kqwbkH8fmApR~i+WDzL50ZW}VvuN=Q_t!oHzRaUq` z=>$LC?9UEYpvb>pZ4S;nD~z;NAKxVsmg0OknA=(qkP7>EOTX>0%)^xHIVKsAs!MZ< zU4L(3&J@Q3#-S$UOWU!rv2Yif-+qAZZE1nMsiCy-Xz@f#B;aoWP5@An>j$|D5>hE` zoPG`!TeO$C9lAK-y5wsWT?&tMfmG-S-nD_Q^O;OTiC< z`ge&SJt?tWYq8GS^j(V53TftmZ`v9(u`CC_-1$Ej6Rh=+dHU*b;xxQ&58Aa3WOd|s zJMUZ9eerldp5b&g)P9sj&Fq;yI(=37Qa7C1ceRf2Hav;nSxG~O2g;`xuCf9F3!2d* z>$EbJ8*sXf1O%e<5STE#8+O2~g2%n<@V?|}+=H3X`^C7Pa8jW-bQkua)&ggKAO7b2 zCH{dWHu1>fz)oNutM{#*=Hx1kCJ;Nj`75glQK!!zXJ#I4Q>p0@)7Jr*fudQNDV5D{ zvJ^6~{YkY_?-1p+iaA|^xke-(iXvhRofP6dNs!0 zPe2#D^P5jZAdtTJN7b|KTVkXxjR$OwZmyl=Jutt>04PhzU$|%b5iLhDBhs`|w4*Rg z^z~G!K@u@6>;NWOSIIV+B@5Iw--nYUpIRS%Nvg+Jl6eAvq=$QFEz(rOLfYxJi3MIX zdZO)=)`aAJ9-Ib@fDHR)UIXK(V1N}L6Q7A#=~77Y^XC;c`$$3|arKtlSnrO*tDsLU zW4R`eWe)4qVd@n1>W=C>2_-dx^U+`ZE3YvvOK8m6;az<00-P8P z$MQZK)vWM2s$2iWeK;gEalU zTyIOzLkm~(eKZ#{!`_k(wLPUh%b?q3g6`Mt!ltp96d5xmsDj-ahD2+<%kC?|mP;H? z8%Kj&z7zDd7Y9>Dl9k&EGM{o3ip`#=pkIPwk*XOTaWJ3&>^SlkN(9i?h43|C%V_fC z_c*9?x?Nz0oZS26dfw_l^-WjR;QWe7E*T@7Sf@vBxRpp(I!M;h9N<{TbNGo_sZkLGx}Jun>(}p#NL}>E8hE$1J`9$+pGIyKW*1?brkM8jxQe- zPTm@4A#BxJh?-tsS-TLvtggk)m%0D{s{VVb$i($ZVvFkL{j=(l$P6j*{-?z1%LDl# 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%0D$bDT$xN{nG`f2}Hn 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

>7Ijnanv~jzMJ52UZJ(WD&;IFu)VlyD6khpR> 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 PU!9td)tFYj#q0kIbbho$ literal 0 HcmV?d00001 diff --git a/docs/src/tutorials/inspect_results_files/figure-commonmark/cell-9-output-1.png b/docs/src/tutorials/inspect_results_files/figure-commonmark/cell-9-output-1.png new file mode 100644 index 0000000000000000000000000000000000000000..a6c133bd174309f404975c095025baf6fb3a1670 GIT binary patch literal 92057 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

>7Ijnanv~jzMJ52UZJ(WD&;IFu)VlyD6khpR> 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 PU!9td)tFYj#q0kIbbho$ literal 0 HcmV?d00001 diff --git a/docs/src/tutorials/test1_files/figure-commonmark/fig-gapminder-output-1.svg b/docs/src/tutorials/test1_files/figure-commonmark/fig-gapminder-output-1.svg new file mode 100644 index 0000000..b369147 --- /dev/null +++ b/docs/src/tutorials/test1_files/figure-commonmark/fig-gapminder-output-1.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/tutorials/test1_files/figure-commonmark/fig-limits-output-1.svg b/docs/src/tutorials/test1_files/figure-commonmark/fig-limits-output-1.svg new file mode 100644 index 0000000..995ebff --- /dev/null +++ b/docs/src/tutorials/test1_files/figure-commonmark/fig-limits-output-1.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/tutorials/test1_files/libs/bootstrap/bootstrap-0b8ec595872a4bdb2164ef456dcde0ad.min.css b/docs/src/tutorials/test1_files/libs/bootstrap/bootstrap-0b8ec595872a4bdb2164ef456dcde0ad.min.css new file mode 100644 index 0000000..2396399 --- /dev/null +++ b/docs/src/tutorials/test1_files/libs/bootstrap/bootstrap-0b8ec595872a4bdb2164ef456dcde0ad.min.css @@ -0,0 +1,12 @@ +/*! + * Bootstrap v5.3.1 (https://getbootstrap.com/) + * Copyright 2011-2023 The Bootstrap Authors + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */:root,[data-bs-theme=light]{--bs-blue: #0d6efd;--bs-indigo: #6610f2;--bs-purple: #6f42c1;--bs-pink: #d63384;--bs-red: #dc3545;--bs-orange: #fd7e14;--bs-yellow: #ffc107;--bs-green: #198754;--bs-teal: #20c997;--bs-cyan: #0dcaf0;--bs-black: #000;--bs-white: #ffffff;--bs-gray: #6c757d;--bs-gray-dark: #343a40;--bs-gray-100: #f8f9fa;--bs-gray-200: #e9ecef;--bs-gray-300: #dee2e6;--bs-gray-400: #ced4da;--bs-gray-500: #adb5bd;--bs-gray-600: #6c757d;--bs-gray-700: #495057;--bs-gray-800: #343a40;--bs-gray-900: #212529;--bs-default: #dee2e6;--bs-primary: #0d6efd;--bs-secondary: #6c757d;--bs-success: #198754;--bs-info: #0dcaf0;--bs-warning: #ffc107;--bs-danger: #dc3545;--bs-light: #f8f9fa;--bs-dark: #212529;--bs-default-rgb: 222, 226, 230;--bs-primary-rgb: 13, 110, 253;--bs-secondary-rgb: 108, 117, 125;--bs-success-rgb: 25, 135, 84;--bs-info-rgb: 13, 202, 240;--bs-warning-rgb: 255, 193, 7;--bs-danger-rgb: 220, 53, 69;--bs-light-rgb: 248, 249, 250;--bs-dark-rgb: 33, 37, 41;--bs-primary-text-emphasis: #052c65;--bs-secondary-text-emphasis: #2b2f32;--bs-success-text-emphasis: #0a3622;--bs-info-text-emphasis: #055160;--bs-warning-text-emphasis: #664d03;--bs-danger-text-emphasis: #58151c;--bs-light-text-emphasis: #495057;--bs-dark-text-emphasis: #495057;--bs-primary-bg-subtle: #cfe2ff;--bs-secondary-bg-subtle: #e2e3e5;--bs-success-bg-subtle: #d1e7dd;--bs-info-bg-subtle: #cff4fc;--bs-warning-bg-subtle: #fff3cd;--bs-danger-bg-subtle: #f8d7da;--bs-light-bg-subtle: #fcfcfd;--bs-dark-bg-subtle: #ced4da;--bs-primary-border-subtle: #9ec5fe;--bs-secondary-border-subtle: #c4c8cb;--bs-success-border-subtle: #a3cfbb;--bs-info-border-subtle: #9eeaf9;--bs-warning-border-subtle: #ffe69c;--bs-danger-border-subtle: #f1aeb5;--bs-light-border-subtle: #e9ecef;--bs-dark-border-subtle: #adb5bd;--bs-white-rgb: 255, 255, 255;--bs-black-rgb: 0, 0, 0;--bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-root-font-size: 17px;--bs-body-font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--bs-body-font-size:1rem;--bs-body-font-weight: 400;--bs-body-line-height: 1.5;--bs-body-color: #212529;--bs-body-color-rgb: 33, 37, 41;--bs-body-bg: #ffffff;--bs-body-bg-rgb: 255, 255, 255;--bs-emphasis-color: #000;--bs-emphasis-color-rgb: 0, 0, 0;--bs-secondary-color: rgba(33, 37, 41, 0.75);--bs-secondary-color-rgb: 33, 37, 41;--bs-secondary-bg: #e9ecef;--bs-secondary-bg-rgb: 233, 236, 239;--bs-tertiary-color: rgba(33, 37, 41, 0.5);--bs-tertiary-color-rgb: 33, 37, 41;--bs-tertiary-bg: #f8f9fa;--bs-tertiary-bg-rgb: 248, 249, 250;--bs-heading-color: inherit;--bs-link-color: #0d6efd;--bs-link-color-rgb: 13, 110, 253;--bs-link-decoration: underline;--bs-link-hover-color: #0a58ca;--bs-link-hover-color-rgb: 10, 88, 202;--bs-code-color: #7d12ba;--bs-highlight-bg: #fff3cd;--bs-border-width: 1px;--bs-border-style: solid;--bs-border-color: #dededf;--bs-border-color-translucent: rgba(0, 0, 0, 0.175);--bs-border-radius: 0.375rem;--bs-border-radius-sm: 0.25rem;--bs-border-radius-lg: 0.5rem;--bs-border-radius-xl: 1rem;--bs-border-radius-xxl: 2rem;--bs-border-radius-2xl: var(--bs-border-radius-xxl);--bs-border-radius-pill: 50rem;--bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175);--bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075);--bs-focus-ring-width: 0.25rem;--bs-focus-ring-opacity: 0.25;--bs-focus-ring-color: rgba(13, 110, 253, 0.25);--bs-form-valid-color: #198754;--bs-form-valid-border-color: #198754;--bs-form-invalid-color: #dc3545;--bs-form-invalid-border-color: #dc3545}[data-bs-theme=dark]{color-scheme:dark;--bs-body-color: #dee2e6;--bs-body-color-rgb: 222, 226, 230;--bs-body-bg: #212529;--bs-body-bg-rgb: 33, 37, 41;--bs-emphasis-color: #ffffff;--bs-emphasis-color-rgb: 255, 255, 255;--bs-secondary-color: rgba(222, 226, 230, 0.75);--bs-secondary-color-rgb: 222, 226, 230;--bs-secondary-bg: #343a40;--bs-secondary-bg-rgb: 52, 58, 64;--bs-tertiary-color: rgba(222, 226, 230, 0.5);--bs-tertiary-color-rgb: 222, 226, 230;--bs-tertiary-bg: #2b3035;--bs-tertiary-bg-rgb: 43, 48, 53;--bs-primary-text-emphasis: #6ea8fe;--bs-secondary-text-emphasis: #a7acb1;--bs-success-text-emphasis: #75b798;--bs-info-text-emphasis: #6edff6;--bs-warning-text-emphasis: #ffda6a;--bs-danger-text-emphasis: #ea868f;--bs-light-text-emphasis: #f8f9fa;--bs-dark-text-emphasis: #dee2e6;--bs-primary-bg-subtle: #031633;--bs-secondary-bg-subtle: #161719;--bs-success-bg-subtle: #051b11;--bs-info-bg-subtle: #032830;--bs-warning-bg-subtle: #332701;--bs-danger-bg-subtle: #2c0b0e;--bs-light-bg-subtle: #343a40;--bs-dark-bg-subtle: #1a1d20;--bs-primary-border-subtle: #084298;--bs-secondary-border-subtle: #41464b;--bs-success-border-subtle: #0f5132;--bs-info-border-subtle: #087990;--bs-warning-border-subtle: #997404;--bs-danger-border-subtle: #842029;--bs-light-border-subtle: #495057;--bs-dark-border-subtle: #343a40;--bs-heading-color: inherit;--bs-link-color: #6ea8fe;--bs-link-hover-color: #8bb9fe;--bs-link-color-rgb: 110, 168, 254;--bs-link-hover-color-rgb: 139, 185, 254;--bs-code-color: white;--bs-border-color: #495057;--bs-border-color-translucent: rgba(255, 255, 255, 0.15);--bs-form-valid-color: #75b798;--bs-form-valid-border-color: #75b798;--bs-form-invalid-color: #ea868f;--bs-form-invalid-border-color: #ea868f}*,*::before,*::after{box-sizing:border-box}:root{font-size:var(--bs-root-font-size)}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}hr{margin:1rem 0;color:inherit;border:0;border-top:1px solid;opacity:.25}h6,.h6,h5,.h5,h4,.h4,h3,.h3,h2,.h2,h1,.h1{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2;color:var(--bs-heading-color)}h1,.h1{font-size:calc(1.325rem + 0.9vw)}@media(min-width: 1200px){h1,.h1{font-size:2rem}}h2,.h2{font-size:calc(1.29rem + 0.48vw)}@media(min-width: 1200px){h2,.h2{font-size:1.65rem}}h3,.h3{font-size:calc(1.27rem + 0.24vw)}@media(min-width: 1200px){h3,.h3{font-size:1.45rem}}h4,.h4{font-size:1.25rem}h5,.h5{font-size:1.1rem}h6,.h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{text-decoration:underline dotted;-webkit-text-decoration:underline dotted;-moz-text-decoration:underline dotted;-ms-text-decoration:underline dotted;-o-text-decoration:underline dotted;cursor:help;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem;padding:.625rem 1.25rem;border-left:.25rem solid #e9ecef}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}b,strong{font-weight:bolder}small,.small{font-size:0.875em}mark,.mark{padding:.1875em;background-color:var(--bs-highlight-bg)}sub,sup{position:relative;font-size:0.75em;line-height:0;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}a{color:rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 1));text-decoration:underline;-webkit-text-decoration:underline;-moz-text-decoration:underline;-ms-text-decoration:underline;-o-text-decoration:underline}a:hover{--bs-link-color-rgb: var(--bs-link-hover-color-rgb)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:0.875em;color:#000;background-color:#f8f9fa;line-height:1.5;padding:.5rem;border:1px solid var(--bs-border-color, #dededf);border-radius:.375rem}pre code{background-color:rgba(0,0,0,0);font-size:inherit;color:inherit;word-break:normal}code{font-size:0.875em;color:var(--bs-code-color);background-color:#f8f9fa;border-radius:.375rem;padding:.125rem .25rem;word-wrap:break-word}a>code{color:inherit}kbd{padding:.4rem .4rem;font-size:0.875em;color:#fff;background-color:#212529;border-radius:.25rem}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:rgba(33,37,41,.75);text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}thead,tbody,tfoot,tr,td,th{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none !important}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button:not(:disabled),[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + 0.3vw);line-height:inherit}@media(min-width: 1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-text,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none !important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-6{font-size:2.5rem}}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:0.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:0.875em;color:#6c757d}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dededf;border-radius:.375rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:0.875em;color:rgba(33,37,41,.75)}.container,.container-fluid,.container-xxl,.container-xl,.container-lg,.container-md,.container-sm{--bs-gutter-x: 1.5rem;--bs-gutter-y: 0;width:100%;padding-right:calc(var(--bs-gutter-x)*.5);padding-left:calc(var(--bs-gutter-x)*.5);margin-right:auto;margin-left:auto}@media(min-width: 576px){.container-sm,.container{max-width:540px}}@media(min-width: 768px){.container-md,.container-sm,.container{max-width:720px}}@media(min-width: 992px){.container-lg,.container-md,.container-sm,.container{max-width:960px}}@media(min-width: 1200px){.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1140px}}@media(min-width: 1400px){.container-xxl,.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1320px}}body.quarto-light .dark-content{display:none}body.quarto-dark .light-content{display:none}:root{--bs-breakpoint-xs: 0;--bs-breakpoint-sm: 576px;--bs-breakpoint-md: 768px;--bs-breakpoint-lg: 992px;--bs-breakpoint-xl: 1200px;--bs-breakpoint-xxl: 1400px}.grid{display:grid;grid-template-rows:repeat(var(--bs-rows, 1), 1fr);grid-template-columns:repeat(var(--bs-columns, 12), 1fr);gap:var(--bs-gap, 1.5rem)}.grid .g-col-1{grid-column:auto/span 1}.grid .g-col-2{grid-column:auto/span 2}.grid .g-col-3{grid-column:auto/span 3}.grid .g-col-4{grid-column:auto/span 4}.grid .g-col-5{grid-column:auto/span 5}.grid .g-col-6{grid-column:auto/span 6}.grid .g-col-7{grid-column:auto/span 7}.grid .g-col-8{grid-column:auto/span 8}.grid .g-col-9{grid-column:auto/span 9}.grid .g-col-10{grid-column:auto/span 10}.grid .g-col-11{grid-column:auto/span 11}.grid .g-col-12{grid-column:auto/span 12}.grid .g-start-1{grid-column-start:1}.grid .g-start-2{grid-column-start:2}.grid .g-start-3{grid-column-start:3}.grid .g-start-4{grid-column-start:4}.grid .g-start-5{grid-column-start:5}.grid .g-start-6{grid-column-start:6}.grid .g-start-7{grid-column-start:7}.grid .g-start-8{grid-column-start:8}.grid .g-start-9{grid-column-start:9}.grid .g-start-10{grid-column-start:10}.grid .g-start-11{grid-column-start:11}@media(min-width: 576px){.grid .g-col-sm-1{grid-column:auto/span 1}.grid .g-col-sm-2{grid-column:auto/span 2}.grid .g-col-sm-3{grid-column:auto/span 3}.grid .g-col-sm-4{grid-column:auto/span 4}.grid .g-col-sm-5{grid-column:auto/span 5}.grid .g-col-sm-6{grid-column:auto/span 6}.grid .g-col-sm-7{grid-column:auto/span 7}.grid .g-col-sm-8{grid-column:auto/span 8}.grid .g-col-sm-9{grid-column:auto/span 9}.grid .g-col-sm-10{grid-column:auto/span 10}.grid .g-col-sm-11{grid-column:auto/span 11}.grid .g-col-sm-12{grid-column:auto/span 12}.grid .g-start-sm-1{grid-column-start:1}.grid .g-start-sm-2{grid-column-start:2}.grid .g-start-sm-3{grid-column-start:3}.grid .g-start-sm-4{grid-column-start:4}.grid .g-start-sm-5{grid-column-start:5}.grid .g-start-sm-6{grid-column-start:6}.grid .g-start-sm-7{grid-column-start:7}.grid .g-start-sm-8{grid-column-start:8}.grid .g-start-sm-9{grid-column-start:9}.grid .g-start-sm-10{grid-column-start:10}.grid .g-start-sm-11{grid-column-start:11}}@media(min-width: 768px){.grid .g-col-md-1{grid-column:auto/span 1}.grid .g-col-md-2{grid-column:auto/span 2}.grid .g-col-md-3{grid-column:auto/span 3}.grid .g-col-md-4{grid-column:auto/span 4}.grid .g-col-md-5{grid-column:auto/span 5}.grid .g-col-md-6{grid-column:auto/span 6}.grid .g-col-md-7{grid-column:auto/span 7}.grid .g-col-md-8{grid-column:auto/span 8}.grid .g-col-md-9{grid-column:auto/span 9}.grid .g-col-md-10{grid-column:auto/span 10}.grid .g-col-md-11{grid-column:auto/span 11}.grid .g-col-md-12{grid-column:auto/span 12}.grid .g-start-md-1{grid-column-start:1}.grid .g-start-md-2{grid-column-start:2}.grid .g-start-md-3{grid-column-start:3}.grid .g-start-md-4{grid-column-start:4}.grid .g-start-md-5{grid-column-start:5}.grid .g-start-md-6{grid-column-start:6}.grid .g-start-md-7{grid-column-start:7}.grid .g-start-md-8{grid-column-start:8}.grid .g-start-md-9{grid-column-start:9}.grid .g-start-md-10{grid-column-start:10}.grid .g-start-md-11{grid-column-start:11}}@media(min-width: 992px){.grid .g-col-lg-1{grid-column:auto/span 1}.grid .g-col-lg-2{grid-column:auto/span 2}.grid .g-col-lg-3{grid-column:auto/span 3}.grid .g-col-lg-4{grid-column:auto/span 4}.grid .g-col-lg-5{grid-column:auto/span 5}.grid .g-col-lg-6{grid-column:auto/span 6}.grid .g-col-lg-7{grid-column:auto/span 7}.grid .g-col-lg-8{grid-column:auto/span 8}.grid .g-col-lg-9{grid-column:auto/span 9}.grid .g-col-lg-10{grid-column:auto/span 10}.grid .g-col-lg-11{grid-column:auto/span 11}.grid .g-col-lg-12{grid-column:auto/span 12}.grid .g-start-lg-1{grid-column-start:1}.grid .g-start-lg-2{grid-column-start:2}.grid .g-start-lg-3{grid-column-start:3}.grid .g-start-lg-4{grid-column-start:4}.grid .g-start-lg-5{grid-column-start:5}.grid .g-start-lg-6{grid-column-start:6}.grid .g-start-lg-7{grid-column-start:7}.grid .g-start-lg-8{grid-column-start:8}.grid .g-start-lg-9{grid-column-start:9}.grid .g-start-lg-10{grid-column-start:10}.grid .g-start-lg-11{grid-column-start:11}}@media(min-width: 1200px){.grid .g-col-xl-1{grid-column:auto/span 1}.grid .g-col-xl-2{grid-column:auto/span 2}.grid .g-col-xl-3{grid-column:auto/span 3}.grid .g-col-xl-4{grid-column:auto/span 4}.grid .g-col-xl-5{grid-column:auto/span 5}.grid .g-col-xl-6{grid-column:auto/span 6}.grid .g-col-xl-7{grid-column:auto/span 7}.grid .g-col-xl-8{grid-column:auto/span 8}.grid .g-col-xl-9{grid-column:auto/span 9}.grid .g-col-xl-10{grid-column:auto/span 10}.grid .g-col-xl-11{grid-column:auto/span 11}.grid .g-col-xl-12{grid-column:auto/span 12}.grid .g-start-xl-1{grid-column-start:1}.grid .g-start-xl-2{grid-column-start:2}.grid .g-start-xl-3{grid-column-start:3}.grid .g-start-xl-4{grid-column-start:4}.grid .g-start-xl-5{grid-column-start:5}.grid .g-start-xl-6{grid-column-start:6}.grid .g-start-xl-7{grid-column-start:7}.grid .g-start-xl-8{grid-column-start:8}.grid .g-start-xl-9{grid-column-start:9}.grid .g-start-xl-10{grid-column-start:10}.grid .g-start-xl-11{grid-column-start:11}}@media(min-width: 1400px){.grid .g-col-xxl-1{grid-column:auto/span 1}.grid .g-col-xxl-2{grid-column:auto/span 2}.grid .g-col-xxl-3{grid-column:auto/span 3}.grid .g-col-xxl-4{grid-column:auto/span 4}.grid .g-col-xxl-5{grid-column:auto/span 5}.grid .g-col-xxl-6{grid-column:auto/span 6}.grid .g-col-xxl-7{grid-column:auto/span 7}.grid .g-col-xxl-8{grid-column:auto/span 8}.grid .g-col-xxl-9{grid-column:auto/span 9}.grid .g-col-xxl-10{grid-column:auto/span 10}.grid .g-col-xxl-11{grid-column:auto/span 11}.grid .g-col-xxl-12{grid-column:auto/span 12}.grid .g-start-xxl-1{grid-column-start:1}.grid .g-start-xxl-2{grid-column-start:2}.grid .g-start-xxl-3{grid-column-start:3}.grid .g-start-xxl-4{grid-column-start:4}.grid .g-start-xxl-5{grid-column-start:5}.grid .g-start-xxl-6{grid-column-start:6}.grid .g-start-xxl-7{grid-column-start:7}.grid .g-start-xxl-8{grid-column-start:8}.grid .g-start-xxl-9{grid-column-start:9}.grid .g-start-xxl-10{grid-column-start:10}.grid .g-start-xxl-11{grid-column-start:11}}.table{--bs-table-color-type: initial;--bs-table-bg-type: initial;--bs-table-color-state: initial;--bs-table-bg-state: initial;--bs-table-color: #212529;--bs-table-bg: #ffffff;--bs-table-border-color: #dededf;--bs-table-accent-bg: transparent;--bs-table-striped-color: #212529;--bs-table-striped-bg: rgba(0, 0, 0, 0.05);--bs-table-active-color: #212529;--bs-table-active-bg: rgba(0, 0, 0, 0.1);--bs-table-hover-color: #212529;--bs-table-hover-bg: rgba(0, 0, 0, 0.075);width:100%;margin-bottom:1rem;vertical-align:top;border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*{padding:.5rem .5rem;color:var(--bs-table-color-state, var(--bs-table-color-type, var(--bs-table-color)));background-color:var(--bs-table-bg);border-bottom-width:1px;box-shadow:inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg)))}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-top:calc(1px * 2) solid #909294}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:1px 0}.table-bordered>:not(caption)>*>*{border-width:0 1px}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-color-type: var(--bs-table-striped-color);--bs-table-bg-type: var(--bs-table-striped-bg)}.table-striped-columns>:not(caption)>tr>:nth-child(even){--bs-table-color-type: var(--bs-table-striped-color);--bs-table-bg-type: var(--bs-table-striped-bg)}.table-active{--bs-table-color-state: var(--bs-table-active-color);--bs-table-bg-state: var(--bs-table-active-bg)}.table-hover>tbody>tr:hover>*{--bs-table-color-state: var(--bs-table-hover-color);--bs-table-bg-state: var(--bs-table-hover-bg)}.table-primary{--bs-table-color: #000;--bs-table-bg: #cfe2ff;--bs-table-border-color: #bacbe6;--bs-table-striped-bg: #c5d7f2;--bs-table-striped-color: #000;--bs-table-active-bg: #bacbe6;--bs-table-active-color: #000;--bs-table-hover-bg: #bfd1ec;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-secondary{--bs-table-color: #000;--bs-table-bg: #e2e3e5;--bs-table-border-color: #cbccce;--bs-table-striped-bg: #d7d8da;--bs-table-striped-color: #000;--bs-table-active-bg: #cbccce;--bs-table-active-color: #000;--bs-table-hover-bg: #d1d2d4;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-success{--bs-table-color: #000;--bs-table-bg: #d1e7dd;--bs-table-border-color: #bcd0c7;--bs-table-striped-bg: #c7dbd2;--bs-table-striped-color: #000;--bs-table-active-bg: #bcd0c7;--bs-table-active-color: #000;--bs-table-hover-bg: #c1d6cc;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-info{--bs-table-color: #000;--bs-table-bg: #cff4fc;--bs-table-border-color: #badce3;--bs-table-striped-bg: #c5e8ef;--bs-table-striped-color: #000;--bs-table-active-bg: #badce3;--bs-table-active-color: #000;--bs-table-hover-bg: #bfe2e9;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-warning{--bs-table-color: #000;--bs-table-bg: #fff3cd;--bs-table-border-color: #e6dbb9;--bs-table-striped-bg: #f2e7c3;--bs-table-striped-color: #000;--bs-table-active-bg: #e6dbb9;--bs-table-active-color: #000;--bs-table-hover-bg: #ece1be;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-danger{--bs-table-color: #000;--bs-table-bg: #f8d7da;--bs-table-border-color: #dfc2c4;--bs-table-striped-bg: #eccccf;--bs-table-striped-color: #000;--bs-table-active-bg: #dfc2c4;--bs-table-active-color: #000;--bs-table-hover-bg: #e5c7ca;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-light{--bs-table-color: #000;--bs-table-bg: #f8f9fa;--bs-table-border-color: #dfe0e1;--bs-table-striped-bg: #ecedee;--bs-table-striped-color: #000;--bs-table-active-bg: #dfe0e1;--bs-table-active-color: #000;--bs-table-hover-bg: #e5e6e7;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-dark{--bs-table-color: #ffffff;--bs-table-bg: #212529;--bs-table-border-color: #373b3e;--bs-table-striped-bg: #2c3034;--bs-table-striped-color: #ffffff;--bs-table-active-bg: #373b3e;--bs-table-active-color: #ffffff;--bs-table-hover-bg: #323539;--bs-table-hover-color: #ffffff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media(max-width: 575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label,.shiny-input-container .control-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(0.375rem + 1px);padding-bottom:calc(0.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(0.5rem + 1px);padding-bottom:calc(0.5rem + 1px);font-size:1.25rem}.col-form-label-sm{padding-top:calc(0.25rem + 1px);padding-bottom:calc(0.25rem + 1px);font-size:0.875rem}.form-text{margin-top:.25rem;font-size:0.875em;color:rgba(33,37,41,.75)}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:#fff;background-clip:padding-box;border:1px solid #dededf;border-radius:.375rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:#212529;background-color:#fff;border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-control::-webkit-date-and-time-value{min-width:85px;height:1.5em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::placeholder{color:rgba(33,37,41,.75);opacity:1}.form-control:disabled{background-color:#e9ecef;opacity:1}.form-control::file-selector-button{padding:.375rem .75rem;margin:-0.375rem -0.75rem;margin-inline-end:.75rem;color:#212529;background-color:#f8f9fa;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#e9ecef}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:#212529;background-color:rgba(0,0,0,0);border:solid rgba(0,0,0,0);border-width:1px 0}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + 0.5rem + calc(1px * 2));padding:.25rem .5rem;font-size:0.875rem;border-radius:.25rem}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-0.25rem -0.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + calc(1px * 2));padding:.5rem 1rem;font-size:1.25rem;border-radius:.5rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-0.5rem -1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + 0.75rem + calc(1px * 2))}textarea.form-control-sm{min-height:calc(1.5em + 0.5rem + calc(1px * 2))}textarea.form-control-lg{min-height:calc(1.5em + 1rem + calc(1px * 2))}.form-control-color{width:3rem;height:calc(1.5em + 0.75rem + calc(1px * 2));padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0 !important;border-radius:.375rem}.form-control-color::-webkit-color-swatch{border:0 !important;border-radius:.375rem}.form-control-color.form-control-sm{height:calc(1.5em + 0.5rem + calc(1px * 2))}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + calc(1px * 2))}.form-select{--bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:#fff;background-image:var(--bs-form-select-bg-img),var(--bs-form-select-bg-icon, none);background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:1px solid #dededf;border-radius:.375rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-select{transition:none}}.form-select:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:#e9ecef}.form-select:-moz-focusring{color:rgba(0,0,0,0);text-shadow:0 0 0 #212529}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:0.875rem;border-radius:.25rem}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:.5rem}[data-bs-theme=dark] .form-select{--bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}.form-check,.shiny-input-container .checkbox,.shiny-input-container .radio{display:block;min-height:1.5rem;padding-left:0;margin-bottom:.125rem}.form-check .form-check-input,.form-check .shiny-input-container .checkbox input,.form-check .shiny-input-container .radio input,.shiny-input-container .checkbox .form-check-input,.shiny-input-container .checkbox .shiny-input-container .checkbox input,.shiny-input-container .checkbox .shiny-input-container .radio input,.shiny-input-container .radio .form-check-input,.shiny-input-container .radio .shiny-input-container .checkbox input,.shiny-input-container .radio .shiny-input-container .radio input{float:left;margin-left:0}.form-check-reverse{padding-right:0;padding-left:0;text-align:right}.form-check-reverse .form-check-input{float:right;margin-right:0;margin-left:0}.form-check-input,.shiny-input-container .checkbox input,.shiny-input-container .checkbox-inline input,.shiny-input-container .radio input,.shiny-input-container .radio-inline input{--bs-form-check-bg: #ffffff;width:1em;height:1em;margin-top:.25em;vertical-align:top;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:var(--bs-form-check-bg);background-image:var(--bs-form-check-bg-image);background-repeat:no-repeat;background-position:center;background-size:contain;border:1px solid #dededf;print-color-adjust:exact}.form-check-input[type=checkbox],.shiny-input-container .checkbox input[type=checkbox],.shiny-input-container .checkbox-inline input[type=checkbox],.shiny-input-container .radio input[type=checkbox],.shiny-input-container .radio-inline input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio],.shiny-input-container .checkbox input[type=radio],.shiny-input-container .checkbox-inline input[type=radio],.shiny-input-container .radio input[type=radio],.shiny-input-container .radio-inline input[type=radio]{border-radius:50%}.form-check-input:active,.shiny-input-container .checkbox input:active,.shiny-input-container .checkbox-inline input:active,.shiny-input-container .radio input:active,.shiny-input-container .radio-inline input:active{filter:brightness(90%)}.form-check-input:focus,.shiny-input-container .checkbox input:focus,.shiny-input-container .checkbox-inline input:focus,.shiny-input-container .radio input:focus,.shiny-input-container .radio-inline input:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-check-input:checked,.shiny-input-container .checkbox input:checked,.shiny-input-container .checkbox-inline input:checked,.shiny-input-container .radio input:checked,.shiny-input-container .radio-inline input:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check-input:checked[type=checkbox],.shiny-input-container .checkbox input:checked[type=checkbox],.shiny-input-container .checkbox-inline input:checked[type=checkbox],.shiny-input-container .radio input:checked[type=checkbox],.shiny-input-container .radio-inline input:checked[type=checkbox]{--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio],.shiny-input-container .checkbox input:checked[type=radio],.shiny-input-container .checkbox-inline input:checked[type=radio],.shiny-input-container .radio input:checked[type=radio],.shiny-input-container .radio-inline input:checked[type=radio]{--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23ffffff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate,.shiny-input-container .checkbox input[type=checkbox]:indeterminate,.shiny-input-container .checkbox-inline input[type=checkbox]:indeterminate,.shiny-input-container .radio input[type=checkbox]:indeterminate,.shiny-input-container .radio-inline input[type=checkbox]:indeterminate{background-color:#0d6efd;border-color:#0d6efd;--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled,.shiny-input-container .checkbox input:disabled,.shiny-input-container .checkbox-inline input:disabled,.shiny-input-container .radio input:disabled,.shiny-input-container .radio-inline input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input[disabled]~.form-check-label,.form-check-input[disabled]~span,.form-check-input:disabled~.form-check-label,.form-check-input:disabled~span,.shiny-input-container .checkbox input[disabled]~.form-check-label,.shiny-input-container .checkbox input[disabled]~span,.shiny-input-container .checkbox input:disabled~.form-check-label,.shiny-input-container .checkbox input:disabled~span,.shiny-input-container .checkbox-inline input[disabled]~.form-check-label,.shiny-input-container .checkbox-inline input[disabled]~span,.shiny-input-container .checkbox-inline input:disabled~.form-check-label,.shiny-input-container .checkbox-inline input:disabled~span,.shiny-input-container .radio input[disabled]~.form-check-label,.shiny-input-container .radio input[disabled]~span,.shiny-input-container .radio input:disabled~.form-check-label,.shiny-input-container .radio input:disabled~span,.shiny-input-container .radio-inline input[disabled]~.form-check-label,.shiny-input-container .radio-inline input[disabled]~span,.shiny-input-container .radio-inline input:disabled~.form-check-label,.shiny-input-container .radio-inline input:disabled~span{cursor:default;opacity:.5}.form-check-label,.shiny-input-container .checkbox label,.shiny-input-container .checkbox-inline label,.shiny-input-container .radio label,.shiny-input-container .radio-inline label{cursor:pointer}.form-switch{padding-left:2.5em}.form-switch .form-check-input{--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");width:2em;margin-left:-2.5em;background-image:var(--bs-form-switch-bg);background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23ffffff'/%3e%3c/svg%3e")}.form-switch.form-check-reverse{padding-right:2.5em;padding-left:0}.form-switch.form-check-reverse .form-check-input{margin-right:-2.5em;margin-left:0}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.btn-check[disabled]+.btn,.btn-check:disabled+.btn{pointer-events:none;filter:none;opacity:.65}[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus){--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e")}.form-range{width:100%;height:1.5rem;padding:0;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:rgba(0,0,0,0)}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-0.25rem;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-range::-webkit-slider-thumb{transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:rgba(0,0,0,0);cursor:pointer;background-color:#f8f9fa;border-color:rgba(0,0,0,0);border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-range::-moz-range-thumb{transition:none}}.form-range::-moz-range-thumb:active{background-color:#b6d4fe}.form-range::-moz-range-track{width:100%;height:.5rem;color:rgba(0,0,0,0);cursor:pointer;background-color:#f8f9fa;border-color:rgba(0,0,0,0);border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:rgba(33,37,41,.75)}.form-range:disabled::-moz-range-thumb{background-color:rgba(33,37,41,.75)}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + calc(1px * 2));min-height:calc(3.5rem + calc(1px * 2));line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;z-index:2;height:100%;padding:1rem .75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:1px solid rgba(0,0,0,0);transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media(prefers-reduced-motion: reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem .75rem}.form-floating>.form-control::placeholder,.form-floating>.form-control-plaintext::placeholder{color:rgba(0,0,0,0)}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown),.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill,.form-floating>.form-control-plaintext:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-control-plaintext~label,.form-floating>.form-select~label{color:rgba(var(--bs-body-color-rgb), 0.65);transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.form-floating>.form-control:focus~label::after,.form-floating>.form-control:not(:placeholder-shown)~label::after,.form-floating>.form-control-plaintext~label::after,.form-floating>.form-select~label::after{position:absolute;inset:1rem .375rem;z-index:-1;height:1.5em;content:"";background-color:#fff;border-radius:.375rem}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--bs-body-color-rgb), 0.65);transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.form-floating>.form-control-plaintext~label{border-width:1px 0}.form-floating>:disabled~label,.form-floating>.form-control:disabled~label{color:#6c757d}.form-floating>:disabled~label::after,.form-floating>.form-control:disabled~label::after{background-color:#e9ecef}.input-group{position:relative;display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;align-items:stretch;-webkit-align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select,.input-group>.form-floating{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus,.input-group>.form-floating:focus-within{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:5}.input-group-text{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:center;white-space:nowrap;background-color:#f8f9fa;border:1px solid #dededf;border-radius:.375rem}.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text,.input-group-lg>.btn{padding:.5rem 1rem;font-size:1.25rem;border-radius:.5rem}.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text,.input-group-sm>.btn{padding:.25rem .5rem;font-size:0.875rem;border-radius:.25rem}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:calc(1px * -1);border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:0.875em;color:#198754}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:0.875rem;color:#fff;background-color:#198754;border-radius:.375rem}.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip,.is-valid~.valid-feedback,.is-valid~.valid-tooltip{display:block}.was-validated .form-control:valid,.form-control.is-valid{border-color:#198754;padding-right:calc(1.5em + 0.75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(0.375em + 0.1875rem) center;background-size:calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:#198754;box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + 0.75rem);background-position:top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem)}.was-validated .form-select:valid,.form-select.is-valid{border-color:#198754}.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"],.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"]{--bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-select:valid:focus,.form-select.is-valid:focus{border-color:#198754;box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.was-validated .form-control-color:valid,.form-control-color.is-valid{width:calc(3rem + calc(1.5em + 0.75rem))}.was-validated .form-check-input:valid,.form-check-input.is-valid{border-color:#198754}.was-validated .form-check-input:valid:checked,.form-check-input.is-valid:checked{background-color:#198754}.was-validated .form-check-input:valid:focus,.form-check-input.is-valid:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:#198754}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.was-validated .input-group>.form-control:not(:focus):valid,.input-group>.form-control:not(:focus).is-valid,.was-validated .input-group>.form-select:not(:focus):valid,.input-group>.form-select:not(:focus).is-valid,.was-validated .input-group>.form-floating:not(:focus-within):valid,.input-group>.form-floating:not(:focus-within).is-valid{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:0.875em;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:0.875rem;color:#fff;background-color:#dc3545;border-radius:.375rem}.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip,.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip{display:block}.was-validated .form-control:invalid,.form-control.is-invalid{border-color:#dc3545;padding-right:calc(1.5em + 0.75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(0.375em + 0.1875rem) center;background-size:calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + 0.75rem);background-position:top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem)}.was-validated .form-select:invalid,.form-select.is-invalid{border-color:#dc3545}.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"],.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"]{--bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-select:invalid:focus,.form-select.is-invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.was-validated .form-control-color:invalid,.form-control-color.is-invalid{width:calc(3rem + calc(1.5em + 0.75rem))}.was-validated .form-check-input:invalid,.form-check-input.is-invalid{border-color:#dc3545}.was-validated .form-check-input:invalid:checked,.form-check-input.is-invalid:checked{background-color:#dc3545}.was-validated .form-check-input:invalid:focus,.form-check-input.is-invalid:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label{color:#dc3545}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.was-validated .input-group>.form-control:not(:focus):invalid,.input-group>.form-control:not(:focus).is-invalid,.was-validated .input-group>.form-select:not(:focus):invalid,.input-group>.form-select:not(:focus).is-invalid,.was-validated .input-group>.form-floating:not(:focus-within):invalid,.input-group>.form-floating:not(:focus-within).is-invalid{z-index:4}.btn{--bs-btn-padding-x: 0.75rem;--bs-btn-padding-y: 0.375rem;--bs-btn-font-family: ;--bs-btn-font-size:1rem;--bs-btn-font-weight: 400;--bs-btn-line-height: 1.5;--bs-btn-color: #212529;--bs-btn-bg: transparent;--bs-btn-border-width: 1px;--bs-btn-border-color: transparent;--bs-btn-border-radius: 0.375rem;--bs-btn-hover-border-color: transparent;--bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);--bs-btn-disabled-opacity: 0.65;--bs-btn-focus-box-shadow: 0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);display:inline-block;padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);color:var(--bs-btn-color);text-align:center;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;vertical-align:middle;cursor:pointer;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);background-color:var(--bs-btn-bg);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.btn{transition:none}}.btn:hover{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color)}.btn-check+.btn:hover{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color)}.btn:focus-visible{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:focus-visible+.btn{border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked+.btn,:not(.btn-check)+.btn:active,.btn:first-child:active,.btn.active,.btn.show{color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg);border-color:var(--bs-btn-active-border-color)}.btn-check:checked+.btn:focus-visible,:not(.btn-check)+.btn:active:focus-visible,.btn:first-child:active:focus-visible,.btn.active:focus-visible,.btn.show:focus-visible{box-shadow:var(--bs-btn-focus-box-shadow)}.btn:disabled,.btn.disabled,fieldset:disabled .btn{color:var(--bs-btn-disabled-color);pointer-events:none;background-color:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);opacity:var(--bs-btn-disabled-opacity)}.btn-default{--bs-btn-color: #000;--bs-btn-bg: #dee2e6;--bs-btn-border-color: #dee2e6;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #e3e6ea;--bs-btn-hover-border-color: #e1e5e9;--bs-btn-focus-shadow-rgb: 189, 192, 196;--bs-btn-active-color: #000;--bs-btn-active-bg: #e5e8eb;--bs-btn-active-border-color: #e1e5e9;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #dee2e6;--bs-btn-disabled-border-color: #dee2e6}.btn-primary{--bs-btn-color: #ffffff;--bs-btn-bg: #0d6efd;--bs-btn-border-color: #0d6efd;--bs-btn-hover-color: #ffffff;--bs-btn-hover-bg: #0b5ed7;--bs-btn-hover-border-color: #0a58ca;--bs-btn-focus-shadow-rgb: 49, 132, 253;--bs-btn-active-color: #ffffff;--bs-btn-active-bg: #0a58ca;--bs-btn-active-border-color: #0a53be;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #ffffff;--bs-btn-disabled-bg: #0d6efd;--bs-btn-disabled-border-color: #0d6efd}.btn-secondary{--bs-btn-color: #ffffff;--bs-btn-bg: #6c757d;--bs-btn-border-color: #6c757d;--bs-btn-hover-color: #ffffff;--bs-btn-hover-bg: #5c636a;--bs-btn-hover-border-color: #565e64;--bs-btn-focus-shadow-rgb: 130, 138, 145;--bs-btn-active-color: #ffffff;--bs-btn-active-bg: #565e64;--bs-btn-active-border-color: #51585e;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #ffffff;--bs-btn-disabled-bg: #6c757d;--bs-btn-disabled-border-color: #6c757d}.btn-success{--bs-btn-color: #ffffff;--bs-btn-bg: #198754;--bs-btn-border-color: #198754;--bs-btn-hover-color: #ffffff;--bs-btn-hover-bg: #157347;--bs-btn-hover-border-color: #146c43;--bs-btn-focus-shadow-rgb: 60, 153, 110;--bs-btn-active-color: #ffffff;--bs-btn-active-bg: #146c43;--bs-btn-active-border-color: #13653f;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #ffffff;--bs-btn-disabled-bg: #198754;--bs-btn-disabled-border-color: #198754}.btn-info{--bs-btn-color: #000;--bs-btn-bg: #0dcaf0;--bs-btn-border-color: #0dcaf0;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #31d2f2;--bs-btn-hover-border-color: #25cff2;--bs-btn-focus-shadow-rgb: 11, 172, 204;--bs-btn-active-color: #000;--bs-btn-active-bg: #3dd5f3;--bs-btn-active-border-color: #25cff2;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #0dcaf0;--bs-btn-disabled-border-color: #0dcaf0}.btn-warning{--bs-btn-color: #000;--bs-btn-bg: #ffc107;--bs-btn-border-color: #ffc107;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ffca2c;--bs-btn-hover-border-color: #ffc720;--bs-btn-focus-shadow-rgb: 217, 164, 6;--bs-btn-active-color: #000;--bs-btn-active-bg: #ffcd39;--bs-btn-active-border-color: #ffc720;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #ffc107;--bs-btn-disabled-border-color: #ffc107}.btn-danger{--bs-btn-color: #ffffff;--bs-btn-bg: #dc3545;--bs-btn-border-color: #dc3545;--bs-btn-hover-color: #ffffff;--bs-btn-hover-bg: #bb2d3b;--bs-btn-hover-border-color: #b02a37;--bs-btn-focus-shadow-rgb: 225, 83, 97;--bs-btn-active-color: #ffffff;--bs-btn-active-bg: #b02a37;--bs-btn-active-border-color: #a52834;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #ffffff;--bs-btn-disabled-bg: #dc3545;--bs-btn-disabled-border-color: #dc3545}.btn-light{--bs-btn-color: #000;--bs-btn-bg: #f8f9fa;--bs-btn-border-color: #f8f9fa;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #d3d4d5;--bs-btn-hover-border-color: #c6c7c8;--bs-btn-focus-shadow-rgb: 211, 212, 213;--bs-btn-active-color: #000;--bs-btn-active-bg: #c6c7c8;--bs-btn-active-border-color: #babbbc;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #f8f9fa;--bs-btn-disabled-border-color: #f8f9fa}.btn-dark{--bs-btn-color: #ffffff;--bs-btn-bg: #212529;--bs-btn-border-color: #212529;--bs-btn-hover-color: #ffffff;--bs-btn-hover-bg: #424649;--bs-btn-hover-border-color: #373b3e;--bs-btn-focus-shadow-rgb: 66, 70, 73;--bs-btn-active-color: #ffffff;--bs-btn-active-bg: #4d5154;--bs-btn-active-border-color: #373b3e;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #ffffff;--bs-btn-disabled-bg: #212529;--bs-btn-disabled-border-color: #212529}.btn-outline-default{--bs-btn-color: #dee2e6;--bs-btn-border-color: #dee2e6;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #dee2e6;--bs-btn-hover-border-color: #dee2e6;--bs-btn-focus-shadow-rgb: 222, 226, 230;--bs-btn-active-color: #000;--bs-btn-active-bg: #dee2e6;--bs-btn-active-border-color: #dee2e6;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #dee2e6;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #dee2e6;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-primary{--bs-btn-color: #0d6efd;--bs-btn-border-color: #0d6efd;--bs-btn-hover-color: #ffffff;--bs-btn-hover-bg: #0d6efd;--bs-btn-hover-border-color: #0d6efd;--bs-btn-focus-shadow-rgb: 13, 110, 253;--bs-btn-active-color: #ffffff;--bs-btn-active-bg: #0d6efd;--bs-btn-active-border-color: #0d6efd;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #0d6efd;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #0d6efd;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-secondary{--bs-btn-color: #6c757d;--bs-btn-border-color: #6c757d;--bs-btn-hover-color: #ffffff;--bs-btn-hover-bg: #6c757d;--bs-btn-hover-border-color: #6c757d;--bs-btn-focus-shadow-rgb: 108, 117, 125;--bs-btn-active-color: #ffffff;--bs-btn-active-bg: #6c757d;--bs-btn-active-border-color: #6c757d;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #6c757d;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #6c757d;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-success{--bs-btn-color: #198754;--bs-btn-border-color: #198754;--bs-btn-hover-color: #ffffff;--bs-btn-hover-bg: #198754;--bs-btn-hover-border-color: #198754;--bs-btn-focus-shadow-rgb: 25, 135, 84;--bs-btn-active-color: #ffffff;--bs-btn-active-bg: #198754;--bs-btn-active-border-color: #198754;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #198754;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #198754;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-info{--bs-btn-color: #0dcaf0;--bs-btn-border-color: #0dcaf0;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #0dcaf0;--bs-btn-hover-border-color: #0dcaf0;--bs-btn-focus-shadow-rgb: 13, 202, 240;--bs-btn-active-color: #000;--bs-btn-active-bg: #0dcaf0;--bs-btn-active-border-color: #0dcaf0;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #0dcaf0;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #0dcaf0;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-warning{--bs-btn-color: #ffc107;--bs-btn-border-color: #ffc107;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ffc107;--bs-btn-hover-border-color: #ffc107;--bs-btn-focus-shadow-rgb: 255, 193, 7;--bs-btn-active-color: #000;--bs-btn-active-bg: #ffc107;--bs-btn-active-border-color: #ffc107;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #ffc107;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #ffc107;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-danger{--bs-btn-color: #dc3545;--bs-btn-border-color: #dc3545;--bs-btn-hover-color: #ffffff;--bs-btn-hover-bg: #dc3545;--bs-btn-hover-border-color: #dc3545;--bs-btn-focus-shadow-rgb: 220, 53, 69;--bs-btn-active-color: #ffffff;--bs-btn-active-bg: #dc3545;--bs-btn-active-border-color: #dc3545;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #dc3545;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #dc3545;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-light{--bs-btn-color: #f8f9fa;--bs-btn-border-color: #f8f9fa;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #f8f9fa;--bs-btn-hover-border-color: #f8f9fa;--bs-btn-focus-shadow-rgb: 248, 249, 250;--bs-btn-active-color: #000;--bs-btn-active-bg: #f8f9fa;--bs-btn-active-border-color: #f8f9fa;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #f8f9fa;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #f8f9fa;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-dark{--bs-btn-color: #212529;--bs-btn-border-color: #212529;--bs-btn-hover-color: #ffffff;--bs-btn-hover-bg: #212529;--bs-btn-hover-border-color: #212529;--bs-btn-focus-shadow-rgb: 33, 37, 41;--bs-btn-active-color: #ffffff;--bs-btn-active-bg: #212529;--bs-btn-active-border-color: #212529;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #212529;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #212529;--bs-btn-bg: transparent;--bs-gradient: none}.btn-link{--bs-btn-font-weight: 400;--bs-btn-color: #0d6efd;--bs-btn-bg: transparent;--bs-btn-border-color: transparent;--bs-btn-hover-color: #0a58ca;--bs-btn-hover-border-color: transparent;--bs-btn-active-color: #0a58ca;--bs-btn-active-border-color: transparent;--bs-btn-disabled-color: #6c757d;--bs-btn-disabled-border-color: transparent;--bs-btn-box-shadow: 0 0 0 #000;--bs-btn-focus-shadow-rgb: 49, 132, 253;text-decoration:underline;-webkit-text-decoration:underline;-moz-text-decoration:underline;-ms-text-decoration:underline;-o-text-decoration:underline}.btn-link:focus-visible{color:var(--bs-btn-color)}.btn-link:hover{color:var(--bs-btn-hover-color)}.btn-lg,.btn-group-lg>.btn{--bs-btn-padding-y: 0.5rem;--bs-btn-padding-x: 1rem;--bs-btn-font-size:1.25rem;--bs-btn-border-radius: 0.5rem}.btn-sm,.btn-group-sm>.btn{--bs-btn-padding-y: 0.25rem;--bs-btn-padding-x: 0.5rem;--bs-btn-font-size:0.875rem;--bs-btn-border-radius: 0.25rem}.fade{transition:opacity .15s linear}@media(prefers-reduced-motion: reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .2s ease}@media(prefers-reduced-motion: reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media(prefers-reduced-motion: reduce){.collapsing.collapse-horizontal{transition:none}}.dropup,.dropend,.dropdown,.dropstart,.dropup-center,.dropdown-center{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid rgba(0,0,0,0);border-bottom:0;border-left:.3em solid rgba(0,0,0,0)}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{--bs-dropdown-zindex: 1000;--bs-dropdown-min-width: 10rem;--bs-dropdown-padding-x: 0;--bs-dropdown-padding-y: 0.5rem;--bs-dropdown-spacer: 0.125rem;--bs-dropdown-font-size:1rem;--bs-dropdown-color: #212529;--bs-dropdown-bg: #ffffff;--bs-dropdown-border-color: rgba(0, 0, 0, 0.175);--bs-dropdown-border-radius: 0.375rem;--bs-dropdown-border-width: 1px;--bs-dropdown-inner-border-radius: calc(0.375rem - 1px);--bs-dropdown-divider-bg: rgba(0, 0, 0, 0.175);--bs-dropdown-divider-margin-y: 0.5rem;--bs-dropdown-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-dropdown-link-color: #212529;--bs-dropdown-link-hover-color: #212529;--bs-dropdown-link-hover-bg: #f8f9fa;--bs-dropdown-link-active-color: #ffffff;--bs-dropdown-link-active-bg: #0d6efd;--bs-dropdown-link-disabled-color: rgba(33, 37, 41, 0.5);--bs-dropdown-item-padding-x: 1rem;--bs-dropdown-item-padding-y: 0.25rem;--bs-dropdown-header-color: #6c757d;--bs-dropdown-header-padding-x: 1rem;--bs-dropdown-header-padding-y: 0.5rem;position:absolute;z-index:var(--bs-dropdown-zindex);display:none;min-width:var(--bs-dropdown-min-width);padding:var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);margin:0;font-size:var(--bs-dropdown-font-size);color:var(--bs-dropdown-color);text-align:left;list-style:none;background-color:var(--bs-dropdown-bg);background-clip:padding-box;border:var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);border-radius:var(--bs-dropdown-border-radius)}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:var(--bs-dropdown-spacer)}.dropdown-menu-start{--bs-position: start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position: end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media(min-width: 576px){.dropdown-menu-sm-start{--bs-position: start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position: end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 768px){.dropdown-menu-md-start{--bs-position: start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position: end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 992px){.dropdown-menu-lg-start{--bs-position: start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position: end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 1200px){.dropdown-menu-xl-start{--bs-position: start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position: end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 1400px){.dropdown-menu-xxl-start{--bs-position: start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position: end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--bs-dropdown-spacer)}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid rgba(0,0,0,0);border-bottom:.3em solid;border-left:.3em solid rgba(0,0,0,0)}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:var(--bs-dropdown-spacer)}.dropend .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid rgba(0,0,0,0);border-right:0;border-bottom:.3em solid rgba(0,0,0,0);border-left:.3em solid}.dropend .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:var(--bs-dropdown-spacer)}.dropstart .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid rgba(0,0,0,0);border-right:.3em solid;border-bottom:.3em solid rgba(0,0,0,0)}.dropstart .dropdown-toggle:empty::after{margin-left:0}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:var(--bs-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--bs-dropdown-divider-bg);opacity:1}.dropdown-item{display:block;width:100%;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--bs-dropdown-link-color);text-align:inherit;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;white-space:nowrap;background-color:rgba(0,0,0,0);border:0;border-radius:var(--bs-dropdown-item-border-radius, 0)}.dropdown-item:hover,.dropdown-item:focus{color:var(--bs-dropdown-link-hover-color);background-color:var(--bs-dropdown-link-hover-bg)}.dropdown-item.active,.dropdown-item:active{color:var(--bs-dropdown-link-active-color);text-decoration:none;background-color:var(--bs-dropdown-link-active-bg)}.dropdown-item.disabled,.dropdown-item:disabled{color:var(--bs-dropdown-link-disabled-color);pointer-events:none;background-color:rgba(0,0,0,0)}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);margin-bottom:0;font-size:0.875rem;color:var(--bs-dropdown-header-color);white-space:nowrap}.dropdown-item-text{display:block;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);color:var(--bs-dropdown-link-color)}.dropdown-menu-dark{--bs-dropdown-color: #dee2e6;--bs-dropdown-bg: #343a40;--bs-dropdown-border-color: rgba(0, 0, 0, 0.175);--bs-dropdown-box-shadow: ;--bs-dropdown-link-color: #dee2e6;--bs-dropdown-link-hover-color: #ffffff;--bs-dropdown-divider-bg: rgba(0, 0, 0, 0.175);--bs-dropdown-link-hover-bg: rgba(255, 255, 255, 0.15);--bs-dropdown-link-active-color: #ffffff;--bs-dropdown-link-active-bg: #0d6efd;--bs-dropdown-link-disabled-color: #adb5bd;--bs-dropdown-header-color: #adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto}.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn:hover,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:1}.btn-toolbar{display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;justify-content:flex-start;-webkit-justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group{border-radius:.375rem}.btn-group>:not(.btn-check:first-child)+.btn,.btn-group>.btn-group:not(:first-child){margin-left:calc(1px * -1)}.btn-group>.btn:not(:last-child):not(.dropdown-toggle),.btn-group>.btn.dropdown-toggle-split:first-child,.btn-group>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn,.btn-group>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;-webkit-flex-direction:column;align-items:flex-start;-webkit-align-items:flex-start;justify-content:center;-webkit-justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:calc(1px * -1)}.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle),.btn-group-vertical>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn~.btn,.btn-group-vertical>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{--bs-nav-link-padding-x: 1rem;--bs-nav-link-padding-y: 0.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: #0d6efd;--bs-nav-link-hover-color: #0a58ca;--bs-nav-link-disabled-color: rgba(33, 37, 41, 0.75);display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);color:var(--bs-nav-link-color);text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;background:none;border:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media(prefers-reduced-motion: reduce){.nav-link{transition:none}}.nav-link:hover,.nav-link:focus{color:var(--bs-nav-link-hover-color)}.nav-link:focus-visible{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.nav-link.disabled,.nav-link:disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--bs-nav-tabs-border-width: 1px;--bs-nav-tabs-border-color: #dededf;--bs-nav-tabs-border-radius: 0.375rem;--bs-nav-tabs-link-hover-border-color: #e9ecef #e9ecef #dededf;--bs-nav-tabs-link-active-color: #000;--bs-nav-tabs-link-active-bg: #ffffff;--bs-nav-tabs-link-active-border-color: #dededf #dededf #ffffff;border-bottom:var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(-1*var(--bs-nav-tabs-border-width));border:var(--bs-nav-tabs-border-width) solid rgba(0,0,0,0);border-top-left-radius:var(--bs-nav-tabs-border-radius);border-top-right-radius:var(--bs-nav-tabs-border-radius)}.nav-tabs .nav-link:hover,.nav-tabs .nav-link:focus{isolation:isolate;border-color:var(--bs-nav-tabs-link-hover-border-color)}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:var(--bs-nav-tabs-link-active-color);background-color:var(--bs-nav-tabs-link-active-bg);border-color:var(--bs-nav-tabs-link-active-border-color)}.nav-tabs .dropdown-menu{margin-top:calc(-1*var(--bs-nav-tabs-border-width));border-top-left-radius:0;border-top-right-radius:0}.nav-pills{--bs-nav-pills-border-radius: 0.375rem;--bs-nav-pills-link-active-color: #ffffff;--bs-nav-pills-link-active-bg: #0d6efd}.nav-pills .nav-link{border-radius:var(--bs-nav-pills-border-radius)}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--bs-nav-pills-link-active-color);background-color:var(--bs-nav-pills-link-active-bg)}.nav-underline{--bs-nav-underline-gap: 1rem;--bs-nav-underline-border-width: 0.125rem;--bs-nav-underline-link-active-color: #000;gap:var(--bs-nav-underline-gap)}.nav-underline .nav-link{padding-right:0;padding-left:0;border-bottom:var(--bs-nav-underline-border-width) solid rgba(0,0,0,0)}.nav-underline .nav-link:hover,.nav-underline .nav-link:focus{border-bottom-color:currentcolor}.nav-underline .nav-link.active,.nav-underline .show>.nav-link{font-weight:700;color:var(--bs-nav-underline-link-active-color);border-bottom-color:currentcolor}.nav-fill>.nav-link,.nav-fill .nav-item{flex:1 1 auto;-webkit-flex:1 1 auto;text-align:center}.nav-justified>.nav-link,.nav-justified .nav-item{flex-basis:0;-webkit-flex-basis:0;flex-grow:1;-webkit-flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{--bs-navbar-padding-x: 0;--bs-navbar-padding-y: 0.5rem;--bs-navbar-color: #fdfefe;--bs-navbar-hover-color: rgba(253, 254, 255, 0.8);--bs-navbar-disabled-color: rgba(253, 254, 254, 0.75);--bs-navbar-active-color: #fdfeff;--bs-navbar-brand-padding-y: 0.3125rem;--bs-navbar-brand-margin-end: 1rem;--bs-navbar-brand-font-size: 1.25rem;--bs-navbar-brand-color: #fdfefe;--bs-navbar-brand-hover-color: #fdfeff;--bs-navbar-nav-link-padding-x: 0.5rem;--bs-navbar-toggler-padding-y: 0.25;--bs-navbar-toggler-padding-x: 0;--bs-navbar-toggler-font-size: 1.25rem;--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23fdfefe' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");--bs-navbar-toggler-border-color: rgba(253, 254, 254, 0);--bs-navbar-toggler-border-radius: 0.375rem;--bs-navbar-toggler-focus-width: 0.25rem;--bs-navbar-toggler-transition: box-shadow 0.15s ease-in-out;position:relative;display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid,.navbar>.container-sm,.navbar>.container-md,.navbar>.container-lg,.navbar>.container-xl,.navbar>.container-xxl{display:flex;display:-webkit-flex;flex-wrap:inherit;-webkit-flex-wrap:inherit;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between}.navbar-brand{padding-top:var(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);margin-right:var(--bs-navbar-brand-margin-end);font-size:var(--bs-navbar-brand-font-size);color:var(--bs-navbar-brand-color);text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;white-space:nowrap}.navbar-brand:hover,.navbar-brand:focus{color:var(--bs-navbar-brand-hover-color)}.navbar-nav{--bs-nav-link-padding-x: 0;--bs-nav-link-padding-y: 0.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: var(--bs-navbar-color);--bs-nav-link-hover-color: var(--bs-navbar-hover-color);--bs-nav-link-disabled-color: var(--bs-navbar-disabled-color);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link.active,.navbar-nav .nav-link.show{color:var(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a:hover,.navbar-text a:focus{color:var(--bs-navbar-active-color)}.navbar-collapse{flex-basis:100%;-webkit-flex-basis:100%;flex-grow:1;-webkit-flex-grow:1;align-items:center;-webkit-align-items:center}.navbar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:rgba(0,0,0,0);border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-navbar-toggler-transition)}@media(prefers-reduced-motion: reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width)}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--bs-navbar-toggler-icon-bg);background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height, 75vh);overflow-y:auto}@media(min-width: 576px){.navbar-expand-sm{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 768px){.navbar-expand-md{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 992px){.navbar-expand-lg{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 1200px){.navbar-expand-xl{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 1400px){.navbar-expand-xxl{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-xxl .offcanvas .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;transition:none}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}.navbar-dark,.navbar[data-bs-theme=dark]{--bs-navbar-color: #fdfefe;--bs-navbar-hover-color: rgba(253, 254, 255, 0.8);--bs-navbar-disabled-color: rgba(253, 254, 254, 0.75);--bs-navbar-active-color: #fdfeff;--bs-navbar-brand-color: #fdfefe;--bs-navbar-brand-hover-color: #fdfeff;--bs-navbar-toggler-border-color: rgba(253, 254, 254, 0);--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23fdfefe' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}[data-bs-theme=dark] .navbar-toggler-icon{--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23fdfefe' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.card{--bs-card-spacer-y: 1rem;--bs-card-spacer-x: 1rem;--bs-card-title-spacer-y: 0.5rem;--bs-card-title-color: ;--bs-card-subtitle-color: ;--bs-card-border-width: 1px;--bs-card-border-color: rgba(0, 0, 0, 0.175);--bs-card-border-radius: 0.375rem;--bs-card-box-shadow: ;--bs-card-inner-border-radius: calc(0.375rem - 1px);--bs-card-cap-padding-y: 0.5rem;--bs-card-cap-padding-x: 1rem;--bs-card-cap-bg: rgba(33, 37, 41, 0.03);--bs-card-cap-color: ;--bs-card-height: ;--bs-card-color: ;--bs-card-bg: #ffffff;--bs-card-img-overlay-padding: 1rem;--bs-card-group-margin: 0.75rem;position:relative;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;min-width:0;height:var(--bs-card-height);color:var(--bs-body-color);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius)}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;-webkit-flex:1 1 auto;padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x);color:var(--bs-card-color)}.card-title{margin-bottom:var(--bs-card-title-spacer-y);color:var(--bs-card-title-color)}.card-subtitle{margin-top:calc(-0.5*var(--bs-card-title-spacer-y));margin-bottom:0;color:var(--bs-card-subtitle-color)}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:var(--bs-card-spacer-x)}.card-header{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);margin-bottom:0;color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-bottom:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-header:first-child{border-radius:var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0}.card-footer{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-top:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-footer:last-child{border-radius:0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius)}.card-header-tabs{margin-right:calc(-0.5*var(--bs-card-cap-padding-x));margin-bottom:calc(-1*var(--bs-card-cap-padding-y));margin-left:calc(-0.5*var(--bs-card-cap-padding-x));border-bottom:0}.card-header-tabs .nav-link.active{background-color:var(--bs-card-bg);border-bottom-color:var(--bs-card-bg)}.card-header-pills{margin-right:calc(-0.5*var(--bs-card-cap-padding-x));margin-left:calc(-0.5*var(--bs-card-cap-padding-x))}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:var(--bs-card-img-overlay-padding);border-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-top,.card-img-bottom{width:100%}.card-img,.card-img-top{border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom{border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card-group>.card{margin-bottom:var(--bs-card-group-margin)}@media(min-width: 576px){.card-group{display:flex;display:-webkit-flex;flex-flow:row wrap;-webkit-flex-flow:row wrap}.card-group>.card{flex:1 0 0%;-webkit-flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-img-top,.card-group>.card:not(:last-child) .card-header{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-img-bottom,.card-group>.card:not(:last-child) .card-footer{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-img-top,.card-group>.card:not(:first-child) .card-header{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-img-bottom,.card-group>.card:not(:first-child) .card-footer{border-bottom-left-radius:0}}.accordion{--bs-accordion-color: #212529;--bs-accordion-bg: #ffffff;--bs-accordion-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border-radius 0.15s ease;--bs-accordion-border-color: #dededf;--bs-accordion-border-width: 1px;--bs-accordion-border-radius: 0.375rem;--bs-accordion-inner-border-radius: calc(0.375rem - 1px);--bs-accordion-btn-padding-x: 1.25rem;--bs-accordion-btn-padding-y: 1rem;--bs-accordion-btn-color: #212529;--bs-accordion-btn-bg: #ffffff;--bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-icon-width: 1.25rem;--bs-accordion-btn-icon-transform: rotate(-180deg);--bs-accordion-btn-icon-transition: transform 0.2s ease-in-out;--bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23052c65'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-focus-border-color: #86b7fe;--bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);--bs-accordion-body-padding-x: 1.25rem;--bs-accordion-body-padding-y: 1rem;--bs-accordion-active-color: #052c65;--bs-accordion-active-bg: #cfe2ff}.accordion-button{position:relative;display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;width:100%;padding:var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);font-size:1rem;color:var(--bs-accordion-btn-color);text-align:left;background-color:var(--bs-accordion-btn-bg);border:0;border-radius:0;overflow-anchor:none;transition:var(--bs-accordion-transition)}@media(prefers-reduced-motion: reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:var(--bs-accordion-active-color);background-color:var(--bs-accordion-active-bg);box-shadow:inset 0 calc(-1*var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color)}.accordion-button:not(.collapsed)::after{background-image:var(--bs-accordion-btn-active-icon);transform:var(--bs-accordion-btn-icon-transform)}.accordion-button::after{flex-shrink:0;-webkit-flex-shrink:0;width:var(--bs-accordion-btn-icon-width);height:var(--bs-accordion-btn-icon-width);margin-left:auto;content:"";background-image:var(--bs-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--bs-accordion-btn-icon-width);transition:var(--bs-accordion-btn-icon-transition)}@media(prefers-reduced-motion: reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:var(--bs-accordion-btn-focus-border-color);outline:0;box-shadow:var(--bs-accordion-btn-focus-box-shadow)}.accordion-header{margin-bottom:0}.accordion-item{color:var(--bs-accordion-color);background-color:var(--bs-accordion-bg);border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.accordion-item:first-of-type{border-top-left-radius:var(--bs-accordion-border-radius);border-top-right-radius:var(--bs-accordion-border-radius)}.accordion-item:first-of-type .accordion-button{border-top-left-radius:var(--bs-accordion-inner-border-radius);border-top-right-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:var(--bs-accordion-inner-border-radius);border-bottom-left-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-body{padding:var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x)}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button,.accordion-flush .accordion-item .accordion-button.collapsed{border-radius:0}[data-bs-theme=dark] .accordion-button::after{--bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.breadcrumb{--bs-breadcrumb-padding-x: 0;--bs-breadcrumb-padding-y: 0;--bs-breadcrumb-margin-bottom: 1rem;--bs-breadcrumb-bg: ;--bs-breadcrumb-border-radius: ;--bs-breadcrumb-divider-color: rgba(33, 37, 41, 0.75);--bs-breadcrumb-item-padding-x: 0.5rem;--bs-breadcrumb-item-active-color: rgba(33, 37, 41, 0.75);display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;padding:var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);margin-bottom:var(--bs-breadcrumb-margin-bottom);font-size:var(--bs-breadcrumb-font-size);list-style:none;background-color:var(--bs-breadcrumb-bg);border-radius:var(--bs-breadcrumb-border-radius)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--bs-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:var(--bs-breadcrumb-item-padding-x);color:var(--bs-breadcrumb-divider-color);content:var(--bs-breadcrumb-divider, ">") /* rtl: var(--bs-breadcrumb-divider, ">") */}.breadcrumb-item.active{color:var(--bs-breadcrumb-item-active-color)}.pagination{--bs-pagination-padding-x: 0.75rem;--bs-pagination-padding-y: 0.375rem;--bs-pagination-font-size:1rem;--bs-pagination-color: #0d6efd;--bs-pagination-bg: #ffffff;--bs-pagination-border-width: 1px;--bs-pagination-border-color: #dededf;--bs-pagination-border-radius: 0.375rem;--bs-pagination-hover-color: #0a58ca;--bs-pagination-hover-bg: #f8f9fa;--bs-pagination-hover-border-color: #dededf;--bs-pagination-focus-color: #0a58ca;--bs-pagination-focus-bg: #e9ecef;--bs-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);--bs-pagination-active-color: #ffffff;--bs-pagination-active-bg: #0d6efd;--bs-pagination-active-border-color: #0d6efd;--bs-pagination-disabled-color: rgba(33, 37, 41, 0.75);--bs-pagination-disabled-bg: #e9ecef;--bs-pagination-disabled-border-color: #dededf;display:flex;display:-webkit-flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;padding:var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);font-size:var(--bs-pagination-font-size);color:var(--bs-pagination-color);text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;background-color:var(--bs-pagination-bg);border:var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:var(--bs-pagination-hover-color);background-color:var(--bs-pagination-hover-bg);border-color:var(--bs-pagination-hover-border-color)}.page-link:focus{z-index:3;color:var(--bs-pagination-focus-color);background-color:var(--bs-pagination-focus-bg);outline:0;box-shadow:var(--bs-pagination-focus-box-shadow)}.page-link.active,.active>.page-link{z-index:3;color:var(--bs-pagination-active-color);background-color:var(--bs-pagination-active-bg);border-color:var(--bs-pagination-active-border-color)}.page-link.disabled,.disabled>.page-link{color:var(--bs-pagination-disabled-color);pointer-events:none;background-color:var(--bs-pagination-disabled-bg);border-color:var(--bs-pagination-disabled-border-color)}.page-item:not(:first-child) .page-link{margin-left:calc(1px * -1)}.page-item:first-child .page-link{border-top-left-radius:var(--bs-pagination-border-radius);border-bottom-left-radius:var(--bs-pagination-border-radius)}.page-item:last-child .page-link{border-top-right-radius:var(--bs-pagination-border-radius);border-bottom-right-radius:var(--bs-pagination-border-radius)}.pagination-lg{--bs-pagination-padding-x: 1.5rem;--bs-pagination-padding-y: 0.75rem;--bs-pagination-font-size:1.25rem;--bs-pagination-border-radius: 0.5rem}.pagination-sm{--bs-pagination-padding-x: 0.5rem;--bs-pagination-padding-y: 0.25rem;--bs-pagination-font-size:0.875rem;--bs-pagination-border-radius: 0.25rem}.badge{--bs-badge-padding-x: 0.65em;--bs-badge-padding-y: 0.35em;--bs-badge-font-size:0.75em;--bs-badge-font-weight: 700;--bs-badge-color: #ffffff;--bs-badge-border-radius: 0.375rem;display:inline-block;padding:var(--bs-badge-padding-y) var(--bs-badge-padding-x);font-size:var(--bs-badge-font-size);font-weight:var(--bs-badge-font-weight);line-height:1;color:var(--bs-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--bs-badge-border-radius)}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--bs-alert-bg: transparent;--bs-alert-padding-x: 1rem;--bs-alert-padding-y: 1rem;--bs-alert-margin-bottom: 1rem;--bs-alert-color: inherit;--bs-alert-border-color: transparent;--bs-alert-border: 1px solid var(--bs-alert-border-color);--bs-alert-border-radius: 0.375rem;--bs-alert-link-color: inherit;position:relative;padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);margin-bottom:var(--bs-alert-margin-bottom);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:700;color:var(--bs-alert-link-color)}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-default{--bs-alert-color: var(--bs-default-text-emphasis);--bs-alert-bg: var(--bs-default-bg-subtle);--bs-alert-border-color: var(--bs-default-border-subtle);--bs-alert-link-color: var(--bs-default-text-emphasis)}.alert-primary{--bs-alert-color: var(--bs-primary-text-emphasis);--bs-alert-bg: var(--bs-primary-bg-subtle);--bs-alert-border-color: var(--bs-primary-border-subtle);--bs-alert-link-color: var(--bs-primary-text-emphasis)}.alert-secondary{--bs-alert-color: var(--bs-secondary-text-emphasis);--bs-alert-bg: var(--bs-secondary-bg-subtle);--bs-alert-border-color: var(--bs-secondary-border-subtle);--bs-alert-link-color: var(--bs-secondary-text-emphasis)}.alert-success{--bs-alert-color: var(--bs-success-text-emphasis);--bs-alert-bg: var(--bs-success-bg-subtle);--bs-alert-border-color: var(--bs-success-border-subtle);--bs-alert-link-color: var(--bs-success-text-emphasis)}.alert-info{--bs-alert-color: var(--bs-info-text-emphasis);--bs-alert-bg: var(--bs-info-bg-subtle);--bs-alert-border-color: var(--bs-info-border-subtle);--bs-alert-link-color: var(--bs-info-text-emphasis)}.alert-warning{--bs-alert-color: var(--bs-warning-text-emphasis);--bs-alert-bg: var(--bs-warning-bg-subtle);--bs-alert-border-color: var(--bs-warning-border-subtle);--bs-alert-link-color: var(--bs-warning-text-emphasis)}.alert-danger{--bs-alert-color: var(--bs-danger-text-emphasis);--bs-alert-bg: var(--bs-danger-bg-subtle);--bs-alert-border-color: var(--bs-danger-border-subtle);--bs-alert-link-color: var(--bs-danger-text-emphasis)}.alert-light{--bs-alert-color: var(--bs-light-text-emphasis);--bs-alert-bg: var(--bs-light-bg-subtle);--bs-alert-border-color: var(--bs-light-border-subtle);--bs-alert-link-color: var(--bs-light-text-emphasis)}.alert-dark{--bs-alert-color: var(--bs-dark-text-emphasis);--bs-alert-bg: var(--bs-dark-bg-subtle);--bs-alert-border-color: var(--bs-dark-border-subtle);--bs-alert-link-color: var(--bs-dark-text-emphasis)}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress,.progress-stacked{--bs-progress-height: 1rem;--bs-progress-font-size:0.75rem;--bs-progress-bg: #e9ecef;--bs-progress-border-radius: 0.375rem;--bs-progress-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075);--bs-progress-bar-color: #ffffff;--bs-progress-bar-bg: #0d6efd;--bs-progress-bar-transition: width 0.6s ease;display:flex;display:-webkit-flex;height:var(--bs-progress-height);overflow:hidden;font-size:var(--bs-progress-font-size);background-color:var(--bs-progress-bg);border-radius:var(--bs-progress-border-radius)}.progress-bar{display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;justify-content:center;-webkit-justify-content:center;overflow:hidden;color:var(--bs-progress-bar-color);text-align:center;white-space:nowrap;background-color:var(--bs-progress-bar-bg);transition:var(--bs-progress-bar-transition)}@media(prefers-reduced-motion: reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-size:var(--bs-progress-height) var(--bs-progress-height)}.progress-stacked>.progress{overflow:visible}.progress-stacked>.progress>.progress-bar{width:100%}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media(prefers-reduced-motion: reduce){.progress-bar-animated{animation:none}}.list-group{--bs-list-group-color: #212529;--bs-list-group-bg: #ffffff;--bs-list-group-border-color: #dededf;--bs-list-group-border-width: 1px;--bs-list-group-border-radius: 0.375rem;--bs-list-group-item-padding-x: 1rem;--bs-list-group-item-padding-y: 0.5rem;--bs-list-group-action-color: rgba(33, 37, 41, 0.75);--bs-list-group-action-hover-color: #000;--bs-list-group-action-hover-bg: #f8f9fa;--bs-list-group-action-active-color: #212529;--bs-list-group-action-active-bg: #e9ecef;--bs-list-group-disabled-color: rgba(33, 37, 41, 0.75);--bs-list-group-disabled-bg: #ffffff;--bs-list-group-active-color: #ffffff;--bs-list-group-active-bg: #0d6efd;--bs-list-group-active-border-color: #0d6efd;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--bs-list-group-border-radius)}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>.list-group-item::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:var(--bs-list-group-action-color);text-align:inherit}.list-group-item-action:hover,.list-group-item-action:focus{z-index:1;color:var(--bs-list-group-action-hover-color);text-decoration:none;background-color:var(--bs-list-group-action-hover-bg)}.list-group-item-action:active{color:var(--bs-list-group-action-active-color);background-color:var(--bs-list-group-action-active-bg)}.list-group-item{position:relative;display:block;padding:var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);color:var(--bs-list-group-color);text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;background-color:var(--bs-list-group-bg);border:var(--bs-list-group-border-width) solid var(--bs-list-group-border-color)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:var(--bs-list-group-disabled-color);pointer-events:none;background-color:var(--bs-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--bs-list-group-active-color);background-color:var(--bs-list-group-active-bg);border-color:var(--bs-list-group-active-border-color)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:calc(-1*var(--bs-list-group-border-width));border-top-width:var(--bs-list-group-border-width)}.list-group-horizontal{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}@media(min-width: 576px){.list-group-horizontal-sm{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media(min-width: 768px){.list-group-horizontal-md{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media(min-width: 992px){.list-group-horizontal-lg{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media(min-width: 1200px){.list-group-horizontal-xl{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media(min-width: 1400px){.list-group-horizontal-xxl{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--bs-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-default{--bs-list-group-color: var(--bs-default-text-emphasis);--bs-list-group-bg: var(--bs-default-bg-subtle);--bs-list-group-border-color: var(--bs-default-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-default-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-default-border-subtle);--bs-list-group-active-color: var(--bs-default-bg-subtle);--bs-list-group-active-bg: var(--bs-default-text-emphasis);--bs-list-group-active-border-color: var(--bs-default-text-emphasis)}.list-group-item-primary{--bs-list-group-color: var(--bs-primary-text-emphasis);--bs-list-group-bg: var(--bs-primary-bg-subtle);--bs-list-group-border-color: var(--bs-primary-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-primary-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-primary-border-subtle);--bs-list-group-active-color: var(--bs-primary-bg-subtle);--bs-list-group-active-bg: var(--bs-primary-text-emphasis);--bs-list-group-active-border-color: var(--bs-primary-text-emphasis)}.list-group-item-secondary{--bs-list-group-color: var(--bs-secondary-text-emphasis);--bs-list-group-bg: var(--bs-secondary-bg-subtle);--bs-list-group-border-color: var(--bs-secondary-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-secondary-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-secondary-border-subtle);--bs-list-group-active-color: var(--bs-secondary-bg-subtle);--bs-list-group-active-bg: var(--bs-secondary-text-emphasis);--bs-list-group-active-border-color: var(--bs-secondary-text-emphasis)}.list-group-item-success{--bs-list-group-color: var(--bs-success-text-emphasis);--bs-list-group-bg: var(--bs-success-bg-subtle);--bs-list-group-border-color: var(--bs-success-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-success-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-success-border-subtle);--bs-list-group-active-color: var(--bs-success-bg-subtle);--bs-list-group-active-bg: var(--bs-success-text-emphasis);--bs-list-group-active-border-color: var(--bs-success-text-emphasis)}.list-group-item-info{--bs-list-group-color: var(--bs-info-text-emphasis);--bs-list-group-bg: var(--bs-info-bg-subtle);--bs-list-group-border-color: var(--bs-info-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-info-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-info-border-subtle);--bs-list-group-active-color: var(--bs-info-bg-subtle);--bs-list-group-active-bg: var(--bs-info-text-emphasis);--bs-list-group-active-border-color: var(--bs-info-text-emphasis)}.list-group-item-warning{--bs-list-group-color: var(--bs-warning-text-emphasis);--bs-list-group-bg: var(--bs-warning-bg-subtle);--bs-list-group-border-color: var(--bs-warning-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-warning-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-warning-border-subtle);--bs-list-group-active-color: var(--bs-warning-bg-subtle);--bs-list-group-active-bg: var(--bs-warning-text-emphasis);--bs-list-group-active-border-color: var(--bs-warning-text-emphasis)}.list-group-item-danger{--bs-list-group-color: var(--bs-danger-text-emphasis);--bs-list-group-bg: var(--bs-danger-bg-subtle);--bs-list-group-border-color: var(--bs-danger-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-danger-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-danger-border-subtle);--bs-list-group-active-color: var(--bs-danger-bg-subtle);--bs-list-group-active-bg: var(--bs-danger-text-emphasis);--bs-list-group-active-border-color: var(--bs-danger-text-emphasis)}.list-group-item-light{--bs-list-group-color: var(--bs-light-text-emphasis);--bs-list-group-bg: var(--bs-light-bg-subtle);--bs-list-group-border-color: var(--bs-light-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-light-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-light-border-subtle);--bs-list-group-active-color: var(--bs-light-bg-subtle);--bs-list-group-active-bg: var(--bs-light-text-emphasis);--bs-list-group-active-border-color: var(--bs-light-text-emphasis)}.list-group-item-dark{--bs-list-group-color: var(--bs-dark-text-emphasis);--bs-list-group-bg: var(--bs-dark-bg-subtle);--bs-list-group-border-color: var(--bs-dark-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-dark-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-dark-border-subtle);--bs-list-group-active-color: var(--bs-dark-bg-subtle);--bs-list-group-active-bg: var(--bs-dark-text-emphasis);--bs-list-group-active-border-color: var(--bs-dark-text-emphasis)}.btn-close{--bs-btn-close-color: #000;--bs-btn-close-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");--bs-btn-close-opacity: 0.5;--bs-btn-close-hover-opacity: 0.75;--bs-btn-close-focus-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);--bs-btn-close-focus-opacity: 1;--bs-btn-close-disabled-opacity: 0.25;--bs-btn-close-white-filter: invert(1) grayscale(100%) brightness(200%);box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:var(--bs-btn-close-color);background:rgba(0,0,0,0) var(--bs-btn-close-bg) center/1em auto no-repeat;border:0;border-radius:.375rem;opacity:var(--bs-btn-close-opacity)}.btn-close:hover{color:var(--bs-btn-close-color);text-decoration:none;opacity:var(--bs-btn-close-hover-opacity)}.btn-close:focus{outline:0;box-shadow:var(--bs-btn-close-focus-shadow);opacity:var(--bs-btn-close-focus-opacity)}.btn-close:disabled,.btn-close.disabled{pointer-events:none;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;opacity:var(--bs-btn-close-disabled-opacity)}.btn-close-white{filter:var(--bs-btn-close-white-filter)}[data-bs-theme=dark] .btn-close{filter:var(--bs-btn-close-white-filter)}.toast{--bs-toast-zindex: 1090;--bs-toast-padding-x: 0.75rem;--bs-toast-padding-y: 0.5rem;--bs-toast-spacing: 1.5rem;--bs-toast-max-width: 350px;--bs-toast-font-size:0.875rem;--bs-toast-color: ;--bs-toast-bg: rgba(255, 255, 255, 0.85);--bs-toast-border-width: 1px;--bs-toast-border-color: rgba(0, 0, 0, 0.175);--bs-toast-border-radius: 0.375rem;--bs-toast-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-toast-header-color: rgba(33, 37, 41, 0.75);--bs-toast-header-bg: rgba(255, 255, 255, 0.85);--bs-toast-header-border-color: rgba(0, 0, 0, 0.175);width:var(--bs-toast-max-width);max-width:100%;font-size:var(--bs-toast-font-size);color:var(--bs-toast-color);pointer-events:auto;background-color:var(--bs-toast-bg);background-clip:padding-box;border:var(--bs-toast-border-width) solid var(--bs-toast-border-color);box-shadow:var(--bs-toast-box-shadow);border-radius:var(--bs-toast-border-radius)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{--bs-toast-zindex: 1090;position:absolute;z-index:var(--bs-toast-zindex);width:max-content;width:-webkit-max-content;width:-moz-max-content;width:-ms-max-content;width:-o-max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:var(--bs-toast-spacing)}.toast-header{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;padding:var(--bs-toast-padding-y) var(--bs-toast-padding-x);color:var(--bs-toast-header-color);background-color:var(--bs-toast-header-bg);background-clip:padding-box;border-bottom:var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);border-top-left-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));border-top-right-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width))}.toast-header .btn-close{margin-right:calc(-0.5*var(--bs-toast-padding-x));margin-left:var(--bs-toast-padding-x)}.toast-body{padding:var(--bs-toast-padding-x);word-wrap:break-word}.modal{--bs-modal-zindex: 1055;--bs-modal-width: 500px;--bs-modal-padding: 1rem;--bs-modal-margin: 0.5rem;--bs-modal-color: ;--bs-modal-bg: #ffffff;--bs-modal-border-color: rgba(0, 0, 0, 0.175);--bs-modal-border-width: 1px;--bs-modal-border-radius: 0.5rem;--bs-modal-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-modal-inner-border-radius: calc(0.5rem - 1px);--bs-modal-header-padding-x: 1rem;--bs-modal-header-padding-y: 1rem;--bs-modal-header-padding: 1rem 1rem;--bs-modal-header-border-color: #dededf;--bs-modal-header-border-width: 1px;--bs-modal-title-line-height: 1.5;--bs-modal-footer-gap: 0.5rem;--bs-modal-footer-bg: ;--bs-modal-footer-border-color: #dededf;--bs-modal-footer-border-width: 1px;position:fixed;top:0;left:0;z-index:var(--bs-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:var(--bs-modal-margin);pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0, -50px)}@media(prefers-reduced-motion: reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - var(--bs-modal-margin)*2)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;min-height:calc(100% - var(--bs-modal-margin)*2)}.modal-content{position:relative;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;width:100%;color:var(--bs-modal-color);pointer-events:auto;background-color:var(--bs-modal-bg);background-clip:padding-box;border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);border-radius:var(--bs-modal-border-radius);outline:0}.modal-backdrop{--bs-backdrop-zindex: 1050;--bs-backdrop-bg: #000;--bs-backdrop-opacity: 0.5;position:fixed;top:0;left:0;z-index:var(--bs-backdrop-zindex);width:100vw;height:100vh;background-color:var(--bs-backdrop-bg)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--bs-backdrop-opacity)}.modal-header{display:flex;display:-webkit-flex;flex-shrink:0;-webkit-flex-shrink:0;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding:var(--bs-modal-header-padding);border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-left-radius:var(--bs-modal-inner-border-radius);border-top-right-radius:var(--bs-modal-inner-border-radius)}.modal-header .btn-close{padding:calc(var(--bs-modal-header-padding-y)*.5) calc(var(--bs-modal-header-padding-x)*.5);margin:calc(-0.5*var(--bs-modal-header-padding-y)) calc(-0.5*var(--bs-modal-header-padding-x)) calc(-0.5*var(--bs-modal-header-padding-y)) auto}.modal-title{margin-bottom:0;line-height:var(--bs-modal-title-line-height)}.modal-body{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto;padding:var(--bs-modal-padding)}.modal-footer{display:flex;display:-webkit-flex;flex-shrink:0;-webkit-flex-shrink:0;flex-wrap:wrap;-webkit-flex-wrap:wrap;align-items:center;-webkit-align-items:center;justify-content:flex-end;-webkit-justify-content:flex-end;padding:calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap)*.5);background-color:var(--bs-modal-footer-bg);border-top:var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);border-bottom-right-radius:var(--bs-modal-inner-border-radius);border-bottom-left-radius:var(--bs-modal-inner-border-radius)}.modal-footer>*{margin:calc(var(--bs-modal-footer-gap)*.5)}@media(min-width: 576px){.modal{--bs-modal-margin: 1.75rem;--bs-modal-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15)}.modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--bs-modal-width: 300px}}@media(min-width: 992px){.modal-lg,.modal-xl{--bs-modal-width: 800px}}@media(min-width: 1200px){.modal-xl{--bs-modal-width: 1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-header,.modal-fullscreen .modal-footer{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}@media(max-width: 575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-header,.modal-fullscreen-sm-down .modal-footer{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media(max-width: 767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-header,.modal-fullscreen-md-down .modal-footer{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media(max-width: 991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-header,.modal-fullscreen-lg-down .modal-footer{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media(max-width: 1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-header,.modal-fullscreen-xl-down .modal-footer{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media(max-width: 1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-header,.modal-fullscreen-xxl-down .modal-footer{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{--bs-tooltip-zindex: 1080;--bs-tooltip-max-width: 200px;--bs-tooltip-padding-x: 0.5rem;--bs-tooltip-padding-y: 0.25rem;--bs-tooltip-margin: ;--bs-tooltip-font-size:0.875rem;--bs-tooltip-color: #ffffff;--bs-tooltip-bg: #000;--bs-tooltip-border-radius: 0.375rem;--bs-tooltip-opacity: 0.9;--bs-tooltip-arrow-width: 0.8rem;--bs-tooltip-arrow-height: 0.4rem;z-index:var(--bs-tooltip-zindex);display:block;margin:var(--bs-tooltip-margin);font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans","Liberation Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-tooltip-font-size);word-wrap:break-word;opacity:0}.tooltip.show{opacity:var(--bs-tooltip-opacity)}.tooltip .tooltip-arrow{display:block;width:var(--bs-tooltip-arrow-width);height:var(--bs-tooltip-arrow-height)}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:rgba(0,0,0,0);border-style:solid}.bs-tooltip-top .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow{bottom:calc(-1*var(--bs-tooltip-arrow-height))}.bs-tooltip-top .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before{top:-1px;border-width:var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width)*.5) 0;border-top-color:var(--bs-tooltip-bg)}.bs-tooltip-end .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow{left:calc(-1*var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-end .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before{right:-1px;border-width:calc(var(--bs-tooltip-arrow-width)*.5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width)*.5) 0;border-right-color:var(--bs-tooltip-bg)}.bs-tooltip-bottom .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow{top:calc(-1*var(--bs-tooltip-arrow-height))}.bs-tooltip-bottom .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before{bottom:-1px;border-width:0 calc(var(--bs-tooltip-arrow-width)*.5) var(--bs-tooltip-arrow-height);border-bottom-color:var(--bs-tooltip-bg)}.bs-tooltip-start .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow{right:calc(-1*var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-start .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before{left:-1px;border-width:calc(var(--bs-tooltip-arrow-width)*.5) 0 calc(var(--bs-tooltip-arrow-width)*.5) var(--bs-tooltip-arrow-height);border-left-color:var(--bs-tooltip-bg)}.tooltip-inner{max-width:var(--bs-tooltip-max-width);padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-tooltip-color);text-align:center;background-color:var(--bs-tooltip-bg);border-radius:var(--bs-tooltip-border-radius)}.popover{--bs-popover-zindex: 1070;--bs-popover-max-width: 276px;--bs-popover-font-size:0.875rem;--bs-popover-bg: #ffffff;--bs-popover-border-width: 1px;--bs-popover-border-color: rgba(0, 0, 0, 0.175);--bs-popover-border-radius: 0.5rem;--bs-popover-inner-border-radius: calc(0.5rem - 1px);--bs-popover-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-popover-header-padding-x: 1rem;--bs-popover-header-padding-y: 0.5rem;--bs-popover-header-font-size:1rem;--bs-popover-header-color: inherit;--bs-popover-header-bg: #e9ecef;--bs-popover-body-padding-x: 1rem;--bs-popover-body-padding-y: 1rem;--bs-popover-body-color: #212529;--bs-popover-arrow-width: 1rem;--bs-popover-arrow-height: 0.5rem;--bs-popover-arrow-border: var(--bs-popover-border-color);z-index:var(--bs-popover-zindex);display:block;max-width:var(--bs-popover-max-width);font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans","Liberation Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-popover-font-size);word-wrap:break-word;background-color:var(--bs-popover-bg);background-clip:padding-box;border:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-radius:var(--bs-popover-border-radius)}.popover .popover-arrow{display:block;width:var(--bs-popover-arrow-width);height:var(--bs-popover-arrow-height)}.popover .popover-arrow::before,.popover .popover-arrow::after{position:absolute;display:block;content:"";border-color:rgba(0,0,0,0);border-style:solid;border-width:0}.bs-popover-top>.popover-arrow,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow{bottom:calc(-1*(var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-top>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after{border-width:var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width)*.5) 0}.bs-popover-top>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before{bottom:0;border-top-color:var(--bs-popover-arrow-border)}.bs-popover-top>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after{bottom:var(--bs-popover-border-width);border-top-color:var(--bs-popover-bg)}.bs-popover-end>.popover-arrow,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow{left:calc(-1*(var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-end>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after{border-width:calc(var(--bs-popover-arrow-width)*.5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width)*.5) 0}.bs-popover-end>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before{left:0;border-right-color:var(--bs-popover-arrow-border)}.bs-popover-end>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after{left:var(--bs-popover-border-width);border-right-color:var(--bs-popover-bg)}.bs-popover-bottom>.popover-arrow,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow{top:calc(-1*(var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-bottom>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after{border-width:0 calc(var(--bs-popover-arrow-width)*.5) var(--bs-popover-arrow-height)}.bs-popover-bottom>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before{top:0;border-bottom-color:var(--bs-popover-arrow-border)}.bs-popover-bottom>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after{top:var(--bs-popover-border-width);border-bottom-color:var(--bs-popover-bg)}.bs-popover-bottom .popover-header::before,.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before{position:absolute;top:0;left:50%;display:block;width:var(--bs-popover-arrow-width);margin-left:calc(-0.5*var(--bs-popover-arrow-width));content:"";border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-header-bg)}.bs-popover-start>.popover-arrow,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow{right:calc(-1*(var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-start>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after{border-width:calc(var(--bs-popover-arrow-width)*.5) 0 calc(var(--bs-popover-arrow-width)*.5) var(--bs-popover-arrow-height)}.bs-popover-start>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before{right:0;border-left-color:var(--bs-popover-arrow-border)}.bs-popover-start>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after{right:var(--bs-popover-border-width);border-left-color:var(--bs-popover-bg)}.popover-header{padding:var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);margin-bottom:0;font-size:var(--bs-popover-header-font-size);color:var(--bs-popover-header-color);background-color:var(--bs-popover-header-bg);border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-top-left-radius:var(--bs-popover-inner-border-radius);border-top-right-radius:var(--bs-popover-inner-border-radius)}.popover-header:empty{display:none}.popover-body{padding:var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);color:var(--bs-popover-body-color)}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y;-webkit-touch-action:pan-y;-moz-touch-action:pan-y;-ms-touch-action:pan-y;-o-touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-o-backface-visibility:hidden;transition:transform .6s ease-in-out}@media(prefers-reduced-motion: reduce){.carousel-item{transition:none}}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next:not(.carousel-item-start),.active.carousel-item-end{transform:translateX(100%)}.carousel-item-prev:not(.carousel-item-end),.active.carousel-item-start{transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end{z-index:1;opacity:1}.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{z-index:0;opacity:0;transition:opacity 0s .6s}@media(prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{transition:none}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;justify-content:center;-webkit-justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:none;border:0;opacity:.5;transition:opacity .15s ease}@media(prefers-reduced-motion: reduce){.carousel-control-prev,.carousel-control-next{transition:none}}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23ffffff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23ffffff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;display:-webkit-flex;justify-content:center;-webkit-justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;-webkit-flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid rgba(0,0,0,0);border-bottom:10px solid rgba(0,0,0,0);opacity:.5;transition:opacity .6s ease}@media(prefers-reduced-motion: reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-prev-icon,.carousel-dark .carousel-control-next-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}[data-bs-theme=dark] .carousel .carousel-control-prev-icon,[data-bs-theme=dark] .carousel .carousel-control-next-icon,[data-bs-theme=dark].carousel .carousel-control-prev-icon,[data-bs-theme=dark].carousel .carousel-control-next-icon{filter:invert(1) grayscale(100)}[data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target],[data-bs-theme=dark].carousel .carousel-indicators [data-bs-target]{background-color:#000}[data-bs-theme=dark] .carousel .carousel-caption,[data-bs-theme=dark].carousel .carousel-caption{color:#000}.spinner-grow,.spinner-border{display:inline-block;width:var(--bs-spinner-width);height:var(--bs-spinner-height);vertical-align:var(--bs-spinner-vertical-align);border-radius:50%;animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name)}@keyframes spinner-border{to{transform:rotate(360deg) /* rtl:ignore */}}.spinner-border{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -0.125em;--bs-spinner-border-width: 0.25em;--bs-spinner-animation-speed: 0.75s;--bs-spinner-animation-name: spinner-border;border:var(--bs-spinner-border-width) solid currentcolor;border-right-color:rgba(0,0,0,0)}.spinner-border-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem;--bs-spinner-border-width: 0.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -0.125em;--bs-spinner-animation-speed: 0.75s;--bs-spinner-animation-name: spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem}@media(prefers-reduced-motion: reduce){.spinner-border,.spinner-grow{--bs-spinner-animation-speed: 1.5s}}.offcanvas,.offcanvas-xxl,.offcanvas-xl,.offcanvas-lg,.offcanvas-md,.offcanvas-sm{--bs-offcanvas-zindex: 1045;--bs-offcanvas-width: 400px;--bs-offcanvas-height: 30vh;--bs-offcanvas-padding-x: 1rem;--bs-offcanvas-padding-y: 1rem;--bs-offcanvas-color: #212529;--bs-offcanvas-bg: #ffffff;--bs-offcanvas-border-width: 1px;--bs-offcanvas-border-color: rgba(0, 0, 0, 0.175);--bs-offcanvas-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-offcanvas-transition: transform 0.3s ease-in-out;--bs-offcanvas-title-line-height: 1.5}@media(max-width: 575.98px){.offcanvas-sm{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media(max-width: 575.98px)and (prefers-reduced-motion: reduce){.offcanvas-sm{transition:none}}@media(max-width: 575.98px){.offcanvas-sm.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}}@media(max-width: 575.98px){.offcanvas-sm.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}}@media(max-width: 575.98px){.offcanvas-sm.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}}@media(max-width: 575.98px){.offcanvas-sm.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}}@media(max-width: 575.98px){.offcanvas-sm.showing,.offcanvas-sm.show:not(.hiding){transform:none}}@media(max-width: 575.98px){.offcanvas-sm.showing,.offcanvas-sm.hiding,.offcanvas-sm.show{visibility:visible}}@media(min-width: 576px){.offcanvas-sm{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:rgba(0,0,0,0) !important}.offcanvas-sm .offcanvas-header{display:none}.offcanvas-sm .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !important}}@media(max-width: 767.98px){.offcanvas-md{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media(max-width: 767.98px)and (prefers-reduced-motion: reduce){.offcanvas-md{transition:none}}@media(max-width: 767.98px){.offcanvas-md.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}}@media(max-width: 767.98px){.offcanvas-md.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}}@media(max-width: 767.98px){.offcanvas-md.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}}@media(max-width: 767.98px){.offcanvas-md.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}}@media(max-width: 767.98px){.offcanvas-md.showing,.offcanvas-md.show:not(.hiding){transform:none}}@media(max-width: 767.98px){.offcanvas-md.showing,.offcanvas-md.hiding,.offcanvas-md.show{visibility:visible}}@media(min-width: 768px){.offcanvas-md{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:rgba(0,0,0,0) !important}.offcanvas-md .offcanvas-header{display:none}.offcanvas-md .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !important}}@media(max-width: 991.98px){.offcanvas-lg{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media(max-width: 991.98px)and (prefers-reduced-motion: reduce){.offcanvas-lg{transition:none}}@media(max-width: 991.98px){.offcanvas-lg.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}}@media(max-width: 991.98px){.offcanvas-lg.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}}@media(max-width: 991.98px){.offcanvas-lg.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}}@media(max-width: 991.98px){.offcanvas-lg.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}}@media(max-width: 991.98px){.offcanvas-lg.showing,.offcanvas-lg.show:not(.hiding){transform:none}}@media(max-width: 991.98px){.offcanvas-lg.showing,.offcanvas-lg.hiding,.offcanvas-lg.show{visibility:visible}}@media(min-width: 992px){.offcanvas-lg{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:rgba(0,0,0,0) !important}.offcanvas-lg .offcanvas-header{display:none}.offcanvas-lg .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !important}}@media(max-width: 1199.98px){.offcanvas-xl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media(max-width: 1199.98px)and (prefers-reduced-motion: reduce){.offcanvas-xl{transition:none}}@media(max-width: 1199.98px){.offcanvas-xl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}}@media(max-width: 1199.98px){.offcanvas-xl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}}@media(max-width: 1199.98px){.offcanvas-xl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}}@media(max-width: 1199.98px){.offcanvas-xl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}}@media(max-width: 1199.98px){.offcanvas-xl.showing,.offcanvas-xl.show:not(.hiding){transform:none}}@media(max-width: 1199.98px){.offcanvas-xl.showing,.offcanvas-xl.hiding,.offcanvas-xl.show{visibility:visible}}@media(min-width: 1200px){.offcanvas-xl{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:rgba(0,0,0,0) !important}.offcanvas-xl .offcanvas-header{display:none}.offcanvas-xl .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !important}}@media(max-width: 1399.98px){.offcanvas-xxl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media(max-width: 1399.98px)and (prefers-reduced-motion: reduce){.offcanvas-xxl{transition:none}}@media(max-width: 1399.98px){.offcanvas-xxl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}}@media(max-width: 1399.98px){.offcanvas-xxl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}}@media(max-width: 1399.98px){.offcanvas-xxl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}}@media(max-width: 1399.98px){.offcanvas-xxl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}}@media(max-width: 1399.98px){.offcanvas-xxl.showing,.offcanvas-xxl.show:not(.hiding){transform:none}}@media(max-width: 1399.98px){.offcanvas-xxl.showing,.offcanvas-xxl.hiding,.offcanvas-xxl.show{visibility:visible}}@media(min-width: 1400px){.offcanvas-xxl{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:rgba(0,0,0,0) !important}.offcanvas-xxl .offcanvas-header{display:none}.offcanvas-xxl .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !important}}.offcanvas{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}@media(prefers-reduced-motion: reduce){.offcanvas{transition:none}}.offcanvas.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas.showing,.offcanvas.show:not(.hiding){transform:none}.offcanvas.showing,.offcanvas.hiding,.offcanvas.show{visibility:visible}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x)}.offcanvas-header .btn-close{padding:calc(var(--bs-offcanvas-padding-y)*.5) calc(var(--bs-offcanvas-padding-x)*.5);margin-top:calc(-0.5*var(--bs-offcanvas-padding-y));margin-right:calc(-0.5*var(--bs-offcanvas-padding-x));margin-bottom:calc(-0.5*var(--bs-offcanvas-padding-y))}.offcanvas-title{margin-bottom:0;line-height:var(--bs-offcanvas-title-line-height)}.offcanvas-body{flex-grow:1;-webkit-flex-grow:1;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);overflow-y:auto}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.5}.placeholder.btn::before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{mask-image:linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);-webkit-mask-image:linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);mask-size:200% 100%;-webkit-mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{100%{mask-position:-200% 0%;-webkit-mask-position:-200% 0%}}.clearfix::after{display:block;clear:both;content:""}.text-bg-default{color:#000 !important;background-color:RGBA(var(--bs-default-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-primary{color:#fff !important;background-color:RGBA(var(--bs-primary-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-secondary{color:#fff !important;background-color:RGBA(var(--bs-secondary-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-success{color:#fff !important;background-color:RGBA(var(--bs-success-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-info{color:#000 !important;background-color:RGBA(var(--bs-info-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-warning{color:#000 !important;background-color:RGBA(var(--bs-warning-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-danger{color:#fff !important;background-color:RGBA(var(--bs-danger-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-light{color:#000 !important;background-color:RGBA(var(--bs-light-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-dark{color:#fff !important;background-color:RGBA(var(--bs-dark-rgb), var(--bs-bg-opacity, 1)) !important}.link-default{color:RGBA(var(--bs-default-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-default-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-default:hover,.link-default:focus{color:RGBA(229, 232, 235, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(229, 232, 235, var(--bs-link-underline-opacity, 1)) !important}.link-primary{color:RGBA(var(--bs-primary-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-primary:hover,.link-primary:focus{color:RGBA(10, 88, 202, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(10, 88, 202, var(--bs-link-underline-opacity, 1)) !important}.link-secondary{color:RGBA(var(--bs-secondary-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-secondary-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-secondary:hover,.link-secondary:focus{color:RGBA(86, 94, 100, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(86, 94, 100, var(--bs-link-underline-opacity, 1)) !important}.link-success{color:RGBA(var(--bs-success-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-success-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-success:hover,.link-success:focus{color:RGBA(20, 108, 67, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(20, 108, 67, var(--bs-link-underline-opacity, 1)) !important}.link-info{color:RGBA(var(--bs-info-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-info-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-info:hover,.link-info:focus{color:RGBA(61, 213, 243, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(61, 213, 243, var(--bs-link-underline-opacity, 1)) !important}.link-warning{color:RGBA(var(--bs-warning-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-warning-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-warning:hover,.link-warning:focus{color:RGBA(255, 205, 57, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(255, 205, 57, var(--bs-link-underline-opacity, 1)) !important}.link-danger{color:RGBA(var(--bs-danger-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-danger:hover,.link-danger:focus{color:RGBA(176, 42, 55, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(176, 42, 55, var(--bs-link-underline-opacity, 1)) !important}.link-light{color:RGBA(var(--bs-light-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-light-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-light:hover,.link-light:focus{color:RGBA(249, 250, 251, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(249, 250, 251, var(--bs-link-underline-opacity, 1)) !important}.link-dark{color:RGBA(var(--bs-dark-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-dark-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-dark:hover,.link-dark:focus{color:RGBA(26, 30, 33, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(26, 30, 33, var(--bs-link-underline-opacity, 1)) !important}.link-body-emphasis{color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-body-emphasis:hover,.link-body-emphasis:focus{color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 0.75)) !important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 0.75)) !important}.focus-ring:focus{outline:0;box-shadow:var(--bs-focus-ring-x, 0) var(--bs-focus-ring-y, 0) var(--bs-focus-ring-blur, 0) var(--bs-focus-ring-width) var(--bs-focus-ring-color)}.icon-link{display:inline-flex;gap:.375rem;align-items:center;-webkit-align-items:center;text-decoration-color:rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 0.5));text-underline-offset:.25em;backface-visibility:hidden;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-o-backface-visibility:hidden}.icon-link>.bi{flex-shrink:0;-webkit-flex-shrink:0;width:1em;height:1em;fill:currentcolor;transition:.2s ease-in-out transform}@media(prefers-reduced-motion: reduce){.icon-link>.bi{transition:none}}.icon-link-hover:hover>.bi,.icon-link-hover:focus-visible>.bi{transform:var(--bs-icon-link-transform, translate3d(0.25em, 0, 0))}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio: 100%}.ratio-4x3{--bs-aspect-ratio: 75%}.ratio-16x9{--bs-aspect-ratio: 56.25%}.ratio-21x9{--bs-aspect-ratio: 42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:sticky;top:0;z-index:1020}.sticky-bottom{position:sticky;bottom:0;z-index:1020}@media(min-width: 576px){.sticky-sm-top{position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:sticky;bottom:0;z-index:1020}}@media(min-width: 768px){.sticky-md-top{position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:sticky;bottom:0;z-index:1020}}@media(min-width: 992px){.sticky-lg-top{position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:sticky;bottom:0;z-index:1020}}@media(min-width: 1200px){.sticky-xl-top{position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:sticky;bottom:0;z-index:1020}}@media(min-width: 1400px){.sticky-xxl-top{position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:sticky;bottom:0;z-index:1020}}.hstack{display:flex;display:-webkit-flex;flex-direction:row;-webkit-flex-direction:row;align-items:center;-webkit-align-items:center;align-self:stretch;-webkit-align-self:stretch}.vstack{display:flex;display:-webkit-flex;flex:1 1 auto;-webkit-flex:1 1 auto;flex-direction:column;-webkit-flex-direction:column;align-self:stretch;-webkit-align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.visually-hidden:not(caption),.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption){position:absolute !important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;-webkit-align-self:stretch;width:1px;min-height:1em;background-color:currentcolor;opacity:.25}.align-baseline{vertical-align:baseline !important}.align-top{vertical-align:top !important}.align-middle{vertical-align:middle !important}.align-bottom{vertical-align:bottom !important}.align-text-bottom{vertical-align:text-bottom !important}.align-text-top{vertical-align:text-top !important}.float-start{float:left !important}.float-end{float:right !important}.float-none{float:none !important}.object-fit-contain{object-fit:contain !important}.object-fit-cover{object-fit:cover !important}.object-fit-fill{object-fit:fill !important}.object-fit-scale{object-fit:scale-down !important}.object-fit-none{object-fit:none !important}.opacity-0{opacity:0 !important}.opacity-25{opacity:.25 !important}.opacity-50{opacity:.5 !important}.opacity-75{opacity:.75 !important}.opacity-100{opacity:1 !important}.overflow-auto{overflow:auto !important}.overflow-hidden{overflow:hidden !important}.overflow-visible{overflow:visible !important}.overflow-scroll{overflow:scroll !important}.overflow-x-auto{overflow-x:auto !important}.overflow-x-hidden{overflow-x:hidden !important}.overflow-x-visible{overflow-x:visible !important}.overflow-x-scroll{overflow-x:scroll !important}.overflow-y-auto{overflow-y:auto !important}.overflow-y-hidden{overflow-y:hidden !important}.overflow-y-visible{overflow-y:visible !important}.overflow-y-scroll{overflow-y:scroll !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-block{display:block !important}.d-grid{display:grid !important}.d-inline-grid{display:inline-grid !important}.d-table{display:table !important}.d-table-row{display:table-row !important}.d-table-cell{display:table-cell !important}.d-flex{display:flex !important}.d-inline-flex{display:inline-flex !important}.d-none{display:none !important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15) !important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075) !important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175) !important}.shadow-none{box-shadow:none !important}.focus-ring-default{--bs-focus-ring-color: rgba(var(--bs-default-rgb), var(--bs-focus-ring-opacity))}.focus-ring-primary{--bs-focus-ring-color: rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-secondary{--bs-focus-ring-color: rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-success{--bs-focus-ring-color: rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity))}.focus-ring-info{--bs-focus-ring-color: rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity))}.focus-ring-warning{--bs-focus-ring-color: rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity))}.focus-ring-danger{--bs-focus-ring-color: rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity))}.focus-ring-light{--bs-focus-ring-color: rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity))}.focus-ring-dark{--bs-focus-ring-color: rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity))}.position-static{position:static !important}.position-relative{position:relative !important}.position-absolute{position:absolute !important}.position-fixed{position:fixed !important}.position-sticky{position:sticky !important}.top-0{top:0 !important}.top-50{top:50% !important}.top-100{top:100% !important}.bottom-0{bottom:0 !important}.bottom-50{bottom:50% !important}.bottom-100{bottom:100% !important}.start-0{left:0 !important}.start-50{left:50% !important}.start-100{left:100% !important}.end-0{right:0 !important}.end-50{right:50% !important}.end-100{right:100% !important}.translate-middle{transform:translate(-50%, -50%) !important}.translate-middle-x{transform:translateX(-50%) !important}.translate-middle-y{transform:translateY(-50%) !important}.border{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-0{border:0 !important}.border-top{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-top-0{border-top:0 !important}.border-end{border-right:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-end-0{border-right:0 !important}.border-bottom{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-bottom-0{border-bottom:0 !important}.border-start{border-left:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-start-0{border-left:0 !important}.border-default{--bs-border-opacity: 1;border-color:rgba(var(--bs-default-rgb), var(--bs-border-opacity)) !important}.border-primary{--bs-border-opacity: 1;border-color:rgba(var(--bs-primary-rgb), var(--bs-border-opacity)) !important}.border-secondary{--bs-border-opacity: 1;border-color:rgba(var(--bs-secondary-rgb), var(--bs-border-opacity)) !important}.border-success{--bs-border-opacity: 1;border-color:rgba(var(--bs-success-rgb), var(--bs-border-opacity)) !important}.border-info{--bs-border-opacity: 1;border-color:rgba(var(--bs-info-rgb), var(--bs-border-opacity)) !important}.border-warning{--bs-border-opacity: 1;border-color:rgba(var(--bs-warning-rgb), var(--bs-border-opacity)) !important}.border-danger{--bs-border-opacity: 1;border-color:rgba(var(--bs-danger-rgb), var(--bs-border-opacity)) !important}.border-light{--bs-border-opacity: 1;border-color:rgba(var(--bs-light-rgb), var(--bs-border-opacity)) !important}.border-dark{--bs-border-opacity: 1;border-color:rgba(var(--bs-dark-rgb), var(--bs-border-opacity)) !important}.border-black{--bs-border-opacity: 1;border-color:rgba(var(--bs-black-rgb), var(--bs-border-opacity)) !important}.border-white{--bs-border-opacity: 1;border-color:rgba(var(--bs-white-rgb), var(--bs-border-opacity)) !important}.border-primary-subtle{border-color:var(--bs-primary-border-subtle) !important}.border-secondary-subtle{border-color:var(--bs-secondary-border-subtle) !important}.border-success-subtle{border-color:var(--bs-success-border-subtle) !important}.border-info-subtle{border-color:var(--bs-info-border-subtle) !important}.border-warning-subtle{border-color:var(--bs-warning-border-subtle) !important}.border-danger-subtle{border-color:var(--bs-danger-border-subtle) !important}.border-light-subtle{border-color:var(--bs-light-border-subtle) !important}.border-dark-subtle{border-color:var(--bs-dark-border-subtle) !important}.border-1{border-width:1px !important}.border-2{border-width:2px !important}.border-3{border-width:3px !important}.border-4{border-width:4px !important}.border-5{border-width:5px !important}.border-opacity-10{--bs-border-opacity: 0.1}.border-opacity-25{--bs-border-opacity: 0.25}.border-opacity-50{--bs-border-opacity: 0.5}.border-opacity-75{--bs-border-opacity: 0.75}.border-opacity-100{--bs-border-opacity: 1}.w-25{width:25% !important}.w-50{width:50% !important}.w-75{width:75% !important}.w-100{width:100% !important}.w-auto{width:auto !important}.mw-100{max-width:100% !important}.vw-100{width:100vw !important}.min-vw-100{min-width:100vw !important}.h-25{height:25% !important}.h-50{height:50% !important}.h-75{height:75% !important}.h-100{height:100% !important}.h-auto{height:auto !important}.mh-100{max-height:100% !important}.vh-100{height:100vh !important}.min-vh-100{min-height:100vh !important}.flex-fill{flex:1 1 auto !important}.flex-row{flex-direction:row !important}.flex-column{flex-direction:column !important}.flex-row-reverse{flex-direction:row-reverse !important}.flex-column-reverse{flex-direction:column-reverse !important}.flex-grow-0{flex-grow:0 !important}.flex-grow-1{flex-grow:1 !important}.flex-shrink-0{flex-shrink:0 !important}.flex-shrink-1{flex-shrink:1 !important}.flex-wrap{flex-wrap:wrap !important}.flex-nowrap{flex-wrap:nowrap !important}.flex-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-start{justify-content:flex-start !important}.justify-content-end{justify-content:flex-end !important}.justify-content-center{justify-content:center !important}.justify-content-between{justify-content:space-between !important}.justify-content-around{justify-content:space-around !important}.justify-content-evenly{justify-content:space-evenly !important}.align-items-start{align-items:flex-start !important}.align-items-end{align-items:flex-end !important}.align-items-center{align-items:center !important}.align-items-baseline{align-items:baseline !important}.align-items-stretch{align-items:stretch !important}.align-content-start{align-content:flex-start !important}.align-content-end{align-content:flex-end !important}.align-content-center{align-content:center !important}.align-content-between{align-content:space-between !important}.align-content-around{align-content:space-around !important}.align-content-stretch{align-content:stretch !important}.align-self-auto{align-self:auto !important}.align-self-start{align-self:flex-start !important}.align-self-end{align-self:flex-end !important}.align-self-center{align-self:center !important}.align-self-baseline{align-self:baseline !important}.align-self-stretch{align-self:stretch !important}.order-first{order:-1 !important}.order-0{order:0 !important}.order-1{order:1 !important}.order-2{order:2 !important}.order-3{order:3 !important}.order-4{order:4 !important}.order-5{order:5 !important}.order-last{order:6 !important}.m-0{margin:0 !important}.m-1{margin:.25rem !important}.m-2{margin:.5rem !important}.m-3{margin:1rem !important}.m-4{margin:1.5rem !important}.m-5{margin:3rem !important}.m-auto{margin:auto !important}.mx-0{margin-right:0 !important;margin-left:0 !important}.mx-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-3{margin-right:1rem !important;margin-left:1rem !important}.mx-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-5{margin-right:3rem !important;margin-left:3rem !important}.mx-auto{margin-right:auto !important;margin-left:auto !important}.my-0{margin-top:0 !important;margin-bottom:0 !important}.my-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-0{margin-top:0 !important}.mt-1{margin-top:.25rem !important}.mt-2{margin-top:.5rem !important}.mt-3{margin-top:1rem !important}.mt-4{margin-top:1.5rem !important}.mt-5{margin-top:3rem !important}.mt-auto{margin-top:auto !important}.me-0{margin-right:0 !important}.me-1{margin-right:.25rem !important}.me-2{margin-right:.5rem !important}.me-3{margin-right:1rem !important}.me-4{margin-right:1.5rem !important}.me-5{margin-right:3rem !important}.me-auto{margin-right:auto !important}.mb-0{margin-bottom:0 !important}.mb-1{margin-bottom:.25rem !important}.mb-2{margin-bottom:.5rem !important}.mb-3{margin-bottom:1rem !important}.mb-4{margin-bottom:1.5rem !important}.mb-5{margin-bottom:3rem !important}.mb-auto{margin-bottom:auto !important}.ms-0{margin-left:0 !important}.ms-1{margin-left:.25rem !important}.ms-2{margin-left:.5rem !important}.ms-3{margin-left:1rem !important}.ms-4{margin-left:1.5rem !important}.ms-5{margin-left:3rem !important}.ms-auto{margin-left:auto !important}.p-0{padding:0 !important}.p-1{padding:.25rem !important}.p-2{padding:.5rem !important}.p-3{padding:1rem !important}.p-4{padding:1.5rem !important}.p-5{padding:3rem !important}.px-0{padding-right:0 !important;padding-left:0 !important}.px-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-3{padding-right:1rem !important;padding-left:1rem !important}.px-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-5{padding-right:3rem !important;padding-left:3rem !important}.py-0{padding-top:0 !important;padding-bottom:0 !important}.py-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-0{padding-top:0 !important}.pt-1{padding-top:.25rem !important}.pt-2{padding-top:.5rem !important}.pt-3{padding-top:1rem !important}.pt-4{padding-top:1.5rem !important}.pt-5{padding-top:3rem !important}.pe-0{padding-right:0 !important}.pe-1{padding-right:.25rem !important}.pe-2{padding-right:.5rem !important}.pe-3{padding-right:1rem !important}.pe-4{padding-right:1.5rem !important}.pe-5{padding-right:3rem !important}.pb-0{padding-bottom:0 !important}.pb-1{padding-bottom:.25rem !important}.pb-2{padding-bottom:.5rem !important}.pb-3{padding-bottom:1rem !important}.pb-4{padding-bottom:1.5rem !important}.pb-5{padding-bottom:3rem !important}.ps-0{padding-left:0 !important}.ps-1{padding-left:.25rem !important}.ps-2{padding-left:.5rem !important}.ps-3{padding-left:1rem !important}.ps-4{padding-left:1.5rem !important}.ps-5{padding-left:3rem !important}.gap-0{gap:0 !important}.gap-1{gap:.25rem !important}.gap-2{gap:.5rem !important}.gap-3{gap:1rem !important}.gap-4{gap:1.5rem !important}.gap-5{gap:3rem !important}.row-gap-0{row-gap:0 !important}.row-gap-1{row-gap:.25rem !important}.row-gap-2{row-gap:.5rem !important}.row-gap-3{row-gap:1rem !important}.row-gap-4{row-gap:1.5rem !important}.row-gap-5{row-gap:3rem !important}.column-gap-0{column-gap:0 !important}.column-gap-1{column-gap:.25rem !important}.column-gap-2{column-gap:.5rem !important}.column-gap-3{column-gap:1rem !important}.column-gap-4{column-gap:1.5rem !important}.column-gap-5{column-gap:3rem !important}.font-monospace{font-family:var(--bs-font-monospace) !important}.fs-1{font-size:calc(1.325rem + 0.9vw) !important}.fs-2{font-size:calc(1.29rem + 0.48vw) !important}.fs-3{font-size:calc(1.27rem + 0.24vw) !important}.fs-4{font-size:1.25rem !important}.fs-5{font-size:1.1rem !important}.fs-6{font-size:1rem !important}.fst-italic{font-style:italic !important}.fst-normal{font-style:normal !important}.fw-lighter{font-weight:lighter !important}.fw-light{font-weight:300 !important}.fw-normal{font-weight:400 !important}.fw-medium{font-weight:500 !important}.fw-semibold{font-weight:600 !important}.fw-bold{font-weight:700 !important}.fw-bolder{font-weight:bolder !important}.lh-1{line-height:1 !important}.lh-sm{line-height:1.25 !important}.lh-base{line-height:1.5 !important}.lh-lg{line-height:2 !important}.text-start{text-align:left !important}.text-end{text-align:right !important}.text-center{text-align:center !important}.text-decoration-none{text-decoration:none !important}.text-decoration-underline{text-decoration:underline !important}.text-decoration-line-through{text-decoration:line-through !important}.text-lowercase{text-transform:lowercase !important}.text-uppercase{text-transform:uppercase !important}.text-capitalize{text-transform:capitalize !important}.text-wrap{white-space:normal !important}.text-nowrap{white-space:nowrap !important}.text-break{word-wrap:break-word !important;word-break:break-word !important}.text-default{--bs-text-opacity: 1;color:rgba(var(--bs-default-rgb), var(--bs-text-opacity)) !important}.text-primary{--bs-text-opacity: 1;color:rgba(var(--bs-primary-rgb), var(--bs-text-opacity)) !important}.text-secondary{--bs-text-opacity: 1;color:rgba(var(--bs-secondary-rgb), var(--bs-text-opacity)) !important}.text-success{--bs-text-opacity: 1;color:rgba(var(--bs-success-rgb), var(--bs-text-opacity)) !important}.text-info{--bs-text-opacity: 1;color:rgba(var(--bs-info-rgb), var(--bs-text-opacity)) !important}.text-warning{--bs-text-opacity: 1;color:rgba(var(--bs-warning-rgb), var(--bs-text-opacity)) !important}.text-danger{--bs-text-opacity: 1;color:rgba(var(--bs-danger-rgb), var(--bs-text-opacity)) !important}.text-light{--bs-text-opacity: 1;color:rgba(var(--bs-light-rgb), var(--bs-text-opacity)) !important}.text-dark{--bs-text-opacity: 1;color:rgba(var(--bs-dark-rgb), var(--bs-text-opacity)) !important}.text-black{--bs-text-opacity: 1;color:rgba(var(--bs-black-rgb), var(--bs-text-opacity)) !important}.text-white{--bs-text-opacity: 1;color:rgba(var(--bs-white-rgb), var(--bs-text-opacity)) !important}.text-body{--bs-text-opacity: 1;color:rgba(var(--bs-body-color-rgb), var(--bs-text-opacity)) !important}.text-muted{--bs-text-opacity: 1;color:var(--bs-secondary-color) !important}.text-black-50{--bs-text-opacity: 1;color:rgba(0,0,0,.5) !important}.text-white-50{--bs-text-opacity: 1;color:rgba(255,255,255,.5) !important}.text-body-secondary{--bs-text-opacity: 1;color:var(--bs-secondary-color) !important}.text-body-tertiary{--bs-text-opacity: 1;color:var(--bs-tertiary-color) !important}.text-body-emphasis{--bs-text-opacity: 1;color:var(--bs-emphasis-color) !important}.text-reset{--bs-text-opacity: 1;color:inherit !important}.text-opacity-25{--bs-text-opacity: 0.25}.text-opacity-50{--bs-text-opacity: 0.5}.text-opacity-75{--bs-text-opacity: 0.75}.text-opacity-100{--bs-text-opacity: 1}.text-primary-emphasis{color:var(--bs-primary-text-emphasis) !important}.text-secondary-emphasis{color:var(--bs-secondary-text-emphasis) !important}.text-success-emphasis{color:var(--bs-success-text-emphasis) !important}.text-info-emphasis{color:var(--bs-info-text-emphasis) !important}.text-warning-emphasis{color:var(--bs-warning-text-emphasis) !important}.text-danger-emphasis{color:var(--bs-danger-text-emphasis) !important}.text-light-emphasis{color:var(--bs-light-text-emphasis) !important}.text-dark-emphasis{color:var(--bs-dark-text-emphasis) !important}.link-opacity-10{--bs-link-opacity: 0.1}.link-opacity-10-hover:hover{--bs-link-opacity: 0.1}.link-opacity-25{--bs-link-opacity: 0.25}.link-opacity-25-hover:hover{--bs-link-opacity: 0.25}.link-opacity-50{--bs-link-opacity: 0.5}.link-opacity-50-hover:hover{--bs-link-opacity: 0.5}.link-opacity-75{--bs-link-opacity: 0.75}.link-opacity-75-hover:hover{--bs-link-opacity: 0.75}.link-opacity-100{--bs-link-opacity: 1}.link-opacity-100-hover:hover{--bs-link-opacity: 1}.link-offset-1{text-underline-offset:.125em !important}.link-offset-1-hover:hover{text-underline-offset:.125em !important}.link-offset-2{text-underline-offset:.25em !important}.link-offset-2-hover:hover{text-underline-offset:.25em !important}.link-offset-3{text-underline-offset:.375em !important}.link-offset-3-hover:hover{text-underline-offset:.375em !important}.link-underline-default{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-default-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-primary{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-primary-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-secondary{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-secondary-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-success{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-success-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-info{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-info-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-warning{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-warning-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-danger{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-danger-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-light{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-light-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-dark{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-dark-rgb), var(--bs-link-underline-opacity)) !important}.link-underline{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-link-color-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-underline-opacity-0{--bs-link-underline-opacity: 0}.link-underline-opacity-0-hover:hover{--bs-link-underline-opacity: 0}.link-underline-opacity-10{--bs-link-underline-opacity: 0.1}.link-underline-opacity-10-hover:hover{--bs-link-underline-opacity: 0.1}.link-underline-opacity-25{--bs-link-underline-opacity: 0.25}.link-underline-opacity-25-hover:hover{--bs-link-underline-opacity: 0.25}.link-underline-opacity-50{--bs-link-underline-opacity: 0.5}.link-underline-opacity-50-hover:hover{--bs-link-underline-opacity: 0.5}.link-underline-opacity-75{--bs-link-underline-opacity: 0.75}.link-underline-opacity-75-hover:hover{--bs-link-underline-opacity: 0.75}.link-underline-opacity-100{--bs-link-underline-opacity: 1}.link-underline-opacity-100-hover:hover{--bs-link-underline-opacity: 1}.bg-default{--bs-bg-opacity: 1;background-color:rgba(var(--bs-default-rgb), var(--bs-bg-opacity)) !important}.bg-primary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important}.bg-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-rgb), var(--bs-bg-opacity)) !important}.bg-success{--bs-bg-opacity: 1;background-color:rgba(var(--bs-success-rgb), var(--bs-bg-opacity)) !important}.bg-info{--bs-bg-opacity: 1;background-color:rgba(var(--bs-info-rgb), var(--bs-bg-opacity)) !important}.bg-warning{--bs-bg-opacity: 1;background-color:rgba(var(--bs-warning-rgb), var(--bs-bg-opacity)) !important}.bg-danger{--bs-bg-opacity: 1;background-color:rgba(var(--bs-danger-rgb), var(--bs-bg-opacity)) !important}.bg-light{--bs-bg-opacity: 1;background-color:rgba(var(--bs-light-rgb), var(--bs-bg-opacity)) !important}.bg-dark{--bs-bg-opacity: 1;background-color:rgba(var(--bs-dark-rgb), var(--bs-bg-opacity)) !important}.bg-black{--bs-bg-opacity: 1;background-color:rgba(var(--bs-black-rgb), var(--bs-bg-opacity)) !important}.bg-white{--bs-bg-opacity: 1;background-color:rgba(var(--bs-white-rgb), var(--bs-bg-opacity)) !important}.bg-body{--bs-bg-opacity: 1;background-color:rgba(var(--bs-body-bg-rgb), var(--bs-bg-opacity)) !important}.bg-transparent{--bs-bg-opacity: 1;background-color:rgba(0,0,0,0) !important}.bg-body-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-bg-rgb), var(--bs-bg-opacity)) !important}.bg-body-tertiary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-tertiary-bg-rgb), var(--bs-bg-opacity)) !important}.bg-opacity-10{--bs-bg-opacity: 0.1}.bg-opacity-25{--bs-bg-opacity: 0.25}.bg-opacity-50{--bs-bg-opacity: 0.5}.bg-opacity-75{--bs-bg-opacity: 0.75}.bg-opacity-100{--bs-bg-opacity: 1}.bg-primary-subtle{background-color:var(--bs-primary-bg-subtle) !important}.bg-secondary-subtle{background-color:var(--bs-secondary-bg-subtle) !important}.bg-success-subtle{background-color:var(--bs-success-bg-subtle) !important}.bg-info-subtle{background-color:var(--bs-info-bg-subtle) !important}.bg-warning-subtle{background-color:var(--bs-warning-bg-subtle) !important}.bg-danger-subtle{background-color:var(--bs-danger-bg-subtle) !important}.bg-light-subtle{background-color:var(--bs-light-bg-subtle) !important}.bg-dark-subtle{background-color:var(--bs-dark-bg-subtle) !important}.bg-gradient{background-image:var(--bs-gradient) !important}.user-select-all{user-select:all !important}.user-select-auto{user-select:auto !important}.user-select-none{user-select:none !important}.pe-none{pointer-events:none !important}.pe-auto{pointer-events:auto !important}.rounded{border-radius:var(--bs-border-radius) !important}.rounded-0{border-radius:0 !important}.rounded-1{border-radius:var(--bs-border-radius-sm) !important}.rounded-2{border-radius:var(--bs-border-radius) !important}.rounded-3{border-radius:var(--bs-border-radius-lg) !important}.rounded-4{border-radius:var(--bs-border-radius-xl) !important}.rounded-5{border-radius:var(--bs-border-radius-xxl) !important}.rounded-circle{border-radius:50% !important}.rounded-pill{border-radius:var(--bs-border-radius-pill) !important}.rounded-top{border-top-left-radius:var(--bs-border-radius) !important;border-top-right-radius:var(--bs-border-radius) !important}.rounded-top-0{border-top-left-radius:0 !important;border-top-right-radius:0 !important}.rounded-top-1{border-top-left-radius:var(--bs-border-radius-sm) !important;border-top-right-radius:var(--bs-border-radius-sm) !important}.rounded-top-2{border-top-left-radius:var(--bs-border-radius) !important;border-top-right-radius:var(--bs-border-radius) !important}.rounded-top-3{border-top-left-radius:var(--bs-border-radius-lg) !important;border-top-right-radius:var(--bs-border-radius-lg) !important}.rounded-top-4{border-top-left-radius:var(--bs-border-radius-xl) !important;border-top-right-radius:var(--bs-border-radius-xl) !important}.rounded-top-5{border-top-left-radius:var(--bs-border-radius-xxl) !important;border-top-right-radius:var(--bs-border-radius-xxl) !important}.rounded-top-circle{border-top-left-radius:50% !important;border-top-right-radius:50% !important}.rounded-top-pill{border-top-left-radius:var(--bs-border-radius-pill) !important;border-top-right-radius:var(--bs-border-radius-pill) !important}.rounded-end{border-top-right-radius:var(--bs-border-radius) !important;border-bottom-right-radius:var(--bs-border-radius) !important}.rounded-end-0{border-top-right-radius:0 !important;border-bottom-right-radius:0 !important}.rounded-end-1{border-top-right-radius:var(--bs-border-radius-sm) !important;border-bottom-right-radius:var(--bs-border-radius-sm) !important}.rounded-end-2{border-top-right-radius:var(--bs-border-radius) !important;border-bottom-right-radius:var(--bs-border-radius) !important}.rounded-end-3{border-top-right-radius:var(--bs-border-radius-lg) !important;border-bottom-right-radius:var(--bs-border-radius-lg) !important}.rounded-end-4{border-top-right-radius:var(--bs-border-radius-xl) !important;border-bottom-right-radius:var(--bs-border-radius-xl) !important}.rounded-end-5{border-top-right-radius:var(--bs-border-radius-xxl) !important;border-bottom-right-radius:var(--bs-border-radius-xxl) !important}.rounded-end-circle{border-top-right-radius:50% !important;border-bottom-right-radius:50% !important}.rounded-end-pill{border-top-right-radius:var(--bs-border-radius-pill) !important;border-bottom-right-radius:var(--bs-border-radius-pill) !important}.rounded-bottom{border-bottom-right-radius:var(--bs-border-radius) !important;border-bottom-left-radius:var(--bs-border-radius) !important}.rounded-bottom-0{border-bottom-right-radius:0 !important;border-bottom-left-radius:0 !important}.rounded-bottom-1{border-bottom-right-radius:var(--bs-border-radius-sm) !important;border-bottom-left-radius:var(--bs-border-radius-sm) !important}.rounded-bottom-2{border-bottom-right-radius:var(--bs-border-radius) !important;border-bottom-left-radius:var(--bs-border-radius) !important}.rounded-bottom-3{border-bottom-right-radius:var(--bs-border-radius-lg) !important;border-bottom-left-radius:var(--bs-border-radius-lg) !important}.rounded-bottom-4{border-bottom-right-radius:var(--bs-border-radius-xl) !important;border-bottom-left-radius:var(--bs-border-radius-xl) !important}.rounded-bottom-5{border-bottom-right-radius:var(--bs-border-radius-xxl) !important;border-bottom-left-radius:var(--bs-border-radius-xxl) !important}.rounded-bottom-circle{border-bottom-right-radius:50% !important;border-bottom-left-radius:50% !important}.rounded-bottom-pill{border-bottom-right-radius:var(--bs-border-radius-pill) !important;border-bottom-left-radius:var(--bs-border-radius-pill) !important}.rounded-start{border-bottom-left-radius:var(--bs-border-radius) !important;border-top-left-radius:var(--bs-border-radius) !important}.rounded-start-0{border-bottom-left-radius:0 !important;border-top-left-radius:0 !important}.rounded-start-1{border-bottom-left-radius:var(--bs-border-radius-sm) !important;border-top-left-radius:var(--bs-border-radius-sm) !important}.rounded-start-2{border-bottom-left-radius:var(--bs-border-radius) !important;border-top-left-radius:var(--bs-border-radius) !important}.rounded-start-3{border-bottom-left-radius:var(--bs-border-radius-lg) !important;border-top-left-radius:var(--bs-border-radius-lg) !important}.rounded-start-4{border-bottom-left-radius:var(--bs-border-radius-xl) !important;border-top-left-radius:var(--bs-border-radius-xl) !important}.rounded-start-5{border-bottom-left-radius:var(--bs-border-radius-xxl) !important;border-top-left-radius:var(--bs-border-radius-xxl) !important}.rounded-start-circle{border-bottom-left-radius:50% !important;border-top-left-radius:50% !important}.rounded-start-pill{border-bottom-left-radius:var(--bs-border-radius-pill) !important;border-top-left-radius:var(--bs-border-radius-pill) !important}.visible{visibility:visible !important}.invisible{visibility:hidden !important}.z-n1{z-index:-1 !important}.z-0{z-index:0 !important}.z-1{z-index:1 !important}.z-2{z-index:2 !important}.z-3{z-index:3 !important}@media(min-width: 576px){.float-sm-start{float:left !important}.float-sm-end{float:right !important}.float-sm-none{float:none !important}.object-fit-sm-contain{object-fit:contain !important}.object-fit-sm-cover{object-fit:cover !important}.object-fit-sm-fill{object-fit:fill !important}.object-fit-sm-scale{object-fit:scale-down !important}.object-fit-sm-none{object-fit:none !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-block{display:block !important}.d-sm-grid{display:grid !important}.d-sm-inline-grid{display:inline-grid !important}.d-sm-table{display:table !important}.d-sm-table-row{display:table-row !important}.d-sm-table-cell{display:table-cell !important}.d-sm-flex{display:flex !important}.d-sm-inline-flex{display:inline-flex !important}.d-sm-none{display:none !important}.flex-sm-fill{flex:1 1 auto !important}.flex-sm-row{flex-direction:row !important}.flex-sm-column{flex-direction:column !important}.flex-sm-row-reverse{flex-direction:row-reverse !important}.flex-sm-column-reverse{flex-direction:column-reverse !important}.flex-sm-grow-0{flex-grow:0 !important}.flex-sm-grow-1{flex-grow:1 !important}.flex-sm-shrink-0{flex-shrink:0 !important}.flex-sm-shrink-1{flex-shrink:1 !important}.flex-sm-wrap{flex-wrap:wrap !important}.flex-sm-nowrap{flex-wrap:nowrap !important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-sm-start{justify-content:flex-start !important}.justify-content-sm-end{justify-content:flex-end !important}.justify-content-sm-center{justify-content:center !important}.justify-content-sm-between{justify-content:space-between !important}.justify-content-sm-around{justify-content:space-around !important}.justify-content-sm-evenly{justify-content:space-evenly !important}.align-items-sm-start{align-items:flex-start !important}.align-items-sm-end{align-items:flex-end !important}.align-items-sm-center{align-items:center !important}.align-items-sm-baseline{align-items:baseline !important}.align-items-sm-stretch{align-items:stretch !important}.align-content-sm-start{align-content:flex-start !important}.align-content-sm-end{align-content:flex-end !important}.align-content-sm-center{align-content:center !important}.align-content-sm-between{align-content:space-between !important}.align-content-sm-around{align-content:space-around !important}.align-content-sm-stretch{align-content:stretch !important}.align-self-sm-auto{align-self:auto !important}.align-self-sm-start{align-self:flex-start !important}.align-self-sm-end{align-self:flex-end !important}.align-self-sm-center{align-self:center !important}.align-self-sm-baseline{align-self:baseline !important}.align-self-sm-stretch{align-self:stretch !important}.order-sm-first{order:-1 !important}.order-sm-0{order:0 !important}.order-sm-1{order:1 !important}.order-sm-2{order:2 !important}.order-sm-3{order:3 !important}.order-sm-4{order:4 !important}.order-sm-5{order:5 !important}.order-sm-last{order:6 !important}.m-sm-0{margin:0 !important}.m-sm-1{margin:.25rem !important}.m-sm-2{margin:.5rem !important}.m-sm-3{margin:1rem !important}.m-sm-4{margin:1.5rem !important}.m-sm-5{margin:3rem !important}.m-sm-auto{margin:auto !important}.mx-sm-0{margin-right:0 !important;margin-left:0 !important}.mx-sm-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-sm-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-sm-3{margin-right:1rem !important;margin-left:1rem !important}.mx-sm-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-sm-5{margin-right:3rem !important;margin-left:3rem !important}.mx-sm-auto{margin-right:auto !important;margin-left:auto !important}.my-sm-0{margin-top:0 !important;margin-bottom:0 !important}.my-sm-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-sm-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-sm-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-sm-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-sm-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-sm-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-sm-0{margin-top:0 !important}.mt-sm-1{margin-top:.25rem !important}.mt-sm-2{margin-top:.5rem !important}.mt-sm-3{margin-top:1rem !important}.mt-sm-4{margin-top:1.5rem !important}.mt-sm-5{margin-top:3rem !important}.mt-sm-auto{margin-top:auto !important}.me-sm-0{margin-right:0 !important}.me-sm-1{margin-right:.25rem !important}.me-sm-2{margin-right:.5rem !important}.me-sm-3{margin-right:1rem !important}.me-sm-4{margin-right:1.5rem !important}.me-sm-5{margin-right:3rem !important}.me-sm-auto{margin-right:auto !important}.mb-sm-0{margin-bottom:0 !important}.mb-sm-1{margin-bottom:.25rem !important}.mb-sm-2{margin-bottom:.5rem !important}.mb-sm-3{margin-bottom:1rem !important}.mb-sm-4{margin-bottom:1.5rem !important}.mb-sm-5{margin-bottom:3rem !important}.mb-sm-auto{margin-bottom:auto !important}.ms-sm-0{margin-left:0 !important}.ms-sm-1{margin-left:.25rem !important}.ms-sm-2{margin-left:.5rem !important}.ms-sm-3{margin-left:1rem !important}.ms-sm-4{margin-left:1.5rem !important}.ms-sm-5{margin-left:3rem !important}.ms-sm-auto{margin-left:auto !important}.p-sm-0{padding:0 !important}.p-sm-1{padding:.25rem !important}.p-sm-2{padding:.5rem !important}.p-sm-3{padding:1rem !important}.p-sm-4{padding:1.5rem !important}.p-sm-5{padding:3rem !important}.px-sm-0{padding-right:0 !important;padding-left:0 !important}.px-sm-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-sm-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-sm-3{padding-right:1rem !important;padding-left:1rem !important}.px-sm-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-sm-5{padding-right:3rem !important;padding-left:3rem !important}.py-sm-0{padding-top:0 !important;padding-bottom:0 !important}.py-sm-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-sm-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-sm-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-sm-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-sm-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-sm-0{padding-top:0 !important}.pt-sm-1{padding-top:.25rem !important}.pt-sm-2{padding-top:.5rem !important}.pt-sm-3{padding-top:1rem !important}.pt-sm-4{padding-top:1.5rem !important}.pt-sm-5{padding-top:3rem !important}.pe-sm-0{padding-right:0 !important}.pe-sm-1{padding-right:.25rem !important}.pe-sm-2{padding-right:.5rem !important}.pe-sm-3{padding-right:1rem !important}.pe-sm-4{padding-right:1.5rem !important}.pe-sm-5{padding-right:3rem !important}.pb-sm-0{padding-bottom:0 !important}.pb-sm-1{padding-bottom:.25rem !important}.pb-sm-2{padding-bottom:.5rem !important}.pb-sm-3{padding-bottom:1rem !important}.pb-sm-4{padding-bottom:1.5rem !important}.pb-sm-5{padding-bottom:3rem !important}.ps-sm-0{padding-left:0 !important}.ps-sm-1{padding-left:.25rem !important}.ps-sm-2{padding-left:.5rem !important}.ps-sm-3{padding-left:1rem !important}.ps-sm-4{padding-left:1.5rem !important}.ps-sm-5{padding-left:3rem !important}.gap-sm-0{gap:0 !important}.gap-sm-1{gap:.25rem !important}.gap-sm-2{gap:.5rem !important}.gap-sm-3{gap:1rem !important}.gap-sm-4{gap:1.5rem !important}.gap-sm-5{gap:3rem !important}.row-gap-sm-0{row-gap:0 !important}.row-gap-sm-1{row-gap:.25rem !important}.row-gap-sm-2{row-gap:.5rem !important}.row-gap-sm-3{row-gap:1rem !important}.row-gap-sm-4{row-gap:1.5rem !important}.row-gap-sm-5{row-gap:3rem !important}.column-gap-sm-0{column-gap:0 !important}.column-gap-sm-1{column-gap:.25rem !important}.column-gap-sm-2{column-gap:.5rem !important}.column-gap-sm-3{column-gap:1rem !important}.column-gap-sm-4{column-gap:1.5rem !important}.column-gap-sm-5{column-gap:3rem !important}.text-sm-start{text-align:left !important}.text-sm-end{text-align:right !important}.text-sm-center{text-align:center !important}}@media(min-width: 768px){.float-md-start{float:left !important}.float-md-end{float:right !important}.float-md-none{float:none !important}.object-fit-md-contain{object-fit:contain !important}.object-fit-md-cover{object-fit:cover !important}.object-fit-md-fill{object-fit:fill !important}.object-fit-md-scale{object-fit:scale-down !important}.object-fit-md-none{object-fit:none !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-block{display:block !important}.d-md-grid{display:grid !important}.d-md-inline-grid{display:inline-grid !important}.d-md-table{display:table !important}.d-md-table-row{display:table-row !important}.d-md-table-cell{display:table-cell !important}.d-md-flex{display:flex !important}.d-md-inline-flex{display:inline-flex !important}.d-md-none{display:none !important}.flex-md-fill{flex:1 1 auto !important}.flex-md-row{flex-direction:row !important}.flex-md-column{flex-direction:column !important}.flex-md-row-reverse{flex-direction:row-reverse !important}.flex-md-column-reverse{flex-direction:column-reverse !important}.flex-md-grow-0{flex-grow:0 !important}.flex-md-grow-1{flex-grow:1 !important}.flex-md-shrink-0{flex-shrink:0 !important}.flex-md-shrink-1{flex-shrink:1 !important}.flex-md-wrap{flex-wrap:wrap !important}.flex-md-nowrap{flex-wrap:nowrap !important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-md-start{justify-content:flex-start !important}.justify-content-md-end{justify-content:flex-end !important}.justify-content-md-center{justify-content:center !important}.justify-content-md-between{justify-content:space-between !important}.justify-content-md-around{justify-content:space-around !important}.justify-content-md-evenly{justify-content:space-evenly !important}.align-items-md-start{align-items:flex-start !important}.align-items-md-end{align-items:flex-end !important}.align-items-md-center{align-items:center !important}.align-items-md-baseline{align-items:baseline !important}.align-items-md-stretch{align-items:stretch !important}.align-content-md-start{align-content:flex-start !important}.align-content-md-end{align-content:flex-end !important}.align-content-md-center{align-content:center !important}.align-content-md-between{align-content:space-between !important}.align-content-md-around{align-content:space-around !important}.align-content-md-stretch{align-content:stretch !important}.align-self-md-auto{align-self:auto !important}.align-self-md-start{align-self:flex-start !important}.align-self-md-end{align-self:flex-end !important}.align-self-md-center{align-self:center !important}.align-self-md-baseline{align-self:baseline !important}.align-self-md-stretch{align-self:stretch !important}.order-md-first{order:-1 !important}.order-md-0{order:0 !important}.order-md-1{order:1 !important}.order-md-2{order:2 !important}.order-md-3{order:3 !important}.order-md-4{order:4 !important}.order-md-5{order:5 !important}.order-md-last{order:6 !important}.m-md-0{margin:0 !important}.m-md-1{margin:.25rem !important}.m-md-2{margin:.5rem !important}.m-md-3{margin:1rem !important}.m-md-4{margin:1.5rem !important}.m-md-5{margin:3rem !important}.m-md-auto{margin:auto !important}.mx-md-0{margin-right:0 !important;margin-left:0 !important}.mx-md-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-md-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-md-3{margin-right:1rem !important;margin-left:1rem !important}.mx-md-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-md-5{margin-right:3rem !important;margin-left:3rem !important}.mx-md-auto{margin-right:auto !important;margin-left:auto !important}.my-md-0{margin-top:0 !important;margin-bottom:0 !important}.my-md-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-md-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-md-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-md-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-md-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-md-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-md-0{margin-top:0 !important}.mt-md-1{margin-top:.25rem !important}.mt-md-2{margin-top:.5rem !important}.mt-md-3{margin-top:1rem !important}.mt-md-4{margin-top:1.5rem !important}.mt-md-5{margin-top:3rem !important}.mt-md-auto{margin-top:auto !important}.me-md-0{margin-right:0 !important}.me-md-1{margin-right:.25rem !important}.me-md-2{margin-right:.5rem !important}.me-md-3{margin-right:1rem !important}.me-md-4{margin-right:1.5rem !important}.me-md-5{margin-right:3rem !important}.me-md-auto{margin-right:auto !important}.mb-md-0{margin-bottom:0 !important}.mb-md-1{margin-bottom:.25rem !important}.mb-md-2{margin-bottom:.5rem !important}.mb-md-3{margin-bottom:1rem !important}.mb-md-4{margin-bottom:1.5rem !important}.mb-md-5{margin-bottom:3rem !important}.mb-md-auto{margin-bottom:auto !important}.ms-md-0{margin-left:0 !important}.ms-md-1{margin-left:.25rem !important}.ms-md-2{margin-left:.5rem !important}.ms-md-3{margin-left:1rem !important}.ms-md-4{margin-left:1.5rem !important}.ms-md-5{margin-left:3rem !important}.ms-md-auto{margin-left:auto !important}.p-md-0{padding:0 !important}.p-md-1{padding:.25rem !important}.p-md-2{padding:.5rem !important}.p-md-3{padding:1rem !important}.p-md-4{padding:1.5rem !important}.p-md-5{padding:3rem !important}.px-md-0{padding-right:0 !important;padding-left:0 !important}.px-md-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-md-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-md-3{padding-right:1rem !important;padding-left:1rem !important}.px-md-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-md-5{padding-right:3rem !important;padding-left:3rem !important}.py-md-0{padding-top:0 !important;padding-bottom:0 !important}.py-md-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-md-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-md-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-md-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-md-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-md-0{padding-top:0 !important}.pt-md-1{padding-top:.25rem !important}.pt-md-2{padding-top:.5rem !important}.pt-md-3{padding-top:1rem !important}.pt-md-4{padding-top:1.5rem !important}.pt-md-5{padding-top:3rem !important}.pe-md-0{padding-right:0 !important}.pe-md-1{padding-right:.25rem !important}.pe-md-2{padding-right:.5rem !important}.pe-md-3{padding-right:1rem !important}.pe-md-4{padding-right:1.5rem !important}.pe-md-5{padding-right:3rem !important}.pb-md-0{padding-bottom:0 !important}.pb-md-1{padding-bottom:.25rem !important}.pb-md-2{padding-bottom:.5rem !important}.pb-md-3{padding-bottom:1rem !important}.pb-md-4{padding-bottom:1.5rem !important}.pb-md-5{padding-bottom:3rem !important}.ps-md-0{padding-left:0 !important}.ps-md-1{padding-left:.25rem !important}.ps-md-2{padding-left:.5rem !important}.ps-md-3{padding-left:1rem !important}.ps-md-4{padding-left:1.5rem !important}.ps-md-5{padding-left:3rem !important}.gap-md-0{gap:0 !important}.gap-md-1{gap:.25rem !important}.gap-md-2{gap:.5rem !important}.gap-md-3{gap:1rem !important}.gap-md-4{gap:1.5rem !important}.gap-md-5{gap:3rem !important}.row-gap-md-0{row-gap:0 !important}.row-gap-md-1{row-gap:.25rem !important}.row-gap-md-2{row-gap:.5rem !important}.row-gap-md-3{row-gap:1rem !important}.row-gap-md-4{row-gap:1.5rem !important}.row-gap-md-5{row-gap:3rem !important}.column-gap-md-0{column-gap:0 !important}.column-gap-md-1{column-gap:.25rem !important}.column-gap-md-2{column-gap:.5rem !important}.column-gap-md-3{column-gap:1rem !important}.column-gap-md-4{column-gap:1.5rem !important}.column-gap-md-5{column-gap:3rem !important}.text-md-start{text-align:left !important}.text-md-end{text-align:right !important}.text-md-center{text-align:center !important}}@media(min-width: 992px){.float-lg-start{float:left !important}.float-lg-end{float:right !important}.float-lg-none{float:none !important}.object-fit-lg-contain{object-fit:contain !important}.object-fit-lg-cover{object-fit:cover !important}.object-fit-lg-fill{object-fit:fill !important}.object-fit-lg-scale{object-fit:scale-down !important}.object-fit-lg-none{object-fit:none !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-block{display:block !important}.d-lg-grid{display:grid !important}.d-lg-inline-grid{display:inline-grid !important}.d-lg-table{display:table !important}.d-lg-table-row{display:table-row !important}.d-lg-table-cell{display:table-cell !important}.d-lg-flex{display:flex !important}.d-lg-inline-flex{display:inline-flex !important}.d-lg-none{display:none !important}.flex-lg-fill{flex:1 1 auto !important}.flex-lg-row{flex-direction:row !important}.flex-lg-column{flex-direction:column !important}.flex-lg-row-reverse{flex-direction:row-reverse !important}.flex-lg-column-reverse{flex-direction:column-reverse !important}.flex-lg-grow-0{flex-grow:0 !important}.flex-lg-grow-1{flex-grow:1 !important}.flex-lg-shrink-0{flex-shrink:0 !important}.flex-lg-shrink-1{flex-shrink:1 !important}.flex-lg-wrap{flex-wrap:wrap !important}.flex-lg-nowrap{flex-wrap:nowrap !important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-lg-start{justify-content:flex-start !important}.justify-content-lg-end{justify-content:flex-end !important}.justify-content-lg-center{justify-content:center !important}.justify-content-lg-between{justify-content:space-between !important}.justify-content-lg-around{justify-content:space-around !important}.justify-content-lg-evenly{justify-content:space-evenly !important}.align-items-lg-start{align-items:flex-start !important}.align-items-lg-end{align-items:flex-end !important}.align-items-lg-center{align-items:center !important}.align-items-lg-baseline{align-items:baseline !important}.align-items-lg-stretch{align-items:stretch !important}.align-content-lg-start{align-content:flex-start !important}.align-content-lg-end{align-content:flex-end !important}.align-content-lg-center{align-content:center !important}.align-content-lg-between{align-content:space-between !important}.align-content-lg-around{align-content:space-around !important}.align-content-lg-stretch{align-content:stretch !important}.align-self-lg-auto{align-self:auto !important}.align-self-lg-start{align-self:flex-start !important}.align-self-lg-end{align-self:flex-end !important}.align-self-lg-center{align-self:center !important}.align-self-lg-baseline{align-self:baseline !important}.align-self-lg-stretch{align-self:stretch !important}.order-lg-first{order:-1 !important}.order-lg-0{order:0 !important}.order-lg-1{order:1 !important}.order-lg-2{order:2 !important}.order-lg-3{order:3 !important}.order-lg-4{order:4 !important}.order-lg-5{order:5 !important}.order-lg-last{order:6 !important}.m-lg-0{margin:0 !important}.m-lg-1{margin:.25rem !important}.m-lg-2{margin:.5rem !important}.m-lg-3{margin:1rem !important}.m-lg-4{margin:1.5rem !important}.m-lg-5{margin:3rem !important}.m-lg-auto{margin:auto !important}.mx-lg-0{margin-right:0 !important;margin-left:0 !important}.mx-lg-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-lg-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-lg-3{margin-right:1rem !important;margin-left:1rem !important}.mx-lg-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-lg-5{margin-right:3rem !important;margin-left:3rem !important}.mx-lg-auto{margin-right:auto !important;margin-left:auto !important}.my-lg-0{margin-top:0 !important;margin-bottom:0 !important}.my-lg-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-lg-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-lg-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-lg-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-lg-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-lg-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-lg-0{margin-top:0 !important}.mt-lg-1{margin-top:.25rem !important}.mt-lg-2{margin-top:.5rem !important}.mt-lg-3{margin-top:1rem !important}.mt-lg-4{margin-top:1.5rem !important}.mt-lg-5{margin-top:3rem !important}.mt-lg-auto{margin-top:auto !important}.me-lg-0{margin-right:0 !important}.me-lg-1{margin-right:.25rem !important}.me-lg-2{margin-right:.5rem !important}.me-lg-3{margin-right:1rem !important}.me-lg-4{margin-right:1.5rem !important}.me-lg-5{margin-right:3rem !important}.me-lg-auto{margin-right:auto !important}.mb-lg-0{margin-bottom:0 !important}.mb-lg-1{margin-bottom:.25rem !important}.mb-lg-2{margin-bottom:.5rem !important}.mb-lg-3{margin-bottom:1rem !important}.mb-lg-4{margin-bottom:1.5rem !important}.mb-lg-5{margin-bottom:3rem !important}.mb-lg-auto{margin-bottom:auto !important}.ms-lg-0{margin-left:0 !important}.ms-lg-1{margin-left:.25rem !important}.ms-lg-2{margin-left:.5rem !important}.ms-lg-3{margin-left:1rem !important}.ms-lg-4{margin-left:1.5rem !important}.ms-lg-5{margin-left:3rem !important}.ms-lg-auto{margin-left:auto !important}.p-lg-0{padding:0 !important}.p-lg-1{padding:.25rem !important}.p-lg-2{padding:.5rem !important}.p-lg-3{padding:1rem !important}.p-lg-4{padding:1.5rem !important}.p-lg-5{padding:3rem !important}.px-lg-0{padding-right:0 !important;padding-left:0 !important}.px-lg-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-lg-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-lg-3{padding-right:1rem !important;padding-left:1rem !important}.px-lg-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-lg-5{padding-right:3rem !important;padding-left:3rem !important}.py-lg-0{padding-top:0 !important;padding-bottom:0 !important}.py-lg-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-lg-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-lg-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-lg-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-lg-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-lg-0{padding-top:0 !important}.pt-lg-1{padding-top:.25rem !important}.pt-lg-2{padding-top:.5rem !important}.pt-lg-3{padding-top:1rem !important}.pt-lg-4{padding-top:1.5rem !important}.pt-lg-5{padding-top:3rem !important}.pe-lg-0{padding-right:0 !important}.pe-lg-1{padding-right:.25rem !important}.pe-lg-2{padding-right:.5rem !important}.pe-lg-3{padding-right:1rem !important}.pe-lg-4{padding-right:1.5rem !important}.pe-lg-5{padding-right:3rem !important}.pb-lg-0{padding-bottom:0 !important}.pb-lg-1{padding-bottom:.25rem !important}.pb-lg-2{padding-bottom:.5rem !important}.pb-lg-3{padding-bottom:1rem !important}.pb-lg-4{padding-bottom:1.5rem !important}.pb-lg-5{padding-bottom:3rem !important}.ps-lg-0{padding-left:0 !important}.ps-lg-1{padding-left:.25rem !important}.ps-lg-2{padding-left:.5rem !important}.ps-lg-3{padding-left:1rem !important}.ps-lg-4{padding-left:1.5rem !important}.ps-lg-5{padding-left:3rem !important}.gap-lg-0{gap:0 !important}.gap-lg-1{gap:.25rem !important}.gap-lg-2{gap:.5rem !important}.gap-lg-3{gap:1rem !important}.gap-lg-4{gap:1.5rem !important}.gap-lg-5{gap:3rem !important}.row-gap-lg-0{row-gap:0 !important}.row-gap-lg-1{row-gap:.25rem !important}.row-gap-lg-2{row-gap:.5rem !important}.row-gap-lg-3{row-gap:1rem !important}.row-gap-lg-4{row-gap:1.5rem !important}.row-gap-lg-5{row-gap:3rem !important}.column-gap-lg-0{column-gap:0 !important}.column-gap-lg-1{column-gap:.25rem !important}.column-gap-lg-2{column-gap:.5rem !important}.column-gap-lg-3{column-gap:1rem !important}.column-gap-lg-4{column-gap:1.5rem !important}.column-gap-lg-5{column-gap:3rem !important}.text-lg-start{text-align:left !important}.text-lg-end{text-align:right !important}.text-lg-center{text-align:center !important}}@media(min-width: 1200px){.float-xl-start{float:left !important}.float-xl-end{float:right !important}.float-xl-none{float:none !important}.object-fit-xl-contain{object-fit:contain !important}.object-fit-xl-cover{object-fit:cover !important}.object-fit-xl-fill{object-fit:fill !important}.object-fit-xl-scale{object-fit:scale-down !important}.object-fit-xl-none{object-fit:none !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-block{display:block !important}.d-xl-grid{display:grid !important}.d-xl-inline-grid{display:inline-grid !important}.d-xl-table{display:table !important}.d-xl-table-row{display:table-row !important}.d-xl-table-cell{display:table-cell !important}.d-xl-flex{display:flex !important}.d-xl-inline-flex{display:inline-flex !important}.d-xl-none{display:none !important}.flex-xl-fill{flex:1 1 auto !important}.flex-xl-row{flex-direction:row !important}.flex-xl-column{flex-direction:column !important}.flex-xl-row-reverse{flex-direction:row-reverse !important}.flex-xl-column-reverse{flex-direction:column-reverse !important}.flex-xl-grow-0{flex-grow:0 !important}.flex-xl-grow-1{flex-grow:1 !important}.flex-xl-shrink-0{flex-shrink:0 !important}.flex-xl-shrink-1{flex-shrink:1 !important}.flex-xl-wrap{flex-wrap:wrap !important}.flex-xl-nowrap{flex-wrap:nowrap !important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-xl-start{justify-content:flex-start !important}.justify-content-xl-end{justify-content:flex-end !important}.justify-content-xl-center{justify-content:center !important}.justify-content-xl-between{justify-content:space-between !important}.justify-content-xl-around{justify-content:space-around !important}.justify-content-xl-evenly{justify-content:space-evenly !important}.align-items-xl-start{align-items:flex-start !important}.align-items-xl-end{align-items:flex-end !important}.align-items-xl-center{align-items:center !important}.align-items-xl-baseline{align-items:baseline !important}.align-items-xl-stretch{align-items:stretch !important}.align-content-xl-start{align-content:flex-start !important}.align-content-xl-end{align-content:flex-end !important}.align-content-xl-center{align-content:center !important}.align-content-xl-between{align-content:space-between !important}.align-content-xl-around{align-content:space-around !important}.align-content-xl-stretch{align-content:stretch !important}.align-self-xl-auto{align-self:auto !important}.align-self-xl-start{align-self:flex-start !important}.align-self-xl-end{align-self:flex-end !important}.align-self-xl-center{align-self:center !important}.align-self-xl-baseline{align-self:baseline !important}.align-self-xl-stretch{align-self:stretch !important}.order-xl-first{order:-1 !important}.order-xl-0{order:0 !important}.order-xl-1{order:1 !important}.order-xl-2{order:2 !important}.order-xl-3{order:3 !important}.order-xl-4{order:4 !important}.order-xl-5{order:5 !important}.order-xl-last{order:6 !important}.m-xl-0{margin:0 !important}.m-xl-1{margin:.25rem !important}.m-xl-2{margin:.5rem !important}.m-xl-3{margin:1rem !important}.m-xl-4{margin:1.5rem !important}.m-xl-5{margin:3rem !important}.m-xl-auto{margin:auto !important}.mx-xl-0{margin-right:0 !important;margin-left:0 !important}.mx-xl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xl-auto{margin-right:auto !important;margin-left:auto !important}.my-xl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xl-0{margin-top:0 !important}.mt-xl-1{margin-top:.25rem !important}.mt-xl-2{margin-top:.5rem !important}.mt-xl-3{margin-top:1rem !important}.mt-xl-4{margin-top:1.5rem !important}.mt-xl-5{margin-top:3rem !important}.mt-xl-auto{margin-top:auto !important}.me-xl-0{margin-right:0 !important}.me-xl-1{margin-right:.25rem !important}.me-xl-2{margin-right:.5rem !important}.me-xl-3{margin-right:1rem !important}.me-xl-4{margin-right:1.5rem !important}.me-xl-5{margin-right:3rem !important}.me-xl-auto{margin-right:auto !important}.mb-xl-0{margin-bottom:0 !important}.mb-xl-1{margin-bottom:.25rem !important}.mb-xl-2{margin-bottom:.5rem !important}.mb-xl-3{margin-bottom:1rem !important}.mb-xl-4{margin-bottom:1.5rem !important}.mb-xl-5{margin-bottom:3rem !important}.mb-xl-auto{margin-bottom:auto !important}.ms-xl-0{margin-left:0 !important}.ms-xl-1{margin-left:.25rem !important}.ms-xl-2{margin-left:.5rem !important}.ms-xl-3{margin-left:1rem !important}.ms-xl-4{margin-left:1.5rem !important}.ms-xl-5{margin-left:3rem !important}.ms-xl-auto{margin-left:auto !important}.p-xl-0{padding:0 !important}.p-xl-1{padding:.25rem !important}.p-xl-2{padding:.5rem !important}.p-xl-3{padding:1rem !important}.p-xl-4{padding:1.5rem !important}.p-xl-5{padding:3rem !important}.px-xl-0{padding-right:0 !important;padding-left:0 !important}.px-xl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xl-0{padding-top:0 !important}.pt-xl-1{padding-top:.25rem !important}.pt-xl-2{padding-top:.5rem !important}.pt-xl-3{padding-top:1rem !important}.pt-xl-4{padding-top:1.5rem !important}.pt-xl-5{padding-top:3rem !important}.pe-xl-0{padding-right:0 !important}.pe-xl-1{padding-right:.25rem !important}.pe-xl-2{padding-right:.5rem !important}.pe-xl-3{padding-right:1rem !important}.pe-xl-4{padding-right:1.5rem !important}.pe-xl-5{padding-right:3rem !important}.pb-xl-0{padding-bottom:0 !important}.pb-xl-1{padding-bottom:.25rem !important}.pb-xl-2{padding-bottom:.5rem !important}.pb-xl-3{padding-bottom:1rem !important}.pb-xl-4{padding-bottom:1.5rem !important}.pb-xl-5{padding-bottom:3rem !important}.ps-xl-0{padding-left:0 !important}.ps-xl-1{padding-left:.25rem !important}.ps-xl-2{padding-left:.5rem !important}.ps-xl-3{padding-left:1rem !important}.ps-xl-4{padding-left:1.5rem !important}.ps-xl-5{padding-left:3rem !important}.gap-xl-0{gap:0 !important}.gap-xl-1{gap:.25rem !important}.gap-xl-2{gap:.5rem !important}.gap-xl-3{gap:1rem !important}.gap-xl-4{gap:1.5rem !important}.gap-xl-5{gap:3rem !important}.row-gap-xl-0{row-gap:0 !important}.row-gap-xl-1{row-gap:.25rem !important}.row-gap-xl-2{row-gap:.5rem !important}.row-gap-xl-3{row-gap:1rem !important}.row-gap-xl-4{row-gap:1.5rem !important}.row-gap-xl-5{row-gap:3rem !important}.column-gap-xl-0{column-gap:0 !important}.column-gap-xl-1{column-gap:.25rem !important}.column-gap-xl-2{column-gap:.5rem !important}.column-gap-xl-3{column-gap:1rem !important}.column-gap-xl-4{column-gap:1.5rem !important}.column-gap-xl-5{column-gap:3rem !important}.text-xl-start{text-align:left !important}.text-xl-end{text-align:right !important}.text-xl-center{text-align:center !important}}@media(min-width: 1400px){.float-xxl-start{float:left !important}.float-xxl-end{float:right !important}.float-xxl-none{float:none !important}.object-fit-xxl-contain{object-fit:contain !important}.object-fit-xxl-cover{object-fit:cover !important}.object-fit-xxl-fill{object-fit:fill !important}.object-fit-xxl-scale{object-fit:scale-down !important}.object-fit-xxl-none{object-fit:none !important}.d-xxl-inline{display:inline !important}.d-xxl-inline-block{display:inline-block !important}.d-xxl-block{display:block !important}.d-xxl-grid{display:grid !important}.d-xxl-inline-grid{display:inline-grid !important}.d-xxl-table{display:table !important}.d-xxl-table-row{display:table-row !important}.d-xxl-table-cell{display:table-cell !important}.d-xxl-flex{display:flex !important}.d-xxl-inline-flex{display:inline-flex !important}.d-xxl-none{display:none !important}.flex-xxl-fill{flex:1 1 auto !important}.flex-xxl-row{flex-direction:row !important}.flex-xxl-column{flex-direction:column !important}.flex-xxl-row-reverse{flex-direction:row-reverse !important}.flex-xxl-column-reverse{flex-direction:column-reverse !important}.flex-xxl-grow-0{flex-grow:0 !important}.flex-xxl-grow-1{flex-grow:1 !important}.flex-xxl-shrink-0{flex-shrink:0 !important}.flex-xxl-shrink-1{flex-shrink:1 !important}.flex-xxl-wrap{flex-wrap:wrap !important}.flex-xxl-nowrap{flex-wrap:nowrap !important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-xxl-start{justify-content:flex-start !important}.justify-content-xxl-end{justify-content:flex-end !important}.justify-content-xxl-center{justify-content:center !important}.justify-content-xxl-between{justify-content:space-between !important}.justify-content-xxl-around{justify-content:space-around !important}.justify-content-xxl-evenly{justify-content:space-evenly !important}.align-items-xxl-start{align-items:flex-start !important}.align-items-xxl-end{align-items:flex-end !important}.align-items-xxl-center{align-items:center !important}.align-items-xxl-baseline{align-items:baseline !important}.align-items-xxl-stretch{align-items:stretch !important}.align-content-xxl-start{align-content:flex-start !important}.align-content-xxl-end{align-content:flex-end !important}.align-content-xxl-center{align-content:center !important}.align-content-xxl-between{align-content:space-between !important}.align-content-xxl-around{align-content:space-around !important}.align-content-xxl-stretch{align-content:stretch !important}.align-self-xxl-auto{align-self:auto !important}.align-self-xxl-start{align-self:flex-start !important}.align-self-xxl-end{align-self:flex-end !important}.align-self-xxl-center{align-self:center !important}.align-self-xxl-baseline{align-self:baseline !important}.align-self-xxl-stretch{align-self:stretch !important}.order-xxl-first{order:-1 !important}.order-xxl-0{order:0 !important}.order-xxl-1{order:1 !important}.order-xxl-2{order:2 !important}.order-xxl-3{order:3 !important}.order-xxl-4{order:4 !important}.order-xxl-5{order:5 !important}.order-xxl-last{order:6 !important}.m-xxl-0{margin:0 !important}.m-xxl-1{margin:.25rem !important}.m-xxl-2{margin:.5rem !important}.m-xxl-3{margin:1rem !important}.m-xxl-4{margin:1.5rem !important}.m-xxl-5{margin:3rem !important}.m-xxl-auto{margin:auto !important}.mx-xxl-0{margin-right:0 !important;margin-left:0 !important}.mx-xxl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xxl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xxl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xxl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xxl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xxl-auto{margin-right:auto !important;margin-left:auto !important}.my-xxl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xxl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xxl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xxl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xxl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xxl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xxl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xxl-0{margin-top:0 !important}.mt-xxl-1{margin-top:.25rem !important}.mt-xxl-2{margin-top:.5rem !important}.mt-xxl-3{margin-top:1rem !important}.mt-xxl-4{margin-top:1.5rem !important}.mt-xxl-5{margin-top:3rem !important}.mt-xxl-auto{margin-top:auto !important}.me-xxl-0{margin-right:0 !important}.me-xxl-1{margin-right:.25rem !important}.me-xxl-2{margin-right:.5rem !important}.me-xxl-3{margin-right:1rem !important}.me-xxl-4{margin-right:1.5rem !important}.me-xxl-5{margin-right:3rem !important}.me-xxl-auto{margin-right:auto !important}.mb-xxl-0{margin-bottom:0 !important}.mb-xxl-1{margin-bottom:.25rem !important}.mb-xxl-2{margin-bottom:.5rem !important}.mb-xxl-3{margin-bottom:1rem !important}.mb-xxl-4{margin-bottom:1.5rem !important}.mb-xxl-5{margin-bottom:3rem !important}.mb-xxl-auto{margin-bottom:auto !important}.ms-xxl-0{margin-left:0 !important}.ms-xxl-1{margin-left:.25rem !important}.ms-xxl-2{margin-left:.5rem !important}.ms-xxl-3{margin-left:1rem !important}.ms-xxl-4{margin-left:1.5rem !important}.ms-xxl-5{margin-left:3rem !important}.ms-xxl-auto{margin-left:auto !important}.p-xxl-0{padding:0 !important}.p-xxl-1{padding:.25rem !important}.p-xxl-2{padding:.5rem !important}.p-xxl-3{padding:1rem !important}.p-xxl-4{padding:1.5rem !important}.p-xxl-5{padding:3rem !important}.px-xxl-0{padding-right:0 !important;padding-left:0 !important}.px-xxl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xxl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xxl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xxl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xxl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xxl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xxl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xxl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xxl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xxl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xxl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xxl-0{padding-top:0 !important}.pt-xxl-1{padding-top:.25rem !important}.pt-xxl-2{padding-top:.5rem !important}.pt-xxl-3{padding-top:1rem !important}.pt-xxl-4{padding-top:1.5rem !important}.pt-xxl-5{padding-top:3rem !important}.pe-xxl-0{padding-right:0 !important}.pe-xxl-1{padding-right:.25rem !important}.pe-xxl-2{padding-right:.5rem !important}.pe-xxl-3{padding-right:1rem !important}.pe-xxl-4{padding-right:1.5rem !important}.pe-xxl-5{padding-right:3rem !important}.pb-xxl-0{padding-bottom:0 !important}.pb-xxl-1{padding-bottom:.25rem !important}.pb-xxl-2{padding-bottom:.5rem !important}.pb-xxl-3{padding-bottom:1rem !important}.pb-xxl-4{padding-bottom:1.5rem !important}.pb-xxl-5{padding-bottom:3rem !important}.ps-xxl-0{padding-left:0 !important}.ps-xxl-1{padding-left:.25rem !important}.ps-xxl-2{padding-left:.5rem !important}.ps-xxl-3{padding-left:1rem !important}.ps-xxl-4{padding-left:1.5rem !important}.ps-xxl-5{padding-left:3rem !important}.gap-xxl-0{gap:0 !important}.gap-xxl-1{gap:.25rem !important}.gap-xxl-2{gap:.5rem !important}.gap-xxl-3{gap:1rem !important}.gap-xxl-4{gap:1.5rem !important}.gap-xxl-5{gap:3rem !important}.row-gap-xxl-0{row-gap:0 !important}.row-gap-xxl-1{row-gap:.25rem !important}.row-gap-xxl-2{row-gap:.5rem !important}.row-gap-xxl-3{row-gap:1rem !important}.row-gap-xxl-4{row-gap:1.5rem !important}.row-gap-xxl-5{row-gap:3rem !important}.column-gap-xxl-0{column-gap:0 !important}.column-gap-xxl-1{column-gap:.25rem !important}.column-gap-xxl-2{column-gap:.5rem !important}.column-gap-xxl-3{column-gap:1rem !important}.column-gap-xxl-4{column-gap:1.5rem !important}.column-gap-xxl-5{column-gap:3rem !important}.text-xxl-start{text-align:left !important}.text-xxl-end{text-align:right !important}.text-xxl-center{text-align:center !important}}.bg-default{color:#000}.bg-primary{color:#fff}.bg-secondary{color:#fff}.bg-success{color:#fff}.bg-info{color:#000}.bg-warning{color:#000}.bg-danger{color:#fff}.bg-light{color:#000}.bg-dark{color:#fff}@media(min-width: 1200px){.fs-1{font-size:2rem !important}.fs-2{font-size:1.65rem !important}.fs-3{font-size:1.45rem !important}}@media print{.d-print-inline{display:inline !important}.d-print-inline-block{display:inline-block !important}.d-print-block{display:block !important}.d-print-grid{display:grid !important}.d-print-inline-grid{display:inline-grid !important}.d-print-table{display:table !important}.d-print-table-row{display:table-row !important}.d-print-table-cell{display:table-cell !important}.d-print-flex{display:flex !important}.d-print-inline-flex{display:inline-flex !important}.d-print-none{display:none !important}}:root{--bslib-spacer: 1rem;--bslib-mb-spacer: var(--bslib-spacer, 1rem)}.bslib-mb-spacing{margin-bottom:var(--bslib-mb-spacer)}.bslib-gap-spacing{gap:var(--bslib-mb-spacer)}.bslib-gap-spacing>.bslib-mb-spacing,.bslib-gap-spacing>.form-group,.bslib-gap-spacing>p,.bslib-gap-spacing>pre{margin-bottom:0}.html-fill-container>.html-fill-item.bslib-mb-spacing{margin-bottom:0}.tab-content>.tab-pane.html-fill-container{display:none}.tab-content>.active.html-fill-container{display:flex}.tab-content.html-fill-container{padding:0}.bg-blue{--bslib-color-bg: #0d6efd;--bslib-color-fg: #ffffff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-blue{--bslib-color-fg: #0d6efd;color:var(--bslib-color-fg)}.bg-indigo{--bslib-color-bg: #6610f2;--bslib-color-fg: #ffffff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-indigo{--bslib-color-fg: #6610f2;color:var(--bslib-color-fg)}.bg-purple{--bslib-color-bg: #6f42c1;--bslib-color-fg: #ffffff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-purple{--bslib-color-fg: #6f42c1;color:var(--bslib-color-fg)}.bg-pink{--bslib-color-bg: #d63384;--bslib-color-fg: #ffffff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-pink{--bslib-color-fg: #d63384;color:var(--bslib-color-fg)}.bg-red{--bslib-color-bg: #dc3545;--bslib-color-fg: #ffffff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-red{--bslib-color-fg: #dc3545;color:var(--bslib-color-fg)}.bg-orange{--bslib-color-bg: #fd7e14;--bslib-color-fg: #000;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-orange{--bslib-color-fg: #fd7e14;color:var(--bslib-color-fg)}.bg-yellow{--bslib-color-bg: #ffc107;--bslib-color-fg: #000;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-yellow{--bslib-color-fg: #ffc107;color:var(--bslib-color-fg)}.bg-green{--bslib-color-bg: #198754;--bslib-color-fg: #ffffff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-green{--bslib-color-fg: #198754;color:var(--bslib-color-fg)}.bg-teal{--bslib-color-bg: #20c997;--bslib-color-fg: #000;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-teal{--bslib-color-fg: #20c997;color:var(--bslib-color-fg)}.bg-cyan{--bslib-color-bg: #0dcaf0;--bslib-color-fg: #000;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-cyan{--bslib-color-fg: #0dcaf0;color:var(--bslib-color-fg)}.text-default{--bslib-color-fg: #dee2e6}.bg-default{--bslib-color-bg: #dee2e6;--bslib-color-fg: #000}.text-primary{--bslib-color-fg: #0d6efd}.bg-primary{--bslib-color-bg: #0d6efd;--bslib-color-fg: #ffffff}.text-secondary{--bslib-color-fg: #6c757d}.bg-secondary{--bslib-color-bg: #6c757d;--bslib-color-fg: #ffffff}.text-success{--bslib-color-fg: #198754}.bg-success{--bslib-color-bg: #198754;--bslib-color-fg: #ffffff}.text-info{--bslib-color-fg: #0dcaf0}.bg-info{--bslib-color-bg: #0dcaf0;--bslib-color-fg: #000}.text-warning{--bslib-color-fg: #ffc107}.bg-warning{--bslib-color-bg: #ffc107;--bslib-color-fg: #000}.text-danger{--bslib-color-fg: #dc3545}.bg-danger{--bslib-color-bg: #dc3545;--bslib-color-fg: #ffffff}.text-light{--bslib-color-fg: #f8f9fa}.bg-light{--bslib-color-bg: #f8f9fa;--bslib-color-fg: #000}.text-dark{--bslib-color-fg: #212529}.bg-dark{--bslib-color-bg: #212529;--bslib-color-fg: #ffffff}.bg-gradient-blue-indigo{--bslib-color-fg: #ffffff;--bslib-color-bg: #3148f9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #3148f9;color:#fff}.bg-gradient-blue-purple{--bslib-color-fg: #ffffff;--bslib-color-bg: #345ce5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #345ce5;color:#fff}.bg-gradient-blue-pink{--bslib-color-fg: #ffffff;--bslib-color-bg: #5d56cd;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #5d56cd;color:#fff}.bg-gradient-blue-red{--bslib-color-fg: #ffffff;--bslib-color-bg: #6057b3;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #6057b3;color:#fff}.bg-gradient-blue-orange{--bslib-color-fg: #ffffff;--bslib-color-bg: #6d74a0;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #6d74a0;color:#fff}.bg-gradient-blue-yellow{--bslib-color-fg: #000;--bslib-color-bg: #6e8f9b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #6e8f9b;color:#000}.bg-gradient-blue-green{--bslib-color-fg: #ffffff;--bslib-color-bg: #1278b9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #1278b9;color:#fff}.bg-gradient-blue-teal{--bslib-color-fg: #000;--bslib-color-bg: #1592d4;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #1592d4;color:#000}.bg-gradient-blue-cyan{--bslib-color-fg: #000;--bslib-color-bg: #0d93f8;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #0d93f8;color:#000}.bg-gradient-indigo-blue{--bslib-color-fg: #ffffff;--bslib-color-bg: #4236f6;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #4236f6;color:#fff}.bg-gradient-indigo-purple{--bslib-color-fg: #ffffff;--bslib-color-bg: #6a24de;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #6a24de;color:#fff}.bg-gradient-indigo-pink{--bslib-color-fg: #ffffff;--bslib-color-bg: #931ec6;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #931ec6;color:#fff}.bg-gradient-indigo-red{--bslib-color-fg: #ffffff;--bslib-color-bg: #951fad;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #951fad;color:#fff}.bg-gradient-indigo-orange{--bslib-color-fg: #ffffff;--bslib-color-bg: #a23c99;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #a23c99;color:#fff}.bg-gradient-indigo-yellow{--bslib-color-fg: #ffffff;--bslib-color-bg: #a35794;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #a35794;color:#fff}.bg-gradient-indigo-green{--bslib-color-fg: #ffffff;--bslib-color-bg: #4740b3;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #4740b3;color:#fff}.bg-gradient-indigo-teal{--bslib-color-fg: #ffffff;--bslib-color-bg: #4a5ace;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #4a5ace;color:#fff}.bg-gradient-indigo-cyan{--bslib-color-fg: #ffffff;--bslib-color-bg: #425af1;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #425af1;color:#fff}.bg-gradient-purple-blue{--bslib-color-fg: #ffffff;--bslib-color-bg: #4854d9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #4854d9;color:#fff}.bg-gradient-purple-indigo{--bslib-color-fg: #ffffff;--bslib-color-bg: #6b2ed5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #6b2ed5;color:#fff}.bg-gradient-purple-pink{--bslib-color-fg: #ffffff;--bslib-color-bg: #983ca9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #983ca9;color:#fff}.bg-gradient-purple-red{--bslib-color-fg: #ffffff;--bslib-color-bg: #9b3d8f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #9b3d8f;color:#fff}.bg-gradient-purple-orange{--bslib-color-fg: #ffffff;--bslib-color-bg: #a85a7c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #a85a7c;color:#fff}.bg-gradient-purple-yellow{--bslib-color-fg: #000;--bslib-color-bg: #a97577;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #a97577;color:#000}.bg-gradient-purple-green{--bslib-color-fg: #ffffff;--bslib-color-bg: #4d5e95;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #4d5e95;color:#fff}.bg-gradient-purple-teal{--bslib-color-fg: #ffffff;--bslib-color-bg: #4f78b0;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #4f78b0;color:#fff}.bg-gradient-purple-cyan{--bslib-color-fg: #000;--bslib-color-bg: #4878d4;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #4878d4;color:#000}.bg-gradient-pink-blue{--bslib-color-fg: #ffffff;--bslib-color-bg: #864bb4;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #864bb4;color:#fff}.bg-gradient-pink-indigo{--bslib-color-fg: #ffffff;--bslib-color-bg: #a925b0;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #a925b0;color:#fff}.bg-gradient-pink-purple{--bslib-color-fg: #ffffff;--bslib-color-bg: #ad399c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #ad399c;color:#fff}.bg-gradient-pink-red{--bslib-color-fg: #ffffff;--bslib-color-bg: #d8346b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #d8346b;color:#fff}.bg-gradient-pink-orange{--bslib-color-fg: #000;--bslib-color-bg: #e65157;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #e65157;color:#000}.bg-gradient-pink-yellow{--bslib-color-fg: #000;--bslib-color-bg: #e66c52;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #e66c52;color:#000}.bg-gradient-pink-green{--bslib-color-fg: #ffffff;--bslib-color-bg: #8a5571;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #8a5571;color:#fff}.bg-gradient-pink-teal{--bslib-color-fg: #000;--bslib-color-bg: #8d6f8c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #8d6f8c;color:#000}.bg-gradient-pink-cyan{--bslib-color-fg: #000;--bslib-color-bg: #866faf;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #866faf;color:#000}.bg-gradient-red-blue{--bslib-color-fg: #ffffff;--bslib-color-bg: #894c8f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #894c8f;color:#fff}.bg-gradient-red-indigo{--bslib-color-fg: #ffffff;--bslib-color-bg: #ad268a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #ad268a;color:#fff}.bg-gradient-red-purple{--bslib-color-fg: #ffffff;--bslib-color-bg: #b03a77;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #b03a77;color:#fff}.bg-gradient-red-pink{--bslib-color-fg: #ffffff;--bslib-color-bg: #da345e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #da345e;color:#fff}.bg-gradient-red-orange{--bslib-color-fg: #000;--bslib-color-bg: #e95231;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #e95231;color:#000}.bg-gradient-red-yellow{--bslib-color-fg: #000;--bslib-color-bg: #ea6d2c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #ea6d2c;color:#000}.bg-gradient-red-green{--bslib-color-fg: #ffffff;--bslib-color-bg: #8e564b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #8e564b;color:#fff}.bg-gradient-red-teal{--bslib-color-fg: #000;--bslib-color-bg: #917066;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #917066;color:#000}.bg-gradient-red-cyan{--bslib-color-fg: #000;--bslib-color-bg: #897189;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #897189;color:#000}.bg-gradient-orange-blue{--bslib-color-fg: #000;--bslib-color-bg: #9d7871;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #9d7871;color:#000}.bg-gradient-orange-indigo{--bslib-color-fg: #000;--bslib-color-bg: #c1526d;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #c1526d;color:#000}.bg-gradient-orange-purple{--bslib-color-fg: #000;--bslib-color-bg: #c46659;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #c46659;color:#000}.bg-gradient-orange-pink{--bslib-color-fg: #000;--bslib-color-bg: #ed6041;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #ed6041;color:#000}.bg-gradient-orange-red{--bslib-color-fg: #000;--bslib-color-bg: #f06128;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #f06128;color:#000}.bg-gradient-orange-yellow{--bslib-color-fg: #000;--bslib-color-bg: #fe990f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #fe990f;color:#000}.bg-gradient-orange-green{--bslib-color-fg: #000;--bslib-color-bg: #a2822e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #a2822e;color:#000}.bg-gradient-orange-teal{--bslib-color-fg: #000;--bslib-color-bg: #a59c48;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #a59c48;color:#000}.bg-gradient-orange-cyan{--bslib-color-fg: #000;--bslib-color-bg: #9d9c6c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #9d9c6c;color:#000}.bg-gradient-yellow-blue{--bslib-color-fg: #000;--bslib-color-bg: #9ea069;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #9ea069;color:#000}.bg-gradient-yellow-indigo{--bslib-color-fg: #000;--bslib-color-bg: #c27a65;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #c27a65;color:#000}.bg-gradient-yellow-purple{--bslib-color-fg: #000;--bslib-color-bg: #c58e51;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #c58e51;color:#000}.bg-gradient-yellow-pink{--bslib-color-fg: #000;--bslib-color-bg: #ef8839;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #ef8839;color:#000}.bg-gradient-yellow-red{--bslib-color-fg: #000;--bslib-color-bg: #f18920;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #f18920;color:#000}.bg-gradient-yellow-orange{--bslib-color-fg: #000;--bslib-color-bg: #fea60c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #fea60c;color:#000}.bg-gradient-yellow-green{--bslib-color-fg: #000;--bslib-color-bg: #a3aa26;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #a3aa26;color:#000}.bg-gradient-yellow-teal{--bslib-color-fg: #000;--bslib-color-bg: #a6c441;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #a6c441;color:#000}.bg-gradient-yellow-cyan{--bslib-color-fg: #000;--bslib-color-bg: #9ec564;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #9ec564;color:#000}.bg-gradient-green-blue{--bslib-color-fg: #ffffff;--bslib-color-bg: #147d98;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #147d98;color:#fff}.bg-gradient-green-indigo{--bslib-color-fg: #ffffff;--bslib-color-bg: #385793;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #385793;color:#fff}.bg-gradient-green-purple{--bslib-color-fg: #ffffff;--bslib-color-bg: #3b6b80;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #3b6b80;color:#fff}.bg-gradient-green-pink{--bslib-color-fg: #ffffff;--bslib-color-bg: #656567;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #656567;color:#fff}.bg-gradient-green-red{--bslib-color-fg: #ffffff;--bslib-color-bg: #67664e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #67664e;color:#fff}.bg-gradient-green-orange{--bslib-color-fg: #000;--bslib-color-bg: #74833a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #74833a;color:#000}.bg-gradient-green-yellow{--bslib-color-fg: #000;--bslib-color-bg: #759e35;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #759e35;color:#000}.bg-gradient-green-teal{--bslib-color-fg: #000;--bslib-color-bg: #1ca16f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #1ca16f;color:#000}.bg-gradient-green-cyan{--bslib-color-fg: #000;--bslib-color-bg: #14a292;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #14a292;color:#000}.bg-gradient-teal-blue{--bslib-color-fg: #000;--bslib-color-bg: #18a5c0;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #18a5c0;color:#000}.bg-gradient-teal-indigo{--bslib-color-fg: #000;--bslib-color-bg: #3c7fbb;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #3c7fbb;color:#000}.bg-gradient-teal-purple{--bslib-color-fg: #000;--bslib-color-bg: #4093a8;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #4093a8;color:#000}.bg-gradient-teal-pink{--bslib-color-fg: #000;--bslib-color-bg: #698d8f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #698d8f;color:#000}.bg-gradient-teal-red{--bslib-color-fg: #000;--bslib-color-bg: #6b8e76;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #6b8e76;color:#000}.bg-gradient-teal-orange{--bslib-color-fg: #000;--bslib-color-bg: #78ab63;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #78ab63;color:#000}.bg-gradient-teal-yellow{--bslib-color-fg: #000;--bslib-color-bg: #79c65d;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #79c65d;color:#000}.bg-gradient-teal-green{--bslib-color-fg: #000;--bslib-color-bg: #1daf7c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #1daf7c;color:#000}.bg-gradient-teal-cyan{--bslib-color-fg: #000;--bslib-color-bg: #18c9bb;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #18c9bb;color:#000}.bg-gradient-cyan-blue{--bslib-color-fg: #000;--bslib-color-bg: #0da5f5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #0da5f5;color:#000}.bg-gradient-cyan-indigo{--bslib-color-fg: #000;--bslib-color-bg: #3180f1;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #3180f1;color:#000}.bg-gradient-cyan-purple{--bslib-color-fg: #000;--bslib-color-bg: #3494dd;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #3494dd;color:#000}.bg-gradient-cyan-pink{--bslib-color-fg: #000;--bslib-color-bg: #5d8ec5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #5d8ec5;color:#000}.bg-gradient-cyan-red{--bslib-color-fg: #000;--bslib-color-bg: #608eac;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #608eac;color:#000}.bg-gradient-cyan-orange{--bslib-color-fg: #000;--bslib-color-bg: #6dac98;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #6dac98;color:#000}.bg-gradient-cyan-yellow{--bslib-color-fg: #000;--bslib-color-bg: #6ec693;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #6ec693;color:#000}.bg-gradient-cyan-green{--bslib-color-fg: #000;--bslib-color-bg: #12afb2;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #12afb2;color:#000}.bg-gradient-cyan-teal{--bslib-color-fg: #000;--bslib-color-bg: #15cacc;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #15cacc;color:#000}.bg-blue{--bslib-color-bg: #0d6efd;--bslib-color-fg: #ffffff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-blue{--bslib-color-fg: #0d6efd;color:var(--bslib-color-fg)}.bg-indigo{--bslib-color-bg: #6610f2;--bslib-color-fg: #ffffff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-indigo{--bslib-color-fg: #6610f2;color:var(--bslib-color-fg)}.bg-purple{--bslib-color-bg: #6f42c1;--bslib-color-fg: #ffffff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-purple{--bslib-color-fg: #6f42c1;color:var(--bslib-color-fg)}.bg-pink{--bslib-color-bg: #d63384;--bslib-color-fg: #ffffff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-pink{--bslib-color-fg: #d63384;color:var(--bslib-color-fg)}.bg-red{--bslib-color-bg: #dc3545;--bslib-color-fg: #ffffff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-red{--bslib-color-fg: #dc3545;color:var(--bslib-color-fg)}.bg-orange{--bslib-color-bg: #fd7e14;--bslib-color-fg: #000;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-orange{--bslib-color-fg: #fd7e14;color:var(--bslib-color-fg)}.bg-yellow{--bslib-color-bg: #ffc107;--bslib-color-fg: #000;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-yellow{--bslib-color-fg: #ffc107;color:var(--bslib-color-fg)}.bg-green{--bslib-color-bg: #198754;--bslib-color-fg: #ffffff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-green{--bslib-color-fg: #198754;color:var(--bslib-color-fg)}.bg-teal{--bslib-color-bg: #20c997;--bslib-color-fg: #000;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-teal{--bslib-color-fg: #20c997;color:var(--bslib-color-fg)}.bg-cyan{--bslib-color-bg: #0dcaf0;--bslib-color-fg: #000;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-cyan{--bslib-color-fg: #0dcaf0;color:var(--bslib-color-fg)}.text-default{--bslib-color-fg: #dee2e6}.bg-default{--bslib-color-bg: #dee2e6;--bslib-color-fg: #000}.text-primary{--bslib-color-fg: #0d6efd}.bg-primary{--bslib-color-bg: #0d6efd;--bslib-color-fg: #ffffff}.text-secondary{--bslib-color-fg: #6c757d}.bg-secondary{--bslib-color-bg: #6c757d;--bslib-color-fg: #ffffff}.text-success{--bslib-color-fg: #198754}.bg-success{--bslib-color-bg: #198754;--bslib-color-fg: #ffffff}.text-info{--bslib-color-fg: #0dcaf0}.bg-info{--bslib-color-bg: #0dcaf0;--bslib-color-fg: #000}.text-warning{--bslib-color-fg: #ffc107}.bg-warning{--bslib-color-bg: #ffc107;--bslib-color-fg: #000}.text-danger{--bslib-color-fg: #dc3545}.bg-danger{--bslib-color-bg: #dc3545;--bslib-color-fg: #ffffff}.text-light{--bslib-color-fg: #f8f9fa}.bg-light{--bslib-color-bg: #f8f9fa;--bslib-color-fg: #000}.text-dark{--bslib-color-fg: #212529}.bg-dark{--bslib-color-bg: #212529;--bslib-color-fg: #ffffff}.bg-gradient-blue-indigo{--bslib-color-fg: #ffffff;--bslib-color-bg: #3148f9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #3148f9;color:#fff}.bg-gradient-blue-purple{--bslib-color-fg: #ffffff;--bslib-color-bg: #345ce5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #345ce5;color:#fff}.bg-gradient-blue-pink{--bslib-color-fg: #ffffff;--bslib-color-bg: #5d56cd;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #5d56cd;color:#fff}.bg-gradient-blue-red{--bslib-color-fg: #ffffff;--bslib-color-bg: #6057b3;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #6057b3;color:#fff}.bg-gradient-blue-orange{--bslib-color-fg: #ffffff;--bslib-color-bg: #6d74a0;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #6d74a0;color:#fff}.bg-gradient-blue-yellow{--bslib-color-fg: #000;--bslib-color-bg: #6e8f9b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #6e8f9b;color:#000}.bg-gradient-blue-green{--bslib-color-fg: #ffffff;--bslib-color-bg: #1278b9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #1278b9;color:#fff}.bg-gradient-blue-teal{--bslib-color-fg: #000;--bslib-color-bg: #1592d4;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #1592d4;color:#000}.bg-gradient-blue-cyan{--bslib-color-fg: #000;--bslib-color-bg: #0d93f8;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #0d93f8;color:#000}.bg-gradient-indigo-blue{--bslib-color-fg: #ffffff;--bslib-color-bg: #4236f6;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #4236f6;color:#fff}.bg-gradient-indigo-purple{--bslib-color-fg: #ffffff;--bslib-color-bg: #6a24de;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #6a24de;color:#fff}.bg-gradient-indigo-pink{--bslib-color-fg: #ffffff;--bslib-color-bg: #931ec6;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #931ec6;color:#fff}.bg-gradient-indigo-red{--bslib-color-fg: #ffffff;--bslib-color-bg: #951fad;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #951fad;color:#fff}.bg-gradient-indigo-orange{--bslib-color-fg: #ffffff;--bslib-color-bg: #a23c99;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #a23c99;color:#fff}.bg-gradient-indigo-yellow{--bslib-color-fg: #ffffff;--bslib-color-bg: #a35794;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #a35794;color:#fff}.bg-gradient-indigo-green{--bslib-color-fg: #ffffff;--bslib-color-bg: #4740b3;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #4740b3;color:#fff}.bg-gradient-indigo-teal{--bslib-color-fg: #ffffff;--bslib-color-bg: #4a5ace;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #4a5ace;color:#fff}.bg-gradient-indigo-cyan{--bslib-color-fg: #ffffff;--bslib-color-bg: #425af1;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #425af1;color:#fff}.bg-gradient-purple-blue{--bslib-color-fg: #ffffff;--bslib-color-bg: #4854d9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #4854d9;color:#fff}.bg-gradient-purple-indigo{--bslib-color-fg: #ffffff;--bslib-color-bg: #6b2ed5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #6b2ed5;color:#fff}.bg-gradient-purple-pink{--bslib-color-fg: #ffffff;--bslib-color-bg: #983ca9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #983ca9;color:#fff}.bg-gradient-purple-red{--bslib-color-fg: #ffffff;--bslib-color-bg: #9b3d8f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #9b3d8f;color:#fff}.bg-gradient-purple-orange{--bslib-color-fg: #ffffff;--bslib-color-bg: #a85a7c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #a85a7c;color:#fff}.bg-gradient-purple-yellow{--bslib-color-fg: #000;--bslib-color-bg: #a97577;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #a97577;color:#000}.bg-gradient-purple-green{--bslib-color-fg: #ffffff;--bslib-color-bg: #4d5e95;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #4d5e95;color:#fff}.bg-gradient-purple-teal{--bslib-color-fg: #ffffff;--bslib-color-bg: #4f78b0;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #4f78b0;color:#fff}.bg-gradient-purple-cyan{--bslib-color-fg: #000;--bslib-color-bg: #4878d4;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #4878d4;color:#000}.bg-gradient-pink-blue{--bslib-color-fg: #ffffff;--bslib-color-bg: #864bb4;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #864bb4;color:#fff}.bg-gradient-pink-indigo{--bslib-color-fg: #ffffff;--bslib-color-bg: #a925b0;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #a925b0;color:#fff}.bg-gradient-pink-purple{--bslib-color-fg: #ffffff;--bslib-color-bg: #ad399c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #ad399c;color:#fff}.bg-gradient-pink-red{--bslib-color-fg: #ffffff;--bslib-color-bg: #d8346b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #d8346b;color:#fff}.bg-gradient-pink-orange{--bslib-color-fg: #000;--bslib-color-bg: #e65157;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #e65157;color:#000}.bg-gradient-pink-yellow{--bslib-color-fg: #000;--bslib-color-bg: #e66c52;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #e66c52;color:#000}.bg-gradient-pink-green{--bslib-color-fg: #ffffff;--bslib-color-bg: #8a5571;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #8a5571;color:#fff}.bg-gradient-pink-teal{--bslib-color-fg: #000;--bslib-color-bg: #8d6f8c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #8d6f8c;color:#000}.bg-gradient-pink-cyan{--bslib-color-fg: #000;--bslib-color-bg: #866faf;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #866faf;color:#000}.bg-gradient-red-blue{--bslib-color-fg: #ffffff;--bslib-color-bg: #894c8f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #894c8f;color:#fff}.bg-gradient-red-indigo{--bslib-color-fg: #ffffff;--bslib-color-bg: #ad268a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #ad268a;color:#fff}.bg-gradient-red-purple{--bslib-color-fg: #ffffff;--bslib-color-bg: #b03a77;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #b03a77;color:#fff}.bg-gradient-red-pink{--bslib-color-fg: #ffffff;--bslib-color-bg: #da345e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #da345e;color:#fff}.bg-gradient-red-orange{--bslib-color-fg: #000;--bslib-color-bg: #e95231;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #e95231;color:#000}.bg-gradient-red-yellow{--bslib-color-fg: #000;--bslib-color-bg: #ea6d2c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #ea6d2c;color:#000}.bg-gradient-red-green{--bslib-color-fg: #ffffff;--bslib-color-bg: #8e564b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #8e564b;color:#fff}.bg-gradient-red-teal{--bslib-color-fg: #000;--bslib-color-bg: #917066;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #917066;color:#000}.bg-gradient-red-cyan{--bslib-color-fg: #000;--bslib-color-bg: #897189;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #897189;color:#000}.bg-gradient-orange-blue{--bslib-color-fg: #000;--bslib-color-bg: #9d7871;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #9d7871;color:#000}.bg-gradient-orange-indigo{--bslib-color-fg: #000;--bslib-color-bg: #c1526d;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #c1526d;color:#000}.bg-gradient-orange-purple{--bslib-color-fg: #000;--bslib-color-bg: #c46659;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #c46659;color:#000}.bg-gradient-orange-pink{--bslib-color-fg: #000;--bslib-color-bg: #ed6041;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #ed6041;color:#000}.bg-gradient-orange-red{--bslib-color-fg: #000;--bslib-color-bg: #f06128;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #f06128;color:#000}.bg-gradient-orange-yellow{--bslib-color-fg: #000;--bslib-color-bg: #fe990f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #fe990f;color:#000}.bg-gradient-orange-green{--bslib-color-fg: #000;--bslib-color-bg: #a2822e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #a2822e;color:#000}.bg-gradient-orange-teal{--bslib-color-fg: #000;--bslib-color-bg: #a59c48;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #a59c48;color:#000}.bg-gradient-orange-cyan{--bslib-color-fg: #000;--bslib-color-bg: #9d9c6c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #9d9c6c;color:#000}.bg-gradient-yellow-blue{--bslib-color-fg: #000;--bslib-color-bg: #9ea069;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #9ea069;color:#000}.bg-gradient-yellow-indigo{--bslib-color-fg: #000;--bslib-color-bg: #c27a65;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #c27a65;color:#000}.bg-gradient-yellow-purple{--bslib-color-fg: #000;--bslib-color-bg: #c58e51;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #c58e51;color:#000}.bg-gradient-yellow-pink{--bslib-color-fg: #000;--bslib-color-bg: #ef8839;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #ef8839;color:#000}.bg-gradient-yellow-red{--bslib-color-fg: #000;--bslib-color-bg: #f18920;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #f18920;color:#000}.bg-gradient-yellow-orange{--bslib-color-fg: #000;--bslib-color-bg: #fea60c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #fea60c;color:#000}.bg-gradient-yellow-green{--bslib-color-fg: #000;--bslib-color-bg: #a3aa26;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #a3aa26;color:#000}.bg-gradient-yellow-teal{--bslib-color-fg: #000;--bslib-color-bg: #a6c441;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #a6c441;color:#000}.bg-gradient-yellow-cyan{--bslib-color-fg: #000;--bslib-color-bg: #9ec564;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #9ec564;color:#000}.bg-gradient-green-blue{--bslib-color-fg: #ffffff;--bslib-color-bg: #147d98;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #147d98;color:#fff}.bg-gradient-green-indigo{--bslib-color-fg: #ffffff;--bslib-color-bg: #385793;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #385793;color:#fff}.bg-gradient-green-purple{--bslib-color-fg: #ffffff;--bslib-color-bg: #3b6b80;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #3b6b80;color:#fff}.bg-gradient-green-pink{--bslib-color-fg: #ffffff;--bslib-color-bg: #656567;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #656567;color:#fff}.bg-gradient-green-red{--bslib-color-fg: #ffffff;--bslib-color-bg: #67664e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #67664e;color:#fff}.bg-gradient-green-orange{--bslib-color-fg: #000;--bslib-color-bg: #74833a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #74833a;color:#000}.bg-gradient-green-yellow{--bslib-color-fg: #000;--bslib-color-bg: #759e35;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #759e35;color:#000}.bg-gradient-green-teal{--bslib-color-fg: #000;--bslib-color-bg: #1ca16f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #1ca16f;color:#000}.bg-gradient-green-cyan{--bslib-color-fg: #000;--bslib-color-bg: #14a292;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #14a292;color:#000}.bg-gradient-teal-blue{--bslib-color-fg: #000;--bslib-color-bg: #18a5c0;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #18a5c0;color:#000}.bg-gradient-teal-indigo{--bslib-color-fg: #000;--bslib-color-bg: #3c7fbb;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #3c7fbb;color:#000}.bg-gradient-teal-purple{--bslib-color-fg: #000;--bslib-color-bg: #4093a8;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #4093a8;color:#000}.bg-gradient-teal-pink{--bslib-color-fg: #000;--bslib-color-bg: #698d8f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #698d8f;color:#000}.bg-gradient-teal-red{--bslib-color-fg: #000;--bslib-color-bg: #6b8e76;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #6b8e76;color:#000}.bg-gradient-teal-orange{--bslib-color-fg: #000;--bslib-color-bg: #78ab63;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #78ab63;color:#000}.bg-gradient-teal-yellow{--bslib-color-fg: #000;--bslib-color-bg: #79c65d;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #79c65d;color:#000}.bg-gradient-teal-green{--bslib-color-fg: #000;--bslib-color-bg: #1daf7c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #1daf7c;color:#000}.bg-gradient-teal-cyan{--bslib-color-fg: #000;--bslib-color-bg: #18c9bb;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #18c9bb;color:#000}.bg-gradient-cyan-blue{--bslib-color-fg: #000;--bslib-color-bg: #0da5f5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #0da5f5;color:#000}.bg-gradient-cyan-indigo{--bslib-color-fg: #000;--bslib-color-bg: #3180f1;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #3180f1;color:#000}.bg-gradient-cyan-purple{--bslib-color-fg: #000;--bslib-color-bg: #3494dd;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #3494dd;color:#000}.bg-gradient-cyan-pink{--bslib-color-fg: #000;--bslib-color-bg: #5d8ec5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #5d8ec5;color:#000}.bg-gradient-cyan-red{--bslib-color-fg: #000;--bslib-color-bg: #608eac;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #608eac;color:#000}.bg-gradient-cyan-orange{--bslib-color-fg: #000;--bslib-color-bg: #6dac98;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #6dac98;color:#000}.bg-gradient-cyan-yellow{--bslib-color-fg: #000;--bslib-color-bg: #6ec693;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #6ec693;color:#000}.bg-gradient-cyan-green{--bslib-color-fg: #000;--bslib-color-bg: #12afb2;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #12afb2;color:#000}.bg-gradient-cyan-teal{--bslib-color-fg: #000;--bslib-color-bg: #15cacc;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #15cacc;color:#000}.tab-content>.tab-pane.html-fill-container{display:none}.tab-content>.active.html-fill-container{display:flex}.tab-content.html-fill-container{padding:0}:root{--bslib-spacer: 1rem;--bslib-mb-spacer: var(--bslib-spacer, 1rem)}.bslib-mb-spacing{margin-bottom:var(--bslib-mb-spacer)}.bslib-gap-spacing{gap:var(--bslib-mb-spacer)}.bslib-gap-spacing>.bslib-mb-spacing,.bslib-gap-spacing>.form-group,.bslib-gap-spacing>p,.bslib-gap-spacing>pre{margin-bottom:0}.html-fill-container>.html-fill-item.bslib-mb-spacing{margin-bottom:0}:root{--bslib-page-sidebar-title-bg: #517699;--bslib-page-sidebar-title-color: #ffffff}.bslib-page-title{background-color:var(--bslib-page-sidebar-title-bg);color:var(--bslib-page-sidebar-title-color);font-size:1.25rem;font-weight:300;padding:var(--bslib-spacer, 1rem);padding-left:1.5rem;margin-bottom:0;border-bottom:1px solid #dededf}html{height:100%}.bslib-page-fill{width:100%;height:100%;margin:0;padding:var(--bslib-spacer, 1rem);gap:var(--bslib-spacer, 1rem)}@media(max-width: 575.98px){.bslib-page-fill{height:var(--bslib-page-fill-mobile-height, auto)}}.accordion .accordion-header{font-size:calc(1.29rem + 0.48vw);margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2;color:var(--bs-heading-color);margin-bottom:0}@media(min-width: 1200px){.accordion .accordion-header{font-size:1.65rem}}.accordion .accordion-icon:not(:empty){margin-right:.75rem;display:flex}.accordion .accordion-button:not(.collapsed){box-shadow:none}.accordion .accordion-button:not(.collapsed):focus{box-shadow:var(--bs-accordion-btn-focus-box-shadow)}:root{--bslib-value-box-shadow: none;--bslib-value-box-border-width-auto-yes: var(--bslib-value-box-border-width-baseline);--bslib-value-box-border-width-auto-no: 0;--bslib-value-box-border-width-baseline: 1px}.bslib-value-box{border-width:var(--bslib-value-box-border-width-auto-no, var(--bslib-value-box-border-width-baseline));container-name:bslib-value-box;container-type:inline-size}.bslib-value-box.card{box-shadow:var(--bslib-value-box-shadow)}.bslib-value-box.border-auto{border-width:var(--bslib-value-box-border-width-auto-yes, var(--bslib-value-box-border-width-baseline))}.bslib-value-box.default{--bslib-value-box-bg-default: var(--bs-card-bg, #ffffff);--bslib-value-box-border-color-default: var(--bs-card-border-color, rgba(0, 0, 0, 0.175));color:var(--bslib-value-box-color);background-color:var(--bslib-value-box-bg, var(--bslib-value-box-bg-default));border-color:var(--bslib-value-box-border-color, var(--bslib-value-box-border-color-default))}.bslib-value-box .value-box-grid{display:grid;grid-template-areas:"left right";align-items:center;overflow:hidden}.bslib-value-box .value-box-showcase{height:100%;max-height:var(---bslib-value-box-showcase-max-h, 100%)}.bslib-value-box .value-box-showcase,.bslib-value-box .value-box-showcase>.html-fill-item{width:100%}.bslib-value-box[data-full-screen=true] .value-box-showcase{max-height:var(---bslib-value-box-showcase-max-h-fs, 100%)}@media screen and (min-width: 575.98px){@container bslib-value-box (max-width: 300px){.bslib-value-box:not(.showcase-bottom) .value-box-grid{grid-template-columns:1fr !important;grid-template-rows:auto auto;grid-template-areas:"top" "bottom"}.bslib-value-box:not(.showcase-bottom) .value-box-grid .value-box-showcase{grid-area:top !important}.bslib-value-box:not(.showcase-bottom) .value-box-grid .value-box-area{grid-area:bottom !important;justify-content:end}}}.bslib-value-box .value-box-area{justify-content:center;padding:1.5rem 1rem;font-size:.9rem;font-weight:500}.bslib-value-box .value-box-area *{margin-bottom:0;margin-top:0}.bslib-value-box .value-box-title{font-size:1rem;margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}.bslib-value-box .value-box-title:empty::after{content:" "}.bslib-value-box .value-box-value{font-size:calc(1.29rem + 0.48vw);margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}@media(min-width: 1200px){.bslib-value-box .value-box-value{font-size:1.65rem}}.bslib-value-box .value-box-value:empty::after{content:" "}.bslib-value-box .value-box-showcase{align-items:center;justify-content:center;margin-top:auto;margin-bottom:auto;padding:1rem}.bslib-value-box .value-box-showcase .bi,.bslib-value-box .value-box-showcase .fa,.bslib-value-box .value-box-showcase .fab,.bslib-value-box .value-box-showcase .fas,.bslib-value-box .value-box-showcase .far{opacity:.85;min-width:50px;max-width:125%}.bslib-value-box .value-box-showcase .bi,.bslib-value-box .value-box-showcase .fa,.bslib-value-box .value-box-showcase .fab,.bslib-value-box .value-box-showcase .fas,.bslib-value-box .value-box-showcase .far{font-size:4rem}.bslib-value-box.showcase-top-right .value-box-grid{grid-template-columns:1fr var(---bslib-value-box-showcase-w, 50%)}.bslib-value-box.showcase-top-right .value-box-grid .value-box-showcase{grid-area:right;margin-left:auto;align-self:start;align-items:end;padding-left:0;padding-bottom:0}.bslib-value-box.showcase-top-right .value-box-grid .value-box-area{grid-area:left;align-self:end}.bslib-value-box.showcase-top-right[data-full-screen=true] .value-box-grid{grid-template-columns:auto var(---bslib-value-box-showcase-w-fs, 1fr)}.bslib-value-box.showcase-top-right[data-full-screen=true] .value-box-grid>div{align-self:center}.bslib-value-box.showcase-top-right:not([data-full-screen=true]) .value-box-showcase{margin-top:0}@container bslib-value-box (max-width: 300px){.bslib-value-box.showcase-top-right:not([data-full-screen=true]) .value-box-grid .value-box-showcase{padding-left:1rem}}.bslib-value-box.showcase-left-center .value-box-grid{grid-template-columns:var(---bslib-value-box-showcase-w, 30%) auto}.bslib-value-box.showcase-left-center[data-full-screen=true] .value-box-grid{grid-template-columns:var(---bslib-value-box-showcase-w-fs, 1fr) auto}.bslib-value-box.showcase-left-center:not([data-fill-screen=true]) .value-box-grid .value-box-showcase{grid-area:left}.bslib-value-box.showcase-left-center:not([data-fill-screen=true]) .value-box-grid .value-box-area{grid-area:right}.bslib-value-box.showcase-bottom .value-box-grid{grid-template-columns:1fr;grid-template-rows:1fr var(---bslib-value-box-showcase-h, auto);grid-template-areas:"top" "bottom";overflow:hidden}.bslib-value-box.showcase-bottom .value-box-grid .value-box-showcase{grid-area:bottom;padding:0;margin:0}.bslib-value-box.showcase-bottom .value-box-grid .value-box-area{grid-area:top}.bslib-value-box.showcase-bottom[data-full-screen=true] .value-box-grid{grid-template-rows:1fr var(---bslib-value-box-showcase-h-fs, 2fr)}.bslib-value-box.showcase-bottom[data-full-screen=true] .value-box-grid .value-box-showcase{padding:1rem}[data-bs-theme=dark] .bslib-value-box{--bslib-value-box-shadow: 0 0.5rem 1rem rgb(0 0 0 / 50%)}@media(min-width: 576px){.nav:not(.nav-hidden){display:flex !important;display:-webkit-flex !important}.nav:not(.nav-hidden):not(.nav-stacked):not(.flex-column){float:none !important}.nav:not(.nav-hidden):not(.nav-stacked):not(.flex-column)>.bslib-nav-spacer{margin-left:auto !important}.nav:not(.nav-hidden):not(.nav-stacked):not(.flex-column)>.form-inline{margin-top:auto;margin-bottom:auto}.nav:not(.nav-hidden).nav-stacked{flex-direction:column;-webkit-flex-direction:column;height:100%}.nav:not(.nav-hidden).nav-stacked>.bslib-nav-spacer{margin-top:auto !important}}.bslib-sidebar-layout{--bslib-sidebar-transition-duration: 500ms;--bslib-sidebar-transition-easing-x: cubic-bezier(0.8, 0.78, 0.22, 1.07);--bslib-sidebar-border: var(--bs-card-border-width, 1px) solid var(--bs-card-border-color, rgba(0, 0, 0, 0.175));--bslib-sidebar-border-radius: var(--bs-border-radius);--bslib-sidebar-vert-border: var(--bs-card-border-width, 1px) solid var(--bs-card-border-color, rgba(0, 0, 0, 0.175));--bslib-sidebar-bg: rgba(var(--bs-emphasis-color-rgb, 0, 0, 0), 0.05);--bslib-sidebar-fg: var(--bs-emphasis-color, black);--bslib-sidebar-main-fg: var(--bs-card-color, var(--bs-body-color));--bslib-sidebar-main-bg: var(--bs-card-bg, var(--bs-body-bg));--bslib-sidebar-toggle-bg: rgba(var(--bs-emphasis-color-rgb, 0, 0, 0), 0.1);--bslib-sidebar-padding: calc(var(--bslib-spacer) * 1.5);--bslib-sidebar-icon-size: var(--bslib-spacer, 1rem);--bslib-sidebar-icon-button-size: calc(var(--bslib-sidebar-icon-size, 1rem) * 2);--bslib-sidebar-padding-icon: calc(var(--bslib-sidebar-icon-button-size, 2rem) * 1.5);--bslib-collapse-toggle-border-radius: var(--bs-border-radius, 0.375rem);--bslib-collapse-toggle-transform: 0deg;--bslib-sidebar-toggle-transition-easing: cubic-bezier(1, 0, 0, 1);--bslib-collapse-toggle-right-transform: 180deg;--bslib-sidebar-column-main: minmax(0, 1fr);display:grid !important;grid-template-columns:min(100% - var(--bslib-sidebar-icon-size),var(--bslib-sidebar-width, 250px)) var(--bslib-sidebar-column-main);position:relative;transition:grid-template-columns ease-in-out var(--bslib-sidebar-transition-duration);border:var(--bslib-sidebar-border);border-radius:var(--bslib-sidebar-border-radius)}@media(prefers-reduced-motion: reduce){.bslib-sidebar-layout{transition:none}}.bslib-sidebar-layout[data-bslib-sidebar-border=false]{border:none}.bslib-sidebar-layout[data-bslib-sidebar-border-radius=false]{border-radius:initial}.bslib-sidebar-layout>.main,.bslib-sidebar-layout>.sidebar{grid-row:1/2;border-radius:inherit;overflow:auto}.bslib-sidebar-layout>.main{grid-column:2/3;border-top-left-radius:0;border-bottom-left-radius:0;padding:var(--bslib-sidebar-padding);transition:padding var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration);color:var(--bslib-sidebar-main-fg);background-color:var(--bslib-sidebar-main-bg)}.bslib-sidebar-layout>.sidebar{grid-column:1/2;width:100%;height:100%;border-right:var(--bslib-sidebar-vert-border);border-top-right-radius:0;border-bottom-right-radius:0;color:var(--bslib-sidebar-fg);background-color:var(--bslib-sidebar-bg);backdrop-filter:blur(5px)}.bslib-sidebar-layout>.sidebar>.sidebar-content{display:flex;flex-direction:column;gap:var(--bslib-spacer, 1rem);padding:var(--bslib-sidebar-padding);padding-top:var(--bslib-sidebar-padding-icon)}.bslib-sidebar-layout>.sidebar>.sidebar-content>:last-child:not(.sidebar-title){margin-bottom:0}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion{margin-left:calc(-1*var(--bslib-sidebar-padding));margin-right:calc(-1*var(--bslib-sidebar-padding))}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion:last-child{margin-bottom:calc(-1*var(--bslib-sidebar-padding))}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion:not(:last-child){margin-bottom:1rem}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion .accordion-body{display:flex;flex-direction:column}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion:not(:first-child) .accordion-item:first-child{border-top:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion:not(:last-child) .accordion-item:last-child{border-bottom:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.bslib-sidebar-layout>.sidebar>.sidebar-content.has-accordion>.sidebar-title{border-bottom:none;padding-bottom:0}.bslib-sidebar-layout>.sidebar .shiny-input-container{width:100%}.bslib-sidebar-layout[data-bslib-sidebar-open=always]>.sidebar>.sidebar-content{padding-top:var(--bslib-sidebar-padding)}.bslib-sidebar-layout>.collapse-toggle{grid-row:1/2;grid-column:1/2;display:inline-flex;align-items:center;position:absolute;right:calc(var(--bslib-sidebar-icon-size));top:calc(var(--bslib-sidebar-icon-size, 1rem)/2);border:none;border-radius:var(--bslib-collapse-toggle-border-radius);height:var(--bslib-sidebar-icon-button-size, 2rem);width:var(--bslib-sidebar-icon-button-size, 2rem);display:flex;align-items:center;justify-content:center;padding:0;color:var(--bslib-sidebar-fg);background-color:unset;transition:color var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration),top var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration),right var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration),left var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration)}.bslib-sidebar-layout>.collapse-toggle:hover{background-color:var(--bslib-sidebar-toggle-bg)}.bslib-sidebar-layout>.collapse-toggle>.collapse-icon{opacity:.8;width:var(--bslib-sidebar-icon-size);height:var(--bslib-sidebar-icon-size);transform:rotateY(var(--bslib-collapse-toggle-transform));transition:transform var(--bslib-sidebar-toggle-transition-easing) var(--bslib-sidebar-transition-duration)}.bslib-sidebar-layout>.collapse-toggle:hover>.collapse-icon{opacity:1}.bslib-sidebar-layout .sidebar-title{font-size:1.25rem;line-height:1.25;margin-top:0;margin-bottom:1rem;padding-bottom:1rem;border-bottom:var(--bslib-sidebar-border)}.bslib-sidebar-layout.sidebar-right{grid-template-columns:var(--bslib-sidebar-column-main) min(100% - var(--bslib-sidebar-icon-size),var(--bslib-sidebar-width, 250px))}.bslib-sidebar-layout.sidebar-right>.main{grid-column:1/2;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:inherit;border-bottom-left-radius:inherit}.bslib-sidebar-layout.sidebar-right>.sidebar{grid-column:2/3;border-right:none;border-left:var(--bslib-sidebar-vert-border);border-top-left-radius:0;border-bottom-left-radius:0}.bslib-sidebar-layout.sidebar-right>.collapse-toggle{grid-column:2/3;left:var(--bslib-sidebar-icon-size);right:unset;border:var(--bslib-collapse-toggle-border)}.bslib-sidebar-layout.sidebar-right>.collapse-toggle>.collapse-icon{transform:rotateY(var(--bslib-collapse-toggle-right-transform))}.bslib-sidebar-layout.sidebar-collapsed{--bslib-collapse-toggle-transform: 180deg;--bslib-collapse-toggle-right-transform: 0deg;--bslib-sidebar-vert-border: none;grid-template-columns:0 minmax(0, 1fr)}.bslib-sidebar-layout.sidebar-collapsed.sidebar-right{grid-template-columns:minmax(0, 1fr) 0}.bslib-sidebar-layout.sidebar-collapsed:not(.transitioning)>.sidebar>*{display:none}.bslib-sidebar-layout.sidebar-collapsed>.main{border-radius:inherit}.bslib-sidebar-layout.sidebar-collapsed:not(.sidebar-right)>.main{padding-left:var(--bslib-sidebar-padding-icon)}.bslib-sidebar-layout.sidebar-collapsed.sidebar-right>.main{padding-right:var(--bslib-sidebar-padding-icon)}.bslib-sidebar-layout.sidebar-collapsed>.collapse-toggle{color:var(--bslib-sidebar-main-fg);top:calc(var(--bslib-sidebar-overlap-counter, 0)*(var(--bslib-sidebar-icon-size) + var(--bslib-sidebar-padding)) + var(--bslib-sidebar-icon-size, 1rem)/2);right:calc(-2.5*var(--bslib-sidebar-icon-size) - var(--bs-card-border-width, 1px))}.bslib-sidebar-layout.sidebar-collapsed.sidebar-right>.collapse-toggle{left:calc(-2.5*var(--bslib-sidebar-icon-size) - var(--bs-card-border-width, 1px));right:unset}@media(min-width: 576px){.bslib-sidebar-layout.transitioning>.sidebar>.sidebar-content{display:none}}@media(max-width: 575.98px){.bslib-sidebar-layout[data-bslib-sidebar-open=desktop]{--bslib-sidebar-js-init-collapsed: true}.bslib-sidebar-layout>.sidebar,.bslib-sidebar-layout.sidebar-right>.sidebar{border:none}.bslib-sidebar-layout>.main,.bslib-sidebar-layout.sidebar-right>.main{grid-column:1/3}.bslib-sidebar-layout[data-bslib-sidebar-open=always]{display:block !important}.bslib-sidebar-layout[data-bslib-sidebar-open=always]>.sidebar{max-height:var(--bslib-sidebar-max-height-mobile);overflow-y:auto;border-top:var(--bslib-sidebar-vert-border)}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]){grid-template-columns:100% 0}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]):not(.sidebar-collapsed)>.sidebar{z-index:1}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]):not(.sidebar-collapsed)>.collapse-toggle{z-index:1}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]).sidebar-right{grid-template-columns:0 100%}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]).sidebar-collapsed{grid-template-columns:0 100%}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]).sidebar-collapsed.sidebar-right{grid-template-columns:100% 0}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]):not(.sidebar-right)>.main{padding-left:var(--bslib-sidebar-padding-icon)}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]).sidebar-right>.main{padding-right:var(--bslib-sidebar-padding-icon)}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always])>.main{opacity:0;transition:opacity var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration)}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]).sidebar-collapsed>.main{opacity:1}}.bslib-card{overflow:auto}.bslib-card .card-body+.card-body{padding-top:0}.bslib-card .card-body{overflow:auto}.bslib-card .card-body p{margin-top:0}.bslib-card .card-body p:last-child{margin-bottom:0}.bslib-card .card-body{max-height:var(--bslib-card-body-max-height, none)}.bslib-card[data-full-screen=true]>.card-body{max-height:var(--bslib-card-body-max-height-full-screen, none)}.bslib-card .card-header .form-group{margin-bottom:0}.bslib-card .card-header .selectize-control{margin-bottom:0}.bslib-card .card-header .selectize-control .item{margin-right:1.15rem}.bslib-card .card-footer{margin-top:auto}.bslib-card .bslib-navs-card-title{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center}.bslib-card .bslib-navs-card-title .nav{margin-left:auto}.bslib-card .bslib-sidebar-layout:not([data-bslib-sidebar-border=true]){border:none}.bslib-card .bslib-sidebar-layout:not([data-bslib-sidebar-border-radius=true]){border-top-left-radius:0;border-top-right-radius:0}[data-full-screen=true]{position:fixed;inset:3.5rem 1rem 1rem;height:auto !important;max-height:none !important;width:auto !important;z-index:1070}.bslib-full-screen-enter{display:none;position:absolute;bottom:var(--bslib-full-screen-enter-bottom, 0.2rem);right:var(--bslib-full-screen-enter-right, 0);top:var(--bslib-full-screen-enter-top);left:var(--bslib-full-screen-enter-left);color:var(--bslib-color-fg, var(--bs-card-color));background-color:var(--bslib-color-bg, var(--bs-card-bg, var(--bs-body-bg)));border:var(--bs-card-border-width) solid var(--bslib-color-fg, var(--bs-card-border-color));box-shadow:0 2px 4px rgba(0,0,0,.15);margin:.2rem .4rem;padding:.55rem !important;font-size:.8rem;cursor:pointer;opacity:.7;z-index:1070}.bslib-full-screen-enter:hover{opacity:1}.card[data-full-screen=false]:hover>*>.bslib-full-screen-enter{display:block}.bslib-has-full-screen .card:hover>*>.bslib-full-screen-enter{display:none}@media(max-width: 575.98px){.bslib-full-screen-enter{display:none !important}}.bslib-full-screen-exit{position:relative;top:1.35rem;font-size:.9rem;cursor:pointer;text-decoration:none;display:flex;float:right;margin-right:2.15rem;align-items:center;color:rgba(var(--bs-body-bg-rgb), 0.8)}.bslib-full-screen-exit:hover{color:rgba(var(--bs-body-bg-rgb), 1)}.bslib-full-screen-exit svg{margin-left:.5rem;font-size:1.5rem}#bslib-full-screen-overlay{position:fixed;inset:0;background-color:rgba(var(--bs-body-color-rgb), 0.6);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);z-index:1069;animation:bslib-full-screen-overlay-enter 400ms cubic-bezier(0.6, 0.02, 0.65, 1) forwards}@keyframes bslib-full-screen-overlay-enter{0%{opacity:0}100%{opacity:1}}.navbar+.container-fluid:has(>.tab-content>.tab-pane.active.html-fill-container),.navbar+.container-sm:has(>.tab-content>.tab-pane.active.html-fill-container),.navbar+.container-md:has(>.tab-content>.tab-pane.active.html-fill-container),.navbar+.container-lg:has(>.tab-content>.tab-pane.active.html-fill-container),.navbar+.container-xl:has(>.tab-content>.tab-pane.active.html-fill-container),.navbar+.container-xxl:has(>.tab-content>.tab-pane.active.html-fill-container){padding-left:0;padding-right:0}.navbar+.container-fluid>.tab-content>.tab-pane.active.html-fill-container,.navbar+.container-sm>.tab-content>.tab-pane.active.html-fill-container,.navbar+.container-md>.tab-content>.tab-pane.active.html-fill-container,.navbar+.container-lg>.tab-content>.tab-pane.active.html-fill-container,.navbar+.container-xl>.tab-content>.tab-pane.active.html-fill-container,.navbar+.container-xxl>.tab-content>.tab-pane.active.html-fill-container{padding:var(--bslib-spacer, 1rem);gap:var(--bslib-spacer, 1rem)}.navbar+.container-fluid>.tab-content>.tab-pane.active.html-fill-container:has(>.bslib-sidebar-layout:only-child),.navbar+.container-sm>.tab-content>.tab-pane.active.html-fill-container:has(>.bslib-sidebar-layout:only-child),.navbar+.container-md>.tab-content>.tab-pane.active.html-fill-container:has(>.bslib-sidebar-layout:only-child),.navbar+.container-lg>.tab-content>.tab-pane.active.html-fill-container:has(>.bslib-sidebar-layout:only-child),.navbar+.container-xl>.tab-content>.tab-pane.active.html-fill-container:has(>.bslib-sidebar-layout:only-child),.navbar+.container-xxl>.tab-content>.tab-pane.active.html-fill-container:has(>.bslib-sidebar-layout:only-child){padding:0}.navbar+.container-fluid>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border=true]),.navbar+.container-sm>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border=true]),.navbar+.container-md>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border=true]),.navbar+.container-lg>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border=true]),.navbar+.container-xl>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border=true]),.navbar+.container-xxl>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border=true]){border-left:none;border-right:none;border-bottom:none}.navbar+.container-fluid>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border-radius=true]),.navbar+.container-sm>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border-radius=true]),.navbar+.container-md>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border-radius=true]),.navbar+.container-lg>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border-radius=true]),.navbar+.container-xl>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border-radius=true]),.navbar+.container-xxl>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border-radius=true]){border-radius:0}.navbar+div>.bslib-sidebar-layout{border-top:var(--bslib-sidebar-border)}.bslib-grid{display:grid !important;gap:var(--bslib-spacer, 1rem);height:var(--bslib-grid-height)}.bslib-grid.grid{grid-template-columns:repeat(var(--bs-columns, 12), minmax(0, 1fr));grid-template-rows:unset;grid-auto-rows:var(--bslib-grid--row-heights);--bslib-grid--row-heights--xs: unset;--bslib-grid--row-heights--sm: unset;--bslib-grid--row-heights--md: unset;--bslib-grid--row-heights--lg: unset;--bslib-grid--row-heights--xl: unset;--bslib-grid--row-heights--xxl: unset}.bslib-grid.grid.bslib-grid--row-heights--xs{--bslib-grid--row-heights: var(--bslib-grid--row-heights--xs)}@media(min-width: 576px){.bslib-grid.grid.bslib-grid--row-heights--sm{--bslib-grid--row-heights: var(--bslib-grid--row-heights--sm)}}@media(min-width: 768px){.bslib-grid.grid.bslib-grid--row-heights--md{--bslib-grid--row-heights: var(--bslib-grid--row-heights--md)}}@media(min-width: 992px){.bslib-grid.grid.bslib-grid--row-heights--lg{--bslib-grid--row-heights: var(--bslib-grid--row-heights--lg)}}@media(min-width: 1200px){.bslib-grid.grid.bslib-grid--row-heights--xl{--bslib-grid--row-heights: var(--bslib-grid--row-heights--xl)}}@media(min-width: 1400px){.bslib-grid.grid.bslib-grid--row-heights--xxl{--bslib-grid--row-heights: var(--bslib-grid--row-heights--xxl)}}.bslib-grid>*>.shiny-input-container{width:100%}.bslib-grid-item{grid-column:auto/span 1}@media(max-width: 767.98px){.bslib-grid-item{grid-column:1/-1}}@media(max-width: 575.98px){.bslib-grid{grid-template-columns:1fr !important;height:var(--bslib-grid-height-mobile)}.bslib-grid.grid{height:unset !important;grid-auto-rows:var(--bslib-grid--row-heights--xs, auto)}}.html-fill-container{display:flex;flex-direction:column;min-height:0;min-width:0}.html-fill-container>.html-fill-item{flex:1 1 auto;min-height:0;min-width:0}.html-fill-container>:not(.html-fill-item){flex:0 0 auto}.tippy-box[data-theme~=quarto]{background-color:#fff;border:solid 1px #dededf;border-radius:.375rem;color:#212529;font-size:.875rem}.tippy-box[data-theme~=quarto]>.tippy-backdrop{background-color:#fff}.tippy-box[data-theme~=quarto]>.tippy-arrow:after,.tippy-box[data-theme~=quarto]>.tippy-svg-arrow:after{content:"";position:absolute;z-index:-1}.tippy-box[data-theme~=quarto]>.tippy-arrow:after{border-color:rgba(0,0,0,0);border-style:solid}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-6px}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-6px}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-6px}.tippy-box[data-placement^=left]>.tippy-arrow:before{right:-6px}.tippy-box[data-theme~=quarto][data-placement^=top]>.tippy-arrow:before{border-top-color:#fff}.tippy-box[data-theme~=quarto][data-placement^=top]>.tippy-arrow:after{border-top-color:#dededf;border-width:7px 7px 0;top:17px;left:1px}.tippy-box[data-theme~=quarto][data-placement^=top]>.tippy-svg-arrow>svg{top:16px}.tippy-box[data-theme~=quarto][data-placement^=top]>.tippy-svg-arrow:after{top:17px}.tippy-box[data-theme~=quarto][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:#fff;bottom:16px}.tippy-box[data-theme~=quarto][data-placement^=bottom]>.tippy-arrow:after{border-bottom-color:#dededf;border-width:0 7px 7px;bottom:17px;left:1px}.tippy-box[data-theme~=quarto][data-placement^=bottom]>.tippy-svg-arrow>svg{bottom:15px}.tippy-box[data-theme~=quarto][data-placement^=bottom]>.tippy-svg-arrow:after{bottom:17px}.tippy-box[data-theme~=quarto][data-placement^=left]>.tippy-arrow:before{border-left-color:#fff}.tippy-box[data-theme~=quarto][data-placement^=left]>.tippy-arrow:after{border-left-color:#dededf;border-width:7px 0 7px 7px;left:17px;top:1px}.tippy-box[data-theme~=quarto][data-placement^=left]>.tippy-svg-arrow>svg{left:11px}.tippy-box[data-theme~=quarto][data-placement^=left]>.tippy-svg-arrow:after{left:12px}.tippy-box[data-theme~=quarto][data-placement^=right]>.tippy-arrow:before{border-right-color:#fff;right:16px}.tippy-box[data-theme~=quarto][data-placement^=right]>.tippy-arrow:after{border-width:7px 7px 7px 0;right:17px;top:1px;border-right-color:#dededf}.tippy-box[data-theme~=quarto][data-placement^=right]>.tippy-svg-arrow>svg{right:11px}.tippy-box[data-theme~=quarto][data-placement^=right]>.tippy-svg-arrow:after{right:12px}.tippy-box[data-theme~=quarto]>.tippy-svg-arrow{fill:#212529}.tippy-box[data-theme~=quarto]>.tippy-svg-arrow:after{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMCA2czEuNzk2LS4wMTMgNC42Ny0zLjYxNUM1Ljg1MS45IDYuOTMuMDA2IDggMGMxLjA3LS4wMDYgMi4xNDguODg3IDMuMzQzIDIuMzg1QzE0LjIzMyA2LjAwNSAxNiA2IDE2IDZIMHoiIGZpbGw9InJnYmEoMCwgOCwgMTYsIDAuMikiLz48L3N2Zz4=);background-size:16px 6px;width:16px;height:6px}.top-right{position:absolute;top:1em;right:1em}.visually-hidden{border:0;clip:rect(0 0 0 0);height:auto;margin:0;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none !important}.zindex-bottom{z-index:-1 !important}figure.figure{display:block}.quarto-layout-panel{margin-bottom:1em}.quarto-layout-panel>figure{width:100%}.quarto-layout-panel>figure>figcaption,.quarto-layout-panel>.panel-caption{margin-top:10pt}.quarto-layout-panel>.table-caption{margin-top:0px}.table-caption p{margin-bottom:.5em}.quarto-layout-row{display:flex;flex-direction:row;align-items:flex-start}.quarto-layout-valign-top{align-items:flex-start}.quarto-layout-valign-bottom{align-items:flex-end}.quarto-layout-valign-center{align-items:center}.quarto-layout-cell{position:relative;margin-right:20px}.quarto-layout-cell:last-child{margin-right:0}.quarto-layout-cell figure,.quarto-layout-cell>p{margin:.2em}.quarto-layout-cell img{max-width:100%}.quarto-layout-cell .html-widget{width:100% !important}.quarto-layout-cell div figure p{margin:0}.quarto-layout-cell figure{display:block;margin-inline-start:0;margin-inline-end:0}.quarto-layout-cell table{display:inline-table}.quarto-layout-cell-subref figcaption,figure .quarto-layout-row figure figcaption{text-align:center;font-style:italic}.quarto-figure{position:relative;margin-bottom:1em}.quarto-figure>figure{width:100%;margin-bottom:0}.quarto-figure-left>figure>p,.quarto-figure-left>figure>div{text-align:left}.quarto-figure-center>figure>p,.quarto-figure-center>figure>div{text-align:center}.quarto-figure-right>figure>p,.quarto-figure-right>figure>div{text-align:right}.quarto-figure>figure>div.cell-annotation,.quarto-figure>figure>div code{text-align:left}figure>p:empty{display:none}figure>p:first-child{margin-top:0;margin-bottom:0}figure>figcaption.quarto-float-caption-bottom{margin-bottom:.5em}figure>figcaption.quarto-float-caption-top{margin-top:.5em}div[id^=tbl-]{position:relative}.quarto-figure>.anchorjs-link{position:absolute;top:.6em;right:.5em}div[id^=tbl-]>.anchorjs-link{position:absolute;top:.7em;right:.3em}.quarto-figure:hover>.anchorjs-link,div[id^=tbl-]:hover>.anchorjs-link,h2:hover>.anchorjs-link,.h2:hover>.anchorjs-link,h3:hover>.anchorjs-link,.h3:hover>.anchorjs-link,h4:hover>.anchorjs-link,.h4:hover>.anchorjs-link,h5:hover>.anchorjs-link,.h5:hover>.anchorjs-link,h6:hover>.anchorjs-link,.h6:hover>.anchorjs-link,.reveal-anchorjs-link>.anchorjs-link{opacity:1}#title-block-header{margin-block-end:1rem;position:relative;margin-top:-1px}#title-block-header .abstract{margin-block-start:1rem}#title-block-header .abstract .abstract-title{font-weight:600}#title-block-header a{text-decoration:none}#title-block-header .author,#title-block-header .date,#title-block-header .doi{margin-block-end:.2rem}#title-block-header .quarto-title-block>div{display:flex}#title-block-header .quarto-title-block>div>h1,#title-block-header .quarto-title-block>div>.h1{flex-grow:1}#title-block-header .quarto-title-block>div>button{flex-shrink:0;height:2.25rem;margin-top:0}@media(min-width: 992px){#title-block-header .quarto-title-block>div>button{margin-top:5px}}tr.header>th>p:last-of-type{margin-bottom:0px}table,table.table{margin-top:.5rem;margin-bottom:.5rem}caption,.table-caption{padding-top:.5rem;padding-bottom:.5rem;text-align:center}figure.quarto-float-tbl figcaption.quarto-float-caption-top{margin-top:.5rem;margin-bottom:.25rem;text-align:center}figure.quarto-float-tbl figcaption.quarto-float-caption-bottom{padding-top:.25rem;margin-bottom:.5rem;text-align:center}.utterances{max-width:none;margin-left:-8px}iframe{margin-bottom:1em}details{margin-bottom:1em}details[show]{margin-bottom:0}details>summary{color:rgba(33,37,41,.75)}details>summary>p:only-child{display:inline}pre.sourceCode,code.sourceCode{position:relative}dd code:not(.sourceCode),p code:not(.sourceCode){white-space:pre-wrap}code{white-space:pre}@media print{code{white-space:pre-wrap}}pre>code{display:block}pre>code.sourceCode{white-space:pre}pre>code.sourceCode>span>a:first-child::before{text-decoration:none}pre.code-overflow-wrap>code.sourceCode{white-space:pre-wrap}pre.code-overflow-scroll>code.sourceCode{white-space:pre}code a:any-link{color:inherit;text-decoration:none}code a:hover{color:inherit;text-decoration:underline}ul.task-list{padding-left:1em}[data-tippy-root]{display:inline-block}.tippy-content .footnote-back{display:none}.footnote-back{margin-left:.2em}.tippy-content{overflow-x:auto}.quarto-embedded-source-code{display:none}.quarto-unresolved-ref{font-weight:600}.quarto-cover-image{max-width:35%;float:right;margin-left:30px}.cell-output-display .widget-subarea{margin-bottom:1em}.cell-output-display:not(.no-overflow-x),.knitsql-table:not(.no-overflow-x){overflow-x:auto}.panel-input{margin-bottom:1em}.panel-input>div,.panel-input>div>div{display:inline-block;vertical-align:top;padding-right:12px}.panel-input>p:last-child{margin-bottom:0}.layout-sidebar{margin-bottom:1em}.layout-sidebar .tab-content{border:none}.tab-content>.page-columns.active{display:grid}div.sourceCode>iframe{width:100%;height:300px;margin-bottom:-0.5em}a{text-underline-offset:3px}.callout pre.sourceCode{padding-left:0}div.ansi-escaped-output{font-family:monospace;display:block}/*! +* +* ansi colors from IPython notebook's +* +* we also add `bright-[color]-` synonyms for the `-[color]-intense` classes since +* that seems to be what ansi_up emits +* +*/.ansi-black-fg{color:#3e424d}.ansi-black-bg{background-color:#3e424d}.ansi-black-intense-black,.ansi-bright-black-fg{color:#282c36}.ansi-black-intense-black,.ansi-bright-black-bg{background-color:#282c36}.ansi-red-fg{color:#e75c58}.ansi-red-bg{background-color:#e75c58}.ansi-red-intense-red,.ansi-bright-red-fg{color:#b22b31}.ansi-red-intense-red,.ansi-bright-red-bg{background-color:#b22b31}.ansi-green-fg{color:#00a250}.ansi-green-bg{background-color:#00a250}.ansi-green-intense-green,.ansi-bright-green-fg{color:#007427}.ansi-green-intense-green,.ansi-bright-green-bg{background-color:#007427}.ansi-yellow-fg{color:#ddb62b}.ansi-yellow-bg{background-color:#ddb62b}.ansi-yellow-intense-yellow,.ansi-bright-yellow-fg{color:#b27d12}.ansi-yellow-intense-yellow,.ansi-bright-yellow-bg{background-color:#b27d12}.ansi-blue-fg{color:#208ffb}.ansi-blue-bg{background-color:#208ffb}.ansi-blue-intense-blue,.ansi-bright-blue-fg{color:#0065ca}.ansi-blue-intense-blue,.ansi-bright-blue-bg{background-color:#0065ca}.ansi-magenta-fg{color:#d160c4}.ansi-magenta-bg{background-color:#d160c4}.ansi-magenta-intense-magenta,.ansi-bright-magenta-fg{color:#a03196}.ansi-magenta-intense-magenta,.ansi-bright-magenta-bg{background-color:#a03196}.ansi-cyan-fg{color:#60c6c8}.ansi-cyan-bg{background-color:#60c6c8}.ansi-cyan-intense-cyan,.ansi-bright-cyan-fg{color:#258f8f}.ansi-cyan-intense-cyan,.ansi-bright-cyan-bg{background-color:#258f8f}.ansi-white-fg{color:#c5c1b4}.ansi-white-bg{background-color:#c5c1b4}.ansi-white-intense-white,.ansi-bright-white-fg{color:#a1a6b2}.ansi-white-intense-white,.ansi-bright-white-bg{background-color:#a1a6b2}.ansi-default-inverse-fg{color:#fff}.ansi-default-inverse-bg{background-color:#000}.ansi-bold{font-weight:bold}.ansi-underline{text-decoration:underline}:root{--quarto-body-bg: #ffffff;--quarto-body-color: #212529;--quarto-text-muted: rgba(33, 37, 41, 0.75);--quarto-border-color: #dededf;--quarto-border-width: 1px;--quarto-border-radius: 0.375rem}table.gt_table{color:var(--quarto-body-color);font-size:1em;width:100%;background-color:rgba(0,0,0,0);border-top-width:inherit;border-bottom-width:inherit;border-color:var(--quarto-border-color)}table.gt_table th.gt_column_spanner_outer{color:var(--quarto-body-color);background-color:rgba(0,0,0,0);border-top-width:inherit;border-bottom-width:inherit;border-color:var(--quarto-border-color)}table.gt_table th.gt_col_heading{color:var(--quarto-body-color);font-weight:bold;background-color:rgba(0,0,0,0)}table.gt_table thead.gt_col_headings{border-bottom:1px solid currentColor;border-top-width:inherit;border-top-color:var(--quarto-border-color)}table.gt_table thead.gt_col_headings:not(:first-child){border-top-width:1px;border-top-color:var(--quarto-border-color)}table.gt_table td.gt_row{border-bottom-width:1px;border-bottom-color:var(--quarto-border-color);border-top-width:0px}table.gt_table tbody.gt_table_body{border-top-width:1px;border-bottom-width:1px;border-bottom-color:var(--quarto-border-color);border-top-color:currentColor}div.columns{display:initial;gap:initial}div.column{display:inline-block;overflow-x:initial;vertical-align:top;width:50%}.code-annotation-tip-content{word-wrap:break-word}.code-annotation-container-hidden{display:none !important}dl.code-annotation-container-grid{display:grid;grid-template-columns:min-content auto}dl.code-annotation-container-grid dt{grid-column:1}dl.code-annotation-container-grid dd{grid-column:2}pre.sourceCode.code-annotation-code{padding-right:0}code.sourceCode .code-annotation-anchor{z-index:100;position:relative;float:right;background-color:rgba(0,0,0,0)}input[type=checkbox]{margin-right:.5ch}:root{--mermaid-bg-color: #ffffff;--mermaid-edge-color: #6c757d;--mermaid-node-fg-color: #212529;--mermaid-fg-color: #212529;--mermaid-fg-color--lighter: #383f45;--mermaid-fg-color--lightest: #4e5862;--mermaid-font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica Neue, Noto Sans, Liberation Sans, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji;--mermaid-label-bg-color: #ffffff;--mermaid-label-fg-color: #0d6efd;--mermaid-node-bg-color: rgba(13, 110, 253, 0.1);--mermaid-node-fg-color: #212529}@media print{:root{font-size:11pt}#quarto-sidebar,#TOC,.nav-page{display:none}.page-columns .content{grid-column-start:page-start}.fixed-top{position:relative}.panel-caption,.figure-caption,figcaption{color:#666}}.code-copy-button{position:absolute;top:0;right:0;border:0;margin-top:5px;margin-right:5px;background-color:rgba(0,0,0,0);z-index:3}.code-copy-button-tooltip{font-size:.75em}pre.sourceCode:hover>.code-copy-button>.bi::before{display:inline-block;height:1rem;width:1rem;content:"";vertical-align:-0.125em;background-image:url('data:image/svg+xml,');background-repeat:no-repeat;background-size:1rem 1rem}pre.sourceCode:hover>.code-copy-button-checked>.bi::before{background-image:url('data:image/svg+xml,')}pre.sourceCode:hover>.code-copy-button:hover>.bi::before{background-image:url('data:image/svg+xml,')}pre.sourceCode:hover>.code-copy-button-checked:hover>.bi::before{background-image:url('data:image/svg+xml,')}main ol ol,main ul ul,main ol ul,main ul ol{margin-bottom:1em}ul>li:not(:has(>p))>ul,ol>li:not(:has(>p))>ul,ul>li:not(:has(>p))>ol,ol>li:not(:has(>p))>ol{margin-bottom:0}ul>li:not(:has(>p))>ul>li:has(>p),ol>li:not(:has(>p))>ul>li:has(>p),ul>li:not(:has(>p))>ol>li:has(>p),ol>li:not(:has(>p))>ol>li:has(>p){margin-top:1rem}body{margin:0}main.page-columns>header>h1.title,main.page-columns>header>.title.h1{margin-bottom:0}@media(min-width: 992px){body .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset] 35px [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(500px, calc( 850px - 3em )) [body-content-end] 1.5em [body-end] 35px [body-end-outset] minmax(75px, 145px) [page-end-inset] 35px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.fullcontent:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset] 35px [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(500px, calc( 850px - 3em )) [body-content-end] 1.5em [body-end] 35px [body-end-outset] 35px [page-end-inset page-end] 5fr [screen-end-inset] 1.5em}body.slimcontent:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset] 35px [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(500px, calc( 850px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 35px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.listing:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc( 850px - 3em )) [body-content-end] 3em [body-end] 50px [body-end-outset] minmax(0px, 250px) [page-end-inset] minmax(50px, 100px) [page-end] 1fr [screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 35px [page-start-inset] minmax(0px, 175px) [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(450px, calc( 800px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 35px [page-start-inset] minmax(0px, 175px) [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(450px, calc( 800px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] minmax(25px, 50px) [page-start-inset] minmax(50px, 150px) [body-start-outset] minmax(25px, 50px) [body-start] 1.5em [body-content-start] minmax(500px, calc( 800px - 3em )) [body-content-end] 1.5em [body-end] minmax(25px, 50px) [body-end-outset] minmax(50px, 150px) [page-end-inset] minmax(25px, 50px) [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc( 1000px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(50px, 100px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc( 1000px - 3em )) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 50px [page-start-inset] minmax(50px, 150px) [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc( 800px - 3em )) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.slimcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(450px, calc( 750px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.listing .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc( 1000px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.slimcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 50px [page-start-inset] minmax(50px, 150px) [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(450px, calc( 750px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(50px, 150px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.listing .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] minmax(25px, 50px) [page-start-inset] minmax(50px, 150px) [body-start-outset] minmax(25px, 50px) [body-start] 1.5em [body-content-start] minmax(500px, calc( 800px - 3em )) [body-content-end] 1.5em [body-end] minmax(25px, 50px) [body-end-outset] minmax(50px, 150px) [page-end-inset] minmax(25px, 50px) [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}}@media(max-width: 991.98px){body .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset] 5fr [body-start] 1.5em [body-content-start] minmax(500px, calc( 800px - 3em )) [body-content-end] 1.5em [body-end] 35px [body-end-outset] minmax(75px, 145px) [page-end-inset] 35px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.fullcontent:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset] 5fr [body-start] 1.5em [body-content-start] minmax(500px, calc( 800px - 3em )) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.slimcontent:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset] 5fr [body-start] 1.5em [body-content-start] minmax(500px, calc( 800px - 3em )) [body-content-end] 1.5em [body-end] 35px [body-end-outset] minmax(75px, 145px) [page-end-inset] 35px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.listing:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset] 5fr [body-start] 1.5em [body-content-start] minmax(500px, calc( 1250px - 3em )) [body-content-end body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 35px [page-start-inset] minmax(0px, 145px) [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(450px, calc( 800px - 3em )) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 35px [page-start-inset] minmax(0px, 145px) [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(450px, calc( 800px - 3em )) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset body-start-outset body-start] 1.5em [body-content-start] minmax(500px, calc( 750px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(75px, 150px) [page-end-inset] 25px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(500px, calc( 750px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(25px, 50px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(500px, calc( 1000px - 3em )) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset body-start-outset body-start] 1em [body-content-start] minmax(500px, calc( 800px - 3em )) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 4fr [screen-end-inset] 1.5em [screen-end]}body.docked.slimcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(500px, calc( 750px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(25px, 50px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.listing .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(500px, calc( 750px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(25px, 50px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.slimcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset body-start-outset body-start] 1em [body-content-start] minmax(500px, calc( 750px - 3em )) [body-content-end] 1.5em [body-end] 35px [body-end-outset] minmax(75px, 145px) [page-end-inset] 35px [page-end] 4fr [screen-end-inset] 1.5em [screen-end]}body.floating.listing .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset body-start-outset body-start] 1em [body-content-start] minmax(500px, calc( 750px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(75px, 150px) [page-end-inset] 25px [page-end] 4fr [screen-end-inset] 1.5em [screen-end]}}@media(max-width: 767.98px){body .page-columns,body.fullcontent:not(.floating):not(.docked) .page-columns,body.slimcontent:not(.floating):not(.docked) .page-columns,body.docked .page-columns,body.docked.slimcontent .page-columns,body.docked.fullcontent .page-columns,body.floating .page-columns,body.floating.slimcontent .page-columns,body.floating.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(0px, 1fr) [body-content-end body-end body-end-outset page-end-inset page-end screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(0px, 1fr) [body-content-end body-end body-end-outset page-end-inset page-end screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(0px, 1fr) [body-content-end body-end body-end-outset page-end-inset page-end screen-end-inset] 1.5em [screen-end]}nav[role=doc-toc]{display:none}}body,.page-row-navigation{grid-template-rows:[page-top] max-content [contents-top] max-content [contents-bottom] max-content [page-bottom]}.page-rows-contents{grid-template-rows:[content-top] minmax(max-content, 1fr) [content-bottom] minmax(60px, max-content) [page-bottom]}.page-full{grid-column:screen-start/screen-end !important}.page-columns>*{grid-column:body-content-start/body-content-end}.page-columns.column-page>*{grid-column:page-start/page-end}.page-columns.column-page-left .page-columns.page-full>*,.page-columns.column-page-left>*{grid-column:page-start/body-content-end}.page-columns.column-page-right .page-columns.page-full>*,.page-columns.column-page-right>*{grid-column:body-content-start/page-end}.page-rows{grid-auto-rows:auto}.header{grid-column:screen-start/screen-end;grid-row:page-top/contents-top}#quarto-content{padding:0;grid-column:screen-start/screen-end;grid-row:contents-top/contents-bottom}body.floating .sidebar.sidebar-navigation{grid-column:page-start/body-start;grid-row:content-top/page-bottom}body.docked .sidebar.sidebar-navigation{grid-column:screen-start/body-start;grid-row:content-top/page-bottom}.sidebar.toc-left{grid-column:page-start/body-start;grid-row:content-top/page-bottom}.sidebar.margin-sidebar{grid-column:body-end/page-end;grid-row:content-top/page-bottom}.page-columns .content{grid-column:body-content-start/body-content-end;grid-row:content-top/content-bottom;align-content:flex-start}.page-columns .page-navigation{grid-column:body-content-start/body-content-end;grid-row:content-bottom/page-bottom}.page-columns .footer{grid-column:screen-start/screen-end;grid-row:contents-bottom/page-bottom}.page-columns .column-body{grid-column:body-content-start/body-content-end}.page-columns .column-body-fullbleed{grid-column:body-start/body-end}.page-columns .column-body-outset{grid-column:body-start-outset/body-end-outset;z-index:998;opacity:.999}.page-columns .column-body-outset table{background:#fff}.page-columns .column-body-outset-left{grid-column:body-start-outset/body-content-end;z-index:998;opacity:.999}.page-columns .column-body-outset-left table{background:#fff}.page-columns .column-body-outset-right{grid-column:body-content-start/body-end-outset;z-index:998;opacity:.999}.page-columns .column-body-outset-right table{background:#fff}.page-columns .column-page{grid-column:page-start/page-end;z-index:998;opacity:.999}.page-columns .column-page table{background:#fff}.page-columns .column-page-inset{grid-column:page-start-inset/page-end-inset;z-index:998;opacity:.999}.page-columns .column-page-inset table{background:#fff}.page-columns .column-page-inset-left{grid-column:page-start-inset/body-content-end;z-index:998;opacity:.999}.page-columns .column-page-inset-left table{background:#fff}.page-columns .column-page-inset-right{grid-column:body-content-start/page-end-inset;z-index:998;opacity:.999}.page-columns .column-page-inset-right figcaption table{background:#fff}.page-columns .column-page-left{grid-column:page-start/body-content-end;z-index:998;opacity:.999}.page-columns .column-page-left table{background:#fff}.page-columns .column-page-right{grid-column:body-content-start/page-end;z-index:998;opacity:.999}.page-columns .column-page-right figcaption table{background:#fff}#quarto-content.page-columns #quarto-margin-sidebar,#quarto-content.page-columns #quarto-sidebar{z-index:1}@media(max-width: 991.98px){#quarto-content.page-columns #quarto-margin-sidebar.collapse,#quarto-content.page-columns #quarto-sidebar.collapse,#quarto-content.page-columns #quarto-margin-sidebar.collapsing,#quarto-content.page-columns #quarto-sidebar.collapsing{z-index:1055}}#quarto-content.page-columns main.column-page,#quarto-content.page-columns main.column-page-right,#quarto-content.page-columns main.column-page-left{z-index:0}.page-columns .column-screen-inset{grid-column:screen-start-inset/screen-end-inset;z-index:998;opacity:.999}.page-columns .column-screen-inset table{background:#fff}.page-columns .column-screen-inset-left{grid-column:screen-start-inset/body-content-end;z-index:998;opacity:.999}.page-columns .column-screen-inset-left table{background:#fff}.page-columns .column-screen-inset-right{grid-column:body-content-start/screen-end-inset;z-index:998;opacity:.999}.page-columns .column-screen-inset-right table{background:#fff}.page-columns .column-screen{grid-column:screen-start/screen-end;z-index:998;opacity:.999}.page-columns .column-screen table{background:#fff}.page-columns .column-screen-left{grid-column:screen-start/body-content-end;z-index:998;opacity:.999}.page-columns .column-screen-left table{background:#fff}.page-columns .column-screen-right{grid-column:body-content-start/screen-end;z-index:998;opacity:.999}.page-columns .column-screen-right table{background:#fff}.page-columns .column-screen-inset-shaded{grid-column:screen-start/screen-end;padding:1em;background:#f8f9fa;z-index:998;opacity:.999;margin-bottom:1em}.zindex-content{z-index:998;opacity:.999}.zindex-modal{z-index:1055;opacity:.999}.zindex-over-content{z-index:999;opacity:.999}img.img-fluid.column-screen,img.img-fluid.column-screen-inset-shaded,img.img-fluid.column-screen-inset,img.img-fluid.column-screen-inset-left,img.img-fluid.column-screen-inset-right,img.img-fluid.column-screen-left,img.img-fluid.column-screen-right{width:100%}@media(min-width: 992px){.margin-caption,div.aside,aside:not(.footnotes):not(.sidebar),.column-margin{grid-column:body-end/page-end !important;z-index:998}.column-sidebar{grid-column:page-start/body-start !important;z-index:998}.column-leftmargin{grid-column:screen-start-inset/body-start !important;z-index:998}.no-row-height{height:1em;overflow:visible}}@media(max-width: 991.98px){.margin-caption,div.aside,aside:not(.footnotes):not(.sidebar),.column-margin{grid-column:body-end/page-end !important;z-index:998}.no-row-height{height:1em;overflow:visible}.page-columns.page-full{overflow:visible}.page-columns.toc-left .margin-caption,.page-columns.toc-left div.aside,.page-columns.toc-left aside:not(.footnotes):not(.sidebar),.page-columns.toc-left .column-margin{grid-column:body-content-start/body-content-end !important;z-index:998;opacity:.999}.page-columns.toc-left .no-row-height{height:initial;overflow:initial}}@media(max-width: 767.98px){.margin-caption,div.aside,aside:not(.footnotes):not(.sidebar),.column-margin{grid-column:body-content-start/body-content-end !important;z-index:998;opacity:.999}.no-row-height{height:initial;overflow:initial}#quarto-margin-sidebar{display:none}#quarto-sidebar-toc-left{display:none}.hidden-sm{display:none}}.panel-grid{display:grid;grid-template-rows:repeat(1, 1fr);grid-template-columns:repeat(24, 1fr);gap:1em}.panel-grid .g-col-1{grid-column:auto/span 1}.panel-grid .g-col-2{grid-column:auto/span 2}.panel-grid .g-col-3{grid-column:auto/span 3}.panel-grid .g-col-4{grid-column:auto/span 4}.panel-grid .g-col-5{grid-column:auto/span 5}.panel-grid .g-col-6{grid-column:auto/span 6}.panel-grid .g-col-7{grid-column:auto/span 7}.panel-grid .g-col-8{grid-column:auto/span 8}.panel-grid .g-col-9{grid-column:auto/span 9}.panel-grid .g-col-10{grid-column:auto/span 10}.panel-grid .g-col-11{grid-column:auto/span 11}.panel-grid .g-col-12{grid-column:auto/span 12}.panel-grid .g-col-13{grid-column:auto/span 13}.panel-grid .g-col-14{grid-column:auto/span 14}.panel-grid .g-col-15{grid-column:auto/span 15}.panel-grid .g-col-16{grid-column:auto/span 16}.panel-grid .g-col-17{grid-column:auto/span 17}.panel-grid .g-col-18{grid-column:auto/span 18}.panel-grid .g-col-19{grid-column:auto/span 19}.panel-grid .g-col-20{grid-column:auto/span 20}.panel-grid .g-col-21{grid-column:auto/span 21}.panel-grid .g-col-22{grid-column:auto/span 22}.panel-grid .g-col-23{grid-column:auto/span 23}.panel-grid .g-col-24{grid-column:auto/span 24}.panel-grid .g-start-1{grid-column-start:1}.panel-grid .g-start-2{grid-column-start:2}.panel-grid .g-start-3{grid-column-start:3}.panel-grid .g-start-4{grid-column-start:4}.panel-grid .g-start-5{grid-column-start:5}.panel-grid .g-start-6{grid-column-start:6}.panel-grid .g-start-7{grid-column-start:7}.panel-grid .g-start-8{grid-column-start:8}.panel-grid .g-start-9{grid-column-start:9}.panel-grid .g-start-10{grid-column-start:10}.panel-grid .g-start-11{grid-column-start:11}.panel-grid .g-start-12{grid-column-start:12}.panel-grid .g-start-13{grid-column-start:13}.panel-grid .g-start-14{grid-column-start:14}.panel-grid .g-start-15{grid-column-start:15}.panel-grid .g-start-16{grid-column-start:16}.panel-grid .g-start-17{grid-column-start:17}.panel-grid .g-start-18{grid-column-start:18}.panel-grid .g-start-19{grid-column-start:19}.panel-grid .g-start-20{grid-column-start:20}.panel-grid .g-start-21{grid-column-start:21}.panel-grid .g-start-22{grid-column-start:22}.panel-grid .g-start-23{grid-column-start:23}@media(min-width: 576px){.panel-grid .g-col-sm-1{grid-column:auto/span 1}.panel-grid .g-col-sm-2{grid-column:auto/span 2}.panel-grid .g-col-sm-3{grid-column:auto/span 3}.panel-grid .g-col-sm-4{grid-column:auto/span 4}.panel-grid .g-col-sm-5{grid-column:auto/span 5}.panel-grid .g-col-sm-6{grid-column:auto/span 6}.panel-grid .g-col-sm-7{grid-column:auto/span 7}.panel-grid .g-col-sm-8{grid-column:auto/span 8}.panel-grid .g-col-sm-9{grid-column:auto/span 9}.panel-grid .g-col-sm-10{grid-column:auto/span 10}.panel-grid .g-col-sm-11{grid-column:auto/span 11}.panel-grid .g-col-sm-12{grid-column:auto/span 12}.panel-grid .g-col-sm-13{grid-column:auto/span 13}.panel-grid .g-col-sm-14{grid-column:auto/span 14}.panel-grid .g-col-sm-15{grid-column:auto/span 15}.panel-grid .g-col-sm-16{grid-column:auto/span 16}.panel-grid .g-col-sm-17{grid-column:auto/span 17}.panel-grid .g-col-sm-18{grid-column:auto/span 18}.panel-grid .g-col-sm-19{grid-column:auto/span 19}.panel-grid .g-col-sm-20{grid-column:auto/span 20}.panel-grid .g-col-sm-21{grid-column:auto/span 21}.panel-grid .g-col-sm-22{grid-column:auto/span 22}.panel-grid .g-col-sm-23{grid-column:auto/span 23}.panel-grid .g-col-sm-24{grid-column:auto/span 24}.panel-grid .g-start-sm-1{grid-column-start:1}.panel-grid .g-start-sm-2{grid-column-start:2}.panel-grid .g-start-sm-3{grid-column-start:3}.panel-grid .g-start-sm-4{grid-column-start:4}.panel-grid .g-start-sm-5{grid-column-start:5}.panel-grid .g-start-sm-6{grid-column-start:6}.panel-grid .g-start-sm-7{grid-column-start:7}.panel-grid .g-start-sm-8{grid-column-start:8}.panel-grid .g-start-sm-9{grid-column-start:9}.panel-grid .g-start-sm-10{grid-column-start:10}.panel-grid .g-start-sm-11{grid-column-start:11}.panel-grid .g-start-sm-12{grid-column-start:12}.panel-grid .g-start-sm-13{grid-column-start:13}.panel-grid .g-start-sm-14{grid-column-start:14}.panel-grid .g-start-sm-15{grid-column-start:15}.panel-grid .g-start-sm-16{grid-column-start:16}.panel-grid .g-start-sm-17{grid-column-start:17}.panel-grid .g-start-sm-18{grid-column-start:18}.panel-grid .g-start-sm-19{grid-column-start:19}.panel-grid .g-start-sm-20{grid-column-start:20}.panel-grid .g-start-sm-21{grid-column-start:21}.panel-grid .g-start-sm-22{grid-column-start:22}.panel-grid .g-start-sm-23{grid-column-start:23}}@media(min-width: 768px){.panel-grid .g-col-md-1{grid-column:auto/span 1}.panel-grid .g-col-md-2{grid-column:auto/span 2}.panel-grid .g-col-md-3{grid-column:auto/span 3}.panel-grid .g-col-md-4{grid-column:auto/span 4}.panel-grid .g-col-md-5{grid-column:auto/span 5}.panel-grid .g-col-md-6{grid-column:auto/span 6}.panel-grid .g-col-md-7{grid-column:auto/span 7}.panel-grid .g-col-md-8{grid-column:auto/span 8}.panel-grid .g-col-md-9{grid-column:auto/span 9}.panel-grid .g-col-md-10{grid-column:auto/span 10}.panel-grid .g-col-md-11{grid-column:auto/span 11}.panel-grid .g-col-md-12{grid-column:auto/span 12}.panel-grid .g-col-md-13{grid-column:auto/span 13}.panel-grid .g-col-md-14{grid-column:auto/span 14}.panel-grid .g-col-md-15{grid-column:auto/span 15}.panel-grid .g-col-md-16{grid-column:auto/span 16}.panel-grid .g-col-md-17{grid-column:auto/span 17}.panel-grid .g-col-md-18{grid-column:auto/span 18}.panel-grid .g-col-md-19{grid-column:auto/span 19}.panel-grid .g-col-md-20{grid-column:auto/span 20}.panel-grid .g-col-md-21{grid-column:auto/span 21}.panel-grid .g-col-md-22{grid-column:auto/span 22}.panel-grid .g-col-md-23{grid-column:auto/span 23}.panel-grid .g-col-md-24{grid-column:auto/span 24}.panel-grid .g-start-md-1{grid-column-start:1}.panel-grid .g-start-md-2{grid-column-start:2}.panel-grid .g-start-md-3{grid-column-start:3}.panel-grid .g-start-md-4{grid-column-start:4}.panel-grid .g-start-md-5{grid-column-start:5}.panel-grid .g-start-md-6{grid-column-start:6}.panel-grid .g-start-md-7{grid-column-start:7}.panel-grid .g-start-md-8{grid-column-start:8}.panel-grid .g-start-md-9{grid-column-start:9}.panel-grid .g-start-md-10{grid-column-start:10}.panel-grid .g-start-md-11{grid-column-start:11}.panel-grid .g-start-md-12{grid-column-start:12}.panel-grid .g-start-md-13{grid-column-start:13}.panel-grid .g-start-md-14{grid-column-start:14}.panel-grid .g-start-md-15{grid-column-start:15}.panel-grid .g-start-md-16{grid-column-start:16}.panel-grid .g-start-md-17{grid-column-start:17}.panel-grid .g-start-md-18{grid-column-start:18}.panel-grid .g-start-md-19{grid-column-start:19}.panel-grid .g-start-md-20{grid-column-start:20}.panel-grid .g-start-md-21{grid-column-start:21}.panel-grid .g-start-md-22{grid-column-start:22}.panel-grid .g-start-md-23{grid-column-start:23}}@media(min-width: 992px){.panel-grid .g-col-lg-1{grid-column:auto/span 1}.panel-grid .g-col-lg-2{grid-column:auto/span 2}.panel-grid .g-col-lg-3{grid-column:auto/span 3}.panel-grid .g-col-lg-4{grid-column:auto/span 4}.panel-grid .g-col-lg-5{grid-column:auto/span 5}.panel-grid .g-col-lg-6{grid-column:auto/span 6}.panel-grid .g-col-lg-7{grid-column:auto/span 7}.panel-grid .g-col-lg-8{grid-column:auto/span 8}.panel-grid .g-col-lg-9{grid-column:auto/span 9}.panel-grid .g-col-lg-10{grid-column:auto/span 10}.panel-grid .g-col-lg-11{grid-column:auto/span 11}.panel-grid .g-col-lg-12{grid-column:auto/span 12}.panel-grid .g-col-lg-13{grid-column:auto/span 13}.panel-grid .g-col-lg-14{grid-column:auto/span 14}.panel-grid .g-col-lg-15{grid-column:auto/span 15}.panel-grid .g-col-lg-16{grid-column:auto/span 16}.panel-grid .g-col-lg-17{grid-column:auto/span 17}.panel-grid .g-col-lg-18{grid-column:auto/span 18}.panel-grid .g-col-lg-19{grid-column:auto/span 19}.panel-grid .g-col-lg-20{grid-column:auto/span 20}.panel-grid .g-col-lg-21{grid-column:auto/span 21}.panel-grid .g-col-lg-22{grid-column:auto/span 22}.panel-grid .g-col-lg-23{grid-column:auto/span 23}.panel-grid .g-col-lg-24{grid-column:auto/span 24}.panel-grid .g-start-lg-1{grid-column-start:1}.panel-grid .g-start-lg-2{grid-column-start:2}.panel-grid .g-start-lg-3{grid-column-start:3}.panel-grid .g-start-lg-4{grid-column-start:4}.panel-grid .g-start-lg-5{grid-column-start:5}.panel-grid .g-start-lg-6{grid-column-start:6}.panel-grid .g-start-lg-7{grid-column-start:7}.panel-grid .g-start-lg-8{grid-column-start:8}.panel-grid .g-start-lg-9{grid-column-start:9}.panel-grid .g-start-lg-10{grid-column-start:10}.panel-grid .g-start-lg-11{grid-column-start:11}.panel-grid .g-start-lg-12{grid-column-start:12}.panel-grid .g-start-lg-13{grid-column-start:13}.panel-grid .g-start-lg-14{grid-column-start:14}.panel-grid .g-start-lg-15{grid-column-start:15}.panel-grid .g-start-lg-16{grid-column-start:16}.panel-grid .g-start-lg-17{grid-column-start:17}.panel-grid .g-start-lg-18{grid-column-start:18}.panel-grid .g-start-lg-19{grid-column-start:19}.panel-grid .g-start-lg-20{grid-column-start:20}.panel-grid .g-start-lg-21{grid-column-start:21}.panel-grid .g-start-lg-22{grid-column-start:22}.panel-grid .g-start-lg-23{grid-column-start:23}}@media(min-width: 1200px){.panel-grid .g-col-xl-1{grid-column:auto/span 1}.panel-grid .g-col-xl-2{grid-column:auto/span 2}.panel-grid .g-col-xl-3{grid-column:auto/span 3}.panel-grid .g-col-xl-4{grid-column:auto/span 4}.panel-grid .g-col-xl-5{grid-column:auto/span 5}.panel-grid .g-col-xl-6{grid-column:auto/span 6}.panel-grid .g-col-xl-7{grid-column:auto/span 7}.panel-grid .g-col-xl-8{grid-column:auto/span 8}.panel-grid .g-col-xl-9{grid-column:auto/span 9}.panel-grid .g-col-xl-10{grid-column:auto/span 10}.panel-grid .g-col-xl-11{grid-column:auto/span 11}.panel-grid .g-col-xl-12{grid-column:auto/span 12}.panel-grid .g-col-xl-13{grid-column:auto/span 13}.panel-grid .g-col-xl-14{grid-column:auto/span 14}.panel-grid .g-col-xl-15{grid-column:auto/span 15}.panel-grid .g-col-xl-16{grid-column:auto/span 16}.panel-grid .g-col-xl-17{grid-column:auto/span 17}.panel-grid .g-col-xl-18{grid-column:auto/span 18}.panel-grid .g-col-xl-19{grid-column:auto/span 19}.panel-grid .g-col-xl-20{grid-column:auto/span 20}.panel-grid .g-col-xl-21{grid-column:auto/span 21}.panel-grid .g-col-xl-22{grid-column:auto/span 22}.panel-grid .g-col-xl-23{grid-column:auto/span 23}.panel-grid .g-col-xl-24{grid-column:auto/span 24}.panel-grid .g-start-xl-1{grid-column-start:1}.panel-grid .g-start-xl-2{grid-column-start:2}.panel-grid .g-start-xl-3{grid-column-start:3}.panel-grid .g-start-xl-4{grid-column-start:4}.panel-grid .g-start-xl-5{grid-column-start:5}.panel-grid .g-start-xl-6{grid-column-start:6}.panel-grid .g-start-xl-7{grid-column-start:7}.panel-grid .g-start-xl-8{grid-column-start:8}.panel-grid .g-start-xl-9{grid-column-start:9}.panel-grid .g-start-xl-10{grid-column-start:10}.panel-grid .g-start-xl-11{grid-column-start:11}.panel-grid .g-start-xl-12{grid-column-start:12}.panel-grid .g-start-xl-13{grid-column-start:13}.panel-grid .g-start-xl-14{grid-column-start:14}.panel-grid .g-start-xl-15{grid-column-start:15}.panel-grid .g-start-xl-16{grid-column-start:16}.panel-grid .g-start-xl-17{grid-column-start:17}.panel-grid .g-start-xl-18{grid-column-start:18}.panel-grid .g-start-xl-19{grid-column-start:19}.panel-grid .g-start-xl-20{grid-column-start:20}.panel-grid .g-start-xl-21{grid-column-start:21}.panel-grid .g-start-xl-22{grid-column-start:22}.panel-grid .g-start-xl-23{grid-column-start:23}}@media(min-width: 1400px){.panel-grid .g-col-xxl-1{grid-column:auto/span 1}.panel-grid .g-col-xxl-2{grid-column:auto/span 2}.panel-grid .g-col-xxl-3{grid-column:auto/span 3}.panel-grid .g-col-xxl-4{grid-column:auto/span 4}.panel-grid .g-col-xxl-5{grid-column:auto/span 5}.panel-grid .g-col-xxl-6{grid-column:auto/span 6}.panel-grid .g-col-xxl-7{grid-column:auto/span 7}.panel-grid .g-col-xxl-8{grid-column:auto/span 8}.panel-grid .g-col-xxl-9{grid-column:auto/span 9}.panel-grid .g-col-xxl-10{grid-column:auto/span 10}.panel-grid .g-col-xxl-11{grid-column:auto/span 11}.panel-grid .g-col-xxl-12{grid-column:auto/span 12}.panel-grid .g-col-xxl-13{grid-column:auto/span 13}.panel-grid .g-col-xxl-14{grid-column:auto/span 14}.panel-grid .g-col-xxl-15{grid-column:auto/span 15}.panel-grid .g-col-xxl-16{grid-column:auto/span 16}.panel-grid .g-col-xxl-17{grid-column:auto/span 17}.panel-grid .g-col-xxl-18{grid-column:auto/span 18}.panel-grid .g-col-xxl-19{grid-column:auto/span 19}.panel-grid .g-col-xxl-20{grid-column:auto/span 20}.panel-grid .g-col-xxl-21{grid-column:auto/span 21}.panel-grid .g-col-xxl-22{grid-column:auto/span 22}.panel-grid .g-col-xxl-23{grid-column:auto/span 23}.panel-grid .g-col-xxl-24{grid-column:auto/span 24}.panel-grid .g-start-xxl-1{grid-column-start:1}.panel-grid .g-start-xxl-2{grid-column-start:2}.panel-grid .g-start-xxl-3{grid-column-start:3}.panel-grid .g-start-xxl-4{grid-column-start:4}.panel-grid .g-start-xxl-5{grid-column-start:5}.panel-grid .g-start-xxl-6{grid-column-start:6}.panel-grid .g-start-xxl-7{grid-column-start:7}.panel-grid .g-start-xxl-8{grid-column-start:8}.panel-grid .g-start-xxl-9{grid-column-start:9}.panel-grid .g-start-xxl-10{grid-column-start:10}.panel-grid .g-start-xxl-11{grid-column-start:11}.panel-grid .g-start-xxl-12{grid-column-start:12}.panel-grid .g-start-xxl-13{grid-column-start:13}.panel-grid .g-start-xxl-14{grid-column-start:14}.panel-grid .g-start-xxl-15{grid-column-start:15}.panel-grid .g-start-xxl-16{grid-column-start:16}.panel-grid .g-start-xxl-17{grid-column-start:17}.panel-grid .g-start-xxl-18{grid-column-start:18}.panel-grid .g-start-xxl-19{grid-column-start:19}.panel-grid .g-start-xxl-20{grid-column-start:20}.panel-grid .g-start-xxl-21{grid-column-start:21}.panel-grid .g-start-xxl-22{grid-column-start:22}.panel-grid .g-start-xxl-23{grid-column-start:23}}main{margin-top:1em;margin-bottom:1em}h1,.h1,h2,.h2{color:inherit;margin-top:2rem;margin-bottom:1rem;font-weight:600}h1.title,.title.h1{margin-top:0}main.content>section:first-of-type>h2:first-child,main.content>section:first-of-type>.h2:first-child{margin-top:0}h2,.h2{border-bottom:1px solid #dededf;padding-bottom:.5rem}h3,.h3{font-weight:600}h3,.h3,h4,.h4{opacity:.9;margin-top:1.5rem}h5,.h5,h6,.h6{opacity:.9}.header-section-number{color:#5a6570}.nav-link.active .header-section-number{color:inherit}mark,.mark{padding:0em}.panel-caption,.figure-caption,.subfigure-caption,.table-caption,figcaption,caption{font-size:.9rem;color:#5a6570}.quarto-layout-cell[data-ref-parent] caption{color:#5a6570}.column-margin figcaption,.margin-caption,div.aside,aside,.column-margin{color:#5a6570;font-size:.825rem}.panel-caption.margin-caption{text-align:inherit}.column-margin.column-container p{margin-bottom:0}.column-margin.column-container>*:not(.collapse):first-child{padding-bottom:.5em;display:block}.column-margin.column-container>*:not(.collapse):not(:first-child){padding-top:.5em;padding-bottom:.5em;display:block}.column-margin.column-container>*.collapse:not(.show){display:none}@media(min-width: 768px){.column-margin.column-container .callout-margin-content:first-child{margin-top:4.5em}.column-margin.column-container .callout-margin-content-simple:first-child{margin-top:3.5em}}.margin-caption>*{padding-top:.5em;padding-bottom:.5em}@media(max-width: 767.98px){.quarto-layout-row{flex-direction:column}}.nav-tabs .nav-item{margin-top:1px;cursor:pointer}.tab-content{margin-top:0px;border-left:#dededf 1px solid;border-right:#dededf 1px solid;border-bottom:#dededf 1px solid;margin-left:0;padding:1em;margin-bottom:1em}@media(max-width: 767.98px){.layout-sidebar{margin-left:0;margin-right:0}}.panel-sidebar,.panel-sidebar .form-control,.panel-input,.panel-input .form-control,.selectize-dropdown{font-size:.9rem}.panel-sidebar .form-control,.panel-input .form-control{padding-top:.1rem}.tab-pane div.sourceCode{margin-top:0px}.tab-pane>p{padding-top:0}.tab-pane>p:nth-child(1){padding-top:0}.tab-pane>p:last-child{margin-bottom:0}.tab-pane>pre:last-child{margin-bottom:0}.tab-content>.tab-pane:not(.active){display:none !important}div.sourceCode{background-color:rgba(233,236,239,.65);border:1px solid rgba(233,236,239,.65);border-radius:.375rem}pre.sourceCode{background-color:rgba(0,0,0,0)}pre.sourceCode{border:none;font-size:.875em;overflow:visible !important;padding:.4em}div.sourceCode{overflow-y:hidden}.callout div.sourceCode{margin-left:initial}.blockquote{font-size:inherit;padding-left:1rem;padding-right:1.5rem;color:#5a6570}.blockquote h1:first-child,.blockquote .h1:first-child,.blockquote h2:first-child,.blockquote .h2:first-child,.blockquote h3:first-child,.blockquote .h3:first-child,.blockquote h4:first-child,.blockquote .h4:first-child,.blockquote h5:first-child,.blockquote .h5:first-child{margin-top:0}pre{background-color:initial;padding:initial;border:initial}p pre code:not(.sourceCode),li pre code:not(.sourceCode),pre code:not(.sourceCode){background-color:initial}p code:not(.sourceCode),li code:not(.sourceCode),td code:not(.sourceCode){background-color:#f8f9fa;padding:.2em}nav p code:not(.sourceCode),nav li code:not(.sourceCode),nav td code:not(.sourceCode){background-color:rgba(0,0,0,0);padding:0}td code:not(.sourceCode){white-space:pre-wrap}#quarto-embedded-source-code-modal>.modal-dialog{max-width:1000px;padding-left:1.75rem;padding-right:1.75rem}#quarto-embedded-source-code-modal>.modal-dialog>.modal-content>.modal-body{padding:0}#quarto-embedded-source-code-modal>.modal-dialog>.modal-content>.modal-body div.sourceCode{margin:0;padding:.2rem .2rem;border-radius:0px;border:none}#quarto-embedded-source-code-modal>.modal-dialog>.modal-content>.modal-header{padding:.7rem}.code-tools-button{font-size:1rem;padding:.15rem .15rem;margin-left:5px;color:rgba(33,37,41,.75);background-color:rgba(0,0,0,0);transition:initial;cursor:pointer}.code-tools-button>.bi::before{display:inline-block;height:1rem;width:1rem;content:"";vertical-align:-0.125em;background-image:url('data:image/svg+xml,');background-repeat:no-repeat;background-size:1rem 1rem}.code-tools-button:hover>.bi::before{background-image:url('data:image/svg+xml,')}#quarto-embedded-source-code-modal .code-copy-button>.bi::before{background-image:url('data:image/svg+xml,')}#quarto-embedded-source-code-modal .code-copy-button-checked>.bi::before{background-image:url('data:image/svg+xml,')}.sidebar{will-change:top;transition:top 200ms linear;position:sticky;overflow-y:auto;padding-top:1.2em;max-height:100vh}.sidebar.toc-left,.sidebar.margin-sidebar{top:0px;padding-top:1em}.sidebar.quarto-banner-title-block-sidebar>*{padding-top:1.65em}figure .quarto-notebook-link{margin-top:.5em}.quarto-notebook-link{font-size:.75em;color:rgba(33,37,41,.75);margin-bottom:1em;text-decoration:none;display:block}.quarto-notebook-link:hover{text-decoration:underline;color:#0d6efd}.quarto-notebook-link::before{display:inline-block;height:.75rem;width:.75rem;margin-bottom:0em;margin-right:.25em;content:"";vertical-align:-0.125em;background-image:url('data:image/svg+xml,');background-repeat:no-repeat;background-size:.75rem .75rem}.toc-actions i.bi,.quarto-code-links i.bi,.quarto-other-links i.bi,.quarto-alternate-notebooks i.bi,.quarto-alternate-formats i.bi{margin-right:.4em;font-size:.8rem}.quarto-other-links-text-target .quarto-code-links i.bi,.quarto-other-links-text-target .quarto-other-links i.bi{margin-right:.2em}.quarto-other-formats-text-target .quarto-alternate-formats i.bi{margin-right:.1em}.toc-actions i.bi.empty,.quarto-code-links i.bi.empty,.quarto-other-links i.bi.empty,.quarto-alternate-notebooks i.bi.empty,.quarto-alternate-formats i.bi.empty{padding-left:1em}.quarto-notebook h2,.quarto-notebook .h2{border-bottom:none}.quarto-notebook .cell-container{display:flex}.quarto-notebook .cell-container .cell{flex-grow:4}.quarto-notebook .cell-container .cell-decorator{padding-top:1.5em;padding-right:1em;text-align:right}.quarto-notebook .cell-container.code-fold .cell-decorator{padding-top:3em}.quarto-notebook .cell-code code{white-space:pre-wrap}.quarto-notebook .cell .cell-output-stderr pre code,.quarto-notebook .cell .cell-output-stdout pre code{white-space:pre-wrap;overflow-wrap:anywhere}.toc-actions,.quarto-alternate-formats,.quarto-other-links,.quarto-code-links,.quarto-alternate-notebooks{padding-left:0em}.sidebar .toc-actions a,.sidebar .quarto-alternate-formats a,.sidebar .quarto-other-links a,.sidebar .quarto-code-links a,.sidebar .quarto-alternate-notebooks a,.sidebar nav[role=doc-toc] a{text-decoration:none}.sidebar .toc-actions a:hover,.sidebar .quarto-other-links a:hover,.sidebar .quarto-code-links a:hover,.sidebar .quarto-alternate-formats a:hover,.sidebar .quarto-alternate-notebooks a:hover{color:#0d6efd}.sidebar .toc-actions h2,.sidebar .toc-actions .h2,.sidebar .quarto-code-links h2,.sidebar .quarto-code-links .h2,.sidebar .quarto-other-links h2,.sidebar .quarto-other-links .h2,.sidebar .quarto-alternate-notebooks h2,.sidebar .quarto-alternate-notebooks .h2,.sidebar .quarto-alternate-formats h2,.sidebar .quarto-alternate-formats .h2,.sidebar nav[role=doc-toc]>h2,.sidebar nav[role=doc-toc]>.h2{font-weight:500;margin-bottom:.2rem;margin-top:.3rem;font-family:inherit;border-bottom:0;padding-bottom:0;padding-top:0px}.sidebar .toc-actions>h2,.sidebar .toc-actions>.h2,.sidebar .quarto-code-links>h2,.sidebar .quarto-code-links>.h2,.sidebar .quarto-other-links>h2,.sidebar .quarto-other-links>.h2,.sidebar .quarto-alternate-notebooks>h2,.sidebar .quarto-alternate-notebooks>.h2,.sidebar .quarto-alternate-formats>h2,.sidebar .quarto-alternate-formats>.h2{font-size:.8rem}.sidebar nav[role=doc-toc]>h2,.sidebar nav[role=doc-toc]>.h2{font-size:.875rem}.sidebar nav[role=doc-toc]>ul a{border-left:1px solid #e9ecef;padding-left:.6rem}.sidebar .toc-actions h2>ul a,.sidebar .toc-actions .h2>ul a,.sidebar .quarto-code-links h2>ul a,.sidebar .quarto-code-links .h2>ul a,.sidebar .quarto-other-links h2>ul a,.sidebar .quarto-other-links .h2>ul a,.sidebar .quarto-alternate-notebooks h2>ul a,.sidebar .quarto-alternate-notebooks .h2>ul a,.sidebar .quarto-alternate-formats h2>ul a,.sidebar .quarto-alternate-formats .h2>ul a{border-left:none;padding-left:.6rem}.sidebar .toc-actions ul a:empty,.sidebar .quarto-code-links ul a:empty,.sidebar .quarto-other-links ul a:empty,.sidebar .quarto-alternate-notebooks ul a:empty,.sidebar .quarto-alternate-formats ul a:empty,.sidebar nav[role=doc-toc]>ul a:empty{display:none}.sidebar .toc-actions ul,.sidebar .quarto-code-links ul,.sidebar .quarto-other-links ul,.sidebar .quarto-alternate-notebooks ul,.sidebar .quarto-alternate-formats ul{padding-left:0;list-style:none}.sidebar nav[role=doc-toc] ul{list-style:none;padding-left:0;list-style:none}.sidebar nav[role=doc-toc]>ul{margin-left:.45em}.quarto-margin-sidebar nav[role=doc-toc]{padding-left:.5em}.sidebar .toc-actions>ul,.sidebar .quarto-code-links>ul,.sidebar .quarto-other-links>ul,.sidebar .quarto-alternate-notebooks>ul,.sidebar .quarto-alternate-formats>ul{font-size:.8rem}.sidebar nav[role=doc-toc]>ul{font-size:.875rem}.sidebar .toc-actions ul li a,.sidebar .quarto-code-links ul li a,.sidebar .quarto-other-links ul li a,.sidebar .quarto-alternate-notebooks ul li a,.sidebar .quarto-alternate-formats ul li a,.sidebar nav[role=doc-toc]>ul li a{line-height:1.1rem;padding-bottom:.2rem;padding-top:.2rem;color:inherit}.sidebar nav[role=doc-toc] ul>li>ul>li>a{padding-left:1.2em}.sidebar nav[role=doc-toc] ul>li>ul>li>ul>li>a{padding-left:2.4em}.sidebar nav[role=doc-toc] ul>li>ul>li>ul>li>ul>li>a{padding-left:3.6em}.sidebar nav[role=doc-toc] ul>li>ul>li>ul>li>ul>li>ul>li>a{padding-left:4.8em}.sidebar nav[role=doc-toc] ul>li>ul>li>ul>li>ul>li>ul>li>ul>li>a{padding-left:6em}.sidebar nav[role=doc-toc] ul>li>a.active,.sidebar nav[role=doc-toc] ul>li>ul>li>a.active{border-left:1px solid #0d6efd;color:#0d6efd !important}.sidebar nav[role=doc-toc] ul>li>a:hover,.sidebar nav[role=doc-toc] ul>li>ul>li>a:hover{color:#0d6efd !important}kbd,.kbd{color:#212529;background-color:#f8f9fa;border:1px solid;border-radius:5px;border-color:#dededf}.quarto-appendix-contents div.hanging-indent{margin-left:0em}.quarto-appendix-contents div.hanging-indent div.csl-entry{margin-left:1em;text-indent:-1em}.citation a,.footnote-ref{text-decoration:none}.footnotes ol{padding-left:1em}.tippy-content>*{margin-bottom:.7em}.tippy-content>*:last-child{margin-bottom:0}.callout{margin-top:1.25rem;margin-bottom:1.25rem;border-radius:.375rem;overflow-wrap:break-word}.callout .callout-title-container{overflow-wrap:anywhere}.callout.callout-style-simple{padding:.4em .7em;border-left:5px solid;border-right:1px solid #dededf;border-top:1px solid #dededf;border-bottom:1px solid #dededf}.callout.callout-style-default{border-left:5px solid;border-right:1px solid #dededf;border-top:1px solid #dededf;border-bottom:1px solid #dededf}.callout .callout-body-container{flex-grow:1}.callout.callout-style-simple .callout-body{font-size:.9rem;font-weight:400}.callout.callout-style-default .callout-body{font-size:.9rem;font-weight:400}.callout:not(.no-icon).callout-titled.callout-style-simple .callout-body{padding-left:1.6em}.callout.callout-titled>.callout-header{padding-top:.2em;margin-bottom:-0.2em}.callout.callout-style-simple>div.callout-header{border-bottom:none;font-size:.9rem;font-weight:600;opacity:75%}.callout.callout-style-default>div.callout-header{border-bottom:none;font-weight:600;opacity:85%;font-size:.9rem;padding-left:.5em;padding-right:.5em}.callout.callout-style-default .callout-body{padding-left:.5em;padding-right:.5em}.callout.callout-style-default .callout-body>:first-child{padding-top:.5rem;margin-top:0}.callout>div.callout-header[data-bs-toggle=collapse]{cursor:pointer}.callout.callout-style-default .callout-header[aria-expanded=false],.callout.callout-style-default .callout-header[aria-expanded=true]{padding-top:0px;margin-bottom:0px;align-items:center}.callout.callout-titled .callout-body>:last-child:not(.sourceCode),.callout.callout-titled .callout-body>div>:last-child:not(.sourceCode){padding-bottom:.5rem;margin-bottom:0}.callout:not(.callout-titled) .callout-body>:first-child,.callout:not(.callout-titled) .callout-body>div>:first-child{margin-top:.25rem}.callout:not(.callout-titled) .callout-body>:last-child,.callout:not(.callout-titled) .callout-body>div>:last-child{margin-bottom:.2rem}.callout.callout-style-simple .callout-icon::before,.callout.callout-style-simple .callout-toggle::before{height:1rem;width:1rem;display:inline-block;content:"";background-repeat:no-repeat;background-size:1rem 1rem}.callout.callout-style-default .callout-icon::before,.callout.callout-style-default .callout-toggle::before{height:.9rem;width:.9rem;display:inline-block;content:"";background-repeat:no-repeat;background-size:.9rem .9rem}.callout.callout-style-default .callout-toggle::before{margin-top:5px}.callout .callout-btn-toggle .callout-toggle::before{transition:transform .2s linear}.callout .callout-header[aria-expanded=false] .callout-toggle::before{transform:rotate(-90deg)}.callout .callout-header[aria-expanded=true] .callout-toggle::before{transform:none}.callout.callout-style-simple:not(.no-icon) div.callout-icon-container{padding-top:.2em;padding-right:.55em}.callout.callout-style-default:not(.no-icon) div.callout-icon-container{padding-top:.1em;padding-right:.35em}.callout.callout-style-default:not(.no-icon) div.callout-title-container{margin-top:-1px}.callout.callout-style-default.callout-caution:not(.no-icon) div.callout-icon-container{padding-top:.3em;padding-right:.35em}.callout>.callout-body>.callout-icon-container>.no-icon,.callout>.callout-header>.callout-icon-container>.no-icon{display:none}div.callout.callout{border-left-color:rgba(33,37,41,.75)}div.callout.callout-style-default>.callout-header{background-color:rgba(33,37,41,.75)}div.callout-note.callout{border-left-color:#0d6efd}div.callout-note.callout-style-default>.callout-header{background-color:#e7f1ff}div.callout-note:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-note.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-note .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-tip.callout{border-left-color:#198754}div.callout-tip.callout-style-default>.callout-header{background-color:#e8f3ee}div.callout-tip:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-tip.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-tip .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-warning.callout{border-left-color:#ffc107}div.callout-warning.callout-style-default>.callout-header{background-color:#fff9e6}div.callout-warning:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-warning.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-warning .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-caution.callout{border-left-color:#fd7e14}div.callout-caution.callout-style-default>.callout-header{background-color:#fff2e8}div.callout-caution:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-caution.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-caution .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-important.callout{border-left-color:#dc3545}div.callout-important.callout-style-default>.callout-header{background-color:#fcebec}div.callout-important:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-important.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-important .callout-toggle::before{background-image:url('data:image/svg+xml,')}.quarto-toggle-container{display:flex;align-items:center}.quarto-reader-toggle .bi::before,.quarto-color-scheme-toggle .bi::before{display:inline-block;height:1rem;width:1rem;content:"";background-repeat:no-repeat;background-size:1rem 1rem}.sidebar-navigation{padding-left:20px}.navbar{background-color:#517699;color:#fdfefe}.navbar .quarto-color-scheme-toggle:not(.alternate) .bi::before{background-image:url('data:image/svg+xml,')}.navbar .quarto-color-scheme-toggle.alternate .bi::before{background-image:url('data:image/svg+xml,')}.sidebar-navigation .quarto-color-scheme-toggle:not(.alternate) .bi::before{background-image:url('data:image/svg+xml,')}.sidebar-navigation .quarto-color-scheme-toggle.alternate .bi::before{background-image:url('data:image/svg+xml,')}.quarto-sidebar-toggle{border-color:#dededf;border-bottom-left-radius:.375rem;border-bottom-right-radius:.375rem;border-style:solid;border-width:1px;overflow:hidden;border-top-width:0px;padding-top:0px !important}.quarto-sidebar-toggle-title{cursor:pointer;padding-bottom:2px;margin-left:.25em;text-align:center;font-weight:400;font-size:.775em}#quarto-content .quarto-sidebar-toggle{background:#fafafa}#quarto-content .quarto-sidebar-toggle-title{color:#212529}.quarto-sidebar-toggle-icon{color:#dededf;margin-right:.5em;float:right;transition:transform .2s ease}.quarto-sidebar-toggle-icon::before{padding-top:5px}.quarto-sidebar-toggle.expanded .quarto-sidebar-toggle-icon{transform:rotate(-180deg)}.quarto-sidebar-toggle.expanded .quarto-sidebar-toggle-title{border-bottom:solid #dededf 1px}.quarto-sidebar-toggle-contents{background-color:#fff;padding-right:10px;padding-left:10px;margin-top:0px !important;transition:max-height .5s ease}.quarto-sidebar-toggle.expanded .quarto-sidebar-toggle-contents{padding-top:1em;padding-bottom:10px}@media(max-width: 767.98px){.sidebar-menu-container{padding-bottom:5em}}.quarto-sidebar-toggle:not(.expanded) .quarto-sidebar-toggle-contents{padding-top:0px !important;padding-bottom:0px}nav[role=doc-toc]{z-index:1020}#quarto-sidebar>*,nav[role=doc-toc]>*{transition:opacity .1s ease,border .1s ease}#quarto-sidebar.slow>*,nav[role=doc-toc].slow>*{transition:opacity .4s ease,border .4s ease}.quarto-color-scheme-toggle:not(.alternate).top-right .bi::before{background-image:url('data:image/svg+xml,')}.quarto-color-scheme-toggle.alternate.top-right .bi::before{background-image:url('data:image/svg+xml,')}#quarto-appendix.default{border-top:1px solid #dededf}#quarto-appendix.default{background-color:#fff;padding-top:1.5em;margin-top:2em;z-index:998}#quarto-appendix.default .quarto-appendix-heading{margin-top:0;line-height:1.4em;font-weight:600;opacity:.9;border-bottom:none;margin-bottom:0}#quarto-appendix.default .footnotes ol,#quarto-appendix.default .footnotes ol li>p:last-of-type,#quarto-appendix.default .quarto-appendix-contents>p:last-of-type{margin-bottom:0}#quarto-appendix.default .footnotes ol{margin-left:.5em}#quarto-appendix.default .quarto-appendix-secondary-label{margin-bottom:.4em}#quarto-appendix.default .quarto-appendix-bibtex{font-size:.7em;padding:1em;border:solid 1px #dededf;margin-bottom:1em}#quarto-appendix.default .quarto-appendix-bibtex code.sourceCode{white-space:pre-wrap}#quarto-appendix.default .quarto-appendix-citeas{font-size:.9em;padding:1em;border:solid 1px #dededf;margin-bottom:1em}#quarto-appendix.default .quarto-appendix-heading{font-size:1em !important}#quarto-appendix.default *[role=doc-endnotes]>ol,#quarto-appendix.default .quarto-appendix-contents>*:not(h2):not(.h2){font-size:.9em}#quarto-appendix.default section{padding-bottom:1.5em}#quarto-appendix.default section *[role=doc-endnotes],#quarto-appendix.default section>*:not(a){opacity:.9;word-wrap:break-word}.btn.btn-quarto,div.cell-output-display .btn-quarto{--bs-btn-color: #fefefe;--bs-btn-bg: #6c757d;--bs-btn-border-color: #6c757d;--bs-btn-hover-color: #fefefe;--bs-btn-hover-bg: #828a91;--bs-btn-hover-border-color: #7b838a;--bs-btn-focus-shadow-rgb: 130, 138, 144;--bs-btn-active-color: #000;--bs-btn-active-bg: #899197;--bs-btn-active-border-color: #7b838a;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #ffffff;--bs-btn-disabled-bg: #6c757d;--bs-btn-disabled-border-color: #6c757d}nav.quarto-secondary-nav.color-navbar{background-color:#517699;color:#fdfefe}nav.quarto-secondary-nav.color-navbar h1,nav.quarto-secondary-nav.color-navbar .h1,nav.quarto-secondary-nav.color-navbar .quarto-btn-toggle{color:#fdfefe}@media(max-width: 991.98px){body.nav-sidebar .quarto-title-banner{margin-bottom:0;padding-bottom:1em}body.nav-sidebar #title-block-header{margin-block-end:0}}p.subtitle{margin-top:.25em;margin-bottom:.5em}code a:any-link{color:inherit;text-decoration-color:#6c757d}/*! light */div.observablehq table thead tr th{background-color:var(--bs-body-bg)}input,button,select,optgroup,textarea{background-color:var(--bs-body-bg)}.code-annotated .code-copy-button{margin-right:1.25em;margin-top:0;padding-bottom:0;padding-top:3px}.code-annotation-gutter-bg{background-color:#fff}.code-annotation-gutter{background-color:rgba(233,236,239,.65)}.code-annotation-gutter,.code-annotation-gutter-bg{height:100%;width:calc(20px + .5em);position:absolute;top:0;right:0}dl.code-annotation-container-grid dt{margin-right:1em;margin-top:.25rem}dl.code-annotation-container-grid dt{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;color:#383f45;border:solid #383f45 1px;border-radius:50%;height:22px;width:22px;line-height:22px;font-size:11px;text-align:center;vertical-align:middle;text-decoration:none}dl.code-annotation-container-grid dt[data-target-cell]{cursor:pointer}dl.code-annotation-container-grid dt[data-target-cell].code-annotation-active{color:#fff;border:solid #aaa 1px;background-color:#aaa}pre.code-annotation-code{padding-top:0;padding-bottom:0}pre.code-annotation-code code{z-index:3}#code-annotation-line-highlight-gutter{width:100%;border-top:solid rgba(170,170,170,.2666666667) 1px;border-bottom:solid rgba(170,170,170,.2666666667) 1px;z-index:2;background-color:rgba(170,170,170,.1333333333)}#code-annotation-line-highlight{margin-left:-4em;width:calc(100% + 4em);border-top:solid rgba(170,170,170,.2666666667) 1px;border-bottom:solid rgba(170,170,170,.2666666667) 1px;z-index:2;background-color:rgba(170,170,170,.1333333333)}code.sourceCode .code-annotation-anchor.code-annotation-active{background-color:var(--quarto-hl-normal-color, #aaaaaa);border:solid var(--quarto-hl-normal-color, #aaaaaa) 1px;color:#e9ecef;font-weight:bolder}code.sourceCode .code-annotation-anchor{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;color:var(--quarto-hl-co-color);border:solid var(--quarto-hl-co-color) 1px;border-radius:50%;height:18px;width:18px;font-size:9px;margin-top:2px}code.sourceCode button.code-annotation-anchor{padding:2px;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none}code.sourceCode a.code-annotation-anchor{line-height:18px;text-align:center;vertical-align:middle;cursor:default;text-decoration:none}@media print{.page-columns .column-screen-inset{grid-column:page-start-inset/page-end-inset;z-index:998;opacity:.999}.page-columns .column-screen-inset table{background:#fff}.page-columns .column-screen-inset-left{grid-column:page-start-inset/body-content-end;z-index:998;opacity:.999}.page-columns .column-screen-inset-left table{background:#fff}.page-columns .column-screen-inset-right{grid-column:body-content-start/page-end-inset;z-index:998;opacity:.999}.page-columns .column-screen-inset-right table{background:#fff}.page-columns .column-screen{grid-column:page-start/page-end;z-index:998;opacity:.999}.page-columns .column-screen table{background:#fff}.page-columns .column-screen-left{grid-column:page-start/body-content-end;z-index:998;opacity:.999}.page-columns .column-screen-left table{background:#fff}.page-columns .column-screen-right{grid-column:body-content-start/page-end;z-index:998;opacity:.999}.page-columns .column-screen-right table{background:#fff}.page-columns .column-screen-inset-shaded{grid-column:page-start-inset/page-end-inset;padding:1em;background:#f8f9fa;z-index:998;opacity:.999;margin-bottom:1em}}.quarto-video{margin-bottom:1em}.table{border-top:1px solid #d3d3d4;border-bottom:1px solid #d3d3d4}.table>thead{border-top-width:0;border-bottom:1px solid #909294}.table a{word-break:break-word}.table>:not(caption)>*>*{background-color:unset;color:unset}#quarto-document-content .crosstalk-input .checkbox input[type=checkbox],#quarto-document-content .crosstalk-input .checkbox-inline input[type=checkbox]{position:unset;margin-top:unset;margin-left:unset}#quarto-document-content .row{margin-left:unset;margin-right:unset}.quarto-xref{white-space:nowrap}#quarto-draft-alert{margin-top:0px;margin-bottom:0px;padding:.3em;text-align:center;font-size:.9em}#quarto-draft-alert i{margin-right:.3em}#quarto-back-to-top{z-index:1000}pre{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:0.875em;font-weight:400}pre code{font-family:inherit;font-size:inherit;font-weight:inherit}code{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:0.875em;font-weight:400}a{background-color:rgba(0,0,0,0);font-weight:400;text-decoration:underline}a.external:after{content:"";background-image:url('data:image/svg+xml,');background-size:contain;background-repeat:no-repeat;background-position:center center;margin-left:.2em;padding-right:.75em}div.sourceCode code a.external:after{content:none}a.external:after:hover{cursor:pointer}.quarto-ext-icon{display:inline-block;font-size:.75em;padding-left:.3em}.code-with-filename .code-with-filename-file{margin-bottom:0;padding-bottom:2px;padding-top:2px;padding-left:.7em;border:var(--quarto-border-width) solid var(--quarto-border-color);border-radius:var(--quarto-border-radius);border-bottom:0;border-bottom-left-radius:0%;border-bottom-right-radius:0%}.code-with-filename div.sourceCode,.reveal .code-with-filename div.sourceCode{margin-top:0;border-top-left-radius:0%;border-top-right-radius:0%}.code-with-filename .code-with-filename-file pre{margin-bottom:0}.code-with-filename .code-with-filename-file{background-color:rgba(219,219,219,.8)}.quarto-dark .code-with-filename .code-with-filename-file{background-color:#555}.code-with-filename .code-with-filename-file strong{font-weight:400}.quarto-title-banner{margin-bottom:1em;color:#fdfefe;background:#517699}.quarto-title-banner a{color:#fdfefe}.quarto-title-banner h1,.quarto-title-banner .h1,.quarto-title-banner h2,.quarto-title-banner .h2{color:#fdfefe}.quarto-title-banner .code-tools-button{color:#b9dcdc}.quarto-title-banner .code-tools-button:hover{color:#fdfefe}.quarto-title-banner .code-tools-button>.bi::before{background-image:url('data:image/svg+xml,')}.quarto-title-banner .code-tools-button:hover>.bi::before{background-image:url('data:image/svg+xml,')}.quarto-title-banner .quarto-title .title{font-weight:600}.quarto-title-banner .quarto-categories{margin-top:.75em}@media(min-width: 992px){.quarto-title-banner{padding-top:2.5em;padding-bottom:2.5em}}@media(max-width: 991.98px){.quarto-title-banner{padding-top:1em;padding-bottom:1em}}@media(max-width: 767.98px){body.hypothesis-enabled #title-block-header>*{padding-right:20px}}main.quarto-banner-title-block>section:first-child>h2,main.quarto-banner-title-block>section:first-child>.h2,main.quarto-banner-title-block>section:first-child>h3,main.quarto-banner-title-block>section:first-child>.h3,main.quarto-banner-title-block>section:first-child>h4,main.quarto-banner-title-block>section:first-child>.h4{margin-top:0}.quarto-title .quarto-categories{display:flex;flex-wrap:wrap;row-gap:.5em;column-gap:.4em;padding-bottom:.5em;margin-top:.75em}.quarto-title .quarto-categories .quarto-category{padding:.25em .75em;font-size:.65em;text-transform:uppercase;border:solid 1px;border-radius:.375rem;opacity:.6}.quarto-title .quarto-categories .quarto-category a{color:inherit}.quarto-title-meta-container{display:grid;grid-template-columns:1fr auto}.quarto-title-meta-column-end{display:flex;flex-direction:column;padding-left:1em}.quarto-title-meta-column-end a .bi{margin-right:.3em}#title-block-header.quarto-title-block.default .quarto-title-meta{display:grid;grid-template-columns:repeat(2, 1fr);grid-column-gap:1em}#title-block-header.quarto-title-block.default .quarto-title .title{margin-bottom:0}#title-block-header.quarto-title-block.default .quarto-title-author-orcid img{margin-top:-0.2em;height:.8em;width:.8em}#title-block-header.quarto-title-block.default .quarto-title-author-email{opacity:.7}#title-block-header.quarto-title-block.default .quarto-description p:last-of-type{margin-bottom:0}#title-block-header.quarto-title-block.default .quarto-title-meta-contents p,#title-block-header.quarto-title-block.default .quarto-title-authors p,#title-block-header.quarto-title-block.default .quarto-title-affiliations p{margin-bottom:.1em}#title-block-header.quarto-title-block.default .quarto-title-meta-heading{text-transform:uppercase;margin-top:1em;font-size:.8em;opacity:.8;font-weight:400}#title-block-header.quarto-title-block.default .quarto-title-meta-contents{font-size:.9em}#title-block-header.quarto-title-block.default .quarto-title-meta-contents p.affiliation:last-of-type{margin-bottom:.1em}#title-block-header.quarto-title-block.default p.affiliation{margin-bottom:.1em}#title-block-header.quarto-title-block.default .keywords,#title-block-header.quarto-title-block.default .description,#title-block-header.quarto-title-block.default .abstract{margin-top:0}#title-block-header.quarto-title-block.default .keywords>p,#title-block-header.quarto-title-block.default .description>p,#title-block-header.quarto-title-block.default .abstract>p{font-size:.9em}#title-block-header.quarto-title-block.default .keywords>p:last-of-type,#title-block-header.quarto-title-block.default .description>p:last-of-type,#title-block-header.quarto-title-block.default .abstract>p:last-of-type{margin-bottom:0}#title-block-header.quarto-title-block.default .keywords .block-title,#title-block-header.quarto-title-block.default .description .block-title,#title-block-header.quarto-title-block.default .abstract .block-title{margin-top:1em;text-transform:uppercase;font-size:.8em;opacity:.8;font-weight:400}#title-block-header.quarto-title-block.default .quarto-title-meta-author{display:grid;grid-template-columns:minmax(max-content, 1fr) 1fr;grid-column-gap:1em}.quarto-title-tools-only{display:flex;justify-content:right}:root{--quarto-scss-export-title-banner-color: ;--quarto-scss-export-title-banner-bg: ;--quarto-scss-export-btn-code-copy-color: #5E5E5E;--quarto-scss-export-btn-code-copy-color-active: #4758AB;--quarto-scss-export-sidebar-bg: #fff;--quarto-scss-export-blue: #0d6efd;--quarto-scss-export-primary: #0d6efd;--quarto-scss-export-white: #ffffff;--quarto-scss-export-gray-200: #e9ecef;--quarto-scss-export-gray-100: #f8f9fa;--quarto-scss-export-gray-900: #212529;--quarto-scss-export-link-color: #0d6efd;--quarto-scss-export-link-color-bg: transparent;--quarto-scss-export-code-color: #7d12ba;--quarto-scss-export-code-bg: #f8f9fa;--quarto-scss-export-toc-color: #0d6efd;--quarto-scss-export-toc-active-border: #0d6efd;--quarto-scss-export-toc-inactive-border: #e9ecef;--quarto-scss-export-navbar-default: #517699;--quarto-scss-export-navbar-hl-override: false;--quarto-scss-export-navbar-bg: #517699;--quarto-scss-export-btn-bg: #6c757d;--quarto-scss-export-btn-fg: #fefefe;--quarto-scss-export-body-contrast-bg: #ffffff;--quarto-scss-export-body-contrast-color: #212529;--quarto-scss-export-navbar-fg: #fdfefe;--quarto-scss-export-navbar-hl: #fdfeff;--quarto-scss-export-navbar-brand: #fdfefe;--quarto-scss-export-navbar-brand-hl: #fdfeff;--quarto-scss-export-navbar-toggler-border-color: rgba(253, 254, 254, 0);--quarto-scss-export-navbar-hover-color: rgba(253, 254, 255, 0.8);--quarto-scss-export-navbar-disabled-color: rgba(253, 254, 254, 0.75);--quarto-scss-export-sidebar-fg: #595959;--quarto-scss-export-sidebar-hl: ;--quarto-scss-export-title-block-color: #212529;--quarto-scss-export-title-block-contast-color: #ffffff;--quarto-scss-export-footer-bg: #fff;--quarto-scss-export-footer-fg: #757575;--quarto-scss-export-popover-bg: #ffffff;--quarto-scss-export-input-bg: #ffffff;--quarto-scss-export-input-border-color: #dededf;--quarto-scss-export-code-annotation-higlight-color: rgba(170, 170, 170, 0.2666666667);--quarto-scss-export-code-annotation-higlight-bg: rgba(170, 170, 170, 0.1333333333);--quarto-scss-export-table-group-separator-color: #909294;--quarto-scss-export-table-group-separator-color-lighter: #d3d3d4;--quarto-scss-export-link-decoration: underline;--quarto-scss-export-border-color: #dededf;--quarto-scss-export-table-border-color: #dededf;--quarto-scss-export-gray-300: #dee2e6;--quarto-scss-export-gray-400: #ced4da;--quarto-scss-export-gray-500: #adb5bd;--quarto-scss-export-gray-600: #6c757d;--quarto-scss-export-gray-700: #495057;--quarto-scss-export-gray-800: #343a40;--quarto-scss-export-black: #000;--quarto-scss-export-indigo: #6610f2;--quarto-scss-export-purple: #6f42c1;--quarto-scss-export-pink: #d63384;--quarto-scss-export-red: #dc3545;--quarto-scss-export-orange: #fd7e14;--quarto-scss-export-yellow: #ffc107;--quarto-scss-export-green: #198754;--quarto-scss-export-teal: #20c997;--quarto-scss-export-cyan: #0dcaf0;--quarto-scss-export-color-contrast-dark: #000;--quarto-scss-export-color-contrast-light: #ffffff;--quarto-scss-export-blue-100: #cfe2ff;--quarto-scss-export-blue-200: #9ec5fe;--quarto-scss-export-blue-300: #6ea8fe;--quarto-scss-export-blue-400: #3d8bfd;--quarto-scss-export-blue-500: #0d6efd;--quarto-scss-export-blue-600: #0a58ca;--quarto-scss-export-blue-700: #084298;--quarto-scss-export-blue-800: #052c65;--quarto-scss-export-blue-900: #031633;--quarto-scss-export-indigo-100: #e0cffc;--quarto-scss-export-indigo-200: #c29ffa;--quarto-scss-export-indigo-300: #a370f7;--quarto-scss-export-indigo-400: #8540f5;--quarto-scss-export-indigo-500: #6610f2;--quarto-scss-export-indigo-600: #520dc2;--quarto-scss-export-indigo-700: #3d0a91;--quarto-scss-export-indigo-800: #290661;--quarto-scss-export-indigo-900: #140330;--quarto-scss-export-purple-100: #e2d9f3;--quarto-scss-export-purple-200: #c5b3e6;--quarto-scss-export-purple-300: #a98eda;--quarto-scss-export-purple-400: #8c68cd;--quarto-scss-export-purple-500: #6f42c1;--quarto-scss-export-purple-600: #59359a;--quarto-scss-export-purple-700: #432874;--quarto-scss-export-purple-800: #2c1a4d;--quarto-scss-export-purple-900: #160d27;--quarto-scss-export-pink-100: #f7d6e6;--quarto-scss-export-pink-200: #efadce;--quarto-scss-export-pink-300: #e685b5;--quarto-scss-export-pink-400: #de5c9d;--quarto-scss-export-pink-500: #d63384;--quarto-scss-export-pink-600: #ab296a;--quarto-scss-export-pink-700: #801f4f;--quarto-scss-export-pink-800: #561435;--quarto-scss-export-pink-900: #2b0a1a;--quarto-scss-export-red-100: #f8d7da;--quarto-scss-export-red-200: #f1aeb5;--quarto-scss-export-red-300: #ea868f;--quarto-scss-export-red-400: #e35d6a;--quarto-scss-export-red-500: #dc3545;--quarto-scss-export-red-600: #b02a37;--quarto-scss-export-red-700: #842029;--quarto-scss-export-red-800: #58151c;--quarto-scss-export-red-900: #2c0b0e;--quarto-scss-export-orange-100: #ffe5d0;--quarto-scss-export-orange-200: #fecba1;--quarto-scss-export-orange-300: #feb272;--quarto-scss-export-orange-400: #fd9843;--quarto-scss-export-orange-500: #fd7e14;--quarto-scss-export-orange-600: #ca6510;--quarto-scss-export-orange-700: #984c0c;--quarto-scss-export-orange-800: #653208;--quarto-scss-export-orange-900: #331904;--quarto-scss-export-yellow-100: #fff3cd;--quarto-scss-export-yellow-200: #ffe69c;--quarto-scss-export-yellow-300: #ffda6a;--quarto-scss-export-yellow-400: #ffcd39;--quarto-scss-export-yellow-500: #ffc107;--quarto-scss-export-yellow-600: #cc9a06;--quarto-scss-export-yellow-700: #997404;--quarto-scss-export-yellow-800: #664d03;--quarto-scss-export-yellow-900: #332701;--quarto-scss-export-green-100: #d1e7dd;--quarto-scss-export-green-200: #a3cfbb;--quarto-scss-export-green-300: #75b798;--quarto-scss-export-green-400: #479f76;--quarto-scss-export-green-500: #198754;--quarto-scss-export-green-600: #146c43;--quarto-scss-export-green-700: #0f5132;--quarto-scss-export-green-800: #0a3622;--quarto-scss-export-green-900: #051b11;--quarto-scss-export-teal-100: #d2f4ea;--quarto-scss-export-teal-200: #a6e9d5;--quarto-scss-export-teal-300: #79dfc1;--quarto-scss-export-teal-400: #4dd4ac;--quarto-scss-export-teal-500: #20c997;--quarto-scss-export-teal-600: #1aa179;--quarto-scss-export-teal-700: #13795b;--quarto-scss-export-teal-800: #0d503c;--quarto-scss-export-teal-900: #06281e;--quarto-scss-export-cyan-100: #cff4fc;--quarto-scss-export-cyan-200: #9eeaf9;--quarto-scss-export-cyan-300: #6edff6;--quarto-scss-export-cyan-400: #3dd5f3;--quarto-scss-export-cyan-500: #0dcaf0;--quarto-scss-export-cyan-600: #0aa2c0;--quarto-scss-export-cyan-700: #087990;--quarto-scss-export-cyan-800: #055160;--quarto-scss-export-cyan-900: #032830;--quarto-scss-export-default: #dee2e6;--quarto-scss-export-secondary: #6c757d;--quarto-scss-export-success: #198754;--quarto-scss-export-info: #0dcaf0;--quarto-scss-export-warning: #ffc107;--quarto-scss-export-danger: #dc3545;--quarto-scss-export-light: #f8f9fa;--quarto-scss-export-dark: #212529;--quarto-scss-export-primary-text-emphasis: #052c65;--quarto-scss-export-secondary-text-emphasis: #2b2f32;--quarto-scss-export-success-text-emphasis: #0a3622;--quarto-scss-export-info-text-emphasis: #055160;--quarto-scss-export-warning-text-emphasis: #664d03;--quarto-scss-export-danger-text-emphasis: #58151c;--quarto-scss-export-light-text-emphasis: #495057;--quarto-scss-export-dark-text-emphasis: #495057;--quarto-scss-export-primary-bg-subtle: #cfe2ff;--quarto-scss-export-secondary-bg-subtle: #e2e3e5;--quarto-scss-export-success-bg-subtle: #d1e7dd;--quarto-scss-export-info-bg-subtle: #cff4fc;--quarto-scss-export-warning-bg-subtle: #fff3cd;--quarto-scss-export-danger-bg-subtle: #f8d7da;--quarto-scss-export-light-bg-subtle: #fcfcfd;--quarto-scss-export-dark-bg-subtle: #ced4da;--quarto-scss-export-primary-border-subtle: #9ec5fe;--quarto-scss-export-secondary-border-subtle: #c4c8cb;--quarto-scss-export-success-border-subtle: #a3cfbb;--quarto-scss-export-info-border-subtle: #9eeaf9;--quarto-scss-export-warning-border-subtle: #ffe69c;--quarto-scss-export-danger-border-subtle: #f1aeb5;--quarto-scss-export-light-border-subtle: #e9ecef;--quarto-scss-export-dark-border-subtle: #adb5bd;--quarto-scss-export-body-text-align: ;--quarto-scss-export-body-color: #212529;--quarto-scss-export-body-bg: #ffffff;--quarto-scss-export-body-secondary-color: rgba(33, 37, 41, 0.75);--quarto-scss-export-body-secondary-bg: #e9ecef;--quarto-scss-export-body-tertiary-color: rgba(33, 37, 41, 0.5);--quarto-scss-export-body-tertiary-bg: #f8f9fa;--quarto-scss-export-body-emphasis-color: #000;--quarto-scss-export-link-hover-color: #0a58ca;--quarto-scss-export-link-hover-decoration: ;--quarto-scss-export-border-color-translucent: rgba(0, 0, 0, 0.175);--quarto-scss-export-component-active-bg: #0d6efd;--quarto-scss-export-component-active-color: #ffffff;--quarto-scss-export-focus-ring-color: rgba(13, 110, 253, 0.25);--quarto-scss-export-headings-font-family: ;--quarto-scss-export-headings-font-style: ;--quarto-scss-export-display-font-family: ;--quarto-scss-export-display-font-style: ;--quarto-scss-export-text-muted: rgba(33, 37, 41, 0.75);--quarto-scss-export-blockquote-footer-color: #6c757d;--quarto-scss-export-blockquote-border-color: #e9ecef;--quarto-scss-export-hr-bg-color: ;--quarto-scss-export-hr-height: ;--quarto-scss-export-hr-border-color: ;--quarto-scss-export-legend-font-weight: ;--quarto-scss-export-mark-bg: #fff3cd;--quarto-scss-export-table-color: #212529;--quarto-scss-export-table-bg: #ffffff;--quarto-scss-export-table-accent-bg: transparent;--quarto-scss-export-table-th-font-weight: ;--quarto-scss-export-table-striped-color: #212529;--quarto-scss-export-table-striped-bg: rgba(0, 0, 0, 0.05);--quarto-scss-export-table-active-color: #212529;--quarto-scss-export-table-active-bg: rgba(0, 0, 0, 0.1);--quarto-scss-export-table-hover-color: #212529;--quarto-scss-export-table-hover-bg: rgba(0, 0, 0, 0.075);--quarto-scss-export-table-caption-color: rgba(33, 37, 41, 0.75);--quarto-scss-export-input-btn-font-family: ;--quarto-scss-export-input-btn-focus-color: rgba(13, 110, 253, 0.25);--quarto-scss-export-btn-color: #212529;--quarto-scss-export-btn-font-family: ;--quarto-scss-export-btn-white-space: ;--quarto-scss-export-btn-link-color: #0d6efd;--quarto-scss-export-btn-link-hover-color: #0a58ca;--quarto-scss-export-btn-link-disabled-color: #6c757d;--quarto-scss-export-form-text-font-style: ;--quarto-scss-export-form-text-font-weight: ;--quarto-scss-export-form-text-color: rgba(33, 37, 41, 0.75);--quarto-scss-export-form-label-font-size: ;--quarto-scss-export-form-label-font-style: ;--quarto-scss-export-form-label-font-weight: ;--quarto-scss-export-form-label-color: ;--quarto-scss-export-input-font-family: ;--quarto-scss-export-input-disabled-color: ;--quarto-scss-export-input-disabled-bg: #e9ecef;--quarto-scss-export-input-disabled-border-color: ;--quarto-scss-export-input-color: #212529;--quarto-scss-export-input-focus-bg: #ffffff;--quarto-scss-export-input-focus-border-color: #86b7fe;--quarto-scss-export-input-focus-color: #212529;--quarto-scss-export-input-placeholder-color: rgba(33, 37, 41, 0.75);--quarto-scss-export-input-plaintext-color: #212529;--quarto-scss-export-form-check-label-color: ;--quarto-scss-export-form-check-transition: ;--quarto-scss-export-form-check-input-bg: #ffffff;--quarto-scss-export-form-check-input-focus-border: #86b7fe;--quarto-scss-export-form-check-input-checked-color: #ffffff;--quarto-scss-export-form-check-input-checked-bg-color: #0d6efd;--quarto-scss-export-form-check-input-checked-border-color: #0d6efd;--quarto-scss-export-form-check-input-indeterminate-color: #ffffff;--quarto-scss-export-form-check-input-indeterminate-bg-color: #0d6efd;--quarto-scss-export-form-check-input-indeterminate-border-color: #0d6efd;--quarto-scss-export-form-switch-color: rgba(0, 0, 0, 0.25);--quarto-scss-export-form-switch-focus-color: #86b7fe;--quarto-scss-export-form-switch-checked-color: #ffffff;--quarto-scss-export-input-group-addon-color: #212529;--quarto-scss-export-input-group-addon-bg: #f8f9fa;--quarto-scss-export-input-group-addon-border-color: #dededf;--quarto-scss-export-form-select-font-family: ;--quarto-scss-export-form-select-color: #212529;--quarto-scss-export-form-select-bg: #ffffff;--quarto-scss-export-form-select-disabled-color: ;--quarto-scss-export-form-select-disabled-bg: #e9ecef;--quarto-scss-export-form-select-disabled-border-color: ;--quarto-scss-export-form-select-indicator-color: #343a40;--quarto-scss-export-form-select-border-color: #dededf;--quarto-scss-export-form-select-focus-border-color: #86b7fe;--quarto-scss-export-form-range-track-bg: #f8f9fa;--quarto-scss-export-form-range-thumb-bg: #0d6efd;--quarto-scss-export-form-range-thumb-active-bg: #b6d4fe;--quarto-scss-export-form-range-thumb-disabled-bg: rgba(33, 37, 41, 0.75);--quarto-scss-export-form-file-button-color: #212529;--quarto-scss-export-form-file-button-bg: #f8f9fa;--quarto-scss-export-form-file-button-hover-bg: #e9ecef;--quarto-scss-export-form-floating-label-disabled-color: #6c757d;--quarto-scss-export-form-feedback-font-style: ;--quarto-scss-export-form-feedback-valid-color: #198754;--quarto-scss-export-form-feedback-invalid-color: #dc3545;--quarto-scss-export-form-feedback-icon-valid-color: #198754;--quarto-scss-export-form-feedback-icon-invalid-color: #dc3545;--quarto-scss-export-form-valid-color: #198754;--quarto-scss-export-form-valid-border-color: #198754;--quarto-scss-export-form-invalid-color: #dc3545;--quarto-scss-export-form-invalid-border-color: #dc3545;--quarto-scss-export-nav-link-font-size: ;--quarto-scss-export-nav-link-font-weight: ;--quarto-scss-export-nav-link-color: #0d6efd;--quarto-scss-export-nav-link-hover-color: #0a58ca;--quarto-scss-export-nav-link-disabled-color: rgba(33, 37, 41, 0.75);--quarto-scss-export-nav-tabs-border-color: #dededf;--quarto-scss-export-nav-tabs-link-hover-border-color: #e9ecef #e9ecef #dededf;--quarto-scss-export-nav-tabs-link-active-color: #000;--quarto-scss-export-nav-tabs-link-active-bg: #ffffff;--quarto-scss-export-nav-pills-link-active-bg: #0d6efd;--quarto-scss-export-nav-pills-link-active-color: #ffffff;--quarto-scss-export-nav-underline-link-active-color: #000;--quarto-scss-export-navbar-padding-x: ;--quarto-scss-export-navbar-light-contrast: #ffffff;--quarto-scss-export-navbar-dark-contrast: #ffffff;--quarto-scss-export-navbar-light-icon-color: rgba(255, 255, 255, 0.75);--quarto-scss-export-navbar-dark-icon-color: rgba(255, 255, 255, 0.75);--quarto-scss-export-dropdown-color: #212529;--quarto-scss-export-dropdown-bg: #ffffff;--quarto-scss-export-dropdown-border-color: rgba(0, 0, 0, 0.175);--quarto-scss-export-dropdown-divider-bg: rgba(0, 0, 0, 0.175);--quarto-scss-export-dropdown-link-color: #212529;--quarto-scss-export-dropdown-link-hover-color: #212529;--quarto-scss-export-dropdown-link-hover-bg: #f8f9fa;--quarto-scss-export-dropdown-link-active-bg: #0d6efd;--quarto-scss-export-dropdown-link-active-color: #ffffff;--quarto-scss-export-dropdown-link-disabled-color: rgba(33, 37, 41, 0.5);--quarto-scss-export-dropdown-header-color: #6c757d;--quarto-scss-export-dropdown-dark-color: #dee2e6;--quarto-scss-export-dropdown-dark-bg: #343a40;--quarto-scss-export-dropdown-dark-border-color: rgba(0, 0, 0, 0.175);--quarto-scss-export-dropdown-dark-divider-bg: rgba(0, 0, 0, 0.175);--quarto-scss-export-dropdown-dark-box-shadow: ;--quarto-scss-export-dropdown-dark-link-color: #dee2e6;--quarto-scss-export-dropdown-dark-link-hover-color: #ffffff;--quarto-scss-export-dropdown-dark-link-hover-bg: rgba(255, 255, 255, 0.15);--quarto-scss-export-dropdown-dark-link-active-color: #ffffff;--quarto-scss-export-dropdown-dark-link-active-bg: #0d6efd;--quarto-scss-export-dropdown-dark-link-disabled-color: #adb5bd;--quarto-scss-export-dropdown-dark-header-color: #adb5bd;--quarto-scss-export-pagination-color: #0d6efd;--quarto-scss-export-pagination-bg: #ffffff;--quarto-scss-export-pagination-border-color: #dededf;--quarto-scss-export-pagination-focus-color: #0a58ca;--quarto-scss-export-pagination-focus-bg: #e9ecef;--quarto-scss-export-pagination-hover-color: #0a58ca;--quarto-scss-export-pagination-hover-bg: #f8f9fa;--quarto-scss-export-pagination-hover-border-color: #dededf;--quarto-scss-export-pagination-active-color: #ffffff;--quarto-scss-export-pagination-active-bg: #0d6efd;--quarto-scss-export-pagination-active-border-color: #0d6efd;--quarto-scss-export-pagination-disabled-color: rgba(33, 37, 41, 0.75);--quarto-scss-export-pagination-disabled-bg: #e9ecef;--quarto-scss-export-pagination-disabled-border-color: #dededf;--quarto-scss-export-card-title-color: ;--quarto-scss-export-card-subtitle-color: ;--quarto-scss-export-card-border-color: rgba(0, 0, 0, 0.175);--quarto-scss-export-card-box-shadow: ;--quarto-scss-export-card-cap-bg: rgba(33, 37, 41, 0.03);--quarto-scss-export-card-cap-color: ;--quarto-scss-export-card-height: ;--quarto-scss-export-card-color: ;--quarto-scss-export-card-bg: #ffffff;--quarto-scss-export-accordion-color: #212529;--quarto-scss-export-accordion-bg: #ffffff;--quarto-scss-export-accordion-border-color: #dededf;--quarto-scss-export-accordion-button-color: #212529;--quarto-scss-export-accordion-button-bg: #ffffff;--quarto-scss-export-accordion-button-active-bg: #cfe2ff;--quarto-scss-export-accordion-button-active-color: #052c65;--quarto-scss-export-accordion-button-focus-border-color: #86b7fe;--quarto-scss-export-accordion-icon-color: #212529;--quarto-scss-export-accordion-icon-active-color: #052c65;--quarto-scss-export-tooltip-color: #ffffff;--quarto-scss-export-tooltip-bg: #000;--quarto-scss-export-tooltip-margin: ;--quarto-scss-export-tooltip-arrow-color: ;--quarto-scss-export-form-feedback-tooltip-line-height: ;--quarto-scss-export-popover-border-color: rgba(0, 0, 0, 0.175);--quarto-scss-export-popover-header-bg: #e9ecef;--quarto-scss-export-popover-body-color: #212529;--quarto-scss-export-popover-arrow-color: #ffffff;--quarto-scss-export-popover-arrow-outer-color: rgba(0, 0, 0, 0.175);--quarto-scss-export-toast-color: ;--quarto-scss-export-toast-background-color: rgba(255, 255, 255, 0.85);--quarto-scss-export-toast-border-color: rgba(0, 0, 0, 0.175);--quarto-scss-export-toast-header-color: rgba(33, 37, 41, 0.75);--quarto-scss-export-toast-header-background-color: rgba(255, 255, 255, 0.85);--quarto-scss-export-toast-header-border-color: rgba(0, 0, 0, 0.175);--quarto-scss-export-badge-color: #ffffff;--quarto-scss-export-modal-content-color: ;--quarto-scss-export-modal-content-bg: #ffffff;--quarto-scss-export-modal-content-border-color: rgba(0, 0, 0, 0.175);--quarto-scss-export-modal-backdrop-bg: #000;--quarto-scss-export-modal-header-border-color: #dededf;--quarto-scss-export-modal-footer-bg: ;--quarto-scss-export-modal-footer-border-color: #dededf;--quarto-scss-export-progress-bg: #e9ecef;--quarto-scss-export-progress-bar-color: #ffffff;--quarto-scss-export-progress-bar-bg: #0d6efd;--quarto-scss-export-list-group-color: #212529;--quarto-scss-export-list-group-bg: #ffffff;--quarto-scss-export-list-group-border-color: #dededf;--quarto-scss-export-list-group-hover-bg: #f8f9fa;--quarto-scss-export-list-group-active-bg: #0d6efd;--quarto-scss-export-list-group-active-color: #ffffff;--quarto-scss-export-list-group-active-border-color: #0d6efd;--quarto-scss-export-list-group-disabled-color: rgba(33, 37, 41, 0.75);--quarto-scss-export-list-group-disabled-bg: #ffffff;--quarto-scss-export-list-group-action-color: rgba(33, 37, 41, 0.75);--quarto-scss-export-list-group-action-hover-color: #000;--quarto-scss-export-list-group-action-active-color: #212529;--quarto-scss-export-list-group-action-active-bg: #e9ecef;--quarto-scss-export-thumbnail-bg: #ffffff;--quarto-scss-export-thumbnail-border-color: #dededf;--quarto-scss-export-figure-caption-color: rgba(33, 37, 41, 0.75);--quarto-scss-export-breadcrumb-font-size: ;--quarto-scss-export-breadcrumb-bg: ;--quarto-scss-export-breadcrumb-divider-color: rgba(33, 37, 41, 0.75);--quarto-scss-export-breadcrumb-active-color: rgba(33, 37, 41, 0.75);--quarto-scss-export-breadcrumb-border-radius: ;--quarto-scss-export-carousel-control-color: #ffffff;--quarto-scss-export-carousel-indicator-active-bg: #ffffff;--quarto-scss-export-carousel-caption-color: #ffffff;--quarto-scss-export-carousel-dark-indicator-active-bg: #000;--quarto-scss-export-carousel-dark-caption-color: #000;--quarto-scss-export-btn-close-color: #000;--quarto-scss-export-offcanvas-border-color: rgba(0, 0, 0, 0.175);--quarto-scss-export-offcanvas-bg-color: #ffffff;--quarto-scss-export-offcanvas-color: #212529;--quarto-scss-export-offcanvas-backdrop-bg: #000;--quarto-scss-export-code-color-dark: white;--quarto-scss-export-kbd-color: #ffffff;--quarto-scss-export-kbd-bg: #212529;--quarto-scss-export-nested-kbd-font-weight: ;--quarto-scss-export-pre-bg: #f8f9fa;--quarto-scss-export-pre-color: #000;--quarto-scss-export-bslib-page-sidebar-title-bg: #517699;--quarto-scss-export-bslib-page-sidebar-title-color: #ffffff;--quarto-scss-export-bslib-sidebar-bg: rgba(var(--bs-emphasis-color-rgb, 0, 0, 0), 0.05);--quarto-scss-export-bslib-sidebar-toggle-bg: rgba(var(--bs-emphasis-color-rgb, 0, 0, 0), 0.1);--quarto-scss-export-mermaid-bg-color: #ffffff;--quarto-scss-export-mermaid-edge-color: #6c757d;--quarto-scss-export-mermaid-node-fg-color: #212529;--quarto-scss-export-mermaid-fg-color: #212529;--quarto-scss-export-mermaid-fg-color--lighter: #383f45;--quarto-scss-export-mermaid-fg-color--lightest: #4e5862;--quarto-scss-export-mermaid-label-bg-color: #ffffff;--quarto-scss-export-mermaid-label-fg-color: #0d6efd;--quarto-scss-export-mermaid-node-bg-color: rgba(13, 110, 253, 0.1);--quarto-scss-export-code-block-border-left-color: #dededf;--quarto-scss-export-callout-color-note: #0d6efd;--quarto-scss-export-callout-color-tip: #198754;--quarto-scss-export-callout-color-important: #dc3545;--quarto-scss-export-callout-color-caution: #fd7e14;--quarto-scss-export-callout-color-warning: #ffc107} \ No newline at end of file diff --git a/docs/src/tutorials/test1_files/libs/bootstrap/bootstrap-icons.css b/docs/src/tutorials/test1_files/libs/bootstrap/bootstrap-icons.css new file mode 100644 index 0000000..285e444 --- /dev/null +++ b/docs/src/tutorials/test1_files/libs/bootstrap/bootstrap-icons.css @@ -0,0 +1,2078 @@ +/*! + * Bootstrap Icons v1.11.1 (https://icons.getbootstrap.com/) + * Copyright 2019-2023 The Bootstrap Authors + * Licensed under MIT (https://github.com/twbs/icons/blob/main/LICENSE) + */ + +@font-face { + font-display: block; + font-family: "bootstrap-icons"; + src: +url("./bootstrap-icons.woff?2820a3852bdb9a5832199cc61cec4e65") format("woff"); +} + +.bi::before, +[class^="bi-"]::before, +[class*=" bi-"]::before { + display: inline-block; + font-family: bootstrap-icons !important; + font-style: normal; + font-weight: normal !important; + font-variant: normal; + text-transform: none; + line-height: 1; + vertical-align: -.125em; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.bi-123::before { content: "\f67f"; } +.bi-alarm-fill::before { content: "\f101"; } +.bi-alarm::before { content: "\f102"; } +.bi-align-bottom::before { content: "\f103"; } +.bi-align-center::before { content: "\f104"; } +.bi-align-end::before { content: "\f105"; } +.bi-align-middle::before { content: "\f106"; } +.bi-align-start::before { content: "\f107"; } +.bi-align-top::before { content: "\f108"; } +.bi-alt::before { content: "\f109"; } +.bi-app-indicator::before { content: "\f10a"; } +.bi-app::before { content: "\f10b"; } +.bi-archive-fill::before { content: "\f10c"; } +.bi-archive::before { content: "\f10d"; } +.bi-arrow-90deg-down::before { content: "\f10e"; } +.bi-arrow-90deg-left::before { content: "\f10f"; } +.bi-arrow-90deg-right::before { content: "\f110"; } +.bi-arrow-90deg-up::before { content: "\f111"; } +.bi-arrow-bar-down::before { content: "\f112"; } +.bi-arrow-bar-left::before { content: "\f113"; } +.bi-arrow-bar-right::before { content: "\f114"; } +.bi-arrow-bar-up::before { content: "\f115"; } +.bi-arrow-clockwise::before { content: "\f116"; } +.bi-arrow-counterclockwise::before { content: "\f117"; } +.bi-arrow-down-circle-fill::before { content: "\f118"; } +.bi-arrow-down-circle::before { content: "\f119"; } +.bi-arrow-down-left-circle-fill::before { content: "\f11a"; } +.bi-arrow-down-left-circle::before { content: "\f11b"; } +.bi-arrow-down-left-square-fill::before { content: "\f11c"; } +.bi-arrow-down-left-square::before { content: "\f11d"; } +.bi-arrow-down-left::before { content: "\f11e"; } +.bi-arrow-down-right-circle-fill::before { content: "\f11f"; } +.bi-arrow-down-right-circle::before { content: "\f120"; } +.bi-arrow-down-right-square-fill::before { content: "\f121"; } +.bi-arrow-down-right-square::before { content: "\f122"; } +.bi-arrow-down-right::before { content: "\f123"; } +.bi-arrow-down-short::before { content: "\f124"; } +.bi-arrow-down-square-fill::before { content: "\f125"; } +.bi-arrow-down-square::before { content: "\f126"; } +.bi-arrow-down-up::before { content: "\f127"; } +.bi-arrow-down::before { content: "\f128"; } +.bi-arrow-left-circle-fill::before { content: "\f129"; } +.bi-arrow-left-circle::before { content: "\f12a"; } +.bi-arrow-left-right::before { content: "\f12b"; } +.bi-arrow-left-short::before { content: "\f12c"; } +.bi-arrow-left-square-fill::before { content: "\f12d"; } +.bi-arrow-left-square::before { content: "\f12e"; } +.bi-arrow-left::before { content: "\f12f"; } +.bi-arrow-repeat::before { content: "\f130"; } +.bi-arrow-return-left::before { content: "\f131"; } +.bi-arrow-return-right::before { content: "\f132"; } +.bi-arrow-right-circle-fill::before { content: "\f133"; } +.bi-arrow-right-circle::before { content: "\f134"; } +.bi-arrow-right-short::before { content: "\f135"; } +.bi-arrow-right-square-fill::before { content: "\f136"; } +.bi-arrow-right-square::before { content: "\f137"; } +.bi-arrow-right::before { content: "\f138"; } +.bi-arrow-up-circle-fill::before { content: "\f139"; } +.bi-arrow-up-circle::before { content: "\f13a"; } +.bi-arrow-up-left-circle-fill::before { content: "\f13b"; } +.bi-arrow-up-left-circle::before { content: "\f13c"; } +.bi-arrow-up-left-square-fill::before { content: "\f13d"; } +.bi-arrow-up-left-square::before { content: "\f13e"; } +.bi-arrow-up-left::before { content: "\f13f"; } +.bi-arrow-up-right-circle-fill::before { content: "\f140"; } +.bi-arrow-up-right-circle::before { content: "\f141"; } +.bi-arrow-up-right-square-fill::before { content: "\f142"; } +.bi-arrow-up-right-square::before { content: "\f143"; } +.bi-arrow-up-right::before { content: "\f144"; } +.bi-arrow-up-short::before { content: "\f145"; } +.bi-arrow-up-square-fill::before { content: "\f146"; } +.bi-arrow-up-square::before { content: "\f147"; } +.bi-arrow-up::before { content: "\f148"; } +.bi-arrows-angle-contract::before { content: "\f149"; } +.bi-arrows-angle-expand::before { content: "\f14a"; } +.bi-arrows-collapse::before { content: "\f14b"; } +.bi-arrows-expand::before { content: "\f14c"; } +.bi-arrows-fullscreen::before { content: "\f14d"; } +.bi-arrows-move::before { content: "\f14e"; } +.bi-aspect-ratio-fill::before { content: "\f14f"; } +.bi-aspect-ratio::before { content: "\f150"; } +.bi-asterisk::before { content: "\f151"; } +.bi-at::before { content: "\f152"; } +.bi-award-fill::before { content: "\f153"; } +.bi-award::before { content: "\f154"; } +.bi-back::before { content: "\f155"; } +.bi-backspace-fill::before { content: "\f156"; } +.bi-backspace-reverse-fill::before { content: "\f157"; } +.bi-backspace-reverse::before { content: "\f158"; } +.bi-backspace::before { content: "\f159"; } +.bi-badge-3d-fill::before { content: "\f15a"; } +.bi-badge-3d::before { content: "\f15b"; } +.bi-badge-4k-fill::before { content: "\f15c"; } +.bi-badge-4k::before { content: "\f15d"; } +.bi-badge-8k-fill::before { content: "\f15e"; } +.bi-badge-8k::before { content: "\f15f"; } +.bi-badge-ad-fill::before { content: "\f160"; } +.bi-badge-ad::before { content: "\f161"; } +.bi-badge-ar-fill::before { content: "\f162"; } +.bi-badge-ar::before { content: "\f163"; } +.bi-badge-cc-fill::before { content: "\f164"; } +.bi-badge-cc::before { content: "\f165"; } +.bi-badge-hd-fill::before { content: "\f166"; } +.bi-badge-hd::before { content: "\f167"; } +.bi-badge-tm-fill::before { content: "\f168"; } +.bi-badge-tm::before { content: "\f169"; } +.bi-badge-vo-fill::before { content: "\f16a"; } +.bi-badge-vo::before { content: "\f16b"; } +.bi-badge-vr-fill::before { content: "\f16c"; } +.bi-badge-vr::before { content: "\f16d"; } +.bi-badge-wc-fill::before { content: "\f16e"; } +.bi-badge-wc::before { content: "\f16f"; } +.bi-bag-check-fill::before { content: "\f170"; } +.bi-bag-check::before { content: "\f171"; } +.bi-bag-dash-fill::before { content: "\f172"; } +.bi-bag-dash::before { content: "\f173"; } +.bi-bag-fill::before { content: "\f174"; } +.bi-bag-plus-fill::before { content: "\f175"; } +.bi-bag-plus::before { content: "\f176"; } +.bi-bag-x-fill::before { content: "\f177"; } +.bi-bag-x::before { content: "\f178"; } +.bi-bag::before { content: "\f179"; } +.bi-bar-chart-fill::before { content: "\f17a"; } +.bi-bar-chart-line-fill::before { content: "\f17b"; } +.bi-bar-chart-line::before { content: "\f17c"; } +.bi-bar-chart-steps::before { content: "\f17d"; } +.bi-bar-chart::before { content: "\f17e"; } +.bi-basket-fill::before { content: "\f17f"; } +.bi-basket::before { content: "\f180"; } +.bi-basket2-fill::before { content: "\f181"; } +.bi-basket2::before { content: "\f182"; } +.bi-basket3-fill::before { content: "\f183"; } +.bi-basket3::before { content: "\f184"; } +.bi-battery-charging::before { content: "\f185"; } +.bi-battery-full::before { content: "\f186"; } +.bi-battery-half::before { content: "\f187"; } +.bi-battery::before { content: "\f188"; } +.bi-bell-fill::before { content: "\f189"; } +.bi-bell::before { content: "\f18a"; } +.bi-bezier::before { content: "\f18b"; } +.bi-bezier2::before { content: "\f18c"; } +.bi-bicycle::before { content: "\f18d"; } +.bi-binoculars-fill::before { content: "\f18e"; } +.bi-binoculars::before { content: "\f18f"; } +.bi-blockquote-left::before { content: "\f190"; } +.bi-blockquote-right::before { content: "\f191"; } +.bi-book-fill::before { content: "\f192"; } +.bi-book-half::before { content: "\f193"; } +.bi-book::before { content: "\f194"; } +.bi-bookmark-check-fill::before { content: "\f195"; } +.bi-bookmark-check::before { content: "\f196"; } +.bi-bookmark-dash-fill::before { content: "\f197"; } +.bi-bookmark-dash::before { content: "\f198"; } +.bi-bookmark-fill::before { content: "\f199"; } +.bi-bookmark-heart-fill::before { content: "\f19a"; } +.bi-bookmark-heart::before { content: "\f19b"; } +.bi-bookmark-plus-fill::before { content: "\f19c"; } +.bi-bookmark-plus::before { content: "\f19d"; } +.bi-bookmark-star-fill::before { content: "\f19e"; } +.bi-bookmark-star::before { content: "\f19f"; } +.bi-bookmark-x-fill::before { content: "\f1a0"; } +.bi-bookmark-x::before { content: "\f1a1"; } +.bi-bookmark::before { content: "\f1a2"; } +.bi-bookmarks-fill::before { content: "\f1a3"; } +.bi-bookmarks::before { content: "\f1a4"; } +.bi-bookshelf::before { content: "\f1a5"; } +.bi-bootstrap-fill::before { content: "\f1a6"; } +.bi-bootstrap-reboot::before { content: "\f1a7"; } +.bi-bootstrap::before { content: "\f1a8"; } +.bi-border-all::before { content: "\f1a9"; } +.bi-border-bottom::before { content: "\f1aa"; } +.bi-border-center::before { content: "\f1ab"; } +.bi-border-inner::before { content: "\f1ac"; } +.bi-border-left::before { content: "\f1ad"; } +.bi-border-middle::before { content: "\f1ae"; } +.bi-border-outer::before { content: "\f1af"; } +.bi-border-right::before { content: "\f1b0"; } +.bi-border-style::before { content: "\f1b1"; } +.bi-border-top::before { content: "\f1b2"; } +.bi-border-width::before { content: "\f1b3"; } +.bi-border::before { content: "\f1b4"; } +.bi-bounding-box-circles::before { content: "\f1b5"; } +.bi-bounding-box::before { content: "\f1b6"; } +.bi-box-arrow-down-left::before { content: "\f1b7"; } +.bi-box-arrow-down-right::before { content: "\f1b8"; } +.bi-box-arrow-down::before { content: "\f1b9"; } +.bi-box-arrow-in-down-left::before { content: "\f1ba"; } +.bi-box-arrow-in-down-right::before { content: "\f1bb"; } +.bi-box-arrow-in-down::before { content: "\f1bc"; } +.bi-box-arrow-in-left::before { content: "\f1bd"; } +.bi-box-arrow-in-right::before { content: "\f1be"; } +.bi-box-arrow-in-up-left::before { content: "\f1bf"; } +.bi-box-arrow-in-up-right::before { content: "\f1c0"; } +.bi-box-arrow-in-up::before { content: "\f1c1"; } +.bi-box-arrow-left::before { content: "\f1c2"; } +.bi-box-arrow-right::before { content: "\f1c3"; } +.bi-box-arrow-up-left::before { content: "\f1c4"; } +.bi-box-arrow-up-right::before { content: "\f1c5"; } +.bi-box-arrow-up::before { content: "\f1c6"; } +.bi-box-seam::before { content: "\f1c7"; } +.bi-box::before { content: "\f1c8"; } +.bi-braces::before { content: "\f1c9"; } +.bi-bricks::before { content: "\f1ca"; } +.bi-briefcase-fill::before { content: "\f1cb"; } +.bi-briefcase::before { content: "\f1cc"; } +.bi-brightness-alt-high-fill::before { content: "\f1cd"; } +.bi-brightness-alt-high::before { content: "\f1ce"; } +.bi-brightness-alt-low-fill::before { content: "\f1cf"; } +.bi-brightness-alt-low::before { content: "\f1d0"; } +.bi-brightness-high-fill::before { content: "\f1d1"; } +.bi-brightness-high::before { content: "\f1d2"; } +.bi-brightness-low-fill::before { content: "\f1d3"; } +.bi-brightness-low::before { content: "\f1d4"; } +.bi-broadcast-pin::before { content: "\f1d5"; } +.bi-broadcast::before { content: "\f1d6"; } +.bi-brush-fill::before { content: "\f1d7"; } +.bi-brush::before { content: "\f1d8"; } +.bi-bucket-fill::before { content: "\f1d9"; } +.bi-bucket::before { content: "\f1da"; } +.bi-bug-fill::before { content: "\f1db"; } +.bi-bug::before { content: "\f1dc"; } +.bi-building::before { content: "\f1dd"; } +.bi-bullseye::before { content: "\f1de"; } +.bi-calculator-fill::before { content: "\f1df"; } +.bi-calculator::before { content: "\f1e0"; } +.bi-calendar-check-fill::before { content: "\f1e1"; } +.bi-calendar-check::before { content: "\f1e2"; } +.bi-calendar-date-fill::before { content: "\f1e3"; } +.bi-calendar-date::before { content: "\f1e4"; } +.bi-calendar-day-fill::before { content: "\f1e5"; } +.bi-calendar-day::before { content: "\f1e6"; } +.bi-calendar-event-fill::before { content: "\f1e7"; } +.bi-calendar-event::before { content: "\f1e8"; } +.bi-calendar-fill::before { content: "\f1e9"; } +.bi-calendar-minus-fill::before { content: "\f1ea"; } +.bi-calendar-minus::before { content: "\f1eb"; } +.bi-calendar-month-fill::before { content: "\f1ec"; } +.bi-calendar-month::before { content: "\f1ed"; } +.bi-calendar-plus-fill::before { content: "\f1ee"; } +.bi-calendar-plus::before { content: "\f1ef"; } +.bi-calendar-range-fill::before { content: "\f1f0"; } +.bi-calendar-range::before { content: "\f1f1"; } +.bi-calendar-week-fill::before { content: "\f1f2"; } +.bi-calendar-week::before { content: "\f1f3"; } +.bi-calendar-x-fill::before { content: "\f1f4"; } +.bi-calendar-x::before { content: "\f1f5"; } +.bi-calendar::before { content: "\f1f6"; } +.bi-calendar2-check-fill::before { content: "\f1f7"; } +.bi-calendar2-check::before { content: "\f1f8"; } +.bi-calendar2-date-fill::before { content: "\f1f9"; } +.bi-calendar2-date::before { content: "\f1fa"; } +.bi-calendar2-day-fill::before { content: "\f1fb"; } +.bi-calendar2-day::before { content: "\f1fc"; } +.bi-calendar2-event-fill::before { content: "\f1fd"; } +.bi-calendar2-event::before { content: "\f1fe"; } +.bi-calendar2-fill::before { content: "\f1ff"; } +.bi-calendar2-minus-fill::before { content: "\f200"; } +.bi-calendar2-minus::before { content: "\f201"; } +.bi-calendar2-month-fill::before { content: "\f202"; } +.bi-calendar2-month::before { content: "\f203"; } +.bi-calendar2-plus-fill::before { content: "\f204"; } +.bi-calendar2-plus::before { content: "\f205"; } +.bi-calendar2-range-fill::before { content: "\f206"; } +.bi-calendar2-range::before { content: "\f207"; } +.bi-calendar2-week-fill::before { content: "\f208"; } +.bi-calendar2-week::before { content: "\f209"; } +.bi-calendar2-x-fill::before { content: "\f20a"; } +.bi-calendar2-x::before { content: "\f20b"; } +.bi-calendar2::before { content: "\f20c"; } +.bi-calendar3-event-fill::before { content: "\f20d"; } +.bi-calendar3-event::before { content: "\f20e"; } +.bi-calendar3-fill::before { content: "\f20f"; } +.bi-calendar3-range-fill::before { content: "\f210"; } +.bi-calendar3-range::before { content: "\f211"; } +.bi-calendar3-week-fill::before { content: "\f212"; } +.bi-calendar3-week::before { content: "\f213"; } +.bi-calendar3::before { content: "\f214"; } +.bi-calendar4-event::before { content: "\f215"; } +.bi-calendar4-range::before { content: "\f216"; } +.bi-calendar4-week::before { content: "\f217"; } +.bi-calendar4::before { content: "\f218"; } +.bi-camera-fill::before { content: "\f219"; } +.bi-camera-reels-fill::before { content: "\f21a"; } +.bi-camera-reels::before { content: "\f21b"; } +.bi-camera-video-fill::before { content: "\f21c"; } +.bi-camera-video-off-fill::before { content: "\f21d"; } +.bi-camera-video-off::before { content: "\f21e"; } +.bi-camera-video::before { content: "\f21f"; } +.bi-camera::before { content: "\f220"; } +.bi-camera2::before { content: "\f221"; } +.bi-capslock-fill::before { content: "\f222"; } +.bi-capslock::before { content: "\f223"; } +.bi-card-checklist::before { content: "\f224"; } +.bi-card-heading::before { content: "\f225"; } +.bi-card-image::before { content: "\f226"; } +.bi-card-list::before { content: "\f227"; } +.bi-card-text::before { content: "\f228"; } +.bi-caret-down-fill::before { content: "\f229"; } +.bi-caret-down-square-fill::before { content: "\f22a"; } +.bi-caret-down-square::before { content: "\f22b"; } +.bi-caret-down::before { content: "\f22c"; } +.bi-caret-left-fill::before { content: "\f22d"; } +.bi-caret-left-square-fill::before { content: "\f22e"; } +.bi-caret-left-square::before { content: "\f22f"; } +.bi-caret-left::before { content: "\f230"; } +.bi-caret-right-fill::before { content: "\f231"; } +.bi-caret-right-square-fill::before { content: "\f232"; } +.bi-caret-right-square::before { content: "\f233"; } +.bi-caret-right::before { content: "\f234"; } +.bi-caret-up-fill::before { content: "\f235"; } +.bi-caret-up-square-fill::before { content: "\f236"; } +.bi-caret-up-square::before { content: "\f237"; } +.bi-caret-up::before { content: "\f238"; } +.bi-cart-check-fill::before { content: "\f239"; } +.bi-cart-check::before { content: "\f23a"; } +.bi-cart-dash-fill::before { content: "\f23b"; } +.bi-cart-dash::before { content: "\f23c"; } +.bi-cart-fill::before { content: "\f23d"; } +.bi-cart-plus-fill::before { content: "\f23e"; } +.bi-cart-plus::before { content: "\f23f"; } +.bi-cart-x-fill::before { content: "\f240"; } +.bi-cart-x::before { content: "\f241"; } +.bi-cart::before { content: "\f242"; } +.bi-cart2::before { content: "\f243"; } +.bi-cart3::before { content: "\f244"; } +.bi-cart4::before { content: "\f245"; } +.bi-cash-stack::before { content: "\f246"; } +.bi-cash::before { content: "\f247"; } +.bi-cast::before { content: "\f248"; } +.bi-chat-dots-fill::before { content: "\f249"; } +.bi-chat-dots::before { content: "\f24a"; } +.bi-chat-fill::before { content: "\f24b"; } +.bi-chat-left-dots-fill::before { content: "\f24c"; } +.bi-chat-left-dots::before { content: "\f24d"; } +.bi-chat-left-fill::before { content: "\f24e"; } +.bi-chat-left-quote-fill::before { content: "\f24f"; } +.bi-chat-left-quote::before { content: "\f250"; } +.bi-chat-left-text-fill::before { content: "\f251"; } +.bi-chat-left-text::before { content: "\f252"; } +.bi-chat-left::before { content: "\f253"; } +.bi-chat-quote-fill::before { content: "\f254"; } +.bi-chat-quote::before { content: "\f255"; } +.bi-chat-right-dots-fill::before { content: "\f256"; } +.bi-chat-right-dots::before { content: "\f257"; } +.bi-chat-right-fill::before { content: "\f258"; } +.bi-chat-right-quote-fill::before { content: "\f259"; } +.bi-chat-right-quote::before { content: "\f25a"; } +.bi-chat-right-text-fill::before { content: "\f25b"; } +.bi-chat-right-text::before { content: "\f25c"; } +.bi-chat-right::before { content: "\f25d"; } +.bi-chat-square-dots-fill::before { content: "\f25e"; } +.bi-chat-square-dots::before { content: "\f25f"; } +.bi-chat-square-fill::before { content: "\f260"; } +.bi-chat-square-quote-fill::before { content: "\f261"; } +.bi-chat-square-quote::before { content: "\f262"; } +.bi-chat-square-text-fill::before { content: "\f263"; } +.bi-chat-square-text::before { content: "\f264"; } +.bi-chat-square::before { content: "\f265"; } +.bi-chat-text-fill::before { content: "\f266"; } +.bi-chat-text::before { content: "\f267"; } +.bi-chat::before { content: "\f268"; } +.bi-check-all::before { content: "\f269"; } +.bi-check-circle-fill::before { content: "\f26a"; } +.bi-check-circle::before { content: "\f26b"; } +.bi-check-square-fill::before { content: "\f26c"; } +.bi-check-square::before { content: "\f26d"; } +.bi-check::before { content: "\f26e"; } +.bi-check2-all::before { content: "\f26f"; } +.bi-check2-circle::before { content: "\f270"; } +.bi-check2-square::before { content: "\f271"; } +.bi-check2::before { content: "\f272"; } +.bi-chevron-bar-contract::before { content: "\f273"; } +.bi-chevron-bar-down::before { content: "\f274"; } +.bi-chevron-bar-expand::before { content: "\f275"; } +.bi-chevron-bar-left::before { content: "\f276"; } +.bi-chevron-bar-right::before { content: "\f277"; } +.bi-chevron-bar-up::before { content: "\f278"; } +.bi-chevron-compact-down::before { content: "\f279"; } +.bi-chevron-compact-left::before { content: "\f27a"; } +.bi-chevron-compact-right::before { content: "\f27b"; } +.bi-chevron-compact-up::before { content: "\f27c"; } +.bi-chevron-contract::before { content: "\f27d"; } +.bi-chevron-double-down::before { content: "\f27e"; } +.bi-chevron-double-left::before { content: "\f27f"; } +.bi-chevron-double-right::before { content: "\f280"; } +.bi-chevron-double-up::before { content: "\f281"; } +.bi-chevron-down::before { content: "\f282"; } +.bi-chevron-expand::before { content: "\f283"; } +.bi-chevron-left::before { content: "\f284"; } +.bi-chevron-right::before { content: "\f285"; } +.bi-chevron-up::before { content: "\f286"; } +.bi-circle-fill::before { content: "\f287"; } +.bi-circle-half::before { content: "\f288"; } +.bi-circle-square::before { content: "\f289"; } +.bi-circle::before { content: "\f28a"; } +.bi-clipboard-check::before { content: "\f28b"; } +.bi-clipboard-data::before { content: "\f28c"; } +.bi-clipboard-minus::before { content: "\f28d"; } +.bi-clipboard-plus::before { content: "\f28e"; } +.bi-clipboard-x::before { content: "\f28f"; } +.bi-clipboard::before { content: "\f290"; } +.bi-clock-fill::before { content: "\f291"; } +.bi-clock-history::before { content: "\f292"; } +.bi-clock::before { content: "\f293"; } +.bi-cloud-arrow-down-fill::before { content: "\f294"; } +.bi-cloud-arrow-down::before { content: "\f295"; } +.bi-cloud-arrow-up-fill::before { content: "\f296"; } +.bi-cloud-arrow-up::before { content: "\f297"; } +.bi-cloud-check-fill::before { content: "\f298"; } +.bi-cloud-check::before { content: "\f299"; } +.bi-cloud-download-fill::before { content: "\f29a"; } +.bi-cloud-download::before { content: "\f29b"; } +.bi-cloud-drizzle-fill::before { content: "\f29c"; } +.bi-cloud-drizzle::before { content: "\f29d"; } +.bi-cloud-fill::before { content: "\f29e"; } +.bi-cloud-fog-fill::before { content: "\f29f"; } +.bi-cloud-fog::before { content: "\f2a0"; } +.bi-cloud-fog2-fill::before { content: "\f2a1"; } +.bi-cloud-fog2::before { content: "\f2a2"; } +.bi-cloud-hail-fill::before { content: "\f2a3"; } +.bi-cloud-hail::before { content: "\f2a4"; } +.bi-cloud-haze-fill::before { content: "\f2a6"; } +.bi-cloud-haze::before { content: "\f2a7"; } +.bi-cloud-haze2-fill::before { content: "\f2a8"; } +.bi-cloud-lightning-fill::before { content: "\f2a9"; } +.bi-cloud-lightning-rain-fill::before { content: "\f2aa"; } +.bi-cloud-lightning-rain::before { content: "\f2ab"; } +.bi-cloud-lightning::before { content: "\f2ac"; } +.bi-cloud-minus-fill::before { content: "\f2ad"; } +.bi-cloud-minus::before { content: "\f2ae"; } +.bi-cloud-moon-fill::before { content: "\f2af"; } +.bi-cloud-moon::before { content: "\f2b0"; } +.bi-cloud-plus-fill::before { content: "\f2b1"; } +.bi-cloud-plus::before { content: "\f2b2"; } +.bi-cloud-rain-fill::before { content: "\f2b3"; } +.bi-cloud-rain-heavy-fill::before { content: "\f2b4"; } +.bi-cloud-rain-heavy::before { content: "\f2b5"; } +.bi-cloud-rain::before { content: "\f2b6"; } +.bi-cloud-slash-fill::before { content: "\f2b7"; } +.bi-cloud-slash::before { content: "\f2b8"; } +.bi-cloud-sleet-fill::before { content: "\f2b9"; } +.bi-cloud-sleet::before { content: "\f2ba"; } +.bi-cloud-snow-fill::before { content: "\f2bb"; } +.bi-cloud-snow::before { content: "\f2bc"; } +.bi-cloud-sun-fill::before { content: "\f2bd"; } +.bi-cloud-sun::before { content: "\f2be"; } +.bi-cloud-upload-fill::before { content: "\f2bf"; } +.bi-cloud-upload::before { content: "\f2c0"; } +.bi-cloud::before { content: "\f2c1"; } +.bi-clouds-fill::before { content: "\f2c2"; } +.bi-clouds::before { content: "\f2c3"; } +.bi-cloudy-fill::before { content: "\f2c4"; } +.bi-cloudy::before { content: "\f2c5"; } +.bi-code-slash::before { content: "\f2c6"; } +.bi-code-square::before { content: "\f2c7"; } +.bi-code::before { content: "\f2c8"; } +.bi-collection-fill::before { content: "\f2c9"; } +.bi-collection-play-fill::before { content: "\f2ca"; } +.bi-collection-play::before { content: "\f2cb"; } +.bi-collection::before { content: "\f2cc"; } +.bi-columns-gap::before { content: "\f2cd"; } +.bi-columns::before { content: "\f2ce"; } +.bi-command::before { content: "\f2cf"; } +.bi-compass-fill::before { content: "\f2d0"; } +.bi-compass::before { content: "\f2d1"; } +.bi-cone-striped::before { content: "\f2d2"; } +.bi-cone::before { content: "\f2d3"; } +.bi-controller::before { content: "\f2d4"; } +.bi-cpu-fill::before { content: "\f2d5"; } +.bi-cpu::before { content: "\f2d6"; } +.bi-credit-card-2-back-fill::before { content: "\f2d7"; } +.bi-credit-card-2-back::before { content: "\f2d8"; } +.bi-credit-card-2-front-fill::before { content: "\f2d9"; } +.bi-credit-card-2-front::before { content: "\f2da"; } +.bi-credit-card-fill::before { content: "\f2db"; } +.bi-credit-card::before { content: "\f2dc"; } +.bi-crop::before { content: "\f2dd"; } +.bi-cup-fill::before { content: "\f2de"; } +.bi-cup-straw::before { content: "\f2df"; } +.bi-cup::before { content: "\f2e0"; } +.bi-cursor-fill::before { content: "\f2e1"; } +.bi-cursor-text::before { content: "\f2e2"; } +.bi-cursor::before { content: "\f2e3"; } +.bi-dash-circle-dotted::before { content: "\f2e4"; } +.bi-dash-circle-fill::before { content: "\f2e5"; } +.bi-dash-circle::before { content: "\f2e6"; } +.bi-dash-square-dotted::before { content: "\f2e7"; } +.bi-dash-square-fill::before { content: "\f2e8"; } +.bi-dash-square::before { content: "\f2e9"; } +.bi-dash::before { content: "\f2ea"; } +.bi-diagram-2-fill::before { content: "\f2eb"; } +.bi-diagram-2::before { content: "\f2ec"; } +.bi-diagram-3-fill::before { content: "\f2ed"; } +.bi-diagram-3::before { content: "\f2ee"; } +.bi-diamond-fill::before { content: "\f2ef"; } +.bi-diamond-half::before { content: "\f2f0"; } +.bi-diamond::before { content: "\f2f1"; } +.bi-dice-1-fill::before { content: "\f2f2"; } +.bi-dice-1::before { content: "\f2f3"; } +.bi-dice-2-fill::before { content: "\f2f4"; } +.bi-dice-2::before { content: "\f2f5"; } +.bi-dice-3-fill::before { content: "\f2f6"; } +.bi-dice-3::before { content: "\f2f7"; } +.bi-dice-4-fill::before { content: "\f2f8"; } +.bi-dice-4::before { content: "\f2f9"; } +.bi-dice-5-fill::before { content: "\f2fa"; } +.bi-dice-5::before { content: "\f2fb"; } +.bi-dice-6-fill::before { content: "\f2fc"; } +.bi-dice-6::before { content: "\f2fd"; } +.bi-disc-fill::before { content: "\f2fe"; } +.bi-disc::before { content: "\f2ff"; } +.bi-discord::before { content: "\f300"; } +.bi-display-fill::before { content: "\f301"; } +.bi-display::before { content: "\f302"; } +.bi-distribute-horizontal::before { content: "\f303"; } +.bi-distribute-vertical::before { content: "\f304"; } +.bi-door-closed-fill::before { content: "\f305"; } +.bi-door-closed::before { content: "\f306"; } +.bi-door-open-fill::before { content: "\f307"; } +.bi-door-open::before { content: "\f308"; } +.bi-dot::before { content: "\f309"; } +.bi-download::before { content: "\f30a"; } +.bi-droplet-fill::before { content: "\f30b"; } +.bi-droplet-half::before { content: "\f30c"; } +.bi-droplet::before { content: "\f30d"; } +.bi-earbuds::before { content: "\f30e"; } +.bi-easel-fill::before { content: "\f30f"; } +.bi-easel::before { content: "\f310"; } +.bi-egg-fill::before { content: "\f311"; } +.bi-egg-fried::before { content: "\f312"; } +.bi-egg::before { content: "\f313"; } +.bi-eject-fill::before { content: "\f314"; } +.bi-eject::before { content: "\f315"; } +.bi-emoji-angry-fill::before { content: "\f316"; } +.bi-emoji-angry::before { content: "\f317"; } +.bi-emoji-dizzy-fill::before { content: "\f318"; } +.bi-emoji-dizzy::before { content: "\f319"; } +.bi-emoji-expressionless-fill::before { content: "\f31a"; } +.bi-emoji-expressionless::before { content: "\f31b"; } +.bi-emoji-frown-fill::before { content: "\f31c"; } +.bi-emoji-frown::before { content: "\f31d"; } +.bi-emoji-heart-eyes-fill::before { content: "\f31e"; } +.bi-emoji-heart-eyes::before { content: "\f31f"; } +.bi-emoji-laughing-fill::before { content: "\f320"; } +.bi-emoji-laughing::before { content: "\f321"; } +.bi-emoji-neutral-fill::before { content: "\f322"; } +.bi-emoji-neutral::before { content: "\f323"; } +.bi-emoji-smile-fill::before { content: "\f324"; } +.bi-emoji-smile-upside-down-fill::before { content: "\f325"; } +.bi-emoji-smile-upside-down::before { content: "\f326"; } +.bi-emoji-smile::before { content: "\f327"; } +.bi-emoji-sunglasses-fill::before { content: "\f328"; } +.bi-emoji-sunglasses::before { content: "\f329"; } +.bi-emoji-wink-fill::before { content: "\f32a"; } +.bi-emoji-wink::before { content: "\f32b"; } +.bi-envelope-fill::before { content: "\f32c"; } +.bi-envelope-open-fill::before { content: "\f32d"; } +.bi-envelope-open::before { content: "\f32e"; } +.bi-envelope::before { content: "\f32f"; } +.bi-eraser-fill::before { content: "\f330"; } +.bi-eraser::before { content: "\f331"; } +.bi-exclamation-circle-fill::before { content: "\f332"; } +.bi-exclamation-circle::before { content: "\f333"; } +.bi-exclamation-diamond-fill::before { content: "\f334"; } +.bi-exclamation-diamond::before { content: "\f335"; } +.bi-exclamation-octagon-fill::before { content: "\f336"; } +.bi-exclamation-octagon::before { content: "\f337"; } +.bi-exclamation-square-fill::before { content: "\f338"; } +.bi-exclamation-square::before { content: "\f339"; } +.bi-exclamation-triangle-fill::before { content: "\f33a"; } +.bi-exclamation-triangle::before { content: "\f33b"; } +.bi-exclamation::before { content: "\f33c"; } +.bi-exclude::before { content: "\f33d"; } +.bi-eye-fill::before { content: "\f33e"; } +.bi-eye-slash-fill::before { content: "\f33f"; } +.bi-eye-slash::before { content: "\f340"; } +.bi-eye::before { content: "\f341"; } +.bi-eyedropper::before { content: "\f342"; } +.bi-eyeglasses::before { content: "\f343"; } +.bi-facebook::before { content: "\f344"; } +.bi-file-arrow-down-fill::before { content: "\f345"; } +.bi-file-arrow-down::before { content: "\f346"; } +.bi-file-arrow-up-fill::before { content: "\f347"; } +.bi-file-arrow-up::before { content: "\f348"; } +.bi-file-bar-graph-fill::before { content: "\f349"; } +.bi-file-bar-graph::before { content: "\f34a"; } +.bi-file-binary-fill::before { content: "\f34b"; } +.bi-file-binary::before { content: "\f34c"; } +.bi-file-break-fill::before { content: "\f34d"; } +.bi-file-break::before { content: "\f34e"; } +.bi-file-check-fill::before { content: "\f34f"; } +.bi-file-check::before { content: "\f350"; } +.bi-file-code-fill::before { content: "\f351"; } +.bi-file-code::before { content: "\f352"; } +.bi-file-diff-fill::before { content: "\f353"; } +.bi-file-diff::before { content: "\f354"; } +.bi-file-earmark-arrow-down-fill::before { content: "\f355"; } +.bi-file-earmark-arrow-down::before { content: "\f356"; } +.bi-file-earmark-arrow-up-fill::before { content: "\f357"; } +.bi-file-earmark-arrow-up::before { content: "\f358"; } +.bi-file-earmark-bar-graph-fill::before { content: "\f359"; } +.bi-file-earmark-bar-graph::before { content: "\f35a"; } +.bi-file-earmark-binary-fill::before { content: "\f35b"; } +.bi-file-earmark-binary::before { content: "\f35c"; } +.bi-file-earmark-break-fill::before { content: "\f35d"; } +.bi-file-earmark-break::before { content: "\f35e"; } +.bi-file-earmark-check-fill::before { content: "\f35f"; } +.bi-file-earmark-check::before { content: "\f360"; } +.bi-file-earmark-code-fill::before { content: "\f361"; } +.bi-file-earmark-code::before { content: "\f362"; } +.bi-file-earmark-diff-fill::before { content: "\f363"; } +.bi-file-earmark-diff::before { content: "\f364"; } +.bi-file-earmark-easel-fill::before { content: "\f365"; } +.bi-file-earmark-easel::before { content: "\f366"; } +.bi-file-earmark-excel-fill::before { content: "\f367"; } +.bi-file-earmark-excel::before { content: "\f368"; } +.bi-file-earmark-fill::before { content: "\f369"; } +.bi-file-earmark-font-fill::before { content: "\f36a"; } +.bi-file-earmark-font::before { content: "\f36b"; } +.bi-file-earmark-image-fill::before { content: "\f36c"; } +.bi-file-earmark-image::before { content: "\f36d"; } +.bi-file-earmark-lock-fill::before { content: "\f36e"; } +.bi-file-earmark-lock::before { content: "\f36f"; } +.bi-file-earmark-lock2-fill::before { content: "\f370"; } +.bi-file-earmark-lock2::before { content: "\f371"; } +.bi-file-earmark-medical-fill::before { content: "\f372"; } +.bi-file-earmark-medical::before { content: "\f373"; } +.bi-file-earmark-minus-fill::before { content: "\f374"; } +.bi-file-earmark-minus::before { content: "\f375"; } +.bi-file-earmark-music-fill::before { content: "\f376"; } +.bi-file-earmark-music::before { content: "\f377"; } +.bi-file-earmark-person-fill::before { content: "\f378"; } +.bi-file-earmark-person::before { content: "\f379"; } +.bi-file-earmark-play-fill::before { content: "\f37a"; } +.bi-file-earmark-play::before { content: "\f37b"; } +.bi-file-earmark-plus-fill::before { content: "\f37c"; } +.bi-file-earmark-plus::before { content: "\f37d"; } +.bi-file-earmark-post-fill::before { content: "\f37e"; } +.bi-file-earmark-post::before { content: "\f37f"; } +.bi-file-earmark-ppt-fill::before { content: "\f380"; } +.bi-file-earmark-ppt::before { content: "\f381"; } +.bi-file-earmark-richtext-fill::before { content: "\f382"; } +.bi-file-earmark-richtext::before { content: "\f383"; } +.bi-file-earmark-ruled-fill::before { content: "\f384"; } +.bi-file-earmark-ruled::before { content: "\f385"; } +.bi-file-earmark-slides-fill::before { content: "\f386"; } +.bi-file-earmark-slides::before { content: "\f387"; } +.bi-file-earmark-spreadsheet-fill::before { content: "\f388"; } +.bi-file-earmark-spreadsheet::before { content: "\f389"; } +.bi-file-earmark-text-fill::before { content: "\f38a"; } +.bi-file-earmark-text::before { content: "\f38b"; } +.bi-file-earmark-word-fill::before { content: "\f38c"; } +.bi-file-earmark-word::before { content: "\f38d"; } +.bi-file-earmark-x-fill::before { content: "\f38e"; } +.bi-file-earmark-x::before { content: "\f38f"; } +.bi-file-earmark-zip-fill::before { content: "\f390"; } +.bi-file-earmark-zip::before { content: "\f391"; } +.bi-file-earmark::before { content: "\f392"; } +.bi-file-easel-fill::before { content: "\f393"; } +.bi-file-easel::before { content: "\f394"; } +.bi-file-excel-fill::before { content: "\f395"; } +.bi-file-excel::before { content: "\f396"; } +.bi-file-fill::before { content: "\f397"; } +.bi-file-font-fill::before { content: "\f398"; } +.bi-file-font::before { content: "\f399"; } +.bi-file-image-fill::before { content: "\f39a"; } +.bi-file-image::before { content: "\f39b"; } +.bi-file-lock-fill::before { content: "\f39c"; } +.bi-file-lock::before { content: "\f39d"; } +.bi-file-lock2-fill::before { content: "\f39e"; } +.bi-file-lock2::before { content: "\f39f"; } +.bi-file-medical-fill::before { content: "\f3a0"; } +.bi-file-medical::before { content: "\f3a1"; } +.bi-file-minus-fill::before { content: "\f3a2"; } +.bi-file-minus::before { content: "\f3a3"; } +.bi-file-music-fill::before { content: "\f3a4"; } +.bi-file-music::before { content: "\f3a5"; } +.bi-file-person-fill::before { content: "\f3a6"; } +.bi-file-person::before { content: "\f3a7"; } +.bi-file-play-fill::before { content: "\f3a8"; } +.bi-file-play::before { content: "\f3a9"; } +.bi-file-plus-fill::before { content: "\f3aa"; } +.bi-file-plus::before { content: "\f3ab"; } +.bi-file-post-fill::before { content: "\f3ac"; } +.bi-file-post::before { content: "\f3ad"; } +.bi-file-ppt-fill::before { content: "\f3ae"; } +.bi-file-ppt::before { content: "\f3af"; } +.bi-file-richtext-fill::before { content: "\f3b0"; } +.bi-file-richtext::before { content: "\f3b1"; } +.bi-file-ruled-fill::before { content: "\f3b2"; } +.bi-file-ruled::before { content: "\f3b3"; } +.bi-file-slides-fill::before { content: "\f3b4"; } +.bi-file-slides::before { content: "\f3b5"; } +.bi-file-spreadsheet-fill::before { content: "\f3b6"; } +.bi-file-spreadsheet::before { content: "\f3b7"; } +.bi-file-text-fill::before { content: "\f3b8"; } +.bi-file-text::before { content: "\f3b9"; } +.bi-file-word-fill::before { content: "\f3ba"; } +.bi-file-word::before { content: "\f3bb"; } +.bi-file-x-fill::before { content: "\f3bc"; } +.bi-file-x::before { content: "\f3bd"; } +.bi-file-zip-fill::before { content: "\f3be"; } +.bi-file-zip::before { content: "\f3bf"; } +.bi-file::before { content: "\f3c0"; } +.bi-files-alt::before { content: "\f3c1"; } +.bi-files::before { content: "\f3c2"; } +.bi-film::before { content: "\f3c3"; } +.bi-filter-circle-fill::before { content: "\f3c4"; } +.bi-filter-circle::before { content: "\f3c5"; } +.bi-filter-left::before { content: "\f3c6"; } +.bi-filter-right::before { content: "\f3c7"; } +.bi-filter-square-fill::before { content: "\f3c8"; } +.bi-filter-square::before { content: "\f3c9"; } +.bi-filter::before { content: "\f3ca"; } +.bi-flag-fill::before { content: "\f3cb"; } +.bi-flag::before { content: "\f3cc"; } +.bi-flower1::before { content: "\f3cd"; } +.bi-flower2::before { content: "\f3ce"; } +.bi-flower3::before { content: "\f3cf"; } +.bi-folder-check::before { content: "\f3d0"; } +.bi-folder-fill::before { content: "\f3d1"; } +.bi-folder-minus::before { content: "\f3d2"; } +.bi-folder-plus::before { content: "\f3d3"; } +.bi-folder-symlink-fill::before { content: "\f3d4"; } +.bi-folder-symlink::before { content: "\f3d5"; } +.bi-folder-x::before { content: "\f3d6"; } +.bi-folder::before { content: "\f3d7"; } +.bi-folder2-open::before { content: "\f3d8"; } +.bi-folder2::before { content: "\f3d9"; } +.bi-fonts::before { content: "\f3da"; } +.bi-forward-fill::before { content: "\f3db"; } +.bi-forward::before { content: "\f3dc"; } +.bi-front::before { content: "\f3dd"; } +.bi-fullscreen-exit::before { content: "\f3de"; } +.bi-fullscreen::before { content: "\f3df"; } +.bi-funnel-fill::before { content: "\f3e0"; } +.bi-funnel::before { content: "\f3e1"; } +.bi-gear-fill::before { content: "\f3e2"; } +.bi-gear-wide-connected::before { content: "\f3e3"; } +.bi-gear-wide::before { content: "\f3e4"; } +.bi-gear::before { content: "\f3e5"; } +.bi-gem::before { content: "\f3e6"; } +.bi-geo-alt-fill::before { content: "\f3e7"; } +.bi-geo-alt::before { content: "\f3e8"; } +.bi-geo-fill::before { content: "\f3e9"; } +.bi-geo::before { content: "\f3ea"; } +.bi-gift-fill::before { content: "\f3eb"; } +.bi-gift::before { content: "\f3ec"; } +.bi-github::before { content: "\f3ed"; } +.bi-globe::before { content: "\f3ee"; } +.bi-globe2::before { content: "\f3ef"; } +.bi-google::before { content: "\f3f0"; } +.bi-graph-down::before { content: "\f3f1"; } +.bi-graph-up::before { content: "\f3f2"; } +.bi-grid-1x2-fill::before { content: "\f3f3"; } +.bi-grid-1x2::before { content: "\f3f4"; } +.bi-grid-3x2-gap-fill::before { content: "\f3f5"; } +.bi-grid-3x2-gap::before { content: "\f3f6"; } +.bi-grid-3x2::before { content: "\f3f7"; } +.bi-grid-3x3-gap-fill::before { content: "\f3f8"; } +.bi-grid-3x3-gap::before { content: "\f3f9"; } +.bi-grid-3x3::before { content: "\f3fa"; } +.bi-grid-fill::before { content: "\f3fb"; } +.bi-grid::before { content: "\f3fc"; } +.bi-grip-horizontal::before { content: "\f3fd"; } +.bi-grip-vertical::before { content: "\f3fe"; } +.bi-hammer::before { content: "\f3ff"; } +.bi-hand-index-fill::before { content: "\f400"; } +.bi-hand-index-thumb-fill::before { content: "\f401"; } +.bi-hand-index-thumb::before { content: "\f402"; } +.bi-hand-index::before { content: "\f403"; } +.bi-hand-thumbs-down-fill::before { content: "\f404"; } +.bi-hand-thumbs-down::before { content: "\f405"; } +.bi-hand-thumbs-up-fill::before { content: "\f406"; } +.bi-hand-thumbs-up::before { content: "\f407"; } +.bi-handbag-fill::before { content: "\f408"; } +.bi-handbag::before { content: "\f409"; } +.bi-hash::before { content: "\f40a"; } +.bi-hdd-fill::before { content: "\f40b"; } +.bi-hdd-network-fill::before { content: "\f40c"; } +.bi-hdd-network::before { content: "\f40d"; } +.bi-hdd-rack-fill::before { content: "\f40e"; } +.bi-hdd-rack::before { content: "\f40f"; } +.bi-hdd-stack-fill::before { content: "\f410"; } +.bi-hdd-stack::before { content: "\f411"; } +.bi-hdd::before { content: "\f412"; } +.bi-headphones::before { content: "\f413"; } +.bi-headset::before { content: "\f414"; } +.bi-heart-fill::before { content: "\f415"; } +.bi-heart-half::before { content: "\f416"; } +.bi-heart::before { content: "\f417"; } +.bi-heptagon-fill::before { content: "\f418"; } +.bi-heptagon-half::before { content: "\f419"; } +.bi-heptagon::before { content: "\f41a"; } +.bi-hexagon-fill::before { content: "\f41b"; } +.bi-hexagon-half::before { content: "\f41c"; } +.bi-hexagon::before { content: "\f41d"; } +.bi-hourglass-bottom::before { content: "\f41e"; } +.bi-hourglass-split::before { content: "\f41f"; } +.bi-hourglass-top::before { content: "\f420"; } +.bi-hourglass::before { content: "\f421"; } +.bi-house-door-fill::before { content: "\f422"; } +.bi-house-door::before { content: "\f423"; } +.bi-house-fill::before { content: "\f424"; } +.bi-house::before { content: "\f425"; } +.bi-hr::before { content: "\f426"; } +.bi-hurricane::before { content: "\f427"; } +.bi-image-alt::before { content: "\f428"; } +.bi-image-fill::before { content: "\f429"; } +.bi-image::before { content: "\f42a"; } +.bi-images::before { content: "\f42b"; } +.bi-inbox-fill::before { content: "\f42c"; } +.bi-inbox::before { content: "\f42d"; } +.bi-inboxes-fill::before { content: "\f42e"; } +.bi-inboxes::before { content: "\f42f"; } +.bi-info-circle-fill::before { content: "\f430"; } +.bi-info-circle::before { content: "\f431"; } +.bi-info-square-fill::before { content: "\f432"; } +.bi-info-square::before { content: "\f433"; } +.bi-info::before { content: "\f434"; } +.bi-input-cursor-text::before { content: "\f435"; } +.bi-input-cursor::before { content: "\f436"; } +.bi-instagram::before { content: "\f437"; } +.bi-intersect::before { content: "\f438"; } +.bi-journal-album::before { content: "\f439"; } +.bi-journal-arrow-down::before { content: "\f43a"; } +.bi-journal-arrow-up::before { content: "\f43b"; } +.bi-journal-bookmark-fill::before { content: "\f43c"; } +.bi-journal-bookmark::before { content: "\f43d"; } +.bi-journal-check::before { content: "\f43e"; } +.bi-journal-code::before { content: "\f43f"; } +.bi-journal-medical::before { content: "\f440"; } +.bi-journal-minus::before { content: "\f441"; } +.bi-journal-plus::before { content: "\f442"; } +.bi-journal-richtext::before { content: "\f443"; } +.bi-journal-text::before { content: "\f444"; } +.bi-journal-x::before { content: "\f445"; } +.bi-journal::before { content: "\f446"; } +.bi-journals::before { content: "\f447"; } +.bi-joystick::before { content: "\f448"; } +.bi-justify-left::before { content: "\f449"; } +.bi-justify-right::before { content: "\f44a"; } +.bi-justify::before { content: "\f44b"; } +.bi-kanban-fill::before { content: "\f44c"; } +.bi-kanban::before { content: "\f44d"; } +.bi-key-fill::before { content: "\f44e"; } +.bi-key::before { content: "\f44f"; } +.bi-keyboard-fill::before { content: "\f450"; } +.bi-keyboard::before { content: "\f451"; } +.bi-ladder::before { content: "\f452"; } +.bi-lamp-fill::before { content: "\f453"; } +.bi-lamp::before { content: "\f454"; } +.bi-laptop-fill::before { content: "\f455"; } +.bi-laptop::before { content: "\f456"; } +.bi-layer-backward::before { content: "\f457"; } +.bi-layer-forward::before { content: "\f458"; } +.bi-layers-fill::before { content: "\f459"; } +.bi-layers-half::before { content: "\f45a"; } +.bi-layers::before { content: "\f45b"; } +.bi-layout-sidebar-inset-reverse::before { content: "\f45c"; } +.bi-layout-sidebar-inset::before { content: "\f45d"; } +.bi-layout-sidebar-reverse::before { content: "\f45e"; } +.bi-layout-sidebar::before { content: "\f45f"; } +.bi-layout-split::before { content: "\f460"; } +.bi-layout-text-sidebar-reverse::before { content: "\f461"; } +.bi-layout-text-sidebar::before { content: "\f462"; } +.bi-layout-text-window-reverse::before { content: "\f463"; } +.bi-layout-text-window::before { content: "\f464"; } +.bi-layout-three-columns::before { content: "\f465"; } +.bi-layout-wtf::before { content: "\f466"; } +.bi-life-preserver::before { content: "\f467"; } +.bi-lightbulb-fill::before { content: "\f468"; } +.bi-lightbulb-off-fill::before { content: "\f469"; } +.bi-lightbulb-off::before { content: "\f46a"; } +.bi-lightbulb::before { content: "\f46b"; } +.bi-lightning-charge-fill::before { content: "\f46c"; } +.bi-lightning-charge::before { content: "\f46d"; } +.bi-lightning-fill::before { content: "\f46e"; } +.bi-lightning::before { content: "\f46f"; } +.bi-link-45deg::before { content: "\f470"; } +.bi-link::before { content: "\f471"; } +.bi-linkedin::before { content: "\f472"; } +.bi-list-check::before { content: "\f473"; } +.bi-list-nested::before { content: "\f474"; } +.bi-list-ol::before { content: "\f475"; } +.bi-list-stars::before { content: "\f476"; } +.bi-list-task::before { content: "\f477"; } +.bi-list-ul::before { content: "\f478"; } +.bi-list::before { content: "\f479"; } +.bi-lock-fill::before { content: "\f47a"; } +.bi-lock::before { content: "\f47b"; } +.bi-mailbox::before { content: "\f47c"; } +.bi-mailbox2::before { content: "\f47d"; } +.bi-map-fill::before { content: "\f47e"; } +.bi-map::before { content: "\f47f"; } +.bi-markdown-fill::before { content: "\f480"; } +.bi-markdown::before { content: "\f481"; } +.bi-mask::before { content: "\f482"; } +.bi-megaphone-fill::before { content: "\f483"; } +.bi-megaphone::before { content: "\f484"; } +.bi-menu-app-fill::before { content: "\f485"; } +.bi-menu-app::before { content: "\f486"; } +.bi-menu-button-fill::before { content: "\f487"; } +.bi-menu-button-wide-fill::before { content: "\f488"; } +.bi-menu-button-wide::before { content: "\f489"; } +.bi-menu-button::before { content: "\f48a"; } +.bi-menu-down::before { content: "\f48b"; } +.bi-menu-up::before { content: "\f48c"; } +.bi-mic-fill::before { content: "\f48d"; } +.bi-mic-mute-fill::before { content: "\f48e"; } +.bi-mic-mute::before { content: "\f48f"; } +.bi-mic::before { content: "\f490"; } +.bi-minecart-loaded::before { content: "\f491"; } +.bi-minecart::before { content: "\f492"; } +.bi-moisture::before { content: "\f493"; } +.bi-moon-fill::before { content: "\f494"; } +.bi-moon-stars-fill::before { content: "\f495"; } +.bi-moon-stars::before { content: "\f496"; } +.bi-moon::before { content: "\f497"; } +.bi-mouse-fill::before { content: "\f498"; } +.bi-mouse::before { content: "\f499"; } +.bi-mouse2-fill::before { content: "\f49a"; } +.bi-mouse2::before { content: "\f49b"; } +.bi-mouse3-fill::before { content: "\f49c"; } +.bi-mouse3::before { content: "\f49d"; } +.bi-music-note-beamed::before { content: "\f49e"; } +.bi-music-note-list::before { content: "\f49f"; } +.bi-music-note::before { content: "\f4a0"; } +.bi-music-player-fill::before { content: "\f4a1"; } +.bi-music-player::before { content: "\f4a2"; } +.bi-newspaper::before { content: "\f4a3"; } +.bi-node-minus-fill::before { content: "\f4a4"; } +.bi-node-minus::before { content: "\f4a5"; } +.bi-node-plus-fill::before { content: "\f4a6"; } +.bi-node-plus::before { content: "\f4a7"; } +.bi-nut-fill::before { content: "\f4a8"; } +.bi-nut::before { content: "\f4a9"; } +.bi-octagon-fill::before { content: "\f4aa"; } +.bi-octagon-half::before { content: "\f4ab"; } +.bi-octagon::before { content: "\f4ac"; } +.bi-option::before { content: "\f4ad"; } +.bi-outlet::before { content: "\f4ae"; } +.bi-paint-bucket::before { content: "\f4af"; } +.bi-palette-fill::before { content: "\f4b0"; } +.bi-palette::before { content: "\f4b1"; } +.bi-palette2::before { content: "\f4b2"; } +.bi-paperclip::before { content: "\f4b3"; } +.bi-paragraph::before { content: "\f4b4"; } +.bi-patch-check-fill::before { content: "\f4b5"; } +.bi-patch-check::before { content: "\f4b6"; } +.bi-patch-exclamation-fill::before { content: "\f4b7"; } +.bi-patch-exclamation::before { content: "\f4b8"; } +.bi-patch-minus-fill::before { content: "\f4b9"; } +.bi-patch-minus::before { content: "\f4ba"; } +.bi-patch-plus-fill::before { content: "\f4bb"; } +.bi-patch-plus::before { content: "\f4bc"; } +.bi-patch-question-fill::before { content: "\f4bd"; } +.bi-patch-question::before { content: "\f4be"; } +.bi-pause-btn-fill::before { content: "\f4bf"; } +.bi-pause-btn::before { content: "\f4c0"; } +.bi-pause-circle-fill::before { content: "\f4c1"; } +.bi-pause-circle::before { content: "\f4c2"; } +.bi-pause-fill::before { content: "\f4c3"; } +.bi-pause::before { content: "\f4c4"; } +.bi-peace-fill::before { content: "\f4c5"; } +.bi-peace::before { content: "\f4c6"; } +.bi-pen-fill::before { content: "\f4c7"; } +.bi-pen::before { content: "\f4c8"; } +.bi-pencil-fill::before { content: "\f4c9"; } +.bi-pencil-square::before { content: "\f4ca"; } +.bi-pencil::before { content: "\f4cb"; } +.bi-pentagon-fill::before { content: "\f4cc"; } +.bi-pentagon-half::before { content: "\f4cd"; } +.bi-pentagon::before { content: "\f4ce"; } +.bi-people-fill::before { content: "\f4cf"; } +.bi-people::before { content: "\f4d0"; } +.bi-percent::before { content: "\f4d1"; } +.bi-person-badge-fill::before { content: "\f4d2"; } +.bi-person-badge::before { content: "\f4d3"; } +.bi-person-bounding-box::before { content: "\f4d4"; } +.bi-person-check-fill::before { content: "\f4d5"; } +.bi-person-check::before { content: "\f4d6"; } +.bi-person-circle::before { content: "\f4d7"; } +.bi-person-dash-fill::before { content: "\f4d8"; } +.bi-person-dash::before { content: "\f4d9"; } +.bi-person-fill::before { content: "\f4da"; } +.bi-person-lines-fill::before { content: "\f4db"; } +.bi-person-plus-fill::before { content: "\f4dc"; } +.bi-person-plus::before { content: "\f4dd"; } +.bi-person-square::before { content: "\f4de"; } +.bi-person-x-fill::before { content: "\f4df"; } +.bi-person-x::before { content: "\f4e0"; } +.bi-person::before { content: "\f4e1"; } +.bi-phone-fill::before { content: "\f4e2"; } +.bi-phone-landscape-fill::before { content: "\f4e3"; } +.bi-phone-landscape::before { content: "\f4e4"; } +.bi-phone-vibrate-fill::before { content: "\f4e5"; } +.bi-phone-vibrate::before { content: "\f4e6"; } +.bi-phone::before { content: "\f4e7"; } +.bi-pie-chart-fill::before { content: "\f4e8"; } +.bi-pie-chart::before { content: "\f4e9"; } +.bi-pin-angle-fill::before { content: "\f4ea"; } +.bi-pin-angle::before { content: "\f4eb"; } +.bi-pin-fill::before { content: "\f4ec"; } +.bi-pin::before { content: "\f4ed"; } +.bi-pip-fill::before { content: "\f4ee"; } +.bi-pip::before { content: "\f4ef"; } +.bi-play-btn-fill::before { content: "\f4f0"; } +.bi-play-btn::before { content: "\f4f1"; } +.bi-play-circle-fill::before { content: "\f4f2"; } +.bi-play-circle::before { content: "\f4f3"; } +.bi-play-fill::before { content: "\f4f4"; } +.bi-play::before { content: "\f4f5"; } +.bi-plug-fill::before { content: "\f4f6"; } +.bi-plug::before { content: "\f4f7"; } +.bi-plus-circle-dotted::before { content: "\f4f8"; } +.bi-plus-circle-fill::before { content: "\f4f9"; } +.bi-plus-circle::before { content: "\f4fa"; } +.bi-plus-square-dotted::before { content: "\f4fb"; } +.bi-plus-square-fill::before { content: "\f4fc"; } +.bi-plus-square::before { content: "\f4fd"; } +.bi-plus::before { content: "\f4fe"; } +.bi-power::before { content: "\f4ff"; } +.bi-printer-fill::before { content: "\f500"; } +.bi-printer::before { content: "\f501"; } +.bi-puzzle-fill::before { content: "\f502"; } +.bi-puzzle::before { content: "\f503"; } +.bi-question-circle-fill::before { content: "\f504"; } +.bi-question-circle::before { content: "\f505"; } +.bi-question-diamond-fill::before { content: "\f506"; } +.bi-question-diamond::before { content: "\f507"; } +.bi-question-octagon-fill::before { content: "\f508"; } +.bi-question-octagon::before { content: "\f509"; } +.bi-question-square-fill::before { content: "\f50a"; } +.bi-question-square::before { content: "\f50b"; } +.bi-question::before { content: "\f50c"; } +.bi-rainbow::before { content: "\f50d"; } +.bi-receipt-cutoff::before { content: "\f50e"; } +.bi-receipt::before { content: "\f50f"; } +.bi-reception-0::before { content: "\f510"; } +.bi-reception-1::before { content: "\f511"; } +.bi-reception-2::before { content: "\f512"; } +.bi-reception-3::before { content: "\f513"; } +.bi-reception-4::before { content: "\f514"; } +.bi-record-btn-fill::before { content: "\f515"; } +.bi-record-btn::before { content: "\f516"; } +.bi-record-circle-fill::before { content: "\f517"; } +.bi-record-circle::before { content: "\f518"; } +.bi-record-fill::before { content: "\f519"; } +.bi-record::before { content: "\f51a"; } +.bi-record2-fill::before { content: "\f51b"; } +.bi-record2::before { content: "\f51c"; } +.bi-reply-all-fill::before { content: "\f51d"; } +.bi-reply-all::before { content: "\f51e"; } +.bi-reply-fill::before { content: "\f51f"; } +.bi-reply::before { content: "\f520"; } +.bi-rss-fill::before { content: "\f521"; } +.bi-rss::before { content: "\f522"; } +.bi-rulers::before { content: "\f523"; } +.bi-save-fill::before { content: "\f524"; } +.bi-save::before { content: "\f525"; } +.bi-save2-fill::before { content: "\f526"; } +.bi-save2::before { content: "\f527"; } +.bi-scissors::before { content: "\f528"; } +.bi-screwdriver::before { content: "\f529"; } +.bi-search::before { content: "\f52a"; } +.bi-segmented-nav::before { content: "\f52b"; } +.bi-server::before { content: "\f52c"; } +.bi-share-fill::before { content: "\f52d"; } +.bi-share::before { content: "\f52e"; } +.bi-shield-check::before { content: "\f52f"; } +.bi-shield-exclamation::before { content: "\f530"; } +.bi-shield-fill-check::before { content: "\f531"; } +.bi-shield-fill-exclamation::before { content: "\f532"; } +.bi-shield-fill-minus::before { content: "\f533"; } +.bi-shield-fill-plus::before { content: "\f534"; } +.bi-shield-fill-x::before { content: "\f535"; } +.bi-shield-fill::before { content: "\f536"; } +.bi-shield-lock-fill::before { content: "\f537"; } +.bi-shield-lock::before { content: "\f538"; } +.bi-shield-minus::before { content: "\f539"; } +.bi-shield-plus::before { content: "\f53a"; } +.bi-shield-shaded::before { content: "\f53b"; } +.bi-shield-slash-fill::before { content: "\f53c"; } +.bi-shield-slash::before { content: "\f53d"; } +.bi-shield-x::before { content: "\f53e"; } +.bi-shield::before { content: "\f53f"; } +.bi-shift-fill::before { content: "\f540"; } +.bi-shift::before { content: "\f541"; } +.bi-shop-window::before { content: "\f542"; } +.bi-shop::before { content: "\f543"; } +.bi-shuffle::before { content: "\f544"; } +.bi-signpost-2-fill::before { content: "\f545"; } +.bi-signpost-2::before { content: "\f546"; } +.bi-signpost-fill::before { content: "\f547"; } +.bi-signpost-split-fill::before { content: "\f548"; } +.bi-signpost-split::before { content: "\f549"; } +.bi-signpost::before { content: "\f54a"; } +.bi-sim-fill::before { content: "\f54b"; } +.bi-sim::before { content: "\f54c"; } +.bi-skip-backward-btn-fill::before { content: "\f54d"; } +.bi-skip-backward-btn::before { content: "\f54e"; } +.bi-skip-backward-circle-fill::before { content: "\f54f"; } +.bi-skip-backward-circle::before { content: "\f550"; } +.bi-skip-backward-fill::before { content: "\f551"; } +.bi-skip-backward::before { content: "\f552"; } +.bi-skip-end-btn-fill::before { content: "\f553"; } +.bi-skip-end-btn::before { content: "\f554"; } +.bi-skip-end-circle-fill::before { content: "\f555"; } +.bi-skip-end-circle::before { content: "\f556"; } +.bi-skip-end-fill::before { content: "\f557"; } +.bi-skip-end::before { content: "\f558"; } +.bi-skip-forward-btn-fill::before { content: "\f559"; } +.bi-skip-forward-btn::before { content: "\f55a"; } +.bi-skip-forward-circle-fill::before { content: "\f55b"; } +.bi-skip-forward-circle::before { content: "\f55c"; } +.bi-skip-forward-fill::before { content: "\f55d"; } +.bi-skip-forward::before { content: "\f55e"; } +.bi-skip-start-btn-fill::before { content: "\f55f"; } +.bi-skip-start-btn::before { content: "\f560"; } +.bi-skip-start-circle-fill::before { content: "\f561"; } +.bi-skip-start-circle::before { content: "\f562"; } +.bi-skip-start-fill::before { content: "\f563"; } +.bi-skip-start::before { content: "\f564"; } +.bi-slack::before { content: "\f565"; } +.bi-slash-circle-fill::before { content: "\f566"; } +.bi-slash-circle::before { content: "\f567"; } +.bi-slash-square-fill::before { content: "\f568"; } +.bi-slash-square::before { content: "\f569"; } +.bi-slash::before { content: "\f56a"; } +.bi-sliders::before { content: "\f56b"; } +.bi-smartwatch::before { content: "\f56c"; } +.bi-snow::before { content: "\f56d"; } +.bi-snow2::before { content: "\f56e"; } +.bi-snow3::before { content: "\f56f"; } +.bi-sort-alpha-down-alt::before { content: "\f570"; } +.bi-sort-alpha-down::before { content: "\f571"; } +.bi-sort-alpha-up-alt::before { content: "\f572"; } +.bi-sort-alpha-up::before { content: "\f573"; } +.bi-sort-down-alt::before { content: "\f574"; } +.bi-sort-down::before { content: "\f575"; } +.bi-sort-numeric-down-alt::before { content: "\f576"; } +.bi-sort-numeric-down::before { content: "\f577"; } +.bi-sort-numeric-up-alt::before { content: "\f578"; } +.bi-sort-numeric-up::before { content: "\f579"; } +.bi-sort-up-alt::before { content: "\f57a"; } +.bi-sort-up::before { content: "\f57b"; } +.bi-soundwave::before { content: "\f57c"; } +.bi-speaker-fill::before { content: "\f57d"; } +.bi-speaker::before { content: "\f57e"; } +.bi-speedometer::before { content: "\f57f"; } +.bi-speedometer2::before { content: "\f580"; } +.bi-spellcheck::before { content: "\f581"; } +.bi-square-fill::before { content: "\f582"; } +.bi-square-half::before { content: "\f583"; } +.bi-square::before { content: "\f584"; } +.bi-stack::before { content: "\f585"; } +.bi-star-fill::before { content: "\f586"; } +.bi-star-half::before { content: "\f587"; } +.bi-star::before { content: "\f588"; } +.bi-stars::before { content: "\f589"; } +.bi-stickies-fill::before { content: "\f58a"; } +.bi-stickies::before { content: "\f58b"; } +.bi-sticky-fill::before { content: "\f58c"; } +.bi-sticky::before { content: "\f58d"; } +.bi-stop-btn-fill::before { content: "\f58e"; } +.bi-stop-btn::before { content: "\f58f"; } +.bi-stop-circle-fill::before { content: "\f590"; } +.bi-stop-circle::before { content: "\f591"; } +.bi-stop-fill::before { content: "\f592"; } +.bi-stop::before { content: "\f593"; } +.bi-stoplights-fill::before { content: "\f594"; } +.bi-stoplights::before { content: "\f595"; } +.bi-stopwatch-fill::before { content: "\f596"; } +.bi-stopwatch::before { content: "\f597"; } +.bi-subtract::before { content: "\f598"; } +.bi-suit-club-fill::before { content: "\f599"; } +.bi-suit-club::before { content: "\f59a"; } +.bi-suit-diamond-fill::before { content: "\f59b"; } +.bi-suit-diamond::before { content: "\f59c"; } +.bi-suit-heart-fill::before { content: "\f59d"; } +.bi-suit-heart::before { content: "\f59e"; } +.bi-suit-spade-fill::before { content: "\f59f"; } +.bi-suit-spade::before { content: "\f5a0"; } +.bi-sun-fill::before { content: "\f5a1"; } +.bi-sun::before { content: "\f5a2"; } +.bi-sunglasses::before { content: "\f5a3"; } +.bi-sunrise-fill::before { content: "\f5a4"; } +.bi-sunrise::before { content: "\f5a5"; } +.bi-sunset-fill::before { content: "\f5a6"; } +.bi-sunset::before { content: "\f5a7"; } +.bi-symmetry-horizontal::before { content: "\f5a8"; } +.bi-symmetry-vertical::before { content: "\f5a9"; } +.bi-table::before { content: "\f5aa"; } +.bi-tablet-fill::before { content: "\f5ab"; } +.bi-tablet-landscape-fill::before { content: "\f5ac"; } +.bi-tablet-landscape::before { content: "\f5ad"; } +.bi-tablet::before { content: "\f5ae"; } +.bi-tag-fill::before { content: "\f5af"; } +.bi-tag::before { content: "\f5b0"; } +.bi-tags-fill::before { content: "\f5b1"; } +.bi-tags::before { content: "\f5b2"; } +.bi-telegram::before { content: "\f5b3"; } +.bi-telephone-fill::before { content: "\f5b4"; } +.bi-telephone-forward-fill::before { content: "\f5b5"; } +.bi-telephone-forward::before { content: "\f5b6"; } +.bi-telephone-inbound-fill::before { content: "\f5b7"; } +.bi-telephone-inbound::before { content: "\f5b8"; } +.bi-telephone-minus-fill::before { content: "\f5b9"; } +.bi-telephone-minus::before { content: "\f5ba"; } +.bi-telephone-outbound-fill::before { content: "\f5bb"; } +.bi-telephone-outbound::before { content: "\f5bc"; } +.bi-telephone-plus-fill::before { content: "\f5bd"; } +.bi-telephone-plus::before { content: "\f5be"; } +.bi-telephone-x-fill::before { content: "\f5bf"; } +.bi-telephone-x::before { content: "\f5c0"; } +.bi-telephone::before { content: "\f5c1"; } +.bi-terminal-fill::before { content: "\f5c2"; } +.bi-terminal::before { content: "\f5c3"; } +.bi-text-center::before { content: "\f5c4"; } +.bi-text-indent-left::before { content: "\f5c5"; } +.bi-text-indent-right::before { content: "\f5c6"; } +.bi-text-left::before { content: "\f5c7"; } +.bi-text-paragraph::before { content: "\f5c8"; } +.bi-text-right::before { content: "\f5c9"; } +.bi-textarea-resize::before { content: "\f5ca"; } +.bi-textarea-t::before { content: "\f5cb"; } +.bi-textarea::before { content: "\f5cc"; } +.bi-thermometer-half::before { content: "\f5cd"; } +.bi-thermometer-high::before { content: "\f5ce"; } +.bi-thermometer-low::before { content: "\f5cf"; } +.bi-thermometer-snow::before { content: "\f5d0"; } +.bi-thermometer-sun::before { content: "\f5d1"; } +.bi-thermometer::before { content: "\f5d2"; } +.bi-three-dots-vertical::before { content: "\f5d3"; } +.bi-three-dots::before { content: "\f5d4"; } +.bi-toggle-off::before { content: "\f5d5"; } +.bi-toggle-on::before { content: "\f5d6"; } +.bi-toggle2-off::before { content: "\f5d7"; } +.bi-toggle2-on::before { content: "\f5d8"; } +.bi-toggles::before { content: "\f5d9"; } +.bi-toggles2::before { content: "\f5da"; } +.bi-tools::before { content: "\f5db"; } +.bi-tornado::before { content: "\f5dc"; } +.bi-trash-fill::before { content: "\f5dd"; } +.bi-trash::before { content: "\f5de"; } +.bi-trash2-fill::before { content: "\f5df"; } +.bi-trash2::before { content: "\f5e0"; } +.bi-tree-fill::before { content: "\f5e1"; } +.bi-tree::before { content: "\f5e2"; } +.bi-triangle-fill::before { content: "\f5e3"; } +.bi-triangle-half::before { content: "\f5e4"; } +.bi-triangle::before { content: "\f5e5"; } +.bi-trophy-fill::before { content: "\f5e6"; } +.bi-trophy::before { content: "\f5e7"; } +.bi-tropical-storm::before { content: "\f5e8"; } +.bi-truck-flatbed::before { content: "\f5e9"; } +.bi-truck::before { content: "\f5ea"; } +.bi-tsunami::before { content: "\f5eb"; } +.bi-tv-fill::before { content: "\f5ec"; } +.bi-tv::before { content: "\f5ed"; } +.bi-twitch::before { content: "\f5ee"; } +.bi-twitter::before { content: "\f5ef"; } +.bi-type-bold::before { content: "\f5f0"; } +.bi-type-h1::before { content: "\f5f1"; } +.bi-type-h2::before { content: "\f5f2"; } +.bi-type-h3::before { content: "\f5f3"; } +.bi-type-italic::before { content: "\f5f4"; } +.bi-type-strikethrough::before { content: "\f5f5"; } +.bi-type-underline::before { content: "\f5f6"; } +.bi-type::before { content: "\f5f7"; } +.bi-ui-checks-grid::before { content: "\f5f8"; } +.bi-ui-checks::before { content: "\f5f9"; } +.bi-ui-radios-grid::before { content: "\f5fa"; } +.bi-ui-radios::before { content: "\f5fb"; } +.bi-umbrella-fill::before { content: "\f5fc"; } +.bi-umbrella::before { content: "\f5fd"; } +.bi-union::before { content: "\f5fe"; } +.bi-unlock-fill::before { content: "\f5ff"; } +.bi-unlock::before { content: "\f600"; } +.bi-upc-scan::before { content: "\f601"; } +.bi-upc::before { content: "\f602"; } +.bi-upload::before { content: "\f603"; } +.bi-vector-pen::before { content: "\f604"; } +.bi-view-list::before { content: "\f605"; } +.bi-view-stacked::before { content: "\f606"; } +.bi-vinyl-fill::before { content: "\f607"; } +.bi-vinyl::before { content: "\f608"; } +.bi-voicemail::before { content: "\f609"; } +.bi-volume-down-fill::before { content: "\f60a"; } +.bi-volume-down::before { content: "\f60b"; } +.bi-volume-mute-fill::before { content: "\f60c"; } +.bi-volume-mute::before { content: "\f60d"; } +.bi-volume-off-fill::before { content: "\f60e"; } +.bi-volume-off::before { content: "\f60f"; } +.bi-volume-up-fill::before { content: "\f610"; } +.bi-volume-up::before { content: "\f611"; } +.bi-vr::before { content: "\f612"; } +.bi-wallet-fill::before { content: "\f613"; } +.bi-wallet::before { content: "\f614"; } +.bi-wallet2::before { content: "\f615"; } +.bi-watch::before { content: "\f616"; } +.bi-water::before { content: "\f617"; } +.bi-whatsapp::before { content: "\f618"; } +.bi-wifi-1::before { content: "\f619"; } +.bi-wifi-2::before { content: "\f61a"; } +.bi-wifi-off::before { content: "\f61b"; } +.bi-wifi::before { content: "\f61c"; } +.bi-wind::before { content: "\f61d"; } +.bi-window-dock::before { content: "\f61e"; } +.bi-window-sidebar::before { content: "\f61f"; } +.bi-window::before { content: "\f620"; } +.bi-wrench::before { content: "\f621"; } +.bi-x-circle-fill::before { content: "\f622"; } +.bi-x-circle::before { content: "\f623"; } +.bi-x-diamond-fill::before { content: "\f624"; } +.bi-x-diamond::before { content: "\f625"; } +.bi-x-octagon-fill::before { content: "\f626"; } +.bi-x-octagon::before { content: "\f627"; } +.bi-x-square-fill::before { content: "\f628"; } +.bi-x-square::before { content: "\f629"; } +.bi-x::before { content: "\f62a"; } +.bi-youtube::before { content: "\f62b"; } +.bi-zoom-in::before { content: "\f62c"; } +.bi-zoom-out::before { content: "\f62d"; } +.bi-bank::before { content: "\f62e"; } +.bi-bank2::before { content: "\f62f"; } +.bi-bell-slash-fill::before { content: "\f630"; } +.bi-bell-slash::before { content: "\f631"; } +.bi-cash-coin::before { content: "\f632"; } +.bi-check-lg::before { content: "\f633"; } +.bi-coin::before { content: "\f634"; } +.bi-currency-bitcoin::before { content: "\f635"; } +.bi-currency-dollar::before { content: "\f636"; } +.bi-currency-euro::before { content: "\f637"; } +.bi-currency-exchange::before { content: "\f638"; } +.bi-currency-pound::before { content: "\f639"; } +.bi-currency-yen::before { content: "\f63a"; } +.bi-dash-lg::before { content: "\f63b"; } +.bi-exclamation-lg::before { content: "\f63c"; } +.bi-file-earmark-pdf-fill::before { content: "\f63d"; } +.bi-file-earmark-pdf::before { content: "\f63e"; } +.bi-file-pdf-fill::before { content: "\f63f"; } +.bi-file-pdf::before { content: "\f640"; } +.bi-gender-ambiguous::before { content: "\f641"; } +.bi-gender-female::before { content: "\f642"; } +.bi-gender-male::before { content: "\f643"; } +.bi-gender-trans::before { content: "\f644"; } +.bi-headset-vr::before { content: "\f645"; } +.bi-info-lg::before { content: "\f646"; } +.bi-mastodon::before { content: "\f647"; } +.bi-messenger::before { content: "\f648"; } +.bi-piggy-bank-fill::before { content: "\f649"; } +.bi-piggy-bank::before { content: "\f64a"; } +.bi-pin-map-fill::before { content: "\f64b"; } +.bi-pin-map::before { content: "\f64c"; } +.bi-plus-lg::before { content: "\f64d"; } +.bi-question-lg::before { content: "\f64e"; } +.bi-recycle::before { content: "\f64f"; } +.bi-reddit::before { content: "\f650"; } +.bi-safe-fill::before { content: "\f651"; } +.bi-safe2-fill::before { content: "\f652"; } +.bi-safe2::before { content: "\f653"; } +.bi-sd-card-fill::before { content: "\f654"; } +.bi-sd-card::before { content: "\f655"; } +.bi-skype::before { content: "\f656"; } +.bi-slash-lg::before { content: "\f657"; } +.bi-translate::before { content: "\f658"; } +.bi-x-lg::before { content: "\f659"; } +.bi-safe::before { content: "\f65a"; } +.bi-apple::before { content: "\f65b"; } +.bi-microsoft::before { content: "\f65d"; } +.bi-windows::before { content: "\f65e"; } +.bi-behance::before { content: "\f65c"; } +.bi-dribbble::before { content: "\f65f"; } +.bi-line::before { content: "\f660"; } +.bi-medium::before { content: "\f661"; } +.bi-paypal::before { content: "\f662"; } +.bi-pinterest::before { content: "\f663"; } +.bi-signal::before { content: "\f664"; } +.bi-snapchat::before { content: "\f665"; } +.bi-spotify::before { content: "\f666"; } +.bi-stack-overflow::before { content: "\f667"; } +.bi-strava::before { content: "\f668"; } +.bi-wordpress::before { content: "\f669"; } +.bi-vimeo::before { content: "\f66a"; } +.bi-activity::before { content: "\f66b"; } +.bi-easel2-fill::before { content: "\f66c"; } +.bi-easel2::before { content: "\f66d"; } +.bi-easel3-fill::before { content: "\f66e"; } +.bi-easel3::before { content: "\f66f"; } +.bi-fan::before { content: "\f670"; } +.bi-fingerprint::before { content: "\f671"; } +.bi-graph-down-arrow::before { content: "\f672"; } +.bi-graph-up-arrow::before { content: "\f673"; } +.bi-hypnotize::before { content: "\f674"; } +.bi-magic::before { content: "\f675"; } +.bi-person-rolodex::before { content: "\f676"; } +.bi-person-video::before { content: "\f677"; } +.bi-person-video2::before { content: "\f678"; } +.bi-person-video3::before { content: "\f679"; } +.bi-person-workspace::before { content: "\f67a"; } +.bi-radioactive::before { content: "\f67b"; } +.bi-webcam-fill::before { content: "\f67c"; } +.bi-webcam::before { content: "\f67d"; } +.bi-yin-yang::before { content: "\f67e"; } +.bi-bandaid-fill::before { content: "\f680"; } +.bi-bandaid::before { content: "\f681"; } +.bi-bluetooth::before { content: "\f682"; } +.bi-body-text::before { content: "\f683"; } +.bi-boombox::before { content: "\f684"; } +.bi-boxes::before { content: "\f685"; } +.bi-dpad-fill::before { content: "\f686"; } +.bi-dpad::before { content: "\f687"; } +.bi-ear-fill::before { content: "\f688"; } +.bi-ear::before { content: "\f689"; } +.bi-envelope-check-fill::before { content: "\f68b"; } +.bi-envelope-check::before { content: "\f68c"; } +.bi-envelope-dash-fill::before { content: "\f68e"; } +.bi-envelope-dash::before { content: "\f68f"; } +.bi-envelope-exclamation-fill::before { content: "\f691"; } +.bi-envelope-exclamation::before { content: "\f692"; } +.bi-envelope-plus-fill::before { content: "\f693"; } +.bi-envelope-plus::before { content: "\f694"; } +.bi-envelope-slash-fill::before { content: "\f696"; } +.bi-envelope-slash::before { content: "\f697"; } +.bi-envelope-x-fill::before { content: "\f699"; } +.bi-envelope-x::before { content: "\f69a"; } +.bi-explicit-fill::before { content: "\f69b"; } +.bi-explicit::before { content: "\f69c"; } +.bi-git::before { content: "\f69d"; } +.bi-infinity::before { content: "\f69e"; } +.bi-list-columns-reverse::before { content: "\f69f"; } +.bi-list-columns::before { content: "\f6a0"; } +.bi-meta::before { content: "\f6a1"; } +.bi-nintendo-switch::before { content: "\f6a4"; } +.bi-pc-display-horizontal::before { content: "\f6a5"; } +.bi-pc-display::before { content: "\f6a6"; } +.bi-pc-horizontal::before { content: "\f6a7"; } +.bi-pc::before { content: "\f6a8"; } +.bi-playstation::before { content: "\f6a9"; } +.bi-plus-slash-minus::before { content: "\f6aa"; } +.bi-projector-fill::before { content: "\f6ab"; } +.bi-projector::before { content: "\f6ac"; } +.bi-qr-code-scan::before { content: "\f6ad"; } +.bi-qr-code::before { content: "\f6ae"; } +.bi-quora::before { content: "\f6af"; } +.bi-quote::before { content: "\f6b0"; } +.bi-robot::before { content: "\f6b1"; } +.bi-send-check-fill::before { content: "\f6b2"; } +.bi-send-check::before { content: "\f6b3"; } +.bi-send-dash-fill::before { content: "\f6b4"; } +.bi-send-dash::before { content: "\f6b5"; } +.bi-send-exclamation-fill::before { content: "\f6b7"; } +.bi-send-exclamation::before { content: "\f6b8"; } +.bi-send-fill::before { content: "\f6b9"; } +.bi-send-plus-fill::before { content: "\f6ba"; } +.bi-send-plus::before { content: "\f6bb"; } +.bi-send-slash-fill::before { content: "\f6bc"; } +.bi-send-slash::before { content: "\f6bd"; } +.bi-send-x-fill::before { content: "\f6be"; } +.bi-send-x::before { content: "\f6bf"; } +.bi-send::before { content: "\f6c0"; } +.bi-steam::before { content: "\f6c1"; } +.bi-terminal-dash::before { content: "\f6c3"; } +.bi-terminal-plus::before { content: "\f6c4"; } +.bi-terminal-split::before { content: "\f6c5"; } +.bi-ticket-detailed-fill::before { content: "\f6c6"; } +.bi-ticket-detailed::before { content: "\f6c7"; } +.bi-ticket-fill::before { content: "\f6c8"; } +.bi-ticket-perforated-fill::before { content: "\f6c9"; } +.bi-ticket-perforated::before { content: "\f6ca"; } +.bi-ticket::before { content: "\f6cb"; } +.bi-tiktok::before { content: "\f6cc"; } +.bi-window-dash::before { content: "\f6cd"; } +.bi-window-desktop::before { content: "\f6ce"; } +.bi-window-fullscreen::before { content: "\f6cf"; } +.bi-window-plus::before { content: "\f6d0"; } +.bi-window-split::before { content: "\f6d1"; } +.bi-window-stack::before { content: "\f6d2"; } +.bi-window-x::before { content: "\f6d3"; } +.bi-xbox::before { content: "\f6d4"; } +.bi-ethernet::before { content: "\f6d5"; } +.bi-hdmi-fill::before { content: "\f6d6"; } +.bi-hdmi::before { content: "\f6d7"; } +.bi-usb-c-fill::before { content: "\f6d8"; } +.bi-usb-c::before { content: "\f6d9"; } +.bi-usb-fill::before { content: "\f6da"; } +.bi-usb-plug-fill::before { content: "\f6db"; } +.bi-usb-plug::before { content: "\f6dc"; } +.bi-usb-symbol::before { content: "\f6dd"; } +.bi-usb::before { content: "\f6de"; } +.bi-boombox-fill::before { content: "\f6df"; } +.bi-displayport::before { content: "\f6e1"; } +.bi-gpu-card::before { content: "\f6e2"; } +.bi-memory::before { content: "\f6e3"; } +.bi-modem-fill::before { content: "\f6e4"; } +.bi-modem::before { content: "\f6e5"; } +.bi-motherboard-fill::before { content: "\f6e6"; } +.bi-motherboard::before { content: "\f6e7"; } +.bi-optical-audio-fill::before { content: "\f6e8"; } +.bi-optical-audio::before { content: "\f6e9"; } +.bi-pci-card::before { content: "\f6ea"; } +.bi-router-fill::before { content: "\f6eb"; } +.bi-router::before { content: "\f6ec"; } +.bi-thunderbolt-fill::before { content: "\f6ef"; } +.bi-thunderbolt::before { content: "\f6f0"; } +.bi-usb-drive-fill::before { content: "\f6f1"; } +.bi-usb-drive::before { content: "\f6f2"; } +.bi-usb-micro-fill::before { content: "\f6f3"; } +.bi-usb-micro::before { content: "\f6f4"; } +.bi-usb-mini-fill::before { content: "\f6f5"; } +.bi-usb-mini::before { content: "\f6f6"; } +.bi-cloud-haze2::before { content: "\f6f7"; } +.bi-device-hdd-fill::before { content: "\f6f8"; } +.bi-device-hdd::before { content: "\f6f9"; } +.bi-device-ssd-fill::before { content: "\f6fa"; } +.bi-device-ssd::before { content: "\f6fb"; } +.bi-displayport-fill::before { content: "\f6fc"; } +.bi-mortarboard-fill::before { content: "\f6fd"; } +.bi-mortarboard::before { content: "\f6fe"; } +.bi-terminal-x::before { content: "\f6ff"; } +.bi-arrow-through-heart-fill::before { content: "\f700"; } +.bi-arrow-through-heart::before { content: "\f701"; } +.bi-badge-sd-fill::before { content: "\f702"; } +.bi-badge-sd::before { content: "\f703"; } +.bi-bag-heart-fill::before { content: "\f704"; } +.bi-bag-heart::before { content: "\f705"; } +.bi-balloon-fill::before { content: "\f706"; } +.bi-balloon-heart-fill::before { content: "\f707"; } +.bi-balloon-heart::before { content: "\f708"; } +.bi-balloon::before { content: "\f709"; } +.bi-box2-fill::before { content: "\f70a"; } +.bi-box2-heart-fill::before { content: "\f70b"; } +.bi-box2-heart::before { content: "\f70c"; } +.bi-box2::before { content: "\f70d"; } +.bi-braces-asterisk::before { content: "\f70e"; } +.bi-calendar-heart-fill::before { content: "\f70f"; } +.bi-calendar-heart::before { content: "\f710"; } +.bi-calendar2-heart-fill::before { content: "\f711"; } +.bi-calendar2-heart::before { content: "\f712"; } +.bi-chat-heart-fill::before { content: "\f713"; } +.bi-chat-heart::before { content: "\f714"; } +.bi-chat-left-heart-fill::before { content: "\f715"; } +.bi-chat-left-heart::before { content: "\f716"; } +.bi-chat-right-heart-fill::before { content: "\f717"; } +.bi-chat-right-heart::before { content: "\f718"; } +.bi-chat-square-heart-fill::before { content: "\f719"; } +.bi-chat-square-heart::before { content: "\f71a"; } +.bi-clipboard-check-fill::before { content: "\f71b"; } +.bi-clipboard-data-fill::before { content: "\f71c"; } +.bi-clipboard-fill::before { content: "\f71d"; } +.bi-clipboard-heart-fill::before { content: "\f71e"; } +.bi-clipboard-heart::before { content: "\f71f"; } +.bi-clipboard-minus-fill::before { content: "\f720"; } +.bi-clipboard-plus-fill::before { content: "\f721"; } +.bi-clipboard-pulse::before { content: "\f722"; } +.bi-clipboard-x-fill::before { content: "\f723"; } +.bi-clipboard2-check-fill::before { content: "\f724"; } +.bi-clipboard2-check::before { content: "\f725"; } +.bi-clipboard2-data-fill::before { content: "\f726"; } +.bi-clipboard2-data::before { content: "\f727"; } +.bi-clipboard2-fill::before { content: "\f728"; } +.bi-clipboard2-heart-fill::before { content: "\f729"; } +.bi-clipboard2-heart::before { content: "\f72a"; } +.bi-clipboard2-minus-fill::before { content: "\f72b"; } +.bi-clipboard2-minus::before { content: "\f72c"; } +.bi-clipboard2-plus-fill::before { content: "\f72d"; } +.bi-clipboard2-plus::before { content: "\f72e"; } +.bi-clipboard2-pulse-fill::before { content: "\f72f"; } +.bi-clipboard2-pulse::before { content: "\f730"; } +.bi-clipboard2-x-fill::before { content: "\f731"; } +.bi-clipboard2-x::before { content: "\f732"; } +.bi-clipboard2::before { content: "\f733"; } +.bi-emoji-kiss-fill::before { content: "\f734"; } +.bi-emoji-kiss::before { content: "\f735"; } +.bi-envelope-heart-fill::before { content: "\f736"; } +.bi-envelope-heart::before { content: "\f737"; } +.bi-envelope-open-heart-fill::before { content: "\f738"; } +.bi-envelope-open-heart::before { content: "\f739"; } +.bi-envelope-paper-fill::before { content: "\f73a"; } +.bi-envelope-paper-heart-fill::before { content: "\f73b"; } +.bi-envelope-paper-heart::before { content: "\f73c"; } +.bi-envelope-paper::before { content: "\f73d"; } +.bi-filetype-aac::before { content: "\f73e"; } +.bi-filetype-ai::before { content: "\f73f"; } +.bi-filetype-bmp::before { content: "\f740"; } +.bi-filetype-cs::before { content: "\f741"; } +.bi-filetype-css::before { content: "\f742"; } +.bi-filetype-csv::before { content: "\f743"; } +.bi-filetype-doc::before { content: "\f744"; } +.bi-filetype-docx::before { content: "\f745"; } +.bi-filetype-exe::before { content: "\f746"; } +.bi-filetype-gif::before { content: "\f747"; } +.bi-filetype-heic::before { content: "\f748"; } +.bi-filetype-html::before { content: "\f749"; } +.bi-filetype-java::before { content: "\f74a"; } +.bi-filetype-jpg::before { content: "\f74b"; } +.bi-filetype-js::before { content: "\f74c"; } +.bi-filetype-jsx::before { content: "\f74d"; } +.bi-filetype-key::before { content: "\f74e"; } +.bi-filetype-m4p::before { content: "\f74f"; } +.bi-filetype-md::before { content: "\f750"; } +.bi-filetype-mdx::before { content: "\f751"; } +.bi-filetype-mov::before { content: "\f752"; } +.bi-filetype-mp3::before { content: "\f753"; } +.bi-filetype-mp4::before { content: "\f754"; } +.bi-filetype-otf::before { content: "\f755"; } +.bi-filetype-pdf::before { content: "\f756"; } +.bi-filetype-php::before { content: "\f757"; } +.bi-filetype-png::before { content: "\f758"; } +.bi-filetype-ppt::before { content: "\f75a"; } +.bi-filetype-psd::before { content: "\f75b"; } +.bi-filetype-py::before { content: "\f75c"; } +.bi-filetype-raw::before { content: "\f75d"; } +.bi-filetype-rb::before { content: "\f75e"; } +.bi-filetype-sass::before { content: "\f75f"; } +.bi-filetype-scss::before { content: "\f760"; } +.bi-filetype-sh::before { content: "\f761"; } +.bi-filetype-svg::before { content: "\f762"; } +.bi-filetype-tiff::before { content: "\f763"; } +.bi-filetype-tsx::before { content: "\f764"; } +.bi-filetype-ttf::before { content: "\f765"; } +.bi-filetype-txt::before { content: "\f766"; } +.bi-filetype-wav::before { content: "\f767"; } +.bi-filetype-woff::before { content: "\f768"; } +.bi-filetype-xls::before { content: "\f76a"; } +.bi-filetype-xml::before { content: "\f76b"; } +.bi-filetype-yml::before { content: "\f76c"; } +.bi-heart-arrow::before { content: "\f76d"; } +.bi-heart-pulse-fill::before { content: "\f76e"; } +.bi-heart-pulse::before { content: "\f76f"; } +.bi-heartbreak-fill::before { content: "\f770"; } +.bi-heartbreak::before { content: "\f771"; } +.bi-hearts::before { content: "\f772"; } +.bi-hospital-fill::before { content: "\f773"; } +.bi-hospital::before { content: "\f774"; } +.bi-house-heart-fill::before { content: "\f775"; } +.bi-house-heart::before { content: "\f776"; } +.bi-incognito::before { content: "\f777"; } +.bi-magnet-fill::before { content: "\f778"; } +.bi-magnet::before { content: "\f779"; } +.bi-person-heart::before { content: "\f77a"; } +.bi-person-hearts::before { content: "\f77b"; } +.bi-phone-flip::before { content: "\f77c"; } +.bi-plugin::before { content: "\f77d"; } +.bi-postage-fill::before { content: "\f77e"; } +.bi-postage-heart-fill::before { content: "\f77f"; } +.bi-postage-heart::before { content: "\f780"; } +.bi-postage::before { content: "\f781"; } +.bi-postcard-fill::before { content: "\f782"; } +.bi-postcard-heart-fill::before { content: "\f783"; } +.bi-postcard-heart::before { content: "\f784"; } +.bi-postcard::before { content: "\f785"; } +.bi-search-heart-fill::before { content: "\f786"; } +.bi-search-heart::before { content: "\f787"; } +.bi-sliders2-vertical::before { content: "\f788"; } +.bi-sliders2::before { content: "\f789"; } +.bi-trash3-fill::before { content: "\f78a"; } +.bi-trash3::before { content: "\f78b"; } +.bi-valentine::before { content: "\f78c"; } +.bi-valentine2::before { content: "\f78d"; } +.bi-wrench-adjustable-circle-fill::before { content: "\f78e"; } +.bi-wrench-adjustable-circle::before { content: "\f78f"; } +.bi-wrench-adjustable::before { content: "\f790"; } +.bi-filetype-json::before { content: "\f791"; } +.bi-filetype-pptx::before { content: "\f792"; } +.bi-filetype-xlsx::before { content: "\f793"; } +.bi-1-circle-fill::before { content: "\f796"; } +.bi-1-circle::before { content: "\f797"; } +.bi-1-square-fill::before { content: "\f798"; } +.bi-1-square::before { content: "\f799"; } +.bi-2-circle-fill::before { content: "\f79c"; } +.bi-2-circle::before { content: "\f79d"; } +.bi-2-square-fill::before { content: "\f79e"; } +.bi-2-square::before { content: "\f79f"; } +.bi-3-circle-fill::before { content: "\f7a2"; } +.bi-3-circle::before { content: "\f7a3"; } +.bi-3-square-fill::before { content: "\f7a4"; } +.bi-3-square::before { content: "\f7a5"; } +.bi-4-circle-fill::before { content: "\f7a8"; } +.bi-4-circle::before { content: "\f7a9"; } +.bi-4-square-fill::before { content: "\f7aa"; } +.bi-4-square::before { content: "\f7ab"; } +.bi-5-circle-fill::before { content: "\f7ae"; } +.bi-5-circle::before { content: "\f7af"; } +.bi-5-square-fill::before { content: "\f7b0"; } +.bi-5-square::before { content: "\f7b1"; } +.bi-6-circle-fill::before { content: "\f7b4"; } +.bi-6-circle::before { content: "\f7b5"; } +.bi-6-square-fill::before { content: "\f7b6"; } +.bi-6-square::before { content: "\f7b7"; } +.bi-7-circle-fill::before { content: "\f7ba"; } +.bi-7-circle::before { content: "\f7bb"; } +.bi-7-square-fill::before { content: "\f7bc"; } +.bi-7-square::before { content: "\f7bd"; } +.bi-8-circle-fill::before { content: "\f7c0"; } +.bi-8-circle::before { content: "\f7c1"; } +.bi-8-square-fill::before { content: "\f7c2"; } +.bi-8-square::before { content: "\f7c3"; } +.bi-9-circle-fill::before { content: "\f7c6"; } +.bi-9-circle::before { content: "\f7c7"; } +.bi-9-square-fill::before { content: "\f7c8"; } +.bi-9-square::before { content: "\f7c9"; } +.bi-airplane-engines-fill::before { content: "\f7ca"; } +.bi-airplane-engines::before { content: "\f7cb"; } +.bi-airplane-fill::before { content: "\f7cc"; } +.bi-airplane::before { content: "\f7cd"; } +.bi-alexa::before { content: "\f7ce"; } +.bi-alipay::before { content: "\f7cf"; } +.bi-android::before { content: "\f7d0"; } +.bi-android2::before { content: "\f7d1"; } +.bi-box-fill::before { content: "\f7d2"; } +.bi-box-seam-fill::before { content: "\f7d3"; } +.bi-browser-chrome::before { content: "\f7d4"; } +.bi-browser-edge::before { content: "\f7d5"; } +.bi-browser-firefox::before { content: "\f7d6"; } +.bi-browser-safari::before { content: "\f7d7"; } +.bi-c-circle-fill::before { content: "\f7da"; } +.bi-c-circle::before { content: "\f7db"; } +.bi-c-square-fill::before { content: "\f7dc"; } +.bi-c-square::before { content: "\f7dd"; } +.bi-capsule-pill::before { content: "\f7de"; } +.bi-capsule::before { content: "\f7df"; } +.bi-car-front-fill::before { content: "\f7e0"; } +.bi-car-front::before { content: "\f7e1"; } +.bi-cassette-fill::before { content: "\f7e2"; } +.bi-cassette::before { content: "\f7e3"; } +.bi-cc-circle-fill::before { content: "\f7e6"; } +.bi-cc-circle::before { content: "\f7e7"; } +.bi-cc-square-fill::before { content: "\f7e8"; } +.bi-cc-square::before { content: "\f7e9"; } +.bi-cup-hot-fill::before { content: "\f7ea"; } +.bi-cup-hot::before { content: "\f7eb"; } +.bi-currency-rupee::before { content: "\f7ec"; } +.bi-dropbox::before { content: "\f7ed"; } +.bi-escape::before { content: "\f7ee"; } +.bi-fast-forward-btn-fill::before { content: "\f7ef"; } +.bi-fast-forward-btn::before { content: "\f7f0"; } +.bi-fast-forward-circle-fill::before { content: "\f7f1"; } +.bi-fast-forward-circle::before { content: "\f7f2"; } +.bi-fast-forward-fill::before { content: "\f7f3"; } +.bi-fast-forward::before { content: "\f7f4"; } +.bi-filetype-sql::before { content: "\f7f5"; } +.bi-fire::before { content: "\f7f6"; } +.bi-google-play::before { content: "\f7f7"; } +.bi-h-circle-fill::before { content: "\f7fa"; } +.bi-h-circle::before { content: "\f7fb"; } +.bi-h-square-fill::before { content: "\f7fc"; } +.bi-h-square::before { content: "\f7fd"; } +.bi-indent::before { content: "\f7fe"; } +.bi-lungs-fill::before { content: "\f7ff"; } +.bi-lungs::before { content: "\f800"; } +.bi-microsoft-teams::before { content: "\f801"; } +.bi-p-circle-fill::before { content: "\f804"; } +.bi-p-circle::before { content: "\f805"; } +.bi-p-square-fill::before { content: "\f806"; } +.bi-p-square::before { content: "\f807"; } +.bi-pass-fill::before { content: "\f808"; } +.bi-pass::before { content: "\f809"; } +.bi-prescription::before { content: "\f80a"; } +.bi-prescription2::before { content: "\f80b"; } +.bi-r-circle-fill::before { content: "\f80e"; } +.bi-r-circle::before { content: "\f80f"; } +.bi-r-square-fill::before { content: "\f810"; } +.bi-r-square::before { content: "\f811"; } +.bi-repeat-1::before { content: "\f812"; } +.bi-repeat::before { content: "\f813"; } +.bi-rewind-btn-fill::before { content: "\f814"; } +.bi-rewind-btn::before { content: "\f815"; } +.bi-rewind-circle-fill::before { content: "\f816"; } +.bi-rewind-circle::before { content: "\f817"; } +.bi-rewind-fill::before { content: "\f818"; } +.bi-rewind::before { content: "\f819"; } +.bi-train-freight-front-fill::before { content: "\f81a"; } +.bi-train-freight-front::before { content: "\f81b"; } +.bi-train-front-fill::before { content: "\f81c"; } +.bi-train-front::before { content: "\f81d"; } +.bi-train-lightrail-front-fill::before { content: "\f81e"; } +.bi-train-lightrail-front::before { content: "\f81f"; } +.bi-truck-front-fill::before { content: "\f820"; } +.bi-truck-front::before { content: "\f821"; } +.bi-ubuntu::before { content: "\f822"; } +.bi-unindent::before { content: "\f823"; } +.bi-unity::before { content: "\f824"; } +.bi-universal-access-circle::before { content: "\f825"; } +.bi-universal-access::before { content: "\f826"; } +.bi-virus::before { content: "\f827"; } +.bi-virus2::before { content: "\f828"; } +.bi-wechat::before { content: "\f829"; } +.bi-yelp::before { content: "\f82a"; } +.bi-sign-stop-fill::before { content: "\f82b"; } +.bi-sign-stop-lights-fill::before { content: "\f82c"; } +.bi-sign-stop-lights::before { content: "\f82d"; } +.bi-sign-stop::before { content: "\f82e"; } +.bi-sign-turn-left-fill::before { content: "\f82f"; } +.bi-sign-turn-left::before { content: "\f830"; } +.bi-sign-turn-right-fill::before { content: "\f831"; } +.bi-sign-turn-right::before { content: "\f832"; } +.bi-sign-turn-slight-left-fill::before { content: "\f833"; } +.bi-sign-turn-slight-left::before { content: "\f834"; } +.bi-sign-turn-slight-right-fill::before { content: "\f835"; } +.bi-sign-turn-slight-right::before { content: "\f836"; } +.bi-sign-yield-fill::before { content: "\f837"; } +.bi-sign-yield::before { content: "\f838"; } +.bi-ev-station-fill::before { content: "\f839"; } +.bi-ev-station::before { content: "\f83a"; } +.bi-fuel-pump-diesel-fill::before { content: "\f83b"; } +.bi-fuel-pump-diesel::before { content: "\f83c"; } +.bi-fuel-pump-fill::before { content: "\f83d"; } +.bi-fuel-pump::before { content: "\f83e"; } +.bi-0-circle-fill::before { content: "\f83f"; } +.bi-0-circle::before { content: "\f840"; } +.bi-0-square-fill::before { content: "\f841"; } +.bi-0-square::before { content: "\f842"; } +.bi-rocket-fill::before { content: "\f843"; } +.bi-rocket-takeoff-fill::before { content: "\f844"; } +.bi-rocket-takeoff::before { content: "\f845"; } +.bi-rocket::before { content: "\f846"; } +.bi-stripe::before { content: "\f847"; } +.bi-subscript::before { content: "\f848"; } +.bi-superscript::before { content: "\f849"; } +.bi-trello::before { content: "\f84a"; } +.bi-envelope-at-fill::before { content: "\f84b"; } +.bi-envelope-at::before { content: "\f84c"; } +.bi-regex::before { content: "\f84d"; } +.bi-text-wrap::before { content: "\f84e"; } +.bi-sign-dead-end-fill::before { content: "\f84f"; } +.bi-sign-dead-end::before { content: "\f850"; } +.bi-sign-do-not-enter-fill::before { content: "\f851"; } +.bi-sign-do-not-enter::before { content: "\f852"; } +.bi-sign-intersection-fill::before { content: "\f853"; } +.bi-sign-intersection-side-fill::before { content: "\f854"; } +.bi-sign-intersection-side::before { content: "\f855"; } +.bi-sign-intersection-t-fill::before { content: "\f856"; } +.bi-sign-intersection-t::before { content: "\f857"; } +.bi-sign-intersection-y-fill::before { content: "\f858"; } +.bi-sign-intersection-y::before { content: "\f859"; } +.bi-sign-intersection::before { content: "\f85a"; } +.bi-sign-merge-left-fill::before { content: "\f85b"; } +.bi-sign-merge-left::before { content: "\f85c"; } +.bi-sign-merge-right-fill::before { content: "\f85d"; } +.bi-sign-merge-right::before { content: "\f85e"; } +.bi-sign-no-left-turn-fill::before { content: "\f85f"; } +.bi-sign-no-left-turn::before { content: "\f860"; } +.bi-sign-no-parking-fill::before { content: "\f861"; } +.bi-sign-no-parking::before { content: "\f862"; } +.bi-sign-no-right-turn-fill::before { content: "\f863"; } +.bi-sign-no-right-turn::before { content: "\f864"; } +.bi-sign-railroad-fill::before { content: "\f865"; } +.bi-sign-railroad::before { content: "\f866"; } +.bi-building-add::before { content: "\f867"; } +.bi-building-check::before { content: "\f868"; } +.bi-building-dash::before { content: "\f869"; } +.bi-building-down::before { content: "\f86a"; } +.bi-building-exclamation::before { content: "\f86b"; } +.bi-building-fill-add::before { content: "\f86c"; } +.bi-building-fill-check::before { content: "\f86d"; } +.bi-building-fill-dash::before { content: "\f86e"; } +.bi-building-fill-down::before { content: "\f86f"; } +.bi-building-fill-exclamation::before { content: "\f870"; } +.bi-building-fill-gear::before { content: "\f871"; } +.bi-building-fill-lock::before { content: "\f872"; } +.bi-building-fill-slash::before { content: "\f873"; } +.bi-building-fill-up::before { content: "\f874"; } +.bi-building-fill-x::before { content: "\f875"; } +.bi-building-fill::before { content: "\f876"; } +.bi-building-gear::before { content: "\f877"; } +.bi-building-lock::before { content: "\f878"; } +.bi-building-slash::before { content: "\f879"; } +.bi-building-up::before { content: "\f87a"; } +.bi-building-x::before { content: "\f87b"; } +.bi-buildings-fill::before { content: "\f87c"; } +.bi-buildings::before { content: "\f87d"; } +.bi-bus-front-fill::before { content: "\f87e"; } +.bi-bus-front::before { content: "\f87f"; } +.bi-ev-front-fill::before { content: "\f880"; } +.bi-ev-front::before { content: "\f881"; } +.bi-globe-americas::before { content: "\f882"; } +.bi-globe-asia-australia::before { content: "\f883"; } +.bi-globe-central-south-asia::before { content: "\f884"; } +.bi-globe-europe-africa::before { content: "\f885"; } +.bi-house-add-fill::before { content: "\f886"; } +.bi-house-add::before { content: "\f887"; } +.bi-house-check-fill::before { content: "\f888"; } +.bi-house-check::before { content: "\f889"; } +.bi-house-dash-fill::before { content: "\f88a"; } +.bi-house-dash::before { content: "\f88b"; } +.bi-house-down-fill::before { content: "\f88c"; } +.bi-house-down::before { content: "\f88d"; } +.bi-house-exclamation-fill::before { content: "\f88e"; } +.bi-house-exclamation::before { content: "\f88f"; } +.bi-house-gear-fill::before { content: "\f890"; } +.bi-house-gear::before { content: "\f891"; } +.bi-house-lock-fill::before { content: "\f892"; } +.bi-house-lock::before { content: "\f893"; } +.bi-house-slash-fill::before { content: "\f894"; } +.bi-house-slash::before { content: "\f895"; } +.bi-house-up-fill::before { content: "\f896"; } +.bi-house-up::before { content: "\f897"; } +.bi-house-x-fill::before { content: "\f898"; } +.bi-house-x::before { content: "\f899"; } +.bi-person-add::before { content: "\f89a"; } +.bi-person-down::before { content: "\f89b"; } +.bi-person-exclamation::before { content: "\f89c"; } +.bi-person-fill-add::before { content: "\f89d"; } +.bi-person-fill-check::before { content: "\f89e"; } +.bi-person-fill-dash::before { content: "\f89f"; } +.bi-person-fill-down::before { content: "\f8a0"; } +.bi-person-fill-exclamation::before { content: "\f8a1"; } +.bi-person-fill-gear::before { content: "\f8a2"; } +.bi-person-fill-lock::before { content: "\f8a3"; } +.bi-person-fill-slash::before { content: "\f8a4"; } +.bi-person-fill-up::before { content: "\f8a5"; } +.bi-person-fill-x::before { content: "\f8a6"; } +.bi-person-gear::before { content: "\f8a7"; } +.bi-person-lock::before { content: "\f8a8"; } +.bi-person-slash::before { content: "\f8a9"; } +.bi-person-up::before { content: "\f8aa"; } +.bi-scooter::before { content: "\f8ab"; } +.bi-taxi-front-fill::before { content: "\f8ac"; } +.bi-taxi-front::before { content: "\f8ad"; } +.bi-amd::before { content: "\f8ae"; } +.bi-database-add::before { content: "\f8af"; } +.bi-database-check::before { content: "\f8b0"; } +.bi-database-dash::before { content: "\f8b1"; } +.bi-database-down::before { content: "\f8b2"; } +.bi-database-exclamation::before { content: "\f8b3"; } +.bi-database-fill-add::before { content: "\f8b4"; } +.bi-database-fill-check::before { content: "\f8b5"; } +.bi-database-fill-dash::before { content: "\f8b6"; } +.bi-database-fill-down::before { content: "\f8b7"; } +.bi-database-fill-exclamation::before { content: "\f8b8"; } +.bi-database-fill-gear::before { content: "\f8b9"; } +.bi-database-fill-lock::before { content: "\f8ba"; } +.bi-database-fill-slash::before { content: "\f8bb"; } +.bi-database-fill-up::before { content: "\f8bc"; } +.bi-database-fill-x::before { content: "\f8bd"; } +.bi-database-fill::before { content: "\f8be"; } +.bi-database-gear::before { content: "\f8bf"; } +.bi-database-lock::before { content: "\f8c0"; } +.bi-database-slash::before { content: "\f8c1"; } +.bi-database-up::before { content: "\f8c2"; } +.bi-database-x::before { content: "\f8c3"; } +.bi-database::before { content: "\f8c4"; } +.bi-houses-fill::before { content: "\f8c5"; } +.bi-houses::before { content: "\f8c6"; } +.bi-nvidia::before { content: "\f8c7"; } +.bi-person-vcard-fill::before { content: "\f8c8"; } +.bi-person-vcard::before { content: "\f8c9"; } +.bi-sina-weibo::before { content: "\f8ca"; } +.bi-tencent-qq::before { content: "\f8cb"; } +.bi-wikipedia::before { content: "\f8cc"; } +.bi-alphabet-uppercase::before { content: "\f2a5"; } +.bi-alphabet::before { content: "\f68a"; } +.bi-amazon::before { content: "\f68d"; } +.bi-arrows-collapse-vertical::before { content: "\f690"; } +.bi-arrows-expand-vertical::before { content: "\f695"; } +.bi-arrows-vertical::before { content: "\f698"; } +.bi-arrows::before { content: "\f6a2"; } +.bi-ban-fill::before { content: "\f6a3"; } +.bi-ban::before { content: "\f6b6"; } +.bi-bing::before { content: "\f6c2"; } +.bi-cake::before { content: "\f6e0"; } +.bi-cake2::before { content: "\f6ed"; } +.bi-cookie::before { content: "\f6ee"; } +.bi-copy::before { content: "\f759"; } +.bi-crosshair::before { content: "\f769"; } +.bi-crosshair2::before { content: "\f794"; } +.bi-emoji-astonished-fill::before { content: "\f795"; } +.bi-emoji-astonished::before { content: "\f79a"; } +.bi-emoji-grimace-fill::before { content: "\f79b"; } +.bi-emoji-grimace::before { content: "\f7a0"; } +.bi-emoji-grin-fill::before { content: "\f7a1"; } +.bi-emoji-grin::before { content: "\f7a6"; } +.bi-emoji-surprise-fill::before { content: "\f7a7"; } +.bi-emoji-surprise::before { content: "\f7ac"; } +.bi-emoji-tear-fill::before { content: "\f7ad"; } +.bi-emoji-tear::before { content: "\f7b2"; } +.bi-envelope-arrow-down-fill::before { content: "\f7b3"; } +.bi-envelope-arrow-down::before { content: "\f7b8"; } +.bi-envelope-arrow-up-fill::before { content: "\f7b9"; } +.bi-envelope-arrow-up::before { content: "\f7be"; } +.bi-feather::before { content: "\f7bf"; } +.bi-feather2::before { content: "\f7c4"; } +.bi-floppy-fill::before { content: "\f7c5"; } +.bi-floppy::before { content: "\f7d8"; } +.bi-floppy2-fill::before { content: "\f7d9"; } +.bi-floppy2::before { content: "\f7e4"; } +.bi-gitlab::before { content: "\f7e5"; } +.bi-highlighter::before { content: "\f7f8"; } +.bi-marker-tip::before { content: "\f802"; } +.bi-nvme-fill::before { content: "\f803"; } +.bi-nvme::before { content: "\f80c"; } +.bi-opencollective::before { content: "\f80d"; } +.bi-pci-card-network::before { content: "\f8cd"; } +.bi-pci-card-sound::before { content: "\f8ce"; } +.bi-radar::before { content: "\f8cf"; } +.bi-send-arrow-down-fill::before { content: "\f8d0"; } +.bi-send-arrow-down::before { content: "\f8d1"; } +.bi-send-arrow-up-fill::before { content: "\f8d2"; } +.bi-send-arrow-up::before { content: "\f8d3"; } +.bi-sim-slash-fill::before { content: "\f8d4"; } +.bi-sim-slash::before { content: "\f8d5"; } +.bi-sourceforge::before { content: "\f8d6"; } +.bi-substack::before { content: "\f8d7"; } +.bi-threads-fill::before { content: "\f8d8"; } +.bi-threads::before { content: "\f8d9"; } +.bi-transparency::before { content: "\f8da"; } +.bi-twitter-x::before { content: "\f8db"; } +.bi-type-h4::before { content: "\f8dc"; } +.bi-type-h5::before { content: "\f8dd"; } +.bi-type-h6::before { content: "\f8de"; } +.bi-backpack-fill::before { content: "\f8df"; } +.bi-backpack::before { content: "\f8e0"; } +.bi-backpack2-fill::before { content: "\f8e1"; } +.bi-backpack2::before { content: "\f8e2"; } +.bi-backpack3-fill::before { content: "\f8e3"; } +.bi-backpack3::before { content: "\f8e4"; } +.bi-backpack4-fill::before { content: "\f8e5"; } +.bi-backpack4::before { content: "\f8e6"; } +.bi-brilliance::before { content: "\f8e7"; } +.bi-cake-fill::before { content: "\f8e8"; } +.bi-cake2-fill::before { content: "\f8e9"; } +.bi-duffle-fill::before { content: "\f8ea"; } +.bi-duffle::before { content: "\f8eb"; } +.bi-exposure::before { content: "\f8ec"; } +.bi-gender-neuter::before { content: "\f8ed"; } +.bi-highlights::before { content: "\f8ee"; } +.bi-luggage-fill::before { content: "\f8ef"; } +.bi-luggage::before { content: "\f8f0"; } +.bi-mailbox-flag::before { content: "\f8f1"; } +.bi-mailbox2-flag::before { content: "\f8f2"; } +.bi-noise-reduction::before { content: "\f8f3"; } +.bi-passport-fill::before { content: "\f8f4"; } +.bi-passport::before { content: "\f8f5"; } +.bi-person-arms-up::before { content: "\f8f6"; } +.bi-person-raised-hand::before { content: "\f8f7"; } +.bi-person-standing-dress::before { content: "\f8f8"; } +.bi-person-standing::before { content: "\f8f9"; } +.bi-person-walking::before { content: "\f8fa"; } +.bi-person-wheelchair::before { content: "\f8fb"; } +.bi-shadows::before { content: "\f8fc"; } +.bi-suitcase-fill::before { content: "\f8fd"; } +.bi-suitcase-lg-fill::before { content: "\f8fe"; } +.bi-suitcase-lg::before { content: "\f8ff"; } +.bi-suitcase::before { content: "\f900"; } +.bi-suitcase2-fill::before { content: "\f901"; } +.bi-suitcase2::before { content: "\f902"; } +.bi-vignette::before { content: "\f903"; } diff --git a/docs/src/tutorials/test1_files/libs/bootstrap/bootstrap-icons.woff b/docs/src/tutorials/test1_files/libs/bootstrap/bootstrap-icons.woff new file mode 100644 index 0000000000000000000000000000000000000000..dbeeb055674125ad78fda0f3d166b36e5cc92336 GIT binary patch literal 176200 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

2+UrCZlNAp`)&G@jg{m-!Dn; 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πR(XEyYV3az{Ot$Y*f93mYq^Lnu{qbYp!X!TA9&! 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 F?~0aZ)an2L literal 0 HcmV?d00001 diff --git a/docs/src/tutorials/test1_files/libs/bootstrap/bootstrap.min.js b/docs/src/tutorials/test1_files/libs/bootstrap/bootstrap.min.js new file mode 100644 index 0000000..e8f21f7 --- /dev/null +++ b/docs/src/tutorials/test1_files/libs/bootstrap/bootstrap.min.js @@ -0,0 +1,7 @@ +/*! + * Bootstrap v5.3.1 (https://getbootstrap.com/) + * Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap=e()}(this,(function(){"use strict";const t=new Map,e={set(e,i,n){t.has(e)||t.set(e,new Map);const s=t.get(e);s.has(i)||0===s.size?s.set(i,n):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(s.keys())[0]}.`)},get:(e,i)=>t.has(e)&&t.get(e).get(i)||null,remove(e,i){if(!t.has(e))return;const n=t.get(e);n.delete(i),0===n.size&&t.delete(e)}},i="transitionend",n=t=>(t&&window.CSS&&window.CSS.escape&&(t=t.replace(/#([^\s"#']+)/g,((t,e)=>`#${CSS.escape(e)}`))),t),s=t=>{t.dispatchEvent(new Event(i))},o=t=>!(!t||"object"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),r=t=>o(t)?t.jquery?t[0]:t:"string"==typeof t&&t.length>0?document.querySelector(n(t)):null,a=t=>{if(!o(t)||0===t.getClientRects().length)return!1;const e="visible"===getComputedStyle(t).getPropertyValue("visibility"),i=t.closest("details:not([open])");if(!i)return e;if(i!==t){const e=t.closest("summary");if(e&&e.parentNode!==i)return!1;if(null===e)return!1}return e},l=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")),c=t=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?c(t.parentNode):null},h=()=>{},d=t=>{t.offsetHeight},u=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,f=[],p=()=>"rtl"===document.documentElement.dir,m=t=>{var e;e=()=>{const e=u();if(e){const i=t.NAME,n=e.fn[i];e.fn[i]=t.jQueryInterface,e.fn[i].Constructor=t,e.fn[i].noConflict=()=>(e.fn[i]=n,t.jQueryInterface)}},"loading"===document.readyState?(f.length||document.addEventListener("DOMContentLoaded",(()=>{for(const t of f)t()})),f.push(e)):e()},g=(t,e=[],i=t)=>"function"==typeof t?t(...e):i,_=(t,e,n=!0)=>{if(!n)return void g(t);const o=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:i}=window.getComputedStyle(t);const n=Number.parseFloat(e),s=Number.parseFloat(i);return n||s?(e=e.split(",")[0],i=i.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(i))):0})(e)+5;let r=!1;const a=({target:n})=>{n===e&&(r=!0,e.removeEventListener(i,a),g(t))};e.addEventListener(i,a),setTimeout((()=>{r||s(e)}),o)},b=(t,e,i,n)=>{const s=t.length;let o=t.indexOf(e);return-1===o?!i&&n?t[s-1]:t[0]:(o+=i?1:-1,n&&(o=(o+s)%s),t[Math.max(0,Math.min(o,s-1))])},v=/[^.]*(?=\..*)\.|.*/,y=/\..*/,w=/::\d+$/,A={};let E=1;const T={mouseenter:"mouseover",mouseleave:"mouseout"},C=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function O(t,e){return e&&`${e}::${E++}`||t.uidEvent||E++}function x(t){const e=O(t);return t.uidEvent=e,A[e]=A[e]||{},A[e]}function k(t,e,i=null){return Object.values(t).find((t=>t.callable===e&&t.delegationSelector===i))}function L(t,e,i){const n="string"==typeof e,s=n?i:e||i;let o=I(t);return C.has(o)||(o=t),[n,s,o]}function S(t,e,i,n,s){if("string"!=typeof e||!t)return;let[o,r,a]=L(e,i,n);if(e in T){const t=t=>function(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};r=t(r)}const l=x(t),c=l[a]||(l[a]={}),h=k(c,r,o?i:null);if(h)return void(h.oneOff=h.oneOff&&s);const d=O(r,e.replace(v,"")),u=o?function(t,e,i){return function n(s){const o=t.querySelectorAll(e);for(let{target:r}=s;r&&r!==this;r=r.parentNode)for(const a of o)if(a===r)return P(s,{delegateTarget:r}),n.oneOff&&N.off(t,s.type,e,i),i.apply(r,[s])}}(t,i,r):function(t,e){return function i(n){return P(n,{delegateTarget:t}),i.oneOff&&N.off(t,n.type,e),e.apply(t,[n])}}(t,r);u.delegationSelector=o?i:null,u.callable=r,u.oneOff=s,u.uidEvent=d,c[d]=u,t.addEventListener(a,u,o)}function D(t,e,i,n,s){const o=k(e[i],n,s);o&&(t.removeEventListener(i,o,Boolean(s)),delete e[i][o.uidEvent])}function $(t,e,i,n){const s=e[i]||{};for(const[o,r]of Object.entries(s))o.includes(n)&&D(t,e,i,r.callable,r.delegationSelector)}function I(t){return t=t.replace(y,""),T[t]||t}const N={on(t,e,i,n){S(t,e,i,n,!1)},one(t,e,i,n){S(t,e,i,n,!0)},off(t,e,i,n){if("string"!=typeof e||!t)return;const[s,o,r]=L(e,i,n),a=r!==e,l=x(t),c=l[r]||{},h=e.startsWith(".");if(void 0===o){if(h)for(const i of Object.keys(l))$(t,l,i,e.slice(1));for(const[i,n]of Object.entries(c)){const s=i.replace(w,"");a&&!e.includes(s)||D(t,l,r,n.callable,n.delegationSelector)}}else{if(!Object.keys(c).length)return;D(t,l,r,o,s?i:null)}},trigger(t,e,i){if("string"!=typeof e||!t)return null;const n=u();let s=null,o=!0,r=!0,a=!1;e!==I(e)&&n&&(s=n.Event(e,i),n(t).trigger(s),o=!s.isPropagationStopped(),r=!s.isImmediatePropagationStopped(),a=s.isDefaultPrevented());const l=P(new Event(e,{bubbles:o,cancelable:!0}),i);return a&&l.preventDefault(),r&&t.dispatchEvent(l),l.defaultPrevented&&s&&s.preventDefault(),l}};function P(t,e={}){for(const[i,n]of Object.entries(e))try{t[i]=n}catch(e){Object.defineProperty(t,i,{configurable:!0,get:()=>n})}return t}function M(t){if("true"===t)return!0;if("false"===t)return!1;if(t===Number(t).toString())return Number(t);if(""===t||"null"===t)return null;if("string"!=typeof t)return t;try{return JSON.parse(decodeURIComponent(t))}catch(e){return t}}function j(t){return t.replace(/[A-Z]/g,(t=>`-${t.toLowerCase()}`))}const F={setDataAttribute(t,e,i){t.setAttribute(`data-bs-${j(e)}`,i)},removeDataAttribute(t,e){t.removeAttribute(`data-bs-${j(e)}`)},getDataAttributes(t){if(!t)return{};const e={},i=Object.keys(t.dataset).filter((t=>t.startsWith("bs")&&!t.startsWith("bsConfig")));for(const n of i){let i=n.replace(/^bs/,"");i=i.charAt(0).toLowerCase()+i.slice(1,i.length),e[i]=M(t.dataset[n])}return e},getDataAttribute:(t,e)=>M(t.getAttribute(`data-bs-${j(e)}`))};class H{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(t){return t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t}_mergeConfigObj(t,e){const i=o(e)?F.getDataAttribute(e,"config"):{};return{...this.constructor.Default,..."object"==typeof i?i:{},...o(e)?F.getDataAttributes(e):{},..."object"==typeof t?t:{}}}_typeCheckConfig(t,e=this.constructor.DefaultType){for(const[n,s]of Object.entries(e)){const e=t[n],r=o(e)?"element":null==(i=e)?`${i}`:Object.prototype.toString.call(i).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(s).test(r))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${n}" provided type "${r}" but expected type "${s}".`)}var i}}class W extends H{constructor(t,i){super(),(t=r(t))&&(this._element=t,this._config=this._getConfig(i),e.set(this._element,this.constructor.DATA_KEY,this))}dispose(){e.remove(this._element,this.constructor.DATA_KEY),N.off(this._element,this.constructor.EVENT_KEY);for(const t of Object.getOwnPropertyNames(this))this[t]=null}_queueCallback(t,e,i=!0){_(t,e,i)}_getConfig(t){return t=this._mergeConfigObj(t,this._element),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}static getInstance(t){return e.get(r(t),this.DATA_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,"object"==typeof e?e:null)}static get VERSION(){return"5.3.1"}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(t){return`${t}${this.EVENT_KEY}`}}const B=t=>{let e=t.getAttribute("data-bs-target");if(!e||"#"===e){let i=t.getAttribute("href");if(!i||!i.includes("#")&&!i.startsWith("."))return null;i.includes("#")&&!i.startsWith("#")&&(i=`#${i.split("#")[1]}`),e=i&&"#"!==i?i.trim():null}return n(e)},z={find:(t,e=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(e,t)),findOne:(t,e=document.documentElement)=>Element.prototype.querySelector.call(e,t),children:(t,e)=>[].concat(...t.children).filter((t=>t.matches(e))),parents(t,e){const i=[];let n=t.parentNode.closest(e);for(;n;)i.push(n),n=n.parentNode.closest(e);return i},prev(t,e){let i=t.previousElementSibling;for(;i;){if(i.matches(e))return[i];i=i.previousElementSibling}return[]},next(t,e){let i=t.nextElementSibling;for(;i;){if(i.matches(e))return[i];i=i.nextElementSibling}return[]},focusableChildren(t){const e=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map((t=>`${t}:not([tabindex^="-"])`)).join(",");return this.find(e,t).filter((t=>!l(t)&&a(t)))},getSelectorFromElement(t){const e=B(t);return e&&z.findOne(e)?e:null},getElementFromSelector(t){const e=B(t);return e?z.findOne(e):null},getMultipleElementsFromSelector(t){const e=B(t);return e?z.find(e):[]}},R=(t,e="hide")=>{const i=`click.dismiss${t.EVENT_KEY}`,n=t.NAME;N.on(document,i,`[data-bs-dismiss="${n}"]`,(function(i){if(["A","AREA"].includes(this.tagName)&&i.preventDefault(),l(this))return;const s=z.getElementFromSelector(this)||this.closest(`.${n}`);t.getOrCreateInstance(s)[e]()}))},q=".bs.alert",V=`close${q}`,K=`closed${q}`;class Q extends W{static get NAME(){return"alert"}close(){if(N.trigger(this._element,V).defaultPrevented)return;this._element.classList.remove("show");const t=this._element.classList.contains("fade");this._queueCallback((()=>this._destroyElement()),this._element,t)}_destroyElement(){this._element.remove(),N.trigger(this._element,K),this.dispose()}static jQueryInterface(t){return this.each((function(){const e=Q.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}R(Q,"close"),m(Q);const X='[data-bs-toggle="button"]';class Y extends W{static get NAME(){return"button"}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(t){return this.each((function(){const e=Y.getOrCreateInstance(this);"toggle"===t&&e[t]()}))}}N.on(document,"click.bs.button.data-api",X,(t=>{t.preventDefault();const e=t.target.closest(X);Y.getOrCreateInstance(e).toggle()})),m(Y);const U=".bs.swipe",G=`touchstart${U}`,J=`touchmove${U}`,Z=`touchend${U}`,tt=`pointerdown${U}`,et=`pointerup${U}`,it={endCallback:null,leftCallback:null,rightCallback:null},nt={endCallback:"(function|null)",leftCallback:"(function|null)",rightCallback:"(function|null)"};class st extends H{constructor(t,e){super(),this._element=t,t&&st.isSupported()&&(this._config=this._getConfig(e),this._deltaX=0,this._supportPointerEvents=Boolean(window.PointerEvent),this._initEvents())}static get Default(){return it}static get DefaultType(){return nt}static get NAME(){return"swipe"}dispose(){N.off(this._element,U)}_start(t){this._supportPointerEvents?this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX):this._deltaX=t.touches[0].clientX}_end(t){this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX-this._deltaX),this._handleSwipe(),g(this._config.endCallback)}_move(t){this._deltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this._deltaX}_handleSwipe(){const t=Math.abs(this._deltaX);if(t<=40)return;const e=t/this._deltaX;this._deltaX=0,e&&g(e>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?(N.on(this._element,tt,(t=>this._start(t))),N.on(this._element,et,(t=>this._end(t))),this._element.classList.add("pointer-event")):(N.on(this._element,G,(t=>this._start(t))),N.on(this._element,J,(t=>this._move(t))),N.on(this._element,Z,(t=>this._end(t))))}_eventIsPointerPenTouch(t){return this._supportPointerEvents&&("pen"===t.pointerType||"touch"===t.pointerType)}static isSupported(){return"ontouchstart"in document.documentElement||navigator.maxTouchPoints>0}}const ot=".bs.carousel",rt=".data-api",at="next",lt="prev",ct="left",ht="right",dt=`slide${ot}`,ut=`slid${ot}`,ft=`keydown${ot}`,pt=`mouseenter${ot}`,mt=`mouseleave${ot}`,gt=`dragstart${ot}`,_t=`load${ot}${rt}`,bt=`click${ot}${rt}`,vt="carousel",yt="active",wt=".active",At=".carousel-item",Et=wt+At,Tt={ArrowLeft:ht,ArrowRight:ct},Ct={interval:5e3,keyboard:!0,pause:"hover",ride:!1,touch:!0,wrap:!0},Ot={interval:"(number|boolean)",keyboard:"boolean",pause:"(string|boolean)",ride:"(boolean|string)",touch:"boolean",wrap:"boolean"};class xt extends W{constructor(t,e){super(t,e),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=z.findOne(".carousel-indicators",this._element),this._addEventListeners(),this._config.ride===vt&&this.cycle()}static get Default(){return Ct}static get DefaultType(){return Ot}static get NAME(){return"carousel"}next(){this._slide(at)}nextWhenVisible(){!document.hidden&&a(this._element)&&this.next()}prev(){this._slide(lt)}pause(){this._isSliding&&s(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval((()=>this.nextWhenVisible()),this._config.interval)}_maybeEnableCycle(){this._config.ride&&(this._isSliding?N.one(this._element,ut,(()=>this.cycle())):this.cycle())}to(t){const e=this._getItems();if(t>e.length-1||t<0)return;if(this._isSliding)return void N.one(this._element,ut,(()=>this.to(t)));const i=this._getItemIndex(this._getActive());if(i===t)return;const n=t>i?at:lt;this._slide(n,e[t])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(t){return t.defaultInterval=t.interval,t}_addEventListeners(){this._config.keyboard&&N.on(this._element,ft,(t=>this._keydown(t))),"hover"===this._config.pause&&(N.on(this._element,pt,(()=>this.pause())),N.on(this._element,mt,(()=>this._maybeEnableCycle()))),this._config.touch&&st.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(const t of z.find(".carousel-item img",this._element))N.on(t,gt,(t=>t.preventDefault()));const t={leftCallback:()=>this._slide(this._directionToOrder(ct)),rightCallback:()=>this._slide(this._directionToOrder(ht)),endCallback:()=>{"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout((()=>this._maybeEnableCycle()),500+this._config.interval))}};this._swipeHelper=new st(this._element,t)}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=Tt[t.key];e&&(t.preventDefault(),this._slide(this._directionToOrder(e)))}_getItemIndex(t){return this._getItems().indexOf(t)}_setActiveIndicatorElement(t){if(!this._indicatorsElement)return;const e=z.findOne(wt,this._indicatorsElement);e.classList.remove(yt),e.removeAttribute("aria-current");const i=z.findOne(`[data-bs-slide-to="${t}"]`,this._indicatorsElement);i&&(i.classList.add(yt),i.setAttribute("aria-current","true"))}_updateInterval(){const t=this._activeElement||this._getActive();if(!t)return;const e=Number.parseInt(t.getAttribute("data-bs-interval"),10);this._config.interval=e||this._config.defaultInterval}_slide(t,e=null){if(this._isSliding)return;const i=this._getActive(),n=t===at,s=e||b(this._getItems(),i,n,this._config.wrap);if(s===i)return;const o=this._getItemIndex(s),r=e=>N.trigger(this._element,e,{relatedTarget:s,direction:this._orderToDirection(t),from:this._getItemIndex(i),to:o});if(r(dt).defaultPrevented)return;if(!i||!s)return;const a=Boolean(this._interval);this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(o),this._activeElement=s;const l=n?"carousel-item-start":"carousel-item-end",c=n?"carousel-item-next":"carousel-item-prev";s.classList.add(c),d(s),i.classList.add(l),s.classList.add(l),this._queueCallback((()=>{s.classList.remove(l,c),s.classList.add(yt),i.classList.remove(yt,c,l),this._isSliding=!1,r(ut)}),i,this._isAnimated()),a&&this.cycle()}_isAnimated(){return this._element.classList.contains("slide")}_getActive(){return z.findOne(Et,this._element)}_getItems(){return z.find(At,this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(t){return p()?t===ct?lt:at:t===ct?at:lt}_orderToDirection(t){return p()?t===lt?ct:ht:t===lt?ht:ct}static jQueryInterface(t){return this.each((function(){const e=xt.getOrCreateInstance(this,t);if("number"!=typeof t){if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}else e.to(t)}))}}N.on(document,bt,"[data-bs-slide], [data-bs-slide-to]",(function(t){const e=z.getElementFromSelector(this);if(!e||!e.classList.contains(vt))return;t.preventDefault();const i=xt.getOrCreateInstance(e),n=this.getAttribute("data-bs-slide-to");return n?(i.to(n),void i._maybeEnableCycle()):"next"===F.getDataAttribute(this,"slide")?(i.next(),void i._maybeEnableCycle()):(i.prev(),void i._maybeEnableCycle())})),N.on(window,_t,(()=>{const t=z.find('[data-bs-ride="carousel"]');for(const e of t)xt.getOrCreateInstance(e)})),m(xt);const kt=".bs.collapse",Lt=`show${kt}`,St=`shown${kt}`,Dt=`hide${kt}`,$t=`hidden${kt}`,It=`click${kt}.data-api`,Nt="show",Pt="collapse",Mt="collapsing",jt=`:scope .${Pt} .${Pt}`,Ft='[data-bs-toggle="collapse"]',Ht={parent:null,toggle:!0},Wt={parent:"(null|element)",toggle:"boolean"};class Bt extends W{constructor(t,e){super(t,e),this._isTransitioning=!1,this._triggerArray=[];const i=z.find(Ft);for(const t of i){const e=z.getSelectorFromElement(t),i=z.find(e).filter((t=>t===this._element));null!==e&&i.length&&this._triggerArray.push(t)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return Ht}static get DefaultType(){return Wt}static get NAME(){return"collapse"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t=[];if(this._config.parent&&(t=this._getFirstLevelChildren(".collapse.show, .collapse.collapsing").filter((t=>t!==this._element)).map((t=>Bt.getOrCreateInstance(t,{toggle:!1})))),t.length&&t[0]._isTransitioning)return;if(N.trigger(this._element,Lt).defaultPrevented)return;for(const e of t)e.hide();const e=this._getDimension();this._element.classList.remove(Pt),this._element.classList.add(Mt),this._element.style[e]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const i=`scroll${e[0].toUpperCase()+e.slice(1)}`;this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(Mt),this._element.classList.add(Pt,Nt),this._element.style[e]="",N.trigger(this._element,St)}),this._element,!0),this._element.style[e]=`${this._element[i]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(N.trigger(this._element,Dt).defaultPrevented)return;const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`,d(this._element),this._element.classList.add(Mt),this._element.classList.remove(Pt,Nt);for(const t of this._triggerArray){const e=z.getElementFromSelector(t);e&&!this._isShown(e)&&this._addAriaAndCollapsedClass([t],!1)}this._isTransitioning=!0,this._element.style[t]="",this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(Mt),this._element.classList.add(Pt),N.trigger(this._element,$t)}),this._element,!0)}_isShown(t=this._element){return t.classList.contains(Nt)}_configAfterMerge(t){return t.toggle=Boolean(t.toggle),t.parent=r(t.parent),t}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const t=this._getFirstLevelChildren(Ft);for(const e of t){const t=z.getElementFromSelector(e);t&&this._addAriaAndCollapsedClass([e],this._isShown(t))}}_getFirstLevelChildren(t){const e=z.find(jt,this._config.parent);return z.find(t,this._config.parent).filter((t=>!e.includes(t)))}_addAriaAndCollapsedClass(t,e){if(t.length)for(const i of t)i.classList.toggle("collapsed",!e),i.setAttribute("aria-expanded",e)}static jQueryInterface(t){const e={};return"string"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1),this.each((function(){const i=Bt.getOrCreateInstance(this,e);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t]()}}))}}N.on(document,It,Ft,(function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault();for(const t of z.getMultipleElementsFromSelector(this))Bt.getOrCreateInstance(t,{toggle:!1}).toggle()})),m(Bt);var zt="top",Rt="bottom",qt="right",Vt="left",Kt="auto",Qt=[zt,Rt,qt,Vt],Xt="start",Yt="end",Ut="clippingParents",Gt="viewport",Jt="popper",Zt="reference",te=Qt.reduce((function(t,e){return t.concat([e+"-"+Xt,e+"-"+Yt])}),[]),ee=[].concat(Qt,[Kt]).reduce((function(t,e){return t.concat([e,e+"-"+Xt,e+"-"+Yt])}),[]),ie="beforeRead",ne="read",se="afterRead",oe="beforeMain",re="main",ae="afterMain",le="beforeWrite",ce="write",he="afterWrite",de=[ie,ne,se,oe,re,ae,le,ce,he];function ue(t){return t?(t.nodeName||"").toLowerCase():null}function fe(t){if(null==t)return window;if("[object Window]"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function pe(t){return t instanceof fe(t).Element||t instanceof Element}function me(t){return t instanceof fe(t).HTMLElement||t instanceof HTMLElement}function ge(t){return"undefined"!=typeof ShadowRoot&&(t instanceof fe(t).ShadowRoot||t instanceof ShadowRoot)}const _e={name:"applyStyles",enabled:!0,phase:"write",fn:function(t){var e=t.state;Object.keys(e.elements).forEach((function(t){var i=e.styles[t]||{},n=e.attributes[t]||{},s=e.elements[t];me(s)&&ue(s)&&(Object.assign(s.style,i),Object.keys(n).forEach((function(t){var e=n[t];!1===e?s.removeAttribute(t):s.setAttribute(t,!0===e?"":e)})))}))},effect:function(t){var e=t.state,i={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,i.popper),e.styles=i,e.elements.arrow&&Object.assign(e.elements.arrow.style,i.arrow),function(){Object.keys(e.elements).forEach((function(t){var n=e.elements[t],s=e.attributes[t]||{},o=Object.keys(e.styles.hasOwnProperty(t)?e.styles[t]:i[t]).reduce((function(t,e){return t[e]="",t}),{});me(n)&&ue(n)&&(Object.assign(n.style,o),Object.keys(s).forEach((function(t){n.removeAttribute(t)})))}))}},requires:["computeStyles"]};function be(t){return t.split("-")[0]}var ve=Math.max,ye=Math.min,we=Math.round;function Ae(){var t=navigator.userAgentData;return null!=t&&t.brands&&Array.isArray(t.brands)?t.brands.map((function(t){return t.brand+"/"+t.version})).join(" "):navigator.userAgent}function Ee(){return!/^((?!chrome|android).)*safari/i.test(Ae())}function Te(t,e,i){void 0===e&&(e=!1),void 0===i&&(i=!1);var n=t.getBoundingClientRect(),s=1,o=1;e&&me(t)&&(s=t.offsetWidth>0&&we(n.width)/t.offsetWidth||1,o=t.offsetHeight>0&&we(n.height)/t.offsetHeight||1);var r=(pe(t)?fe(t):window).visualViewport,a=!Ee()&&i,l=(n.left+(a&&r?r.offsetLeft:0))/s,c=(n.top+(a&&r?r.offsetTop:0))/o,h=n.width/s,d=n.height/o;return{width:h,height:d,top:c,right:l+h,bottom:c+d,left:l,x:l,y:c}}function Ce(t){var e=Te(t),i=t.offsetWidth,n=t.offsetHeight;return Math.abs(e.width-i)<=1&&(i=e.width),Math.abs(e.height-n)<=1&&(n=e.height),{x:t.offsetLeft,y:t.offsetTop,width:i,height:n}}function Oe(t,e){var i=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(i&&ge(i)){var n=e;do{if(n&&t.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function xe(t){return fe(t).getComputedStyle(t)}function ke(t){return["table","td","th"].indexOf(ue(t))>=0}function Le(t){return((pe(t)?t.ownerDocument:t.document)||window.document).documentElement}function Se(t){return"html"===ue(t)?t:t.assignedSlot||t.parentNode||(ge(t)?t.host:null)||Le(t)}function De(t){return me(t)&&"fixed"!==xe(t).position?t.offsetParent:null}function $e(t){for(var e=fe(t),i=De(t);i&&ke(i)&&"static"===xe(i).position;)i=De(i);return i&&("html"===ue(i)||"body"===ue(i)&&"static"===xe(i).position)?e:i||function(t){var e=/firefox/i.test(Ae());if(/Trident/i.test(Ae())&&me(t)&&"fixed"===xe(t).position)return null;var i=Se(t);for(ge(i)&&(i=i.host);me(i)&&["html","body"].indexOf(ue(i))<0;){var n=xe(i);if("none"!==n.transform||"none"!==n.perspective||"paint"===n.contain||-1!==["transform","perspective"].indexOf(n.willChange)||e&&"filter"===n.willChange||e&&n.filter&&"none"!==n.filter)return i;i=i.parentNode}return null}(t)||e}function Ie(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function Ne(t,e,i){return ve(t,ye(e,i))}function Pe(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function Me(t,e){return e.reduce((function(e,i){return e[i]=t,e}),{})}const je={name:"arrow",enabled:!0,phase:"main",fn:function(t){var e,i=t.state,n=t.name,s=t.options,o=i.elements.arrow,r=i.modifiersData.popperOffsets,a=be(i.placement),l=Ie(a),c=[Vt,qt].indexOf(a)>=0?"height":"width";if(o&&r){var h=function(t,e){return Pe("number"!=typeof(t="function"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:Me(t,Qt))}(s.padding,i),d=Ce(o),u="y"===l?zt:Vt,f="y"===l?Rt:qt,p=i.rects.reference[c]+i.rects.reference[l]-r[l]-i.rects.popper[c],m=r[l]-i.rects.reference[l],g=$e(o),_=g?"y"===l?g.clientHeight||0:g.clientWidth||0:0,b=p/2-m/2,v=h[u],y=_-d[c]-h[f],w=_/2-d[c]/2+b,A=Ne(v,w,y),E=l;i.modifiersData[n]=((e={})[E]=A,e.centerOffset=A-w,e)}},effect:function(t){var e=t.state,i=t.options.element,n=void 0===i?"[data-popper-arrow]":i;null!=n&&("string"!=typeof n||(n=e.elements.popper.querySelector(n)))&&Oe(e.elements.popper,n)&&(e.elements.arrow=n)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Fe(t){return t.split("-")[1]}var He={top:"auto",right:"auto",bottom:"auto",left:"auto"};function We(t){var e,i=t.popper,n=t.popperRect,s=t.placement,o=t.variation,r=t.offsets,a=t.position,l=t.gpuAcceleration,c=t.adaptive,h=t.roundOffsets,d=t.isFixed,u=r.x,f=void 0===u?0:u,p=r.y,m=void 0===p?0:p,g="function"==typeof h?h({x:f,y:m}):{x:f,y:m};f=g.x,m=g.y;var _=r.hasOwnProperty("x"),b=r.hasOwnProperty("y"),v=Vt,y=zt,w=window;if(c){var A=$e(i),E="clientHeight",T="clientWidth";A===fe(i)&&"static"!==xe(A=Le(i)).position&&"absolute"===a&&(E="scrollHeight",T="scrollWidth"),(s===zt||(s===Vt||s===qt)&&o===Yt)&&(y=Rt,m-=(d&&A===w&&w.visualViewport?w.visualViewport.height:A[E])-n.height,m*=l?1:-1),s!==Vt&&(s!==zt&&s!==Rt||o!==Yt)||(v=qt,f-=(d&&A===w&&w.visualViewport?w.visualViewport.width:A[T])-n.width,f*=l?1:-1)}var C,O=Object.assign({position:a},c&&He),x=!0===h?function(t,e){var i=t.x,n=t.y,s=e.devicePixelRatio||1;return{x:we(i*s)/s||0,y:we(n*s)/s||0}}({x:f,y:m},fe(i)):{x:f,y:m};return f=x.x,m=x.y,l?Object.assign({},O,((C={})[y]=b?"0":"",C[v]=_?"0":"",C.transform=(w.devicePixelRatio||1)<=1?"translate("+f+"px, "+m+"px)":"translate3d("+f+"px, "+m+"px, 0)",C)):Object.assign({},O,((e={})[y]=b?m+"px":"",e[v]=_?f+"px":"",e.transform="",e))}const Be={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(t){var e=t.state,i=t.options,n=i.gpuAcceleration,s=void 0===n||n,o=i.adaptive,r=void 0===o||o,a=i.roundOffsets,l=void 0===a||a,c={placement:be(e.placement),variation:Fe(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:s,isFixed:"fixed"===e.options.strategy};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,We(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:r,roundOffsets:l})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,We(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})},data:{}};var ze={passive:!0};const Re={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(t){var e=t.state,i=t.instance,n=t.options,s=n.scroll,o=void 0===s||s,r=n.resize,a=void 0===r||r,l=fe(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return o&&c.forEach((function(t){t.addEventListener("scroll",i.update,ze)})),a&&l.addEventListener("resize",i.update,ze),function(){o&&c.forEach((function(t){t.removeEventListener("scroll",i.update,ze)})),a&&l.removeEventListener("resize",i.update,ze)}},data:{}};var qe={left:"right",right:"left",bottom:"top",top:"bottom"};function Ve(t){return t.replace(/left|right|bottom|top/g,(function(t){return qe[t]}))}var Ke={start:"end",end:"start"};function Qe(t){return t.replace(/start|end/g,(function(t){return Ke[t]}))}function Xe(t){var e=fe(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function Ye(t){return Te(Le(t)).left+Xe(t).scrollLeft}function Ue(t){var e=xe(t),i=e.overflow,n=e.overflowX,s=e.overflowY;return/auto|scroll|overlay|hidden/.test(i+s+n)}function Ge(t){return["html","body","#document"].indexOf(ue(t))>=0?t.ownerDocument.body:me(t)&&Ue(t)?t:Ge(Se(t))}function Je(t,e){var i;void 0===e&&(e=[]);var n=Ge(t),s=n===(null==(i=t.ownerDocument)?void 0:i.body),o=fe(n),r=s?[o].concat(o.visualViewport||[],Ue(n)?n:[]):n,a=e.concat(r);return s?a:a.concat(Je(Se(r)))}function Ze(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function ti(t,e,i){return e===Gt?Ze(function(t,e){var i=fe(t),n=Le(t),s=i.visualViewport,o=n.clientWidth,r=n.clientHeight,a=0,l=0;if(s){o=s.width,r=s.height;var c=Ee();(c||!c&&"fixed"===e)&&(a=s.offsetLeft,l=s.offsetTop)}return{width:o,height:r,x:a+Ye(t),y:l}}(t,i)):pe(e)?function(t,e){var i=Te(t,!1,"fixed"===e);return i.top=i.top+t.clientTop,i.left=i.left+t.clientLeft,i.bottom=i.top+t.clientHeight,i.right=i.left+t.clientWidth,i.width=t.clientWidth,i.height=t.clientHeight,i.x=i.left,i.y=i.top,i}(e,i):Ze(function(t){var e,i=Le(t),n=Xe(t),s=null==(e=t.ownerDocument)?void 0:e.body,o=ve(i.scrollWidth,i.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),r=ve(i.scrollHeight,i.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),a=-n.scrollLeft+Ye(t),l=-n.scrollTop;return"rtl"===xe(s||i).direction&&(a+=ve(i.clientWidth,s?s.clientWidth:0)-o),{width:o,height:r,x:a,y:l}}(Le(t)))}function ei(t){var e,i=t.reference,n=t.element,s=t.placement,o=s?be(s):null,r=s?Fe(s):null,a=i.x+i.width/2-n.width/2,l=i.y+i.height/2-n.height/2;switch(o){case zt:e={x:a,y:i.y-n.height};break;case Rt:e={x:a,y:i.y+i.height};break;case qt:e={x:i.x+i.width,y:l};break;case Vt:e={x:i.x-n.width,y:l};break;default:e={x:i.x,y:i.y}}var c=o?Ie(o):null;if(null!=c){var h="y"===c?"height":"width";switch(r){case Xt:e[c]=e[c]-(i[h]/2-n[h]/2);break;case Yt:e[c]=e[c]+(i[h]/2-n[h]/2)}}return e}function ii(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=void 0===n?t.placement:n,o=i.strategy,r=void 0===o?t.strategy:o,a=i.boundary,l=void 0===a?Ut:a,c=i.rootBoundary,h=void 0===c?Gt:c,d=i.elementContext,u=void 0===d?Jt:d,f=i.altBoundary,p=void 0!==f&&f,m=i.padding,g=void 0===m?0:m,_=Pe("number"!=typeof g?g:Me(g,Qt)),b=u===Jt?Zt:Jt,v=t.rects.popper,y=t.elements[p?b:u],w=function(t,e,i,n){var s="clippingParents"===e?function(t){var e=Je(Se(t)),i=["absolute","fixed"].indexOf(xe(t).position)>=0&&me(t)?$e(t):t;return pe(i)?e.filter((function(t){return pe(t)&&Oe(t,i)&&"body"!==ue(t)})):[]}(t):[].concat(e),o=[].concat(s,[i]),r=o[0],a=o.reduce((function(e,i){var s=ti(t,i,n);return e.top=ve(s.top,e.top),e.right=ye(s.right,e.right),e.bottom=ye(s.bottom,e.bottom),e.left=ve(s.left,e.left),e}),ti(t,r,n));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}(pe(y)?y:y.contextElement||Le(t.elements.popper),l,h,r),A=Te(t.elements.reference),E=ei({reference:A,element:v,strategy:"absolute",placement:s}),T=Ze(Object.assign({},v,E)),C=u===Jt?T:A,O={top:w.top-C.top+_.top,bottom:C.bottom-w.bottom+_.bottom,left:w.left-C.left+_.left,right:C.right-w.right+_.right},x=t.modifiersData.offset;if(u===Jt&&x){var k=x[s];Object.keys(O).forEach((function(t){var e=[qt,Rt].indexOf(t)>=0?1:-1,i=[zt,Rt].indexOf(t)>=0?"y":"x";O[t]+=k[i]*e}))}return O}function ni(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=i.boundary,o=i.rootBoundary,r=i.padding,a=i.flipVariations,l=i.allowedAutoPlacements,c=void 0===l?ee:l,h=Fe(n),d=h?a?te:te.filter((function(t){return Fe(t)===h})):Qt,u=d.filter((function(t){return c.indexOf(t)>=0}));0===u.length&&(u=d);var f=u.reduce((function(e,i){return e[i]=ii(t,{placement:i,boundary:s,rootBoundary:o,padding:r})[be(i)],e}),{});return Object.keys(f).sort((function(t,e){return f[t]-f[e]}))}const si={name:"flip",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name;if(!e.modifiersData[n]._skip){for(var s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0===r||r,l=i.fallbackPlacements,c=i.padding,h=i.boundary,d=i.rootBoundary,u=i.altBoundary,f=i.flipVariations,p=void 0===f||f,m=i.allowedAutoPlacements,g=e.options.placement,_=be(g),b=l||(_!==g&&p?function(t){if(be(t)===Kt)return[];var e=Ve(t);return[Qe(t),e,Qe(e)]}(g):[Ve(g)]),v=[g].concat(b).reduce((function(t,i){return t.concat(be(i)===Kt?ni(e,{placement:i,boundary:h,rootBoundary:d,padding:c,flipVariations:p,allowedAutoPlacements:m}):i)}),[]),y=e.rects.reference,w=e.rects.popper,A=new Map,E=!0,T=v[0],C=0;C=0,S=L?"width":"height",D=ii(e,{placement:O,boundary:h,rootBoundary:d,altBoundary:u,padding:c}),$=L?k?qt:Vt:k?Rt:zt;y[S]>w[S]&&($=Ve($));var I=Ve($),N=[];if(o&&N.push(D[x]<=0),a&&N.push(D[$]<=0,D[I]<=0),N.every((function(t){return t}))){T=O,E=!1;break}A.set(O,N)}if(E)for(var P=function(t){var e=v.find((function(e){var i=A.get(e);if(i)return i.slice(0,t).every((function(t){return t}))}));if(e)return T=e,"break"},M=p?3:1;M>0&&"break"!==P(M);M--);e.placement!==T&&(e.modifiersData[n]._skip=!0,e.placement=T,e.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function oi(t,e,i){return void 0===i&&(i={x:0,y:0}),{top:t.top-e.height-i.y,right:t.right-e.width+i.x,bottom:t.bottom-e.height+i.y,left:t.left-e.width-i.x}}function ri(t){return[zt,qt,Rt,Vt].some((function(e){return t[e]>=0}))}const ai={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(t){var e=t.state,i=t.name,n=e.rects.reference,s=e.rects.popper,o=e.modifiersData.preventOverflow,r=ii(e,{elementContext:"reference"}),a=ii(e,{altBoundary:!0}),l=oi(r,n),c=oi(a,s,o),h=ri(l),d=ri(c);e.modifiersData[i]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:h,hasPopperEscaped:d},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":h,"data-popper-escaped":d})}},li={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.offset,o=void 0===s?[0,0]:s,r=ee.reduce((function(t,i){return t[i]=function(t,e,i){var n=be(t),s=[Vt,zt].indexOf(n)>=0?-1:1,o="function"==typeof i?i(Object.assign({},e,{placement:t})):i,r=o[0],a=o[1];return r=r||0,a=(a||0)*s,[Vt,qt].indexOf(n)>=0?{x:a,y:r}:{x:r,y:a}}(i,e.rects,o),t}),{}),a=r[e.placement],l=a.x,c=a.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=c),e.modifiersData[n]=r}},ci={name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,i=t.name;e.modifiersData[i]=ei({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}},hi={name:"preventOverflow",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0!==r&&r,l=i.boundary,c=i.rootBoundary,h=i.altBoundary,d=i.padding,u=i.tether,f=void 0===u||u,p=i.tetherOffset,m=void 0===p?0:p,g=ii(e,{boundary:l,rootBoundary:c,padding:d,altBoundary:h}),_=be(e.placement),b=Fe(e.placement),v=!b,y=Ie(_),w="x"===y?"y":"x",A=e.modifiersData.popperOffsets,E=e.rects.reference,T=e.rects.popper,C="function"==typeof m?m(Object.assign({},e.rects,{placement:e.placement})):m,O="number"==typeof C?{mainAxis:C,altAxis:C}:Object.assign({mainAxis:0,altAxis:0},C),x=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,k={x:0,y:0};if(A){if(o){var L,S="y"===y?zt:Vt,D="y"===y?Rt:qt,$="y"===y?"height":"width",I=A[y],N=I+g[S],P=I-g[D],M=f?-T[$]/2:0,j=b===Xt?E[$]:T[$],F=b===Xt?-T[$]:-E[$],H=e.elements.arrow,W=f&&H?Ce(H):{width:0,height:0},B=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},z=B[S],R=B[D],q=Ne(0,E[$],W[$]),V=v?E[$]/2-M-q-z-O.mainAxis:j-q-z-O.mainAxis,K=v?-E[$]/2+M+q+R+O.mainAxis:F+q+R+O.mainAxis,Q=e.elements.arrow&&$e(e.elements.arrow),X=Q?"y"===y?Q.clientTop||0:Q.clientLeft||0:0,Y=null!=(L=null==x?void 0:x[y])?L:0,U=I+K-Y,G=Ne(f?ye(N,I+V-Y-X):N,I,f?ve(P,U):P);A[y]=G,k[y]=G-I}if(a){var J,Z="x"===y?zt:Vt,tt="x"===y?Rt:qt,et=A[w],it="y"===w?"height":"width",nt=et+g[Z],st=et-g[tt],ot=-1!==[zt,Vt].indexOf(_),rt=null!=(J=null==x?void 0:x[w])?J:0,at=ot?nt:et-E[it]-T[it]-rt+O.altAxis,lt=ot?et+E[it]+T[it]-rt-O.altAxis:st,ct=f&&ot?function(t,e,i){var n=Ne(t,e,i);return n>i?i:n}(at,et,lt):Ne(f?at:nt,et,f?lt:st);A[w]=ct,k[w]=ct-et}e.modifiersData[n]=k}},requiresIfExists:["offset"]};function di(t,e,i){void 0===i&&(i=!1);var n,s,o=me(e),r=me(e)&&function(t){var e=t.getBoundingClientRect(),i=we(e.width)/t.offsetWidth||1,n=we(e.height)/t.offsetHeight||1;return 1!==i||1!==n}(e),a=Le(e),l=Te(t,r,i),c={scrollLeft:0,scrollTop:0},h={x:0,y:0};return(o||!o&&!i)&&(("body"!==ue(e)||Ue(a))&&(c=(n=e)!==fe(n)&&me(n)?{scrollLeft:(s=n).scrollLeft,scrollTop:s.scrollTop}:Xe(n)),me(e)?((h=Te(e,!0)).x+=e.clientLeft,h.y+=e.clientTop):a&&(h.x=Ye(a))),{x:l.left+c.scrollLeft-h.x,y:l.top+c.scrollTop-h.y,width:l.width,height:l.height}}function ui(t){var e=new Map,i=new Set,n=[];function s(t){i.add(t.name),[].concat(t.requires||[],t.requiresIfExists||[]).forEach((function(t){if(!i.has(t)){var n=e.get(t);n&&s(n)}})),n.push(t)}return t.forEach((function(t){e.set(t.name,t)})),t.forEach((function(t){i.has(t.name)||s(t)})),n}var fi={placement:"bottom",modifiers:[],strategy:"absolute"};function pi(){for(var t=arguments.length,e=new Array(t),i=0;iNumber.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return(this._inNavbar||"static"===this._config.display)&&(F.setDataAttribute(this._menu,"popper","static"),t.modifiers=[{name:"applyStyles",enabled:!1}]),{...t,...g(this._config.popperConfig,[t])}}_selectMenuItem({key:t,target:e}){const i=z.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter((t=>a(t)));i.length&&b(i,e,t===Ti,!i.includes(e)).focus()}static jQueryInterface(t){return this.each((function(){const e=qi.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}static clearMenus(t){if(2===t.button||"keyup"===t.type&&"Tab"!==t.key)return;const e=z.find(Ni);for(const i of e){const e=qi.getInstance(i);if(!e||!1===e._config.autoClose)continue;const n=t.composedPath(),s=n.includes(e._menu);if(n.includes(e._element)||"inside"===e._config.autoClose&&!s||"outside"===e._config.autoClose&&s)continue;if(e._menu.contains(t.target)&&("keyup"===t.type&&"Tab"===t.key||/input|select|option|textarea|form/i.test(t.target.tagName)))continue;const o={relatedTarget:e._element};"click"===t.type&&(o.clickEvent=t),e._completeHide(o)}}static dataApiKeydownHandler(t){const e=/input|textarea/i.test(t.target.tagName),i="Escape"===t.key,n=[Ei,Ti].includes(t.key);if(!n&&!i)return;if(e&&!i)return;t.preventDefault();const s=this.matches(Ii)?this:z.prev(this,Ii)[0]||z.next(this,Ii)[0]||z.findOne(Ii,t.delegateTarget.parentNode),o=qi.getOrCreateInstance(s);if(n)return t.stopPropagation(),o.show(),void o._selectMenuItem(t);o._isShown()&&(t.stopPropagation(),o.hide(),s.focus())}}N.on(document,Si,Ii,qi.dataApiKeydownHandler),N.on(document,Si,Pi,qi.dataApiKeydownHandler),N.on(document,Li,qi.clearMenus),N.on(document,Di,qi.clearMenus),N.on(document,Li,Ii,(function(t){t.preventDefault(),qi.getOrCreateInstance(this).toggle()})),m(qi);const Vi="backdrop",Ki="show",Qi=`mousedown.bs.${Vi}`,Xi={className:"modal-backdrop",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:"body"},Yi={className:"string",clickCallback:"(function|null)",isAnimated:"boolean",isVisible:"boolean",rootElement:"(element|string)"};class Ui extends H{constructor(t){super(),this._config=this._getConfig(t),this._isAppended=!1,this._element=null}static get Default(){return Xi}static get DefaultType(){return Yi}static get NAME(){return Vi}show(t){if(!this._config.isVisible)return void g(t);this._append();const e=this._getElement();this._config.isAnimated&&d(e),e.classList.add(Ki),this._emulateAnimation((()=>{g(t)}))}hide(t){this._config.isVisible?(this._getElement().classList.remove(Ki),this._emulateAnimation((()=>{this.dispose(),g(t)}))):g(t)}dispose(){this._isAppended&&(N.off(this._element,Qi),this._element.remove(),this._isAppended=!1)}_getElement(){if(!this._element){const t=document.createElement("div");t.className=this._config.className,this._config.isAnimated&&t.classList.add("fade"),this._element=t}return this._element}_configAfterMerge(t){return t.rootElement=r(t.rootElement),t}_append(){if(this._isAppended)return;const t=this._getElement();this._config.rootElement.append(t),N.on(t,Qi,(()=>{g(this._config.clickCallback)})),this._isAppended=!0}_emulateAnimation(t){_(t,this._getElement(),this._config.isAnimated)}}const Gi=".bs.focustrap",Ji=`focusin${Gi}`,Zi=`keydown.tab${Gi}`,tn="backward",en={autofocus:!0,trapElement:null},nn={autofocus:"boolean",trapElement:"element"};class sn extends H{constructor(t){super(),this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return en}static get DefaultType(){return nn}static get NAME(){return"focustrap"}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),N.off(document,Gi),N.on(document,Ji,(t=>this._handleFocusin(t))),N.on(document,Zi,(t=>this._handleKeydown(t))),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,N.off(document,Gi))}_handleFocusin(t){const{trapElement:e}=this._config;if(t.target===document||t.target===e||e.contains(t.target))return;const i=z.focusableChildren(e);0===i.length?e.focus():this._lastTabNavDirection===tn?i[i.length-1].focus():i[0].focus()}_handleKeydown(t){"Tab"===t.key&&(this._lastTabNavDirection=t.shiftKey?tn:"forward")}}const on=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",rn=".sticky-top",an="padding-right",ln="margin-right";class cn{constructor(){this._element=document.body}getWidth(){const t=document.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}hide(){const t=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,an,(e=>e+t)),this._setElementAttributes(on,an,(e=>e+t)),this._setElementAttributes(rn,ln,(e=>e-t))}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,an),this._resetElementAttributes(on,an),this._resetElementAttributes(rn,ln)}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(t,e,i){const n=this.getWidth();this._applyManipulationCallback(t,(t=>{if(t!==this._element&&window.innerWidth>t.clientWidth+n)return;this._saveInitialAttribute(t,e);const s=window.getComputedStyle(t).getPropertyValue(e);t.style.setProperty(e,`${i(Number.parseFloat(s))}px`)}))}_saveInitialAttribute(t,e){const i=t.style.getPropertyValue(e);i&&F.setDataAttribute(t,e,i)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,(t=>{const i=F.getDataAttribute(t,e);null!==i?(F.removeDataAttribute(t,e),t.style.setProperty(e,i)):t.style.removeProperty(e)}))}_applyManipulationCallback(t,e){if(o(t))e(t);else for(const i of z.find(t,this._element))e(i)}}const hn=".bs.modal",dn=`hide${hn}`,un=`hidePrevented${hn}`,fn=`hidden${hn}`,pn=`show${hn}`,mn=`shown${hn}`,gn=`resize${hn}`,_n=`click.dismiss${hn}`,bn=`mousedown.dismiss${hn}`,vn=`keydown.dismiss${hn}`,yn=`click${hn}.data-api`,wn="modal-open",An="show",En="modal-static",Tn={backdrop:!0,focus:!0,keyboard:!0},Cn={backdrop:"(boolean|string)",focus:"boolean",keyboard:"boolean"};class On extends W{constructor(t,e){super(t,e),this._dialog=z.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new cn,this._addEventListeners()}static get Default(){return Tn}static get DefaultType(){return Cn}static get NAME(){return"modal"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||N.trigger(this._element,pn,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(wn),this._adjustDialog(),this._backdrop.show((()=>this._showElement(t))))}hide(){this._isShown&&!this._isTransitioning&&(N.trigger(this._element,dn).defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove(An),this._queueCallback((()=>this._hideModal()),this._element,this._isAnimated())))}dispose(){N.off(window,hn),N.off(this._dialog,hn),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new Ui({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new sn({trapElement:this._element})}_showElement(t){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0;const e=z.findOne(".modal-body",this._dialog);e&&(e.scrollTop=0),d(this._element),this._element.classList.add(An),this._queueCallback((()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,N.trigger(this._element,mn,{relatedTarget:t})}),this._dialog,this._isAnimated())}_addEventListeners(){N.on(this._element,vn,(t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():this._triggerBackdropTransition())})),N.on(window,gn,(()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()})),N.on(this._element,bn,(t=>{N.one(this._element,_n,(e=>{this._element===t.target&&this._element===e.target&&("static"!==this._config.backdrop?this._config.backdrop&&this.hide():this._triggerBackdropTransition())}))}))}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide((()=>{document.body.classList.remove(wn),this._resetAdjustments(),this._scrollBar.reset(),N.trigger(this._element,fn)}))}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(N.trigger(this._element,un).defaultPrevented)return;const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._element.style.overflowY;"hidden"===e||this._element.classList.contains(En)||(t||(this._element.style.overflowY="hidden"),this._element.classList.add(En),this._queueCallback((()=>{this._element.classList.remove(En),this._queueCallback((()=>{this._element.style.overflowY=e}),this._dialog)}),this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),i=e>0;if(i&&!t){const t=p()?"paddingLeft":"paddingRight";this._element.style[t]=`${e}px`}if(!i&&t){const t=p()?"paddingRight":"paddingLeft";this._element.style[t]=`${e}px`}}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(t,e){return this.each((function(){const i=On.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t](e)}}))}}N.on(document,yn,'[data-bs-toggle="modal"]',(function(t){const e=z.getElementFromSelector(this);["A","AREA"].includes(this.tagName)&&t.preventDefault(),N.one(e,pn,(t=>{t.defaultPrevented||N.one(e,fn,(()=>{a(this)&&this.focus()}))}));const i=z.findOne(".modal.show");i&&On.getInstance(i).hide(),On.getOrCreateInstance(e).toggle(this)})),R(On),m(On);const xn=".bs.offcanvas",kn=".data-api",Ln=`load${xn}${kn}`,Sn="show",Dn="showing",$n="hiding",In=".offcanvas.show",Nn=`show${xn}`,Pn=`shown${xn}`,Mn=`hide${xn}`,jn=`hidePrevented${xn}`,Fn=`hidden${xn}`,Hn=`resize${xn}`,Wn=`click${xn}${kn}`,Bn=`keydown.dismiss${xn}`,zn={backdrop:!0,keyboard:!0,scroll:!1},Rn={backdrop:"(boolean|string)",keyboard:"boolean",scroll:"boolean"};class qn extends W{constructor(t,e){super(t,e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return zn}static get DefaultType(){return Rn}static get NAME(){return"offcanvas"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||N.trigger(this._element,Nn,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._backdrop.show(),this._config.scroll||(new cn).hide(),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add(Dn),this._queueCallback((()=>{this._config.scroll&&!this._config.backdrop||this._focustrap.activate(),this._element.classList.add(Sn),this._element.classList.remove(Dn),N.trigger(this._element,Pn,{relatedTarget:t})}),this._element,!0))}hide(){this._isShown&&(N.trigger(this._element,Mn).defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add($n),this._backdrop.hide(),this._queueCallback((()=>{this._element.classList.remove(Sn,$n),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._config.scroll||(new cn).reset(),N.trigger(this._element,Fn)}),this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){const t=Boolean(this._config.backdrop);return new Ui({className:"offcanvas-backdrop",isVisible:t,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:t?()=>{"static"!==this._config.backdrop?this.hide():N.trigger(this._element,jn)}:null})}_initializeFocusTrap(){return new sn({trapElement:this._element})}_addEventListeners(){N.on(this._element,Bn,(t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():N.trigger(this._element,jn))}))}static jQueryInterface(t){return this.each((function(){const e=qn.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}N.on(document,Wn,'[data-bs-toggle="offcanvas"]',(function(t){const e=z.getElementFromSelector(this);if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),l(this))return;N.one(e,Fn,(()=>{a(this)&&this.focus()}));const i=z.findOne(In);i&&i!==e&&qn.getInstance(i).hide(),qn.getOrCreateInstance(e).toggle(this)})),N.on(window,Ln,(()=>{for(const t of z.find(In))qn.getOrCreateInstance(t).show()})),N.on(window,Hn,(()=>{for(const t of z.find("[aria-modal][class*=show][class*=offcanvas-]"))"fixed"!==getComputedStyle(t).position&&qn.getOrCreateInstance(t).hide()})),R(qn),m(qn);const Vn={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},Kn=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),Qn=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,Xn=(t,e)=>{const i=t.nodeName.toLowerCase();return e.includes(i)?!Kn.has(i)||Boolean(Qn.test(t.nodeValue)):e.filter((t=>t instanceof RegExp)).some((t=>t.test(i)))},Yn={allowList:Vn,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"

"},Un={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},Gn={entry:"(string|element|function|null)",selector:"(string|element)"};class Jn extends H{constructor(t){super(),this._config=this._getConfig(t)}static get Default(){return Yn}static get DefaultType(){return Un}static get NAME(){return"TemplateFactory"}getContent(){return Object.values(this._config.content).map((t=>this._resolvePossibleFunction(t))).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(t){return this._checkContent(t),this._config.content={...this._config.content,...t},this}toHtml(){const t=document.createElement("div");t.innerHTML=this._maybeSanitize(this._config.template);for(const[e,i]of Object.entries(this._config.content))this._setContent(t,i,e);const e=t.children[0],i=this._resolvePossibleFunction(this._config.extraClass);return i&&e.classList.add(...i.split(" ")),e}_typeCheckConfig(t){super._typeCheckConfig(t),this._checkContent(t.content)}_checkContent(t){for(const[e,i]of Object.entries(t))super._typeCheckConfig({selector:e,entry:i},Gn)}_setContent(t,e,i){const n=z.findOne(i,t);n&&((e=this._resolvePossibleFunction(e))?o(e)?this._putElementInTemplate(r(e),n):this._config.html?n.innerHTML=this._maybeSanitize(e):n.textContent=e:n.remove())}_maybeSanitize(t){return this._config.sanitize?function(t,e,i){if(!t.length)return t;if(i&&"function"==typeof i)return i(t);const n=(new window.DOMParser).parseFromString(t,"text/html"),s=[].concat(...n.body.querySelectorAll("*"));for(const t of s){const i=t.nodeName.toLowerCase();if(!Object.keys(e).includes(i)){t.remove();continue}const n=[].concat(...t.attributes),s=[].concat(e["*"]||[],e[i]||[]);for(const e of n)Xn(e,s)||t.removeAttribute(e.nodeName)}return n.body.innerHTML}(t,this._config.allowList,this._config.sanitizeFn):t}_resolvePossibleFunction(t){return g(t,[this])}_putElementInTemplate(t,e){if(this._config.html)return e.innerHTML="",void e.append(t);e.textContent=t.textContent}}const Zn=new Set(["sanitize","allowList","sanitizeFn"]),ts="fade",es="show",is=".modal",ns="hide.bs.modal",ss="hover",os="focus",rs={AUTO:"auto",TOP:"top",RIGHT:p()?"left":"right",BOTTOM:"bottom",LEFT:p()?"right":"left"},as={allowList:Vn,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,6],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'',title:"",trigger:"hover focus"},ls={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class cs extends W{constructor(t,e){if(void 0===vi)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(t,e),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return as}static get DefaultType(){return ls}static get NAME(){return"tooltip"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),N.off(this._element.closest(is),ns,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const t=N.trigger(this._element,this.constructor.eventName("show")),e=(c(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(t.defaultPrevented||!e)return;this._disposePopper();const i=this._getTipElement();this._element.setAttribute("aria-describedby",i.getAttribute("id"));const{container:n}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(n.append(i),N.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(i),i.classList.add(es),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))N.on(t,"mouseover",h);this._queueCallback((()=>{N.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1}),this.tip,this._isAnimated())}hide(){if(this._isShown()&&!N.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented){if(this._getTipElement().classList.remove(es),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))N.off(t,"mouseover",h);this._activeTrigger.click=!1,this._activeTrigger[os]=!1,this._activeTrigger[ss]=!1,this._isHovered=null,this._queueCallback((()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),N.trigger(this._element,this.constructor.eventName("hidden")))}),this.tip,this._isAnimated())}}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(t){const e=this._getTemplateFactory(t).toHtml();if(!e)return null;e.classList.remove(ts,es),e.classList.add(`bs-${this.constructor.NAME}-auto`);const i=(t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t})(this.constructor.NAME).toString();return e.setAttribute("id",i),this._isAnimated()&&e.classList.add(ts),e}setContent(t){this._newContent=t,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(t){return this._templateFactory?this._templateFactory.changeContent(t):this._templateFactory=new Jn({...this._config,content:t,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{".tooltip-inner":this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(t){return this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(ts)}_isShown(){return this.tip&&this.tip.classList.contains(es)}_createPopper(t){const e=g(this._config.placement,[this,t,this._element]),i=rs[e.toUpperCase()];return bi(this._element,t,this._getPopperConfig(i))}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_resolvePossibleFunction(t){return g(t,[this._element])}_getPopperConfig(t){const e={placement:t,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:t=>{this._getTipElement().setAttribute("data-popper-placement",t.state.placement)}}]};return{...e,...g(this._config.popperConfig,[e])}}_setListeners(){const t=this._config.trigger.split(" ");for(const e of t)if("click"===e)N.on(this._element,this.constructor.eventName("click"),this._config.selector,(t=>{this._initializeOnDelegatedTarget(t).toggle()}));else if("manual"!==e){const t=e===ss?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),i=e===ss?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");N.on(this._element,t,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusin"===t.type?os:ss]=!0,e._enter()})),N.on(this._element,i,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusout"===t.type?os:ss]=e._element.contains(t.relatedTarget),e._leave()}))}this._hideModalHandler=()=>{this._element&&this.hide()},N.on(this._element.closest(is),ns,this._hideModalHandler)}_fixTitle(){const t=this._element.getAttribute("title");t&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",t),this._element.setAttribute("data-bs-original-title",t),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout((()=>{this._isHovered&&this.show()}),this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout((()=>{this._isHovered||this.hide()}),this._config.delay.hide))}_setTimeout(t,e){clearTimeout(this._timeout),this._timeout=setTimeout(t,e)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(t){const e=F.getDataAttributes(this._element);for(const t of Object.keys(e))Zn.has(t)&&delete e[t];return t={...e,..."object"==typeof t&&t?t:{}},t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t.container=!1===t.container?document.body:r(t.container),"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),t}_getDelegateConfig(){const t={};for(const[e,i]of Object.entries(this._config))this.constructor.Default[e]!==i&&(t[e]=i);return t.selector=!1,t.trigger="manual",t}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(t){return this.each((function(){const e=cs.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}m(cs);const hs={...cs.Default,content:"",offset:[0,8],placement:"right",template:'',trigger:"click"},ds={...cs.DefaultType,content:"(null|string|element|function)"};class us extends cs{static get Default(){return hs}static get DefaultType(){return ds}static get NAME(){return"popover"}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{".popover-header":this._getTitle(),".popover-body":this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}static jQueryInterface(t){return this.each((function(){const e=us.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}m(us);const fs=".bs.scrollspy",ps=`activate${fs}`,ms=`click${fs}`,gs=`load${fs}.data-api`,_s="active",bs="[href]",vs=".nav-link",ys=`${vs}, .nav-item > ${vs}, .list-group-item`,ws={offset:null,rootMargin:"0px 0px -25%",smoothScroll:!1,target:null,threshold:[.1,.5,1]},As={offset:"(number|null)",rootMargin:"string",smoothScroll:"boolean",target:"element",threshold:"array"};class Es extends W{constructor(t,e){super(t,e),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement="visible"===getComputedStyle(this._element).overflowY?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return ws}static get DefaultType(){return As}static get NAME(){return"scrollspy"}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(const t of this._observableSections.values())this._observer.observe(t)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(t){return t.target=r(t.target)||document.body,t.rootMargin=t.offset?`${t.offset}px 0px -30%`:t.rootMargin,"string"==typeof t.threshold&&(t.threshold=t.threshold.split(",").map((t=>Number.parseFloat(t)))),t}_maybeEnableSmoothScroll(){this._config.smoothScroll&&(N.off(this._config.target,ms),N.on(this._config.target,ms,bs,(t=>{const e=this._observableSections.get(t.target.hash);if(e){t.preventDefault();const i=this._rootElement||window,n=e.offsetTop-this._element.offsetTop;if(i.scrollTo)return void i.scrollTo({top:n,behavior:"smooth"});i.scrollTop=n}})))}_getNewObserver(){const t={root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin};return new IntersectionObserver((t=>this._observerCallback(t)),t)}_observerCallback(t){const e=t=>this._targetLinks.get(`#${t.target.id}`),i=t=>{this._previousScrollData.visibleEntryTop=t.target.offsetTop,this._process(e(t))},n=(this._rootElement||document.documentElement).scrollTop,s=n>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=n;for(const o of t){if(!o.isIntersecting){this._activeTarget=null,this._clearActiveClass(e(o));continue}const t=o.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(s&&t){if(i(o),!n)return}else s||t||i(o)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;const t=z.find(bs,this._config.target);for(const e of t){if(!e.hash||l(e))continue;const t=z.findOne(decodeURI(e.hash),this._element);a(t)&&(this._targetLinks.set(decodeURI(e.hash),e),this._observableSections.set(e.hash,t))}}_process(t){this._activeTarget!==t&&(this._clearActiveClass(this._config.target),this._activeTarget=t,t.classList.add(_s),this._activateParents(t),N.trigger(this._element,ps,{relatedTarget:t}))}_activateParents(t){if(t.classList.contains("dropdown-item"))z.findOne(".dropdown-toggle",t.closest(".dropdown")).classList.add(_s);else for(const e of z.parents(t,".nav, .list-group"))for(const t of z.prev(e,ys))t.classList.add(_s)}_clearActiveClass(t){t.classList.remove(_s);const e=z.find(`${bs}.${_s}`,t);for(const t of e)t.classList.remove(_s)}static jQueryInterface(t){return this.each((function(){const e=Es.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}))}}N.on(window,gs,(()=>{for(const t of z.find('[data-bs-spy="scroll"]'))Es.getOrCreateInstance(t)})),m(Es);const Ts=".bs.tab",Cs=`hide${Ts}`,Os=`hidden${Ts}`,xs=`show${Ts}`,ks=`shown${Ts}`,Ls=`click${Ts}`,Ss=`keydown${Ts}`,Ds=`load${Ts}`,$s="ArrowLeft",Is="ArrowRight",Ns="ArrowUp",Ps="ArrowDown",Ms="Home",js="End",Fs="active",Hs="fade",Ws="show",Bs=":not(.dropdown-toggle)",zs='[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',Rs=`.nav-link${Bs}, .list-group-item${Bs}, [role="tab"]${Bs}, ${zs}`,qs=`.${Fs}[data-bs-toggle="tab"], .${Fs}[data-bs-toggle="pill"], .${Fs}[data-bs-toggle="list"]`;class Vs extends W{constructor(t){super(t),this._parent=this._element.closest('.list-group, .nav, [role="tablist"]'),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),N.on(this._element,Ss,(t=>this._keydown(t))))}static get NAME(){return"tab"}show(){const t=this._element;if(this._elemIsActive(t))return;const e=this._getActiveElem(),i=e?N.trigger(e,Cs,{relatedTarget:t}):null;N.trigger(t,xs,{relatedTarget:e}).defaultPrevented||i&&i.defaultPrevented||(this._deactivate(e,t),this._activate(t,e))}_activate(t,e){t&&(t.classList.add(Fs),this._activate(z.getElementFromSelector(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.removeAttribute("tabindex"),t.setAttribute("aria-selected",!0),this._toggleDropDown(t,!0),N.trigger(t,ks,{relatedTarget:e})):t.classList.add(Ws)}),t,t.classList.contains(Hs)))}_deactivate(t,e){t&&(t.classList.remove(Fs),t.blur(),this._deactivate(z.getElementFromSelector(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.setAttribute("aria-selected",!1),t.setAttribute("tabindex","-1"),this._toggleDropDown(t,!1),N.trigger(t,Os,{relatedTarget:e})):t.classList.remove(Ws)}),t,t.classList.contains(Hs)))}_keydown(t){if(![$s,Is,Ns,Ps,Ms,js].includes(t.key))return;t.stopPropagation(),t.preventDefault();const e=this._getChildren().filter((t=>!l(t)));let i;if([Ms,js].includes(t.key))i=e[t.key===Ms?0:e.length-1];else{const n=[Is,Ps].includes(t.key);i=b(e,t.target,n,!0)}i&&(i.focus({preventScroll:!0}),Vs.getOrCreateInstance(i).show())}_getChildren(){return z.find(Rs,this._parent)}_getActiveElem(){return this._getChildren().find((t=>this._elemIsActive(t)))||null}_setInitialAttributes(t,e){this._setAttributeIfNotExists(t,"role","tablist");for(const t of e)this._setInitialAttributesOnChild(t)}_setInitialAttributesOnChild(t){t=this._getInnerElement(t);const e=this._elemIsActive(t),i=this._getOuterElement(t);t.setAttribute("aria-selected",e),i!==t&&this._setAttributeIfNotExists(i,"role","presentation"),e||t.setAttribute("tabindex","-1"),this._setAttributeIfNotExists(t,"role","tab"),this._setInitialAttributesOnTargetPanel(t)}_setInitialAttributesOnTargetPanel(t){const e=z.getElementFromSelector(t);e&&(this._setAttributeIfNotExists(e,"role","tabpanel"),t.id&&this._setAttributeIfNotExists(e,"aria-labelledby",`${t.id}`))}_toggleDropDown(t,e){const i=this._getOuterElement(t);if(!i.classList.contains("dropdown"))return;const n=(t,n)=>{const s=z.findOne(t,i);s&&s.classList.toggle(n,e)};n(".dropdown-toggle",Fs),n(".dropdown-menu",Ws),i.setAttribute("aria-expanded",e)}_setAttributeIfNotExists(t,e,i){t.hasAttribute(e)||t.setAttribute(e,i)}_elemIsActive(t){return t.classList.contains(Fs)}_getInnerElement(t){return t.matches(Rs)?t:z.findOne(Rs,t)}_getOuterElement(t){return t.closest(".nav-item, .list-group-item")||t}static jQueryInterface(t){return this.each((function(){const e=Vs.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}))}}N.on(document,Ls,zs,(function(t){["A","AREA"].includes(this.tagName)&&t.preventDefault(),l(this)||Vs.getOrCreateInstance(this).show()})),N.on(window,Ds,(()=>{for(const t of z.find(qs))Vs.getOrCreateInstance(t)})),m(Vs);const Ks=".bs.toast",Qs=`mouseover${Ks}`,Xs=`mouseout${Ks}`,Ys=`focusin${Ks}`,Us=`focusout${Ks}`,Gs=`hide${Ks}`,Js=`hidden${Ks}`,Zs=`show${Ks}`,to=`shown${Ks}`,eo="hide",io="show",no="showing",so={animation:"boolean",autohide:"boolean",delay:"number"},oo={animation:!0,autohide:!0,delay:5e3};class ro extends W{constructor(t,e){super(t,e),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return oo}static get DefaultType(){return so}static get NAME(){return"toast"}show(){N.trigger(this._element,Zs).defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove(eo),d(this._element),this._element.classList.add(io,no),this._queueCallback((()=>{this._element.classList.remove(no),N.trigger(this._element,to),this._maybeScheduleHide()}),this._element,this._config.animation))}hide(){this.isShown()&&(N.trigger(this._element,Gs).defaultPrevented||(this._element.classList.add(no),this._queueCallback((()=>{this._element.classList.add(eo),this._element.classList.remove(no,io),N.trigger(this._element,Js)}),this._element,this._config.animation)))}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(io),super.dispose()}isShown(){return this._element.classList.contains(io)}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout((()=>{this.hide()}),this._config.delay)))}_onInteraction(t,e){switch(t.type){case"mouseover":case"mouseout":this._hasMouseInteraction=e;break;case"focusin":case"focusout":this._hasKeyboardInteraction=e}if(e)return void this._clearTimeout();const i=t.relatedTarget;this._element===i||this._element.contains(i)||this._maybeScheduleHide()}_setListeners(){N.on(this._element,Qs,(t=>this._onInteraction(t,!0))),N.on(this._element,Xs,(t=>this._onInteraction(t,!1))),N.on(this._element,Ys,(t=>this._onInteraction(t,!0))),N.on(this._element,Us,(t=>this._onInteraction(t,!1)))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each((function(){const e=ro.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}return R(ro),m(ro),{Alert:Q,Button:Y,Carousel:xt,Collapse:Bt,Dropdown:qi,Modal:On,Offcanvas:qn,Popover:us,ScrollSpy:Es,Tab:Vs,Toast:ro,Tooltip:cs}})); +//# sourceMappingURL=bootstrap.bundle.min.js.map \ No newline at end of file diff --git a/docs/src/tutorials/test1_files/libs/clipboard/clipboard.min.js b/docs/src/tutorials/test1_files/libs/clipboard/clipboard.min.js new file mode 100644 index 0000000..1103f81 --- /dev/null +++ b/docs/src/tutorials/test1_files/libs/clipboard/clipboard.min.js @@ -0,0 +1,7 @@ +/*! + * clipboard.js v2.0.11 + * https://clipboardjs.com/ + * + * Licensed MIT © Zeno Rocha + */ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return n={686:function(t,e,n){"use strict";n.d(e,{default:function(){return b}});var e=n(279),i=n.n(e),e=n(370),u=n.n(e),e=n(817),r=n.n(e);function c(t){try{return document.execCommand(t)}catch(t){return}}var a=function(t){t=r()(t);return c("cut"),t};function o(t,e){var n,o,t=(n=t,o="rtl"===document.documentElement.getAttribute("dir"),(t=document.createElement("textarea")).style.fontSize="12pt",t.style.border="0",t.style.padding="0",t.style.margin="0",t.style.position="absolute",t.style[o?"right":"left"]="-9999px",o=window.pageYOffset||document.documentElement.scrollTop,t.style.top="".concat(o,"px"),t.setAttribute("readonly",""),t.value=n,t);return e.container.appendChild(t),e=r()(t),c("copy"),t.remove(),e}var f=function(t){var e=1.anchorjs-link,.anchorjs-link:focus{opacity:1}",A.sheet.cssRules.length),A.sheet.insertRule("[data-anchorjs-icon]::after{content:attr(data-anchorjs-icon)}",A.sheet.cssRules.length),A.sheet.insertRule('@font-face{font-family:anchorjs-icons;src:url(data:n/a;base64,AAEAAAALAIAAAwAwT1MvMg8yG2cAAAE4AAAAYGNtYXDp3gC3AAABpAAAAExnYXNwAAAAEAAAA9wAAAAIZ2x5ZlQCcfwAAAH4AAABCGhlYWQHFvHyAAAAvAAAADZoaGVhBnACFwAAAPQAAAAkaG10eASAADEAAAGYAAAADGxvY2EACACEAAAB8AAAAAhtYXhwAAYAVwAAARgAAAAgbmFtZQGOH9cAAAMAAAAAunBvc3QAAwAAAAADvAAAACAAAQAAAAEAAHzE2p9fDzz1AAkEAAAAAADRecUWAAAAANQA6R8AAAAAAoACwAAAAAgAAgAAAAAAAAABAAADwP/AAAACgAAA/9MCrQABAAAAAAAAAAAAAAAAAAAAAwABAAAAAwBVAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAMCQAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAg//0DwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAAIAAAACgAAxAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADAAAAAIAAgAAgAAACDpy//9//8AAAAg6cv//f///+EWNwADAAEAAAAAAAAAAAAAAAAACACEAAEAAAAAAAAAAAAAAAAxAAACAAQARAKAAsAAKwBUAAABIiYnJjQ3NzY2MzIWFxYUBwcGIicmNDc3NjQnJiYjIgYHBwYUFxYUBwYGIwciJicmNDc3NjIXFhQHBwYUFxYWMzI2Nzc2NCcmNDc2MhcWFAcHBgYjARQGDAUtLXoWOR8fORYtLTgKGwoKCjgaGg0gEhIgDXoaGgkJBQwHdR85Fi0tOAobCgoKOBoaDSASEiANehoaCQkKGwotLXoWOR8BMwUFLYEuehYXFxYugC44CQkKGwo4GkoaDQ0NDXoaShoKGwoFBe8XFi6ALjgJCQobCjgaShoNDQ0NehpKGgobCgoKLYEuehYXAAAADACWAAEAAAAAAAEACAAAAAEAAAAAAAIAAwAIAAEAAAAAAAMACAAAAAEAAAAAAAQACAAAAAEAAAAAAAUAAQALAAEAAAAAAAYACAAAAAMAAQQJAAEAEAAMAAMAAQQJAAIABgAcAAMAAQQJAAMAEAAMAAMAAQQJAAQAEAAMAAMAAQQJAAUAAgAiAAMAAQQJAAYAEAAMYW5jaG9yanM0MDBAAGEAbgBjAGgAbwByAGoAcwA0ADAAMABAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAH//wAP) format("truetype")}',A.sheet.cssRules.length)),h=document.querySelectorAll("[id]"),t=[].map.call(h,function(A){return A.id}),i=0;i\]./()*\\\n\t\b\v\u00A0]/g,"-").replace(/-{2,}/g,"-").substring(0,this.options.truncate).replace(/^-+|-+$/gm,"").toLowerCase()},this.hasAnchorJSLink=function(A){var e=A.firstChild&&-1<(" "+A.firstChild.className+" ").indexOf(" anchorjs-link "),A=A.lastChild&&-1<(" "+A.lastChild.className+" ").indexOf(" anchorjs-link ");return e||A||!1}}}); +// @license-end \ No newline at end of file diff --git a/docs/src/tutorials/test1_files/libs/quarto-html/popper.min.js b/docs/src/tutorials/test1_files/libs/quarto-html/popper.min.js new file mode 100644 index 0000000..e3726d7 --- /dev/null +++ b/docs/src/tutorials/test1_files/libs/quarto-html/popper.min.js @@ -0,0 +1,6 @@ +/** + * @popperjs/core v2.11.7 - MIT License + */ + +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Popper={})}(this,(function(e){"use strict";function t(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function n(e){return e instanceof t(e).Element||e instanceof Element}function r(e){return e instanceof t(e).HTMLElement||e instanceof HTMLElement}function o(e){return"undefined"!=typeof ShadowRoot&&(e instanceof t(e).ShadowRoot||e instanceof ShadowRoot)}var i=Math.max,a=Math.min,s=Math.round;function f(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map((function(e){return e.brand+"/"+e.version})).join(" "):navigator.userAgent}function c(){return!/^((?!chrome|android).)*safari/i.test(f())}function p(e,o,i){void 0===o&&(o=!1),void 0===i&&(i=!1);var a=e.getBoundingClientRect(),f=1,p=1;o&&r(e)&&(f=e.offsetWidth>0&&s(a.width)/e.offsetWidth||1,p=e.offsetHeight>0&&s(a.height)/e.offsetHeight||1);var u=(n(e)?t(e):window).visualViewport,l=!c()&&i,d=(a.left+(l&&u?u.offsetLeft:0))/f,h=(a.top+(l&&u?u.offsetTop:0))/p,m=a.width/f,v=a.height/p;return{width:m,height:v,top:h,right:d+m,bottom:h+v,left:d,x:d,y:h}}function u(e){var n=t(e);return{scrollLeft:n.pageXOffset,scrollTop:n.pageYOffset}}function l(e){return e?(e.nodeName||"").toLowerCase():null}function d(e){return((n(e)?e.ownerDocument:e.document)||window.document).documentElement}function h(e){return p(d(e)).left+u(e).scrollLeft}function m(e){return t(e).getComputedStyle(e)}function v(e){var t=m(e),n=t.overflow,r=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function y(e,n,o){void 0===o&&(o=!1);var i,a,f=r(n),c=r(n)&&function(e){var t=e.getBoundingClientRect(),n=s(t.width)/e.offsetWidth||1,r=s(t.height)/e.offsetHeight||1;return 1!==n||1!==r}(n),m=d(n),y=p(e,c,o),g={scrollLeft:0,scrollTop:0},b={x:0,y:0};return(f||!f&&!o)&&(("body"!==l(n)||v(m))&&(g=(i=n)!==t(i)&&r(i)?{scrollLeft:(a=i).scrollLeft,scrollTop:a.scrollTop}:u(i)),r(n)?((b=p(n,!0)).x+=n.clientLeft,b.y+=n.clientTop):m&&(b.x=h(m))),{x:y.left+g.scrollLeft-b.x,y:y.top+g.scrollTop-b.y,width:y.width,height:y.height}}function g(e){var t=p(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function b(e){return"html"===l(e)?e:e.assignedSlot||e.parentNode||(o(e)?e.host:null)||d(e)}function x(e){return["html","body","#document"].indexOf(l(e))>=0?e.ownerDocument.body:r(e)&&v(e)?e:x(b(e))}function w(e,n){var r;void 0===n&&(n=[]);var o=x(e),i=o===(null==(r=e.ownerDocument)?void 0:r.body),a=t(o),s=i?[a].concat(a.visualViewport||[],v(o)?o:[]):o,f=n.concat(s);return i?f:f.concat(w(b(s)))}function O(e){return["table","td","th"].indexOf(l(e))>=0}function j(e){return r(e)&&"fixed"!==m(e).position?e.offsetParent:null}function E(e){for(var n=t(e),i=j(e);i&&O(i)&&"static"===m(i).position;)i=j(i);return i&&("html"===l(i)||"body"===l(i)&&"static"===m(i).position)?n:i||function(e){var t=/firefox/i.test(f());if(/Trident/i.test(f())&&r(e)&&"fixed"===m(e).position)return null;var n=b(e);for(o(n)&&(n=n.host);r(n)&&["html","body"].indexOf(l(n))<0;){var i=m(n);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||t&&"filter"===i.willChange||t&&i.filter&&"none"!==i.filter)return n;n=n.parentNode}return null}(e)||n}var D="top",A="bottom",L="right",P="left",M="auto",k=[D,A,L,P],W="start",B="end",H="viewport",T="popper",R=k.reduce((function(e,t){return e.concat([t+"-"+W,t+"-"+B])}),[]),S=[].concat(k,[M]).reduce((function(e,t){return e.concat([t,t+"-"+W,t+"-"+B])}),[]),V=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function q(e){var t=new Map,n=new Set,r=[];function o(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var r=t.get(e);r&&o(r)}})),r.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||o(e)})),r}function C(e){return e.split("-")[0]}function N(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&o(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function I(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function _(e,r,o){return r===H?I(function(e,n){var r=t(e),o=d(e),i=r.visualViewport,a=o.clientWidth,s=o.clientHeight,f=0,p=0;if(i){a=i.width,s=i.height;var u=c();(u||!u&&"fixed"===n)&&(f=i.offsetLeft,p=i.offsetTop)}return{width:a,height:s,x:f+h(e),y:p}}(e,o)):n(r)?function(e,t){var n=p(e,!1,"fixed"===t);return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}(r,o):I(function(e){var t,n=d(e),r=u(e),o=null==(t=e.ownerDocument)?void 0:t.body,a=i(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),s=i(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),f=-r.scrollLeft+h(e),c=-r.scrollTop;return"rtl"===m(o||n).direction&&(f+=i(n.clientWidth,o?o.clientWidth:0)-a),{width:a,height:s,x:f,y:c}}(d(e)))}function F(e,t,o,s){var f="clippingParents"===t?function(e){var t=w(b(e)),o=["absolute","fixed"].indexOf(m(e).position)>=0&&r(e)?E(e):e;return n(o)?t.filter((function(e){return n(e)&&N(e,o)&&"body"!==l(e)})):[]}(e):[].concat(t),c=[].concat(f,[o]),p=c[0],u=c.reduce((function(t,n){var r=_(e,n,s);return t.top=i(r.top,t.top),t.right=a(r.right,t.right),t.bottom=a(r.bottom,t.bottom),t.left=i(r.left,t.left),t}),_(e,p,s));return u.width=u.right-u.left,u.height=u.bottom-u.top,u.x=u.left,u.y=u.top,u}function U(e){return e.split("-")[1]}function z(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function X(e){var t,n=e.reference,r=e.element,o=e.placement,i=o?C(o):null,a=o?U(o):null,s=n.x+n.width/2-r.width/2,f=n.y+n.height/2-r.height/2;switch(i){case D:t={x:s,y:n.y-r.height};break;case A:t={x:s,y:n.y+n.height};break;case L:t={x:n.x+n.width,y:f};break;case P:t={x:n.x-r.width,y:f};break;default:t={x:n.x,y:n.y}}var c=i?z(i):null;if(null!=c){var p="y"===c?"height":"width";switch(a){case W:t[c]=t[c]-(n[p]/2-r[p]/2);break;case B:t[c]=t[c]+(n[p]/2-r[p]/2)}}return t}function Y(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function G(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}function J(e,t){void 0===t&&(t={});var r=t,o=r.placement,i=void 0===o?e.placement:o,a=r.strategy,s=void 0===a?e.strategy:a,f=r.boundary,c=void 0===f?"clippingParents":f,u=r.rootBoundary,l=void 0===u?H:u,h=r.elementContext,m=void 0===h?T:h,v=r.altBoundary,y=void 0!==v&&v,g=r.padding,b=void 0===g?0:g,x=Y("number"!=typeof b?b:G(b,k)),w=m===T?"reference":T,O=e.rects.popper,j=e.elements[y?w:m],E=F(n(j)?j:j.contextElement||d(e.elements.popper),c,l,s),P=p(e.elements.reference),M=X({reference:P,element:O,strategy:"absolute",placement:i}),W=I(Object.assign({},O,M)),B=m===T?W:P,R={top:E.top-B.top+x.top,bottom:B.bottom-E.bottom+x.bottom,left:E.left-B.left+x.left,right:B.right-E.right+x.right},S=e.modifiersData.offset;if(m===T&&S){var V=S[i];Object.keys(R).forEach((function(e){var t=[L,A].indexOf(e)>=0?1:-1,n=[D,A].indexOf(e)>=0?"y":"x";R[e]+=V[n]*t}))}return R}var K={placement:"bottom",modifiers:[],strategy:"absolute"};function Q(){for(var e=arguments.length,t=new Array(e),n=0;n=0?-1:1,i="function"==typeof n?n(Object.assign({},t,{placement:e})):n,a=i[0],s=i[1];return a=a||0,s=(s||0)*o,[P,L].indexOf(r)>=0?{x:s,y:a}:{x:a,y:s}}(n,t.rects,i),e}),{}),s=a[t.placement],f=s.x,c=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=f,t.modifiersData.popperOffsets.y+=c),t.modifiersData[r]=a}},se={left:"right",right:"left",bottom:"top",top:"bottom"};function fe(e){return e.replace(/left|right|bottom|top/g,(function(e){return se[e]}))}var ce={start:"end",end:"start"};function pe(e){return e.replace(/start|end/g,(function(e){return ce[e]}))}function ue(e,t){void 0===t&&(t={});var n=t,r=n.placement,o=n.boundary,i=n.rootBoundary,a=n.padding,s=n.flipVariations,f=n.allowedAutoPlacements,c=void 0===f?S:f,p=U(r),u=p?s?R:R.filter((function(e){return U(e)===p})):k,l=u.filter((function(e){return c.indexOf(e)>=0}));0===l.length&&(l=u);var d=l.reduce((function(t,n){return t[n]=J(e,{placement:n,boundary:o,rootBoundary:i,padding:a})[C(n)],t}),{});return Object.keys(d).sort((function(e,t){return d[e]-d[t]}))}var le={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var o=n.mainAxis,i=void 0===o||o,a=n.altAxis,s=void 0===a||a,f=n.fallbackPlacements,c=n.padding,p=n.boundary,u=n.rootBoundary,l=n.altBoundary,d=n.flipVariations,h=void 0===d||d,m=n.allowedAutoPlacements,v=t.options.placement,y=C(v),g=f||(y===v||!h?[fe(v)]:function(e){if(C(e)===M)return[];var t=fe(e);return[pe(e),t,pe(t)]}(v)),b=[v].concat(g).reduce((function(e,n){return e.concat(C(n)===M?ue(t,{placement:n,boundary:p,rootBoundary:u,padding:c,flipVariations:h,allowedAutoPlacements:m}):n)}),[]),x=t.rects.reference,w=t.rects.popper,O=new Map,j=!0,E=b[0],k=0;k=0,S=R?"width":"height",V=J(t,{placement:B,boundary:p,rootBoundary:u,altBoundary:l,padding:c}),q=R?T?L:P:T?A:D;x[S]>w[S]&&(q=fe(q));var N=fe(q),I=[];if(i&&I.push(V[H]<=0),s&&I.push(V[q]<=0,V[N]<=0),I.every((function(e){return e}))){E=B,j=!1;break}O.set(B,I)}if(j)for(var _=function(e){var t=b.find((function(t){var n=O.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return E=t,"break"},F=h?3:1;F>0;F--){if("break"===_(F))break}t.placement!==E&&(t.modifiersData[r]._skip=!0,t.placement=E,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function de(e,t,n){return i(e,a(t,n))}var he={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.mainAxis,s=void 0===o||o,f=n.altAxis,c=void 0!==f&&f,p=n.boundary,u=n.rootBoundary,l=n.altBoundary,d=n.padding,h=n.tether,m=void 0===h||h,v=n.tetherOffset,y=void 0===v?0:v,b=J(t,{boundary:p,rootBoundary:u,padding:d,altBoundary:l}),x=C(t.placement),w=U(t.placement),O=!w,j=z(x),M="x"===j?"y":"x",k=t.modifiersData.popperOffsets,B=t.rects.reference,H=t.rects.popper,T="function"==typeof y?y(Object.assign({},t.rects,{placement:t.placement})):y,R="number"==typeof T?{mainAxis:T,altAxis:T}:Object.assign({mainAxis:0,altAxis:0},T),S=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,V={x:0,y:0};if(k){if(s){var q,N="y"===j?D:P,I="y"===j?A:L,_="y"===j?"height":"width",F=k[j],X=F+b[N],Y=F-b[I],G=m?-H[_]/2:0,K=w===W?B[_]:H[_],Q=w===W?-H[_]:-B[_],Z=t.elements.arrow,$=m&&Z?g(Z):{width:0,height:0},ee=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},te=ee[N],ne=ee[I],re=de(0,B[_],$[_]),oe=O?B[_]/2-G-re-te-R.mainAxis:K-re-te-R.mainAxis,ie=O?-B[_]/2+G+re+ne+R.mainAxis:Q+re+ne+R.mainAxis,ae=t.elements.arrow&&E(t.elements.arrow),se=ae?"y"===j?ae.clientTop||0:ae.clientLeft||0:0,fe=null!=(q=null==S?void 0:S[j])?q:0,ce=F+ie-fe,pe=de(m?a(X,F+oe-fe-se):X,F,m?i(Y,ce):Y);k[j]=pe,V[j]=pe-F}if(c){var ue,le="x"===j?D:P,he="x"===j?A:L,me=k[M],ve="y"===M?"height":"width",ye=me+b[le],ge=me-b[he],be=-1!==[D,P].indexOf(x),xe=null!=(ue=null==S?void 0:S[M])?ue:0,we=be?ye:me-B[ve]-H[ve]-xe+R.altAxis,Oe=be?me+B[ve]+H[ve]-xe-R.altAxis:ge,je=m&&be?function(e,t,n){var r=de(e,t,n);return r>n?n:r}(we,me,Oe):de(m?we:ye,me,m?Oe:ge);k[M]=je,V[M]=je-me}t.modifiersData[r]=V}},requiresIfExists:["offset"]};var me={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,r=e.name,o=e.options,i=n.elements.arrow,a=n.modifiersData.popperOffsets,s=C(n.placement),f=z(s),c=[P,L].indexOf(s)>=0?"height":"width";if(i&&a){var p=function(e,t){return Y("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:G(e,k))}(o.padding,n),u=g(i),l="y"===f?D:P,d="y"===f?A:L,h=n.rects.reference[c]+n.rects.reference[f]-a[f]-n.rects.popper[c],m=a[f]-n.rects.reference[f],v=E(i),y=v?"y"===f?v.clientHeight||0:v.clientWidth||0:0,b=h/2-m/2,x=p[l],w=y-u[c]-p[d],O=y/2-u[c]/2+b,j=de(x,O,w),M=f;n.modifiersData[r]=((t={})[M]=j,t.centerOffset=j-O,t)}},effect:function(e){var t=e.state,n=e.options.element,r=void 0===n?"[data-popper-arrow]":n;null!=r&&("string"!=typeof r||(r=t.elements.popper.querySelector(r)))&&N(t.elements.popper,r)&&(t.elements.arrow=r)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function ve(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function ye(e){return[D,L,A,P].some((function(t){return e[t]>=0}))}var ge={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,r=t.rects.reference,o=t.rects.popper,i=t.modifiersData.preventOverflow,a=J(t,{elementContext:"reference"}),s=J(t,{altBoundary:!0}),f=ve(a,r),c=ve(s,o,i),p=ye(f),u=ye(c);t.modifiersData[n]={referenceClippingOffsets:f,popperEscapeOffsets:c,isReferenceHidden:p,hasPopperEscaped:u},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":p,"data-popper-escaped":u})}},be=Z({defaultModifiers:[ee,te,oe,ie]}),xe=[ee,te,oe,ie,ae,le,he,me,ge],we=Z({defaultModifiers:xe});e.applyStyles=ie,e.arrow=me,e.computeStyles=oe,e.createPopper=we,e.createPopperLite=be,e.defaultModifiers=xe,e.detectOverflow=J,e.eventListeners=ee,e.flip=le,e.hide=ge,e.offset=ae,e.popperGenerator=Z,e.popperOffsets=te,e.preventOverflow=he,Object.defineProperty(e,"__esModule",{value:!0})})); + diff --git a/docs/src/tutorials/test1_files/libs/quarto-html/quarto-syntax-highlighting-ea385d0e468b0dd5ea5bf0780b1290d9.css b/docs/src/tutorials/test1_files/libs/quarto-html/quarto-syntax-highlighting-ea385d0e468b0dd5ea5bf0780b1290d9.css new file mode 100644 index 0000000..cca9c95 --- /dev/null +++ b/docs/src/tutorials/test1_files/libs/quarto-html/quarto-syntax-highlighting-ea385d0e468b0dd5ea5bf0780b1290d9.css @@ -0,0 +1,236 @@ +/* quarto syntax highlight colors */ +:root { + --quarto-hl-ot-color: #003B4F; + --quarto-hl-at-color: #657422; + --quarto-hl-ss-color: #20794D; + --quarto-hl-an-color: #5E5E5E; + --quarto-hl-fu-color: #4758AB; + --quarto-hl-st-color: #20794D; + --quarto-hl-cf-color: #003B4F; + --quarto-hl-op-color: #5E5E5E; + --quarto-hl-er-color: #AD0000; + --quarto-hl-bn-color: #AD0000; + --quarto-hl-al-color: #AD0000; + --quarto-hl-va-color: #111111; + --quarto-hl-bu-color: inherit; + --quarto-hl-ex-color: inherit; + --quarto-hl-pp-color: #AD0000; + --quarto-hl-in-color: #5E5E5E; + --quarto-hl-vs-color: #20794D; + --quarto-hl-wa-color: #5E5E5E; + --quarto-hl-do-color: #5E5E5E; + --quarto-hl-im-color: #00769E; + --quarto-hl-ch-color: #20794D; + --quarto-hl-dt-color: #AD0000; + --quarto-hl-fl-color: #AD0000; + --quarto-hl-co-color: #5E5E5E; + --quarto-hl-cv-color: #5E5E5E; + --quarto-hl-cn-color: #8f5902; + --quarto-hl-sc-color: #5E5E5E; + --quarto-hl-dv-color: #AD0000; + --quarto-hl-kw-color: #003B4F; +} + +/* other quarto variables */ +:root { + --quarto-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; +} + +/* syntax highlight based on Pandoc's rules */ +pre > code.sourceCode > span { + color: #003B4F; +} + +code.sourceCode > span { + color: #003B4F; +} + +div.sourceCode, +div.sourceCode pre.sourceCode { + color: #003B4F; +} + +/* Normal */ +code span { + color: #003B4F; +} + +/* Alert */ +code span.al { + color: #AD0000; + font-style: inherit; +} + +/* Annotation */ +code span.an { + color: #5E5E5E; + font-style: inherit; +} + +/* Attribute */ +code span.at { + color: #657422; + font-style: inherit; +} + +/* BaseN */ +code span.bn { + color: #AD0000; + font-style: inherit; +} + +/* BuiltIn */ +code span.bu { + font-style: inherit; +} + +/* ControlFlow */ +code span.cf { + color: #003B4F; + font-weight: bold; + font-style: inherit; +} + +/* Char */ +code span.ch { + color: #20794D; + font-style: inherit; +} + +/* Constant */ +code span.cn { + color: #8f5902; + font-style: inherit; +} + +/* Comment */ +code span.co { + color: #5E5E5E; + font-style: inherit; +} + +/* CommentVar */ +code span.cv { + color: #5E5E5E; + font-style: italic; +} + +/* Documentation */ +code span.do { + color: #5E5E5E; + font-style: italic; +} + +/* DataType */ +code span.dt { + color: #AD0000; + font-style: inherit; +} + +/* DecVal */ +code span.dv { + color: #AD0000; + font-style: inherit; +} + +/* Error */ +code span.er { + color: #AD0000; + font-style: inherit; +} + +/* Extension */ +code span.ex { + font-style: inherit; +} + +/* Float */ +code span.fl { + color: #AD0000; + font-style: inherit; +} + +/* Function */ +code span.fu { + color: #4758AB; + font-style: inherit; +} + +/* Import */ +code span.im { + color: #00769E; + font-style: inherit; +} + +/* Information */ +code span.in { + color: #5E5E5E; + font-style: inherit; +} + +/* Keyword */ +code span.kw { + color: #003B4F; + font-weight: bold; + font-style: inherit; +} + +/* Operator */ +code span.op { + color: #5E5E5E; + font-style: inherit; +} + +/* Other */ +code span.ot { + color: #003B4F; + font-style: inherit; +} + +/* Preprocessor */ +code span.pp { + color: #AD0000; + font-style: inherit; +} + +/* SpecialChar */ +code span.sc { + color: #5E5E5E; + font-style: inherit; +} + +/* SpecialString */ +code span.ss { + color: #20794D; + font-style: inherit; +} + +/* String */ +code span.st { + color: #20794D; + font-style: inherit; +} + +/* Variable */ +code span.va { + color: #111111; + font-style: inherit; +} + +/* VerbatimString */ +code span.vs { + color: #20794D; + font-style: inherit; +} + +/* Warning */ +code span.wa { + color: #5E5E5E; + font-style: italic; +} + +.prevent-inlining { + content: " { + // Find any conflicting margin elements and add margins to the + // top to prevent overlap + const marginChildren = window.document.querySelectorAll( + ".column-margin.column-container > *, .margin-caption, .aside" + ); + + let lastBottom = 0; + for (const marginChild of marginChildren) { + if (marginChild.offsetParent !== null) { + // clear the top margin so we recompute it + marginChild.style.marginTop = null; + const top = marginChild.getBoundingClientRect().top + window.scrollY; + if (top < lastBottom) { + const marginChildStyle = window.getComputedStyle(marginChild); + const marginBottom = parseFloat(marginChildStyle["marginBottom"]); + const margin = lastBottom - top + marginBottom; + marginChild.style.marginTop = `${margin}px`; + } + const styles = window.getComputedStyle(marginChild); + const marginTop = parseFloat(styles["marginTop"]); + lastBottom = top + marginChild.getBoundingClientRect().height + marginTop; + } + } +}; + +window.document.addEventListener("DOMContentLoaded", function (_event) { + // Recompute the position of margin elements anytime the body size changes + if (window.ResizeObserver) { + const resizeObserver = new window.ResizeObserver( + throttle(() => { + layoutMarginEls(); + if ( + window.document.body.getBoundingClientRect().width < 990 && + isReaderMode() + ) { + quartoToggleReader(); + } + }, 50) + ); + resizeObserver.observe(window.document.body); + } + + const tocEl = window.document.querySelector('nav.toc-active[role="doc-toc"]'); + const sidebarEl = window.document.getElementById("quarto-sidebar"); + const leftTocEl = window.document.getElementById("quarto-sidebar-toc-left"); + const marginSidebarEl = window.document.getElementById( + "quarto-margin-sidebar" + ); + // function to determine whether the element has a previous sibling that is active + const prevSiblingIsActiveLink = (el) => { + const sibling = el.previousElementSibling; + if (sibling && sibling.tagName === "A") { + return sibling.classList.contains("active"); + } else { + return false; + } + }; + + // dispatch for htmlwidgets + // they use slideenter event to trigger resize + function fireSlideEnter() { + const event = window.document.createEvent("Event"); + event.initEvent("slideenter", true, true); + window.document.dispatchEvent(event); + } + + const tabs = window.document.querySelectorAll('a[data-bs-toggle="tab"]'); + tabs.forEach((tab) => { + tab.addEventListener("shown.bs.tab", fireSlideEnter); + }); + + // dispatch for shiny + // they use BS shown and hidden events to trigger rendering + function distpatchShinyEvents(previous, current) { + if (window.jQuery) { + if (previous) { + window.jQuery(previous).trigger("hidden"); + } + if (current) { + window.jQuery(current).trigger("shown"); + } + } + } + + // tabby.js listener: Trigger event for htmlwidget and shiny + document.addEventListener( + "tabby", + function (event) { + fireSlideEnter(); + distpatchShinyEvents(event.detail.previousTab, event.detail.tab); + }, + false + ); + + // Track scrolling and mark TOC links as active + // get table of contents and sidebar (bail if we don't have at least one) + const tocLinks = tocEl + ? [...tocEl.querySelectorAll("a[data-scroll-target]")] + : []; + const makeActive = (link) => tocLinks[link].classList.add("active"); + const removeActive = (link) => tocLinks[link].classList.remove("active"); + const removeAllActive = () => + [...Array(tocLinks.length).keys()].forEach((link) => removeActive(link)); + + // activate the anchor for a section associated with this TOC entry + tocLinks.forEach((link) => { + link.addEventListener("click", () => { + if (link.href.indexOf("#") !== -1) { + const anchor = link.href.split("#")[1]; + const heading = window.document.querySelector( + `[data-anchor-id="${anchor}"]` + ); + if (heading) { + // Add the class + heading.classList.add("reveal-anchorjs-link"); + + // function to show the anchor + const handleMouseout = () => { + heading.classList.remove("reveal-anchorjs-link"); + heading.removeEventListener("mouseout", handleMouseout); + }; + + // add a function to clear the anchor when the user mouses out of it + heading.addEventListener("mouseout", handleMouseout); + } + } + }); + }); + + const sections = tocLinks.map((link) => { + const target = link.getAttribute("data-scroll-target"); + if (target.startsWith("#")) { + return window.document.getElementById(decodeURI(`${target.slice(1)}`)); + } else { + return window.document.querySelector(decodeURI(`${target}`)); + } + }); + + const sectionMargin = 200; + let currentActive = 0; + // track whether we've initialized state the first time + let init = false; + + const updateActiveLink = () => { + // The index from bottom to top (e.g. reversed list) + let sectionIndex = -1; + if ( + window.innerHeight + window.pageYOffset >= + window.document.body.offsetHeight + ) { + // This is the no-scroll case where last section should be the active one + sectionIndex = 0; + } else { + // This finds the last section visible on screen that should be made active + sectionIndex = [...sections].reverse().findIndex((section) => { + if (section) { + return window.pageYOffset >= section.offsetTop - sectionMargin; + } else { + return false; + } + }); + } + if (sectionIndex > -1) { + const current = sections.length - sectionIndex - 1; + if (current !== currentActive) { + removeAllActive(); + currentActive = current; + makeActive(current); + if (init) { + window.dispatchEvent(sectionChanged); + } + init = true; + } + } + }; + + const inHiddenRegion = (top, bottom, hiddenRegions) => { + for (const region of hiddenRegions) { + if (top <= region.bottom && bottom >= region.top) { + return true; + } + } + return false; + }; + + const categorySelector = "header.quarto-title-block .quarto-category"; + const activateCategories = (href) => { + // Find any categories + // Surround them with a link pointing back to: + // #category=Authoring + try { + const categoryEls = window.document.querySelectorAll(categorySelector); + for (const categoryEl of categoryEls) { + const categoryText = categoryEl.textContent; + if (categoryText) { + const link = `${href}#category=${encodeURIComponent(categoryText)}`; + const linkEl = window.document.createElement("a"); + linkEl.setAttribute("href", link); + for (const child of categoryEl.childNodes) { + linkEl.append(child); + } + categoryEl.appendChild(linkEl); + } + } + } catch { + // Ignore errors + } + }; + function hasTitleCategories() { + return window.document.querySelector(categorySelector) !== null; + } + + function offsetRelativeUrl(url) { + const offset = getMeta("quarto:offset"); + return offset ? offset + url : url; + } + + function offsetAbsoluteUrl(url) { + const offset = getMeta("quarto:offset"); + const baseUrl = new URL(offset, window.location); + + const projRelativeUrl = url.replace(baseUrl, ""); + if (projRelativeUrl.startsWith("/")) { + return projRelativeUrl; + } else { + return "/" + projRelativeUrl; + } + } + + // read a meta tag value + function getMeta(metaName) { + const metas = window.document.getElementsByTagName("meta"); + for (let i = 0; i < metas.length; i++) { + if (metas[i].getAttribute("name") === metaName) { + return metas[i].getAttribute("content"); + } + } + return ""; + } + + async function findAndActivateCategories() { + // Categories search with listing only use path without query + const currentPagePath = offsetAbsoluteUrl( + window.location.origin + window.location.pathname + ); + const response = await fetch(offsetRelativeUrl("listings.json")); + if (response.status == 200) { + return response.json().then(function (listingPaths) { + const listingHrefs = []; + for (const listingPath of listingPaths) { + const pathWithoutLeadingSlash = listingPath.listing.substring(1); + for (const item of listingPath.items) { + const encodedItem = encodeURI(item); + if ( + encodedItem === currentPagePath || + encodedItem === currentPagePath + "index.html" + ) { + // Resolve this path against the offset to be sure + // we already are using the correct path to the listing + // (this adjusts the listing urls to be rooted against + // whatever root the page is actually running against) + const relative = offsetRelativeUrl(pathWithoutLeadingSlash); + const baseUrl = window.location; + const resolvedPath = new URL(relative, baseUrl); + listingHrefs.push(resolvedPath.pathname); + break; + } + } + } + + // Look up the tree for a nearby linting and use that if we find one + const nearestListing = findNearestParentListing( + offsetAbsoluteUrl(window.location.pathname), + listingHrefs + ); + if (nearestListing) { + activateCategories(nearestListing); + } else { + // See if the referrer is a listing page for this item + const referredRelativePath = offsetAbsoluteUrl(document.referrer); + const referrerListing = listingHrefs.find((listingHref) => { + const isListingReferrer = + listingHref === referredRelativePath || + listingHref === referredRelativePath + "index.html"; + return isListingReferrer; + }); + + if (referrerListing) { + // Try to use the referrer if possible + activateCategories(referrerListing); + } else if (listingHrefs.length > 0) { + // Otherwise, just fall back to the first listing + activateCategories(listingHrefs[0]); + } + } + }); + } + } + if (hasTitleCategories()) { + findAndActivateCategories(); + } + + const findNearestParentListing = (href, listingHrefs) => { + if (!href || !listingHrefs) { + return undefined; + } + // Look up the tree for a nearby linting and use that if we find one + const relativeParts = href.substring(1).split("/"); + while (relativeParts.length > 0) { + const path = relativeParts.join("/"); + for (const listingHref of listingHrefs) { + if (listingHref.startsWith(path)) { + return listingHref; + } + } + relativeParts.pop(); + } + + return undefined; + }; + + const manageSidebarVisiblity = (el, placeholderDescriptor) => { + let isVisible = true; + let elRect; + + return (hiddenRegions) => { + if (el === null) { + return; + } + + // Find the last element of the TOC + const lastChildEl = el.lastElementChild; + + if (lastChildEl) { + // Converts the sidebar to a menu + const convertToMenu = () => { + for (const child of el.children) { + child.style.opacity = 0; + child.style.overflow = "hidden"; + child.style.pointerEvents = "none"; + } + + nexttick(() => { + const toggleContainer = window.document.createElement("div"); + toggleContainer.style.width = "100%"; + toggleContainer.classList.add("zindex-over-content"); + toggleContainer.classList.add("quarto-sidebar-toggle"); + toggleContainer.classList.add("headroom-target"); // Marks this to be managed by headeroom + toggleContainer.id = placeholderDescriptor.id; + toggleContainer.style.position = "fixed"; + + const toggleIcon = window.document.createElement("i"); + toggleIcon.classList.add("quarto-sidebar-toggle-icon"); + toggleIcon.classList.add("bi"); + toggleIcon.classList.add("bi-caret-down-fill"); + + const toggleTitle = window.document.createElement("div"); + const titleEl = window.document.body.querySelector( + placeholderDescriptor.titleSelector + ); + if (titleEl) { + toggleTitle.append( + titleEl.textContent || titleEl.innerText, + toggleIcon + ); + } + toggleTitle.classList.add("zindex-over-content"); + toggleTitle.classList.add("quarto-sidebar-toggle-title"); + toggleContainer.append(toggleTitle); + + const toggleContents = window.document.createElement("div"); + toggleContents.classList = el.classList; + toggleContents.classList.add("zindex-over-content"); + toggleContents.classList.add("quarto-sidebar-toggle-contents"); + for (const child of el.children) { + if (child.id === "toc-title") { + continue; + } + + const clone = child.cloneNode(true); + clone.style.opacity = 1; + clone.style.pointerEvents = null; + clone.style.display = null; + toggleContents.append(clone); + } + toggleContents.style.height = "0px"; + const positionToggle = () => { + // position the element (top left of parent, same width as parent) + if (!elRect) { + elRect = el.getBoundingClientRect(); + } + toggleContainer.style.left = `${elRect.left}px`; + toggleContainer.style.top = `${elRect.top}px`; + toggleContainer.style.width = `${elRect.width}px`; + }; + positionToggle(); + + toggleContainer.append(toggleContents); + el.parentElement.prepend(toggleContainer); + + // Process clicks + let tocShowing = false; + // Allow the caller to control whether this is dismissed + // when it is clicked (e.g. sidebar navigation supports + // opening and closing the nav tree, so don't dismiss on click) + const clickEl = placeholderDescriptor.dismissOnClick + ? toggleContainer + : toggleTitle; + + const closeToggle = () => { + if (tocShowing) { + toggleContainer.classList.remove("expanded"); + toggleContents.style.height = "0px"; + tocShowing = false; + } + }; + + // Get rid of any expanded toggle if the user scrolls + window.document.addEventListener( + "scroll", + throttle(() => { + closeToggle(); + }, 50) + ); + + // Handle positioning of the toggle + window.addEventListener( + "resize", + throttle(() => { + elRect = undefined; + positionToggle(); + }, 50) + ); + + window.addEventListener("quarto-hrChanged", () => { + elRect = undefined; + }); + + // Process the click + clickEl.onclick = () => { + if (!tocShowing) { + toggleContainer.classList.add("expanded"); + toggleContents.style.height = null; + tocShowing = true; + } else { + closeToggle(); + } + }; + }); + }; + + // Converts a sidebar from a menu back to a sidebar + const convertToSidebar = () => { + for (const child of el.children) { + child.style.opacity = 1; + child.style.overflow = null; + child.style.pointerEvents = null; + } + + const placeholderEl = window.document.getElementById( + placeholderDescriptor.id + ); + if (placeholderEl) { + placeholderEl.remove(); + } + + el.classList.remove("rollup"); + }; + + if (isReaderMode()) { + convertToMenu(); + isVisible = false; + } else { + // Find the top and bottom o the element that is being managed + const elTop = el.offsetTop; + const elBottom = + elTop + lastChildEl.offsetTop + lastChildEl.offsetHeight; + + if (!isVisible) { + // If the element is current not visible reveal if there are + // no conflicts with overlay regions + if (!inHiddenRegion(elTop, elBottom, hiddenRegions)) { + convertToSidebar(); + isVisible = true; + } + } else { + // If the element is visible, hide it if it conflicts with overlay regions + // and insert a placeholder toggle (or if we're in reader mode) + if (inHiddenRegion(elTop, elBottom, hiddenRegions)) { + convertToMenu(); + isVisible = false; + } + } + } + } + }; + }; + + const tabEls = document.querySelectorAll('a[data-bs-toggle="tab"]'); + for (const tabEl of tabEls) { + const id = tabEl.getAttribute("data-bs-target"); + if (id) { + const columnEl = document.querySelector( + `${id} .column-margin, .tabset-margin-content` + ); + if (columnEl) + tabEl.addEventListener("shown.bs.tab", function (event) { + const el = event.srcElement; + if (el) { + const visibleCls = `${el.id}-margin-content`; + // walk up until we find a parent tabset + let panelTabsetEl = el.parentElement; + while (panelTabsetEl) { + if (panelTabsetEl.classList.contains("panel-tabset")) { + break; + } + panelTabsetEl = panelTabsetEl.parentElement; + } + + if (panelTabsetEl) { + const prevSib = panelTabsetEl.previousElementSibling; + if ( + prevSib && + prevSib.classList.contains("tabset-margin-container") + ) { + const childNodes = prevSib.querySelectorAll( + ".tabset-margin-content" + ); + for (const childEl of childNodes) { + if (childEl.classList.contains(visibleCls)) { + childEl.classList.remove("collapse"); + } else { + childEl.classList.add("collapse"); + } + } + } + } + } + + layoutMarginEls(); + }); + } + } + + // Manage the visibility of the toc and the sidebar + const marginScrollVisibility = manageSidebarVisiblity(marginSidebarEl, { + id: "quarto-toc-toggle", + titleSelector: "#toc-title", + dismissOnClick: true, + }); + const sidebarScrollVisiblity = manageSidebarVisiblity(sidebarEl, { + id: "quarto-sidebarnav-toggle", + titleSelector: ".title", + dismissOnClick: false, + }); + let tocLeftScrollVisibility; + if (leftTocEl) { + tocLeftScrollVisibility = manageSidebarVisiblity(leftTocEl, { + id: "quarto-lefttoc-toggle", + titleSelector: "#toc-title", + dismissOnClick: true, + }); + } + + // Find the first element that uses formatting in special columns + const conflictingEls = window.document.body.querySelectorAll( + '[class^="column-"], [class*=" column-"], aside, [class*="margin-caption"], [class*=" margin-caption"], [class*="margin-ref"], [class*=" margin-ref"]' + ); + + // Filter all the possibly conflicting elements into ones + // the do conflict on the left or ride side + const arrConflictingEls = Array.from(conflictingEls); + const leftSideConflictEls = arrConflictingEls.filter((el) => { + if (el.tagName === "ASIDE") { + return false; + } + return Array.from(el.classList).find((className) => { + return ( + className !== "column-body" && + className.startsWith("column-") && + !className.endsWith("right") && + !className.endsWith("container") && + className !== "column-margin" + ); + }); + }); + const rightSideConflictEls = arrConflictingEls.filter((el) => { + if (el.tagName === "ASIDE") { + return true; + } + + const hasMarginCaption = Array.from(el.classList).find((className) => { + return className == "margin-caption"; + }); + if (hasMarginCaption) { + return true; + } + + return Array.from(el.classList).find((className) => { + return ( + className !== "column-body" && + !className.endsWith("container") && + className.startsWith("column-") && + !className.endsWith("left") + ); + }); + }); + + const kOverlapPaddingSize = 10; + function toRegions(els) { + return els.map((el) => { + const boundRect = el.getBoundingClientRect(); + const top = + boundRect.top + + document.documentElement.scrollTop - + kOverlapPaddingSize; + return { + top, + bottom: top + el.scrollHeight + 2 * kOverlapPaddingSize, + }; + }); + } + + let hasObserved = false; + const visibleItemObserver = (els) => { + let visibleElements = [...els]; + const intersectionObserver = new IntersectionObserver( + (entries, _observer) => { + entries.forEach((entry) => { + if (entry.isIntersecting) { + if (visibleElements.indexOf(entry.target) === -1) { + visibleElements.push(entry.target); + } + } else { + visibleElements = visibleElements.filter((visibleEntry) => { + return visibleEntry !== entry; + }); + } + }); + + if (!hasObserved) { + hideOverlappedSidebars(); + } + hasObserved = true; + }, + {} + ); + els.forEach((el) => { + intersectionObserver.observe(el); + }); + + return { + getVisibleEntries: () => { + return visibleElements; + }, + }; + }; + + const rightElementObserver = visibleItemObserver(rightSideConflictEls); + const leftElementObserver = visibleItemObserver(leftSideConflictEls); + + const hideOverlappedSidebars = () => { + marginScrollVisibility(toRegions(rightElementObserver.getVisibleEntries())); + sidebarScrollVisiblity(toRegions(leftElementObserver.getVisibleEntries())); + if (tocLeftScrollVisibility) { + tocLeftScrollVisibility( + toRegions(leftElementObserver.getVisibleEntries()) + ); + } + }; + + window.quartoToggleReader = () => { + // Applies a slow class (or removes it) + // to update the transition speed + const slowTransition = (slow) => { + const manageTransition = (id, slow) => { + const el = document.getElementById(id); + if (el) { + if (slow) { + el.classList.add("slow"); + } else { + el.classList.remove("slow"); + } + } + }; + + manageTransition("TOC", slow); + manageTransition("quarto-sidebar", slow); + }; + const readerMode = !isReaderMode(); + setReaderModeValue(readerMode); + + // If we're entering reader mode, slow the transition + if (readerMode) { + slowTransition(readerMode); + } + highlightReaderToggle(readerMode); + hideOverlappedSidebars(); + + // If we're exiting reader mode, restore the non-slow transition + if (!readerMode) { + slowTransition(!readerMode); + } + }; + + const highlightReaderToggle = (readerMode) => { + const els = document.querySelectorAll(".quarto-reader-toggle"); + if (els) { + els.forEach((el) => { + if (readerMode) { + el.classList.add("reader"); + } else { + el.classList.remove("reader"); + } + }); + } + }; + + const setReaderModeValue = (val) => { + if (window.location.protocol !== "file:") { + window.localStorage.setItem("quarto-reader-mode", val); + } else { + localReaderMode = val; + } + }; + + const isReaderMode = () => { + if (window.location.protocol !== "file:") { + return window.localStorage.getItem("quarto-reader-mode") === "true"; + } else { + return localReaderMode; + } + }; + let localReaderMode = null; + + const tocOpenDepthStr = tocEl?.getAttribute("data-toc-expanded"); + const tocOpenDepth = tocOpenDepthStr ? Number(tocOpenDepthStr) : 1; + + // Walk the TOC and collapse/expand nodes + // Nodes are expanded if: + // - they are top level + // - they have children that are 'active' links + // - they are directly below an link that is 'active' + const walk = (el, depth) => { + // Tick depth when we enter a UL + if (el.tagName === "UL") { + depth = depth + 1; + } + + // It this is active link + let isActiveNode = false; + if (el.tagName === "A" && el.classList.contains("active")) { + isActiveNode = true; + } + + // See if there is an active child to this element + let hasActiveChild = false; + for (const child of el.children) { + hasActiveChild = walk(child, depth) || hasActiveChild; + } + + // Process the collapse state if this is an UL + if (el.tagName === "UL") { + if (tocOpenDepth === -1 && depth > 1) { + // toc-expand: false + el.classList.add("collapse"); + } else if ( + depth <= tocOpenDepth || + hasActiveChild || + prevSiblingIsActiveLink(el) + ) { + el.classList.remove("collapse"); + } else { + el.classList.add("collapse"); + } + + // untick depth when we leave a UL + depth = depth - 1; + } + return hasActiveChild || isActiveNode; + }; + + // walk the TOC and expand / collapse any items that should be shown + if (tocEl) { + updateActiveLink(); + walk(tocEl, 0); + } + + // Throttle the scroll event and walk peridiocally + window.document.addEventListener( + "scroll", + throttle(() => { + if (tocEl) { + updateActiveLink(); + walk(tocEl, 0); + } + if (!isReaderMode()) { + hideOverlappedSidebars(); + } + }, 5) + ); + window.addEventListener( + "resize", + throttle(() => { + if (tocEl) { + updateActiveLink(); + walk(tocEl, 0); + } + if (!isReaderMode()) { + hideOverlappedSidebars(); + } + }, 10) + ); + hideOverlappedSidebars(); + highlightReaderToggle(isReaderMode()); +}); + +tabsets.init(); + +function throttle(func, wait) { + let waiting = false; + return function () { + if (!waiting) { + func.apply(this, arguments); + waiting = true; + setTimeout(function () { + waiting = false; + }, wait); + } + }; +} + +function nexttick(func) { + return setTimeout(func, 0); +} diff --git a/docs/src/tutorials/test1_files/libs/quarto-html/tabsets/tabsets.js b/docs/src/tutorials/test1_files/libs/quarto-html/tabsets/tabsets.js new file mode 100644 index 0000000..51345d0 --- /dev/null +++ b/docs/src/tutorials/test1_files/libs/quarto-html/tabsets/tabsets.js @@ -0,0 +1,95 @@ +// grouped tabsets + +export function init() { + window.addEventListener("pageshow", (_event) => { + function getTabSettings() { + const data = localStorage.getItem("quarto-persistent-tabsets-data"); + if (!data) { + localStorage.setItem("quarto-persistent-tabsets-data", "{}"); + return {}; + } + if (data) { + return JSON.parse(data); + } + } + + function setTabSettings(data) { + localStorage.setItem( + "quarto-persistent-tabsets-data", + JSON.stringify(data) + ); + } + + function setTabState(groupName, groupValue) { + const data = getTabSettings(); + data[groupName] = groupValue; + setTabSettings(data); + } + + function toggleTab(tab, active) { + const tabPanelId = tab.getAttribute("aria-controls"); + const tabPanel = document.getElementById(tabPanelId); + if (active) { + tab.classList.add("active"); + tabPanel.classList.add("active"); + } else { + tab.classList.remove("active"); + tabPanel.classList.remove("active"); + } + } + + function toggleAll(selectedGroup, selectorsToSync) { + for (const [thisGroup, tabs] of Object.entries(selectorsToSync)) { + const active = selectedGroup === thisGroup; + for (const tab of tabs) { + toggleTab(tab, active); + } + } + } + + function findSelectorsToSyncByLanguage() { + const result = {}; + const tabs = Array.from( + document.querySelectorAll(`div[data-group] a[id^='tabset-']`) + ); + for (const item of tabs) { + const div = item.parentElement.parentElement.parentElement; + const group = div.getAttribute("data-group"); + if (!result[group]) { + result[group] = {}; + } + const selectorsToSync = result[group]; + const value = item.innerHTML; + if (!selectorsToSync[value]) { + selectorsToSync[value] = []; + } + selectorsToSync[value].push(item); + } + return result; + } + + function setupSelectorSync() { + const selectorsToSync = findSelectorsToSyncByLanguage(); + Object.entries(selectorsToSync).forEach(([group, tabSetsByValue]) => { + Object.entries(tabSetsByValue).forEach(([value, items]) => { + items.forEach((item) => { + item.addEventListener("click", (_event) => { + setTabState(group, value); + toggleAll(value, selectorsToSync[group]); + }); + }); + }); + }); + return selectorsToSync; + } + + const selectorsToSync = setupSelectorSync(); + for (const [group, selectedName] of Object.entries(getTabSettings())) { + const selectors = selectorsToSync[group]; + // it's possible that stale state gives us empty selections, so we explicitly check here. + if (selectors) { + toggleAll(selectedName, selectors); + } + } + }); +} diff --git a/docs/src/tutorials/test1_files/libs/quarto-html/tippy.css b/docs/src/tutorials/test1_files/libs/quarto-html/tippy.css new file mode 100644 index 0000000..e6ae635 --- /dev/null +++ b/docs/src/tutorials/test1_files/libs/quarto-html/tippy.css @@ -0,0 +1 @@ +.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;white-space:normal;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1} \ No newline at end of file diff --git a/docs/src/tutorials/test1_files/libs/quarto-html/tippy.umd.min.js b/docs/src/tutorials/test1_files/libs/quarto-html/tippy.umd.min.js new file mode 100644 index 0000000..ca292be --- /dev/null +++ b/docs/src/tutorials/test1_files/libs/quarto-html/tippy.umd.min.js @@ -0,0 +1,2 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("@popperjs/core")):"function"==typeof define&&define.amd?define(["@popperjs/core"],t):(e=e||self).tippy=t(e.Popper)}(this,(function(e){"use strict";var t={passive:!0,capture:!0},n=function(){return document.body};function r(e,t,n){if(Array.isArray(e)){var r=e[t];return null==r?Array.isArray(n)?n[t]:n:r}return e}function o(e,t){var n={}.toString.call(e);return 0===n.indexOf("[object")&&n.indexOf(t+"]")>-1}function i(e,t){return"function"==typeof e?e.apply(void 0,t):e}function a(e,t){return 0===t?e:function(r){clearTimeout(n),n=setTimeout((function(){e(r)}),t)};var n}function s(e,t){var n=Object.assign({},e);return t.forEach((function(e){delete n[e]})),n}function u(e){return[].concat(e)}function c(e,t){-1===e.indexOf(t)&&e.push(t)}function p(e){return e.split("-")[0]}function f(e){return[].slice.call(e)}function l(e){return Object.keys(e).reduce((function(t,n){return void 0!==e[n]&&(t[n]=e[n]),t}),{})}function d(){return document.createElement("div")}function v(e){return["Element","Fragment"].some((function(t){return o(e,t)}))}function m(e){return o(e,"MouseEvent")}function g(e){return!(!e||!e._tippy||e._tippy.reference!==e)}function h(e){return v(e)?[e]:function(e){return o(e,"NodeList")}(e)?f(e):Array.isArray(e)?e:f(document.querySelectorAll(e))}function b(e,t){e.forEach((function(e){e&&(e.style.transitionDuration=t+"ms")}))}function y(e,t){e.forEach((function(e){e&&e.setAttribute("data-state",t)}))}function w(e){var t,n=u(e)[0];return null!=n&&null!=(t=n.ownerDocument)&&t.body?n.ownerDocument:document}function E(e,t,n){var r=t+"EventListener";["transitionend","webkitTransitionEnd"].forEach((function(t){e[r](t,n)}))}function O(e,t){for(var n=t;n;){var r;if(e.contains(n))return!0;n=null==n.getRootNode||null==(r=n.getRootNode())?void 0:r.host}return!1}var x={isTouch:!1},C=0;function T(){x.isTouch||(x.isTouch=!0,window.performance&&document.addEventListener("mousemove",A))}function A(){var e=performance.now();e-C<20&&(x.isTouch=!1,document.removeEventListener("mousemove",A)),C=e}function L(){var e=document.activeElement;if(g(e)){var t=e._tippy;e.blur&&!t.state.isVisible&&e.blur()}}var D=!!("undefined"!=typeof window&&"undefined"!=typeof document)&&!!window.msCrypto,R=Object.assign({appendTo:n,aria:{content:"auto",expanded:"auto"},delay:0,duration:[300,250],getReferenceClientRect:null,hideOnClick:!0,ignoreAttributes:!1,interactive:!1,interactiveBorder:2,interactiveDebounce:0,moveTransition:"",offset:[0,10],onAfterUpdate:function(){},onBeforeUpdate:function(){},onCreate:function(){},onDestroy:function(){},onHidden:function(){},onHide:function(){},onMount:function(){},onShow:function(){},onShown:function(){},onTrigger:function(){},onUntrigger:function(){},onClickOutside:function(){},placement:"top",plugins:[],popperOptions:{},render:null,showOnCreate:!1,touch:!0,trigger:"mouseenter focus",triggerTarget:null},{animateFill:!1,followCursor:!1,inlinePositioning:!1,sticky:!1},{allowHTML:!1,animation:"fade",arrow:!0,content:"",inertia:!1,maxWidth:350,role:"tooltip",theme:"",zIndex:9999}),k=Object.keys(R);function P(e){var t=(e.plugins||[]).reduce((function(t,n){var r,o=n.name,i=n.defaultValue;o&&(t[o]=void 0!==e[o]?e[o]:null!=(r=R[o])?r:i);return t}),{});return Object.assign({},e,t)}function j(e,t){var n=Object.assign({},t,{content:i(t.content,[e])},t.ignoreAttributes?{}:function(e,t){return(t?Object.keys(P(Object.assign({},R,{plugins:t}))):k).reduce((function(t,n){var r=(e.getAttribute("data-tippy-"+n)||"").trim();if(!r)return t;if("content"===n)t[n]=r;else try{t[n]=JSON.parse(r)}catch(e){t[n]=r}return t}),{})}(e,t.plugins));return n.aria=Object.assign({},R.aria,n.aria),n.aria={expanded:"auto"===n.aria.expanded?t.interactive:n.aria.expanded,content:"auto"===n.aria.content?t.interactive?null:"describedby":n.aria.content},n}function M(e,t){e.innerHTML=t}function V(e){var t=d();return!0===e?t.className="tippy-arrow":(t.className="tippy-svg-arrow",v(e)?t.appendChild(e):M(t,e)),t}function I(e,t){v(t.content)?(M(e,""),e.appendChild(t.content)):"function"!=typeof t.content&&(t.allowHTML?M(e,t.content):e.textContent=t.content)}function S(e){var t=e.firstElementChild,n=f(t.children);return{box:t,content:n.find((function(e){return e.classList.contains("tippy-content")})),arrow:n.find((function(e){return e.classList.contains("tippy-arrow")||e.classList.contains("tippy-svg-arrow")})),backdrop:n.find((function(e){return e.classList.contains("tippy-backdrop")}))}}function N(e){var t=d(),n=d();n.className="tippy-box",n.setAttribute("data-state","hidden"),n.setAttribute("tabindex","-1");var r=d();function o(n,r){var o=S(t),i=o.box,a=o.content,s=o.arrow;r.theme?i.setAttribute("data-theme",r.theme):i.removeAttribute("data-theme"),"string"==typeof r.animation?i.setAttribute("data-animation",r.animation):i.removeAttribute("data-animation"),r.inertia?i.setAttribute("data-inertia",""):i.removeAttribute("data-inertia"),i.style.maxWidth="number"==typeof r.maxWidth?r.maxWidth+"px":r.maxWidth,r.role?i.setAttribute("role",r.role):i.removeAttribute("role"),n.content===r.content&&n.allowHTML===r.allowHTML||I(a,e.props),r.arrow?s?n.arrow!==r.arrow&&(i.removeChild(s),i.appendChild(V(r.arrow))):i.appendChild(V(r.arrow)):s&&i.removeChild(s)}return r.className="tippy-content",r.setAttribute("data-state","hidden"),I(r,e.props),t.appendChild(n),n.appendChild(r),o(e.props,e.props),{popper:t,onUpdate:o}}N.$$tippy=!0;var B=1,H=[],U=[];function _(o,s){var v,g,h,C,T,A,L,k,M=j(o,Object.assign({},R,P(l(s)))),V=!1,I=!1,N=!1,_=!1,F=[],W=a(we,M.interactiveDebounce),X=B++,Y=(k=M.plugins).filter((function(e,t){return k.indexOf(e)===t})),$={id:X,reference:o,popper:d(),popperInstance:null,props:M,state:{isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:Y,clearDelayTimeouts:function(){clearTimeout(v),clearTimeout(g),cancelAnimationFrame(h)},setProps:function(e){if($.state.isDestroyed)return;ae("onBeforeUpdate",[$,e]),be();var t=$.props,n=j(o,Object.assign({},t,l(e),{ignoreAttributes:!0}));$.props=n,he(),t.interactiveDebounce!==n.interactiveDebounce&&(ce(),W=a(we,n.interactiveDebounce));t.triggerTarget&&!n.triggerTarget?u(t.triggerTarget).forEach((function(e){e.removeAttribute("aria-expanded")})):n.triggerTarget&&o.removeAttribute("aria-expanded");ue(),ie(),J&&J(t,n);$.popperInstance&&(Ce(),Ae().forEach((function(e){requestAnimationFrame(e._tippy.popperInstance.forceUpdate)})));ae("onAfterUpdate",[$,e])},setContent:function(e){$.setProps({content:e})},show:function(){var e=$.state.isVisible,t=$.state.isDestroyed,o=!$.state.isEnabled,a=x.isTouch&&!$.props.touch,s=r($.props.duration,0,R.duration);if(e||t||o||a)return;if(te().hasAttribute("disabled"))return;if(ae("onShow",[$],!1),!1===$.props.onShow($))return;$.state.isVisible=!0,ee()&&(z.style.visibility="visible");ie(),de(),$.state.isMounted||(z.style.transition="none");if(ee()){var u=re(),p=u.box,f=u.content;b([p,f],0)}A=function(){var e;if($.state.isVisible&&!_){if(_=!0,z.offsetHeight,z.style.transition=$.props.moveTransition,ee()&&$.props.animation){var t=re(),n=t.box,r=t.content;b([n,r],s),y([n,r],"visible")}se(),ue(),c(U,$),null==(e=$.popperInstance)||e.forceUpdate(),ae("onMount",[$]),$.props.animation&&ee()&&function(e,t){me(e,t)}(s,(function(){$.state.isShown=!0,ae("onShown",[$])}))}},function(){var e,t=$.props.appendTo,r=te();e=$.props.interactive&&t===n||"parent"===t?r.parentNode:i(t,[r]);e.contains(z)||e.appendChild(z);$.state.isMounted=!0,Ce()}()},hide:function(){var e=!$.state.isVisible,t=$.state.isDestroyed,n=!$.state.isEnabled,o=r($.props.duration,1,R.duration);if(e||t||n)return;if(ae("onHide",[$],!1),!1===$.props.onHide($))return;$.state.isVisible=!1,$.state.isShown=!1,_=!1,V=!1,ee()&&(z.style.visibility="hidden");if(ce(),ve(),ie(!0),ee()){var i=re(),a=i.box,s=i.content;$.props.animation&&(b([a,s],o),y([a,s],"hidden"))}se(),ue(),$.props.animation?ee()&&function(e,t){me(e,(function(){!$.state.isVisible&&z.parentNode&&z.parentNode.contains(z)&&t()}))}(o,$.unmount):$.unmount()},hideWithInteractivity:function(e){ne().addEventListener("mousemove",W),c(H,W),W(e)},enable:function(){$.state.isEnabled=!0},disable:function(){$.hide(),$.state.isEnabled=!1},unmount:function(){$.state.isVisible&&$.hide();if(!$.state.isMounted)return;Te(),Ae().forEach((function(e){e._tippy.unmount()})),z.parentNode&&z.parentNode.removeChild(z);U=U.filter((function(e){return e!==$})),$.state.isMounted=!1,ae("onHidden",[$])},destroy:function(){if($.state.isDestroyed)return;$.clearDelayTimeouts(),$.unmount(),be(),delete o._tippy,$.state.isDestroyed=!0,ae("onDestroy",[$])}};if(!M.render)return $;var q=M.render($),z=q.popper,J=q.onUpdate;z.setAttribute("data-tippy-root",""),z.id="tippy-"+$.id,$.popper=z,o._tippy=$,z._tippy=$;var G=Y.map((function(e){return e.fn($)})),K=o.hasAttribute("aria-expanded");return he(),ue(),ie(),ae("onCreate",[$]),M.showOnCreate&&Le(),z.addEventListener("mouseenter",(function(){$.props.interactive&&$.state.isVisible&&$.clearDelayTimeouts()})),z.addEventListener("mouseleave",(function(){$.props.interactive&&$.props.trigger.indexOf("mouseenter")>=0&&ne().addEventListener("mousemove",W)})),$;function Q(){var e=$.props.touch;return Array.isArray(e)?e:[e,0]}function Z(){return"hold"===Q()[0]}function ee(){var e;return!(null==(e=$.props.render)||!e.$$tippy)}function te(){return L||o}function ne(){var e=te().parentNode;return e?w(e):document}function re(){return S(z)}function oe(e){return $.state.isMounted&&!$.state.isVisible||x.isTouch||C&&"focus"===C.type?0:r($.props.delay,e?0:1,R.delay)}function ie(e){void 0===e&&(e=!1),z.style.pointerEvents=$.props.interactive&&!e?"":"none",z.style.zIndex=""+$.props.zIndex}function ae(e,t,n){var r;(void 0===n&&(n=!0),G.forEach((function(n){n[e]&&n[e].apply(n,t)})),n)&&(r=$.props)[e].apply(r,t)}function se(){var e=$.props.aria;if(e.content){var t="aria-"+e.content,n=z.id;u($.props.triggerTarget||o).forEach((function(e){var r=e.getAttribute(t);if($.state.isVisible)e.setAttribute(t,r?r+" "+n:n);else{var o=r&&r.replace(n,"").trim();o?e.setAttribute(t,o):e.removeAttribute(t)}}))}}function ue(){!K&&$.props.aria.expanded&&u($.props.triggerTarget||o).forEach((function(e){$.props.interactive?e.setAttribute("aria-expanded",$.state.isVisible&&e===te()?"true":"false"):e.removeAttribute("aria-expanded")}))}function ce(){ne().removeEventListener("mousemove",W),H=H.filter((function(e){return e!==W}))}function pe(e){if(!x.isTouch||!N&&"mousedown"!==e.type){var t=e.composedPath&&e.composedPath()[0]||e.target;if(!$.props.interactive||!O(z,t)){if(u($.props.triggerTarget||o).some((function(e){return O(e,t)}))){if(x.isTouch)return;if($.state.isVisible&&$.props.trigger.indexOf("click")>=0)return}else ae("onClickOutside",[$,e]);!0===$.props.hideOnClick&&($.clearDelayTimeouts(),$.hide(),I=!0,setTimeout((function(){I=!1})),$.state.isMounted||ve())}}}function fe(){N=!0}function le(){N=!1}function de(){var e=ne();e.addEventListener("mousedown",pe,!0),e.addEventListener("touchend",pe,t),e.addEventListener("touchstart",le,t),e.addEventListener("touchmove",fe,t)}function ve(){var e=ne();e.removeEventListener("mousedown",pe,!0),e.removeEventListener("touchend",pe,t),e.removeEventListener("touchstart",le,t),e.removeEventListener("touchmove",fe,t)}function me(e,t){var n=re().box;function r(e){e.target===n&&(E(n,"remove",r),t())}if(0===e)return t();E(n,"remove",T),E(n,"add",r),T=r}function ge(e,t,n){void 0===n&&(n=!1),u($.props.triggerTarget||o).forEach((function(r){r.addEventListener(e,t,n),F.push({node:r,eventType:e,handler:t,options:n})}))}function he(){var e;Z()&&(ge("touchstart",ye,{passive:!0}),ge("touchend",Ee,{passive:!0})),(e=$.props.trigger,e.split(/\s+/).filter(Boolean)).forEach((function(e){if("manual"!==e)switch(ge(e,ye),e){case"mouseenter":ge("mouseleave",Ee);break;case"focus":ge(D?"focusout":"blur",Oe);break;case"focusin":ge("focusout",Oe)}}))}function be(){F.forEach((function(e){var t=e.node,n=e.eventType,r=e.handler,o=e.options;t.removeEventListener(n,r,o)})),F=[]}function ye(e){var t,n=!1;if($.state.isEnabled&&!xe(e)&&!I){var r="focus"===(null==(t=C)?void 0:t.type);C=e,L=e.currentTarget,ue(),!$.state.isVisible&&m(e)&&H.forEach((function(t){return t(e)})),"click"===e.type&&($.props.trigger.indexOf("mouseenter")<0||V)&&!1!==$.props.hideOnClick&&$.state.isVisible?n=!0:Le(e),"click"===e.type&&(V=!n),n&&!r&&De(e)}}function we(e){var t=e.target,n=te().contains(t)||z.contains(t);"mousemove"===e.type&&n||function(e,t){var n=t.clientX,r=t.clientY;return e.every((function(e){var t=e.popperRect,o=e.popperState,i=e.props.interactiveBorder,a=p(o.placement),s=o.modifiersData.offset;if(!s)return!0;var u="bottom"===a?s.top.y:0,c="top"===a?s.bottom.y:0,f="right"===a?s.left.x:0,l="left"===a?s.right.x:0,d=t.top-r+u>i,v=r-t.bottom-c>i,m=t.left-n+f>i,g=n-t.right-l>i;return d||v||m||g}))}(Ae().concat(z).map((function(e){var t,n=null==(t=e._tippy.popperInstance)?void 0:t.state;return n?{popperRect:e.getBoundingClientRect(),popperState:n,props:M}:null})).filter(Boolean),e)&&(ce(),De(e))}function Ee(e){xe(e)||$.props.trigger.indexOf("click")>=0&&V||($.props.interactive?$.hideWithInteractivity(e):De(e))}function Oe(e){$.props.trigger.indexOf("focusin")<0&&e.target!==te()||$.props.interactive&&e.relatedTarget&&z.contains(e.relatedTarget)||De(e)}function xe(e){return!!x.isTouch&&Z()!==e.type.indexOf("touch")>=0}function Ce(){Te();var t=$.props,n=t.popperOptions,r=t.placement,i=t.offset,a=t.getReferenceClientRect,s=t.moveTransition,u=ee()?S(z).arrow:null,c=a?{getBoundingClientRect:a,contextElement:a.contextElement||te()}:o,p=[{name:"offset",options:{offset:i}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5}},{name:"computeStyles",options:{adaptive:!s}},{name:"$$tippy",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:function(e){var t=e.state;if(ee()){var n=re().box;["placement","reference-hidden","escaped"].forEach((function(e){"placement"===e?n.setAttribute("data-placement",t.placement):t.attributes.popper["data-popper-"+e]?n.setAttribute("data-"+e,""):n.removeAttribute("data-"+e)})),t.attributes.popper={}}}}];ee()&&u&&p.push({name:"arrow",options:{element:u,padding:3}}),p.push.apply(p,(null==n?void 0:n.modifiers)||[]),$.popperInstance=e.createPopper(c,z,Object.assign({},n,{placement:r,onFirstUpdate:A,modifiers:p}))}function Te(){$.popperInstance&&($.popperInstance.destroy(),$.popperInstance=null)}function Ae(){return f(z.querySelectorAll("[data-tippy-root]"))}function Le(e){$.clearDelayTimeouts(),e&&ae("onTrigger",[$,e]),de();var t=oe(!0),n=Q(),r=n[0],o=n[1];x.isTouch&&"hold"===r&&o&&(t=o),t?v=setTimeout((function(){$.show()}),t):$.show()}function De(e){if($.clearDelayTimeouts(),ae("onUntrigger",[$,e]),$.state.isVisible){if(!($.props.trigger.indexOf("mouseenter")>=0&&$.props.trigger.indexOf("click")>=0&&["mouseleave","mousemove"].indexOf(e.type)>=0&&V)){var t=oe(!1);t?g=setTimeout((function(){$.state.isVisible&&$.hide()}),t):h=requestAnimationFrame((function(){$.hide()}))}}else ve()}}function F(e,n){void 0===n&&(n={});var r=R.plugins.concat(n.plugins||[]);document.addEventListener("touchstart",T,t),window.addEventListener("blur",L);var o=Object.assign({},n,{plugins:r}),i=h(e).reduce((function(e,t){var n=t&&_(t,o);return n&&e.push(n),e}),[]);return v(e)?i[0]:i}F.defaultProps=R,F.setDefaultProps=function(e){Object.keys(e).forEach((function(t){R[t]=e[t]}))},F.currentInput=x;var W=Object.assign({},e.applyStyles,{effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow)}}),X={mouseover:"mouseenter",focusin:"focus",click:"click"};var Y={name:"animateFill",defaultValue:!1,fn:function(e){var t;if(null==(t=e.props.render)||!t.$$tippy)return{};var n=S(e.popper),r=n.box,o=n.content,i=e.props.animateFill?function(){var e=d();return e.className="tippy-backdrop",y([e],"hidden"),e}():null;return{onCreate:function(){i&&(r.insertBefore(i,r.firstElementChild),r.setAttribute("data-animatefill",""),r.style.overflow="hidden",e.setProps({arrow:!1,animation:"shift-away"}))},onMount:function(){if(i){var e=r.style.transitionDuration,t=Number(e.replace("ms",""));o.style.transitionDelay=Math.round(t/10)+"ms",i.style.transitionDuration=e,y([i],"visible")}},onShow:function(){i&&(i.style.transitionDuration="0ms")},onHide:function(){i&&y([i],"hidden")}}}};var $={clientX:0,clientY:0},q=[];function z(e){var t=e.clientX,n=e.clientY;$={clientX:t,clientY:n}}var J={name:"followCursor",defaultValue:!1,fn:function(e){var t=e.reference,n=w(e.props.triggerTarget||t),r=!1,o=!1,i=!0,a=e.props;function s(){return"initial"===e.props.followCursor&&e.state.isVisible}function u(){n.addEventListener("mousemove",f)}function c(){n.removeEventListener("mousemove",f)}function p(){r=!0,e.setProps({getReferenceClientRect:null}),r=!1}function f(n){var r=!n.target||t.contains(n.target),o=e.props.followCursor,i=n.clientX,a=n.clientY,s=t.getBoundingClientRect(),u=i-s.left,c=a-s.top;!r&&e.props.interactive||e.setProps({getReferenceClientRect:function(){var e=t.getBoundingClientRect(),n=i,r=a;"initial"===o&&(n=e.left+u,r=e.top+c);var s="horizontal"===o?e.top:r,p="vertical"===o?e.right:n,f="horizontal"===o?e.bottom:r,l="vertical"===o?e.left:n;return{width:p-l,height:f-s,top:s,right:p,bottom:f,left:l}}})}function l(){e.props.followCursor&&(q.push({instance:e,doc:n}),function(e){e.addEventListener("mousemove",z)}(n))}function d(){0===(q=q.filter((function(t){return t.instance!==e}))).filter((function(e){return e.doc===n})).length&&function(e){e.removeEventListener("mousemove",z)}(n)}return{onCreate:l,onDestroy:d,onBeforeUpdate:function(){a=e.props},onAfterUpdate:function(t,n){var i=n.followCursor;r||void 0!==i&&a.followCursor!==i&&(d(),i?(l(),!e.state.isMounted||o||s()||u()):(c(),p()))},onMount:function(){e.props.followCursor&&!o&&(i&&(f($),i=!1),s()||u())},onTrigger:function(e,t){m(t)&&($={clientX:t.clientX,clientY:t.clientY}),o="focus"===t.type},onHidden:function(){e.props.followCursor&&(p(),c(),i=!0)}}}};var G={name:"inlinePositioning",defaultValue:!1,fn:function(e){var t,n=e.reference;var r=-1,o=!1,i=[],a={name:"tippyInlinePositioning",enabled:!0,phase:"afterWrite",fn:function(o){var a=o.state;e.props.inlinePositioning&&(-1!==i.indexOf(a.placement)&&(i=[]),t!==a.placement&&-1===i.indexOf(a.placement)&&(i.push(a.placement),e.setProps({getReferenceClientRect:function(){return function(e){return function(e,t,n,r){if(n.length<2||null===e)return t;if(2===n.length&&r>=0&&n[0].left>n[1].right)return n[r]||t;switch(e){case"top":case"bottom":var o=n[0],i=n[n.length-1],a="top"===e,s=o.top,u=i.bottom,c=a?o.left:i.left,p=a?o.right:i.right;return{top:s,bottom:u,left:c,right:p,width:p-c,height:u-s};case"left":case"right":var f=Math.min.apply(Math,n.map((function(e){return e.left}))),l=Math.max.apply(Math,n.map((function(e){return e.right}))),d=n.filter((function(t){return"left"===e?t.left===f:t.right===l})),v=d[0].top,m=d[d.length-1].bottom;return{top:v,bottom:m,left:f,right:l,width:l-f,height:m-v};default:return t}}(p(e),n.getBoundingClientRect(),f(n.getClientRects()),r)}(a.placement)}})),t=a.placement)}};function s(){var t;o||(t=function(e,t){var n;return{popperOptions:Object.assign({},e.popperOptions,{modifiers:[].concat(((null==(n=e.popperOptions)?void 0:n.modifiers)||[]).filter((function(e){return e.name!==t.name})),[t])})}}(e.props,a),o=!0,e.setProps(t),o=!1)}return{onCreate:s,onAfterUpdate:s,onTrigger:function(t,n){if(m(n)){var o=f(e.reference.getClientRects()),i=o.find((function(e){return e.left-2<=n.clientX&&e.right+2>=n.clientX&&e.top-2<=n.clientY&&e.bottom+2>=n.clientY})),a=o.indexOf(i);r=a>-1?a:r}},onHidden:function(){r=-1}}}};var K={name:"sticky",defaultValue:!1,fn:function(e){var t=e.reference,n=e.popper;function r(t){return!0===e.props.sticky||e.props.sticky===t}var o=null,i=null;function a(){var s=r("reference")?(e.popperInstance?e.popperInstance.state.elements.reference:t).getBoundingClientRect():null,u=r("popper")?n.getBoundingClientRect():null;(s&&Q(o,s)||u&&Q(i,u))&&e.popperInstance&&e.popperInstance.update(),o=s,i=u,e.state.isMounted&&requestAnimationFrame(a)}return{onMount:function(){e.props.sticky&&a()}}}};function Q(e,t){return!e||!t||(e.top!==t.top||e.right!==t.right||e.bottom!==t.bottom||e.left!==t.left)}return F.setDefaultProps({plugins:[Y,J,G,K],render:N}),F.createSingleton=function(e,t){var n;void 0===t&&(t={});var r,o=e,i=[],a=[],c=t.overrides,p=[],f=!1;function l(){a=o.map((function(e){return u(e.props.triggerTarget||e.reference)})).reduce((function(e,t){return e.concat(t)}),[])}function v(){i=o.map((function(e){return e.reference}))}function m(e){o.forEach((function(t){e?t.enable():t.disable()}))}function g(e){return o.map((function(t){var n=t.setProps;return t.setProps=function(o){n(o),t.reference===r&&e.setProps(o)},function(){t.setProps=n}}))}function h(e,t){var n=a.indexOf(t);if(t!==r){r=t;var s=(c||[]).concat("content").reduce((function(e,t){return e[t]=o[n].props[t],e}),{});e.setProps(Object.assign({},s,{getReferenceClientRect:"function"==typeof s.getReferenceClientRect?s.getReferenceClientRect:function(){var e;return null==(e=i[n])?void 0:e.getBoundingClientRect()}}))}}m(!1),v(),l();var b={fn:function(){return{onDestroy:function(){m(!0)},onHidden:function(){r=null},onClickOutside:function(e){e.props.showOnCreate&&!f&&(f=!0,r=null)},onShow:function(e){e.props.showOnCreate&&!f&&(f=!0,h(e,i[0]))},onTrigger:function(e,t){h(e,t.currentTarget)}}}},y=F(d(),Object.assign({},s(t,["overrides"]),{plugins:[b].concat(t.plugins||[]),triggerTarget:a,popperOptions:Object.assign({},t.popperOptions,{modifiers:[].concat((null==(n=t.popperOptions)?void 0:n.modifiers)||[],[W])})})),w=y.show;y.show=function(e){if(w(),!r&&null==e)return h(y,i[0]);if(!r||null!=e){if("number"==typeof e)return i[e]&&h(y,i[e]);if(o.indexOf(e)>=0){var t=e.reference;return h(y,t)}return i.indexOf(e)>=0?h(y,e):void 0}},y.showNext=function(){var e=i[0];if(!r)return y.show(0);var t=i.indexOf(r);y.show(i[t+1]||e)},y.showPrevious=function(){var e=i[i.length-1];if(!r)return y.show(e);var t=i.indexOf(r),n=i[t-1]||e;y.show(n)};var E=y.setProps;return y.setProps=function(e){c=e.overrides||c,E(e)},y.setInstances=function(e){m(!0),p.forEach((function(e){return e()})),o=e,m(!1),v(),l(),p=g(y),y.setProps({triggerTarget:a})},p=g(y),y},F.delegate=function(e,n){var r=[],o=[],i=!1,a=n.target,c=s(n,["target"]),p=Object.assign({},c,{trigger:"manual",touch:!1}),f=Object.assign({touch:R.touch},c,{showOnCreate:!0}),l=F(e,p);function d(e){if(e.target&&!i){var t=e.target.closest(a);if(t){var r=t.getAttribute("data-tippy-trigger")||n.trigger||R.trigger;if(!t._tippy&&!("touchstart"===e.type&&"boolean"==typeof f.touch||"touchstart"!==e.type&&r.indexOf(X[e.type])<0)){var s=F(t,f);s&&(o=o.concat(s))}}}}function v(e,t,n,o){void 0===o&&(o=!1),e.addEventListener(t,n,o),r.push({node:e,eventType:t,handler:n,options:o})}return u(l).forEach((function(e){var n=e.destroy,a=e.enable,s=e.disable;e.destroy=function(e){void 0===e&&(e=!0),e&&o.forEach((function(e){e.destroy()})),o=[],r.forEach((function(e){var t=e.node,n=e.eventType,r=e.handler,o=e.options;t.removeEventListener(n,r,o)})),r=[],n()},e.enable=function(){a(),o.forEach((function(e){return e.enable()})),i=!1},e.disable=function(){s(),o.forEach((function(e){return e.disable()})),i=!0},function(e){var n=e.reference;v(n,"touchstart",d,t),v(n,"mouseover",d),v(n,"focusin",d),v(n,"click",d)}(e)})),l},F.hideAll=function(e){var t=void 0===e?{}:e,n=t.exclude,r=t.duration;U.forEach((function(e){var t=!1;if(n&&(t=g(n)?e.reference===n:e.popper===n.popper),!t){var o=e.props.duration;e.setProps({duration:r}),e.hide(),e.state.isDestroyed||e.setProps({duration:o})}}))},F.roundArrow='',F})); + From 3ec76dabd8232cd3fcad528309281e39ec822a6a Mon Sep 17 00:00:00 2001 From: Thomas Wutzler Date: Wed, 20 Aug 2025 10:18:18 +0200 Subject: [PATCH 21/21] remove test1_files causing spell-check errors --- .gitignore | 1 + .../fig-gapminder-output-1.svg | 42 - .../figure-commonmark/fig-limits-output-1.svg | 42 - ...p-0b8ec595872a4bdb2164ef456dcde0ad.min.css | 12 - .../libs/bootstrap/bootstrap-icons.css | 2078 ----------------- .../libs/bootstrap/bootstrap-icons.woff | Bin 176200 -> 0 bytes .../libs/bootstrap/bootstrap.min.js | 7 - .../libs/clipboard/clipboard.min.js | 7 - .../libs/quarto-html/anchor.min.js | 9 - .../libs/quarto-html/popper.min.js | 6 - ...hting-ea385d0e468b0dd5ea5bf0780b1290d9.css | 236 -- .../test1_files/libs/quarto-html/quarto.js | 845 ------- .../libs/quarto-html/tabsets/tabsets.js | 95 - .../test1_files/libs/quarto-html/tippy.css | 1 - .../libs/quarto-html/tippy.umd.min.js | 2 - 15 files changed, 1 insertion(+), 3382 deletions(-) delete mode 100644 docs/src/tutorials/test1_files/figure-commonmark/fig-gapminder-output-1.svg delete mode 100644 docs/src/tutorials/test1_files/figure-commonmark/fig-limits-output-1.svg delete mode 100644 docs/src/tutorials/test1_files/libs/bootstrap/bootstrap-0b8ec595872a4bdb2164ef456dcde0ad.min.css delete mode 100644 docs/src/tutorials/test1_files/libs/bootstrap/bootstrap-icons.css delete mode 100644 docs/src/tutorials/test1_files/libs/bootstrap/bootstrap-icons.woff delete mode 100644 docs/src/tutorials/test1_files/libs/bootstrap/bootstrap.min.js delete mode 100644 docs/src/tutorials/test1_files/libs/clipboard/clipboard.min.js delete mode 100644 docs/src/tutorials/test1_files/libs/quarto-html/anchor.min.js delete mode 100644 docs/src/tutorials/test1_files/libs/quarto-html/popper.min.js delete mode 100644 docs/src/tutorials/test1_files/libs/quarto-html/quarto-syntax-highlighting-ea385d0e468b0dd5ea5bf0780b1290d9.css delete mode 100644 docs/src/tutorials/test1_files/libs/quarto-html/quarto.js delete mode 100644 docs/src/tutorials/test1_files/libs/quarto-html/tabsets/tabsets.js delete mode 100644 docs/src/tutorials/test1_files/libs/quarto-html/tippy.css delete mode 100644 docs/src/tutorials/test1_files/libs/quarto-html/tippy.umd.min.js diff --git a/.gitignore b/.gitignore index ec6bf9a..1010547 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,7 @@ tmp/ **/tmp.svg dev/intermediate/* dev/tmp.pdf +docs/src/**/*_files/libs docs/src/**/*.html docs/src/**/*.ipynb docs/src/**/*Manifest.toml diff --git a/docs/src/tutorials/test1_files/figure-commonmark/fig-gapminder-output-1.svg b/docs/src/tutorials/test1_files/figure-commonmark/fig-gapminder-output-1.svg deleted file mode 100644 index b369147..0000000 --- a/docs/src/tutorials/test1_files/figure-commonmark/fig-gapminder-output-1.svg +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/src/tutorials/test1_files/figure-commonmark/fig-limits-output-1.svg b/docs/src/tutorials/test1_files/figure-commonmark/fig-limits-output-1.svg deleted file mode 100644 index 995ebff..0000000 --- a/docs/src/tutorials/test1_files/figure-commonmark/fig-limits-output-1.svg +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/src/tutorials/test1_files/libs/bootstrap/bootstrap-0b8ec595872a4bdb2164ef456dcde0ad.min.css b/docs/src/tutorials/test1_files/libs/bootstrap/bootstrap-0b8ec595872a4bdb2164ef456dcde0ad.min.css deleted file mode 100644 index 2396399..0000000 --- a/docs/src/tutorials/test1_files/libs/bootstrap/bootstrap-0b8ec595872a4bdb2164ef456dcde0ad.min.css +++ /dev/null @@ -1,12 +0,0 @@ -/*! - * Bootstrap v5.3.1 (https://getbootstrap.com/) - * Copyright 2011-2023 The Bootstrap Authors - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - */:root,[data-bs-theme=light]{--bs-blue: #0d6efd;--bs-indigo: #6610f2;--bs-purple: #6f42c1;--bs-pink: #d63384;--bs-red: #dc3545;--bs-orange: #fd7e14;--bs-yellow: #ffc107;--bs-green: #198754;--bs-teal: #20c997;--bs-cyan: #0dcaf0;--bs-black: #000;--bs-white: #ffffff;--bs-gray: #6c757d;--bs-gray-dark: #343a40;--bs-gray-100: #f8f9fa;--bs-gray-200: #e9ecef;--bs-gray-300: #dee2e6;--bs-gray-400: #ced4da;--bs-gray-500: #adb5bd;--bs-gray-600: #6c757d;--bs-gray-700: #495057;--bs-gray-800: #343a40;--bs-gray-900: #212529;--bs-default: #dee2e6;--bs-primary: #0d6efd;--bs-secondary: #6c757d;--bs-success: #198754;--bs-info: #0dcaf0;--bs-warning: #ffc107;--bs-danger: #dc3545;--bs-light: #f8f9fa;--bs-dark: #212529;--bs-default-rgb: 222, 226, 230;--bs-primary-rgb: 13, 110, 253;--bs-secondary-rgb: 108, 117, 125;--bs-success-rgb: 25, 135, 84;--bs-info-rgb: 13, 202, 240;--bs-warning-rgb: 255, 193, 7;--bs-danger-rgb: 220, 53, 69;--bs-light-rgb: 248, 249, 250;--bs-dark-rgb: 33, 37, 41;--bs-primary-text-emphasis: #052c65;--bs-secondary-text-emphasis: #2b2f32;--bs-success-text-emphasis: #0a3622;--bs-info-text-emphasis: #055160;--bs-warning-text-emphasis: #664d03;--bs-danger-text-emphasis: #58151c;--bs-light-text-emphasis: #495057;--bs-dark-text-emphasis: #495057;--bs-primary-bg-subtle: #cfe2ff;--bs-secondary-bg-subtle: #e2e3e5;--bs-success-bg-subtle: #d1e7dd;--bs-info-bg-subtle: #cff4fc;--bs-warning-bg-subtle: #fff3cd;--bs-danger-bg-subtle: #f8d7da;--bs-light-bg-subtle: #fcfcfd;--bs-dark-bg-subtle: #ced4da;--bs-primary-border-subtle: #9ec5fe;--bs-secondary-border-subtle: #c4c8cb;--bs-success-border-subtle: #a3cfbb;--bs-info-border-subtle: #9eeaf9;--bs-warning-border-subtle: #ffe69c;--bs-danger-border-subtle: #f1aeb5;--bs-light-border-subtle: #e9ecef;--bs-dark-border-subtle: #adb5bd;--bs-white-rgb: 255, 255, 255;--bs-black-rgb: 0, 0, 0;--bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-root-font-size: 17px;--bs-body-font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--bs-body-font-size:1rem;--bs-body-font-weight: 400;--bs-body-line-height: 1.5;--bs-body-color: #212529;--bs-body-color-rgb: 33, 37, 41;--bs-body-bg: #ffffff;--bs-body-bg-rgb: 255, 255, 255;--bs-emphasis-color: #000;--bs-emphasis-color-rgb: 0, 0, 0;--bs-secondary-color: rgba(33, 37, 41, 0.75);--bs-secondary-color-rgb: 33, 37, 41;--bs-secondary-bg: #e9ecef;--bs-secondary-bg-rgb: 233, 236, 239;--bs-tertiary-color: rgba(33, 37, 41, 0.5);--bs-tertiary-color-rgb: 33, 37, 41;--bs-tertiary-bg: #f8f9fa;--bs-tertiary-bg-rgb: 248, 249, 250;--bs-heading-color: inherit;--bs-link-color: #0d6efd;--bs-link-color-rgb: 13, 110, 253;--bs-link-decoration: underline;--bs-link-hover-color: #0a58ca;--bs-link-hover-color-rgb: 10, 88, 202;--bs-code-color: #7d12ba;--bs-highlight-bg: #fff3cd;--bs-border-width: 1px;--bs-border-style: solid;--bs-border-color: #dededf;--bs-border-color-translucent: rgba(0, 0, 0, 0.175);--bs-border-radius: 0.375rem;--bs-border-radius-sm: 0.25rem;--bs-border-radius-lg: 0.5rem;--bs-border-radius-xl: 1rem;--bs-border-radius-xxl: 2rem;--bs-border-radius-2xl: var(--bs-border-radius-xxl);--bs-border-radius-pill: 50rem;--bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175);--bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075);--bs-focus-ring-width: 0.25rem;--bs-focus-ring-opacity: 0.25;--bs-focus-ring-color: rgba(13, 110, 253, 0.25);--bs-form-valid-color: #198754;--bs-form-valid-border-color: #198754;--bs-form-invalid-color: #dc3545;--bs-form-invalid-border-color: #dc3545}[data-bs-theme=dark]{color-scheme:dark;--bs-body-color: #dee2e6;--bs-body-color-rgb: 222, 226, 230;--bs-body-bg: #212529;--bs-body-bg-rgb: 33, 37, 41;--bs-emphasis-color: #ffffff;--bs-emphasis-color-rgb: 255, 255, 255;--bs-secondary-color: rgba(222, 226, 230, 0.75);--bs-secondary-color-rgb: 222, 226, 230;--bs-secondary-bg: #343a40;--bs-secondary-bg-rgb: 52, 58, 64;--bs-tertiary-color: rgba(222, 226, 230, 0.5);--bs-tertiary-color-rgb: 222, 226, 230;--bs-tertiary-bg: #2b3035;--bs-tertiary-bg-rgb: 43, 48, 53;--bs-primary-text-emphasis: #6ea8fe;--bs-secondary-text-emphasis: #a7acb1;--bs-success-text-emphasis: #75b798;--bs-info-text-emphasis: #6edff6;--bs-warning-text-emphasis: #ffda6a;--bs-danger-text-emphasis: #ea868f;--bs-light-text-emphasis: #f8f9fa;--bs-dark-text-emphasis: #dee2e6;--bs-primary-bg-subtle: #031633;--bs-secondary-bg-subtle: #161719;--bs-success-bg-subtle: #051b11;--bs-info-bg-subtle: #032830;--bs-warning-bg-subtle: #332701;--bs-danger-bg-subtle: #2c0b0e;--bs-light-bg-subtle: #343a40;--bs-dark-bg-subtle: #1a1d20;--bs-primary-border-subtle: #084298;--bs-secondary-border-subtle: #41464b;--bs-success-border-subtle: #0f5132;--bs-info-border-subtle: #087990;--bs-warning-border-subtle: #997404;--bs-danger-border-subtle: #842029;--bs-light-border-subtle: #495057;--bs-dark-border-subtle: #343a40;--bs-heading-color: inherit;--bs-link-color: #6ea8fe;--bs-link-hover-color: #8bb9fe;--bs-link-color-rgb: 110, 168, 254;--bs-link-hover-color-rgb: 139, 185, 254;--bs-code-color: white;--bs-border-color: #495057;--bs-border-color-translucent: rgba(255, 255, 255, 0.15);--bs-form-valid-color: #75b798;--bs-form-valid-border-color: #75b798;--bs-form-invalid-color: #ea868f;--bs-form-invalid-border-color: #ea868f}*,*::before,*::after{box-sizing:border-box}:root{font-size:var(--bs-root-font-size)}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}hr{margin:1rem 0;color:inherit;border:0;border-top:1px solid;opacity:.25}h6,.h6,h5,.h5,h4,.h4,h3,.h3,h2,.h2,h1,.h1{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2;color:var(--bs-heading-color)}h1,.h1{font-size:calc(1.325rem + 0.9vw)}@media(min-width: 1200px){h1,.h1{font-size:2rem}}h2,.h2{font-size:calc(1.29rem + 0.48vw)}@media(min-width: 1200px){h2,.h2{font-size:1.65rem}}h3,.h3{font-size:calc(1.27rem + 0.24vw)}@media(min-width: 1200px){h3,.h3{font-size:1.45rem}}h4,.h4{font-size:1.25rem}h5,.h5{font-size:1.1rem}h6,.h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{text-decoration:underline dotted;-webkit-text-decoration:underline dotted;-moz-text-decoration:underline dotted;-ms-text-decoration:underline dotted;-o-text-decoration:underline dotted;cursor:help;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem;padding:.625rem 1.25rem;border-left:.25rem solid #e9ecef}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}b,strong{font-weight:bolder}small,.small{font-size:0.875em}mark,.mark{padding:.1875em;background-color:var(--bs-highlight-bg)}sub,sup{position:relative;font-size:0.75em;line-height:0;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}a{color:rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 1));text-decoration:underline;-webkit-text-decoration:underline;-moz-text-decoration:underline;-ms-text-decoration:underline;-o-text-decoration:underline}a:hover{--bs-link-color-rgb: var(--bs-link-hover-color-rgb)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:0.875em;color:#000;background-color:#f8f9fa;line-height:1.5;padding:.5rem;border:1px solid var(--bs-border-color, #dededf);border-radius:.375rem}pre code{background-color:rgba(0,0,0,0);font-size:inherit;color:inherit;word-break:normal}code{font-size:0.875em;color:var(--bs-code-color);background-color:#f8f9fa;border-radius:.375rem;padding:.125rem .25rem;word-wrap:break-word}a>code{color:inherit}kbd{padding:.4rem .4rem;font-size:0.875em;color:#fff;background-color:#212529;border-radius:.25rem}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:rgba(33,37,41,.75);text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}thead,tbody,tfoot,tr,td,th{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none !important}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button:not(:disabled),[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + 0.3vw);line-height:inherit}@media(min-width: 1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-text,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none !important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-6{font-size:2.5rem}}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:0.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:0.875em;color:#6c757d}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dededf;border-radius:.375rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:0.875em;color:rgba(33,37,41,.75)}.container,.container-fluid,.container-xxl,.container-xl,.container-lg,.container-md,.container-sm{--bs-gutter-x: 1.5rem;--bs-gutter-y: 0;width:100%;padding-right:calc(var(--bs-gutter-x)*.5);padding-left:calc(var(--bs-gutter-x)*.5);margin-right:auto;margin-left:auto}@media(min-width: 576px){.container-sm,.container{max-width:540px}}@media(min-width: 768px){.container-md,.container-sm,.container{max-width:720px}}@media(min-width: 992px){.container-lg,.container-md,.container-sm,.container{max-width:960px}}@media(min-width: 1200px){.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1140px}}@media(min-width: 1400px){.container-xxl,.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1320px}}body.quarto-light .dark-content{display:none}body.quarto-dark .light-content{display:none}:root{--bs-breakpoint-xs: 0;--bs-breakpoint-sm: 576px;--bs-breakpoint-md: 768px;--bs-breakpoint-lg: 992px;--bs-breakpoint-xl: 1200px;--bs-breakpoint-xxl: 1400px}.grid{display:grid;grid-template-rows:repeat(var(--bs-rows, 1), 1fr);grid-template-columns:repeat(var(--bs-columns, 12), 1fr);gap:var(--bs-gap, 1.5rem)}.grid .g-col-1{grid-column:auto/span 1}.grid .g-col-2{grid-column:auto/span 2}.grid .g-col-3{grid-column:auto/span 3}.grid .g-col-4{grid-column:auto/span 4}.grid .g-col-5{grid-column:auto/span 5}.grid .g-col-6{grid-column:auto/span 6}.grid .g-col-7{grid-column:auto/span 7}.grid .g-col-8{grid-column:auto/span 8}.grid .g-col-9{grid-column:auto/span 9}.grid .g-col-10{grid-column:auto/span 10}.grid .g-col-11{grid-column:auto/span 11}.grid .g-col-12{grid-column:auto/span 12}.grid .g-start-1{grid-column-start:1}.grid .g-start-2{grid-column-start:2}.grid .g-start-3{grid-column-start:3}.grid .g-start-4{grid-column-start:4}.grid .g-start-5{grid-column-start:5}.grid .g-start-6{grid-column-start:6}.grid .g-start-7{grid-column-start:7}.grid .g-start-8{grid-column-start:8}.grid .g-start-9{grid-column-start:9}.grid .g-start-10{grid-column-start:10}.grid .g-start-11{grid-column-start:11}@media(min-width: 576px){.grid .g-col-sm-1{grid-column:auto/span 1}.grid .g-col-sm-2{grid-column:auto/span 2}.grid .g-col-sm-3{grid-column:auto/span 3}.grid .g-col-sm-4{grid-column:auto/span 4}.grid .g-col-sm-5{grid-column:auto/span 5}.grid .g-col-sm-6{grid-column:auto/span 6}.grid .g-col-sm-7{grid-column:auto/span 7}.grid .g-col-sm-8{grid-column:auto/span 8}.grid .g-col-sm-9{grid-column:auto/span 9}.grid .g-col-sm-10{grid-column:auto/span 10}.grid .g-col-sm-11{grid-column:auto/span 11}.grid .g-col-sm-12{grid-column:auto/span 12}.grid .g-start-sm-1{grid-column-start:1}.grid .g-start-sm-2{grid-column-start:2}.grid .g-start-sm-3{grid-column-start:3}.grid .g-start-sm-4{grid-column-start:4}.grid .g-start-sm-5{grid-column-start:5}.grid .g-start-sm-6{grid-column-start:6}.grid .g-start-sm-7{grid-column-start:7}.grid .g-start-sm-8{grid-column-start:8}.grid .g-start-sm-9{grid-column-start:9}.grid .g-start-sm-10{grid-column-start:10}.grid .g-start-sm-11{grid-column-start:11}}@media(min-width: 768px){.grid .g-col-md-1{grid-column:auto/span 1}.grid .g-col-md-2{grid-column:auto/span 2}.grid .g-col-md-3{grid-column:auto/span 3}.grid .g-col-md-4{grid-column:auto/span 4}.grid .g-col-md-5{grid-column:auto/span 5}.grid .g-col-md-6{grid-column:auto/span 6}.grid .g-col-md-7{grid-column:auto/span 7}.grid .g-col-md-8{grid-column:auto/span 8}.grid .g-col-md-9{grid-column:auto/span 9}.grid .g-col-md-10{grid-column:auto/span 10}.grid .g-col-md-11{grid-column:auto/span 11}.grid .g-col-md-12{grid-column:auto/span 12}.grid .g-start-md-1{grid-column-start:1}.grid .g-start-md-2{grid-column-start:2}.grid .g-start-md-3{grid-column-start:3}.grid .g-start-md-4{grid-column-start:4}.grid .g-start-md-5{grid-column-start:5}.grid .g-start-md-6{grid-column-start:6}.grid .g-start-md-7{grid-column-start:7}.grid .g-start-md-8{grid-column-start:8}.grid .g-start-md-9{grid-column-start:9}.grid .g-start-md-10{grid-column-start:10}.grid .g-start-md-11{grid-column-start:11}}@media(min-width: 992px){.grid .g-col-lg-1{grid-column:auto/span 1}.grid .g-col-lg-2{grid-column:auto/span 2}.grid .g-col-lg-3{grid-column:auto/span 3}.grid .g-col-lg-4{grid-column:auto/span 4}.grid .g-col-lg-5{grid-column:auto/span 5}.grid .g-col-lg-6{grid-column:auto/span 6}.grid .g-col-lg-7{grid-column:auto/span 7}.grid .g-col-lg-8{grid-column:auto/span 8}.grid .g-col-lg-9{grid-column:auto/span 9}.grid .g-col-lg-10{grid-column:auto/span 10}.grid .g-col-lg-11{grid-column:auto/span 11}.grid .g-col-lg-12{grid-column:auto/span 12}.grid .g-start-lg-1{grid-column-start:1}.grid .g-start-lg-2{grid-column-start:2}.grid .g-start-lg-3{grid-column-start:3}.grid .g-start-lg-4{grid-column-start:4}.grid .g-start-lg-5{grid-column-start:5}.grid .g-start-lg-6{grid-column-start:6}.grid .g-start-lg-7{grid-column-start:7}.grid .g-start-lg-8{grid-column-start:8}.grid .g-start-lg-9{grid-column-start:9}.grid .g-start-lg-10{grid-column-start:10}.grid .g-start-lg-11{grid-column-start:11}}@media(min-width: 1200px){.grid .g-col-xl-1{grid-column:auto/span 1}.grid .g-col-xl-2{grid-column:auto/span 2}.grid .g-col-xl-3{grid-column:auto/span 3}.grid .g-col-xl-4{grid-column:auto/span 4}.grid .g-col-xl-5{grid-column:auto/span 5}.grid .g-col-xl-6{grid-column:auto/span 6}.grid .g-col-xl-7{grid-column:auto/span 7}.grid .g-col-xl-8{grid-column:auto/span 8}.grid .g-col-xl-9{grid-column:auto/span 9}.grid .g-col-xl-10{grid-column:auto/span 10}.grid .g-col-xl-11{grid-column:auto/span 11}.grid .g-col-xl-12{grid-column:auto/span 12}.grid .g-start-xl-1{grid-column-start:1}.grid .g-start-xl-2{grid-column-start:2}.grid .g-start-xl-3{grid-column-start:3}.grid .g-start-xl-4{grid-column-start:4}.grid .g-start-xl-5{grid-column-start:5}.grid .g-start-xl-6{grid-column-start:6}.grid .g-start-xl-7{grid-column-start:7}.grid .g-start-xl-8{grid-column-start:8}.grid .g-start-xl-9{grid-column-start:9}.grid .g-start-xl-10{grid-column-start:10}.grid .g-start-xl-11{grid-column-start:11}}@media(min-width: 1400px){.grid .g-col-xxl-1{grid-column:auto/span 1}.grid .g-col-xxl-2{grid-column:auto/span 2}.grid .g-col-xxl-3{grid-column:auto/span 3}.grid .g-col-xxl-4{grid-column:auto/span 4}.grid .g-col-xxl-5{grid-column:auto/span 5}.grid .g-col-xxl-6{grid-column:auto/span 6}.grid .g-col-xxl-7{grid-column:auto/span 7}.grid .g-col-xxl-8{grid-column:auto/span 8}.grid .g-col-xxl-9{grid-column:auto/span 9}.grid .g-col-xxl-10{grid-column:auto/span 10}.grid .g-col-xxl-11{grid-column:auto/span 11}.grid .g-col-xxl-12{grid-column:auto/span 12}.grid .g-start-xxl-1{grid-column-start:1}.grid .g-start-xxl-2{grid-column-start:2}.grid .g-start-xxl-3{grid-column-start:3}.grid .g-start-xxl-4{grid-column-start:4}.grid .g-start-xxl-5{grid-column-start:5}.grid .g-start-xxl-6{grid-column-start:6}.grid .g-start-xxl-7{grid-column-start:7}.grid .g-start-xxl-8{grid-column-start:8}.grid .g-start-xxl-9{grid-column-start:9}.grid .g-start-xxl-10{grid-column-start:10}.grid .g-start-xxl-11{grid-column-start:11}}.table{--bs-table-color-type: initial;--bs-table-bg-type: initial;--bs-table-color-state: initial;--bs-table-bg-state: initial;--bs-table-color: #212529;--bs-table-bg: #ffffff;--bs-table-border-color: #dededf;--bs-table-accent-bg: transparent;--bs-table-striped-color: #212529;--bs-table-striped-bg: rgba(0, 0, 0, 0.05);--bs-table-active-color: #212529;--bs-table-active-bg: rgba(0, 0, 0, 0.1);--bs-table-hover-color: #212529;--bs-table-hover-bg: rgba(0, 0, 0, 0.075);width:100%;margin-bottom:1rem;vertical-align:top;border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*{padding:.5rem .5rem;color:var(--bs-table-color-state, var(--bs-table-color-type, var(--bs-table-color)));background-color:var(--bs-table-bg);border-bottom-width:1px;box-shadow:inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg)))}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-top:calc(1px * 2) solid #909294}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:1px 0}.table-bordered>:not(caption)>*>*{border-width:0 1px}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-color-type: var(--bs-table-striped-color);--bs-table-bg-type: var(--bs-table-striped-bg)}.table-striped-columns>:not(caption)>tr>:nth-child(even){--bs-table-color-type: var(--bs-table-striped-color);--bs-table-bg-type: var(--bs-table-striped-bg)}.table-active{--bs-table-color-state: var(--bs-table-active-color);--bs-table-bg-state: var(--bs-table-active-bg)}.table-hover>tbody>tr:hover>*{--bs-table-color-state: var(--bs-table-hover-color);--bs-table-bg-state: var(--bs-table-hover-bg)}.table-primary{--bs-table-color: #000;--bs-table-bg: #cfe2ff;--bs-table-border-color: #bacbe6;--bs-table-striped-bg: #c5d7f2;--bs-table-striped-color: #000;--bs-table-active-bg: #bacbe6;--bs-table-active-color: #000;--bs-table-hover-bg: #bfd1ec;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-secondary{--bs-table-color: #000;--bs-table-bg: #e2e3e5;--bs-table-border-color: #cbccce;--bs-table-striped-bg: #d7d8da;--bs-table-striped-color: #000;--bs-table-active-bg: #cbccce;--bs-table-active-color: #000;--bs-table-hover-bg: #d1d2d4;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-success{--bs-table-color: #000;--bs-table-bg: #d1e7dd;--bs-table-border-color: #bcd0c7;--bs-table-striped-bg: #c7dbd2;--bs-table-striped-color: #000;--bs-table-active-bg: #bcd0c7;--bs-table-active-color: #000;--bs-table-hover-bg: #c1d6cc;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-info{--bs-table-color: #000;--bs-table-bg: #cff4fc;--bs-table-border-color: #badce3;--bs-table-striped-bg: #c5e8ef;--bs-table-striped-color: #000;--bs-table-active-bg: #badce3;--bs-table-active-color: #000;--bs-table-hover-bg: #bfe2e9;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-warning{--bs-table-color: #000;--bs-table-bg: #fff3cd;--bs-table-border-color: #e6dbb9;--bs-table-striped-bg: #f2e7c3;--bs-table-striped-color: #000;--bs-table-active-bg: #e6dbb9;--bs-table-active-color: #000;--bs-table-hover-bg: #ece1be;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-danger{--bs-table-color: #000;--bs-table-bg: #f8d7da;--bs-table-border-color: #dfc2c4;--bs-table-striped-bg: #eccccf;--bs-table-striped-color: #000;--bs-table-active-bg: #dfc2c4;--bs-table-active-color: #000;--bs-table-hover-bg: #e5c7ca;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-light{--bs-table-color: #000;--bs-table-bg: #f8f9fa;--bs-table-border-color: #dfe0e1;--bs-table-striped-bg: #ecedee;--bs-table-striped-color: #000;--bs-table-active-bg: #dfe0e1;--bs-table-active-color: #000;--bs-table-hover-bg: #e5e6e7;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-dark{--bs-table-color: #ffffff;--bs-table-bg: #212529;--bs-table-border-color: #373b3e;--bs-table-striped-bg: #2c3034;--bs-table-striped-color: #ffffff;--bs-table-active-bg: #373b3e;--bs-table-active-color: #ffffff;--bs-table-hover-bg: #323539;--bs-table-hover-color: #ffffff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media(max-width: 575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label,.shiny-input-container .control-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(0.375rem + 1px);padding-bottom:calc(0.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(0.5rem + 1px);padding-bottom:calc(0.5rem + 1px);font-size:1.25rem}.col-form-label-sm{padding-top:calc(0.25rem + 1px);padding-bottom:calc(0.25rem + 1px);font-size:0.875rem}.form-text{margin-top:.25rem;font-size:0.875em;color:rgba(33,37,41,.75)}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:#fff;background-clip:padding-box;border:1px solid #dededf;border-radius:.375rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:#212529;background-color:#fff;border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-control::-webkit-date-and-time-value{min-width:85px;height:1.5em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::placeholder{color:rgba(33,37,41,.75);opacity:1}.form-control:disabled{background-color:#e9ecef;opacity:1}.form-control::file-selector-button{padding:.375rem .75rem;margin:-0.375rem -0.75rem;margin-inline-end:.75rem;color:#212529;background-color:#f8f9fa;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#e9ecef}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:#212529;background-color:rgba(0,0,0,0);border:solid rgba(0,0,0,0);border-width:1px 0}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + 0.5rem + calc(1px * 2));padding:.25rem .5rem;font-size:0.875rem;border-radius:.25rem}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-0.25rem -0.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + calc(1px * 2));padding:.5rem 1rem;font-size:1.25rem;border-radius:.5rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-0.5rem -1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + 0.75rem + calc(1px * 2))}textarea.form-control-sm{min-height:calc(1.5em + 0.5rem + calc(1px * 2))}textarea.form-control-lg{min-height:calc(1.5em + 1rem + calc(1px * 2))}.form-control-color{width:3rem;height:calc(1.5em + 0.75rem + calc(1px * 2));padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0 !important;border-radius:.375rem}.form-control-color::-webkit-color-swatch{border:0 !important;border-radius:.375rem}.form-control-color.form-control-sm{height:calc(1.5em + 0.5rem + calc(1px * 2))}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + calc(1px * 2))}.form-select{--bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:#fff;background-image:var(--bs-form-select-bg-img),var(--bs-form-select-bg-icon, none);background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:1px solid #dededf;border-radius:.375rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-select{transition:none}}.form-select:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:#e9ecef}.form-select:-moz-focusring{color:rgba(0,0,0,0);text-shadow:0 0 0 #212529}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:0.875rem;border-radius:.25rem}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:.5rem}[data-bs-theme=dark] .form-select{--bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}.form-check,.shiny-input-container .checkbox,.shiny-input-container .radio{display:block;min-height:1.5rem;padding-left:0;margin-bottom:.125rem}.form-check .form-check-input,.form-check .shiny-input-container .checkbox input,.form-check .shiny-input-container .radio input,.shiny-input-container .checkbox .form-check-input,.shiny-input-container .checkbox .shiny-input-container .checkbox input,.shiny-input-container .checkbox .shiny-input-container .radio input,.shiny-input-container .radio .form-check-input,.shiny-input-container .radio .shiny-input-container .checkbox input,.shiny-input-container .radio .shiny-input-container .radio input{float:left;margin-left:0}.form-check-reverse{padding-right:0;padding-left:0;text-align:right}.form-check-reverse .form-check-input{float:right;margin-right:0;margin-left:0}.form-check-input,.shiny-input-container .checkbox input,.shiny-input-container .checkbox-inline input,.shiny-input-container .radio input,.shiny-input-container .radio-inline input{--bs-form-check-bg: #ffffff;width:1em;height:1em;margin-top:.25em;vertical-align:top;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:var(--bs-form-check-bg);background-image:var(--bs-form-check-bg-image);background-repeat:no-repeat;background-position:center;background-size:contain;border:1px solid #dededf;print-color-adjust:exact}.form-check-input[type=checkbox],.shiny-input-container .checkbox input[type=checkbox],.shiny-input-container .checkbox-inline input[type=checkbox],.shiny-input-container .radio input[type=checkbox],.shiny-input-container .radio-inline input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio],.shiny-input-container .checkbox input[type=radio],.shiny-input-container .checkbox-inline input[type=radio],.shiny-input-container .radio input[type=radio],.shiny-input-container .radio-inline input[type=radio]{border-radius:50%}.form-check-input:active,.shiny-input-container .checkbox input:active,.shiny-input-container .checkbox-inline input:active,.shiny-input-container .radio input:active,.shiny-input-container .radio-inline input:active{filter:brightness(90%)}.form-check-input:focus,.shiny-input-container .checkbox input:focus,.shiny-input-container .checkbox-inline input:focus,.shiny-input-container .radio input:focus,.shiny-input-container .radio-inline input:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-check-input:checked,.shiny-input-container .checkbox input:checked,.shiny-input-container .checkbox-inline input:checked,.shiny-input-container .radio input:checked,.shiny-input-container .radio-inline input:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check-input:checked[type=checkbox],.shiny-input-container .checkbox input:checked[type=checkbox],.shiny-input-container .checkbox-inline input:checked[type=checkbox],.shiny-input-container .radio input:checked[type=checkbox],.shiny-input-container .radio-inline input:checked[type=checkbox]{--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio],.shiny-input-container .checkbox input:checked[type=radio],.shiny-input-container .checkbox-inline input:checked[type=radio],.shiny-input-container .radio input:checked[type=radio],.shiny-input-container .radio-inline input:checked[type=radio]{--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23ffffff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate,.shiny-input-container .checkbox input[type=checkbox]:indeterminate,.shiny-input-container .checkbox-inline input[type=checkbox]:indeterminate,.shiny-input-container .radio input[type=checkbox]:indeterminate,.shiny-input-container .radio-inline input[type=checkbox]:indeterminate{background-color:#0d6efd;border-color:#0d6efd;--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled,.shiny-input-container .checkbox input:disabled,.shiny-input-container .checkbox-inline input:disabled,.shiny-input-container .radio input:disabled,.shiny-input-container .radio-inline input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input[disabled]~.form-check-label,.form-check-input[disabled]~span,.form-check-input:disabled~.form-check-label,.form-check-input:disabled~span,.shiny-input-container .checkbox input[disabled]~.form-check-label,.shiny-input-container .checkbox input[disabled]~span,.shiny-input-container .checkbox input:disabled~.form-check-label,.shiny-input-container .checkbox input:disabled~span,.shiny-input-container .checkbox-inline input[disabled]~.form-check-label,.shiny-input-container .checkbox-inline input[disabled]~span,.shiny-input-container .checkbox-inline input:disabled~.form-check-label,.shiny-input-container .checkbox-inline input:disabled~span,.shiny-input-container .radio input[disabled]~.form-check-label,.shiny-input-container .radio input[disabled]~span,.shiny-input-container .radio input:disabled~.form-check-label,.shiny-input-container .radio input:disabled~span,.shiny-input-container .radio-inline input[disabled]~.form-check-label,.shiny-input-container .radio-inline input[disabled]~span,.shiny-input-container .radio-inline input:disabled~.form-check-label,.shiny-input-container .radio-inline input:disabled~span{cursor:default;opacity:.5}.form-check-label,.shiny-input-container .checkbox label,.shiny-input-container .checkbox-inline label,.shiny-input-container .radio label,.shiny-input-container .radio-inline label{cursor:pointer}.form-switch{padding-left:2.5em}.form-switch .form-check-input{--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");width:2em;margin-left:-2.5em;background-image:var(--bs-form-switch-bg);background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23ffffff'/%3e%3c/svg%3e")}.form-switch.form-check-reverse{padding-right:2.5em;padding-left:0}.form-switch.form-check-reverse .form-check-input{margin-right:-2.5em;margin-left:0}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.btn-check[disabled]+.btn,.btn-check:disabled+.btn{pointer-events:none;filter:none;opacity:.65}[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus){--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e")}.form-range{width:100%;height:1.5rem;padding:0;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:rgba(0,0,0,0)}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-0.25rem;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-range::-webkit-slider-thumb{transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:rgba(0,0,0,0);cursor:pointer;background-color:#f8f9fa;border-color:rgba(0,0,0,0);border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-range::-moz-range-thumb{transition:none}}.form-range::-moz-range-thumb:active{background-color:#b6d4fe}.form-range::-moz-range-track{width:100%;height:.5rem;color:rgba(0,0,0,0);cursor:pointer;background-color:#f8f9fa;border-color:rgba(0,0,0,0);border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:rgba(33,37,41,.75)}.form-range:disabled::-moz-range-thumb{background-color:rgba(33,37,41,.75)}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + calc(1px * 2));min-height:calc(3.5rem + calc(1px * 2));line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;z-index:2;height:100%;padding:1rem .75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:1px solid rgba(0,0,0,0);transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media(prefers-reduced-motion: reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem .75rem}.form-floating>.form-control::placeholder,.form-floating>.form-control-plaintext::placeholder{color:rgba(0,0,0,0)}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown),.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill,.form-floating>.form-control-plaintext:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-control-plaintext~label,.form-floating>.form-select~label{color:rgba(var(--bs-body-color-rgb), 0.65);transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.form-floating>.form-control:focus~label::after,.form-floating>.form-control:not(:placeholder-shown)~label::after,.form-floating>.form-control-plaintext~label::after,.form-floating>.form-select~label::after{position:absolute;inset:1rem .375rem;z-index:-1;height:1.5em;content:"";background-color:#fff;border-radius:.375rem}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--bs-body-color-rgb), 0.65);transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.form-floating>.form-control-plaintext~label{border-width:1px 0}.form-floating>:disabled~label,.form-floating>.form-control:disabled~label{color:#6c757d}.form-floating>:disabled~label::after,.form-floating>.form-control:disabled~label::after{background-color:#e9ecef}.input-group{position:relative;display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;align-items:stretch;-webkit-align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select,.input-group>.form-floating{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus,.input-group>.form-floating:focus-within{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:5}.input-group-text{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:center;white-space:nowrap;background-color:#f8f9fa;border:1px solid #dededf;border-radius:.375rem}.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text,.input-group-lg>.btn{padding:.5rem 1rem;font-size:1.25rem;border-radius:.5rem}.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text,.input-group-sm>.btn{padding:.25rem .5rem;font-size:0.875rem;border-radius:.25rem}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:calc(1px * -1);border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:0.875em;color:#198754}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:0.875rem;color:#fff;background-color:#198754;border-radius:.375rem}.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip,.is-valid~.valid-feedback,.is-valid~.valid-tooltip{display:block}.was-validated .form-control:valid,.form-control.is-valid{border-color:#198754;padding-right:calc(1.5em + 0.75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(0.375em + 0.1875rem) center;background-size:calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:#198754;box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + 0.75rem);background-position:top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem)}.was-validated .form-select:valid,.form-select.is-valid{border-color:#198754}.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"],.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"]{--bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-select:valid:focus,.form-select.is-valid:focus{border-color:#198754;box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.was-validated .form-control-color:valid,.form-control-color.is-valid{width:calc(3rem + calc(1.5em + 0.75rem))}.was-validated .form-check-input:valid,.form-check-input.is-valid{border-color:#198754}.was-validated .form-check-input:valid:checked,.form-check-input.is-valid:checked{background-color:#198754}.was-validated .form-check-input:valid:focus,.form-check-input.is-valid:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:#198754}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.was-validated .input-group>.form-control:not(:focus):valid,.input-group>.form-control:not(:focus).is-valid,.was-validated .input-group>.form-select:not(:focus):valid,.input-group>.form-select:not(:focus).is-valid,.was-validated .input-group>.form-floating:not(:focus-within):valid,.input-group>.form-floating:not(:focus-within).is-valid{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:0.875em;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:0.875rem;color:#fff;background-color:#dc3545;border-radius:.375rem}.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip,.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip{display:block}.was-validated .form-control:invalid,.form-control.is-invalid{border-color:#dc3545;padding-right:calc(1.5em + 0.75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(0.375em + 0.1875rem) center;background-size:calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + 0.75rem);background-position:top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem)}.was-validated .form-select:invalid,.form-select.is-invalid{border-color:#dc3545}.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"],.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"]{--bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-select:invalid:focus,.form-select.is-invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.was-validated .form-control-color:invalid,.form-control-color.is-invalid{width:calc(3rem + calc(1.5em + 0.75rem))}.was-validated .form-check-input:invalid,.form-check-input.is-invalid{border-color:#dc3545}.was-validated .form-check-input:invalid:checked,.form-check-input.is-invalid:checked{background-color:#dc3545}.was-validated .form-check-input:invalid:focus,.form-check-input.is-invalid:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label{color:#dc3545}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.was-validated .input-group>.form-control:not(:focus):invalid,.input-group>.form-control:not(:focus).is-invalid,.was-validated .input-group>.form-select:not(:focus):invalid,.input-group>.form-select:not(:focus).is-invalid,.was-validated .input-group>.form-floating:not(:focus-within):invalid,.input-group>.form-floating:not(:focus-within).is-invalid{z-index:4}.btn{--bs-btn-padding-x: 0.75rem;--bs-btn-padding-y: 0.375rem;--bs-btn-font-family: ;--bs-btn-font-size:1rem;--bs-btn-font-weight: 400;--bs-btn-line-height: 1.5;--bs-btn-color: #212529;--bs-btn-bg: transparent;--bs-btn-border-width: 1px;--bs-btn-border-color: transparent;--bs-btn-border-radius: 0.375rem;--bs-btn-hover-border-color: transparent;--bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);--bs-btn-disabled-opacity: 0.65;--bs-btn-focus-box-shadow: 0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);display:inline-block;padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);color:var(--bs-btn-color);text-align:center;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;vertical-align:middle;cursor:pointer;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);background-color:var(--bs-btn-bg);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.btn{transition:none}}.btn:hover{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color)}.btn-check+.btn:hover{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color)}.btn:focus-visible{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:focus-visible+.btn{border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked+.btn,:not(.btn-check)+.btn:active,.btn:first-child:active,.btn.active,.btn.show{color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg);border-color:var(--bs-btn-active-border-color)}.btn-check:checked+.btn:focus-visible,:not(.btn-check)+.btn:active:focus-visible,.btn:first-child:active:focus-visible,.btn.active:focus-visible,.btn.show:focus-visible{box-shadow:var(--bs-btn-focus-box-shadow)}.btn:disabled,.btn.disabled,fieldset:disabled .btn{color:var(--bs-btn-disabled-color);pointer-events:none;background-color:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);opacity:var(--bs-btn-disabled-opacity)}.btn-default{--bs-btn-color: #000;--bs-btn-bg: #dee2e6;--bs-btn-border-color: #dee2e6;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #e3e6ea;--bs-btn-hover-border-color: #e1e5e9;--bs-btn-focus-shadow-rgb: 189, 192, 196;--bs-btn-active-color: #000;--bs-btn-active-bg: #e5e8eb;--bs-btn-active-border-color: #e1e5e9;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #dee2e6;--bs-btn-disabled-border-color: #dee2e6}.btn-primary{--bs-btn-color: #ffffff;--bs-btn-bg: #0d6efd;--bs-btn-border-color: #0d6efd;--bs-btn-hover-color: #ffffff;--bs-btn-hover-bg: #0b5ed7;--bs-btn-hover-border-color: #0a58ca;--bs-btn-focus-shadow-rgb: 49, 132, 253;--bs-btn-active-color: #ffffff;--bs-btn-active-bg: #0a58ca;--bs-btn-active-border-color: #0a53be;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #ffffff;--bs-btn-disabled-bg: #0d6efd;--bs-btn-disabled-border-color: #0d6efd}.btn-secondary{--bs-btn-color: #ffffff;--bs-btn-bg: #6c757d;--bs-btn-border-color: #6c757d;--bs-btn-hover-color: #ffffff;--bs-btn-hover-bg: #5c636a;--bs-btn-hover-border-color: #565e64;--bs-btn-focus-shadow-rgb: 130, 138, 145;--bs-btn-active-color: #ffffff;--bs-btn-active-bg: #565e64;--bs-btn-active-border-color: #51585e;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #ffffff;--bs-btn-disabled-bg: #6c757d;--bs-btn-disabled-border-color: #6c757d}.btn-success{--bs-btn-color: #ffffff;--bs-btn-bg: #198754;--bs-btn-border-color: #198754;--bs-btn-hover-color: #ffffff;--bs-btn-hover-bg: #157347;--bs-btn-hover-border-color: #146c43;--bs-btn-focus-shadow-rgb: 60, 153, 110;--bs-btn-active-color: #ffffff;--bs-btn-active-bg: #146c43;--bs-btn-active-border-color: #13653f;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #ffffff;--bs-btn-disabled-bg: #198754;--bs-btn-disabled-border-color: #198754}.btn-info{--bs-btn-color: #000;--bs-btn-bg: #0dcaf0;--bs-btn-border-color: #0dcaf0;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #31d2f2;--bs-btn-hover-border-color: #25cff2;--bs-btn-focus-shadow-rgb: 11, 172, 204;--bs-btn-active-color: #000;--bs-btn-active-bg: #3dd5f3;--bs-btn-active-border-color: #25cff2;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #0dcaf0;--bs-btn-disabled-border-color: #0dcaf0}.btn-warning{--bs-btn-color: #000;--bs-btn-bg: #ffc107;--bs-btn-border-color: #ffc107;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ffca2c;--bs-btn-hover-border-color: #ffc720;--bs-btn-focus-shadow-rgb: 217, 164, 6;--bs-btn-active-color: #000;--bs-btn-active-bg: #ffcd39;--bs-btn-active-border-color: #ffc720;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #ffc107;--bs-btn-disabled-border-color: #ffc107}.btn-danger{--bs-btn-color: #ffffff;--bs-btn-bg: #dc3545;--bs-btn-border-color: #dc3545;--bs-btn-hover-color: #ffffff;--bs-btn-hover-bg: #bb2d3b;--bs-btn-hover-border-color: #b02a37;--bs-btn-focus-shadow-rgb: 225, 83, 97;--bs-btn-active-color: #ffffff;--bs-btn-active-bg: #b02a37;--bs-btn-active-border-color: #a52834;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #ffffff;--bs-btn-disabled-bg: #dc3545;--bs-btn-disabled-border-color: #dc3545}.btn-light{--bs-btn-color: #000;--bs-btn-bg: #f8f9fa;--bs-btn-border-color: #f8f9fa;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #d3d4d5;--bs-btn-hover-border-color: #c6c7c8;--bs-btn-focus-shadow-rgb: 211, 212, 213;--bs-btn-active-color: #000;--bs-btn-active-bg: #c6c7c8;--bs-btn-active-border-color: #babbbc;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #f8f9fa;--bs-btn-disabled-border-color: #f8f9fa}.btn-dark{--bs-btn-color: #ffffff;--bs-btn-bg: #212529;--bs-btn-border-color: #212529;--bs-btn-hover-color: #ffffff;--bs-btn-hover-bg: #424649;--bs-btn-hover-border-color: #373b3e;--bs-btn-focus-shadow-rgb: 66, 70, 73;--bs-btn-active-color: #ffffff;--bs-btn-active-bg: #4d5154;--bs-btn-active-border-color: #373b3e;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #ffffff;--bs-btn-disabled-bg: #212529;--bs-btn-disabled-border-color: #212529}.btn-outline-default{--bs-btn-color: #dee2e6;--bs-btn-border-color: #dee2e6;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #dee2e6;--bs-btn-hover-border-color: #dee2e6;--bs-btn-focus-shadow-rgb: 222, 226, 230;--bs-btn-active-color: #000;--bs-btn-active-bg: #dee2e6;--bs-btn-active-border-color: #dee2e6;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #dee2e6;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #dee2e6;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-primary{--bs-btn-color: #0d6efd;--bs-btn-border-color: #0d6efd;--bs-btn-hover-color: #ffffff;--bs-btn-hover-bg: #0d6efd;--bs-btn-hover-border-color: #0d6efd;--bs-btn-focus-shadow-rgb: 13, 110, 253;--bs-btn-active-color: #ffffff;--bs-btn-active-bg: #0d6efd;--bs-btn-active-border-color: #0d6efd;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #0d6efd;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #0d6efd;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-secondary{--bs-btn-color: #6c757d;--bs-btn-border-color: #6c757d;--bs-btn-hover-color: #ffffff;--bs-btn-hover-bg: #6c757d;--bs-btn-hover-border-color: #6c757d;--bs-btn-focus-shadow-rgb: 108, 117, 125;--bs-btn-active-color: #ffffff;--bs-btn-active-bg: #6c757d;--bs-btn-active-border-color: #6c757d;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #6c757d;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #6c757d;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-success{--bs-btn-color: #198754;--bs-btn-border-color: #198754;--bs-btn-hover-color: #ffffff;--bs-btn-hover-bg: #198754;--bs-btn-hover-border-color: #198754;--bs-btn-focus-shadow-rgb: 25, 135, 84;--bs-btn-active-color: #ffffff;--bs-btn-active-bg: #198754;--bs-btn-active-border-color: #198754;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #198754;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #198754;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-info{--bs-btn-color: #0dcaf0;--bs-btn-border-color: #0dcaf0;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #0dcaf0;--bs-btn-hover-border-color: #0dcaf0;--bs-btn-focus-shadow-rgb: 13, 202, 240;--bs-btn-active-color: #000;--bs-btn-active-bg: #0dcaf0;--bs-btn-active-border-color: #0dcaf0;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #0dcaf0;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #0dcaf0;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-warning{--bs-btn-color: #ffc107;--bs-btn-border-color: #ffc107;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ffc107;--bs-btn-hover-border-color: #ffc107;--bs-btn-focus-shadow-rgb: 255, 193, 7;--bs-btn-active-color: #000;--bs-btn-active-bg: #ffc107;--bs-btn-active-border-color: #ffc107;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #ffc107;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #ffc107;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-danger{--bs-btn-color: #dc3545;--bs-btn-border-color: #dc3545;--bs-btn-hover-color: #ffffff;--bs-btn-hover-bg: #dc3545;--bs-btn-hover-border-color: #dc3545;--bs-btn-focus-shadow-rgb: 220, 53, 69;--bs-btn-active-color: #ffffff;--bs-btn-active-bg: #dc3545;--bs-btn-active-border-color: #dc3545;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #dc3545;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #dc3545;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-light{--bs-btn-color: #f8f9fa;--bs-btn-border-color: #f8f9fa;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #f8f9fa;--bs-btn-hover-border-color: #f8f9fa;--bs-btn-focus-shadow-rgb: 248, 249, 250;--bs-btn-active-color: #000;--bs-btn-active-bg: #f8f9fa;--bs-btn-active-border-color: #f8f9fa;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #f8f9fa;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #f8f9fa;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-dark{--bs-btn-color: #212529;--bs-btn-border-color: #212529;--bs-btn-hover-color: #ffffff;--bs-btn-hover-bg: #212529;--bs-btn-hover-border-color: #212529;--bs-btn-focus-shadow-rgb: 33, 37, 41;--bs-btn-active-color: #ffffff;--bs-btn-active-bg: #212529;--bs-btn-active-border-color: #212529;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #212529;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #212529;--bs-btn-bg: transparent;--bs-gradient: none}.btn-link{--bs-btn-font-weight: 400;--bs-btn-color: #0d6efd;--bs-btn-bg: transparent;--bs-btn-border-color: transparent;--bs-btn-hover-color: #0a58ca;--bs-btn-hover-border-color: transparent;--bs-btn-active-color: #0a58ca;--bs-btn-active-border-color: transparent;--bs-btn-disabled-color: #6c757d;--bs-btn-disabled-border-color: transparent;--bs-btn-box-shadow: 0 0 0 #000;--bs-btn-focus-shadow-rgb: 49, 132, 253;text-decoration:underline;-webkit-text-decoration:underline;-moz-text-decoration:underline;-ms-text-decoration:underline;-o-text-decoration:underline}.btn-link:focus-visible{color:var(--bs-btn-color)}.btn-link:hover{color:var(--bs-btn-hover-color)}.btn-lg,.btn-group-lg>.btn{--bs-btn-padding-y: 0.5rem;--bs-btn-padding-x: 1rem;--bs-btn-font-size:1.25rem;--bs-btn-border-radius: 0.5rem}.btn-sm,.btn-group-sm>.btn{--bs-btn-padding-y: 0.25rem;--bs-btn-padding-x: 0.5rem;--bs-btn-font-size:0.875rem;--bs-btn-border-radius: 0.25rem}.fade{transition:opacity .15s linear}@media(prefers-reduced-motion: reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .2s ease}@media(prefers-reduced-motion: reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media(prefers-reduced-motion: reduce){.collapsing.collapse-horizontal{transition:none}}.dropup,.dropend,.dropdown,.dropstart,.dropup-center,.dropdown-center{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid rgba(0,0,0,0);border-bottom:0;border-left:.3em solid rgba(0,0,0,0)}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{--bs-dropdown-zindex: 1000;--bs-dropdown-min-width: 10rem;--bs-dropdown-padding-x: 0;--bs-dropdown-padding-y: 0.5rem;--bs-dropdown-spacer: 0.125rem;--bs-dropdown-font-size:1rem;--bs-dropdown-color: #212529;--bs-dropdown-bg: #ffffff;--bs-dropdown-border-color: rgba(0, 0, 0, 0.175);--bs-dropdown-border-radius: 0.375rem;--bs-dropdown-border-width: 1px;--bs-dropdown-inner-border-radius: calc(0.375rem - 1px);--bs-dropdown-divider-bg: rgba(0, 0, 0, 0.175);--bs-dropdown-divider-margin-y: 0.5rem;--bs-dropdown-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-dropdown-link-color: #212529;--bs-dropdown-link-hover-color: #212529;--bs-dropdown-link-hover-bg: #f8f9fa;--bs-dropdown-link-active-color: #ffffff;--bs-dropdown-link-active-bg: #0d6efd;--bs-dropdown-link-disabled-color: rgba(33, 37, 41, 0.5);--bs-dropdown-item-padding-x: 1rem;--bs-dropdown-item-padding-y: 0.25rem;--bs-dropdown-header-color: #6c757d;--bs-dropdown-header-padding-x: 1rem;--bs-dropdown-header-padding-y: 0.5rem;position:absolute;z-index:var(--bs-dropdown-zindex);display:none;min-width:var(--bs-dropdown-min-width);padding:var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);margin:0;font-size:var(--bs-dropdown-font-size);color:var(--bs-dropdown-color);text-align:left;list-style:none;background-color:var(--bs-dropdown-bg);background-clip:padding-box;border:var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);border-radius:var(--bs-dropdown-border-radius)}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:var(--bs-dropdown-spacer)}.dropdown-menu-start{--bs-position: start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position: end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media(min-width: 576px){.dropdown-menu-sm-start{--bs-position: start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position: end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 768px){.dropdown-menu-md-start{--bs-position: start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position: end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 992px){.dropdown-menu-lg-start{--bs-position: start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position: end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 1200px){.dropdown-menu-xl-start{--bs-position: start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position: end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 1400px){.dropdown-menu-xxl-start{--bs-position: start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position: end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--bs-dropdown-spacer)}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid rgba(0,0,0,0);border-bottom:.3em solid;border-left:.3em solid rgba(0,0,0,0)}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:var(--bs-dropdown-spacer)}.dropend .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid rgba(0,0,0,0);border-right:0;border-bottom:.3em solid rgba(0,0,0,0);border-left:.3em solid}.dropend .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:var(--bs-dropdown-spacer)}.dropstart .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid rgba(0,0,0,0);border-right:.3em solid;border-bottom:.3em solid rgba(0,0,0,0)}.dropstart .dropdown-toggle:empty::after{margin-left:0}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:var(--bs-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--bs-dropdown-divider-bg);opacity:1}.dropdown-item{display:block;width:100%;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--bs-dropdown-link-color);text-align:inherit;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;white-space:nowrap;background-color:rgba(0,0,0,0);border:0;border-radius:var(--bs-dropdown-item-border-radius, 0)}.dropdown-item:hover,.dropdown-item:focus{color:var(--bs-dropdown-link-hover-color);background-color:var(--bs-dropdown-link-hover-bg)}.dropdown-item.active,.dropdown-item:active{color:var(--bs-dropdown-link-active-color);text-decoration:none;background-color:var(--bs-dropdown-link-active-bg)}.dropdown-item.disabled,.dropdown-item:disabled{color:var(--bs-dropdown-link-disabled-color);pointer-events:none;background-color:rgba(0,0,0,0)}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);margin-bottom:0;font-size:0.875rem;color:var(--bs-dropdown-header-color);white-space:nowrap}.dropdown-item-text{display:block;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);color:var(--bs-dropdown-link-color)}.dropdown-menu-dark{--bs-dropdown-color: #dee2e6;--bs-dropdown-bg: #343a40;--bs-dropdown-border-color: rgba(0, 0, 0, 0.175);--bs-dropdown-box-shadow: ;--bs-dropdown-link-color: #dee2e6;--bs-dropdown-link-hover-color: #ffffff;--bs-dropdown-divider-bg: rgba(0, 0, 0, 0.175);--bs-dropdown-link-hover-bg: rgba(255, 255, 255, 0.15);--bs-dropdown-link-active-color: #ffffff;--bs-dropdown-link-active-bg: #0d6efd;--bs-dropdown-link-disabled-color: #adb5bd;--bs-dropdown-header-color: #adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto}.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn:hover,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:1}.btn-toolbar{display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;justify-content:flex-start;-webkit-justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group{border-radius:.375rem}.btn-group>:not(.btn-check:first-child)+.btn,.btn-group>.btn-group:not(:first-child){margin-left:calc(1px * -1)}.btn-group>.btn:not(:last-child):not(.dropdown-toggle),.btn-group>.btn.dropdown-toggle-split:first-child,.btn-group>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn,.btn-group>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;-webkit-flex-direction:column;align-items:flex-start;-webkit-align-items:flex-start;justify-content:center;-webkit-justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:calc(1px * -1)}.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle),.btn-group-vertical>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn~.btn,.btn-group-vertical>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{--bs-nav-link-padding-x: 1rem;--bs-nav-link-padding-y: 0.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: #0d6efd;--bs-nav-link-hover-color: #0a58ca;--bs-nav-link-disabled-color: rgba(33, 37, 41, 0.75);display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);color:var(--bs-nav-link-color);text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;background:none;border:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media(prefers-reduced-motion: reduce){.nav-link{transition:none}}.nav-link:hover,.nav-link:focus{color:var(--bs-nav-link-hover-color)}.nav-link:focus-visible{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.nav-link.disabled,.nav-link:disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--bs-nav-tabs-border-width: 1px;--bs-nav-tabs-border-color: #dededf;--bs-nav-tabs-border-radius: 0.375rem;--bs-nav-tabs-link-hover-border-color: #e9ecef #e9ecef #dededf;--bs-nav-tabs-link-active-color: #000;--bs-nav-tabs-link-active-bg: #ffffff;--bs-nav-tabs-link-active-border-color: #dededf #dededf #ffffff;border-bottom:var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(-1*var(--bs-nav-tabs-border-width));border:var(--bs-nav-tabs-border-width) solid rgba(0,0,0,0);border-top-left-radius:var(--bs-nav-tabs-border-radius);border-top-right-radius:var(--bs-nav-tabs-border-radius)}.nav-tabs .nav-link:hover,.nav-tabs .nav-link:focus{isolation:isolate;border-color:var(--bs-nav-tabs-link-hover-border-color)}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:var(--bs-nav-tabs-link-active-color);background-color:var(--bs-nav-tabs-link-active-bg);border-color:var(--bs-nav-tabs-link-active-border-color)}.nav-tabs .dropdown-menu{margin-top:calc(-1*var(--bs-nav-tabs-border-width));border-top-left-radius:0;border-top-right-radius:0}.nav-pills{--bs-nav-pills-border-radius: 0.375rem;--bs-nav-pills-link-active-color: #ffffff;--bs-nav-pills-link-active-bg: #0d6efd}.nav-pills .nav-link{border-radius:var(--bs-nav-pills-border-radius)}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--bs-nav-pills-link-active-color);background-color:var(--bs-nav-pills-link-active-bg)}.nav-underline{--bs-nav-underline-gap: 1rem;--bs-nav-underline-border-width: 0.125rem;--bs-nav-underline-link-active-color: #000;gap:var(--bs-nav-underline-gap)}.nav-underline .nav-link{padding-right:0;padding-left:0;border-bottom:var(--bs-nav-underline-border-width) solid rgba(0,0,0,0)}.nav-underline .nav-link:hover,.nav-underline .nav-link:focus{border-bottom-color:currentcolor}.nav-underline .nav-link.active,.nav-underline .show>.nav-link{font-weight:700;color:var(--bs-nav-underline-link-active-color);border-bottom-color:currentcolor}.nav-fill>.nav-link,.nav-fill .nav-item{flex:1 1 auto;-webkit-flex:1 1 auto;text-align:center}.nav-justified>.nav-link,.nav-justified .nav-item{flex-basis:0;-webkit-flex-basis:0;flex-grow:1;-webkit-flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{--bs-navbar-padding-x: 0;--bs-navbar-padding-y: 0.5rem;--bs-navbar-color: #fdfefe;--bs-navbar-hover-color: rgba(253, 254, 255, 0.8);--bs-navbar-disabled-color: rgba(253, 254, 254, 0.75);--bs-navbar-active-color: #fdfeff;--bs-navbar-brand-padding-y: 0.3125rem;--bs-navbar-brand-margin-end: 1rem;--bs-navbar-brand-font-size: 1.25rem;--bs-navbar-brand-color: #fdfefe;--bs-navbar-brand-hover-color: #fdfeff;--bs-navbar-nav-link-padding-x: 0.5rem;--bs-navbar-toggler-padding-y: 0.25;--bs-navbar-toggler-padding-x: 0;--bs-navbar-toggler-font-size: 1.25rem;--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23fdfefe' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");--bs-navbar-toggler-border-color: rgba(253, 254, 254, 0);--bs-navbar-toggler-border-radius: 0.375rem;--bs-navbar-toggler-focus-width: 0.25rem;--bs-navbar-toggler-transition: box-shadow 0.15s ease-in-out;position:relative;display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid,.navbar>.container-sm,.navbar>.container-md,.navbar>.container-lg,.navbar>.container-xl,.navbar>.container-xxl{display:flex;display:-webkit-flex;flex-wrap:inherit;-webkit-flex-wrap:inherit;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between}.navbar-brand{padding-top:var(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);margin-right:var(--bs-navbar-brand-margin-end);font-size:var(--bs-navbar-brand-font-size);color:var(--bs-navbar-brand-color);text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;white-space:nowrap}.navbar-brand:hover,.navbar-brand:focus{color:var(--bs-navbar-brand-hover-color)}.navbar-nav{--bs-nav-link-padding-x: 0;--bs-nav-link-padding-y: 0.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: var(--bs-navbar-color);--bs-nav-link-hover-color: var(--bs-navbar-hover-color);--bs-nav-link-disabled-color: var(--bs-navbar-disabled-color);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link.active,.navbar-nav .nav-link.show{color:var(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a:hover,.navbar-text a:focus{color:var(--bs-navbar-active-color)}.navbar-collapse{flex-basis:100%;-webkit-flex-basis:100%;flex-grow:1;-webkit-flex-grow:1;align-items:center;-webkit-align-items:center}.navbar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:rgba(0,0,0,0);border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-navbar-toggler-transition)}@media(prefers-reduced-motion: reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width)}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--bs-navbar-toggler-icon-bg);background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height, 75vh);overflow-y:auto}@media(min-width: 576px){.navbar-expand-sm{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 768px){.navbar-expand-md{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 992px){.navbar-expand-lg{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 1200px){.navbar-expand-xl{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 1400px){.navbar-expand-xxl{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-xxl .offcanvas .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;transition:none}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}.navbar-dark,.navbar[data-bs-theme=dark]{--bs-navbar-color: #fdfefe;--bs-navbar-hover-color: rgba(253, 254, 255, 0.8);--bs-navbar-disabled-color: rgba(253, 254, 254, 0.75);--bs-navbar-active-color: #fdfeff;--bs-navbar-brand-color: #fdfefe;--bs-navbar-brand-hover-color: #fdfeff;--bs-navbar-toggler-border-color: rgba(253, 254, 254, 0);--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23fdfefe' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}[data-bs-theme=dark] .navbar-toggler-icon{--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23fdfefe' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.card{--bs-card-spacer-y: 1rem;--bs-card-spacer-x: 1rem;--bs-card-title-spacer-y: 0.5rem;--bs-card-title-color: ;--bs-card-subtitle-color: ;--bs-card-border-width: 1px;--bs-card-border-color: rgba(0, 0, 0, 0.175);--bs-card-border-radius: 0.375rem;--bs-card-box-shadow: ;--bs-card-inner-border-radius: calc(0.375rem - 1px);--bs-card-cap-padding-y: 0.5rem;--bs-card-cap-padding-x: 1rem;--bs-card-cap-bg: rgba(33, 37, 41, 0.03);--bs-card-cap-color: ;--bs-card-height: ;--bs-card-color: ;--bs-card-bg: #ffffff;--bs-card-img-overlay-padding: 1rem;--bs-card-group-margin: 0.75rem;position:relative;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;min-width:0;height:var(--bs-card-height);color:var(--bs-body-color);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius)}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;-webkit-flex:1 1 auto;padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x);color:var(--bs-card-color)}.card-title{margin-bottom:var(--bs-card-title-spacer-y);color:var(--bs-card-title-color)}.card-subtitle{margin-top:calc(-0.5*var(--bs-card-title-spacer-y));margin-bottom:0;color:var(--bs-card-subtitle-color)}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:var(--bs-card-spacer-x)}.card-header{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);margin-bottom:0;color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-bottom:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-header:first-child{border-radius:var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0}.card-footer{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-top:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-footer:last-child{border-radius:0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius)}.card-header-tabs{margin-right:calc(-0.5*var(--bs-card-cap-padding-x));margin-bottom:calc(-1*var(--bs-card-cap-padding-y));margin-left:calc(-0.5*var(--bs-card-cap-padding-x));border-bottom:0}.card-header-tabs .nav-link.active{background-color:var(--bs-card-bg);border-bottom-color:var(--bs-card-bg)}.card-header-pills{margin-right:calc(-0.5*var(--bs-card-cap-padding-x));margin-left:calc(-0.5*var(--bs-card-cap-padding-x))}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:var(--bs-card-img-overlay-padding);border-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-top,.card-img-bottom{width:100%}.card-img,.card-img-top{border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom{border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card-group>.card{margin-bottom:var(--bs-card-group-margin)}@media(min-width: 576px){.card-group{display:flex;display:-webkit-flex;flex-flow:row wrap;-webkit-flex-flow:row wrap}.card-group>.card{flex:1 0 0%;-webkit-flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-img-top,.card-group>.card:not(:last-child) .card-header{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-img-bottom,.card-group>.card:not(:last-child) .card-footer{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-img-top,.card-group>.card:not(:first-child) .card-header{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-img-bottom,.card-group>.card:not(:first-child) .card-footer{border-bottom-left-radius:0}}.accordion{--bs-accordion-color: #212529;--bs-accordion-bg: #ffffff;--bs-accordion-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border-radius 0.15s ease;--bs-accordion-border-color: #dededf;--bs-accordion-border-width: 1px;--bs-accordion-border-radius: 0.375rem;--bs-accordion-inner-border-radius: calc(0.375rem - 1px);--bs-accordion-btn-padding-x: 1.25rem;--bs-accordion-btn-padding-y: 1rem;--bs-accordion-btn-color: #212529;--bs-accordion-btn-bg: #ffffff;--bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-icon-width: 1.25rem;--bs-accordion-btn-icon-transform: rotate(-180deg);--bs-accordion-btn-icon-transition: transform 0.2s ease-in-out;--bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23052c65'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-focus-border-color: #86b7fe;--bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);--bs-accordion-body-padding-x: 1.25rem;--bs-accordion-body-padding-y: 1rem;--bs-accordion-active-color: #052c65;--bs-accordion-active-bg: #cfe2ff}.accordion-button{position:relative;display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;width:100%;padding:var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);font-size:1rem;color:var(--bs-accordion-btn-color);text-align:left;background-color:var(--bs-accordion-btn-bg);border:0;border-radius:0;overflow-anchor:none;transition:var(--bs-accordion-transition)}@media(prefers-reduced-motion: reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:var(--bs-accordion-active-color);background-color:var(--bs-accordion-active-bg);box-shadow:inset 0 calc(-1*var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color)}.accordion-button:not(.collapsed)::after{background-image:var(--bs-accordion-btn-active-icon);transform:var(--bs-accordion-btn-icon-transform)}.accordion-button::after{flex-shrink:0;-webkit-flex-shrink:0;width:var(--bs-accordion-btn-icon-width);height:var(--bs-accordion-btn-icon-width);margin-left:auto;content:"";background-image:var(--bs-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--bs-accordion-btn-icon-width);transition:var(--bs-accordion-btn-icon-transition)}@media(prefers-reduced-motion: reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:var(--bs-accordion-btn-focus-border-color);outline:0;box-shadow:var(--bs-accordion-btn-focus-box-shadow)}.accordion-header{margin-bottom:0}.accordion-item{color:var(--bs-accordion-color);background-color:var(--bs-accordion-bg);border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.accordion-item:first-of-type{border-top-left-radius:var(--bs-accordion-border-radius);border-top-right-radius:var(--bs-accordion-border-radius)}.accordion-item:first-of-type .accordion-button{border-top-left-radius:var(--bs-accordion-inner-border-radius);border-top-right-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:var(--bs-accordion-inner-border-radius);border-bottom-left-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-body{padding:var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x)}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button,.accordion-flush .accordion-item .accordion-button.collapsed{border-radius:0}[data-bs-theme=dark] .accordion-button::after{--bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.breadcrumb{--bs-breadcrumb-padding-x: 0;--bs-breadcrumb-padding-y: 0;--bs-breadcrumb-margin-bottom: 1rem;--bs-breadcrumb-bg: ;--bs-breadcrumb-border-radius: ;--bs-breadcrumb-divider-color: rgba(33, 37, 41, 0.75);--bs-breadcrumb-item-padding-x: 0.5rem;--bs-breadcrumb-item-active-color: rgba(33, 37, 41, 0.75);display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;padding:var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);margin-bottom:var(--bs-breadcrumb-margin-bottom);font-size:var(--bs-breadcrumb-font-size);list-style:none;background-color:var(--bs-breadcrumb-bg);border-radius:var(--bs-breadcrumb-border-radius)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--bs-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:var(--bs-breadcrumb-item-padding-x);color:var(--bs-breadcrumb-divider-color);content:var(--bs-breadcrumb-divider, ">") /* rtl: var(--bs-breadcrumb-divider, ">") */}.breadcrumb-item.active{color:var(--bs-breadcrumb-item-active-color)}.pagination{--bs-pagination-padding-x: 0.75rem;--bs-pagination-padding-y: 0.375rem;--bs-pagination-font-size:1rem;--bs-pagination-color: #0d6efd;--bs-pagination-bg: #ffffff;--bs-pagination-border-width: 1px;--bs-pagination-border-color: #dededf;--bs-pagination-border-radius: 0.375rem;--bs-pagination-hover-color: #0a58ca;--bs-pagination-hover-bg: #f8f9fa;--bs-pagination-hover-border-color: #dededf;--bs-pagination-focus-color: #0a58ca;--bs-pagination-focus-bg: #e9ecef;--bs-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);--bs-pagination-active-color: #ffffff;--bs-pagination-active-bg: #0d6efd;--bs-pagination-active-border-color: #0d6efd;--bs-pagination-disabled-color: rgba(33, 37, 41, 0.75);--bs-pagination-disabled-bg: #e9ecef;--bs-pagination-disabled-border-color: #dededf;display:flex;display:-webkit-flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;padding:var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);font-size:var(--bs-pagination-font-size);color:var(--bs-pagination-color);text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;background-color:var(--bs-pagination-bg);border:var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:var(--bs-pagination-hover-color);background-color:var(--bs-pagination-hover-bg);border-color:var(--bs-pagination-hover-border-color)}.page-link:focus{z-index:3;color:var(--bs-pagination-focus-color);background-color:var(--bs-pagination-focus-bg);outline:0;box-shadow:var(--bs-pagination-focus-box-shadow)}.page-link.active,.active>.page-link{z-index:3;color:var(--bs-pagination-active-color);background-color:var(--bs-pagination-active-bg);border-color:var(--bs-pagination-active-border-color)}.page-link.disabled,.disabled>.page-link{color:var(--bs-pagination-disabled-color);pointer-events:none;background-color:var(--bs-pagination-disabled-bg);border-color:var(--bs-pagination-disabled-border-color)}.page-item:not(:first-child) .page-link{margin-left:calc(1px * -1)}.page-item:first-child .page-link{border-top-left-radius:var(--bs-pagination-border-radius);border-bottom-left-radius:var(--bs-pagination-border-radius)}.page-item:last-child .page-link{border-top-right-radius:var(--bs-pagination-border-radius);border-bottom-right-radius:var(--bs-pagination-border-radius)}.pagination-lg{--bs-pagination-padding-x: 1.5rem;--bs-pagination-padding-y: 0.75rem;--bs-pagination-font-size:1.25rem;--bs-pagination-border-radius: 0.5rem}.pagination-sm{--bs-pagination-padding-x: 0.5rem;--bs-pagination-padding-y: 0.25rem;--bs-pagination-font-size:0.875rem;--bs-pagination-border-radius: 0.25rem}.badge{--bs-badge-padding-x: 0.65em;--bs-badge-padding-y: 0.35em;--bs-badge-font-size:0.75em;--bs-badge-font-weight: 700;--bs-badge-color: #ffffff;--bs-badge-border-radius: 0.375rem;display:inline-block;padding:var(--bs-badge-padding-y) var(--bs-badge-padding-x);font-size:var(--bs-badge-font-size);font-weight:var(--bs-badge-font-weight);line-height:1;color:var(--bs-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--bs-badge-border-radius)}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--bs-alert-bg: transparent;--bs-alert-padding-x: 1rem;--bs-alert-padding-y: 1rem;--bs-alert-margin-bottom: 1rem;--bs-alert-color: inherit;--bs-alert-border-color: transparent;--bs-alert-border: 1px solid var(--bs-alert-border-color);--bs-alert-border-radius: 0.375rem;--bs-alert-link-color: inherit;position:relative;padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);margin-bottom:var(--bs-alert-margin-bottom);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:700;color:var(--bs-alert-link-color)}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-default{--bs-alert-color: var(--bs-default-text-emphasis);--bs-alert-bg: var(--bs-default-bg-subtle);--bs-alert-border-color: var(--bs-default-border-subtle);--bs-alert-link-color: var(--bs-default-text-emphasis)}.alert-primary{--bs-alert-color: var(--bs-primary-text-emphasis);--bs-alert-bg: var(--bs-primary-bg-subtle);--bs-alert-border-color: var(--bs-primary-border-subtle);--bs-alert-link-color: var(--bs-primary-text-emphasis)}.alert-secondary{--bs-alert-color: var(--bs-secondary-text-emphasis);--bs-alert-bg: var(--bs-secondary-bg-subtle);--bs-alert-border-color: var(--bs-secondary-border-subtle);--bs-alert-link-color: var(--bs-secondary-text-emphasis)}.alert-success{--bs-alert-color: var(--bs-success-text-emphasis);--bs-alert-bg: var(--bs-success-bg-subtle);--bs-alert-border-color: var(--bs-success-border-subtle);--bs-alert-link-color: var(--bs-success-text-emphasis)}.alert-info{--bs-alert-color: var(--bs-info-text-emphasis);--bs-alert-bg: var(--bs-info-bg-subtle);--bs-alert-border-color: var(--bs-info-border-subtle);--bs-alert-link-color: var(--bs-info-text-emphasis)}.alert-warning{--bs-alert-color: var(--bs-warning-text-emphasis);--bs-alert-bg: var(--bs-warning-bg-subtle);--bs-alert-border-color: var(--bs-warning-border-subtle);--bs-alert-link-color: var(--bs-warning-text-emphasis)}.alert-danger{--bs-alert-color: var(--bs-danger-text-emphasis);--bs-alert-bg: var(--bs-danger-bg-subtle);--bs-alert-border-color: var(--bs-danger-border-subtle);--bs-alert-link-color: var(--bs-danger-text-emphasis)}.alert-light{--bs-alert-color: var(--bs-light-text-emphasis);--bs-alert-bg: var(--bs-light-bg-subtle);--bs-alert-border-color: var(--bs-light-border-subtle);--bs-alert-link-color: var(--bs-light-text-emphasis)}.alert-dark{--bs-alert-color: var(--bs-dark-text-emphasis);--bs-alert-bg: var(--bs-dark-bg-subtle);--bs-alert-border-color: var(--bs-dark-border-subtle);--bs-alert-link-color: var(--bs-dark-text-emphasis)}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress,.progress-stacked{--bs-progress-height: 1rem;--bs-progress-font-size:0.75rem;--bs-progress-bg: #e9ecef;--bs-progress-border-radius: 0.375rem;--bs-progress-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075);--bs-progress-bar-color: #ffffff;--bs-progress-bar-bg: #0d6efd;--bs-progress-bar-transition: width 0.6s ease;display:flex;display:-webkit-flex;height:var(--bs-progress-height);overflow:hidden;font-size:var(--bs-progress-font-size);background-color:var(--bs-progress-bg);border-radius:var(--bs-progress-border-radius)}.progress-bar{display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;justify-content:center;-webkit-justify-content:center;overflow:hidden;color:var(--bs-progress-bar-color);text-align:center;white-space:nowrap;background-color:var(--bs-progress-bar-bg);transition:var(--bs-progress-bar-transition)}@media(prefers-reduced-motion: reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-size:var(--bs-progress-height) var(--bs-progress-height)}.progress-stacked>.progress{overflow:visible}.progress-stacked>.progress>.progress-bar{width:100%}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media(prefers-reduced-motion: reduce){.progress-bar-animated{animation:none}}.list-group{--bs-list-group-color: #212529;--bs-list-group-bg: #ffffff;--bs-list-group-border-color: #dededf;--bs-list-group-border-width: 1px;--bs-list-group-border-radius: 0.375rem;--bs-list-group-item-padding-x: 1rem;--bs-list-group-item-padding-y: 0.5rem;--bs-list-group-action-color: rgba(33, 37, 41, 0.75);--bs-list-group-action-hover-color: #000;--bs-list-group-action-hover-bg: #f8f9fa;--bs-list-group-action-active-color: #212529;--bs-list-group-action-active-bg: #e9ecef;--bs-list-group-disabled-color: rgba(33, 37, 41, 0.75);--bs-list-group-disabled-bg: #ffffff;--bs-list-group-active-color: #ffffff;--bs-list-group-active-bg: #0d6efd;--bs-list-group-active-border-color: #0d6efd;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--bs-list-group-border-radius)}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>.list-group-item::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:var(--bs-list-group-action-color);text-align:inherit}.list-group-item-action:hover,.list-group-item-action:focus{z-index:1;color:var(--bs-list-group-action-hover-color);text-decoration:none;background-color:var(--bs-list-group-action-hover-bg)}.list-group-item-action:active{color:var(--bs-list-group-action-active-color);background-color:var(--bs-list-group-action-active-bg)}.list-group-item{position:relative;display:block;padding:var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);color:var(--bs-list-group-color);text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;background-color:var(--bs-list-group-bg);border:var(--bs-list-group-border-width) solid var(--bs-list-group-border-color)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:var(--bs-list-group-disabled-color);pointer-events:none;background-color:var(--bs-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--bs-list-group-active-color);background-color:var(--bs-list-group-active-bg);border-color:var(--bs-list-group-active-border-color)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:calc(-1*var(--bs-list-group-border-width));border-top-width:var(--bs-list-group-border-width)}.list-group-horizontal{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}@media(min-width: 576px){.list-group-horizontal-sm{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media(min-width: 768px){.list-group-horizontal-md{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media(min-width: 992px){.list-group-horizontal-lg{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media(min-width: 1200px){.list-group-horizontal-xl{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media(min-width: 1400px){.list-group-horizontal-xxl{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--bs-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-default{--bs-list-group-color: var(--bs-default-text-emphasis);--bs-list-group-bg: var(--bs-default-bg-subtle);--bs-list-group-border-color: var(--bs-default-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-default-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-default-border-subtle);--bs-list-group-active-color: var(--bs-default-bg-subtle);--bs-list-group-active-bg: var(--bs-default-text-emphasis);--bs-list-group-active-border-color: var(--bs-default-text-emphasis)}.list-group-item-primary{--bs-list-group-color: var(--bs-primary-text-emphasis);--bs-list-group-bg: var(--bs-primary-bg-subtle);--bs-list-group-border-color: var(--bs-primary-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-primary-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-primary-border-subtle);--bs-list-group-active-color: var(--bs-primary-bg-subtle);--bs-list-group-active-bg: var(--bs-primary-text-emphasis);--bs-list-group-active-border-color: var(--bs-primary-text-emphasis)}.list-group-item-secondary{--bs-list-group-color: var(--bs-secondary-text-emphasis);--bs-list-group-bg: var(--bs-secondary-bg-subtle);--bs-list-group-border-color: var(--bs-secondary-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-secondary-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-secondary-border-subtle);--bs-list-group-active-color: var(--bs-secondary-bg-subtle);--bs-list-group-active-bg: var(--bs-secondary-text-emphasis);--bs-list-group-active-border-color: var(--bs-secondary-text-emphasis)}.list-group-item-success{--bs-list-group-color: var(--bs-success-text-emphasis);--bs-list-group-bg: var(--bs-success-bg-subtle);--bs-list-group-border-color: var(--bs-success-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-success-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-success-border-subtle);--bs-list-group-active-color: var(--bs-success-bg-subtle);--bs-list-group-active-bg: var(--bs-success-text-emphasis);--bs-list-group-active-border-color: var(--bs-success-text-emphasis)}.list-group-item-info{--bs-list-group-color: var(--bs-info-text-emphasis);--bs-list-group-bg: var(--bs-info-bg-subtle);--bs-list-group-border-color: var(--bs-info-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-info-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-info-border-subtle);--bs-list-group-active-color: var(--bs-info-bg-subtle);--bs-list-group-active-bg: var(--bs-info-text-emphasis);--bs-list-group-active-border-color: var(--bs-info-text-emphasis)}.list-group-item-warning{--bs-list-group-color: var(--bs-warning-text-emphasis);--bs-list-group-bg: var(--bs-warning-bg-subtle);--bs-list-group-border-color: var(--bs-warning-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-warning-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-warning-border-subtle);--bs-list-group-active-color: var(--bs-warning-bg-subtle);--bs-list-group-active-bg: var(--bs-warning-text-emphasis);--bs-list-group-active-border-color: var(--bs-warning-text-emphasis)}.list-group-item-danger{--bs-list-group-color: var(--bs-danger-text-emphasis);--bs-list-group-bg: var(--bs-danger-bg-subtle);--bs-list-group-border-color: var(--bs-danger-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-danger-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-danger-border-subtle);--bs-list-group-active-color: var(--bs-danger-bg-subtle);--bs-list-group-active-bg: var(--bs-danger-text-emphasis);--bs-list-group-active-border-color: var(--bs-danger-text-emphasis)}.list-group-item-light{--bs-list-group-color: var(--bs-light-text-emphasis);--bs-list-group-bg: var(--bs-light-bg-subtle);--bs-list-group-border-color: var(--bs-light-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-light-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-light-border-subtle);--bs-list-group-active-color: var(--bs-light-bg-subtle);--bs-list-group-active-bg: var(--bs-light-text-emphasis);--bs-list-group-active-border-color: var(--bs-light-text-emphasis)}.list-group-item-dark{--bs-list-group-color: var(--bs-dark-text-emphasis);--bs-list-group-bg: var(--bs-dark-bg-subtle);--bs-list-group-border-color: var(--bs-dark-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-dark-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-dark-border-subtle);--bs-list-group-active-color: var(--bs-dark-bg-subtle);--bs-list-group-active-bg: var(--bs-dark-text-emphasis);--bs-list-group-active-border-color: var(--bs-dark-text-emphasis)}.btn-close{--bs-btn-close-color: #000;--bs-btn-close-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");--bs-btn-close-opacity: 0.5;--bs-btn-close-hover-opacity: 0.75;--bs-btn-close-focus-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);--bs-btn-close-focus-opacity: 1;--bs-btn-close-disabled-opacity: 0.25;--bs-btn-close-white-filter: invert(1) grayscale(100%) brightness(200%);box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:var(--bs-btn-close-color);background:rgba(0,0,0,0) var(--bs-btn-close-bg) center/1em auto no-repeat;border:0;border-radius:.375rem;opacity:var(--bs-btn-close-opacity)}.btn-close:hover{color:var(--bs-btn-close-color);text-decoration:none;opacity:var(--bs-btn-close-hover-opacity)}.btn-close:focus{outline:0;box-shadow:var(--bs-btn-close-focus-shadow);opacity:var(--bs-btn-close-focus-opacity)}.btn-close:disabled,.btn-close.disabled{pointer-events:none;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;opacity:var(--bs-btn-close-disabled-opacity)}.btn-close-white{filter:var(--bs-btn-close-white-filter)}[data-bs-theme=dark] .btn-close{filter:var(--bs-btn-close-white-filter)}.toast{--bs-toast-zindex: 1090;--bs-toast-padding-x: 0.75rem;--bs-toast-padding-y: 0.5rem;--bs-toast-spacing: 1.5rem;--bs-toast-max-width: 350px;--bs-toast-font-size:0.875rem;--bs-toast-color: ;--bs-toast-bg: rgba(255, 255, 255, 0.85);--bs-toast-border-width: 1px;--bs-toast-border-color: rgba(0, 0, 0, 0.175);--bs-toast-border-radius: 0.375rem;--bs-toast-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-toast-header-color: rgba(33, 37, 41, 0.75);--bs-toast-header-bg: rgba(255, 255, 255, 0.85);--bs-toast-header-border-color: rgba(0, 0, 0, 0.175);width:var(--bs-toast-max-width);max-width:100%;font-size:var(--bs-toast-font-size);color:var(--bs-toast-color);pointer-events:auto;background-color:var(--bs-toast-bg);background-clip:padding-box;border:var(--bs-toast-border-width) solid var(--bs-toast-border-color);box-shadow:var(--bs-toast-box-shadow);border-radius:var(--bs-toast-border-radius)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{--bs-toast-zindex: 1090;position:absolute;z-index:var(--bs-toast-zindex);width:max-content;width:-webkit-max-content;width:-moz-max-content;width:-ms-max-content;width:-o-max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:var(--bs-toast-spacing)}.toast-header{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;padding:var(--bs-toast-padding-y) var(--bs-toast-padding-x);color:var(--bs-toast-header-color);background-color:var(--bs-toast-header-bg);background-clip:padding-box;border-bottom:var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);border-top-left-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));border-top-right-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width))}.toast-header .btn-close{margin-right:calc(-0.5*var(--bs-toast-padding-x));margin-left:var(--bs-toast-padding-x)}.toast-body{padding:var(--bs-toast-padding-x);word-wrap:break-word}.modal{--bs-modal-zindex: 1055;--bs-modal-width: 500px;--bs-modal-padding: 1rem;--bs-modal-margin: 0.5rem;--bs-modal-color: ;--bs-modal-bg: #ffffff;--bs-modal-border-color: rgba(0, 0, 0, 0.175);--bs-modal-border-width: 1px;--bs-modal-border-radius: 0.5rem;--bs-modal-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-modal-inner-border-radius: calc(0.5rem - 1px);--bs-modal-header-padding-x: 1rem;--bs-modal-header-padding-y: 1rem;--bs-modal-header-padding: 1rem 1rem;--bs-modal-header-border-color: #dededf;--bs-modal-header-border-width: 1px;--bs-modal-title-line-height: 1.5;--bs-modal-footer-gap: 0.5rem;--bs-modal-footer-bg: ;--bs-modal-footer-border-color: #dededf;--bs-modal-footer-border-width: 1px;position:fixed;top:0;left:0;z-index:var(--bs-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:var(--bs-modal-margin);pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0, -50px)}@media(prefers-reduced-motion: reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - var(--bs-modal-margin)*2)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;min-height:calc(100% - var(--bs-modal-margin)*2)}.modal-content{position:relative;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;width:100%;color:var(--bs-modal-color);pointer-events:auto;background-color:var(--bs-modal-bg);background-clip:padding-box;border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);border-radius:var(--bs-modal-border-radius);outline:0}.modal-backdrop{--bs-backdrop-zindex: 1050;--bs-backdrop-bg: #000;--bs-backdrop-opacity: 0.5;position:fixed;top:0;left:0;z-index:var(--bs-backdrop-zindex);width:100vw;height:100vh;background-color:var(--bs-backdrop-bg)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--bs-backdrop-opacity)}.modal-header{display:flex;display:-webkit-flex;flex-shrink:0;-webkit-flex-shrink:0;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding:var(--bs-modal-header-padding);border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-left-radius:var(--bs-modal-inner-border-radius);border-top-right-radius:var(--bs-modal-inner-border-radius)}.modal-header .btn-close{padding:calc(var(--bs-modal-header-padding-y)*.5) calc(var(--bs-modal-header-padding-x)*.5);margin:calc(-0.5*var(--bs-modal-header-padding-y)) calc(-0.5*var(--bs-modal-header-padding-x)) calc(-0.5*var(--bs-modal-header-padding-y)) auto}.modal-title{margin-bottom:0;line-height:var(--bs-modal-title-line-height)}.modal-body{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto;padding:var(--bs-modal-padding)}.modal-footer{display:flex;display:-webkit-flex;flex-shrink:0;-webkit-flex-shrink:0;flex-wrap:wrap;-webkit-flex-wrap:wrap;align-items:center;-webkit-align-items:center;justify-content:flex-end;-webkit-justify-content:flex-end;padding:calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap)*.5);background-color:var(--bs-modal-footer-bg);border-top:var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);border-bottom-right-radius:var(--bs-modal-inner-border-radius);border-bottom-left-radius:var(--bs-modal-inner-border-radius)}.modal-footer>*{margin:calc(var(--bs-modal-footer-gap)*.5)}@media(min-width: 576px){.modal{--bs-modal-margin: 1.75rem;--bs-modal-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15)}.modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--bs-modal-width: 300px}}@media(min-width: 992px){.modal-lg,.modal-xl{--bs-modal-width: 800px}}@media(min-width: 1200px){.modal-xl{--bs-modal-width: 1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-header,.modal-fullscreen .modal-footer{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}@media(max-width: 575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-header,.modal-fullscreen-sm-down .modal-footer{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media(max-width: 767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-header,.modal-fullscreen-md-down .modal-footer{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media(max-width: 991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-header,.modal-fullscreen-lg-down .modal-footer{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media(max-width: 1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-header,.modal-fullscreen-xl-down .modal-footer{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media(max-width: 1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-header,.modal-fullscreen-xxl-down .modal-footer{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{--bs-tooltip-zindex: 1080;--bs-tooltip-max-width: 200px;--bs-tooltip-padding-x: 0.5rem;--bs-tooltip-padding-y: 0.25rem;--bs-tooltip-margin: ;--bs-tooltip-font-size:0.875rem;--bs-tooltip-color: #ffffff;--bs-tooltip-bg: #000;--bs-tooltip-border-radius: 0.375rem;--bs-tooltip-opacity: 0.9;--bs-tooltip-arrow-width: 0.8rem;--bs-tooltip-arrow-height: 0.4rem;z-index:var(--bs-tooltip-zindex);display:block;margin:var(--bs-tooltip-margin);font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans","Liberation Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-tooltip-font-size);word-wrap:break-word;opacity:0}.tooltip.show{opacity:var(--bs-tooltip-opacity)}.tooltip .tooltip-arrow{display:block;width:var(--bs-tooltip-arrow-width);height:var(--bs-tooltip-arrow-height)}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:rgba(0,0,0,0);border-style:solid}.bs-tooltip-top .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow{bottom:calc(-1*var(--bs-tooltip-arrow-height))}.bs-tooltip-top .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before{top:-1px;border-width:var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width)*.5) 0;border-top-color:var(--bs-tooltip-bg)}.bs-tooltip-end .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow{left:calc(-1*var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-end .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before{right:-1px;border-width:calc(var(--bs-tooltip-arrow-width)*.5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width)*.5) 0;border-right-color:var(--bs-tooltip-bg)}.bs-tooltip-bottom .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow{top:calc(-1*var(--bs-tooltip-arrow-height))}.bs-tooltip-bottom .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before{bottom:-1px;border-width:0 calc(var(--bs-tooltip-arrow-width)*.5) var(--bs-tooltip-arrow-height);border-bottom-color:var(--bs-tooltip-bg)}.bs-tooltip-start .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow{right:calc(-1*var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-start .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before{left:-1px;border-width:calc(var(--bs-tooltip-arrow-width)*.5) 0 calc(var(--bs-tooltip-arrow-width)*.5) var(--bs-tooltip-arrow-height);border-left-color:var(--bs-tooltip-bg)}.tooltip-inner{max-width:var(--bs-tooltip-max-width);padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-tooltip-color);text-align:center;background-color:var(--bs-tooltip-bg);border-radius:var(--bs-tooltip-border-radius)}.popover{--bs-popover-zindex: 1070;--bs-popover-max-width: 276px;--bs-popover-font-size:0.875rem;--bs-popover-bg: #ffffff;--bs-popover-border-width: 1px;--bs-popover-border-color: rgba(0, 0, 0, 0.175);--bs-popover-border-radius: 0.5rem;--bs-popover-inner-border-radius: calc(0.5rem - 1px);--bs-popover-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-popover-header-padding-x: 1rem;--bs-popover-header-padding-y: 0.5rem;--bs-popover-header-font-size:1rem;--bs-popover-header-color: inherit;--bs-popover-header-bg: #e9ecef;--bs-popover-body-padding-x: 1rem;--bs-popover-body-padding-y: 1rem;--bs-popover-body-color: #212529;--bs-popover-arrow-width: 1rem;--bs-popover-arrow-height: 0.5rem;--bs-popover-arrow-border: var(--bs-popover-border-color);z-index:var(--bs-popover-zindex);display:block;max-width:var(--bs-popover-max-width);font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans","Liberation Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-popover-font-size);word-wrap:break-word;background-color:var(--bs-popover-bg);background-clip:padding-box;border:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-radius:var(--bs-popover-border-radius)}.popover .popover-arrow{display:block;width:var(--bs-popover-arrow-width);height:var(--bs-popover-arrow-height)}.popover .popover-arrow::before,.popover .popover-arrow::after{position:absolute;display:block;content:"";border-color:rgba(0,0,0,0);border-style:solid;border-width:0}.bs-popover-top>.popover-arrow,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow{bottom:calc(-1*(var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-top>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after{border-width:var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width)*.5) 0}.bs-popover-top>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before{bottom:0;border-top-color:var(--bs-popover-arrow-border)}.bs-popover-top>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after{bottom:var(--bs-popover-border-width);border-top-color:var(--bs-popover-bg)}.bs-popover-end>.popover-arrow,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow{left:calc(-1*(var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-end>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after{border-width:calc(var(--bs-popover-arrow-width)*.5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width)*.5) 0}.bs-popover-end>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before{left:0;border-right-color:var(--bs-popover-arrow-border)}.bs-popover-end>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after{left:var(--bs-popover-border-width);border-right-color:var(--bs-popover-bg)}.bs-popover-bottom>.popover-arrow,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow{top:calc(-1*(var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-bottom>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after{border-width:0 calc(var(--bs-popover-arrow-width)*.5) var(--bs-popover-arrow-height)}.bs-popover-bottom>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before{top:0;border-bottom-color:var(--bs-popover-arrow-border)}.bs-popover-bottom>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after{top:var(--bs-popover-border-width);border-bottom-color:var(--bs-popover-bg)}.bs-popover-bottom .popover-header::before,.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before{position:absolute;top:0;left:50%;display:block;width:var(--bs-popover-arrow-width);margin-left:calc(-0.5*var(--bs-popover-arrow-width));content:"";border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-header-bg)}.bs-popover-start>.popover-arrow,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow{right:calc(-1*(var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-start>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after{border-width:calc(var(--bs-popover-arrow-width)*.5) 0 calc(var(--bs-popover-arrow-width)*.5) var(--bs-popover-arrow-height)}.bs-popover-start>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before{right:0;border-left-color:var(--bs-popover-arrow-border)}.bs-popover-start>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after{right:var(--bs-popover-border-width);border-left-color:var(--bs-popover-bg)}.popover-header{padding:var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);margin-bottom:0;font-size:var(--bs-popover-header-font-size);color:var(--bs-popover-header-color);background-color:var(--bs-popover-header-bg);border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-top-left-radius:var(--bs-popover-inner-border-radius);border-top-right-radius:var(--bs-popover-inner-border-radius)}.popover-header:empty{display:none}.popover-body{padding:var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);color:var(--bs-popover-body-color)}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y;-webkit-touch-action:pan-y;-moz-touch-action:pan-y;-ms-touch-action:pan-y;-o-touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-o-backface-visibility:hidden;transition:transform .6s ease-in-out}@media(prefers-reduced-motion: reduce){.carousel-item{transition:none}}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next:not(.carousel-item-start),.active.carousel-item-end{transform:translateX(100%)}.carousel-item-prev:not(.carousel-item-end),.active.carousel-item-start{transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end{z-index:1;opacity:1}.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{z-index:0;opacity:0;transition:opacity 0s .6s}@media(prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{transition:none}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;justify-content:center;-webkit-justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:none;border:0;opacity:.5;transition:opacity .15s ease}@media(prefers-reduced-motion: reduce){.carousel-control-prev,.carousel-control-next{transition:none}}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23ffffff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23ffffff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;display:-webkit-flex;justify-content:center;-webkit-justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;-webkit-flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid rgba(0,0,0,0);border-bottom:10px solid rgba(0,0,0,0);opacity:.5;transition:opacity .6s ease}@media(prefers-reduced-motion: reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-prev-icon,.carousel-dark .carousel-control-next-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}[data-bs-theme=dark] .carousel .carousel-control-prev-icon,[data-bs-theme=dark] .carousel .carousel-control-next-icon,[data-bs-theme=dark].carousel .carousel-control-prev-icon,[data-bs-theme=dark].carousel .carousel-control-next-icon{filter:invert(1) grayscale(100)}[data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target],[data-bs-theme=dark].carousel .carousel-indicators [data-bs-target]{background-color:#000}[data-bs-theme=dark] .carousel .carousel-caption,[data-bs-theme=dark].carousel .carousel-caption{color:#000}.spinner-grow,.spinner-border{display:inline-block;width:var(--bs-spinner-width);height:var(--bs-spinner-height);vertical-align:var(--bs-spinner-vertical-align);border-radius:50%;animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name)}@keyframes spinner-border{to{transform:rotate(360deg) /* rtl:ignore */}}.spinner-border{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -0.125em;--bs-spinner-border-width: 0.25em;--bs-spinner-animation-speed: 0.75s;--bs-spinner-animation-name: spinner-border;border:var(--bs-spinner-border-width) solid currentcolor;border-right-color:rgba(0,0,0,0)}.spinner-border-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem;--bs-spinner-border-width: 0.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -0.125em;--bs-spinner-animation-speed: 0.75s;--bs-spinner-animation-name: spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem}@media(prefers-reduced-motion: reduce){.spinner-border,.spinner-grow{--bs-spinner-animation-speed: 1.5s}}.offcanvas,.offcanvas-xxl,.offcanvas-xl,.offcanvas-lg,.offcanvas-md,.offcanvas-sm{--bs-offcanvas-zindex: 1045;--bs-offcanvas-width: 400px;--bs-offcanvas-height: 30vh;--bs-offcanvas-padding-x: 1rem;--bs-offcanvas-padding-y: 1rem;--bs-offcanvas-color: #212529;--bs-offcanvas-bg: #ffffff;--bs-offcanvas-border-width: 1px;--bs-offcanvas-border-color: rgba(0, 0, 0, 0.175);--bs-offcanvas-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-offcanvas-transition: transform 0.3s ease-in-out;--bs-offcanvas-title-line-height: 1.5}@media(max-width: 575.98px){.offcanvas-sm{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media(max-width: 575.98px)and (prefers-reduced-motion: reduce){.offcanvas-sm{transition:none}}@media(max-width: 575.98px){.offcanvas-sm.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}}@media(max-width: 575.98px){.offcanvas-sm.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}}@media(max-width: 575.98px){.offcanvas-sm.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}}@media(max-width: 575.98px){.offcanvas-sm.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}}@media(max-width: 575.98px){.offcanvas-sm.showing,.offcanvas-sm.show:not(.hiding){transform:none}}@media(max-width: 575.98px){.offcanvas-sm.showing,.offcanvas-sm.hiding,.offcanvas-sm.show{visibility:visible}}@media(min-width: 576px){.offcanvas-sm{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:rgba(0,0,0,0) !important}.offcanvas-sm .offcanvas-header{display:none}.offcanvas-sm .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !important}}@media(max-width: 767.98px){.offcanvas-md{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media(max-width: 767.98px)and (prefers-reduced-motion: reduce){.offcanvas-md{transition:none}}@media(max-width: 767.98px){.offcanvas-md.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}}@media(max-width: 767.98px){.offcanvas-md.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}}@media(max-width: 767.98px){.offcanvas-md.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}}@media(max-width: 767.98px){.offcanvas-md.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}}@media(max-width: 767.98px){.offcanvas-md.showing,.offcanvas-md.show:not(.hiding){transform:none}}@media(max-width: 767.98px){.offcanvas-md.showing,.offcanvas-md.hiding,.offcanvas-md.show{visibility:visible}}@media(min-width: 768px){.offcanvas-md{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:rgba(0,0,0,0) !important}.offcanvas-md .offcanvas-header{display:none}.offcanvas-md .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !important}}@media(max-width: 991.98px){.offcanvas-lg{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media(max-width: 991.98px)and (prefers-reduced-motion: reduce){.offcanvas-lg{transition:none}}@media(max-width: 991.98px){.offcanvas-lg.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}}@media(max-width: 991.98px){.offcanvas-lg.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}}@media(max-width: 991.98px){.offcanvas-lg.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}}@media(max-width: 991.98px){.offcanvas-lg.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}}@media(max-width: 991.98px){.offcanvas-lg.showing,.offcanvas-lg.show:not(.hiding){transform:none}}@media(max-width: 991.98px){.offcanvas-lg.showing,.offcanvas-lg.hiding,.offcanvas-lg.show{visibility:visible}}@media(min-width: 992px){.offcanvas-lg{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:rgba(0,0,0,0) !important}.offcanvas-lg .offcanvas-header{display:none}.offcanvas-lg .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !important}}@media(max-width: 1199.98px){.offcanvas-xl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media(max-width: 1199.98px)and (prefers-reduced-motion: reduce){.offcanvas-xl{transition:none}}@media(max-width: 1199.98px){.offcanvas-xl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}}@media(max-width: 1199.98px){.offcanvas-xl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}}@media(max-width: 1199.98px){.offcanvas-xl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}}@media(max-width: 1199.98px){.offcanvas-xl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}}@media(max-width: 1199.98px){.offcanvas-xl.showing,.offcanvas-xl.show:not(.hiding){transform:none}}@media(max-width: 1199.98px){.offcanvas-xl.showing,.offcanvas-xl.hiding,.offcanvas-xl.show{visibility:visible}}@media(min-width: 1200px){.offcanvas-xl{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:rgba(0,0,0,0) !important}.offcanvas-xl .offcanvas-header{display:none}.offcanvas-xl .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !important}}@media(max-width: 1399.98px){.offcanvas-xxl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media(max-width: 1399.98px)and (prefers-reduced-motion: reduce){.offcanvas-xxl{transition:none}}@media(max-width: 1399.98px){.offcanvas-xxl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}}@media(max-width: 1399.98px){.offcanvas-xxl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}}@media(max-width: 1399.98px){.offcanvas-xxl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}}@media(max-width: 1399.98px){.offcanvas-xxl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}}@media(max-width: 1399.98px){.offcanvas-xxl.showing,.offcanvas-xxl.show:not(.hiding){transform:none}}@media(max-width: 1399.98px){.offcanvas-xxl.showing,.offcanvas-xxl.hiding,.offcanvas-xxl.show{visibility:visible}}@media(min-width: 1400px){.offcanvas-xxl{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:rgba(0,0,0,0) !important}.offcanvas-xxl .offcanvas-header{display:none}.offcanvas-xxl .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !important}}.offcanvas{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}@media(prefers-reduced-motion: reduce){.offcanvas{transition:none}}.offcanvas.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas.showing,.offcanvas.show:not(.hiding){transform:none}.offcanvas.showing,.offcanvas.hiding,.offcanvas.show{visibility:visible}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x)}.offcanvas-header .btn-close{padding:calc(var(--bs-offcanvas-padding-y)*.5) calc(var(--bs-offcanvas-padding-x)*.5);margin-top:calc(-0.5*var(--bs-offcanvas-padding-y));margin-right:calc(-0.5*var(--bs-offcanvas-padding-x));margin-bottom:calc(-0.5*var(--bs-offcanvas-padding-y))}.offcanvas-title{margin-bottom:0;line-height:var(--bs-offcanvas-title-line-height)}.offcanvas-body{flex-grow:1;-webkit-flex-grow:1;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);overflow-y:auto}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.5}.placeholder.btn::before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{mask-image:linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);-webkit-mask-image:linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);mask-size:200% 100%;-webkit-mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{100%{mask-position:-200% 0%;-webkit-mask-position:-200% 0%}}.clearfix::after{display:block;clear:both;content:""}.text-bg-default{color:#000 !important;background-color:RGBA(var(--bs-default-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-primary{color:#fff !important;background-color:RGBA(var(--bs-primary-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-secondary{color:#fff !important;background-color:RGBA(var(--bs-secondary-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-success{color:#fff !important;background-color:RGBA(var(--bs-success-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-info{color:#000 !important;background-color:RGBA(var(--bs-info-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-warning{color:#000 !important;background-color:RGBA(var(--bs-warning-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-danger{color:#fff !important;background-color:RGBA(var(--bs-danger-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-light{color:#000 !important;background-color:RGBA(var(--bs-light-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-dark{color:#fff !important;background-color:RGBA(var(--bs-dark-rgb), var(--bs-bg-opacity, 1)) !important}.link-default{color:RGBA(var(--bs-default-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-default-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-default:hover,.link-default:focus{color:RGBA(229, 232, 235, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(229, 232, 235, var(--bs-link-underline-opacity, 1)) !important}.link-primary{color:RGBA(var(--bs-primary-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-primary:hover,.link-primary:focus{color:RGBA(10, 88, 202, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(10, 88, 202, var(--bs-link-underline-opacity, 1)) !important}.link-secondary{color:RGBA(var(--bs-secondary-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-secondary-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-secondary:hover,.link-secondary:focus{color:RGBA(86, 94, 100, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(86, 94, 100, var(--bs-link-underline-opacity, 1)) !important}.link-success{color:RGBA(var(--bs-success-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-success-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-success:hover,.link-success:focus{color:RGBA(20, 108, 67, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(20, 108, 67, var(--bs-link-underline-opacity, 1)) !important}.link-info{color:RGBA(var(--bs-info-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-info-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-info:hover,.link-info:focus{color:RGBA(61, 213, 243, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(61, 213, 243, var(--bs-link-underline-opacity, 1)) !important}.link-warning{color:RGBA(var(--bs-warning-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-warning-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-warning:hover,.link-warning:focus{color:RGBA(255, 205, 57, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(255, 205, 57, var(--bs-link-underline-opacity, 1)) !important}.link-danger{color:RGBA(var(--bs-danger-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-danger:hover,.link-danger:focus{color:RGBA(176, 42, 55, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(176, 42, 55, var(--bs-link-underline-opacity, 1)) !important}.link-light{color:RGBA(var(--bs-light-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-light-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-light:hover,.link-light:focus{color:RGBA(249, 250, 251, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(249, 250, 251, var(--bs-link-underline-opacity, 1)) !important}.link-dark{color:RGBA(var(--bs-dark-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-dark-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-dark:hover,.link-dark:focus{color:RGBA(26, 30, 33, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(26, 30, 33, var(--bs-link-underline-opacity, 1)) !important}.link-body-emphasis{color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-body-emphasis:hover,.link-body-emphasis:focus{color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 0.75)) !important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 0.75)) !important}.focus-ring:focus{outline:0;box-shadow:var(--bs-focus-ring-x, 0) var(--bs-focus-ring-y, 0) var(--bs-focus-ring-blur, 0) var(--bs-focus-ring-width) var(--bs-focus-ring-color)}.icon-link{display:inline-flex;gap:.375rem;align-items:center;-webkit-align-items:center;text-decoration-color:rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 0.5));text-underline-offset:.25em;backface-visibility:hidden;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-o-backface-visibility:hidden}.icon-link>.bi{flex-shrink:0;-webkit-flex-shrink:0;width:1em;height:1em;fill:currentcolor;transition:.2s ease-in-out transform}@media(prefers-reduced-motion: reduce){.icon-link>.bi{transition:none}}.icon-link-hover:hover>.bi,.icon-link-hover:focus-visible>.bi{transform:var(--bs-icon-link-transform, translate3d(0.25em, 0, 0))}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio: 100%}.ratio-4x3{--bs-aspect-ratio: 75%}.ratio-16x9{--bs-aspect-ratio: 56.25%}.ratio-21x9{--bs-aspect-ratio: 42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:sticky;top:0;z-index:1020}.sticky-bottom{position:sticky;bottom:0;z-index:1020}@media(min-width: 576px){.sticky-sm-top{position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:sticky;bottom:0;z-index:1020}}@media(min-width: 768px){.sticky-md-top{position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:sticky;bottom:0;z-index:1020}}@media(min-width: 992px){.sticky-lg-top{position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:sticky;bottom:0;z-index:1020}}@media(min-width: 1200px){.sticky-xl-top{position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:sticky;bottom:0;z-index:1020}}@media(min-width: 1400px){.sticky-xxl-top{position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:sticky;bottom:0;z-index:1020}}.hstack{display:flex;display:-webkit-flex;flex-direction:row;-webkit-flex-direction:row;align-items:center;-webkit-align-items:center;align-self:stretch;-webkit-align-self:stretch}.vstack{display:flex;display:-webkit-flex;flex:1 1 auto;-webkit-flex:1 1 auto;flex-direction:column;-webkit-flex-direction:column;align-self:stretch;-webkit-align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.visually-hidden:not(caption),.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption){position:absolute !important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;-webkit-align-self:stretch;width:1px;min-height:1em;background-color:currentcolor;opacity:.25}.align-baseline{vertical-align:baseline !important}.align-top{vertical-align:top !important}.align-middle{vertical-align:middle !important}.align-bottom{vertical-align:bottom !important}.align-text-bottom{vertical-align:text-bottom !important}.align-text-top{vertical-align:text-top !important}.float-start{float:left !important}.float-end{float:right !important}.float-none{float:none !important}.object-fit-contain{object-fit:contain !important}.object-fit-cover{object-fit:cover !important}.object-fit-fill{object-fit:fill !important}.object-fit-scale{object-fit:scale-down !important}.object-fit-none{object-fit:none !important}.opacity-0{opacity:0 !important}.opacity-25{opacity:.25 !important}.opacity-50{opacity:.5 !important}.opacity-75{opacity:.75 !important}.opacity-100{opacity:1 !important}.overflow-auto{overflow:auto !important}.overflow-hidden{overflow:hidden !important}.overflow-visible{overflow:visible !important}.overflow-scroll{overflow:scroll !important}.overflow-x-auto{overflow-x:auto !important}.overflow-x-hidden{overflow-x:hidden !important}.overflow-x-visible{overflow-x:visible !important}.overflow-x-scroll{overflow-x:scroll !important}.overflow-y-auto{overflow-y:auto !important}.overflow-y-hidden{overflow-y:hidden !important}.overflow-y-visible{overflow-y:visible !important}.overflow-y-scroll{overflow-y:scroll !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-block{display:block !important}.d-grid{display:grid !important}.d-inline-grid{display:inline-grid !important}.d-table{display:table !important}.d-table-row{display:table-row !important}.d-table-cell{display:table-cell !important}.d-flex{display:flex !important}.d-inline-flex{display:inline-flex !important}.d-none{display:none !important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15) !important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075) !important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175) !important}.shadow-none{box-shadow:none !important}.focus-ring-default{--bs-focus-ring-color: rgba(var(--bs-default-rgb), var(--bs-focus-ring-opacity))}.focus-ring-primary{--bs-focus-ring-color: rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-secondary{--bs-focus-ring-color: rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-success{--bs-focus-ring-color: rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity))}.focus-ring-info{--bs-focus-ring-color: rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity))}.focus-ring-warning{--bs-focus-ring-color: rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity))}.focus-ring-danger{--bs-focus-ring-color: rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity))}.focus-ring-light{--bs-focus-ring-color: rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity))}.focus-ring-dark{--bs-focus-ring-color: rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity))}.position-static{position:static !important}.position-relative{position:relative !important}.position-absolute{position:absolute !important}.position-fixed{position:fixed !important}.position-sticky{position:sticky !important}.top-0{top:0 !important}.top-50{top:50% !important}.top-100{top:100% !important}.bottom-0{bottom:0 !important}.bottom-50{bottom:50% !important}.bottom-100{bottom:100% !important}.start-0{left:0 !important}.start-50{left:50% !important}.start-100{left:100% !important}.end-0{right:0 !important}.end-50{right:50% !important}.end-100{right:100% !important}.translate-middle{transform:translate(-50%, -50%) !important}.translate-middle-x{transform:translateX(-50%) !important}.translate-middle-y{transform:translateY(-50%) !important}.border{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-0{border:0 !important}.border-top{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-top-0{border-top:0 !important}.border-end{border-right:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-end-0{border-right:0 !important}.border-bottom{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-bottom-0{border-bottom:0 !important}.border-start{border-left:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-start-0{border-left:0 !important}.border-default{--bs-border-opacity: 1;border-color:rgba(var(--bs-default-rgb), var(--bs-border-opacity)) !important}.border-primary{--bs-border-opacity: 1;border-color:rgba(var(--bs-primary-rgb), var(--bs-border-opacity)) !important}.border-secondary{--bs-border-opacity: 1;border-color:rgba(var(--bs-secondary-rgb), var(--bs-border-opacity)) !important}.border-success{--bs-border-opacity: 1;border-color:rgba(var(--bs-success-rgb), var(--bs-border-opacity)) !important}.border-info{--bs-border-opacity: 1;border-color:rgba(var(--bs-info-rgb), var(--bs-border-opacity)) !important}.border-warning{--bs-border-opacity: 1;border-color:rgba(var(--bs-warning-rgb), var(--bs-border-opacity)) !important}.border-danger{--bs-border-opacity: 1;border-color:rgba(var(--bs-danger-rgb), var(--bs-border-opacity)) !important}.border-light{--bs-border-opacity: 1;border-color:rgba(var(--bs-light-rgb), var(--bs-border-opacity)) !important}.border-dark{--bs-border-opacity: 1;border-color:rgba(var(--bs-dark-rgb), var(--bs-border-opacity)) !important}.border-black{--bs-border-opacity: 1;border-color:rgba(var(--bs-black-rgb), var(--bs-border-opacity)) !important}.border-white{--bs-border-opacity: 1;border-color:rgba(var(--bs-white-rgb), var(--bs-border-opacity)) !important}.border-primary-subtle{border-color:var(--bs-primary-border-subtle) !important}.border-secondary-subtle{border-color:var(--bs-secondary-border-subtle) !important}.border-success-subtle{border-color:var(--bs-success-border-subtle) !important}.border-info-subtle{border-color:var(--bs-info-border-subtle) !important}.border-warning-subtle{border-color:var(--bs-warning-border-subtle) !important}.border-danger-subtle{border-color:var(--bs-danger-border-subtle) !important}.border-light-subtle{border-color:var(--bs-light-border-subtle) !important}.border-dark-subtle{border-color:var(--bs-dark-border-subtle) !important}.border-1{border-width:1px !important}.border-2{border-width:2px !important}.border-3{border-width:3px !important}.border-4{border-width:4px !important}.border-5{border-width:5px !important}.border-opacity-10{--bs-border-opacity: 0.1}.border-opacity-25{--bs-border-opacity: 0.25}.border-opacity-50{--bs-border-opacity: 0.5}.border-opacity-75{--bs-border-opacity: 0.75}.border-opacity-100{--bs-border-opacity: 1}.w-25{width:25% !important}.w-50{width:50% !important}.w-75{width:75% !important}.w-100{width:100% !important}.w-auto{width:auto !important}.mw-100{max-width:100% !important}.vw-100{width:100vw !important}.min-vw-100{min-width:100vw !important}.h-25{height:25% !important}.h-50{height:50% !important}.h-75{height:75% !important}.h-100{height:100% !important}.h-auto{height:auto !important}.mh-100{max-height:100% !important}.vh-100{height:100vh !important}.min-vh-100{min-height:100vh !important}.flex-fill{flex:1 1 auto !important}.flex-row{flex-direction:row !important}.flex-column{flex-direction:column !important}.flex-row-reverse{flex-direction:row-reverse !important}.flex-column-reverse{flex-direction:column-reverse !important}.flex-grow-0{flex-grow:0 !important}.flex-grow-1{flex-grow:1 !important}.flex-shrink-0{flex-shrink:0 !important}.flex-shrink-1{flex-shrink:1 !important}.flex-wrap{flex-wrap:wrap !important}.flex-nowrap{flex-wrap:nowrap !important}.flex-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-start{justify-content:flex-start !important}.justify-content-end{justify-content:flex-end !important}.justify-content-center{justify-content:center !important}.justify-content-between{justify-content:space-between !important}.justify-content-around{justify-content:space-around !important}.justify-content-evenly{justify-content:space-evenly !important}.align-items-start{align-items:flex-start !important}.align-items-end{align-items:flex-end !important}.align-items-center{align-items:center !important}.align-items-baseline{align-items:baseline !important}.align-items-stretch{align-items:stretch !important}.align-content-start{align-content:flex-start !important}.align-content-end{align-content:flex-end !important}.align-content-center{align-content:center !important}.align-content-between{align-content:space-between !important}.align-content-around{align-content:space-around !important}.align-content-stretch{align-content:stretch !important}.align-self-auto{align-self:auto !important}.align-self-start{align-self:flex-start !important}.align-self-end{align-self:flex-end !important}.align-self-center{align-self:center !important}.align-self-baseline{align-self:baseline !important}.align-self-stretch{align-self:stretch !important}.order-first{order:-1 !important}.order-0{order:0 !important}.order-1{order:1 !important}.order-2{order:2 !important}.order-3{order:3 !important}.order-4{order:4 !important}.order-5{order:5 !important}.order-last{order:6 !important}.m-0{margin:0 !important}.m-1{margin:.25rem !important}.m-2{margin:.5rem !important}.m-3{margin:1rem !important}.m-4{margin:1.5rem !important}.m-5{margin:3rem !important}.m-auto{margin:auto !important}.mx-0{margin-right:0 !important;margin-left:0 !important}.mx-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-3{margin-right:1rem !important;margin-left:1rem !important}.mx-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-5{margin-right:3rem !important;margin-left:3rem !important}.mx-auto{margin-right:auto !important;margin-left:auto !important}.my-0{margin-top:0 !important;margin-bottom:0 !important}.my-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-0{margin-top:0 !important}.mt-1{margin-top:.25rem !important}.mt-2{margin-top:.5rem !important}.mt-3{margin-top:1rem !important}.mt-4{margin-top:1.5rem !important}.mt-5{margin-top:3rem !important}.mt-auto{margin-top:auto !important}.me-0{margin-right:0 !important}.me-1{margin-right:.25rem !important}.me-2{margin-right:.5rem !important}.me-3{margin-right:1rem !important}.me-4{margin-right:1.5rem !important}.me-5{margin-right:3rem !important}.me-auto{margin-right:auto !important}.mb-0{margin-bottom:0 !important}.mb-1{margin-bottom:.25rem !important}.mb-2{margin-bottom:.5rem !important}.mb-3{margin-bottom:1rem !important}.mb-4{margin-bottom:1.5rem !important}.mb-5{margin-bottom:3rem !important}.mb-auto{margin-bottom:auto !important}.ms-0{margin-left:0 !important}.ms-1{margin-left:.25rem !important}.ms-2{margin-left:.5rem !important}.ms-3{margin-left:1rem !important}.ms-4{margin-left:1.5rem !important}.ms-5{margin-left:3rem !important}.ms-auto{margin-left:auto !important}.p-0{padding:0 !important}.p-1{padding:.25rem !important}.p-2{padding:.5rem !important}.p-3{padding:1rem !important}.p-4{padding:1.5rem !important}.p-5{padding:3rem !important}.px-0{padding-right:0 !important;padding-left:0 !important}.px-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-3{padding-right:1rem !important;padding-left:1rem !important}.px-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-5{padding-right:3rem !important;padding-left:3rem !important}.py-0{padding-top:0 !important;padding-bottom:0 !important}.py-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-0{padding-top:0 !important}.pt-1{padding-top:.25rem !important}.pt-2{padding-top:.5rem !important}.pt-3{padding-top:1rem !important}.pt-4{padding-top:1.5rem !important}.pt-5{padding-top:3rem !important}.pe-0{padding-right:0 !important}.pe-1{padding-right:.25rem !important}.pe-2{padding-right:.5rem !important}.pe-3{padding-right:1rem !important}.pe-4{padding-right:1.5rem !important}.pe-5{padding-right:3rem !important}.pb-0{padding-bottom:0 !important}.pb-1{padding-bottom:.25rem !important}.pb-2{padding-bottom:.5rem !important}.pb-3{padding-bottom:1rem !important}.pb-4{padding-bottom:1.5rem !important}.pb-5{padding-bottom:3rem !important}.ps-0{padding-left:0 !important}.ps-1{padding-left:.25rem !important}.ps-2{padding-left:.5rem !important}.ps-3{padding-left:1rem !important}.ps-4{padding-left:1.5rem !important}.ps-5{padding-left:3rem !important}.gap-0{gap:0 !important}.gap-1{gap:.25rem !important}.gap-2{gap:.5rem !important}.gap-3{gap:1rem !important}.gap-4{gap:1.5rem !important}.gap-5{gap:3rem !important}.row-gap-0{row-gap:0 !important}.row-gap-1{row-gap:.25rem !important}.row-gap-2{row-gap:.5rem !important}.row-gap-3{row-gap:1rem !important}.row-gap-4{row-gap:1.5rem !important}.row-gap-5{row-gap:3rem !important}.column-gap-0{column-gap:0 !important}.column-gap-1{column-gap:.25rem !important}.column-gap-2{column-gap:.5rem !important}.column-gap-3{column-gap:1rem !important}.column-gap-4{column-gap:1.5rem !important}.column-gap-5{column-gap:3rem !important}.font-monospace{font-family:var(--bs-font-monospace) !important}.fs-1{font-size:calc(1.325rem + 0.9vw) !important}.fs-2{font-size:calc(1.29rem + 0.48vw) !important}.fs-3{font-size:calc(1.27rem + 0.24vw) !important}.fs-4{font-size:1.25rem !important}.fs-5{font-size:1.1rem !important}.fs-6{font-size:1rem !important}.fst-italic{font-style:italic !important}.fst-normal{font-style:normal !important}.fw-lighter{font-weight:lighter !important}.fw-light{font-weight:300 !important}.fw-normal{font-weight:400 !important}.fw-medium{font-weight:500 !important}.fw-semibold{font-weight:600 !important}.fw-bold{font-weight:700 !important}.fw-bolder{font-weight:bolder !important}.lh-1{line-height:1 !important}.lh-sm{line-height:1.25 !important}.lh-base{line-height:1.5 !important}.lh-lg{line-height:2 !important}.text-start{text-align:left !important}.text-end{text-align:right !important}.text-center{text-align:center !important}.text-decoration-none{text-decoration:none !important}.text-decoration-underline{text-decoration:underline !important}.text-decoration-line-through{text-decoration:line-through !important}.text-lowercase{text-transform:lowercase !important}.text-uppercase{text-transform:uppercase !important}.text-capitalize{text-transform:capitalize !important}.text-wrap{white-space:normal !important}.text-nowrap{white-space:nowrap !important}.text-break{word-wrap:break-word !important;word-break:break-word !important}.text-default{--bs-text-opacity: 1;color:rgba(var(--bs-default-rgb), var(--bs-text-opacity)) !important}.text-primary{--bs-text-opacity: 1;color:rgba(var(--bs-primary-rgb), var(--bs-text-opacity)) !important}.text-secondary{--bs-text-opacity: 1;color:rgba(var(--bs-secondary-rgb), var(--bs-text-opacity)) !important}.text-success{--bs-text-opacity: 1;color:rgba(var(--bs-success-rgb), var(--bs-text-opacity)) !important}.text-info{--bs-text-opacity: 1;color:rgba(var(--bs-info-rgb), var(--bs-text-opacity)) !important}.text-warning{--bs-text-opacity: 1;color:rgba(var(--bs-warning-rgb), var(--bs-text-opacity)) !important}.text-danger{--bs-text-opacity: 1;color:rgba(var(--bs-danger-rgb), var(--bs-text-opacity)) !important}.text-light{--bs-text-opacity: 1;color:rgba(var(--bs-light-rgb), var(--bs-text-opacity)) !important}.text-dark{--bs-text-opacity: 1;color:rgba(var(--bs-dark-rgb), var(--bs-text-opacity)) !important}.text-black{--bs-text-opacity: 1;color:rgba(var(--bs-black-rgb), var(--bs-text-opacity)) !important}.text-white{--bs-text-opacity: 1;color:rgba(var(--bs-white-rgb), var(--bs-text-opacity)) !important}.text-body{--bs-text-opacity: 1;color:rgba(var(--bs-body-color-rgb), var(--bs-text-opacity)) !important}.text-muted{--bs-text-opacity: 1;color:var(--bs-secondary-color) !important}.text-black-50{--bs-text-opacity: 1;color:rgba(0,0,0,.5) !important}.text-white-50{--bs-text-opacity: 1;color:rgba(255,255,255,.5) !important}.text-body-secondary{--bs-text-opacity: 1;color:var(--bs-secondary-color) !important}.text-body-tertiary{--bs-text-opacity: 1;color:var(--bs-tertiary-color) !important}.text-body-emphasis{--bs-text-opacity: 1;color:var(--bs-emphasis-color) !important}.text-reset{--bs-text-opacity: 1;color:inherit !important}.text-opacity-25{--bs-text-opacity: 0.25}.text-opacity-50{--bs-text-opacity: 0.5}.text-opacity-75{--bs-text-opacity: 0.75}.text-opacity-100{--bs-text-opacity: 1}.text-primary-emphasis{color:var(--bs-primary-text-emphasis) !important}.text-secondary-emphasis{color:var(--bs-secondary-text-emphasis) !important}.text-success-emphasis{color:var(--bs-success-text-emphasis) !important}.text-info-emphasis{color:var(--bs-info-text-emphasis) !important}.text-warning-emphasis{color:var(--bs-warning-text-emphasis) !important}.text-danger-emphasis{color:var(--bs-danger-text-emphasis) !important}.text-light-emphasis{color:var(--bs-light-text-emphasis) !important}.text-dark-emphasis{color:var(--bs-dark-text-emphasis) !important}.link-opacity-10{--bs-link-opacity: 0.1}.link-opacity-10-hover:hover{--bs-link-opacity: 0.1}.link-opacity-25{--bs-link-opacity: 0.25}.link-opacity-25-hover:hover{--bs-link-opacity: 0.25}.link-opacity-50{--bs-link-opacity: 0.5}.link-opacity-50-hover:hover{--bs-link-opacity: 0.5}.link-opacity-75{--bs-link-opacity: 0.75}.link-opacity-75-hover:hover{--bs-link-opacity: 0.75}.link-opacity-100{--bs-link-opacity: 1}.link-opacity-100-hover:hover{--bs-link-opacity: 1}.link-offset-1{text-underline-offset:.125em !important}.link-offset-1-hover:hover{text-underline-offset:.125em !important}.link-offset-2{text-underline-offset:.25em !important}.link-offset-2-hover:hover{text-underline-offset:.25em !important}.link-offset-3{text-underline-offset:.375em !important}.link-offset-3-hover:hover{text-underline-offset:.375em !important}.link-underline-default{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-default-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-primary{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-primary-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-secondary{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-secondary-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-success{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-success-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-info{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-info-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-warning{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-warning-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-danger{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-danger-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-light{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-light-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-dark{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-dark-rgb), var(--bs-link-underline-opacity)) !important}.link-underline{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-link-color-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-underline-opacity-0{--bs-link-underline-opacity: 0}.link-underline-opacity-0-hover:hover{--bs-link-underline-opacity: 0}.link-underline-opacity-10{--bs-link-underline-opacity: 0.1}.link-underline-opacity-10-hover:hover{--bs-link-underline-opacity: 0.1}.link-underline-opacity-25{--bs-link-underline-opacity: 0.25}.link-underline-opacity-25-hover:hover{--bs-link-underline-opacity: 0.25}.link-underline-opacity-50{--bs-link-underline-opacity: 0.5}.link-underline-opacity-50-hover:hover{--bs-link-underline-opacity: 0.5}.link-underline-opacity-75{--bs-link-underline-opacity: 0.75}.link-underline-opacity-75-hover:hover{--bs-link-underline-opacity: 0.75}.link-underline-opacity-100{--bs-link-underline-opacity: 1}.link-underline-opacity-100-hover:hover{--bs-link-underline-opacity: 1}.bg-default{--bs-bg-opacity: 1;background-color:rgba(var(--bs-default-rgb), var(--bs-bg-opacity)) !important}.bg-primary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important}.bg-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-rgb), var(--bs-bg-opacity)) !important}.bg-success{--bs-bg-opacity: 1;background-color:rgba(var(--bs-success-rgb), var(--bs-bg-opacity)) !important}.bg-info{--bs-bg-opacity: 1;background-color:rgba(var(--bs-info-rgb), var(--bs-bg-opacity)) !important}.bg-warning{--bs-bg-opacity: 1;background-color:rgba(var(--bs-warning-rgb), var(--bs-bg-opacity)) !important}.bg-danger{--bs-bg-opacity: 1;background-color:rgba(var(--bs-danger-rgb), var(--bs-bg-opacity)) !important}.bg-light{--bs-bg-opacity: 1;background-color:rgba(var(--bs-light-rgb), var(--bs-bg-opacity)) !important}.bg-dark{--bs-bg-opacity: 1;background-color:rgba(var(--bs-dark-rgb), var(--bs-bg-opacity)) !important}.bg-black{--bs-bg-opacity: 1;background-color:rgba(var(--bs-black-rgb), var(--bs-bg-opacity)) !important}.bg-white{--bs-bg-opacity: 1;background-color:rgba(var(--bs-white-rgb), var(--bs-bg-opacity)) !important}.bg-body{--bs-bg-opacity: 1;background-color:rgba(var(--bs-body-bg-rgb), var(--bs-bg-opacity)) !important}.bg-transparent{--bs-bg-opacity: 1;background-color:rgba(0,0,0,0) !important}.bg-body-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-bg-rgb), var(--bs-bg-opacity)) !important}.bg-body-tertiary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-tertiary-bg-rgb), var(--bs-bg-opacity)) !important}.bg-opacity-10{--bs-bg-opacity: 0.1}.bg-opacity-25{--bs-bg-opacity: 0.25}.bg-opacity-50{--bs-bg-opacity: 0.5}.bg-opacity-75{--bs-bg-opacity: 0.75}.bg-opacity-100{--bs-bg-opacity: 1}.bg-primary-subtle{background-color:var(--bs-primary-bg-subtle) !important}.bg-secondary-subtle{background-color:var(--bs-secondary-bg-subtle) !important}.bg-success-subtle{background-color:var(--bs-success-bg-subtle) !important}.bg-info-subtle{background-color:var(--bs-info-bg-subtle) !important}.bg-warning-subtle{background-color:var(--bs-warning-bg-subtle) !important}.bg-danger-subtle{background-color:var(--bs-danger-bg-subtle) !important}.bg-light-subtle{background-color:var(--bs-light-bg-subtle) !important}.bg-dark-subtle{background-color:var(--bs-dark-bg-subtle) !important}.bg-gradient{background-image:var(--bs-gradient) !important}.user-select-all{user-select:all !important}.user-select-auto{user-select:auto !important}.user-select-none{user-select:none !important}.pe-none{pointer-events:none !important}.pe-auto{pointer-events:auto !important}.rounded{border-radius:var(--bs-border-radius) !important}.rounded-0{border-radius:0 !important}.rounded-1{border-radius:var(--bs-border-radius-sm) !important}.rounded-2{border-radius:var(--bs-border-radius) !important}.rounded-3{border-radius:var(--bs-border-radius-lg) !important}.rounded-4{border-radius:var(--bs-border-radius-xl) !important}.rounded-5{border-radius:var(--bs-border-radius-xxl) !important}.rounded-circle{border-radius:50% !important}.rounded-pill{border-radius:var(--bs-border-radius-pill) !important}.rounded-top{border-top-left-radius:var(--bs-border-radius) !important;border-top-right-radius:var(--bs-border-radius) !important}.rounded-top-0{border-top-left-radius:0 !important;border-top-right-radius:0 !important}.rounded-top-1{border-top-left-radius:var(--bs-border-radius-sm) !important;border-top-right-radius:var(--bs-border-radius-sm) !important}.rounded-top-2{border-top-left-radius:var(--bs-border-radius) !important;border-top-right-radius:var(--bs-border-radius) !important}.rounded-top-3{border-top-left-radius:var(--bs-border-radius-lg) !important;border-top-right-radius:var(--bs-border-radius-lg) !important}.rounded-top-4{border-top-left-radius:var(--bs-border-radius-xl) !important;border-top-right-radius:var(--bs-border-radius-xl) !important}.rounded-top-5{border-top-left-radius:var(--bs-border-radius-xxl) !important;border-top-right-radius:var(--bs-border-radius-xxl) !important}.rounded-top-circle{border-top-left-radius:50% !important;border-top-right-radius:50% !important}.rounded-top-pill{border-top-left-radius:var(--bs-border-radius-pill) !important;border-top-right-radius:var(--bs-border-radius-pill) !important}.rounded-end{border-top-right-radius:var(--bs-border-radius) !important;border-bottom-right-radius:var(--bs-border-radius) !important}.rounded-end-0{border-top-right-radius:0 !important;border-bottom-right-radius:0 !important}.rounded-end-1{border-top-right-radius:var(--bs-border-radius-sm) !important;border-bottom-right-radius:var(--bs-border-radius-sm) !important}.rounded-end-2{border-top-right-radius:var(--bs-border-radius) !important;border-bottom-right-radius:var(--bs-border-radius) !important}.rounded-end-3{border-top-right-radius:var(--bs-border-radius-lg) !important;border-bottom-right-radius:var(--bs-border-radius-lg) !important}.rounded-end-4{border-top-right-radius:var(--bs-border-radius-xl) !important;border-bottom-right-radius:var(--bs-border-radius-xl) !important}.rounded-end-5{border-top-right-radius:var(--bs-border-radius-xxl) !important;border-bottom-right-radius:var(--bs-border-radius-xxl) !important}.rounded-end-circle{border-top-right-radius:50% !important;border-bottom-right-radius:50% !important}.rounded-end-pill{border-top-right-radius:var(--bs-border-radius-pill) !important;border-bottom-right-radius:var(--bs-border-radius-pill) !important}.rounded-bottom{border-bottom-right-radius:var(--bs-border-radius) !important;border-bottom-left-radius:var(--bs-border-radius) !important}.rounded-bottom-0{border-bottom-right-radius:0 !important;border-bottom-left-radius:0 !important}.rounded-bottom-1{border-bottom-right-radius:var(--bs-border-radius-sm) !important;border-bottom-left-radius:var(--bs-border-radius-sm) !important}.rounded-bottom-2{border-bottom-right-radius:var(--bs-border-radius) !important;border-bottom-left-radius:var(--bs-border-radius) !important}.rounded-bottom-3{border-bottom-right-radius:var(--bs-border-radius-lg) !important;border-bottom-left-radius:var(--bs-border-radius-lg) !important}.rounded-bottom-4{border-bottom-right-radius:var(--bs-border-radius-xl) !important;border-bottom-left-radius:var(--bs-border-radius-xl) !important}.rounded-bottom-5{border-bottom-right-radius:var(--bs-border-radius-xxl) !important;border-bottom-left-radius:var(--bs-border-radius-xxl) !important}.rounded-bottom-circle{border-bottom-right-radius:50% !important;border-bottom-left-radius:50% !important}.rounded-bottom-pill{border-bottom-right-radius:var(--bs-border-radius-pill) !important;border-bottom-left-radius:var(--bs-border-radius-pill) !important}.rounded-start{border-bottom-left-radius:var(--bs-border-radius) !important;border-top-left-radius:var(--bs-border-radius) !important}.rounded-start-0{border-bottom-left-radius:0 !important;border-top-left-radius:0 !important}.rounded-start-1{border-bottom-left-radius:var(--bs-border-radius-sm) !important;border-top-left-radius:var(--bs-border-radius-sm) !important}.rounded-start-2{border-bottom-left-radius:var(--bs-border-radius) !important;border-top-left-radius:var(--bs-border-radius) !important}.rounded-start-3{border-bottom-left-radius:var(--bs-border-radius-lg) !important;border-top-left-radius:var(--bs-border-radius-lg) !important}.rounded-start-4{border-bottom-left-radius:var(--bs-border-radius-xl) !important;border-top-left-radius:var(--bs-border-radius-xl) !important}.rounded-start-5{border-bottom-left-radius:var(--bs-border-radius-xxl) !important;border-top-left-radius:var(--bs-border-radius-xxl) !important}.rounded-start-circle{border-bottom-left-radius:50% !important;border-top-left-radius:50% !important}.rounded-start-pill{border-bottom-left-radius:var(--bs-border-radius-pill) !important;border-top-left-radius:var(--bs-border-radius-pill) !important}.visible{visibility:visible !important}.invisible{visibility:hidden !important}.z-n1{z-index:-1 !important}.z-0{z-index:0 !important}.z-1{z-index:1 !important}.z-2{z-index:2 !important}.z-3{z-index:3 !important}@media(min-width: 576px){.float-sm-start{float:left !important}.float-sm-end{float:right !important}.float-sm-none{float:none !important}.object-fit-sm-contain{object-fit:contain !important}.object-fit-sm-cover{object-fit:cover !important}.object-fit-sm-fill{object-fit:fill !important}.object-fit-sm-scale{object-fit:scale-down !important}.object-fit-sm-none{object-fit:none !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-block{display:block !important}.d-sm-grid{display:grid !important}.d-sm-inline-grid{display:inline-grid !important}.d-sm-table{display:table !important}.d-sm-table-row{display:table-row !important}.d-sm-table-cell{display:table-cell !important}.d-sm-flex{display:flex !important}.d-sm-inline-flex{display:inline-flex !important}.d-sm-none{display:none !important}.flex-sm-fill{flex:1 1 auto !important}.flex-sm-row{flex-direction:row !important}.flex-sm-column{flex-direction:column !important}.flex-sm-row-reverse{flex-direction:row-reverse !important}.flex-sm-column-reverse{flex-direction:column-reverse !important}.flex-sm-grow-0{flex-grow:0 !important}.flex-sm-grow-1{flex-grow:1 !important}.flex-sm-shrink-0{flex-shrink:0 !important}.flex-sm-shrink-1{flex-shrink:1 !important}.flex-sm-wrap{flex-wrap:wrap !important}.flex-sm-nowrap{flex-wrap:nowrap !important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-sm-start{justify-content:flex-start !important}.justify-content-sm-end{justify-content:flex-end !important}.justify-content-sm-center{justify-content:center !important}.justify-content-sm-between{justify-content:space-between !important}.justify-content-sm-around{justify-content:space-around !important}.justify-content-sm-evenly{justify-content:space-evenly !important}.align-items-sm-start{align-items:flex-start !important}.align-items-sm-end{align-items:flex-end !important}.align-items-sm-center{align-items:center !important}.align-items-sm-baseline{align-items:baseline !important}.align-items-sm-stretch{align-items:stretch !important}.align-content-sm-start{align-content:flex-start !important}.align-content-sm-end{align-content:flex-end !important}.align-content-sm-center{align-content:center !important}.align-content-sm-between{align-content:space-between !important}.align-content-sm-around{align-content:space-around !important}.align-content-sm-stretch{align-content:stretch !important}.align-self-sm-auto{align-self:auto !important}.align-self-sm-start{align-self:flex-start !important}.align-self-sm-end{align-self:flex-end !important}.align-self-sm-center{align-self:center !important}.align-self-sm-baseline{align-self:baseline !important}.align-self-sm-stretch{align-self:stretch !important}.order-sm-first{order:-1 !important}.order-sm-0{order:0 !important}.order-sm-1{order:1 !important}.order-sm-2{order:2 !important}.order-sm-3{order:3 !important}.order-sm-4{order:4 !important}.order-sm-5{order:5 !important}.order-sm-last{order:6 !important}.m-sm-0{margin:0 !important}.m-sm-1{margin:.25rem !important}.m-sm-2{margin:.5rem !important}.m-sm-3{margin:1rem !important}.m-sm-4{margin:1.5rem !important}.m-sm-5{margin:3rem !important}.m-sm-auto{margin:auto !important}.mx-sm-0{margin-right:0 !important;margin-left:0 !important}.mx-sm-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-sm-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-sm-3{margin-right:1rem !important;margin-left:1rem !important}.mx-sm-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-sm-5{margin-right:3rem !important;margin-left:3rem !important}.mx-sm-auto{margin-right:auto !important;margin-left:auto !important}.my-sm-0{margin-top:0 !important;margin-bottom:0 !important}.my-sm-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-sm-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-sm-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-sm-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-sm-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-sm-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-sm-0{margin-top:0 !important}.mt-sm-1{margin-top:.25rem !important}.mt-sm-2{margin-top:.5rem !important}.mt-sm-3{margin-top:1rem !important}.mt-sm-4{margin-top:1.5rem !important}.mt-sm-5{margin-top:3rem !important}.mt-sm-auto{margin-top:auto !important}.me-sm-0{margin-right:0 !important}.me-sm-1{margin-right:.25rem !important}.me-sm-2{margin-right:.5rem !important}.me-sm-3{margin-right:1rem !important}.me-sm-4{margin-right:1.5rem !important}.me-sm-5{margin-right:3rem !important}.me-sm-auto{margin-right:auto !important}.mb-sm-0{margin-bottom:0 !important}.mb-sm-1{margin-bottom:.25rem !important}.mb-sm-2{margin-bottom:.5rem !important}.mb-sm-3{margin-bottom:1rem !important}.mb-sm-4{margin-bottom:1.5rem !important}.mb-sm-5{margin-bottom:3rem !important}.mb-sm-auto{margin-bottom:auto !important}.ms-sm-0{margin-left:0 !important}.ms-sm-1{margin-left:.25rem !important}.ms-sm-2{margin-left:.5rem !important}.ms-sm-3{margin-left:1rem !important}.ms-sm-4{margin-left:1.5rem !important}.ms-sm-5{margin-left:3rem !important}.ms-sm-auto{margin-left:auto !important}.p-sm-0{padding:0 !important}.p-sm-1{padding:.25rem !important}.p-sm-2{padding:.5rem !important}.p-sm-3{padding:1rem !important}.p-sm-4{padding:1.5rem !important}.p-sm-5{padding:3rem !important}.px-sm-0{padding-right:0 !important;padding-left:0 !important}.px-sm-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-sm-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-sm-3{padding-right:1rem !important;padding-left:1rem !important}.px-sm-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-sm-5{padding-right:3rem !important;padding-left:3rem !important}.py-sm-0{padding-top:0 !important;padding-bottom:0 !important}.py-sm-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-sm-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-sm-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-sm-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-sm-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-sm-0{padding-top:0 !important}.pt-sm-1{padding-top:.25rem !important}.pt-sm-2{padding-top:.5rem !important}.pt-sm-3{padding-top:1rem !important}.pt-sm-4{padding-top:1.5rem !important}.pt-sm-5{padding-top:3rem !important}.pe-sm-0{padding-right:0 !important}.pe-sm-1{padding-right:.25rem !important}.pe-sm-2{padding-right:.5rem !important}.pe-sm-3{padding-right:1rem !important}.pe-sm-4{padding-right:1.5rem !important}.pe-sm-5{padding-right:3rem !important}.pb-sm-0{padding-bottom:0 !important}.pb-sm-1{padding-bottom:.25rem !important}.pb-sm-2{padding-bottom:.5rem !important}.pb-sm-3{padding-bottom:1rem !important}.pb-sm-4{padding-bottom:1.5rem !important}.pb-sm-5{padding-bottom:3rem !important}.ps-sm-0{padding-left:0 !important}.ps-sm-1{padding-left:.25rem !important}.ps-sm-2{padding-left:.5rem !important}.ps-sm-3{padding-left:1rem !important}.ps-sm-4{padding-left:1.5rem !important}.ps-sm-5{padding-left:3rem !important}.gap-sm-0{gap:0 !important}.gap-sm-1{gap:.25rem !important}.gap-sm-2{gap:.5rem !important}.gap-sm-3{gap:1rem !important}.gap-sm-4{gap:1.5rem !important}.gap-sm-5{gap:3rem !important}.row-gap-sm-0{row-gap:0 !important}.row-gap-sm-1{row-gap:.25rem !important}.row-gap-sm-2{row-gap:.5rem !important}.row-gap-sm-3{row-gap:1rem !important}.row-gap-sm-4{row-gap:1.5rem !important}.row-gap-sm-5{row-gap:3rem !important}.column-gap-sm-0{column-gap:0 !important}.column-gap-sm-1{column-gap:.25rem !important}.column-gap-sm-2{column-gap:.5rem !important}.column-gap-sm-3{column-gap:1rem !important}.column-gap-sm-4{column-gap:1.5rem !important}.column-gap-sm-5{column-gap:3rem !important}.text-sm-start{text-align:left !important}.text-sm-end{text-align:right !important}.text-sm-center{text-align:center !important}}@media(min-width: 768px){.float-md-start{float:left !important}.float-md-end{float:right !important}.float-md-none{float:none !important}.object-fit-md-contain{object-fit:contain !important}.object-fit-md-cover{object-fit:cover !important}.object-fit-md-fill{object-fit:fill !important}.object-fit-md-scale{object-fit:scale-down !important}.object-fit-md-none{object-fit:none !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-block{display:block !important}.d-md-grid{display:grid !important}.d-md-inline-grid{display:inline-grid !important}.d-md-table{display:table !important}.d-md-table-row{display:table-row !important}.d-md-table-cell{display:table-cell !important}.d-md-flex{display:flex !important}.d-md-inline-flex{display:inline-flex !important}.d-md-none{display:none !important}.flex-md-fill{flex:1 1 auto !important}.flex-md-row{flex-direction:row !important}.flex-md-column{flex-direction:column !important}.flex-md-row-reverse{flex-direction:row-reverse !important}.flex-md-column-reverse{flex-direction:column-reverse !important}.flex-md-grow-0{flex-grow:0 !important}.flex-md-grow-1{flex-grow:1 !important}.flex-md-shrink-0{flex-shrink:0 !important}.flex-md-shrink-1{flex-shrink:1 !important}.flex-md-wrap{flex-wrap:wrap !important}.flex-md-nowrap{flex-wrap:nowrap !important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-md-start{justify-content:flex-start !important}.justify-content-md-end{justify-content:flex-end !important}.justify-content-md-center{justify-content:center !important}.justify-content-md-between{justify-content:space-between !important}.justify-content-md-around{justify-content:space-around !important}.justify-content-md-evenly{justify-content:space-evenly !important}.align-items-md-start{align-items:flex-start !important}.align-items-md-end{align-items:flex-end !important}.align-items-md-center{align-items:center !important}.align-items-md-baseline{align-items:baseline !important}.align-items-md-stretch{align-items:stretch !important}.align-content-md-start{align-content:flex-start !important}.align-content-md-end{align-content:flex-end !important}.align-content-md-center{align-content:center !important}.align-content-md-between{align-content:space-between !important}.align-content-md-around{align-content:space-around !important}.align-content-md-stretch{align-content:stretch !important}.align-self-md-auto{align-self:auto !important}.align-self-md-start{align-self:flex-start !important}.align-self-md-end{align-self:flex-end !important}.align-self-md-center{align-self:center !important}.align-self-md-baseline{align-self:baseline !important}.align-self-md-stretch{align-self:stretch !important}.order-md-first{order:-1 !important}.order-md-0{order:0 !important}.order-md-1{order:1 !important}.order-md-2{order:2 !important}.order-md-3{order:3 !important}.order-md-4{order:4 !important}.order-md-5{order:5 !important}.order-md-last{order:6 !important}.m-md-0{margin:0 !important}.m-md-1{margin:.25rem !important}.m-md-2{margin:.5rem !important}.m-md-3{margin:1rem !important}.m-md-4{margin:1.5rem !important}.m-md-5{margin:3rem !important}.m-md-auto{margin:auto !important}.mx-md-0{margin-right:0 !important;margin-left:0 !important}.mx-md-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-md-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-md-3{margin-right:1rem !important;margin-left:1rem !important}.mx-md-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-md-5{margin-right:3rem !important;margin-left:3rem !important}.mx-md-auto{margin-right:auto !important;margin-left:auto !important}.my-md-0{margin-top:0 !important;margin-bottom:0 !important}.my-md-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-md-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-md-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-md-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-md-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-md-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-md-0{margin-top:0 !important}.mt-md-1{margin-top:.25rem !important}.mt-md-2{margin-top:.5rem !important}.mt-md-3{margin-top:1rem !important}.mt-md-4{margin-top:1.5rem !important}.mt-md-5{margin-top:3rem !important}.mt-md-auto{margin-top:auto !important}.me-md-0{margin-right:0 !important}.me-md-1{margin-right:.25rem !important}.me-md-2{margin-right:.5rem !important}.me-md-3{margin-right:1rem !important}.me-md-4{margin-right:1.5rem !important}.me-md-5{margin-right:3rem !important}.me-md-auto{margin-right:auto !important}.mb-md-0{margin-bottom:0 !important}.mb-md-1{margin-bottom:.25rem !important}.mb-md-2{margin-bottom:.5rem !important}.mb-md-3{margin-bottom:1rem !important}.mb-md-4{margin-bottom:1.5rem !important}.mb-md-5{margin-bottom:3rem !important}.mb-md-auto{margin-bottom:auto !important}.ms-md-0{margin-left:0 !important}.ms-md-1{margin-left:.25rem !important}.ms-md-2{margin-left:.5rem !important}.ms-md-3{margin-left:1rem !important}.ms-md-4{margin-left:1.5rem !important}.ms-md-5{margin-left:3rem !important}.ms-md-auto{margin-left:auto !important}.p-md-0{padding:0 !important}.p-md-1{padding:.25rem !important}.p-md-2{padding:.5rem !important}.p-md-3{padding:1rem !important}.p-md-4{padding:1.5rem !important}.p-md-5{padding:3rem !important}.px-md-0{padding-right:0 !important;padding-left:0 !important}.px-md-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-md-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-md-3{padding-right:1rem !important;padding-left:1rem !important}.px-md-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-md-5{padding-right:3rem !important;padding-left:3rem !important}.py-md-0{padding-top:0 !important;padding-bottom:0 !important}.py-md-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-md-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-md-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-md-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-md-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-md-0{padding-top:0 !important}.pt-md-1{padding-top:.25rem !important}.pt-md-2{padding-top:.5rem !important}.pt-md-3{padding-top:1rem !important}.pt-md-4{padding-top:1.5rem !important}.pt-md-5{padding-top:3rem !important}.pe-md-0{padding-right:0 !important}.pe-md-1{padding-right:.25rem !important}.pe-md-2{padding-right:.5rem !important}.pe-md-3{padding-right:1rem !important}.pe-md-4{padding-right:1.5rem !important}.pe-md-5{padding-right:3rem !important}.pb-md-0{padding-bottom:0 !important}.pb-md-1{padding-bottom:.25rem !important}.pb-md-2{padding-bottom:.5rem !important}.pb-md-3{padding-bottom:1rem !important}.pb-md-4{padding-bottom:1.5rem !important}.pb-md-5{padding-bottom:3rem !important}.ps-md-0{padding-left:0 !important}.ps-md-1{padding-left:.25rem !important}.ps-md-2{padding-left:.5rem !important}.ps-md-3{padding-left:1rem !important}.ps-md-4{padding-left:1.5rem !important}.ps-md-5{padding-left:3rem !important}.gap-md-0{gap:0 !important}.gap-md-1{gap:.25rem !important}.gap-md-2{gap:.5rem !important}.gap-md-3{gap:1rem !important}.gap-md-4{gap:1.5rem !important}.gap-md-5{gap:3rem !important}.row-gap-md-0{row-gap:0 !important}.row-gap-md-1{row-gap:.25rem !important}.row-gap-md-2{row-gap:.5rem !important}.row-gap-md-3{row-gap:1rem !important}.row-gap-md-4{row-gap:1.5rem !important}.row-gap-md-5{row-gap:3rem !important}.column-gap-md-0{column-gap:0 !important}.column-gap-md-1{column-gap:.25rem !important}.column-gap-md-2{column-gap:.5rem !important}.column-gap-md-3{column-gap:1rem !important}.column-gap-md-4{column-gap:1.5rem !important}.column-gap-md-5{column-gap:3rem !important}.text-md-start{text-align:left !important}.text-md-end{text-align:right !important}.text-md-center{text-align:center !important}}@media(min-width: 992px){.float-lg-start{float:left !important}.float-lg-end{float:right !important}.float-lg-none{float:none !important}.object-fit-lg-contain{object-fit:contain !important}.object-fit-lg-cover{object-fit:cover !important}.object-fit-lg-fill{object-fit:fill !important}.object-fit-lg-scale{object-fit:scale-down !important}.object-fit-lg-none{object-fit:none !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-block{display:block !important}.d-lg-grid{display:grid !important}.d-lg-inline-grid{display:inline-grid !important}.d-lg-table{display:table !important}.d-lg-table-row{display:table-row !important}.d-lg-table-cell{display:table-cell !important}.d-lg-flex{display:flex !important}.d-lg-inline-flex{display:inline-flex !important}.d-lg-none{display:none !important}.flex-lg-fill{flex:1 1 auto !important}.flex-lg-row{flex-direction:row !important}.flex-lg-column{flex-direction:column !important}.flex-lg-row-reverse{flex-direction:row-reverse !important}.flex-lg-column-reverse{flex-direction:column-reverse !important}.flex-lg-grow-0{flex-grow:0 !important}.flex-lg-grow-1{flex-grow:1 !important}.flex-lg-shrink-0{flex-shrink:0 !important}.flex-lg-shrink-1{flex-shrink:1 !important}.flex-lg-wrap{flex-wrap:wrap !important}.flex-lg-nowrap{flex-wrap:nowrap !important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-lg-start{justify-content:flex-start !important}.justify-content-lg-end{justify-content:flex-end !important}.justify-content-lg-center{justify-content:center !important}.justify-content-lg-between{justify-content:space-between !important}.justify-content-lg-around{justify-content:space-around !important}.justify-content-lg-evenly{justify-content:space-evenly !important}.align-items-lg-start{align-items:flex-start !important}.align-items-lg-end{align-items:flex-end !important}.align-items-lg-center{align-items:center !important}.align-items-lg-baseline{align-items:baseline !important}.align-items-lg-stretch{align-items:stretch !important}.align-content-lg-start{align-content:flex-start !important}.align-content-lg-end{align-content:flex-end !important}.align-content-lg-center{align-content:center !important}.align-content-lg-between{align-content:space-between !important}.align-content-lg-around{align-content:space-around !important}.align-content-lg-stretch{align-content:stretch !important}.align-self-lg-auto{align-self:auto !important}.align-self-lg-start{align-self:flex-start !important}.align-self-lg-end{align-self:flex-end !important}.align-self-lg-center{align-self:center !important}.align-self-lg-baseline{align-self:baseline !important}.align-self-lg-stretch{align-self:stretch !important}.order-lg-first{order:-1 !important}.order-lg-0{order:0 !important}.order-lg-1{order:1 !important}.order-lg-2{order:2 !important}.order-lg-3{order:3 !important}.order-lg-4{order:4 !important}.order-lg-5{order:5 !important}.order-lg-last{order:6 !important}.m-lg-0{margin:0 !important}.m-lg-1{margin:.25rem !important}.m-lg-2{margin:.5rem !important}.m-lg-3{margin:1rem !important}.m-lg-4{margin:1.5rem !important}.m-lg-5{margin:3rem !important}.m-lg-auto{margin:auto !important}.mx-lg-0{margin-right:0 !important;margin-left:0 !important}.mx-lg-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-lg-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-lg-3{margin-right:1rem !important;margin-left:1rem !important}.mx-lg-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-lg-5{margin-right:3rem !important;margin-left:3rem !important}.mx-lg-auto{margin-right:auto !important;margin-left:auto !important}.my-lg-0{margin-top:0 !important;margin-bottom:0 !important}.my-lg-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-lg-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-lg-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-lg-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-lg-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-lg-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-lg-0{margin-top:0 !important}.mt-lg-1{margin-top:.25rem !important}.mt-lg-2{margin-top:.5rem !important}.mt-lg-3{margin-top:1rem !important}.mt-lg-4{margin-top:1.5rem !important}.mt-lg-5{margin-top:3rem !important}.mt-lg-auto{margin-top:auto !important}.me-lg-0{margin-right:0 !important}.me-lg-1{margin-right:.25rem !important}.me-lg-2{margin-right:.5rem !important}.me-lg-3{margin-right:1rem !important}.me-lg-4{margin-right:1.5rem !important}.me-lg-5{margin-right:3rem !important}.me-lg-auto{margin-right:auto !important}.mb-lg-0{margin-bottom:0 !important}.mb-lg-1{margin-bottom:.25rem !important}.mb-lg-2{margin-bottom:.5rem !important}.mb-lg-3{margin-bottom:1rem !important}.mb-lg-4{margin-bottom:1.5rem !important}.mb-lg-5{margin-bottom:3rem !important}.mb-lg-auto{margin-bottom:auto !important}.ms-lg-0{margin-left:0 !important}.ms-lg-1{margin-left:.25rem !important}.ms-lg-2{margin-left:.5rem !important}.ms-lg-3{margin-left:1rem !important}.ms-lg-4{margin-left:1.5rem !important}.ms-lg-5{margin-left:3rem !important}.ms-lg-auto{margin-left:auto !important}.p-lg-0{padding:0 !important}.p-lg-1{padding:.25rem !important}.p-lg-2{padding:.5rem !important}.p-lg-3{padding:1rem !important}.p-lg-4{padding:1.5rem !important}.p-lg-5{padding:3rem !important}.px-lg-0{padding-right:0 !important;padding-left:0 !important}.px-lg-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-lg-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-lg-3{padding-right:1rem !important;padding-left:1rem !important}.px-lg-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-lg-5{padding-right:3rem !important;padding-left:3rem !important}.py-lg-0{padding-top:0 !important;padding-bottom:0 !important}.py-lg-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-lg-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-lg-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-lg-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-lg-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-lg-0{padding-top:0 !important}.pt-lg-1{padding-top:.25rem !important}.pt-lg-2{padding-top:.5rem !important}.pt-lg-3{padding-top:1rem !important}.pt-lg-4{padding-top:1.5rem !important}.pt-lg-5{padding-top:3rem !important}.pe-lg-0{padding-right:0 !important}.pe-lg-1{padding-right:.25rem !important}.pe-lg-2{padding-right:.5rem !important}.pe-lg-3{padding-right:1rem !important}.pe-lg-4{padding-right:1.5rem !important}.pe-lg-5{padding-right:3rem !important}.pb-lg-0{padding-bottom:0 !important}.pb-lg-1{padding-bottom:.25rem !important}.pb-lg-2{padding-bottom:.5rem !important}.pb-lg-3{padding-bottom:1rem !important}.pb-lg-4{padding-bottom:1.5rem !important}.pb-lg-5{padding-bottom:3rem !important}.ps-lg-0{padding-left:0 !important}.ps-lg-1{padding-left:.25rem !important}.ps-lg-2{padding-left:.5rem !important}.ps-lg-3{padding-left:1rem !important}.ps-lg-4{padding-left:1.5rem !important}.ps-lg-5{padding-left:3rem !important}.gap-lg-0{gap:0 !important}.gap-lg-1{gap:.25rem !important}.gap-lg-2{gap:.5rem !important}.gap-lg-3{gap:1rem !important}.gap-lg-4{gap:1.5rem !important}.gap-lg-5{gap:3rem !important}.row-gap-lg-0{row-gap:0 !important}.row-gap-lg-1{row-gap:.25rem !important}.row-gap-lg-2{row-gap:.5rem !important}.row-gap-lg-3{row-gap:1rem !important}.row-gap-lg-4{row-gap:1.5rem !important}.row-gap-lg-5{row-gap:3rem !important}.column-gap-lg-0{column-gap:0 !important}.column-gap-lg-1{column-gap:.25rem !important}.column-gap-lg-2{column-gap:.5rem !important}.column-gap-lg-3{column-gap:1rem !important}.column-gap-lg-4{column-gap:1.5rem !important}.column-gap-lg-5{column-gap:3rem !important}.text-lg-start{text-align:left !important}.text-lg-end{text-align:right !important}.text-lg-center{text-align:center !important}}@media(min-width: 1200px){.float-xl-start{float:left !important}.float-xl-end{float:right !important}.float-xl-none{float:none !important}.object-fit-xl-contain{object-fit:contain !important}.object-fit-xl-cover{object-fit:cover !important}.object-fit-xl-fill{object-fit:fill !important}.object-fit-xl-scale{object-fit:scale-down !important}.object-fit-xl-none{object-fit:none !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-block{display:block !important}.d-xl-grid{display:grid !important}.d-xl-inline-grid{display:inline-grid !important}.d-xl-table{display:table !important}.d-xl-table-row{display:table-row !important}.d-xl-table-cell{display:table-cell !important}.d-xl-flex{display:flex !important}.d-xl-inline-flex{display:inline-flex !important}.d-xl-none{display:none !important}.flex-xl-fill{flex:1 1 auto !important}.flex-xl-row{flex-direction:row !important}.flex-xl-column{flex-direction:column !important}.flex-xl-row-reverse{flex-direction:row-reverse !important}.flex-xl-column-reverse{flex-direction:column-reverse !important}.flex-xl-grow-0{flex-grow:0 !important}.flex-xl-grow-1{flex-grow:1 !important}.flex-xl-shrink-0{flex-shrink:0 !important}.flex-xl-shrink-1{flex-shrink:1 !important}.flex-xl-wrap{flex-wrap:wrap !important}.flex-xl-nowrap{flex-wrap:nowrap !important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-xl-start{justify-content:flex-start !important}.justify-content-xl-end{justify-content:flex-end !important}.justify-content-xl-center{justify-content:center !important}.justify-content-xl-between{justify-content:space-between !important}.justify-content-xl-around{justify-content:space-around !important}.justify-content-xl-evenly{justify-content:space-evenly !important}.align-items-xl-start{align-items:flex-start !important}.align-items-xl-end{align-items:flex-end !important}.align-items-xl-center{align-items:center !important}.align-items-xl-baseline{align-items:baseline !important}.align-items-xl-stretch{align-items:stretch !important}.align-content-xl-start{align-content:flex-start !important}.align-content-xl-end{align-content:flex-end !important}.align-content-xl-center{align-content:center !important}.align-content-xl-between{align-content:space-between !important}.align-content-xl-around{align-content:space-around !important}.align-content-xl-stretch{align-content:stretch !important}.align-self-xl-auto{align-self:auto !important}.align-self-xl-start{align-self:flex-start !important}.align-self-xl-end{align-self:flex-end !important}.align-self-xl-center{align-self:center !important}.align-self-xl-baseline{align-self:baseline !important}.align-self-xl-stretch{align-self:stretch !important}.order-xl-first{order:-1 !important}.order-xl-0{order:0 !important}.order-xl-1{order:1 !important}.order-xl-2{order:2 !important}.order-xl-3{order:3 !important}.order-xl-4{order:4 !important}.order-xl-5{order:5 !important}.order-xl-last{order:6 !important}.m-xl-0{margin:0 !important}.m-xl-1{margin:.25rem !important}.m-xl-2{margin:.5rem !important}.m-xl-3{margin:1rem !important}.m-xl-4{margin:1.5rem !important}.m-xl-5{margin:3rem !important}.m-xl-auto{margin:auto !important}.mx-xl-0{margin-right:0 !important;margin-left:0 !important}.mx-xl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xl-auto{margin-right:auto !important;margin-left:auto !important}.my-xl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xl-0{margin-top:0 !important}.mt-xl-1{margin-top:.25rem !important}.mt-xl-2{margin-top:.5rem !important}.mt-xl-3{margin-top:1rem !important}.mt-xl-4{margin-top:1.5rem !important}.mt-xl-5{margin-top:3rem !important}.mt-xl-auto{margin-top:auto !important}.me-xl-0{margin-right:0 !important}.me-xl-1{margin-right:.25rem !important}.me-xl-2{margin-right:.5rem !important}.me-xl-3{margin-right:1rem !important}.me-xl-4{margin-right:1.5rem !important}.me-xl-5{margin-right:3rem !important}.me-xl-auto{margin-right:auto !important}.mb-xl-0{margin-bottom:0 !important}.mb-xl-1{margin-bottom:.25rem !important}.mb-xl-2{margin-bottom:.5rem !important}.mb-xl-3{margin-bottom:1rem !important}.mb-xl-4{margin-bottom:1.5rem !important}.mb-xl-5{margin-bottom:3rem !important}.mb-xl-auto{margin-bottom:auto !important}.ms-xl-0{margin-left:0 !important}.ms-xl-1{margin-left:.25rem !important}.ms-xl-2{margin-left:.5rem !important}.ms-xl-3{margin-left:1rem !important}.ms-xl-4{margin-left:1.5rem !important}.ms-xl-5{margin-left:3rem !important}.ms-xl-auto{margin-left:auto !important}.p-xl-0{padding:0 !important}.p-xl-1{padding:.25rem !important}.p-xl-2{padding:.5rem !important}.p-xl-3{padding:1rem !important}.p-xl-4{padding:1.5rem !important}.p-xl-5{padding:3rem !important}.px-xl-0{padding-right:0 !important;padding-left:0 !important}.px-xl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xl-0{padding-top:0 !important}.pt-xl-1{padding-top:.25rem !important}.pt-xl-2{padding-top:.5rem !important}.pt-xl-3{padding-top:1rem !important}.pt-xl-4{padding-top:1.5rem !important}.pt-xl-5{padding-top:3rem !important}.pe-xl-0{padding-right:0 !important}.pe-xl-1{padding-right:.25rem !important}.pe-xl-2{padding-right:.5rem !important}.pe-xl-3{padding-right:1rem !important}.pe-xl-4{padding-right:1.5rem !important}.pe-xl-5{padding-right:3rem !important}.pb-xl-0{padding-bottom:0 !important}.pb-xl-1{padding-bottom:.25rem !important}.pb-xl-2{padding-bottom:.5rem !important}.pb-xl-3{padding-bottom:1rem !important}.pb-xl-4{padding-bottom:1.5rem !important}.pb-xl-5{padding-bottom:3rem !important}.ps-xl-0{padding-left:0 !important}.ps-xl-1{padding-left:.25rem !important}.ps-xl-2{padding-left:.5rem !important}.ps-xl-3{padding-left:1rem !important}.ps-xl-4{padding-left:1.5rem !important}.ps-xl-5{padding-left:3rem !important}.gap-xl-0{gap:0 !important}.gap-xl-1{gap:.25rem !important}.gap-xl-2{gap:.5rem !important}.gap-xl-3{gap:1rem !important}.gap-xl-4{gap:1.5rem !important}.gap-xl-5{gap:3rem !important}.row-gap-xl-0{row-gap:0 !important}.row-gap-xl-1{row-gap:.25rem !important}.row-gap-xl-2{row-gap:.5rem !important}.row-gap-xl-3{row-gap:1rem !important}.row-gap-xl-4{row-gap:1.5rem !important}.row-gap-xl-5{row-gap:3rem !important}.column-gap-xl-0{column-gap:0 !important}.column-gap-xl-1{column-gap:.25rem !important}.column-gap-xl-2{column-gap:.5rem !important}.column-gap-xl-3{column-gap:1rem !important}.column-gap-xl-4{column-gap:1.5rem !important}.column-gap-xl-5{column-gap:3rem !important}.text-xl-start{text-align:left !important}.text-xl-end{text-align:right !important}.text-xl-center{text-align:center !important}}@media(min-width: 1400px){.float-xxl-start{float:left !important}.float-xxl-end{float:right !important}.float-xxl-none{float:none !important}.object-fit-xxl-contain{object-fit:contain !important}.object-fit-xxl-cover{object-fit:cover !important}.object-fit-xxl-fill{object-fit:fill !important}.object-fit-xxl-scale{object-fit:scale-down !important}.object-fit-xxl-none{object-fit:none !important}.d-xxl-inline{display:inline !important}.d-xxl-inline-block{display:inline-block !important}.d-xxl-block{display:block !important}.d-xxl-grid{display:grid !important}.d-xxl-inline-grid{display:inline-grid !important}.d-xxl-table{display:table !important}.d-xxl-table-row{display:table-row !important}.d-xxl-table-cell{display:table-cell !important}.d-xxl-flex{display:flex !important}.d-xxl-inline-flex{display:inline-flex !important}.d-xxl-none{display:none !important}.flex-xxl-fill{flex:1 1 auto !important}.flex-xxl-row{flex-direction:row !important}.flex-xxl-column{flex-direction:column !important}.flex-xxl-row-reverse{flex-direction:row-reverse !important}.flex-xxl-column-reverse{flex-direction:column-reverse !important}.flex-xxl-grow-0{flex-grow:0 !important}.flex-xxl-grow-1{flex-grow:1 !important}.flex-xxl-shrink-0{flex-shrink:0 !important}.flex-xxl-shrink-1{flex-shrink:1 !important}.flex-xxl-wrap{flex-wrap:wrap !important}.flex-xxl-nowrap{flex-wrap:nowrap !important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-xxl-start{justify-content:flex-start !important}.justify-content-xxl-end{justify-content:flex-end !important}.justify-content-xxl-center{justify-content:center !important}.justify-content-xxl-between{justify-content:space-between !important}.justify-content-xxl-around{justify-content:space-around !important}.justify-content-xxl-evenly{justify-content:space-evenly !important}.align-items-xxl-start{align-items:flex-start !important}.align-items-xxl-end{align-items:flex-end !important}.align-items-xxl-center{align-items:center !important}.align-items-xxl-baseline{align-items:baseline !important}.align-items-xxl-stretch{align-items:stretch !important}.align-content-xxl-start{align-content:flex-start !important}.align-content-xxl-end{align-content:flex-end !important}.align-content-xxl-center{align-content:center !important}.align-content-xxl-between{align-content:space-between !important}.align-content-xxl-around{align-content:space-around !important}.align-content-xxl-stretch{align-content:stretch !important}.align-self-xxl-auto{align-self:auto !important}.align-self-xxl-start{align-self:flex-start !important}.align-self-xxl-end{align-self:flex-end !important}.align-self-xxl-center{align-self:center !important}.align-self-xxl-baseline{align-self:baseline !important}.align-self-xxl-stretch{align-self:stretch !important}.order-xxl-first{order:-1 !important}.order-xxl-0{order:0 !important}.order-xxl-1{order:1 !important}.order-xxl-2{order:2 !important}.order-xxl-3{order:3 !important}.order-xxl-4{order:4 !important}.order-xxl-5{order:5 !important}.order-xxl-last{order:6 !important}.m-xxl-0{margin:0 !important}.m-xxl-1{margin:.25rem !important}.m-xxl-2{margin:.5rem !important}.m-xxl-3{margin:1rem !important}.m-xxl-4{margin:1.5rem !important}.m-xxl-5{margin:3rem !important}.m-xxl-auto{margin:auto !important}.mx-xxl-0{margin-right:0 !important;margin-left:0 !important}.mx-xxl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xxl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xxl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xxl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xxl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xxl-auto{margin-right:auto !important;margin-left:auto !important}.my-xxl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xxl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xxl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xxl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xxl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xxl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xxl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xxl-0{margin-top:0 !important}.mt-xxl-1{margin-top:.25rem !important}.mt-xxl-2{margin-top:.5rem !important}.mt-xxl-3{margin-top:1rem !important}.mt-xxl-4{margin-top:1.5rem !important}.mt-xxl-5{margin-top:3rem !important}.mt-xxl-auto{margin-top:auto !important}.me-xxl-0{margin-right:0 !important}.me-xxl-1{margin-right:.25rem !important}.me-xxl-2{margin-right:.5rem !important}.me-xxl-3{margin-right:1rem !important}.me-xxl-4{margin-right:1.5rem !important}.me-xxl-5{margin-right:3rem !important}.me-xxl-auto{margin-right:auto !important}.mb-xxl-0{margin-bottom:0 !important}.mb-xxl-1{margin-bottom:.25rem !important}.mb-xxl-2{margin-bottom:.5rem !important}.mb-xxl-3{margin-bottom:1rem !important}.mb-xxl-4{margin-bottom:1.5rem !important}.mb-xxl-5{margin-bottom:3rem !important}.mb-xxl-auto{margin-bottom:auto !important}.ms-xxl-0{margin-left:0 !important}.ms-xxl-1{margin-left:.25rem !important}.ms-xxl-2{margin-left:.5rem !important}.ms-xxl-3{margin-left:1rem !important}.ms-xxl-4{margin-left:1.5rem !important}.ms-xxl-5{margin-left:3rem !important}.ms-xxl-auto{margin-left:auto !important}.p-xxl-0{padding:0 !important}.p-xxl-1{padding:.25rem !important}.p-xxl-2{padding:.5rem !important}.p-xxl-3{padding:1rem !important}.p-xxl-4{padding:1.5rem !important}.p-xxl-5{padding:3rem !important}.px-xxl-0{padding-right:0 !important;padding-left:0 !important}.px-xxl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xxl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xxl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xxl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xxl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xxl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xxl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xxl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xxl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xxl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xxl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xxl-0{padding-top:0 !important}.pt-xxl-1{padding-top:.25rem !important}.pt-xxl-2{padding-top:.5rem !important}.pt-xxl-3{padding-top:1rem !important}.pt-xxl-4{padding-top:1.5rem !important}.pt-xxl-5{padding-top:3rem !important}.pe-xxl-0{padding-right:0 !important}.pe-xxl-1{padding-right:.25rem !important}.pe-xxl-2{padding-right:.5rem !important}.pe-xxl-3{padding-right:1rem !important}.pe-xxl-4{padding-right:1.5rem !important}.pe-xxl-5{padding-right:3rem !important}.pb-xxl-0{padding-bottom:0 !important}.pb-xxl-1{padding-bottom:.25rem !important}.pb-xxl-2{padding-bottom:.5rem !important}.pb-xxl-3{padding-bottom:1rem !important}.pb-xxl-4{padding-bottom:1.5rem !important}.pb-xxl-5{padding-bottom:3rem !important}.ps-xxl-0{padding-left:0 !important}.ps-xxl-1{padding-left:.25rem !important}.ps-xxl-2{padding-left:.5rem !important}.ps-xxl-3{padding-left:1rem !important}.ps-xxl-4{padding-left:1.5rem !important}.ps-xxl-5{padding-left:3rem !important}.gap-xxl-0{gap:0 !important}.gap-xxl-1{gap:.25rem !important}.gap-xxl-2{gap:.5rem !important}.gap-xxl-3{gap:1rem !important}.gap-xxl-4{gap:1.5rem !important}.gap-xxl-5{gap:3rem !important}.row-gap-xxl-0{row-gap:0 !important}.row-gap-xxl-1{row-gap:.25rem !important}.row-gap-xxl-2{row-gap:.5rem !important}.row-gap-xxl-3{row-gap:1rem !important}.row-gap-xxl-4{row-gap:1.5rem !important}.row-gap-xxl-5{row-gap:3rem !important}.column-gap-xxl-0{column-gap:0 !important}.column-gap-xxl-1{column-gap:.25rem !important}.column-gap-xxl-2{column-gap:.5rem !important}.column-gap-xxl-3{column-gap:1rem !important}.column-gap-xxl-4{column-gap:1.5rem !important}.column-gap-xxl-5{column-gap:3rem !important}.text-xxl-start{text-align:left !important}.text-xxl-end{text-align:right !important}.text-xxl-center{text-align:center !important}}.bg-default{color:#000}.bg-primary{color:#fff}.bg-secondary{color:#fff}.bg-success{color:#fff}.bg-info{color:#000}.bg-warning{color:#000}.bg-danger{color:#fff}.bg-light{color:#000}.bg-dark{color:#fff}@media(min-width: 1200px){.fs-1{font-size:2rem !important}.fs-2{font-size:1.65rem !important}.fs-3{font-size:1.45rem !important}}@media print{.d-print-inline{display:inline !important}.d-print-inline-block{display:inline-block !important}.d-print-block{display:block !important}.d-print-grid{display:grid !important}.d-print-inline-grid{display:inline-grid !important}.d-print-table{display:table !important}.d-print-table-row{display:table-row !important}.d-print-table-cell{display:table-cell !important}.d-print-flex{display:flex !important}.d-print-inline-flex{display:inline-flex !important}.d-print-none{display:none !important}}:root{--bslib-spacer: 1rem;--bslib-mb-spacer: var(--bslib-spacer, 1rem)}.bslib-mb-spacing{margin-bottom:var(--bslib-mb-spacer)}.bslib-gap-spacing{gap:var(--bslib-mb-spacer)}.bslib-gap-spacing>.bslib-mb-spacing,.bslib-gap-spacing>.form-group,.bslib-gap-spacing>p,.bslib-gap-spacing>pre{margin-bottom:0}.html-fill-container>.html-fill-item.bslib-mb-spacing{margin-bottom:0}.tab-content>.tab-pane.html-fill-container{display:none}.tab-content>.active.html-fill-container{display:flex}.tab-content.html-fill-container{padding:0}.bg-blue{--bslib-color-bg: #0d6efd;--bslib-color-fg: #ffffff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-blue{--bslib-color-fg: #0d6efd;color:var(--bslib-color-fg)}.bg-indigo{--bslib-color-bg: #6610f2;--bslib-color-fg: #ffffff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-indigo{--bslib-color-fg: #6610f2;color:var(--bslib-color-fg)}.bg-purple{--bslib-color-bg: #6f42c1;--bslib-color-fg: #ffffff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-purple{--bslib-color-fg: #6f42c1;color:var(--bslib-color-fg)}.bg-pink{--bslib-color-bg: #d63384;--bslib-color-fg: #ffffff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-pink{--bslib-color-fg: #d63384;color:var(--bslib-color-fg)}.bg-red{--bslib-color-bg: #dc3545;--bslib-color-fg: #ffffff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-red{--bslib-color-fg: #dc3545;color:var(--bslib-color-fg)}.bg-orange{--bslib-color-bg: #fd7e14;--bslib-color-fg: #000;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-orange{--bslib-color-fg: #fd7e14;color:var(--bslib-color-fg)}.bg-yellow{--bslib-color-bg: #ffc107;--bslib-color-fg: #000;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-yellow{--bslib-color-fg: #ffc107;color:var(--bslib-color-fg)}.bg-green{--bslib-color-bg: #198754;--bslib-color-fg: #ffffff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-green{--bslib-color-fg: #198754;color:var(--bslib-color-fg)}.bg-teal{--bslib-color-bg: #20c997;--bslib-color-fg: #000;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-teal{--bslib-color-fg: #20c997;color:var(--bslib-color-fg)}.bg-cyan{--bslib-color-bg: #0dcaf0;--bslib-color-fg: #000;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-cyan{--bslib-color-fg: #0dcaf0;color:var(--bslib-color-fg)}.text-default{--bslib-color-fg: #dee2e6}.bg-default{--bslib-color-bg: #dee2e6;--bslib-color-fg: #000}.text-primary{--bslib-color-fg: #0d6efd}.bg-primary{--bslib-color-bg: #0d6efd;--bslib-color-fg: #ffffff}.text-secondary{--bslib-color-fg: #6c757d}.bg-secondary{--bslib-color-bg: #6c757d;--bslib-color-fg: #ffffff}.text-success{--bslib-color-fg: #198754}.bg-success{--bslib-color-bg: #198754;--bslib-color-fg: #ffffff}.text-info{--bslib-color-fg: #0dcaf0}.bg-info{--bslib-color-bg: #0dcaf0;--bslib-color-fg: #000}.text-warning{--bslib-color-fg: #ffc107}.bg-warning{--bslib-color-bg: #ffc107;--bslib-color-fg: #000}.text-danger{--bslib-color-fg: #dc3545}.bg-danger{--bslib-color-bg: #dc3545;--bslib-color-fg: #ffffff}.text-light{--bslib-color-fg: #f8f9fa}.bg-light{--bslib-color-bg: #f8f9fa;--bslib-color-fg: #000}.text-dark{--bslib-color-fg: #212529}.bg-dark{--bslib-color-bg: #212529;--bslib-color-fg: #ffffff}.bg-gradient-blue-indigo{--bslib-color-fg: #ffffff;--bslib-color-bg: #3148f9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #3148f9;color:#fff}.bg-gradient-blue-purple{--bslib-color-fg: #ffffff;--bslib-color-bg: #345ce5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #345ce5;color:#fff}.bg-gradient-blue-pink{--bslib-color-fg: #ffffff;--bslib-color-bg: #5d56cd;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #5d56cd;color:#fff}.bg-gradient-blue-red{--bslib-color-fg: #ffffff;--bslib-color-bg: #6057b3;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #6057b3;color:#fff}.bg-gradient-blue-orange{--bslib-color-fg: #ffffff;--bslib-color-bg: #6d74a0;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #6d74a0;color:#fff}.bg-gradient-blue-yellow{--bslib-color-fg: #000;--bslib-color-bg: #6e8f9b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #6e8f9b;color:#000}.bg-gradient-blue-green{--bslib-color-fg: #ffffff;--bslib-color-bg: #1278b9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #1278b9;color:#fff}.bg-gradient-blue-teal{--bslib-color-fg: #000;--bslib-color-bg: #1592d4;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #1592d4;color:#000}.bg-gradient-blue-cyan{--bslib-color-fg: #000;--bslib-color-bg: #0d93f8;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #0d93f8;color:#000}.bg-gradient-indigo-blue{--bslib-color-fg: #ffffff;--bslib-color-bg: #4236f6;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #4236f6;color:#fff}.bg-gradient-indigo-purple{--bslib-color-fg: #ffffff;--bslib-color-bg: #6a24de;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #6a24de;color:#fff}.bg-gradient-indigo-pink{--bslib-color-fg: #ffffff;--bslib-color-bg: #931ec6;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #931ec6;color:#fff}.bg-gradient-indigo-red{--bslib-color-fg: #ffffff;--bslib-color-bg: #951fad;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #951fad;color:#fff}.bg-gradient-indigo-orange{--bslib-color-fg: #ffffff;--bslib-color-bg: #a23c99;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #a23c99;color:#fff}.bg-gradient-indigo-yellow{--bslib-color-fg: #ffffff;--bslib-color-bg: #a35794;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #a35794;color:#fff}.bg-gradient-indigo-green{--bslib-color-fg: #ffffff;--bslib-color-bg: #4740b3;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #4740b3;color:#fff}.bg-gradient-indigo-teal{--bslib-color-fg: #ffffff;--bslib-color-bg: #4a5ace;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #4a5ace;color:#fff}.bg-gradient-indigo-cyan{--bslib-color-fg: #ffffff;--bslib-color-bg: #425af1;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #425af1;color:#fff}.bg-gradient-purple-blue{--bslib-color-fg: #ffffff;--bslib-color-bg: #4854d9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #4854d9;color:#fff}.bg-gradient-purple-indigo{--bslib-color-fg: #ffffff;--bslib-color-bg: #6b2ed5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #6b2ed5;color:#fff}.bg-gradient-purple-pink{--bslib-color-fg: #ffffff;--bslib-color-bg: #983ca9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #983ca9;color:#fff}.bg-gradient-purple-red{--bslib-color-fg: #ffffff;--bslib-color-bg: #9b3d8f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #9b3d8f;color:#fff}.bg-gradient-purple-orange{--bslib-color-fg: #ffffff;--bslib-color-bg: #a85a7c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #a85a7c;color:#fff}.bg-gradient-purple-yellow{--bslib-color-fg: #000;--bslib-color-bg: #a97577;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #a97577;color:#000}.bg-gradient-purple-green{--bslib-color-fg: #ffffff;--bslib-color-bg: #4d5e95;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #4d5e95;color:#fff}.bg-gradient-purple-teal{--bslib-color-fg: #ffffff;--bslib-color-bg: #4f78b0;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #4f78b0;color:#fff}.bg-gradient-purple-cyan{--bslib-color-fg: #000;--bslib-color-bg: #4878d4;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #4878d4;color:#000}.bg-gradient-pink-blue{--bslib-color-fg: #ffffff;--bslib-color-bg: #864bb4;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #864bb4;color:#fff}.bg-gradient-pink-indigo{--bslib-color-fg: #ffffff;--bslib-color-bg: #a925b0;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #a925b0;color:#fff}.bg-gradient-pink-purple{--bslib-color-fg: #ffffff;--bslib-color-bg: #ad399c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #ad399c;color:#fff}.bg-gradient-pink-red{--bslib-color-fg: #ffffff;--bslib-color-bg: #d8346b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #d8346b;color:#fff}.bg-gradient-pink-orange{--bslib-color-fg: #000;--bslib-color-bg: #e65157;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #e65157;color:#000}.bg-gradient-pink-yellow{--bslib-color-fg: #000;--bslib-color-bg: #e66c52;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #e66c52;color:#000}.bg-gradient-pink-green{--bslib-color-fg: #ffffff;--bslib-color-bg: #8a5571;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #8a5571;color:#fff}.bg-gradient-pink-teal{--bslib-color-fg: #000;--bslib-color-bg: #8d6f8c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #8d6f8c;color:#000}.bg-gradient-pink-cyan{--bslib-color-fg: #000;--bslib-color-bg: #866faf;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #866faf;color:#000}.bg-gradient-red-blue{--bslib-color-fg: #ffffff;--bslib-color-bg: #894c8f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #894c8f;color:#fff}.bg-gradient-red-indigo{--bslib-color-fg: #ffffff;--bslib-color-bg: #ad268a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #ad268a;color:#fff}.bg-gradient-red-purple{--bslib-color-fg: #ffffff;--bslib-color-bg: #b03a77;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #b03a77;color:#fff}.bg-gradient-red-pink{--bslib-color-fg: #ffffff;--bslib-color-bg: #da345e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #da345e;color:#fff}.bg-gradient-red-orange{--bslib-color-fg: #000;--bslib-color-bg: #e95231;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #e95231;color:#000}.bg-gradient-red-yellow{--bslib-color-fg: #000;--bslib-color-bg: #ea6d2c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #ea6d2c;color:#000}.bg-gradient-red-green{--bslib-color-fg: #ffffff;--bslib-color-bg: #8e564b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #8e564b;color:#fff}.bg-gradient-red-teal{--bslib-color-fg: #000;--bslib-color-bg: #917066;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #917066;color:#000}.bg-gradient-red-cyan{--bslib-color-fg: #000;--bslib-color-bg: #897189;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #897189;color:#000}.bg-gradient-orange-blue{--bslib-color-fg: #000;--bslib-color-bg: #9d7871;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #9d7871;color:#000}.bg-gradient-orange-indigo{--bslib-color-fg: #000;--bslib-color-bg: #c1526d;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #c1526d;color:#000}.bg-gradient-orange-purple{--bslib-color-fg: #000;--bslib-color-bg: #c46659;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #c46659;color:#000}.bg-gradient-orange-pink{--bslib-color-fg: #000;--bslib-color-bg: #ed6041;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #ed6041;color:#000}.bg-gradient-orange-red{--bslib-color-fg: #000;--bslib-color-bg: #f06128;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #f06128;color:#000}.bg-gradient-orange-yellow{--bslib-color-fg: #000;--bslib-color-bg: #fe990f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #fe990f;color:#000}.bg-gradient-orange-green{--bslib-color-fg: #000;--bslib-color-bg: #a2822e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #a2822e;color:#000}.bg-gradient-orange-teal{--bslib-color-fg: #000;--bslib-color-bg: #a59c48;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #a59c48;color:#000}.bg-gradient-orange-cyan{--bslib-color-fg: #000;--bslib-color-bg: #9d9c6c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #9d9c6c;color:#000}.bg-gradient-yellow-blue{--bslib-color-fg: #000;--bslib-color-bg: #9ea069;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #9ea069;color:#000}.bg-gradient-yellow-indigo{--bslib-color-fg: #000;--bslib-color-bg: #c27a65;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #c27a65;color:#000}.bg-gradient-yellow-purple{--bslib-color-fg: #000;--bslib-color-bg: #c58e51;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #c58e51;color:#000}.bg-gradient-yellow-pink{--bslib-color-fg: #000;--bslib-color-bg: #ef8839;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #ef8839;color:#000}.bg-gradient-yellow-red{--bslib-color-fg: #000;--bslib-color-bg: #f18920;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #f18920;color:#000}.bg-gradient-yellow-orange{--bslib-color-fg: #000;--bslib-color-bg: #fea60c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #fea60c;color:#000}.bg-gradient-yellow-green{--bslib-color-fg: #000;--bslib-color-bg: #a3aa26;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #a3aa26;color:#000}.bg-gradient-yellow-teal{--bslib-color-fg: #000;--bslib-color-bg: #a6c441;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #a6c441;color:#000}.bg-gradient-yellow-cyan{--bslib-color-fg: #000;--bslib-color-bg: #9ec564;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #9ec564;color:#000}.bg-gradient-green-blue{--bslib-color-fg: #ffffff;--bslib-color-bg: #147d98;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #147d98;color:#fff}.bg-gradient-green-indigo{--bslib-color-fg: #ffffff;--bslib-color-bg: #385793;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #385793;color:#fff}.bg-gradient-green-purple{--bslib-color-fg: #ffffff;--bslib-color-bg: #3b6b80;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #3b6b80;color:#fff}.bg-gradient-green-pink{--bslib-color-fg: #ffffff;--bslib-color-bg: #656567;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #656567;color:#fff}.bg-gradient-green-red{--bslib-color-fg: #ffffff;--bslib-color-bg: #67664e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #67664e;color:#fff}.bg-gradient-green-orange{--bslib-color-fg: #000;--bslib-color-bg: #74833a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #74833a;color:#000}.bg-gradient-green-yellow{--bslib-color-fg: #000;--bslib-color-bg: #759e35;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #759e35;color:#000}.bg-gradient-green-teal{--bslib-color-fg: #000;--bslib-color-bg: #1ca16f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #1ca16f;color:#000}.bg-gradient-green-cyan{--bslib-color-fg: #000;--bslib-color-bg: #14a292;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #14a292;color:#000}.bg-gradient-teal-blue{--bslib-color-fg: #000;--bslib-color-bg: #18a5c0;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #18a5c0;color:#000}.bg-gradient-teal-indigo{--bslib-color-fg: #000;--bslib-color-bg: #3c7fbb;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #3c7fbb;color:#000}.bg-gradient-teal-purple{--bslib-color-fg: #000;--bslib-color-bg: #4093a8;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #4093a8;color:#000}.bg-gradient-teal-pink{--bslib-color-fg: #000;--bslib-color-bg: #698d8f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #698d8f;color:#000}.bg-gradient-teal-red{--bslib-color-fg: #000;--bslib-color-bg: #6b8e76;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #6b8e76;color:#000}.bg-gradient-teal-orange{--bslib-color-fg: #000;--bslib-color-bg: #78ab63;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #78ab63;color:#000}.bg-gradient-teal-yellow{--bslib-color-fg: #000;--bslib-color-bg: #79c65d;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #79c65d;color:#000}.bg-gradient-teal-green{--bslib-color-fg: #000;--bslib-color-bg: #1daf7c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #1daf7c;color:#000}.bg-gradient-teal-cyan{--bslib-color-fg: #000;--bslib-color-bg: #18c9bb;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #18c9bb;color:#000}.bg-gradient-cyan-blue{--bslib-color-fg: #000;--bslib-color-bg: #0da5f5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #0da5f5;color:#000}.bg-gradient-cyan-indigo{--bslib-color-fg: #000;--bslib-color-bg: #3180f1;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #3180f1;color:#000}.bg-gradient-cyan-purple{--bslib-color-fg: #000;--bslib-color-bg: #3494dd;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #3494dd;color:#000}.bg-gradient-cyan-pink{--bslib-color-fg: #000;--bslib-color-bg: #5d8ec5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #5d8ec5;color:#000}.bg-gradient-cyan-red{--bslib-color-fg: #000;--bslib-color-bg: #608eac;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #608eac;color:#000}.bg-gradient-cyan-orange{--bslib-color-fg: #000;--bslib-color-bg: #6dac98;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #6dac98;color:#000}.bg-gradient-cyan-yellow{--bslib-color-fg: #000;--bslib-color-bg: #6ec693;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #6ec693;color:#000}.bg-gradient-cyan-green{--bslib-color-fg: #000;--bslib-color-bg: #12afb2;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #12afb2;color:#000}.bg-gradient-cyan-teal{--bslib-color-fg: #000;--bslib-color-bg: #15cacc;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #15cacc;color:#000}.bg-blue{--bslib-color-bg: #0d6efd;--bslib-color-fg: #ffffff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-blue{--bslib-color-fg: #0d6efd;color:var(--bslib-color-fg)}.bg-indigo{--bslib-color-bg: #6610f2;--bslib-color-fg: #ffffff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-indigo{--bslib-color-fg: #6610f2;color:var(--bslib-color-fg)}.bg-purple{--bslib-color-bg: #6f42c1;--bslib-color-fg: #ffffff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-purple{--bslib-color-fg: #6f42c1;color:var(--bslib-color-fg)}.bg-pink{--bslib-color-bg: #d63384;--bslib-color-fg: #ffffff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-pink{--bslib-color-fg: #d63384;color:var(--bslib-color-fg)}.bg-red{--bslib-color-bg: #dc3545;--bslib-color-fg: #ffffff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-red{--bslib-color-fg: #dc3545;color:var(--bslib-color-fg)}.bg-orange{--bslib-color-bg: #fd7e14;--bslib-color-fg: #000;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-orange{--bslib-color-fg: #fd7e14;color:var(--bslib-color-fg)}.bg-yellow{--bslib-color-bg: #ffc107;--bslib-color-fg: #000;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-yellow{--bslib-color-fg: #ffc107;color:var(--bslib-color-fg)}.bg-green{--bslib-color-bg: #198754;--bslib-color-fg: #ffffff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-green{--bslib-color-fg: #198754;color:var(--bslib-color-fg)}.bg-teal{--bslib-color-bg: #20c997;--bslib-color-fg: #000;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-teal{--bslib-color-fg: #20c997;color:var(--bslib-color-fg)}.bg-cyan{--bslib-color-bg: #0dcaf0;--bslib-color-fg: #000;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-cyan{--bslib-color-fg: #0dcaf0;color:var(--bslib-color-fg)}.text-default{--bslib-color-fg: #dee2e6}.bg-default{--bslib-color-bg: #dee2e6;--bslib-color-fg: #000}.text-primary{--bslib-color-fg: #0d6efd}.bg-primary{--bslib-color-bg: #0d6efd;--bslib-color-fg: #ffffff}.text-secondary{--bslib-color-fg: #6c757d}.bg-secondary{--bslib-color-bg: #6c757d;--bslib-color-fg: #ffffff}.text-success{--bslib-color-fg: #198754}.bg-success{--bslib-color-bg: #198754;--bslib-color-fg: #ffffff}.text-info{--bslib-color-fg: #0dcaf0}.bg-info{--bslib-color-bg: #0dcaf0;--bslib-color-fg: #000}.text-warning{--bslib-color-fg: #ffc107}.bg-warning{--bslib-color-bg: #ffc107;--bslib-color-fg: #000}.text-danger{--bslib-color-fg: #dc3545}.bg-danger{--bslib-color-bg: #dc3545;--bslib-color-fg: #ffffff}.text-light{--bslib-color-fg: #f8f9fa}.bg-light{--bslib-color-bg: #f8f9fa;--bslib-color-fg: #000}.text-dark{--bslib-color-fg: #212529}.bg-dark{--bslib-color-bg: #212529;--bslib-color-fg: #ffffff}.bg-gradient-blue-indigo{--bslib-color-fg: #ffffff;--bslib-color-bg: #3148f9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #3148f9;color:#fff}.bg-gradient-blue-purple{--bslib-color-fg: #ffffff;--bslib-color-bg: #345ce5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #345ce5;color:#fff}.bg-gradient-blue-pink{--bslib-color-fg: #ffffff;--bslib-color-bg: #5d56cd;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #5d56cd;color:#fff}.bg-gradient-blue-red{--bslib-color-fg: #ffffff;--bslib-color-bg: #6057b3;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #6057b3;color:#fff}.bg-gradient-blue-orange{--bslib-color-fg: #ffffff;--bslib-color-bg: #6d74a0;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #6d74a0;color:#fff}.bg-gradient-blue-yellow{--bslib-color-fg: #000;--bslib-color-bg: #6e8f9b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #6e8f9b;color:#000}.bg-gradient-blue-green{--bslib-color-fg: #ffffff;--bslib-color-bg: #1278b9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #1278b9;color:#fff}.bg-gradient-blue-teal{--bslib-color-fg: #000;--bslib-color-bg: #1592d4;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #1592d4;color:#000}.bg-gradient-blue-cyan{--bslib-color-fg: #000;--bslib-color-bg: #0d93f8;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0d6efd var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #0d93f8;color:#000}.bg-gradient-indigo-blue{--bslib-color-fg: #ffffff;--bslib-color-bg: #4236f6;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #4236f6;color:#fff}.bg-gradient-indigo-purple{--bslib-color-fg: #ffffff;--bslib-color-bg: #6a24de;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #6a24de;color:#fff}.bg-gradient-indigo-pink{--bslib-color-fg: #ffffff;--bslib-color-bg: #931ec6;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #931ec6;color:#fff}.bg-gradient-indigo-red{--bslib-color-fg: #ffffff;--bslib-color-bg: #951fad;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #951fad;color:#fff}.bg-gradient-indigo-orange{--bslib-color-fg: #ffffff;--bslib-color-bg: #a23c99;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #a23c99;color:#fff}.bg-gradient-indigo-yellow{--bslib-color-fg: #ffffff;--bslib-color-bg: #a35794;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #a35794;color:#fff}.bg-gradient-indigo-green{--bslib-color-fg: #ffffff;--bslib-color-bg: #4740b3;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #4740b3;color:#fff}.bg-gradient-indigo-teal{--bslib-color-fg: #ffffff;--bslib-color-bg: #4a5ace;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #4a5ace;color:#fff}.bg-gradient-indigo-cyan{--bslib-color-fg: #ffffff;--bslib-color-bg: #425af1;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #425af1;color:#fff}.bg-gradient-purple-blue{--bslib-color-fg: #ffffff;--bslib-color-bg: #4854d9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #4854d9;color:#fff}.bg-gradient-purple-indigo{--bslib-color-fg: #ffffff;--bslib-color-bg: #6b2ed5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #6b2ed5;color:#fff}.bg-gradient-purple-pink{--bslib-color-fg: #ffffff;--bslib-color-bg: #983ca9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #983ca9;color:#fff}.bg-gradient-purple-red{--bslib-color-fg: #ffffff;--bslib-color-bg: #9b3d8f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #9b3d8f;color:#fff}.bg-gradient-purple-orange{--bslib-color-fg: #ffffff;--bslib-color-bg: #a85a7c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #a85a7c;color:#fff}.bg-gradient-purple-yellow{--bslib-color-fg: #000;--bslib-color-bg: #a97577;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #a97577;color:#000}.bg-gradient-purple-green{--bslib-color-fg: #ffffff;--bslib-color-bg: #4d5e95;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #4d5e95;color:#fff}.bg-gradient-purple-teal{--bslib-color-fg: #ffffff;--bslib-color-bg: #4f78b0;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #4f78b0;color:#fff}.bg-gradient-purple-cyan{--bslib-color-fg: #000;--bslib-color-bg: #4878d4;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #4878d4;color:#000}.bg-gradient-pink-blue{--bslib-color-fg: #ffffff;--bslib-color-bg: #864bb4;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #864bb4;color:#fff}.bg-gradient-pink-indigo{--bslib-color-fg: #ffffff;--bslib-color-bg: #a925b0;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #a925b0;color:#fff}.bg-gradient-pink-purple{--bslib-color-fg: #ffffff;--bslib-color-bg: #ad399c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #ad399c;color:#fff}.bg-gradient-pink-red{--bslib-color-fg: #ffffff;--bslib-color-bg: #d8346b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #d8346b;color:#fff}.bg-gradient-pink-orange{--bslib-color-fg: #000;--bslib-color-bg: #e65157;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #e65157;color:#000}.bg-gradient-pink-yellow{--bslib-color-fg: #000;--bslib-color-bg: #e66c52;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #e66c52;color:#000}.bg-gradient-pink-green{--bslib-color-fg: #ffffff;--bslib-color-bg: #8a5571;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #8a5571;color:#fff}.bg-gradient-pink-teal{--bslib-color-fg: #000;--bslib-color-bg: #8d6f8c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #8d6f8c;color:#000}.bg-gradient-pink-cyan{--bslib-color-fg: #000;--bslib-color-bg: #866faf;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d63384 var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #866faf;color:#000}.bg-gradient-red-blue{--bslib-color-fg: #ffffff;--bslib-color-bg: #894c8f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #894c8f;color:#fff}.bg-gradient-red-indigo{--bslib-color-fg: #ffffff;--bslib-color-bg: #ad268a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #ad268a;color:#fff}.bg-gradient-red-purple{--bslib-color-fg: #ffffff;--bslib-color-bg: #b03a77;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #b03a77;color:#fff}.bg-gradient-red-pink{--bslib-color-fg: #ffffff;--bslib-color-bg: #da345e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #da345e;color:#fff}.bg-gradient-red-orange{--bslib-color-fg: #000;--bslib-color-bg: #e95231;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #e95231;color:#000}.bg-gradient-red-yellow{--bslib-color-fg: #000;--bslib-color-bg: #ea6d2c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #ea6d2c;color:#000}.bg-gradient-red-green{--bslib-color-fg: #ffffff;--bslib-color-bg: #8e564b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #8e564b;color:#fff}.bg-gradient-red-teal{--bslib-color-fg: #000;--bslib-color-bg: #917066;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #917066;color:#000}.bg-gradient-red-cyan{--bslib-color-fg: #000;--bslib-color-bg: #897189;background:linear-gradient(var(--bg-gradient-deg, 140deg), #dc3545 var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #897189;color:#000}.bg-gradient-orange-blue{--bslib-color-fg: #000;--bslib-color-bg: #9d7871;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #9d7871;color:#000}.bg-gradient-orange-indigo{--bslib-color-fg: #000;--bslib-color-bg: #c1526d;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #c1526d;color:#000}.bg-gradient-orange-purple{--bslib-color-fg: #000;--bslib-color-bg: #c46659;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #c46659;color:#000}.bg-gradient-orange-pink{--bslib-color-fg: #000;--bslib-color-bg: #ed6041;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #ed6041;color:#000}.bg-gradient-orange-red{--bslib-color-fg: #000;--bslib-color-bg: #f06128;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #f06128;color:#000}.bg-gradient-orange-yellow{--bslib-color-fg: #000;--bslib-color-bg: #fe990f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #fe990f;color:#000}.bg-gradient-orange-green{--bslib-color-fg: #000;--bslib-color-bg: #a2822e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #a2822e;color:#000}.bg-gradient-orange-teal{--bslib-color-fg: #000;--bslib-color-bg: #a59c48;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #a59c48;color:#000}.bg-gradient-orange-cyan{--bslib-color-fg: #000;--bslib-color-bg: #9d9c6c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #9d9c6c;color:#000}.bg-gradient-yellow-blue{--bslib-color-fg: #000;--bslib-color-bg: #9ea069;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #9ea069;color:#000}.bg-gradient-yellow-indigo{--bslib-color-fg: #000;--bslib-color-bg: #c27a65;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #c27a65;color:#000}.bg-gradient-yellow-purple{--bslib-color-fg: #000;--bslib-color-bg: #c58e51;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #c58e51;color:#000}.bg-gradient-yellow-pink{--bslib-color-fg: #000;--bslib-color-bg: #ef8839;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #ef8839;color:#000}.bg-gradient-yellow-red{--bslib-color-fg: #000;--bslib-color-bg: #f18920;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #f18920;color:#000}.bg-gradient-yellow-orange{--bslib-color-fg: #000;--bslib-color-bg: #fea60c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #fea60c;color:#000}.bg-gradient-yellow-green{--bslib-color-fg: #000;--bslib-color-bg: #a3aa26;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #a3aa26;color:#000}.bg-gradient-yellow-teal{--bslib-color-fg: #000;--bslib-color-bg: #a6c441;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #a6c441;color:#000}.bg-gradient-yellow-cyan{--bslib-color-fg: #000;--bslib-color-bg: #9ec564;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #9ec564;color:#000}.bg-gradient-green-blue{--bslib-color-fg: #ffffff;--bslib-color-bg: #147d98;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #147d98;color:#fff}.bg-gradient-green-indigo{--bslib-color-fg: #ffffff;--bslib-color-bg: #385793;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #385793;color:#fff}.bg-gradient-green-purple{--bslib-color-fg: #ffffff;--bslib-color-bg: #3b6b80;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #3b6b80;color:#fff}.bg-gradient-green-pink{--bslib-color-fg: #ffffff;--bslib-color-bg: #656567;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #656567;color:#fff}.bg-gradient-green-red{--bslib-color-fg: #ffffff;--bslib-color-bg: #67664e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #67664e;color:#fff}.bg-gradient-green-orange{--bslib-color-fg: #000;--bslib-color-bg: #74833a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #74833a;color:#000}.bg-gradient-green-yellow{--bslib-color-fg: #000;--bslib-color-bg: #759e35;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #759e35;color:#000}.bg-gradient-green-teal{--bslib-color-fg: #000;--bslib-color-bg: #1ca16f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #1ca16f;color:#000}.bg-gradient-green-cyan{--bslib-color-fg: #000;--bslib-color-bg: #14a292;background:linear-gradient(var(--bg-gradient-deg, 140deg), #198754 var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #14a292;color:#000}.bg-gradient-teal-blue{--bslib-color-fg: #000;--bslib-color-bg: #18a5c0;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #18a5c0;color:#000}.bg-gradient-teal-indigo{--bslib-color-fg: #000;--bslib-color-bg: #3c7fbb;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #3c7fbb;color:#000}.bg-gradient-teal-purple{--bslib-color-fg: #000;--bslib-color-bg: #4093a8;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #4093a8;color:#000}.bg-gradient-teal-pink{--bslib-color-fg: #000;--bslib-color-bg: #698d8f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #698d8f;color:#000}.bg-gradient-teal-red{--bslib-color-fg: #000;--bslib-color-bg: #6b8e76;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #6b8e76;color:#000}.bg-gradient-teal-orange{--bslib-color-fg: #000;--bslib-color-bg: #78ab63;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #78ab63;color:#000}.bg-gradient-teal-yellow{--bslib-color-fg: #000;--bslib-color-bg: #79c65d;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #79c65d;color:#000}.bg-gradient-teal-green{--bslib-color-fg: #000;--bslib-color-bg: #1daf7c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #1daf7c;color:#000}.bg-gradient-teal-cyan{--bslib-color-fg: #000;--bslib-color-bg: #18c9bb;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #0dcaf0 var(--bg-gradient-end, 180%)) #18c9bb;color:#000}.bg-gradient-cyan-blue{--bslib-color-fg: #000;--bslib-color-bg: #0da5f5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #0d6efd var(--bg-gradient-end, 180%)) #0da5f5;color:#000}.bg-gradient-cyan-indigo{--bslib-color-fg: #000;--bslib-color-bg: #3180f1;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #3180f1;color:#000}.bg-gradient-cyan-purple{--bslib-color-fg: #000;--bslib-color-bg: #3494dd;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #3494dd;color:#000}.bg-gradient-cyan-pink{--bslib-color-fg: #000;--bslib-color-bg: #5d8ec5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #d63384 var(--bg-gradient-end, 180%)) #5d8ec5;color:#000}.bg-gradient-cyan-red{--bslib-color-fg: #000;--bslib-color-bg: #608eac;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #dc3545 var(--bg-gradient-end, 180%)) #608eac;color:#000}.bg-gradient-cyan-orange{--bslib-color-fg: #000;--bslib-color-bg: #6dac98;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #6dac98;color:#000}.bg-gradient-cyan-yellow{--bslib-color-fg: #000;--bslib-color-bg: #6ec693;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #6ec693;color:#000}.bg-gradient-cyan-green{--bslib-color-fg: #000;--bslib-color-bg: #12afb2;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #198754 var(--bg-gradient-end, 180%)) #12afb2;color:#000}.bg-gradient-cyan-teal{--bslib-color-fg: #000;--bslib-color-bg: #15cacc;background:linear-gradient(var(--bg-gradient-deg, 140deg), #0dcaf0 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #15cacc;color:#000}.tab-content>.tab-pane.html-fill-container{display:none}.tab-content>.active.html-fill-container{display:flex}.tab-content.html-fill-container{padding:0}:root{--bslib-spacer: 1rem;--bslib-mb-spacer: var(--bslib-spacer, 1rem)}.bslib-mb-spacing{margin-bottom:var(--bslib-mb-spacer)}.bslib-gap-spacing{gap:var(--bslib-mb-spacer)}.bslib-gap-spacing>.bslib-mb-spacing,.bslib-gap-spacing>.form-group,.bslib-gap-spacing>p,.bslib-gap-spacing>pre{margin-bottom:0}.html-fill-container>.html-fill-item.bslib-mb-spacing{margin-bottom:0}:root{--bslib-page-sidebar-title-bg: #517699;--bslib-page-sidebar-title-color: #ffffff}.bslib-page-title{background-color:var(--bslib-page-sidebar-title-bg);color:var(--bslib-page-sidebar-title-color);font-size:1.25rem;font-weight:300;padding:var(--bslib-spacer, 1rem);padding-left:1.5rem;margin-bottom:0;border-bottom:1px solid #dededf}html{height:100%}.bslib-page-fill{width:100%;height:100%;margin:0;padding:var(--bslib-spacer, 1rem);gap:var(--bslib-spacer, 1rem)}@media(max-width: 575.98px){.bslib-page-fill{height:var(--bslib-page-fill-mobile-height, auto)}}.accordion .accordion-header{font-size:calc(1.29rem + 0.48vw);margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2;color:var(--bs-heading-color);margin-bottom:0}@media(min-width: 1200px){.accordion .accordion-header{font-size:1.65rem}}.accordion .accordion-icon:not(:empty){margin-right:.75rem;display:flex}.accordion .accordion-button:not(.collapsed){box-shadow:none}.accordion .accordion-button:not(.collapsed):focus{box-shadow:var(--bs-accordion-btn-focus-box-shadow)}:root{--bslib-value-box-shadow: none;--bslib-value-box-border-width-auto-yes: var(--bslib-value-box-border-width-baseline);--bslib-value-box-border-width-auto-no: 0;--bslib-value-box-border-width-baseline: 1px}.bslib-value-box{border-width:var(--bslib-value-box-border-width-auto-no, var(--bslib-value-box-border-width-baseline));container-name:bslib-value-box;container-type:inline-size}.bslib-value-box.card{box-shadow:var(--bslib-value-box-shadow)}.bslib-value-box.border-auto{border-width:var(--bslib-value-box-border-width-auto-yes, var(--bslib-value-box-border-width-baseline))}.bslib-value-box.default{--bslib-value-box-bg-default: var(--bs-card-bg, #ffffff);--bslib-value-box-border-color-default: var(--bs-card-border-color, rgba(0, 0, 0, 0.175));color:var(--bslib-value-box-color);background-color:var(--bslib-value-box-bg, var(--bslib-value-box-bg-default));border-color:var(--bslib-value-box-border-color, var(--bslib-value-box-border-color-default))}.bslib-value-box .value-box-grid{display:grid;grid-template-areas:"left right";align-items:center;overflow:hidden}.bslib-value-box .value-box-showcase{height:100%;max-height:var(---bslib-value-box-showcase-max-h, 100%)}.bslib-value-box .value-box-showcase,.bslib-value-box .value-box-showcase>.html-fill-item{width:100%}.bslib-value-box[data-full-screen=true] .value-box-showcase{max-height:var(---bslib-value-box-showcase-max-h-fs, 100%)}@media screen and (min-width: 575.98px){@container bslib-value-box (max-width: 300px){.bslib-value-box:not(.showcase-bottom) .value-box-grid{grid-template-columns:1fr !important;grid-template-rows:auto auto;grid-template-areas:"top" "bottom"}.bslib-value-box:not(.showcase-bottom) .value-box-grid .value-box-showcase{grid-area:top !important}.bslib-value-box:not(.showcase-bottom) .value-box-grid .value-box-area{grid-area:bottom !important;justify-content:end}}}.bslib-value-box .value-box-area{justify-content:center;padding:1.5rem 1rem;font-size:.9rem;font-weight:500}.bslib-value-box .value-box-area *{margin-bottom:0;margin-top:0}.bslib-value-box .value-box-title{font-size:1rem;margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}.bslib-value-box .value-box-title:empty::after{content:" "}.bslib-value-box .value-box-value{font-size:calc(1.29rem + 0.48vw);margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}@media(min-width: 1200px){.bslib-value-box .value-box-value{font-size:1.65rem}}.bslib-value-box .value-box-value:empty::after{content:" "}.bslib-value-box .value-box-showcase{align-items:center;justify-content:center;margin-top:auto;margin-bottom:auto;padding:1rem}.bslib-value-box .value-box-showcase .bi,.bslib-value-box .value-box-showcase .fa,.bslib-value-box .value-box-showcase .fab,.bslib-value-box .value-box-showcase .fas,.bslib-value-box .value-box-showcase .far{opacity:.85;min-width:50px;max-width:125%}.bslib-value-box .value-box-showcase .bi,.bslib-value-box .value-box-showcase .fa,.bslib-value-box .value-box-showcase .fab,.bslib-value-box .value-box-showcase .fas,.bslib-value-box .value-box-showcase .far{font-size:4rem}.bslib-value-box.showcase-top-right .value-box-grid{grid-template-columns:1fr var(---bslib-value-box-showcase-w, 50%)}.bslib-value-box.showcase-top-right .value-box-grid .value-box-showcase{grid-area:right;margin-left:auto;align-self:start;align-items:end;padding-left:0;padding-bottom:0}.bslib-value-box.showcase-top-right .value-box-grid .value-box-area{grid-area:left;align-self:end}.bslib-value-box.showcase-top-right[data-full-screen=true] .value-box-grid{grid-template-columns:auto var(---bslib-value-box-showcase-w-fs, 1fr)}.bslib-value-box.showcase-top-right[data-full-screen=true] .value-box-grid>div{align-self:center}.bslib-value-box.showcase-top-right:not([data-full-screen=true]) .value-box-showcase{margin-top:0}@container bslib-value-box (max-width: 300px){.bslib-value-box.showcase-top-right:not([data-full-screen=true]) .value-box-grid .value-box-showcase{padding-left:1rem}}.bslib-value-box.showcase-left-center .value-box-grid{grid-template-columns:var(---bslib-value-box-showcase-w, 30%) auto}.bslib-value-box.showcase-left-center[data-full-screen=true] .value-box-grid{grid-template-columns:var(---bslib-value-box-showcase-w-fs, 1fr) auto}.bslib-value-box.showcase-left-center:not([data-fill-screen=true]) .value-box-grid .value-box-showcase{grid-area:left}.bslib-value-box.showcase-left-center:not([data-fill-screen=true]) .value-box-grid .value-box-area{grid-area:right}.bslib-value-box.showcase-bottom .value-box-grid{grid-template-columns:1fr;grid-template-rows:1fr var(---bslib-value-box-showcase-h, auto);grid-template-areas:"top" "bottom";overflow:hidden}.bslib-value-box.showcase-bottom .value-box-grid .value-box-showcase{grid-area:bottom;padding:0;margin:0}.bslib-value-box.showcase-bottom .value-box-grid .value-box-area{grid-area:top}.bslib-value-box.showcase-bottom[data-full-screen=true] .value-box-grid{grid-template-rows:1fr var(---bslib-value-box-showcase-h-fs, 2fr)}.bslib-value-box.showcase-bottom[data-full-screen=true] .value-box-grid .value-box-showcase{padding:1rem}[data-bs-theme=dark] .bslib-value-box{--bslib-value-box-shadow: 0 0.5rem 1rem rgb(0 0 0 / 50%)}@media(min-width: 576px){.nav:not(.nav-hidden){display:flex !important;display:-webkit-flex !important}.nav:not(.nav-hidden):not(.nav-stacked):not(.flex-column){float:none !important}.nav:not(.nav-hidden):not(.nav-stacked):not(.flex-column)>.bslib-nav-spacer{margin-left:auto !important}.nav:not(.nav-hidden):not(.nav-stacked):not(.flex-column)>.form-inline{margin-top:auto;margin-bottom:auto}.nav:not(.nav-hidden).nav-stacked{flex-direction:column;-webkit-flex-direction:column;height:100%}.nav:not(.nav-hidden).nav-stacked>.bslib-nav-spacer{margin-top:auto !important}}.bslib-sidebar-layout{--bslib-sidebar-transition-duration: 500ms;--bslib-sidebar-transition-easing-x: cubic-bezier(0.8, 0.78, 0.22, 1.07);--bslib-sidebar-border: var(--bs-card-border-width, 1px) solid var(--bs-card-border-color, rgba(0, 0, 0, 0.175));--bslib-sidebar-border-radius: var(--bs-border-radius);--bslib-sidebar-vert-border: var(--bs-card-border-width, 1px) solid var(--bs-card-border-color, rgba(0, 0, 0, 0.175));--bslib-sidebar-bg: rgba(var(--bs-emphasis-color-rgb, 0, 0, 0), 0.05);--bslib-sidebar-fg: var(--bs-emphasis-color, black);--bslib-sidebar-main-fg: var(--bs-card-color, var(--bs-body-color));--bslib-sidebar-main-bg: var(--bs-card-bg, var(--bs-body-bg));--bslib-sidebar-toggle-bg: rgba(var(--bs-emphasis-color-rgb, 0, 0, 0), 0.1);--bslib-sidebar-padding: calc(var(--bslib-spacer) * 1.5);--bslib-sidebar-icon-size: var(--bslib-spacer, 1rem);--bslib-sidebar-icon-button-size: calc(var(--bslib-sidebar-icon-size, 1rem) * 2);--bslib-sidebar-padding-icon: calc(var(--bslib-sidebar-icon-button-size, 2rem) * 1.5);--bslib-collapse-toggle-border-radius: var(--bs-border-radius, 0.375rem);--bslib-collapse-toggle-transform: 0deg;--bslib-sidebar-toggle-transition-easing: cubic-bezier(1, 0, 0, 1);--bslib-collapse-toggle-right-transform: 180deg;--bslib-sidebar-column-main: minmax(0, 1fr);display:grid !important;grid-template-columns:min(100% - var(--bslib-sidebar-icon-size),var(--bslib-sidebar-width, 250px)) var(--bslib-sidebar-column-main);position:relative;transition:grid-template-columns ease-in-out var(--bslib-sidebar-transition-duration);border:var(--bslib-sidebar-border);border-radius:var(--bslib-sidebar-border-radius)}@media(prefers-reduced-motion: reduce){.bslib-sidebar-layout{transition:none}}.bslib-sidebar-layout[data-bslib-sidebar-border=false]{border:none}.bslib-sidebar-layout[data-bslib-sidebar-border-radius=false]{border-radius:initial}.bslib-sidebar-layout>.main,.bslib-sidebar-layout>.sidebar{grid-row:1/2;border-radius:inherit;overflow:auto}.bslib-sidebar-layout>.main{grid-column:2/3;border-top-left-radius:0;border-bottom-left-radius:0;padding:var(--bslib-sidebar-padding);transition:padding var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration);color:var(--bslib-sidebar-main-fg);background-color:var(--bslib-sidebar-main-bg)}.bslib-sidebar-layout>.sidebar{grid-column:1/2;width:100%;height:100%;border-right:var(--bslib-sidebar-vert-border);border-top-right-radius:0;border-bottom-right-radius:0;color:var(--bslib-sidebar-fg);background-color:var(--bslib-sidebar-bg);backdrop-filter:blur(5px)}.bslib-sidebar-layout>.sidebar>.sidebar-content{display:flex;flex-direction:column;gap:var(--bslib-spacer, 1rem);padding:var(--bslib-sidebar-padding);padding-top:var(--bslib-sidebar-padding-icon)}.bslib-sidebar-layout>.sidebar>.sidebar-content>:last-child:not(.sidebar-title){margin-bottom:0}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion{margin-left:calc(-1*var(--bslib-sidebar-padding));margin-right:calc(-1*var(--bslib-sidebar-padding))}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion:last-child{margin-bottom:calc(-1*var(--bslib-sidebar-padding))}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion:not(:last-child){margin-bottom:1rem}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion .accordion-body{display:flex;flex-direction:column}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion:not(:first-child) .accordion-item:first-child{border-top:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion:not(:last-child) .accordion-item:last-child{border-bottom:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.bslib-sidebar-layout>.sidebar>.sidebar-content.has-accordion>.sidebar-title{border-bottom:none;padding-bottom:0}.bslib-sidebar-layout>.sidebar .shiny-input-container{width:100%}.bslib-sidebar-layout[data-bslib-sidebar-open=always]>.sidebar>.sidebar-content{padding-top:var(--bslib-sidebar-padding)}.bslib-sidebar-layout>.collapse-toggle{grid-row:1/2;grid-column:1/2;display:inline-flex;align-items:center;position:absolute;right:calc(var(--bslib-sidebar-icon-size));top:calc(var(--bslib-sidebar-icon-size, 1rem)/2);border:none;border-radius:var(--bslib-collapse-toggle-border-radius);height:var(--bslib-sidebar-icon-button-size, 2rem);width:var(--bslib-sidebar-icon-button-size, 2rem);display:flex;align-items:center;justify-content:center;padding:0;color:var(--bslib-sidebar-fg);background-color:unset;transition:color var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration),top var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration),right var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration),left var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration)}.bslib-sidebar-layout>.collapse-toggle:hover{background-color:var(--bslib-sidebar-toggle-bg)}.bslib-sidebar-layout>.collapse-toggle>.collapse-icon{opacity:.8;width:var(--bslib-sidebar-icon-size);height:var(--bslib-sidebar-icon-size);transform:rotateY(var(--bslib-collapse-toggle-transform));transition:transform var(--bslib-sidebar-toggle-transition-easing) var(--bslib-sidebar-transition-duration)}.bslib-sidebar-layout>.collapse-toggle:hover>.collapse-icon{opacity:1}.bslib-sidebar-layout .sidebar-title{font-size:1.25rem;line-height:1.25;margin-top:0;margin-bottom:1rem;padding-bottom:1rem;border-bottom:var(--bslib-sidebar-border)}.bslib-sidebar-layout.sidebar-right{grid-template-columns:var(--bslib-sidebar-column-main) min(100% - var(--bslib-sidebar-icon-size),var(--bslib-sidebar-width, 250px))}.bslib-sidebar-layout.sidebar-right>.main{grid-column:1/2;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:inherit;border-bottom-left-radius:inherit}.bslib-sidebar-layout.sidebar-right>.sidebar{grid-column:2/3;border-right:none;border-left:var(--bslib-sidebar-vert-border);border-top-left-radius:0;border-bottom-left-radius:0}.bslib-sidebar-layout.sidebar-right>.collapse-toggle{grid-column:2/3;left:var(--bslib-sidebar-icon-size);right:unset;border:var(--bslib-collapse-toggle-border)}.bslib-sidebar-layout.sidebar-right>.collapse-toggle>.collapse-icon{transform:rotateY(var(--bslib-collapse-toggle-right-transform))}.bslib-sidebar-layout.sidebar-collapsed{--bslib-collapse-toggle-transform: 180deg;--bslib-collapse-toggle-right-transform: 0deg;--bslib-sidebar-vert-border: none;grid-template-columns:0 minmax(0, 1fr)}.bslib-sidebar-layout.sidebar-collapsed.sidebar-right{grid-template-columns:minmax(0, 1fr) 0}.bslib-sidebar-layout.sidebar-collapsed:not(.transitioning)>.sidebar>*{display:none}.bslib-sidebar-layout.sidebar-collapsed>.main{border-radius:inherit}.bslib-sidebar-layout.sidebar-collapsed:not(.sidebar-right)>.main{padding-left:var(--bslib-sidebar-padding-icon)}.bslib-sidebar-layout.sidebar-collapsed.sidebar-right>.main{padding-right:var(--bslib-sidebar-padding-icon)}.bslib-sidebar-layout.sidebar-collapsed>.collapse-toggle{color:var(--bslib-sidebar-main-fg);top:calc(var(--bslib-sidebar-overlap-counter, 0)*(var(--bslib-sidebar-icon-size) + var(--bslib-sidebar-padding)) + var(--bslib-sidebar-icon-size, 1rem)/2);right:calc(-2.5*var(--bslib-sidebar-icon-size) - var(--bs-card-border-width, 1px))}.bslib-sidebar-layout.sidebar-collapsed.sidebar-right>.collapse-toggle{left:calc(-2.5*var(--bslib-sidebar-icon-size) - var(--bs-card-border-width, 1px));right:unset}@media(min-width: 576px){.bslib-sidebar-layout.transitioning>.sidebar>.sidebar-content{display:none}}@media(max-width: 575.98px){.bslib-sidebar-layout[data-bslib-sidebar-open=desktop]{--bslib-sidebar-js-init-collapsed: true}.bslib-sidebar-layout>.sidebar,.bslib-sidebar-layout.sidebar-right>.sidebar{border:none}.bslib-sidebar-layout>.main,.bslib-sidebar-layout.sidebar-right>.main{grid-column:1/3}.bslib-sidebar-layout[data-bslib-sidebar-open=always]{display:block !important}.bslib-sidebar-layout[data-bslib-sidebar-open=always]>.sidebar{max-height:var(--bslib-sidebar-max-height-mobile);overflow-y:auto;border-top:var(--bslib-sidebar-vert-border)}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]){grid-template-columns:100% 0}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]):not(.sidebar-collapsed)>.sidebar{z-index:1}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]):not(.sidebar-collapsed)>.collapse-toggle{z-index:1}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]).sidebar-right{grid-template-columns:0 100%}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]).sidebar-collapsed{grid-template-columns:0 100%}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]).sidebar-collapsed.sidebar-right{grid-template-columns:100% 0}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]):not(.sidebar-right)>.main{padding-left:var(--bslib-sidebar-padding-icon)}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]).sidebar-right>.main{padding-right:var(--bslib-sidebar-padding-icon)}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always])>.main{opacity:0;transition:opacity var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration)}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]).sidebar-collapsed>.main{opacity:1}}.bslib-card{overflow:auto}.bslib-card .card-body+.card-body{padding-top:0}.bslib-card .card-body{overflow:auto}.bslib-card .card-body p{margin-top:0}.bslib-card .card-body p:last-child{margin-bottom:0}.bslib-card .card-body{max-height:var(--bslib-card-body-max-height, none)}.bslib-card[data-full-screen=true]>.card-body{max-height:var(--bslib-card-body-max-height-full-screen, none)}.bslib-card .card-header .form-group{margin-bottom:0}.bslib-card .card-header .selectize-control{margin-bottom:0}.bslib-card .card-header .selectize-control .item{margin-right:1.15rem}.bslib-card .card-footer{margin-top:auto}.bslib-card .bslib-navs-card-title{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center}.bslib-card .bslib-navs-card-title .nav{margin-left:auto}.bslib-card .bslib-sidebar-layout:not([data-bslib-sidebar-border=true]){border:none}.bslib-card .bslib-sidebar-layout:not([data-bslib-sidebar-border-radius=true]){border-top-left-radius:0;border-top-right-radius:0}[data-full-screen=true]{position:fixed;inset:3.5rem 1rem 1rem;height:auto !important;max-height:none !important;width:auto !important;z-index:1070}.bslib-full-screen-enter{display:none;position:absolute;bottom:var(--bslib-full-screen-enter-bottom, 0.2rem);right:var(--bslib-full-screen-enter-right, 0);top:var(--bslib-full-screen-enter-top);left:var(--bslib-full-screen-enter-left);color:var(--bslib-color-fg, var(--bs-card-color));background-color:var(--bslib-color-bg, var(--bs-card-bg, var(--bs-body-bg)));border:var(--bs-card-border-width) solid var(--bslib-color-fg, var(--bs-card-border-color));box-shadow:0 2px 4px rgba(0,0,0,.15);margin:.2rem .4rem;padding:.55rem !important;font-size:.8rem;cursor:pointer;opacity:.7;z-index:1070}.bslib-full-screen-enter:hover{opacity:1}.card[data-full-screen=false]:hover>*>.bslib-full-screen-enter{display:block}.bslib-has-full-screen .card:hover>*>.bslib-full-screen-enter{display:none}@media(max-width: 575.98px){.bslib-full-screen-enter{display:none !important}}.bslib-full-screen-exit{position:relative;top:1.35rem;font-size:.9rem;cursor:pointer;text-decoration:none;display:flex;float:right;margin-right:2.15rem;align-items:center;color:rgba(var(--bs-body-bg-rgb), 0.8)}.bslib-full-screen-exit:hover{color:rgba(var(--bs-body-bg-rgb), 1)}.bslib-full-screen-exit svg{margin-left:.5rem;font-size:1.5rem}#bslib-full-screen-overlay{position:fixed;inset:0;background-color:rgba(var(--bs-body-color-rgb), 0.6);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);z-index:1069;animation:bslib-full-screen-overlay-enter 400ms cubic-bezier(0.6, 0.02, 0.65, 1) forwards}@keyframes bslib-full-screen-overlay-enter{0%{opacity:0}100%{opacity:1}}.navbar+.container-fluid:has(>.tab-content>.tab-pane.active.html-fill-container),.navbar+.container-sm:has(>.tab-content>.tab-pane.active.html-fill-container),.navbar+.container-md:has(>.tab-content>.tab-pane.active.html-fill-container),.navbar+.container-lg:has(>.tab-content>.tab-pane.active.html-fill-container),.navbar+.container-xl:has(>.tab-content>.tab-pane.active.html-fill-container),.navbar+.container-xxl:has(>.tab-content>.tab-pane.active.html-fill-container){padding-left:0;padding-right:0}.navbar+.container-fluid>.tab-content>.tab-pane.active.html-fill-container,.navbar+.container-sm>.tab-content>.tab-pane.active.html-fill-container,.navbar+.container-md>.tab-content>.tab-pane.active.html-fill-container,.navbar+.container-lg>.tab-content>.tab-pane.active.html-fill-container,.navbar+.container-xl>.tab-content>.tab-pane.active.html-fill-container,.navbar+.container-xxl>.tab-content>.tab-pane.active.html-fill-container{padding:var(--bslib-spacer, 1rem);gap:var(--bslib-spacer, 1rem)}.navbar+.container-fluid>.tab-content>.tab-pane.active.html-fill-container:has(>.bslib-sidebar-layout:only-child),.navbar+.container-sm>.tab-content>.tab-pane.active.html-fill-container:has(>.bslib-sidebar-layout:only-child),.navbar+.container-md>.tab-content>.tab-pane.active.html-fill-container:has(>.bslib-sidebar-layout:only-child),.navbar+.container-lg>.tab-content>.tab-pane.active.html-fill-container:has(>.bslib-sidebar-layout:only-child),.navbar+.container-xl>.tab-content>.tab-pane.active.html-fill-container:has(>.bslib-sidebar-layout:only-child),.navbar+.container-xxl>.tab-content>.tab-pane.active.html-fill-container:has(>.bslib-sidebar-layout:only-child){padding:0}.navbar+.container-fluid>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border=true]),.navbar+.container-sm>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border=true]),.navbar+.container-md>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border=true]),.navbar+.container-lg>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border=true]),.navbar+.container-xl>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border=true]),.navbar+.container-xxl>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border=true]){border-left:none;border-right:none;border-bottom:none}.navbar+.container-fluid>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border-radius=true]),.navbar+.container-sm>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border-radius=true]),.navbar+.container-md>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border-radius=true]),.navbar+.container-lg>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border-radius=true]),.navbar+.container-xl>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border-radius=true]),.navbar+.container-xxl>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border-radius=true]){border-radius:0}.navbar+div>.bslib-sidebar-layout{border-top:var(--bslib-sidebar-border)}.bslib-grid{display:grid !important;gap:var(--bslib-spacer, 1rem);height:var(--bslib-grid-height)}.bslib-grid.grid{grid-template-columns:repeat(var(--bs-columns, 12), minmax(0, 1fr));grid-template-rows:unset;grid-auto-rows:var(--bslib-grid--row-heights);--bslib-grid--row-heights--xs: unset;--bslib-grid--row-heights--sm: unset;--bslib-grid--row-heights--md: unset;--bslib-grid--row-heights--lg: unset;--bslib-grid--row-heights--xl: unset;--bslib-grid--row-heights--xxl: unset}.bslib-grid.grid.bslib-grid--row-heights--xs{--bslib-grid--row-heights: var(--bslib-grid--row-heights--xs)}@media(min-width: 576px){.bslib-grid.grid.bslib-grid--row-heights--sm{--bslib-grid--row-heights: var(--bslib-grid--row-heights--sm)}}@media(min-width: 768px){.bslib-grid.grid.bslib-grid--row-heights--md{--bslib-grid--row-heights: var(--bslib-grid--row-heights--md)}}@media(min-width: 992px){.bslib-grid.grid.bslib-grid--row-heights--lg{--bslib-grid--row-heights: var(--bslib-grid--row-heights--lg)}}@media(min-width: 1200px){.bslib-grid.grid.bslib-grid--row-heights--xl{--bslib-grid--row-heights: var(--bslib-grid--row-heights--xl)}}@media(min-width: 1400px){.bslib-grid.grid.bslib-grid--row-heights--xxl{--bslib-grid--row-heights: var(--bslib-grid--row-heights--xxl)}}.bslib-grid>*>.shiny-input-container{width:100%}.bslib-grid-item{grid-column:auto/span 1}@media(max-width: 767.98px){.bslib-grid-item{grid-column:1/-1}}@media(max-width: 575.98px){.bslib-grid{grid-template-columns:1fr !important;height:var(--bslib-grid-height-mobile)}.bslib-grid.grid{height:unset !important;grid-auto-rows:var(--bslib-grid--row-heights--xs, auto)}}.html-fill-container{display:flex;flex-direction:column;min-height:0;min-width:0}.html-fill-container>.html-fill-item{flex:1 1 auto;min-height:0;min-width:0}.html-fill-container>:not(.html-fill-item){flex:0 0 auto}.tippy-box[data-theme~=quarto]{background-color:#fff;border:solid 1px #dededf;border-radius:.375rem;color:#212529;font-size:.875rem}.tippy-box[data-theme~=quarto]>.tippy-backdrop{background-color:#fff}.tippy-box[data-theme~=quarto]>.tippy-arrow:after,.tippy-box[data-theme~=quarto]>.tippy-svg-arrow:after{content:"";position:absolute;z-index:-1}.tippy-box[data-theme~=quarto]>.tippy-arrow:after{border-color:rgba(0,0,0,0);border-style:solid}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-6px}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-6px}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-6px}.tippy-box[data-placement^=left]>.tippy-arrow:before{right:-6px}.tippy-box[data-theme~=quarto][data-placement^=top]>.tippy-arrow:before{border-top-color:#fff}.tippy-box[data-theme~=quarto][data-placement^=top]>.tippy-arrow:after{border-top-color:#dededf;border-width:7px 7px 0;top:17px;left:1px}.tippy-box[data-theme~=quarto][data-placement^=top]>.tippy-svg-arrow>svg{top:16px}.tippy-box[data-theme~=quarto][data-placement^=top]>.tippy-svg-arrow:after{top:17px}.tippy-box[data-theme~=quarto][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:#fff;bottom:16px}.tippy-box[data-theme~=quarto][data-placement^=bottom]>.tippy-arrow:after{border-bottom-color:#dededf;border-width:0 7px 7px;bottom:17px;left:1px}.tippy-box[data-theme~=quarto][data-placement^=bottom]>.tippy-svg-arrow>svg{bottom:15px}.tippy-box[data-theme~=quarto][data-placement^=bottom]>.tippy-svg-arrow:after{bottom:17px}.tippy-box[data-theme~=quarto][data-placement^=left]>.tippy-arrow:before{border-left-color:#fff}.tippy-box[data-theme~=quarto][data-placement^=left]>.tippy-arrow:after{border-left-color:#dededf;border-width:7px 0 7px 7px;left:17px;top:1px}.tippy-box[data-theme~=quarto][data-placement^=left]>.tippy-svg-arrow>svg{left:11px}.tippy-box[data-theme~=quarto][data-placement^=left]>.tippy-svg-arrow:after{left:12px}.tippy-box[data-theme~=quarto][data-placement^=right]>.tippy-arrow:before{border-right-color:#fff;right:16px}.tippy-box[data-theme~=quarto][data-placement^=right]>.tippy-arrow:after{border-width:7px 7px 7px 0;right:17px;top:1px;border-right-color:#dededf}.tippy-box[data-theme~=quarto][data-placement^=right]>.tippy-svg-arrow>svg{right:11px}.tippy-box[data-theme~=quarto][data-placement^=right]>.tippy-svg-arrow:after{right:12px}.tippy-box[data-theme~=quarto]>.tippy-svg-arrow{fill:#212529}.tippy-box[data-theme~=quarto]>.tippy-svg-arrow:after{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMCA2czEuNzk2LS4wMTMgNC42Ny0zLjYxNUM1Ljg1MS45IDYuOTMuMDA2IDggMGMxLjA3LS4wMDYgMi4xNDguODg3IDMuMzQzIDIuMzg1QzE0LjIzMyA2LjAwNSAxNiA2IDE2IDZIMHoiIGZpbGw9InJnYmEoMCwgOCwgMTYsIDAuMikiLz48L3N2Zz4=);background-size:16px 6px;width:16px;height:6px}.top-right{position:absolute;top:1em;right:1em}.visually-hidden{border:0;clip:rect(0 0 0 0);height:auto;margin:0;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none !important}.zindex-bottom{z-index:-1 !important}figure.figure{display:block}.quarto-layout-panel{margin-bottom:1em}.quarto-layout-panel>figure{width:100%}.quarto-layout-panel>figure>figcaption,.quarto-layout-panel>.panel-caption{margin-top:10pt}.quarto-layout-panel>.table-caption{margin-top:0px}.table-caption p{margin-bottom:.5em}.quarto-layout-row{display:flex;flex-direction:row;align-items:flex-start}.quarto-layout-valign-top{align-items:flex-start}.quarto-layout-valign-bottom{align-items:flex-end}.quarto-layout-valign-center{align-items:center}.quarto-layout-cell{position:relative;margin-right:20px}.quarto-layout-cell:last-child{margin-right:0}.quarto-layout-cell figure,.quarto-layout-cell>p{margin:.2em}.quarto-layout-cell img{max-width:100%}.quarto-layout-cell .html-widget{width:100% !important}.quarto-layout-cell div figure p{margin:0}.quarto-layout-cell figure{display:block;margin-inline-start:0;margin-inline-end:0}.quarto-layout-cell table{display:inline-table}.quarto-layout-cell-subref figcaption,figure .quarto-layout-row figure figcaption{text-align:center;font-style:italic}.quarto-figure{position:relative;margin-bottom:1em}.quarto-figure>figure{width:100%;margin-bottom:0}.quarto-figure-left>figure>p,.quarto-figure-left>figure>div{text-align:left}.quarto-figure-center>figure>p,.quarto-figure-center>figure>div{text-align:center}.quarto-figure-right>figure>p,.quarto-figure-right>figure>div{text-align:right}.quarto-figure>figure>div.cell-annotation,.quarto-figure>figure>div code{text-align:left}figure>p:empty{display:none}figure>p:first-child{margin-top:0;margin-bottom:0}figure>figcaption.quarto-float-caption-bottom{margin-bottom:.5em}figure>figcaption.quarto-float-caption-top{margin-top:.5em}div[id^=tbl-]{position:relative}.quarto-figure>.anchorjs-link{position:absolute;top:.6em;right:.5em}div[id^=tbl-]>.anchorjs-link{position:absolute;top:.7em;right:.3em}.quarto-figure:hover>.anchorjs-link,div[id^=tbl-]:hover>.anchorjs-link,h2:hover>.anchorjs-link,.h2:hover>.anchorjs-link,h3:hover>.anchorjs-link,.h3:hover>.anchorjs-link,h4:hover>.anchorjs-link,.h4:hover>.anchorjs-link,h5:hover>.anchorjs-link,.h5:hover>.anchorjs-link,h6:hover>.anchorjs-link,.h6:hover>.anchorjs-link,.reveal-anchorjs-link>.anchorjs-link{opacity:1}#title-block-header{margin-block-end:1rem;position:relative;margin-top:-1px}#title-block-header .abstract{margin-block-start:1rem}#title-block-header .abstract .abstract-title{font-weight:600}#title-block-header a{text-decoration:none}#title-block-header .author,#title-block-header .date,#title-block-header .doi{margin-block-end:.2rem}#title-block-header .quarto-title-block>div{display:flex}#title-block-header .quarto-title-block>div>h1,#title-block-header .quarto-title-block>div>.h1{flex-grow:1}#title-block-header .quarto-title-block>div>button{flex-shrink:0;height:2.25rem;margin-top:0}@media(min-width: 992px){#title-block-header .quarto-title-block>div>button{margin-top:5px}}tr.header>th>p:last-of-type{margin-bottom:0px}table,table.table{margin-top:.5rem;margin-bottom:.5rem}caption,.table-caption{padding-top:.5rem;padding-bottom:.5rem;text-align:center}figure.quarto-float-tbl figcaption.quarto-float-caption-top{margin-top:.5rem;margin-bottom:.25rem;text-align:center}figure.quarto-float-tbl figcaption.quarto-float-caption-bottom{padding-top:.25rem;margin-bottom:.5rem;text-align:center}.utterances{max-width:none;margin-left:-8px}iframe{margin-bottom:1em}details{margin-bottom:1em}details[show]{margin-bottom:0}details>summary{color:rgba(33,37,41,.75)}details>summary>p:only-child{display:inline}pre.sourceCode,code.sourceCode{position:relative}dd code:not(.sourceCode),p code:not(.sourceCode){white-space:pre-wrap}code{white-space:pre}@media print{code{white-space:pre-wrap}}pre>code{display:block}pre>code.sourceCode{white-space:pre}pre>code.sourceCode>span>a:first-child::before{text-decoration:none}pre.code-overflow-wrap>code.sourceCode{white-space:pre-wrap}pre.code-overflow-scroll>code.sourceCode{white-space:pre}code a:any-link{color:inherit;text-decoration:none}code a:hover{color:inherit;text-decoration:underline}ul.task-list{padding-left:1em}[data-tippy-root]{display:inline-block}.tippy-content .footnote-back{display:none}.footnote-back{margin-left:.2em}.tippy-content{overflow-x:auto}.quarto-embedded-source-code{display:none}.quarto-unresolved-ref{font-weight:600}.quarto-cover-image{max-width:35%;float:right;margin-left:30px}.cell-output-display .widget-subarea{margin-bottom:1em}.cell-output-display:not(.no-overflow-x),.knitsql-table:not(.no-overflow-x){overflow-x:auto}.panel-input{margin-bottom:1em}.panel-input>div,.panel-input>div>div{display:inline-block;vertical-align:top;padding-right:12px}.panel-input>p:last-child{margin-bottom:0}.layout-sidebar{margin-bottom:1em}.layout-sidebar .tab-content{border:none}.tab-content>.page-columns.active{display:grid}div.sourceCode>iframe{width:100%;height:300px;margin-bottom:-0.5em}a{text-underline-offset:3px}.callout pre.sourceCode{padding-left:0}div.ansi-escaped-output{font-family:monospace;display:block}/*! -* -* ansi colors from IPython notebook's -* -* we also add `bright-[color]-` synonyms for the `-[color]-intense` classes since -* that seems to be what ansi_up emits -* -*/.ansi-black-fg{color:#3e424d}.ansi-black-bg{background-color:#3e424d}.ansi-black-intense-black,.ansi-bright-black-fg{color:#282c36}.ansi-black-intense-black,.ansi-bright-black-bg{background-color:#282c36}.ansi-red-fg{color:#e75c58}.ansi-red-bg{background-color:#e75c58}.ansi-red-intense-red,.ansi-bright-red-fg{color:#b22b31}.ansi-red-intense-red,.ansi-bright-red-bg{background-color:#b22b31}.ansi-green-fg{color:#00a250}.ansi-green-bg{background-color:#00a250}.ansi-green-intense-green,.ansi-bright-green-fg{color:#007427}.ansi-green-intense-green,.ansi-bright-green-bg{background-color:#007427}.ansi-yellow-fg{color:#ddb62b}.ansi-yellow-bg{background-color:#ddb62b}.ansi-yellow-intense-yellow,.ansi-bright-yellow-fg{color:#b27d12}.ansi-yellow-intense-yellow,.ansi-bright-yellow-bg{background-color:#b27d12}.ansi-blue-fg{color:#208ffb}.ansi-blue-bg{background-color:#208ffb}.ansi-blue-intense-blue,.ansi-bright-blue-fg{color:#0065ca}.ansi-blue-intense-blue,.ansi-bright-blue-bg{background-color:#0065ca}.ansi-magenta-fg{color:#d160c4}.ansi-magenta-bg{background-color:#d160c4}.ansi-magenta-intense-magenta,.ansi-bright-magenta-fg{color:#a03196}.ansi-magenta-intense-magenta,.ansi-bright-magenta-bg{background-color:#a03196}.ansi-cyan-fg{color:#60c6c8}.ansi-cyan-bg{background-color:#60c6c8}.ansi-cyan-intense-cyan,.ansi-bright-cyan-fg{color:#258f8f}.ansi-cyan-intense-cyan,.ansi-bright-cyan-bg{background-color:#258f8f}.ansi-white-fg{color:#c5c1b4}.ansi-white-bg{background-color:#c5c1b4}.ansi-white-intense-white,.ansi-bright-white-fg{color:#a1a6b2}.ansi-white-intense-white,.ansi-bright-white-bg{background-color:#a1a6b2}.ansi-default-inverse-fg{color:#fff}.ansi-default-inverse-bg{background-color:#000}.ansi-bold{font-weight:bold}.ansi-underline{text-decoration:underline}:root{--quarto-body-bg: #ffffff;--quarto-body-color: #212529;--quarto-text-muted: rgba(33, 37, 41, 0.75);--quarto-border-color: #dededf;--quarto-border-width: 1px;--quarto-border-radius: 0.375rem}table.gt_table{color:var(--quarto-body-color);font-size:1em;width:100%;background-color:rgba(0,0,0,0);border-top-width:inherit;border-bottom-width:inherit;border-color:var(--quarto-border-color)}table.gt_table th.gt_column_spanner_outer{color:var(--quarto-body-color);background-color:rgba(0,0,0,0);border-top-width:inherit;border-bottom-width:inherit;border-color:var(--quarto-border-color)}table.gt_table th.gt_col_heading{color:var(--quarto-body-color);font-weight:bold;background-color:rgba(0,0,0,0)}table.gt_table thead.gt_col_headings{border-bottom:1px solid currentColor;border-top-width:inherit;border-top-color:var(--quarto-border-color)}table.gt_table thead.gt_col_headings:not(:first-child){border-top-width:1px;border-top-color:var(--quarto-border-color)}table.gt_table td.gt_row{border-bottom-width:1px;border-bottom-color:var(--quarto-border-color);border-top-width:0px}table.gt_table tbody.gt_table_body{border-top-width:1px;border-bottom-width:1px;border-bottom-color:var(--quarto-border-color);border-top-color:currentColor}div.columns{display:initial;gap:initial}div.column{display:inline-block;overflow-x:initial;vertical-align:top;width:50%}.code-annotation-tip-content{word-wrap:break-word}.code-annotation-container-hidden{display:none !important}dl.code-annotation-container-grid{display:grid;grid-template-columns:min-content auto}dl.code-annotation-container-grid dt{grid-column:1}dl.code-annotation-container-grid dd{grid-column:2}pre.sourceCode.code-annotation-code{padding-right:0}code.sourceCode .code-annotation-anchor{z-index:100;position:relative;float:right;background-color:rgba(0,0,0,0)}input[type=checkbox]{margin-right:.5ch}:root{--mermaid-bg-color: #ffffff;--mermaid-edge-color: #6c757d;--mermaid-node-fg-color: #212529;--mermaid-fg-color: #212529;--mermaid-fg-color--lighter: #383f45;--mermaid-fg-color--lightest: #4e5862;--mermaid-font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica Neue, Noto Sans, Liberation Sans, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji;--mermaid-label-bg-color: #ffffff;--mermaid-label-fg-color: #0d6efd;--mermaid-node-bg-color: rgba(13, 110, 253, 0.1);--mermaid-node-fg-color: #212529}@media print{:root{font-size:11pt}#quarto-sidebar,#TOC,.nav-page{display:none}.page-columns .content{grid-column-start:page-start}.fixed-top{position:relative}.panel-caption,.figure-caption,figcaption{color:#666}}.code-copy-button{position:absolute;top:0;right:0;border:0;margin-top:5px;margin-right:5px;background-color:rgba(0,0,0,0);z-index:3}.code-copy-button-tooltip{font-size:.75em}pre.sourceCode:hover>.code-copy-button>.bi::before{display:inline-block;height:1rem;width:1rem;content:"";vertical-align:-0.125em;background-image:url('data:image/svg+xml,');background-repeat:no-repeat;background-size:1rem 1rem}pre.sourceCode:hover>.code-copy-button-checked>.bi::before{background-image:url('data:image/svg+xml,')}pre.sourceCode:hover>.code-copy-button:hover>.bi::before{background-image:url('data:image/svg+xml,')}pre.sourceCode:hover>.code-copy-button-checked:hover>.bi::before{background-image:url('data:image/svg+xml,')}main ol ol,main ul ul,main ol ul,main ul ol{margin-bottom:1em}ul>li:not(:has(>p))>ul,ol>li:not(:has(>p))>ul,ul>li:not(:has(>p))>ol,ol>li:not(:has(>p))>ol{margin-bottom:0}ul>li:not(:has(>p))>ul>li:has(>p),ol>li:not(:has(>p))>ul>li:has(>p),ul>li:not(:has(>p))>ol>li:has(>p),ol>li:not(:has(>p))>ol>li:has(>p){margin-top:1rem}body{margin:0}main.page-columns>header>h1.title,main.page-columns>header>.title.h1{margin-bottom:0}@media(min-width: 992px){body .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset] 35px [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(500px, calc( 850px - 3em )) [body-content-end] 1.5em [body-end] 35px [body-end-outset] minmax(75px, 145px) [page-end-inset] 35px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.fullcontent:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset] 35px [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(500px, calc( 850px - 3em )) [body-content-end] 1.5em [body-end] 35px [body-end-outset] 35px [page-end-inset page-end] 5fr [screen-end-inset] 1.5em}body.slimcontent:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset] 35px [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(500px, calc( 850px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 35px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.listing:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc( 850px - 3em )) [body-content-end] 3em [body-end] 50px [body-end-outset] minmax(0px, 250px) [page-end-inset] minmax(50px, 100px) [page-end] 1fr [screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 35px [page-start-inset] minmax(0px, 175px) [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(450px, calc( 800px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 35px [page-start-inset] minmax(0px, 175px) [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(450px, calc( 800px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] minmax(25px, 50px) [page-start-inset] minmax(50px, 150px) [body-start-outset] minmax(25px, 50px) [body-start] 1.5em [body-content-start] minmax(500px, calc( 800px - 3em )) [body-content-end] 1.5em [body-end] minmax(25px, 50px) [body-end-outset] minmax(50px, 150px) [page-end-inset] minmax(25px, 50px) [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc( 1000px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(50px, 100px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc( 1000px - 3em )) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 50px [page-start-inset] minmax(50px, 150px) [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc( 800px - 3em )) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.slimcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(450px, calc( 750px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.listing .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc( 1000px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.slimcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 50px [page-start-inset] minmax(50px, 150px) [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(450px, calc( 750px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(50px, 150px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.listing .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] minmax(25px, 50px) [page-start-inset] minmax(50px, 150px) [body-start-outset] minmax(25px, 50px) [body-start] 1.5em [body-content-start] minmax(500px, calc( 800px - 3em )) [body-content-end] 1.5em [body-end] minmax(25px, 50px) [body-end-outset] minmax(50px, 150px) [page-end-inset] minmax(25px, 50px) [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}}@media(max-width: 991.98px){body .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset] 5fr [body-start] 1.5em [body-content-start] minmax(500px, calc( 800px - 3em )) [body-content-end] 1.5em [body-end] 35px [body-end-outset] minmax(75px, 145px) [page-end-inset] 35px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.fullcontent:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset] 5fr [body-start] 1.5em [body-content-start] minmax(500px, calc( 800px - 3em )) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.slimcontent:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset] 5fr [body-start] 1.5em [body-content-start] minmax(500px, calc( 800px - 3em )) [body-content-end] 1.5em [body-end] 35px [body-end-outset] minmax(75px, 145px) [page-end-inset] 35px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.listing:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset] 5fr [body-start] 1.5em [body-content-start] minmax(500px, calc( 1250px - 3em )) [body-content-end body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 35px [page-start-inset] minmax(0px, 145px) [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(450px, calc( 800px - 3em )) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 35px [page-start-inset] minmax(0px, 145px) [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(450px, calc( 800px - 3em )) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset body-start-outset body-start] 1.5em [body-content-start] minmax(500px, calc( 750px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(75px, 150px) [page-end-inset] 25px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(500px, calc( 750px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(25px, 50px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(500px, calc( 1000px - 3em )) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset body-start-outset body-start] 1em [body-content-start] minmax(500px, calc( 800px - 3em )) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 4fr [screen-end-inset] 1.5em [screen-end]}body.docked.slimcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(500px, calc( 750px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(25px, 50px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.listing .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(500px, calc( 750px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(25px, 50px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.slimcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset body-start-outset body-start] 1em [body-content-start] minmax(500px, calc( 750px - 3em )) [body-content-end] 1.5em [body-end] 35px [body-end-outset] minmax(75px, 145px) [page-end-inset] 35px [page-end] 4fr [screen-end-inset] 1.5em [screen-end]}body.floating.listing .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset body-start-outset body-start] 1em [body-content-start] minmax(500px, calc( 750px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(75px, 150px) [page-end-inset] 25px [page-end] 4fr [screen-end-inset] 1.5em [screen-end]}}@media(max-width: 767.98px){body .page-columns,body.fullcontent:not(.floating):not(.docked) .page-columns,body.slimcontent:not(.floating):not(.docked) .page-columns,body.docked .page-columns,body.docked.slimcontent .page-columns,body.docked.fullcontent .page-columns,body.floating .page-columns,body.floating.slimcontent .page-columns,body.floating.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(0px, 1fr) [body-content-end body-end body-end-outset page-end-inset page-end screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(0px, 1fr) [body-content-end body-end body-end-outset page-end-inset page-end screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(0px, 1fr) [body-content-end body-end body-end-outset page-end-inset page-end screen-end-inset] 1.5em [screen-end]}nav[role=doc-toc]{display:none}}body,.page-row-navigation{grid-template-rows:[page-top] max-content [contents-top] max-content [contents-bottom] max-content [page-bottom]}.page-rows-contents{grid-template-rows:[content-top] minmax(max-content, 1fr) [content-bottom] minmax(60px, max-content) [page-bottom]}.page-full{grid-column:screen-start/screen-end !important}.page-columns>*{grid-column:body-content-start/body-content-end}.page-columns.column-page>*{grid-column:page-start/page-end}.page-columns.column-page-left .page-columns.page-full>*,.page-columns.column-page-left>*{grid-column:page-start/body-content-end}.page-columns.column-page-right .page-columns.page-full>*,.page-columns.column-page-right>*{grid-column:body-content-start/page-end}.page-rows{grid-auto-rows:auto}.header{grid-column:screen-start/screen-end;grid-row:page-top/contents-top}#quarto-content{padding:0;grid-column:screen-start/screen-end;grid-row:contents-top/contents-bottom}body.floating .sidebar.sidebar-navigation{grid-column:page-start/body-start;grid-row:content-top/page-bottom}body.docked .sidebar.sidebar-navigation{grid-column:screen-start/body-start;grid-row:content-top/page-bottom}.sidebar.toc-left{grid-column:page-start/body-start;grid-row:content-top/page-bottom}.sidebar.margin-sidebar{grid-column:body-end/page-end;grid-row:content-top/page-bottom}.page-columns .content{grid-column:body-content-start/body-content-end;grid-row:content-top/content-bottom;align-content:flex-start}.page-columns .page-navigation{grid-column:body-content-start/body-content-end;grid-row:content-bottom/page-bottom}.page-columns .footer{grid-column:screen-start/screen-end;grid-row:contents-bottom/page-bottom}.page-columns .column-body{grid-column:body-content-start/body-content-end}.page-columns .column-body-fullbleed{grid-column:body-start/body-end}.page-columns .column-body-outset{grid-column:body-start-outset/body-end-outset;z-index:998;opacity:.999}.page-columns .column-body-outset table{background:#fff}.page-columns .column-body-outset-left{grid-column:body-start-outset/body-content-end;z-index:998;opacity:.999}.page-columns .column-body-outset-left table{background:#fff}.page-columns .column-body-outset-right{grid-column:body-content-start/body-end-outset;z-index:998;opacity:.999}.page-columns .column-body-outset-right table{background:#fff}.page-columns .column-page{grid-column:page-start/page-end;z-index:998;opacity:.999}.page-columns .column-page table{background:#fff}.page-columns .column-page-inset{grid-column:page-start-inset/page-end-inset;z-index:998;opacity:.999}.page-columns .column-page-inset table{background:#fff}.page-columns .column-page-inset-left{grid-column:page-start-inset/body-content-end;z-index:998;opacity:.999}.page-columns .column-page-inset-left table{background:#fff}.page-columns .column-page-inset-right{grid-column:body-content-start/page-end-inset;z-index:998;opacity:.999}.page-columns .column-page-inset-right figcaption table{background:#fff}.page-columns .column-page-left{grid-column:page-start/body-content-end;z-index:998;opacity:.999}.page-columns .column-page-left table{background:#fff}.page-columns .column-page-right{grid-column:body-content-start/page-end;z-index:998;opacity:.999}.page-columns .column-page-right figcaption table{background:#fff}#quarto-content.page-columns #quarto-margin-sidebar,#quarto-content.page-columns #quarto-sidebar{z-index:1}@media(max-width: 991.98px){#quarto-content.page-columns #quarto-margin-sidebar.collapse,#quarto-content.page-columns #quarto-sidebar.collapse,#quarto-content.page-columns #quarto-margin-sidebar.collapsing,#quarto-content.page-columns #quarto-sidebar.collapsing{z-index:1055}}#quarto-content.page-columns main.column-page,#quarto-content.page-columns main.column-page-right,#quarto-content.page-columns main.column-page-left{z-index:0}.page-columns .column-screen-inset{grid-column:screen-start-inset/screen-end-inset;z-index:998;opacity:.999}.page-columns .column-screen-inset table{background:#fff}.page-columns .column-screen-inset-left{grid-column:screen-start-inset/body-content-end;z-index:998;opacity:.999}.page-columns .column-screen-inset-left table{background:#fff}.page-columns .column-screen-inset-right{grid-column:body-content-start/screen-end-inset;z-index:998;opacity:.999}.page-columns .column-screen-inset-right table{background:#fff}.page-columns .column-screen{grid-column:screen-start/screen-end;z-index:998;opacity:.999}.page-columns .column-screen table{background:#fff}.page-columns .column-screen-left{grid-column:screen-start/body-content-end;z-index:998;opacity:.999}.page-columns .column-screen-left table{background:#fff}.page-columns .column-screen-right{grid-column:body-content-start/screen-end;z-index:998;opacity:.999}.page-columns .column-screen-right table{background:#fff}.page-columns .column-screen-inset-shaded{grid-column:screen-start/screen-end;padding:1em;background:#f8f9fa;z-index:998;opacity:.999;margin-bottom:1em}.zindex-content{z-index:998;opacity:.999}.zindex-modal{z-index:1055;opacity:.999}.zindex-over-content{z-index:999;opacity:.999}img.img-fluid.column-screen,img.img-fluid.column-screen-inset-shaded,img.img-fluid.column-screen-inset,img.img-fluid.column-screen-inset-left,img.img-fluid.column-screen-inset-right,img.img-fluid.column-screen-left,img.img-fluid.column-screen-right{width:100%}@media(min-width: 992px){.margin-caption,div.aside,aside:not(.footnotes):not(.sidebar),.column-margin{grid-column:body-end/page-end !important;z-index:998}.column-sidebar{grid-column:page-start/body-start !important;z-index:998}.column-leftmargin{grid-column:screen-start-inset/body-start !important;z-index:998}.no-row-height{height:1em;overflow:visible}}@media(max-width: 991.98px){.margin-caption,div.aside,aside:not(.footnotes):not(.sidebar),.column-margin{grid-column:body-end/page-end !important;z-index:998}.no-row-height{height:1em;overflow:visible}.page-columns.page-full{overflow:visible}.page-columns.toc-left .margin-caption,.page-columns.toc-left div.aside,.page-columns.toc-left aside:not(.footnotes):not(.sidebar),.page-columns.toc-left .column-margin{grid-column:body-content-start/body-content-end !important;z-index:998;opacity:.999}.page-columns.toc-left .no-row-height{height:initial;overflow:initial}}@media(max-width: 767.98px){.margin-caption,div.aside,aside:not(.footnotes):not(.sidebar),.column-margin{grid-column:body-content-start/body-content-end !important;z-index:998;opacity:.999}.no-row-height{height:initial;overflow:initial}#quarto-margin-sidebar{display:none}#quarto-sidebar-toc-left{display:none}.hidden-sm{display:none}}.panel-grid{display:grid;grid-template-rows:repeat(1, 1fr);grid-template-columns:repeat(24, 1fr);gap:1em}.panel-grid .g-col-1{grid-column:auto/span 1}.panel-grid .g-col-2{grid-column:auto/span 2}.panel-grid .g-col-3{grid-column:auto/span 3}.panel-grid .g-col-4{grid-column:auto/span 4}.panel-grid .g-col-5{grid-column:auto/span 5}.panel-grid .g-col-6{grid-column:auto/span 6}.panel-grid .g-col-7{grid-column:auto/span 7}.panel-grid .g-col-8{grid-column:auto/span 8}.panel-grid .g-col-9{grid-column:auto/span 9}.panel-grid .g-col-10{grid-column:auto/span 10}.panel-grid .g-col-11{grid-column:auto/span 11}.panel-grid .g-col-12{grid-column:auto/span 12}.panel-grid .g-col-13{grid-column:auto/span 13}.panel-grid .g-col-14{grid-column:auto/span 14}.panel-grid .g-col-15{grid-column:auto/span 15}.panel-grid .g-col-16{grid-column:auto/span 16}.panel-grid .g-col-17{grid-column:auto/span 17}.panel-grid .g-col-18{grid-column:auto/span 18}.panel-grid .g-col-19{grid-column:auto/span 19}.panel-grid .g-col-20{grid-column:auto/span 20}.panel-grid .g-col-21{grid-column:auto/span 21}.panel-grid .g-col-22{grid-column:auto/span 22}.panel-grid .g-col-23{grid-column:auto/span 23}.panel-grid .g-col-24{grid-column:auto/span 24}.panel-grid .g-start-1{grid-column-start:1}.panel-grid .g-start-2{grid-column-start:2}.panel-grid .g-start-3{grid-column-start:3}.panel-grid .g-start-4{grid-column-start:4}.panel-grid .g-start-5{grid-column-start:5}.panel-grid .g-start-6{grid-column-start:6}.panel-grid .g-start-7{grid-column-start:7}.panel-grid .g-start-8{grid-column-start:8}.panel-grid .g-start-9{grid-column-start:9}.panel-grid .g-start-10{grid-column-start:10}.panel-grid .g-start-11{grid-column-start:11}.panel-grid .g-start-12{grid-column-start:12}.panel-grid .g-start-13{grid-column-start:13}.panel-grid .g-start-14{grid-column-start:14}.panel-grid .g-start-15{grid-column-start:15}.panel-grid .g-start-16{grid-column-start:16}.panel-grid .g-start-17{grid-column-start:17}.panel-grid .g-start-18{grid-column-start:18}.panel-grid .g-start-19{grid-column-start:19}.panel-grid .g-start-20{grid-column-start:20}.panel-grid .g-start-21{grid-column-start:21}.panel-grid .g-start-22{grid-column-start:22}.panel-grid .g-start-23{grid-column-start:23}@media(min-width: 576px){.panel-grid .g-col-sm-1{grid-column:auto/span 1}.panel-grid .g-col-sm-2{grid-column:auto/span 2}.panel-grid .g-col-sm-3{grid-column:auto/span 3}.panel-grid .g-col-sm-4{grid-column:auto/span 4}.panel-grid .g-col-sm-5{grid-column:auto/span 5}.panel-grid .g-col-sm-6{grid-column:auto/span 6}.panel-grid .g-col-sm-7{grid-column:auto/span 7}.panel-grid .g-col-sm-8{grid-column:auto/span 8}.panel-grid .g-col-sm-9{grid-column:auto/span 9}.panel-grid .g-col-sm-10{grid-column:auto/span 10}.panel-grid .g-col-sm-11{grid-column:auto/span 11}.panel-grid .g-col-sm-12{grid-column:auto/span 12}.panel-grid .g-col-sm-13{grid-column:auto/span 13}.panel-grid .g-col-sm-14{grid-column:auto/span 14}.panel-grid .g-col-sm-15{grid-column:auto/span 15}.panel-grid .g-col-sm-16{grid-column:auto/span 16}.panel-grid .g-col-sm-17{grid-column:auto/span 17}.panel-grid .g-col-sm-18{grid-column:auto/span 18}.panel-grid .g-col-sm-19{grid-column:auto/span 19}.panel-grid .g-col-sm-20{grid-column:auto/span 20}.panel-grid .g-col-sm-21{grid-column:auto/span 21}.panel-grid .g-col-sm-22{grid-column:auto/span 22}.panel-grid .g-col-sm-23{grid-column:auto/span 23}.panel-grid .g-col-sm-24{grid-column:auto/span 24}.panel-grid .g-start-sm-1{grid-column-start:1}.panel-grid .g-start-sm-2{grid-column-start:2}.panel-grid .g-start-sm-3{grid-column-start:3}.panel-grid .g-start-sm-4{grid-column-start:4}.panel-grid .g-start-sm-5{grid-column-start:5}.panel-grid .g-start-sm-6{grid-column-start:6}.panel-grid .g-start-sm-7{grid-column-start:7}.panel-grid .g-start-sm-8{grid-column-start:8}.panel-grid .g-start-sm-9{grid-column-start:9}.panel-grid .g-start-sm-10{grid-column-start:10}.panel-grid .g-start-sm-11{grid-column-start:11}.panel-grid .g-start-sm-12{grid-column-start:12}.panel-grid .g-start-sm-13{grid-column-start:13}.panel-grid .g-start-sm-14{grid-column-start:14}.panel-grid .g-start-sm-15{grid-column-start:15}.panel-grid .g-start-sm-16{grid-column-start:16}.panel-grid .g-start-sm-17{grid-column-start:17}.panel-grid .g-start-sm-18{grid-column-start:18}.panel-grid .g-start-sm-19{grid-column-start:19}.panel-grid .g-start-sm-20{grid-column-start:20}.panel-grid .g-start-sm-21{grid-column-start:21}.panel-grid .g-start-sm-22{grid-column-start:22}.panel-grid .g-start-sm-23{grid-column-start:23}}@media(min-width: 768px){.panel-grid .g-col-md-1{grid-column:auto/span 1}.panel-grid .g-col-md-2{grid-column:auto/span 2}.panel-grid .g-col-md-3{grid-column:auto/span 3}.panel-grid .g-col-md-4{grid-column:auto/span 4}.panel-grid .g-col-md-5{grid-column:auto/span 5}.panel-grid .g-col-md-6{grid-column:auto/span 6}.panel-grid .g-col-md-7{grid-column:auto/span 7}.panel-grid .g-col-md-8{grid-column:auto/span 8}.panel-grid .g-col-md-9{grid-column:auto/span 9}.panel-grid .g-col-md-10{grid-column:auto/span 10}.panel-grid .g-col-md-11{grid-column:auto/span 11}.panel-grid .g-col-md-12{grid-column:auto/span 12}.panel-grid .g-col-md-13{grid-column:auto/span 13}.panel-grid .g-col-md-14{grid-column:auto/span 14}.panel-grid .g-col-md-15{grid-column:auto/span 15}.panel-grid .g-col-md-16{grid-column:auto/span 16}.panel-grid .g-col-md-17{grid-column:auto/span 17}.panel-grid .g-col-md-18{grid-column:auto/span 18}.panel-grid .g-col-md-19{grid-column:auto/span 19}.panel-grid .g-col-md-20{grid-column:auto/span 20}.panel-grid .g-col-md-21{grid-column:auto/span 21}.panel-grid .g-col-md-22{grid-column:auto/span 22}.panel-grid .g-col-md-23{grid-column:auto/span 23}.panel-grid .g-col-md-24{grid-column:auto/span 24}.panel-grid .g-start-md-1{grid-column-start:1}.panel-grid .g-start-md-2{grid-column-start:2}.panel-grid .g-start-md-3{grid-column-start:3}.panel-grid .g-start-md-4{grid-column-start:4}.panel-grid .g-start-md-5{grid-column-start:5}.panel-grid .g-start-md-6{grid-column-start:6}.panel-grid .g-start-md-7{grid-column-start:7}.panel-grid .g-start-md-8{grid-column-start:8}.panel-grid .g-start-md-9{grid-column-start:9}.panel-grid .g-start-md-10{grid-column-start:10}.panel-grid .g-start-md-11{grid-column-start:11}.panel-grid .g-start-md-12{grid-column-start:12}.panel-grid .g-start-md-13{grid-column-start:13}.panel-grid .g-start-md-14{grid-column-start:14}.panel-grid .g-start-md-15{grid-column-start:15}.panel-grid .g-start-md-16{grid-column-start:16}.panel-grid .g-start-md-17{grid-column-start:17}.panel-grid .g-start-md-18{grid-column-start:18}.panel-grid .g-start-md-19{grid-column-start:19}.panel-grid .g-start-md-20{grid-column-start:20}.panel-grid .g-start-md-21{grid-column-start:21}.panel-grid .g-start-md-22{grid-column-start:22}.panel-grid .g-start-md-23{grid-column-start:23}}@media(min-width: 992px){.panel-grid .g-col-lg-1{grid-column:auto/span 1}.panel-grid .g-col-lg-2{grid-column:auto/span 2}.panel-grid .g-col-lg-3{grid-column:auto/span 3}.panel-grid .g-col-lg-4{grid-column:auto/span 4}.panel-grid .g-col-lg-5{grid-column:auto/span 5}.panel-grid .g-col-lg-6{grid-column:auto/span 6}.panel-grid .g-col-lg-7{grid-column:auto/span 7}.panel-grid .g-col-lg-8{grid-column:auto/span 8}.panel-grid .g-col-lg-9{grid-column:auto/span 9}.panel-grid .g-col-lg-10{grid-column:auto/span 10}.panel-grid .g-col-lg-11{grid-column:auto/span 11}.panel-grid .g-col-lg-12{grid-column:auto/span 12}.panel-grid .g-col-lg-13{grid-column:auto/span 13}.panel-grid .g-col-lg-14{grid-column:auto/span 14}.panel-grid .g-col-lg-15{grid-column:auto/span 15}.panel-grid .g-col-lg-16{grid-column:auto/span 16}.panel-grid .g-col-lg-17{grid-column:auto/span 17}.panel-grid .g-col-lg-18{grid-column:auto/span 18}.panel-grid .g-col-lg-19{grid-column:auto/span 19}.panel-grid .g-col-lg-20{grid-column:auto/span 20}.panel-grid .g-col-lg-21{grid-column:auto/span 21}.panel-grid .g-col-lg-22{grid-column:auto/span 22}.panel-grid .g-col-lg-23{grid-column:auto/span 23}.panel-grid .g-col-lg-24{grid-column:auto/span 24}.panel-grid .g-start-lg-1{grid-column-start:1}.panel-grid .g-start-lg-2{grid-column-start:2}.panel-grid .g-start-lg-3{grid-column-start:3}.panel-grid .g-start-lg-4{grid-column-start:4}.panel-grid .g-start-lg-5{grid-column-start:5}.panel-grid .g-start-lg-6{grid-column-start:6}.panel-grid .g-start-lg-7{grid-column-start:7}.panel-grid .g-start-lg-8{grid-column-start:8}.panel-grid .g-start-lg-9{grid-column-start:9}.panel-grid .g-start-lg-10{grid-column-start:10}.panel-grid .g-start-lg-11{grid-column-start:11}.panel-grid .g-start-lg-12{grid-column-start:12}.panel-grid .g-start-lg-13{grid-column-start:13}.panel-grid .g-start-lg-14{grid-column-start:14}.panel-grid .g-start-lg-15{grid-column-start:15}.panel-grid .g-start-lg-16{grid-column-start:16}.panel-grid .g-start-lg-17{grid-column-start:17}.panel-grid .g-start-lg-18{grid-column-start:18}.panel-grid .g-start-lg-19{grid-column-start:19}.panel-grid .g-start-lg-20{grid-column-start:20}.panel-grid .g-start-lg-21{grid-column-start:21}.panel-grid .g-start-lg-22{grid-column-start:22}.panel-grid .g-start-lg-23{grid-column-start:23}}@media(min-width: 1200px){.panel-grid .g-col-xl-1{grid-column:auto/span 1}.panel-grid .g-col-xl-2{grid-column:auto/span 2}.panel-grid .g-col-xl-3{grid-column:auto/span 3}.panel-grid .g-col-xl-4{grid-column:auto/span 4}.panel-grid .g-col-xl-5{grid-column:auto/span 5}.panel-grid .g-col-xl-6{grid-column:auto/span 6}.panel-grid .g-col-xl-7{grid-column:auto/span 7}.panel-grid .g-col-xl-8{grid-column:auto/span 8}.panel-grid .g-col-xl-9{grid-column:auto/span 9}.panel-grid .g-col-xl-10{grid-column:auto/span 10}.panel-grid .g-col-xl-11{grid-column:auto/span 11}.panel-grid .g-col-xl-12{grid-column:auto/span 12}.panel-grid .g-col-xl-13{grid-column:auto/span 13}.panel-grid .g-col-xl-14{grid-column:auto/span 14}.panel-grid .g-col-xl-15{grid-column:auto/span 15}.panel-grid .g-col-xl-16{grid-column:auto/span 16}.panel-grid .g-col-xl-17{grid-column:auto/span 17}.panel-grid .g-col-xl-18{grid-column:auto/span 18}.panel-grid .g-col-xl-19{grid-column:auto/span 19}.panel-grid .g-col-xl-20{grid-column:auto/span 20}.panel-grid .g-col-xl-21{grid-column:auto/span 21}.panel-grid .g-col-xl-22{grid-column:auto/span 22}.panel-grid .g-col-xl-23{grid-column:auto/span 23}.panel-grid .g-col-xl-24{grid-column:auto/span 24}.panel-grid .g-start-xl-1{grid-column-start:1}.panel-grid .g-start-xl-2{grid-column-start:2}.panel-grid .g-start-xl-3{grid-column-start:3}.panel-grid .g-start-xl-4{grid-column-start:4}.panel-grid .g-start-xl-5{grid-column-start:5}.panel-grid .g-start-xl-6{grid-column-start:6}.panel-grid .g-start-xl-7{grid-column-start:7}.panel-grid .g-start-xl-8{grid-column-start:8}.panel-grid .g-start-xl-9{grid-column-start:9}.panel-grid .g-start-xl-10{grid-column-start:10}.panel-grid .g-start-xl-11{grid-column-start:11}.panel-grid .g-start-xl-12{grid-column-start:12}.panel-grid .g-start-xl-13{grid-column-start:13}.panel-grid .g-start-xl-14{grid-column-start:14}.panel-grid .g-start-xl-15{grid-column-start:15}.panel-grid .g-start-xl-16{grid-column-start:16}.panel-grid .g-start-xl-17{grid-column-start:17}.panel-grid .g-start-xl-18{grid-column-start:18}.panel-grid .g-start-xl-19{grid-column-start:19}.panel-grid .g-start-xl-20{grid-column-start:20}.panel-grid .g-start-xl-21{grid-column-start:21}.panel-grid .g-start-xl-22{grid-column-start:22}.panel-grid .g-start-xl-23{grid-column-start:23}}@media(min-width: 1400px){.panel-grid .g-col-xxl-1{grid-column:auto/span 1}.panel-grid .g-col-xxl-2{grid-column:auto/span 2}.panel-grid .g-col-xxl-3{grid-column:auto/span 3}.panel-grid .g-col-xxl-4{grid-column:auto/span 4}.panel-grid .g-col-xxl-5{grid-column:auto/span 5}.panel-grid .g-col-xxl-6{grid-column:auto/span 6}.panel-grid .g-col-xxl-7{grid-column:auto/span 7}.panel-grid .g-col-xxl-8{grid-column:auto/span 8}.panel-grid .g-col-xxl-9{grid-column:auto/span 9}.panel-grid .g-col-xxl-10{grid-column:auto/span 10}.panel-grid .g-col-xxl-11{grid-column:auto/span 11}.panel-grid .g-col-xxl-12{grid-column:auto/span 12}.panel-grid .g-col-xxl-13{grid-column:auto/span 13}.panel-grid .g-col-xxl-14{grid-column:auto/span 14}.panel-grid .g-col-xxl-15{grid-column:auto/span 15}.panel-grid .g-col-xxl-16{grid-column:auto/span 16}.panel-grid .g-col-xxl-17{grid-column:auto/span 17}.panel-grid .g-col-xxl-18{grid-column:auto/span 18}.panel-grid .g-col-xxl-19{grid-column:auto/span 19}.panel-grid .g-col-xxl-20{grid-column:auto/span 20}.panel-grid .g-col-xxl-21{grid-column:auto/span 21}.panel-grid .g-col-xxl-22{grid-column:auto/span 22}.panel-grid .g-col-xxl-23{grid-column:auto/span 23}.panel-grid .g-col-xxl-24{grid-column:auto/span 24}.panel-grid .g-start-xxl-1{grid-column-start:1}.panel-grid .g-start-xxl-2{grid-column-start:2}.panel-grid .g-start-xxl-3{grid-column-start:3}.panel-grid .g-start-xxl-4{grid-column-start:4}.panel-grid .g-start-xxl-5{grid-column-start:5}.panel-grid .g-start-xxl-6{grid-column-start:6}.panel-grid .g-start-xxl-7{grid-column-start:7}.panel-grid .g-start-xxl-8{grid-column-start:8}.panel-grid .g-start-xxl-9{grid-column-start:9}.panel-grid .g-start-xxl-10{grid-column-start:10}.panel-grid .g-start-xxl-11{grid-column-start:11}.panel-grid .g-start-xxl-12{grid-column-start:12}.panel-grid .g-start-xxl-13{grid-column-start:13}.panel-grid .g-start-xxl-14{grid-column-start:14}.panel-grid .g-start-xxl-15{grid-column-start:15}.panel-grid .g-start-xxl-16{grid-column-start:16}.panel-grid .g-start-xxl-17{grid-column-start:17}.panel-grid .g-start-xxl-18{grid-column-start:18}.panel-grid .g-start-xxl-19{grid-column-start:19}.panel-grid .g-start-xxl-20{grid-column-start:20}.panel-grid .g-start-xxl-21{grid-column-start:21}.panel-grid .g-start-xxl-22{grid-column-start:22}.panel-grid .g-start-xxl-23{grid-column-start:23}}main{margin-top:1em;margin-bottom:1em}h1,.h1,h2,.h2{color:inherit;margin-top:2rem;margin-bottom:1rem;font-weight:600}h1.title,.title.h1{margin-top:0}main.content>section:first-of-type>h2:first-child,main.content>section:first-of-type>.h2:first-child{margin-top:0}h2,.h2{border-bottom:1px solid #dededf;padding-bottom:.5rem}h3,.h3{font-weight:600}h3,.h3,h4,.h4{opacity:.9;margin-top:1.5rem}h5,.h5,h6,.h6{opacity:.9}.header-section-number{color:#5a6570}.nav-link.active .header-section-number{color:inherit}mark,.mark{padding:0em}.panel-caption,.figure-caption,.subfigure-caption,.table-caption,figcaption,caption{font-size:.9rem;color:#5a6570}.quarto-layout-cell[data-ref-parent] caption{color:#5a6570}.column-margin figcaption,.margin-caption,div.aside,aside,.column-margin{color:#5a6570;font-size:.825rem}.panel-caption.margin-caption{text-align:inherit}.column-margin.column-container p{margin-bottom:0}.column-margin.column-container>*:not(.collapse):first-child{padding-bottom:.5em;display:block}.column-margin.column-container>*:not(.collapse):not(:first-child){padding-top:.5em;padding-bottom:.5em;display:block}.column-margin.column-container>*.collapse:not(.show){display:none}@media(min-width: 768px){.column-margin.column-container .callout-margin-content:first-child{margin-top:4.5em}.column-margin.column-container .callout-margin-content-simple:first-child{margin-top:3.5em}}.margin-caption>*{padding-top:.5em;padding-bottom:.5em}@media(max-width: 767.98px){.quarto-layout-row{flex-direction:column}}.nav-tabs .nav-item{margin-top:1px;cursor:pointer}.tab-content{margin-top:0px;border-left:#dededf 1px solid;border-right:#dededf 1px solid;border-bottom:#dededf 1px solid;margin-left:0;padding:1em;margin-bottom:1em}@media(max-width: 767.98px){.layout-sidebar{margin-left:0;margin-right:0}}.panel-sidebar,.panel-sidebar .form-control,.panel-input,.panel-input .form-control,.selectize-dropdown{font-size:.9rem}.panel-sidebar .form-control,.panel-input .form-control{padding-top:.1rem}.tab-pane div.sourceCode{margin-top:0px}.tab-pane>p{padding-top:0}.tab-pane>p:nth-child(1){padding-top:0}.tab-pane>p:last-child{margin-bottom:0}.tab-pane>pre:last-child{margin-bottom:0}.tab-content>.tab-pane:not(.active){display:none !important}div.sourceCode{background-color:rgba(233,236,239,.65);border:1px solid rgba(233,236,239,.65);border-radius:.375rem}pre.sourceCode{background-color:rgba(0,0,0,0)}pre.sourceCode{border:none;font-size:.875em;overflow:visible !important;padding:.4em}div.sourceCode{overflow-y:hidden}.callout div.sourceCode{margin-left:initial}.blockquote{font-size:inherit;padding-left:1rem;padding-right:1.5rem;color:#5a6570}.blockquote h1:first-child,.blockquote .h1:first-child,.blockquote h2:first-child,.blockquote .h2:first-child,.blockquote h3:first-child,.blockquote .h3:first-child,.blockquote h4:first-child,.blockquote .h4:first-child,.blockquote h5:first-child,.blockquote .h5:first-child{margin-top:0}pre{background-color:initial;padding:initial;border:initial}p pre code:not(.sourceCode),li pre code:not(.sourceCode),pre code:not(.sourceCode){background-color:initial}p code:not(.sourceCode),li code:not(.sourceCode),td code:not(.sourceCode){background-color:#f8f9fa;padding:.2em}nav p code:not(.sourceCode),nav li code:not(.sourceCode),nav td code:not(.sourceCode){background-color:rgba(0,0,0,0);padding:0}td code:not(.sourceCode){white-space:pre-wrap}#quarto-embedded-source-code-modal>.modal-dialog{max-width:1000px;padding-left:1.75rem;padding-right:1.75rem}#quarto-embedded-source-code-modal>.modal-dialog>.modal-content>.modal-body{padding:0}#quarto-embedded-source-code-modal>.modal-dialog>.modal-content>.modal-body div.sourceCode{margin:0;padding:.2rem .2rem;border-radius:0px;border:none}#quarto-embedded-source-code-modal>.modal-dialog>.modal-content>.modal-header{padding:.7rem}.code-tools-button{font-size:1rem;padding:.15rem .15rem;margin-left:5px;color:rgba(33,37,41,.75);background-color:rgba(0,0,0,0);transition:initial;cursor:pointer}.code-tools-button>.bi::before{display:inline-block;height:1rem;width:1rem;content:"";vertical-align:-0.125em;background-image:url('data:image/svg+xml,');background-repeat:no-repeat;background-size:1rem 1rem}.code-tools-button:hover>.bi::before{background-image:url('data:image/svg+xml,')}#quarto-embedded-source-code-modal .code-copy-button>.bi::before{background-image:url('data:image/svg+xml,')}#quarto-embedded-source-code-modal .code-copy-button-checked>.bi::before{background-image:url('data:image/svg+xml,')}.sidebar{will-change:top;transition:top 200ms linear;position:sticky;overflow-y:auto;padding-top:1.2em;max-height:100vh}.sidebar.toc-left,.sidebar.margin-sidebar{top:0px;padding-top:1em}.sidebar.quarto-banner-title-block-sidebar>*{padding-top:1.65em}figure .quarto-notebook-link{margin-top:.5em}.quarto-notebook-link{font-size:.75em;color:rgba(33,37,41,.75);margin-bottom:1em;text-decoration:none;display:block}.quarto-notebook-link:hover{text-decoration:underline;color:#0d6efd}.quarto-notebook-link::before{display:inline-block;height:.75rem;width:.75rem;margin-bottom:0em;margin-right:.25em;content:"";vertical-align:-0.125em;background-image:url('data:image/svg+xml,');background-repeat:no-repeat;background-size:.75rem .75rem}.toc-actions i.bi,.quarto-code-links i.bi,.quarto-other-links i.bi,.quarto-alternate-notebooks i.bi,.quarto-alternate-formats i.bi{margin-right:.4em;font-size:.8rem}.quarto-other-links-text-target .quarto-code-links i.bi,.quarto-other-links-text-target .quarto-other-links i.bi{margin-right:.2em}.quarto-other-formats-text-target .quarto-alternate-formats i.bi{margin-right:.1em}.toc-actions i.bi.empty,.quarto-code-links i.bi.empty,.quarto-other-links i.bi.empty,.quarto-alternate-notebooks i.bi.empty,.quarto-alternate-formats i.bi.empty{padding-left:1em}.quarto-notebook h2,.quarto-notebook .h2{border-bottom:none}.quarto-notebook .cell-container{display:flex}.quarto-notebook .cell-container .cell{flex-grow:4}.quarto-notebook .cell-container .cell-decorator{padding-top:1.5em;padding-right:1em;text-align:right}.quarto-notebook .cell-container.code-fold .cell-decorator{padding-top:3em}.quarto-notebook .cell-code code{white-space:pre-wrap}.quarto-notebook .cell .cell-output-stderr pre code,.quarto-notebook .cell .cell-output-stdout pre code{white-space:pre-wrap;overflow-wrap:anywhere}.toc-actions,.quarto-alternate-formats,.quarto-other-links,.quarto-code-links,.quarto-alternate-notebooks{padding-left:0em}.sidebar .toc-actions a,.sidebar .quarto-alternate-formats a,.sidebar .quarto-other-links a,.sidebar .quarto-code-links a,.sidebar .quarto-alternate-notebooks a,.sidebar nav[role=doc-toc] a{text-decoration:none}.sidebar .toc-actions a:hover,.sidebar .quarto-other-links a:hover,.sidebar .quarto-code-links a:hover,.sidebar .quarto-alternate-formats a:hover,.sidebar .quarto-alternate-notebooks a:hover{color:#0d6efd}.sidebar .toc-actions h2,.sidebar .toc-actions .h2,.sidebar .quarto-code-links h2,.sidebar .quarto-code-links .h2,.sidebar .quarto-other-links h2,.sidebar .quarto-other-links .h2,.sidebar .quarto-alternate-notebooks h2,.sidebar .quarto-alternate-notebooks .h2,.sidebar .quarto-alternate-formats h2,.sidebar .quarto-alternate-formats .h2,.sidebar nav[role=doc-toc]>h2,.sidebar nav[role=doc-toc]>.h2{font-weight:500;margin-bottom:.2rem;margin-top:.3rem;font-family:inherit;border-bottom:0;padding-bottom:0;padding-top:0px}.sidebar .toc-actions>h2,.sidebar .toc-actions>.h2,.sidebar .quarto-code-links>h2,.sidebar .quarto-code-links>.h2,.sidebar .quarto-other-links>h2,.sidebar .quarto-other-links>.h2,.sidebar .quarto-alternate-notebooks>h2,.sidebar .quarto-alternate-notebooks>.h2,.sidebar .quarto-alternate-formats>h2,.sidebar .quarto-alternate-formats>.h2{font-size:.8rem}.sidebar nav[role=doc-toc]>h2,.sidebar nav[role=doc-toc]>.h2{font-size:.875rem}.sidebar nav[role=doc-toc]>ul a{border-left:1px solid #e9ecef;padding-left:.6rem}.sidebar .toc-actions h2>ul a,.sidebar .toc-actions .h2>ul a,.sidebar .quarto-code-links h2>ul a,.sidebar .quarto-code-links .h2>ul a,.sidebar .quarto-other-links h2>ul a,.sidebar .quarto-other-links .h2>ul a,.sidebar .quarto-alternate-notebooks h2>ul a,.sidebar .quarto-alternate-notebooks .h2>ul a,.sidebar .quarto-alternate-formats h2>ul a,.sidebar .quarto-alternate-formats .h2>ul a{border-left:none;padding-left:.6rem}.sidebar .toc-actions ul a:empty,.sidebar .quarto-code-links ul a:empty,.sidebar .quarto-other-links ul a:empty,.sidebar .quarto-alternate-notebooks ul a:empty,.sidebar .quarto-alternate-formats ul a:empty,.sidebar nav[role=doc-toc]>ul a:empty{display:none}.sidebar .toc-actions ul,.sidebar .quarto-code-links ul,.sidebar .quarto-other-links ul,.sidebar .quarto-alternate-notebooks ul,.sidebar .quarto-alternate-formats ul{padding-left:0;list-style:none}.sidebar nav[role=doc-toc] ul{list-style:none;padding-left:0;list-style:none}.sidebar nav[role=doc-toc]>ul{margin-left:.45em}.quarto-margin-sidebar nav[role=doc-toc]{padding-left:.5em}.sidebar .toc-actions>ul,.sidebar .quarto-code-links>ul,.sidebar .quarto-other-links>ul,.sidebar .quarto-alternate-notebooks>ul,.sidebar .quarto-alternate-formats>ul{font-size:.8rem}.sidebar nav[role=doc-toc]>ul{font-size:.875rem}.sidebar .toc-actions ul li a,.sidebar .quarto-code-links ul li a,.sidebar .quarto-other-links ul li a,.sidebar .quarto-alternate-notebooks ul li a,.sidebar .quarto-alternate-formats ul li a,.sidebar nav[role=doc-toc]>ul li a{line-height:1.1rem;padding-bottom:.2rem;padding-top:.2rem;color:inherit}.sidebar nav[role=doc-toc] ul>li>ul>li>a{padding-left:1.2em}.sidebar nav[role=doc-toc] ul>li>ul>li>ul>li>a{padding-left:2.4em}.sidebar nav[role=doc-toc] ul>li>ul>li>ul>li>ul>li>a{padding-left:3.6em}.sidebar nav[role=doc-toc] ul>li>ul>li>ul>li>ul>li>ul>li>a{padding-left:4.8em}.sidebar nav[role=doc-toc] ul>li>ul>li>ul>li>ul>li>ul>li>ul>li>a{padding-left:6em}.sidebar nav[role=doc-toc] ul>li>a.active,.sidebar nav[role=doc-toc] ul>li>ul>li>a.active{border-left:1px solid #0d6efd;color:#0d6efd !important}.sidebar nav[role=doc-toc] ul>li>a:hover,.sidebar nav[role=doc-toc] ul>li>ul>li>a:hover{color:#0d6efd !important}kbd,.kbd{color:#212529;background-color:#f8f9fa;border:1px solid;border-radius:5px;border-color:#dededf}.quarto-appendix-contents div.hanging-indent{margin-left:0em}.quarto-appendix-contents div.hanging-indent div.csl-entry{margin-left:1em;text-indent:-1em}.citation a,.footnote-ref{text-decoration:none}.footnotes ol{padding-left:1em}.tippy-content>*{margin-bottom:.7em}.tippy-content>*:last-child{margin-bottom:0}.callout{margin-top:1.25rem;margin-bottom:1.25rem;border-radius:.375rem;overflow-wrap:break-word}.callout .callout-title-container{overflow-wrap:anywhere}.callout.callout-style-simple{padding:.4em .7em;border-left:5px solid;border-right:1px solid #dededf;border-top:1px solid #dededf;border-bottom:1px solid #dededf}.callout.callout-style-default{border-left:5px solid;border-right:1px solid #dededf;border-top:1px solid #dededf;border-bottom:1px solid #dededf}.callout .callout-body-container{flex-grow:1}.callout.callout-style-simple .callout-body{font-size:.9rem;font-weight:400}.callout.callout-style-default .callout-body{font-size:.9rem;font-weight:400}.callout:not(.no-icon).callout-titled.callout-style-simple .callout-body{padding-left:1.6em}.callout.callout-titled>.callout-header{padding-top:.2em;margin-bottom:-0.2em}.callout.callout-style-simple>div.callout-header{border-bottom:none;font-size:.9rem;font-weight:600;opacity:75%}.callout.callout-style-default>div.callout-header{border-bottom:none;font-weight:600;opacity:85%;font-size:.9rem;padding-left:.5em;padding-right:.5em}.callout.callout-style-default .callout-body{padding-left:.5em;padding-right:.5em}.callout.callout-style-default .callout-body>:first-child{padding-top:.5rem;margin-top:0}.callout>div.callout-header[data-bs-toggle=collapse]{cursor:pointer}.callout.callout-style-default .callout-header[aria-expanded=false],.callout.callout-style-default .callout-header[aria-expanded=true]{padding-top:0px;margin-bottom:0px;align-items:center}.callout.callout-titled .callout-body>:last-child:not(.sourceCode),.callout.callout-titled .callout-body>div>:last-child:not(.sourceCode){padding-bottom:.5rem;margin-bottom:0}.callout:not(.callout-titled) .callout-body>:first-child,.callout:not(.callout-titled) .callout-body>div>:first-child{margin-top:.25rem}.callout:not(.callout-titled) .callout-body>:last-child,.callout:not(.callout-titled) .callout-body>div>:last-child{margin-bottom:.2rem}.callout.callout-style-simple .callout-icon::before,.callout.callout-style-simple .callout-toggle::before{height:1rem;width:1rem;display:inline-block;content:"";background-repeat:no-repeat;background-size:1rem 1rem}.callout.callout-style-default .callout-icon::before,.callout.callout-style-default .callout-toggle::before{height:.9rem;width:.9rem;display:inline-block;content:"";background-repeat:no-repeat;background-size:.9rem .9rem}.callout.callout-style-default .callout-toggle::before{margin-top:5px}.callout .callout-btn-toggle .callout-toggle::before{transition:transform .2s linear}.callout .callout-header[aria-expanded=false] .callout-toggle::before{transform:rotate(-90deg)}.callout .callout-header[aria-expanded=true] .callout-toggle::before{transform:none}.callout.callout-style-simple:not(.no-icon) div.callout-icon-container{padding-top:.2em;padding-right:.55em}.callout.callout-style-default:not(.no-icon) div.callout-icon-container{padding-top:.1em;padding-right:.35em}.callout.callout-style-default:not(.no-icon) div.callout-title-container{margin-top:-1px}.callout.callout-style-default.callout-caution:not(.no-icon) div.callout-icon-container{padding-top:.3em;padding-right:.35em}.callout>.callout-body>.callout-icon-container>.no-icon,.callout>.callout-header>.callout-icon-container>.no-icon{display:none}div.callout.callout{border-left-color:rgba(33,37,41,.75)}div.callout.callout-style-default>.callout-header{background-color:rgba(33,37,41,.75)}div.callout-note.callout{border-left-color:#0d6efd}div.callout-note.callout-style-default>.callout-header{background-color:#e7f1ff}div.callout-note:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-note.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-note .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-tip.callout{border-left-color:#198754}div.callout-tip.callout-style-default>.callout-header{background-color:#e8f3ee}div.callout-tip:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-tip.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-tip .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-warning.callout{border-left-color:#ffc107}div.callout-warning.callout-style-default>.callout-header{background-color:#fff9e6}div.callout-warning:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-warning.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-warning .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-caution.callout{border-left-color:#fd7e14}div.callout-caution.callout-style-default>.callout-header{background-color:#fff2e8}div.callout-caution:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-caution.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-caution .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-important.callout{border-left-color:#dc3545}div.callout-important.callout-style-default>.callout-header{background-color:#fcebec}div.callout-important:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-important.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-important .callout-toggle::before{background-image:url('data:image/svg+xml,')}.quarto-toggle-container{display:flex;align-items:center}.quarto-reader-toggle .bi::before,.quarto-color-scheme-toggle .bi::before{display:inline-block;height:1rem;width:1rem;content:"";background-repeat:no-repeat;background-size:1rem 1rem}.sidebar-navigation{padding-left:20px}.navbar{background-color:#517699;color:#fdfefe}.navbar .quarto-color-scheme-toggle:not(.alternate) .bi::before{background-image:url('data:image/svg+xml,')}.navbar .quarto-color-scheme-toggle.alternate .bi::before{background-image:url('data:image/svg+xml,')}.sidebar-navigation .quarto-color-scheme-toggle:not(.alternate) .bi::before{background-image:url('data:image/svg+xml,')}.sidebar-navigation .quarto-color-scheme-toggle.alternate .bi::before{background-image:url('data:image/svg+xml,')}.quarto-sidebar-toggle{border-color:#dededf;border-bottom-left-radius:.375rem;border-bottom-right-radius:.375rem;border-style:solid;border-width:1px;overflow:hidden;border-top-width:0px;padding-top:0px !important}.quarto-sidebar-toggle-title{cursor:pointer;padding-bottom:2px;margin-left:.25em;text-align:center;font-weight:400;font-size:.775em}#quarto-content .quarto-sidebar-toggle{background:#fafafa}#quarto-content .quarto-sidebar-toggle-title{color:#212529}.quarto-sidebar-toggle-icon{color:#dededf;margin-right:.5em;float:right;transition:transform .2s ease}.quarto-sidebar-toggle-icon::before{padding-top:5px}.quarto-sidebar-toggle.expanded .quarto-sidebar-toggle-icon{transform:rotate(-180deg)}.quarto-sidebar-toggle.expanded .quarto-sidebar-toggle-title{border-bottom:solid #dededf 1px}.quarto-sidebar-toggle-contents{background-color:#fff;padding-right:10px;padding-left:10px;margin-top:0px !important;transition:max-height .5s ease}.quarto-sidebar-toggle.expanded .quarto-sidebar-toggle-contents{padding-top:1em;padding-bottom:10px}@media(max-width: 767.98px){.sidebar-menu-container{padding-bottom:5em}}.quarto-sidebar-toggle:not(.expanded) .quarto-sidebar-toggle-contents{padding-top:0px !important;padding-bottom:0px}nav[role=doc-toc]{z-index:1020}#quarto-sidebar>*,nav[role=doc-toc]>*{transition:opacity .1s ease,border .1s ease}#quarto-sidebar.slow>*,nav[role=doc-toc].slow>*{transition:opacity .4s ease,border .4s ease}.quarto-color-scheme-toggle:not(.alternate).top-right .bi::before{background-image:url('data:image/svg+xml,')}.quarto-color-scheme-toggle.alternate.top-right .bi::before{background-image:url('data:image/svg+xml,')}#quarto-appendix.default{border-top:1px solid #dededf}#quarto-appendix.default{background-color:#fff;padding-top:1.5em;margin-top:2em;z-index:998}#quarto-appendix.default .quarto-appendix-heading{margin-top:0;line-height:1.4em;font-weight:600;opacity:.9;border-bottom:none;margin-bottom:0}#quarto-appendix.default .footnotes ol,#quarto-appendix.default .footnotes ol li>p:last-of-type,#quarto-appendix.default .quarto-appendix-contents>p:last-of-type{margin-bottom:0}#quarto-appendix.default .footnotes ol{margin-left:.5em}#quarto-appendix.default .quarto-appendix-secondary-label{margin-bottom:.4em}#quarto-appendix.default .quarto-appendix-bibtex{font-size:.7em;padding:1em;border:solid 1px #dededf;margin-bottom:1em}#quarto-appendix.default .quarto-appendix-bibtex code.sourceCode{white-space:pre-wrap}#quarto-appendix.default .quarto-appendix-citeas{font-size:.9em;padding:1em;border:solid 1px #dededf;margin-bottom:1em}#quarto-appendix.default .quarto-appendix-heading{font-size:1em !important}#quarto-appendix.default *[role=doc-endnotes]>ol,#quarto-appendix.default .quarto-appendix-contents>*:not(h2):not(.h2){font-size:.9em}#quarto-appendix.default section{padding-bottom:1.5em}#quarto-appendix.default section *[role=doc-endnotes],#quarto-appendix.default section>*:not(a){opacity:.9;word-wrap:break-word}.btn.btn-quarto,div.cell-output-display .btn-quarto{--bs-btn-color: #fefefe;--bs-btn-bg: #6c757d;--bs-btn-border-color: #6c757d;--bs-btn-hover-color: #fefefe;--bs-btn-hover-bg: #828a91;--bs-btn-hover-border-color: #7b838a;--bs-btn-focus-shadow-rgb: 130, 138, 144;--bs-btn-active-color: #000;--bs-btn-active-bg: #899197;--bs-btn-active-border-color: #7b838a;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #ffffff;--bs-btn-disabled-bg: #6c757d;--bs-btn-disabled-border-color: #6c757d}nav.quarto-secondary-nav.color-navbar{background-color:#517699;color:#fdfefe}nav.quarto-secondary-nav.color-navbar h1,nav.quarto-secondary-nav.color-navbar .h1,nav.quarto-secondary-nav.color-navbar .quarto-btn-toggle{color:#fdfefe}@media(max-width: 991.98px){body.nav-sidebar .quarto-title-banner{margin-bottom:0;padding-bottom:1em}body.nav-sidebar #title-block-header{margin-block-end:0}}p.subtitle{margin-top:.25em;margin-bottom:.5em}code a:any-link{color:inherit;text-decoration-color:#6c757d}/*! light */div.observablehq table thead tr th{background-color:var(--bs-body-bg)}input,button,select,optgroup,textarea{background-color:var(--bs-body-bg)}.code-annotated .code-copy-button{margin-right:1.25em;margin-top:0;padding-bottom:0;padding-top:3px}.code-annotation-gutter-bg{background-color:#fff}.code-annotation-gutter{background-color:rgba(233,236,239,.65)}.code-annotation-gutter,.code-annotation-gutter-bg{height:100%;width:calc(20px + .5em);position:absolute;top:0;right:0}dl.code-annotation-container-grid dt{margin-right:1em;margin-top:.25rem}dl.code-annotation-container-grid dt{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;color:#383f45;border:solid #383f45 1px;border-radius:50%;height:22px;width:22px;line-height:22px;font-size:11px;text-align:center;vertical-align:middle;text-decoration:none}dl.code-annotation-container-grid dt[data-target-cell]{cursor:pointer}dl.code-annotation-container-grid dt[data-target-cell].code-annotation-active{color:#fff;border:solid #aaa 1px;background-color:#aaa}pre.code-annotation-code{padding-top:0;padding-bottom:0}pre.code-annotation-code code{z-index:3}#code-annotation-line-highlight-gutter{width:100%;border-top:solid rgba(170,170,170,.2666666667) 1px;border-bottom:solid rgba(170,170,170,.2666666667) 1px;z-index:2;background-color:rgba(170,170,170,.1333333333)}#code-annotation-line-highlight{margin-left:-4em;width:calc(100% + 4em);border-top:solid rgba(170,170,170,.2666666667) 1px;border-bottom:solid rgba(170,170,170,.2666666667) 1px;z-index:2;background-color:rgba(170,170,170,.1333333333)}code.sourceCode .code-annotation-anchor.code-annotation-active{background-color:var(--quarto-hl-normal-color, #aaaaaa);border:solid var(--quarto-hl-normal-color, #aaaaaa) 1px;color:#e9ecef;font-weight:bolder}code.sourceCode .code-annotation-anchor{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;color:var(--quarto-hl-co-color);border:solid var(--quarto-hl-co-color) 1px;border-radius:50%;height:18px;width:18px;font-size:9px;margin-top:2px}code.sourceCode button.code-annotation-anchor{padding:2px;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none}code.sourceCode a.code-annotation-anchor{line-height:18px;text-align:center;vertical-align:middle;cursor:default;text-decoration:none}@media print{.page-columns .column-screen-inset{grid-column:page-start-inset/page-end-inset;z-index:998;opacity:.999}.page-columns .column-screen-inset table{background:#fff}.page-columns .column-screen-inset-left{grid-column:page-start-inset/body-content-end;z-index:998;opacity:.999}.page-columns .column-screen-inset-left table{background:#fff}.page-columns .column-screen-inset-right{grid-column:body-content-start/page-end-inset;z-index:998;opacity:.999}.page-columns .column-screen-inset-right table{background:#fff}.page-columns .column-screen{grid-column:page-start/page-end;z-index:998;opacity:.999}.page-columns .column-screen table{background:#fff}.page-columns .column-screen-left{grid-column:page-start/body-content-end;z-index:998;opacity:.999}.page-columns .column-screen-left table{background:#fff}.page-columns .column-screen-right{grid-column:body-content-start/page-end;z-index:998;opacity:.999}.page-columns .column-screen-right table{background:#fff}.page-columns .column-screen-inset-shaded{grid-column:page-start-inset/page-end-inset;padding:1em;background:#f8f9fa;z-index:998;opacity:.999;margin-bottom:1em}}.quarto-video{margin-bottom:1em}.table{border-top:1px solid #d3d3d4;border-bottom:1px solid #d3d3d4}.table>thead{border-top-width:0;border-bottom:1px solid #909294}.table a{word-break:break-word}.table>:not(caption)>*>*{background-color:unset;color:unset}#quarto-document-content .crosstalk-input .checkbox input[type=checkbox],#quarto-document-content .crosstalk-input .checkbox-inline input[type=checkbox]{position:unset;margin-top:unset;margin-left:unset}#quarto-document-content .row{margin-left:unset;margin-right:unset}.quarto-xref{white-space:nowrap}#quarto-draft-alert{margin-top:0px;margin-bottom:0px;padding:.3em;text-align:center;font-size:.9em}#quarto-draft-alert i{margin-right:.3em}#quarto-back-to-top{z-index:1000}pre{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:0.875em;font-weight:400}pre code{font-family:inherit;font-size:inherit;font-weight:inherit}code{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:0.875em;font-weight:400}a{background-color:rgba(0,0,0,0);font-weight:400;text-decoration:underline}a.external:after{content:"";background-image:url('data:image/svg+xml,');background-size:contain;background-repeat:no-repeat;background-position:center center;margin-left:.2em;padding-right:.75em}div.sourceCode code a.external:after{content:none}a.external:after:hover{cursor:pointer}.quarto-ext-icon{display:inline-block;font-size:.75em;padding-left:.3em}.code-with-filename .code-with-filename-file{margin-bottom:0;padding-bottom:2px;padding-top:2px;padding-left:.7em;border:var(--quarto-border-width) solid var(--quarto-border-color);border-radius:var(--quarto-border-radius);border-bottom:0;border-bottom-left-radius:0%;border-bottom-right-radius:0%}.code-with-filename div.sourceCode,.reveal .code-with-filename div.sourceCode{margin-top:0;border-top-left-radius:0%;border-top-right-radius:0%}.code-with-filename .code-with-filename-file pre{margin-bottom:0}.code-with-filename .code-with-filename-file{background-color:rgba(219,219,219,.8)}.quarto-dark .code-with-filename .code-with-filename-file{background-color:#555}.code-with-filename .code-with-filename-file strong{font-weight:400}.quarto-title-banner{margin-bottom:1em;color:#fdfefe;background:#517699}.quarto-title-banner a{color:#fdfefe}.quarto-title-banner h1,.quarto-title-banner .h1,.quarto-title-banner h2,.quarto-title-banner .h2{color:#fdfefe}.quarto-title-banner .code-tools-button{color:#b9dcdc}.quarto-title-banner .code-tools-button:hover{color:#fdfefe}.quarto-title-banner .code-tools-button>.bi::before{background-image:url('data:image/svg+xml,')}.quarto-title-banner .code-tools-button:hover>.bi::before{background-image:url('data:image/svg+xml,')}.quarto-title-banner .quarto-title .title{font-weight:600}.quarto-title-banner .quarto-categories{margin-top:.75em}@media(min-width: 992px){.quarto-title-banner{padding-top:2.5em;padding-bottom:2.5em}}@media(max-width: 991.98px){.quarto-title-banner{padding-top:1em;padding-bottom:1em}}@media(max-width: 767.98px){body.hypothesis-enabled #title-block-header>*{padding-right:20px}}main.quarto-banner-title-block>section:first-child>h2,main.quarto-banner-title-block>section:first-child>.h2,main.quarto-banner-title-block>section:first-child>h3,main.quarto-banner-title-block>section:first-child>.h3,main.quarto-banner-title-block>section:first-child>h4,main.quarto-banner-title-block>section:first-child>.h4{margin-top:0}.quarto-title .quarto-categories{display:flex;flex-wrap:wrap;row-gap:.5em;column-gap:.4em;padding-bottom:.5em;margin-top:.75em}.quarto-title .quarto-categories .quarto-category{padding:.25em .75em;font-size:.65em;text-transform:uppercase;border:solid 1px;border-radius:.375rem;opacity:.6}.quarto-title .quarto-categories .quarto-category a{color:inherit}.quarto-title-meta-container{display:grid;grid-template-columns:1fr auto}.quarto-title-meta-column-end{display:flex;flex-direction:column;padding-left:1em}.quarto-title-meta-column-end a .bi{margin-right:.3em}#title-block-header.quarto-title-block.default .quarto-title-meta{display:grid;grid-template-columns:repeat(2, 1fr);grid-column-gap:1em}#title-block-header.quarto-title-block.default .quarto-title .title{margin-bottom:0}#title-block-header.quarto-title-block.default .quarto-title-author-orcid img{margin-top:-0.2em;height:.8em;width:.8em}#title-block-header.quarto-title-block.default .quarto-title-author-email{opacity:.7}#title-block-header.quarto-title-block.default .quarto-description p:last-of-type{margin-bottom:0}#title-block-header.quarto-title-block.default .quarto-title-meta-contents p,#title-block-header.quarto-title-block.default .quarto-title-authors p,#title-block-header.quarto-title-block.default .quarto-title-affiliations p{margin-bottom:.1em}#title-block-header.quarto-title-block.default .quarto-title-meta-heading{text-transform:uppercase;margin-top:1em;font-size:.8em;opacity:.8;font-weight:400}#title-block-header.quarto-title-block.default .quarto-title-meta-contents{font-size:.9em}#title-block-header.quarto-title-block.default .quarto-title-meta-contents p.affiliation:last-of-type{margin-bottom:.1em}#title-block-header.quarto-title-block.default p.affiliation{margin-bottom:.1em}#title-block-header.quarto-title-block.default .keywords,#title-block-header.quarto-title-block.default .description,#title-block-header.quarto-title-block.default .abstract{margin-top:0}#title-block-header.quarto-title-block.default .keywords>p,#title-block-header.quarto-title-block.default .description>p,#title-block-header.quarto-title-block.default .abstract>p{font-size:.9em}#title-block-header.quarto-title-block.default .keywords>p:last-of-type,#title-block-header.quarto-title-block.default .description>p:last-of-type,#title-block-header.quarto-title-block.default .abstract>p:last-of-type{margin-bottom:0}#title-block-header.quarto-title-block.default .keywords .block-title,#title-block-header.quarto-title-block.default .description .block-title,#title-block-header.quarto-title-block.default .abstract .block-title{margin-top:1em;text-transform:uppercase;font-size:.8em;opacity:.8;font-weight:400}#title-block-header.quarto-title-block.default .quarto-title-meta-author{display:grid;grid-template-columns:minmax(max-content, 1fr) 1fr;grid-column-gap:1em}.quarto-title-tools-only{display:flex;justify-content:right}:root{--quarto-scss-export-title-banner-color: ;--quarto-scss-export-title-banner-bg: ;--quarto-scss-export-btn-code-copy-color: #5E5E5E;--quarto-scss-export-btn-code-copy-color-active: #4758AB;--quarto-scss-export-sidebar-bg: #fff;--quarto-scss-export-blue: #0d6efd;--quarto-scss-export-primary: #0d6efd;--quarto-scss-export-white: #ffffff;--quarto-scss-export-gray-200: #e9ecef;--quarto-scss-export-gray-100: #f8f9fa;--quarto-scss-export-gray-900: #212529;--quarto-scss-export-link-color: #0d6efd;--quarto-scss-export-link-color-bg: transparent;--quarto-scss-export-code-color: #7d12ba;--quarto-scss-export-code-bg: #f8f9fa;--quarto-scss-export-toc-color: #0d6efd;--quarto-scss-export-toc-active-border: #0d6efd;--quarto-scss-export-toc-inactive-border: #e9ecef;--quarto-scss-export-navbar-default: #517699;--quarto-scss-export-navbar-hl-override: false;--quarto-scss-export-navbar-bg: #517699;--quarto-scss-export-btn-bg: #6c757d;--quarto-scss-export-btn-fg: #fefefe;--quarto-scss-export-body-contrast-bg: #ffffff;--quarto-scss-export-body-contrast-color: #212529;--quarto-scss-export-navbar-fg: #fdfefe;--quarto-scss-export-navbar-hl: #fdfeff;--quarto-scss-export-navbar-brand: #fdfefe;--quarto-scss-export-navbar-brand-hl: #fdfeff;--quarto-scss-export-navbar-toggler-border-color: rgba(253, 254, 254, 0);--quarto-scss-export-navbar-hover-color: rgba(253, 254, 255, 0.8);--quarto-scss-export-navbar-disabled-color: rgba(253, 254, 254, 0.75);--quarto-scss-export-sidebar-fg: #595959;--quarto-scss-export-sidebar-hl: ;--quarto-scss-export-title-block-color: #212529;--quarto-scss-export-title-block-contast-color: #ffffff;--quarto-scss-export-footer-bg: #fff;--quarto-scss-export-footer-fg: #757575;--quarto-scss-export-popover-bg: #ffffff;--quarto-scss-export-input-bg: #ffffff;--quarto-scss-export-input-border-color: #dededf;--quarto-scss-export-code-annotation-higlight-color: rgba(170, 170, 170, 0.2666666667);--quarto-scss-export-code-annotation-higlight-bg: rgba(170, 170, 170, 0.1333333333);--quarto-scss-export-table-group-separator-color: #909294;--quarto-scss-export-table-group-separator-color-lighter: #d3d3d4;--quarto-scss-export-link-decoration: underline;--quarto-scss-export-border-color: #dededf;--quarto-scss-export-table-border-color: #dededf;--quarto-scss-export-gray-300: #dee2e6;--quarto-scss-export-gray-400: #ced4da;--quarto-scss-export-gray-500: #adb5bd;--quarto-scss-export-gray-600: #6c757d;--quarto-scss-export-gray-700: #495057;--quarto-scss-export-gray-800: #343a40;--quarto-scss-export-black: #000;--quarto-scss-export-indigo: #6610f2;--quarto-scss-export-purple: #6f42c1;--quarto-scss-export-pink: #d63384;--quarto-scss-export-red: #dc3545;--quarto-scss-export-orange: #fd7e14;--quarto-scss-export-yellow: #ffc107;--quarto-scss-export-green: #198754;--quarto-scss-export-teal: #20c997;--quarto-scss-export-cyan: #0dcaf0;--quarto-scss-export-color-contrast-dark: #000;--quarto-scss-export-color-contrast-light: #ffffff;--quarto-scss-export-blue-100: #cfe2ff;--quarto-scss-export-blue-200: #9ec5fe;--quarto-scss-export-blue-300: #6ea8fe;--quarto-scss-export-blue-400: #3d8bfd;--quarto-scss-export-blue-500: #0d6efd;--quarto-scss-export-blue-600: #0a58ca;--quarto-scss-export-blue-700: #084298;--quarto-scss-export-blue-800: #052c65;--quarto-scss-export-blue-900: #031633;--quarto-scss-export-indigo-100: #e0cffc;--quarto-scss-export-indigo-200: #c29ffa;--quarto-scss-export-indigo-300: #a370f7;--quarto-scss-export-indigo-400: #8540f5;--quarto-scss-export-indigo-500: #6610f2;--quarto-scss-export-indigo-600: #520dc2;--quarto-scss-export-indigo-700: #3d0a91;--quarto-scss-export-indigo-800: #290661;--quarto-scss-export-indigo-900: #140330;--quarto-scss-export-purple-100: #e2d9f3;--quarto-scss-export-purple-200: #c5b3e6;--quarto-scss-export-purple-300: #a98eda;--quarto-scss-export-purple-400: #8c68cd;--quarto-scss-export-purple-500: #6f42c1;--quarto-scss-export-purple-600: #59359a;--quarto-scss-export-purple-700: #432874;--quarto-scss-export-purple-800: #2c1a4d;--quarto-scss-export-purple-900: #160d27;--quarto-scss-export-pink-100: #f7d6e6;--quarto-scss-export-pink-200: #efadce;--quarto-scss-export-pink-300: #e685b5;--quarto-scss-export-pink-400: #de5c9d;--quarto-scss-export-pink-500: #d63384;--quarto-scss-export-pink-600: #ab296a;--quarto-scss-export-pink-700: #801f4f;--quarto-scss-export-pink-800: #561435;--quarto-scss-export-pink-900: #2b0a1a;--quarto-scss-export-red-100: #f8d7da;--quarto-scss-export-red-200: #f1aeb5;--quarto-scss-export-red-300: #ea868f;--quarto-scss-export-red-400: #e35d6a;--quarto-scss-export-red-500: #dc3545;--quarto-scss-export-red-600: #b02a37;--quarto-scss-export-red-700: #842029;--quarto-scss-export-red-800: #58151c;--quarto-scss-export-red-900: #2c0b0e;--quarto-scss-export-orange-100: #ffe5d0;--quarto-scss-export-orange-200: #fecba1;--quarto-scss-export-orange-300: #feb272;--quarto-scss-export-orange-400: #fd9843;--quarto-scss-export-orange-500: #fd7e14;--quarto-scss-export-orange-600: #ca6510;--quarto-scss-export-orange-700: #984c0c;--quarto-scss-export-orange-800: #653208;--quarto-scss-export-orange-900: #331904;--quarto-scss-export-yellow-100: #fff3cd;--quarto-scss-export-yellow-200: #ffe69c;--quarto-scss-export-yellow-300: #ffda6a;--quarto-scss-export-yellow-400: #ffcd39;--quarto-scss-export-yellow-500: #ffc107;--quarto-scss-export-yellow-600: #cc9a06;--quarto-scss-export-yellow-700: #997404;--quarto-scss-export-yellow-800: #664d03;--quarto-scss-export-yellow-900: #332701;--quarto-scss-export-green-100: #d1e7dd;--quarto-scss-export-green-200: #a3cfbb;--quarto-scss-export-green-300: #75b798;--quarto-scss-export-green-400: #479f76;--quarto-scss-export-green-500: #198754;--quarto-scss-export-green-600: #146c43;--quarto-scss-export-green-700: #0f5132;--quarto-scss-export-green-800: #0a3622;--quarto-scss-export-green-900: #051b11;--quarto-scss-export-teal-100: #d2f4ea;--quarto-scss-export-teal-200: #a6e9d5;--quarto-scss-export-teal-300: #79dfc1;--quarto-scss-export-teal-400: #4dd4ac;--quarto-scss-export-teal-500: #20c997;--quarto-scss-export-teal-600: #1aa179;--quarto-scss-export-teal-700: #13795b;--quarto-scss-export-teal-800: #0d503c;--quarto-scss-export-teal-900: #06281e;--quarto-scss-export-cyan-100: #cff4fc;--quarto-scss-export-cyan-200: #9eeaf9;--quarto-scss-export-cyan-300: #6edff6;--quarto-scss-export-cyan-400: #3dd5f3;--quarto-scss-export-cyan-500: #0dcaf0;--quarto-scss-export-cyan-600: #0aa2c0;--quarto-scss-export-cyan-700: #087990;--quarto-scss-export-cyan-800: #055160;--quarto-scss-export-cyan-900: #032830;--quarto-scss-export-default: #dee2e6;--quarto-scss-export-secondary: #6c757d;--quarto-scss-export-success: #198754;--quarto-scss-export-info: #0dcaf0;--quarto-scss-export-warning: #ffc107;--quarto-scss-export-danger: #dc3545;--quarto-scss-export-light: #f8f9fa;--quarto-scss-export-dark: #212529;--quarto-scss-export-primary-text-emphasis: #052c65;--quarto-scss-export-secondary-text-emphasis: #2b2f32;--quarto-scss-export-success-text-emphasis: #0a3622;--quarto-scss-export-info-text-emphasis: #055160;--quarto-scss-export-warning-text-emphasis: #664d03;--quarto-scss-export-danger-text-emphasis: #58151c;--quarto-scss-export-light-text-emphasis: #495057;--quarto-scss-export-dark-text-emphasis: #495057;--quarto-scss-export-primary-bg-subtle: #cfe2ff;--quarto-scss-export-secondary-bg-subtle: #e2e3e5;--quarto-scss-export-success-bg-subtle: #d1e7dd;--quarto-scss-export-info-bg-subtle: #cff4fc;--quarto-scss-export-warning-bg-subtle: #fff3cd;--quarto-scss-export-danger-bg-subtle: #f8d7da;--quarto-scss-export-light-bg-subtle: #fcfcfd;--quarto-scss-export-dark-bg-subtle: #ced4da;--quarto-scss-export-primary-border-subtle: #9ec5fe;--quarto-scss-export-secondary-border-subtle: #c4c8cb;--quarto-scss-export-success-border-subtle: #a3cfbb;--quarto-scss-export-info-border-subtle: #9eeaf9;--quarto-scss-export-warning-border-subtle: #ffe69c;--quarto-scss-export-danger-border-subtle: #f1aeb5;--quarto-scss-export-light-border-subtle: #e9ecef;--quarto-scss-export-dark-border-subtle: #adb5bd;--quarto-scss-export-body-text-align: ;--quarto-scss-export-body-color: #212529;--quarto-scss-export-body-bg: #ffffff;--quarto-scss-export-body-secondary-color: rgba(33, 37, 41, 0.75);--quarto-scss-export-body-secondary-bg: #e9ecef;--quarto-scss-export-body-tertiary-color: rgba(33, 37, 41, 0.5);--quarto-scss-export-body-tertiary-bg: #f8f9fa;--quarto-scss-export-body-emphasis-color: #000;--quarto-scss-export-link-hover-color: #0a58ca;--quarto-scss-export-link-hover-decoration: ;--quarto-scss-export-border-color-translucent: rgba(0, 0, 0, 0.175);--quarto-scss-export-component-active-bg: #0d6efd;--quarto-scss-export-component-active-color: #ffffff;--quarto-scss-export-focus-ring-color: rgba(13, 110, 253, 0.25);--quarto-scss-export-headings-font-family: ;--quarto-scss-export-headings-font-style: ;--quarto-scss-export-display-font-family: ;--quarto-scss-export-display-font-style: ;--quarto-scss-export-text-muted: rgba(33, 37, 41, 0.75);--quarto-scss-export-blockquote-footer-color: #6c757d;--quarto-scss-export-blockquote-border-color: #e9ecef;--quarto-scss-export-hr-bg-color: ;--quarto-scss-export-hr-height: ;--quarto-scss-export-hr-border-color: ;--quarto-scss-export-legend-font-weight: ;--quarto-scss-export-mark-bg: #fff3cd;--quarto-scss-export-table-color: #212529;--quarto-scss-export-table-bg: #ffffff;--quarto-scss-export-table-accent-bg: transparent;--quarto-scss-export-table-th-font-weight: ;--quarto-scss-export-table-striped-color: #212529;--quarto-scss-export-table-striped-bg: rgba(0, 0, 0, 0.05);--quarto-scss-export-table-active-color: #212529;--quarto-scss-export-table-active-bg: rgba(0, 0, 0, 0.1);--quarto-scss-export-table-hover-color: #212529;--quarto-scss-export-table-hover-bg: rgba(0, 0, 0, 0.075);--quarto-scss-export-table-caption-color: rgba(33, 37, 41, 0.75);--quarto-scss-export-input-btn-font-family: ;--quarto-scss-export-input-btn-focus-color: rgba(13, 110, 253, 0.25);--quarto-scss-export-btn-color: #212529;--quarto-scss-export-btn-font-family: ;--quarto-scss-export-btn-white-space: ;--quarto-scss-export-btn-link-color: #0d6efd;--quarto-scss-export-btn-link-hover-color: #0a58ca;--quarto-scss-export-btn-link-disabled-color: #6c757d;--quarto-scss-export-form-text-font-style: ;--quarto-scss-export-form-text-font-weight: ;--quarto-scss-export-form-text-color: rgba(33, 37, 41, 0.75);--quarto-scss-export-form-label-font-size: ;--quarto-scss-export-form-label-font-style: ;--quarto-scss-export-form-label-font-weight: ;--quarto-scss-export-form-label-color: ;--quarto-scss-export-input-font-family: ;--quarto-scss-export-input-disabled-color: ;--quarto-scss-export-input-disabled-bg: #e9ecef;--quarto-scss-export-input-disabled-border-color: ;--quarto-scss-export-input-color: #212529;--quarto-scss-export-input-focus-bg: #ffffff;--quarto-scss-export-input-focus-border-color: #86b7fe;--quarto-scss-export-input-focus-color: #212529;--quarto-scss-export-input-placeholder-color: rgba(33, 37, 41, 0.75);--quarto-scss-export-input-plaintext-color: #212529;--quarto-scss-export-form-check-label-color: ;--quarto-scss-export-form-check-transition: ;--quarto-scss-export-form-check-input-bg: #ffffff;--quarto-scss-export-form-check-input-focus-border: #86b7fe;--quarto-scss-export-form-check-input-checked-color: #ffffff;--quarto-scss-export-form-check-input-checked-bg-color: #0d6efd;--quarto-scss-export-form-check-input-checked-border-color: #0d6efd;--quarto-scss-export-form-check-input-indeterminate-color: #ffffff;--quarto-scss-export-form-check-input-indeterminate-bg-color: #0d6efd;--quarto-scss-export-form-check-input-indeterminate-border-color: #0d6efd;--quarto-scss-export-form-switch-color: rgba(0, 0, 0, 0.25);--quarto-scss-export-form-switch-focus-color: #86b7fe;--quarto-scss-export-form-switch-checked-color: #ffffff;--quarto-scss-export-input-group-addon-color: #212529;--quarto-scss-export-input-group-addon-bg: #f8f9fa;--quarto-scss-export-input-group-addon-border-color: #dededf;--quarto-scss-export-form-select-font-family: ;--quarto-scss-export-form-select-color: #212529;--quarto-scss-export-form-select-bg: #ffffff;--quarto-scss-export-form-select-disabled-color: ;--quarto-scss-export-form-select-disabled-bg: #e9ecef;--quarto-scss-export-form-select-disabled-border-color: ;--quarto-scss-export-form-select-indicator-color: #343a40;--quarto-scss-export-form-select-border-color: #dededf;--quarto-scss-export-form-select-focus-border-color: #86b7fe;--quarto-scss-export-form-range-track-bg: #f8f9fa;--quarto-scss-export-form-range-thumb-bg: #0d6efd;--quarto-scss-export-form-range-thumb-active-bg: #b6d4fe;--quarto-scss-export-form-range-thumb-disabled-bg: rgba(33, 37, 41, 0.75);--quarto-scss-export-form-file-button-color: #212529;--quarto-scss-export-form-file-button-bg: #f8f9fa;--quarto-scss-export-form-file-button-hover-bg: #e9ecef;--quarto-scss-export-form-floating-label-disabled-color: #6c757d;--quarto-scss-export-form-feedback-font-style: ;--quarto-scss-export-form-feedback-valid-color: #198754;--quarto-scss-export-form-feedback-invalid-color: #dc3545;--quarto-scss-export-form-feedback-icon-valid-color: #198754;--quarto-scss-export-form-feedback-icon-invalid-color: #dc3545;--quarto-scss-export-form-valid-color: #198754;--quarto-scss-export-form-valid-border-color: #198754;--quarto-scss-export-form-invalid-color: #dc3545;--quarto-scss-export-form-invalid-border-color: #dc3545;--quarto-scss-export-nav-link-font-size: ;--quarto-scss-export-nav-link-font-weight: ;--quarto-scss-export-nav-link-color: #0d6efd;--quarto-scss-export-nav-link-hover-color: #0a58ca;--quarto-scss-export-nav-link-disabled-color: rgba(33, 37, 41, 0.75);--quarto-scss-export-nav-tabs-border-color: #dededf;--quarto-scss-export-nav-tabs-link-hover-border-color: #e9ecef #e9ecef #dededf;--quarto-scss-export-nav-tabs-link-active-color: #000;--quarto-scss-export-nav-tabs-link-active-bg: #ffffff;--quarto-scss-export-nav-pills-link-active-bg: #0d6efd;--quarto-scss-export-nav-pills-link-active-color: #ffffff;--quarto-scss-export-nav-underline-link-active-color: #000;--quarto-scss-export-navbar-padding-x: ;--quarto-scss-export-navbar-light-contrast: #ffffff;--quarto-scss-export-navbar-dark-contrast: #ffffff;--quarto-scss-export-navbar-light-icon-color: rgba(255, 255, 255, 0.75);--quarto-scss-export-navbar-dark-icon-color: rgba(255, 255, 255, 0.75);--quarto-scss-export-dropdown-color: #212529;--quarto-scss-export-dropdown-bg: #ffffff;--quarto-scss-export-dropdown-border-color: rgba(0, 0, 0, 0.175);--quarto-scss-export-dropdown-divider-bg: rgba(0, 0, 0, 0.175);--quarto-scss-export-dropdown-link-color: #212529;--quarto-scss-export-dropdown-link-hover-color: #212529;--quarto-scss-export-dropdown-link-hover-bg: #f8f9fa;--quarto-scss-export-dropdown-link-active-bg: #0d6efd;--quarto-scss-export-dropdown-link-active-color: #ffffff;--quarto-scss-export-dropdown-link-disabled-color: rgba(33, 37, 41, 0.5);--quarto-scss-export-dropdown-header-color: #6c757d;--quarto-scss-export-dropdown-dark-color: #dee2e6;--quarto-scss-export-dropdown-dark-bg: #343a40;--quarto-scss-export-dropdown-dark-border-color: rgba(0, 0, 0, 0.175);--quarto-scss-export-dropdown-dark-divider-bg: rgba(0, 0, 0, 0.175);--quarto-scss-export-dropdown-dark-box-shadow: ;--quarto-scss-export-dropdown-dark-link-color: #dee2e6;--quarto-scss-export-dropdown-dark-link-hover-color: #ffffff;--quarto-scss-export-dropdown-dark-link-hover-bg: rgba(255, 255, 255, 0.15);--quarto-scss-export-dropdown-dark-link-active-color: #ffffff;--quarto-scss-export-dropdown-dark-link-active-bg: #0d6efd;--quarto-scss-export-dropdown-dark-link-disabled-color: #adb5bd;--quarto-scss-export-dropdown-dark-header-color: #adb5bd;--quarto-scss-export-pagination-color: #0d6efd;--quarto-scss-export-pagination-bg: #ffffff;--quarto-scss-export-pagination-border-color: #dededf;--quarto-scss-export-pagination-focus-color: #0a58ca;--quarto-scss-export-pagination-focus-bg: #e9ecef;--quarto-scss-export-pagination-hover-color: #0a58ca;--quarto-scss-export-pagination-hover-bg: #f8f9fa;--quarto-scss-export-pagination-hover-border-color: #dededf;--quarto-scss-export-pagination-active-color: #ffffff;--quarto-scss-export-pagination-active-bg: #0d6efd;--quarto-scss-export-pagination-active-border-color: #0d6efd;--quarto-scss-export-pagination-disabled-color: rgba(33, 37, 41, 0.75);--quarto-scss-export-pagination-disabled-bg: #e9ecef;--quarto-scss-export-pagination-disabled-border-color: #dededf;--quarto-scss-export-card-title-color: ;--quarto-scss-export-card-subtitle-color: ;--quarto-scss-export-card-border-color: rgba(0, 0, 0, 0.175);--quarto-scss-export-card-box-shadow: ;--quarto-scss-export-card-cap-bg: rgba(33, 37, 41, 0.03);--quarto-scss-export-card-cap-color: ;--quarto-scss-export-card-height: ;--quarto-scss-export-card-color: ;--quarto-scss-export-card-bg: #ffffff;--quarto-scss-export-accordion-color: #212529;--quarto-scss-export-accordion-bg: #ffffff;--quarto-scss-export-accordion-border-color: #dededf;--quarto-scss-export-accordion-button-color: #212529;--quarto-scss-export-accordion-button-bg: #ffffff;--quarto-scss-export-accordion-button-active-bg: #cfe2ff;--quarto-scss-export-accordion-button-active-color: #052c65;--quarto-scss-export-accordion-button-focus-border-color: #86b7fe;--quarto-scss-export-accordion-icon-color: #212529;--quarto-scss-export-accordion-icon-active-color: #052c65;--quarto-scss-export-tooltip-color: #ffffff;--quarto-scss-export-tooltip-bg: #000;--quarto-scss-export-tooltip-margin: ;--quarto-scss-export-tooltip-arrow-color: ;--quarto-scss-export-form-feedback-tooltip-line-height: ;--quarto-scss-export-popover-border-color: rgba(0, 0, 0, 0.175);--quarto-scss-export-popover-header-bg: #e9ecef;--quarto-scss-export-popover-body-color: #212529;--quarto-scss-export-popover-arrow-color: #ffffff;--quarto-scss-export-popover-arrow-outer-color: rgba(0, 0, 0, 0.175);--quarto-scss-export-toast-color: ;--quarto-scss-export-toast-background-color: rgba(255, 255, 255, 0.85);--quarto-scss-export-toast-border-color: rgba(0, 0, 0, 0.175);--quarto-scss-export-toast-header-color: rgba(33, 37, 41, 0.75);--quarto-scss-export-toast-header-background-color: rgba(255, 255, 255, 0.85);--quarto-scss-export-toast-header-border-color: rgba(0, 0, 0, 0.175);--quarto-scss-export-badge-color: #ffffff;--quarto-scss-export-modal-content-color: ;--quarto-scss-export-modal-content-bg: #ffffff;--quarto-scss-export-modal-content-border-color: rgba(0, 0, 0, 0.175);--quarto-scss-export-modal-backdrop-bg: #000;--quarto-scss-export-modal-header-border-color: #dededf;--quarto-scss-export-modal-footer-bg: ;--quarto-scss-export-modal-footer-border-color: #dededf;--quarto-scss-export-progress-bg: #e9ecef;--quarto-scss-export-progress-bar-color: #ffffff;--quarto-scss-export-progress-bar-bg: #0d6efd;--quarto-scss-export-list-group-color: #212529;--quarto-scss-export-list-group-bg: #ffffff;--quarto-scss-export-list-group-border-color: #dededf;--quarto-scss-export-list-group-hover-bg: #f8f9fa;--quarto-scss-export-list-group-active-bg: #0d6efd;--quarto-scss-export-list-group-active-color: #ffffff;--quarto-scss-export-list-group-active-border-color: #0d6efd;--quarto-scss-export-list-group-disabled-color: rgba(33, 37, 41, 0.75);--quarto-scss-export-list-group-disabled-bg: #ffffff;--quarto-scss-export-list-group-action-color: rgba(33, 37, 41, 0.75);--quarto-scss-export-list-group-action-hover-color: #000;--quarto-scss-export-list-group-action-active-color: #212529;--quarto-scss-export-list-group-action-active-bg: #e9ecef;--quarto-scss-export-thumbnail-bg: #ffffff;--quarto-scss-export-thumbnail-border-color: #dededf;--quarto-scss-export-figure-caption-color: rgba(33, 37, 41, 0.75);--quarto-scss-export-breadcrumb-font-size: ;--quarto-scss-export-breadcrumb-bg: ;--quarto-scss-export-breadcrumb-divider-color: rgba(33, 37, 41, 0.75);--quarto-scss-export-breadcrumb-active-color: rgba(33, 37, 41, 0.75);--quarto-scss-export-breadcrumb-border-radius: ;--quarto-scss-export-carousel-control-color: #ffffff;--quarto-scss-export-carousel-indicator-active-bg: #ffffff;--quarto-scss-export-carousel-caption-color: #ffffff;--quarto-scss-export-carousel-dark-indicator-active-bg: #000;--quarto-scss-export-carousel-dark-caption-color: #000;--quarto-scss-export-btn-close-color: #000;--quarto-scss-export-offcanvas-border-color: rgba(0, 0, 0, 0.175);--quarto-scss-export-offcanvas-bg-color: #ffffff;--quarto-scss-export-offcanvas-color: #212529;--quarto-scss-export-offcanvas-backdrop-bg: #000;--quarto-scss-export-code-color-dark: white;--quarto-scss-export-kbd-color: #ffffff;--quarto-scss-export-kbd-bg: #212529;--quarto-scss-export-nested-kbd-font-weight: ;--quarto-scss-export-pre-bg: #f8f9fa;--quarto-scss-export-pre-color: #000;--quarto-scss-export-bslib-page-sidebar-title-bg: #517699;--quarto-scss-export-bslib-page-sidebar-title-color: #ffffff;--quarto-scss-export-bslib-sidebar-bg: rgba(var(--bs-emphasis-color-rgb, 0, 0, 0), 0.05);--quarto-scss-export-bslib-sidebar-toggle-bg: rgba(var(--bs-emphasis-color-rgb, 0, 0, 0), 0.1);--quarto-scss-export-mermaid-bg-color: #ffffff;--quarto-scss-export-mermaid-edge-color: #6c757d;--quarto-scss-export-mermaid-node-fg-color: #212529;--quarto-scss-export-mermaid-fg-color: #212529;--quarto-scss-export-mermaid-fg-color--lighter: #383f45;--quarto-scss-export-mermaid-fg-color--lightest: #4e5862;--quarto-scss-export-mermaid-label-bg-color: #ffffff;--quarto-scss-export-mermaid-label-fg-color: #0d6efd;--quarto-scss-export-mermaid-node-bg-color: rgba(13, 110, 253, 0.1);--quarto-scss-export-code-block-border-left-color: #dededf;--quarto-scss-export-callout-color-note: #0d6efd;--quarto-scss-export-callout-color-tip: #198754;--quarto-scss-export-callout-color-important: #dc3545;--quarto-scss-export-callout-color-caution: #fd7e14;--quarto-scss-export-callout-color-warning: #ffc107} \ No newline at end of file diff --git a/docs/src/tutorials/test1_files/libs/bootstrap/bootstrap-icons.css b/docs/src/tutorials/test1_files/libs/bootstrap/bootstrap-icons.css deleted file mode 100644 index 285e444..0000000 --- a/docs/src/tutorials/test1_files/libs/bootstrap/bootstrap-icons.css +++ /dev/null @@ -1,2078 +0,0 @@ -/*! - * Bootstrap Icons v1.11.1 (https://icons.getbootstrap.com/) - * Copyright 2019-2023 The Bootstrap Authors - * Licensed under MIT (https://github.com/twbs/icons/blob/main/LICENSE) - */ - -@font-face { - font-display: block; - font-family: "bootstrap-icons"; - src: -url("./bootstrap-icons.woff?2820a3852bdb9a5832199cc61cec4e65") format("woff"); -} - -.bi::before, -[class^="bi-"]::before, -[class*=" bi-"]::before { - display: inline-block; - font-family: bootstrap-icons !important; - font-style: normal; - font-weight: normal !important; - font-variant: normal; - text-transform: none; - line-height: 1; - vertical-align: -.125em; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -.bi-123::before { content: "\f67f"; } -.bi-alarm-fill::before { content: "\f101"; } -.bi-alarm::before { content: "\f102"; } -.bi-align-bottom::before { content: "\f103"; } -.bi-align-center::before { content: "\f104"; } -.bi-align-end::before { content: "\f105"; } -.bi-align-middle::before { content: "\f106"; } -.bi-align-start::before { content: "\f107"; } -.bi-align-top::before { content: "\f108"; } -.bi-alt::before { content: "\f109"; } -.bi-app-indicator::before { content: "\f10a"; } -.bi-app::before { content: "\f10b"; } -.bi-archive-fill::before { content: "\f10c"; } -.bi-archive::before { content: "\f10d"; } -.bi-arrow-90deg-down::before { content: "\f10e"; } -.bi-arrow-90deg-left::before { content: "\f10f"; } -.bi-arrow-90deg-right::before { content: "\f110"; } -.bi-arrow-90deg-up::before { content: "\f111"; } -.bi-arrow-bar-down::before { content: "\f112"; } -.bi-arrow-bar-left::before { content: "\f113"; } -.bi-arrow-bar-right::before { content: "\f114"; } -.bi-arrow-bar-up::before { content: "\f115"; } -.bi-arrow-clockwise::before { content: "\f116"; } -.bi-arrow-counterclockwise::before { content: "\f117"; } -.bi-arrow-down-circle-fill::before { content: "\f118"; } -.bi-arrow-down-circle::before { content: "\f119"; } -.bi-arrow-down-left-circle-fill::before { content: "\f11a"; } -.bi-arrow-down-left-circle::before { content: "\f11b"; } -.bi-arrow-down-left-square-fill::before { content: "\f11c"; } -.bi-arrow-down-left-square::before { content: "\f11d"; } -.bi-arrow-down-left::before { content: "\f11e"; } -.bi-arrow-down-right-circle-fill::before { content: "\f11f"; } -.bi-arrow-down-right-circle::before { content: "\f120"; } -.bi-arrow-down-right-square-fill::before { content: "\f121"; } -.bi-arrow-down-right-square::before { content: "\f122"; } -.bi-arrow-down-right::before { content: "\f123"; } -.bi-arrow-down-short::before { content: "\f124"; } -.bi-arrow-down-square-fill::before { content: "\f125"; } -.bi-arrow-down-square::before { content: "\f126"; } -.bi-arrow-down-up::before { content: "\f127"; } -.bi-arrow-down::before { content: "\f128"; } -.bi-arrow-left-circle-fill::before { content: "\f129"; } -.bi-arrow-left-circle::before { content: "\f12a"; } -.bi-arrow-left-right::before { content: "\f12b"; } -.bi-arrow-left-short::before { content: "\f12c"; } -.bi-arrow-left-square-fill::before { content: "\f12d"; } -.bi-arrow-left-square::before { content: "\f12e"; } -.bi-arrow-left::before { content: "\f12f"; } -.bi-arrow-repeat::before { content: "\f130"; } -.bi-arrow-return-left::before { content: "\f131"; } -.bi-arrow-return-right::before { content: "\f132"; } -.bi-arrow-right-circle-fill::before { content: "\f133"; } -.bi-arrow-right-circle::before { content: "\f134"; } -.bi-arrow-right-short::before { content: "\f135"; } -.bi-arrow-right-square-fill::before { content: "\f136"; } -.bi-arrow-right-square::before { content: "\f137"; } -.bi-arrow-right::before { content: "\f138"; } -.bi-arrow-up-circle-fill::before { content: "\f139"; } -.bi-arrow-up-circle::before { content: "\f13a"; } -.bi-arrow-up-left-circle-fill::before { content: "\f13b"; } -.bi-arrow-up-left-circle::before { content: "\f13c"; } -.bi-arrow-up-left-square-fill::before { content: "\f13d"; } -.bi-arrow-up-left-square::before { content: "\f13e"; } -.bi-arrow-up-left::before { content: "\f13f"; } -.bi-arrow-up-right-circle-fill::before { content: "\f140"; } -.bi-arrow-up-right-circle::before { content: "\f141"; } -.bi-arrow-up-right-square-fill::before { content: "\f142"; } -.bi-arrow-up-right-square::before { content: "\f143"; } -.bi-arrow-up-right::before { content: "\f144"; } -.bi-arrow-up-short::before { content: "\f145"; } -.bi-arrow-up-square-fill::before { content: "\f146"; } -.bi-arrow-up-square::before { content: "\f147"; } -.bi-arrow-up::before { content: "\f148"; } -.bi-arrows-angle-contract::before { content: "\f149"; } -.bi-arrows-angle-expand::before { content: "\f14a"; } -.bi-arrows-collapse::before { content: "\f14b"; } -.bi-arrows-expand::before { content: "\f14c"; } -.bi-arrows-fullscreen::before { content: "\f14d"; } -.bi-arrows-move::before { content: "\f14e"; } -.bi-aspect-ratio-fill::before { content: "\f14f"; } -.bi-aspect-ratio::before { content: "\f150"; } -.bi-asterisk::before { content: "\f151"; } -.bi-at::before { content: "\f152"; } -.bi-award-fill::before { content: "\f153"; } -.bi-award::before { content: "\f154"; } -.bi-back::before { content: "\f155"; } -.bi-backspace-fill::before { content: "\f156"; } -.bi-backspace-reverse-fill::before { content: "\f157"; } -.bi-backspace-reverse::before { content: "\f158"; } -.bi-backspace::before { content: "\f159"; } -.bi-badge-3d-fill::before { content: "\f15a"; } -.bi-badge-3d::before { content: "\f15b"; } -.bi-badge-4k-fill::before { content: "\f15c"; } -.bi-badge-4k::before { content: "\f15d"; } -.bi-badge-8k-fill::before { content: "\f15e"; } -.bi-badge-8k::before { content: "\f15f"; } -.bi-badge-ad-fill::before { content: "\f160"; } -.bi-badge-ad::before { content: "\f161"; } -.bi-badge-ar-fill::before { content: "\f162"; } -.bi-badge-ar::before { content: "\f163"; } -.bi-badge-cc-fill::before { content: "\f164"; } -.bi-badge-cc::before { content: "\f165"; } -.bi-badge-hd-fill::before { content: "\f166"; } -.bi-badge-hd::before { content: "\f167"; } -.bi-badge-tm-fill::before { content: "\f168"; } -.bi-badge-tm::before { content: "\f169"; } -.bi-badge-vo-fill::before { content: "\f16a"; } -.bi-badge-vo::before { content: "\f16b"; } -.bi-badge-vr-fill::before { content: "\f16c"; } -.bi-badge-vr::before { content: "\f16d"; } -.bi-badge-wc-fill::before { content: "\f16e"; } -.bi-badge-wc::before { content: "\f16f"; } -.bi-bag-check-fill::before { content: "\f170"; } -.bi-bag-check::before { content: "\f171"; } -.bi-bag-dash-fill::before { content: "\f172"; } -.bi-bag-dash::before { content: "\f173"; } -.bi-bag-fill::before { content: "\f174"; } -.bi-bag-plus-fill::before { content: "\f175"; } -.bi-bag-plus::before { content: "\f176"; } -.bi-bag-x-fill::before { content: "\f177"; } -.bi-bag-x::before { content: "\f178"; } -.bi-bag::before { content: "\f179"; } -.bi-bar-chart-fill::before { content: "\f17a"; } -.bi-bar-chart-line-fill::before { content: "\f17b"; } -.bi-bar-chart-line::before { content: "\f17c"; } -.bi-bar-chart-steps::before { content: "\f17d"; } -.bi-bar-chart::before { content: "\f17e"; } -.bi-basket-fill::before { content: "\f17f"; } -.bi-basket::before { content: "\f180"; } -.bi-basket2-fill::before { content: "\f181"; } -.bi-basket2::before { content: "\f182"; } -.bi-basket3-fill::before { content: "\f183"; } -.bi-basket3::before { content: "\f184"; } -.bi-battery-charging::before { content: "\f185"; } -.bi-battery-full::before { content: "\f186"; } -.bi-battery-half::before { content: "\f187"; } -.bi-battery::before { content: "\f188"; } -.bi-bell-fill::before { content: "\f189"; } -.bi-bell::before { content: "\f18a"; } -.bi-bezier::before { content: "\f18b"; } -.bi-bezier2::before { content: "\f18c"; } -.bi-bicycle::before { content: "\f18d"; } -.bi-binoculars-fill::before { content: "\f18e"; } -.bi-binoculars::before { content: "\f18f"; } -.bi-blockquote-left::before { content: "\f190"; } -.bi-blockquote-right::before { content: "\f191"; } -.bi-book-fill::before { content: "\f192"; } -.bi-book-half::before { content: "\f193"; } -.bi-book::before { content: "\f194"; } -.bi-bookmark-check-fill::before { content: "\f195"; } -.bi-bookmark-check::before { content: "\f196"; } -.bi-bookmark-dash-fill::before { content: "\f197"; } -.bi-bookmark-dash::before { content: "\f198"; } -.bi-bookmark-fill::before { content: "\f199"; } -.bi-bookmark-heart-fill::before { content: "\f19a"; } -.bi-bookmark-heart::before { content: "\f19b"; } -.bi-bookmark-plus-fill::before { content: "\f19c"; } -.bi-bookmark-plus::before { content: "\f19d"; } -.bi-bookmark-star-fill::before { content: "\f19e"; } -.bi-bookmark-star::before { content: "\f19f"; } -.bi-bookmark-x-fill::before { content: "\f1a0"; } -.bi-bookmark-x::before { content: "\f1a1"; } -.bi-bookmark::before { content: "\f1a2"; } -.bi-bookmarks-fill::before { content: "\f1a3"; } -.bi-bookmarks::before { content: "\f1a4"; } -.bi-bookshelf::before { content: "\f1a5"; } -.bi-bootstrap-fill::before { content: "\f1a6"; } -.bi-bootstrap-reboot::before { content: "\f1a7"; } -.bi-bootstrap::before { content: "\f1a8"; } -.bi-border-all::before { content: "\f1a9"; } -.bi-border-bottom::before { content: "\f1aa"; } -.bi-border-center::before { content: "\f1ab"; } -.bi-border-inner::before { content: "\f1ac"; } -.bi-border-left::before { content: "\f1ad"; } -.bi-border-middle::before { content: "\f1ae"; } -.bi-border-outer::before { content: "\f1af"; } -.bi-border-right::before { content: "\f1b0"; } -.bi-border-style::before { content: "\f1b1"; } -.bi-border-top::before { content: "\f1b2"; } -.bi-border-width::before { content: "\f1b3"; } -.bi-border::before { content: "\f1b4"; } -.bi-bounding-box-circles::before { content: "\f1b5"; } -.bi-bounding-box::before { content: "\f1b6"; } -.bi-box-arrow-down-left::before { content: "\f1b7"; } -.bi-box-arrow-down-right::before { content: "\f1b8"; } -.bi-box-arrow-down::before { content: "\f1b9"; } -.bi-box-arrow-in-down-left::before { content: "\f1ba"; } -.bi-box-arrow-in-down-right::before { content: "\f1bb"; } -.bi-box-arrow-in-down::before { content: "\f1bc"; } -.bi-box-arrow-in-left::before { content: "\f1bd"; } -.bi-box-arrow-in-right::before { content: "\f1be"; } -.bi-box-arrow-in-up-left::before { content: "\f1bf"; } -.bi-box-arrow-in-up-right::before { content: "\f1c0"; } -.bi-box-arrow-in-up::before { content: "\f1c1"; } -.bi-box-arrow-left::before { content: "\f1c2"; } -.bi-box-arrow-right::before { content: "\f1c3"; } -.bi-box-arrow-up-left::before { content: "\f1c4"; } -.bi-box-arrow-up-right::before { content: "\f1c5"; } -.bi-box-arrow-up::before { content: "\f1c6"; } -.bi-box-seam::before { content: "\f1c7"; } -.bi-box::before { content: "\f1c8"; } -.bi-braces::before { content: "\f1c9"; } -.bi-bricks::before { content: "\f1ca"; } -.bi-briefcase-fill::before { content: "\f1cb"; } -.bi-briefcase::before { content: "\f1cc"; } -.bi-brightness-alt-high-fill::before { content: "\f1cd"; } -.bi-brightness-alt-high::before { content: "\f1ce"; } -.bi-brightness-alt-low-fill::before { content: "\f1cf"; } -.bi-brightness-alt-low::before { content: "\f1d0"; } -.bi-brightness-high-fill::before { content: "\f1d1"; } -.bi-brightness-high::before { content: "\f1d2"; } -.bi-brightness-low-fill::before { content: "\f1d3"; } -.bi-brightness-low::before { content: "\f1d4"; } -.bi-broadcast-pin::before { content: "\f1d5"; } -.bi-broadcast::before { content: "\f1d6"; } -.bi-brush-fill::before { content: "\f1d7"; } -.bi-brush::before { content: "\f1d8"; } -.bi-bucket-fill::before { content: "\f1d9"; } -.bi-bucket::before { content: "\f1da"; } -.bi-bug-fill::before { content: "\f1db"; } -.bi-bug::before { content: "\f1dc"; } -.bi-building::before { content: "\f1dd"; } -.bi-bullseye::before { content: "\f1de"; } -.bi-calculator-fill::before { content: "\f1df"; } -.bi-calculator::before { content: "\f1e0"; } -.bi-calendar-check-fill::before { content: "\f1e1"; } -.bi-calendar-check::before { content: "\f1e2"; } -.bi-calendar-date-fill::before { content: "\f1e3"; } -.bi-calendar-date::before { content: "\f1e4"; } -.bi-calendar-day-fill::before { content: "\f1e5"; } -.bi-calendar-day::before { content: "\f1e6"; } -.bi-calendar-event-fill::before { content: "\f1e7"; } -.bi-calendar-event::before { content: "\f1e8"; } -.bi-calendar-fill::before { content: "\f1e9"; } -.bi-calendar-minus-fill::before { content: "\f1ea"; } -.bi-calendar-minus::before { content: "\f1eb"; } -.bi-calendar-month-fill::before { content: "\f1ec"; } -.bi-calendar-month::before { content: "\f1ed"; } -.bi-calendar-plus-fill::before { content: "\f1ee"; } -.bi-calendar-plus::before { content: "\f1ef"; } -.bi-calendar-range-fill::before { content: "\f1f0"; } -.bi-calendar-range::before { content: "\f1f1"; } -.bi-calendar-week-fill::before { content: "\f1f2"; } -.bi-calendar-week::before { content: "\f1f3"; } -.bi-calendar-x-fill::before { content: "\f1f4"; } -.bi-calendar-x::before { content: "\f1f5"; } -.bi-calendar::before { content: "\f1f6"; } -.bi-calendar2-check-fill::before { content: "\f1f7"; } -.bi-calendar2-check::before { content: "\f1f8"; } -.bi-calendar2-date-fill::before { content: "\f1f9"; } -.bi-calendar2-date::before { content: "\f1fa"; } -.bi-calendar2-day-fill::before { content: "\f1fb"; } -.bi-calendar2-day::before { content: "\f1fc"; } -.bi-calendar2-event-fill::before { content: "\f1fd"; } -.bi-calendar2-event::before { content: "\f1fe"; } -.bi-calendar2-fill::before { content: "\f1ff"; } -.bi-calendar2-minus-fill::before { content: "\f200"; } -.bi-calendar2-minus::before { content: "\f201"; } -.bi-calendar2-month-fill::before { content: "\f202"; } -.bi-calendar2-month::before { content: "\f203"; } -.bi-calendar2-plus-fill::before { content: "\f204"; } -.bi-calendar2-plus::before { content: "\f205"; } -.bi-calendar2-range-fill::before { content: "\f206"; } -.bi-calendar2-range::before { content: "\f207"; } -.bi-calendar2-week-fill::before { content: "\f208"; } -.bi-calendar2-week::before { content: "\f209"; } -.bi-calendar2-x-fill::before { content: "\f20a"; } -.bi-calendar2-x::before { content: "\f20b"; } -.bi-calendar2::before { content: "\f20c"; } -.bi-calendar3-event-fill::before { content: "\f20d"; } -.bi-calendar3-event::before { content: "\f20e"; } -.bi-calendar3-fill::before { content: "\f20f"; } -.bi-calendar3-range-fill::before { content: "\f210"; } -.bi-calendar3-range::before { content: "\f211"; } -.bi-calendar3-week-fill::before { content: "\f212"; } -.bi-calendar3-week::before { content: "\f213"; } -.bi-calendar3::before { content: "\f214"; } -.bi-calendar4-event::before { content: "\f215"; } -.bi-calendar4-range::before { content: "\f216"; } -.bi-calendar4-week::before { content: "\f217"; } -.bi-calendar4::before { content: "\f218"; } -.bi-camera-fill::before { content: "\f219"; } -.bi-camera-reels-fill::before { content: "\f21a"; } -.bi-camera-reels::before { content: "\f21b"; } -.bi-camera-video-fill::before { content: "\f21c"; } -.bi-camera-video-off-fill::before { content: "\f21d"; } -.bi-camera-video-off::before { content: "\f21e"; } -.bi-camera-video::before { content: "\f21f"; } -.bi-camera::before { content: "\f220"; } -.bi-camera2::before { content: "\f221"; } -.bi-capslock-fill::before { content: "\f222"; } -.bi-capslock::before { content: "\f223"; } -.bi-card-checklist::before { content: "\f224"; } -.bi-card-heading::before { content: "\f225"; } -.bi-card-image::before { content: "\f226"; } -.bi-card-list::before { content: "\f227"; } -.bi-card-text::before { content: "\f228"; } -.bi-caret-down-fill::before { content: "\f229"; } -.bi-caret-down-square-fill::before { content: "\f22a"; } -.bi-caret-down-square::before { content: "\f22b"; } -.bi-caret-down::before { content: "\f22c"; } -.bi-caret-left-fill::before { content: "\f22d"; } -.bi-caret-left-square-fill::before { content: "\f22e"; } -.bi-caret-left-square::before { content: "\f22f"; } -.bi-caret-left::before { content: "\f230"; } -.bi-caret-right-fill::before { content: "\f231"; } -.bi-caret-right-square-fill::before { content: "\f232"; } -.bi-caret-right-square::before { content: "\f233"; } -.bi-caret-right::before { content: "\f234"; } -.bi-caret-up-fill::before { content: "\f235"; } -.bi-caret-up-square-fill::before { content: "\f236"; } -.bi-caret-up-square::before { content: "\f237"; } -.bi-caret-up::before { content: "\f238"; } -.bi-cart-check-fill::before { content: "\f239"; } -.bi-cart-check::before { content: "\f23a"; } -.bi-cart-dash-fill::before { content: "\f23b"; } -.bi-cart-dash::before { content: "\f23c"; } -.bi-cart-fill::before { content: "\f23d"; } -.bi-cart-plus-fill::before { content: "\f23e"; } -.bi-cart-plus::before { content: "\f23f"; } -.bi-cart-x-fill::before { content: "\f240"; } -.bi-cart-x::before { content: "\f241"; } -.bi-cart::before { content: "\f242"; } -.bi-cart2::before { content: "\f243"; } -.bi-cart3::before { content: "\f244"; } -.bi-cart4::before { content: "\f245"; } -.bi-cash-stack::before { content: "\f246"; } -.bi-cash::before { content: "\f247"; } -.bi-cast::before { content: "\f248"; } -.bi-chat-dots-fill::before { content: "\f249"; } -.bi-chat-dots::before { content: "\f24a"; } -.bi-chat-fill::before { content: "\f24b"; } -.bi-chat-left-dots-fill::before { content: "\f24c"; } -.bi-chat-left-dots::before { content: "\f24d"; } -.bi-chat-left-fill::before { content: "\f24e"; } -.bi-chat-left-quote-fill::before { content: "\f24f"; } -.bi-chat-left-quote::before { content: "\f250"; } -.bi-chat-left-text-fill::before { content: "\f251"; } -.bi-chat-left-text::before { content: "\f252"; } -.bi-chat-left::before { content: "\f253"; } -.bi-chat-quote-fill::before { content: "\f254"; } -.bi-chat-quote::before { content: "\f255"; } -.bi-chat-right-dots-fill::before { content: "\f256"; } -.bi-chat-right-dots::before { content: "\f257"; } -.bi-chat-right-fill::before { content: "\f258"; } -.bi-chat-right-quote-fill::before { content: "\f259"; } -.bi-chat-right-quote::before { content: "\f25a"; } -.bi-chat-right-text-fill::before { content: "\f25b"; } -.bi-chat-right-text::before { content: "\f25c"; } -.bi-chat-right::before { content: "\f25d"; } -.bi-chat-square-dots-fill::before { content: "\f25e"; } -.bi-chat-square-dots::before { content: "\f25f"; } -.bi-chat-square-fill::before { content: "\f260"; } -.bi-chat-square-quote-fill::before { content: "\f261"; } -.bi-chat-square-quote::before { content: "\f262"; } -.bi-chat-square-text-fill::before { content: "\f263"; } -.bi-chat-square-text::before { content: "\f264"; } -.bi-chat-square::before { content: "\f265"; } -.bi-chat-text-fill::before { content: "\f266"; } -.bi-chat-text::before { content: "\f267"; } -.bi-chat::before { content: "\f268"; } -.bi-check-all::before { content: "\f269"; } -.bi-check-circle-fill::before { content: "\f26a"; } -.bi-check-circle::before { content: "\f26b"; } -.bi-check-square-fill::before { content: "\f26c"; } -.bi-check-square::before { content: "\f26d"; } -.bi-check::before { content: "\f26e"; } -.bi-check2-all::before { content: "\f26f"; } -.bi-check2-circle::before { content: "\f270"; } -.bi-check2-square::before { content: "\f271"; } -.bi-check2::before { content: "\f272"; } -.bi-chevron-bar-contract::before { content: "\f273"; } -.bi-chevron-bar-down::before { content: "\f274"; } -.bi-chevron-bar-expand::before { content: "\f275"; } -.bi-chevron-bar-left::before { content: "\f276"; } -.bi-chevron-bar-right::before { content: "\f277"; } -.bi-chevron-bar-up::before { content: "\f278"; } -.bi-chevron-compact-down::before { content: "\f279"; } -.bi-chevron-compact-left::before { content: "\f27a"; } -.bi-chevron-compact-right::before { content: "\f27b"; } -.bi-chevron-compact-up::before { content: "\f27c"; } -.bi-chevron-contract::before { content: "\f27d"; } -.bi-chevron-double-down::before { content: "\f27e"; } -.bi-chevron-double-left::before { content: "\f27f"; } -.bi-chevron-double-right::before { content: "\f280"; } -.bi-chevron-double-up::before { content: "\f281"; } -.bi-chevron-down::before { content: "\f282"; } -.bi-chevron-expand::before { content: "\f283"; } -.bi-chevron-left::before { content: "\f284"; } -.bi-chevron-right::before { content: "\f285"; } -.bi-chevron-up::before { content: "\f286"; } -.bi-circle-fill::before { content: "\f287"; } -.bi-circle-half::before { content: "\f288"; } -.bi-circle-square::before { content: "\f289"; } -.bi-circle::before { content: "\f28a"; } -.bi-clipboard-check::before { content: "\f28b"; } -.bi-clipboard-data::before { content: "\f28c"; } -.bi-clipboard-minus::before { content: "\f28d"; } -.bi-clipboard-plus::before { content: "\f28e"; } -.bi-clipboard-x::before { content: "\f28f"; } -.bi-clipboard::before { content: "\f290"; } -.bi-clock-fill::before { content: "\f291"; } -.bi-clock-history::before { content: "\f292"; } -.bi-clock::before { content: "\f293"; } -.bi-cloud-arrow-down-fill::before { content: "\f294"; } -.bi-cloud-arrow-down::before { content: "\f295"; } -.bi-cloud-arrow-up-fill::before { content: "\f296"; } -.bi-cloud-arrow-up::before { content: "\f297"; } -.bi-cloud-check-fill::before { content: "\f298"; } -.bi-cloud-check::before { content: "\f299"; } -.bi-cloud-download-fill::before { content: "\f29a"; } -.bi-cloud-download::before { content: "\f29b"; } -.bi-cloud-drizzle-fill::before { content: "\f29c"; } -.bi-cloud-drizzle::before { content: "\f29d"; } -.bi-cloud-fill::before { content: "\f29e"; } -.bi-cloud-fog-fill::before { content: "\f29f"; } -.bi-cloud-fog::before { content: "\f2a0"; } -.bi-cloud-fog2-fill::before { content: "\f2a1"; } -.bi-cloud-fog2::before { content: "\f2a2"; } -.bi-cloud-hail-fill::before { content: "\f2a3"; } -.bi-cloud-hail::before { content: "\f2a4"; } -.bi-cloud-haze-fill::before { content: "\f2a6"; } -.bi-cloud-haze::before { content: "\f2a7"; } -.bi-cloud-haze2-fill::before { content: "\f2a8"; } -.bi-cloud-lightning-fill::before { content: "\f2a9"; } -.bi-cloud-lightning-rain-fill::before { content: "\f2aa"; } -.bi-cloud-lightning-rain::before { content: "\f2ab"; } -.bi-cloud-lightning::before { content: "\f2ac"; } -.bi-cloud-minus-fill::before { content: "\f2ad"; } -.bi-cloud-minus::before { content: "\f2ae"; } -.bi-cloud-moon-fill::before { content: "\f2af"; } -.bi-cloud-moon::before { content: "\f2b0"; } -.bi-cloud-plus-fill::before { content: "\f2b1"; } -.bi-cloud-plus::before { content: "\f2b2"; } -.bi-cloud-rain-fill::before { content: "\f2b3"; } -.bi-cloud-rain-heavy-fill::before { content: "\f2b4"; } -.bi-cloud-rain-heavy::before { content: "\f2b5"; } -.bi-cloud-rain::before { content: "\f2b6"; } -.bi-cloud-slash-fill::before { content: "\f2b7"; } -.bi-cloud-slash::before { content: "\f2b8"; } -.bi-cloud-sleet-fill::before { content: "\f2b9"; } -.bi-cloud-sleet::before { content: "\f2ba"; } -.bi-cloud-snow-fill::before { content: "\f2bb"; } -.bi-cloud-snow::before { content: "\f2bc"; } -.bi-cloud-sun-fill::before { content: "\f2bd"; } -.bi-cloud-sun::before { content: "\f2be"; } -.bi-cloud-upload-fill::before { content: "\f2bf"; } -.bi-cloud-upload::before { content: "\f2c0"; } -.bi-cloud::before { content: "\f2c1"; } -.bi-clouds-fill::before { content: "\f2c2"; } -.bi-clouds::before { content: "\f2c3"; } -.bi-cloudy-fill::before { content: "\f2c4"; } -.bi-cloudy::before { content: "\f2c5"; } -.bi-code-slash::before { content: "\f2c6"; } -.bi-code-square::before { content: "\f2c7"; } -.bi-code::before { content: "\f2c8"; } -.bi-collection-fill::before { content: "\f2c9"; } -.bi-collection-play-fill::before { content: "\f2ca"; } -.bi-collection-play::before { content: "\f2cb"; } -.bi-collection::before { content: "\f2cc"; } -.bi-columns-gap::before { content: "\f2cd"; } -.bi-columns::before { content: "\f2ce"; } -.bi-command::before { content: "\f2cf"; } -.bi-compass-fill::before { content: "\f2d0"; } -.bi-compass::before { content: "\f2d1"; } -.bi-cone-striped::before { content: "\f2d2"; } -.bi-cone::before { content: "\f2d3"; } -.bi-controller::before { content: "\f2d4"; } -.bi-cpu-fill::before { content: "\f2d5"; } -.bi-cpu::before { content: "\f2d6"; } -.bi-credit-card-2-back-fill::before { content: "\f2d7"; } -.bi-credit-card-2-back::before { content: "\f2d8"; } -.bi-credit-card-2-front-fill::before { content: "\f2d9"; } -.bi-credit-card-2-front::before { content: "\f2da"; } -.bi-credit-card-fill::before { content: "\f2db"; } -.bi-credit-card::before { content: "\f2dc"; } -.bi-crop::before { content: "\f2dd"; } -.bi-cup-fill::before { content: "\f2de"; } -.bi-cup-straw::before { content: "\f2df"; } -.bi-cup::before { content: "\f2e0"; } -.bi-cursor-fill::before { content: "\f2e1"; } -.bi-cursor-text::before { content: "\f2e2"; } -.bi-cursor::before { content: "\f2e3"; } -.bi-dash-circle-dotted::before { content: "\f2e4"; } -.bi-dash-circle-fill::before { content: "\f2e5"; } -.bi-dash-circle::before { content: "\f2e6"; } -.bi-dash-square-dotted::before { content: "\f2e7"; } -.bi-dash-square-fill::before { content: "\f2e8"; } -.bi-dash-square::before { content: "\f2e9"; } -.bi-dash::before { content: "\f2ea"; } -.bi-diagram-2-fill::before { content: "\f2eb"; } -.bi-diagram-2::before { content: "\f2ec"; } -.bi-diagram-3-fill::before { content: "\f2ed"; } -.bi-diagram-3::before { content: "\f2ee"; } -.bi-diamond-fill::before { content: "\f2ef"; } -.bi-diamond-half::before { content: "\f2f0"; } -.bi-diamond::before { content: "\f2f1"; } -.bi-dice-1-fill::before { content: "\f2f2"; } -.bi-dice-1::before { content: "\f2f3"; } -.bi-dice-2-fill::before { content: "\f2f4"; } -.bi-dice-2::before { content: "\f2f5"; } -.bi-dice-3-fill::before { content: "\f2f6"; } -.bi-dice-3::before { content: "\f2f7"; } -.bi-dice-4-fill::before { content: "\f2f8"; } -.bi-dice-4::before { content: "\f2f9"; } -.bi-dice-5-fill::before { content: "\f2fa"; } -.bi-dice-5::before { content: "\f2fb"; } -.bi-dice-6-fill::before { content: "\f2fc"; } -.bi-dice-6::before { content: "\f2fd"; } -.bi-disc-fill::before { content: "\f2fe"; } -.bi-disc::before { content: "\f2ff"; } -.bi-discord::before { content: "\f300"; } -.bi-display-fill::before { content: "\f301"; } -.bi-display::before { content: "\f302"; } -.bi-distribute-horizontal::before { content: "\f303"; } -.bi-distribute-vertical::before { content: "\f304"; } -.bi-door-closed-fill::before { content: "\f305"; } -.bi-door-closed::before { content: "\f306"; } -.bi-door-open-fill::before { content: "\f307"; } -.bi-door-open::before { content: "\f308"; } -.bi-dot::before { content: "\f309"; } -.bi-download::before { content: "\f30a"; } -.bi-droplet-fill::before { content: "\f30b"; } -.bi-droplet-half::before { content: "\f30c"; } -.bi-droplet::before { content: "\f30d"; } -.bi-earbuds::before { content: "\f30e"; } -.bi-easel-fill::before { content: "\f30f"; } -.bi-easel::before { content: "\f310"; } -.bi-egg-fill::before { content: "\f311"; } -.bi-egg-fried::before { content: "\f312"; } -.bi-egg::before { content: "\f313"; } -.bi-eject-fill::before { content: "\f314"; } -.bi-eject::before { content: "\f315"; } -.bi-emoji-angry-fill::before { content: "\f316"; } -.bi-emoji-angry::before { content: "\f317"; } -.bi-emoji-dizzy-fill::before { content: "\f318"; } -.bi-emoji-dizzy::before { content: "\f319"; } -.bi-emoji-expressionless-fill::before { content: "\f31a"; } -.bi-emoji-expressionless::before { content: "\f31b"; } -.bi-emoji-frown-fill::before { content: "\f31c"; } -.bi-emoji-frown::before { content: "\f31d"; } -.bi-emoji-heart-eyes-fill::before { content: "\f31e"; } -.bi-emoji-heart-eyes::before { content: "\f31f"; } -.bi-emoji-laughing-fill::before { content: "\f320"; } -.bi-emoji-laughing::before { content: "\f321"; } -.bi-emoji-neutral-fill::before { content: "\f322"; } -.bi-emoji-neutral::before { content: "\f323"; } -.bi-emoji-smile-fill::before { content: "\f324"; } -.bi-emoji-smile-upside-down-fill::before { content: "\f325"; } -.bi-emoji-smile-upside-down::before { content: "\f326"; } -.bi-emoji-smile::before { content: "\f327"; } -.bi-emoji-sunglasses-fill::before { content: "\f328"; } -.bi-emoji-sunglasses::before { content: "\f329"; } -.bi-emoji-wink-fill::before { content: "\f32a"; } -.bi-emoji-wink::before { content: "\f32b"; } -.bi-envelope-fill::before { content: "\f32c"; } -.bi-envelope-open-fill::before { content: "\f32d"; } -.bi-envelope-open::before { content: "\f32e"; } -.bi-envelope::before { content: "\f32f"; } -.bi-eraser-fill::before { content: "\f330"; } -.bi-eraser::before { content: "\f331"; } -.bi-exclamation-circle-fill::before { content: "\f332"; } -.bi-exclamation-circle::before { content: "\f333"; } -.bi-exclamation-diamond-fill::before { content: "\f334"; } -.bi-exclamation-diamond::before { content: "\f335"; } -.bi-exclamation-octagon-fill::before { content: "\f336"; } -.bi-exclamation-octagon::before { content: "\f337"; } -.bi-exclamation-square-fill::before { content: "\f338"; } -.bi-exclamation-square::before { content: "\f339"; } -.bi-exclamation-triangle-fill::before { content: "\f33a"; } -.bi-exclamation-triangle::before { content: "\f33b"; } -.bi-exclamation::before { content: "\f33c"; } -.bi-exclude::before { content: "\f33d"; } -.bi-eye-fill::before { content: "\f33e"; } -.bi-eye-slash-fill::before { content: "\f33f"; } -.bi-eye-slash::before { content: "\f340"; } -.bi-eye::before { content: "\f341"; } -.bi-eyedropper::before { content: "\f342"; } -.bi-eyeglasses::before { content: "\f343"; } -.bi-facebook::before { content: "\f344"; } -.bi-file-arrow-down-fill::before { content: "\f345"; } -.bi-file-arrow-down::before { content: "\f346"; } -.bi-file-arrow-up-fill::before { content: "\f347"; } -.bi-file-arrow-up::before { content: "\f348"; } -.bi-file-bar-graph-fill::before { content: "\f349"; } -.bi-file-bar-graph::before { content: "\f34a"; } -.bi-file-binary-fill::before { content: "\f34b"; } -.bi-file-binary::before { content: "\f34c"; } -.bi-file-break-fill::before { content: "\f34d"; } -.bi-file-break::before { content: "\f34e"; } -.bi-file-check-fill::before { content: "\f34f"; } -.bi-file-check::before { content: "\f350"; } -.bi-file-code-fill::before { content: "\f351"; } -.bi-file-code::before { content: "\f352"; } -.bi-file-diff-fill::before { content: "\f353"; } -.bi-file-diff::before { content: "\f354"; } -.bi-file-earmark-arrow-down-fill::before { content: "\f355"; } -.bi-file-earmark-arrow-down::before { content: "\f356"; } -.bi-file-earmark-arrow-up-fill::before { content: "\f357"; } -.bi-file-earmark-arrow-up::before { content: "\f358"; } -.bi-file-earmark-bar-graph-fill::before { content: "\f359"; } -.bi-file-earmark-bar-graph::before { content: "\f35a"; } -.bi-file-earmark-binary-fill::before { content: "\f35b"; } -.bi-file-earmark-binary::before { content: "\f35c"; } -.bi-file-earmark-break-fill::before { content: "\f35d"; } -.bi-file-earmark-break::before { content: "\f35e"; } -.bi-file-earmark-check-fill::before { content: "\f35f"; } -.bi-file-earmark-check::before { content: "\f360"; } -.bi-file-earmark-code-fill::before { content: "\f361"; } -.bi-file-earmark-code::before { content: "\f362"; } -.bi-file-earmark-diff-fill::before { content: "\f363"; } -.bi-file-earmark-diff::before { content: "\f364"; } -.bi-file-earmark-easel-fill::before { content: "\f365"; } -.bi-file-earmark-easel::before { content: "\f366"; } -.bi-file-earmark-excel-fill::before { content: "\f367"; } -.bi-file-earmark-excel::before { content: "\f368"; } -.bi-file-earmark-fill::before { content: "\f369"; } -.bi-file-earmark-font-fill::before { content: "\f36a"; } -.bi-file-earmark-font::before { content: "\f36b"; } -.bi-file-earmark-image-fill::before { content: "\f36c"; } -.bi-file-earmark-image::before { content: "\f36d"; } -.bi-file-earmark-lock-fill::before { content: "\f36e"; } -.bi-file-earmark-lock::before { content: "\f36f"; } -.bi-file-earmark-lock2-fill::before { content: "\f370"; } -.bi-file-earmark-lock2::before { content: "\f371"; } -.bi-file-earmark-medical-fill::before { content: "\f372"; } -.bi-file-earmark-medical::before { content: "\f373"; } -.bi-file-earmark-minus-fill::before { content: "\f374"; } -.bi-file-earmark-minus::before { content: "\f375"; } -.bi-file-earmark-music-fill::before { content: "\f376"; } -.bi-file-earmark-music::before { content: "\f377"; } -.bi-file-earmark-person-fill::before { content: "\f378"; } -.bi-file-earmark-person::before { content: "\f379"; } -.bi-file-earmark-play-fill::before { content: "\f37a"; } -.bi-file-earmark-play::before { content: "\f37b"; } -.bi-file-earmark-plus-fill::before { content: "\f37c"; } -.bi-file-earmark-plus::before { content: "\f37d"; } -.bi-file-earmark-post-fill::before { content: "\f37e"; } -.bi-file-earmark-post::before { content: "\f37f"; } -.bi-file-earmark-ppt-fill::before { content: "\f380"; } -.bi-file-earmark-ppt::before { content: "\f381"; } -.bi-file-earmark-richtext-fill::before { content: "\f382"; } -.bi-file-earmark-richtext::before { content: "\f383"; } -.bi-file-earmark-ruled-fill::before { content: "\f384"; } -.bi-file-earmark-ruled::before { content: "\f385"; } -.bi-file-earmark-slides-fill::before { content: "\f386"; } -.bi-file-earmark-slides::before { content: "\f387"; } -.bi-file-earmark-spreadsheet-fill::before { content: "\f388"; } -.bi-file-earmark-spreadsheet::before { content: "\f389"; } -.bi-file-earmark-text-fill::before { content: "\f38a"; } -.bi-file-earmark-text::before { content: "\f38b"; } -.bi-file-earmark-word-fill::before { content: "\f38c"; } -.bi-file-earmark-word::before { content: "\f38d"; } -.bi-file-earmark-x-fill::before { content: "\f38e"; } -.bi-file-earmark-x::before { content: "\f38f"; } -.bi-file-earmark-zip-fill::before { content: "\f390"; } -.bi-file-earmark-zip::before { content: "\f391"; } -.bi-file-earmark::before { content: "\f392"; } -.bi-file-easel-fill::before { content: "\f393"; } -.bi-file-easel::before { content: "\f394"; } -.bi-file-excel-fill::before { content: "\f395"; } -.bi-file-excel::before { content: "\f396"; } -.bi-file-fill::before { content: "\f397"; } -.bi-file-font-fill::before { content: "\f398"; } -.bi-file-font::before { content: "\f399"; } -.bi-file-image-fill::before { content: "\f39a"; } -.bi-file-image::before { content: "\f39b"; } -.bi-file-lock-fill::before { content: "\f39c"; } -.bi-file-lock::before { content: "\f39d"; } -.bi-file-lock2-fill::before { content: "\f39e"; } -.bi-file-lock2::before { content: "\f39f"; } -.bi-file-medical-fill::before { content: "\f3a0"; } -.bi-file-medical::before { content: "\f3a1"; } -.bi-file-minus-fill::before { content: "\f3a2"; } -.bi-file-minus::before { content: "\f3a3"; } -.bi-file-music-fill::before { content: "\f3a4"; } -.bi-file-music::before { content: "\f3a5"; } -.bi-file-person-fill::before { content: "\f3a6"; } -.bi-file-person::before { content: "\f3a7"; } -.bi-file-play-fill::before { content: "\f3a8"; } -.bi-file-play::before { content: "\f3a9"; } -.bi-file-plus-fill::before { content: "\f3aa"; } -.bi-file-plus::before { content: "\f3ab"; } -.bi-file-post-fill::before { content: "\f3ac"; } -.bi-file-post::before { content: "\f3ad"; } -.bi-file-ppt-fill::before { content: "\f3ae"; } -.bi-file-ppt::before { content: "\f3af"; } -.bi-file-richtext-fill::before { content: "\f3b0"; } -.bi-file-richtext::before { content: "\f3b1"; } -.bi-file-ruled-fill::before { content: "\f3b2"; } -.bi-file-ruled::before { content: "\f3b3"; } -.bi-file-slides-fill::before { content: "\f3b4"; } -.bi-file-slides::before { content: "\f3b5"; } -.bi-file-spreadsheet-fill::before { content: "\f3b6"; } -.bi-file-spreadsheet::before { content: "\f3b7"; } -.bi-file-text-fill::before { content: "\f3b8"; } -.bi-file-text::before { content: "\f3b9"; } -.bi-file-word-fill::before { content: "\f3ba"; } -.bi-file-word::before { content: "\f3bb"; } -.bi-file-x-fill::before { content: "\f3bc"; } -.bi-file-x::before { content: "\f3bd"; } -.bi-file-zip-fill::before { content: "\f3be"; } -.bi-file-zip::before { content: "\f3bf"; } -.bi-file::before { content: "\f3c0"; } -.bi-files-alt::before { content: "\f3c1"; } -.bi-files::before { content: "\f3c2"; } -.bi-film::before { content: "\f3c3"; } -.bi-filter-circle-fill::before { content: "\f3c4"; } -.bi-filter-circle::before { content: "\f3c5"; } -.bi-filter-left::before { content: "\f3c6"; } -.bi-filter-right::before { content: "\f3c7"; } -.bi-filter-square-fill::before { content: "\f3c8"; } -.bi-filter-square::before { content: "\f3c9"; } -.bi-filter::before { content: "\f3ca"; } -.bi-flag-fill::before { content: "\f3cb"; } -.bi-flag::before { content: "\f3cc"; } -.bi-flower1::before { content: "\f3cd"; } -.bi-flower2::before { content: "\f3ce"; } -.bi-flower3::before { content: "\f3cf"; } -.bi-folder-check::before { content: "\f3d0"; } -.bi-folder-fill::before { content: "\f3d1"; } -.bi-folder-minus::before { content: "\f3d2"; } -.bi-folder-plus::before { content: "\f3d3"; } -.bi-folder-symlink-fill::before { content: "\f3d4"; } -.bi-folder-symlink::before { content: "\f3d5"; } -.bi-folder-x::before { content: "\f3d6"; } -.bi-folder::before { content: "\f3d7"; } -.bi-folder2-open::before { content: "\f3d8"; } -.bi-folder2::before { content: "\f3d9"; } -.bi-fonts::before { content: "\f3da"; } -.bi-forward-fill::before { content: "\f3db"; } -.bi-forward::before { content: "\f3dc"; } -.bi-front::before { content: "\f3dd"; } -.bi-fullscreen-exit::before { content: "\f3de"; } -.bi-fullscreen::before { content: "\f3df"; } -.bi-funnel-fill::before { content: "\f3e0"; } -.bi-funnel::before { content: "\f3e1"; } -.bi-gear-fill::before { content: "\f3e2"; } -.bi-gear-wide-connected::before { content: "\f3e3"; } -.bi-gear-wide::before { content: "\f3e4"; } -.bi-gear::before { content: "\f3e5"; } -.bi-gem::before { content: "\f3e6"; } -.bi-geo-alt-fill::before { content: "\f3e7"; } -.bi-geo-alt::before { content: "\f3e8"; } -.bi-geo-fill::before { content: "\f3e9"; } -.bi-geo::before { content: "\f3ea"; } -.bi-gift-fill::before { content: "\f3eb"; } -.bi-gift::before { content: "\f3ec"; } -.bi-github::before { content: "\f3ed"; } -.bi-globe::before { content: "\f3ee"; } -.bi-globe2::before { content: "\f3ef"; } -.bi-google::before { content: "\f3f0"; } -.bi-graph-down::before { content: "\f3f1"; } -.bi-graph-up::before { content: "\f3f2"; } -.bi-grid-1x2-fill::before { content: "\f3f3"; } -.bi-grid-1x2::before { content: "\f3f4"; } -.bi-grid-3x2-gap-fill::before { content: "\f3f5"; } -.bi-grid-3x2-gap::before { content: "\f3f6"; } -.bi-grid-3x2::before { content: "\f3f7"; } -.bi-grid-3x3-gap-fill::before { content: "\f3f8"; } -.bi-grid-3x3-gap::before { content: "\f3f9"; } -.bi-grid-3x3::before { content: "\f3fa"; } -.bi-grid-fill::before { content: "\f3fb"; } -.bi-grid::before { content: "\f3fc"; } -.bi-grip-horizontal::before { content: "\f3fd"; } -.bi-grip-vertical::before { content: "\f3fe"; } -.bi-hammer::before { content: "\f3ff"; } -.bi-hand-index-fill::before { content: "\f400"; } -.bi-hand-index-thumb-fill::before { content: "\f401"; } -.bi-hand-index-thumb::before { content: "\f402"; } -.bi-hand-index::before { content: "\f403"; } -.bi-hand-thumbs-down-fill::before { content: "\f404"; } -.bi-hand-thumbs-down::before { content: "\f405"; } -.bi-hand-thumbs-up-fill::before { content: "\f406"; } -.bi-hand-thumbs-up::before { content: "\f407"; } -.bi-handbag-fill::before { content: "\f408"; } -.bi-handbag::before { content: "\f409"; } -.bi-hash::before { content: "\f40a"; } -.bi-hdd-fill::before { content: "\f40b"; } -.bi-hdd-network-fill::before { content: "\f40c"; } -.bi-hdd-network::before { content: "\f40d"; } -.bi-hdd-rack-fill::before { content: "\f40e"; } -.bi-hdd-rack::before { content: "\f40f"; } -.bi-hdd-stack-fill::before { content: "\f410"; } -.bi-hdd-stack::before { content: "\f411"; } -.bi-hdd::before { content: "\f412"; } -.bi-headphones::before { content: "\f413"; } -.bi-headset::before { content: "\f414"; } -.bi-heart-fill::before { content: "\f415"; } -.bi-heart-half::before { content: "\f416"; } -.bi-heart::before { content: "\f417"; } -.bi-heptagon-fill::before { content: "\f418"; } -.bi-heptagon-half::before { content: "\f419"; } -.bi-heptagon::before { content: "\f41a"; } -.bi-hexagon-fill::before { content: "\f41b"; } -.bi-hexagon-half::before { content: "\f41c"; } -.bi-hexagon::before { content: "\f41d"; } -.bi-hourglass-bottom::before { content: "\f41e"; } -.bi-hourglass-split::before { content: "\f41f"; } -.bi-hourglass-top::before { content: "\f420"; } -.bi-hourglass::before { content: "\f421"; } -.bi-house-door-fill::before { content: "\f422"; } -.bi-house-door::before { content: "\f423"; } -.bi-house-fill::before { content: "\f424"; } -.bi-house::before { content: "\f425"; } -.bi-hr::before { content: "\f426"; } -.bi-hurricane::before { content: "\f427"; } -.bi-image-alt::before { content: "\f428"; } -.bi-image-fill::before { content: "\f429"; } -.bi-image::before { content: "\f42a"; } -.bi-images::before { content: "\f42b"; } -.bi-inbox-fill::before { content: "\f42c"; } -.bi-inbox::before { content: "\f42d"; } -.bi-inboxes-fill::before { content: "\f42e"; } -.bi-inboxes::before { content: "\f42f"; } -.bi-info-circle-fill::before { content: "\f430"; } -.bi-info-circle::before { content: "\f431"; } -.bi-info-square-fill::before { content: "\f432"; } -.bi-info-square::before { content: "\f433"; } -.bi-info::before { content: "\f434"; } -.bi-input-cursor-text::before { content: "\f435"; } -.bi-input-cursor::before { content: "\f436"; } -.bi-instagram::before { content: "\f437"; } -.bi-intersect::before { content: "\f438"; } -.bi-journal-album::before { content: "\f439"; } -.bi-journal-arrow-down::before { content: "\f43a"; } -.bi-journal-arrow-up::before { content: "\f43b"; } -.bi-journal-bookmark-fill::before { content: "\f43c"; } -.bi-journal-bookmark::before { content: "\f43d"; } -.bi-journal-check::before { content: "\f43e"; } -.bi-journal-code::before { content: "\f43f"; } -.bi-journal-medical::before { content: "\f440"; } -.bi-journal-minus::before { content: "\f441"; } -.bi-journal-plus::before { content: "\f442"; } -.bi-journal-richtext::before { content: "\f443"; } -.bi-journal-text::before { content: "\f444"; } -.bi-journal-x::before { content: "\f445"; } -.bi-journal::before { content: "\f446"; } -.bi-journals::before { content: "\f447"; } -.bi-joystick::before { content: "\f448"; } -.bi-justify-left::before { content: "\f449"; } -.bi-justify-right::before { content: "\f44a"; } -.bi-justify::before { content: "\f44b"; } -.bi-kanban-fill::before { content: "\f44c"; } -.bi-kanban::before { content: "\f44d"; } -.bi-key-fill::before { content: "\f44e"; } -.bi-key::before { content: "\f44f"; } -.bi-keyboard-fill::before { content: "\f450"; } -.bi-keyboard::before { content: "\f451"; } -.bi-ladder::before { content: "\f452"; } -.bi-lamp-fill::before { content: "\f453"; } -.bi-lamp::before { content: "\f454"; } -.bi-laptop-fill::before { content: "\f455"; } -.bi-laptop::before { content: "\f456"; } -.bi-layer-backward::before { content: "\f457"; } -.bi-layer-forward::before { content: "\f458"; } -.bi-layers-fill::before { content: "\f459"; } -.bi-layers-half::before { content: "\f45a"; } -.bi-layers::before { content: "\f45b"; } -.bi-layout-sidebar-inset-reverse::before { content: "\f45c"; } -.bi-layout-sidebar-inset::before { content: "\f45d"; } -.bi-layout-sidebar-reverse::before { content: "\f45e"; } -.bi-layout-sidebar::before { content: "\f45f"; } -.bi-layout-split::before { content: "\f460"; } -.bi-layout-text-sidebar-reverse::before { content: "\f461"; } -.bi-layout-text-sidebar::before { content: "\f462"; } -.bi-layout-text-window-reverse::before { content: "\f463"; } -.bi-layout-text-window::before { content: "\f464"; } -.bi-layout-three-columns::before { content: "\f465"; } -.bi-layout-wtf::before { content: "\f466"; } -.bi-life-preserver::before { content: "\f467"; } -.bi-lightbulb-fill::before { content: "\f468"; } -.bi-lightbulb-off-fill::before { content: "\f469"; } -.bi-lightbulb-off::before { content: "\f46a"; } -.bi-lightbulb::before { content: "\f46b"; } -.bi-lightning-charge-fill::before { content: "\f46c"; } -.bi-lightning-charge::before { content: "\f46d"; } -.bi-lightning-fill::before { content: "\f46e"; } -.bi-lightning::before { content: "\f46f"; } -.bi-link-45deg::before { content: "\f470"; } -.bi-link::before { content: "\f471"; } -.bi-linkedin::before { content: "\f472"; } -.bi-list-check::before { content: "\f473"; } -.bi-list-nested::before { content: "\f474"; } -.bi-list-ol::before { content: "\f475"; } -.bi-list-stars::before { content: "\f476"; } -.bi-list-task::before { content: "\f477"; } -.bi-list-ul::before { content: "\f478"; } -.bi-list::before { content: "\f479"; } -.bi-lock-fill::before { content: "\f47a"; } -.bi-lock::before { content: "\f47b"; } -.bi-mailbox::before { content: "\f47c"; } -.bi-mailbox2::before { content: "\f47d"; } -.bi-map-fill::before { content: "\f47e"; } -.bi-map::before { content: "\f47f"; } -.bi-markdown-fill::before { content: "\f480"; } -.bi-markdown::before { content: "\f481"; } -.bi-mask::before { content: "\f482"; } -.bi-megaphone-fill::before { content: "\f483"; } -.bi-megaphone::before { content: "\f484"; } -.bi-menu-app-fill::before { content: "\f485"; } -.bi-menu-app::before { content: "\f486"; } -.bi-menu-button-fill::before { content: "\f487"; } -.bi-menu-button-wide-fill::before { content: "\f488"; } -.bi-menu-button-wide::before { content: "\f489"; } -.bi-menu-button::before { content: "\f48a"; } -.bi-menu-down::before { content: "\f48b"; } -.bi-menu-up::before { content: "\f48c"; } -.bi-mic-fill::before { content: "\f48d"; } -.bi-mic-mute-fill::before { content: "\f48e"; } -.bi-mic-mute::before { content: "\f48f"; } -.bi-mic::before { content: "\f490"; } -.bi-minecart-loaded::before { content: "\f491"; } -.bi-minecart::before { content: "\f492"; } -.bi-moisture::before { content: "\f493"; } -.bi-moon-fill::before { content: "\f494"; } -.bi-moon-stars-fill::before { content: "\f495"; } -.bi-moon-stars::before { content: "\f496"; } -.bi-moon::before { content: "\f497"; } -.bi-mouse-fill::before { content: "\f498"; } -.bi-mouse::before { content: "\f499"; } -.bi-mouse2-fill::before { content: "\f49a"; } -.bi-mouse2::before { content: "\f49b"; } -.bi-mouse3-fill::before { content: "\f49c"; } -.bi-mouse3::before { content: "\f49d"; } -.bi-music-note-beamed::before { content: "\f49e"; } -.bi-music-note-list::before { content: "\f49f"; } -.bi-music-note::before { content: "\f4a0"; } -.bi-music-player-fill::before { content: "\f4a1"; } -.bi-music-player::before { content: "\f4a2"; } -.bi-newspaper::before { content: "\f4a3"; } -.bi-node-minus-fill::before { content: "\f4a4"; } -.bi-node-minus::before { content: "\f4a5"; } -.bi-node-plus-fill::before { content: "\f4a6"; } -.bi-node-plus::before { content: "\f4a7"; } -.bi-nut-fill::before { content: "\f4a8"; } -.bi-nut::before { content: "\f4a9"; } -.bi-octagon-fill::before { content: "\f4aa"; } -.bi-octagon-half::before { content: "\f4ab"; } -.bi-octagon::before { content: "\f4ac"; } -.bi-option::before { content: "\f4ad"; } -.bi-outlet::before { content: "\f4ae"; } -.bi-paint-bucket::before { content: "\f4af"; } -.bi-palette-fill::before { content: "\f4b0"; } -.bi-palette::before { content: "\f4b1"; } -.bi-palette2::before { content: "\f4b2"; } -.bi-paperclip::before { content: "\f4b3"; } -.bi-paragraph::before { content: "\f4b4"; } -.bi-patch-check-fill::before { content: "\f4b5"; } -.bi-patch-check::before { content: "\f4b6"; } -.bi-patch-exclamation-fill::before { content: "\f4b7"; } -.bi-patch-exclamation::before { content: "\f4b8"; } -.bi-patch-minus-fill::before { content: "\f4b9"; } -.bi-patch-minus::before { content: "\f4ba"; } -.bi-patch-plus-fill::before { content: "\f4bb"; } -.bi-patch-plus::before { content: "\f4bc"; } -.bi-patch-question-fill::before { content: "\f4bd"; } -.bi-patch-question::before { content: "\f4be"; } -.bi-pause-btn-fill::before { content: "\f4bf"; } -.bi-pause-btn::before { content: "\f4c0"; } -.bi-pause-circle-fill::before { content: "\f4c1"; } -.bi-pause-circle::before { content: "\f4c2"; } -.bi-pause-fill::before { content: "\f4c3"; } -.bi-pause::before { content: "\f4c4"; } -.bi-peace-fill::before { content: "\f4c5"; } -.bi-peace::before { content: "\f4c6"; } -.bi-pen-fill::before { content: "\f4c7"; } -.bi-pen::before { content: "\f4c8"; } -.bi-pencil-fill::before { content: "\f4c9"; } -.bi-pencil-square::before { content: "\f4ca"; } -.bi-pencil::before { content: "\f4cb"; } -.bi-pentagon-fill::before { content: "\f4cc"; } -.bi-pentagon-half::before { content: "\f4cd"; } -.bi-pentagon::before { content: "\f4ce"; } -.bi-people-fill::before { content: "\f4cf"; } -.bi-people::before { content: "\f4d0"; } -.bi-percent::before { content: "\f4d1"; } -.bi-person-badge-fill::before { content: "\f4d2"; } -.bi-person-badge::before { content: "\f4d3"; } -.bi-person-bounding-box::before { content: "\f4d4"; } -.bi-person-check-fill::before { content: "\f4d5"; } -.bi-person-check::before { content: "\f4d6"; } -.bi-person-circle::before { content: "\f4d7"; } -.bi-person-dash-fill::before { content: "\f4d8"; } -.bi-person-dash::before { content: "\f4d9"; } -.bi-person-fill::before { content: "\f4da"; } -.bi-person-lines-fill::before { content: "\f4db"; } -.bi-person-plus-fill::before { content: "\f4dc"; } -.bi-person-plus::before { content: "\f4dd"; } -.bi-person-square::before { content: "\f4de"; } -.bi-person-x-fill::before { content: "\f4df"; } -.bi-person-x::before { content: "\f4e0"; } -.bi-person::before { content: "\f4e1"; } -.bi-phone-fill::before { content: "\f4e2"; } -.bi-phone-landscape-fill::before { content: "\f4e3"; } -.bi-phone-landscape::before { content: "\f4e4"; } -.bi-phone-vibrate-fill::before { content: "\f4e5"; } -.bi-phone-vibrate::before { content: "\f4e6"; } -.bi-phone::before { content: "\f4e7"; } -.bi-pie-chart-fill::before { content: "\f4e8"; } -.bi-pie-chart::before { content: "\f4e9"; } -.bi-pin-angle-fill::before { content: "\f4ea"; } -.bi-pin-angle::before { content: "\f4eb"; } -.bi-pin-fill::before { content: "\f4ec"; } -.bi-pin::before { content: "\f4ed"; } -.bi-pip-fill::before { content: "\f4ee"; } -.bi-pip::before { content: "\f4ef"; } -.bi-play-btn-fill::before { content: "\f4f0"; } -.bi-play-btn::before { content: "\f4f1"; } -.bi-play-circle-fill::before { content: "\f4f2"; } -.bi-play-circle::before { content: "\f4f3"; } -.bi-play-fill::before { content: "\f4f4"; } -.bi-play::before { content: "\f4f5"; } -.bi-plug-fill::before { content: "\f4f6"; } -.bi-plug::before { content: "\f4f7"; } -.bi-plus-circle-dotted::before { content: "\f4f8"; } -.bi-plus-circle-fill::before { content: "\f4f9"; } -.bi-plus-circle::before { content: "\f4fa"; } -.bi-plus-square-dotted::before { content: "\f4fb"; } -.bi-plus-square-fill::before { content: "\f4fc"; } -.bi-plus-square::before { content: "\f4fd"; } -.bi-plus::before { content: "\f4fe"; } -.bi-power::before { content: "\f4ff"; } -.bi-printer-fill::before { content: "\f500"; } -.bi-printer::before { content: "\f501"; } -.bi-puzzle-fill::before { content: "\f502"; } -.bi-puzzle::before { content: "\f503"; } -.bi-question-circle-fill::before { content: "\f504"; } -.bi-question-circle::before { content: "\f505"; } -.bi-question-diamond-fill::before { content: "\f506"; } -.bi-question-diamond::before { content: "\f507"; } -.bi-question-octagon-fill::before { content: "\f508"; } -.bi-question-octagon::before { content: "\f509"; } -.bi-question-square-fill::before { content: "\f50a"; } -.bi-question-square::before { content: "\f50b"; } -.bi-question::before { content: "\f50c"; } -.bi-rainbow::before { content: "\f50d"; } -.bi-receipt-cutoff::before { content: "\f50e"; } -.bi-receipt::before { content: "\f50f"; } -.bi-reception-0::before { content: "\f510"; } -.bi-reception-1::before { content: "\f511"; } -.bi-reception-2::before { content: "\f512"; } -.bi-reception-3::before { content: "\f513"; } -.bi-reception-4::before { content: "\f514"; } -.bi-record-btn-fill::before { content: "\f515"; } -.bi-record-btn::before { content: "\f516"; } -.bi-record-circle-fill::before { content: "\f517"; } -.bi-record-circle::before { content: "\f518"; } -.bi-record-fill::before { content: "\f519"; } -.bi-record::before { content: "\f51a"; } -.bi-record2-fill::before { content: "\f51b"; } -.bi-record2::before { content: "\f51c"; } -.bi-reply-all-fill::before { content: "\f51d"; } -.bi-reply-all::before { content: "\f51e"; } -.bi-reply-fill::before { content: "\f51f"; } -.bi-reply::before { content: "\f520"; } -.bi-rss-fill::before { content: "\f521"; } -.bi-rss::before { content: "\f522"; } -.bi-rulers::before { content: "\f523"; } -.bi-save-fill::before { content: "\f524"; } -.bi-save::before { content: "\f525"; } -.bi-save2-fill::before { content: "\f526"; } -.bi-save2::before { content: "\f527"; } -.bi-scissors::before { content: "\f528"; } -.bi-screwdriver::before { content: "\f529"; } -.bi-search::before { content: "\f52a"; } -.bi-segmented-nav::before { content: "\f52b"; } -.bi-server::before { content: "\f52c"; } -.bi-share-fill::before { content: "\f52d"; } -.bi-share::before { content: "\f52e"; } -.bi-shield-check::before { content: "\f52f"; } -.bi-shield-exclamation::before { content: "\f530"; } -.bi-shield-fill-check::before { content: "\f531"; } -.bi-shield-fill-exclamation::before { content: "\f532"; } -.bi-shield-fill-minus::before { content: "\f533"; } -.bi-shield-fill-plus::before { content: "\f534"; } -.bi-shield-fill-x::before { content: "\f535"; } -.bi-shield-fill::before { content: "\f536"; } -.bi-shield-lock-fill::before { content: "\f537"; } -.bi-shield-lock::before { content: "\f538"; } -.bi-shield-minus::before { content: "\f539"; } -.bi-shield-plus::before { content: "\f53a"; } -.bi-shield-shaded::before { content: "\f53b"; } -.bi-shield-slash-fill::before { content: "\f53c"; } -.bi-shield-slash::before { content: "\f53d"; } -.bi-shield-x::before { content: "\f53e"; } -.bi-shield::before { content: "\f53f"; } -.bi-shift-fill::before { content: "\f540"; } -.bi-shift::before { content: "\f541"; } -.bi-shop-window::before { content: "\f542"; } -.bi-shop::before { content: "\f543"; } -.bi-shuffle::before { content: "\f544"; } -.bi-signpost-2-fill::before { content: "\f545"; } -.bi-signpost-2::before { content: "\f546"; } -.bi-signpost-fill::before { content: "\f547"; } -.bi-signpost-split-fill::before { content: "\f548"; } -.bi-signpost-split::before { content: "\f549"; } -.bi-signpost::before { content: "\f54a"; } -.bi-sim-fill::before { content: "\f54b"; } -.bi-sim::before { content: "\f54c"; } -.bi-skip-backward-btn-fill::before { content: "\f54d"; } -.bi-skip-backward-btn::before { content: "\f54e"; } -.bi-skip-backward-circle-fill::before { content: "\f54f"; } -.bi-skip-backward-circle::before { content: "\f550"; } -.bi-skip-backward-fill::before { content: "\f551"; } -.bi-skip-backward::before { content: "\f552"; } -.bi-skip-end-btn-fill::before { content: "\f553"; } -.bi-skip-end-btn::before { content: "\f554"; } -.bi-skip-end-circle-fill::before { content: "\f555"; } -.bi-skip-end-circle::before { content: "\f556"; } -.bi-skip-end-fill::before { content: "\f557"; } -.bi-skip-end::before { content: "\f558"; } -.bi-skip-forward-btn-fill::before { content: "\f559"; } -.bi-skip-forward-btn::before { content: "\f55a"; } -.bi-skip-forward-circle-fill::before { content: "\f55b"; } -.bi-skip-forward-circle::before { content: "\f55c"; } -.bi-skip-forward-fill::before { content: "\f55d"; } -.bi-skip-forward::before { content: "\f55e"; } -.bi-skip-start-btn-fill::before { content: "\f55f"; } -.bi-skip-start-btn::before { content: "\f560"; } -.bi-skip-start-circle-fill::before { content: "\f561"; } -.bi-skip-start-circle::before { content: "\f562"; } -.bi-skip-start-fill::before { content: "\f563"; } -.bi-skip-start::before { content: "\f564"; } -.bi-slack::before { content: "\f565"; } -.bi-slash-circle-fill::before { content: "\f566"; } -.bi-slash-circle::before { content: "\f567"; } -.bi-slash-square-fill::before { content: "\f568"; } -.bi-slash-square::before { content: "\f569"; } -.bi-slash::before { content: "\f56a"; } -.bi-sliders::before { content: "\f56b"; } -.bi-smartwatch::before { content: "\f56c"; } -.bi-snow::before { content: "\f56d"; } -.bi-snow2::before { content: "\f56e"; } -.bi-snow3::before { content: "\f56f"; } -.bi-sort-alpha-down-alt::before { content: "\f570"; } -.bi-sort-alpha-down::before { content: "\f571"; } -.bi-sort-alpha-up-alt::before { content: "\f572"; } -.bi-sort-alpha-up::before { content: "\f573"; } -.bi-sort-down-alt::before { content: "\f574"; } -.bi-sort-down::before { content: "\f575"; } -.bi-sort-numeric-down-alt::before { content: "\f576"; } -.bi-sort-numeric-down::before { content: "\f577"; } -.bi-sort-numeric-up-alt::before { content: "\f578"; } -.bi-sort-numeric-up::before { content: "\f579"; } -.bi-sort-up-alt::before { content: "\f57a"; } -.bi-sort-up::before { content: "\f57b"; } -.bi-soundwave::before { content: "\f57c"; } -.bi-speaker-fill::before { content: "\f57d"; } -.bi-speaker::before { content: "\f57e"; } -.bi-speedometer::before { content: "\f57f"; } -.bi-speedometer2::before { content: "\f580"; } -.bi-spellcheck::before { content: "\f581"; } -.bi-square-fill::before { content: "\f582"; } -.bi-square-half::before { content: "\f583"; } -.bi-square::before { content: "\f584"; } -.bi-stack::before { content: "\f585"; } -.bi-star-fill::before { content: "\f586"; } -.bi-star-half::before { content: "\f587"; } -.bi-star::before { content: "\f588"; } -.bi-stars::before { content: "\f589"; } -.bi-stickies-fill::before { content: "\f58a"; } -.bi-stickies::before { content: "\f58b"; } -.bi-sticky-fill::before { content: "\f58c"; } -.bi-sticky::before { content: "\f58d"; } -.bi-stop-btn-fill::before { content: "\f58e"; } -.bi-stop-btn::before { content: "\f58f"; } -.bi-stop-circle-fill::before { content: "\f590"; } -.bi-stop-circle::before { content: "\f591"; } -.bi-stop-fill::before { content: "\f592"; } -.bi-stop::before { content: "\f593"; } -.bi-stoplights-fill::before { content: "\f594"; } -.bi-stoplights::before { content: "\f595"; } -.bi-stopwatch-fill::before { content: "\f596"; } -.bi-stopwatch::before { content: "\f597"; } -.bi-subtract::before { content: "\f598"; } -.bi-suit-club-fill::before { content: "\f599"; } -.bi-suit-club::before { content: "\f59a"; } -.bi-suit-diamond-fill::before { content: "\f59b"; } -.bi-suit-diamond::before { content: "\f59c"; } -.bi-suit-heart-fill::before { content: "\f59d"; } -.bi-suit-heart::before { content: "\f59e"; } -.bi-suit-spade-fill::before { content: "\f59f"; } -.bi-suit-spade::before { content: "\f5a0"; } -.bi-sun-fill::before { content: "\f5a1"; } -.bi-sun::before { content: "\f5a2"; } -.bi-sunglasses::before { content: "\f5a3"; } -.bi-sunrise-fill::before { content: "\f5a4"; } -.bi-sunrise::before { content: "\f5a5"; } -.bi-sunset-fill::before { content: "\f5a6"; } -.bi-sunset::before { content: "\f5a7"; } -.bi-symmetry-horizontal::before { content: "\f5a8"; } -.bi-symmetry-vertical::before { content: "\f5a9"; } -.bi-table::before { content: "\f5aa"; } -.bi-tablet-fill::before { content: "\f5ab"; } -.bi-tablet-landscape-fill::before { content: "\f5ac"; } -.bi-tablet-landscape::before { content: "\f5ad"; } -.bi-tablet::before { content: "\f5ae"; } -.bi-tag-fill::before { content: "\f5af"; } -.bi-tag::before { content: "\f5b0"; } -.bi-tags-fill::before { content: "\f5b1"; } -.bi-tags::before { content: "\f5b2"; } -.bi-telegram::before { content: "\f5b3"; } -.bi-telephone-fill::before { content: "\f5b4"; } -.bi-telephone-forward-fill::before { content: "\f5b5"; } -.bi-telephone-forward::before { content: "\f5b6"; } -.bi-telephone-inbound-fill::before { content: "\f5b7"; } -.bi-telephone-inbound::before { content: "\f5b8"; } -.bi-telephone-minus-fill::before { content: "\f5b9"; } -.bi-telephone-minus::before { content: "\f5ba"; } -.bi-telephone-outbound-fill::before { content: "\f5bb"; } -.bi-telephone-outbound::before { content: "\f5bc"; } -.bi-telephone-plus-fill::before { content: "\f5bd"; } -.bi-telephone-plus::before { content: "\f5be"; } -.bi-telephone-x-fill::before { content: "\f5bf"; } -.bi-telephone-x::before { content: "\f5c0"; } -.bi-telephone::before { content: "\f5c1"; } -.bi-terminal-fill::before { content: "\f5c2"; } -.bi-terminal::before { content: "\f5c3"; } -.bi-text-center::before { content: "\f5c4"; } -.bi-text-indent-left::before { content: "\f5c5"; } -.bi-text-indent-right::before { content: "\f5c6"; } -.bi-text-left::before { content: "\f5c7"; } -.bi-text-paragraph::before { content: "\f5c8"; } -.bi-text-right::before { content: "\f5c9"; } -.bi-textarea-resize::before { content: "\f5ca"; } -.bi-textarea-t::before { content: "\f5cb"; } -.bi-textarea::before { content: "\f5cc"; } -.bi-thermometer-half::before { content: "\f5cd"; } -.bi-thermometer-high::before { content: "\f5ce"; } -.bi-thermometer-low::before { content: "\f5cf"; } -.bi-thermometer-snow::before { content: "\f5d0"; } -.bi-thermometer-sun::before { content: "\f5d1"; } -.bi-thermometer::before { content: "\f5d2"; } -.bi-three-dots-vertical::before { content: "\f5d3"; } -.bi-three-dots::before { content: "\f5d4"; } -.bi-toggle-off::before { content: "\f5d5"; } -.bi-toggle-on::before { content: "\f5d6"; } -.bi-toggle2-off::before { content: "\f5d7"; } -.bi-toggle2-on::before { content: "\f5d8"; } -.bi-toggles::before { content: "\f5d9"; } -.bi-toggles2::before { content: "\f5da"; } -.bi-tools::before { content: "\f5db"; } -.bi-tornado::before { content: "\f5dc"; } -.bi-trash-fill::before { content: "\f5dd"; } -.bi-trash::before { content: "\f5de"; } -.bi-trash2-fill::before { content: "\f5df"; } -.bi-trash2::before { content: "\f5e0"; } -.bi-tree-fill::before { content: "\f5e1"; } -.bi-tree::before { content: "\f5e2"; } -.bi-triangle-fill::before { content: "\f5e3"; } -.bi-triangle-half::before { content: "\f5e4"; } -.bi-triangle::before { content: "\f5e5"; } -.bi-trophy-fill::before { content: "\f5e6"; } -.bi-trophy::before { content: "\f5e7"; } -.bi-tropical-storm::before { content: "\f5e8"; } -.bi-truck-flatbed::before { content: "\f5e9"; } -.bi-truck::before { content: "\f5ea"; } -.bi-tsunami::before { content: "\f5eb"; } -.bi-tv-fill::before { content: "\f5ec"; } -.bi-tv::before { content: "\f5ed"; } -.bi-twitch::before { content: "\f5ee"; } -.bi-twitter::before { content: "\f5ef"; } -.bi-type-bold::before { content: "\f5f0"; } -.bi-type-h1::before { content: "\f5f1"; } -.bi-type-h2::before { content: "\f5f2"; } -.bi-type-h3::before { content: "\f5f3"; } -.bi-type-italic::before { content: "\f5f4"; } -.bi-type-strikethrough::before { content: "\f5f5"; } -.bi-type-underline::before { content: "\f5f6"; } -.bi-type::before { content: "\f5f7"; } -.bi-ui-checks-grid::before { content: "\f5f8"; } -.bi-ui-checks::before { content: "\f5f9"; } -.bi-ui-radios-grid::before { content: "\f5fa"; } -.bi-ui-radios::before { content: "\f5fb"; } -.bi-umbrella-fill::before { content: "\f5fc"; } -.bi-umbrella::before { content: "\f5fd"; } -.bi-union::before { content: "\f5fe"; } -.bi-unlock-fill::before { content: "\f5ff"; } -.bi-unlock::before { content: "\f600"; } -.bi-upc-scan::before { content: "\f601"; } -.bi-upc::before { content: "\f602"; } -.bi-upload::before { content: "\f603"; } -.bi-vector-pen::before { content: "\f604"; } -.bi-view-list::before { content: "\f605"; } -.bi-view-stacked::before { content: "\f606"; } -.bi-vinyl-fill::before { content: "\f607"; } -.bi-vinyl::before { content: "\f608"; } -.bi-voicemail::before { content: "\f609"; } -.bi-volume-down-fill::before { content: "\f60a"; } -.bi-volume-down::before { content: "\f60b"; } -.bi-volume-mute-fill::before { content: "\f60c"; } -.bi-volume-mute::before { content: "\f60d"; } -.bi-volume-off-fill::before { content: "\f60e"; } -.bi-volume-off::before { content: "\f60f"; } -.bi-volume-up-fill::before { content: "\f610"; } -.bi-volume-up::before { content: "\f611"; } -.bi-vr::before { content: "\f612"; } -.bi-wallet-fill::before { content: "\f613"; } -.bi-wallet::before { content: "\f614"; } -.bi-wallet2::before { content: "\f615"; } -.bi-watch::before { content: "\f616"; } -.bi-water::before { content: "\f617"; } -.bi-whatsapp::before { content: "\f618"; } -.bi-wifi-1::before { content: "\f619"; } -.bi-wifi-2::before { content: "\f61a"; } -.bi-wifi-off::before { content: "\f61b"; } -.bi-wifi::before { content: "\f61c"; } -.bi-wind::before { content: "\f61d"; } -.bi-window-dock::before { content: "\f61e"; } -.bi-window-sidebar::before { content: "\f61f"; } -.bi-window::before { content: "\f620"; } -.bi-wrench::before { content: "\f621"; } -.bi-x-circle-fill::before { content: "\f622"; } -.bi-x-circle::before { content: "\f623"; } -.bi-x-diamond-fill::before { content: "\f624"; } -.bi-x-diamond::before { content: "\f625"; } -.bi-x-octagon-fill::before { content: "\f626"; } -.bi-x-octagon::before { content: "\f627"; } -.bi-x-square-fill::before { content: "\f628"; } -.bi-x-square::before { content: "\f629"; } -.bi-x::before { content: "\f62a"; } -.bi-youtube::before { content: "\f62b"; } -.bi-zoom-in::before { content: "\f62c"; } -.bi-zoom-out::before { content: "\f62d"; } -.bi-bank::before { content: "\f62e"; } -.bi-bank2::before { content: "\f62f"; } -.bi-bell-slash-fill::before { content: "\f630"; } -.bi-bell-slash::before { content: "\f631"; } -.bi-cash-coin::before { content: "\f632"; } -.bi-check-lg::before { content: "\f633"; } -.bi-coin::before { content: "\f634"; } -.bi-currency-bitcoin::before { content: "\f635"; } -.bi-currency-dollar::before { content: "\f636"; } -.bi-currency-euro::before { content: "\f637"; } -.bi-currency-exchange::before { content: "\f638"; } -.bi-currency-pound::before { content: "\f639"; } -.bi-currency-yen::before { content: "\f63a"; } -.bi-dash-lg::before { content: "\f63b"; } -.bi-exclamation-lg::before { content: "\f63c"; } -.bi-file-earmark-pdf-fill::before { content: "\f63d"; } -.bi-file-earmark-pdf::before { content: "\f63e"; } -.bi-file-pdf-fill::before { content: "\f63f"; } -.bi-file-pdf::before { content: "\f640"; } -.bi-gender-ambiguous::before { content: "\f641"; } -.bi-gender-female::before { content: "\f642"; } -.bi-gender-male::before { content: "\f643"; } -.bi-gender-trans::before { content: "\f644"; } -.bi-headset-vr::before { content: "\f645"; } -.bi-info-lg::before { content: "\f646"; } -.bi-mastodon::before { content: "\f647"; } -.bi-messenger::before { content: "\f648"; } -.bi-piggy-bank-fill::before { content: "\f649"; } -.bi-piggy-bank::before { content: "\f64a"; } -.bi-pin-map-fill::before { content: "\f64b"; } -.bi-pin-map::before { content: "\f64c"; } -.bi-plus-lg::before { content: "\f64d"; } -.bi-question-lg::before { content: "\f64e"; } -.bi-recycle::before { content: "\f64f"; } -.bi-reddit::before { content: "\f650"; } -.bi-safe-fill::before { content: "\f651"; } -.bi-safe2-fill::before { content: "\f652"; } -.bi-safe2::before { content: "\f653"; } -.bi-sd-card-fill::before { content: "\f654"; } -.bi-sd-card::before { content: "\f655"; } -.bi-skype::before { content: "\f656"; } -.bi-slash-lg::before { content: "\f657"; } -.bi-translate::before { content: "\f658"; } -.bi-x-lg::before { content: "\f659"; } -.bi-safe::before { content: "\f65a"; } -.bi-apple::before { content: "\f65b"; } -.bi-microsoft::before { content: "\f65d"; } -.bi-windows::before { content: "\f65e"; } -.bi-behance::before { content: "\f65c"; } -.bi-dribbble::before { content: "\f65f"; } -.bi-line::before { content: "\f660"; } -.bi-medium::before { content: "\f661"; } -.bi-paypal::before { content: "\f662"; } -.bi-pinterest::before { content: "\f663"; } -.bi-signal::before { content: "\f664"; } -.bi-snapchat::before { content: "\f665"; } -.bi-spotify::before { content: "\f666"; } -.bi-stack-overflow::before { content: "\f667"; } -.bi-strava::before { content: "\f668"; } -.bi-wordpress::before { content: "\f669"; } -.bi-vimeo::before { content: "\f66a"; } -.bi-activity::before { content: "\f66b"; } -.bi-easel2-fill::before { content: "\f66c"; } -.bi-easel2::before { content: "\f66d"; } -.bi-easel3-fill::before { content: "\f66e"; } -.bi-easel3::before { content: "\f66f"; } -.bi-fan::before { content: "\f670"; } -.bi-fingerprint::before { content: "\f671"; } -.bi-graph-down-arrow::before { content: "\f672"; } -.bi-graph-up-arrow::before { content: "\f673"; } -.bi-hypnotize::before { content: "\f674"; } -.bi-magic::before { content: "\f675"; } -.bi-person-rolodex::before { content: "\f676"; } -.bi-person-video::before { content: "\f677"; } -.bi-person-video2::before { content: "\f678"; } -.bi-person-video3::before { content: "\f679"; } -.bi-person-workspace::before { content: "\f67a"; } -.bi-radioactive::before { content: "\f67b"; } -.bi-webcam-fill::before { content: "\f67c"; } -.bi-webcam::before { content: "\f67d"; } -.bi-yin-yang::before { content: "\f67e"; } -.bi-bandaid-fill::before { content: "\f680"; } -.bi-bandaid::before { content: "\f681"; } -.bi-bluetooth::before { content: "\f682"; } -.bi-body-text::before { content: "\f683"; } -.bi-boombox::before { content: "\f684"; } -.bi-boxes::before { content: "\f685"; } -.bi-dpad-fill::before { content: "\f686"; } -.bi-dpad::before { content: "\f687"; } -.bi-ear-fill::before { content: "\f688"; } -.bi-ear::before { content: "\f689"; } -.bi-envelope-check-fill::before { content: "\f68b"; } -.bi-envelope-check::before { content: "\f68c"; } -.bi-envelope-dash-fill::before { content: "\f68e"; } -.bi-envelope-dash::before { content: "\f68f"; } -.bi-envelope-exclamation-fill::before { content: "\f691"; } -.bi-envelope-exclamation::before { content: "\f692"; } -.bi-envelope-plus-fill::before { content: "\f693"; } -.bi-envelope-plus::before { content: "\f694"; } -.bi-envelope-slash-fill::before { content: "\f696"; } -.bi-envelope-slash::before { content: "\f697"; } -.bi-envelope-x-fill::before { content: "\f699"; } -.bi-envelope-x::before { content: "\f69a"; } -.bi-explicit-fill::before { content: "\f69b"; } -.bi-explicit::before { content: "\f69c"; } -.bi-git::before { content: "\f69d"; } -.bi-infinity::before { content: "\f69e"; } -.bi-list-columns-reverse::before { content: "\f69f"; } -.bi-list-columns::before { content: "\f6a0"; } -.bi-meta::before { content: "\f6a1"; } -.bi-nintendo-switch::before { content: "\f6a4"; } -.bi-pc-display-horizontal::before { content: "\f6a5"; } -.bi-pc-display::before { content: "\f6a6"; } -.bi-pc-horizontal::before { content: "\f6a7"; } -.bi-pc::before { content: "\f6a8"; } -.bi-playstation::before { content: "\f6a9"; } -.bi-plus-slash-minus::before { content: "\f6aa"; } -.bi-projector-fill::before { content: "\f6ab"; } -.bi-projector::before { content: "\f6ac"; } -.bi-qr-code-scan::before { content: "\f6ad"; } -.bi-qr-code::before { content: "\f6ae"; } -.bi-quora::before { content: "\f6af"; } -.bi-quote::before { content: "\f6b0"; } -.bi-robot::before { content: "\f6b1"; } -.bi-send-check-fill::before { content: "\f6b2"; } -.bi-send-check::before { content: "\f6b3"; } -.bi-send-dash-fill::before { content: "\f6b4"; } -.bi-send-dash::before { content: "\f6b5"; } -.bi-send-exclamation-fill::before { content: "\f6b7"; } -.bi-send-exclamation::before { content: "\f6b8"; } -.bi-send-fill::before { content: "\f6b9"; } -.bi-send-plus-fill::before { content: "\f6ba"; } -.bi-send-plus::before { content: "\f6bb"; } -.bi-send-slash-fill::before { content: "\f6bc"; } -.bi-send-slash::before { content: "\f6bd"; } -.bi-send-x-fill::before { content: "\f6be"; } -.bi-send-x::before { content: "\f6bf"; } -.bi-send::before { content: "\f6c0"; } -.bi-steam::before { content: "\f6c1"; } -.bi-terminal-dash::before { content: "\f6c3"; } -.bi-terminal-plus::before { content: "\f6c4"; } -.bi-terminal-split::before { content: "\f6c5"; } -.bi-ticket-detailed-fill::before { content: "\f6c6"; } -.bi-ticket-detailed::before { content: "\f6c7"; } -.bi-ticket-fill::before { content: "\f6c8"; } -.bi-ticket-perforated-fill::before { content: "\f6c9"; } -.bi-ticket-perforated::before { content: "\f6ca"; } -.bi-ticket::before { content: "\f6cb"; } -.bi-tiktok::before { content: "\f6cc"; } -.bi-window-dash::before { content: "\f6cd"; } -.bi-window-desktop::before { content: "\f6ce"; } -.bi-window-fullscreen::before { content: "\f6cf"; } -.bi-window-plus::before { content: "\f6d0"; } -.bi-window-split::before { content: "\f6d1"; } -.bi-window-stack::before { content: "\f6d2"; } -.bi-window-x::before { content: "\f6d3"; } -.bi-xbox::before { content: "\f6d4"; } -.bi-ethernet::before { content: "\f6d5"; } -.bi-hdmi-fill::before { content: "\f6d6"; } -.bi-hdmi::before { content: "\f6d7"; } -.bi-usb-c-fill::before { content: "\f6d8"; } -.bi-usb-c::before { content: "\f6d9"; } -.bi-usb-fill::before { content: "\f6da"; } -.bi-usb-plug-fill::before { content: "\f6db"; } -.bi-usb-plug::before { content: "\f6dc"; } -.bi-usb-symbol::before { content: "\f6dd"; } -.bi-usb::before { content: "\f6de"; } -.bi-boombox-fill::before { content: "\f6df"; } -.bi-displayport::before { content: "\f6e1"; } -.bi-gpu-card::before { content: "\f6e2"; } -.bi-memory::before { content: "\f6e3"; } -.bi-modem-fill::before { content: "\f6e4"; } -.bi-modem::before { content: "\f6e5"; } -.bi-motherboard-fill::before { content: "\f6e6"; } -.bi-motherboard::before { content: "\f6e7"; } -.bi-optical-audio-fill::before { content: "\f6e8"; } -.bi-optical-audio::before { content: "\f6e9"; } -.bi-pci-card::before { content: "\f6ea"; } -.bi-router-fill::before { content: "\f6eb"; } -.bi-router::before { content: "\f6ec"; } -.bi-thunderbolt-fill::before { content: "\f6ef"; } -.bi-thunderbolt::before { content: "\f6f0"; } -.bi-usb-drive-fill::before { content: "\f6f1"; } -.bi-usb-drive::before { content: "\f6f2"; } -.bi-usb-micro-fill::before { content: "\f6f3"; } -.bi-usb-micro::before { content: "\f6f4"; } -.bi-usb-mini-fill::before { content: "\f6f5"; } -.bi-usb-mini::before { content: "\f6f6"; } -.bi-cloud-haze2::before { content: "\f6f7"; } -.bi-device-hdd-fill::before { content: "\f6f8"; } -.bi-device-hdd::before { content: "\f6f9"; } -.bi-device-ssd-fill::before { content: "\f6fa"; } -.bi-device-ssd::before { content: "\f6fb"; } -.bi-displayport-fill::before { content: "\f6fc"; } -.bi-mortarboard-fill::before { content: "\f6fd"; } -.bi-mortarboard::before { content: "\f6fe"; } -.bi-terminal-x::before { content: "\f6ff"; } -.bi-arrow-through-heart-fill::before { content: "\f700"; } -.bi-arrow-through-heart::before { content: "\f701"; } -.bi-badge-sd-fill::before { content: "\f702"; } -.bi-badge-sd::before { content: "\f703"; } -.bi-bag-heart-fill::before { content: "\f704"; } -.bi-bag-heart::before { content: "\f705"; } -.bi-balloon-fill::before { content: "\f706"; } -.bi-balloon-heart-fill::before { content: "\f707"; } -.bi-balloon-heart::before { content: "\f708"; } -.bi-balloon::before { content: "\f709"; } -.bi-box2-fill::before { content: "\f70a"; } -.bi-box2-heart-fill::before { content: "\f70b"; } -.bi-box2-heart::before { content: "\f70c"; } -.bi-box2::before { content: "\f70d"; } -.bi-braces-asterisk::before { content: "\f70e"; } -.bi-calendar-heart-fill::before { content: "\f70f"; } -.bi-calendar-heart::before { content: "\f710"; } -.bi-calendar2-heart-fill::before { content: "\f711"; } -.bi-calendar2-heart::before { content: "\f712"; } -.bi-chat-heart-fill::before { content: "\f713"; } -.bi-chat-heart::before { content: "\f714"; } -.bi-chat-left-heart-fill::before { content: "\f715"; } -.bi-chat-left-heart::before { content: "\f716"; } -.bi-chat-right-heart-fill::before { content: "\f717"; } -.bi-chat-right-heart::before { content: "\f718"; } -.bi-chat-square-heart-fill::before { content: "\f719"; } -.bi-chat-square-heart::before { content: "\f71a"; } -.bi-clipboard-check-fill::before { content: "\f71b"; } -.bi-clipboard-data-fill::before { content: "\f71c"; } -.bi-clipboard-fill::before { content: "\f71d"; } -.bi-clipboard-heart-fill::before { content: "\f71e"; } -.bi-clipboard-heart::before { content: "\f71f"; } -.bi-clipboard-minus-fill::before { content: "\f720"; } -.bi-clipboard-plus-fill::before { content: "\f721"; } -.bi-clipboard-pulse::before { content: "\f722"; } -.bi-clipboard-x-fill::before { content: "\f723"; } -.bi-clipboard2-check-fill::before { content: "\f724"; } -.bi-clipboard2-check::before { content: "\f725"; } -.bi-clipboard2-data-fill::before { content: "\f726"; } -.bi-clipboard2-data::before { content: "\f727"; } -.bi-clipboard2-fill::before { content: "\f728"; } -.bi-clipboard2-heart-fill::before { content: "\f729"; } -.bi-clipboard2-heart::before { content: "\f72a"; } -.bi-clipboard2-minus-fill::before { content: "\f72b"; } -.bi-clipboard2-minus::before { content: "\f72c"; } -.bi-clipboard2-plus-fill::before { content: "\f72d"; } -.bi-clipboard2-plus::before { content: "\f72e"; } -.bi-clipboard2-pulse-fill::before { content: "\f72f"; } -.bi-clipboard2-pulse::before { content: "\f730"; } -.bi-clipboard2-x-fill::before { content: "\f731"; } -.bi-clipboard2-x::before { content: "\f732"; } -.bi-clipboard2::before { content: "\f733"; } -.bi-emoji-kiss-fill::before { content: "\f734"; } -.bi-emoji-kiss::before { content: "\f735"; } -.bi-envelope-heart-fill::before { content: "\f736"; } -.bi-envelope-heart::before { content: "\f737"; } -.bi-envelope-open-heart-fill::before { content: "\f738"; } -.bi-envelope-open-heart::before { content: "\f739"; } -.bi-envelope-paper-fill::before { content: "\f73a"; } -.bi-envelope-paper-heart-fill::before { content: "\f73b"; } -.bi-envelope-paper-heart::before { content: "\f73c"; } -.bi-envelope-paper::before { content: "\f73d"; } -.bi-filetype-aac::before { content: "\f73e"; } -.bi-filetype-ai::before { content: "\f73f"; } -.bi-filetype-bmp::before { content: "\f740"; } -.bi-filetype-cs::before { content: "\f741"; } -.bi-filetype-css::before { content: "\f742"; } -.bi-filetype-csv::before { content: "\f743"; } -.bi-filetype-doc::before { content: "\f744"; } -.bi-filetype-docx::before { content: "\f745"; } -.bi-filetype-exe::before { content: "\f746"; } -.bi-filetype-gif::before { content: "\f747"; } -.bi-filetype-heic::before { content: "\f748"; } -.bi-filetype-html::before { content: "\f749"; } -.bi-filetype-java::before { content: "\f74a"; } -.bi-filetype-jpg::before { content: "\f74b"; } -.bi-filetype-js::before { content: "\f74c"; } -.bi-filetype-jsx::before { content: "\f74d"; } -.bi-filetype-key::before { content: "\f74e"; } -.bi-filetype-m4p::before { content: "\f74f"; } -.bi-filetype-md::before { content: "\f750"; } -.bi-filetype-mdx::before { content: "\f751"; } -.bi-filetype-mov::before { content: "\f752"; } -.bi-filetype-mp3::before { content: "\f753"; } -.bi-filetype-mp4::before { content: "\f754"; } -.bi-filetype-otf::before { content: "\f755"; } -.bi-filetype-pdf::before { content: "\f756"; } -.bi-filetype-php::before { content: "\f757"; } -.bi-filetype-png::before { content: "\f758"; } -.bi-filetype-ppt::before { content: "\f75a"; } -.bi-filetype-psd::before { content: "\f75b"; } -.bi-filetype-py::before { content: "\f75c"; } -.bi-filetype-raw::before { content: "\f75d"; } -.bi-filetype-rb::before { content: "\f75e"; } -.bi-filetype-sass::before { content: "\f75f"; } -.bi-filetype-scss::before { content: "\f760"; } -.bi-filetype-sh::before { content: "\f761"; } -.bi-filetype-svg::before { content: "\f762"; } -.bi-filetype-tiff::before { content: "\f763"; } -.bi-filetype-tsx::before { content: "\f764"; } -.bi-filetype-ttf::before { content: "\f765"; } -.bi-filetype-txt::before { content: "\f766"; } -.bi-filetype-wav::before { content: "\f767"; } -.bi-filetype-woff::before { content: "\f768"; } -.bi-filetype-xls::before { content: "\f76a"; } -.bi-filetype-xml::before { content: "\f76b"; } -.bi-filetype-yml::before { content: "\f76c"; } -.bi-heart-arrow::before { content: "\f76d"; } -.bi-heart-pulse-fill::before { content: "\f76e"; } -.bi-heart-pulse::before { content: "\f76f"; } -.bi-heartbreak-fill::before { content: "\f770"; } -.bi-heartbreak::before { content: "\f771"; } -.bi-hearts::before { content: "\f772"; } -.bi-hospital-fill::before { content: "\f773"; } -.bi-hospital::before { content: "\f774"; } -.bi-house-heart-fill::before { content: "\f775"; } -.bi-house-heart::before { content: "\f776"; } -.bi-incognito::before { content: "\f777"; } -.bi-magnet-fill::before { content: "\f778"; } -.bi-magnet::before { content: "\f779"; } -.bi-person-heart::before { content: "\f77a"; } -.bi-person-hearts::before { content: "\f77b"; } -.bi-phone-flip::before { content: "\f77c"; } -.bi-plugin::before { content: "\f77d"; } -.bi-postage-fill::before { content: "\f77e"; } -.bi-postage-heart-fill::before { content: "\f77f"; } -.bi-postage-heart::before { content: "\f780"; } -.bi-postage::before { content: "\f781"; } -.bi-postcard-fill::before { content: "\f782"; } -.bi-postcard-heart-fill::before { content: "\f783"; } -.bi-postcard-heart::before { content: "\f784"; } -.bi-postcard::before { content: "\f785"; } -.bi-search-heart-fill::before { content: "\f786"; } -.bi-search-heart::before { content: "\f787"; } -.bi-sliders2-vertical::before { content: "\f788"; } -.bi-sliders2::before { content: "\f789"; } -.bi-trash3-fill::before { content: "\f78a"; } -.bi-trash3::before { content: "\f78b"; } -.bi-valentine::before { content: "\f78c"; } -.bi-valentine2::before { content: "\f78d"; } -.bi-wrench-adjustable-circle-fill::before { content: "\f78e"; } -.bi-wrench-adjustable-circle::before { content: "\f78f"; } -.bi-wrench-adjustable::before { content: "\f790"; } -.bi-filetype-json::before { content: "\f791"; } -.bi-filetype-pptx::before { content: "\f792"; } -.bi-filetype-xlsx::before { content: "\f793"; } -.bi-1-circle-fill::before { content: "\f796"; } -.bi-1-circle::before { content: "\f797"; } -.bi-1-square-fill::before { content: "\f798"; } -.bi-1-square::before { content: "\f799"; } -.bi-2-circle-fill::before { content: "\f79c"; } -.bi-2-circle::before { content: "\f79d"; } -.bi-2-square-fill::before { content: "\f79e"; } -.bi-2-square::before { content: "\f79f"; } -.bi-3-circle-fill::before { content: "\f7a2"; } -.bi-3-circle::before { content: "\f7a3"; } -.bi-3-square-fill::before { content: "\f7a4"; } -.bi-3-square::before { content: "\f7a5"; } -.bi-4-circle-fill::before { content: "\f7a8"; } -.bi-4-circle::before { content: "\f7a9"; } -.bi-4-square-fill::before { content: "\f7aa"; } -.bi-4-square::before { content: "\f7ab"; } -.bi-5-circle-fill::before { content: "\f7ae"; } -.bi-5-circle::before { content: "\f7af"; } -.bi-5-square-fill::before { content: "\f7b0"; } -.bi-5-square::before { content: "\f7b1"; } -.bi-6-circle-fill::before { content: "\f7b4"; } -.bi-6-circle::before { content: "\f7b5"; } -.bi-6-square-fill::before { content: "\f7b6"; } -.bi-6-square::before { content: "\f7b7"; } -.bi-7-circle-fill::before { content: "\f7ba"; } -.bi-7-circle::before { content: "\f7bb"; } -.bi-7-square-fill::before { content: "\f7bc"; } -.bi-7-square::before { content: "\f7bd"; } -.bi-8-circle-fill::before { content: "\f7c0"; } -.bi-8-circle::before { content: "\f7c1"; } -.bi-8-square-fill::before { content: "\f7c2"; } -.bi-8-square::before { content: "\f7c3"; } -.bi-9-circle-fill::before { content: "\f7c6"; } -.bi-9-circle::before { content: "\f7c7"; } -.bi-9-square-fill::before { content: "\f7c8"; } -.bi-9-square::before { content: "\f7c9"; } -.bi-airplane-engines-fill::before { content: "\f7ca"; } -.bi-airplane-engines::before { content: "\f7cb"; } -.bi-airplane-fill::before { content: "\f7cc"; } -.bi-airplane::before { content: "\f7cd"; } -.bi-alexa::before { content: "\f7ce"; } -.bi-alipay::before { content: "\f7cf"; } -.bi-android::before { content: "\f7d0"; } -.bi-android2::before { content: "\f7d1"; } -.bi-box-fill::before { content: "\f7d2"; } -.bi-box-seam-fill::before { content: "\f7d3"; } -.bi-browser-chrome::before { content: "\f7d4"; } -.bi-browser-edge::before { content: "\f7d5"; } -.bi-browser-firefox::before { content: "\f7d6"; } -.bi-browser-safari::before { content: "\f7d7"; } -.bi-c-circle-fill::before { content: "\f7da"; } -.bi-c-circle::before { content: "\f7db"; } -.bi-c-square-fill::before { content: "\f7dc"; } -.bi-c-square::before { content: "\f7dd"; } -.bi-capsule-pill::before { content: "\f7de"; } -.bi-capsule::before { content: "\f7df"; } -.bi-car-front-fill::before { content: "\f7e0"; } -.bi-car-front::before { content: "\f7e1"; } -.bi-cassette-fill::before { content: "\f7e2"; } -.bi-cassette::before { content: "\f7e3"; } -.bi-cc-circle-fill::before { content: "\f7e6"; } -.bi-cc-circle::before { content: "\f7e7"; } -.bi-cc-square-fill::before { content: "\f7e8"; } -.bi-cc-square::before { content: "\f7e9"; } -.bi-cup-hot-fill::before { content: "\f7ea"; } -.bi-cup-hot::before { content: "\f7eb"; } -.bi-currency-rupee::before { content: "\f7ec"; } -.bi-dropbox::before { content: "\f7ed"; } -.bi-escape::before { content: "\f7ee"; } -.bi-fast-forward-btn-fill::before { content: "\f7ef"; } -.bi-fast-forward-btn::before { content: "\f7f0"; } -.bi-fast-forward-circle-fill::before { content: "\f7f1"; } -.bi-fast-forward-circle::before { content: "\f7f2"; } -.bi-fast-forward-fill::before { content: "\f7f3"; } -.bi-fast-forward::before { content: "\f7f4"; } -.bi-filetype-sql::before { content: "\f7f5"; } -.bi-fire::before { content: "\f7f6"; } -.bi-google-play::before { content: "\f7f7"; } -.bi-h-circle-fill::before { content: "\f7fa"; } -.bi-h-circle::before { content: "\f7fb"; } -.bi-h-square-fill::before { content: "\f7fc"; } -.bi-h-square::before { content: "\f7fd"; } -.bi-indent::before { content: "\f7fe"; } -.bi-lungs-fill::before { content: "\f7ff"; } -.bi-lungs::before { content: "\f800"; } -.bi-microsoft-teams::before { content: "\f801"; } -.bi-p-circle-fill::before { content: "\f804"; } -.bi-p-circle::before { content: "\f805"; } -.bi-p-square-fill::before { content: "\f806"; } -.bi-p-square::before { content: "\f807"; } -.bi-pass-fill::before { content: "\f808"; } -.bi-pass::before { content: "\f809"; } -.bi-prescription::before { content: "\f80a"; } -.bi-prescription2::before { content: "\f80b"; } -.bi-r-circle-fill::before { content: "\f80e"; } -.bi-r-circle::before { content: "\f80f"; } -.bi-r-square-fill::before { content: "\f810"; } -.bi-r-square::before { content: "\f811"; } -.bi-repeat-1::before { content: "\f812"; } -.bi-repeat::before { content: "\f813"; } -.bi-rewind-btn-fill::before { content: "\f814"; } -.bi-rewind-btn::before { content: "\f815"; } -.bi-rewind-circle-fill::before { content: "\f816"; } -.bi-rewind-circle::before { content: "\f817"; } -.bi-rewind-fill::before { content: "\f818"; } -.bi-rewind::before { content: "\f819"; } -.bi-train-freight-front-fill::before { content: "\f81a"; } -.bi-train-freight-front::before { content: "\f81b"; } -.bi-train-front-fill::before { content: "\f81c"; } -.bi-train-front::before { content: "\f81d"; } -.bi-train-lightrail-front-fill::before { content: "\f81e"; } -.bi-train-lightrail-front::before { content: "\f81f"; } -.bi-truck-front-fill::before { content: "\f820"; } -.bi-truck-front::before { content: "\f821"; } -.bi-ubuntu::before { content: "\f822"; } -.bi-unindent::before { content: "\f823"; } -.bi-unity::before { content: "\f824"; } -.bi-universal-access-circle::before { content: "\f825"; } -.bi-universal-access::before { content: "\f826"; } -.bi-virus::before { content: "\f827"; } -.bi-virus2::before { content: "\f828"; } -.bi-wechat::before { content: "\f829"; } -.bi-yelp::before { content: "\f82a"; } -.bi-sign-stop-fill::before { content: "\f82b"; } -.bi-sign-stop-lights-fill::before { content: "\f82c"; } -.bi-sign-stop-lights::before { content: "\f82d"; } -.bi-sign-stop::before { content: "\f82e"; } -.bi-sign-turn-left-fill::before { content: "\f82f"; } -.bi-sign-turn-left::before { content: "\f830"; } -.bi-sign-turn-right-fill::before { content: "\f831"; } -.bi-sign-turn-right::before { content: "\f832"; } -.bi-sign-turn-slight-left-fill::before { content: "\f833"; } -.bi-sign-turn-slight-left::before { content: "\f834"; } -.bi-sign-turn-slight-right-fill::before { content: "\f835"; } -.bi-sign-turn-slight-right::before { content: "\f836"; } -.bi-sign-yield-fill::before { content: "\f837"; } -.bi-sign-yield::before { content: "\f838"; } -.bi-ev-station-fill::before { content: "\f839"; } -.bi-ev-station::before { content: "\f83a"; } -.bi-fuel-pump-diesel-fill::before { content: "\f83b"; } -.bi-fuel-pump-diesel::before { content: "\f83c"; } -.bi-fuel-pump-fill::before { content: "\f83d"; } -.bi-fuel-pump::before { content: "\f83e"; } -.bi-0-circle-fill::before { content: "\f83f"; } -.bi-0-circle::before { content: "\f840"; } -.bi-0-square-fill::before { content: "\f841"; } -.bi-0-square::before { content: "\f842"; } -.bi-rocket-fill::before { content: "\f843"; } -.bi-rocket-takeoff-fill::before { content: "\f844"; } -.bi-rocket-takeoff::before { content: "\f845"; } -.bi-rocket::before { content: "\f846"; } -.bi-stripe::before { content: "\f847"; } -.bi-subscript::before { content: "\f848"; } -.bi-superscript::before { content: "\f849"; } -.bi-trello::before { content: "\f84a"; } -.bi-envelope-at-fill::before { content: "\f84b"; } -.bi-envelope-at::before { content: "\f84c"; } -.bi-regex::before { content: "\f84d"; } -.bi-text-wrap::before { content: "\f84e"; } -.bi-sign-dead-end-fill::before { content: "\f84f"; } -.bi-sign-dead-end::before { content: "\f850"; } -.bi-sign-do-not-enter-fill::before { content: "\f851"; } -.bi-sign-do-not-enter::before { content: "\f852"; } -.bi-sign-intersection-fill::before { content: "\f853"; } -.bi-sign-intersection-side-fill::before { content: "\f854"; } -.bi-sign-intersection-side::before { content: "\f855"; } -.bi-sign-intersection-t-fill::before { content: "\f856"; } -.bi-sign-intersection-t::before { content: "\f857"; } -.bi-sign-intersection-y-fill::before { content: "\f858"; } -.bi-sign-intersection-y::before { content: "\f859"; } -.bi-sign-intersection::before { content: "\f85a"; } -.bi-sign-merge-left-fill::before { content: "\f85b"; } -.bi-sign-merge-left::before { content: "\f85c"; } -.bi-sign-merge-right-fill::before { content: "\f85d"; } -.bi-sign-merge-right::before { content: "\f85e"; } -.bi-sign-no-left-turn-fill::before { content: "\f85f"; } -.bi-sign-no-left-turn::before { content: "\f860"; } -.bi-sign-no-parking-fill::before { content: "\f861"; } -.bi-sign-no-parking::before { content: "\f862"; } -.bi-sign-no-right-turn-fill::before { content: "\f863"; } -.bi-sign-no-right-turn::before { content: "\f864"; } -.bi-sign-railroad-fill::before { content: "\f865"; } -.bi-sign-railroad::before { content: "\f866"; } -.bi-building-add::before { content: "\f867"; } -.bi-building-check::before { content: "\f868"; } -.bi-building-dash::before { content: "\f869"; } -.bi-building-down::before { content: "\f86a"; } -.bi-building-exclamation::before { content: "\f86b"; } -.bi-building-fill-add::before { content: "\f86c"; } -.bi-building-fill-check::before { content: "\f86d"; } -.bi-building-fill-dash::before { content: "\f86e"; } -.bi-building-fill-down::before { content: "\f86f"; } -.bi-building-fill-exclamation::before { content: "\f870"; } -.bi-building-fill-gear::before { content: "\f871"; } -.bi-building-fill-lock::before { content: "\f872"; } -.bi-building-fill-slash::before { content: "\f873"; } -.bi-building-fill-up::before { content: "\f874"; } -.bi-building-fill-x::before { content: "\f875"; } -.bi-building-fill::before { content: "\f876"; } -.bi-building-gear::before { content: "\f877"; } -.bi-building-lock::before { content: "\f878"; } -.bi-building-slash::before { content: "\f879"; } -.bi-building-up::before { content: "\f87a"; } -.bi-building-x::before { content: "\f87b"; } -.bi-buildings-fill::before { content: "\f87c"; } -.bi-buildings::before { content: "\f87d"; } -.bi-bus-front-fill::before { content: "\f87e"; } -.bi-bus-front::before { content: "\f87f"; } -.bi-ev-front-fill::before { content: "\f880"; } -.bi-ev-front::before { content: "\f881"; } -.bi-globe-americas::before { content: "\f882"; } -.bi-globe-asia-australia::before { content: "\f883"; } -.bi-globe-central-south-asia::before { content: "\f884"; } -.bi-globe-europe-africa::before { content: "\f885"; } -.bi-house-add-fill::before { content: "\f886"; } -.bi-house-add::before { content: "\f887"; } -.bi-house-check-fill::before { content: "\f888"; } -.bi-house-check::before { content: "\f889"; } -.bi-house-dash-fill::before { content: "\f88a"; } -.bi-house-dash::before { content: "\f88b"; } -.bi-house-down-fill::before { content: "\f88c"; } -.bi-house-down::before { content: "\f88d"; } -.bi-house-exclamation-fill::before { content: "\f88e"; } -.bi-house-exclamation::before { content: "\f88f"; } -.bi-house-gear-fill::before { content: "\f890"; } -.bi-house-gear::before { content: "\f891"; } -.bi-house-lock-fill::before { content: "\f892"; } -.bi-house-lock::before { content: "\f893"; } -.bi-house-slash-fill::before { content: "\f894"; } -.bi-house-slash::before { content: "\f895"; } -.bi-house-up-fill::before { content: "\f896"; } -.bi-house-up::before { content: "\f897"; } -.bi-house-x-fill::before { content: "\f898"; } -.bi-house-x::before { content: "\f899"; } -.bi-person-add::before { content: "\f89a"; } -.bi-person-down::before { content: "\f89b"; } -.bi-person-exclamation::before { content: "\f89c"; } -.bi-person-fill-add::before { content: "\f89d"; } -.bi-person-fill-check::before { content: "\f89e"; } -.bi-person-fill-dash::before { content: "\f89f"; } -.bi-person-fill-down::before { content: "\f8a0"; } -.bi-person-fill-exclamation::before { content: "\f8a1"; } -.bi-person-fill-gear::before { content: "\f8a2"; } -.bi-person-fill-lock::before { content: "\f8a3"; } -.bi-person-fill-slash::before { content: "\f8a4"; } -.bi-person-fill-up::before { content: "\f8a5"; } -.bi-person-fill-x::before { content: "\f8a6"; } -.bi-person-gear::before { content: "\f8a7"; } -.bi-person-lock::before { content: "\f8a8"; } -.bi-person-slash::before { content: "\f8a9"; } -.bi-person-up::before { content: "\f8aa"; } -.bi-scooter::before { content: "\f8ab"; } -.bi-taxi-front-fill::before { content: "\f8ac"; } -.bi-taxi-front::before { content: "\f8ad"; } -.bi-amd::before { content: "\f8ae"; } -.bi-database-add::before { content: "\f8af"; } -.bi-database-check::before { content: "\f8b0"; } -.bi-database-dash::before { content: "\f8b1"; } -.bi-database-down::before { content: "\f8b2"; } -.bi-database-exclamation::before { content: "\f8b3"; } -.bi-database-fill-add::before { content: "\f8b4"; } -.bi-database-fill-check::before { content: "\f8b5"; } -.bi-database-fill-dash::before { content: "\f8b6"; } -.bi-database-fill-down::before { content: "\f8b7"; } -.bi-database-fill-exclamation::before { content: "\f8b8"; } -.bi-database-fill-gear::before { content: "\f8b9"; } -.bi-database-fill-lock::before { content: "\f8ba"; } -.bi-database-fill-slash::before { content: "\f8bb"; } -.bi-database-fill-up::before { content: "\f8bc"; } -.bi-database-fill-x::before { content: "\f8bd"; } -.bi-database-fill::before { content: "\f8be"; } -.bi-database-gear::before { content: "\f8bf"; } -.bi-database-lock::before { content: "\f8c0"; } -.bi-database-slash::before { content: "\f8c1"; } -.bi-database-up::before { content: "\f8c2"; } -.bi-database-x::before { content: "\f8c3"; } -.bi-database::before { content: "\f8c4"; } -.bi-houses-fill::before { content: "\f8c5"; } -.bi-houses::before { content: "\f8c6"; } -.bi-nvidia::before { content: "\f8c7"; } -.bi-person-vcard-fill::before { content: "\f8c8"; } -.bi-person-vcard::before { content: "\f8c9"; } -.bi-sina-weibo::before { content: "\f8ca"; } -.bi-tencent-qq::before { content: "\f8cb"; } -.bi-wikipedia::before { content: "\f8cc"; } -.bi-alphabet-uppercase::before { content: "\f2a5"; } -.bi-alphabet::before { content: "\f68a"; } -.bi-amazon::before { content: "\f68d"; } -.bi-arrows-collapse-vertical::before { content: "\f690"; } -.bi-arrows-expand-vertical::before { content: "\f695"; } -.bi-arrows-vertical::before { content: "\f698"; } -.bi-arrows::before { content: "\f6a2"; } -.bi-ban-fill::before { content: "\f6a3"; } -.bi-ban::before { content: "\f6b6"; } -.bi-bing::before { content: "\f6c2"; } -.bi-cake::before { content: "\f6e0"; } -.bi-cake2::before { content: "\f6ed"; } -.bi-cookie::before { content: "\f6ee"; } -.bi-copy::before { content: "\f759"; } -.bi-crosshair::before { content: "\f769"; } -.bi-crosshair2::before { content: "\f794"; } -.bi-emoji-astonished-fill::before { content: "\f795"; } -.bi-emoji-astonished::before { content: "\f79a"; } -.bi-emoji-grimace-fill::before { content: "\f79b"; } -.bi-emoji-grimace::before { content: "\f7a0"; } -.bi-emoji-grin-fill::before { content: "\f7a1"; } -.bi-emoji-grin::before { content: "\f7a6"; } -.bi-emoji-surprise-fill::before { content: "\f7a7"; } -.bi-emoji-surprise::before { content: "\f7ac"; } -.bi-emoji-tear-fill::before { content: "\f7ad"; } -.bi-emoji-tear::before { content: "\f7b2"; } -.bi-envelope-arrow-down-fill::before { content: "\f7b3"; } -.bi-envelope-arrow-down::before { content: "\f7b8"; } -.bi-envelope-arrow-up-fill::before { content: "\f7b9"; } -.bi-envelope-arrow-up::before { content: "\f7be"; } -.bi-feather::before { content: "\f7bf"; } -.bi-feather2::before { content: "\f7c4"; } -.bi-floppy-fill::before { content: "\f7c5"; } -.bi-floppy::before { content: "\f7d8"; } -.bi-floppy2-fill::before { content: "\f7d9"; } -.bi-floppy2::before { content: "\f7e4"; } -.bi-gitlab::before { content: "\f7e5"; } -.bi-highlighter::before { content: "\f7f8"; } -.bi-marker-tip::before { content: "\f802"; } -.bi-nvme-fill::before { content: "\f803"; } -.bi-nvme::before { content: "\f80c"; } -.bi-opencollective::before { content: "\f80d"; } -.bi-pci-card-network::before { content: "\f8cd"; } -.bi-pci-card-sound::before { content: "\f8ce"; } -.bi-radar::before { content: "\f8cf"; } -.bi-send-arrow-down-fill::before { content: "\f8d0"; } -.bi-send-arrow-down::before { content: "\f8d1"; } -.bi-send-arrow-up-fill::before { content: "\f8d2"; } -.bi-send-arrow-up::before { content: "\f8d3"; } -.bi-sim-slash-fill::before { content: "\f8d4"; } -.bi-sim-slash::before { content: "\f8d5"; } -.bi-sourceforge::before { content: "\f8d6"; } -.bi-substack::before { content: "\f8d7"; } -.bi-threads-fill::before { content: "\f8d8"; } -.bi-threads::before { content: "\f8d9"; } -.bi-transparency::before { content: "\f8da"; } -.bi-twitter-x::before { content: "\f8db"; } -.bi-type-h4::before { content: "\f8dc"; } -.bi-type-h5::before { content: "\f8dd"; } -.bi-type-h6::before { content: "\f8de"; } -.bi-backpack-fill::before { content: "\f8df"; } -.bi-backpack::before { content: "\f8e0"; } -.bi-backpack2-fill::before { content: "\f8e1"; } -.bi-backpack2::before { content: "\f8e2"; } -.bi-backpack3-fill::before { content: "\f8e3"; } -.bi-backpack3::before { content: "\f8e4"; } -.bi-backpack4-fill::before { content: "\f8e5"; } -.bi-backpack4::before { content: "\f8e6"; } -.bi-brilliance::before { content: "\f8e7"; } -.bi-cake-fill::before { content: "\f8e8"; } -.bi-cake2-fill::before { content: "\f8e9"; } -.bi-duffle-fill::before { content: "\f8ea"; } -.bi-duffle::before { content: "\f8eb"; } -.bi-exposure::before { content: "\f8ec"; } -.bi-gender-neuter::before { content: "\f8ed"; } -.bi-highlights::before { content: "\f8ee"; } -.bi-luggage-fill::before { content: "\f8ef"; } -.bi-luggage::before { content: "\f8f0"; } -.bi-mailbox-flag::before { content: "\f8f1"; } -.bi-mailbox2-flag::before { content: "\f8f2"; } -.bi-noise-reduction::before { content: "\f8f3"; } -.bi-passport-fill::before { content: "\f8f4"; } -.bi-passport::before { content: "\f8f5"; } -.bi-person-arms-up::before { content: "\f8f6"; } -.bi-person-raised-hand::before { content: "\f8f7"; } -.bi-person-standing-dress::before { content: "\f8f8"; } -.bi-person-standing::before { content: "\f8f9"; } -.bi-person-walking::before { content: "\f8fa"; } -.bi-person-wheelchair::before { content: "\f8fb"; } -.bi-shadows::before { content: "\f8fc"; } -.bi-suitcase-fill::before { content: "\f8fd"; } -.bi-suitcase-lg-fill::before { content: "\f8fe"; } -.bi-suitcase-lg::before { content: "\f8ff"; } -.bi-suitcase::before { content: "\f900"; } -.bi-suitcase2-fill::before { content: "\f901"; } -.bi-suitcase2::before { content: "\f902"; } -.bi-vignette::before { content: "\f903"; } diff --git a/docs/src/tutorials/test1_files/libs/bootstrap/bootstrap-icons.woff b/docs/src/tutorials/test1_files/libs/bootstrap/bootstrap-icons.woff deleted file mode 100644 index dbeeb055674125ad78fda0f3d166b36e5cc92336..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176200 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

2+UrCZlNAp`)&G@jg{m-!Dn; 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πR(XEyYV3az{Ot$Y*f93mYq^Lnu{qbYp!X!TA9&! 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 F?~0aZ)an2L diff --git a/docs/src/tutorials/test1_files/libs/bootstrap/bootstrap.min.js b/docs/src/tutorials/test1_files/libs/bootstrap/bootstrap.min.js deleted file mode 100644 index e8f21f7..0000000 --- a/docs/src/tutorials/test1_files/libs/bootstrap/bootstrap.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap v5.3.1 (https://getbootstrap.com/) - * Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap=e()}(this,(function(){"use strict";const t=new Map,e={set(e,i,n){t.has(e)||t.set(e,new Map);const s=t.get(e);s.has(i)||0===s.size?s.set(i,n):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(s.keys())[0]}.`)},get:(e,i)=>t.has(e)&&t.get(e).get(i)||null,remove(e,i){if(!t.has(e))return;const n=t.get(e);n.delete(i),0===n.size&&t.delete(e)}},i="transitionend",n=t=>(t&&window.CSS&&window.CSS.escape&&(t=t.replace(/#([^\s"#']+)/g,((t,e)=>`#${CSS.escape(e)}`))),t),s=t=>{t.dispatchEvent(new Event(i))},o=t=>!(!t||"object"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),r=t=>o(t)?t.jquery?t[0]:t:"string"==typeof t&&t.length>0?document.querySelector(n(t)):null,a=t=>{if(!o(t)||0===t.getClientRects().length)return!1;const e="visible"===getComputedStyle(t).getPropertyValue("visibility"),i=t.closest("details:not([open])");if(!i)return e;if(i!==t){const e=t.closest("summary");if(e&&e.parentNode!==i)return!1;if(null===e)return!1}return e},l=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")),c=t=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?c(t.parentNode):null},h=()=>{},d=t=>{t.offsetHeight},u=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,f=[],p=()=>"rtl"===document.documentElement.dir,m=t=>{var e;e=()=>{const e=u();if(e){const i=t.NAME,n=e.fn[i];e.fn[i]=t.jQueryInterface,e.fn[i].Constructor=t,e.fn[i].noConflict=()=>(e.fn[i]=n,t.jQueryInterface)}},"loading"===document.readyState?(f.length||document.addEventListener("DOMContentLoaded",(()=>{for(const t of f)t()})),f.push(e)):e()},g=(t,e=[],i=t)=>"function"==typeof t?t(...e):i,_=(t,e,n=!0)=>{if(!n)return void g(t);const o=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:i}=window.getComputedStyle(t);const n=Number.parseFloat(e),s=Number.parseFloat(i);return n||s?(e=e.split(",")[0],i=i.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(i))):0})(e)+5;let r=!1;const a=({target:n})=>{n===e&&(r=!0,e.removeEventListener(i,a),g(t))};e.addEventListener(i,a),setTimeout((()=>{r||s(e)}),o)},b=(t,e,i,n)=>{const s=t.length;let o=t.indexOf(e);return-1===o?!i&&n?t[s-1]:t[0]:(o+=i?1:-1,n&&(o=(o+s)%s),t[Math.max(0,Math.min(o,s-1))])},v=/[^.]*(?=\..*)\.|.*/,y=/\..*/,w=/::\d+$/,A={};let E=1;const T={mouseenter:"mouseover",mouseleave:"mouseout"},C=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function O(t,e){return e&&`${e}::${E++}`||t.uidEvent||E++}function x(t){const e=O(t);return t.uidEvent=e,A[e]=A[e]||{},A[e]}function k(t,e,i=null){return Object.values(t).find((t=>t.callable===e&&t.delegationSelector===i))}function L(t,e,i){const n="string"==typeof e,s=n?i:e||i;let o=I(t);return C.has(o)||(o=t),[n,s,o]}function S(t,e,i,n,s){if("string"!=typeof e||!t)return;let[o,r,a]=L(e,i,n);if(e in T){const t=t=>function(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};r=t(r)}const l=x(t),c=l[a]||(l[a]={}),h=k(c,r,o?i:null);if(h)return void(h.oneOff=h.oneOff&&s);const d=O(r,e.replace(v,"")),u=o?function(t,e,i){return function n(s){const o=t.querySelectorAll(e);for(let{target:r}=s;r&&r!==this;r=r.parentNode)for(const a of o)if(a===r)return P(s,{delegateTarget:r}),n.oneOff&&N.off(t,s.type,e,i),i.apply(r,[s])}}(t,i,r):function(t,e){return function i(n){return P(n,{delegateTarget:t}),i.oneOff&&N.off(t,n.type,e),e.apply(t,[n])}}(t,r);u.delegationSelector=o?i:null,u.callable=r,u.oneOff=s,u.uidEvent=d,c[d]=u,t.addEventListener(a,u,o)}function D(t,e,i,n,s){const o=k(e[i],n,s);o&&(t.removeEventListener(i,o,Boolean(s)),delete e[i][o.uidEvent])}function $(t,e,i,n){const s=e[i]||{};for(const[o,r]of Object.entries(s))o.includes(n)&&D(t,e,i,r.callable,r.delegationSelector)}function I(t){return t=t.replace(y,""),T[t]||t}const N={on(t,e,i,n){S(t,e,i,n,!1)},one(t,e,i,n){S(t,e,i,n,!0)},off(t,e,i,n){if("string"!=typeof e||!t)return;const[s,o,r]=L(e,i,n),a=r!==e,l=x(t),c=l[r]||{},h=e.startsWith(".");if(void 0===o){if(h)for(const i of Object.keys(l))$(t,l,i,e.slice(1));for(const[i,n]of Object.entries(c)){const s=i.replace(w,"");a&&!e.includes(s)||D(t,l,r,n.callable,n.delegationSelector)}}else{if(!Object.keys(c).length)return;D(t,l,r,o,s?i:null)}},trigger(t,e,i){if("string"!=typeof e||!t)return null;const n=u();let s=null,o=!0,r=!0,a=!1;e!==I(e)&&n&&(s=n.Event(e,i),n(t).trigger(s),o=!s.isPropagationStopped(),r=!s.isImmediatePropagationStopped(),a=s.isDefaultPrevented());const l=P(new Event(e,{bubbles:o,cancelable:!0}),i);return a&&l.preventDefault(),r&&t.dispatchEvent(l),l.defaultPrevented&&s&&s.preventDefault(),l}};function P(t,e={}){for(const[i,n]of Object.entries(e))try{t[i]=n}catch(e){Object.defineProperty(t,i,{configurable:!0,get:()=>n})}return t}function M(t){if("true"===t)return!0;if("false"===t)return!1;if(t===Number(t).toString())return Number(t);if(""===t||"null"===t)return null;if("string"!=typeof t)return t;try{return JSON.parse(decodeURIComponent(t))}catch(e){return t}}function j(t){return t.replace(/[A-Z]/g,(t=>`-${t.toLowerCase()}`))}const F={setDataAttribute(t,e,i){t.setAttribute(`data-bs-${j(e)}`,i)},removeDataAttribute(t,e){t.removeAttribute(`data-bs-${j(e)}`)},getDataAttributes(t){if(!t)return{};const e={},i=Object.keys(t.dataset).filter((t=>t.startsWith("bs")&&!t.startsWith("bsConfig")));for(const n of i){let i=n.replace(/^bs/,"");i=i.charAt(0).toLowerCase()+i.slice(1,i.length),e[i]=M(t.dataset[n])}return e},getDataAttribute:(t,e)=>M(t.getAttribute(`data-bs-${j(e)}`))};class H{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(t){return t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t}_mergeConfigObj(t,e){const i=o(e)?F.getDataAttribute(e,"config"):{};return{...this.constructor.Default,..."object"==typeof i?i:{},...o(e)?F.getDataAttributes(e):{},..."object"==typeof t?t:{}}}_typeCheckConfig(t,e=this.constructor.DefaultType){for(const[n,s]of Object.entries(e)){const e=t[n],r=o(e)?"element":null==(i=e)?`${i}`:Object.prototype.toString.call(i).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(s).test(r))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${n}" provided type "${r}" but expected type "${s}".`)}var i}}class W extends H{constructor(t,i){super(),(t=r(t))&&(this._element=t,this._config=this._getConfig(i),e.set(this._element,this.constructor.DATA_KEY,this))}dispose(){e.remove(this._element,this.constructor.DATA_KEY),N.off(this._element,this.constructor.EVENT_KEY);for(const t of Object.getOwnPropertyNames(this))this[t]=null}_queueCallback(t,e,i=!0){_(t,e,i)}_getConfig(t){return t=this._mergeConfigObj(t,this._element),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}static getInstance(t){return e.get(r(t),this.DATA_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,"object"==typeof e?e:null)}static get VERSION(){return"5.3.1"}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(t){return`${t}${this.EVENT_KEY}`}}const B=t=>{let e=t.getAttribute("data-bs-target");if(!e||"#"===e){let i=t.getAttribute("href");if(!i||!i.includes("#")&&!i.startsWith("."))return null;i.includes("#")&&!i.startsWith("#")&&(i=`#${i.split("#")[1]}`),e=i&&"#"!==i?i.trim():null}return n(e)},z={find:(t,e=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(e,t)),findOne:(t,e=document.documentElement)=>Element.prototype.querySelector.call(e,t),children:(t,e)=>[].concat(...t.children).filter((t=>t.matches(e))),parents(t,e){const i=[];let n=t.parentNode.closest(e);for(;n;)i.push(n),n=n.parentNode.closest(e);return i},prev(t,e){let i=t.previousElementSibling;for(;i;){if(i.matches(e))return[i];i=i.previousElementSibling}return[]},next(t,e){let i=t.nextElementSibling;for(;i;){if(i.matches(e))return[i];i=i.nextElementSibling}return[]},focusableChildren(t){const e=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map((t=>`${t}:not([tabindex^="-"])`)).join(",");return this.find(e,t).filter((t=>!l(t)&&a(t)))},getSelectorFromElement(t){const e=B(t);return e&&z.findOne(e)?e:null},getElementFromSelector(t){const e=B(t);return e?z.findOne(e):null},getMultipleElementsFromSelector(t){const e=B(t);return e?z.find(e):[]}},R=(t,e="hide")=>{const i=`click.dismiss${t.EVENT_KEY}`,n=t.NAME;N.on(document,i,`[data-bs-dismiss="${n}"]`,(function(i){if(["A","AREA"].includes(this.tagName)&&i.preventDefault(),l(this))return;const s=z.getElementFromSelector(this)||this.closest(`.${n}`);t.getOrCreateInstance(s)[e]()}))},q=".bs.alert",V=`close${q}`,K=`closed${q}`;class Q extends W{static get NAME(){return"alert"}close(){if(N.trigger(this._element,V).defaultPrevented)return;this._element.classList.remove("show");const t=this._element.classList.contains("fade");this._queueCallback((()=>this._destroyElement()),this._element,t)}_destroyElement(){this._element.remove(),N.trigger(this._element,K),this.dispose()}static jQueryInterface(t){return this.each((function(){const e=Q.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}R(Q,"close"),m(Q);const X='[data-bs-toggle="button"]';class Y extends W{static get NAME(){return"button"}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(t){return this.each((function(){const e=Y.getOrCreateInstance(this);"toggle"===t&&e[t]()}))}}N.on(document,"click.bs.button.data-api",X,(t=>{t.preventDefault();const e=t.target.closest(X);Y.getOrCreateInstance(e).toggle()})),m(Y);const U=".bs.swipe",G=`touchstart${U}`,J=`touchmove${U}`,Z=`touchend${U}`,tt=`pointerdown${U}`,et=`pointerup${U}`,it={endCallback:null,leftCallback:null,rightCallback:null},nt={endCallback:"(function|null)",leftCallback:"(function|null)",rightCallback:"(function|null)"};class st extends H{constructor(t,e){super(),this._element=t,t&&st.isSupported()&&(this._config=this._getConfig(e),this._deltaX=0,this._supportPointerEvents=Boolean(window.PointerEvent),this._initEvents())}static get Default(){return it}static get DefaultType(){return nt}static get NAME(){return"swipe"}dispose(){N.off(this._element,U)}_start(t){this._supportPointerEvents?this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX):this._deltaX=t.touches[0].clientX}_end(t){this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX-this._deltaX),this._handleSwipe(),g(this._config.endCallback)}_move(t){this._deltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this._deltaX}_handleSwipe(){const t=Math.abs(this._deltaX);if(t<=40)return;const e=t/this._deltaX;this._deltaX=0,e&&g(e>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?(N.on(this._element,tt,(t=>this._start(t))),N.on(this._element,et,(t=>this._end(t))),this._element.classList.add("pointer-event")):(N.on(this._element,G,(t=>this._start(t))),N.on(this._element,J,(t=>this._move(t))),N.on(this._element,Z,(t=>this._end(t))))}_eventIsPointerPenTouch(t){return this._supportPointerEvents&&("pen"===t.pointerType||"touch"===t.pointerType)}static isSupported(){return"ontouchstart"in document.documentElement||navigator.maxTouchPoints>0}}const ot=".bs.carousel",rt=".data-api",at="next",lt="prev",ct="left",ht="right",dt=`slide${ot}`,ut=`slid${ot}`,ft=`keydown${ot}`,pt=`mouseenter${ot}`,mt=`mouseleave${ot}`,gt=`dragstart${ot}`,_t=`load${ot}${rt}`,bt=`click${ot}${rt}`,vt="carousel",yt="active",wt=".active",At=".carousel-item",Et=wt+At,Tt={ArrowLeft:ht,ArrowRight:ct},Ct={interval:5e3,keyboard:!0,pause:"hover",ride:!1,touch:!0,wrap:!0},Ot={interval:"(number|boolean)",keyboard:"boolean",pause:"(string|boolean)",ride:"(boolean|string)",touch:"boolean",wrap:"boolean"};class xt extends W{constructor(t,e){super(t,e),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=z.findOne(".carousel-indicators",this._element),this._addEventListeners(),this._config.ride===vt&&this.cycle()}static get Default(){return Ct}static get DefaultType(){return Ot}static get NAME(){return"carousel"}next(){this._slide(at)}nextWhenVisible(){!document.hidden&&a(this._element)&&this.next()}prev(){this._slide(lt)}pause(){this._isSliding&&s(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval((()=>this.nextWhenVisible()),this._config.interval)}_maybeEnableCycle(){this._config.ride&&(this._isSliding?N.one(this._element,ut,(()=>this.cycle())):this.cycle())}to(t){const e=this._getItems();if(t>e.length-1||t<0)return;if(this._isSliding)return void N.one(this._element,ut,(()=>this.to(t)));const i=this._getItemIndex(this._getActive());if(i===t)return;const n=t>i?at:lt;this._slide(n,e[t])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(t){return t.defaultInterval=t.interval,t}_addEventListeners(){this._config.keyboard&&N.on(this._element,ft,(t=>this._keydown(t))),"hover"===this._config.pause&&(N.on(this._element,pt,(()=>this.pause())),N.on(this._element,mt,(()=>this._maybeEnableCycle()))),this._config.touch&&st.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(const t of z.find(".carousel-item img",this._element))N.on(t,gt,(t=>t.preventDefault()));const t={leftCallback:()=>this._slide(this._directionToOrder(ct)),rightCallback:()=>this._slide(this._directionToOrder(ht)),endCallback:()=>{"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout((()=>this._maybeEnableCycle()),500+this._config.interval))}};this._swipeHelper=new st(this._element,t)}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=Tt[t.key];e&&(t.preventDefault(),this._slide(this._directionToOrder(e)))}_getItemIndex(t){return this._getItems().indexOf(t)}_setActiveIndicatorElement(t){if(!this._indicatorsElement)return;const e=z.findOne(wt,this._indicatorsElement);e.classList.remove(yt),e.removeAttribute("aria-current");const i=z.findOne(`[data-bs-slide-to="${t}"]`,this._indicatorsElement);i&&(i.classList.add(yt),i.setAttribute("aria-current","true"))}_updateInterval(){const t=this._activeElement||this._getActive();if(!t)return;const e=Number.parseInt(t.getAttribute("data-bs-interval"),10);this._config.interval=e||this._config.defaultInterval}_slide(t,e=null){if(this._isSliding)return;const i=this._getActive(),n=t===at,s=e||b(this._getItems(),i,n,this._config.wrap);if(s===i)return;const o=this._getItemIndex(s),r=e=>N.trigger(this._element,e,{relatedTarget:s,direction:this._orderToDirection(t),from:this._getItemIndex(i),to:o});if(r(dt).defaultPrevented)return;if(!i||!s)return;const a=Boolean(this._interval);this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(o),this._activeElement=s;const l=n?"carousel-item-start":"carousel-item-end",c=n?"carousel-item-next":"carousel-item-prev";s.classList.add(c),d(s),i.classList.add(l),s.classList.add(l),this._queueCallback((()=>{s.classList.remove(l,c),s.classList.add(yt),i.classList.remove(yt,c,l),this._isSliding=!1,r(ut)}),i,this._isAnimated()),a&&this.cycle()}_isAnimated(){return this._element.classList.contains("slide")}_getActive(){return z.findOne(Et,this._element)}_getItems(){return z.find(At,this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(t){return p()?t===ct?lt:at:t===ct?at:lt}_orderToDirection(t){return p()?t===lt?ct:ht:t===lt?ht:ct}static jQueryInterface(t){return this.each((function(){const e=xt.getOrCreateInstance(this,t);if("number"!=typeof t){if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}else e.to(t)}))}}N.on(document,bt,"[data-bs-slide], [data-bs-slide-to]",(function(t){const e=z.getElementFromSelector(this);if(!e||!e.classList.contains(vt))return;t.preventDefault();const i=xt.getOrCreateInstance(e),n=this.getAttribute("data-bs-slide-to");return n?(i.to(n),void i._maybeEnableCycle()):"next"===F.getDataAttribute(this,"slide")?(i.next(),void i._maybeEnableCycle()):(i.prev(),void i._maybeEnableCycle())})),N.on(window,_t,(()=>{const t=z.find('[data-bs-ride="carousel"]');for(const e of t)xt.getOrCreateInstance(e)})),m(xt);const kt=".bs.collapse",Lt=`show${kt}`,St=`shown${kt}`,Dt=`hide${kt}`,$t=`hidden${kt}`,It=`click${kt}.data-api`,Nt="show",Pt="collapse",Mt="collapsing",jt=`:scope .${Pt} .${Pt}`,Ft='[data-bs-toggle="collapse"]',Ht={parent:null,toggle:!0},Wt={parent:"(null|element)",toggle:"boolean"};class Bt extends W{constructor(t,e){super(t,e),this._isTransitioning=!1,this._triggerArray=[];const i=z.find(Ft);for(const t of i){const e=z.getSelectorFromElement(t),i=z.find(e).filter((t=>t===this._element));null!==e&&i.length&&this._triggerArray.push(t)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return Ht}static get DefaultType(){return Wt}static get NAME(){return"collapse"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t=[];if(this._config.parent&&(t=this._getFirstLevelChildren(".collapse.show, .collapse.collapsing").filter((t=>t!==this._element)).map((t=>Bt.getOrCreateInstance(t,{toggle:!1})))),t.length&&t[0]._isTransitioning)return;if(N.trigger(this._element,Lt).defaultPrevented)return;for(const e of t)e.hide();const e=this._getDimension();this._element.classList.remove(Pt),this._element.classList.add(Mt),this._element.style[e]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const i=`scroll${e[0].toUpperCase()+e.slice(1)}`;this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(Mt),this._element.classList.add(Pt,Nt),this._element.style[e]="",N.trigger(this._element,St)}),this._element,!0),this._element.style[e]=`${this._element[i]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(N.trigger(this._element,Dt).defaultPrevented)return;const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`,d(this._element),this._element.classList.add(Mt),this._element.classList.remove(Pt,Nt);for(const t of this._triggerArray){const e=z.getElementFromSelector(t);e&&!this._isShown(e)&&this._addAriaAndCollapsedClass([t],!1)}this._isTransitioning=!0,this._element.style[t]="",this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(Mt),this._element.classList.add(Pt),N.trigger(this._element,$t)}),this._element,!0)}_isShown(t=this._element){return t.classList.contains(Nt)}_configAfterMerge(t){return t.toggle=Boolean(t.toggle),t.parent=r(t.parent),t}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const t=this._getFirstLevelChildren(Ft);for(const e of t){const t=z.getElementFromSelector(e);t&&this._addAriaAndCollapsedClass([e],this._isShown(t))}}_getFirstLevelChildren(t){const e=z.find(jt,this._config.parent);return z.find(t,this._config.parent).filter((t=>!e.includes(t)))}_addAriaAndCollapsedClass(t,e){if(t.length)for(const i of t)i.classList.toggle("collapsed",!e),i.setAttribute("aria-expanded",e)}static jQueryInterface(t){const e={};return"string"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1),this.each((function(){const i=Bt.getOrCreateInstance(this,e);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t]()}}))}}N.on(document,It,Ft,(function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault();for(const t of z.getMultipleElementsFromSelector(this))Bt.getOrCreateInstance(t,{toggle:!1}).toggle()})),m(Bt);var zt="top",Rt="bottom",qt="right",Vt="left",Kt="auto",Qt=[zt,Rt,qt,Vt],Xt="start",Yt="end",Ut="clippingParents",Gt="viewport",Jt="popper",Zt="reference",te=Qt.reduce((function(t,e){return t.concat([e+"-"+Xt,e+"-"+Yt])}),[]),ee=[].concat(Qt,[Kt]).reduce((function(t,e){return t.concat([e,e+"-"+Xt,e+"-"+Yt])}),[]),ie="beforeRead",ne="read",se="afterRead",oe="beforeMain",re="main",ae="afterMain",le="beforeWrite",ce="write",he="afterWrite",de=[ie,ne,se,oe,re,ae,le,ce,he];function ue(t){return t?(t.nodeName||"").toLowerCase():null}function fe(t){if(null==t)return window;if("[object Window]"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function pe(t){return t instanceof fe(t).Element||t instanceof Element}function me(t){return t instanceof fe(t).HTMLElement||t instanceof HTMLElement}function ge(t){return"undefined"!=typeof ShadowRoot&&(t instanceof fe(t).ShadowRoot||t instanceof ShadowRoot)}const _e={name:"applyStyles",enabled:!0,phase:"write",fn:function(t){var e=t.state;Object.keys(e.elements).forEach((function(t){var i=e.styles[t]||{},n=e.attributes[t]||{},s=e.elements[t];me(s)&&ue(s)&&(Object.assign(s.style,i),Object.keys(n).forEach((function(t){var e=n[t];!1===e?s.removeAttribute(t):s.setAttribute(t,!0===e?"":e)})))}))},effect:function(t){var e=t.state,i={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,i.popper),e.styles=i,e.elements.arrow&&Object.assign(e.elements.arrow.style,i.arrow),function(){Object.keys(e.elements).forEach((function(t){var n=e.elements[t],s=e.attributes[t]||{},o=Object.keys(e.styles.hasOwnProperty(t)?e.styles[t]:i[t]).reduce((function(t,e){return t[e]="",t}),{});me(n)&&ue(n)&&(Object.assign(n.style,o),Object.keys(s).forEach((function(t){n.removeAttribute(t)})))}))}},requires:["computeStyles"]};function be(t){return t.split("-")[0]}var ve=Math.max,ye=Math.min,we=Math.round;function Ae(){var t=navigator.userAgentData;return null!=t&&t.brands&&Array.isArray(t.brands)?t.brands.map((function(t){return t.brand+"/"+t.version})).join(" "):navigator.userAgent}function Ee(){return!/^((?!chrome|android).)*safari/i.test(Ae())}function Te(t,e,i){void 0===e&&(e=!1),void 0===i&&(i=!1);var n=t.getBoundingClientRect(),s=1,o=1;e&&me(t)&&(s=t.offsetWidth>0&&we(n.width)/t.offsetWidth||1,o=t.offsetHeight>0&&we(n.height)/t.offsetHeight||1);var r=(pe(t)?fe(t):window).visualViewport,a=!Ee()&&i,l=(n.left+(a&&r?r.offsetLeft:0))/s,c=(n.top+(a&&r?r.offsetTop:0))/o,h=n.width/s,d=n.height/o;return{width:h,height:d,top:c,right:l+h,bottom:c+d,left:l,x:l,y:c}}function Ce(t){var e=Te(t),i=t.offsetWidth,n=t.offsetHeight;return Math.abs(e.width-i)<=1&&(i=e.width),Math.abs(e.height-n)<=1&&(n=e.height),{x:t.offsetLeft,y:t.offsetTop,width:i,height:n}}function Oe(t,e){var i=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(i&&ge(i)){var n=e;do{if(n&&t.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function xe(t){return fe(t).getComputedStyle(t)}function ke(t){return["table","td","th"].indexOf(ue(t))>=0}function Le(t){return((pe(t)?t.ownerDocument:t.document)||window.document).documentElement}function Se(t){return"html"===ue(t)?t:t.assignedSlot||t.parentNode||(ge(t)?t.host:null)||Le(t)}function De(t){return me(t)&&"fixed"!==xe(t).position?t.offsetParent:null}function $e(t){for(var e=fe(t),i=De(t);i&&ke(i)&&"static"===xe(i).position;)i=De(i);return i&&("html"===ue(i)||"body"===ue(i)&&"static"===xe(i).position)?e:i||function(t){var e=/firefox/i.test(Ae());if(/Trident/i.test(Ae())&&me(t)&&"fixed"===xe(t).position)return null;var i=Se(t);for(ge(i)&&(i=i.host);me(i)&&["html","body"].indexOf(ue(i))<0;){var n=xe(i);if("none"!==n.transform||"none"!==n.perspective||"paint"===n.contain||-1!==["transform","perspective"].indexOf(n.willChange)||e&&"filter"===n.willChange||e&&n.filter&&"none"!==n.filter)return i;i=i.parentNode}return null}(t)||e}function Ie(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function Ne(t,e,i){return ve(t,ye(e,i))}function Pe(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function Me(t,e){return e.reduce((function(e,i){return e[i]=t,e}),{})}const je={name:"arrow",enabled:!0,phase:"main",fn:function(t){var e,i=t.state,n=t.name,s=t.options,o=i.elements.arrow,r=i.modifiersData.popperOffsets,a=be(i.placement),l=Ie(a),c=[Vt,qt].indexOf(a)>=0?"height":"width";if(o&&r){var h=function(t,e){return Pe("number"!=typeof(t="function"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:Me(t,Qt))}(s.padding,i),d=Ce(o),u="y"===l?zt:Vt,f="y"===l?Rt:qt,p=i.rects.reference[c]+i.rects.reference[l]-r[l]-i.rects.popper[c],m=r[l]-i.rects.reference[l],g=$e(o),_=g?"y"===l?g.clientHeight||0:g.clientWidth||0:0,b=p/2-m/2,v=h[u],y=_-d[c]-h[f],w=_/2-d[c]/2+b,A=Ne(v,w,y),E=l;i.modifiersData[n]=((e={})[E]=A,e.centerOffset=A-w,e)}},effect:function(t){var e=t.state,i=t.options.element,n=void 0===i?"[data-popper-arrow]":i;null!=n&&("string"!=typeof n||(n=e.elements.popper.querySelector(n)))&&Oe(e.elements.popper,n)&&(e.elements.arrow=n)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Fe(t){return t.split("-")[1]}var He={top:"auto",right:"auto",bottom:"auto",left:"auto"};function We(t){var e,i=t.popper,n=t.popperRect,s=t.placement,o=t.variation,r=t.offsets,a=t.position,l=t.gpuAcceleration,c=t.adaptive,h=t.roundOffsets,d=t.isFixed,u=r.x,f=void 0===u?0:u,p=r.y,m=void 0===p?0:p,g="function"==typeof h?h({x:f,y:m}):{x:f,y:m};f=g.x,m=g.y;var _=r.hasOwnProperty("x"),b=r.hasOwnProperty("y"),v=Vt,y=zt,w=window;if(c){var A=$e(i),E="clientHeight",T="clientWidth";A===fe(i)&&"static"!==xe(A=Le(i)).position&&"absolute"===a&&(E="scrollHeight",T="scrollWidth"),(s===zt||(s===Vt||s===qt)&&o===Yt)&&(y=Rt,m-=(d&&A===w&&w.visualViewport?w.visualViewport.height:A[E])-n.height,m*=l?1:-1),s!==Vt&&(s!==zt&&s!==Rt||o!==Yt)||(v=qt,f-=(d&&A===w&&w.visualViewport?w.visualViewport.width:A[T])-n.width,f*=l?1:-1)}var C,O=Object.assign({position:a},c&&He),x=!0===h?function(t,e){var i=t.x,n=t.y,s=e.devicePixelRatio||1;return{x:we(i*s)/s||0,y:we(n*s)/s||0}}({x:f,y:m},fe(i)):{x:f,y:m};return f=x.x,m=x.y,l?Object.assign({},O,((C={})[y]=b?"0":"",C[v]=_?"0":"",C.transform=(w.devicePixelRatio||1)<=1?"translate("+f+"px, "+m+"px)":"translate3d("+f+"px, "+m+"px, 0)",C)):Object.assign({},O,((e={})[y]=b?m+"px":"",e[v]=_?f+"px":"",e.transform="",e))}const Be={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(t){var e=t.state,i=t.options,n=i.gpuAcceleration,s=void 0===n||n,o=i.adaptive,r=void 0===o||o,a=i.roundOffsets,l=void 0===a||a,c={placement:be(e.placement),variation:Fe(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:s,isFixed:"fixed"===e.options.strategy};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,We(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:r,roundOffsets:l})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,We(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})},data:{}};var ze={passive:!0};const Re={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(t){var e=t.state,i=t.instance,n=t.options,s=n.scroll,o=void 0===s||s,r=n.resize,a=void 0===r||r,l=fe(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return o&&c.forEach((function(t){t.addEventListener("scroll",i.update,ze)})),a&&l.addEventListener("resize",i.update,ze),function(){o&&c.forEach((function(t){t.removeEventListener("scroll",i.update,ze)})),a&&l.removeEventListener("resize",i.update,ze)}},data:{}};var qe={left:"right",right:"left",bottom:"top",top:"bottom"};function Ve(t){return t.replace(/left|right|bottom|top/g,(function(t){return qe[t]}))}var Ke={start:"end",end:"start"};function Qe(t){return t.replace(/start|end/g,(function(t){return Ke[t]}))}function Xe(t){var e=fe(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function Ye(t){return Te(Le(t)).left+Xe(t).scrollLeft}function Ue(t){var e=xe(t),i=e.overflow,n=e.overflowX,s=e.overflowY;return/auto|scroll|overlay|hidden/.test(i+s+n)}function Ge(t){return["html","body","#document"].indexOf(ue(t))>=0?t.ownerDocument.body:me(t)&&Ue(t)?t:Ge(Se(t))}function Je(t,e){var i;void 0===e&&(e=[]);var n=Ge(t),s=n===(null==(i=t.ownerDocument)?void 0:i.body),o=fe(n),r=s?[o].concat(o.visualViewport||[],Ue(n)?n:[]):n,a=e.concat(r);return s?a:a.concat(Je(Se(r)))}function Ze(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function ti(t,e,i){return e===Gt?Ze(function(t,e){var i=fe(t),n=Le(t),s=i.visualViewport,o=n.clientWidth,r=n.clientHeight,a=0,l=0;if(s){o=s.width,r=s.height;var c=Ee();(c||!c&&"fixed"===e)&&(a=s.offsetLeft,l=s.offsetTop)}return{width:o,height:r,x:a+Ye(t),y:l}}(t,i)):pe(e)?function(t,e){var i=Te(t,!1,"fixed"===e);return i.top=i.top+t.clientTop,i.left=i.left+t.clientLeft,i.bottom=i.top+t.clientHeight,i.right=i.left+t.clientWidth,i.width=t.clientWidth,i.height=t.clientHeight,i.x=i.left,i.y=i.top,i}(e,i):Ze(function(t){var e,i=Le(t),n=Xe(t),s=null==(e=t.ownerDocument)?void 0:e.body,o=ve(i.scrollWidth,i.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),r=ve(i.scrollHeight,i.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),a=-n.scrollLeft+Ye(t),l=-n.scrollTop;return"rtl"===xe(s||i).direction&&(a+=ve(i.clientWidth,s?s.clientWidth:0)-o),{width:o,height:r,x:a,y:l}}(Le(t)))}function ei(t){var e,i=t.reference,n=t.element,s=t.placement,o=s?be(s):null,r=s?Fe(s):null,a=i.x+i.width/2-n.width/2,l=i.y+i.height/2-n.height/2;switch(o){case zt:e={x:a,y:i.y-n.height};break;case Rt:e={x:a,y:i.y+i.height};break;case qt:e={x:i.x+i.width,y:l};break;case Vt:e={x:i.x-n.width,y:l};break;default:e={x:i.x,y:i.y}}var c=o?Ie(o):null;if(null!=c){var h="y"===c?"height":"width";switch(r){case Xt:e[c]=e[c]-(i[h]/2-n[h]/2);break;case Yt:e[c]=e[c]+(i[h]/2-n[h]/2)}}return e}function ii(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=void 0===n?t.placement:n,o=i.strategy,r=void 0===o?t.strategy:o,a=i.boundary,l=void 0===a?Ut:a,c=i.rootBoundary,h=void 0===c?Gt:c,d=i.elementContext,u=void 0===d?Jt:d,f=i.altBoundary,p=void 0!==f&&f,m=i.padding,g=void 0===m?0:m,_=Pe("number"!=typeof g?g:Me(g,Qt)),b=u===Jt?Zt:Jt,v=t.rects.popper,y=t.elements[p?b:u],w=function(t,e,i,n){var s="clippingParents"===e?function(t){var e=Je(Se(t)),i=["absolute","fixed"].indexOf(xe(t).position)>=0&&me(t)?$e(t):t;return pe(i)?e.filter((function(t){return pe(t)&&Oe(t,i)&&"body"!==ue(t)})):[]}(t):[].concat(e),o=[].concat(s,[i]),r=o[0],a=o.reduce((function(e,i){var s=ti(t,i,n);return e.top=ve(s.top,e.top),e.right=ye(s.right,e.right),e.bottom=ye(s.bottom,e.bottom),e.left=ve(s.left,e.left),e}),ti(t,r,n));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}(pe(y)?y:y.contextElement||Le(t.elements.popper),l,h,r),A=Te(t.elements.reference),E=ei({reference:A,element:v,strategy:"absolute",placement:s}),T=Ze(Object.assign({},v,E)),C=u===Jt?T:A,O={top:w.top-C.top+_.top,bottom:C.bottom-w.bottom+_.bottom,left:w.left-C.left+_.left,right:C.right-w.right+_.right},x=t.modifiersData.offset;if(u===Jt&&x){var k=x[s];Object.keys(O).forEach((function(t){var e=[qt,Rt].indexOf(t)>=0?1:-1,i=[zt,Rt].indexOf(t)>=0?"y":"x";O[t]+=k[i]*e}))}return O}function ni(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=i.boundary,o=i.rootBoundary,r=i.padding,a=i.flipVariations,l=i.allowedAutoPlacements,c=void 0===l?ee:l,h=Fe(n),d=h?a?te:te.filter((function(t){return Fe(t)===h})):Qt,u=d.filter((function(t){return c.indexOf(t)>=0}));0===u.length&&(u=d);var f=u.reduce((function(e,i){return e[i]=ii(t,{placement:i,boundary:s,rootBoundary:o,padding:r})[be(i)],e}),{});return Object.keys(f).sort((function(t,e){return f[t]-f[e]}))}const si={name:"flip",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name;if(!e.modifiersData[n]._skip){for(var s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0===r||r,l=i.fallbackPlacements,c=i.padding,h=i.boundary,d=i.rootBoundary,u=i.altBoundary,f=i.flipVariations,p=void 0===f||f,m=i.allowedAutoPlacements,g=e.options.placement,_=be(g),b=l||(_!==g&&p?function(t){if(be(t)===Kt)return[];var e=Ve(t);return[Qe(t),e,Qe(e)]}(g):[Ve(g)]),v=[g].concat(b).reduce((function(t,i){return t.concat(be(i)===Kt?ni(e,{placement:i,boundary:h,rootBoundary:d,padding:c,flipVariations:p,allowedAutoPlacements:m}):i)}),[]),y=e.rects.reference,w=e.rects.popper,A=new Map,E=!0,T=v[0],C=0;C=0,S=L?"width":"height",D=ii(e,{placement:O,boundary:h,rootBoundary:d,altBoundary:u,padding:c}),$=L?k?qt:Vt:k?Rt:zt;y[S]>w[S]&&($=Ve($));var I=Ve($),N=[];if(o&&N.push(D[x]<=0),a&&N.push(D[$]<=0,D[I]<=0),N.every((function(t){return t}))){T=O,E=!1;break}A.set(O,N)}if(E)for(var P=function(t){var e=v.find((function(e){var i=A.get(e);if(i)return i.slice(0,t).every((function(t){return t}))}));if(e)return T=e,"break"},M=p?3:1;M>0&&"break"!==P(M);M--);e.placement!==T&&(e.modifiersData[n]._skip=!0,e.placement=T,e.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function oi(t,e,i){return void 0===i&&(i={x:0,y:0}),{top:t.top-e.height-i.y,right:t.right-e.width+i.x,bottom:t.bottom-e.height+i.y,left:t.left-e.width-i.x}}function ri(t){return[zt,qt,Rt,Vt].some((function(e){return t[e]>=0}))}const ai={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(t){var e=t.state,i=t.name,n=e.rects.reference,s=e.rects.popper,o=e.modifiersData.preventOverflow,r=ii(e,{elementContext:"reference"}),a=ii(e,{altBoundary:!0}),l=oi(r,n),c=oi(a,s,o),h=ri(l),d=ri(c);e.modifiersData[i]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:h,hasPopperEscaped:d},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":h,"data-popper-escaped":d})}},li={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.offset,o=void 0===s?[0,0]:s,r=ee.reduce((function(t,i){return t[i]=function(t,e,i){var n=be(t),s=[Vt,zt].indexOf(n)>=0?-1:1,o="function"==typeof i?i(Object.assign({},e,{placement:t})):i,r=o[0],a=o[1];return r=r||0,a=(a||0)*s,[Vt,qt].indexOf(n)>=0?{x:a,y:r}:{x:r,y:a}}(i,e.rects,o),t}),{}),a=r[e.placement],l=a.x,c=a.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=c),e.modifiersData[n]=r}},ci={name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,i=t.name;e.modifiersData[i]=ei({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}},hi={name:"preventOverflow",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0!==r&&r,l=i.boundary,c=i.rootBoundary,h=i.altBoundary,d=i.padding,u=i.tether,f=void 0===u||u,p=i.tetherOffset,m=void 0===p?0:p,g=ii(e,{boundary:l,rootBoundary:c,padding:d,altBoundary:h}),_=be(e.placement),b=Fe(e.placement),v=!b,y=Ie(_),w="x"===y?"y":"x",A=e.modifiersData.popperOffsets,E=e.rects.reference,T=e.rects.popper,C="function"==typeof m?m(Object.assign({},e.rects,{placement:e.placement})):m,O="number"==typeof C?{mainAxis:C,altAxis:C}:Object.assign({mainAxis:0,altAxis:0},C),x=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,k={x:0,y:0};if(A){if(o){var L,S="y"===y?zt:Vt,D="y"===y?Rt:qt,$="y"===y?"height":"width",I=A[y],N=I+g[S],P=I-g[D],M=f?-T[$]/2:0,j=b===Xt?E[$]:T[$],F=b===Xt?-T[$]:-E[$],H=e.elements.arrow,W=f&&H?Ce(H):{width:0,height:0},B=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},z=B[S],R=B[D],q=Ne(0,E[$],W[$]),V=v?E[$]/2-M-q-z-O.mainAxis:j-q-z-O.mainAxis,K=v?-E[$]/2+M+q+R+O.mainAxis:F+q+R+O.mainAxis,Q=e.elements.arrow&&$e(e.elements.arrow),X=Q?"y"===y?Q.clientTop||0:Q.clientLeft||0:0,Y=null!=(L=null==x?void 0:x[y])?L:0,U=I+K-Y,G=Ne(f?ye(N,I+V-Y-X):N,I,f?ve(P,U):P);A[y]=G,k[y]=G-I}if(a){var J,Z="x"===y?zt:Vt,tt="x"===y?Rt:qt,et=A[w],it="y"===w?"height":"width",nt=et+g[Z],st=et-g[tt],ot=-1!==[zt,Vt].indexOf(_),rt=null!=(J=null==x?void 0:x[w])?J:0,at=ot?nt:et-E[it]-T[it]-rt+O.altAxis,lt=ot?et+E[it]+T[it]-rt-O.altAxis:st,ct=f&&ot?function(t,e,i){var n=Ne(t,e,i);return n>i?i:n}(at,et,lt):Ne(f?at:nt,et,f?lt:st);A[w]=ct,k[w]=ct-et}e.modifiersData[n]=k}},requiresIfExists:["offset"]};function di(t,e,i){void 0===i&&(i=!1);var n,s,o=me(e),r=me(e)&&function(t){var e=t.getBoundingClientRect(),i=we(e.width)/t.offsetWidth||1,n=we(e.height)/t.offsetHeight||1;return 1!==i||1!==n}(e),a=Le(e),l=Te(t,r,i),c={scrollLeft:0,scrollTop:0},h={x:0,y:0};return(o||!o&&!i)&&(("body"!==ue(e)||Ue(a))&&(c=(n=e)!==fe(n)&&me(n)?{scrollLeft:(s=n).scrollLeft,scrollTop:s.scrollTop}:Xe(n)),me(e)?((h=Te(e,!0)).x+=e.clientLeft,h.y+=e.clientTop):a&&(h.x=Ye(a))),{x:l.left+c.scrollLeft-h.x,y:l.top+c.scrollTop-h.y,width:l.width,height:l.height}}function ui(t){var e=new Map,i=new Set,n=[];function s(t){i.add(t.name),[].concat(t.requires||[],t.requiresIfExists||[]).forEach((function(t){if(!i.has(t)){var n=e.get(t);n&&s(n)}})),n.push(t)}return t.forEach((function(t){e.set(t.name,t)})),t.forEach((function(t){i.has(t.name)||s(t)})),n}var fi={placement:"bottom",modifiers:[],strategy:"absolute"};function pi(){for(var t=arguments.length,e=new Array(t),i=0;iNumber.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return(this._inNavbar||"static"===this._config.display)&&(F.setDataAttribute(this._menu,"popper","static"),t.modifiers=[{name:"applyStyles",enabled:!1}]),{...t,...g(this._config.popperConfig,[t])}}_selectMenuItem({key:t,target:e}){const i=z.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter((t=>a(t)));i.length&&b(i,e,t===Ti,!i.includes(e)).focus()}static jQueryInterface(t){return this.each((function(){const e=qi.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}static clearMenus(t){if(2===t.button||"keyup"===t.type&&"Tab"!==t.key)return;const e=z.find(Ni);for(const i of e){const e=qi.getInstance(i);if(!e||!1===e._config.autoClose)continue;const n=t.composedPath(),s=n.includes(e._menu);if(n.includes(e._element)||"inside"===e._config.autoClose&&!s||"outside"===e._config.autoClose&&s)continue;if(e._menu.contains(t.target)&&("keyup"===t.type&&"Tab"===t.key||/input|select|option|textarea|form/i.test(t.target.tagName)))continue;const o={relatedTarget:e._element};"click"===t.type&&(o.clickEvent=t),e._completeHide(o)}}static dataApiKeydownHandler(t){const e=/input|textarea/i.test(t.target.tagName),i="Escape"===t.key,n=[Ei,Ti].includes(t.key);if(!n&&!i)return;if(e&&!i)return;t.preventDefault();const s=this.matches(Ii)?this:z.prev(this,Ii)[0]||z.next(this,Ii)[0]||z.findOne(Ii,t.delegateTarget.parentNode),o=qi.getOrCreateInstance(s);if(n)return t.stopPropagation(),o.show(),void o._selectMenuItem(t);o._isShown()&&(t.stopPropagation(),o.hide(),s.focus())}}N.on(document,Si,Ii,qi.dataApiKeydownHandler),N.on(document,Si,Pi,qi.dataApiKeydownHandler),N.on(document,Li,qi.clearMenus),N.on(document,Di,qi.clearMenus),N.on(document,Li,Ii,(function(t){t.preventDefault(),qi.getOrCreateInstance(this).toggle()})),m(qi);const Vi="backdrop",Ki="show",Qi=`mousedown.bs.${Vi}`,Xi={className:"modal-backdrop",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:"body"},Yi={className:"string",clickCallback:"(function|null)",isAnimated:"boolean",isVisible:"boolean",rootElement:"(element|string)"};class Ui extends H{constructor(t){super(),this._config=this._getConfig(t),this._isAppended=!1,this._element=null}static get Default(){return Xi}static get DefaultType(){return Yi}static get NAME(){return Vi}show(t){if(!this._config.isVisible)return void g(t);this._append();const e=this._getElement();this._config.isAnimated&&d(e),e.classList.add(Ki),this._emulateAnimation((()=>{g(t)}))}hide(t){this._config.isVisible?(this._getElement().classList.remove(Ki),this._emulateAnimation((()=>{this.dispose(),g(t)}))):g(t)}dispose(){this._isAppended&&(N.off(this._element,Qi),this._element.remove(),this._isAppended=!1)}_getElement(){if(!this._element){const t=document.createElement("div");t.className=this._config.className,this._config.isAnimated&&t.classList.add("fade"),this._element=t}return this._element}_configAfterMerge(t){return t.rootElement=r(t.rootElement),t}_append(){if(this._isAppended)return;const t=this._getElement();this._config.rootElement.append(t),N.on(t,Qi,(()=>{g(this._config.clickCallback)})),this._isAppended=!0}_emulateAnimation(t){_(t,this._getElement(),this._config.isAnimated)}}const Gi=".bs.focustrap",Ji=`focusin${Gi}`,Zi=`keydown.tab${Gi}`,tn="backward",en={autofocus:!0,trapElement:null},nn={autofocus:"boolean",trapElement:"element"};class sn extends H{constructor(t){super(),this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return en}static get DefaultType(){return nn}static get NAME(){return"focustrap"}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),N.off(document,Gi),N.on(document,Ji,(t=>this._handleFocusin(t))),N.on(document,Zi,(t=>this._handleKeydown(t))),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,N.off(document,Gi))}_handleFocusin(t){const{trapElement:e}=this._config;if(t.target===document||t.target===e||e.contains(t.target))return;const i=z.focusableChildren(e);0===i.length?e.focus():this._lastTabNavDirection===tn?i[i.length-1].focus():i[0].focus()}_handleKeydown(t){"Tab"===t.key&&(this._lastTabNavDirection=t.shiftKey?tn:"forward")}}const on=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",rn=".sticky-top",an="padding-right",ln="margin-right";class cn{constructor(){this._element=document.body}getWidth(){const t=document.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}hide(){const t=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,an,(e=>e+t)),this._setElementAttributes(on,an,(e=>e+t)),this._setElementAttributes(rn,ln,(e=>e-t))}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,an),this._resetElementAttributes(on,an),this._resetElementAttributes(rn,ln)}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(t,e,i){const n=this.getWidth();this._applyManipulationCallback(t,(t=>{if(t!==this._element&&window.innerWidth>t.clientWidth+n)return;this._saveInitialAttribute(t,e);const s=window.getComputedStyle(t).getPropertyValue(e);t.style.setProperty(e,`${i(Number.parseFloat(s))}px`)}))}_saveInitialAttribute(t,e){const i=t.style.getPropertyValue(e);i&&F.setDataAttribute(t,e,i)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,(t=>{const i=F.getDataAttribute(t,e);null!==i?(F.removeDataAttribute(t,e),t.style.setProperty(e,i)):t.style.removeProperty(e)}))}_applyManipulationCallback(t,e){if(o(t))e(t);else for(const i of z.find(t,this._element))e(i)}}const hn=".bs.modal",dn=`hide${hn}`,un=`hidePrevented${hn}`,fn=`hidden${hn}`,pn=`show${hn}`,mn=`shown${hn}`,gn=`resize${hn}`,_n=`click.dismiss${hn}`,bn=`mousedown.dismiss${hn}`,vn=`keydown.dismiss${hn}`,yn=`click${hn}.data-api`,wn="modal-open",An="show",En="modal-static",Tn={backdrop:!0,focus:!0,keyboard:!0},Cn={backdrop:"(boolean|string)",focus:"boolean",keyboard:"boolean"};class On extends W{constructor(t,e){super(t,e),this._dialog=z.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new cn,this._addEventListeners()}static get Default(){return Tn}static get DefaultType(){return Cn}static get NAME(){return"modal"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||N.trigger(this._element,pn,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(wn),this._adjustDialog(),this._backdrop.show((()=>this._showElement(t))))}hide(){this._isShown&&!this._isTransitioning&&(N.trigger(this._element,dn).defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove(An),this._queueCallback((()=>this._hideModal()),this._element,this._isAnimated())))}dispose(){N.off(window,hn),N.off(this._dialog,hn),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new Ui({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new sn({trapElement:this._element})}_showElement(t){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0;const e=z.findOne(".modal-body",this._dialog);e&&(e.scrollTop=0),d(this._element),this._element.classList.add(An),this._queueCallback((()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,N.trigger(this._element,mn,{relatedTarget:t})}),this._dialog,this._isAnimated())}_addEventListeners(){N.on(this._element,vn,(t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():this._triggerBackdropTransition())})),N.on(window,gn,(()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()})),N.on(this._element,bn,(t=>{N.one(this._element,_n,(e=>{this._element===t.target&&this._element===e.target&&("static"!==this._config.backdrop?this._config.backdrop&&this.hide():this._triggerBackdropTransition())}))}))}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide((()=>{document.body.classList.remove(wn),this._resetAdjustments(),this._scrollBar.reset(),N.trigger(this._element,fn)}))}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(N.trigger(this._element,un).defaultPrevented)return;const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._element.style.overflowY;"hidden"===e||this._element.classList.contains(En)||(t||(this._element.style.overflowY="hidden"),this._element.classList.add(En),this._queueCallback((()=>{this._element.classList.remove(En),this._queueCallback((()=>{this._element.style.overflowY=e}),this._dialog)}),this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),i=e>0;if(i&&!t){const t=p()?"paddingLeft":"paddingRight";this._element.style[t]=`${e}px`}if(!i&&t){const t=p()?"paddingRight":"paddingLeft";this._element.style[t]=`${e}px`}}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(t,e){return this.each((function(){const i=On.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t](e)}}))}}N.on(document,yn,'[data-bs-toggle="modal"]',(function(t){const e=z.getElementFromSelector(this);["A","AREA"].includes(this.tagName)&&t.preventDefault(),N.one(e,pn,(t=>{t.defaultPrevented||N.one(e,fn,(()=>{a(this)&&this.focus()}))}));const i=z.findOne(".modal.show");i&&On.getInstance(i).hide(),On.getOrCreateInstance(e).toggle(this)})),R(On),m(On);const xn=".bs.offcanvas",kn=".data-api",Ln=`load${xn}${kn}`,Sn="show",Dn="showing",$n="hiding",In=".offcanvas.show",Nn=`show${xn}`,Pn=`shown${xn}`,Mn=`hide${xn}`,jn=`hidePrevented${xn}`,Fn=`hidden${xn}`,Hn=`resize${xn}`,Wn=`click${xn}${kn}`,Bn=`keydown.dismiss${xn}`,zn={backdrop:!0,keyboard:!0,scroll:!1},Rn={backdrop:"(boolean|string)",keyboard:"boolean",scroll:"boolean"};class qn extends W{constructor(t,e){super(t,e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return zn}static get DefaultType(){return Rn}static get NAME(){return"offcanvas"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||N.trigger(this._element,Nn,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._backdrop.show(),this._config.scroll||(new cn).hide(),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add(Dn),this._queueCallback((()=>{this._config.scroll&&!this._config.backdrop||this._focustrap.activate(),this._element.classList.add(Sn),this._element.classList.remove(Dn),N.trigger(this._element,Pn,{relatedTarget:t})}),this._element,!0))}hide(){this._isShown&&(N.trigger(this._element,Mn).defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add($n),this._backdrop.hide(),this._queueCallback((()=>{this._element.classList.remove(Sn,$n),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._config.scroll||(new cn).reset(),N.trigger(this._element,Fn)}),this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){const t=Boolean(this._config.backdrop);return new Ui({className:"offcanvas-backdrop",isVisible:t,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:t?()=>{"static"!==this._config.backdrop?this.hide():N.trigger(this._element,jn)}:null})}_initializeFocusTrap(){return new sn({trapElement:this._element})}_addEventListeners(){N.on(this._element,Bn,(t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():N.trigger(this._element,jn))}))}static jQueryInterface(t){return this.each((function(){const e=qn.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}N.on(document,Wn,'[data-bs-toggle="offcanvas"]',(function(t){const e=z.getElementFromSelector(this);if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),l(this))return;N.one(e,Fn,(()=>{a(this)&&this.focus()}));const i=z.findOne(In);i&&i!==e&&qn.getInstance(i).hide(),qn.getOrCreateInstance(e).toggle(this)})),N.on(window,Ln,(()=>{for(const t of z.find(In))qn.getOrCreateInstance(t).show()})),N.on(window,Hn,(()=>{for(const t of z.find("[aria-modal][class*=show][class*=offcanvas-]"))"fixed"!==getComputedStyle(t).position&&qn.getOrCreateInstance(t).hide()})),R(qn),m(qn);const Vn={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},Kn=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),Qn=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,Xn=(t,e)=>{const i=t.nodeName.toLowerCase();return e.includes(i)?!Kn.has(i)||Boolean(Qn.test(t.nodeValue)):e.filter((t=>t instanceof RegExp)).some((t=>t.test(i)))},Yn={allowList:Vn,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"

"},Un={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},Gn={entry:"(string|element|function|null)",selector:"(string|element)"};class Jn extends H{constructor(t){super(),this._config=this._getConfig(t)}static get Default(){return Yn}static get DefaultType(){return Un}static get NAME(){return"TemplateFactory"}getContent(){return Object.values(this._config.content).map((t=>this._resolvePossibleFunction(t))).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(t){return this._checkContent(t),this._config.content={...this._config.content,...t},this}toHtml(){const t=document.createElement("div");t.innerHTML=this._maybeSanitize(this._config.template);for(const[e,i]of Object.entries(this._config.content))this._setContent(t,i,e);const e=t.children[0],i=this._resolvePossibleFunction(this._config.extraClass);return i&&e.classList.add(...i.split(" ")),e}_typeCheckConfig(t){super._typeCheckConfig(t),this._checkContent(t.content)}_checkContent(t){for(const[e,i]of Object.entries(t))super._typeCheckConfig({selector:e,entry:i},Gn)}_setContent(t,e,i){const n=z.findOne(i,t);n&&((e=this._resolvePossibleFunction(e))?o(e)?this._putElementInTemplate(r(e),n):this._config.html?n.innerHTML=this._maybeSanitize(e):n.textContent=e:n.remove())}_maybeSanitize(t){return this._config.sanitize?function(t,e,i){if(!t.length)return t;if(i&&"function"==typeof i)return i(t);const n=(new window.DOMParser).parseFromString(t,"text/html"),s=[].concat(...n.body.querySelectorAll("*"));for(const t of s){const i=t.nodeName.toLowerCase();if(!Object.keys(e).includes(i)){t.remove();continue}const n=[].concat(...t.attributes),s=[].concat(e["*"]||[],e[i]||[]);for(const e of n)Xn(e,s)||t.removeAttribute(e.nodeName)}return n.body.innerHTML}(t,this._config.allowList,this._config.sanitizeFn):t}_resolvePossibleFunction(t){return g(t,[this])}_putElementInTemplate(t,e){if(this._config.html)return e.innerHTML="",void e.append(t);e.textContent=t.textContent}}const Zn=new Set(["sanitize","allowList","sanitizeFn"]),ts="fade",es="show",is=".modal",ns="hide.bs.modal",ss="hover",os="focus",rs={AUTO:"auto",TOP:"top",RIGHT:p()?"left":"right",BOTTOM:"bottom",LEFT:p()?"right":"left"},as={allowList:Vn,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,6],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'',title:"",trigger:"hover focus"},ls={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class cs extends W{constructor(t,e){if(void 0===vi)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(t,e),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return as}static get DefaultType(){return ls}static get NAME(){return"tooltip"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),N.off(this._element.closest(is),ns,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const t=N.trigger(this._element,this.constructor.eventName("show")),e=(c(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(t.defaultPrevented||!e)return;this._disposePopper();const i=this._getTipElement();this._element.setAttribute("aria-describedby",i.getAttribute("id"));const{container:n}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(n.append(i),N.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(i),i.classList.add(es),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))N.on(t,"mouseover",h);this._queueCallback((()=>{N.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1}),this.tip,this._isAnimated())}hide(){if(this._isShown()&&!N.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented){if(this._getTipElement().classList.remove(es),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))N.off(t,"mouseover",h);this._activeTrigger.click=!1,this._activeTrigger[os]=!1,this._activeTrigger[ss]=!1,this._isHovered=null,this._queueCallback((()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),N.trigger(this._element,this.constructor.eventName("hidden")))}),this.tip,this._isAnimated())}}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(t){const e=this._getTemplateFactory(t).toHtml();if(!e)return null;e.classList.remove(ts,es),e.classList.add(`bs-${this.constructor.NAME}-auto`);const i=(t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t})(this.constructor.NAME).toString();return e.setAttribute("id",i),this._isAnimated()&&e.classList.add(ts),e}setContent(t){this._newContent=t,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(t){return this._templateFactory?this._templateFactory.changeContent(t):this._templateFactory=new Jn({...this._config,content:t,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{".tooltip-inner":this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(t){return this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(ts)}_isShown(){return this.tip&&this.tip.classList.contains(es)}_createPopper(t){const e=g(this._config.placement,[this,t,this._element]),i=rs[e.toUpperCase()];return bi(this._element,t,this._getPopperConfig(i))}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_resolvePossibleFunction(t){return g(t,[this._element])}_getPopperConfig(t){const e={placement:t,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:t=>{this._getTipElement().setAttribute("data-popper-placement",t.state.placement)}}]};return{...e,...g(this._config.popperConfig,[e])}}_setListeners(){const t=this._config.trigger.split(" ");for(const e of t)if("click"===e)N.on(this._element,this.constructor.eventName("click"),this._config.selector,(t=>{this._initializeOnDelegatedTarget(t).toggle()}));else if("manual"!==e){const t=e===ss?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),i=e===ss?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");N.on(this._element,t,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusin"===t.type?os:ss]=!0,e._enter()})),N.on(this._element,i,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusout"===t.type?os:ss]=e._element.contains(t.relatedTarget),e._leave()}))}this._hideModalHandler=()=>{this._element&&this.hide()},N.on(this._element.closest(is),ns,this._hideModalHandler)}_fixTitle(){const t=this._element.getAttribute("title");t&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",t),this._element.setAttribute("data-bs-original-title",t),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout((()=>{this._isHovered&&this.show()}),this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout((()=>{this._isHovered||this.hide()}),this._config.delay.hide))}_setTimeout(t,e){clearTimeout(this._timeout),this._timeout=setTimeout(t,e)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(t){const e=F.getDataAttributes(this._element);for(const t of Object.keys(e))Zn.has(t)&&delete e[t];return t={...e,..."object"==typeof t&&t?t:{}},t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t.container=!1===t.container?document.body:r(t.container),"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),t}_getDelegateConfig(){const t={};for(const[e,i]of Object.entries(this._config))this.constructor.Default[e]!==i&&(t[e]=i);return t.selector=!1,t.trigger="manual",t}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(t){return this.each((function(){const e=cs.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}m(cs);const hs={...cs.Default,content:"",offset:[0,8],placement:"right",template:'',trigger:"click"},ds={...cs.DefaultType,content:"(null|string|element|function)"};class us extends cs{static get Default(){return hs}static get DefaultType(){return ds}static get NAME(){return"popover"}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{".popover-header":this._getTitle(),".popover-body":this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}static jQueryInterface(t){return this.each((function(){const e=us.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}m(us);const fs=".bs.scrollspy",ps=`activate${fs}`,ms=`click${fs}`,gs=`load${fs}.data-api`,_s="active",bs="[href]",vs=".nav-link",ys=`${vs}, .nav-item > ${vs}, .list-group-item`,ws={offset:null,rootMargin:"0px 0px -25%",smoothScroll:!1,target:null,threshold:[.1,.5,1]},As={offset:"(number|null)",rootMargin:"string",smoothScroll:"boolean",target:"element",threshold:"array"};class Es extends W{constructor(t,e){super(t,e),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement="visible"===getComputedStyle(this._element).overflowY?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return ws}static get DefaultType(){return As}static get NAME(){return"scrollspy"}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(const t of this._observableSections.values())this._observer.observe(t)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(t){return t.target=r(t.target)||document.body,t.rootMargin=t.offset?`${t.offset}px 0px -30%`:t.rootMargin,"string"==typeof t.threshold&&(t.threshold=t.threshold.split(",").map((t=>Number.parseFloat(t)))),t}_maybeEnableSmoothScroll(){this._config.smoothScroll&&(N.off(this._config.target,ms),N.on(this._config.target,ms,bs,(t=>{const e=this._observableSections.get(t.target.hash);if(e){t.preventDefault();const i=this._rootElement||window,n=e.offsetTop-this._element.offsetTop;if(i.scrollTo)return void i.scrollTo({top:n,behavior:"smooth"});i.scrollTop=n}})))}_getNewObserver(){const t={root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin};return new IntersectionObserver((t=>this._observerCallback(t)),t)}_observerCallback(t){const e=t=>this._targetLinks.get(`#${t.target.id}`),i=t=>{this._previousScrollData.visibleEntryTop=t.target.offsetTop,this._process(e(t))},n=(this._rootElement||document.documentElement).scrollTop,s=n>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=n;for(const o of t){if(!o.isIntersecting){this._activeTarget=null,this._clearActiveClass(e(o));continue}const t=o.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(s&&t){if(i(o),!n)return}else s||t||i(o)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;const t=z.find(bs,this._config.target);for(const e of t){if(!e.hash||l(e))continue;const t=z.findOne(decodeURI(e.hash),this._element);a(t)&&(this._targetLinks.set(decodeURI(e.hash),e),this._observableSections.set(e.hash,t))}}_process(t){this._activeTarget!==t&&(this._clearActiveClass(this._config.target),this._activeTarget=t,t.classList.add(_s),this._activateParents(t),N.trigger(this._element,ps,{relatedTarget:t}))}_activateParents(t){if(t.classList.contains("dropdown-item"))z.findOne(".dropdown-toggle",t.closest(".dropdown")).classList.add(_s);else for(const e of z.parents(t,".nav, .list-group"))for(const t of z.prev(e,ys))t.classList.add(_s)}_clearActiveClass(t){t.classList.remove(_s);const e=z.find(`${bs}.${_s}`,t);for(const t of e)t.classList.remove(_s)}static jQueryInterface(t){return this.each((function(){const e=Es.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}))}}N.on(window,gs,(()=>{for(const t of z.find('[data-bs-spy="scroll"]'))Es.getOrCreateInstance(t)})),m(Es);const Ts=".bs.tab",Cs=`hide${Ts}`,Os=`hidden${Ts}`,xs=`show${Ts}`,ks=`shown${Ts}`,Ls=`click${Ts}`,Ss=`keydown${Ts}`,Ds=`load${Ts}`,$s="ArrowLeft",Is="ArrowRight",Ns="ArrowUp",Ps="ArrowDown",Ms="Home",js="End",Fs="active",Hs="fade",Ws="show",Bs=":not(.dropdown-toggle)",zs='[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',Rs=`.nav-link${Bs}, .list-group-item${Bs}, [role="tab"]${Bs}, ${zs}`,qs=`.${Fs}[data-bs-toggle="tab"], .${Fs}[data-bs-toggle="pill"], .${Fs}[data-bs-toggle="list"]`;class Vs extends W{constructor(t){super(t),this._parent=this._element.closest('.list-group, .nav, [role="tablist"]'),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),N.on(this._element,Ss,(t=>this._keydown(t))))}static get NAME(){return"tab"}show(){const t=this._element;if(this._elemIsActive(t))return;const e=this._getActiveElem(),i=e?N.trigger(e,Cs,{relatedTarget:t}):null;N.trigger(t,xs,{relatedTarget:e}).defaultPrevented||i&&i.defaultPrevented||(this._deactivate(e,t),this._activate(t,e))}_activate(t,e){t&&(t.classList.add(Fs),this._activate(z.getElementFromSelector(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.removeAttribute("tabindex"),t.setAttribute("aria-selected",!0),this._toggleDropDown(t,!0),N.trigger(t,ks,{relatedTarget:e})):t.classList.add(Ws)}),t,t.classList.contains(Hs)))}_deactivate(t,e){t&&(t.classList.remove(Fs),t.blur(),this._deactivate(z.getElementFromSelector(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.setAttribute("aria-selected",!1),t.setAttribute("tabindex","-1"),this._toggleDropDown(t,!1),N.trigger(t,Os,{relatedTarget:e})):t.classList.remove(Ws)}),t,t.classList.contains(Hs)))}_keydown(t){if(![$s,Is,Ns,Ps,Ms,js].includes(t.key))return;t.stopPropagation(),t.preventDefault();const e=this._getChildren().filter((t=>!l(t)));let i;if([Ms,js].includes(t.key))i=e[t.key===Ms?0:e.length-1];else{const n=[Is,Ps].includes(t.key);i=b(e,t.target,n,!0)}i&&(i.focus({preventScroll:!0}),Vs.getOrCreateInstance(i).show())}_getChildren(){return z.find(Rs,this._parent)}_getActiveElem(){return this._getChildren().find((t=>this._elemIsActive(t)))||null}_setInitialAttributes(t,e){this._setAttributeIfNotExists(t,"role","tablist");for(const t of e)this._setInitialAttributesOnChild(t)}_setInitialAttributesOnChild(t){t=this._getInnerElement(t);const e=this._elemIsActive(t),i=this._getOuterElement(t);t.setAttribute("aria-selected",e),i!==t&&this._setAttributeIfNotExists(i,"role","presentation"),e||t.setAttribute("tabindex","-1"),this._setAttributeIfNotExists(t,"role","tab"),this._setInitialAttributesOnTargetPanel(t)}_setInitialAttributesOnTargetPanel(t){const e=z.getElementFromSelector(t);e&&(this._setAttributeIfNotExists(e,"role","tabpanel"),t.id&&this._setAttributeIfNotExists(e,"aria-labelledby",`${t.id}`))}_toggleDropDown(t,e){const i=this._getOuterElement(t);if(!i.classList.contains("dropdown"))return;const n=(t,n)=>{const s=z.findOne(t,i);s&&s.classList.toggle(n,e)};n(".dropdown-toggle",Fs),n(".dropdown-menu",Ws),i.setAttribute("aria-expanded",e)}_setAttributeIfNotExists(t,e,i){t.hasAttribute(e)||t.setAttribute(e,i)}_elemIsActive(t){return t.classList.contains(Fs)}_getInnerElement(t){return t.matches(Rs)?t:z.findOne(Rs,t)}_getOuterElement(t){return t.closest(".nav-item, .list-group-item")||t}static jQueryInterface(t){return this.each((function(){const e=Vs.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}))}}N.on(document,Ls,zs,(function(t){["A","AREA"].includes(this.tagName)&&t.preventDefault(),l(this)||Vs.getOrCreateInstance(this).show()})),N.on(window,Ds,(()=>{for(const t of z.find(qs))Vs.getOrCreateInstance(t)})),m(Vs);const Ks=".bs.toast",Qs=`mouseover${Ks}`,Xs=`mouseout${Ks}`,Ys=`focusin${Ks}`,Us=`focusout${Ks}`,Gs=`hide${Ks}`,Js=`hidden${Ks}`,Zs=`show${Ks}`,to=`shown${Ks}`,eo="hide",io="show",no="showing",so={animation:"boolean",autohide:"boolean",delay:"number"},oo={animation:!0,autohide:!0,delay:5e3};class ro extends W{constructor(t,e){super(t,e),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return oo}static get DefaultType(){return so}static get NAME(){return"toast"}show(){N.trigger(this._element,Zs).defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove(eo),d(this._element),this._element.classList.add(io,no),this._queueCallback((()=>{this._element.classList.remove(no),N.trigger(this._element,to),this._maybeScheduleHide()}),this._element,this._config.animation))}hide(){this.isShown()&&(N.trigger(this._element,Gs).defaultPrevented||(this._element.classList.add(no),this._queueCallback((()=>{this._element.classList.add(eo),this._element.classList.remove(no,io),N.trigger(this._element,Js)}),this._element,this._config.animation)))}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(io),super.dispose()}isShown(){return this._element.classList.contains(io)}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout((()=>{this.hide()}),this._config.delay)))}_onInteraction(t,e){switch(t.type){case"mouseover":case"mouseout":this._hasMouseInteraction=e;break;case"focusin":case"focusout":this._hasKeyboardInteraction=e}if(e)return void this._clearTimeout();const i=t.relatedTarget;this._element===i||this._element.contains(i)||this._maybeScheduleHide()}_setListeners(){N.on(this._element,Qs,(t=>this._onInteraction(t,!0))),N.on(this._element,Xs,(t=>this._onInteraction(t,!1))),N.on(this._element,Ys,(t=>this._onInteraction(t,!0))),N.on(this._element,Us,(t=>this._onInteraction(t,!1)))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each((function(){const e=ro.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}return R(ro),m(ro),{Alert:Q,Button:Y,Carousel:xt,Collapse:Bt,Dropdown:qi,Modal:On,Offcanvas:qn,Popover:us,ScrollSpy:Es,Tab:Vs,Toast:ro,Tooltip:cs}})); -//# sourceMappingURL=bootstrap.bundle.min.js.map \ No newline at end of file diff --git a/docs/src/tutorials/test1_files/libs/clipboard/clipboard.min.js b/docs/src/tutorials/test1_files/libs/clipboard/clipboard.min.js deleted file mode 100644 index 1103f81..0000000 --- a/docs/src/tutorials/test1_files/libs/clipboard/clipboard.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * clipboard.js v2.0.11 - * https://clipboardjs.com/ - * - * Licensed MIT © Zeno Rocha - */ -!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return n={686:function(t,e,n){"use strict";n.d(e,{default:function(){return b}});var e=n(279),i=n.n(e),e=n(370),u=n.n(e),e=n(817),r=n.n(e);function c(t){try{return document.execCommand(t)}catch(t){return}}var a=function(t){t=r()(t);return c("cut"),t};function o(t,e){var n,o,t=(n=t,o="rtl"===document.documentElement.getAttribute("dir"),(t=document.createElement("textarea")).style.fontSize="12pt",t.style.border="0",t.style.padding="0",t.style.margin="0",t.style.position="absolute",t.style[o?"right":"left"]="-9999px",o=window.pageYOffset||document.documentElement.scrollTop,t.style.top="".concat(o,"px"),t.setAttribute("readonly",""),t.value=n,t);return e.container.appendChild(t),e=r()(t),c("copy"),t.remove(),e}var f=function(t){var e=1.anchorjs-link,.anchorjs-link:focus{opacity:1}",A.sheet.cssRules.length),A.sheet.insertRule("[data-anchorjs-icon]::after{content:attr(data-anchorjs-icon)}",A.sheet.cssRules.length),A.sheet.insertRule('@font-face{font-family:anchorjs-icons;src:url(data:n/a;base64,AAEAAAALAIAAAwAwT1MvMg8yG2cAAAE4AAAAYGNtYXDp3gC3AAABpAAAAExnYXNwAAAAEAAAA9wAAAAIZ2x5ZlQCcfwAAAH4AAABCGhlYWQHFvHyAAAAvAAAADZoaGVhBnACFwAAAPQAAAAkaG10eASAADEAAAGYAAAADGxvY2EACACEAAAB8AAAAAhtYXhwAAYAVwAAARgAAAAgbmFtZQGOH9cAAAMAAAAAunBvc3QAAwAAAAADvAAAACAAAQAAAAEAAHzE2p9fDzz1AAkEAAAAAADRecUWAAAAANQA6R8AAAAAAoACwAAAAAgAAgAAAAAAAAABAAADwP/AAAACgAAA/9MCrQABAAAAAAAAAAAAAAAAAAAAAwABAAAAAwBVAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAMCQAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAg//0DwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAAIAAAACgAAxAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADAAAAAIAAgAAgAAACDpy//9//8AAAAg6cv//f///+EWNwADAAEAAAAAAAAAAAAAAAAACACEAAEAAAAAAAAAAAAAAAAxAAACAAQARAKAAsAAKwBUAAABIiYnJjQ3NzY2MzIWFxYUBwcGIicmNDc3NjQnJiYjIgYHBwYUFxYUBwYGIwciJicmNDc3NjIXFhQHBwYUFxYWMzI2Nzc2NCcmNDc2MhcWFAcHBgYjARQGDAUtLXoWOR8fORYtLTgKGwoKCjgaGg0gEhIgDXoaGgkJBQwHdR85Fi0tOAobCgoKOBoaDSASEiANehoaCQkKGwotLXoWOR8BMwUFLYEuehYXFxYugC44CQkKGwo4GkoaDQ0NDXoaShoKGwoFBe8XFi6ALjgJCQobCjgaShoNDQ0NehpKGgobCgoKLYEuehYXAAAADACWAAEAAAAAAAEACAAAAAEAAAAAAAIAAwAIAAEAAAAAAAMACAAAAAEAAAAAAAQACAAAAAEAAAAAAAUAAQALAAEAAAAAAAYACAAAAAMAAQQJAAEAEAAMAAMAAQQJAAIABgAcAAMAAQQJAAMAEAAMAAMAAQQJAAQAEAAMAAMAAQQJAAUAAgAiAAMAAQQJAAYAEAAMYW5jaG9yanM0MDBAAGEAbgBjAGgAbwByAGoAcwA0ADAAMABAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAH//wAP) format("truetype")}',A.sheet.cssRules.length)),h=document.querySelectorAll("[id]"),t=[].map.call(h,function(A){return A.id}),i=0;i\]./()*\\\n\t\b\v\u00A0]/g,"-").replace(/-{2,}/g,"-").substring(0,this.options.truncate).replace(/^-+|-+$/gm,"").toLowerCase()},this.hasAnchorJSLink=function(A){var e=A.firstChild&&-1<(" "+A.firstChild.className+" ").indexOf(" anchorjs-link "),A=A.lastChild&&-1<(" "+A.lastChild.className+" ").indexOf(" anchorjs-link ");return e||A||!1}}}); -// @license-end \ No newline at end of file diff --git a/docs/src/tutorials/test1_files/libs/quarto-html/popper.min.js b/docs/src/tutorials/test1_files/libs/quarto-html/popper.min.js deleted file mode 100644 index e3726d7..0000000 --- a/docs/src/tutorials/test1_files/libs/quarto-html/popper.min.js +++ /dev/null @@ -1,6 +0,0 @@ -/** - * @popperjs/core v2.11.7 - MIT License - */ - -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Popper={})}(this,(function(e){"use strict";function t(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function n(e){return e instanceof t(e).Element||e instanceof Element}function r(e){return e instanceof t(e).HTMLElement||e instanceof HTMLElement}function o(e){return"undefined"!=typeof ShadowRoot&&(e instanceof t(e).ShadowRoot||e instanceof ShadowRoot)}var i=Math.max,a=Math.min,s=Math.round;function f(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map((function(e){return e.brand+"/"+e.version})).join(" "):navigator.userAgent}function c(){return!/^((?!chrome|android).)*safari/i.test(f())}function p(e,o,i){void 0===o&&(o=!1),void 0===i&&(i=!1);var a=e.getBoundingClientRect(),f=1,p=1;o&&r(e)&&(f=e.offsetWidth>0&&s(a.width)/e.offsetWidth||1,p=e.offsetHeight>0&&s(a.height)/e.offsetHeight||1);var u=(n(e)?t(e):window).visualViewport,l=!c()&&i,d=(a.left+(l&&u?u.offsetLeft:0))/f,h=(a.top+(l&&u?u.offsetTop:0))/p,m=a.width/f,v=a.height/p;return{width:m,height:v,top:h,right:d+m,bottom:h+v,left:d,x:d,y:h}}function u(e){var n=t(e);return{scrollLeft:n.pageXOffset,scrollTop:n.pageYOffset}}function l(e){return e?(e.nodeName||"").toLowerCase():null}function d(e){return((n(e)?e.ownerDocument:e.document)||window.document).documentElement}function h(e){return p(d(e)).left+u(e).scrollLeft}function m(e){return t(e).getComputedStyle(e)}function v(e){var t=m(e),n=t.overflow,r=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function y(e,n,o){void 0===o&&(o=!1);var i,a,f=r(n),c=r(n)&&function(e){var t=e.getBoundingClientRect(),n=s(t.width)/e.offsetWidth||1,r=s(t.height)/e.offsetHeight||1;return 1!==n||1!==r}(n),m=d(n),y=p(e,c,o),g={scrollLeft:0,scrollTop:0},b={x:0,y:0};return(f||!f&&!o)&&(("body"!==l(n)||v(m))&&(g=(i=n)!==t(i)&&r(i)?{scrollLeft:(a=i).scrollLeft,scrollTop:a.scrollTop}:u(i)),r(n)?((b=p(n,!0)).x+=n.clientLeft,b.y+=n.clientTop):m&&(b.x=h(m))),{x:y.left+g.scrollLeft-b.x,y:y.top+g.scrollTop-b.y,width:y.width,height:y.height}}function g(e){var t=p(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function b(e){return"html"===l(e)?e:e.assignedSlot||e.parentNode||(o(e)?e.host:null)||d(e)}function x(e){return["html","body","#document"].indexOf(l(e))>=0?e.ownerDocument.body:r(e)&&v(e)?e:x(b(e))}function w(e,n){var r;void 0===n&&(n=[]);var o=x(e),i=o===(null==(r=e.ownerDocument)?void 0:r.body),a=t(o),s=i?[a].concat(a.visualViewport||[],v(o)?o:[]):o,f=n.concat(s);return i?f:f.concat(w(b(s)))}function O(e){return["table","td","th"].indexOf(l(e))>=0}function j(e){return r(e)&&"fixed"!==m(e).position?e.offsetParent:null}function E(e){for(var n=t(e),i=j(e);i&&O(i)&&"static"===m(i).position;)i=j(i);return i&&("html"===l(i)||"body"===l(i)&&"static"===m(i).position)?n:i||function(e){var t=/firefox/i.test(f());if(/Trident/i.test(f())&&r(e)&&"fixed"===m(e).position)return null;var n=b(e);for(o(n)&&(n=n.host);r(n)&&["html","body"].indexOf(l(n))<0;){var i=m(n);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||t&&"filter"===i.willChange||t&&i.filter&&"none"!==i.filter)return n;n=n.parentNode}return null}(e)||n}var D="top",A="bottom",L="right",P="left",M="auto",k=[D,A,L,P],W="start",B="end",H="viewport",T="popper",R=k.reduce((function(e,t){return e.concat([t+"-"+W,t+"-"+B])}),[]),S=[].concat(k,[M]).reduce((function(e,t){return e.concat([t,t+"-"+W,t+"-"+B])}),[]),V=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function q(e){var t=new Map,n=new Set,r=[];function o(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var r=t.get(e);r&&o(r)}})),r.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||o(e)})),r}function C(e){return e.split("-")[0]}function N(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&o(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function I(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function _(e,r,o){return r===H?I(function(e,n){var r=t(e),o=d(e),i=r.visualViewport,a=o.clientWidth,s=o.clientHeight,f=0,p=0;if(i){a=i.width,s=i.height;var u=c();(u||!u&&"fixed"===n)&&(f=i.offsetLeft,p=i.offsetTop)}return{width:a,height:s,x:f+h(e),y:p}}(e,o)):n(r)?function(e,t){var n=p(e,!1,"fixed"===t);return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}(r,o):I(function(e){var t,n=d(e),r=u(e),o=null==(t=e.ownerDocument)?void 0:t.body,a=i(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),s=i(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),f=-r.scrollLeft+h(e),c=-r.scrollTop;return"rtl"===m(o||n).direction&&(f+=i(n.clientWidth,o?o.clientWidth:0)-a),{width:a,height:s,x:f,y:c}}(d(e)))}function F(e,t,o,s){var f="clippingParents"===t?function(e){var t=w(b(e)),o=["absolute","fixed"].indexOf(m(e).position)>=0&&r(e)?E(e):e;return n(o)?t.filter((function(e){return n(e)&&N(e,o)&&"body"!==l(e)})):[]}(e):[].concat(t),c=[].concat(f,[o]),p=c[0],u=c.reduce((function(t,n){var r=_(e,n,s);return t.top=i(r.top,t.top),t.right=a(r.right,t.right),t.bottom=a(r.bottom,t.bottom),t.left=i(r.left,t.left),t}),_(e,p,s));return u.width=u.right-u.left,u.height=u.bottom-u.top,u.x=u.left,u.y=u.top,u}function U(e){return e.split("-")[1]}function z(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function X(e){var t,n=e.reference,r=e.element,o=e.placement,i=o?C(o):null,a=o?U(o):null,s=n.x+n.width/2-r.width/2,f=n.y+n.height/2-r.height/2;switch(i){case D:t={x:s,y:n.y-r.height};break;case A:t={x:s,y:n.y+n.height};break;case L:t={x:n.x+n.width,y:f};break;case P:t={x:n.x-r.width,y:f};break;default:t={x:n.x,y:n.y}}var c=i?z(i):null;if(null!=c){var p="y"===c?"height":"width";switch(a){case W:t[c]=t[c]-(n[p]/2-r[p]/2);break;case B:t[c]=t[c]+(n[p]/2-r[p]/2)}}return t}function Y(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function G(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}function J(e,t){void 0===t&&(t={});var r=t,o=r.placement,i=void 0===o?e.placement:o,a=r.strategy,s=void 0===a?e.strategy:a,f=r.boundary,c=void 0===f?"clippingParents":f,u=r.rootBoundary,l=void 0===u?H:u,h=r.elementContext,m=void 0===h?T:h,v=r.altBoundary,y=void 0!==v&&v,g=r.padding,b=void 0===g?0:g,x=Y("number"!=typeof b?b:G(b,k)),w=m===T?"reference":T,O=e.rects.popper,j=e.elements[y?w:m],E=F(n(j)?j:j.contextElement||d(e.elements.popper),c,l,s),P=p(e.elements.reference),M=X({reference:P,element:O,strategy:"absolute",placement:i}),W=I(Object.assign({},O,M)),B=m===T?W:P,R={top:E.top-B.top+x.top,bottom:B.bottom-E.bottom+x.bottom,left:E.left-B.left+x.left,right:B.right-E.right+x.right},S=e.modifiersData.offset;if(m===T&&S){var V=S[i];Object.keys(R).forEach((function(e){var t=[L,A].indexOf(e)>=0?1:-1,n=[D,A].indexOf(e)>=0?"y":"x";R[e]+=V[n]*t}))}return R}var K={placement:"bottom",modifiers:[],strategy:"absolute"};function Q(){for(var e=arguments.length,t=new Array(e),n=0;n=0?-1:1,i="function"==typeof n?n(Object.assign({},t,{placement:e})):n,a=i[0],s=i[1];return a=a||0,s=(s||0)*o,[P,L].indexOf(r)>=0?{x:s,y:a}:{x:a,y:s}}(n,t.rects,i),e}),{}),s=a[t.placement],f=s.x,c=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=f,t.modifiersData.popperOffsets.y+=c),t.modifiersData[r]=a}},se={left:"right",right:"left",bottom:"top",top:"bottom"};function fe(e){return e.replace(/left|right|bottom|top/g,(function(e){return se[e]}))}var ce={start:"end",end:"start"};function pe(e){return e.replace(/start|end/g,(function(e){return ce[e]}))}function ue(e,t){void 0===t&&(t={});var n=t,r=n.placement,o=n.boundary,i=n.rootBoundary,a=n.padding,s=n.flipVariations,f=n.allowedAutoPlacements,c=void 0===f?S:f,p=U(r),u=p?s?R:R.filter((function(e){return U(e)===p})):k,l=u.filter((function(e){return c.indexOf(e)>=0}));0===l.length&&(l=u);var d=l.reduce((function(t,n){return t[n]=J(e,{placement:n,boundary:o,rootBoundary:i,padding:a})[C(n)],t}),{});return Object.keys(d).sort((function(e,t){return d[e]-d[t]}))}var le={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var o=n.mainAxis,i=void 0===o||o,a=n.altAxis,s=void 0===a||a,f=n.fallbackPlacements,c=n.padding,p=n.boundary,u=n.rootBoundary,l=n.altBoundary,d=n.flipVariations,h=void 0===d||d,m=n.allowedAutoPlacements,v=t.options.placement,y=C(v),g=f||(y===v||!h?[fe(v)]:function(e){if(C(e)===M)return[];var t=fe(e);return[pe(e),t,pe(t)]}(v)),b=[v].concat(g).reduce((function(e,n){return e.concat(C(n)===M?ue(t,{placement:n,boundary:p,rootBoundary:u,padding:c,flipVariations:h,allowedAutoPlacements:m}):n)}),[]),x=t.rects.reference,w=t.rects.popper,O=new Map,j=!0,E=b[0],k=0;k=0,S=R?"width":"height",V=J(t,{placement:B,boundary:p,rootBoundary:u,altBoundary:l,padding:c}),q=R?T?L:P:T?A:D;x[S]>w[S]&&(q=fe(q));var N=fe(q),I=[];if(i&&I.push(V[H]<=0),s&&I.push(V[q]<=0,V[N]<=0),I.every((function(e){return e}))){E=B,j=!1;break}O.set(B,I)}if(j)for(var _=function(e){var t=b.find((function(t){var n=O.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return E=t,"break"},F=h?3:1;F>0;F--){if("break"===_(F))break}t.placement!==E&&(t.modifiersData[r]._skip=!0,t.placement=E,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function de(e,t,n){return i(e,a(t,n))}var he={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.mainAxis,s=void 0===o||o,f=n.altAxis,c=void 0!==f&&f,p=n.boundary,u=n.rootBoundary,l=n.altBoundary,d=n.padding,h=n.tether,m=void 0===h||h,v=n.tetherOffset,y=void 0===v?0:v,b=J(t,{boundary:p,rootBoundary:u,padding:d,altBoundary:l}),x=C(t.placement),w=U(t.placement),O=!w,j=z(x),M="x"===j?"y":"x",k=t.modifiersData.popperOffsets,B=t.rects.reference,H=t.rects.popper,T="function"==typeof y?y(Object.assign({},t.rects,{placement:t.placement})):y,R="number"==typeof T?{mainAxis:T,altAxis:T}:Object.assign({mainAxis:0,altAxis:0},T),S=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,V={x:0,y:0};if(k){if(s){var q,N="y"===j?D:P,I="y"===j?A:L,_="y"===j?"height":"width",F=k[j],X=F+b[N],Y=F-b[I],G=m?-H[_]/2:0,K=w===W?B[_]:H[_],Q=w===W?-H[_]:-B[_],Z=t.elements.arrow,$=m&&Z?g(Z):{width:0,height:0},ee=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},te=ee[N],ne=ee[I],re=de(0,B[_],$[_]),oe=O?B[_]/2-G-re-te-R.mainAxis:K-re-te-R.mainAxis,ie=O?-B[_]/2+G+re+ne+R.mainAxis:Q+re+ne+R.mainAxis,ae=t.elements.arrow&&E(t.elements.arrow),se=ae?"y"===j?ae.clientTop||0:ae.clientLeft||0:0,fe=null!=(q=null==S?void 0:S[j])?q:0,ce=F+ie-fe,pe=de(m?a(X,F+oe-fe-se):X,F,m?i(Y,ce):Y);k[j]=pe,V[j]=pe-F}if(c){var ue,le="x"===j?D:P,he="x"===j?A:L,me=k[M],ve="y"===M?"height":"width",ye=me+b[le],ge=me-b[he],be=-1!==[D,P].indexOf(x),xe=null!=(ue=null==S?void 0:S[M])?ue:0,we=be?ye:me-B[ve]-H[ve]-xe+R.altAxis,Oe=be?me+B[ve]+H[ve]-xe-R.altAxis:ge,je=m&&be?function(e,t,n){var r=de(e,t,n);return r>n?n:r}(we,me,Oe):de(m?we:ye,me,m?Oe:ge);k[M]=je,V[M]=je-me}t.modifiersData[r]=V}},requiresIfExists:["offset"]};var me={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,r=e.name,o=e.options,i=n.elements.arrow,a=n.modifiersData.popperOffsets,s=C(n.placement),f=z(s),c=[P,L].indexOf(s)>=0?"height":"width";if(i&&a){var p=function(e,t){return Y("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:G(e,k))}(o.padding,n),u=g(i),l="y"===f?D:P,d="y"===f?A:L,h=n.rects.reference[c]+n.rects.reference[f]-a[f]-n.rects.popper[c],m=a[f]-n.rects.reference[f],v=E(i),y=v?"y"===f?v.clientHeight||0:v.clientWidth||0:0,b=h/2-m/2,x=p[l],w=y-u[c]-p[d],O=y/2-u[c]/2+b,j=de(x,O,w),M=f;n.modifiersData[r]=((t={})[M]=j,t.centerOffset=j-O,t)}},effect:function(e){var t=e.state,n=e.options.element,r=void 0===n?"[data-popper-arrow]":n;null!=r&&("string"!=typeof r||(r=t.elements.popper.querySelector(r)))&&N(t.elements.popper,r)&&(t.elements.arrow=r)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function ve(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function ye(e){return[D,L,A,P].some((function(t){return e[t]>=0}))}var ge={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,r=t.rects.reference,o=t.rects.popper,i=t.modifiersData.preventOverflow,a=J(t,{elementContext:"reference"}),s=J(t,{altBoundary:!0}),f=ve(a,r),c=ve(s,o,i),p=ye(f),u=ye(c);t.modifiersData[n]={referenceClippingOffsets:f,popperEscapeOffsets:c,isReferenceHidden:p,hasPopperEscaped:u},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":p,"data-popper-escaped":u})}},be=Z({defaultModifiers:[ee,te,oe,ie]}),xe=[ee,te,oe,ie,ae,le,he,me,ge],we=Z({defaultModifiers:xe});e.applyStyles=ie,e.arrow=me,e.computeStyles=oe,e.createPopper=we,e.createPopperLite=be,e.defaultModifiers=xe,e.detectOverflow=J,e.eventListeners=ee,e.flip=le,e.hide=ge,e.offset=ae,e.popperGenerator=Z,e.popperOffsets=te,e.preventOverflow=he,Object.defineProperty(e,"__esModule",{value:!0})})); - diff --git a/docs/src/tutorials/test1_files/libs/quarto-html/quarto-syntax-highlighting-ea385d0e468b0dd5ea5bf0780b1290d9.css b/docs/src/tutorials/test1_files/libs/quarto-html/quarto-syntax-highlighting-ea385d0e468b0dd5ea5bf0780b1290d9.css deleted file mode 100644 index cca9c95..0000000 --- a/docs/src/tutorials/test1_files/libs/quarto-html/quarto-syntax-highlighting-ea385d0e468b0dd5ea5bf0780b1290d9.css +++ /dev/null @@ -1,236 +0,0 @@ -/* quarto syntax highlight colors */ -:root { - --quarto-hl-ot-color: #003B4F; - --quarto-hl-at-color: #657422; - --quarto-hl-ss-color: #20794D; - --quarto-hl-an-color: #5E5E5E; - --quarto-hl-fu-color: #4758AB; - --quarto-hl-st-color: #20794D; - --quarto-hl-cf-color: #003B4F; - --quarto-hl-op-color: #5E5E5E; - --quarto-hl-er-color: #AD0000; - --quarto-hl-bn-color: #AD0000; - --quarto-hl-al-color: #AD0000; - --quarto-hl-va-color: #111111; - --quarto-hl-bu-color: inherit; - --quarto-hl-ex-color: inherit; - --quarto-hl-pp-color: #AD0000; - --quarto-hl-in-color: #5E5E5E; - --quarto-hl-vs-color: #20794D; - --quarto-hl-wa-color: #5E5E5E; - --quarto-hl-do-color: #5E5E5E; - --quarto-hl-im-color: #00769E; - --quarto-hl-ch-color: #20794D; - --quarto-hl-dt-color: #AD0000; - --quarto-hl-fl-color: #AD0000; - --quarto-hl-co-color: #5E5E5E; - --quarto-hl-cv-color: #5E5E5E; - --quarto-hl-cn-color: #8f5902; - --quarto-hl-sc-color: #5E5E5E; - --quarto-hl-dv-color: #AD0000; - --quarto-hl-kw-color: #003B4F; -} - -/* other quarto variables */ -:root { - --quarto-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; -} - -/* syntax highlight based on Pandoc's rules */ -pre > code.sourceCode > span { - color: #003B4F; -} - -code.sourceCode > span { - color: #003B4F; -} - -div.sourceCode, -div.sourceCode pre.sourceCode { - color: #003B4F; -} - -/* Normal */ -code span { - color: #003B4F; -} - -/* Alert */ -code span.al { - color: #AD0000; - font-style: inherit; -} - -/* Annotation */ -code span.an { - color: #5E5E5E; - font-style: inherit; -} - -/* Attribute */ -code span.at { - color: #657422; - font-style: inherit; -} - -/* BaseN */ -code span.bn { - color: #AD0000; - font-style: inherit; -} - -/* BuiltIn */ -code span.bu { - font-style: inherit; -} - -/* ControlFlow */ -code span.cf { - color: #003B4F; - font-weight: bold; - font-style: inherit; -} - -/* Char */ -code span.ch { - color: #20794D; - font-style: inherit; -} - -/* Constant */ -code span.cn { - color: #8f5902; - font-style: inherit; -} - -/* Comment */ -code span.co { - color: #5E5E5E; - font-style: inherit; -} - -/* CommentVar */ -code span.cv { - color: #5E5E5E; - font-style: italic; -} - -/* Documentation */ -code span.do { - color: #5E5E5E; - font-style: italic; -} - -/* DataType */ -code span.dt { - color: #AD0000; - font-style: inherit; -} - -/* DecVal */ -code span.dv { - color: #AD0000; - font-style: inherit; -} - -/* Error */ -code span.er { - color: #AD0000; - font-style: inherit; -} - -/* Extension */ -code span.ex { - font-style: inherit; -} - -/* Float */ -code span.fl { - color: #AD0000; - font-style: inherit; -} - -/* Function */ -code span.fu { - color: #4758AB; - font-style: inherit; -} - -/* Import */ -code span.im { - color: #00769E; - font-style: inherit; -} - -/* Information */ -code span.in { - color: #5E5E5E; - font-style: inherit; -} - -/* Keyword */ -code span.kw { - color: #003B4F; - font-weight: bold; - font-style: inherit; -} - -/* Operator */ -code span.op { - color: #5E5E5E; - font-style: inherit; -} - -/* Other */ -code span.ot { - color: #003B4F; - font-style: inherit; -} - -/* Preprocessor */ -code span.pp { - color: #AD0000; - font-style: inherit; -} - -/* SpecialChar */ -code span.sc { - color: #5E5E5E; - font-style: inherit; -} - -/* SpecialString */ -code span.ss { - color: #20794D; - font-style: inherit; -} - -/* String */ -code span.st { - color: #20794D; - font-style: inherit; -} - -/* Variable */ -code span.va { - color: #111111; - font-style: inherit; -} - -/* VerbatimString */ -code span.vs { - color: #20794D; - font-style: inherit; -} - -/* Warning */ -code span.wa { - color: #5E5E5E; - font-style: italic; -} - -.prevent-inlining { - content: " { - // Find any conflicting margin elements and add margins to the - // top to prevent overlap - const marginChildren = window.document.querySelectorAll( - ".column-margin.column-container > *, .margin-caption, .aside" - ); - - let lastBottom = 0; - for (const marginChild of marginChildren) { - if (marginChild.offsetParent !== null) { - // clear the top margin so we recompute it - marginChild.style.marginTop = null; - const top = marginChild.getBoundingClientRect().top + window.scrollY; - if (top < lastBottom) { - const marginChildStyle = window.getComputedStyle(marginChild); - const marginBottom = parseFloat(marginChildStyle["marginBottom"]); - const margin = lastBottom - top + marginBottom; - marginChild.style.marginTop = `${margin}px`; - } - const styles = window.getComputedStyle(marginChild); - const marginTop = parseFloat(styles["marginTop"]); - lastBottom = top + marginChild.getBoundingClientRect().height + marginTop; - } - } -}; - -window.document.addEventListener("DOMContentLoaded", function (_event) { - // Recompute the position of margin elements anytime the body size changes - if (window.ResizeObserver) { - const resizeObserver = new window.ResizeObserver( - throttle(() => { - layoutMarginEls(); - if ( - window.document.body.getBoundingClientRect().width < 990 && - isReaderMode() - ) { - quartoToggleReader(); - } - }, 50) - ); - resizeObserver.observe(window.document.body); - } - - const tocEl = window.document.querySelector('nav.toc-active[role="doc-toc"]'); - const sidebarEl = window.document.getElementById("quarto-sidebar"); - const leftTocEl = window.document.getElementById("quarto-sidebar-toc-left"); - const marginSidebarEl = window.document.getElementById( - "quarto-margin-sidebar" - ); - // function to determine whether the element has a previous sibling that is active - const prevSiblingIsActiveLink = (el) => { - const sibling = el.previousElementSibling; - if (sibling && sibling.tagName === "A") { - return sibling.classList.contains("active"); - } else { - return false; - } - }; - - // dispatch for htmlwidgets - // they use slideenter event to trigger resize - function fireSlideEnter() { - const event = window.document.createEvent("Event"); - event.initEvent("slideenter", true, true); - window.document.dispatchEvent(event); - } - - const tabs = window.document.querySelectorAll('a[data-bs-toggle="tab"]'); - tabs.forEach((tab) => { - tab.addEventListener("shown.bs.tab", fireSlideEnter); - }); - - // dispatch for shiny - // they use BS shown and hidden events to trigger rendering - function distpatchShinyEvents(previous, current) { - if (window.jQuery) { - if (previous) { - window.jQuery(previous).trigger("hidden"); - } - if (current) { - window.jQuery(current).trigger("shown"); - } - } - } - - // tabby.js listener: Trigger event for htmlwidget and shiny - document.addEventListener( - "tabby", - function (event) { - fireSlideEnter(); - distpatchShinyEvents(event.detail.previousTab, event.detail.tab); - }, - false - ); - - // Track scrolling and mark TOC links as active - // get table of contents and sidebar (bail if we don't have at least one) - const tocLinks = tocEl - ? [...tocEl.querySelectorAll("a[data-scroll-target]")] - : []; - const makeActive = (link) => tocLinks[link].classList.add("active"); - const removeActive = (link) => tocLinks[link].classList.remove("active"); - const removeAllActive = () => - [...Array(tocLinks.length).keys()].forEach((link) => removeActive(link)); - - // activate the anchor for a section associated with this TOC entry - tocLinks.forEach((link) => { - link.addEventListener("click", () => { - if (link.href.indexOf("#") !== -1) { - const anchor = link.href.split("#")[1]; - const heading = window.document.querySelector( - `[data-anchor-id="${anchor}"]` - ); - if (heading) { - // Add the class - heading.classList.add("reveal-anchorjs-link"); - - // function to show the anchor - const handleMouseout = () => { - heading.classList.remove("reveal-anchorjs-link"); - heading.removeEventListener("mouseout", handleMouseout); - }; - - // add a function to clear the anchor when the user mouses out of it - heading.addEventListener("mouseout", handleMouseout); - } - } - }); - }); - - const sections = tocLinks.map((link) => { - const target = link.getAttribute("data-scroll-target"); - if (target.startsWith("#")) { - return window.document.getElementById(decodeURI(`${target.slice(1)}`)); - } else { - return window.document.querySelector(decodeURI(`${target}`)); - } - }); - - const sectionMargin = 200; - let currentActive = 0; - // track whether we've initialized state the first time - let init = false; - - const updateActiveLink = () => { - // The index from bottom to top (e.g. reversed list) - let sectionIndex = -1; - if ( - window.innerHeight + window.pageYOffset >= - window.document.body.offsetHeight - ) { - // This is the no-scroll case where last section should be the active one - sectionIndex = 0; - } else { - // This finds the last section visible on screen that should be made active - sectionIndex = [...sections].reverse().findIndex((section) => { - if (section) { - return window.pageYOffset >= section.offsetTop - sectionMargin; - } else { - return false; - } - }); - } - if (sectionIndex > -1) { - const current = sections.length - sectionIndex - 1; - if (current !== currentActive) { - removeAllActive(); - currentActive = current; - makeActive(current); - if (init) { - window.dispatchEvent(sectionChanged); - } - init = true; - } - } - }; - - const inHiddenRegion = (top, bottom, hiddenRegions) => { - for (const region of hiddenRegions) { - if (top <= region.bottom && bottom >= region.top) { - return true; - } - } - return false; - }; - - const categorySelector = "header.quarto-title-block .quarto-category"; - const activateCategories = (href) => { - // Find any categories - // Surround them with a link pointing back to: - // #category=Authoring - try { - const categoryEls = window.document.querySelectorAll(categorySelector); - for (const categoryEl of categoryEls) { - const categoryText = categoryEl.textContent; - if (categoryText) { - const link = `${href}#category=${encodeURIComponent(categoryText)}`; - const linkEl = window.document.createElement("a"); - linkEl.setAttribute("href", link); - for (const child of categoryEl.childNodes) { - linkEl.append(child); - } - categoryEl.appendChild(linkEl); - } - } - } catch { - // Ignore errors - } - }; - function hasTitleCategories() { - return window.document.querySelector(categorySelector) !== null; - } - - function offsetRelativeUrl(url) { - const offset = getMeta("quarto:offset"); - return offset ? offset + url : url; - } - - function offsetAbsoluteUrl(url) { - const offset = getMeta("quarto:offset"); - const baseUrl = new URL(offset, window.location); - - const projRelativeUrl = url.replace(baseUrl, ""); - if (projRelativeUrl.startsWith("/")) { - return projRelativeUrl; - } else { - return "/" + projRelativeUrl; - } - } - - // read a meta tag value - function getMeta(metaName) { - const metas = window.document.getElementsByTagName("meta"); - for (let i = 0; i < metas.length; i++) { - if (metas[i].getAttribute("name") === metaName) { - return metas[i].getAttribute("content"); - } - } - return ""; - } - - async function findAndActivateCategories() { - // Categories search with listing only use path without query - const currentPagePath = offsetAbsoluteUrl( - window.location.origin + window.location.pathname - ); - const response = await fetch(offsetRelativeUrl("listings.json")); - if (response.status == 200) { - return response.json().then(function (listingPaths) { - const listingHrefs = []; - for (const listingPath of listingPaths) { - const pathWithoutLeadingSlash = listingPath.listing.substring(1); - for (const item of listingPath.items) { - const encodedItem = encodeURI(item); - if ( - encodedItem === currentPagePath || - encodedItem === currentPagePath + "index.html" - ) { - // Resolve this path against the offset to be sure - // we already are using the correct path to the listing - // (this adjusts the listing urls to be rooted against - // whatever root the page is actually running against) - const relative = offsetRelativeUrl(pathWithoutLeadingSlash); - const baseUrl = window.location; - const resolvedPath = new URL(relative, baseUrl); - listingHrefs.push(resolvedPath.pathname); - break; - } - } - } - - // Look up the tree for a nearby linting and use that if we find one - const nearestListing = findNearestParentListing( - offsetAbsoluteUrl(window.location.pathname), - listingHrefs - ); - if (nearestListing) { - activateCategories(nearestListing); - } else { - // See if the referrer is a listing page for this item - const referredRelativePath = offsetAbsoluteUrl(document.referrer); - const referrerListing = listingHrefs.find((listingHref) => { - const isListingReferrer = - listingHref === referredRelativePath || - listingHref === referredRelativePath + "index.html"; - return isListingReferrer; - }); - - if (referrerListing) { - // Try to use the referrer if possible - activateCategories(referrerListing); - } else if (listingHrefs.length > 0) { - // Otherwise, just fall back to the first listing - activateCategories(listingHrefs[0]); - } - } - }); - } - } - if (hasTitleCategories()) { - findAndActivateCategories(); - } - - const findNearestParentListing = (href, listingHrefs) => { - if (!href || !listingHrefs) { - return undefined; - } - // Look up the tree for a nearby linting and use that if we find one - const relativeParts = href.substring(1).split("/"); - while (relativeParts.length > 0) { - const path = relativeParts.join("/"); - for (const listingHref of listingHrefs) { - if (listingHref.startsWith(path)) { - return listingHref; - } - } - relativeParts.pop(); - } - - return undefined; - }; - - const manageSidebarVisiblity = (el, placeholderDescriptor) => { - let isVisible = true; - let elRect; - - return (hiddenRegions) => { - if (el === null) { - return; - } - - // Find the last element of the TOC - const lastChildEl = el.lastElementChild; - - if (lastChildEl) { - // Converts the sidebar to a menu - const convertToMenu = () => { - for (const child of el.children) { - child.style.opacity = 0; - child.style.overflow = "hidden"; - child.style.pointerEvents = "none"; - } - - nexttick(() => { - const toggleContainer = window.document.createElement("div"); - toggleContainer.style.width = "100%"; - toggleContainer.classList.add("zindex-over-content"); - toggleContainer.classList.add("quarto-sidebar-toggle"); - toggleContainer.classList.add("headroom-target"); // Marks this to be managed by headeroom - toggleContainer.id = placeholderDescriptor.id; - toggleContainer.style.position = "fixed"; - - const toggleIcon = window.document.createElement("i"); - toggleIcon.classList.add("quarto-sidebar-toggle-icon"); - toggleIcon.classList.add("bi"); - toggleIcon.classList.add("bi-caret-down-fill"); - - const toggleTitle = window.document.createElement("div"); - const titleEl = window.document.body.querySelector( - placeholderDescriptor.titleSelector - ); - if (titleEl) { - toggleTitle.append( - titleEl.textContent || titleEl.innerText, - toggleIcon - ); - } - toggleTitle.classList.add("zindex-over-content"); - toggleTitle.classList.add("quarto-sidebar-toggle-title"); - toggleContainer.append(toggleTitle); - - const toggleContents = window.document.createElement("div"); - toggleContents.classList = el.classList; - toggleContents.classList.add("zindex-over-content"); - toggleContents.classList.add("quarto-sidebar-toggle-contents"); - for (const child of el.children) { - if (child.id === "toc-title") { - continue; - } - - const clone = child.cloneNode(true); - clone.style.opacity = 1; - clone.style.pointerEvents = null; - clone.style.display = null; - toggleContents.append(clone); - } - toggleContents.style.height = "0px"; - const positionToggle = () => { - // position the element (top left of parent, same width as parent) - if (!elRect) { - elRect = el.getBoundingClientRect(); - } - toggleContainer.style.left = `${elRect.left}px`; - toggleContainer.style.top = `${elRect.top}px`; - toggleContainer.style.width = `${elRect.width}px`; - }; - positionToggle(); - - toggleContainer.append(toggleContents); - el.parentElement.prepend(toggleContainer); - - // Process clicks - let tocShowing = false; - // Allow the caller to control whether this is dismissed - // when it is clicked (e.g. sidebar navigation supports - // opening and closing the nav tree, so don't dismiss on click) - const clickEl = placeholderDescriptor.dismissOnClick - ? toggleContainer - : toggleTitle; - - const closeToggle = () => { - if (tocShowing) { - toggleContainer.classList.remove("expanded"); - toggleContents.style.height = "0px"; - tocShowing = false; - } - }; - - // Get rid of any expanded toggle if the user scrolls - window.document.addEventListener( - "scroll", - throttle(() => { - closeToggle(); - }, 50) - ); - - // Handle positioning of the toggle - window.addEventListener( - "resize", - throttle(() => { - elRect = undefined; - positionToggle(); - }, 50) - ); - - window.addEventListener("quarto-hrChanged", () => { - elRect = undefined; - }); - - // Process the click - clickEl.onclick = () => { - if (!tocShowing) { - toggleContainer.classList.add("expanded"); - toggleContents.style.height = null; - tocShowing = true; - } else { - closeToggle(); - } - }; - }); - }; - - // Converts a sidebar from a menu back to a sidebar - const convertToSidebar = () => { - for (const child of el.children) { - child.style.opacity = 1; - child.style.overflow = null; - child.style.pointerEvents = null; - } - - const placeholderEl = window.document.getElementById( - placeholderDescriptor.id - ); - if (placeholderEl) { - placeholderEl.remove(); - } - - el.classList.remove("rollup"); - }; - - if (isReaderMode()) { - convertToMenu(); - isVisible = false; - } else { - // Find the top and bottom o the element that is being managed - const elTop = el.offsetTop; - const elBottom = - elTop + lastChildEl.offsetTop + lastChildEl.offsetHeight; - - if (!isVisible) { - // If the element is current not visible reveal if there are - // no conflicts with overlay regions - if (!inHiddenRegion(elTop, elBottom, hiddenRegions)) { - convertToSidebar(); - isVisible = true; - } - } else { - // If the element is visible, hide it if it conflicts with overlay regions - // and insert a placeholder toggle (or if we're in reader mode) - if (inHiddenRegion(elTop, elBottom, hiddenRegions)) { - convertToMenu(); - isVisible = false; - } - } - } - } - }; - }; - - const tabEls = document.querySelectorAll('a[data-bs-toggle="tab"]'); - for (const tabEl of tabEls) { - const id = tabEl.getAttribute("data-bs-target"); - if (id) { - const columnEl = document.querySelector( - `${id} .column-margin, .tabset-margin-content` - ); - if (columnEl) - tabEl.addEventListener("shown.bs.tab", function (event) { - const el = event.srcElement; - if (el) { - const visibleCls = `${el.id}-margin-content`; - // walk up until we find a parent tabset - let panelTabsetEl = el.parentElement; - while (panelTabsetEl) { - if (panelTabsetEl.classList.contains("panel-tabset")) { - break; - } - panelTabsetEl = panelTabsetEl.parentElement; - } - - if (panelTabsetEl) { - const prevSib = panelTabsetEl.previousElementSibling; - if ( - prevSib && - prevSib.classList.contains("tabset-margin-container") - ) { - const childNodes = prevSib.querySelectorAll( - ".tabset-margin-content" - ); - for (const childEl of childNodes) { - if (childEl.classList.contains(visibleCls)) { - childEl.classList.remove("collapse"); - } else { - childEl.classList.add("collapse"); - } - } - } - } - } - - layoutMarginEls(); - }); - } - } - - // Manage the visibility of the toc and the sidebar - const marginScrollVisibility = manageSidebarVisiblity(marginSidebarEl, { - id: "quarto-toc-toggle", - titleSelector: "#toc-title", - dismissOnClick: true, - }); - const sidebarScrollVisiblity = manageSidebarVisiblity(sidebarEl, { - id: "quarto-sidebarnav-toggle", - titleSelector: ".title", - dismissOnClick: false, - }); - let tocLeftScrollVisibility; - if (leftTocEl) { - tocLeftScrollVisibility = manageSidebarVisiblity(leftTocEl, { - id: "quarto-lefttoc-toggle", - titleSelector: "#toc-title", - dismissOnClick: true, - }); - } - - // Find the first element that uses formatting in special columns - const conflictingEls = window.document.body.querySelectorAll( - '[class^="column-"], [class*=" column-"], aside, [class*="margin-caption"], [class*=" margin-caption"], [class*="margin-ref"], [class*=" margin-ref"]' - ); - - // Filter all the possibly conflicting elements into ones - // the do conflict on the left or ride side - const arrConflictingEls = Array.from(conflictingEls); - const leftSideConflictEls = arrConflictingEls.filter((el) => { - if (el.tagName === "ASIDE") { - return false; - } - return Array.from(el.classList).find((className) => { - return ( - className !== "column-body" && - className.startsWith("column-") && - !className.endsWith("right") && - !className.endsWith("container") && - className !== "column-margin" - ); - }); - }); - const rightSideConflictEls = arrConflictingEls.filter((el) => { - if (el.tagName === "ASIDE") { - return true; - } - - const hasMarginCaption = Array.from(el.classList).find((className) => { - return className == "margin-caption"; - }); - if (hasMarginCaption) { - return true; - } - - return Array.from(el.classList).find((className) => { - return ( - className !== "column-body" && - !className.endsWith("container") && - className.startsWith("column-") && - !className.endsWith("left") - ); - }); - }); - - const kOverlapPaddingSize = 10; - function toRegions(els) { - return els.map((el) => { - const boundRect = el.getBoundingClientRect(); - const top = - boundRect.top + - document.documentElement.scrollTop - - kOverlapPaddingSize; - return { - top, - bottom: top + el.scrollHeight + 2 * kOverlapPaddingSize, - }; - }); - } - - let hasObserved = false; - const visibleItemObserver = (els) => { - let visibleElements = [...els]; - const intersectionObserver = new IntersectionObserver( - (entries, _observer) => { - entries.forEach((entry) => { - if (entry.isIntersecting) { - if (visibleElements.indexOf(entry.target) === -1) { - visibleElements.push(entry.target); - } - } else { - visibleElements = visibleElements.filter((visibleEntry) => { - return visibleEntry !== entry; - }); - } - }); - - if (!hasObserved) { - hideOverlappedSidebars(); - } - hasObserved = true; - }, - {} - ); - els.forEach((el) => { - intersectionObserver.observe(el); - }); - - return { - getVisibleEntries: () => { - return visibleElements; - }, - }; - }; - - const rightElementObserver = visibleItemObserver(rightSideConflictEls); - const leftElementObserver = visibleItemObserver(leftSideConflictEls); - - const hideOverlappedSidebars = () => { - marginScrollVisibility(toRegions(rightElementObserver.getVisibleEntries())); - sidebarScrollVisiblity(toRegions(leftElementObserver.getVisibleEntries())); - if (tocLeftScrollVisibility) { - tocLeftScrollVisibility( - toRegions(leftElementObserver.getVisibleEntries()) - ); - } - }; - - window.quartoToggleReader = () => { - // Applies a slow class (or removes it) - // to update the transition speed - const slowTransition = (slow) => { - const manageTransition = (id, slow) => { - const el = document.getElementById(id); - if (el) { - if (slow) { - el.classList.add("slow"); - } else { - el.classList.remove("slow"); - } - } - }; - - manageTransition("TOC", slow); - manageTransition("quarto-sidebar", slow); - }; - const readerMode = !isReaderMode(); - setReaderModeValue(readerMode); - - // If we're entering reader mode, slow the transition - if (readerMode) { - slowTransition(readerMode); - } - highlightReaderToggle(readerMode); - hideOverlappedSidebars(); - - // If we're exiting reader mode, restore the non-slow transition - if (!readerMode) { - slowTransition(!readerMode); - } - }; - - const highlightReaderToggle = (readerMode) => { - const els = document.querySelectorAll(".quarto-reader-toggle"); - if (els) { - els.forEach((el) => { - if (readerMode) { - el.classList.add("reader"); - } else { - el.classList.remove("reader"); - } - }); - } - }; - - const setReaderModeValue = (val) => { - if (window.location.protocol !== "file:") { - window.localStorage.setItem("quarto-reader-mode", val); - } else { - localReaderMode = val; - } - }; - - const isReaderMode = () => { - if (window.location.protocol !== "file:") { - return window.localStorage.getItem("quarto-reader-mode") === "true"; - } else { - return localReaderMode; - } - }; - let localReaderMode = null; - - const tocOpenDepthStr = tocEl?.getAttribute("data-toc-expanded"); - const tocOpenDepth = tocOpenDepthStr ? Number(tocOpenDepthStr) : 1; - - // Walk the TOC and collapse/expand nodes - // Nodes are expanded if: - // - they are top level - // - they have children that are 'active' links - // - they are directly below an link that is 'active' - const walk = (el, depth) => { - // Tick depth when we enter a UL - if (el.tagName === "UL") { - depth = depth + 1; - } - - // It this is active link - let isActiveNode = false; - if (el.tagName === "A" && el.classList.contains("active")) { - isActiveNode = true; - } - - // See if there is an active child to this element - let hasActiveChild = false; - for (const child of el.children) { - hasActiveChild = walk(child, depth) || hasActiveChild; - } - - // Process the collapse state if this is an UL - if (el.tagName === "UL") { - if (tocOpenDepth === -1 && depth > 1) { - // toc-expand: false - el.classList.add("collapse"); - } else if ( - depth <= tocOpenDepth || - hasActiveChild || - prevSiblingIsActiveLink(el) - ) { - el.classList.remove("collapse"); - } else { - el.classList.add("collapse"); - } - - // untick depth when we leave a UL - depth = depth - 1; - } - return hasActiveChild || isActiveNode; - }; - - // walk the TOC and expand / collapse any items that should be shown - if (tocEl) { - updateActiveLink(); - walk(tocEl, 0); - } - - // Throttle the scroll event and walk peridiocally - window.document.addEventListener( - "scroll", - throttle(() => { - if (tocEl) { - updateActiveLink(); - walk(tocEl, 0); - } - if (!isReaderMode()) { - hideOverlappedSidebars(); - } - }, 5) - ); - window.addEventListener( - "resize", - throttle(() => { - if (tocEl) { - updateActiveLink(); - walk(tocEl, 0); - } - if (!isReaderMode()) { - hideOverlappedSidebars(); - } - }, 10) - ); - hideOverlappedSidebars(); - highlightReaderToggle(isReaderMode()); -}); - -tabsets.init(); - -function throttle(func, wait) { - let waiting = false; - return function () { - if (!waiting) { - func.apply(this, arguments); - waiting = true; - setTimeout(function () { - waiting = false; - }, wait); - } - }; -} - -function nexttick(func) { - return setTimeout(func, 0); -} diff --git a/docs/src/tutorials/test1_files/libs/quarto-html/tabsets/tabsets.js b/docs/src/tutorials/test1_files/libs/quarto-html/tabsets/tabsets.js deleted file mode 100644 index 51345d0..0000000 --- a/docs/src/tutorials/test1_files/libs/quarto-html/tabsets/tabsets.js +++ /dev/null @@ -1,95 +0,0 @@ -// grouped tabsets - -export function init() { - window.addEventListener("pageshow", (_event) => { - function getTabSettings() { - const data = localStorage.getItem("quarto-persistent-tabsets-data"); - if (!data) { - localStorage.setItem("quarto-persistent-tabsets-data", "{}"); - return {}; - } - if (data) { - return JSON.parse(data); - } - } - - function setTabSettings(data) { - localStorage.setItem( - "quarto-persistent-tabsets-data", - JSON.stringify(data) - ); - } - - function setTabState(groupName, groupValue) { - const data = getTabSettings(); - data[groupName] = groupValue; - setTabSettings(data); - } - - function toggleTab(tab, active) { - const tabPanelId = tab.getAttribute("aria-controls"); - const tabPanel = document.getElementById(tabPanelId); - if (active) { - tab.classList.add("active"); - tabPanel.classList.add("active"); - } else { - tab.classList.remove("active"); - tabPanel.classList.remove("active"); - } - } - - function toggleAll(selectedGroup, selectorsToSync) { - for (const [thisGroup, tabs] of Object.entries(selectorsToSync)) { - const active = selectedGroup === thisGroup; - for (const tab of tabs) { - toggleTab(tab, active); - } - } - } - - function findSelectorsToSyncByLanguage() { - const result = {}; - const tabs = Array.from( - document.querySelectorAll(`div[data-group] a[id^='tabset-']`) - ); - for (const item of tabs) { - const div = item.parentElement.parentElement.parentElement; - const group = div.getAttribute("data-group"); - if (!result[group]) { - result[group] = {}; - } - const selectorsToSync = result[group]; - const value = item.innerHTML; - if (!selectorsToSync[value]) { - selectorsToSync[value] = []; - } - selectorsToSync[value].push(item); - } - return result; - } - - function setupSelectorSync() { - const selectorsToSync = findSelectorsToSyncByLanguage(); - Object.entries(selectorsToSync).forEach(([group, tabSetsByValue]) => { - Object.entries(tabSetsByValue).forEach(([value, items]) => { - items.forEach((item) => { - item.addEventListener("click", (_event) => { - setTabState(group, value); - toggleAll(value, selectorsToSync[group]); - }); - }); - }); - }); - return selectorsToSync; - } - - const selectorsToSync = setupSelectorSync(); - for (const [group, selectedName] of Object.entries(getTabSettings())) { - const selectors = selectorsToSync[group]; - // it's possible that stale state gives us empty selections, so we explicitly check here. - if (selectors) { - toggleAll(selectedName, selectors); - } - } - }); -} diff --git a/docs/src/tutorials/test1_files/libs/quarto-html/tippy.css b/docs/src/tutorials/test1_files/libs/quarto-html/tippy.css deleted file mode 100644 index e6ae635..0000000 --- a/docs/src/tutorials/test1_files/libs/quarto-html/tippy.css +++ /dev/null @@ -1 +0,0 @@ -.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;white-space:normal;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1} \ No newline at end of file diff --git a/docs/src/tutorials/test1_files/libs/quarto-html/tippy.umd.min.js b/docs/src/tutorials/test1_files/libs/quarto-html/tippy.umd.min.js deleted file mode 100644 index ca292be..0000000 --- a/docs/src/tutorials/test1_files/libs/quarto-html/tippy.umd.min.js +++ /dev/null @@ -1,2 +0,0 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("@popperjs/core")):"function"==typeof define&&define.amd?define(["@popperjs/core"],t):(e=e||self).tippy=t(e.Popper)}(this,(function(e){"use strict";var t={passive:!0,capture:!0},n=function(){return document.body};function r(e,t,n){if(Array.isArray(e)){var r=e[t];return null==r?Array.isArray(n)?n[t]:n:r}return e}function o(e,t){var n={}.toString.call(e);return 0===n.indexOf("[object")&&n.indexOf(t+"]")>-1}function i(e,t){return"function"==typeof e?e.apply(void 0,t):e}function a(e,t){return 0===t?e:function(r){clearTimeout(n),n=setTimeout((function(){e(r)}),t)};var n}function s(e,t){var n=Object.assign({},e);return t.forEach((function(e){delete n[e]})),n}function u(e){return[].concat(e)}function c(e,t){-1===e.indexOf(t)&&e.push(t)}function p(e){return e.split("-")[0]}function f(e){return[].slice.call(e)}function l(e){return Object.keys(e).reduce((function(t,n){return void 0!==e[n]&&(t[n]=e[n]),t}),{})}function d(){return document.createElement("div")}function v(e){return["Element","Fragment"].some((function(t){return o(e,t)}))}function m(e){return o(e,"MouseEvent")}function g(e){return!(!e||!e._tippy||e._tippy.reference!==e)}function h(e){return v(e)?[e]:function(e){return o(e,"NodeList")}(e)?f(e):Array.isArray(e)?e:f(document.querySelectorAll(e))}function b(e,t){e.forEach((function(e){e&&(e.style.transitionDuration=t+"ms")}))}function y(e,t){e.forEach((function(e){e&&e.setAttribute("data-state",t)}))}function w(e){var t,n=u(e)[0];return null!=n&&null!=(t=n.ownerDocument)&&t.body?n.ownerDocument:document}function E(e,t,n){var r=t+"EventListener";["transitionend","webkitTransitionEnd"].forEach((function(t){e[r](t,n)}))}function O(e,t){for(var n=t;n;){var r;if(e.contains(n))return!0;n=null==n.getRootNode||null==(r=n.getRootNode())?void 0:r.host}return!1}var x={isTouch:!1},C=0;function T(){x.isTouch||(x.isTouch=!0,window.performance&&document.addEventListener("mousemove",A))}function A(){var e=performance.now();e-C<20&&(x.isTouch=!1,document.removeEventListener("mousemove",A)),C=e}function L(){var e=document.activeElement;if(g(e)){var t=e._tippy;e.blur&&!t.state.isVisible&&e.blur()}}var D=!!("undefined"!=typeof window&&"undefined"!=typeof document)&&!!window.msCrypto,R=Object.assign({appendTo:n,aria:{content:"auto",expanded:"auto"},delay:0,duration:[300,250],getReferenceClientRect:null,hideOnClick:!0,ignoreAttributes:!1,interactive:!1,interactiveBorder:2,interactiveDebounce:0,moveTransition:"",offset:[0,10],onAfterUpdate:function(){},onBeforeUpdate:function(){},onCreate:function(){},onDestroy:function(){},onHidden:function(){},onHide:function(){},onMount:function(){},onShow:function(){},onShown:function(){},onTrigger:function(){},onUntrigger:function(){},onClickOutside:function(){},placement:"top",plugins:[],popperOptions:{},render:null,showOnCreate:!1,touch:!0,trigger:"mouseenter focus",triggerTarget:null},{animateFill:!1,followCursor:!1,inlinePositioning:!1,sticky:!1},{allowHTML:!1,animation:"fade",arrow:!0,content:"",inertia:!1,maxWidth:350,role:"tooltip",theme:"",zIndex:9999}),k=Object.keys(R);function P(e){var t=(e.plugins||[]).reduce((function(t,n){var r,o=n.name,i=n.defaultValue;o&&(t[o]=void 0!==e[o]?e[o]:null!=(r=R[o])?r:i);return t}),{});return Object.assign({},e,t)}function j(e,t){var n=Object.assign({},t,{content:i(t.content,[e])},t.ignoreAttributes?{}:function(e,t){return(t?Object.keys(P(Object.assign({},R,{plugins:t}))):k).reduce((function(t,n){var r=(e.getAttribute("data-tippy-"+n)||"").trim();if(!r)return t;if("content"===n)t[n]=r;else try{t[n]=JSON.parse(r)}catch(e){t[n]=r}return t}),{})}(e,t.plugins));return n.aria=Object.assign({},R.aria,n.aria),n.aria={expanded:"auto"===n.aria.expanded?t.interactive:n.aria.expanded,content:"auto"===n.aria.content?t.interactive?null:"describedby":n.aria.content},n}function M(e,t){e.innerHTML=t}function V(e){var t=d();return!0===e?t.className="tippy-arrow":(t.className="tippy-svg-arrow",v(e)?t.appendChild(e):M(t,e)),t}function I(e,t){v(t.content)?(M(e,""),e.appendChild(t.content)):"function"!=typeof t.content&&(t.allowHTML?M(e,t.content):e.textContent=t.content)}function S(e){var t=e.firstElementChild,n=f(t.children);return{box:t,content:n.find((function(e){return e.classList.contains("tippy-content")})),arrow:n.find((function(e){return e.classList.contains("tippy-arrow")||e.classList.contains("tippy-svg-arrow")})),backdrop:n.find((function(e){return e.classList.contains("tippy-backdrop")}))}}function N(e){var t=d(),n=d();n.className="tippy-box",n.setAttribute("data-state","hidden"),n.setAttribute("tabindex","-1");var r=d();function o(n,r){var o=S(t),i=o.box,a=o.content,s=o.arrow;r.theme?i.setAttribute("data-theme",r.theme):i.removeAttribute("data-theme"),"string"==typeof r.animation?i.setAttribute("data-animation",r.animation):i.removeAttribute("data-animation"),r.inertia?i.setAttribute("data-inertia",""):i.removeAttribute("data-inertia"),i.style.maxWidth="number"==typeof r.maxWidth?r.maxWidth+"px":r.maxWidth,r.role?i.setAttribute("role",r.role):i.removeAttribute("role"),n.content===r.content&&n.allowHTML===r.allowHTML||I(a,e.props),r.arrow?s?n.arrow!==r.arrow&&(i.removeChild(s),i.appendChild(V(r.arrow))):i.appendChild(V(r.arrow)):s&&i.removeChild(s)}return r.className="tippy-content",r.setAttribute("data-state","hidden"),I(r,e.props),t.appendChild(n),n.appendChild(r),o(e.props,e.props),{popper:t,onUpdate:o}}N.$$tippy=!0;var B=1,H=[],U=[];function _(o,s){var v,g,h,C,T,A,L,k,M=j(o,Object.assign({},R,P(l(s)))),V=!1,I=!1,N=!1,_=!1,F=[],W=a(we,M.interactiveDebounce),X=B++,Y=(k=M.plugins).filter((function(e,t){return k.indexOf(e)===t})),$={id:X,reference:o,popper:d(),popperInstance:null,props:M,state:{isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:Y,clearDelayTimeouts:function(){clearTimeout(v),clearTimeout(g),cancelAnimationFrame(h)},setProps:function(e){if($.state.isDestroyed)return;ae("onBeforeUpdate",[$,e]),be();var t=$.props,n=j(o,Object.assign({},t,l(e),{ignoreAttributes:!0}));$.props=n,he(),t.interactiveDebounce!==n.interactiveDebounce&&(ce(),W=a(we,n.interactiveDebounce));t.triggerTarget&&!n.triggerTarget?u(t.triggerTarget).forEach((function(e){e.removeAttribute("aria-expanded")})):n.triggerTarget&&o.removeAttribute("aria-expanded");ue(),ie(),J&&J(t,n);$.popperInstance&&(Ce(),Ae().forEach((function(e){requestAnimationFrame(e._tippy.popperInstance.forceUpdate)})));ae("onAfterUpdate",[$,e])},setContent:function(e){$.setProps({content:e})},show:function(){var e=$.state.isVisible,t=$.state.isDestroyed,o=!$.state.isEnabled,a=x.isTouch&&!$.props.touch,s=r($.props.duration,0,R.duration);if(e||t||o||a)return;if(te().hasAttribute("disabled"))return;if(ae("onShow",[$],!1),!1===$.props.onShow($))return;$.state.isVisible=!0,ee()&&(z.style.visibility="visible");ie(),de(),$.state.isMounted||(z.style.transition="none");if(ee()){var u=re(),p=u.box,f=u.content;b([p,f],0)}A=function(){var e;if($.state.isVisible&&!_){if(_=!0,z.offsetHeight,z.style.transition=$.props.moveTransition,ee()&&$.props.animation){var t=re(),n=t.box,r=t.content;b([n,r],s),y([n,r],"visible")}se(),ue(),c(U,$),null==(e=$.popperInstance)||e.forceUpdate(),ae("onMount",[$]),$.props.animation&&ee()&&function(e,t){me(e,t)}(s,(function(){$.state.isShown=!0,ae("onShown",[$])}))}},function(){var e,t=$.props.appendTo,r=te();e=$.props.interactive&&t===n||"parent"===t?r.parentNode:i(t,[r]);e.contains(z)||e.appendChild(z);$.state.isMounted=!0,Ce()}()},hide:function(){var e=!$.state.isVisible,t=$.state.isDestroyed,n=!$.state.isEnabled,o=r($.props.duration,1,R.duration);if(e||t||n)return;if(ae("onHide",[$],!1),!1===$.props.onHide($))return;$.state.isVisible=!1,$.state.isShown=!1,_=!1,V=!1,ee()&&(z.style.visibility="hidden");if(ce(),ve(),ie(!0),ee()){var i=re(),a=i.box,s=i.content;$.props.animation&&(b([a,s],o),y([a,s],"hidden"))}se(),ue(),$.props.animation?ee()&&function(e,t){me(e,(function(){!$.state.isVisible&&z.parentNode&&z.parentNode.contains(z)&&t()}))}(o,$.unmount):$.unmount()},hideWithInteractivity:function(e){ne().addEventListener("mousemove",W),c(H,W),W(e)},enable:function(){$.state.isEnabled=!0},disable:function(){$.hide(),$.state.isEnabled=!1},unmount:function(){$.state.isVisible&&$.hide();if(!$.state.isMounted)return;Te(),Ae().forEach((function(e){e._tippy.unmount()})),z.parentNode&&z.parentNode.removeChild(z);U=U.filter((function(e){return e!==$})),$.state.isMounted=!1,ae("onHidden",[$])},destroy:function(){if($.state.isDestroyed)return;$.clearDelayTimeouts(),$.unmount(),be(),delete o._tippy,$.state.isDestroyed=!0,ae("onDestroy",[$])}};if(!M.render)return $;var q=M.render($),z=q.popper,J=q.onUpdate;z.setAttribute("data-tippy-root",""),z.id="tippy-"+$.id,$.popper=z,o._tippy=$,z._tippy=$;var G=Y.map((function(e){return e.fn($)})),K=o.hasAttribute("aria-expanded");return he(),ue(),ie(),ae("onCreate",[$]),M.showOnCreate&&Le(),z.addEventListener("mouseenter",(function(){$.props.interactive&&$.state.isVisible&&$.clearDelayTimeouts()})),z.addEventListener("mouseleave",(function(){$.props.interactive&&$.props.trigger.indexOf("mouseenter")>=0&&ne().addEventListener("mousemove",W)})),$;function Q(){var e=$.props.touch;return Array.isArray(e)?e:[e,0]}function Z(){return"hold"===Q()[0]}function ee(){var e;return!(null==(e=$.props.render)||!e.$$tippy)}function te(){return L||o}function ne(){var e=te().parentNode;return e?w(e):document}function re(){return S(z)}function oe(e){return $.state.isMounted&&!$.state.isVisible||x.isTouch||C&&"focus"===C.type?0:r($.props.delay,e?0:1,R.delay)}function ie(e){void 0===e&&(e=!1),z.style.pointerEvents=$.props.interactive&&!e?"":"none",z.style.zIndex=""+$.props.zIndex}function ae(e,t,n){var r;(void 0===n&&(n=!0),G.forEach((function(n){n[e]&&n[e].apply(n,t)})),n)&&(r=$.props)[e].apply(r,t)}function se(){var e=$.props.aria;if(e.content){var t="aria-"+e.content,n=z.id;u($.props.triggerTarget||o).forEach((function(e){var r=e.getAttribute(t);if($.state.isVisible)e.setAttribute(t,r?r+" "+n:n);else{var o=r&&r.replace(n,"").trim();o?e.setAttribute(t,o):e.removeAttribute(t)}}))}}function ue(){!K&&$.props.aria.expanded&&u($.props.triggerTarget||o).forEach((function(e){$.props.interactive?e.setAttribute("aria-expanded",$.state.isVisible&&e===te()?"true":"false"):e.removeAttribute("aria-expanded")}))}function ce(){ne().removeEventListener("mousemove",W),H=H.filter((function(e){return e!==W}))}function pe(e){if(!x.isTouch||!N&&"mousedown"!==e.type){var t=e.composedPath&&e.composedPath()[0]||e.target;if(!$.props.interactive||!O(z,t)){if(u($.props.triggerTarget||o).some((function(e){return O(e,t)}))){if(x.isTouch)return;if($.state.isVisible&&$.props.trigger.indexOf("click")>=0)return}else ae("onClickOutside",[$,e]);!0===$.props.hideOnClick&&($.clearDelayTimeouts(),$.hide(),I=!0,setTimeout((function(){I=!1})),$.state.isMounted||ve())}}}function fe(){N=!0}function le(){N=!1}function de(){var e=ne();e.addEventListener("mousedown",pe,!0),e.addEventListener("touchend",pe,t),e.addEventListener("touchstart",le,t),e.addEventListener("touchmove",fe,t)}function ve(){var e=ne();e.removeEventListener("mousedown",pe,!0),e.removeEventListener("touchend",pe,t),e.removeEventListener("touchstart",le,t),e.removeEventListener("touchmove",fe,t)}function me(e,t){var n=re().box;function r(e){e.target===n&&(E(n,"remove",r),t())}if(0===e)return t();E(n,"remove",T),E(n,"add",r),T=r}function ge(e,t,n){void 0===n&&(n=!1),u($.props.triggerTarget||o).forEach((function(r){r.addEventListener(e,t,n),F.push({node:r,eventType:e,handler:t,options:n})}))}function he(){var e;Z()&&(ge("touchstart",ye,{passive:!0}),ge("touchend",Ee,{passive:!0})),(e=$.props.trigger,e.split(/\s+/).filter(Boolean)).forEach((function(e){if("manual"!==e)switch(ge(e,ye),e){case"mouseenter":ge("mouseleave",Ee);break;case"focus":ge(D?"focusout":"blur",Oe);break;case"focusin":ge("focusout",Oe)}}))}function be(){F.forEach((function(e){var t=e.node,n=e.eventType,r=e.handler,o=e.options;t.removeEventListener(n,r,o)})),F=[]}function ye(e){var t,n=!1;if($.state.isEnabled&&!xe(e)&&!I){var r="focus"===(null==(t=C)?void 0:t.type);C=e,L=e.currentTarget,ue(),!$.state.isVisible&&m(e)&&H.forEach((function(t){return t(e)})),"click"===e.type&&($.props.trigger.indexOf("mouseenter")<0||V)&&!1!==$.props.hideOnClick&&$.state.isVisible?n=!0:Le(e),"click"===e.type&&(V=!n),n&&!r&&De(e)}}function we(e){var t=e.target,n=te().contains(t)||z.contains(t);"mousemove"===e.type&&n||function(e,t){var n=t.clientX,r=t.clientY;return e.every((function(e){var t=e.popperRect,o=e.popperState,i=e.props.interactiveBorder,a=p(o.placement),s=o.modifiersData.offset;if(!s)return!0;var u="bottom"===a?s.top.y:0,c="top"===a?s.bottom.y:0,f="right"===a?s.left.x:0,l="left"===a?s.right.x:0,d=t.top-r+u>i,v=r-t.bottom-c>i,m=t.left-n+f>i,g=n-t.right-l>i;return d||v||m||g}))}(Ae().concat(z).map((function(e){var t,n=null==(t=e._tippy.popperInstance)?void 0:t.state;return n?{popperRect:e.getBoundingClientRect(),popperState:n,props:M}:null})).filter(Boolean),e)&&(ce(),De(e))}function Ee(e){xe(e)||$.props.trigger.indexOf("click")>=0&&V||($.props.interactive?$.hideWithInteractivity(e):De(e))}function Oe(e){$.props.trigger.indexOf("focusin")<0&&e.target!==te()||$.props.interactive&&e.relatedTarget&&z.contains(e.relatedTarget)||De(e)}function xe(e){return!!x.isTouch&&Z()!==e.type.indexOf("touch")>=0}function Ce(){Te();var t=$.props,n=t.popperOptions,r=t.placement,i=t.offset,a=t.getReferenceClientRect,s=t.moveTransition,u=ee()?S(z).arrow:null,c=a?{getBoundingClientRect:a,contextElement:a.contextElement||te()}:o,p=[{name:"offset",options:{offset:i}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5}},{name:"computeStyles",options:{adaptive:!s}},{name:"$$tippy",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:function(e){var t=e.state;if(ee()){var n=re().box;["placement","reference-hidden","escaped"].forEach((function(e){"placement"===e?n.setAttribute("data-placement",t.placement):t.attributes.popper["data-popper-"+e]?n.setAttribute("data-"+e,""):n.removeAttribute("data-"+e)})),t.attributes.popper={}}}}];ee()&&u&&p.push({name:"arrow",options:{element:u,padding:3}}),p.push.apply(p,(null==n?void 0:n.modifiers)||[]),$.popperInstance=e.createPopper(c,z,Object.assign({},n,{placement:r,onFirstUpdate:A,modifiers:p}))}function Te(){$.popperInstance&&($.popperInstance.destroy(),$.popperInstance=null)}function Ae(){return f(z.querySelectorAll("[data-tippy-root]"))}function Le(e){$.clearDelayTimeouts(),e&&ae("onTrigger",[$,e]),de();var t=oe(!0),n=Q(),r=n[0],o=n[1];x.isTouch&&"hold"===r&&o&&(t=o),t?v=setTimeout((function(){$.show()}),t):$.show()}function De(e){if($.clearDelayTimeouts(),ae("onUntrigger",[$,e]),$.state.isVisible){if(!($.props.trigger.indexOf("mouseenter")>=0&&$.props.trigger.indexOf("click")>=0&&["mouseleave","mousemove"].indexOf(e.type)>=0&&V)){var t=oe(!1);t?g=setTimeout((function(){$.state.isVisible&&$.hide()}),t):h=requestAnimationFrame((function(){$.hide()}))}}else ve()}}function F(e,n){void 0===n&&(n={});var r=R.plugins.concat(n.plugins||[]);document.addEventListener("touchstart",T,t),window.addEventListener("blur",L);var o=Object.assign({},n,{plugins:r}),i=h(e).reduce((function(e,t){var n=t&&_(t,o);return n&&e.push(n),e}),[]);return v(e)?i[0]:i}F.defaultProps=R,F.setDefaultProps=function(e){Object.keys(e).forEach((function(t){R[t]=e[t]}))},F.currentInput=x;var W=Object.assign({},e.applyStyles,{effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow)}}),X={mouseover:"mouseenter",focusin:"focus",click:"click"};var Y={name:"animateFill",defaultValue:!1,fn:function(e){var t;if(null==(t=e.props.render)||!t.$$tippy)return{};var n=S(e.popper),r=n.box,o=n.content,i=e.props.animateFill?function(){var e=d();return e.className="tippy-backdrop",y([e],"hidden"),e}():null;return{onCreate:function(){i&&(r.insertBefore(i,r.firstElementChild),r.setAttribute("data-animatefill",""),r.style.overflow="hidden",e.setProps({arrow:!1,animation:"shift-away"}))},onMount:function(){if(i){var e=r.style.transitionDuration,t=Number(e.replace("ms",""));o.style.transitionDelay=Math.round(t/10)+"ms",i.style.transitionDuration=e,y([i],"visible")}},onShow:function(){i&&(i.style.transitionDuration="0ms")},onHide:function(){i&&y([i],"hidden")}}}};var $={clientX:0,clientY:0},q=[];function z(e){var t=e.clientX,n=e.clientY;$={clientX:t,clientY:n}}var J={name:"followCursor",defaultValue:!1,fn:function(e){var t=e.reference,n=w(e.props.triggerTarget||t),r=!1,o=!1,i=!0,a=e.props;function s(){return"initial"===e.props.followCursor&&e.state.isVisible}function u(){n.addEventListener("mousemove",f)}function c(){n.removeEventListener("mousemove",f)}function p(){r=!0,e.setProps({getReferenceClientRect:null}),r=!1}function f(n){var r=!n.target||t.contains(n.target),o=e.props.followCursor,i=n.clientX,a=n.clientY,s=t.getBoundingClientRect(),u=i-s.left,c=a-s.top;!r&&e.props.interactive||e.setProps({getReferenceClientRect:function(){var e=t.getBoundingClientRect(),n=i,r=a;"initial"===o&&(n=e.left+u,r=e.top+c);var s="horizontal"===o?e.top:r,p="vertical"===o?e.right:n,f="horizontal"===o?e.bottom:r,l="vertical"===o?e.left:n;return{width:p-l,height:f-s,top:s,right:p,bottom:f,left:l}}})}function l(){e.props.followCursor&&(q.push({instance:e,doc:n}),function(e){e.addEventListener("mousemove",z)}(n))}function d(){0===(q=q.filter((function(t){return t.instance!==e}))).filter((function(e){return e.doc===n})).length&&function(e){e.removeEventListener("mousemove",z)}(n)}return{onCreate:l,onDestroy:d,onBeforeUpdate:function(){a=e.props},onAfterUpdate:function(t,n){var i=n.followCursor;r||void 0!==i&&a.followCursor!==i&&(d(),i?(l(),!e.state.isMounted||o||s()||u()):(c(),p()))},onMount:function(){e.props.followCursor&&!o&&(i&&(f($),i=!1),s()||u())},onTrigger:function(e,t){m(t)&&($={clientX:t.clientX,clientY:t.clientY}),o="focus"===t.type},onHidden:function(){e.props.followCursor&&(p(),c(),i=!0)}}}};var G={name:"inlinePositioning",defaultValue:!1,fn:function(e){var t,n=e.reference;var r=-1,o=!1,i=[],a={name:"tippyInlinePositioning",enabled:!0,phase:"afterWrite",fn:function(o){var a=o.state;e.props.inlinePositioning&&(-1!==i.indexOf(a.placement)&&(i=[]),t!==a.placement&&-1===i.indexOf(a.placement)&&(i.push(a.placement),e.setProps({getReferenceClientRect:function(){return function(e){return function(e,t,n,r){if(n.length<2||null===e)return t;if(2===n.length&&r>=0&&n[0].left>n[1].right)return n[r]||t;switch(e){case"top":case"bottom":var o=n[0],i=n[n.length-1],a="top"===e,s=o.top,u=i.bottom,c=a?o.left:i.left,p=a?o.right:i.right;return{top:s,bottom:u,left:c,right:p,width:p-c,height:u-s};case"left":case"right":var f=Math.min.apply(Math,n.map((function(e){return e.left}))),l=Math.max.apply(Math,n.map((function(e){return e.right}))),d=n.filter((function(t){return"left"===e?t.left===f:t.right===l})),v=d[0].top,m=d[d.length-1].bottom;return{top:v,bottom:m,left:f,right:l,width:l-f,height:m-v};default:return t}}(p(e),n.getBoundingClientRect(),f(n.getClientRects()),r)}(a.placement)}})),t=a.placement)}};function s(){var t;o||(t=function(e,t){var n;return{popperOptions:Object.assign({},e.popperOptions,{modifiers:[].concat(((null==(n=e.popperOptions)?void 0:n.modifiers)||[]).filter((function(e){return e.name!==t.name})),[t])})}}(e.props,a),o=!0,e.setProps(t),o=!1)}return{onCreate:s,onAfterUpdate:s,onTrigger:function(t,n){if(m(n)){var o=f(e.reference.getClientRects()),i=o.find((function(e){return e.left-2<=n.clientX&&e.right+2>=n.clientX&&e.top-2<=n.clientY&&e.bottom+2>=n.clientY})),a=o.indexOf(i);r=a>-1?a:r}},onHidden:function(){r=-1}}}};var K={name:"sticky",defaultValue:!1,fn:function(e){var t=e.reference,n=e.popper;function r(t){return!0===e.props.sticky||e.props.sticky===t}var o=null,i=null;function a(){var s=r("reference")?(e.popperInstance?e.popperInstance.state.elements.reference:t).getBoundingClientRect():null,u=r("popper")?n.getBoundingClientRect():null;(s&&Q(o,s)||u&&Q(i,u))&&e.popperInstance&&e.popperInstance.update(),o=s,i=u,e.state.isMounted&&requestAnimationFrame(a)}return{onMount:function(){e.props.sticky&&a()}}}};function Q(e,t){return!e||!t||(e.top!==t.top||e.right!==t.right||e.bottom!==t.bottom||e.left!==t.left)}return F.setDefaultProps({plugins:[Y,J,G,K],render:N}),F.createSingleton=function(e,t){var n;void 0===t&&(t={});var r,o=e,i=[],a=[],c=t.overrides,p=[],f=!1;function l(){a=o.map((function(e){return u(e.props.triggerTarget||e.reference)})).reduce((function(e,t){return e.concat(t)}),[])}function v(){i=o.map((function(e){return e.reference}))}function m(e){o.forEach((function(t){e?t.enable():t.disable()}))}function g(e){return o.map((function(t){var n=t.setProps;return t.setProps=function(o){n(o),t.reference===r&&e.setProps(o)},function(){t.setProps=n}}))}function h(e,t){var n=a.indexOf(t);if(t!==r){r=t;var s=(c||[]).concat("content").reduce((function(e,t){return e[t]=o[n].props[t],e}),{});e.setProps(Object.assign({},s,{getReferenceClientRect:"function"==typeof s.getReferenceClientRect?s.getReferenceClientRect:function(){var e;return null==(e=i[n])?void 0:e.getBoundingClientRect()}}))}}m(!1),v(),l();var b={fn:function(){return{onDestroy:function(){m(!0)},onHidden:function(){r=null},onClickOutside:function(e){e.props.showOnCreate&&!f&&(f=!0,r=null)},onShow:function(e){e.props.showOnCreate&&!f&&(f=!0,h(e,i[0]))},onTrigger:function(e,t){h(e,t.currentTarget)}}}},y=F(d(),Object.assign({},s(t,["overrides"]),{plugins:[b].concat(t.plugins||[]),triggerTarget:a,popperOptions:Object.assign({},t.popperOptions,{modifiers:[].concat((null==(n=t.popperOptions)?void 0:n.modifiers)||[],[W])})})),w=y.show;y.show=function(e){if(w(),!r&&null==e)return h(y,i[0]);if(!r||null!=e){if("number"==typeof e)return i[e]&&h(y,i[e]);if(o.indexOf(e)>=0){var t=e.reference;return h(y,t)}return i.indexOf(e)>=0?h(y,e):void 0}},y.showNext=function(){var e=i[0];if(!r)return y.show(0);var t=i.indexOf(r);y.show(i[t+1]||e)},y.showPrevious=function(){var e=i[i.length-1];if(!r)return y.show(e);var t=i.indexOf(r),n=i[t-1]||e;y.show(n)};var E=y.setProps;return y.setProps=function(e){c=e.overrides||c,E(e)},y.setInstances=function(e){m(!0),p.forEach((function(e){return e()})),o=e,m(!1),v(),l(),p=g(y),y.setProps({triggerTarget:a})},p=g(y),y},F.delegate=function(e,n){var r=[],o=[],i=!1,a=n.target,c=s(n,["target"]),p=Object.assign({},c,{trigger:"manual",touch:!1}),f=Object.assign({touch:R.touch},c,{showOnCreate:!0}),l=F(e,p);function d(e){if(e.target&&!i){var t=e.target.closest(a);if(t){var r=t.getAttribute("data-tippy-trigger")||n.trigger||R.trigger;if(!t._tippy&&!("touchstart"===e.type&&"boolean"==typeof f.touch||"touchstart"!==e.type&&r.indexOf(X[e.type])<0)){var s=F(t,f);s&&(o=o.concat(s))}}}}function v(e,t,n,o){void 0===o&&(o=!1),e.addEventListener(t,n,o),r.push({node:e,eventType:t,handler:n,options:o})}return u(l).forEach((function(e){var n=e.destroy,a=e.enable,s=e.disable;e.destroy=function(e){void 0===e&&(e=!0),e&&o.forEach((function(e){e.destroy()})),o=[],r.forEach((function(e){var t=e.node,n=e.eventType,r=e.handler,o=e.options;t.removeEventListener(n,r,o)})),r=[],n()},e.enable=function(){a(),o.forEach((function(e){return e.enable()})),i=!1},e.disable=function(){s(),o.forEach((function(e){return e.disable()})),i=!0},function(e){var n=e.reference;v(n,"touchstart",d,t),v(n,"mouseover",d),v(n,"focusin",d),v(n,"click",d)}(e)})),l},F.hideAll=function(e){var t=void 0===e?{}:e,n=t.exclude,r=t.duration;U.forEach((function(e){var t=!1;if(n&&(t=g(n)?e.reference===n:e.popper===n.popper),!t){var o=e.props.duration;e.setProps({duration:r}),e.hide(),e.state.isDestroyed||e.setProps({duration:o})}}))},F.roundArrow='',F})); -

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%0D{s{VVb$i($ZVvFkL{j=(l$P6j*{-?z1%LDl# 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%0D$bDT$xN{nG`f2}Hn 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