From 6c6fbacd7e0d9b2e1c72d725ff2c6f8a9f1948ab Mon Sep 17 00:00:00 2001 From: Tapio Schneider Date: Sat, 11 Jul 2026 22:37:10 +0000 Subject: [PATCH 1/7] Tests and benchmarks: Add unit tests for interpolation schemes & Layer-2 API contract, and advisory GPU/CPU benchmark ratchet --- .buildkite/pipeline.yml | 13 + .../nvidia_a100_sxm4_40gb.txt | 17 + perf/benchmark_ratchet.jl | 195 +++++++++++ test/Project.toml | 2 +- ...sky_with_aerosols_dyamond_gpu_benchmark.jl | 176 ++++++++-- test/all_sky_with_aerosols_utils.jl | 18 ++ test/api_contract.jl | 306 ++++++++++++++++++ test/clear_sky_dyamond_gpu_benchmark.jl | 172 ++++++++-- test/cloudy_sky_dyamond_gpu_benchmark.jl | 154 +++++++-- test/interpolation_schemes.jl | 279 ++++++++++++++++ test/lookup_serialization.jl | 23 ++ test/runtests.jl | 12 +- test/standalone_spectral.jl | 24 ++ 13 files changed, 1315 insertions(+), 76 deletions(-) create mode 100644 perf/benchmark_baselines/nvidia_a100_sxm4_40gb.txt create mode 100644 perf/benchmark_ratchet.jl create mode 100644 test/api_contract.jl create mode 100644 test/interpolation_schemes.jl diff --git a/.buildkite/pipeline.yml b/.buildkite/pipeline.yml index c72f1c734..bcafae6d0 100644 --- a/.buildkite/pipeline.yml +++ b/.buildkite/pipeline.yml @@ -126,3 +126,16 @@ steps: agents: slurm_ntasks: 1 slurm_gpus: 1 + + # Advisory wall-time ratchet against committed per-GPU baselines + # (perf/benchmark_baselines/). Soft-fail: flags regressions without + # blocking merges; see the header of perf/benchmark_ratchet.jl. + - label: "GPU DYAMOND benchmark ratchet" + command: "julia --color=yes --project=test perf/benchmark_ratchet.jl" + soft_fail: true + artifact_paths: "perf/benchmark_baselines/*" + env: + CLIMACOMMS_DEVICE: "CUDA" + agents: + slurm_ntasks: 1 + slurm_gpus: 1 diff --git a/perf/benchmark_baselines/nvidia_a100_sxm4_40gb.txt b/perf/benchmark_baselines/nvidia_a100_sxm4_40gb.txt new file mode 100644 index 000000000..96f3cdd44 --- /dev/null +++ b/perf/benchmark_baselines/nvidia_a100_sxm4_40gb.txt @@ -0,0 +1,17 @@ +# RRTMGP DYAMOND GPU benchmark measurement (minimum ns) +# device: NVIDIA A100-SXM4-40GB +# julia: 1.12.6 +# recorded: local run +# regenerate with RRTMGP_BENCH_WRITE_BASELINE=1 +all_sky_lw_Float32 9.76149447e8 +all_sky_lw_Float64 1.331256434e9 +all_sky_sw_Float32 8.43344196e8 +all_sky_sw_Float64 1.097443624e9 +all_sky_with_aerosols_lw_Float32 1.05467407e9 +all_sky_with_aerosols_lw_Float64 1.412722056e9 +all_sky_with_aerosols_sw_Float32 8.94524846e8 +all_sky_with_aerosols_sw_Float64 1.173976877e9 +clear_sky_lw_Float32 7.7122294e8 +clear_sky_lw_Float64 1.049297832e9 +clear_sky_sw_Float32 4.64954059e8 +clear_sky_sw_Float64 6.53718113e8 diff --git a/perf/benchmark_ratchet.jl b/perf/benchmark_ratchet.jl new file mode 100644 index 000000000..ac935c6da --- /dev/null +++ b/perf/benchmark_ratchet.jl @@ -0,0 +1,195 @@ +#= +GPU benchmark ratchet for the DYAMOND-scale solver kernels. + +Measures the minimum wall time of `solve_lw!`/`solve_sw!` at DYAMOND resolution +for the three production configurations (clear sky, all sky, all sky with +aerosols; two-stream longwave and shortwave) in both precisions, and compares +each against a recorded per-GPU baseline: + + perf/benchmark_baselines/.txt + +A measurement slower than baseline × (1 + tolerance) fails its `@test`. The +tolerance (default 20%, chosen for shared-cluster timing noise on the +Buildkite P100s) can be overridden with the `RRTMGP_BENCH_TOL_PCT` environment +variable. + +Baselines: +- If no baseline file exists for this GPU, the script records one and passes; + commit the file (CI uploads it as a Buildkite artifact) to arm the ratchet. +- To re-baseline intentionally (e.g. after an accepted performance change), + run with `RRTMGP_BENCH_WRITE_BASELINE=1` and commit the updated file. + +Usage (needs a CUDA device): + + CLIMACOMMS_DEVICE=CUDA julia --project=test perf/benchmark_ratchet.jl + +This lane is advisory (soft-fail in Buildkite): it flags regressions loudly +without blocking merges, per the CliMA convention that `perf/` is not a gate. +=# + +using Test +using Statistics +using Printf +import ClimaComms +@static pkgversion(ClimaComms) >= v"0.6" && ClimaComms.@import_required_backends + +const context = ClimaComms.context() +const device = ClimaComms.device(context) + +if !(device isa ClimaComms.CUDADevice) + @info "benchmark_ratchet.jl requires a CUDA device; nothing to do." device + exit(0) +end + +using CUDA + +# The high-resolution DYAMOND target column count used by the benchmark scripts +# (30² horizontal elements × 6 panels × 4² quadrature points across 64 levels / 63 layers). +dyamond_ncol(; helems = 30, nq = 4) = Int(helems * helems * 6 * nq * nq) +const dyamond_nlay = 63 + +# Pull in benchmark_clear_sky / benchmark_all_sky / +# benchmark_all_sky_with_aerosols; their sweep loops are guarded behind +# `PROGRAM_FILE == @__FILE__`, so the includes only define functions. +const test_dir = joinpath(dirname(@__DIR__), "test") +include(joinpath(test_dir, "clear_sky_dyamond_gpu_benchmark.jl")) +include(joinpath(test_dir, "cloudy_sky_dyamond_gpu_benchmark.jl")) +include(joinpath(test_dir, "all_sky_with_aerosols_dyamond_gpu_benchmark.jl")) + +# One measured case: production two-stream solvers across identical uniform DYAMOND grids. +# Each `run` returns (trial_lw, trial_sw) from BenchmarkTools. +cases = [ + ( + key = "clear_sky", + run = FT -> benchmark_clear_sky( + context, + TwoStreamLWRTE, + TwoStreamSWRTE, + VmrGM, + FT; + ncol = dyamond_ncol(), + nlay = dyamond_nlay, + ), + ), + ( + key = "all_sky", + run = FT -> benchmark_all_sky( + context, + TwoStreamLWRTE, + TwoStreamSWRTE, + FT; + ncol = dyamond_ncol(), + nlay = dyamond_nlay, + cldfrac = FT(1), + ), + ), + ( + key = "all_sky_with_aerosols", + run = FT -> benchmark_all_sky_with_aerosols( + context, + TwoStreamLWRTE, + TwoStreamSWRTE, + FT; + ncol = dyamond_ncol(), + nlay = dyamond_nlay, + ), + ), +] + +device_key() = + replace(lowercase(CUDA.name(CUDA.device())), r"[^a-z0-9]+" => "_") + +baseline_path(key) = + joinpath(@__DIR__, "benchmark_baselines", string(key, ".txt")) + +# Baseline file format: comment lines start with '#'; data lines are two +# whitespace-separated tokens, "__ ". The key is a +# single token (no embedded spaces) so the round-trip is unambiguous. +function read_baseline(path) + baseline = Dict{String, Float64}() + isfile(path) || return nothing + for line in eachline(path) + line = strip(line) + (isempty(line) || startswith(line, "#")) && continue + name, ns = split(line) + baseline[name] = parse(Float64, ns) + end + return baseline +end + +function write_baseline(path, results; kind = "baseline") + mkpath(dirname(path)) + open(path, "w") do io + println(io, "# RRTMGP DYAMOND GPU benchmark $kind (minimum ns)") + println(io, "# device: $(CUDA.name(CUDA.device()))") + println(io, "# julia: $(VERSION)") + println(io, "# recorded: ", get(ENV, "BUILDKITE_BUILD_URL", "local run")) + println(io, "# regenerate with RRTMGP_BENCH_WRITE_BASELINE=1") + for (name, ns) in sort(collect(results); by = first) + println(io, "$name $ns") + end + end + return path +end + +const tol = parse(Float64, get(ENV, "RRTMGP_BENCH_TOL_PCT", "20")) / 100 +const write_mode = get(ENV, "RRTMGP_BENCH_WRITE_BASELINE", "0") == "1" +const path = baseline_path(device_key()) +const baseline = read_baseline(path) + +results = Dict{String, Float64}() +for FT in (Float32, Float64), case in cases + @info "benchmark_ratchet: running $(case.key) ($FT) at DYAMOND resolution" + trial_lw, trial_sw = case.run(FT) + # `minimum` is the recommended timing statistic: it is the most resilient to + # GC/scheduler noise on a shared cluster (CliMA DeveloperGuides, + # performance/allocation_debugging.md §5), which also makes the ratchet + # threshold reliable. + results[string(case.key, "_lw_", FT)] = minimum(trial_lw).time # ns + results[string(case.key, "_sw_", FT)] = minimum(trial_sw).time # ns +end + +# Always persist the measured minima as an artifact, whatever the mode. +const measured_path = + joinpath(@__DIR__, "benchmark_baselines", "measured_$(device_key()).txt") +write_baseline(measured_path, results; kind = "measurement") + +println("\ndevice: $(CUDA.name(CUDA.device())) (key: $(device_key()))") +println("tolerance: +$(round(Int, 100 * tol))% over baseline\n") +@printf( + "%-40s %14s %14s %9s\n", + "case", + "minimum [ms]", + "baseline [ms]", + "ratio" +) +for (name, ns) in sort(collect(results); by = first) + base = isnothing(baseline) ? missing : get(baseline, name, missing) + @printf( + "%-40s %14.3f %14s %9s\n", + name, + ns / 1e6, + ismissing(base) ? "—" : @sprintf("%.3f", base / 1e6), + ismissing(base) ? "—" : @sprintf("%.2fx", ns / base), + ) +end + +if write_mode || isnothing(baseline) + write_baseline(path, results) + action = write_mode ? "rewrote" : "no baseline found for this GPU; recorded" + @info "benchmark_ratchet: $action $path — commit it to arm the ratchet." + println("\n--- baseline file contents ---") + println(read(path, String)) +else + @testset "GPU benchmark ratchet ($(device_key()))" begin + for (name, ns) in sort(collect(results); by = first) + base = get(baseline, name, missing) + if ismissing(base) + @warn "no baseline entry for $name; rerun with " * + "RRTMGP_BENCH_WRITE_BASELINE=1 to record it" + continue + end + @test ns <= base * (1 + tol) + end + end +end diff --git a/test/Project.toml b/test/Project.toml index 861d1b33a..aee877163 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -8,7 +8,6 @@ ClimaComms = "3a4d1b5c-c61d-41fd-a00a-5873ba7a1b0d" ClimaParams = "5c42b081-d73a-476f-9059-fd94b934656c" Compat = "34da2185-b29b-5c13-b0c7-acf172513d20" Coverage = "a2441757-f6aa-5fb2-8edb-039e3f45d037" -DocStringExtensions = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" JET = "c3a54625-cd67-489e-a8e7-0a5a0ff4e31b" NCDatasets = "85f8d34a-cbdd-5861-8df4-14fed0d494ab" Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" @@ -16,6 +15,7 @@ Profile = "9abbd945-dff8-562f-b5e8-e1ebf5ef1b79" ProfileCanvas = "efd6af41-a80b-495e-886c-e51b0c7d77a3" RRTMGP = "a01a1ee8-cea4-48fc-987c-fc7878d79da1" Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" +Serialization = "9e88b42a-f829-5b0c-bbe9-9e923198166b" Suppressor = "fd094767-a336-5f1f-9728-57cf17d0bbfb" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" diff --git a/test/all_sky_with_aerosols_dyamond_gpu_benchmark.jl b/test/all_sky_with_aerosols_dyamond_gpu_benchmark.jl index 302f68c88..d5b13fb61 100644 --- a/test/all_sky_with_aerosols_dyamond_gpu_benchmark.jl +++ b/test/all_sky_with_aerosols_dyamond_gpu_benchmark.jl @@ -28,12 +28,99 @@ using RRTMGP.ArtifactPaths include("reference_files.jl") include("read_all_sky_with_aerosols.jl") +if !@isdefined(_resample_benchmark_as) + function _resample_benchmark_as( + context, + as::AtmosphericStates.AtmosphericState, + target_nlay, + ::Type{FT}, + ) where {FT} + nlay_orig, _ = AtmosphericStates.get_dims(as) + nlay_orig == target_nlay && return as + device = ClimaComms.device(context) + DA = ClimaComms.array_type(device) + nlev_orig = nlay_orig + 1 + target_nlev = target_nlay + 1 + + lay_idx = [ + clamp(round(Int, k * nlay_orig / target_nlay), 1, nlay_orig) for + k in 1:target_nlay + ] + lev_idx = [ + clamp(round(Int, l * nlev_orig / target_nlev), 1, nlev_orig) for + l in 1:target_nlev + ] + + new_layerdata = DA{FT}(Array(as.layerdata)[:, lay_idx, :]) + new_p_lev = DA{FT}(Array(as.p_lev)[lev_idx, :]) + new_t_lev = DA{FT}(Array(as.t_lev)[lev_idx, :]) + + vmr = as.vmr + new_vmr = if vmr isa VolumeMixingRatios.VmrGM + VolumeMixingRatios.VmrGM( + DA{FT}(Array(vmr.vmr_h2o)[lay_idx, :]), + DA{FT}(Array(vmr.vmr_o3)[lay_idx, :]), + vmr.vmr, + ) + elseif vmr isa VolumeMixingRatios.Vmr + VolumeMixingRatios.Vmr(DA{FT}(Array(vmr.vmr)[:, lay_idx, :])) + else + vmr + end + + cld = as.cloud_state + new_cld = if cld !== nothing + AtmosphericStates.CloudState( + DA{FT}(Array(cld.cld_r_eff_liq)[lay_idx, :]), + DA{FT}(Array(cld.cld_r_eff_ice)[lay_idx, :]), + DA{FT}(Array(cld.cld_path_liq)[lay_idx, :]), + DA{FT}(Array(cld.cld_path_ice)[lay_idx, :]), + DA{FT}(Array(cld.cld_frac)[lay_idx, :]), + cld.cld_cover_sw, + cld.cld_cover_lw, + DA{Bool}(Array(cld.mask_lw)[lay_idx, :]), + DA{Bool}(Array(cld.mask_sw)[lay_idx, :]), + cld.mask_type, + cld.ice_rgh, + ) + else + nothing + end + + aer = as.aerosol_state + new_aer = if aer !== nothing + AtmosphericStates.AerosolState( + aer.aod_sw_ext, + aer.aod_sw_sca, + DA{Bool}(Array(aer.aero_mask)[lay_idx, :]), + DA{FT}(Array(aer.aero_size)[:, lay_idx, :]), + DA{FT}(Array(aer.aero_mass)[:, lay_idx, :]), + ) + else + nothing + end + + return AtmosphericStates.AtmosphericState( + as.lon, + as.lat, + new_layerdata, + new_p_lev, + new_t_lev, + as.t_sfc, + new_vmr, + new_cld, + new_aer, + ) + end +end + function benchmark_all_sky_with_aerosols( context, ::Type{SLVLW}, ::Type{SLVSW}, ::Type{FT}; ncol = 128,# repeats col#1 ncol times per RRTMGP example + nlay = nothing, cldfrac = FT(1), ) where {FT <: AbstractFloat, SLVLW, SLVSW} overrides = @@ -105,7 +192,9 @@ function benchmark_all_sky_with_aerosols( param_set, ) close(ds_in) - + if nlay !== nothing + as = _resample_benchmark_as(context, as, nlay, FT) + end nlay, _ = AtmosphericStates.get_dims(as) nlev = nlay + 1 grid_params = RRTMGPGridParams(FT; context, domain_nlay = nlay, ncol) @@ -132,14 +221,25 @@ function benchmark_all_sky_with_aerosols( lookup_lw_aero, metric_scaling, ) - trial_lw = @benchmark CUDA.@sync solve_lw!( - $slv_lw, - $as, - $lookup_lw, - $lookup_lw_cld, - $lookup_lw_aero, - $metric_scaling, - ) + trial_lw = if device isa ClimaComms.CUDADevice + @benchmark CUDA.@sync solve_lw!( + $slv_lw, + $as, + $lookup_lw, + $lookup_lw_cld, + $lookup_lw_aero, + $metric_scaling, + ) + else + @benchmark solve_lw!( + $slv_lw, + $as, + $lookup_lw, + $lookup_lw_cld, + $lookup_lw_aero, + $metric_scaling, + ) + end solve_sw!( slv_sw, @@ -149,14 +249,25 @@ function benchmark_all_sky_with_aerosols( lookup_sw_aero, metric_scaling, ) - trial_sw = @benchmark CUDA.@sync solve_sw!( - $slv_sw, - $as, - $lookup_sw, - $lookup_sw_cld, - $lookup_sw_aero, - $metric_scaling, - ) + trial_sw = if device isa ClimaComms.CUDADevice + @benchmark CUDA.@sync solve_sw!( + $slv_sw, + $as, + $lookup_sw, + $lookup_sw_cld, + $lookup_sw_aero, + $metric_scaling, + ) + else + @benchmark solve_sw!( + $slv_sw, + $as, + $lookup_sw, + $lookup_sw_cld, + $lookup_sw_aero, + $metric_scaling, + ) + end return trial_lw, trial_sw end @@ -218,17 +329,22 @@ function generate_gpu_all_sky_with_aerosols_benchmarks( return nothing end -for FT in (Float32, Float64) - generate_gpu_all_sky_with_aerosols_benchmarks( - FT, - 4, - NoScatLWRTE, - TwoStreamSWRTE, - ) - generate_gpu_all_sky_with_aerosols_benchmarks( - FT, - 4, - TwoStreamLWRTE, - TwoStreamSWRTE, - ) +# Run the resolution sweep only when executed as a script; +# perf/benchmark_ratchet.jl includes this file for +# `benchmark_all_sky_with_aerosols`. +if abspath(PROGRAM_FILE) == @__FILE__ + for FT in (Float32, Float64) + generate_gpu_all_sky_with_aerosols_benchmarks( + FT, + 4, + NoScatLWRTE, + TwoStreamSWRTE, + ) + generate_gpu_all_sky_with_aerosols_benchmarks( + FT, + 4, + TwoStreamLWRTE, + TwoStreamSWRTE, + ) + end end diff --git a/test/all_sky_with_aerosols_utils.jl b/test/all_sky_with_aerosols_utils.jl index 60f46e728..b777d4b50 100644 --- a/test/all_sky_with_aerosols_utils.jl +++ b/test/all_sky_with_aerosols_utils.jl @@ -184,6 +184,24 @@ function all_sky_with_aerosols( # h2o/o3 are layer fields (2D); well-mixed gases are global means. @test ndims(RRTMGP.volume_mixing_ratio(solver, "h2o")) == 2 + # Cloud radiative effect: the retained clear-sky diagnostics must differ + # from the all-sky fluxes — clouds reduce the outgoing longwave flux at + # the top of the atmosphere and increase the reflected shortwave flux. + olr_allsky = Array(RRTMGP.lw_flux_up(solver))[end, :] + olr_clear = Array(RRTMGP.clear_lw_flux_up(solver))[end, :] + @test all(olr_clear .>= olr_allsky) + @test maximum(olr_clear .- olr_allsky) > 0 + sw_up_allsky = Array(RRTMGP.sw_flux_up(solver))[end, :] + sw_up_clear = Array(RRTMGP.clear_sw_flux_up(solver))[end, :] + @test all(sw_up_allsky .>= sw_up_clear) + @test maximum(sw_up_allsky .- sw_up_clear) > 0 + @test maximum( + abs.( + Array(RRTMGP.clear_net_flux(solver)) .- + Array(RRTMGP.net_flux(solver)) + ), + ) > 0 + # Layer-2 update_fluxes! must stay allocation-free and type-stable on the # all-sky (spectral + clouds + aerosols) path too; the gray path is asserted # in test/standalone.jl. Single-threaded only: multi-threaded `@threaded` diff --git a/test/api_contract.jl b/test/api_contract.jl new file mode 100644 index 000000000..7c07368fa --- /dev/null +++ b/test/api_contract.jl @@ -0,0 +1,306 @@ +using Test +import ClimaComms +@static pkgversion(ClimaComms) >= v"0.6" && ClimaComms.@import_required_backends +import RRTMGP +import RRTMGP.VolumeMixingRatios: Vmr, VmrGM +import Serialization + +# Unit tests for the Layer-2 API contract: constructor validation, the +# informative getter-guard errors, input validation, boundary conditions, and +# the physical laws behind heating_rate and the deep-atmosphere flux scaling. + +# Small gray problem shared by these tests (the gray path needs no lookup +# tables, so every case here runs after a bare `using RRTMGP`). +function _gray_pieces(FT; nlay = 20, ncol = 4) + context = ClimaComms.context() + DA = ClimaComms.array_type(ClimaComms.device(context)) + gp = RRTMGP.RRTMGPGridParams(FT; context, domain_nlay = nlay, ncol) + params = RRTMGP.default_parameters(FT) + lat = DA{FT}(range(FT(-80), FT(80); length = ncol)) + as = RRTMGP.AtmosphericStates.setup_gray_as_pr_grid( + context, + nlay, + lat, + FT(1.0e5), + FT(9.0e3), + RRTMGP.AtmosphericStates.GrayOpticalThicknessOGorman2008(FT), + params, + DA, + ) + sfc_emis = fill!(DA{FT}(undef, 1, ncol), FT(1)) + cos_zen = fill!(DA{FT}(undef, ncol), FT(0.5)) + toa = fill!(DA{FT}(undef, ncol), FT(1361)) + alb_dir = fill!(DA{FT}(undef, 1, ncol), FT(0.2)) + alb_dif = fill!(DA{FT}(undef, 1, ncol), FT(0.2)) + bcs_sw = RRTMGP.BCs.SwBCs(cos_zen, toa, alb_dir, nothing, alb_dif) + return (; context, DA, gp, params, as, sfc_emis, bcs_sw) +end + +function _gray_solver(FT; nlay = 20, ncol = 4, inc_flux = nothing, kwargs...) + (; gp, params, as, sfc_emis, bcs_sw) = _gray_pieces(FT; nlay, ncol) + bcs_lw = RRTMGP.BCs.LwBCs(sfc_emis, inc_flux) + return RRTMGP.RRTMGPSolver( + gp, + RRTMGP.GrayRadiation(), + params, + bcs_lw, + bcs_sw, + as; + kwargs..., + ) +end + +@testset "RRTMGPSolver constructor validation" begin + (; gp, params, as, sfc_emis, bcs_sw) = _gray_pieces(Float64) + bcs_lw = RRTMGP.BCs.LwBCs(sfc_emis, nothing) + + # z-based interpolation/extrapolation without altitudes fails at + # construction (not with a MethodError mid-solve) + @test_throws "requires altitudes" RRTMGP.RRTMGPSolver( + gp, + RRTMGP.GrayRadiation(), + params, + bcs_lw, + bcs_sw, + as; + interpolation = RRTMGP.BestFit(), + ) + @test_throws "requires altitudes" RRTMGP.RRTMGPSolver( + gp, + RRTMGP.GrayRadiation(), + params, + bcs_lw, + bcs_sw, + as; + bottom_extrapolation = RRTMGP.HydrostaticBottom(), + ) + + # per-band fluxes are meaningless for a single-band (gray) atmosphere + @test_throws "not supported for GrayRadiation" RRTMGP.RRTMGPSolver( + gp, + RRTMGP.GrayRadiation(), + params, + bcs_lw, + bcs_sw, + as; + spectral_fluxes = true, + ) + + # ... and require two-stream optics for both bands. The guard fires before + # the lookup tables or atmospheric state are inspected, so a placeholder + # bundle and the gray state suffice (no NetCDF read). + placeholder = RRTMGP.LookupBundle(; nbnd_lw = 16, nbnd_sw = 14) + @test_throws "requires two-stream optics" RRTMGP.RRTMGPSolver( + gp, + RRTMGP.ClearSkyRadiation(false), + params, + bcs_lw, + bcs_sw, + as; + op_lw = RRTMGP.Optics.OneScalar(gp), + lookups = placeholder, + spectral_fluxes = true, + ) +end + +@testset "getter guards raise informative errors (gray solver)" begin + solver = _gray_solver(Float64) + + # optional workspaces that this solver was not built with + @test_throws "clear-sky diagnostic fluxes" RRTMGP.clear_net_flux(solver) + @test_throws "clear-sky diagnostic fluxes" RRTMGP.clear_lw_flux_up(solver) + @test_throws "clear-sky diagnostic fluxes" RRTMGP.clear_sw_flux_dn(solver) + @test_throws "spectral lookup tables are not present" RRTMGP.lw_band_bounds( + solver, + ) + @test_throws "spectral lookup tables are not present" RRTMGP.sw_band_bounds( + solver, + ) + @test_throws "aerosol lookup tables are not present" RRTMGP.aerosol_radius( + solver, + "dust1", + ) + @test_throws "aerosol lookup tables are not present" RRTMGP.aerosol_column_mass_density( + solver, + "dust1", + ) + @test_throws "spectral fluxes were not retained" RRTMGP.spectral_lw_flux_up( + solver, + ) + @test_throws "spectral fluxes were not retained" RRTMGP.spectral_sw_flux_dn( + solver, + ) + + # configuration getters on the same solver + @test RRTMGP.radiation_method(solver) isa RRTMGP.GrayRadiation + @test RRTMGP.optical_thickness_parameter(solver) isa + RRTMGP.AtmosphericStates.GrayOpticalThicknessOGorman2008 + @test RRTMGP.isothermal_boundary_layer(solver) == false + @test RRTMGP.top_of_atmosphere_lw_flux_dn(solver) === nothing + @test RRTMGP.top_of_atmosphere_diffuse_sw_flux_dn(solver) === nothing +end + +@testset "validate_inputs names the offending field" begin + # each case corrupts one input on a fresh solver and asserts the error + # message identifies it + cases = [ + ("level_pressure", s -> RRTMGP.level_pressure(s) .= -1), + ("level_temperature", s -> RRTMGP.level_temperature(s) .= NaN), + ("layer_pressure", s -> RRTMGP.layer_pressure(s) .= 0), + ("layer_temperature", s -> RRTMGP.layer_temperature(s) .= -5), + ("surface_temperature", s -> RRTMGP.surface_temperature(s) .= 0), + ("toa_flux", s -> RRTMGP.toa_flux(s) .= -1), + ("surface_emissivity", s -> RRTMGP.surface_emissivity(s) .= 2), + ( + "direct_sw_surface_albedo", + s -> RRTMGP.direct_sw_surface_albedo(s) .= 2, + ), + ( + "diffuse_sw_surface_albedo", + s -> RRTMGP.diffuse_sw_surface_albedo(s) .= -1, + ), + ] + for (name, corrupt!) in cases + solver = _gray_solver(Float64; nlay = 10, ncol = 2) + RRTMGP.validate_inputs(solver) # sane inputs pass + corrupt!(solver) + @test_throws name RRTMGP.validate_inputs(solver) + end +end + +@testset "_check_vmr rejects negative / non-finite mixing ratios" begin + vmr_gm = VmrGM(zeros(2, 2), zeros(2, 2), zeros(3)) + @test RRTMGP._check_vmr(vmr_gm) == true + vmr_gm.vmr_h2o[1] = -1 + @test_throws "vmr_h2o" RRTMGP._check_vmr(vmr_gm) + vmr_gm.vmr_h2o[1] = 0 + vmr_gm.vmr_o3[2] = NaN + @test_throws "vmr_o3" RRTMGP._check_vmr(vmr_gm) + + vmr = Vmr(zeros(3, 2, 2)) + @test RRTMGP._check_vmr(vmr) == true + vmr.vmr[1] = -1 + @test_throws "vmr" RRTMGP._check_vmr(vmr) + + @test RRTMGP._check_vmr(nothing) == true +end + +# Physical law: the downwelling longwave flux at the top level equals the +# prescribed incident flux (the LW top boundary condition); with no incident +# flux it is zero. Also pins the (ncol, ngpt) → physical-dim-first transpose +# contract of the TOA getters. +@testset "incident longwave flux boundary condition" begin + for FT in (Float32, Float64) + pieces = _gray_pieces(FT) + ncol = size(pieces.sfc_emis, 2) + + solver0 = _gray_solver(FT) + RRTMGP.update_fluxes!(solver0) + @test all(iszero, Array(RRTMGP.lw_flux_dn(solver0))[end, :]) + + inc = fill!(pieces.DA{FT}(undef, ncol, 1), FT(25)) + solver = _gray_solver(FT; inc_flux = inc) + toa_dn = RRTMGP.top_of_atmosphere_lw_flux_dn(solver) + @test size(toa_dn) == (1, ncol) + @test all(==(FT(25)), Array(toa_dn)) + + RRTMGP.update_fluxes!(solver) + @test all(Array(RRTMGP.lw_flux_dn(solver))[end, :] .≈ FT(25)) + # the incident flux warms the surface's incoming longwave radiation + @test all( + Array(RRTMGP.lw_flux_dn(solver))[1, :] .> + Array(RRTMGP.lw_flux_dn(solver0))[1, :], + ) + end +end + +# Physical law: `deep_atmosphere_inverse_scaling` multiplies the fluxes +# pointwise (geometric expansion of grid columns aloft), so a uniform factor c +# must scale every flux by exactly c relative to the unscaled solve. +@testset "deep-atmosphere metric scaling multiplies fluxes" begin + for FT in (Float32, Float64) + nlay, ncol = 20, 4 + base = _gray_solver(FT; nlay, ncol) + RRTMGP.update_fluxes!(base) + + pieces = _gray_pieces(FT; nlay, ncol) + scaling = fill!(pieces.DA{FT}(undef, nlay + 1, ncol), FT(2)) + bcs_lw = RRTMGP.BCs.LwBCs(pieces.sfc_emis, nothing) + scaled = RRTMGP.RRTMGPSolver( + pieces.gp, + RRTMGP.GrayRadiation(), + pieces.params, + bcs_lw, + pieces.bcs_sw, + pieces.as; + deep_atmosphere_inverse_scaling = scaling, + ) + @test RRTMGP.deep_atmosphere_inverse_scaling(scaled) !== nothing + RRTMGP.update_fluxes!(scaled) + + for getter in ( + RRTMGP.lw_flux_up, + RRTMGP.lw_flux_dn, + RRTMGP.lw_flux_net, + RRTMGP.sw_flux_up, + RRTMGP.sw_flux_dn, + RRTMGP.sw_direct_flux_dn, + RRTMGP.sw_flux_net, + RRTMGP.net_flux, + ) + @test Array(getter(scaled)) ≈ 2 .* Array(getter(base)) + end + end +end + +# Physical law: the radiative heating rate is the net-flux divergence in +# pressure coordinates, hr = (g/cₚ) ∂F_net/∂p. Recompute the finite difference +# from the getters and compare against heating_rate(s). +@testset "heating_rate matches the net-flux divergence" begin + for FT in (Float32, Float64) + out = RRTMGP.solve_gray(FT; nlay = 20, ncol = 3) + params = out.solver.params + g = RRTMGP.Parameters.grav(params) + cₚ = RRTMGP.Parameters.cp_d(params) + F = Array(out.net) + p = Array(RRTMGP.level_pressure(out.solver)) + expected = + (g / cₚ) .* (F[2:end, :] .- F[1:(end - 1), :]) ./ + (p[2:end, :] .- p[1:(end - 1), :]) + @test Array(out.heating_rate) ≈ expected + end +end + +@testset "gray clip! floors pressures and leaves temperatures alone" begin + FT = Float64 + nlay, ncol = 3, 2 + p_lay = FT[50 60; 500 510; 5000 5010] + p_lev = FT[10 20; 100 110; 1000 1010; 10000 10010] + t_lay = fill(FT(150), nlay, ncol) + t_lev = fill(FT(150), nlay + 1, ncol) + z_lev = zeros(FT, nlay + 1, ncol) + as = RRTMGP.AtmosphericStates.GrayAtmosphericState( + zeros(FT, ncol), + p_lay, + p_lev, + t_lay, + t_lev, + z_lev, + fill(FT(300), ncol), + RRTMGP.AtmosphericStates.GrayOpticalThicknessOGorman2008(FT), + ) + p_min = FT(100) + # the temperature clamp bounds are ignored for the gray state: its analytic + # optics remain valid outside the lookup-table range + @test RRTMGP.clip!(as, p_min; t_min = FT(160), t_max = FT(355)) === as + @test all(≥(p_min), as.p_lay) + @test all(≥(p_min), as.p_lev) + @test as.p_lay[3, 1] == 5000 # values above the floor are untouched + @test all(==(FT(150)), as.t_lay) + @test all(==(FT(150)), as.t_lev) + + # update_concentrations! is a no-op for gray radiation + device = ClimaComms.device(ClimaComms.context()) + params = RRTMGP.default_parameters(FT) + @test RRTMGP.update_concentrations!(as, params, device) === as +end diff --git a/test/clear_sky_dyamond_gpu_benchmark.jl b/test/clear_sky_dyamond_gpu_benchmark.jl index 48d132691..b6722f15c 100644 --- a/test/clear_sky_dyamond_gpu_benchmark.jl +++ b/test/clear_sky_dyamond_gpu_benchmark.jl @@ -28,6 +28,92 @@ using RRTMGP.ArtifactPaths include("reference_files.jl") include("read_clear_sky.jl") +if !@isdefined(_resample_benchmark_as) + function _resample_benchmark_as( + context, + as::AtmosphericStates.AtmosphericState, + target_nlay, + ::Type{FT}, + ) where {FT} + nlay_orig, _ = AtmosphericStates.get_dims(as) + nlay_orig == target_nlay && return as + device = ClimaComms.device(context) + DA = ClimaComms.array_type(device) + nlev_orig = nlay_orig + 1 + target_nlev = target_nlay + 1 + + lay_idx = [ + clamp(round(Int, k * nlay_orig / target_nlay), 1, nlay_orig) for + k in 1:target_nlay + ] + lev_idx = [ + clamp(round(Int, l * nlev_orig / target_nlev), 1, nlev_orig) for + l in 1:target_nlev + ] + + new_layerdata = DA{FT}(Array(as.layerdata)[:, lay_idx, :]) + new_p_lev = DA{FT}(Array(as.p_lev)[lev_idx, :]) + new_t_lev = DA{FT}(Array(as.t_lev)[lev_idx, :]) + + vmr = as.vmr + new_vmr = if vmr isa VolumeMixingRatios.VmrGM + VolumeMixingRatios.VmrGM( + DA{FT}(Array(vmr.vmr_h2o)[lay_idx, :]), + DA{FT}(Array(vmr.vmr_o3)[lay_idx, :]), + vmr.vmr, + ) + elseif vmr isa VolumeMixingRatios.Vmr + VolumeMixingRatios.Vmr(DA{FT}(Array(vmr.vmr)[:, lay_idx, :])) + else + vmr + end + + cld = as.cloud_state + new_cld = if cld !== nothing + AtmosphericStates.CloudState( + DA{FT}(Array(cld.cld_r_eff_liq)[lay_idx, :]), + DA{FT}(Array(cld.cld_r_eff_ice)[lay_idx, :]), + DA{FT}(Array(cld.cld_path_liq)[lay_idx, :]), + DA{FT}(Array(cld.cld_path_ice)[lay_idx, :]), + DA{FT}(Array(cld.cld_frac)[lay_idx, :]), + cld.cld_cover_sw, + cld.cld_cover_lw, + DA{Bool}(Array(cld.mask_lw)[lay_idx, :]), + DA{Bool}(Array(cld.mask_sw)[lay_idx, :]), + cld.mask_type, + cld.ice_rgh, + ) + else + nothing + end + + aer = as.aerosol_state + new_aer = if aer !== nothing + AtmosphericStates.AerosolState( + aer.aod_sw_ext, + aer.aod_sw_sca, + DA{Bool}(Array(aer.aero_mask)[lay_idx, :]), + DA{FT}(Array(aer.aero_size)[:, lay_idx, :]), + DA{FT}(Array(aer.aero_mass)[:, lay_idx, :]), + ) + else + nothing + end + + return AtmosphericStates.AtmosphericState( + as.lon, + as.lat, + new_layerdata, + new_p_lev, + new_t_lev, + as.t_sfc, + new_vmr, + new_cld, + new_aer, + ) + end +end + function benchmark_clear_sky( context, ::Type{SLVLW}, @@ -35,6 +121,7 @@ function benchmark_clear_sky( ::Type{VMR}, ::Type{FT}; ncol = 100, + nlay = nothing, ) where {FT <: AbstractFloat, SLVLW, SLVSW, VMR} overrides = (; grav = 9.80665, molmass_dryair = 0.028964, molmass_water = 0.018016) @@ -77,6 +164,9 @@ function benchmark_clear_sky( ) close(ds_lw_in) + if nlay !== nothing + as = _resample_benchmark_as(context, as, nlay, FT) + end nlay, _ = AtmosphericStates.get_dims(as) nlev = nlay + 1 grid_params = RRTMGPGridParams(FT; context, domain_nlay = nlay, ncol) @@ -100,24 +190,46 @@ function benchmark_clear_sky( #------calling solvers metric_scaling = DA(one.(slv_sw.flux.flux_up)) solve_lw!(slv_lw, as, lookup_lw, nothing, nothing, metric_scaling) - trial_lw = @benchmark CUDA.@sync solve_lw!( - $slv_lw, - $as, - $lookup_lw, - nothing, - nothing, - $metric_scaling, - ) + trial_lw = if device isa ClimaComms.CUDADevice + @benchmark CUDA.@sync solve_lw!( + $slv_lw, + $as, + $lookup_lw, + nothing, + nothing, + $metric_scaling, + ) + else + @benchmark solve_lw!( + $slv_lw, + $as, + $lookup_lw, + nothing, + nothing, + $metric_scaling, + ) + end solve_sw!(slv_sw, as, lookup_sw, nothing, nothing, metric_scaling) - trial_sw = @benchmark CUDA.@sync solve_sw!( - $slv_sw, - $as, - $lookup_sw, - nothing, - nothing, - $metric_scaling, - ) + trial_sw = if device isa ClimaComms.CUDADevice + @benchmark CUDA.@sync solve_sw!( + $slv_sw, + $as, + $lookup_sw, + nothing, + nothing, + $metric_scaling, + ) + else + @benchmark solve_sw!( + $slv_sw, + $as, + $lookup_sw, + nothing, + nothing, + $metric_scaling, + ) + end return trial_lw, trial_sw end @@ -174,13 +286,23 @@ function generate_gpu_clear_sky_benchmarks( return nothing end -for FT in (Float32, Float64) - generate_gpu_clear_sky_benchmarks(FT, 4, NoScatLWRTE, TwoStreamSWRTE, VmrGM) - generate_gpu_clear_sky_benchmarks( - FT, - 4, - TwoStreamLWRTE, - TwoStreamSWRTE, - VmrGM, - ) +# Run the resolution sweep only when executed as a script; +# perf/benchmark_ratchet.jl includes this file for `benchmark_clear_sky`. +if abspath(PROGRAM_FILE) == @__FILE__ + for FT in (Float32, Float64) + generate_gpu_clear_sky_benchmarks( + FT, + 4, + NoScatLWRTE, + TwoStreamSWRTE, + VmrGM, + ) + generate_gpu_clear_sky_benchmarks( + FT, + 4, + TwoStreamLWRTE, + TwoStreamSWRTE, + VmrGM, + ) + end end diff --git a/test/cloudy_sky_dyamond_gpu_benchmark.jl b/test/cloudy_sky_dyamond_gpu_benchmark.jl index 9e255e15a..6fc4d7517 100644 --- a/test/cloudy_sky_dyamond_gpu_benchmark.jl +++ b/test/cloudy_sky_dyamond_gpu_benchmark.jl @@ -28,12 +28,99 @@ using RRTMGP.ArtifactPaths include("reference_files.jl") include("read_cloudy_sky.jl") +if !@isdefined(_resample_benchmark_as) + function _resample_benchmark_as( + context, + as::AtmosphericStates.AtmosphericState, + target_nlay, + ::Type{FT}, + ) where {FT} + nlay_orig, _ = AtmosphericStates.get_dims(as) + nlay_orig == target_nlay && return as + device = ClimaComms.device(context) + DA = ClimaComms.array_type(device) + nlev_orig = nlay_orig + 1 + target_nlev = target_nlay + 1 + + lay_idx = [ + clamp(round(Int, k * nlay_orig / target_nlay), 1, nlay_orig) for + k in 1:target_nlay + ] + lev_idx = [ + clamp(round(Int, l * nlev_orig / target_nlev), 1, nlev_orig) for + l in 1:target_nlev + ] + + new_layerdata = DA{FT}(Array(as.layerdata)[:, lay_idx, :]) + new_p_lev = DA{FT}(Array(as.p_lev)[lev_idx, :]) + new_t_lev = DA{FT}(Array(as.t_lev)[lev_idx, :]) + + vmr = as.vmr + new_vmr = if vmr isa VolumeMixingRatios.VmrGM + VolumeMixingRatios.VmrGM( + DA{FT}(Array(vmr.vmr_h2o)[lay_idx, :]), + DA{FT}(Array(vmr.vmr_o3)[lay_idx, :]), + vmr.vmr, + ) + elseif vmr isa VolumeMixingRatios.Vmr + VolumeMixingRatios.Vmr(DA{FT}(Array(vmr.vmr)[:, lay_idx, :])) + else + vmr + end + + cld = as.cloud_state + new_cld = if cld !== nothing + AtmosphericStates.CloudState( + DA{FT}(Array(cld.cld_r_eff_liq)[lay_idx, :]), + DA{FT}(Array(cld.cld_r_eff_ice)[lay_idx, :]), + DA{FT}(Array(cld.cld_path_liq)[lay_idx, :]), + DA{FT}(Array(cld.cld_path_ice)[lay_idx, :]), + DA{FT}(Array(cld.cld_frac)[lay_idx, :]), + cld.cld_cover_sw, + cld.cld_cover_lw, + DA{Bool}(Array(cld.mask_lw)[lay_idx, :]), + DA{Bool}(Array(cld.mask_sw)[lay_idx, :]), + cld.mask_type, + cld.ice_rgh, + ) + else + nothing + end + + aer = as.aerosol_state + new_aer = if aer !== nothing + AtmosphericStates.AerosolState( + aer.aod_sw_ext, + aer.aod_sw_sca, + DA{Bool}(Array(aer.aero_mask)[lay_idx, :]), + DA{FT}(Array(aer.aero_size)[:, lay_idx, :]), + DA{FT}(Array(aer.aero_mass)[:, lay_idx, :]), + ) + else + nothing + end + + return AtmosphericStates.AtmosphericState( + as.lon, + as.lat, + new_layerdata, + new_p_lev, + new_t_lev, + as.t_sfc, + new_vmr, + new_cld, + new_aer, + ) + end +end + function benchmark_all_sky( context, ::Type{SLVLW}, ::Type{SLVSW}, ::Type{FT}; ncol = 128,# repeats col#1 ncol times per RRTMGP example + nlay = nothing, cldfrac = FT(1), ) where {FT <: AbstractFloat, SLVLW, SLVSW} overrides = @@ -88,6 +175,9 @@ function benchmark_all_sky( param_set, ) close(ds_in) + if nlay !== nothing + as = _resample_benchmark_as(context, as, nlay, FT) + end nlay, ncol = AtmosphericStates.get_dims(as) nlev = nlay + 1 grid_params = RRTMGPGridParams(FT; context, domain_nlay = nlay, ncol) @@ -114,24 +204,46 @@ function benchmark_all_sky( #------calling solvers metric_scaling = DA(one.(slv_sw.flux.flux_up)) solve_lw!(slv_lw, as, lookup_lw, lookup_lw_cld, nothing, metric_scaling) - trial_lw = @benchmark CUDA.@sync solve_lw!( - $slv_lw, - $as, - $lookup_lw, - $lookup_lw_cld, - nothing, - $metric_scaling, - ) + trial_lw = if device isa ClimaComms.CUDADevice + @benchmark CUDA.@sync solve_lw!( + $slv_lw, + $as, + $lookup_lw, + $lookup_lw_cld, + nothing, + $metric_scaling, + ) + else + @benchmark solve_lw!( + $slv_lw, + $as, + $lookup_lw, + $lookup_lw_cld, + nothing, + $metric_scaling, + ) + end solve_sw!(slv_sw, as, lookup_sw, lookup_sw_cld, nothing, metric_scaling) - trial_sw = @benchmark CUDA.@sync solve_sw!( - $slv_sw, - $as, - $lookup_sw, - $lookup_sw_cld, - nothing, - $metric_scaling, - ) + trial_sw = if device isa ClimaComms.CUDADevice + @benchmark CUDA.@sync solve_sw!( + $slv_sw, + $as, + $lookup_sw, + $lookup_sw_cld, + nothing, + $metric_scaling, + ) + else + @benchmark solve_sw!( + $slv_sw, + $as, + $lookup_sw, + $lookup_sw_cld, + nothing, + $metric_scaling, + ) + end return trial_lw, trial_sw end @@ -193,7 +305,11 @@ function generate_gpu_allsky_benchmarks( return nothing end -for FT in (Float32, Float64) - generate_gpu_allsky_benchmarks(FT, 4, NoScatLWRTE, TwoStreamSWRTE) - generate_gpu_allsky_benchmarks(FT, 4, TwoStreamLWRTE, TwoStreamSWRTE) +# Run the resolution sweep only when executed as a script; +# perf/benchmark_ratchet.jl includes this file for `benchmark_all_sky`. +if abspath(PROGRAM_FILE) == @__FILE__ + for FT in (Float32, Float64) + generate_gpu_allsky_benchmarks(FT, 4, NoScatLWRTE, TwoStreamSWRTE) + generate_gpu_allsky_benchmarks(FT, 4, TwoStreamLWRTE, TwoStreamSWRTE) + end end diff --git a/test/interpolation_schemes.jl b/test/interpolation_schemes.jl new file mode 100644 index 000000000..5d88ed0b5 --- /dev/null +++ b/test/interpolation_schemes.jl @@ -0,0 +1,279 @@ +using Test +import RRTMGP +import RRTMGP.AtmosphericStates: AtmosphericState +import RRTMGP.VolumeMixingRatios: VmrGM + +# Closed-form unit tests for every level<->layer interpolation and bottom- +# extrapolation scheme in src/api/interpolation.jl. The laws being verified are +# the ones stated in that file's comment block: a constant lapse rate between +# the two known points, hydrostatic balance for isothermal columns, and the +# isentropic p ∝ T^(cₚ/R) law otherwise. + +# Minimal clear-sky AtmosphericState (VmrGM storage), mirroring the helper in +# grid_adaptation.jl but under a different name so both files can be included +# into one test session. +function _make_interp_as(FT, nlay, ncol) + layerdata = zeros(FT, 4, nlay, ncol) + p_lev = zeros(FT, nlay + 1, ncol) + t_lev = zeros(FT, nlay + 1, ncol) + t_sfc = fill(FT(300), ncol) + vmr = VmrGM(zeros(FT, nlay, ncol), zeros(FT, nlay, ncol), zeros(FT, 3)) + return AtmosphericState( + nothing, + nothing, + layerdata, + p_lev, + t_lev, + t_sfc, + vmr, + nothing, + nothing, + ) +end + +@testset "interp! closed forms (all schemes)" begin + for FT in (Float32, Float64) + pꜜ = FT[100000, 90000] + Tꜜ = FT[300, 290] + pꜛ = FT[80000, 70000] + Tꜛ = FT[280, 270] + p = zeros(FT, 2) + T = zeros(FT, 2) + + # UniformZ: T is the arithmetic mean; p follows the isentropic + # p ∝ T^B law, checked independently by the bounds here and the + # isothermal limit below. + RRTMGP.interp!(RRTMGP.UniformZ(), p, T, pꜜ, Tꜜ, pꜛ, Tꜛ) + @test T ≈ (Tꜜ .+ Tꜛ) ./ 2 + # the interpolated face lies between the adjacent layers + @test all(min.(pꜜ, pꜛ) .< p .< max.(pꜜ, pꜛ)) + @test all(min.(Tꜜ, Tꜛ) .< T .< max.(Tꜜ, Tꜛ)) + + # isothermal limit: hydrostatic balance reduces UniformZ to the + # geometric mean of the pressures. + RRTMGP.interp!(RRTMGP.UniformZ(), p, T, pꜜ, Tꜜ, pꜛ, Tꜜ) + @test T ≈ Tꜜ + @test p ≈ sqrt.(pꜜ .* pꜛ) + + # UniformP: p is the arithmetic mean; T inverts the same power law, + # checked independently by the bounds here and the isothermal limit + # below. + RRTMGP.interp!(RRTMGP.UniformP(), p, T, pꜜ, Tꜜ, pꜛ, Tꜛ) + @test p ≈ (pꜜ .+ pꜛ) ./ 2 + @test all(min.(Tꜜ, Tꜛ) .< T .< max.(Tꜜ, Tꜛ)) + # isothermal limit (independent oracle): an isothermal layer stays + # isothermal, whatever the pressure interpolation. + RRTMGP.interp!(RRTMGP.UniformP(), p, T, pꜜ, Tꜜ, pꜛ, Tꜜ) + @test T ≈ Tꜜ + @test p ≈ (pꜜ .+ pꜛ) ./ 2 + + # BestFit with distinct temperatures: T is linear in z and p follows + # the power law fitted through the two layer points. + z = FT[500] + zꜜ = FT[0] + zꜛ = FT[1000] + pb = zeros(FT, 1) + Tb = zeros(FT, 1) + RRTMGP.interp!( + RRTMGP.BestFit(), + pb, + Tb, + z, + pꜜ[1:1], + Tꜜ[1:1], + zꜜ, + pꜛ[1:1], + Tꜛ[1:1], + zꜛ, + ) + @test Tb ≈ [(Tꜜ[1] + Tꜛ[1]) / 2] # midpoint of a linear profile + # the fitted pressure lies between the two layer pressures; its exact + # value is checked by the dry-adiabat test below. + @test pꜛ[1] < pb[1] < pꜜ[1] + end +end + +@testset "extrap! closed forms (all schemes)" begin + for FT in (Float32, Float64) + params = RRTMGP.default_parameters(FT) + g = RRTMGP.Parameters.grav(params) + cₚ = RRTMGP.Parameters.cp_d(params) + R = RRTMGP.Parameters.R_d(params) + + p⁺ = FT[90000] + T⁺ = FT[285] + p⁺⁺ = FT[80000] + T⁺⁺ = FT[275] + Tₛ = FT[300] + p = zeros(FT, 1) + T = zeros(FT, 1) + + # GeometricMean continues the geometric progression of the two layers + # above to the boundary face half a layer below, so the boundary/nearest + # ratio is the square root of the layer-to-layer ratio. + RRTMGP.extrap!(RRTMGP.GeometricMean(), p, T, p⁺, T⁺, p⁺⁺, T⁺⁺, Tₛ, params) + @test T ./ T⁺ ≈ sqrt.(T⁺ ./ T⁺⁺) + @test p ./ p⁺ ≈ sqrt.(p⁺ ./ p⁺⁺) + @test all(T .> T⁺) && all(p .> p⁺) # continues downward + + # UniformZ: linear T continuation; the isothermal limit independently + # pins the isentropic pressure law to the hydrostatic geometric mean. + RRTMGP.extrap!(RRTMGP.UniformZ(), p, T, p⁺, T⁺, p⁺⁺, T⁺⁺, Tₛ, params) + @test T ≈ (3 .* T⁺ .- T⁺⁺) ./ 2 + @test all(p .> p⁺) # continues downward below the lowest layer + RRTMGP.extrap!(RRTMGP.UniformZ(), p, T, p⁺, T⁺, p⁺⁺, T⁺, Tₛ, params) + @test T ≈ T⁺ + @test p ≈ sqrt.(p⁺ .* p⁺⁺) + + # UniformP: linear p continuation; an isothermal layer extrapolates + # isothermally. + RRTMGP.extrap!(RRTMGP.UniformP(), p, T, p⁺, T⁺, p⁺⁺, T⁺⁺, Tₛ, params) + @test p ≈ (3 .* p⁺ .- p⁺⁺) ./ 2 + @test all(T .> T⁺) # continues downward below the lowest layer + RRTMGP.extrap!(RRTMGP.UniformP(), p, T, p⁺, T⁺, p⁺⁺, T⁺, Tₛ, params) + @test T ≈ T⁺ + @test p ≈ (3 .* p⁺ .- p⁺⁺) ./ 2 + + # UseSurfaceTempAtBottom: T is the surface temperature; p follows the + # dry-isentropic law p = p⁺ (T/T⁺)^(cₚ/R). + RRTMGP.extrap!( + RRTMGP.UseSurfaceTempAtBottom(), + p, + T, + p⁺, + T⁺, + p⁺⁺, + T⁺⁺, + Tₛ, + params, + ) + @test T == Tₛ + @test all(p .> p⁺) # Tₛ > T⁺, so the boundary pressure exceeds p⁺ + # identity limit: Tₛ = T⁺ recovers p = p⁺ + RRTMGP.extrap!( + RRTMGP.UseSurfaceTempAtBottom(), + p, + T, + p⁺, + T⁺, + p⁺⁺, + T⁺⁺, + T⁺, + params, + ) + @test p ≈ p⁺ + + # HydrostaticBottom: dry-adiabatic lapse rate T = T⁺ + (g/cₚ)(z⁺ - z) + # and the same isentropic pressure law. + z = FT[0] + z⁺ = FT[500] + z⁺⁺ = FT[1500] + RRTMGP.extrap!( + RRTMGP.HydrostaticBottom(), + p, + T, + z, + p⁺, + T⁺, + z⁺, + p⁺⁺, + T⁺⁺, + z⁺⁺, + Tₛ, + params, + ) + @test T ≈ T⁺ .+ (g / cₚ) .* (z⁺ .- z) + # pressure follows the isentropic law; its exact value is pinned by the + # identity limit below and the dry-adiabat test. + @test all(p .> p⁺) # continues downward below the lowest layer + # identity limit: z = z⁺ recovers (p, T) = (p⁺, T⁺) + RRTMGP.extrap!( + RRTMGP.HydrostaticBottom(), + p, + T, + z⁺, + p⁺, + T⁺, + z⁺, + p⁺⁺, + T⁺⁺, + z⁺⁺, + Tₛ, + params, + ) + @test T ≈ T⁺ + @test p ≈ p⁺ + + # BestFit extrapolation: linear T in z and the fitted power law. + RRTMGP.extrap!( + RRTMGP.BestFit(), + p, + T, + z, + p⁺, + T⁺, + z⁺, + p⁺⁺, + T⁺⁺, + z⁺⁺, + Tₛ, + params, + ) + @test T ≈ T⁺ .+ (T⁺⁺ .- T⁺) .* (z .- z⁺) ./ (z⁺⁺ .- z⁺) + # the fitted pressure continues downward; its exact value is checked by + # the dry-adiabat test below. + @test all(p .> p⁺) + end +end + +# On a dry adiabat — T(z) linear with slope -g/cₚ and p(z) = p₀ (T/T₀)^(cₚ/R) — +# BestFit interpolation and HydrostaticBottom extrapolation are exact, so +# interpolate_levels! must reproduce the analytic level values from the layer +# values alone. This exercises the z-based branch of interpolate_levels! +# (center_z/face_z plumbing) end to end. +@testset "interpolate_levels! reproduces a dry adiabat (BestFit + HydrostaticBottom)" begin + for FT in (Float32, Float64) + params = RRTMGP.default_parameters(FT) + g = RRTMGP.Parameters.grav(params) + cₚ = RRTMGP.Parameters.cp_d(params) + R = RRTMGP.Parameters.R_d(params) + T₀ = FT(300) + p₀ = FT(100000) + T_ad(z) = T₀ - (g / cₚ) * z + p_ad(z) = p₀ * (T_ad(z) / T₀)^(cₚ / R) + + nlay, ncol = 8, 2 + z_lev = collect(FT, range(FT(0), FT(8000); length = nlay + 1)) + z_lay = (z_lev[1:(end - 1)] .+ z_lev[2:end]) ./ 2 + face_z = repeat(z_lev, 1, ncol) + center_z = repeat(z_lay, 1, ncol) + + as = _make_interp_as(FT, nlay, ncol) + RRTMGP.AtmosphericStates.getview_p_lay(as) .= p_ad.(center_z) + RRTMGP.AtmosphericStates.getview_t_lay(as) .= T_ad.(center_z) + + RRTMGP.interpolate_levels!( + as, + RRTMGP.BestFit(), + RRTMGP.HydrostaticBottom(), + params; + center_z, + face_z, + ) + + rtol = sqrt(eps(FT)) + @test as.t_lev ≈ T_ad.(face_z) rtol = rtol + @test as.p_lev ≈ p_ad.(face_z) rtol = rtol + end +end + +# UniformP divides by log(pꜛ/pꜜ) and therefore assumes distinct layer +# pressures (see the comment in interpolation.jl). Pin the precondition: equal +# pressures produce NaN temperatures rather than silently wrong values. +@testset "UniformP precondition: distinct layer pressures" begin + p = zeros(1) + T = zeros(1) + RRTMGP.interp!(RRTMGP.UniformP(), p, T, [500.0], [250.0], [500.0], [260.0]) + @test p == [500.0] + @test isnan(T[1]) +end diff --git a/test/lookup_serialization.jl b/test/lookup_serialization.jl index 7e601de16..6bb3703d4 100644 --- a/test/lookup_serialization.jl +++ b/test/lookup_serialization.jl @@ -3,6 +3,7 @@ import ClimaComms @static pkgversion(ClimaComms) >= v"0.6" && ClimaComms.@import_required_backends import RRTMGP import NCDatasets # loads the lookup-table extension +import Serialization # LookupBundle round-trip through save_lookup_tables/load_lookup_tables: the # cache must reproduce the NetCDF-built bundle exactly (structure and values), @@ -40,4 +41,26 @@ import NCDatasets # loads the lookup-table extension RRTMGP.save_lookup_tables(path2, gray) gray2 = RRTMGP.load_lookup_tables(path2, gp) @test gray2.nbnd_lw == 1 && isnothing(gray2.lookup_lw) + + # an aerosol-only (clear-sky) bundle keeps its aerosol tables and index + # maps through the round-trip, with no cloud tables + clear_aero = RRTMGP.lookup_tables(gp, RRTMGP.ClearSkyRadiation(true)) + path3 = joinpath(mktempdir(), "clear_aero.jls") + RRTMGP.save_lookup_tables(path3, clear_aero) + clear_aero2 = RRTMGP.load_lookup_tables(path3, gp) + @test isnothing(clear_aero2.lookup_lw_cld) && + isnothing(clear_aero2.lookup_sw_cld) + @test !isnothing(clear_aero2.lookup_lw_aero) && + !isnothing(clear_aero2.lookup_sw_aero) + @test clear_aero2.idx_aerosol_lw == clear_aero.idx_aerosol_lw + @test clear_aero2.idx_aerosize_sw == clear_aero.idx_aerosize_sw + + # a file that was not written by save_lookup_tables is rejected with an + # actionable error + path4 = joinpath(mktempdir(), "not_a_bundle.jls") + Serialization.serialize(path4, (; a = 1)) + @test_throws "did not deserialize to a LookupBundle" RRTMGP.load_lookup_tables( + path4, + gp, + ) end diff --git a/test/runtests.jl b/test/runtests.jl index 5c41ea3a8..4db8b789c 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -10,6 +10,14 @@ end include("grid_adaptation.jl") end +@testset "Interpolation and extrapolation scheme tests" begin + include("interpolation_schemes.jl") +end + +@testset "API contract tests" begin + include("api_contract.jl") +end + @testset "RRTMGP gray radiation tests" begin include("gray_atm.jl") end @@ -99,7 +107,9 @@ printstyled("=================================\n\n", color = color1) @testset "RRTMGP partial cloud fraction reproducibility tests" begin include("partial_cloud_fraction.jl") context = ClimaComms.context() - partial_cloud_fraction_test(context, Float64) + for FT in (Float32, Float64) + partial_cloud_fraction_test(context, FT) + end end printstyled( diff --git a/test/standalone_spectral.jl b/test/standalone_spectral.jl index 9433c82d5..d45d71734 100644 --- a/test/standalone_spectral.jl +++ b/test/standalone_spectral.jl @@ -60,4 +60,28 @@ using NCDatasets delete!(prof_bad.well_mixed_vmr, "h2o") prof_bad.well_mixed_vmr["kryptonite"] = FT(1e-6) # not an RRTMGP gas @test_throws ErrorException RRTMGP.solve(prof_bad; lookups) + + # volume_mixing_ratio getter branches (VmrGM storage): + # spatially varying gases are domain views ... + solver = out.solver + vmr_h2o = RRTMGP.volume_mixing_ratio(solver, "h2o") + @test size(vmr_h2o) == (nlay, 1) + # ... the water-vapor continuum pseudo-gases share the h2o storage ... + for continuum in ("h2o_self", "h2o_frgn") + @test Array(RRTMGP.volume_mixing_ratio(solver, continuum)) == + Array(vmr_h2o) + end + # ... and a well-mixed gas is returned as a host scalar (not a device view) + co2 = RRTMGP.volume_mixing_ratio(solver, "co2") + @test co2 isa Number + @test co2 ≈ 420e-6 + + # per-gas Vmr storage returns a (nlay, ncol) view for every gas + ngas = solver.lookups.ngas_sw + vmr_all = RRTMGP.VolumeMixingRatios.Vmr(zeros(FT, ngas, nlay, 1)) + idx_co2 = solver.lookups.idx_gases_sw["co2"] + vmr_all.vmr[idx_co2, :, :] .= FT(400e-6) + co2_view = RRTMGP._volume_mixing_ratio(solver, vmr_all, "co2") + @test size(co2_view) == (nlay, 1) + @test all(==(FT(400e-6)), Array(co2_view)) end From 7c099d001d8fe488ba36e605307bf3f37ca86bdd Mon Sep 17 00:00:00 2001 From: Tapio Schneider Date: Sat, 11 Jul 2026 22:37:10 +0000 Subject: [PATCH 2/7] Docs: Add comprehensive docstrings, how-to guides, tutorials, and performance comparisons --- .github/workflows/docs.yml | 2 +- .gitignore | 5 + NEWS.md | 25 + Project.toml | 2 - README.md | 152 ++- docs/Manifest.toml | 1779 +++++++++++++++++++++++-- docs/Project.toml | 6 + docs/bibliography.bib | 131 +- docs/make.jl | 41 +- docs/src/ArtifactPaths.md | 2 +- docs/src/Example.md | 70 +- docs/src/Optics.md | 171 ++- docs/src/RTE.md | 223 +++- docs/src/api.md | 4 +- docs/src/assets/logo.png | Bin 975784 -> 0 bytes docs/src/assets/logo.svg | 31 + docs/src/concordance.md | 18 +- docs/src/functional_core.md | 104 +- docs/src/getters.md | 117 +- docs/src/howto/gpu.md | 122 ++ docs/src/howto/host_model.md | 191 +++ docs/src/howto/lookup_cache.md | 43 + docs/src/howto/spectral_fluxes.md | 56 + docs/src/index.md | 67 +- docs/src/optics/AtmosphericStates.md | 5 + docs/src/optics/Fluxes.md | 1 + docs/src/precision.md | 78 ++ docs/tutorials/getting_started.jl | 187 +++ docs/tutorials/manabe_rce.jl | 492 +++++++ src/ArtifactPaths.jl | 6 +- src/api/aerosols.jl | 2 +- src/api/atmosphere_profile.jl | 11 +- src/api/getters.jl | 32 +- src/api/grid_adaptation.jl | 2 +- src/api/lookup_bundle.jl | 10 +- src/api/radiation_methods.jl | 2 +- src/api/solver.jl | 30 +- src/api/standalone.jl | 44 +- src/api/update_fluxes.jl | 17 +- src/api/validation.jl | 7 +- src/optics/AngularDiscretizations.jl | 12 +- src/optics/AtmosphericStates.jl | 84 +- src/optics/BCs.jl | 27 +- src/optics/Fluxes.jl | 29 +- src/optics/GrayAtmosphere.jl | 6 +- src/optics/LookUpTables.jl | 160 +-- src/optics/Optics.jl | 1 - src/optics/Sources.jl | 52 +- src/optics/VolumeMixingRatios.jl | 28 +- src/optics/aerosol_optics.jl | 8 +- src/optics/cloud_optics.jl | 10 +- src/optics/column_amounts.jl | 7 +- src/optics/compute_optical_props.jl | 7 +- src/optics/gas_optics.jl | 37 +- src/optics/gray_atmospheric_states.jl | 120 +- src/optics/gray_optics_kernels.jl | 23 +- src/optics/optical_props.jl | 23 +- src/optics/optics_utils.jl | 13 +- src/rte/RTE.jl | 57 +- src/rte/RTESolver.jl | 8 +- src/rte/longwave_2stream.jl | 6 +- src/rte/shortwave_2stream.jl | 8 +- src/rte/shortwave_noscat.jl | 4 +- 63 files changed, 4202 insertions(+), 816 deletions(-) delete mode 100644 docs/src/assets/logo.png create mode 100644 docs/src/assets/logo.svg create mode 100644 docs/src/howto/gpu.md create mode 100644 docs/src/howto/host_model.md create mode 100644 docs/src/howto/lookup_cache.md create mode 100644 docs/src/howto/spectral_fluxes.md create mode 100644 docs/src/precision.md create mode 100644 docs/tutorials/getting_started.jl create mode 100644 docs/tutorials/manabe_rce.jl diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 6e0b05f12..6c8677133 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -15,7 +15,7 @@ concurrency: jobs: docbuild: runs-on: ubuntu-latest - timeout-minutes: 30 + timeout-minutes: 60 steps: - uses: actions/checkout@v4 - uses: julia-actions/setup-julia@v2 diff --git a/.gitignore b/.gitignore index 17c36a83d..7cd294a17 100644 --- a/.gitignore +++ b/.gitignore @@ -35,3 +35,8 @@ docs/site/ Manifest.toml test/Manifest.toml +# Literate.jl-generated tutorial pages +docs/src/tutorials/ + +# Temporary benchmark measurements +perf/benchmark_baselines/measured_*.txt diff --git a/NEWS.md b/NEWS.md index 74cfaf5a5..daf98159c 100644 --- a/NEWS.md +++ b/NEWS.md @@ -3,6 +3,31 @@ RRTMGP.jl Release Notes main ------ +- Documentation reorganized along tutorial / how-to / explanation / reference + lines: two new executable (Literate.jl) tutorials — "A first radiation + calculation" and "Radiative-convective equilibrium", which reproduces + Manabe's classic fixed-relative-humidity climate-sensitivity experiment with + RRTMGP's clear-sky optics — plus four how-to guides (driving RRTMGP from a + host model, running on GPUs, caching the lookup tables, per-band fluxes). + The README now gives a Thermodynamics.jl-style overview with quick starts. +- Struct docstrings migrated off `DocStringExtensions.FIELDS` to explicit + `# Fields` sections (per the CliMA documentation policy), so field + descriptions and units render on the API pages without inline field + docstrings. +- New unit tests for previously indirect paths: every interpolation / + bottom-extrapolation scheme against closed forms (including a dry-adiabat + round-trip through `interpolate_levels!`), solver-constructor and getter + guard errors, `validate_inputs` field-by-field, the incident-longwave-flux + boundary condition, pointwise deep-atmosphere flux scaling, heating-rate = + net-flux divergence, gray `clip!`, aerosol-only `LookupBundle` round-trips, + cloud-radiative-effect sign checks in the all-sky tests, and the McICA + reproducibility tests now also run in `Float32`. +- New advisory GPU benchmark ratchet (`perf/benchmark_ratchet.jl` + a + soft-fail Buildkite step): the DYAMOND-scale `solve_lw!`/`solve_sw!` medians + are compared against per-GPU baselines committed under + `perf/benchmark_baselines/`, flagging wall-time regressions beyond 20% + without blocking merges. The three DYAMOND benchmark scripts are now + includable (their sweeps run only when executed as scripts). - New docs page "Fortran and paper concordance": tables mapping RRTMGP.jl names (containers, RTE/gas-optics/cloud/aerosol kernels) to the Fortran rte-rrtmgp `mo_*`/`ty_*` names and to the papers whose equations they diff --git a/Project.toml b/Project.toml index fd3345def..704f8800c 100644 --- a/Project.toml +++ b/Project.toml @@ -7,7 +7,6 @@ version = "0.21.9" Adapt = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" Artifacts = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" ClimaComms = "3a4d1b5c-c61d-41fd-a00a-5873ba7a1b0d" -DocStringExtensions = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" Serialization = "9e88b42a-f829-5b0c-bbe9-9e923198166b" @@ -27,7 +26,6 @@ Artifacts = "1" CUDA = "5.9, 6" ClimaComms = "0.5.4, 0.6" ClimaParams = "1" -DocStringExtensions = "0.8, 0.9" NCDatasets = "0.14.2" Random = "1" Serialization = "1" diff --git a/README.md b/README.md index 3900a14d6..9dd895d88 100644 --- a/README.md +++ b/README.md @@ -1,45 +1,155 @@ +
+ RRTMGP.jl Logo +
+ # RRTMGP.jl -Julia implementation of Radiative Transfer for Energetics and the RRTMGP optics. +The `RRTMGP.jl` package is a Julia implementation of the radiative transfer +solver RTE and the RRTMGP correlated-*k* gas optics +([Pincus et al., 2019](https://doi.org/10.1029/2019MS001621)), based on the +reference Fortran implementation +[rte-rrtmgp](https://github.com/earth-system-radiation/rte-rrtmgp). It computes +longwave and shortwave radiative fluxes and heating rates for clear, cloudy, +and aerosol-laden atmospheres, and is the radiation scheme of the +[CliMA Earth System Model](https://clima.caltech.edu). ||| -|---------------------:|:----------------------------------------------| -| **Documentation** | [![latest][docs-latest-img]][docs-latest-url] | -| **Code Coverage** | [![codecov][codecov-img]][codecov-url] | -| **BuildKite** | [![buildkite][buildkite-img]][buildkite-url] | -| **Downloads** | [![downloads][downloads-img]][downloads-url] | - +|-----------------------------:|:-------------------------------------------------| +| **Documentation** | [![dev][docs-latest-img]][docs-latest-url] | +| **Docs Build** | [![docs build][docs-bld-img]][docs-bld-url] | +| **GHA CI** | [![gha ci][gha-ci-img]][gha-ci-url] | +| **Buildkite CI** | [![buildkite][buildkite-img]][buildkite-url] | +| **Code Coverage** | [![codecov][codecov-img]][codecov-url] | +| **Downloads** | [![Downloads][dlt-img]][dlt-url] | [docs-latest-img]: https://img.shields.io/badge/docs-latest-blue.svg [docs-latest-url]: https://CliMA.github.io/RRTMGP.jl/latest/ -[codecov-img]: https://codecov.io/gh/CliMA/RRTMGP.jl/branch/main/graph/badge.svg -[codecov-url]: https://codecov.io/gh/CliMA/RRTMGP.jl +[docs-bld-img]: https://github.com/CliMA/RRTMGP.jl/actions/workflows/docs.yml/badge.svg +[docs-bld-url]: https://github.com/CliMA/RRTMGP.jl/actions/workflows/docs.yml + +[gha-ci-img]: https://github.com/CliMA/RRTMGP.jl/actions/workflows/OS-UnitTests.yml/badge.svg +[gha-ci-url]: https://github.com/CliMA/RRTMGP.jl/actions/workflows/OS-UnitTests.yml [buildkite-img]: https://badge.buildkite.com/ee3a0c43cf4925ee14a966f794ac85d0b9439244d23e43b308.svg [buildkite-url]: https://buildkite.com/clima/rrtmgp-ci -[downloads-img]: https://img.shields.io/badge/dynamic/json?url=http%3A%2F%2Fjuliapkgstats.com%2Fapi%2Fv1%2Ftotal_downloads%2FRRTMGP&query=total_requests&suffix=%2Ftotal&label=Downloads -[downloads-url]: http://juliapkgstats.com/pkg/RRTMGP +[codecov-img]: https://codecov.io/gh/CliMA/RRTMGP.jl/branch/main/graph/badge.svg +[codecov-url]: https://codecov.io/gh/CliMA/RRTMGP.jl + +[dlt-img]: https://img.shields.io/badge/dynamic/json?url=http%3A%2F%2Fjuliapkgstats.com%2Fapi%2Fv1%2Ftotal_downloads%2FRRTMGP&query=total_requests&label=Downloads +[dlt-url]: https://juliapkgstats.com/pkg/RRTMGP -This is based off of the [rte-rrtmgp](https://github.com/RobertPincus/rte-rrtmgp) repository. +## Quick Start + +### Installation + +```julia +using Pkg +Pkg.add("RRTMGP") +``` + +### Basic Usage + +The standalone front door provides a quick start. A gray (single-band) +atmosphere uses analytic formulas: + +```julia +using RRTMGP -# Install +out = RRTMGP.solve_gray(Float64; nlay = 60, ncol = 1) +out.net # net flux at each level [W/m²] +out.heating_rate # radiative heating rate at each layer [K/s] +``` -RRTMGP.jl is registered in the general Julia registry. To install, enter the package manager by typing `]` in the Julia REPL, and then type: +For the full correlated-*k* gas optics, build an idealized clear-sky profile +and solve it (the lookup tables are downloaded automatically; loading +`NCDatasets` activates them): ```julia -pkg> add RRTMGP +using RRTMGP, NCDatasets + +profile = RRTMGP.standard_atmosphere(Float64; kind = :tropical) +out = RRTMGP.solve(profile) +out.lw_up[end, 1] # outgoing longwave radiation at the top of the atmosphere [W/m²] +out.heating_rate # radiative heating rate at each layer [K/s] ``` -Then, to use +### Host-Model Usage + +Climate models construct an `RRTMGPSolver` once, write their state through the +[getter contract](https://clima.github.io/RRTMGP.jl/latest/getters/), and call +`update_fluxes!(solver)` every radiation step: ```julia -julia> using RRTMGP +solver = RRTMGP.RRTMGPSolver(grid_params, method, params, bcs_lw, bcs_sw, as) +RRTMGP.update_fluxes!(solver) # allocation-free, in place +F = RRTMGP.net_flux(solver) # (nlev, ncol) view into solver memory ``` -# Acknowledgments +## Key Features + +- **Full RRTMGP gas optics**: longwave and shortwave correlated-*k* lookup + tables, clouds (with McICA sampling of partial cloudiness), and MERRA + aerosols, validated against the Fortran rte-rrtmgp reference fluxes. +- **Gray radiation**: analytic single-band optics for idealized-climate and + teaching use. +- **Two-stream and no-scattering solvers** for both bands, with optional + per-band (spectrally resolved) flux output. +- **CPU and GPU**: the same code runs single-threaded, multi-threaded, and on + CUDA GPUs via [ClimaComms](https://github.com/CliMA/ClimaComms.jl). +- **Zero-allocation driver**: `update_fluxes!` is allocation-free and + type-stable (asserted in CI with `@allocated` and JET), allowing it to run + fast within a climate simulation. +- **Dual precision**: `Float32` and `Float64` throughout, with high accuracy + (~ 1e-3 W/m²) at `Float32` and an accuracy-ratchet test pinning the + `Float32`↔`Float64` flux differences. + +## Design + +RRTMGP.jl is organized in three layers: + +1. **Functional core**: `solve_lw!` / `solve_sw!` kernels acting on explicit + state (`AtmosphericState`, optics, sources, boundary conditions, flux + workspaces). See the [Functional core](https://clima.github.io/RRTMGP.jl/latest/functional_core/) page. +2. **Solver aggregate**: `RRTMGPSolver` bundles the configuration, state, and + workspaces; hosts exchange data through documented + [getters](https://clima.github.io/RRTMGP.jl/latest/getters/) and drive it + with `update_fluxes!`. +3. **Standalone front door**: `solve_gray(FT)`, `standard_atmosphere(FT)`, and + `solve(profile)` for classroom use, single-column experiments, and quick + starts. + +Readers coming from the Fortran implementation can use the +[Fortran and paper concordance](https://clima.github.io/RRTMGP.jl/latest/concordance/) +to map names between the two code bases and the underlying papers. + +## Documentation + +- **[Documentation home](https://clima.github.io/RRTMGP.jl/latest/)**: overview + and page index. +- **[Functional core](https://clima.github.io/RRTMGP.jl/latest/functional_core/)**: + the solver kernels, with runnable gray and clear-sky examples. +- **[Getter contract](https://clima.github.io/RRTMGP.jl/latest/getters/)**: the + host data-exchange interface. +- **[API reference](https://clima.github.io/RRTMGP.jl/latest/api/)**: types and + functions. + +## Integration with Climate Models + +RRTMGP.jl provides radiative fluxes and heating rates for the +[CliMA](https://github.com/CliMA) ecosystem, including: + +- [ClimaAtmos](https://github.com/CliMA/ClimaAtmos.jl) +- [ClimaCoupler](https://github.com/CliMA/ClimaCoupler.jl) + +## Getting Help + +For questions, check the [documentation](https://clima.github.io/RRTMGP.jl/latest/) +or open an issue on [GitHub](https://github.com/CliMA/RRTMGP.jl). + +## Acknowledgments - - [Robert Pincus](https://github.com/RobertPincus) for his invaluable help - - The authors of the [Fortran implementation](https://github.com/earth-system-radiation/rte-rrtmgp) of RTE-RRTMGP on which this code is based - - NASA for images of the sun (for our [logo](https://clima.github.io/RRTMGP.jl/latest/assets/logo.png)) +- [Robert Pincus](https://github.com/RobertPincus) for his invaluable help. +- The authors of the [Fortran implementation](https://github.com/earth-system-radiation/rte-rrtmgp) + of RTE-RRTMGP, on which this code is based. diff --git a/docs/Manifest.toml b/docs/Manifest.toml index 4ce7127d4..c42ea3d96 100644 --- a/docs/Manifest.toml +++ b/docs/Manifest.toml @@ -1,42 +1,116 @@ # This file is machine-generated - editing it directly is not advised -julia_version = "1.10.9" +julia_version = "1.12.6" manifest_format = "2.0" -project_hash = "e50c98923cd72fd932676f85c10cbb527e8dc93e" +project_hash = "a24ee2b7fc51f57156fa707d7a274c6fac58c965" [[deps.ANSIColoredPrinters]] git-tree-sha1 = "574baf8110975760d391c710b6341da1afa48d8c" uuid = "a4c015fc-c6ff-483c-b24f-f7ea428134e9" version = "0.0.1" +[[deps.AbstractFFTs]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "d92ad398961a3ed262d8bf04a1a2b8340f915fef" +uuid = "621f4979-c628-5d54-868e-fcf4e3e8185c" +version = "1.5.0" +weakdeps = ["ChainRulesCore", "Test"] + + [deps.AbstractFFTs.extensions] + AbstractFFTsChainRulesCoreExt = "ChainRulesCore" + AbstractFFTsTestExt = "Test" + [[deps.AbstractTrees]] git-tree-sha1 = "2d9c9a55f9c93e8887ad391fbae72f8ef55e1177" uuid = "1520ce14-60c1-5f80-bbc7-55ef81b5835c" version = "0.4.5" +[[deps.Accessors]] +deps = ["CompositionsBase", "ConstructionBase", "Dates", "InverseFunctions", "MacroTools"] +git-tree-sha1 = "7063ad1083578215c7c4bf410368150abe8d5524" +uuid = "7d9f7c33-5ae7-4f3b-8dc6-eff91059b697" +version = "0.1.45" + + [deps.Accessors.extensions] + AxisKeysExt = "AxisKeys" + IntervalSetsExt = "IntervalSets" + LinearAlgebraExt = "LinearAlgebra" + StaticArraysExt = "StaticArrays" + StructArraysExt = "StructArrays" + TestExt = "Test" + UnitfulExt = "Unitful" + + [deps.Accessors.weakdeps] + AxisKeys = "94b1ba4f-4ee9-5380-92f1-94cde586c3c5" + IntervalSets = "8197267c-284f-5f27-9208-e0e47529a953" + LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" + StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" + StructArrays = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" + Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" + [[deps.Adapt]] -deps = ["LinearAlgebra", "Requires"] -git-tree-sha1 = "f7817e2e585aa6d924fd714df1e2a84be7896c60" +deps = ["LinearAlgebra"] +git-tree-sha1 = "daa72978cd7a624246e894a4f4f067706d4e17e2" uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" -version = "4.3.0" +version = "4.7.0" +weakdeps = ["SparseArrays", "StaticArrays"] [deps.Adapt.extensions] AdaptSparseArraysExt = "SparseArrays" AdaptStaticArraysExt = "StaticArrays" - [deps.Adapt.weakdeps] - SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" - StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" +[[deps.AdaptivePredicates]] +git-tree-sha1 = "7e651ea8d262d2d74ce75fdf47c4d63c07dba7a6" +uuid = "35492f91-a3bd-45ad-95db-fcad7dcfedb7" +version = "1.2.0" + +[[deps.AliasTables]] +deps = ["PtrArrays", "Random"] +git-tree-sha1 = "9876e1e164b144ca45e9e3198d0b689cadfed9ff" +uuid = "66dad0bd-aa9a-41b7-9441-69ab47430ed8" +version = "1.1.3" + +[[deps.Animations]] +deps = ["Colors"] +git-tree-sha1 = "e092fa223bf66a3c41f9c022bd074d916dc303e7" +uuid = "27a7e980-b3e6-11e9-2bcd-0b925532e340" +version = "0.4.2" [[deps.ArgTools]] uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" -version = "1.1.1" +version = "1.1.2" [[deps.Artifacts]] uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" +version = "1.11.0" + +[[deps.Automa]] +deps = ["PrecompileTools", "TranscodingStreams"] +git-tree-sha1 = "94eab0b3ccdcac361188cc661daf69d4433c1818" +uuid = "67c07d97-cdcb-5c2c-af73-a7f9c32a568b" +version = "1.2.0" + +[[deps.AxisAlgorithms]] +deps = ["LinearAlgebra", "Random", "SparseArrays", "WoodburyMatrices"] +git-tree-sha1 = "01b8ccb13d68535d73d2b0c23e39bd23155fb712" +uuid = "13072b0f-2c55-5437-9ae7-d433b7a33950" +version = "1.1.0" + +[[deps.AxisArrays]] +deps = ["Dates", "IntervalSets", "IterTools", "RangeArrays"] +git-tree-sha1 = "4126b08903b777c88edf1754288144a0492c05ad" +uuid = "39de3d68-74b9-583c-8d2d-e117c070f3a9" +version = "0.4.8" [[deps.Base64]] uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" +version = "1.11.0" + +[[deps.BaseDirs]] +git-tree-sha1 = "8c290a1b223deaeea9aea44b235d24546da8eb98" +uuid = "18cc8868-cbac-4acf-b575-c8ff214dc66f" +version = "1.4.0" [[deps.BibInternal]] deps = ["TestItems"] @@ -46,26 +120,93 @@ version = "0.3.7" [[deps.BibParser]] deps = ["BibInternal", "DataStructures", "Dates", "JSONSchema", "TestItems", "YAML"] -git-tree-sha1 = "33478bed83bd124ea8ecd9161b3918fb4c70e529" +git-tree-sha1 = "2c9ed5108e3317571ef92c1cb0766fdd38c7d459" uuid = "13533e5b-e1c2-4e57-8cef-cac5e52f6474" -version = "0.2.2" +version = "0.2.3" [[deps.Bibliography]] deps = ["BibInternal", "BibParser", "DataStructures", "Dates", "FileIO", "TestItems", "YAML"] -git-tree-sha1 = "0f25be9708ae20d7b94d3bf9d0a91defcca4c884" +git-tree-sha1 = "0b3e1837077d570bb0c231b9548093de4fa46629" uuid = "f1be7e48-bf82-45af-a471-ae754a193061" -version = "0.3.0" +version = "0.3.1" [[deps.Bijections]] git-tree-sha1 = "a2d308fcd4c2fb90e943cf9cd2fbfa9c32b69733" uuid = "e2ed5e7c-b2de-5872-ae92-c73ca462fb04" version = "0.2.2" +[[deps.Blosc_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Lz4_jll", "Zlib_jll", "Zstd_jll"] +git-tree-sha1 = "535c80f1c0847a4c967ea945fca21becc9de1522" +uuid = "0b7ba130-8d10-5ba8-a3d6-c5182647fed9" +version = "1.21.7+0" + +[[deps.Bzip2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "1b96ea4a01afe0ea4090c5c8039690672dd13f2e" +uuid = "6e34b625-4abd-537c-b88f-471c36dfa7a0" +version = "1.0.9+0" + +[[deps.CEnum]] +git-tree-sha1 = "389ad5c84de1ae7cf0e28e381131c98ea87d54fc" +uuid = "fa961155-64e5-5f13-b03f-caf6b980ea82" +version = "0.5.0" + +[[deps.CFTime]] +deps = ["Dates", "Printf"] +git-tree-sha1 = "fad2f199d1f1ae0c8e820ab68f81f6dbf62e60b2" +uuid = "179af706-886a-5703-950a-314cd64e0468" +version = "0.2.10" + +[[deps.CRC32c]] +uuid = "8bf52ea8-c179-5cab-976a-9e18b702a9bc" +version = "1.11.0" + +[[deps.CRlibm]] +deps = ["CRlibm_jll"] +git-tree-sha1 = "66188d9d103b92b6cd705214242e27f5737a1e5e" +uuid = "96374032-68de-5a5b-8d9e-752f78720389" +version = "1.0.2" + +[[deps.CRlibm_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "e329286945d0cfc04456972ea732551869af1cfc" +uuid = "4e9b3aee-d8a1-5a3d-ad8b-7d824db253f0" +version = "1.0.1+0" + +[[deps.Cairo]] +deps = ["Cairo_jll", "Colors", "Glib_jll", "Graphics", "Libdl", "Pango_jll"] +git-tree-sha1 = "71aa551c5c33f1a4415867fe06b7844faadb0ae9" +uuid = "159f3aea-2a34-519c-b102-8c37f9878175" +version = "1.1.1" + +[[deps.CairoMakie]] +deps = ["CRC32c", "Cairo", "Cairo_jll", "Colors", "FileIO", "FreeType", "GeometryBasics", "LinearAlgebra", "Makie", "PrecompileTools"] +git-tree-sha1 = "47142129b1777e21da58cff265050b10d8560588" +uuid = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0" +version = "0.15.13" + +[[deps.Cairo_jll]] +deps = ["Artifacts", "Bzip2_jll", "CompilerSupportLibraries_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "Libdl", "Pixman_jll", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"] +git-tree-sha1 = "1fa950ebc3e37eccd51c6a8fe1f92f7d86263522" +uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a" +version = "1.18.7+0" + +[[deps.ChainRulesCore]] +deps = ["Compat", "LinearAlgebra"] +git-tree-sha1 = "12177ad6b3cad7fd50c8b3825ce24a99ad61c18f" +uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" +version = "1.26.1" +weakdeps = ["SparseArrays"] + + [deps.ChainRulesCore.extensions] + ChainRulesCoreSparseArraysExt = "SparseArrays" + [[deps.ClimaComms]] deps = ["Adapt", "Logging", "LoggingExtras"] -git-tree-sha1 = "f3961fa943c1bbbc376af910cb98db67084dc642" +git-tree-sha1 = "99825dd76c1036c5e80c1dab91bbd2c371f34446" uuid = "3a4d1b5c-c61d-41fd-a00a-5873ba7a1b0d" -version = "0.6.9" +version = "0.6.11" [deps.ClimaComms.extensions] ClimaCommsCUDAExt = "CUDA" @@ -75,17 +216,84 @@ version = "0.6.9" CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" MPI = "da04e1cc-30fd-572f-bb4f-1f8673147195" +[[deps.ClimaParams]] +deps = ["Dates", "TOML"] +git-tree-sha1 = "9741f6b6d55df618cd0d893620202e108f136980" +uuid = "5c42b081-d73a-476f-9059-fd94b934656c" +version = "1.1.1" + [[deps.CodecZlib]] deps = ["TranscodingStreams", "Zlib_jll"] git-tree-sha1 = "962834c22b66e32aa10f7611c08c8ca4e20749a9" uuid = "944b1d66-785c-5afd-91f1-9de20f533193" version = "0.7.8" +[[deps.CodecZstd]] +deps = ["TranscodingStreams", "Zstd_jll"] +git-tree-sha1 = "da54a6cd93c54950c15adf1d336cfd7d71f51a56" +uuid = "6b39b394-51ab-5f42-8807-6242bab2b4c2" +version = "0.8.7" + +[[deps.ColorBrewer]] +deps = ["Colors", "JSON"] +git-tree-sha1 = "07da79661b919001e6863b81fc572497daa58349" +uuid = "a2cac450-b92f-5266-8821-25eda20663c8" +version = "0.4.2" + +[[deps.ColorSchemes]] +deps = ["ColorTypes", "ColorVectorSpace", "Colors", "FixedPointNumbers", "PrecompileTools", "Random"] +git-tree-sha1 = "b0fd3f56fa442f81e0a47815c92245acfaaa4e34" +uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4" +version = "3.31.0" + +[[deps.ColorTypes]] +deps = ["FixedPointNumbers", "Random"] +git-tree-sha1 = "67e11ee83a43eb71ddc950302c53bf33f0690dfe" +uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f" +version = "0.12.1" +weakdeps = ["StyledStrings"] + + [deps.ColorTypes.extensions] + StyledStringsExt = "StyledStrings" + +[[deps.ColorVectorSpace]] +deps = ["ColorTypes", "FixedPointNumbers", "LinearAlgebra", "Requires", "Statistics", "TensorCore"] +git-tree-sha1 = "8b3b6f87ce8f65a2b4f857528fd8d70086cd72b1" +uuid = "c3611d14-8923-5661-9e6a-0046d554d3a4" +version = "0.11.0" +weakdeps = ["SpecialFunctions"] + + [deps.ColorVectorSpace.extensions] + SpecialFunctionsExt = "SpecialFunctions" + +[[deps.Colors]] +deps = ["ColorTypes", "FixedPointNumbers", "Reexport"] +git-tree-sha1 = "37ea44092930b1811e666c3bc38065d7d87fcc74" +uuid = "5ae59095-9a9b-59fe-a467-6f913c188581" +version = "0.13.1" + +[[deps.CommonDataModel]] +deps = ["CFTime", "DataStructures", "Dates", "DiskArrays", "Preferences", "Printf", "Statistics"] +git-tree-sha1 = "54d50f8a0a68ff4160564dfa09fc5de32465cfca" +uuid = "1fbeeb36-5f17-413c-809b-666fb144f157" +version = "0.4.4" + +[[deps.CommonSolve]] +git-tree-sha1 = "99ee296f88c12485402e37c2fd025f95ae097637" +uuid = "38540f10-b2f7-11e9-35d8-d573e4eb0ff2" +version = "0.2.9" + +[[deps.CommonSubexpressions]] +deps = ["MacroTools"] +git-tree-sha1 = "cda2cfaebb4be89c9084adaca7dd7333369715c5" +uuid = "bbf7d656-a473-5ed7-a52c-81e309532950" +version = "0.3.1" + [[deps.Compat]] deps = ["TOML", "UUIDs"] -git-tree-sha1 = "0037835448781bb46feb39866934e243886d756a" +git-tree-sha1 = "9d8a54ce4b17aa5bdce0ea5c34bc5e7c340d16ad" uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" -version = "4.18.0" +version = "4.18.1" weakdeps = ["Dates", "LinearAlgebra"] [deps.Compat.extensions] @@ -94,17 +302,118 @@ weakdeps = ["Dates", "LinearAlgebra"] [[deps.CompilerSupportLibraries_jll]] deps = ["Artifacts", "Libdl"] uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" -version = "1.1.1+0" +version = "1.3.0+1" + +[[deps.CompositionsBase]] +git-tree-sha1 = "802bb88cd69dfd1509f6670416bd4434015693ad" +uuid = "a33af91c-f02d-484b-be07-31d278c5ca2b" +version = "0.1.2" +weakdeps = ["InverseFunctions"] + + [deps.CompositionsBase.extensions] + CompositionsBaseInverseFunctionsExt = "InverseFunctions" + +[[deps.ComputePipeline]] +deps = ["Observables", "Preferences"] +git-tree-sha1 = "7bc84b769c1d384315e7b5c4ac03a6c303e6cf35" +uuid = "95dc2771-c249-4cd0-9c9f-1f3b4330693c" +version = "0.1.8" + +[[deps.ConstructionBase]] +git-tree-sha1 = "b4b092499347b18a015186eae3042f72267106cb" +uuid = "187b0558-2788-49d3-abe0-74a17ed4e7c9" +version = "1.6.0" +weakdeps = ["IntervalSets", "LinearAlgebra", "StaticArrays"] + + [deps.ConstructionBase.extensions] + ConstructionBaseIntervalSetsExt = "IntervalSets" + ConstructionBaseLinearAlgebraExt = "LinearAlgebra" + ConstructionBaseStaticArraysExt = "StaticArrays" + +[[deps.Contour]] +git-tree-sha1 = "439e35b0b36e2e5881738abc8857bd92ad6ff9a8" +uuid = "d38c429a-6771-53c6-b99e-75d170b6e991" +version = "0.6.3" + +[[deps.CoreMath]] +deps = ["CoreMath_jll"] +git-tree-sha1 = "8c0480f92b1b1796239156a1b9b1bfb1b39499b4" +uuid = "b7a15901-be09-4a0e-87d2-2e66b0e09b5a" +version = "0.1.0" + +[[deps.CoreMath_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "a692a4c1dc59a4b8bc0b6403876eb3250fde2bc3" +uuid = "a38c48d9-6df1-5ac9-9223-b6ada3b5572b" +version = "0.1.0+0" + +[[deps.DataAPI]] +git-tree-sha1 = "abe83f3a2f1b857aac70ef8b269080af17764bbe" +uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" +version = "1.16.0" [[deps.DataStructures]] -deps = ["Compat", "InteractiveUtils", "OrderedCollections"] -git-tree-sha1 = "4e1fe97fdaed23e9dc21d4d664bea76b65fc50a0" +deps = ["OrderedCollections"] +git-tree-sha1 = "6fb53a69613a0b2b68a0d12671717d307ab8b24e" uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" -version = "0.18.22" +version = "0.19.5" + +[[deps.DataValueInterfaces]] +git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6" +uuid = "e2d170a0-9d28-54be-80f0-106bbe20a464" +version = "1.0.0" [[deps.Dates]] deps = ["Printf"] uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" +version = "1.11.0" + +[[deps.DelaunayTriangulation]] +deps = ["AdaptivePredicates", "EnumX", "ExactPredicates", "Random"] +git-tree-sha1 = "c55f5a9fd67bdbc8e089b5a3111fe4292986a8e8" +uuid = "927a84f5-c5f4-47a5-9785-b46e178433df" +version = "1.6.6" + +[[deps.DiffResults]] +deps = ["StaticArraysCore"] +git-tree-sha1 = "782dd5f4561f5d267313f23853baaaa4c52ea621" +uuid = "163ba53b-c6d8-5494-b064-1a9d43ac40c5" +version = "1.1.0" + +[[deps.DiffRules]] +deps = ["IrrationalConstants", "LogExpFunctions", "NaNMath", "Random", "SpecialFunctions"] +git-tree-sha1 = "79a2aca180a85c690c58a020d47b426954b590f8" +uuid = "b552c78f-8df3-52c6-915a-8e097449b14b" +version = "1.16.0" + +[[deps.DiskArrays]] +deps = ["ConstructionBase", "LRUCache", "Mmap", "OffsetArrays"] +git-tree-sha1 = "9903195c34a488c5265d9a105f39718b7a2b3568" +uuid = "3c3547ce-8d99-4f5e-a174-61eb10b00ae3" +version = "0.4.22" + +[[deps.Distributed]] +deps = ["Random", "Serialization", "Sockets"] +uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" +version = "1.11.0" + +[[deps.Distributions]] +deps = ["AliasTables", "FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "Roots", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns"] +git-tree-sha1 = "cd3c5ac74cd3923c8945c6a81518c46abd0e73a3" +uuid = "31c24e10-a181-5473-b8eb-7969acd0382f" +version = "0.25.129" + + [deps.Distributions.extensions] + DistributionsChainRulesCoreExt = "ChainRulesCore" + DistributionsDensityInterfaceExt = "DensityInterface" + DistributionsSparseConnectivityTracerExt = "SparseConnectivityTracer" + DistributionsTestExt = "Test" + + [deps.Distributions.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + DensityInterface = "b429d917-457f-4dbc-8f4c-0cc954292b1d" + SparseConnectivityTracer = "9f842d2f-2579-4b1d-911e-f412cf18a3f5" + Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [[deps.DocStringExtensions]] git-tree-sha1 = "7442a5dfe1ebb773c29cc2962a8980f47221d76c" @@ -126,19 +435,48 @@ version = "1.4.0" [[deps.Downloads]] deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6" -version = "1.6.0" +version = "1.7.0" + +[[deps.EarCut_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "e3290f2d49e661fbd94046d7e3726ffcb2d41053" +uuid = "5ae413db-bbd1-5e63-b57d-d24a61df00f5" +version = "2.2.4+0" + +[[deps.EnumX]] +git-tree-sha1 = "c49898e8438c828577f04b92fc9368c388ac783c" +uuid = "4e289a0a-7415-4d19-859d-a7e5c4648b56" +version = "1.0.7" + +[[deps.ExactPredicates]] +deps = ["IntervalArithmetic", "Random", "StaticArrays"] +git-tree-sha1 = "83231673ea4d3d6008ac74dc5079e77ab2209d8f" +uuid = "429591f6-91af-11e9-00e2-59fbe8cec110" +version = "2.2.9" [[deps.Expat_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "d55dffd9ae73ff72f1c0482454dcf2ec6c6c4a63" +git-tree-sha1 = "e6c4a6407a949e79a9d3f249bf49e6987c80e01f" uuid = "2e619515-83b5-522b-bb60-26c02a35a201" -version = "2.6.5+0" +version = "2.8.2+0" + +[[deps.FFMPEG_jll]] +deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "JLLWrappers", "LAME_jll", "Libdl", "Ogg_jll", "OpenSSL_jll", "Opus_jll", "PCRE2_jll", "Zlib_jll", "libaom_jll", "libass_jll", "libfdk_aac_jll", "libva_jll", "libvorbis_jll", "x264_jll", "x265_jll"] +git-tree-sha1 = "7a58e45171b63ed4782f2d36fdee8713a469e6e0" +uuid = "b22a6f82-2f65-5046-a5b2-351ab43fb4e5" +version = "8.1.2+0" + +[[deps.FFTA]] +deps = ["AbstractFFTs", "DocStringExtensions", "LinearAlgebra", "MuladdMacro", "Primes", "Random", "Reexport"] +git-tree-sha1 = "65e55303b72f4a567a51b174dd2c47496efeb95a" +uuid = "b86e33f2-c0db-4aa1-a6e0-ab43e668529e" +version = "0.3.1" [[deps.FileIO]] deps = ["Pkg", "Requires", "UUIDs"] -git-tree-sha1 = "b66970a70db13f45b7e57fbda1736e1cf72174ea" +git-tree-sha1 = "8e9c059d6857607253e837730dbf780b6b151acd" uuid = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" -version = "1.17.0" +version = "1.19.0" [deps.FileIO.extensions] HTTPExt = "HTTP" @@ -146,20 +484,199 @@ version = "1.17.0" [deps.FileIO.weakdeps] HTTP = "cd3eb016-35fb-5094-929b-558a96fad6f3" +[[deps.FilePaths]] +deps = ["FilePathsBase", "MacroTools", "Reexport"] +git-tree-sha1 = "a1b2fbfe98503f15b665ed45b3d149e5d8895e4c" +uuid = "8fc22ac5-c921-52a6-82fd-178b2807b824" +version = "0.9.0" + + [deps.FilePaths.extensions] + FilePathsGlobExt = "Glob" + FilePathsURIParserExt = "URIParser" + FilePathsURIsExt = "URIs" + + [deps.FilePaths.weakdeps] + Glob = "c27321d9-0574-5035-807b-f59d2c89b15c" + URIParser = "30578b45-9adc-5946-b283-645ec420af67" + URIs = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4" + +[[deps.FilePathsBase]] +deps = ["Compat", "Dates"] +git-tree-sha1 = "3bab2c5aa25e7840a4b065805c0cdfc01f3068d2" +uuid = "48062228-2e41-5def-b9a4-89aafe57970f" +version = "0.9.24" +weakdeps = ["Mmap", "Test"] + + [deps.FilePathsBase.extensions] + FilePathsBaseMmapExt = "Mmap" + FilePathsBaseTestExt = "Test" + [[deps.FileWatching]] uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" +version = "1.11.0" + +[[deps.FillArrays]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "2f979084d1e13948a3352cf64a25df6bd3b4dca3" +uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" +version = "1.16.0" +weakdeps = ["PDMats", "SparseArrays", "StaticArrays", "Statistics"] + + [deps.FillArrays.extensions] + FillArraysPDMatsExt = "PDMats" + FillArraysSparseArraysExt = "SparseArrays" + FillArraysStaticArraysExt = "StaticArrays" + FillArraysStatisticsExt = "Statistics" + +[[deps.FixedPointNumbers]] +deps = ["Random", "Statistics"] +git-tree-sha1 = "59af96b98217c6ef4ae0dfe065ac7c20831d1a84" +uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93" +version = "0.8.6" + +[[deps.Fontconfig_jll]] +deps = ["Artifacts", "Bzip2_jll", "Expat_jll", "FreeType2_jll", "JLLWrappers", "Libdl", "Libuuid_jll", "Zlib_jll"] +git-tree-sha1 = "f85dac9a96a01087df6e3a749840015a0ca3817d" +uuid = "a3f928ae-7b40-5064-980b-68af3947d34b" +version = "2.17.1+0" + +[[deps.Format]] +git-tree-sha1 = "9c68794ef81b08086aeb32eeaf33531668d5f5fc" +uuid = "1fa38f19-a742-5d3f-a2b9-30dd87b9d5f8" +version = "1.3.7" + +[[deps.ForwardDiff]] +deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "LinearAlgebra", "LogExpFunctions", "NaNMath", "Preferences", "Printf", "Random", "SpecialFunctions"] +git-tree-sha1 = "2c5d0b0e12088cde2cf84afb2784415b1ea3dfee" +uuid = "f6369f11-7733-5829-9624-2563aa707210" +version = "1.4.1" +weakdeps = ["StaticArrays"] + + [deps.ForwardDiff.extensions] + ForwardDiffStaticArraysExt = "StaticArrays" + +[[deps.FreeType]] +deps = ["CEnum", "FreeType2_jll"] +git-tree-sha1 = "907369da0f8e80728ab49c1c7e09327bf0d6d999" +uuid = "b38be410-82b0-50bf-ab77-7b57e271db43" +version = "4.1.1" + +[[deps.FreeType2_jll]] +deps = ["Artifacts", "Bzip2_jll", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "70329abc09b886fd2c5d94ad2d9527639c421e3e" +uuid = "d7e528f0-a631-5988-bf34-fe36492bcfd7" +version = "2.14.3+1" + +[[deps.FreeTypeAbstraction]] +deps = ["BaseDirs", "ColorVectorSpace", "Colors", "FreeType", "GeometryBasics", "Mmap"] +git-tree-sha1 = "4ebb930ef4a43817991ba35db6317a05e59abd11" +uuid = "663a7486-cb36-511b-a19d-713bb74d65c9" +version = "0.10.8" + +[[deps.FriBidi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "7a214fdac5ed5f59a22c2d9a885a16da1c74bbc7" +uuid = "559328eb-81f9-559d-9380-de523a88c83c" +version = "1.0.17+0" + +[[deps.Gamma]] +git-tree-sha1 = "86f86b6168a016ed88e4ae4e64577b98c3b59e8e" +uuid = "a0844989-3bd2-4988-8bea-c9407ab0941b" +version = "1.1.0" + +[[deps.GeometryBasics]] +deps = ["EarCut_jll", "LinearAlgebra", "PrecompileTools", "Random", "StaticArrays"] +git-tree-sha1 = "364685f5ffde25deb1bbcfd5bb278a5c6b7a9b37" +uuid = "5c1252a2-5f33-56bf-86c9-59e7332b4326" +version = "0.5.11" + + [deps.GeometryBasics.extensions] + ExtentsExt = "Extents" + GeometryBasicsGeoInterfaceExt = "GeoInterface" + IntervalSetsExt = "IntervalSets" + + [deps.GeometryBasics.weakdeps] + Extents = "411431e0-e8b7-467b-b5e0-f676ba4f2910" + GeoInterface = "cf35fbd7-0cd7-5166-be24-54bfbe79505f" + IntervalSets = "8197267c-284f-5f27-9208-e0e47529a953" + +[[deps.GettextRuntime_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Libiconv_jll"] +git-tree-sha1 = "45288942190db7c5f760f59c04495064eedf9340" +uuid = "b0724c58-0f36-5564-988d-3bb0596ebc4a" +version = "0.22.4+0" + +[[deps.Giflib_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "6570366d757b50fabae9f4315ad74d2e40c0560a" +uuid = "59f7168a-df46-5410-90c8-f2779963d0ec" +version = "5.2.3+0" [[deps.Git]] -deps = ["Git_jll", "JLLWrappers", "OpenSSH_jll"] -git-tree-sha1 = "2230a9cc32394b11a3b3aa807a382e3bbab1198c" +deps = ["Git_LFS_jll", "Git_jll", "JLLWrappers", "OpenSSH_jll"] +git-tree-sha1 = "824a1890086880696fc908fe12a17bcf61738bd8" uuid = "d7ba0133-e1db-5d97-8f8c-041e4b3a1eb2" -version = "1.4.0" +version = "1.5.0" + +[[deps.Git_LFS_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "8c66e385d631bb934ff05e76d4a566c640c8df69" +uuid = "020c3dae-16b3-5ae5-87b3-4cb189e250b2" +version = "3.7.1+0" [[deps.Git_jll]] deps = ["Artifacts", "Expat_jll", "JLLWrappers", "LibCURL_jll", "Libdl", "Libiconv_jll", "OpenSSL_jll", "PCRE2_jll", "Zlib_jll"] -git-tree-sha1 = "cb151153e40ad40a6dbf984fcd767e1d266fcc9c" +git-tree-sha1 = "0dd4cfb426924210c8f42742751cbde74b27bfa3" uuid = "f8c6e375-362e-5223-8a59-34ff63f689eb" -version = "2.50.1+0" +version = "2.54.0+0" + +[[deps.Glib_jll]] +deps = ["Artifacts", "GettextRuntime_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE2_jll", "Zlib_jll"] +git-tree-sha1 = "24f6def62397474a297bfcec22384101609142ed" +uuid = "7746bdde-850d-59dc-9ae8-88ece973131d" +version = "2.86.3+0" + +[[deps.Graphics]] +deps = ["Colors", "LinearAlgebra", "NaNMath"] +git-tree-sha1 = "a641238db938fff9b2f60d08ed9030387daf428c" +uuid = "a2bd30eb-e257-5431-a919-1863eab51364" +version = "1.1.3" + +[[deps.Graphite2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "69ffb934a5c5b7e086a0b4fee3427db2556fba6e" +uuid = "3b182d85-2403-5c21-9c21-1e1f0cc25472" +version = "1.3.16+0" + +[[deps.GridLayoutBase]] +deps = ["GeometryBasics", "InteractiveUtils", "Observables"] +git-tree-sha1 = "93d5c27c8de51687a2c70ec0716e6e76f298416f" +uuid = "3955a311-db13-416c-9275-1d80ed98e5e9" +version = "0.11.2" + +[[deps.HDF5_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LibCURL_jll", "Libdl", "MPIABI_jll", "MPICH_jll", "MPIPreferences", "MPItrampoline_jll", "MicrosoftMPI_jll", "OpenMPI_jll", "OpenSSL_jll", "TOML", "Zlib_jll", "aws_c_s3_jll", "dlfcn_win32_jll", "libaec_jll", "mpif_jll"] +git-tree-sha1 = "45337643a2d97262d5fe72ce1f13e8a662d13d62" +uuid = "0234f1f7-429e-5d53-9886-15a909be8d59" +version = "2.1.2+0" + +[[deps.HarfBuzz_jll]] +deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll"] +git-tree-sha1 = "f923f9a774fcf3f5cb761bfa43aeadd689714813" +uuid = "2e76f6c2-a576-52d4-95c1-20adfe4de566" +version = "8.5.1+0" + +[[deps.Hwloc_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "XML2_jll", "Xorg_libpciaccess_jll"] +git-tree-sha1 = "c35847ca5b4997fc8418836354a56c459bcf48d8" +uuid = "e33a78d0-f292-5ffc-b300-72abe9b543c8" +version = "2.14.0+0" + +[[deps.HypergeometricFunctions]] +deps = ["Gamma", "LinearAlgebra"] +git-tree-sha1 = "18d7deab5fb0440dc6a7b6993c5c27b25420de10" +uuid = "34004b35-14d8-5ef3-9330-4cdb6864b03a" +version = "0.3.29" [[deps.IOCapture]] deps = ["Logging", "Random"] @@ -167,39 +684,224 @@ git-tree-sha1 = "b6d6bfdd7ce25b0f9b2f6b3dd56b2673a66c8770" uuid = "b5f81e59-6552-4d32-b1f0-c071b021bf89" version = "0.2.5" +[[deps.ImageAxes]] +deps = ["AxisArrays", "ImageBase", "ImageCore", "Reexport", "SimpleTraits"] +git-tree-sha1 = "e12629406c6c4442539436581041d372d69c55ba" +uuid = "2803e5a7-5153-5ecf-9a86-9b4c37f5f5ac" +version = "0.6.12" + +[[deps.ImageBase]] +deps = ["ImageCore", "Reexport"] +git-tree-sha1 = "eb49b82c172811fd2c86759fa0553a2221feb909" +uuid = "c817782e-172a-44cc-b673-b171935fbb9e" +version = "0.1.7" + +[[deps.ImageCore]] +deps = ["ColorVectorSpace", "Colors", "FixedPointNumbers", "MappedArrays", "MosaicViews", "OffsetArrays", "PaddedViews", "PrecompileTools", "Reexport"] +git-tree-sha1 = "8c193230235bbcee22c8066b0374f63b5683c2d3" +uuid = "a09fc81d-aa75-5fe9-8630-4744c3626534" +version = "0.10.5" + +[[deps.ImageIO]] +deps = ["FileIO", "IndirectArrays", "JpegTurbo", "LazyModules", "Netpbm", "OpenEXR", "PNGFiles", "QOI", "Sixel", "TiffImages", "UUIDs", "WebP"] +git-tree-sha1 = "696144904b76e1ca433b886b4e7edd067d76cbf7" +uuid = "82e4d734-157c-48bb-816b-45c225c6df19" +version = "0.6.9" + +[[deps.ImageMetadata]] +deps = ["AxisArrays", "ImageAxes", "ImageBase", "ImageCore"] +git-tree-sha1 = "2a81c3897be6fbcde0802a0ebe6796d0562f63ec" +uuid = "bc367c6b-8a6b-528e-b4bd-a4b897500b49" +version = "0.9.10" + +[[deps.Imath_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "dcc8d0cd653e55213df9b75ebc6fe4a8d3254c65" +uuid = "905a6f67-0a94-5f89-b386-d35d92009cd1" +version = "3.2.2+0" + +[[deps.IndirectArrays]] +git-tree-sha1 = "012e604e1c7458645cb8b436f8fba789a51b257f" +uuid = "9b13fd28-a010-5f03-acff-a1bbcff69959" +version = "1.0.0" + +[[deps.Inflate]] +git-tree-sha1 = "d1b1b796e47d94588b3757fe84fbf65a5ec4a80d" +uuid = "d25df0c9-e2be-5dd7-82c8-3ad0b3e990b9" +version = "0.1.5" + +[[deps.IntegerMathUtils]] +git-tree-sha1 = "4c1acff2dc6b6967e7e750633c50bc3b8d83e617" +uuid = "18e54dd8-cb9d-406c-a71d-865a43cbb235" +version = "0.1.3" + [[deps.InteractiveUtils]] deps = ["Markdown"] uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" +version = "1.11.0" + +[[deps.Interpolations]] +deps = ["Adapt", "AxisAlgorithms", "ChainRulesCore", "LinearAlgebra", "OffsetArrays", "Random", "Ratios", "SharedArrays", "SparseArrays", "StaticArrays", "WoodburyMatrices"] +git-tree-sha1 = "48922d06068130f87e43edef52382e6a94305ae6" +uuid = "a98d9a8b-a2ab-59e6-89dd-64a1c18fca59" +version = "0.16.3" +weakdeps = ["ForwardDiff", "Unitful"] + + [deps.Interpolations.extensions] + InterpolationsForwardDiffExt = "ForwardDiff" + InterpolationsUnitfulExt = "Unitful" + +[[deps.IntervalArithmetic]] +deps = ["CRlibm", "CoreMath", "MacroTools", "OpenBLASConsistentFPCSR_jll", "Printf", "Random", "RoundingEmulator"] +git-tree-sha1 = "c3ee408ae340565f41699e3a3fa1053698c7626e" +uuid = "d1acc4aa-44c8-5952-acd4-ba5d80a2a253" +version = "1.0.10" + + [deps.IntervalArithmetic.extensions] + IntervalArithmeticArblibExt = "Arblib" + IntervalArithmeticDiffRulesExt = "DiffRules" + IntervalArithmeticForwardDiffExt = "ForwardDiff" + IntervalArithmeticIntervalSetsExt = "IntervalSets" + IntervalArithmeticIrrationalConstantsExt = "IrrationalConstants" + IntervalArithmeticLinearAlgebraExt = "LinearAlgebra" + IntervalArithmeticRecipesBaseExt = "RecipesBase" + IntervalArithmeticSparseArraysExt = "SparseArrays" + + [deps.IntervalArithmetic.weakdeps] + Arblib = "fb37089c-8514-4489-9461-98f9c8763369" + DiffRules = "b552c78f-8df3-52c6-915a-8e097449b14b" + ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" + IntervalSets = "8197267c-284f-5f27-9208-e0e47529a953" + IrrationalConstants = "92d709cd-6900-40b7-9082-c6be49f344b6" + LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" + RecipesBase = "3cdcf5f2-1ef4-517c-9805-6587b60abb01" + SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" + +[[deps.IntervalSets]] +git-tree-sha1 = "79d6bd28c8d9bccc2229784f1bd637689b256377" +uuid = "8197267c-284f-5f27-9208-e0e47529a953" +version = "0.7.14" + + [deps.IntervalSets.extensions] + IntervalSetsRandomExt = "Random" + IntervalSetsRecipesBaseExt = "RecipesBase" + IntervalSetsStatisticsExt = "Statistics" + + [deps.IntervalSets.weakdeps] + Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" + RecipesBase = "3cdcf5f2-1ef4-517c-9805-6587b60abb01" + Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" + +[[deps.InverseFunctions]] +git-tree-sha1 = "a779299d77cd080bf77b97535acecd73e1c5e5cb" +uuid = "3587e190-3f89-42d0-90ee-14403ec27112" +version = "0.1.17" +weakdeps = ["Dates", "Test"] + + [deps.InverseFunctions.extensions] + InverseFunctionsDatesExt = "Dates" + InverseFunctionsTestExt = "Test" + +[[deps.IrrationalConstants]] +git-tree-sha1 = "b2d91fe939cae05960e760110b328288867b5758" +uuid = "92d709cd-6900-40b7-9082-c6be49f344b6" +version = "0.2.6" + +[[deps.Isoband]] +deps = ["isoband_jll"] +git-tree-sha1 = "f9b6d97355599074dc867318950adaa6f9946137" +uuid = "f1662d9f-8043-43de-a69a-05efc1cc6ff4" +version = "0.1.1" + +[[deps.IterTools]] +git-tree-sha1 = "42d5f897009e7ff2cf88db414a389e5ed1bdd023" +uuid = "c8e1da08-722c-5040-9ed9-7db0dc04731e" +version = "1.10.0" + +[[deps.IteratorInterfaceExtensions]] +git-tree-sha1 = "a3f24677c21f5bbe9d2a714f95dcd58337fb2856" +uuid = "82899510-4779-5014-852e-03e436cf321d" +version = "1.0.0" [[deps.JLLWrappers]] deps = ["Artifacts", "Preferences"] -git-tree-sha1 = "0533e564aae234aff59ab625543145446d8b6ec2" +git-tree-sha1 = "7204148362dafe5fe6a273f855b8ccbe4df8173e" uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" -version = "1.7.1" +version = "1.8.0" [[deps.JSON]] -deps = ["Dates", "Mmap", "Parsers", "Unicode"] -git-tree-sha1 = "31e996f0a15c7b280ba9f76636b3ff9e2ae58c9a" +deps = ["Dates", "Logging", "Parsers", "PrecompileTools", "StructUtils", "UUIDs", "Unicode"] +git-tree-sha1 = "c89d196f5ffb64bfbf80985b699ea913b0d2c211" uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" -version = "0.21.4" - -[[deps.JSON3]] -deps = ["Dates", "Mmap", "Parsers", "PrecompileTools", "StructTypes", "UUIDs"] -git-tree-sha1 = "411eccfe8aba0814ffa0fdf4860913ed09c34975" -uuid = "0f8b85d8-7281-11e9-16c2-39a750bddbf1" -version = "1.14.3" +version = "1.6.1" - [deps.JSON3.extensions] - JSON3ArrowExt = ["ArrowTypes"] + [deps.JSON.extensions] + JSONArrowExt = ["ArrowTypes"] - [deps.JSON3.weakdeps] + [deps.JSON.weakdeps] ArrowTypes = "31f734f8-188a-4ce0-8406-c8a06bd891cd" [[deps.JSONSchema]] -deps = ["Downloads", "JSON", "JSON3", "URIs"] -git-tree-sha1 = "243f1cdb476835d7c249deb9f29ad6b7827da7d3" +deps = ["Downloads", "JSON", "URIs"] +git-tree-sha1 = "d13f79c4242969874da7d00bda17d59bc7699aa7" uuid = "7d188eb4-7ad8-530c-ae41-71a32a6d4692" -version = "1.4.1" +version = "1.5.0" + + [deps.JSONSchema.extensions] + JSONSchemaJSON3Ext = "JSON3" + + [deps.JSONSchema.weakdeps] + JSON3 = "0f8b85d8-7281-11e9-16c2-39a750bddbf1" + +[[deps.JpegTurbo]] +deps = ["CEnum", "FileIO", "ImageCore", "JpegTurbo_jll", "TOML"] +git-tree-sha1 = "9496de8fb52c224a2e3f9ff403947674517317d9" +uuid = "b835a17e-a41a-41e7-81f0-2f016b05efe0" +version = "0.1.6" + +[[deps.JpegTurbo_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "1dae3057da6f2b9c857afef03177bbdc7c4afe92" +uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" +version = "3.2.0+0" + +[[deps.JuliaSyntaxHighlighting]] +deps = ["StyledStrings"] +uuid = "ac6e5ff7-fb65-4e79-a425-ec3bc9c03011" +version = "1.12.0" + +[[deps.KernelDensity]] +deps = ["Distributions", "DocStringExtensions", "FFTA", "Interpolations", "StatsBase"] +git-tree-sha1 = "9eda8292dd3268b3b7ec9df21bbfac24e177ec52" +uuid = "5ab0869b-81aa-558d-bb23-cbf5423bbe9b" +version = "0.6.12" + +[[deps.LAME_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "059aabebaa7c82ccb853dd4a0ee9d17796f7e1bc" +uuid = "c1c5ebd0-6772-5130-a774-d5fcae4a789d" +version = "3.100.3+0" + +[[deps.LERC_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "17b94ecafcfa45e8360a4fc9ca6b583b049e4e37" +uuid = "88015f11-f218-50d7-93a8-a6af411a945d" +version = "4.1.0+0" + +[[deps.LLVMOpenMP_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "3ac157462e1e800777cc97d0eafd1bdb5356a470" +uuid = "1d63c593-3942-5779-bab2-d838dc0a180e" +version = "21.1.8+0" + +[[deps.LRUCache]] +git-tree-sha1 = "5519b95a490ff5fe629c4a7aa3b3dfc9160498b3" +uuid = "8ac3fa9e-de4c-5943-b1dc-09c6b5f20637" +version = "1.6.2" +weakdeps = ["Serialization"] + + [deps.LRUCache.extensions] + SerializationExt = ["Serialization"] [[deps.LaTeXStrings]] git-tree-sha1 = "dda21b8cbd6a6c40d9d02a73230f9d70fed6918c" @@ -211,32 +913,56 @@ git-tree-sha1 = "0f2da712350b020bc3957f269c9caad516383ee0" uuid = "0e77f7df-68c5-4e49-93ce-4cd80f5598bf" version = "1.3.0" +[[deps.LazyArtifacts]] +deps = ["Artifacts", "Pkg"] +uuid = "4af54fe1-eca0-43a8-85a7-787d91b784e3" +version = "1.11.0" + +[[deps.LazyModules]] +git-tree-sha1 = "a560dd966b386ac9ae60bdd3a3d3a326062d3c3e" +uuid = "8cdb02fc-e678-4876-92c5-9defec4f444e" +version = "0.3.1" + [[deps.LibCURL]] deps = ["LibCURL_jll", "MozillaCACerts_jll"] uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21" version = "0.6.4" [[deps.LibCURL_jll]] -deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"] +deps = ["Artifacts", "LibSSH2_jll", "Libdl", "OpenSSL_jll", "Zlib_jll", "nghttp2_jll"] uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0" -version = "8.4.0+0" +version = "8.15.0+0" [[deps.LibGit2]] -deps = ["Base64", "LibGit2_jll", "NetworkOptions", "Printf", "SHA"] +deps = ["LibGit2_jll", "NetworkOptions", "Printf", "SHA"] uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" +version = "1.11.0" [[deps.LibGit2_jll]] -deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll"] +deps = ["Artifacts", "LibSSH2_jll", "Libdl", "OpenSSL_jll"] uuid = "e37daf67-58a4-590a-8e99-b0245dd2ffc5" -version = "1.6.4+0" +version = "1.9.0+0" [[deps.LibSSH2_jll]] -deps = ["Artifacts", "Libdl", "MbedTLS_jll"] +deps = ["Artifacts", "Libdl", "OpenSSL_jll"] uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8" -version = "1.11.0+1" +version = "1.11.3+1" [[deps.Libdl]] uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" +version = "1.11.0" + +[[deps.Libffi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "c8da7e6a91781c41a863611c7e966098d783c57a" +uuid = "e9f186c6-92d2-5b65-8a66-fee21dc1b490" +version = "3.4.7+0" + +[[deps.Libglvnd_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll", "Xorg_libXext_jll"] +git-tree-sha1 = "d36c21b9e7c172a44a10484125024495e2625ac0" +uuid = "7e76a0d4-f3c7-5321-8279-8d96eeed0f29" +version = "1.7.1+1" [[deps.Libiconv_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] @@ -244,108 +970,417 @@ git-tree-sha1 = "be484f5c92fad0bd8acfef35fe017900b0b73809" uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531" version = "1.18.0+0" +[[deps.Libmount_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "cc3ad4faf30015a3e8094c9b5b7f19e85bdf2386" +uuid = "4b2f31a3-9ecc-558c-b454-b3730dcb73e9" +version = "2.42.0+0" + +[[deps.Libtiff_jll]] +deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "LERC_jll", "Libdl", "XZ_jll", "Zlib_jll", "Zstd_jll"] +git-tree-sha1 = "aebd334d06cee9f24cea70bd19a39749daf73881" +uuid = "89763e89-9b03-5906-acba-b20f662cd828" +version = "4.7.3+0" + +[[deps.Libuuid_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "d620582b1f0cbe2c72dd1d5bd195a9ce73370ab1" +uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700" +version = "2.42.0+0" + [[deps.LinearAlgebra]] deps = ["Libdl", "OpenBLAS_jll", "libblastrampoline_jll"] uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" +version = "1.12.0" + +[[deps.Literate]] +deps = ["Base64", "IOCapture", "JSON", "REPL"] +git-tree-sha1 = "bb26d8b8ed0fa451ce3511e99c950653a2f31fe1" +uuid = "98b081ad-f1c9-55d3-8b20-4c87d4299306" +version = "2.21.0" + +[[deps.LogExpFunctions]] +deps = ["DocStringExtensions", "IrrationalConstants", "LinearAlgebra"] +git-tree-sha1 = "bba2d9aa057d8f126415de240573e86a8f39d2a1" +uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688" +version = "1.0.1" + + [deps.LogExpFunctions.extensions] + LogExpFunctionsChainRulesCoreExt = "ChainRulesCore" + LogExpFunctionsChangesOfVariablesExt = "ChangesOfVariables" + LogExpFunctionsInverseFunctionsExt = "InverseFunctions" + + [deps.LogExpFunctions.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + ChangesOfVariables = "9e997f8a-9a97-42d5-a9f1-ce6bfc15e2c0" + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" [[deps.Logging]] uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" +version = "1.11.0" [[deps.LoggingExtras]] deps = ["Dates", "Logging"] -git-tree-sha1 = "f02b56007b064fbfddb4c9cd60161b6dd0f40df3" +git-tree-sha1 = "f00544d95982ea270145636c181ceda21c4e2575" uuid = "e6f89c97-d47a-5376-807f-9c37f3926c36" -version = "1.1.0" +version = "1.2.0" + +[[deps.Lz4_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "191686b1ac1ea9c89fc52e996ad15d1d241d1e33" +uuid = "5ced341a-0733-55b8-9ab6-a4889d929147" +version = "1.10.1+0" + +[[deps.MPIABI_jll]] +deps = ["Artifacts", "Hwloc_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] +git-tree-sha1 = "9be143b6045719e8fb019d2b3bc2aebad1184fef" +uuid = "b5ada748-db0f-5fc0-8972-9331c762740c" +version = "0.1.5+0" + +[[deps.MPICH_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Hwloc_jll", "JLLWrappers", "Libdl", "MPIPreferences", "TOML"] +git-tree-sha1 = "07dbec8aab01696edc0151a401a6cdfe95b9b885" +uuid = "7cb0a576-ebde-5e09-9194-50597f1243b4" +version = "5.0.1+0" + +[[deps.MPIPreferences]] +deps = ["Libdl", "Preferences"] +git-tree-sha1 = "8e98d5d80b87403c311fd51e8455d4546ba7a5f8" +uuid = "3da0fdf6-3ccc-4f1b-acd9-58baa6c99267" +version = "0.1.12" + +[[deps.MPItrampoline_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] +git-tree-sha1 = "675df097f8eeb28998b2cfe3b25655af73d5f7df" +uuid = "f1f71cc9-e9ae-5b93-9b94-4fe0e1ad3748" +version = "5.5.6+0" + +[[deps.MacroTools]] +git-tree-sha1 = "1e0228a030642014fe5cfe68c2c0a818f9e3f522" +uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" +version = "0.5.16" + +[[deps.Makie]] +deps = ["Animations", "Base64", "CRC32c", "ColorBrewer", "ColorSchemes", "ColorTypes", "Colors", "ComputePipeline", "Contour", "Dates", "DelaunayTriangulation", "Distributions", "DocStringExtensions", "Downloads", "FFMPEG_jll", "FileIO", "FilePaths", "FixedPointNumbers", "Format", "FreeType", "FreeTypeAbstraction", "GeometryBasics", "GridLayoutBase", "ImageBase", "ImageIO", "InteractiveUtils", "Interpolations", "IntervalSets", "InverseFunctions", "Isoband", "KernelDensity", "LaTeXStrings", "LinearAlgebra", "MacroTools", "Markdown", "MathTeXEngine", "Observables", "OffsetArrays", "PNGFiles", "Packing", "Pkg", "PlotUtils", "PolygonOps", "PrecompileTools", "Printf", "REPL", "Random", "RelocatableFolders", "Scratch", "ShaderAbstractions", "SignedDistanceFields", "SparseArrays", "Statistics", "StatsBase", "StatsFuns", "StructArrays", "TriplotBase", "UnicodeFun", "Unitful"] +git-tree-sha1 = "f2c8715d05bf10f9d4dc354e69dee30b6be53239" +uuid = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a" +version = "0.24.13" + + [deps.Makie.extensions] + MakieDynamicQuantitiesExt = "DynamicQuantities" + + [deps.Makie.weakdeps] + DynamicQuantities = "06fc5a27-2a28-4c7c-a15d-362465fb6821" + +[[deps.MappedArrays]] +git-tree-sha1 = "0ee4497a4e80dbd29c058fcee6493f5219556f40" +uuid = "dbb5928d-eab1-5f90-85c2-b9b0edb7c900" +version = "0.4.3" [[deps.Markdown]] -deps = ["Base64"] +deps = ["Base64", "JuliaSyntaxHighlighting", "StyledStrings"] uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" +version = "1.11.0" [[deps.MarkdownAST]] deps = ["AbstractTrees", "Markdown"] -git-tree-sha1 = "465a70f0fc7d443a00dcdc3267a497397b8a3899" +git-tree-sha1 = "93c718d892e73931841089cdc0e982d6dd9cc87b" uuid = "d0879d2d-cac2-40c8-9cee-1863dc0c7391" -version = "0.1.2" +version = "0.1.3" -[[deps.MbedTLS_jll]] -deps = ["Artifacts", "Libdl"] -uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" -version = "2.28.2+1" +[[deps.MathTeXEngine]] +deps = ["AbstractTrees", "Automa", "DataStructures", "FreeTypeAbstraction", "GeometryBasics", "LaTeXStrings", "REPL", "RelocatableFolders", "UnicodeFun"] +git-tree-sha1 = "aa1078778be5a8e5259ff04fbc3d258b3e78d464" +uuid = "0a4f8689-d25c-4efe-a92b-7142dfc1aa53" +version = "0.6.9" + +[[deps.MicrosoftMPI_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "bc95bf4149bf535c09602e3acdf950d9b4376227" +uuid = "9237b28f-5490-5468-be7b-bb81f5f5e6cf" +version = "10.1.4+3" + +[[deps.Missings]] +deps = ["DataAPI"] +git-tree-sha1 = "ec4f7fbeab05d7747bdf98eb74d130a2a2ed298d" +uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28" +version = "1.2.0" [[deps.Mmap]] uuid = "a63ad114-7e13-5084-954f-fe012c677804" +version = "1.11.0" + +[[deps.MosaicViews]] +deps = ["MappedArrays", "OffsetArrays", "PaddedViews", "StackViews"] +git-tree-sha1 = "7b86a5d4d70a9f5cdf2dacb3cbe6d251d1a61dbe" +uuid = "e94cdb99-869f-56ef-bcf0-1ae2bcbe0389" +version = "0.3.4" [[deps.MozillaCACerts_jll]] uuid = "14a3606d-f60d-562e-9121-12d972cd8159" -version = "2023.1.10" +version = "2025.11.4" + +[[deps.MuladdMacro]] +deps = ["PrecompileTools"] +git-tree-sha1 = "e8dcbeef032ba2f9051a44ac22b4e54e3a1a0099" +uuid = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221" +version = "0.2.6" + +[[deps.NCDatasets]] +deps = ["CFTime", "CommonDataModel", "DataStructures", "Dates", "DiskArrays", "NetCDF_jll", "NetworkOptions", "Printf"] +git-tree-sha1 = "5eb7747d10437f5acb2675c1f865ffa0353f3f9c" +uuid = "85f8d34a-cbdd-5861-8df4-14fed0d494ab" +version = "0.14.15" + + [deps.NCDatasets.extensions] + NCDatasetsMPIExt = "MPI" + + [deps.NCDatasets.weakdeps] + MPI = "da04e1cc-30fd-572f-bb4f-1f8673147195" + +[[deps.NaNMath]] +deps = ["OpenLibm_jll"] +git-tree-sha1 = "dbd2e8cd2c1c27f0b584f6661b4309609c5a685e" +uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" +version = "1.1.4" + +[[deps.NetCDF_jll]] +deps = ["Artifacts", "Blosc_jll", "Bzip2_jll", "HDF5_jll", "JLLWrappers", "LazyArtifacts", "LibCURL_jll", "Libdl", "MPIABI_jll", "MPICH_jll", "MPIPreferences", "MPItrampoline_jll", "MicrosoftMPI_jll", "OpenMPI_jll", "TOML", "XML2_jll", "Zlib_jll", "Zstd_jll", "libaec_jll", "libzip_jll"] +git-tree-sha1 = "8a36db9b934b0e72583e624abc8f3b3d60554f2c" +uuid = "7243133f-43d8-5620-bbf4-c2c921802cf3" +version = "401.1000.0+0" + +[[deps.Netpbm]] +deps = ["FileIO", "ImageCore", "ImageMetadata"] +git-tree-sha1 = "d92b107dbb887293622df7697a2223f9f8176fcd" +uuid = "f09324ee-3d7c-5217-9330-fc30815ba969" +version = "1.1.1" [[deps.NetworkOptions]] uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" -version = "1.2.0" +version = "1.3.0" + +[[deps.Observables]] +git-tree-sha1 = "7438a59546cf62428fc9d1bc94729146d37a7225" +uuid = "510215fc-4207-5dde-b226-833fc4488ee2" +version = "0.5.5" + +[[deps.OffsetArrays]] +git-tree-sha1 = "117432e406b5c023f665fa73dc26e79ec3630151" +uuid = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" +version = "1.17.0" +weakdeps = ["Adapt"] + + [deps.OffsetArrays.extensions] + OffsetArraysAdaptExt = "Adapt" + +[[deps.Ogg_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "b6aa4566bb7ae78498a5e68943863fa8b5231b59" +uuid = "e7412a2a-1a6e-54c0-be00-318e2571c051" +version = "1.3.6+0" + +[[deps.OpenBLASConsistentFPCSR_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl"] +git-tree-sha1 = "dafdaa3ff15f20ff703d909d3a6f574a5b0586f3" +uuid = "6cdc7f73-28fd-5e50-80fb-958a8875b1af" +version = "0.3.33+1" [[deps.OpenBLAS_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" -version = "0.3.23+4" +version = "0.3.29+0" + +[[deps.OpenEXR]] +deps = ["Colors", "FileIO", "OpenEXR_jll"] +git-tree-sha1 = "97db9e07fe2091882c765380ef58ec553074e9c7" +uuid = "52e1d378-f018-4a11-a4be-720524705ac7" +version = "0.3.3" + +[[deps.OpenEXR_jll]] +deps = ["Artifacts", "Imath_jll", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "0d621a4beb5e48d195f907c3c5b0bea285d9ff9d" +uuid = "18a262bb-aa17-5467-a713-aee519bc75cb" +version = "3.4.13+0" + +[[deps.OpenLibm_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "05823500-19ac-5b8b-9628-191a04bc5112" +version = "0.8.7+0" + +[[deps.OpenMPI_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Hwloc_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML", "Zlib_jll"] +git-tree-sha1 = "6d6c0ca4824268c1a7dca1f4721c535ac63d9074" +uuid = "fe0851c0-eecd-5654-98d4-656369965a5c" +version = "5.0.11+0" [[deps.OpenSSH_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "OpenSSL_jll", "Zlib_jll"] -git-tree-sha1 = "cb7acd5d10aff809b4d0191dfe1956c2edf35800" +git-tree-sha1 = "b862f484cf659efabffd601c5c920e981c942b63" uuid = "9bd350c2-7e96-507f-8002-3f2e150b4e1b" -version = "10.0.1+0" +version = "10.4.1+0" [[deps.OpenSSL_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "2ae7d4ddec2e13ad3bddf5c0796f7547cf682391" +deps = ["Artifacts", "Libdl"] uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" -version = "3.5.2+0" +version = "3.5.4+0" + +[[deps.OpenSpecFun_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl"] +git-tree-sha1 = "1346c9208249809840c91b26703912dff463d335" +uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" +version = "0.5.6+0" + +[[deps.Opus_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "e2bb57a313a74b8104064b7efd01406c0a50d2ff" +uuid = "91d4177d-7536-5919-b921-800302f37372" +version = "1.6.1+0" [[deps.OrderedCollections]] -git-tree-sha1 = "05868e21324cede2207c6f0f466b4bfef6d5e7ee" +git-tree-sha1 = "94ba93778373a53bfd5a0caaf7d809c445292ff4" uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" -version = "1.8.1" +version = "1.8.2" [[deps.PCRE2_jll]] deps = ["Artifacts", "Libdl"] uuid = "efcefdf7-47ab-520b-bdef-62a2eaa19f15" -version = "10.42.0+1" +version = "10.44.0+1" + +[[deps.PDMats]] +deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] +git-tree-sha1 = "26766d4b5f1a410c218a19b85a672c6edb693c65" +uuid = "90014a1f-27ba-587c-ab20-58faa44d9150" +version = "0.11.40" +weakdeps = ["StatsBase"] + + [deps.PDMats.extensions] + StatsBaseExt = "StatsBase" + +[[deps.PNGFiles]] +deps = ["Base64", "CEnum", "ImageCore", "IndirectArrays", "OffsetArrays", "libpng_jll"] +git-tree-sha1 = "32b657a0d57c310a1a172bfc8c8cf68c5e674323" +uuid = "f57f5aa1-a3ce-4bc8-8ab9-96f992907883" +version = "0.4.5" + +[[deps.Packing]] +deps = ["GeometryBasics"] +git-tree-sha1 = "bc5bf2ea3d5351edf285a06b0016788a121ce92c" +uuid = "19eb6ba3-879d-56ad-ad62-d5c202156566" +version = "0.5.1" + +[[deps.PaddedViews]] +deps = ["OffsetArrays"] +git-tree-sha1 = "0fac6313486baae819364c52b4f483450a9d793f" +uuid = "5432bcbf-9aad-5242-b902-cca2824c8663" +version = "0.5.12" + +[[deps.Pango_jll]] +deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "FriBidi_jll", "Glib_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl"] +git-tree-sha1 = "58e5ed5e386e156bd93e86b305ebd21ac63d2d04" +uuid = "36c8627f-9965-5494-a995-c6b170f724f3" +version = "1.57.1+0" [[deps.Parsers]] deps = ["Dates", "PrecompileTools", "UUIDs"] -git-tree-sha1 = "7d2f8f21da5db6a806faf7b9b292296da42b2810" +git-tree-sha1 = "32a4e09c5f29402573d673901778a0e03b0807b9" uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" -version = "2.8.3" +version = "2.8.6" + +[[deps.Pixman_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LLVMOpenMP_jll", "Libdl"] +git-tree-sha1 = "e4a6721aa89e62e5d4217c0b21bd714263779dda" +uuid = "30392449-352a-5448-841d-b1acce4e97dc" +version = "0.46.4+0" [[deps.Pkg]] -deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"] +deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "Random", "SHA", "TOML", "Tar", "UUIDs", "p7zip_jll"] uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" -version = "1.10.0" +version = "1.12.1" +weakdeps = ["REPL"] + + [deps.Pkg.extensions] + REPLExt = "REPL" + +[[deps.PkgVersion]] +deps = ["Pkg"] +git-tree-sha1 = "f9501cc0430a26bc3d156ae1b5b0c1b47af4d6da" +uuid = "eebad327-c553-4316-9ea0-9fa01ccd7688" +version = "0.3.3" + +[[deps.PlotUtils]] +deps = ["ColorSchemes", "Colors", "Dates", "PrecompileTools", "Printf", "Random", "Reexport", "StableRNGs", "Statistics"] +git-tree-sha1 = "26ca162858917496748aad52bb5d3be4d26a228a" +uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" +version = "1.4.4" + +[[deps.PolygonOps]] +git-tree-sha1 = "77b3d3605fc1cd0b42d95eba87dfcd2bf67d5ff6" +uuid = "647866c9-e3ac-4575-94e7-e3d426903924" +version = "0.1.2" [[deps.PrecompileTools]] deps = ["Preferences"] -git-tree-sha1 = "5aa36f7049a63a1528fe8f7c3f2113413ffd4e1f" +git-tree-sha1 = "edbeefc7a4889f528644251bdb5fc9ab5348bc2c" uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a" -version = "1.2.1" +version = "1.3.4" [[deps.Preferences]] deps = ["TOML"] -git-tree-sha1 = "9306f6085165d270f7e3db02af26a400d580f5c6" +git-tree-sha1 = "8b770b60760d4451834fe79dd483e318eee709c4" uuid = "21216c6a-2e73-6563-6e65-726566657250" -version = "1.4.3" +version = "1.5.2" + +[[deps.Primes]] +deps = ["IntegerMathUtils"] +git-tree-sha1 = "25cdd1d20cd005b52fc12cb6be3f75faaf59bb9b" +uuid = "27ebfcd6-29c5-5fa9-bf4b-fb8fc14df3ae" +version = "0.5.7" [[deps.Printf]] deps = ["Unicode"] uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" +version = "1.11.0" + +[[deps.ProgressMeter]] +deps = ["Distributed", "Printf"] +git-tree-sha1 = "fbb92c6c56b34e1a2c4c36058f68f332bec840e7" +uuid = "92933f4c-e287-5a05-a399-4b506db050ca" +version = "1.11.0" + +[[deps.PtrArrays]] +git-tree-sha1 = "4fbbafbc6251b883f4d2705356f3641f3652a7fe" +uuid = "43287f4e-b6f4-7ad1-bb20-aadabca52c3d" +version = "1.4.0" + +[[deps.QOI]] +deps = ["ColorTypes", "FileIO", "FixedPointNumbers"] +git-tree-sha1 = "472daaa816895cb7aee81658d4e7aec901fa1106" +uuid = "4b34888f-f399-49d4-9bb3-47ed5cae4e65" +version = "1.0.2" + +[[deps.QuadGK]] +deps = ["DataStructures", "LinearAlgebra"] +git-tree-sha1 = "5e8e8b0ab68215d7a2b14b9921a946fee794749e" +uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" +version = "2.11.3" + + [deps.QuadGK.extensions] + QuadGKEnzymeExt = "Enzyme" + + [deps.QuadGK.weakdeps] + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" [[deps.REPL]] -deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] +deps = ["InteractiveUtils", "JuliaSyntaxHighlighting", "Markdown", "Sockets", "StyledStrings", "Unicode"] uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" +version = "1.11.0" [[deps.RRTMGP]] -deps = ["Adapt", "Artifacts", "ClimaComms", "DocStringExtensions", "Random"] +deps = ["Adapt", "Artifacts", "ClimaComms", "Random", "Serialization"] path = ".." uuid = "a01a1ee8-cea4-48fc-987c-fc7878d79da1" -version = "0.21.31" +version = "0.21.9" [deps.RRTMGP.extensions] CreateParametersExt = "ClimaParams" @@ -360,6 +1395,27 @@ version = "0.21.31" [[deps.Random]] deps = ["SHA"] uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" +version = "1.11.0" + +[[deps.RangeArrays]] +git-tree-sha1 = "b9039e93773ddcfc828f12aadf7115b4b4d225f5" +uuid = "b3c3ace0-ae52-54e7-9d0b-2c1406fd6b9d" +version = "0.3.2" + +[[deps.Ratios]] +deps = ["Requires"] +git-tree-sha1 = "1342a47bf3260ee108163042310d26f2be5ec90b" +uuid = "c84ed2f1-dad5-54f0-aa8e-dbefe2724439" +version = "0.4.5" +weakdeps = ["FixedPointNumbers"] + + [deps.Ratios.extensions] + RatiosFixedPointNumbersExt = "FixedPointNumbers" + +[[deps.Reexport]] +git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b" +uuid = "189a3867-3050-52da-a836-e630ba90ab69" +version = "1.2.2" [[deps.RegistryInstances]] deps = ["LazilyInitializedFields", "Pkg", "TOML", "Tar"] @@ -367,21 +1423,197 @@ git-tree-sha1 = "ffd19052caf598b8653b99404058fce14828be51" uuid = "2792f1a3-b283-48e8-9a74-f99dce5104f3" version = "0.1.0" +[[deps.RelocatableFolders]] +deps = ["SHA", "Scratch"] +git-tree-sha1 = "ffdaf70d81cf6ff22c2b6e733c900c3321cab864" +uuid = "05181044-ff0b-4ac5-8273-598c1e38db00" +version = "1.0.1" + [[deps.Requires]] deps = ["UUIDs"] git-tree-sha1 = "62389eeff14780bfe55195b7204c0d8738436d64" uuid = "ae029012-a4dd-5104-9daa-d747884805df" version = "1.3.1" +[[deps.Rmath]] +deps = ["Random", "Rmath_jll"] +git-tree-sha1 = "5b3d50eb374cea306873b371d3f8d3915a018f0b" +uuid = "79098fc4-a85e-5d69-aa6a-4863f24498fa" +version = "0.9.0" + +[[deps.Rmath_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "58cdd8fb2201a6267e1db87ff148dd6c1dbd8ad8" +uuid = "f50d1b31-88e8-58de-be2c-1cc44531875f" +version = "0.5.1+0" + +[[deps.RootSolvers]] +deps = ["ForwardDiff", "Printf"] +git-tree-sha1 = "cb118a120361be967f172791efb2ee4badacd7c8" +uuid = "7181ea78-2dcb-4de3-ab41-2b8ab5a31e74" +version = "1.0.3" + +[[deps.Roots]] +deps = ["Accessors", "CommonSolve", "Printf"] +git-tree-sha1 = "46d2af536e1afe8f04cf31a59298adadf96e99e6" +uuid = "f2b01f46-fcfa-551c-844a-d8ac1e96c665" +version = "3.0.2" + + [deps.Roots.extensions] + RootsChainRulesCoreExt = "ChainRulesCore" + RootsForwardDiffExt = "ForwardDiff" + RootsIntervalRootFindingExt = "IntervalRootFinding" + RootsSymPyExt = "SymPy" + RootsSymPyPythonCallExt = "SymPyPythonCall" + RootsUnitfulExt = "Unitful" + + [deps.Roots.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" + IntervalRootFinding = "d2bf35a9-74e0-55ec-b149-d360ff49b807" + SymPy = "24249f21-da20-56a4-8eb1-6a02cf4ae2e6" + SymPyPythonCall = "bc8888f7-b21e-4b7c-a06a-5d9c9496438c" + Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" + +[[deps.RoundingEmulator]] +git-tree-sha1 = "40b9edad2e5287e05bd413a38f61a8ff55b9557b" +uuid = "5eaf0fd0-dfba-4ccb-bf02-d820a40db705" +version = "0.2.1" + [[deps.SHA]] uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" version = "0.7.0" +[[deps.SIMD]] +deps = ["PrecompileTools"] +git-tree-sha1 = "e24dc23107d426a096d3eae6c165b921e74c18e4" +uuid = "fdea26ae-647d-5447-a871-4b548cad5224" +version = "3.7.2" + +[[deps.Scratch]] +deps = ["Dates"] +git-tree-sha1 = "9b81b8393e50b7d4e6d0a9f14e192294d3b7c109" +uuid = "6c6a2e73-6563-6170-7368-637461726353" +version = "1.3.0" + [[deps.Serialization]] uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" +version = "1.11.0" + +[[deps.ShaderAbstractions]] +deps = ["ColorTypes", "FixedPointNumbers", "GeometryBasics", "LinearAlgebra", "Observables", "StaticArrays"] +git-tree-sha1 = "818554664a2e01fc3784becb2eb3a82326a604b6" +uuid = "65257c39-d410-5151-9873-9b3e5be5013e" +version = "0.5.0" + +[[deps.SharedArrays]] +deps = ["Distributed", "Mmap", "Random", "Serialization"] +uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383" +version = "1.11.0" + +[[deps.SignedDistanceFields]] +deps = ["Statistics"] +git-tree-sha1 = "3949ad92e1c9d2ff0cd4a1317d5ecbba682f4b92" +uuid = "73760f76-fbc4-59ce-8f25-708e95d2df96" +version = "0.4.1" + +[[deps.SimpleTraits]] +deps = ["InteractiveUtils", "MacroTools"] +git-tree-sha1 = "7ddb0b49c109481b046972c0e4ab02b2127d6a75" +uuid = "699a6c99-e7fa-54fc-8d76-47d257e15c1d" +version = "0.9.6" + +[[deps.Sixel]] +deps = ["Dates", "FileIO", "ImageCore", "IndirectArrays", "OffsetArrays", "REPL", "libsixel_jll"] +git-tree-sha1 = "0494aed9501e7fb65daba895fb7fd57cc38bc743" +uuid = "45858cf5-a6b0-47a3-bbea-62219f50df47" +version = "0.1.5" [[deps.Sockets]] uuid = "6462fe0b-24de-5631-8697-dd941f90decc" +version = "1.11.0" + +[[deps.SortingAlgorithms]] +deps = ["DataStructures"] +git-tree-sha1 = "13cd91cc9be159e3f4d95b857fa2aa383b53772a" +uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c" +version = "1.2.3" + +[[deps.SparseArrays]] +deps = ["Libdl", "LinearAlgebra", "Random", "Serialization", "SuiteSparse_jll"] +uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" +version = "1.12.0" + +[[deps.SpecialFunctions]] +deps = ["IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] +git-tree-sha1 = "6547cbdd8ce32efba0d21c5a40fa96d1a3548f9f" +uuid = "276daf66-3868-5448-9aa4-cd146d93841b" +version = "2.8.0" +weakdeps = ["ChainRulesCore"] + + [deps.SpecialFunctions.extensions] + SpecialFunctionsChainRulesCoreExt = "ChainRulesCore" + +[[deps.StableRNGs]] +deps = ["Random"] +git-tree-sha1 = "4f96c596b8c8258cc7d3b19797854d368f243ddc" +uuid = "860ef19b-820b-49d6-a774-d7a799459cd3" +version = "1.0.4" + +[[deps.StackViews]] +deps = ["OffsetArrays"] +git-tree-sha1 = "be1cf4eb0ac528d96f5115b4ed80c26a8d8ae621" +uuid = "cae243ae-269e-4f55-b966-ac2d0dc13c15" +version = "0.1.2" + +[[deps.StaticArrays]] +deps = ["LinearAlgebra", "PrecompileTools", "Random", "StaticArraysCore"] +git-tree-sha1 = "246a8bb2e6667f832eea063c3a56aef96429a3db" +uuid = "90137ffa-7385-5640-81b9-e52037218182" +version = "1.9.18" +weakdeps = ["ChainRulesCore", "Statistics"] + + [deps.StaticArrays.extensions] + StaticArraysChainRulesCoreExt = "ChainRulesCore" + StaticArraysStatisticsExt = "Statistics" + +[[deps.StaticArraysCore]] +git-tree-sha1 = "6ab403037779dae8c514bad259f32a447262455a" +uuid = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" +version = "1.4.4" + +[[deps.Statistics]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "ae3bb1eb3bba077cd276bc5cfc337cc65c3075c0" +uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" +version = "1.11.1" +weakdeps = ["SparseArrays"] + + [deps.Statistics.extensions] + SparseArraysExt = ["SparseArrays"] + +[[deps.StatsAPI]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "178ed29fd5b2a2cfc3bd31c13375ae925623ff36" +uuid = "82ae8749-77ed-4fe6-ae5f-f523153014b0" +version = "1.8.0" + +[[deps.StatsBase]] +deps = ["AliasTables", "DataAPI", "DataStructures", "IrrationalConstants", "LinearAlgebra", "LogExpFunctions", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics", "StatsAPI"] +git-tree-sha1 = "e4d7a1a0edc20af42689ea6f4f3587a2175d50ee" +uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" +version = "0.34.12" + +[[deps.StatsFuns]] +deps = ["HypergeometricFunctions", "IrrationalConstants", "LogExpFunctions", "Reexport", "Rmath", "SpecialFunctions"] +git-tree-sha1 = "770240df9a3b8888065046948f7a09b4e0f997d5" +uuid = "4c63d2b9-4356-54db-8cca-17b64c39e42c" +version = "2.2.0" +weakdeps = ["ChainRulesCore", "InverseFunctions"] + + [deps.StatsFuns.extensions] + StatsFunsChainRulesCoreExt = "ChainRulesCore" + StatsFunsInverseFunctionsExt = "InverseFunctions" [[deps.StringEncodings]] deps = ["Libiconv_jll"] @@ -389,36 +1621,120 @@ git-tree-sha1 = "b765e46ba27ecf6b44faf70df40c57aa3a547dcb" uuid = "69024149-9ee7-55f6-a4c4-859efe599b68" version = "0.3.7" -[[deps.StructTypes]] +[[deps.StructArrays]] +deps = ["ConstructionBase", "DataAPI", "Tables"] +git-tree-sha1 = "ad8002667372439f2e3611cfd14097e03fa4bccd" +uuid = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" +version = "0.7.3" + + [deps.StructArrays.extensions] + StructArraysAdaptExt = "Adapt" + StructArraysGPUArraysCoreExt = ["GPUArraysCore", "KernelAbstractions"] + StructArraysLinearAlgebraExt = "LinearAlgebra" + StructArraysSparseArraysExt = "SparseArrays" + StructArraysStaticArraysExt = "StaticArrays" + + [deps.StructArrays.weakdeps] + Adapt = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" + GPUArraysCore = "46192b85-c4d5-4398-a991-12ede77f4527" + KernelAbstractions = "63c18a36-062a-441e-b654-da1e3ab1ce7c" + LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" + SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" + StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" + +[[deps.StructUtils]] deps = ["Dates", "UUIDs"] -git-tree-sha1 = "159331b30e94d7b11379037feeb9b690950cace8" -uuid = "856f2bd8-1eba-4b0a-8007-ebc267875bd4" +git-tree-sha1 = "82bee338d650aa515f31866c460cb7e3bcef90b8" +uuid = "ec057cc2-7a8d-4b58-b3b3-92acb9f63b42" +version = "2.8.2" + + [deps.StructUtils.extensions] + StructUtilsMeasurementsExt = ["Measurements"] + StructUtilsStaticArraysCoreExt = ["StaticArraysCore"] + StructUtilsTablesExt = ["Tables"] + + [deps.StructUtils.weakdeps] + Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7" + StaticArraysCore = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" + Tables = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" + +[[deps.StyledStrings]] +uuid = "f489334b-da3d-4c2e-b8f0-e476e12c162b" version = "1.11.0" +[[deps.SuiteSparse]] +deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"] +uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9" + +[[deps.SuiteSparse_jll]] +deps = ["Artifacts", "Libdl", "libblastrampoline_jll"] +uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c" +version = "7.8.3+2" + [[deps.TOML]] deps = ["Dates"] uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76" version = "1.0.3" +[[deps.TableTraits]] +deps = ["IteratorInterfaceExtensions"] +git-tree-sha1 = "c06b2f539df1c6efa794486abfb6ed2022561a39" +uuid = "3783bdb8-4a98-5b6b-af9a-565f29a5fe9c" +version = "1.0.1" + +[[deps.Tables]] +deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "OrderedCollections", "TableTraits"] +git-tree-sha1 = "0f38a06c83f0007bbab3cf911262841c9a0f07e0" +uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" +version = "1.13.0" + [[deps.Tar]] deps = ["ArgTools", "SHA"] uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e" version = "1.10.0" +[[deps.TensorCore]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "1feb45f88d133a655e001435632f019a9a1bcdb6" +uuid = "62fd8b95-f654-4bbd-a8a5-9c27f68ccd50" +version = "0.1.1" + [[deps.Test]] deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" +version = "1.11.0" [[deps.TestItems]] git-tree-sha1 = "42fd9023fef18b9b78c8343a4e2f3813ffbcefcb" uuid = "1c621080-faea-4a02-84b6-bbd5e436b8fe" version = "1.0.0" +[[deps.Thermodynamics]] +deps = ["ForwardDiff", "Random", "RootSolvers"] +git-tree-sha1 = "d100d20d7d1a251e84ffc80606a83316f14c2aac" +uuid = "b60c26fb-14c3-4610-9d3e-2d17fe7ff00c" +version = "1.2.2" +weakdeps = ["ClimaParams"] + + [deps.Thermodynamics.extensions] + CreateParametersExt = "ClimaParams" + +[[deps.TiffImages]] +deps = ["CodecZstd", "ColorTypes", "DataStructures", "DocStringExtensions", "FileIO", "FixedPointNumbers", "IndirectArrays", "Inflate", "Mmap", "OffsetArrays", "PkgVersion", "PrecompileTools", "ProgressMeter", "SIMD", "UUIDs"] +git-tree-sha1 = "9ca5f1f2d42f80df4b8c9f6ab5a64f438bbd9976" +uuid = "731e570b-9d59-4bfa-96dc-6df516fadf69" +version = "0.11.9" + [[deps.TranscodingStreams]] git-tree-sha1 = "0c45878dcfdcfa8480052b6ab162cdd138781742" uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" version = "0.11.3" +[[deps.TriplotBase]] +git-tree-sha1 = "4d4ed7f294cda19382ff7de4c137d24d16adc89b" +uuid = "981d1d27-644d-49a2-9326-4793e63143c3" +version = "0.1.0" + [[deps.URIs]] git-tree-sha1 = "bef26fb046d031353ef97a82e3fdb6afe7f21b1a" uuid = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4" @@ -427,32 +1743,303 @@ version = "1.6.1" [[deps.UUIDs]] deps = ["Random", "SHA"] uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" +version = "1.11.0" [[deps.Unicode]] uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" +version = "1.11.0" + +[[deps.UnicodeFun]] +deps = ["REPL"] +git-tree-sha1 = "53915e50200959667e78a92a418594b428dffddf" +uuid = "1cfade01-22cf-5700-b092-accc4b62d6e1" +version = "0.4.1" + +[[deps.Unitful]] +deps = ["Dates", "LinearAlgebra", "Random"] +git-tree-sha1 = "57e1b2c9de4bd6f40ecb9de4ac1797b81970d008" +uuid = "1986cc42-f94f-5a68-af5c-568840ba703d" +version = "1.28.0" + + [deps.Unitful.extensions] + ConstructionBaseUnitfulExt = "ConstructionBase" + ForwardDiffExt = "ForwardDiff" + InverseFunctionsUnitfulExt = "InverseFunctions" + LatexifyExt = ["Latexify", "LaTeXStrings"] + NaNMathExt = "NaNMath" + PrintfExt = "Printf" + + [deps.Unitful.weakdeps] + ConstructionBase = "187b0558-2788-49d3-abe0-74a17ed4e7c9" + ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + LaTeXStrings = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" + Latexify = "23fbe1c1-3f47-55db-b15f-69d7ec21a316" + NaNMath = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" + Printf = "de0858da-6303-5e67-8744-51eddeeeb8d7" + +[[deps.WebP]] +deps = ["CEnum", "ColorTypes", "FileIO", "FixedPointNumbers", "ImageCore", "libwebp_jll"] +git-tree-sha1 = "aa1ca3c47f119fbdae8770c29820e5e6119b83f2" +uuid = "e3aaa7dc-3e4b-44e0-be63-ffb868ccd7c1" +version = "0.1.3" + +[[deps.WoodburyMatrices]] +deps = ["LinearAlgebra", "SparseArrays"] +git-tree-sha1 = "248a7031b3da79a127f14e5dc5f417e26f9f6db7" +uuid = "efce3f68-66dc-5838-9240-27a6d6f5f9b6" +version = "1.1.0" + +[[deps.XML2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Zlib_jll"] +git-tree-sha1 = "80d3930c6347cfce7ccf96bd3bafdf079d9c0390" +uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" +version = "2.13.9+0" + +[[deps.XZ_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "b29c22e245d092b8b4e8d3c09ad7baa586d9f573" +uuid = "ffd25f8a-64ca-5728-b0f7-c24cf3aae800" +version = "5.8.3+0" + +[[deps.Xorg_libX11_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxcb_jll", "Xorg_xtrans_jll"] +git-tree-sha1 = "808090ede1d41644447dd5cbafced4731c56bd2f" +uuid = "4f6342f7-b3d2-589e-9d20-edeb45f2b2bc" +version = "1.8.13+0" + +[[deps.Xorg_libXau_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "aa1261ebbac3ccc8d16558ae6799524c450ed16b" +uuid = "0c0b7dd1-d40b-584c-a123-a41640f87eec" +version = "1.0.13+0" + +[[deps.Xorg_libXdmcp_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "52858d64353db33a56e13c341d7bf44cd0d7b309" +uuid = "a3789734-cfe1-5b06-b2d0-1dd0d9d62d05" +version = "1.1.6+0" + +[[deps.Xorg_libXext_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] +git-tree-sha1 = "1a4a26870bf1e5d26cd585e38038d399d7e65706" +uuid = "1082639a-0dae-5f34-9b06-72781eeb8cb3" +version = "1.3.8+0" + +[[deps.Xorg_libXfixes_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] +git-tree-sha1 = "75e00946e43621e09d431d9b95818ee751e6b2ef" +uuid = "d091e8ba-531a-589c-9de9-94069b037ed8" +version = "6.0.2+0" + +[[deps.Xorg_libXrender_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] +git-tree-sha1 = "7ed9347888fac59a618302ee38216dd0379c480d" +uuid = "ea2f1a96-1ddc-540d-b46f-429655e07cfa" +version = "0.9.12+0" + +[[deps.Xorg_libpciaccess_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "58972370b81423fc546c56a60ed1a009450177c3" +uuid = "a65dc6b1-eb27-53a1-bb3e-dea574b5389e" +version = "0.19.0+0" + +[[deps.Xorg_libxcb_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libXau_jll", "Xorg_libXdmcp_jll"] +git-tree-sha1 = "bfcaf7ec088eaba362093393fe11aa141fa15422" +uuid = "c7cfdc94-dc32-55de-ac96-5a1b8d977c5b" +version = "1.17.1+0" + +[[deps.Xorg_xtrans_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "a63799ff68005991f9d9491b6e95bd3478d783cb" +uuid = "c5fb5394-a638-5e4d-96e5-b29de1b5cf10" +version = "1.6.0+0" [[deps.YAML]] deps = ["Base64", "Dates", "Printf", "StringEncodings"] -git-tree-sha1 = "2f58ac39f64b41fb812340347525be3b590cce3b" +git-tree-sha1 = "a1c0c7585346251353cddede21f180b96388c403" uuid = "ddb6d928-2868-570f-bddf-ab3f9cf99eb6" -version = "0.4.14" +version = "0.4.16" [[deps.Zlib_jll]] deps = ["Libdl"] uuid = "83775a58-1f1d-513f-b197-d71354ab007a" -version = "1.2.13+1" +version = "1.3.1+2" + +[[deps.Zstd_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "446b23e73536f84e8037f5dce465e92275f6a308" +uuid = "3161d3a3-bdf6-5164-811a-617609db77b4" +version = "1.5.7+1" + +[[deps.aws_c_auth_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "aws_c_cal_jll", "aws_c_http_jll", "aws_c_sdkutils_jll"] +git-tree-sha1 = "8cab83c96af80a1be968251ce1a0548a7545484d" +uuid = "2b3700d1-4306-52e2-a478-c162f0c514be" +version = "0.9.6+0" + +[[deps.aws_c_cal_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "aws_c_common_jll"] +git-tree-sha1 = "22c0f42f4a1f0dc5dcfa8fd267c4ac407c455e7a" +uuid = "70f11efc-bab2-57f1-b0f3-22aad4e67c4b" +version = "0.9.13+0" + +[[deps.aws_c_common_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "a759cb9bf456ad792cc7898a81ae333cce9ef02a" +uuid = "73048d1d-b8c4-5092-a58d-866c5e8d1e50" +version = "0.12.6+0" + +[[deps.aws_c_compression_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "aws_c_common_jll"] +git-tree-sha1 = "7910c72f45f44afd297c39fe43b99c56d5ed22ec" +uuid = "73a04cd5-f3d7-5bac-9290-e8adb709f224" +version = "0.3.2+0" + +[[deps.aws_c_http_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "aws_c_compression_jll", "aws_c_io_jll"] +git-tree-sha1 = "e358d5a001ef7afbd4f8c5225322512819cda2f2" +uuid = "3254fc65-9028-534d-aa9d-d76d128babc6" +version = "0.10.13+0" + +[[deps.aws_c_io_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "aws_c_cal_jll", "aws_c_common_jll", "s2n_tls_jll"] +git-tree-sha1 = "7e481d474b2087ee8bbf55b81bf9119f21e396d9" +uuid = "13c41daa-f319-5298-b5eb-5754e0170d52" +version = "0.26.3+0" + +[[deps.aws_c_s3_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "aws_c_auth_jll", "aws_c_common_jll", "aws_c_http_jll", "aws_checksums_jll", "s2n_tls_jll"] +git-tree-sha1 = "3e9917ab25114feba657e71be41cad068b9f6595" +uuid = "bd1f34fb-993f-5903-a121-aaf302eed6d4" +version = "0.11.5+0" + +[[deps.aws_c_sdkutils_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "aws_c_common_jll"] +git-tree-sha1 = "c43dfba2c1ab9ea9f02f2c80e86fa16f6460244e" +uuid = "1282aa60-004d-510b-9f52-12498d409daa" +version = "0.2.4+1" + +[[deps.aws_checksums_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "aws_c_common_jll"] +git-tree-sha1 = "2570c8e23f4771a087b12a47edcaaa670ac05a01" +uuid = "b2a88e68-78e7-5e94-8c20-c02986ec140e" +version = "0.2.10+0" + +[[deps.dlfcn_win32_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "e141d67ffe550eadfb5af1bdbdaf138031e4805f" +uuid = "c4b69c83-5512-53e3-94e6-de98773c479f" +version = "1.4.2+0" + +[[deps.isoband_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "51b5eeb3f98367157a7a12a1fb0aa5328946c03c" +uuid = "9a68df92-36a6-505f-a73e-abb412b6bfb4" +version = "0.2.3+0" + +[[deps.libaec_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "60f4792734488db6f42e2c7699f1d4594780bd03" +uuid = "477f73a3-ac25-53e9-8cc3-50b2fa2566f0" +version = "1.1.7+0" + +[[deps.libaom_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "850b06095ee71f0135d644ffd8a52850699581ed" +uuid = "a4ae2306-e953-59d6-aa16-d00cac43593b" +version = "3.13.3+0" + +[[deps.libass_jll]] +deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "125eedcb0a4a0bba65b657251ce1d27c8714e9d6" +uuid = "0ac62f75-1d6f-5e53-bd7c-93b484bb37c0" +version = "0.17.4+0" [[deps.libblastrampoline_jll]] deps = ["Artifacts", "Libdl"] uuid = "8e850b90-86db-534c-a0d3-1478176c7d93" -version = "5.11.0+0" +version = "5.15.0+0" + +[[deps.libdrm_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libpciaccess_jll"] +git-tree-sha1 = "63aac0bcb0b582e11bad965cef4a689905456c03" +uuid = "8e53e030-5e6c-5a89-a30b-be5b7263a166" +version = "2.4.125+1" + +[[deps.libfdk_aac_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "646634dd19587a56ee2f1199563ec056c5f228df" +uuid = "f638f0a6-7fb0-5443-88ba-1cc74229b280" +version = "2.0.4+0" + +[[deps.libpng_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "e51150d5ab85cee6fc36726850f0e627ad2e4aba" +uuid = "b53b4c65-9356-5827-b1ea-8c7a1a84506f" +version = "1.6.58+0" + +[[deps.libsixel_jll]] +deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "Libdl", "libpng_jll"] +git-tree-sha1 = "c1733e347283df07689d71d61e14be986e49e47a" +uuid = "075b6546-f08a-558a-be8f-8157d0f608a5" +version = "1.10.5+0" + +[[deps.libva_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll", "Xorg_libXext_jll", "Xorg_libXfixes_jll", "libdrm_jll"] +git-tree-sha1 = "7dbf96baae3310fe2fa0df0ccbb3c6288d5816c9" +uuid = "9a156e7d-b971-5f62-b2c9-67348b8fb97c" +version = "2.23.0+0" + +[[deps.libvorbis_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Ogg_jll"] +git-tree-sha1 = "11e1772e7f3cc987e9d3de991dd4f6b2602663a5" +uuid = "f27f6e37-5d2b-51aa-960f-b287f2bc3b7a" +version = "1.3.8+0" + +[[deps.libwebp_jll]] +deps = ["Artifacts", "Giflib_jll", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Libglvnd_jll", "Libtiff_jll", "libpng_jll"] +git-tree-sha1 = "4e4282c4d846e11dce56d74fa8040130b7a95cb3" +uuid = "c5f90fcd-3b7e-5836-afba-fc50a0988cb2" +version = "1.6.0+0" + +[[deps.libzip_jll]] +deps = ["Artifacts", "Bzip2_jll", "JLLWrappers", "Libdl", "OpenSSL_jll", "XZ_jll", "Zlib_jll", "Zstd_jll"] +git-tree-sha1 = "86addc139bca85fdf9e7741e10977c45785727b7" +uuid = "337d8026-41b4-5cde-a456-74a10e5b31d1" +version = "1.11.3+0" + +[[deps.mpif_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIABI_jll", "MPICH_jll", "MPIPreferences", "MPItrampoline_jll", "MicrosoftMPI_jll", "OpenMPI_jll", "TOML"] +git-tree-sha1 = "a8083ee0737c243c8f40a4ba86a0956997facb73" +uuid = "9aeb927a-4695-514f-a259-621a69f20ec0" +version = "0.1.7+0" [[deps.nghttp2_jll]] deps = ["Artifacts", "Libdl"] uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d" -version = "1.52.0+1" +version = "1.64.0+1" [[deps.p7zip_jll]] -deps = ["Artifacts", "Libdl"] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" -version = "17.4.0+2" +version = "17.7.0+0" + +[[deps.s2n_tls_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "64ae051c6f03044eb7d98027d1b552b4e21e650c" +uuid = "cddc5d3d-934d-5d3a-9747-62fc12ea3f48" +version = "1.7.3+0" + +[[deps.x264_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "14cc7083fc6dff3cc44f2bc435ee96d06ed79aa7" +uuid = "1270edf5-f2f9-52d2-97e9-ab00b5d0237a" +version = "10164.0.1+0" + +[[deps.x265_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "e7b67590c14d487e734dcb925924c5dc43ec85f3" +uuid = "dfaa095f-4041-5dcd-9319-2fabd8486b76" +version = "4.1.0+0" diff --git a/docs/Project.toml b/docs/Project.toml index 5efff43c0..5c36bb575 100644 --- a/docs/Project.toml +++ b/docs/Project.toml @@ -1,5 +1,11 @@ [deps] +CairoMakie = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0" +ClimaComms = "3a4d1b5c-c61d-41fd-a00a-5873ba7a1b0d" +ClimaParams = "5c42b081-d73a-476f-9059-fd94b934656c" Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4" DocumenterCitations = "daee34ce-89f3-4625-b898-19384cb65244" LaTeXStrings = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" +Literate = "98b081ad-f1c9-55d3-8b20-4c87d4299306" +NCDatasets = "85f8d34a-cbdd-5861-8df4-14fed0d494ab" RRTMGP = "a01a1ee8-cea4-48fc-987c-fc7878d79da1" +Thermodynamics = "b60c26fb-14c3-4610-9d3e-2d17fe7ff00c" diff --git a/docs/bibliography.bib b/docs/bibliography.bib index f68c49773..590e79c92 100644 --- a/docs/bibliography.bib +++ b/docs/bibliography.bib @@ -2,24 +2,30 @@ # Last author name (titlecase), followed by # (no characters in-between) the year. -@article{frierson2007, - title={The dynamics of idealized convection schemes and their effect on the zonally averaged tropical circulation}, - author={Frierson, Dargan MW}, +@techreport{anderson1986, + title={{AFGL} atmospheric constituent profiles (0--120 km)}, + author={Anderson, Gail P and Clough, Shepard A and Kneizys, Francis X and Chetwynd, James H and Shettle, Eric P}, + institution={Air Force Geophysics Laboratory}, + number={AFGL-TR-86-0110}, + year={1986}, + url={https://apps.dtic.mil/sti/citations/ADA175173} +} + +@article{frierson2006, + title={A gray-radiation aquaplanet moist {GCM}. {Part I}: Static stability and eddy scale}, + author={Frierson, D. M. W. and Held, I. M. and Zurita-Gotor, P.}, journal={Journal of the Atmospheric Sciences}, - volume={64}, - number={6}, - pages={1959--1976}, - year={2007}, - publisher={American Meteorological Society}, - doi={10.1175/JAS3935.1} + volume={63}, + pages={2548--2566}, + year={2006}, + doi={10.1175/JAS3753.1} } @article{joseph1976, title={The delta-Eddington approximation for radiative flux transfer}, author={Joseph, J H and Wiscombe, WJ and Weinman, JA}, - journal={Journal of Atmospheric Sciences}, + journal={Journal of the Atmospheric Sciences}, volume={33}, - number={12}, pages={2452--2459}, year={1976}, doi={10.1175/1520-0469(1976)033<2452:TDEAFR>2.0.CO;2} @@ -28,9 +34,8 @@ @article{joseph1976 @article{meador1980, title={Two-stream approximations to radiative transfer in planetary atmospheres: A unified description of existing methods and a new improvement}, author={Meador, WE and Weaver, WR}, - journal={Journal of Atmospheric Sciences}, + journal={Journal of the Atmospheric Sciences}, volume={37}, - number={3}, pages={630--643}, year={1980}, doi={10.1175/1520-0469(1980)037<0630:TSATRT>2.0.CO;2} @@ -41,7 +46,6 @@ @article{ogorman2008 author={O’Gorman, Paul A and Schneider, Tapio}, journal={Journal of Climate}, volume={21}, - number={15}, pages={3815--3832}, year={2008}, doi={10.1175/2007JCLI2065.1} @@ -52,10 +56,8 @@ @article{pincus2019 author={Pincus, Robert and Mlawer, Eli J and Delamere, Jennifer S}, journal={Journal of Advances in Modeling Earth Systems}, volume={11}, - number={10}, pages={3074--3089}, year={2019}, - publisher={Wiley Online Library}, doi={10.1029/2019MS001621} } @@ -64,10 +66,8 @@ @article{schneider2004 author={Schneider, Tapio}, journal={Journal of the Atmospheric Sciences}, volume={61}, - number={12}, pages={1317--1340}, year={2004}, - publisher={American Meteorological Society}, doi={10.1175/1520-0469(2004)061<1317:TTATTS>2.0.CO;2} } @@ -76,7 +76,6 @@ @article{shonk2008 author={Shonk, Jonathan KP and Hogan, Robin J}, journal={Journal of Climate}, volume={21}, - number={11}, pages={2352--2370}, year={2008}, doi={10.1175/2007JCLI1940.1} @@ -87,29 +86,36 @@ @article{toon1989 author={Toon, Owen B and McKay, CP and Ackerman, TP and Santhanam, K}, journal={Journal of Geophysical Research: Atmospheres}, volume={94}, - number={D13}, pages={16287--16301}, year={1989}, - publisher={Wiley Online Library}, doi={10.1029/JD094iD13p16287} } +@article{ukkonen2024, + title={Twelve times faster yet accurate: A new state-of-the-art in radiation schemes via performance and spectral optimization}, + author={Ukkonen, Peter and Hogan, Robin J}, + journal={Journal of Advances in Modeling Earth Systems}, + volume={16}, + pages={e2023MS003932}, + year={2024}, + doi={10.1029/2023MS003932} +} + @article{yang2013, title={Spectrally consistent scattering, absorption, and polarization properties of atmospheric ice crystals at wavelengths from 0.2 to 100 $\mu$ m}, author={Yang, Ping and Bi, Lei and Baum, Bryan A and Liou, Kuo-Nan and Kattawar, George W and Mishchenko, Michael I and Cole, Benjamin}, - journal={Journal of the atmospheric sciences}, + journal={Journal of the Atmospheric Sciences}, volume={70}, - number={1}, pages={330--347}, year={2013}, doi={10.1175/JAS-D-12-039.1} } + @article{clough1992, title={Line-by-line calculations of atmospheric fluxes and cooling rates: Application to water vapor}, author={Clough, Shepard A and Iacono, Michael J and Moncet, Jean-Luc}, journal={Journal of Geophysical Research: Atmospheres}, volume={97}, - number={D14}, pages={15761--15785}, year={1992}, doi={10.1029/92JD01419} @@ -120,20 +126,18 @@ @article{fu1997 author={Fu, Qiang and Liou, KN and Cribb, MC and Charlock, TP and Grossman, A}, journal={Journal of the Atmospheric Sciences}, volume={54}, - number={24}, pages={2799--2812}, year={1997}, doi={10.1175/1520-0469(1997)054<2799:MSPITI>2.0.CO;2} } -@article{hogan2023, +@article{hogan2024, title={What are the optimum discrete angles to use in thermal-infrared radiative transfer calculations?}, author={Hogan, Robin J}, journal={Quarterly Journal of the Royal Meteorological Society}, volume={150}, - number={758}, pages={318--333}, - year={2023}, + year={2024}, doi={10.1002/qj.4598} } @@ -141,7 +145,76 @@ @article{zdunkowski1980 title={An investigation of the structure of typical two-stream methods for the calculation of solar fluxes and heating rates in clouds}, author={Zdunkowski, Wilford G and Welch, Ronald M and Korb, G}, journal={Contributions to Atmospheric Physics}, - volume={53}, pages={147--166}, year={1980} } + +@article{lacis1991, + title={A description of the correlated k distribution method for modeling nongray gaseous absorption, thermal emission, and multiple scattering in vertically inhomogeneous atmospheres}, + author={Lacis, Andrew A and Oinas, Valdar}, + journal={Journal of Geophysical Research: Atmospheres}, + volume={96}, + pages={9027--9063}, + year={1991}, + doi={10.1029/90JD01945} +} + +@article{manabe1964, + title={Thermal equilibrium of the atmosphere with a convective adjustment}, + author={Manabe, Syukuro and Strickler, Robert F}, + journal={Journal of the Atmospheric Sciences}, + volume={21}, + pages={361--385}, + year={1964}, + doi={10.1175/1520-0469(1964)021<0361:TEOTAW>2.0.CO;2} +} + +@article{manabe1967, + title={Thermal equilibrium of the atmosphere with a given distribution of relative humidity}, + author={Manabe, Syukuro and Wetherald, Richard T}, + journal={Journal of the Atmospheric Sciences}, + volume={24}, + pages={241--259}, + year={1967}, + doi={10.1175/1520-0469(1967)024<0241:TEOTAW>2.0.CO;2} +} + +@article{kluft2019, + title={Re-examining the first climate models: Climate sensitivity of a modern radiative-convective equilibrium model}, + author={Kluft, Lukas and Dacie, Sally and Buehler, Stefan A and Schmidt, Hauke and Stevens, Bjorn}, + journal={Journal of Climate}, + volume={32}, + pages={8111--8125}, + year={2019}, + doi={10.1175/JCLI-D-18-0774.1} +} + +@article{kluft2021, + title={Temperature-dependence of the clear-sky feedback in radiative-convective equilibrium}, + author={Kluft, Lukas and Dacie, Sally and Brath, Manfred and Buehler, Stefan A and Stevens, Bjorn}, + journal={Geophysical Research Letters}, + volume={48}, + pages={e2021GL094649}, + year={2021}, + doi={10.1029/2021GL094649} +} + +@article{romps2021, + title={The Rankine-Kirchhoff approximations for moist thermodynamics}, + author={Romps, David M}, + journal={Quarterly Journal of the Royal Meteorological Society}, + volume={147}, + pages={3493--3497}, + year={2021}, + doi={10.1002/qj.4154} +} + +@article{cronin2014, + title={On the choice of average solar zenith angle}, + author={Cronin, Timothy W}, + journal={Journal of the Atmospheric Sciences}, + volume={71}, + pages={2994--3003}, + year={2014}, + doi={10.1175/JAS-D-13-0392.1} +} diff --git a/docs/make.jl b/docs/make.jl index 6b6db3155..5789b57e9 100644 --- a/docs/make.jl +++ b/docs/make.jl @@ -2,9 +2,25 @@ using Documenter using LaTeXStrings using RRTMGP using DocumenterCitations +import Literate bib = CitationBibliography(joinpath(@__DIR__, "bibliography.bib")) +# Generate the tutorial pages from the Literate.jl scripts in docs/tutorials. +# The generated markdown contains `@example` blocks, so Documenter executes +# the tutorials during the docs build (they cannot silently rot). +const tutorials_src = joinpath(@__DIR__, "tutorials") +const tutorials_out = joinpath(@__DIR__, "src", "tutorials") +for script in readdir(tutorials_src) + endswith(script, ".jl") || continue + Literate.markdown( + joinpath(tutorials_src, script), + tutorials_out; + documenter = true, + execute = false, + ) +end + makedocs(; plugins = [bib], sitename = "RRTMGP.jl", @@ -24,12 +40,25 @@ makedocs(; modules = [RRTMGP], pages = Any[ "Home" => "index.md", - "Functional core" => "functional_core.md", - "RTE" => "RTE.md", - "Optics" => "Optics.md", - "Example" => "Example.md", - "Fortran and paper concordance" => "concordance.md", - "API" => Any[ + "Tutorials" => Any[ + "A first radiation calculation" => "tutorials/getting_started.md", + "Radiative-convective equilibrium" => "tutorials/manabe_rce.md", + ], + "How-to guides" => Any[ + "Drive RRTMGP from a host model" => "howto/host_model.md", + "Run on GPUs" => "howto/gpu.md", + "Cache the lookup tables" => "howto/lookup_cache.md", + "Get per-band (spectral) fluxes" => "howto/spectral_fluxes.md", + "Run the validated test problems" => "Example.md", + ], + "Explanation" => Any[ + "Functional core" => "functional_core.md", + "RTE" => "RTE.md", + "Optics" => "Optics.md", + "Float32 and Float64" => "precision.md", + "Fortran and paper concordance" => "concordance.md", + ], + "Reference" => Any[ "API" => "api.md" "Getter contract" => "getters.md" "Angular Discretization" => "optics/AngularDiscretizations.md" diff --git a/docs/src/ArtifactPaths.md b/docs/src/ArtifactPaths.md index 1c81f4c2e..de64c8737 100644 --- a/docs/src/ArtifactPaths.md +++ b/docs/src/ArtifactPaths.md @@ -1,6 +1,6 @@ # ArtifactPaths -This module provides the file paths for loading the lookup tables and input data for the tests. These artifacts are obtained from "Pincus, R., Mlawer, E. J., Delamere, J., Iacono, M. J., & Pernak, R. (2023). RRTMGP data (Version 1.7) [Data set](https://github.com/earth-system-radiation/rrtmgp-data) +This module provides the file paths for loading the lookup tables and input data for the tests. These artifacts are obtained from Pincus, R., Mlawer, E. J., Delamere, J., Iacono, M. J., & Pernak, R. (2023), [RRTMGP data (Version 1.7)](https://github.com/earth-system-radiation/rrtmgp-data). ```@meta CurrentModule = RRTMGP.ArtifactPaths diff --git a/docs/src/Example.md b/docs/src/Example.md index 7d4f6c94f..bd7a02d3b 100644 --- a/docs/src/Example.md +++ b/docs/src/Example.md @@ -1,33 +1,44 @@ # Example -The quickest way to run RRTMGP is the standalone gray-atmosphere one-liner, which -needs no NetCDF data: +The quickest way to run RRTMGP is the standalone gray-atmosphere one-liner, +which needs no NetCDF data. It builds its column internally, with temperatures +on the analytic semi-gray radiative-equilibrium profile of +[schneider2004](@cite), ``T(p) = T_t\,[1 + d_0\,(p/p_0)^α]^{1/4}``, where +``T_t = 200`` K is the temperature at the top of the atmosphere and the +optical depth ``d_0`` follows from a latitude-dependent radiative-equilibrium +surface temperature (a single column defaults to the equator): -```julia -julia> using RRTMGP +```@example example +using RRTMGP -julia> out = RRTMGP.solve_gray(Float64; nlay = 60, ncol = 1); +out = RRTMGP.solve_gray(Float64; nlay = 60, ncol = 1); -julia> out.net # net flux at each level [W/m²], (nlev, ncol) -julia> out.heating_rate # heating rate at each layer [K/s], (nlay, ncol) +out.net[end, 1] # net flux at the top of the atmosphere [W/m²] ``` -To assemble the pieces yourself — the atmospheric state, the RTE workspaces, and -`solve_lw!`/`solve_sw!` — see [The functional core](@ref), which walks through the -same gray problem step by step and sketches the clear-sky (lookup-table) path. - -Beyond that, the test suite doubles as a set of complete, validated examples. -Each driver below builds its states from reference NetCDF data (downloaded -automatically as artifacts), runs the solvers, and compares against reference -results. Run them from the repository root with the `test` project -(`julia --project=test`). +To assemble the pieces yourself (the atmospheric state, the RTE workspaces, and +`solve_lw!`/`solve_sw!`), see [The functional core](@ref), which walks through +the gray problem and sketches the clear-sky path. + +Beyond that, the test suite doubles as a set of complete, validated examples, +run from the repository root with the `test` project (`julia --project=test`). +The gray driver checks the solvers against analytic solutions. The clear-sky +and all-sky drivers build their states from standardized NetCDF inputs and +compare the computed fluxes against the official results of the Fortran +reference implementation +[rte-rrtmgp](https://github.com/earth-system-radiation/rte-rrtmgp) for the +RFMIP clear-sky and all-sky cases, distributed through the +[rrtmgp-data](https://github.com/earth-system-radiation/rrtmgp-data) +repository and downloaded automatically as artifacts (see +`test/reference_files.jl`). This is the same source of truth the Fortran +implementation validates against, so the tolerances are directly comparable. ## Gray radiation `test/gray_atm.jl` exercises longwave and shortwave gray radiation with both the -non-scattering and two-stream solvers. For longwave-only gray radiation an -analytical radiative-equilibrium solution exists; `gray_atmos_lw_equil` integrates -to equilibrium and compares against it: +non-scattering and two-stream solvers. For longwave-only gray radiation, an +analytical radiative-equilibrium solution exists; `gray_atmos_lw_equil` +integrates to equilibrium and compares against it: ```julia julia> include("test/gray_atm_utils.jl"); @@ -48,15 +59,16 @@ julia> gray_atmos_sw_test(ClimaComms.context(), TwoStreamSWRTE, Float64, 1); Test Passed ``` -Here is the vertical profile of the downward shortwave radiative flux (`flux_dn_dir`): +Here is the vertical profile of the downward shortwave radiative flux +(`flux_dn_dir`): ![](assets/gray_sw_flux_dn.png) ## Gas optics (clear sky) `test/clear_sky.jl` runs RRTMGP for the RFMIP clear-sky atmosphere states and -compares the results to reference data (running the file drives both longwave -solver types and the two-stream shortwave solver at `ncol = 250`): +compares the results to the reference fluxes (running the file drives both +longwave solver types and the two-stream shortwave solver at `ncol = 250`): ```julia julia> include("test/clear_sky.jl") @@ -70,8 +82,9 @@ Here are the vertical profiles of downward longwave (`flux_dn_lw`) and shortwave ## Cloud and aerosol optics (all sky) `test/all_sky_with_aerosols.jl` runs RRTMGP for all-sky atmosphere states with -idealized clouds (uniform condensate and particle size in the troposphere, McICA -cloud sampling) plus MERRA aerosols, and compares the results to reference data: +idealized clouds (uniform condensate and particle size in the troposphere, +McICA cloud sampling) plus MERRA aerosols, and compares the results to the +reference fluxes: ```julia julia> include("test/all_sky_with_aerosols.jl") @@ -81,3 +94,12 @@ Here are the vertical profiles of downward longwave (`flux_dn_lw`) and shortwave (`flux_dn_sw`) fluxes for the first column: ![](assets/all_sky_lw_flux_dn.png) ![](assets/all_sky_sw_flux_dn.png) + +## Related datasets + +The [rte-examples](https://github.com/earth-system-radiation/rte-examples) +repository provides standardized *input* datasets (RFMIP, CKDMIP evaluation +profiles, an idealized RCE profile) without committed reference fluxes; since +its problems overlap the RFMIP cases already covered here, RRTMGP.jl does not +vendor it. Its idealized RCE setup is realized instead as the +[radiative-convective equilibrium tutorial](tutorials/manabe_rce.md). diff --git a/docs/src/Optics.md b/docs/src/Optics.md index be03c47c1..a816a658c 100644 --- a/docs/src/Optics.md +++ b/docs/src/Optics.md @@ -11,44 +11,36 @@ Two options are currently supported for computing the optical depth for longwave ```math \begin{align} -d(\phi, p) = d_0(\phi) \left(\frac{p}{p_0}\right)^\alpha +d(\phi, p) = d_0(\phi) \left(\frac{p}{p_0}\right)^\alpha . \end{align} ``` -Here, ``\alpha`` is ratio of the pressure scale height to the partial-pressure scale height of the infrared absorber (``\alpha=3.5`` for water vapor); ``\phi`` is the latitude; ``p`` is the pressure, and ``p_0 = 1000~\mathrm{hPa}`` is the reference pressure. The optical depth at ``\phi`` and ``p_0``, ``d_0``, is calculated from the latitude-dependent radiative equilibrium temperature ``T_s(\phi)``: +Here, ``\alpha`` is ratio of the pressure scale height to the partial-pressure scale height of the infrared absorber (``\alpha=3.5`` for water vapor); ``\phi`` is the latitude; ``p`` is the pressure, and ``p_0`` is the surface pressure. The optical depth at ``\phi`` and ``p_0``, ``d_0``, is calculated from the latitude-dependent radiative equilibrium temperature ``T_s(\phi)``: ```math \begin{align} -T_s(\phi) = T_e + \Delta T \left(\frac{1}{3} - \sin^2\phi\right) \\ +T_s(\phi) = T_e + \Delta T \left(\frac{1}{3} - \sin^2\phi\right), \\ d_0(\phi) = \left(\frac{T_s(\phi)}{T_t}\right)^4 - 1. \end{align} ``` Here, ``T_e`` is the global-mean surface temperature in radiative equilibrium, ``T_t`` is the temperature at the top of the atmosphere, and ``\Delta T`` is the equator-to-pole temperature difference in radiative equilibrium. The default values are ``T_e = 300~\mathrm{K}``, ``T_t = 200~\mathrm{K}``, and ``\Delta T = 60~\mathrm{K}``. -The optical thickness of an atmosphere layer (the differential optical depth) of pressure thickness ``\Delta p`` is -```math -\begin{align} -\tau(\phi, p) = \alpha d_0(\phi) \left(\frac{p}{p_0}\right)^\alpha \frac{\Delta p}{p}. -\end{align} -``` - - -The optical depth (``d``) for longwave radiation, with the "GrayOpticalThicknessOGorman2008" option, follows [ogorman2008](@cite): +The optical depth (``d``) for longwave radiation, with the "GrayOpticalThicknessOGorman2008" option, follows [frierson2006](@cite) and [ogorman2008](@cite): ```math \begin{align} -d(\phi, p) = \alpha \left[f_l \sigma + (1 - f_l) \sigma^4 \right] \left[ \tau_e + (\tau_p - \tau_e) \sin^2\phi \right] +d(\phi, p) = \alpha \left[f_l \sigma + (1 - f_l) \sigma^4 \right] \left[ \tau_e + (\tau_p - \tau_e) \sin^2\phi \right], \end{align} ``` -where ``f_l = 0.2``, ``\sigma = p / p_0`` is pressure p normalized by -surface pressure ``p_0``, ``\phi`` is latitude, and the longwave optical thicknesses at the equator and at the pole are $\tau_e = 7.2$ and $\tau_p = 1.8$, respectively. $\alpha$ is a scaling factor. +where ``f_l = 0.2``, ``\sigma = p / p_0`` is pressure ``p`` normalized by +surface pressure ``p_0``, ``\phi`` is latitude, and the longwave optical thicknesses at the equator and at the pole are ``\tau_e = 7.2`` and ``\tau_p = 1.8``, respectively. The prefactor ``\alpha`` (default 1) rescales the total longwave optical depth; [ogorman2008](@citet) vary it to simulate a range of climates. This ``\alpha`` is unrelated to the exponent ``\alpha`` of the Schneider option above — each matches the ``α`` field of its own parameter struct. The optical thickness of an atmosphere layer (the differential optical depth) of pressure thickness ``\Delta p`` is ```math \begin{align} -\tau(\phi, p) = (\alpha * \frac{\Delta p}{p}) \left[f_l \sigma + 4 (1 - f_l) \sigma^4 \right] \left[ \tau_e + (\tau_p - \tau_e) \sin^2\phi \right] +\tau(\phi, p) = \alpha \frac{\Delta p}{p} \left[f_l \sigma + 4 (1 - f_l) \sigma^4 \right] \left[ \tau_e + (\tau_p - \tau_e) \sin^2\phi \right]. \end{align} ``` @@ -58,60 +50,153 @@ The source function for longwave radiation is calculated as ``S = \sigma T^4 / \ Two options are currently supported for computing the optical depth for shortwave radiation. The optical depth (``d``) for shortwave radiation, with the "GrayOpticalThicknessSchneider2004" option, is 0. -The optical depth (``d``) for shortwave radiation, with the "GrayOpticalThicknessOGorman2008" option, follows [frierson2007](@cite) and [ogorman2008](@cite): +The optical depth (``d``) for shortwave radiation, with the "GrayOpticalThicknessOGorman2008" option, follows [ogorman2008](@cite): ```math \begin{align} -d(p) = \tau_0 \left(\frac{p}{p_0}\right)^2 +d(p) = \tau_0 \left(\frac{p}{p_0}\right)^2 , \end{align} ``` -where ``p`` is the pressure of the atmosphere layer and ``p_0 = 1000~\mathrm{hPa}`` is the reference pressure. The default value for ``\tau_0`` is 0.22. - -The differential optical thickness of an atmosphere layer of pressure thickness ``\Delta p`` is - -```math -\begin{align} -\tau(p) = 2 \tau_0 \frac{p}{p_0} \frac{\Delta p}{p_0}. -\end{align} -``` +where ``p`` is the pressure of the atmosphere layer and ``p_0`` is the surface pressure. The default value for ``\tau_0`` is 0.22. The single scattering albedo and asymmetry parameter are zero. ## Gas optics -RRTMGP calculates gas optics using a correlated-k method, in which the integration over frequency ``\nu`` of a complex line spectrum is replaced by an integration over a much smoother function of a new variable ``g``. The integral is approximated by the sum over ``G`` quadrature points (g-points). The mapping from ``\nu`` to ``g`` is computed for a set of longwave and shortwave bands. Within each band, the absorption is dominated by no more two gases (major species). The bands are non-overlapping, contiguous, and span the frequencies of radiation emitted by the Earth or Sun. For each band, the total optical thickness (``\tau``) includes contributions from major species (``\tau_\mathrm{major}``), minor species (``\tau_\mathrm{minor}``), and Rayleigh scattering (``\tau_\mathrm{rayleigh}``) for shortwave bands. - -`compute_τ_ssa_lw_src!` calculates the optical properties for each g-point in the longwave and shortwave bands, as well as source functions for the longwave bands. The input atmospheric conditions include pressure (``p``), temperature (``T``), and volume mixing ratios of gases (``\chi``). The relationship between the volume mixing ratio and the mass fraction (``q``) of a gas is ``\chi = q / q_d * M_d / M``, where ``q_d = 1-q_t`` is the dry air mass fraction (total specific humidity ``q_t``), ``M_d`` is the molar mass of the dry air, and `M` is the molar mass of the gas. - -For the major species, the absorption coefficient is computed by linearly interpolating the tabulated values in ``\log(p)``, ``T``, and relative abundances of the two major species (``\eta``) calculated from the volume mixing ratios. The contributions from minor species and Rayleigh scattering are treated with less detail. For each minor species and Rayleigh scattering, a representative pressure is chosen, and the absorption coefficient is computed by linearly interpolating the tabulated values in ``T`` and ``\eta``. For the shortwave bands, the single scattering albedo is calculated as ``\omega_0 = \tau_\mathrm{rayleigh} / \tau``, and the asymmetry parameter is zero. +At any single frequency, gaseous absorption obeys Beer's law, and the transfer +equations of the [RTE page](RTE.md) apply directly. The difficulty is spectral: +across an absorption band, the monochromatic absorption coefficient +``k_\nu`` sweeps over orders of magnitude through thousands of lines, so the +band-averaged transmission over an absorber path ``u``, +```math +\bar{t}(u) = \frac{1}{\Delta\nu} \int_{\Delta\nu} e^{-k_\nu u}\, d\nu, +``` +cannot be represented by any single mean absorption coefficient — the exponential +weights weak and strong lines differently at every path length. The +``k``-distribution method [lacis1991](@cite) replaces the integral over +frequency by an integral over the cumulative distribution of absorption +strength: with ``g(k)`` the fraction of the band where the absorption +coefficient is below ``k``, reordering the spectrum by strength turns the +ragged ``k_\nu`` into a smooth, monotonic ``k(g)`` on ``g \in [0, 1]``, and +```math +\bar{t}(u) = \int_0^1 e^{-k(g)\,u}\, dg \approx \sum_{j=1}^{G} \omega_j\, e^{-k(g_j)\, u}, +``` +a quadrature over a handful of *g-points*. The *correlated*-``k`` assumption is +that the frequency-to-``g`` ordering is the same at all pressures and +temperatures along the path, so a single ``g`` coordinate serves the whole +column, and each g-point behaves like one monochromatic radiative-transfer +problem. RRTMGP's tables carry 16 g-points in each of 16 longwave and 14 +shortwave bands (256 and 224 in total); the bands are non-overlapping, +contiguous, and span the thermal and solar spectra [pincus2019](@cite). The RTE +is solved once per g-point and column, and fluxes simply add over g-points — +the quadrature weights ``\omega_j`` enter through the per-g-point source terms +described below. + +`compute_optical_props!` computes each g-point's optical properties from the +pressure ``p``, temperature ``T``, and gas volume mixing ratios ``\chi`` of the +atmospheric state. (The volume mixing ratio relates to the mass fraction ``q`` +of a gas by ``\chi = q / q_d \cdot M_d / M``, where ``q_d = 1 - q_t`` is the +dry-air mass fraction, ``M_d`` the molar mass of dry air, and ``M`` that of the +gas.) The optical thickness of a layer splits into +```math +\tau_g = \tau_\mathrm{major} + \tau_\mathrm{minor} + \tau_\mathrm{rayleigh}, +``` +with the Rayleigh term present in the shortwave only. -For longwave bands, the Planck fraction (defined as the fraction of the band-integrated Planck energy associated with each g-point) is computed by linearly interpolating the tabulated values in ``\log(p)``, ``T``, and ``\eta``. The band-integrated Planck function is uniquely determined by temperature, and is computed by linearly interpolating the tabulated values in ``T``. The shortwave source function for each g-point is assumed to be constant. +**Major species.** Within each band, absorption is dominated by at most two +gases. Their relative abundance enters through the binary mixing parameter +```math +\eta = \frac{\chi_1}{\chi_1 + r\,\chi_2}, +``` +where ``r`` is the ratio of the two abundances in the reference atmosphere used +to build the tables, so ``\eta`` runs from 0 (only species 2) to 1 (only +species 1). The absorption coefficient is tabulated on a +``(\eta, \log p, T)`` grid and interpolated trilinearly +(`compute_interp_frac_temp`/`_press`/`_η`); ``\tau_\mathrm{major}`` is the +interpolated coefficient times the column amount of the binary mixture. + +**Minor species and Rayleigh scattering.** These contributions are linear in +the respective column amounts, with coefficients tabulated against +``(\eta, T)`` at a representative pressure — minor gases with additional +density and scaling-gas corrections where the spectroscopy requires them +(continua), and Rayleigh scattering in proportion to the column amount of air, +water vapor included. In the shortwave, +the single scattering albedo of the gas optics is +``\omega_0 = \tau_\mathrm{rayleigh} / \tau_g``, and the asymmetry parameter is +zero (Rayleigh scattering is nearly symmetric fore–aft). + +**Source terms.** In the longwave, each g-point emits the fraction +``f_g(\eta, p, T)`` — the *Planck fraction*, interpolated like the absorption +coefficient — of the band-integrated Planck emission ``B_\mathrm{band}(T)``, +which is tabulated against temperature at 1 K resolution; the fractions of a +band sum to one, so summing g-points recovers the band's blackbody emission. In +the shortwave, each g-point carries a fixed fraction of the total solar +irradiance, scaled to the incident flux the host prescribes at the top of the +atmosphere. These per-g-point sources are where the quadrature weights of the +``k``-distribution live, which is why fluxes add over g-points without further +weighting. ### Lookup tables -The lookup tables for the spectral map between ``\nu`` and ``g`` are stored in netcdf files [here](https://caltech.box.com/shared/static/wbtrwp44dyn08g7mozjf4fcyrexwbe6a.gz). Longwave and shortwave lookup tables are stored in `clearsky_lw.nc` and `clearsky_sw.nc`, respectively. `LookUpLW` and `LookUpSW` read the lookup tables. The tabulated information includes the spectral discretization (bands), the major and minor gases considered in each band, and tabulated data of absorption coefficients, Planck fraction, and band-integrated Planck function. The absorption coefficients and Planck fraction are computed at pressures ``1 \mathrm{Pa} ≤ p ≤ 109663 \mathrm{Pa}`` in increments of ``\log(p/1 \mathrm{Pa}) = 0.2``, temperatures ``160 \mathrm{K} ≤ T ≤ 355 \mathrm{K}`` in ``15 \mathrm{K}`` increments, and ``0 ≤ \eta ≤ 1`` in ``1/8`` increments. The band-integrated Plack function is computed at temperatures ``160 \mathrm{K} ≤ T ≤ 355 \mathrm{K}`` in ``1 \mathrm{K}`` increments. A more detailed description of the spectral structure of the lookup tables can be found in `Appendix A` in [pincus2019](@cite). +The lookup tables for the spectral map between ``\nu`` and ``g`` are NetCDF files from the +[rrtmgp-data](https://github.com/earth-system-radiation/rrtmgp-data) repository (v1.7), +downloaded automatically as Julia artifacts. The longwave and shortwave lookup tables are +`rrtmgp-gas-lw-g256.nc` and `rrtmgp-gas-sw-g224.nc`, respectively (see +`RRTMGP.ArtifactPaths`). `LookUpLW` and `LookUpSW` read the lookup tables. The tabulated information includes the spectral discretization (bands), the major and minor gases considered in each band, and tabulated data of absorption coefficients, Planck fraction, and band-integrated Planck function. The absorption coefficients and Planck fraction are computed at pressures ``1\,\mathrm{Pa} \le p \le 109663\,\mathrm{Pa}`` in increments of ``\log(p/1\,\mathrm{Pa}) = 0.2``, temperatures ``160\,\mathrm{K} \le T \le 355\,\mathrm{K}`` in ``15\,\mathrm{K}`` increments, and ``0 \le \eta \le 1`` in ``1/8`` increments. The band-integrated Planck function is computed at temperatures ``160\,\mathrm{K} \le T \le 355\,\mathrm{K}`` in ``1\,\mathrm{K}`` increments. A more detailed description of the spectral structure of the lookup tables can be found in `Appendix A` in [pincus2019](@cite). !!! note - Absorption by both major and minor species is treated separately in the upper and lower atmosphere, defined as pressures above and below the pressure defined in `press_ref_trop` in the lookup tables (~9948 Pa). This corresponds to element 13 in array `press_ref`. There is a single large table of absorption coefficients. Table elements 1:13 in the pressure dimension correspond to pressures >= `press_ref_trop`, while table elements 14:60 correspond to pressures <= `press_ref_trop`. Elements 13 and 14 refer to the same pressure but for the lower and upper atmosphere, respectively. This is why the the absorption coefficients lookup table has a pressure dimension of 60, but there are only 59 reference pressure levels in `press_ref`. + Absorption by both major and minor species is treated separately in the upper and lower atmosphere, defined as pressures above and below the pressure defined in `press_ref_trop` in the lookup tables (~9948 Pa). This corresponds to element 13 in array `press_ref`. There is a single large table of absorption coefficients. Table elements 1:13 in the pressure dimension correspond to pressures >= `press_ref_trop`, while table elements 14:60 correspond to pressures <= `press_ref_trop`. Elements 13 and 14 refer to the same pressure but for the lower and upper atmosphere, respectively. This is why the absorption coefficients lookup table has a pressure dimension of 60, but there are only 59 reference pressure levels in `press_ref`. ## Cloud optics -`compute_cld_props` computes the optical properties of clouds, which is a combination of contributions from liquid and ice particles. The optical thickness (``\tau``), single scattering albedo (``\omega_0``), and asymmetry parameter (``g``) for clouds are: +`compute_lookup_cld_liq_props` and `compute_lookup_cld_ice_props` compute the optical properties of liquid and ice cloud particles, whose combination gives the cloud optical properties. The optical thickness (``\tau``), single scattering albedo (``\omega_0``), and asymmetry parameter (``g``) for clouds are: ```math \begin{align} -\tau_c &= \tau_l + \tau_i \\ -\omega_{0c} &= \frac{\tau_l \omega_{0l} + \tau_i \omega_{0i}}{\tau_l + \tau_i} \\ -g_c &= \frac{\tau_l \omega_{0l} g_l + \tau_i \omega_{0i} g_i}{\tau_l \omega_{0l} + \tau_i \omega_{0i}} \\ +\tau_c &= \tau_l + \tau_i, \\ +\omega_{0c} &= \frac{\tau_l \omega_{0l} + \tau_i \omega_{0i}}{\tau_l + \tau_i}, \\ +g_c &= \frac{\tau_l \omega_{0l} g_l + \tau_i \omega_{0i} g_i}{\tau_l \omega_{0l} + \tau_i \omega_{0i}}, \end{align} ``` -where subscripts c, l, and i indicate cloud, liquid, and ice, respectively. The liquid cloud and ice cloud optical thicknesses are calculated by multiplying the cloud liquid and ice extinction coefficients (``\mu``) by the cloud liquid (lwp) and ice water paths (iwp), respectively. That is, ``\tau_l = \mu_l \mathrm{lwp}`` and ``\tau_i = \mu_i \mathrm{iwp}``. The extinction coefficient, single scattering albedo, and asymmetry parameter are computed by linearly interpolating the tabulated values in the liquid and ice particle effective radius. For ice partices, the optical properties also depend on the surface roughness, following [yang2013](@cite). The optical properties for shortwave bands are delta-scaled to reduce the biases in calculating radiative fluxes for highly asymmetric phase functions ([joseph1976](@cite)). +where subscripts c, l, and i indicate cloud, liquid, and ice, respectively. The liquid cloud and ice cloud optical thicknesses are calculated by multiplying the cloud liquid and ice extinction coefficients (``\mu``) by the cloud liquid (lwp) and ice water paths (iwp), respectively. That is, ``\tau_l = \mu_l \mathrm{lwp}`` and ``\tau_i = \mu_i \mathrm{iwp}``. The extinction coefficient, single scattering albedo, and asymmetry parameter are computed by linearly interpolating the tabulated values in the liquid and ice particle effective radius. For ice particles, the optical properties also depend on the surface roughness, following [yang2013](@cite). The optical properties for shortwave bands are delta-scaled to reduce the biases in calculating radiative fluxes for highly asymmetric phase functions ([joseph1976](@cite)). -`add_cloud_optics_2stream` adds cloud optics to the gas optics for each g-point that sees cloud (the cloud mask is described below). +`add_cloud_optics_2stream!` adds cloud optics to the gas optics for each g-point that sees cloud (the cloud mask is described below). ### Lookup tables -The lookup tables for cloud optics are stored in netcdf files [here](https://caltech.box.com/shared/static/wbtrwp44dyn08g7mozjf4fcyrexwbe6a.gz). Longwave and shortwave lookup tables are stored in `cloudysky_lw.nc` and `cloudysky_sw.nc`, respectively. `LookUpCld` reads the lookup tables. The tabulated information includes tabulated data of extinction coefficients, single scattering albedo, and asymmetry parameter for liquid and ice particles. The optical properties for liquid particles are computed at radius ``2.5 \mathrm{\mu m} ≤ r_l ≤ 21.5 \mathrm{\mu m}`` in increments of ``1 \mathrm{\mu m}``. The optical properties for ice particles are computed at radius ``10 \mathrm{\mu m} ≤ r_i ≤ 180 \mathrm{\mu m}`` in increments of ``10 \mathrm{\mu m}``. +The lookup tables for cloud optics are NetCDF files from the same +[rrtmgp-data](https://github.com/earth-system-radiation/rrtmgp-data) artifacts. The +longwave and shortwave lookup tables are `rrtmgp-clouds-lw-bnd.nc` and +`rrtmgp-clouds-sw-bnd.nc`, respectively. `LookUpCld` reads the lookup tables. The tabulated information includes tabulated data of extinction coefficients, single scattering albedo, and asymmetry parameter for liquid and ice particles. The optical properties for liquid particles are computed at radius ``2.5\,\mathrm{\mu m} \le r_l \le 21.5\,\mathrm{\mu m}`` in increments of ``1\,\mathrm{\mu m}``. The optical properties for ice particles are computed at radius ``10\,\mathrm{\mu m} \le r_i \le 180\,\mathrm{\mu m}`` in increments of ``10\,\mathrm{\mu m}``. ### Cloud overlap method -Climate models predict grid-mean cloud fraction and cloud condensates, and the vertical structure of clouds needs to be prescribed using some overlap assumptions for calculating radiative fluxes. The Monte Carlo independent column approximation (McICA) allows us to have fractional cloud areas, by randomly assigning some wavelengths to see cloud and other wavelengths to see no cloud. `build_cloud_mask!` builds McICA-sampled cloud masks from cloud fraction. We use the maximum-random overlap method, which maximizes the cloud overlap between adjacent layers but randomly distributes clouds at different altitudes separated by clear sky. The random numbers are generated for each layer and each g-point. For a certain layer (layer 1), the g-points that have been assigned a random number larger than one minus the cloud fraction see cloud, and the other g-points see clear-sky. The random numbers are recalculated for the layer below (layer 2). If the g-point sees cloud in layer 1, its random number in layer 2 is changed to the one in layer 1. If the g-point sees clear-sky in layer 1, its random number in layer 2 is multiplied by one minus the cloud fraction of layer 1. This ensures that the random numbers in layer 2 are randomly distributed in the range [0, 1]. \ No newline at end of file +Climate models predict grid-mean cloud fraction and cloud condensates, and the vertical structure of clouds needs to be prescribed using some overlap assumptions for calculating radiative fluxes. The Monte Carlo independent column approximation (McICA) allows us to have fractional cloud areas, by randomly assigning some wavelengths to see cloud and other wavelengths to see no cloud. `build_cloud_mask!` builds McICA-sampled cloud masks from cloud fraction. We use the maximum-random overlap method, which maximizes the cloud overlap between adjacent layers but randomly distributes clouds at different altitudes separated by clear sky. The random numbers are generated for each layer and each g-point. For a certain layer (layer 1), the g-points that have been assigned a random number larger than one minus the cloud fraction see cloud, and the other g-points see clear-sky. The random numbers are recalculated for the layer below (layer 2). If the g-point sees cloud in layer 1, its random number in layer 2 is changed to the one in layer 1. If the g-point sees clear-sky in layer 1, its random number in layer 2 is multiplied by one minus the cloud fraction of layer 1. This ensures that the random numbers in layer 2 are randomly distributed in the range [0, 1]. + +Formally, proceeding downward for each g-point, layer ``k`` sees cloud where its random number ``R_k`` exceeds one minus the layer's cloud fraction, ``R_k > 1 - \mathrm{CF}_k``, with +```math +R_k = +\begin{cases} +R_{k-1} & \text{if the g-point sees cloud in layer } k-1,\\ +u_k \, (1 - \mathrm{CF}_{k-1}) & \text{otherwise}, +\end{cases} +``` +where ``u_k \sim U(0, 1)`` is an independent uniform draw. Three properties follow. Each layer is cloudy with probability ``\mathrm{CF}_k``, so the sampled mask reproduces the prescribed cloud fractions in expectation. Vertically contiguous cloudy layers overlap maximally: a g-point that is cloudy in one layer stays cloudy in the next wherever the fractions allow, so a contiguous cloudy block has total cloud cover ``\max_k \mathrm{CF}_k``. Cloudy blocks separated by clear air are uncorrelated. Because every g-point carries an independent subcolumn, the broadband flux averages over the samples: the McICA estimate is unbiased, and its sampling noise largely cancels in the spectral integration. The all-sky methods' `reset_rng_seed` option reseeds the generator on each [`update_fluxes!`](@ref RRTMGP.update_fluxes!) call to make the sampling reproducible (see the reproducibility caveat in [How to run on GPUs](howto/gpu.md)). + +## Aerosol optics + +`add_aerosol_optics_1scalar!` and `add_aerosol_optics_2stream!` add aerosol +extinction to the gas (and cloud) optical properties, using the MERRA aerosol +tables shipped with the rrtmgp-data artifacts +(`rrtmgp-aerosols-merra-lw.nc`/`-sw.nc`, read by `LookUpAerosolMerra`). For +each species and band, the tables give the optical properties per unit column +mass of aerosol; the host supplies the per-species column mass densities and +particle sizes (the [`aerosol_column_mass_density`](@ref RRTMGP.aerosol_column_mass_density) +and [`aerosol_radius`](@ref RRTMGP.aerosol_radius) getters). Dust and sea salt +are resolved into five size bins selected from the supplied particle radius; +sea salt and sulfate are interpolated in relative humidity, as are the +hydrophilic variants of black and organic carbon (their hydrophobic variants +are humidity-independent). Each species' contribution ``(\tau, \omega_0, g)`` +is combined with the running optical properties by the same +``\tau``-weighted mixing rules as for clouds, and the shortwave extinction and +scattering aerosol optical depths in the band containing 550 nm are retained +as diagnostics (`aod_sw_extinction`, `aod_sw_scattering`). \ No newline at end of file diff --git a/docs/src/RTE.md b/docs/src/RTE.md index d10541f92..10d2841a0 100644 --- a/docs/src/RTE.md +++ b/docs/src/RTE.md @@ -1,74 +1,173 @@ -# Radiatve Transfer Equations - -## Radiation heating rate - -Radiative fluxes enter the thermal energy equation as follows: - +# Radiative transfer + +The RTE solvers integrate the radiative transfer equation through a +plane-parallel, horizontally homogeneous column and return the upward and +downward radiative fluxes and the heating rate. This page states the equations +they solve and how they solve them; the optical properties that enter as +coefficients are described under [Optics](@ref). + +## The radiative transfer equation + +Radiation is described by the spectral radiance ``I_\lambda``, the power per +unit area, solid angle, and wavelength flowing in a given direction ``\Omega``. +Along a ray, the medium changes the radiance by three processes: extinction +(absorption plus scattering out of the beam), thermal emission, and scattering +into the beam from all other directions. In terms of the extinction optical +depth ``\tau_\lambda`` measured along the ray, the radiative transfer equation +reads ```math -\begin{align} -\partial_t (\rho e) = - \nabla \cdot F_{net} -\end{align} +\frac{dI_\lambda(\Omega)}{d\tau_\lambda} = +(1 - \omega_{0,\lambda})\, B_\lambda(T) - I_\lambda(\Omega) ++ \omega_{0,\lambda} \int_{4\pi} P_\lambda(\Omega', \Omega)\, +I_\lambda(\Omega')\, d\Omega', ``` - -where ``F_{net} = \sum_j (F^{+}_j - F^{-}_j)``, and ``F^{+}_j`` and ``F^{-}_j`` denote the sum of shortwave and longwave upward and downward fluxes for spectral interval j, respectively. - -## RTE solver - -`solve_lw!` and `solve_sw!` solve the radiative transfor equation for longwave and shortwave radiation. - -!!! note - We have both no scattering and two stream solvers in the code. Only two stream solver is documented here. - -## Computing fluxes through a vertically layered atmosphere - -`rte_lw_2stream!` and `rte_sw_2stream!` compute longwave and shortwave radiative fluxes through a vertically layered atmosphere. The equations for upward and downward fluxes are calculated following [shonk2008](@cite): - +where ``B_\lambda(T)`` is the Planck function at the local temperature, +``\omega_{0,\lambda}`` is the single-scattering albedo — the fraction of the +extinction due to scattering — and ``P_\lambda(\Omega', \Omega)`` is the phase +function, the probability of scattering from direction ``\Omega'`` into +``\Omega``. The emission term ``B_\lambda`` follows from Kirchhoff's law under +local thermodynamic equilibrium (absorptivity = emissivity at every +wavelength), which is assumed to hold throughout the atmosphere RRTMGP models. The scattering integral couples all directions, which is what makes +the general equation expensive; in the atmosphere, it matters for clouds and +aerosols in both the longwave and shortwave and for Rayleigh scattering in the +shortwave. The two-stream approximation below reduces the angular coupling to +two hemispheric fluxes. + +For longwave transfer in clear skies, scattering is negligible +(``\omega_{0,\lambda} \to 0``), and the equation reduces to the *Schwarzschild +equation*, ```math -\begin{align} -F^{+}_i = \alpha_i F^{-}_i + G_i \\ -F^{-}_i = \beta_i (T_i F^{-}_{i+1} + R_i G_i + S^{-}_i) + F^{-}_{i, dir} \\ -\alpha_{i+1} = R_i + T_i^2 \beta_i \alpha_i \\ -G_{i+1} = S^{+}_i + T_i \beta_i (G_i + \alpha_i S^{-}_i) \\ -\end{align} +\frac{dI_\lambda}{d\tau_\lambda} = B_\lambda(T) - I_\lambda, ``` +with ``\tau_\lambda`` now the absorption optical depth. -where ``\beta_k = 1 / (1 - \alpha_k R_k)``. ``T`` and ``R`` are transmittance and reflectance, and ``S^{+}`` and ``S^{-}`` represent upward and downward source functions. ``F^-_{dir}`` is the downward direct shortwave flux. The subscript ``i`` represents the level. - -## Computing transmittance, reflectance, and total source functions - -### Longwave - -`lw_2stream_coeffs` calculates transmittance (``T``), reflectance (``R``), and source functions (``S^+`` and ``S^-``) from optical properties for longwave radiation. Transmittance and reflectance are calculated following [meador1980](@cite): +## Two-stream approximation +Resolving the full angular dependence of ``I_\lambda`` is too costly for a +climate model, so the flux calculation collapses the radiation field into an +upward flux ``F_\lambda^\uparrow`` and a downward flux ``F_\lambda^\downarrow``. +In the plane-parallel column, the vertical optical depth ``\widehat{\tau}_\lambda`` +increases downward from zero at the top of the atmosphere. Neglecting +scattering, the two streams obey ```math -\begin{align} -T = \frac{2 k e^{-k \tau}}{k + \gamma_1 + (k - \gamma_1) e^{-2 k \tau}} \\ -R = \frac{\gamma_2 (1 - e^{-2 k \tau})}{k + \gamma_1 + (k - \gamma_1) e^{-2 k \tau}} -\end{align} +\frac{dF_\lambda^\uparrow}{d\widehat{\tau}_\lambda} = D\,(F_\lambda^\uparrow - \pi B_\lambda), +\qquad +\frac{dF_\lambda^\downarrow}{d\widehat{\tau}_\lambda} = D\,(\pi B_\lambda - F_\lambda^\downarrow), ``` - -where ``\tau`` is the optical depth, and ``k = \sqrt{\gamma_1^2 - \gamma_2^2}``. ``\gamma_1`` and ``\gamma_2`` are coupling coefficients in the two-stream approximation that describe how isotropic the phase function is, and are determined by the optical properties (single scattering albedo and asymmetry parameter). - -``S^+`` and ``S^-`` are calculated from optical properties and Planck source functions following [toon1989](@cite). - -### Shortwave -`sw_2stream_coeffs` calculates diffuse transmittance (``T``), diffuse reflectance (``R``), direct transmittance (``T_{dir}``), and direct reflectance (``R_{dir}``) from optical properties for shortwave radiation. ``T`` and ``R`` are calculated following the same equations as for the longwave radiation. ``T_{dir}`` and ``R_{dir}`` is calculated following [meador1980](@cite): - +where the *diffusivity factor* ``D`` accounts for the slantwise paths of a +diffuse field: replacing the range of zenith angles by a single effective secant +``D`` closes the hemispheric integral that relates flux to radiance. With +scattering, the streams couple through a layer reflectance, and RRTMGP forms the +two-stream transmittance and reflectance from the optical thickness, single +scattering albedo, and asymmetry parameter following [meador1980](@citet). + +## Angular discretization + +The longwave no-scattering solver does better than a single diffusivity angle: +it integrates the Schwarzschild equation along a small set of discrete zenith +angles and sums the results with Gauss quadrature weights, so the hemispheric +flux is ``F_\lambda = \sum_i w_i\, I_\lambda(\mu_i)``. RRTMGP uses the +Gauss-Jacobi-5 nodes of [hogan2024](@citet) with one to four angles +([`AngularDiscretization`](@ref RRTMGP.AngularDiscretizations.AngularDiscretization)). +The default single angle has secant ``D \approx 1.64``, close to Elsasser's +classic diffusivity factor of ``1.66``, which the two-stream longwave solver +adopts following [fu1997](@citet); adding angles improves the accuracy of the +angular integral. + +## Radiative heating rate + +The fluxes feed back on temperature through the divergence of the net upward +flux ``F^{\mathrm{net}} = F^\uparrow - F^\downarrow``. A layer warms where the +net flux converges and cools where it diverges: ```math -\begin{align} -T_{dir} = - A [(1 + k \mu) (\alpha_1 + k \gamma_4) e^{-\tau/\mu} - (1 - k \mu) (\alpha_1 - k \gamma_4) e^{-2k\tau} e^{-\tau/\mu} - 2k (\gamma_4 + \alpha_1 \mu) e^{-\tau/\mu}] \\ -R_{dir} = A [(1 - k \mu) (\alpha_2 + k \gamma_3) - (1 + k \mu) (\alpha_2 - k \gamma_3) e^{-2 k \tau} - 2 (k \gamma_3 - \alpha_2 k \mu) e^{-k \tau} e^{-\tau/\mu}] -\end{align} +\rho\, c_p \frac{\partial T}{\partial t} = -\frac{dF^{\mathrm{net}}}{dz}. ``` - -where ``A = \omega_0 / (1 - k^2 \mu^2) / [k (1 + e^{-2 k \tau}) + \gamma_1 (1 - e^{-2 k \tau})]``. ``\omega_0`` is the single scattering albedo. ``\mu`` is the cosine of solar zenith angle. ``\gamma_3``, and ``\gamma_4`` are coefficients in the two-stream approximation and determined by the optical properties. They are constrained to ``\gamma_3 + \gamma_4 = 1`` by energy conservation. - -The direct downward flux (``F^{-}_{dir}``) and source functions (``S^+`` and ``S^-``) for each level are calculated from ``T_{dir}`` and ``R_{dir}``: - +Because the temperature tendency scales as ``1/\rho``, a given flux divergence +warms thin, high-altitude air far more than dense air near the surface — one +reason ozone's shortwave absorption heats the stratosphere so effectively. +[`heating_rate`](@ref RRTMGP.heating_rate) returns ``\partial T/\partial t`` in +K/s. + +## How the equations are solved + +The continuous equations are solved by discretizing the column into layers of +uniform optical properties, within which they admit exact solutions. The +resulting sweeps run independently for every spectral quadrature point and +column, which is what makes the solvers parallelize well. + +The no-scattering longwave solver integrates the Schwarzschild equation along +each quadrature angle exactly: crossing a layer of vertical optical depth +``\widehat{\tau}`` multiplies the radiance by the slant-path transmittance +``t = e^{-D\widehat{\tau}}`` and adds the layer's own emission, +```math +I_{\mathrm{out}} = t\, I_{\mathrm{in}} + S, +``` +where the source ``S`` follows from a Planck function that varies linearly in +optical depth across the layer ([clough1992](@citet)). One downward and one +upward sweep of this update per quadrature angle yields the fluxes. + +In the two-stream solver, the coupled equations for ``F^\uparrow`` and +``F^\downarrow`` within a layer have exponential solutions ``e^{\pm k\tau}``, +which reduce each layer ``i`` to a diffuse reflectance ``R_i``, a transmittance +``T_i``, and upward and downward source terms ``S_i^{\pm}`` +([meador1980](@citet); [toon1989](@citet) for the thermal source). The layers +are then coupled by the adding method of [shonk2008](@citet). With ``\alpha_i`` +the albedo of the atmosphere–surface system below level ``i`` and ``G_i`` its +upward emission, a first pass climbs from the surface, +```math +\begin{aligned} +\alpha_{i+1} &= R_i + T_i^2 \beta_i \alpha_i,\\ +G_{i+1} &= S_i^{+} + T_i \beta_i \left(G_i + \alpha_i S_i^{-}\right), +\end{aligned} +``` +where ``\beta_i = (1 - \alpha_i R_i)^{-1}`` sums the infinite series of +reflections between layer ``i`` and the medium below it. A second pass descends +from the top-of-atmosphere boundary condition, computing the downwelling flux ```math -\begin{align} -F^-_{dir, i} = e^{-\tau/\mu} F^-_{dir, i+1} \\ -S^+_i = R_{dir, i} F^-_{dir, i+1} \\ -S^-_i = T_{dir, i} F^-_{dir, i+1} -\end{align} +F_i^{\downarrow} = \beta_i \left(T_i F_{i+1}^{\downarrow} + R_i G_i + +S_i^{-}\right) + F_{i,\mathrm{dir}}^{\downarrow}, ``` +where the last term is the direct solar beam, attenuated by Beer's law, and +from it the upwelling flux ``F_i^{\uparrow} = \alpha_i F_i^{\downarrow} + +G_i``. The result is the discrete counterpart of the integral solution of the +transfer equation: the flux at each level accumulates every layer's emission, +transmitted and reflected through the layers between the emitting layer and +that level. + +## No-scattering and two-stream solvers + +RRTMGP provides two solver families, distinguished by whether they represent +scattering: + +- The **no-scattering solver** carries the optical thickness ``\tau`` alone + ([`OneScalar`](@ref RRTMGP.Optics.OneScalar) optics). It integrates absorption + and emission over the Gauss angles above and is used for clear-sky longwave + transfer, where scattering is negligible; in the shortwave, it reduces to + Beer's-law extinction of the direct solar beam. +- The **two-stream solver** carries the optical thickness, single scattering + albedo, and asymmetry parameter ([`TwoStream`](@ref RRTMGP.Optics.TwoStream) + optics) and represents multiple scattering. It is required wherever scattering + is not negligible: clouds and aerosols in both bands, and Rayleigh scattering + in the shortwave. + +Both families exist for the longwave and the shortwave +([`NoScatLWRTE`](@ref RRTMGP.RTE.NoScatLWRTE) / [`TwoStreamLWRTE`](@ref RRTMGP.RTE.TwoStreamLWRTE) +and [`NoScatSWRTE`](@ref RRTMGP.RTE.NoScatSWRTE) / [`TwoStreamSWRTE`](@ref RRTMGP.RTE.TwoStreamSWRTE)), +and [`solve_lw!`](@ref RRTMGP.RTESolver.solve_lw!) / [`solve_sw!`](@ref RRTMGP.RTESolver.solve_sw!) +dispatch on the workspace type. + +## Boundary conditions + +The sweep needs conditions at both ends of the column. At the surface, the +longwave upwelling radiance is the surface Planck emission scaled by the surface +emissivity, and the shortwave reflection is set by the direct and diffuse +albedos; the incident solar flux and the cosine of the solar zenith angle enter +at the top. Any prescribed incident diffuse flux at the top defaults to zero. + +RRTMGP can also insert an **isothermal boundary layer**: an extra layer between +the host model's top and the minimum pressure of the gas-optics tables, held at +the model-top temperature, that represents the radiative effect of the +atmosphere above the model lid. It is enabled through +[`RRTMGPGridParams`](@ref RRTMGP.RRTMGPGridParams), and every getter masks it +off so the host reads and writes arrays sized to its own grid (see +[The getter contract](@ref)). diff --git a/docs/src/api.md b/docs/src/api.md index dc82c7dd9..049482157 100644 --- a/docs/src/api.md +++ b/docs/src/api.md @@ -2,8 +2,8 @@ RRTMGP has an API for creating various types of solvers, and accessing data passed to it. Hosts read and write a solver's data through named getters; their -uniform layout/domain-masking/writability contract — the RRTMGP–ClimaCore -decoupling mechanism — is spelled out under [The getter contract](@ref). +uniform layout/domain-masking/writability contract (the RRTMGP–ClimaCore +decoupling mechanism) is spelled out under [The getter contract](@ref). ```@meta CurrentModule = RRTMGP diff --git a/docs/src/assets/logo.png b/docs/src/assets/logo.png deleted file mode 100644 index 7a1c546bd3e1483dd7fa5bef1f39a19186295adc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 975784 zcmeEu=TlSN+jZzD-9~RWDkvT49Z`yaASj&x0@4gkYC>o#=uPiUnjl3==sf}DmKJ&o zJs_O`34tU)D6jYPJnzi!{r3I=&o#5>%syYvo-=3fwXU_+oX;lDb(yYnT?YUFO!|6H zOaTC@=6?r0?Vme~XAD_?E)?%fbsqz2MtFAqOsHM8jI;oNxtJD(xl$w}qYzO4Y8*}r3(Ul<{dTN1>oxf?q`NQw( zu|;)LD7lt)R6fl7goAD!m4AFCJQ9!)=lsc|q^u*nK-|N_WAiNM`yA@Qx5bcq|4&^c zO+lf?&;GN{1Rq3#O#h=MSd6Z{O-=ca3Uhnrkel`&b*ybhxlr<-#h-Iy_Wpl9>S8Rd zTmHd+)J{w(b+i6|mWJ%TTBHAGDMkOg6#f5wD-Rz0@3-=2EB)^d`g6eif1NALFvvw# zTH0~(q_fNe5*Z$+Q(UjY$FbBhu`@-e^lIsI=*k4P*d+8haVGS-ylr1fz{be%B_bWe zMJDGOzl?5Wac;)CDCH%%gwJN~_**|;>;l5l=01bZF2dTDyj~z~>cdc?TbO%;O$cs+ zfkjPxG}W%sFTeSZc#F!I`nk9LmSu&j!M9K0i?hrV% zWxtfr;l9=pU=j_g04WQh)s@Ft!a4+>&uh19oTbZ@+&6$p-igKI@utx|jyM-CEV4}1 zx}e?dDhHz3{yZ}Vcaquth1T+df1L`?OE|D^J3LW_HLEa{vj4T&ad z<9WvHkq4$&e;M&nNn@O*@NwO>t#Ce)pF4n+os#jb9bSl1B!1x}i4L1R<7YI9mtD?b47DoQnL5fqVL+-OUGOUH zc1u)}v}}H~#KRs2FyxJdxhw32#I=x?0<3@eSqY;5J=l@OXW?pmO&LXK!v>qs!CmJL zBkPSkxK8oY&iB#ruGj_nil$L49>lj%Ty?&UlmTM^&-jYZ z-P!^a?}gMEZjd<^hkYi*8pA^B)DQ|zq9PGxUwrw6>`WLQ0-j9E%L>iNW>~~qF~0Q` z{e4X+xxG`WJGhZK@+Al8?lvVgZOJuo_2m5B5ZpWdwXw6`m!4|j9Dy(tb;e*t;+IyA zmOYlq>yO0@IOn`7nxxmCU(Q_4c)`d^nJ%HC>_2{SvQB=h4u{2_6FmV94~;iGF5fif zphmem!ZO&=J)cUMHF8JD`yGXYetUG0=@;yU>G-~4X_9nS@)e`h!`Z#D7Out2hLzg) z2af*;J^hicTtR_$7VdtTIR(Np)JC}iZ$HTj1MuH=&Qd?#4LH;uYn!X0=m2aE%bzXF zUz@Eqxa5)CjoG2XQ3C83YxicJV^n)!r$&-KEr_E-+l>lFZ9c$$SJDi zxw`d$BZE@UwXsoz7_zZCF9j`bajKASXt9-bJxd%F)Mb-^O_5>9D-sDWpU#%_)wRe7&F3DG3rf!q~GU>y-eo?-Mj?7k^7i;6no@^MY=c?M`Ug}gE z0k6!>O;fW$3SCFd*iAAqEH#z%mt?!c!jvS^KkU=fTgXy`x$c_2(l3r8zDWgq&dY^~ zcx;GF*w)#GTlHp`5CFYewX9Ws+p)8!`=e+Uy~sPW{G z)E-@)FA=}7kGuR9eSPE0b-65shPD zd=QV9qLp(1GO;l!sXcXc!`UUm8iC%F+b>z}MBj0t_oMofta~YIaK6Y`D;3>YbMawd z(>0_DDEot%KpQ^2GO^+w&7AS7q+{|}BQDU$2YaN?`9v9EQ}goZmC$F(_bdyypX8iC zHirE|o50#N*0o9a@1btNf=Z`J;rM9VR#fmbEUaADLqXk}TnuM;d7``>vESd^jNMfh1W!MPrg?%uLcw zaiu-~l~J%-CEkl$K4Mp8-fp#Q_Dr2q0jFBgTbgxnNUqncvBkVp-t&i_=t4!_1Lphn zp*7I>k-zAkqK~U~nxGE+?X_!PCRBST=Trw}U~JrB@`-02eCTO8WNN{D;`D;BC851w zniq!hwF|JpFF{HV!P{9-y}2+2nsEox-6RRk|K7xy^@y zP0jk%s$G?y)qEOci4)}qLLdAW_g(I;Z^2i@|G}OM6ue@;b4*5pd7<|N^2UNj(uwII zc4=Rvx-fOO4VC-sw^;};)u%`A-wddOdWBlItZ#X5I4Rp3sRKPjz7(&2BScP}ImG3+ zd=%2pOC3GqHY3<6&21s(Dc_^S7O)wZAY{XH`%-B*3XXN%*bP`X0_E$(xBMYWEn5FJ zZOg1Xgo$7dr0VwI!G`UzQQ0r+do;#v<|FdZV{G=I_b+a z6fybqOkV(x8(rjc9fv4HHa-XLUepO@EHM_jQEix5Mx^7YO=Ail02W07*CijizlEU* zcSKrF_)bA~1hJi^TZ$ia)A59e^E&znUycxc_K1^L(Oh{E$odKsQtcjz~e4vG3PGU7e!M)v$ou+O(`YXfF|U7e4%rAGC`@1 z9mtg7rYK~Iu@mo+2OLka4bU(ny9zCK-9JdagM;sQI(G+GRk_ijsGXw&2Vu*HY^1m3 z1UyY{^l#d76MMa_j@53iB|*BuSRcDHJ65mo%3`kH5)-pwk>y1by9{cFN~dyD3yO>QFntNI~I70hsND* ztnE{xQ@YQGIHd4J8x4kiPmS!!>YLm(Hl_7%{nDx?(QF})swF4omJLz!LQt~OpB}QW z>|edX`;)8~JM!rV1+Jf%#K5DUT=SJh0vwa&gm<0&s6M^hS=r{r_N+I0Z}mp((7f72 z3B_Jx@2#U9_g9Y{&A0)0FVlY`;%=OKji+S+Gq|~zLnVSMPE1Y9(bh5T1099X!wBK? z-4{0mJb66VU)bXQvgf+br78uCzYj!nNp2>3mQ;6kM@GwivwRLPN1(CMz}>pK^6PrT zHX&PFS99tiH?lmAuboi}ywhNOgSRY;HjVfT!62U&aO?HQP6oHH9tQ&*lJRwKoIiFZ zOaA_Z&yCzRNP)Fmn#4cHw)j!2EW)>+OmT`2qC z-(#$yw^&8lnY@vv=5<>yV3JU0w12-){MIqkTDd~Grr~G}fm!F`=eD?TaM$=jk>+P& zE33e)*dO|%wu>c5ZR(dTP6rYC!dkkfG}2#=RU<4Mru=_|Q})ceGG>lJ$Vh3cA1?{_ zF?Ng>AJZBgW<(g+uYCm`Tr=F$mG~uxG3nSS+G%qRX>Qu_n*>dgB|=7Ji!x!T9K>0Q zAr>iHO1j5Cv(@B1fPHm`IkGErLA`~Xa4!Hh{UBttxv8zM?g1L;9sAg{!#kT8xvq99 z1M0vcJyT+@g?X$sdFP&VF1*$5x)NC+cXq6l?zZ~4b=kx@{gBxg?aO`V3vgwZ9Me{R z347RH#Ew>)CvqtH+)X^&`f}ImIm8?4(3S#9;kR$rmC19r29vdw0eOL{x49t;fQNJt0}rG zLhp0x@sj@5g*53Ny)Vp;p-eVjr-n8)Iy@92$1H0-bW;=;MO)*^;l_#yU^{kG-IMRo zD|2LvNi(VG1w}Z=J)mgmwUCq7Nvrlnn=e+j6ms&U@Lhw~&!8FEQmezfG9d^x9bP5ywm)4UI+JuZAsOt zjnU(tp2nV1E_;fUtn@1%A4H?LE1{~gLpW1DK8tMwCS#zQ#BZq7UizsYvG3<_SkNbE zh0ONvfq(R<;x12L6X!Le%@bb_xj8U!wYWwo+Ko{hkCaYLYblWBK3HgSIK0PuS+I-s zvek6Vfz||s`=)N2C~ed8VZx>+iMP5fjJeAd=AqQ-%)!^A&wu+7>(=W5Hg!J=>4Tns4LhyZf;F73y9j>B3ZqI;{ym?Zlsa z=lI7pKEv-Z z!z;qiUg!Fbg-u;l3BoK;Ne1Cla&L|wx>I|0wraF+YH|TK z14h$|@-y}YReY1;fDakxXHie{Et%-1b|WV&Gi4nDNS4jfaRS=)%po^bqwBPJxz1BM zAx2KRm+M*{v__t>*m1rISs@*56UlTkh0xHg_qI;zahm&@%i;=RkAZ^>llN;#6vi2I zaq{rnTwBAqYlYovUAZ-OEDr24LeJWjbw z)ceRPL9$}$kzMf{w|U8BZ-PG8j-$xYK>+zL=MgBf*7gq+qY7(!D+Hc7tgEf-EL1Bn zn&HEdu;nrEZaw6N=ci&4!FJ|T#F^b?9Q_z(KdO%r+Q^~{xECLcwHUx_5DFw9h->x7 z+fzw_a5FyYdwL7in9o1KE;J65;tK&3mivK_h(o7f_G)8jM#16R8$fsCE%Wf{SO(28 zh{Os9ACyJF(Y{za4M#Xax!H#s+IT0#du9{MHUf2K)~AsVa3z16CF@hhF~*C)MBe@fGKxhYwflkc$+6ICz9(IZ>f54PsSLbP zSAd@5pgfgh4k2A<5A+jW!O>mb#^utEl#3}uOIx4ke!Gl232Kp%a<(ub+x?YUIsbgQ z`>RV%O)?tJfA)737vQL42ikO8`e=Po#>g|flxZ$`xiema{o}mrQFgCi=bL5WH3~@GTvrWZJ*dWQg=Y ziFX|=RrMAF7D#Riq)>~3uR|!E#!h0#3iN~YTj=0)SS&GQKT)TLd!w~+Rb2y_=FO5Z zVZfysD4ob^lUx|U$@NyRhD1{ZJ+P`_qXJ9QQAN1+d8$48sLSM}b(^5GT}^Hua5_r` zzC8I-?k$Ot0X`o`X5!qgJH(WjT@AdXwGg^fLt)62XigXRWLvTJr0g*K_!y_lqTZhI ztEZkA6C;^d<1)rOCcRYOv5$0xL zFo@v=NTaSD7B&k?(2tBJZ5WyAPKEbrPl^+4ybEHfnx|wB5?|hDD@_oiF}*Xt`AtzV zE)4&V_vF*A@BC@22JnV+`Q>{Ud=6__NLQ^F zc>L6E(eIMUTg5%C;lf!YB#->Ha67l%(qfCH7{b${Q^V1Ytr!eQ-kyFGdzovAs47kl zf!{A^{zkA*)gr&mQRI%qipQg;DcHSUd)Ic)w72S(x@Gz)czd>xYzms|)8PdRNY7Gf z*v`GvBd{3#htOSl<`6G;>&yRaf!Wq9lp`?I?@iY<@k{*v;j=U{ym5^2e>bBa{+w@x z1wCc`sx^*xPdc%qazuR5y_Ak{i1GbOahuF1eT#ZfoO;}okY*LPfjVdVUXGHCYu5_S zkyVtf!l>~dIf;lwa4&C&5-T4M`;42ogFI+!NjX162E0F5>A<-Zz$LP;2|O0s1DNGR zyp+$nq-yd^h2V+DmSq@2ZpM%&!aVad^rK^M!O9bLPfH0Mj)DQaZhpq{=y0nSD5-N< zy(RF}D<{Jk-+;2QMtYF;oZ|Prk?HG|=|z!}#$1qUu`W-XT(`qghSS{c2c4$X?r@yu zcyzu8hp5!Tf@a)l8*8-O+YgE{{kpO)Yd5e?vc zRq-TOwWOR_EI7E`%%EKI`TZw7H>fnbN$Eb`c5;?^0ZRephyFb4>{gY+C> z&$y^YkeB_J0v`ww96le+GQ+G&-MI>1sHcRSFYg{MWx6lS9=YW0BM7Hn+0x;-rA82s zRsJcrltRH&@NpQo)AAKDA8kVxZ#Z0<_)g;6+xYzzoo6u3zGbx))?SGJ6@1Oa2v|VH z_f8@-81{5A812TjrQx!F?bz4yHpnkh`sc~cqZYbZ+JMC%dm|$Lt<77rHM_8H#5ssj zV70h7Q|4vsCKN-2Ah#f?v9K9bX@lg&fvf$@DqNmqRf-ZXn|8M}c* zBgn~kT~u;L)GC3tBpM=@pJd1J4Hz=qN9ct-YSi{ZbNo~4PMfnHG^w}T@*GPun&i&S zl2K74{K2!Jt9o)2F@%M(3*SY$bq3pqS!V++fB}aTnz~)QKP_v{vuA#>A*bHEsYhl( z4SyZKi>EDznrzr^_{E#NjCX_Q<2^Y1#QyHi6$XncF!`xvauxDX-cI~37{9B`QNE@N z5Q6T?9oK+&DigT;4iH|L0uA~PiSi2`Ns{2kXDYqfX8s3O_0-%<1p`a(nGAWeYgs3F3;T~bM-9rm?-kyP*$(hJMs@Tl!VDF3t_C?8kn27 z_}fvVt^7BicewDEQBm&^JK`&vC}2m5Yeyi@%P?pr9ab*I0@l(zkchV74h@QfEXjtE z;7w%%qag#MgGB>_L76$o;zMEX%BrF5x( zF9xfiyTbYNi*WTH*~_?;9U~kZ-0>j*6GFr^glmlJHXp87@C}f3v1`Tj{?i%ZQnvW1 zwq1{bNA%y(rjIgYFGDkjysfIgv>WeD1Aa$sxE(84Q6~vk((PvbAX?Rg{9MxlA4O|D z;T^`M;;b;?Njs41{fz4rV~s6JENGx6#WBPVOvfM;X;*<)HtjzRnq z_9Z)-+gn^rk@@;xT{@M!Y^UQa!^nrGOq_f)a3>Z|oPXY%YQ)kDv(U`E~pGrs= z&MHJ1MrIZ*fwd~KJoDc?6 zzW2-r?RG7%tiI&|$*oUbs`~A3K4$gXq54FVLD8E$2LN=H*Ucomqpx7+!O9_eXJhO1ZU9!ks zvUxTGJxvMmbi}Nn7>0TLLAlTs6>4PhMIlFc0xLct2#`4ws=YI%?ArLW;M3Pn^XpLo&j_df%+O1_-T=djtLCO*>6C(M8^7ncZxV{ch1O>E zNqs~(L|i>}SsQm89YdF=!T$L1%#TNeWF4u4p9u_c>OJzCZ+riS?pnfZG^2|uS3k=Q zM&RwLtRym$m!IC&UM#*^8Lz9dwUsRiN!Brao)S8LzasM2OidOHxZuJmE#JQdC;lB4 zVl;U`hBqw*AqfprH3kTqE?BSe+7F0Cg1$6AVrF6R`5({N=HKMj4pVaez4*_w9WjS9 z{eL*ru^h*IhXyXn$^vW5q2Q>8o6tN)M90z=Ip$_mpbQ-Z=<~$iBrjt&uXRV)tq5^1 z8haw9{ccAm2o4;4{O7n*2lVJ+f7xnv(Z_E^-)_*x^jb4Ps_61;m%8+n^^+VY-Ym{% zcr)F?9OZ{vWo~4RU@3fx&);vEYPfoY*ZoMf#^}5s>?U00dCN*^eJ!KMc8jQA)ks#(mJuv&7-Or^_zzGDg z=}z0C2+IZ*8ks{|j|OF4R2>4sA z=MW^;&)&plYaJu_4{}3x&#y(5*WL*Gv$UzU$rZ?5YD$2}~7ZC0B2; zh62{z$12IObk1msdHj-(or@nGdp>qcCeL`KJ2X!wrfiZ1&_|#t1haJW{>)rGJA7-i zYft&l+OeZ{8jo-C|_IkeIYR= zYSL`iEZ2J&%Atv_L+?z}6kPKQDmd7%Wl!DXK2@X=OK*r!1OT87)Uq+IyryMKx`(ZW^0u1kAv24#Hyuva$Vo}rD%Eu@?3v!4=9!aZ9G7EZ;8Q_ zGSVwbY!{%|Y-7%WRP?=&__iZLhco0$r7dec9AB)kbXPp;H|;3pOUZfrSVi_#OFp0w z$4_!X{?1`wTsv+m-@9_}!?=1g@=(x+S<{$n;cfx`QuoTtzCWS4@f2xs^fe4gCJA6X zWa8Txv!i){*d}H8eHfl2R($d3UgE!i^Zvg9XCez9qoQgWkqIvRB_mtlLG6^twlvgFHYGeUD%0YZB&B$2_425&g+0r+3UcL+@a{x^9^k&(b<43g231HO zU}Q<61lwDT@1sS3fDa~q<)haWa)&am?C`8=?qd0Umd8mID15n7;1PfIJL(T-d$V4_ z%2cznphm4EjYx&tdzj2oitaaw4Y-l(S!#u@?9o@+ACB5dEsuN?vA321f43NLiVFjd zz&}rnHNqJqWVkCQ`|*F*Fe`7A6{u(Mf;;He!OxDV^SZp4e$jU0wth#h5q*xcJK}_$ z%ZI2X^M0u1Coilb_7ANP&EaD(KG_iUy+xJ1*J)0Phy?8>js~1pf6IzC&=vVqNl17> zR4<^!BJUdug>&>Blpf<*_9gDv4Oy4icT8ZDk|;DQ`^tC1hFjLVIh~WCVw)hd7w%0@ zl<1#dwFuz6SkGwZjd|JT766Nt^+oF?c{0T}YhZrQq_^+b;5j|2^F{b0vkIs>e^>;6 z96-$rt}w_Kwi6!X-hB%%E5hzZ9A%Vvp_INyuFv1sSLacvmT-9;M$vwLs`mByS9lx) zM*xp<4UcD(8OG}7GYvx}cH1pZIL3zke7*ijrqV7w$@IdBlN zR=1z*_0Gk!0~HGO_IQUNG%8IgEwnH296&?pmkOCcVSiG-V3l>4^?wOfkGbS8%gIi> zfEa$i@XiZgQcTyyCxzm{p!geD{mT=~=dp-)EE&CVBqsMqP#PDmP*{vVPQsz0_XE1e ziB@P{$W&5h_O;5c3AVM!Mz%-d`}~HMiwOaLk60yb6KV9)IKnS z;oJKiGythi2psm0(q?&NIv)jy_k@dq1&zGtq;3NTao;8TQoFl zzw7vNJ09SEcp&&QrVq&(v3_HvhAQGE?WRT`b>}gZ&c}F(DZ-xGJwk~^h&!1`D|K(7jkZ8sNI`b#yw7?#Tlxpsm*8NYpv667Mf|!-b>`0 zrP^37&f_?W*cj;ftFsN9sxo!2aE{V)RG9twSXcJym^ycwI`oPaD#W_5-{NxO^<3py zcH4Htf{r4=&06~ks#ERsJ#KYvN#z8kQjV%MGsjv`e0tg>Hv;Ep zxRJ2Nx$+lLw<9T%k5ON!wo%e{Op!0?!8bVMO8rbn%6%ysHZx|uZe(L}G7IytnNs5y z65=pTqz(lq?3a8Gf2BLk249W-XMu-27}5i6lCUiIrW_p;oKOib3@*ydSpDG)ViWrb zp4J`o^S#^oX^P#k7Y{&ZY((0DJ!pJ0xFsL5+uFpuVE)60m)VY6UE8Aw54HOOs9ZPG z*B1`gKQHfol}RqpSl7;$<~Kpqr`fywW@nG&xtSqc5dSA*!NfRoXt8CW(W3OkZxI69 zaPPD#J6*7KR%XBXg#^D(1@vaH2v$}~c_ODq)QG49$GJi7Dg|JU-EH!hYs4lmTcC(HwGTRv0`u-HGLSDQ z4XQJOlmC($Bki}$BbwD-@VcwIo|SSZS^i7AfekatEL)<2oq7E=Q87`w2sks^2zg?y zttsgOwasL!AAhG3GTO>hc=P7G#@EgYTvo_vTdGb6cgO>Yq!2G&_CU4W;UjY50)x)8ONWIJ5c}&6!$Bb)vCf0$e;*PCVSa%lmG92b zLI!$#P|RaJvFASa4!b|215{iUX%~r(_AiawA^sToTV#3F+UlwXr}@)WtY*hREzwtv zaS;2;ylDvm8O5Me5$UlY3-d72Qf9!Q?%H(Fk!*gKg2o@#b>;g%?TU`8YAmY|GSx)x zJK};ZGnCYa;4})G;gHJ1ay3OCxeuMFMTkZx=1al@9mkT)dw$@rq;$ktdY*NdO40@T za}-M543Hfy5)O{meg6*_#PsxzraqVHG;3vabZCsQ<@@a>W(;cE4<_)m&lN^jcn@0g zd2w2Aa=`_X6FJGK#iW1qa6JqUVNnso$6s9$Xv2p$g7@_cmi z5c_I5EVC0U_uym;{OB2X6S!pMX0ct*1S=>qs_eXXSy7YXYgDFZ2u&Ao*+lU!GU3Sq_}wHv~n_Xr;Vi3Xsh*^zNkKnSl>$ePgBUw!UamEwfr{#_bkr zfkv0has^Q0^I(ybWyLdYRu{{L*3FS1twBJoXe)l@zP9pcnfB>U57}>9K%4O$tfP-S zBX{d%aX4!sk#ZDX2b6^;ZL>nvLo~!~x>vvHLM$3rA9Fglo7M>PlY}GuSTc5Pkv)B{ zvQ-U{91h`1oX?=*@3iBwu3;h+FQ?wo3zy9AAg&~!t`7`?#fpxAMwrsC zUf||?Yd3m3SGDXzqvHpuz?)e~EPZJqUsA;kfV?-uh@O@SkE5`F3cia;=lRwy49q!s_5bUCDemkpO(Y=c~TYE}(;LtfO z0_3B9xJX?xm}de+QDr3``>Z`Ak<&zLZ zI1=5mvo8JzWkCO96-H?=WlNd2bVzAltP<%uIoU5~Tlj;SiUW;=o=l9n(`H1ExjD}k z3bR^JrP(<0Bn!l$q;5!cmU6V_C+z9xf-l$aJr-q>r176-MO?rBUHT-^JV^<^6?G?!0?V|Z3CW)nmbYZzE=&P7v!DV=@b>HDroX()~k(7F(+$2vh2 z>eX+dWSbWaKS+)1Jf90P>g6J&boZM4A|M$y%-B&?#WSxc;CK|Wc-52h*$4)__!!vp zVrO?+TlhHZ+UrG6m9Iw8VqVP=?f3S}mcZ||UCU7)Q^sgc6#iOS>d}7CaMqs^>}-S>{%GczaIzpNOD$ zTnzcab92NZV|;!ZoQ^G-_}ADzAUJs@8LxhhFRChN@y#;%U|g&a@OI3#u?0+H%$A~> zKjbf;i99gBgS%Kj8M_c1UzkU{Bp>)Grr+Fu872g%-e@h{c>MFwN1}|keV%vB@GMCO zw1|%T^1Dvl)i^5ugV&QRsWXm5tLtiwqvC6q+-|0}fN7YvgbvZp)3#ds96wtV76^*Ymo)QhIx5ID!6|>$^pDc-t)1^z+Mc8n| zu^pYwM9ai;@)C-47xT`mVX?Udr3~LxJFRD`26iD6K~i?6rV|TA|C1qnEGu(fN7S`h zd)o8t{Vz|hMy~JseT)2HIN);3Q_-E?ZH%MlLHC5GC)ZxHRJ!b*ER*bw;}N$fZ{-&N zw3e(KN(6@oOdRi8yS(eDU+(Qbl9ZF7&W)Z-1~p1JesHG!*u@Ur|~sb}`cOtB75wS7oxfy=`l5hSs>y%-cuVr;C> z3H{>?P0C%)%b^$Kx)vk_gVx{JfC^;XLTunEopRcSnngdVnPkOo!9fNg_dsUVqEt?rK($m@=tnIld2VaXQGIC5D;Nos}GRXW!I( zq3PSwRi!p_Po%OE9dp)$8QoB%2;mUs#XxsW51f^R_#>7ZwI>WILeqkYQs;Ag?~92m9!Z4rAln&3-dO5Qm%U!s&~e%^9cHtbbN|2+ehWcUQhL-^dSM* zNOjPIBjY}oi;W5~K6VOu*ph*jv^@1saK$K2Vf#h?N}l{BvBh5KuGJ~0j2Pf{=sfXI zs8iLj=iPn-2LRr+0cDL7xDiNXdCpXq7Soq?;#lRDU{ga!?v!WU?5);@1xcR|uemfQj zBsYksU6Z0Q0M}L!o8D?kf&Vc$ZMVFa1qMIPhz%KH01NkUf4+Q{u@uF3bt8q?{{VH0EDXAlFco_b%-PKnad+Yc(bjZ^_9%`Q1Wgg!9f zJyyaY7)BwA0TtZaG9*l%J|xyp$RpkS-r5+7jkXV=P89O|8r0pRI%(?bP+V;W9+^jJ zA!*q$I2y2)X^DYulMnbKU*hPFr4PU^f0#T#eZx3&>>5--d1%NI6FmV zO8UYgA2LyfZ(ppEVt}j_E#11s^tMY*Wj}<=54+jao^tJSIXS-c$i5n>b~OHosp2LrVRV1VF`+QsbF5ZEpG z^P-K%)wbO{7Pwm+>?N#uU1mMARDrhEB*y(1koh9fPx)00qtpRwB0tw2d{M(f!nuC8#aGntz1?vEC7|z-s|DJ0F2c<`DB=9l5 zQ>Pl!jgannMv>Oz%kw%w4e)T;7#a4mAbh?f2zhkGB^6ucwM*GC+m2|*!fI;Q)@{ia$s zustW^a1iIQ{^ancW&qE+4)=Zjj1A}30R9Lj%WS|(Ag=Y|_%WPg|0ch$vzrQZUasVJ zz8%N!v;JD!?(ebJ`BpY6rof+JX_I*bfN7k!8sdQMe*E%!9Rn+_GDhJ}{;@xm1I>{q zpdI{`j{?pqlt|<+aaN&q%cOetsgw%4ii?ZMD2cAn??Lh z)3Q_}wo2MKeLxI_tfWUE{Zti)d_Y@N7&F~9b?kv_GZ2nRs8G&7co73Ig4gArepScH z-kIazAFR>QYHi)@)K$U>3;2I&W4${T7zvt88&^VR^H=JmZUd4}g zVJXrL*-KgGgSNgv1XH3!bjoKjp}3AK?FEl8CW!@i-o<*H6cH3FN&v}q z;oUZ-9U6F!8aoGdtiVf|>kxwlL`zV}m>wQcKyxuu#Mt>J8zG7$wrxzFFbT!|{#|%~ zf_m)f4E@76Lu9J((b;t>*-q=mSfYEO&6`_ML)6!a)g^Dm(B}vUt0~7Y@wUqx9Wfj* zLDfyQHVsWWaGe%uDJTVq!h?(T`KfX*TM`8-8x4nM0nC(fig{VGGnM0e2-LJO_Pwjt z)+9=D<6@MbGR@tjKqa$2^olha7wPEE>TK|Yjau9(B}N`8}~JyoShCPAH;Km=`b&HoJ4+SXNEm%Jie-f#@ZVepLJQ_*a|1@si&n zfb!Una$a~zP?MYW?4|bmQEp8Q2Ych4v8PnMU-Bo5A{eb0zOM-=L>$HE4!%*OX(W|1 zQ1L#w&0E+v+sq(q*L`TQ^u91nTM6xURN_xDqCCQHk$C*M@cIRymMf}880KLFRlP1m z#mX$Tef+!8BSh^BGllkZ1=ugwV`1{v_*MuJDg1*C`=GlT+^_&xEaS)UVN-|XL1726mbPi50$0~6RG-V&Ez0ZMe5A2Gd?@Cup!+RzlSU+&Js z5^!ip(b1whub&$VYwFm(51UTi<`IP@_%6KVO{a$8wC2WX^$_o2s6flEjVu%V@w+0?}IWpsd&B(u4(dnLqM7f023ah#E`k+zMcdI2jLWx&*>MgT0U695(RNCKMv!Uc;7SIN3y6 z33f`H$15&G`E6%D#^lwiZ^^SNcz} zt(5-~gqzOL7rSBE<3~zs(3EW9z)>EJx7tTHv@4ikM{gCP?4KiP1OoUe{3%M`U+Z3T zv_1p#FOB{ms^0pc3Ap>;-e{#oi2OgNuj@P(ho#(xn|4|;M}z_zP>0X!2DfFh#NSK< z>$*gnyYkxtQDLf*t)hTKH**Q@0QNaF@JYvVb?8DW`3g(Kc6y0q-YR~z{d6!=w7w$M zuO(e{iUq zMM}onF$XX>dP+%Tm7otE&!E8+fk&w>feca&c6=+W4`aFE?Dpk-SHchp6>5sU%o?z@ zbGQ0=C=^mb#MVZ%Su-1fF|K!HFw)tS4D3FC-V?PRtIMLK$Z}H|!X~{>>J3+oQKz<_A(Wf+^yWC~3M%R6T8W zgQ>M=!M{Lyga1T9gMTu6HYdx5A9pKqVpZ)Whs>PX3oeOkB7?{C8bJfoRUNMF{FA+Z zB0KqBr6Ck_wVOqX!Y^_!<2J%{;M6BJPCs$KoaUb>Br=omq5rA11YDy2TW!6uCU~o_ z{iEkrKRL~h_3c7Ll3x>T9J@UJv0NSGBg*AdyvddF6Y2UC#wd1mHLv552D$0#fJ>q~ z-$h~7*I~!cCv=%0?2RD(*p}jPx{3Uuj4?fqn9R#$+tXOMNCM-wVAlFEH2Nvy zw!7{$6Y3z#jVf$;`BoyqJ@s!iSZ|g$@FP+t>&NFq4w{tHWQhbAFh74u-j4En+pNLg z(8aV}h`Lp7o_I}o{Xo#7pVkDYU7GWv+t3VcpYi#8^qq&5%)5NsRoMrAmgzFf&Fj#! z0~pjC8lG$tI`QhwRY4Wv-qsx(fS}w8VL-p6sQPl!&oqlUYGI9ORSdtu_lDOrRsIyW*%n*Bi`dU9p0f^V;mMJd*tVQAjmFqn*NnEaXJ_ zawZRu!KNXRUl;tvh90o_kohirUhDJHa?E)Elwh>I%j+Sz3%-tpKO` zgv^h*HclmK`%-h0y<&DB|c-rp+GQw>hSgk*vYK(F)0g*V;;+zzm2}OIzxhEZ`(6 zg*n6a;-t8d4{@HEY+zL1ejH|V;v{v)E`t0NR_j7IF3$!IM*So+0LFAVlG%Qx8;FVR zq5{;!CaD4RmDB1JrIYws!vkhO+XAdNlzu7PoW;0tn1iB83qGdVk3oL-zBoo)bY$@S@wX$eH+we?9_LE9I5XM%+f~}m3`vfJ7|rLj zU{aQZk75gDReB6*;R-|BcQs(V-q^29WCpvy+y!ynym-COP&4_-m>5RNLVUzvy8q1E z9kEy$ygv8d_l2VC1^xq~No;7L*J-QTt#Sui_TO|T4;?aot;(^#=9IaYrh$KL#n02R zr5a7*n@X|2l$1A~^pT>|CzZbb6aU~`tMo7UZ|y*$G#?HEP|iCQvmiu+9hIcb{c5{zO_NbHt?v>U>q?zf7r6WNp^#wdR-v{I0E)-ELElpJ0^H z0$t_b11xT?Gz)kv?&Nig3ID05Q`sY(E4vN_LCEn%{@OXjP z{0cXo@VFw&%)Q5c>`CT_T|(Pp>mDj#!qIlW-pJ)I+4f$mUqwuiyw8{9su-!QF1nhz z$s^2@_hG5%T*&Nbf)>uB@|pckp#~wt!WQZvUCIGqA@}$^$%sn_OSk&^9_ytR0Y&Io zs3;8-;CjcE>N{HP+pQcOJj|gQLw8SHw&|z4F#OiuO!b>XW!&#Bos{k6R1{KS_6IQ{tMYJHS*!t6c__WD3K#%xmC4K}wL{#L$Gpo3od{`3 zhXi68f2>lF?jlGH{fn)V&4h0ODf>QhO!lEuVAKm4`uu6?xhBNX?_bN;LN*;$Pk5z} zXG$F>zr*EXVNK5Db%4gd(L+;jtQ;h8_VMjL7P)e#o9~o6#aQydk5aka>=K zCu6~+E`0Y+*U=YcpVl0dSG)K}u8v?SCgvZuZbetJg~x6otArtXQJw34&)Qm4X)}EG z>rP7dMuE$XiQP49{xo?xhCJv2uB1rjYbLfjeAz<|%*NOBQG8c<+_EKK>`6VaK-8{} z-z-}Bycqx_rXBy^c3gm~AOBB6SS@&=JFS?BJv!$#mv?}|8Cst|T*1if8 zuk0scd-P*u^Q!vBH7x9Di+_}xxH?n*3JiKJ#T@sduCaGNNsn!^yHPJk*sW;mh2*{m zw-sbD!pr%W(gq@|F1=VnPA9Z+BWy(VEcY(B8vQxmnKej_hkEGCSn{(}!`W9Z{rmlt zM_<5D4jN2UG{DkGsStsQ%3BL0eESSi`PXoT2fmeHJTQ*uh?)U4-|p*H+8d*E?q$tkQ|= zq(&Q@jb)@&`B;M0xA~82Wrr_8>SR}*Yj5;dXUYUhdGLOhSqf8x1JuW^_1?m0hMNCi zbhO-*yoLM%!S!!hxU1q<^44ZjDY7*rDxcBbxxABCXHkj?e|Yfi3*yi8md!3zZx-bW z{>?N^Ykd6p-6N-S656hB^relmR%aRbTBq4=(e6unjqfEp&nw3Hqz8iG+4QHmgqd%Y zbNRw6q^fYZiMJg5UPRLEdhDKht7wjI1zz&Z@3dMpnkoOgKFa$7wb-{c`i&=&+NWYT z9aov)RWt$-lAJMR8En`G8_dk=dReo~U0Fym$P_QB>Rl;t1>9#OHA_Ry)c7FSD?qGR-cyR=-l(~C>Rlm3Z)JV|GqbM?Sf$5Ww zgdsj+0sJpy9Mekf2U6mqcXOwh2f`hqQZcoCQH?=r&O8AcK>U$qZF1C8M?@<`_IB397 z)G?b^h2E+YtoilxfEa4kJ#Ka>It!J1-cvvPc|c$F$CZQtO|{GK4U{G6^6|wd8G?lF z!<`rJhAERW6{X${O5Z=O7~ms{$b$W;^U@gi=y~x0?y=3vuG2}{9LXSlQ{wD#ut16U z(L?NNRLp`3WRUgRk8(jt!@!`u!;qgcg6e6;_2$-G+)=&+4$G03LYi&7s7|&>3d7FD z_jSs-HW}{AeP83~IB`S!QJP3cvD40v9fQ6V)-x>*vs9mS9RFBz{xbDzt5W4inwh&M zQ=(>S;45Hb>p8YSLD1xa_Gn+xv@AN=u$9OZ<*ZF&`3{o%Lczq9}U z`&LLZASWT0A@}&ZfEnXW#s&=I51N-dnbfA6yu+?Ch zt%&(yE75iJr$zJ^u7;s{)f~h*8 z&SoYj>)w)%vx z@nOCu7fE{aH|la6e^}G=3tPW%a92PNx3}q?cp_DO$K+sJ$VV=NKy_k0HnklBiK!1( z$fP;ADwKukucs`AoUbh#oM9;4QY1JZ~2#4X$FYD*@VsbtV@d%*}k8_*~w6krLcf?imtzI{ADM(=r%*xcney{(j+E}5sE zzV2!J6{n<{)Ib9rC6ntb){n#Bx^2Nr+j-_+`f1h={HOwQQD@(x?sSC=0%E$huECZS zs~3mf_?OnkvWU&*l9B+vMk@RJwy@RkH=|zli4orgsxV9~g({dYCEWC4knril zwbg7f?_bY*8kB}hD5^;-gag^WdR1iE>byb|(bBNic8;##tqb{I)h3VNQlQ$*k9)ug z>Y5wb$~x4JCt&r%;t=uHVW=_pcVZX1P#*I&YYI+1Y$%JiDKL>tVS=ue5pF1}S$9 zT5juTDC^R;+Wabs`ik>UiC%T=$Jo33CzcWC5a^{E^aLUBvgp4>;oB8sHn`~PG@68o z_dO{z%{nhQHLVf40roqj=yHL4>G9tV5NjRBCkM(q2#TdQ%jkFVsU=nUhu|1X&Z0dN zl@}t89h>t4Pu^THse_MIuXJ2adwr)r$We8DJa9jKTSdQ^=4}f}*dR!Q8R0rgbF$XP z3$1$smcuXG>eJn*)9S=K?ySR}7~S2En0V+l8J=l)ZK=EM@i|o%s0Ea~CorKQgK&1` ziDl?@Y$!yiv37X;d9+7(U-<+|Fr9uFKlfAHaQx0m*ISAXDVj8mamahDfQBh}&oJRE zjdOCjs{1A3P&(>izZ}B>8xio0^8zL$uk%Fq?LFei^E!cc7r3yEHg__${R793w~<8_ zbq7C@f0JDkJEV?OV8QYa36&tG-PJd?g$o5s_^|wN&Y06E3ojS=xqeFUsY3_FIaU82 z{af6~Gd@yHyCHyGOS%N`V=$6z%4B!6-ZDR0VzL&^pa9U+uyC0bja>vjsE@GhPjkk# zh^wESR(T?t{n{^UR{IgYm;uRjX6LOa%76C)6cQ|;+*@4KbeKm9)|U1vppZCYb&Vkh z!waF0!#r@q=3LbWS8WMvggOquzJJKYvZJLsB;A3-2uJ?8bJ3nkXwSX;_DtA=HKg*- zFhz06DWS3C)d>9bWt(TAsTaUmut-fr%Xhp~5G%7&{RL&?AD~RaD}Y93U++WUHbVtF zd|>k`<{NW%s#2C0s9gNZcY;M26gzC7KnPV9uSok1>009B}x#oYOSh=jKr_ z9?T74r(mE2FQkwHictla4sWH<%k53Z=~+~xQ?^0N1Vqa$stcme6xi1ibbPXv zCwMrd*3{MP1jVeDTufhIY8GBMY`rjkGxPMNRsQ?NPjzwtw~VUjzm;Lg7XQLY{924I zS5A-w?(=EgW;`_e+Wtn0cM%`Y=zw;gE?|#QGs{29-?LZl_om(J44gOoLV0ptJQk+P z*4c>c7DA=a&U#udaQMX5X9rQo1#7g+2d83=dxTnSTIk7v9sX*GCrk z7yBpXPb|Kl>H#zYxX9-zS@t#mY8F5K78+0$VnKwAzPmC_vgG$F{UtDoNjR-#AaG+vCfrh_~uN*r#xX}rA$i1;DOpqtoZUR20+J<(;<^*E!# zW|R*5x#tneQJGYo`?6TU@o#Visaj%jy;HdreF-RzVZ2r8cUnqr_#EHmZJl z1zvRr()l|~U-x$%qAYWOlJ3cdKZ8wzOP^`;oDe2FaTC&0OMm;G7sE2@BsLvjqu6jb0pCE9)|ZIk7Y$+ei1V2^1EoVX;zo z@Z*q#0!rb%;fVDLHIL)aGZIcu)5I}y=h=ZG5A77}1m*3FJuYXE$f*tuxjHB_bHkxI zYA@ZcU9c#Eqyf^>;#+K&G_;$9OKXhUoA&s3NW)QYU#r0*YNLd)uYktPsHO(FNF&=x zY^4SD(7|U~jvU6>+lY=Zirygarg#;{j;#2*QFO1XmL^2vHqG}!S(t}z{VrxaduAI| zFf}??u{!Y+z!sowbYn1zI(t7ixcB>BrkMeo6J|A{r+1}4kfU-ZYa8x6+W5&X;>4&e zBK)q_tej>ZexUGuRUDvjY&5h)T~MD_YEQsE_vKHuE2(&|f%(;c#O+~`#7SiGp#Y#K zJ2X{3Glc&#Xvx+2AQioAN-@i1KN((~ryhQFsBY17h<&4q{3Yxd5IJZFJowuCS6hYr zP-8<=r>`i9V{PqzRy@^aP732L-p5Wt5jtO0V0+bv4-CE^Or>gz2rst|u0pCM=*s#^ zvTsvNjZ5>M=!7RZRG==4oPa1?yd<-we_pejO*occl!Hx6vJ{E(J*k9$sAh5MeVR|# zEdBE5q*9ksM;+Z*c8O5mn;?4qagO!v!a`>iq&7G7Ue2(bnzy;c3w2pH!3WBi(fGfr z{qxWt+=1hiKRDwzEsCAnq;ecE*kwgF4H}=4JtHP;XrW&(qRHUYYYOpI%XRLet=K@x zuDMks;)jX--nSi(H3?l?{{`RjkKXE&0pcG-{(~F;9|(4C;Q@6!80!j6a_|{5s*&hf z%pmXO-LS@Y#TN{J>2!1bUbcO{nFZdyZ8qIybdYlzapcRLCctt8pWUp_HoI8wK6AU;Ko%z8a45|0yn!F-4K1L;S|eh7LFYNG&kl|SLm zEu5?q9ppOwtZVO?!>W8K2)yyV6YNl&%C@(}RhTmCtm{aB>qva zNrmZH?2h0~uBD{{eIi?b7d*G=^>VxLaAwG_SELkn<|9HT9Yo9zy5xP z5~rBIRs-e*%pZiw?)KgyCL@lo_#~IR+bZp-yeDgTDOjdRA_b2!0guN+^43Gco+BLt zZBBjU)(PuV;g7$eQb9Qs>{LPF2EM0pG z$4R|;vbQ&#BKaw^>&mbKY2m=ryVWXkPZCco= zpk&k}buufxRErnyr*Jvf{!wx)i_+zB0(8(zvl6;CJ1u0hphOWzUuz2TPDU@mOC zWvQY1-$1zZqVy4uxA+GwDQ`aQQZ*9eY~nuPenq#1j%1hBBQW~eZxtb^Bx%|vdhme%fJaiO-PezU zSE+Ky)?pdQ?7Hb!DZz<--9#}WE?bMb_t=ZADu39jS;4c~R zMHtneOPBHJNn`lEyxg0MPbBG>l1q_PC}XXMa4ysX1!rb{o`fyE*K}vlKL?RewBxH>LH&c}uDdf_3+sEl=ORQO z$*c-VfRV9BeG3`q*m&T3g!?haR7bM)x|uZqm^v2+xU*rV4nqvNqTMXjUr{V2hOR;b z5WclliyTFxqp(=`_1AsAj7Ahn!KEfFn+s-;OfA6Xkq5+nD=GW>$<^qPVCz_pgBWXX zn*?KxlmcvX`YU+aYp^anXE4O(6l-)&x;V{4jaIa`Q-~8O-D}(5crtzy2Y3?#i(PJL z_zUqup6kGMfh+5{q=@^5L2AEUOl_C`RvNsHPDP&8@<#JC6wLsq8_5JiR@}~zyq5dyh*Fk zz_!|<9Rt?rM?W)BShCG;)if~CiWt;&a+8btNg<-XI`(NWJAxC;FTFbaIIE#P0z zHlc%ks0Y!s;^}!6nZlCA0OiMaT6>W$_fXZ<|tUI*xxU5+)sU2vyF*E zF%B9LT9!|Wfa4n9NS_Z`0Ext7vcs`o)fJy;-7o7BP|tYtv3ZZdpYy&$_}N=Zzr z0txgwc2Gf97Us9QeyFNS{HFYB?7_!%^6sWc78&IXeeqM5AHA^n51jufWXu8vNFp^` zPJ`>5rLu;S92>7#0EBa{^jz?WC{srOe|XgajkY5OB-Pc?RLGwoVL{Nt5ny+@WB^Mi5c7Gc)4Bt$jqjOF&Xf z6+MwW%&p1;Xo@oKEY97#Qa!Dzt~*s4%dtB-i&@V4SCl9`vkKmpcB8JqG=(YHymF?~=hlCx63E$h&O*7!C>{tCUp-aq6hig|t8vsIi|simlc*pzP4m^lm!v zxDMEtu+H|<)$rvt2V?Pj^FkUHt@3i_-ZOXbcnU4vV;<&A*&*aP150&1-!R|zU_Paf zKy0S8+R&950mU5xLo@y3F~-Aw>u9-5inu*GFlWkB7`k`?VX_ zzdiIb4Cwa_OG0uSTIPGGHx0drfP4xBe@Sc!J@NgC@}nM*IG$!I(!y|23|PjfiGHl> z<+6XSwoF{o^sr7RD1HHjdn}Ju9dFFV%`ujko5B1(eF@YaqdI-tKa4t=4w^B&aZ3IW zPt#|>b;le1l-y}D^mEX6yV<{_rEamXop`yzX2go$<@|pHft=HK-!IEwHKT@a*iM2X z#uLP}?%6z=blkk!97--8?qKuZeq0C8qtu9gKsnbMTK32}yeA=F$ZBC-PwQ!s9Dp^@wbbK!TPRT?;lb<5lBSrFH)@$p=4r}QsI(H@ z85s5EHbL)zSJ;HI1TVFvIqNwIU$~V(0P^Bx-GW?>wZc%kaMliO#QZVD9tTSZ|0ZDB zvAX17txUOAd!KgUpOEJX?&7==uTZ-MfKt)H-d8Vll%Puv;u;ad(J>4)0RoP78A76g zht?Z<$=sX$$wRYD2Lxvh2UN_1!8_^`c5?V#tCOzE8H!4ZRnzwvwa97(%&k)pFDHl$;eB!2rVgH667#SxH1AqK2o zo)_*)_;%4SYozW+5eKG@$DjSUCo$>LvEa@llUM$7O!m&a5F`E;Jfz;Kg`X%Z(+;2- zLZBDhqAHNiRa9~ecl?3SY&>eC@}1ElZsR&R*G4Li>y5GsVCb*=W8RN`Iwgc9(0#Gw z+zPV-e_^h#)0tdR3 z12Vjq_wro&P1b83M@goFLLS1RD+BV=Dk?nv#uRnW``Q5)%wz6)usugOJ3Qt5wqe4p zlU^x5A@hVyA0Uca9i0qll5S%(EYEd#&VJ%C*`vVNQNll7#mgU$ou8Fh2q-_AA?HOD zUYQ(X+fG9Qa(hSQu)=v?-wnOoHz~nY_sW==?Sl7zP2T@YS**~Wj~@?h4(Cq- z+|}1Wo(`vf(6&4GcpMvCp{_%&Q?8Ylg0^2z@pSTrg(Qj=zkh=i&tGT4f15}_&g2;0 zNOjz`7`Jw%(dO~PpOnychJJQ~nXHWmV8036o*EUsTbkyHAc`-h@8X>s9bDb6zZj~O z8&~1A?Be|CC$&>IQKpFr-X7J6A3y!vf*lMb{cxCqL!jxxTHN1604WGfKf9tyeKt6s zQls!hrAn(n-RKE*d!6D5D29YjY(Gzv0JwWDl+V(bjMKAPN>Cv&?>tZwNp`oGWoO!k?2rp z20U_sm%{{?vd`p1bEIRW0a`wgVln4gP00Dl1<8ub^HIB+$wJ#7A-^G7atHOt5;Phb z@c!(W?A@NO%hwov83R9AMIwAzh8_GxoDHoeFb4Guz`>06_3tX!D2ZOaGr7V@2I+G) zor_VFNvh~j17(M`X%#co{TP((5T#ZK<7=~W7Y$RMF}VV9{4W{q0S2x`b0bf#W{CZv zsls+R=@_jJOl4YE%V#Mu}iyr zE(3XIREO^io*)^xSbqE)+g~E6Lerdku(P6xkX9~PlsjOq_nR5Y!`IkahFo_tV8;Q# zui~;8-Ma2h`oWi~3tVM@&Eu6we(c{FHWNviZK0TBY9_ z(}ukBcMeBB-*M}qi+p&(dMPZ)ZOuZu6kWwHolG08vSD{9V3!86$brqn@_u$b%pGUk z);opJ!p6|V`sG7HX8%!i`0h%-=dUIcE4vWnfz#FUNqsL_dEVr)<(ZePE;O zO%YSD+N{#X^%J{}9S56%Cj;*&ZgpnizViQit2#T0Nf&55ig$!CIlL!R*fP^(T{lz@ zw*8dNfw4vxf?K>8U#q{3P*MM0BO=gbfxPc|tH3a)B2mP5&o|f4AdU7Tj@{o#-}{uq zU(G+>(VQP+y^<}m8NYb7@28{rAhAq%=6<#-Cjvb2veY|Aw((Eo*H7jgH&a`~6eVm} zST>(~<(O=@c-o}x7XBvQcHR|yb82Z`o36g@lI6I!o{Ou%(jjE?)~Ej;zch=RzNuDl zzWAF?JV>D@PaqM-6~0ky|CjINR?jZG{ap)2_?_gn*u}vc`eukS#E*BnKKAy_2%}Za zXhnb!%}1KBS$|N+bz2yG9+2n2XUw#9so+hZ^OlK8iuu}O!I=!Q;WP&cV?`hSSoXhE zRX=QT5y{mUGmQxYy%0rUiv`>^9RS)4W0d*qH5?#KV|CoV(=_1g% z&=m7X(4J5VC1cl6ltHRHkNCyCGe{P%)`0wUU_!N}`b*XIZ6J*WaPGD>a)l94N1FkP zP__D3>d2$O6nf154T9)uFEk~wn(nl{iy)eq_gd0?9n7{@J#{K)fN6D8n+ zh%!8w*~n3)LKv#eQiV9!i_k9@s_B{x4Z-rC@zTaTxqk=Op*rWnCj2= z54QGlck&`Hu7`e@vY_KWmIJ#;TrJ!qv$(V1eC%e>NU$|ZXuL9D4L!cu5o2@sTU z&ZLv;mw5W}Ofk&kz`vbGC3Z@bd}zqmx6!19K-M}wt;6T#Mlu_IZbm<^OjHYzG9%91 zX&wY;JVUDh(;Xo#*aTs%49OBl`)cu}Nf$B6w7rtEJ}Bp()#{^J#!O!1{P9jUXGe;v z4h0mNx!W)l#Ieb$=`MnEhmU{Qj(I%;ov4 zcWHY&W1z2TMO9I)1gs&BgBBg`QoS$K6ccf6Y(@gTtQcYi=Mzj;FA{ZkN@*G`|IZwU z_kVCwFW)OhS4QRw2Fvl}L$sBn9?KSUJ58GCIY=JH{wsXN=;pO1yT^uw&SR}kphOs8 zPWTxlH*HuXf$y?P{YuEy`E(sjwb$)0BQ41N*JOwML0D6q=3N+lul$_cjQm%*O0mg+ zr)04VYz?FAb*YxP(-520zR0>^<|<+K{#e)rHWPM#n&) z$;@b~v~7~$Dc+fAstiaz?8*+M1>AaNolJy@)F6YM@rn{%$SX7v_5CL`ei6!PC6Q+o zmD6dfqvZ?$n_0uzk>=q#N*zqf2~Zl=Gsev5uXR8C^gUS6*(0N9VN)2MS-lCEQ2jO; zUfBiswiz4#?s0e9gOkUD&%6_|iM4E*P~|EOvx+PPFRRGFW(B>5&i>SnAwc!@8VK+P zxT|K>`FGEmc4}HXubJZ>6LXZVR&Z>*dF%d=3qZgyTFuMQfnRq@me>>}dYmq4DB8wQ z(Obr?vDR>dGvW6(`4oRGR}GohR94@#_l)Df^(yarr_}Rf&9uD_T;@l2bKQ|Y=>_T~cE!*#+)wn-{c%gw z#No68!p<e}51-DpA?sS~I_YU;QVFGJ~NkXu#*@_N~A?p9I5`5LM1kU_fZ| zbmxAFz|$@GwbBBOOZiHo$zJU_)~Wen9Gz6j5}Zm* z^9Zld1d9SVz$J-LVV66!?iO->YHGG`Caqq2Q^&}{oaZLe;@4jM5}l3jf?G$Q?s2Vl ztzwu2U~HS`EmL<8_F=|Xa1cO#(( z^No)paxScSOwp8aJz>53@RKJXq;-Emg_9-5ySPYflr)XpJXRTk*Gq_J>Jd z;B*PK-Quhj?V16$)E_z-bH6P7J&j+xf+TURF7`i|+7q z$WN`2DMHQejj^#x6Gjn;@Wiu_tIU@n*?uEO;g-7I`?=KgAY0I;B%qecTy7$=ihhfxyjo%m?iS2-vx=UL3LI~8}6cnDp5^{7cXusoeOF>JJ(o)UAZ z;}aW0djA3H`sRO(XTH&~1=(!}Wyw3GM95g1awWl>YdLA5fqCojeO*-Uixzs8llp2( zkq{{aObU8WG7AMdSSor8m;*3qy_m1ruF;1CY|-$~L@uPBrN7Fwk$!k@O#Rscp3QkP zU|4j!#*sAwPRs0nZ7js%1NIgD?Od1&_JGf+pwkQdB$D_(#!DcWuo}=c)wB7F`BUT} z*LUZHh`H6F0+PLL(&nFpb9T<}FJVII%r(_pq|$t~t@-r1qSo0VN`mKm>#;mSiM&16 z(q;cC3a)l?w$4&=n+(lVQ!e!k#qh!PD{36jWWw#Wu)LtYi}j21NXAuC!`s31r%72_ z(6=@$%DjVz{R_kP*H#}gznmx24&5JI)8&_=(fHo1)rCwM)~}HNj`g$9ZNRPjh>>03 ze1Xle{EbR6SXJC-w=CGUQNxfz-tu;a@=UpGNB3EQoh!~ReBsBc z+x_+wXop2h0gesuC+u48v;e$LveYIJwN|ATYH8`M;1NI_l9;mC8OOk^qGdSD7r6V7 zOz8NoFVq&imjr~wxa#PGO=&Ao-5=Cw`$xc?5&a%GZ83$$!PzRuvG*xAfSv%P#Lktt z7oG2eg19bkH^@(nho?AaW8^tYyiF3hmwa_(hYkG>P&bf>|3>z8c*)x)&*q;^1Mqrvil0LtFX_NM)VCeib zNuDE*n)607*2Xa^@?Tehra(sG_S%(wdYw3$XY%(;m*f%GU#-LhlHbEf@ls01^RIxn zIE~X@?Jf|%5cA*Ou(II%%;`lT%_zgiCU{U9V{Hm@?oD^Yd^y>fkvd)bctYs0@EW6J zR`WIkZ&O6YTz+Ic(&T~33_vm13td=z+UV3ijP*-0`yY-DFS%i%pd<)1#u=t3bTL}8 zsC5*T7|XoR8d2{#sDi=aXWamW3;AsMe@0zUEJf)jmGi)qRI-#f68!49eM`lj^C3`c z4AMlMs~uM>WRM22=Zt`)ua=}!`~a9bj{WYUh%xmzFRwZuUzU?#a2kLIKI{r# zmdq#;apEP@-Z7D!?Lx+Ge%uY>h^Z=AqvQYq-iH!59e!{hZGCH74#ZoCVs;q34zn$Z zi8HJ)YepCL79#b})7A^V3)6)QoMGpnTQFVaMpQJpee0Q1VM>Igy;z6)yaz|_)A#s% zQ7s$ESUor|E)k}d_t6&!#pL63F}5Q|nY1>6DL35Cw=d4qtIt~y$x}Fbz^v3OC$zsU z;}t|}Hjss|(4<%#3;Qd-mJnvpi>mwWx8t(d9;Hi!v|o_4RHLV=R@JPS)t{Q>`h}TK z0STK&iP?VbwT}>f{9v5B!z_fXZv#n-!H_qL zxW9utD02lrL?s0b9JKL^8ccmL9NXQM4Qq?!$TjXNpGPS3BvIP$-^uT4D3roy6K^#g zjIxApr*Ez1294$#*Q=_Npx})(?pMH_tMDW;mjrUa}JR7;cYO`~B+C>gfu_`;Z;G_Sk#r zEd!BJQe7Lf);9z$Qn#{~!*(pLBr`HIdMc;W^*EldHSf|5?t5@aFZw{frlx`0AUyv> z-hjGC*!j27W@%0^y9k6#qnTz?7>4zy3)SXsa7s5)TwCcT!vQMq#5PYL0mN_jx}4s2 z4;g6tfZuo^_!jVo_v!wAhU#>LWg;5$BU-FP7XfFNbo_R~ab{ExWPU}zOb+R5`X z0pUJ`Y8U28Lb%r)hX{Dyo7C|B-~}@^s6oSC>1x(*c_)a7+o2aL|8~C%u~8xtCYJL~ zpjC2xqWRP1dJP4~gi~~vLQ8B7Gv1BQgf%%7Sc?%*c|AqrKT~iFu)YVM=Y=a0jJ~%0 zM^$PN$KDlii$$jnW>kKLU7rlJyg>PHwIpwF`GmFra-}DLkMknQJOyhQU1*Ck>^@`G zZo2weaC>U|*}00&S*@zK?e8I7cR*CAACD0dgg4Q}aH@90!xup`K* z>H)4Y=T*Dx?Ul^&3e8Pcnlt~sy1E#h>Z+%ykkwVbqvpHsbC)lI#1fjKEd)BG_>(TA ztU;@b8x#zaDCmG*O(F$jo4M^kVzC}_thYTc;mWz4nkW+>bipnje zId5h-QyHXwviBS5vsA0FD} zw;&|67P`QP+8EX2%5@V8Q#~Ik2p{#c-}yI$`n&Xe!vwlz1BgHHzki?Z{`9o^9{r-U z8P7-T=AFO1T3aav4zu_AOl^;Jw}O|r;Pef|rJ6&AgEtae1!H%@0}47rl1P}!MQT8O zf1AV1oI3QbyoPBb#%;1p;&>9*RwOybi~QA8Rx+r475GBcESB`de!J~CE^B~PEPi?g zBe`iTmLxsE%ckQvcGl!&WzSGpBoUQS@>*w^%lnrqPN%V!)v|eWHDaG#+!3UinU^#9 zB4Vw=i`L=v5IuLZVnDA>^L2;Am}CN_THWGvQorU%a_#eZW{-xjoiLi=P!e((QBXX|Ld!Z#?_-4H=M)B@NL`@qZEl3lPG zrmi96pFejhdPzMVEg5MAF~64HZy2WG(brd59V1k`;kOXCcRZEoD^-g1nY+3E={PI; zU)-gMKwH54k2!b%G%Z*HTiun23n5Y)>V58e9z1_FC*W@Q=S`BF}t$N=+YrT*SRuF=J?@$w@5+bdG5m z1enH1HzS_rwB&5cu1&Na^`$T7E>YWP88X;${D77YS5o$#oHa5qb8ZL&28N@30 zillmJ!N*k0!O%ndGEmfaVg+{?coM*U(ls;+CXnI^xHLLcVPg!F^MGT6ZI9{GBWoHC zr+0n&QU{-E9M+RKfKB0GF#pWDnl&;hCcHv@^FtIN2-%Ii`-**1-ls@B`5 z0IBPoUA(I?L8H?CfFiQhr?VGrB4o5p0*8*FYP~r)3|s?lo+^juk~evTsPK1lgGxpy zhmH*3@fG;)bUo6^Y-1RyK0M?>+Qn&!b_ngz4Y@RxrA`u3~jbcznp{(21_vX;Gi!n2AzZ2GAcFzfymN$s&TFM=MX9YA>>aI z8eL)6C#im6ebhU9{$89DZ%I8pxk*G?WR&6%ZmPE|A<}&v=O5AWIF@Q$C^Tg~8=vO# zM%PAv6_*l{-dXB7{)s>HS6PP1%zg8It0NBBmOSAvB}UNnb6cf8E<P-#DxxDDKz2?aPP{30X|`d3Kj>;j?b7PO{>}Qli4itRVE0 z;Vhr=eQU&Gst69GF&UbO-q)6(P@GsZZ{wb>8xnUG9IPPzTr~Ia_)i}E|E5AzF3;7@ zUFkLCKFc}D4@P9gzoJ79^y`$1pFCooy;ASC+TLhtY4%WvS#qa@YGg zdIZ)@mmVw4@d22AH zX>U+9>^U=Peb%H$$Y*Yl5OOWHq;ugVN*mHT-(N0 zdi;spo#JrNKWs%nob0*dk9_>#M-1u)%FZi?d>pB2%x zSmtp(SDMxh1>09tgT&od+1wh%^iUf}COrcz*Dd=%FGn3pY8y9H^L;2wMRhXm(`Cbr z^`CAdKwyAQD@8q$0U*EYMc7L7Y;|T5B@gcje--;}%8jI!?p| zk`2w&pvHe(>b}}dGA+LIPA)a@Kin`coD4>gULg*T1>lmM9Cw$E{ZWX|eOY(Zb&Gnx zKI~0Yl~sfVoZXGQw};#c1PNr0ocfB~OwI!qqNXgHdxtJs^0u$dMFYKZ3p;P^?d(2z zE`KZ1Sy|KWI}dvs4f1TDnM?J}9!<14Abk&Bv+tC ze%?qI@OF=-ZjJB0Y2$jQT5kO$Iz!26*zl~FA!hezKbL9#4{T{kO(>k(UFDOIW}vm% zMA3A(bh&z60sG`PhYRsx)Y!CkDSKag4W=S{1l=WF$Z{C?LjoGPbm`o-PWZLX&#clB z65c$Wv=q<2gmwnhs^>ZvVu zZy=z{x2J}s!|qD=x5_OZU7R#A*@$nO(a-%Gycp&D5Irb*7A}Fj?inPPcVb{=zjO1> z_qF?36X9o%*r=CcZLKT+h5Pjuz82bIzC(3&OJg#Qbd{chkxz<`3O16_?cqw_zJUq| z2J?&)vMfTZmU?ekTbbD}g(`V875#96veMblqA@x+V!ZqYJmi+KmE+4)88(jAI>vdh z-u;cw&Mz}Ej-qg?iQN50ina=7h*w2_j?3HQ4Bj?b+lN@osVh1Da=4t+UN1aYG4g!j z03Gu=v;2z+B6T6{L81`oN3x214nq?QXsW9n?4KNU!PQES|<;$<8|9f*DC-aQPIuCu!fhm!~1#+X8#P z&Y9wjDv5{F;=S*x<+iUxVKT{D3>Io_mbyGWG82rmcrDMqE5Kgst9&cq^Xov_8Zu*n zhqEH;w?ZI3%;<`<5iefOfx$tVN?XxBF>fHdM=D(t<llbIyeVW5o+c*)rd><8?Uo``$4G-<*VI@g^KD&is}#Hw<(oGr<_2HG?;EIUd! z2hpDz*YXq8=SL?r>cBWqIusHVsUrjoB>#*Bs0*4w2I5MfO4?Cpoeu94(CywWfVbgz z_NS*sJcG`Lzm=AB*J+i6)A(5a8rn?^I-lmJf18$hRJ0KPKQ&`T`chwj%#`!VR3&$Ne2gakQ3)p==?T+Y8b+36e)3{ zGn=RUYn(g$;jWisF(aK|-O`=+)|Y8tCU~h2L{b=c(?8IWA_;1yw!vF{#q2zM-w1;T zl1+)AvJ$bHp4q_lcXuU=1Cwe!CL}Y5qq7DDcRqT9AUx(8_K)%&^MJq}@+b|8632>? zefoTpn!VHC&$@zC-K*kJ>)}+#bt7=4sg5-D`6r zONIwAiM6hLkp&*8@Hv>hoq}-`)ihbF|3A~bTfp;#{eIjwgGPc(!m~t0)|t_Qefam& zVkcRrrUNS{Tc+QZH21KE$*GJs*0k2deg^>*GxT|YL58$ z_=K0jd6~9t`N`sgUGG^}2vI`L)O^B>OrDnmXrm1_q3g#S&<>pUp|BVQp6W`YDA5U+zK?Ts4NpEDBm z3V~7Snjmj_Rlv*!4umB5p~lpx!uQe~r&`1bLOe@mfdOaJoZIagFA|}eL7MESBewkl z3X{D7VdqaB`n}l=PlOse`q1!`KY-Z*8^=Rz46MQ^d4+njbLo7QBI>Z*U5@H@oBxHJ zEsR#pe57XYS`ygi)`@&CvWS=I>~X0yAtTtZ%!|$Ds9VcFk-M4=Gf$?Ut0rsS;}vEG zca}cracB3ZamZ`D@u|%ZMC9i|jg?S(8>AblSab$d%$vO~zL{&l!R8itcd+gKC^OUM zj_|dP*Heph$a@M1CfQLhM8vfO;^yoew_u;U{*Im@D+Bl0L0$gqwNK_CGM!mjtS_C} z+4jhE*LtY+qX+C$zlep!E*Q6t#C-0=sZ#slA9V#%3AwUwW(4JH%USgItZEB*DG>Ig zSC)188_-AWoj4!zvfPw+&=0YGoO#C`S%xuX-4Ed_PxOUkVcB6e5Y5TPMbhF|&EtWi z?VZR|f3>NU4h1;rw2FWvyV!$7QrNSlyzFQzrtC z>f!`WCtCXU*c!;qdX3o@Ccu&ISm{@nyGP_)@W)^NOzZ&{D}(Ma0fiaqa>P>y*xPek z*p6WGbqt-B=NF{OLFuD-+=^udAiMH@l6mt+IY#n$nSxyQrt*%3>XLOU(@{F5MoK zC(Sip`(FNqVQIFirOEQ26s~OZOPIm_uAk_i_34I^Z-(v;U}tRv0?JMcCO3?H#d(g~ zqQpJlKhEMiz=zd*0l}U7Y6zGAYu^3e#x|XiUo!VfS8~mfF006(QJ>ki;j~a7Ym#ix zFNaWDUxLhDVCo~R30MdGna`U~4iW-6xyOBwwS}89E=qN1NN;Z-dxiA&!gct~sy%j| zKdsq_q10#eZBUIOPQNo2t&&1%j{Bil$1FlmGpILiNO+U;0V7TWvE%8X$MG*c}^fFuYHoTag zwCejw4*78ym0M$4k!J*-(%Sor!xKla`C;~fxF%%;WQ0+h{yKJ9?_6gIBtZI4(yClovwdrzH&|*Y(`YzAD8raLEbCt%G zX#DG)%YF&we)&AUJr7)j4%3n({_xy8J6z=5Of&(R7qahAiC@wKeV-ABYqhF*9S?Hp z-sU#1*tPcoGq-pPPCpB5@Ql~SMI#lFyOj+-4o1a!c6m@c$q;E6a(L0aCf0UvQCGhM zC$SG6VFqYNqgvGRCiG%Uy_*18B%%@N5QqhTW-HPoT{1*DslBie>J=T8JGQVD+7FeJ z&RV;=cYgXS=3NAJfi?P$^tE3MxxEu4c(Q!zhm{Ri{O5&cl0nG_ZM9nZ@+cNcj{;^& z3opduxNxka16hrrN!Z!xm%AE3DQmE4)%z{d3;ifRO7Svh6F6wdK5%Gzw@Uv+JS};N zL__Z>YFQd`sYb^}=V<#_fZJ#nN zmpcMUuaabYQgl+G5J0GGU#GTV@JR2RH|_MNmBx^bEq!m z6}Q2~I-4g#K{#z536l=5gYK5_>k~Y{^a5ul_{naU!Dz!#da9s2goJ+fm*r@ohz)z3 zQ`C-yKSTDO=H!X3tTC$_sJAaeIKC7GYvyFEnN<9PjC#!e*_fb0r5#Qmun)-*^x76K zAzipu?P}Uw6ebKPeRiO_8bkKaJE{IRLhhy7=5%O2W%?uhfampUn%!vj3x=y|en@Peb;|rR4dj?E=BU**o8g+6Vp|a|Jvu z3iXIyxRD>4lW|3liY~Q&lx8THE>m2?8WCh8DY`SdHyVRmi(S9Q-tGUw^=HIuWz}ak zM!vr7^>W-+EeaLywFw+N_a}dG92&!FTJ>`*Sqg+al4CD5%;cMquQL3nIPi}7pIBX9#e{zIZEzg~fB+@_T{JY1 zarn-{95o*swtljjfo;PEDh|uZi!NB==tn>Ib~y1djw;a}R_vr%?2iR@uMd0)*!#R9 zJiXQ|d{zQh&TM$WbcwB|cPSDk`-S8TONStr%&O1t-N z+DFI>CqL64U5w!pJIySqrR=@@h8#giD@@cHQVb>7mnBLTp2?9;u)61;1Lqt zf6fcn7im%(o{>pg9+S9x`>F*+8`EdzWemW&0_MfW@QP(3#|CWoL2rPj{?`OoVD(el z@;g8O$eR56C|SzLa-zycMiF7V&gOkNO1lGcL3Y<+j?!}S{djxJ>ELkDJwd{rf1gE0 zF^{rCFdZDAmiozDPJfEo(CG4_<#bJy1^bOBz^0Y#(5Nnf2Ue{j;PPS8xm_G-15op0)c!^WmYJb*{D`umnG9 zSe(~3>GB|6nt0V<=q#82ofxEfjyZHaWvDUsB48`5$|iHx{miy-kU#co;D>00=6R``+`Ywh_Lno)Rj?7V^%Y$0Vf# zI}cuLHmJqj>Vfs}dU^UdiY%#iz3#kV*W<_uiqg`UE_RY@0X@oz#WM@eHf+u}EkH?~ zhW3n*obpvCg{)pRyjtJELtz4>Y$tHd`xb}$V|%ZYO$sJ#4Sr-?VbfwAJJRHBC9S#q zBe3t6I74}8d5$f|k*AYg;9$TLM;(m#zS6>YRZo`mTSZ}kqKZhDZA~yc{ZCeD;8g;z z%J9ag#F6=f$>%ikK7IYK*hMcruhRXmry%m|%m1JjaEPvD;SY7sx@>w=hzvvseoe8f zsm#y_JiOVy=Vae1>Toe$r{J&qKcFAdPkbG%D_bX3iyzTZKm+{&g_H)JQN?D(I6gP2 z13bbpMCTu7`=h}lx`H8v)sipO(CL30`5H6~6Xq=wkM!i}Oo}!qeZUc?Y<^0byH)17 zB}IH1QVFd=qiGAbBj(!<$;-;@Zyd`UKZ1|bc0oETcH?c!`H1ic>F!0n1M*^U0t{9L ziG>i>OPaz$IA(C@@&Y>KN|03a6`e1J?10%3vb;4Lj<~@@I;1f~e~sohIQU#j>0Lyf zl6pDq5;Cm|3#>EWdTFkwQ#PR8e3;-CHdk#O-+0HOSnh})#I7|!b;B6o$nqo6oG-rP z5I|FETsOu4WN?7ur1PA;9$Fq-Ntee)^cHgQmmlVK>Pxvx5o&)u1cs>%iM}*uQ#BXj zC<@C$jN9Rl-U zakn*?hL7I!zKy@5_hVx-yfiuR#cQUSK<0hu-GxMD&=ZEHjXmj`ld~;5RB95LaR&Bs z1U!GqWS6d!$oYVsHjc)a0@VgS^#Juf-yS4|11pW8Y7Q(Ej@PjvOi#P2W4@J~NvBj1 zGE7q5PaT#pGv-RO3h&+1Nndm8i|LP`ra5`{U@z+7sd&lKTC3!`uqHuwnb>fvX8Uw> zW&T>sk49l7A<&Yzd(Q{IUP6ef^n7cv040`DJJE0&cNO%GI{#?0jwC)PCrMF)x=QSf zv2PfNFPysQq8mm8%=9%(jv6@p&_EKguhq}SgnTPQD|q8u-r4NQQOMFpk$q&MKB%>g zUT_)B{~qeF*VQEd$=-|6tHBba^EFy~w^yyhWy1^9La=UWDmbPv%jdu@epFjQ(Aw0` zylNIDBz1^lQOugq(WjB$gL^?74{yN!>~dTKl=4O$?Qqef!CfB$avN8Bzr+g+`kGb* z=^BRDNGrm)4_8YX;tWo4k?3K#c?rW1wrVPJU*gwyTj2*TIWprf9HgP=5?G@jO{Fi| zIGHC-XfK0;hQdlzMuQ+%J*S7GvjL~7frEc>+$+Vi&4H~I*U4&z>b=ziFGNlMP9Vf` z{NfcDW^|wXyJnSy+y5^3{@k`_>=a7dLaYkxdZ+Hi7n;QJT&t0hIQIemsc2l;=zS@Vh%iL<-)QP{OADnZA9bG|yd9yfXjT#JJ}Tq_ z?(o_Ei=J^=QA{ik!uPUP)nu$u8KI&fD&9(u$YoDTn+sF_S|_UMyhJn?4!LGnz=U&S zN_DyItooTRedEawMbXtm3_Bg=6>g4m-Ir7TYJJf8j-eAGorr#!UuJPDbi}MNCF{u9 zJ61mO%&eW=e;L!s^_M2f8$Ny&yLt1R8T8hC{yi9S1?=z#>#vDvmu6;X#0S!1f)0`M zZ50VF+e@S}%J$Yg1V^j7oFiAtv$&Jdi+pEoRZfAlo0FKTi`=UMN9o8p8qQdl=dlP< znl0Gzu*Eh-#0}4Yc*7MYcLSEnZB`Lt^J?S)P+pFG@G`7P^Gj&tc*Z=NUFz%ha=SuM zLa;{oem0Ps+LmX{O*DwS`|+rrMN_~?xJ;#?fWnEjGYw!j+md~Qv!`64euVICuT53d zU##^)#4~I;olD1r+(N;u6ywOuw4<3J@mgX_08tXNjenO=j+bArckoY4@j9W+){QoeeM9?Y#ySmAZMS!^=!}#hf9z~YrMQu&LBEC<;lLb-&t>Og z!#Z@sE`-f+-fdN8w`$S_nVfe^tu5kim$nD!JNA}9k25~EVRim(Zi`lIF0=6NpdDyj z?%AISUJ>gB6}UiJn@mhL7yxylnROx>+1S15JTkTyOJ=tXJOC*WYFShN_XnK&2^;WD z1*i3JI(&HNLcN`h&Ak@TSM3w5%omM~3qmqVb~IhUY}D*ektutXFO4lb;V*lD=fg5c zlF0D`nd(FrBnk>ZV5E@E5gDX$h)TdHxUi6#H?!X8Ix?J6>8K1Hi#P3_!-}fQNwh?$ z3D-8LgftW7r6=Wm#7hj(MF#0C-F{TI_e9aCc4L^YW>97 z4rZk)`oBbc!Ur!EiJ3luUNk+;4dD>j);rGsnIwoBDj~>m{{ozPF2YCV>oHhgEA4^x zRED3n(G~>Exjh!-=FU$Ud$Nu+K*1I8kSb;A2!pr>!amrWj7VH^3b zU8H@U4SD^r`45D?1g!n#9F9Z)qBpF-*Y#wIpLxvf8}jAOr?a}WH(3_wn%=x z#wJ4_SXU{ds(^MZ;q!vK8oR`mJ+1phU#$7uh;(t=stR6cr!14|eLf%C89?ufRi1p} za3nPzA7=RCE8mH)PCuj`G^iOEq)CU&u9>}#PFW&o!)TtS24|29Osuv-)pZSkS90OQ zYrvZfNZh)8bjEd^g*hj8b)a2?{`3L>7{LT_(O}FxGjME_1>(4z7eTq*xUYM*z2P^N z(aIvqK?T0(+$Fm%x6)aTu@m?!YjfalL2WTu6VNZtZ>2mJ)RGZ}UIe>2+Q;VqI_M?N z<}d1n1|*|P4Oe(m+4SU1u3XI#DJWtKH#*q!4dHcjefgH=7k)2~{!hC!g7mh@A5vS!pWy{xIRuxF6kTv1<5W2ga<;1H+P zVhAPw%VW9384miX$j_b?5_ z^eM?d=tyus_cJ2xyTf?P{)tY}mGVERWMjX-q=$Qt|Eg4t(23}J|F<<3cFF#KJHX0M z0zbCU8I)npF3 z6BZlWQ$rQGA8QR%Hx;rwMav&gB`B9yZxnjA$DpvnG_tgLO4_B%w*sA~QZx?IyxHaR z<2v2PmnFDWcV$DK7q4>QT*Yhh?8{NTglYs#*ai9T{5<=!E~|q5led+#uUDWf3wGmw z&iPy$?bq2xUShFcrTDd1Jj#vnJx83pqef2Q?RQOEdDB1!0)X#y?FT=n>_R5^KaB-y z%lYsCa`uUT*o!aQ7J2XQL6M3W9R}IIvUx9>v_T&l@PtasCrB_$k|9#CW?}a4i5AiV z6TF=EZ^YB8eAn(=F8O?a85Q1bqmI-;^^I+9>72Op{yjL2%h%B7h6{S~L>gj{c0*ul zpa=`r5&TD!z^${)i*zM!1~R5V0)W+wWm-M99HtZcycTdN9dE~4F5I0Md_0MJt+!8c z5dXI&ACNsXUOTzn|Ru!ZUhJ9+GhL>nRob$j3U(4H6s~NG| z4H}nNpErNsm=>PT-T=s8KUu7|YC0jYg5@`n1t1q|B@p6{im^?X>LmM z{BZG!R5yDhk-OC7e^z|>jUidiVVV*HJl2`@(URCKT|qbRg8JNbt~jL1`FyrW zl*YyXGm|X)w#qhXXnN$2Mc~13dL8X_yn@4iYJH5>z2+jk8fK=E*XdmNcsTxj5A(T7 z?F_IRDk5A$D?OpF2jZNh!;Sq_ho>PD8D7+H2QWFvMo+g)7Z01sOM1t zaos(p6P@bz0=ooBlr7?>w{6O60;xYb_x|@EPTC4}G#r#njb93+OJI4w-o~SjMlu@d zQ9Gtzht5Nd33FG}$e7AeATd%YKXYQf@gIgKhZe^+Gjy?Sl1P|~55C5M~ zI)LVTm;3OS!a?fImp+;bnYeh1jg zpYpYOfWM|M-l^0as2MtYR5+crwa_?i>^>GTf~!a- z>LECv3z(JsA!hf}a}M_GR<93T!ESmc<(>*H@ifvv0;@l5U7ak_=#oHad@4UZAN@7D zSB~Se7mv1N>pE!GxrCpOf}R4JNiuoNNZOfaQ6TGf$hRibXUG6#8w=RfXA(sQm}wZp zLo>E#3973HtjLunKZIcW99u~$HOtusR=-@drYeMKIN5QWeOQ$7G!V+ z1zoLj4;weoK#(N%Ud})(Z(c@fW8M_0XiJIS&(pG7H1DxxId$a8WAV|e$$cuo(3x_p z_qsrAhv`PLZ9yqkuUg-Gk0Ni7VQce&CYLP=@>HNm@9daOn8AS-H`zht!Q2PjJ8PZW zTb0R;+x1QBym&B6(E!~EtI=oUTuVV9U{ul`)gtT^SQmpj`r9+~gcEuzG0cr+bE3|h z1E`$d=t3w<%Jj<2-s8qBJ70Xc4*CXPw`nTg)J+?U;jNNwVauz5n6Q<32 zBjvub1$T75^Aj-L5V9Z|gqsg!ZjE2bw7b0+sTtychhXSus!YmJ0>N-PlH{SOLtRKf zK8X+MoAehZG48XIFJ=Q?*cGPG1EoxuWD}viU9&@@D=3A#Lh{MK)xe$4*>Kh69M7yG z#|%{cN=YJ4&dZvPMxmOfSzbY5tsa`mH8*KNO^22;)wgYh>gxP_dnM4fc=t%Da)r{6 zL#Yq)7cyQmp(ApRW=5d*RkA0t{hy%JDVMI%g+HK=av@wI2#BFn)h6rjGWFCin>jQReL_)48H@`@o+(q`s7 zi`f5fdAhLJ%zFea?4zlLt02f%e$9$s@45i%?nWnB)7>^_*9% zo=|X=WcN_obAU+4F@R2QE442~R*UGYvti@}{C@5s3*4x0XpeK7SG&E~b+q9jxYFZA znU;$cO5q8<4C1Sz6I^~An%Ael-*&l+?!Jd)K=(u+$lmx=3z_$Sp?sX|+WS@N-MuNyvk#ZLxW|NI+9jK}IgnwKO3C+}? z%MRy>o>kNo5Kp{7|2=#PUEs1Q<-pHou*h4%n_R5RR?rb)Wv{Y0FS7w?Wyr4@gFhc` z|4^5{1bL=KcUSHFB>M`qo6Xf&rat%UAJ<1oGJp=om|#v({pJrf*%6P^4>Hu{YPdYQ zeeb4NGk+Izdk3yOS95n1J#DWQX|N<+j1gWVh0dIxAN9G1!aqN4?uFCUPjQyrV}YO2 zy-rfoGlTuJK%X8T+>zRL?Ub2WycyA;H10j|EZ$19nKbFLDsl!rfbs6LAsYm4#R+Jd ze+@HaFhvF-NpAi?#cRVKVO3v6*6`ojahD*dLSx=xX`)HfTVJ7&q%U5O36rarow8B%J^0eeDO&aKC7D=<9CdwnT_VHaLjtKydVC`1TyR3$MdrLzHbS@X!+5pJLE9$vE%^39spCM3YI^Skh=*4UDAOQeiE zRVMNtwb9cX7{=EA?=9ccH_=FYKuw8uqWdGLLrPpXoF*)#%nUN zZQ|$67<e3N6{<~cK_YWXG$y{Oq& zy>Ay?X)~uQm1gcb+<0ppPSpg~an1@87V z%Hji`e4ZY-BGSn_Jtphs!v{#rUd8qJ4(Bc38-+Qc7~D-<7@PO!(8&qn(P7*CtxWx|2Y9X1NjB_7=YxWUO7^+qIL0v&+Q9C3U+h-)Kh$la~kVwNu%!ws|J> zdcvp?nS4<#69b2}C$YK89oh23^PzHoFT%*8%Vfb8?#jSb0w8iWhiEe1nQmz*T zX$sIZc+C4gz*<|Kf-$F`3?p^U5&$nAuf}qI;oe}OcTSN)6dJyEDoae*g)#8#hP{np zUr%#>V=_4v8mW~`zf*ZOcjJa_Rk4^c7&79bvsUTRtQ9LZRJrTmHO#+^dM`>jqUe%r zKcI;3b`I?JOo^?b=BJd%gU6?bB}Z+E$Pe;mY{UWB-Y3J(wZ1kKmtP3}&K-La=|UQ5 zb_1s^9aDF`HS~thw^&o}Z?oMoyv$LPJ1ZfaMu#@8y30&z0=x>)VdsSx{_%eP(pw+J ze(*D4jTaJc$a~een-&E3y^!k;Ji3S8=8)hKO*r3&;ze@i_?6eBg0@#Kl4ynU8ma?9jir zHxv@WEz*}OTDbmu35)&Tw)y<#!JRT+!p`O0QY9pbz3Hg_Np(&O{WB$_k9|AevOnqy~<@pDx+Dl8!z2?Ehi<0r#isYbeIP_}=#&eD|#^ z7Cr4Zdr|aM9*3XiZoj-z)9$r{zyF>GI1*EaQ(EO5dI{>wq5baMc3#Mx?g1|3S9|G? zSryCATO2(&`Nm6T#?S%qwIm*j>fwhA;Mb|qj+v02JVl@c`db6j>f%b1!j0s>ER(9} zW~`E8cAy+S(*Er4X?*_HDPQhI$TQAU?uKbaj%CQ$mk%moV%l}|q0sYzYBVOU69GZe zXC#z1u%rxN2oyM7m+SG{DoSY(_Dg5q7iqLdM^;89$!->sq$hv=6pl9$P=sf@ywDp&% zj@J*P*blJ7`;4a!1&tDJV+O&Liwj$8%`144Q$_CUJ=0uf%otfTVrqm{-yzeFMI+T`cg}o078J9)d zT+NAiInbtxj~<7w6ragH)0MiO17``5mxG^NL0bV}PI{(Q-hARtAD>r7kXP@S^P zGT5&rjHUk>=~bvDJ!H3ep-!n>-6fN?I22!bm&YkZD}aq0cC@N_a-FDDzGE%fE4MQGaC+6X+z^b@ z)$0bk>b<8}A!;T!yS9s@1Xq%r32rT@xk!i{-;>K*A3t+0xUgP`BrC-s4)7VF z$Lp|`qcL|rUAuRGH%fSIuA73f)9Le#fnBC01MW*B`2cBwX#DT?{wXy{Jm$>YsOjY-PF&X+^|o4m-s?fBAt;j#w7+>yqfl&%O(! z7OjuJu^|rDV)u3}T?e21WwzX#UHr_pFon%aI(Y*$b)Yg9->fzQ<2`}}Y{Hi;p{B8$ zFScIge2b-Eo0#*^8H>NsjcM9~@4-!;Z20Z7>+{$}ahq;vjHZV`9VEN*K8#4}T zx$CQ3aLbD77I7>=6n&mZQ_BnAIZ#W$H77sL#PVPchUupA_@f}`%-L$R!*3_e6;5p$ z)iN439vXnC6}?U8U?kzYkL&Ip+5EU-CGe}rjm2dbD4+;UWq=)q^)jDf-9mC7ZA|G4 z*#s5IXGvpyxPABvzd{o@qCC}dgCOl(7$+X5D)?kU%kEPB^oQmx;G;t2MdG1fs^gw4 ztIwr4o?-zyTXJ>mH6~ixD~qlnmv!=D*)EODJ~6)f1XFL$Dub9i^)!GDOY_Ze%2aL{Zo$Abw@$3MiZBdH?`bj-ppB>RSf@Q~Iv zhmdY>H=#%#ys8;~%6FtR#IqYZKl>~#uuYf(lrjUn2q6Z&1J_T{c1A+)Z!+(8mc;rB zPoCVrYU7eJ(4*%m*2Fkv*60Ulu3QN&FA-^9_q&eku_GNW<>C4^1PS%68HFRlY zm_$kJMICRunpoDwZ_Hq_HSx~akCvLWe+nmS5soj`Ic9i^kfxVt?K#4t2uuipTsGht z_L0+Nnljc0g+)M()~7Drzl>5HE-$_&hx=*Oz3*)~vD1n;{)#v_v<~r`Pt_#8w3ZO? zF50O$-kZ=O6XzQ{;?CFE)F!xqf>p?HdC-SX8b|nsq`;>Wq{&W6@;8P%YASUEON=LK zYUW?FjrMoZPa>L0vp;AB>RtFx{3Gsn^hn>Y9|gOviHxW!cAZl1-Vp%_ZO6COkM86- zhZp*D_EZje?oNVB2PF>_%^$&{zgv#R>#HsapSEQaZN`=?LQ|s~E}`<+IyU{wy7c_DNx(%Zc^X%TkEY#HPZFn$|@!6N_4iKhu}HOH<{P z?i0h_^(l6#e+r%X0*?#(QQ?*|`y*CtfaXZ$?B|+cM=yj&Zt~;E4chys`(fXC&G;Tpe+026+-6OQ$g0Kf_%{+t);6l| zme-P-A7>7Km3vzE19}5i5(9?YV!yqzVs@p4US@SNpzr;hF{Wx1v+Y?PlW6CZcwhI; zZV2uVH+I0s0w$T2GX)#JeZUN~c_sIGxE2C99M*9caC`dvW&58x2wA7rk6@RfI3j|W z>~#)n$Iyk?mT4f>0QhD0TA=z+3JNVE_ZA;-M=)}zKWFcw8xSw(Z^PtVxxk zZ%aV}$~W>@j*#9u1CHTu(1}{p4@HN}p2!;t^@{%lu4X_EY1m#Y|ZFT4tba zosL};)x>$Hk=%OFyqJ%B>`P=`om(gO+o9KXj|kJriPLA_HG?lSuPDMgi8vELAJ-BZGMuVxEV{}kGSnf2)?=H83bUba z@T~KbX<;j%^Im`-3{Qa!1WQ!?CuzZ%6fadVJUyK<|0P=`!*5iu8=)$3c1R74 zP1X`;A|s><*qs92G!b#_N1H@}%J6ZV;jWGfx;h;5Zao<036~wJ9zs}YMIM?zf_~ha za}23ELP9}HF7dijQHT>inU<4@d=GoA3~egX>kiN$K6M)C`CA`7&o*Pik2i2&Y@}@P zU@kFb+t1y60^0+gyjq*GW5@eNWP*xqFR13-$<0j?f0D1C>@1aS_6~ZBz{S%fAQ|JO zku052vhSt%YVE7P;P$5$r>3_Ph-Ku=a7Xo5_byB)EkXT7Uc=Jq0+6|ox~yqMFzrY= zeo4hk%dQAWTG?e;w9qv)OWA9cM2v)5hSr-osc-Nr&DzW(&-=V9?kQOCmy_ymN_RO( z7vX)fHkao(xXlxbQ!6XzOI>KZm+fkN(lx$iIpH+eEx!DaVk2ud*VSn;{}cV+qZaG7 zn8N>gGDS=U60z=zS1T~bsXT*jMs+Be1Vf|wI$q7PfZB)fa^AhA2$er51nbrRQtSgd zxZ+f)0?>mUcPZC}{pX7Z>y-2!#kU6c6iO#Eie{(S9QwdtT(B@NUk(<7i%Uk3+e6?) z5hhbZogxg(WQ^{^^7o-lt_x)G2Nj$K7h~?MI_YuC$gGUAlk9LIwC7^T2dh&$Eb^w# zYlAL6d}T+A-5KICYyvOXP38Ccbl~b67iOKbq(6^{3mJoYAt$*vuj5of_hGgNw_(^H z06#`;?fuaC2)T58k~*(Ie6n;sMNX=G{Z^JEj;)LO!62@iY9QxAEejzYc}uD`q$(Kb z1CRh%Q@%{G!7q6O+OW>S`hxOaNM?qY+9ailVT$8B1KqAEBnN2fhVqK^+P#dV@c?DP z4)=-~5_;BqT{~zqC%-c17HTQ%R3^TQ#ZyA2@m*CLw>pUsKVD%M>{V9TAfcl0E0!AC zsIKBV!%Cks0b!Xvy=@gf5uW8s){t)7!^H}%_JWAA#&c9PlE}V%_CPFnB95M{`FGjO z1jW8t>J{7-)4SfL={-9`&+ZPedGa!y#|?xGFSChS_;kB$n5K98sUY}f#<%jW19u3V zwl@u>rC%Z^=X`$nvE`vPXugrUS@X>8b{~1o{V*n8(`j#eK}AM&FLQEyOEM)#)fX$$ z5p(C#JoFrNv71V4-evLwjD}tL1>p=TBX>mdFx(Ox$9pG9RLEP2 zZ?`)mgTOeUbU7lb`OrP$%hbF4USyr>z1m2bjWZ_9BwfX&ZqfNNJ>InQMV8Zjy{*Ok z%t~6@gc#{Y_957uXyA)Iq8j%qvwBBvg0WD5%!#~#@(Al;_ihhhYsm)s2RtSB(_Ika zsn+)HO5575oa$$TkqfpLRoaK3W9l-X;qpPkzTIin4KWpBS<$%>wL7vfQX?VA-k@st zhCN(7tH?>CrR@=t)1P5mJ=bD!L}sEgq~#jd;SW7EuJ+H8Dgy^EH9HB$HF`(_1UgU zg^)UqB^Y^n8ao}0!jRhsO-ZI*uPf~d^Yp8TgK$}B+o!ypJoQ2|sqTa6HCpN4`xCSI zR=!=D^EP?J|+%5EgxFCE%XP)N#%a<5M>A2Y=Ka zk1=?sAi9E&a-O%``M>g`+PD9C9Q>;B7b7gj8Xs$vFR(YX-v^`kWE?R%Yd^KOr^?+r z?^q3O`c@0g=xD*D$`)!7Z{7Ynojyv!47o>m1HF*jjtVG?5XVe zuWC&%XH&s5Bsr!7#}KAc+7UQCo{D-vMY}hB%2jAhurvP1jhrMz?15f_G489{WVIUP zYiT6qageh*I1Pnp>aR`!)h8pf$1ACa8 zCW*v%8bu4?#6x`Te~6Tuzdl}WHgVa7u5qZk-sOK3N{b|3?02sp`6Y%vxs<1ita3h| z{Hno8l(|%s*nSG_?*YsAJAHq#Jny3p++7)4!8az~-iXUisn&7$T@tzRDmG9(%W2;m z%fYkS)gAE7<)@ak;S?P{rgZs5yx|z8xhSNO@{pJRFcc)4oPo?bf%<5I()e(maiX4v zSD{EH`p=;iX$&fvXSA|RFaNguad@=XNz}1EniugK{Y~mx=Yie@MLxg;Q_N%T9L|Ao zwnhxkR9mBy&-qI2hG{92Y|;nl*654LF$<`84P0Ni725u{)_hooZ{BG>D)+5a2)@aK zXe#u@9KF1rN!QcnQX zYCUAE`)3g!f0PVnTUbOlF@GqD8J4$I`s8q+H;Kd*_>V{cIpu|w#Y>z>I$0%4&YWU9 zC<&5XYv4EHb;&HXvvdPKTD8G0j36oIm>VSzNLU!sW@}WM(WUY~U z--4=lFc`lSduw zjWJYC%4rJo^Es{dI2l%GHRzl$yUl)) z<|V1`O$YvZR}2xwm3#1zymU7;BC@`8Rw=yW{mR5{k+v<(i@iG4C5V=3Dh*6eBrl z`2rohaglI59bYh6m)#MvZNa0YS>FJ?dL^!oU01~RaC+0~uxs-k+LMY8oZ5vXa?~Lm zX+NwdO7Nt#;7k7>s^0pc2?lHz9t{s2(p`#lcXul)-5?<_x>Fh%t#qddjINPNcQd+1 z4;bC?ao+bkKb$|}uB+}5070W6hk9BN@2K%9{l5E4%{@2%-b@uv(&mh<%y^I0&*m~( zZJ)SzSPKODzrD>~?u}Zfb{Vcfzi8+Wv1F|6$`kaKOz^&nnuV{R)%nd^t}|^ccWi5$ z<-$G`TpVMP7j!l6qqOg1UDkf~GeK)RSyia4C9v>mqLiSvXuvlPkiB^T@rKy>lqbf~ zHcOeGDoG#kUiwyqRxj50&8}F1>-_ao-YML*ZZI7uy{au^2MqhZJMHfRJ7RqQq5UAX zQk<;XLxchWi^Bwg2x>9c{hv-G(Vnwr55Z0Exbt#hGJFFa1!vfr-U_KA#~d> zcQ@Q;c1+Fq9_bk9Ach+>XHHweuN>@q7n|X^xD%%6AKX0XJ>2UPv}cdT6EBMmbSve_#FjT3HDw8=p$uYut<4KeD*j=4$rj-W|3N zd(Vg@3|Bi{xU*MuWcA;qKkT5ftB_7+qN_DQ*vy4gVOntq+_xmodOAP2czNKjS zTEI1UpS2_D>l)I+l+00aQTxwOwbYVBP|9&Bcui5Uv>+`(5qF0uPc! zU{ed6Q07t2AxHDn3COgPc4r9$&3{Nk!=+g!vKR*-cc`4(i`_`xJL=rcv=FOc8@|T5 zZuaEzIY`B6-Y86OpOOIaLPihrrSv}M^B|=kL3cKL{s5pYQGcVSoZfx)7D7G31CSdw zDR&>`oAakxC{IKx(MP`MSL=5@Lc5%Xcci*+b0W5#P)Y;u&h3p@L+wN09w6Q(6rKdY z#}F)}5Qda93Ej5nG$`UF`1-kFAcfDYSxx9#Zthhc+oI;FRRdbkU} z^2v$Ci-4=Pnz@3(0{v&`u6*;iAPJ3-8QL&`46+6^6B*KE?F8YN%BjSjK95|W?Wzb8 zgaB=5_PGXIuaC+40e!JmmXAs$RBV5-RCzEWd}y?Hco8%lABAdwY^7@)lczg%<%PDG z7ttt8G|iK!=dsnVAC+a1P^-+x8v5<_@iWZ~>;n6#awffY^4DkeqHRXyXGjEP#WFR8 z45~-if(j=5inqTX)u4YNo{aVlD%R*!ffX^SZasyW?=b}gTO}R1VMsd1wmLPo_HcdW zu+pGjn%ZygK~)O7CV)9opGDNR%b>>*t{r<97}4f5z{FWA zmnzMA{v6pvsTN&EyAaE#SueXs&YDK0eU_1-iezAY3$d1~b&FqHji2?!lS9~~UWlcc z&q$s81p8O5=t$i23dWuaJYDZVG2fi3kX7xq9sV2!1y!c!tuV$mI;DHTrHv?+lPBrOa6Q`lG)v9%s>ni_9xQ!FheC z5_l6{d!i1gTE6y?uDeYmwc6DNhA@ym|CApE_}Jzr{b z--Vb~N%trER^QS#UyED z0ZN04-sb5xDDRx;$-jzfBqUI5tGMWw=r|Db(Z>4`;6|VArgu6ra1)4WD!nPL^rk7T zMi_NEuTa6TeCA7_7Y3dtvz(;+|B0$q`LlP6)cyWeE*l?KJAcEvBHoy9Uz^OK^&|O) zd-EH6Yqs3HWa?YKT0ULKQHPVRY-p&DPTCWW1Gd|=Twh~B#ES^+@}`FqqvdNRp?o-rk4+@bH;*>|~t>oVy_X6~UI_BP7b5D$2y7;YV}O4Rxi zsIAosCCQ|#qkuhOihDWeCr+Bxpd(zTvh6zZ?0`FwH=MH{wRN$Xk!0Q`1xoc z%_q(#LtQkOO|#eYQQ{dI@K;9hsB8G`&jxw+x{GO8g@?A+^L{+HuWnw$W2=(gRc!C4 zK@lOGTS+0pbn8?^WJHRngO^J$(UnFSZFBFVIgaP56xc(!1Uy6N)*A166|hPrrX!JN zUvpG4)g!d)-628#fhXAE;kqXCE+I>d1qNn_D!bz14Dz!MxF)br zb(58hW)NERtEJfbC`LB;JJ8F0=d-0-+G&`B229>CyI6Aw*3F3> z-_Np|e47x|)tmF@muTBPVAN?Md`I9l}F6ow9h}ZL^eRl z;j7?1DdERfX|h6^$JE|7UV`4t8)JVXhw}u^O;7m_u+^G!MdhB?KtF5WUYJwuSZ>_$ zZpb|hoj9*w@P7(g$#vel_tndLN3Y08wt<|usnsB}t;NV$TY)Qc=8UAGuZ+g9uHHg> zp{=fcH0!QOUCZ#3ga>WH>2EB(EDtgBt@wUxid}WBDZKf%xexwmoWJAk6h- z=?^)0-t}&e>Oy-@$gd_C+gI1<<0}c6^ioseMCO(CPIOx$cePFAm)$%+U^ppLFVa`C zBst!$fDA3Ezs!ej-L&6WTh?U<0<@XLH3?YC1>$u_G7XXl@q;c>3k*3YSfC)dc|m`X%MUN0ZI5g~XKtAG@^A47UQAQtoiP?z z!V%H!LIa5oXyw!YRVn&nevh&8rOzfJU81*I2 zDNt2MR&lo)S1aXh>&xtWldhveP7jzpd^{qKI-Th4_5_T^r}L>xe@N|NPh@tK@?RXd zc4Agkxc-GvFsBy`T4(R~Cl0wP?PBz6(g!Q?dh+7VSdAJ9J5HJnvK!KK|4^_8B8wo- z!&jOO&z4(u*sb=X47Z)-Z7`k^w&n1o{i?mgxF&$TDxs^^E;Ii$LHvQ0ghAJ%H?|E` z)Fq~o)OV7j{z(~PP3(zfR)Pwh5EM8Cq3w#A$lU{L!FI$JUNh(S@~-Dkb2gn+`VQ<19XeQo_}+(3~sIm>0LqOfKU8M4nSp|z89ZRYVO z&20j+C7woQ70M30hpeCA{BKze&(^&O5gm(8Fvl&($7sw)mGSzvs?T9DQ_f8Pv{rGL&gY0Laxr)osOzy zOOtu~n7!{4B=6&J)qWhG`WAm(7%QYRxg>GvX>8P8Hj5E~4f=c`Fn%~-%|BbH-JMzU znLq7>O#T9U?7)7;FL;%()BVQ0HY8xON3BGibimrCiN@3jKxnB2u5Z~wAd1Fc^oavj zk;}YNOk9?cGyFSh<;NXH)`^xLo|qw>*UG0bTW>e`4GIp@pY{X*H+aYNtxB5t2Xi}r zH1?!pkq{UE**N-9IGSHmH#sj-y0x~P?NL@Q&j}U)J#@gcMwD_{+bG0_8GXyI>ixX! z?*3B{893%*kvh3K7BrC7uOLB?tNw;7wZuTz8SoWT#nV{++rz;o8Xt;zmw=~VKz50n zklKjoISn1sC`C72DE9Y>jP&d(g@P~A`lOkH%9*K{z_^_1x+h#KLVmbm}^*i~BZ z(9jQrm;Vu-6cgRBPazJez(*2u@(-ND4M@uD5&R+^?U5NivImfByy#qc`FGo6NN#=@ zVytKk4~M^&GkDq*hBGD<0G>FwI+nZ#1{Aw?TVV#zbVYvUA1C`&m+qY9qy&x@nK4(gx@pQ)@vu8Zn9kw zq}kF&Ie5&6`5+EHB?M7QcWL*9xmJOo_aRa(42pB0osaNx@SL8o)bF&`&Zy$sRw`$( zAkZ$OK@|a__j^36O61=9>GZ2^1crQRZ+~t0c#@mrfKwbu(TUOsfUaH!i)N zkmD+oTWyqF{^iZT!G}}&l zGC(sC6`+YXVof{$t3+8wY@F~cjqbT@%AFKn$n6w1CP%msU8$w)>X$bg)BfL*<^<1C zUD9gy^MyAaXbC;OPsXdAWXL9LqR38QS@ClszF+yFp4+0}yfi>9Qyzzf8Hh zYFNV}{&e2+O0k(4x4mZwGlIN`AJre%{Dzz=q;=qQMeFhaneC6nbhHCto;CU#%)wsU z5|j{PO=-=M$JJX)2yjIfL;s$x4)jKBd0@uqnsUxL2`yThy3oLIEvARjpVc3jZj^+g zg#qikfjP9P_y=xOJgHTEI_d?Bz_IQMAyCx=NW))K%=v)H2@H54RymEUT>~6qG~E3+ zH36(bYeinsravOG5jF?e(+Kr^Mga0x)SHcv&fEeZt5j1_{!j$mmVWVC7+NY*Qc% zB-xiUta4Z~%&%`I-_wBOZzF;Pw3|XSn4naC9-vpI}torXYp7=eq9mJ2A zD%;kUL6aSX7jd-`PUI-oJ{f0*PMunblEn%4vAo4sR0@?AD-4LXt6V=5Y3A?yeCKET zoK;V(J&@VG!Ec@3TCz*&tBE$-!o{80_qqFB?o2r|)&(pi$bu0(Ym>M`oK8W!M)kb= zps9@&^&OW?FK4*jjCF=ANx@;_`n)0eCn+KMKdLF$4GwkL5zj5DDr=gPtgceBYs6Mr z8G*}!AUc!edcHkV0$Vr$)_HHF*2e}*TaII6f7~-Hau}F6I(>dLWM-60sY|;=N&L5oP~%0M*)K_CsRcJL<`P8;@VJpq3~Gx-q94_ zJ{ShS1+PKZ=Mnsa4ztI|jKR(G_jd^#tbXo+vpUD3Lxk=}3+G35+D&>0l4ZMx(cexn zdx=i>e~(|UZOD0^o|xtGFK|FU<3gg(8dizoq$>vX%?)#Da*sIX8D(tn`g%&s{n9#V z7yRZ?BgExxZGWNtm#a?5p;f^h)mx_m5)x(8j{qFCWG=yeIf$i^!5?5B!aFT2Y-42r1()C;;3Y) zQGK0Qb@>0t*&$^TcS}iX%^eV=);S8H%V@Xgrb$Q7t!UJgMK|V<4DV?yCmig21rQS0 z#ZNy=XuaGcsuN#-`3YgzeVdzf`oKP1HKv1e%15CoS|FJi?NWxSLWM$Z>!42W(M%B)OD=3tv12`!O`Us5SfEGNFSuF$#kkK z>W!6Xoc2Dp*?*GwY5&Q2rUxcZU_S7%Rh7$&z+q?OkstU8-k2(1Je-|>OyDv=I*&h8 zh*+Qe&R|U>75sBU*pPsMF&-n?xJuVPhD(!vcw7|bS~ZcrB?N9(7N?!DsmFra@72Qe z#GUyL3-b;~EV_zv6$94Y-PVQSm-t;T+4BejX^&aZBJ3}-lU|g^8h@}|7o_6qx{|#) z)u*a^yg<}F6P+$|Ud>^pM$IMM?oWM``Wt0|Rq~sl$VX=o8$42VdMn%31bjz3_8-|5 zwmWMaaQ`pM(?LRozzD1TSvEhSx?wdPrqDLV#Do8IlMC|djlR|dm#_<1F%vG$1hLJ; ziJ4%VRC{=OW}DzMSr9uU@lGFxZ|kO+4y`#FM54L(rcm$)4*^MK|}^i4d%l-b+Y zFyfPkNRH|wL-yaP{Lo}5FK=J;K7q{_%vsBZT({JdFciLM?5tiKlqbCT|D_YHZE7k zIP%EG-$LD&Nw|hrx}5S-A6c!Z{-4!bMF@=`G^$PT>O{&5gN&5!D7A~FmekC__uSv~ zp;-ZX6Tm6b`f@8-{b0lx_!56}+MEYJWEE}HL}oCFU@0InMxrM}pPc+>5s-1iuk?{j zvHs_OG7TRvdtn-KA+Z}~Uew{Kei}8OxQ1^fkpYn-g2zOIi|Dd(0OJqT%7!v7tSr3| z{&Wn=$;`4^Raa5>d{rWT6-bPK-Pxk-ikD-=8a%R@)Q_x%w1rQ-g5~__OX@ANl@jY- z&hcX}Z&mUVr_6%vr_-SS5x`qhUu`3w-ql7foH{G`qlXx;OMi>mzBzo7jK*$`RnSur zt*i*$?!Te`6*|6Zk$0bnVAvjZ?3dpziI}jKvg&s|J0-E!kh5*y_~JP6MBQdD8s{TJ zyx%~D0}@U^CAMeNHUU1h&L);g76&DkP<5M4aw6&8BfC>{fA{y}f|FQYLW1^a*hsC4 z9z=S(cCTjkY%vXfNx0A6S2+DrQVzLAr%#AivZOfVKbbkhhN`@)(3KkiFWDneHT#8u zf72O$sv6Olu&J8wyBbb6@w*PD4u|&29mecMWbVvcYl?Sf`75N5I#^p4QULMAl*qIL zuys(=u*eLFrP;FB13#Ndenamk(0%uHL$s@jUx=8zOM+V`($wCdBf~?D?6Y+{zY#z4 zU2pb50Xu{N!4QCP|HV$$vb}NKSF0Yi*b^F&@4{Ub9O|`KLnZvqi5X?Oao*Z8K58+; zK?P{QW3!(>R5x3OY+~@TBUys$?r%`c-uodI9_g>ms%R}D1YBK!_fXUgQqRTlk1LdP z9cI*45)~5#uFF$<(m^%nT0K_i)m0b`(OSb~RwC^$Jah0WXzCQJZ#a1cOz&F4W}yU4 zwA>bGO`}wq;%?{u`>882A=rm;jlFw4L@iff?(MEdE zoT5k;5$T?|7E8(UIgA)P+OtM+*y+^E;J*<|hSo27ps(I5?{~{}T@&K}a5)`8u1^_ zZ^FnkM3<_~;Ta$)8)_UJynZD-A2@G>b^0U@G<|0zY0p8V1f73y-+0b$fm+paKOfu1 zPdpi1FvU6vif&-twVZ9FyS5>Y&qU{ex3}3km_VEsS-U&`7A5bJS3GQjy>R(|59nfr z_VWEcWpVt6`8r0|WR=EwW4i0-l@S_`Tc(yN%b8H5s>WkP*Xplk)cwtS|BmCvst9PF ze~#?C)~-IsKIC$hCFbTUR26DR@D9&9Q1-@RS%s zM8m^nB1$eCsED!Be#-H2sB%EUH~T~5QrW;FAB~Xb(uLok58362CUwU<=9gCB4uP#n zW__QC1nx?Rp|kGjTUAnbCLzH1fxz#X5xQObXYu*)qybyr(lmCMpiK}D-9+=Lk4sN? zxOo{9MD+d4L-S3#{MWnepu3sORy5HasY@~Ir=8`&Upt$aWOjB{te#-N_qrP`$H9i8But}9NNV{vFyfCDO4$@i4wZ6orcXr z*capCB<8bjj~@Jj*6HJL)lYU7sEDbz-}tI^!VI5vUjmL3pv$cAniY7xS?a@sG-N?Y zm`74ipTgm|Y1JE_6%m}k+4M4AV%{RM99acg@4?rjQI4=oL`|GS=x%c=jsg+e2NXifz0{o4mpt;1+pjF z8#B>ELvoI_@N>b5q3FZt9)O~T5g0;S zC)jym{YV=uEgc;C+hrh7v%_g6t@tB!E-Qp0zr#fKT`WsDIWjU^;%B>q%lkp=iU_su zD1~P0L0Ih01iJk$LN~wZzMF{y8O*xBC9(^1#vA?x^h#Rg%`sV7*1H(Z@qxt=5!e3h zYShgrY|uGvni&(LK=GW0|B!kaq@re|Fvnmc@&rF-b^${?qB^O&7mRa8_meKt-$krt z*;D8FtiI9Ub80}2@L1FckP`k*Z5@=31k|d)VXT^TrHOJ43}MW2mJ(TCCPL=lua<08TEHbodOt{&c7}WI!yj-0LyARAX!!UQU_sY@ARQ_gjy9cA zP(;?>?d$Wl63EdJ^pHx5k6%FN$7472Iy18?U>1vVN<^p=34$x#zSVOdLhBd7Rz1T! z$g2O+{jcc5bCEdg&mAoiaCNl&tM)*#XA`dn;l8-lUgmb>uvgbt8jELHodI{1qY&TF zldNqg)bcqRGl#mf+@iv?@lohm<*ERtcDR7X8_2IoQ7or##+=5AASy*A;pq49Xxmp1 zrEINAqwCo>C+KO!;r=g zKJ56CV&neAr_oeG9#i!EYff!~_w?%j1CC+31bo1L2Iha19m+BP?;R>7&Cz98T6_YJ+~6`HWu& zxba=X`jxm%%iQ^4Ac)Plt11kHrQ4pM3u+G!Kb>Iy*iY{V0x2ks^v6LwJV|;7%{^7; z{0jP%V=F4HpU*Kd#mXcBdPHUIr6Uw$=aoHd+vou1!5nyIAQt07bt{U3_OPTOs2m0P z6!{~${88-tG18~Y(;AiF`)0AHvo7~9C?5gsbo4GvfbE}N>cB0P|2TaUhfo(*D(MFk zjfd2z6$=|v9l%y9486tWAa|N5K@E1VnJ(G?jL0rrq$4;E`LfOe6X-J}HA63bP>1pA z=5}_E~UFbgEI6)l?}Ko&QE*tf{Akie1fzPW}PK|1A|pl!rdi|4%T_oAXay#MV|>VSwly@4SEl#SPr9zn39hCTv%06b{1+e7RsYFiA!#+pVZiY z4QxMQA0VMZdv6lrj@hRCuAD5{OE^3ehfio~j4EG?j^(6jCfz21;0IH2>d2(YDuw3g zjB={*GOuNJQq|3Jkgs}P@J;CWX{*AU4&56TwjS&!pXpFMwyx`$vkxUG%(rJ361W5X zKFtjpd_`yzwbSp-1g`i zA%V33jCM0M!8CJ2ZJ0L};{Ah0CqI5Fq2JnV#zo#ssUi_7Ra+{7@xL=_r zpGtL2Dj{}*T6Md&@Z=2-P`G3N8x|2=uXiN6SgHR!CuwqcVM%f^d!=-9iDb1Kxm*>D zhkbIUGq6Izt1R(jKXlxmeH;usY;b)_6fX5`Pb+?|n+gyZ)l<= ziAt}2qIIA??yNof+9%S{(G@|}bRnQ^(#@>lH)4)qLYs5-MX343G{h?tN!2hN*+7WV_R(PM1{zBjHS_* z^Y&gnGm&$x=_`38V$=_&H>amh9QuH`_154Q(=@<48G?=7=bP0kP2u5dQ_hyejR+&^eRcDB zWbSCBE*2ulFJC%Nc~;=m>TGOdqzah1f`}|-8FN>ndXis2^YgYO3-DwV1vZT}z13Q= zWZ`{<=dv2ArkZOInh^5rh_??no5n+)3Bxf4mC?vHAT8!5Eb>bw-vfzN!WUC6*cF;E z?4-*kCioBYig)CtpWt0i(@<$7OKvn~T2a}3Q2mUFp?XZQ!D)3H{R&_s2#-&gR)%!H zTGih}aW=v$QMM9rBbsKl0sBK& z0AOV6r2C-%p-58PWSv5OJ_ z@P2DHN0Bttfhzdsu_gLe8>U?*sp99Pw845mcZrmr*mBAma!RH5j$E+Fv*%_^tg`KQ zD(Bxv%)3@L-dxpWz#U*8rB~e{Kf}h;|60RfnOPR9<|Qve7KB4AiOXO{Fo1**M;G+7 ztn_Rlb=MYLA@-M>+hplkephL8m+TrjsjRz?bpzZVk^e5x5HBA@F)(sPbY(nBq_}F+ zl=}NPagSiD^n+*PeBay{YFuc|)wb*C@J}yX29#QgKA$uj{oSBJ2W9CTcG;lc zT8v9XhD-e`Nr_EjXbjc?D+^))ftq2yLsjK;lbyE*q6d7E#(AGoiozOJTMPOc2GS?U z>MwVi*DbC70vF~*-uiTCjSLLb6ld`+`dGtKR}~6MYxpRQjvvOSkZw}m`G(Zb4*Hyq z3~FNbhxk*ntJ_*i#b-zlf2r_rPp0Q9wZ*(waqHEWX}GleU_RN`5V$H=Tuopm$>l-3 zM_e`76ZGd}UeSP}Y-y1c>o3=Vv4}fu3|wM;sqt4y+g~5!`iA9nat(HFRBE&}#Jzo6 zSLuC&>fKT5Gp_`0ynWc?+eMIX4>=!(#LMjA5YuOfYaM3d_3lffmqy6`tfLY+}ntK3Ebp;}cN z-s_cGJ!xa%6%i0~zNpeBNf`AK5>ta89Bfu$RfL!GX>H#9Z9aI>8+pO7Wa2FM zWXDfKU%NNE!nqxhd7|{Ymv4!DBEhSw`S!lE;E=y(T^bU;%vU|QF~mg{}^Nx#pz z>Z{mEg6VtjUjjme98RCwreCq`kZHo@S9S~KjVegnKBZ9Q8zOve9r6Q9;$-_GIDmDH z&_jmf5ih^r^6@uw2K%l3P-XX?bIkFRG66IB`BPWbx&sWkpG0x!LHvU>$A?JMbT6+Hx*%`G8;4%-Z^FqaQ@78|-qMc9 z4t|dS&HA*XmuBo&X-+cH?)%K=t2=>+YU-J{Ud=vMok*BMx-T?+tVo9X z!xNyjl0oMJ1E$-`9rz!7)Fl&ayj*!G@PwrkF9FJ-rq8pl4R;ip4K#0W$d79YM*A3n zV~SUPkIo>;$gSX=>@wBdX<+p!UIl4)wnB2iRou}lDT6G0tc6_II}$UCfHxhXQCQ+=4Pcr}{2>SD zhY4rL&E!*;oM(9X*Ws;W%Vn~g@sG)oFrYM7ro}r~m&?+j6G%^JcwR7!lpY)hrk$&B z%^t2$wB|9`KCxMEw&o2VaK__X0${l;)>d`zlK#?49x_}wP)3d%;%cS7g?ZQ}Hlyd@ zx}nwbtQlfI;WExDd-u0X;l*!497~t1N?3?$w8(;fJSVczZwXBLzqoC704c(qdRso2 z;ZD8J&7F>`9VK_>d{hqUSp4a{_^vW?yl_xy)HygPY<8S3ElG0;)SGPA0RTCrCRVQL z*`Hy_;d6J$fvPDKB1Fk+m-oY;j`+RVKigTmy`PX%(#x3`K2bB0q-&9K(cZQ{FB`oG zUU~PUvl$EWFYxE}kseh)si*Z(*}5bdhhZ|ecz;tV_aN_9PtvCZUV&1`T0RT}^NoG> z4cF0cx$xNPv?1*J#;b%kM!MA#0AiLWXd7-hoY*J#OV0dwf5rVE;7?hSHeukWBz$9} zA_>=glQjWHsQm^0P+Y0xd6OxpWEI#^*iWQk(-*nmVk8GdDDnFi$X`m2) zllCU^pw}>&leH2H^aM=N5}zUjOs5QPr zi=E-jj}w-Vm8D+@aw>H>#Sa4 zibgfdov{aHXQW83&%}iQwm$#anV8Ui602;)-L{q}?y^Y@4A8(;aJvT(hN+N*EcHF& zlnbJi1N}N)A-A<@cI)x_&%eq~l0rRKFwg-0{S*W>9@;DpBkLJ=Uy^L(k*Ecj&0MbA8C9K@Z*HoG)bPf z7Mr8;MnQPz4ZkOC64ZDDM!$W*4YaS1UW%;mo*j$1Kr0Qv)?3z1qYpTf3S&&$<0Lkv zaLADTcQ30(E`Di`VlkETrS9vltx4Ql{7=z+47m#NvaI$+l8`^N+{w;sWja?EN?H7a zwF;sk?4Ak%uOvi}yBX*2cq2-b(-HUk#|OTv3wgii0}9J8CD_F((0x=kS{drN@)d-x zedgG-SC>@)QMe|%pdU8x#~V3}>Pu;UBwU!j-PbUZqLee5ZF{+b*ntrjr?HzkXMbRJ zITa6)fUp)bwW#$e&c^j`=7GQ1abG&|ob8{jr>m{@Kj>S=tvb?kKGMXvFjiFS2JQ)O zXXLrGw(|xhzU6!wSQjFAYw~=DBdWFM+mdqF|Ht9@&MmsNyl<>i^X*K{<6%{P#i8Fs zdqIw(y=Ac&M{*CFJ81`%{OrH2fkC@5Z;pM``!JOZY1$hm3%UaMj+;__gUq?qHqV54 z|4$(x@zeCZuLN(<<<-LJUHILHG9le{tMExDsd~-_lRiOE1sANtVRS~|kiTiv^FAuH z$cpoBnBEJFe+Z;P?p_}h&Wg9{*^UIm4_v9tdNd8wo+4e9SVFUZC8RVg%lsK(JGU36 zlrSxC{gWnnf13*=>vxr*0`Ap-((v6+(0EJ6-XF*Nrbdp=RpvE0Q!Rz5jh{~*tEG7@ zftv?Ag{YcqulF-_zj6K4c#q$^1mq~BGt{D~AEevJ>^642;G8#FgU<9dPB!X7Ej`1V zDXf5_hL-Uol5DGdN95)C(&w$mCbk0f>?jQ}xgExrtwh*ED`m6q6ti-k>%0%def&DtP>tUr^nk>TPV| zKR`e|ku9LBR}tN-xwSwgw;L;w;|G~EovsZI8CByMW5pKDQMVqxG<#|0wtw2~N3J7m z_-1gomPZTyRy+0IAFBqgCdhzd9dYUg>=_kZi1!1n?lEPkc;x4QqIXHgNb|oP6vSBv zPd6xJ5`XjOoe5dZBQIjzNF6i($NE=H5q(WQ#Evry=CL4~O}v383P}PasEiCyppu(w z2KHOyz28odpmG1+1Y9%pSrJVvwsUPmhE$C4Mn|TaEps6K>2%@F>?m=r{|;VLzE?7{ zOOx@%F&8pOEH+85TK<|j-HcTgnyr41IzTGS$&3X7z-a@eWD8rGsZc0j@WoCddawCB?E~o^-Q$?X&_i=en~;w(5ZT`aNyROK%@f~Ot3}hHj^0?_A$4@ zfpQhyqCl_g(#9pXrNGh#C@iG3Z_PaMM;qx@QvQp2yUEmhlY*OC*I5~ki^Utz=xDI& zc6evL-FU(EAm;>*F0Jr(p?Fg+HVgHHh|4znS*|8g5&o2OOxqg9^&&$2s5U4+?SjH@ z3mpxD5Um2D{$_6)fi+XZB;96~xRE}B4M9=F#38t__N}Kg0%l1S-t&)injp{FuUQY` z(6PFz=iI3{YnvlvU(k5DOzCU?Y#ZlF+a=+G!5nj+cg%t{FYXvQ(_usl?C^N-;Uez8 zF0XMOsnKKXi^;M2bojXwRN>xE*DYmnr`h8DIiDt}qM_3~A=OF0#0+lhkAq^{O9>9yp7=yJzhEw-ubVqR|9dW3qEpIxWbba zipcOQFsu^+@ewnzr1=GC(`}m>v_b|oef!Fh|_}xufQuEnY7Sk!9^GaT7x_5;)Uitqo?!N%Eb&@~w z|Is0hJawevG+`AzYN!{UfRgN(Lk7IDIRGQ;$7#1nmsr%5>iL#5$+~9#Il;G#N+}TvBs9ev135|8nHFY}GS4K&^THfBaR!t3=_cYb94!08swV*~Fir}W@6Gn8- z!{$|E_LwUi)row;al&joyYK9>0JOgQ2g(#E?7?Qs7-+}F{NP0ki|W!0VMaPeDL0WToQgo|5W`ll4tjltc0zA6#Ax{ z*8H~y>IGT!hUG^$T$)IMzB9SxI*2Det?@wlb5Kt0Z=QXCg>W}SwP-w^V!OXr-nr{J z75!3MZ)8&=x!;q>?3rf%%?n+4A1}WUiHDPPgZWhpF!N1Ph#fMZLq?5dI_rv-Ug|qX z{LHmyj-PUOP4OW!me~0!=$W2dC3XA6crG}uG3$-fO5qYw=Nv|-1JOHcXUmcRgJK*c zXXr8@$uMd>F@BQ2v;5|w6@N09(R;hrZ#jH!rI(wyYI#2qV60xDJJoI+jt!>bdZPg4 zXt(hYYE7*544PO_y!zsB+83K-(Af2AYke@HG_ei2GSVMbN_=n9%7WKd9PV*KA&nGB zaXhmH2`~uvcd5-T-t_2wDzjJb(jb`253VDtI@AnQ*BdH1Nh5Gq{bh@?PHx1;DG9`4 zAExjf*}sj3{x)4Q#kYSJz<&}f{WS7GVc_48T&?-ph7?ArQn#JJ3#f)z~k;G#kgzOJ>Rb-9sv2(tmGovmuOpoIZP>dR=fc z^<2+Zuuq%*lj+-!0(bGe{a58bJn8wYD;_QxEWPb}`s~jm70cvcUi$B zdy4wWEE$IGnrb$6qI)`ymZ~k2tF#KHg<_Or47+UYXv~dfomKkWE4PJOw^;^>(5xSw z^4kaLwop7)d2mz!|3FT&0Q3C21UsGn!#X#6`oB!~JAP$-UW3%0PmT#+3h@V*aao`k zlKi7erZW4Dztv{5WrvppmlUUKT_tQIhSoG9t(9Enb*0=p`&z-3U7gp@hmEeKwY9Qc zMO6X2*=K<<`PR#t$X^$^9>L}N3{Nf92lKG>KMz6kL2L6c(WQbOFx+(ert77tccmD~7KXvcg0uhdjU7tuR+uIHw9_9VV| z^_KR0UAhYe?}ZlNw`xHqgZ1Mtn`;OCEuJICCghri#bk$)f*Re^X?&HZL8xZ{3FC?iihZvM{=O<$>- zDAkxp!@oyu%YV?+h4Z6OWOG!&xM6^IPjp|EsrOlPOl^Oh4F1MYFpO4a8RuVOWq?2o zOpz6!5EI2bPHvoVIJG1~yK`Xi8dr8bYA|8NIgNC_CHV`fCdD6Rf&VaU)fZed-+Py0 z3nV%CGx|<Bem*3jeK{d_&C^MI+C?L3A92xS=}SCHeJeQ zAOAkkQtQYU@dpiqV&5_$*Dgu&1l|z1PKl@aCfOX5q>hj2@>_>m+S(h*spJ@-XzHN2 zaecxl_Tcr^wEA+hNoL$Iy_y9}At&vOB_qRKkapd_d{q$s@_U;3tQyDpG%?A?O}05G z(|trY1uQzJU1pNKDxrSAe&~0$IArn=OywRg6@3PlM~~-iKw6b=CT74d@-OuFvUpQwm#6t}@gC-QC~mSsBli)z8A5Qla7{|sa6boKYj?%S6U$uXP8Hy~*91S>}U z)2m=L9bBVS2oE|DgMYNCt(7->dZ?*>&J5Aij#hQVsp+2{_d0eS;QOcdTRWM|wxci$ zJY#6S8t&5bx2tihY3IQm^>1sx9os}1>rm**p}p+-*83AU`Dz|o?q7JvrS9ES-D9A4$@Y-aQ7s zEs@%OxxTnAsD|sdg@GG|W%#@Ma)P9Zc~;=bldp5Qnbyqcapi^?asvsNfTMjN^&V5) z^FG~-@ATa7v>!ELrbZ&bo@f5k)W;+~%8`juCu@$hu$9}Mn_6|1l-qlQQYrtVj=sfk z%r8Vo2G9KFU{Cv?(1`J7M$rwkML4n=!}n^Cn8%j@<5j&aXPVYO-FVi_y31x`Ah!PJ z@^REVs;xmEhkm^5GWhAjU(C2aL}%MUcjuW=M(qD1>#f_O47>L285#j8rBh0gPU&t? zq!~&XItGcM8ziK=Lt0W|1csFE?nauSYiNEvasTnW?{~PiYdhCk$G#tGdG>HLl|Qjf zAMjC1l5B8)y>bc6WY7@`TI*)(wq2syf4q*d{l zqmd76Z8C>0e^*XZ>P5+5Z8*~i{6{w3EHYmc!-su5l62F0$P2_o?FB9s+gCKA_!&b} z_{MrN%Tqi6P5PR#UkYv&am(^f-GODp8q`uTAv+U{%h~tID63_Neks;N>EW1mvM+M6 zRCnkf zAbs>XIkKhlfel4B%tlCXp4?fvOxWIuq35zdJXa?2vUzCY9(d-t(zUSNlLCc7E_&y} zc<19u9_Kd4Kw(FEF{k50xxcRw{JGz!-4Eg*h@pBta8)GkSy*lT%@7IcBvGJYH*>$Y zPz;`=;I-zaJcJ1%T4fIrq*KfjcF!wM||cD=G1Z~8ZNZMY4+Gmz$QyvR0+ zC}KQIi&Wgi%Sey+I=T(UIAjT@mQlQ!1vud>GykI0d!vE(KAObDNCT&$)<+*?n?y8q zyst(fZAeMndcx2@&T6oH1vp|e)r;{~i0Dg#DE^?O0Ty|1K3p`RyqPK(jqzAGV%al! zD*X7`tRJjo_9G?esL6r_Ry76OPKex0Ac<9wH^okP*upc4QR(|si1Sq@CoYCWFoD>E zDlFM3X8r^1unkKC385fD-W%C3kD_j|qMxtq(0yA+GVyrzRW4pUDG4n}x;>K`vQty;{DGkv;hPBW>(nuqUL`_V#wMzAlxM-0xOl^=yx9Y?*mci1zy?0Y&=_ z7SEUF(%@2_1omJiOvAY#U5(T!CFrWx+idVAiR0fms@VWg^%| z+5-Ps7R$42E*5VooHfo_`?T=sBHjy+e&?-(@Nvis`%v%X!FNbVhm&W3!(I`@l*9as zMhTTh{Cmx?n1Ydm2|U@vs*`V9zOlT-Ggd#%*1iIl+Wb^IF^|yWs@yQKbXEA6Olj;l zPbGnURdqk5KPg=3@?hRf8?NqTUpn}^VO2x6r(c`}zDy4QMY}fBOt5iIR@*FdFeNeh zHLb79%MP)Jh3R_>PE$1QNWFjtB;Q+JtZOhpUCur(b;{j1;l0nDRLh$2S_=_%xfAG5 zC-K;m+GRdF3o9466EGRiOH;aTIC76Zod|qOUg~N z4M)#ACn;L_J@c7QOy`gC1{6hY^TRAdm@#?6+yKan z#>(CBG2D#b6bRRYI0Z)zc0sUvTUEZdz*ueGazj}8?vi2Pk)z&z2#H*HIT~B^taQC$ zg0|mA&ZU-mbhRt5tCVWv2y78HtH!nA-03;=Y|>CinKkHD&D)0~VDWad+aG>JA&)Y$ zs+lC4mSlgx#~)6})+mniKi({gcVlEAgluDv8-Z&@fwuh1FVCLxBQiu@Ts|I*@f#0T zI8R(Pad|rAsDMhDj##CPxPNJfw8><^pYLS%JOBG8FTXx%O_)wrq%bJl`nzFR_ZwFE zwe_lg7VFE=>ZCHoD(ae*)YQM7qd%MDqcG+rqqe%=*d=H=Gpm7PB&sVFtuxa{x%C`l zGnQ;=P&JmLE1Wz~nRH#$Y@lTL*cU6q`43CPZfZ#uE4C>9h3uCv^U&$lbp2lgJnL7B zthv?1sw$9Q*9V>1Spn4Tg}ty{VXs4(Y(Tw*9RIcs&KCcu)wA+9M@d3V^kVXWc+GOZ zI#bSb=+j<~?@^&chUmlW(_xC115n|jSa&j(_jgrsp?t^kb0Rq=n9rHh6JO{9iZ{*& zfrp>#O(y$VPoTod=qo9ZCxK*w-kvb~d~6uhN^-*{&t%WATg=o$%Z`pY04!$5uAI{RXSH^EkT z025SSdY^=V8Ga+*GCo-aDpGbcg|Kkh-LHRe%VG;a>ePKIo8j7 zqah|bJj||+(HQ?;Y;@A!u@pf`g(}%n8rZ!5LL>mox@iB@S2&LpU6x`(zs-SuK9+B@ zvd|tyDpYAqUQtVq_If2MK=hE~gparw#?d3jz6{S9Vg5SoYN#cAnJ*RU@@tCXXgiRj zDSz;77XAM8`yBh&Em+EraKHphJyK>@Fsr8F5H$+#9`HWS&85<%3Bl3 zp&O1>th2;M0WLJ=rA97Gm(XM0t9)lp`!)!eCc}tIc&kg!cjrX%M7W|m|7&vP5O)GM zo`(tI30-4B=H=iHW>HkHt&yhCyOQIqraZUZ0%J6p@E3vcF5UCP5CN;GRa%A+-znOj zQ}O-ZvLlRIDLx4#gF9M3^Mh7W`Tb92TO(5B7G%^1&7~yL@@33U{UHKSRwrVx)U!iJ zO!36uRoLY08EL_>r9@yqw@e1?_AF9*hJ}%EmPbV$O-4=z3iE~~IwH;2SwqBit^Fap zMzMANwb4<`tdw1&mm$@w4&#(F4TIeb);y1ulbendl+631>6fac<~tYRLdTy~K>By< zX&tu_BOjLu=5*t<2KnK_2l~V?_@A_@AW@ZuxTY$#NXt{+<$GALK^w;^#8?@_C}!E} zn@(5|j+l17R*9+f4Mr#jPuft)6(u?BG_Z6>aMX?|jaN9Mpp@w1NccK)&E~ky_ z=L2)=SB)V<)_$2ygB0r)CVB^PBEw+s3q~h~nPGx(2i@oYLyX4%l44FQ@orA<_Uzos z|JF6LoF;a8MoIW?d&R4-;`0owf;6DOR|gHV>;#i$Z%R%n+Vaav+bT9bnxgY3dx_j* z58B6KvTK^=k$lnX;Kw~+*d2p!t}+)ArnY$BzM`AYXKr9kI+u%m3nq=&3OokX0es^P zKQOmb0kGm{#m2yfXu0Ia+Qq17Nq?k-L+`~ecXdZXy?f^bD>y=H>5>HjE!}nmN7-Ar zeJ{guEblHRCCDN!Gapl)cG{#%ltH}D50~Bz^s|03pjJL%J05^TJ^F*T8Pk{GR^W?9 zQh&&KYk(c;6jb%Rn~g2?>%>2la7UkV6x{vRw^*4{FB!5O-O)KFef@tyB2mm_J014r zUv?69VV$^^Mz3Fa*?L;PXh8Fr&;ihHVuVW$y=doT>?{9u@fH8wdyIJA9-@C^hPS^! zN+`fP&=Ja*M(CHf2y(8>#v)UU3$-tPa-sn8VpSfE|^E3M33=>ow4Dkv~%o9}|Hp8gzKm&WpGHn+1G=UGy={gnCO6se@-w)YdMNU;p< zG}YKJZ1|cPU;mvZ=h>0W+JT?2@#l567O$CiJW74adAXHoT;($h1F~ZpTSZ~P3WB=f zie9dkKfo3gF5MdyG$u5Yh%5F>x)mosqm$)Lb-!tSCGj8Mn=$A$!D5{Y3J(j*7Wnw9 zN;o+(rj(n%y^Qih4>8g!n=OzdByx4;ZR@;>!AH}m6t!MnJ59UE|8{(795y@}YP)&T zsOR|e0wcvl#Y1{ADx!~Vffs$O%pbetyt2>E&**ue_~c2K`xP+p2@J3y3(aWvZ}>M4 zw8+!R{S?b{p024-Uy77{)AonnMj9-kV?1ye7e!h@Z=KIYrEVH%iN#- z@mk2;AF8OI+?D!9E;s+6K;fr0Gxh zc1?ABPQ7IW&3Q@)o?8W_HAiV9S4Ix?L_Jn_GSM3TXJ9Yi{-2Ruxsg~!MTKrrZ~ zpJEUXh9}mJ$Q9ct)TaB(dT!{SztnENfYupjfSn1DqbDexte30?4^404pjs4clm_%C z%Hst%ijKxxHg22Kh+HtqPJB=#?zeKhFjQeDflF-5Nr{wRe8Dvst>uH(9u%%}LafC_ ziXD!3E>cXaZ1Fw_U~bOsr9{*7yQeBoH|s$v1%cc zc}rwAy(!!KAQY|gd}uu#4;CSi?ZqO>P5RUdJ;a#-6aru$G>P?%{#p`om~)=+&BtUA zgJdG&ZyC+|-cWAEN{`YUDdf?z3-@&G$uCU#e_W=$DMrU4$zqDLc4yA zxAFpvNEgFYf|5#5VUUQ}LtDLcC$se8hehFX=R!1!_9H^kl!tdwn8vdx%RVp_&QG8A zCPMinS?l1TP-6Y`&oikK>~a=Q(EQxYk-)H~`D(w#0*p6%I|>red6kO zgc?@F43{AOzL?pI371mLc~=hoA~xF+zF&Z#{JXLJAeQ>}rW}U`uM}WNq^sGK@WrVA(+L zxx;am{zWE3q%BrDc*`QZchstS+GyokeYyIMfX^s~B{Cy}1X4LSO2~7mNKw%a>FN3` zxC>?cCrwI4OdOHb>cyg!ZTbEtuO*wk*&DQ?-<6C0IZ`OWZ^@m4 zRXs+q<(i zl;?<64wVk7;=s{V*6R7{i%75_#r3IhzZoNXzSuT*?9ylcLZcWX6Qe?-_e+f5@cuvq zUo#CLg-v-AALWQ7+8%s{uXwAfE8Q(5HSq4fsUdrJex#kYj9h*Uq{%s7o;fcLhgK#B zKdrrynl?o^ELzc8OP6~PN{rYVA$&B;V56@EftfN_#s6n3$DKB^oX0A8>IR^Z3|Z^M zylq*c-F5rt^%QT?aA)-OPlhBc-ZWp8U)fkc|2(ya2*nh8M>Q&4YOZw`yu^B9R1)Hmm2T01*p(mNHO9pKAK=j!fz|x zBYUNdijLS{X`gzv4i_($kTKBfK-a5%JN^#AWFxg6zi8+y%>-?pKh5&du<$a#R-Au$o7zc1(zLTJ zdLqgL@1}~IwNfrg^Y49%Hf(o+m2uo*R7seldpryK3P>RGd;_mh^*5QBs7F zcNZga@x$D9Uzk+1Ooo+T%Zh@)N*s3POO_rK3i;(L`ewkj{Xt!L#8rk`r2d6T%R6#S zc|+0GRGDujy3~{Au?{C3HJdLIMCD9#tjem>v)A>1;+&H?BdFAR9a~FQ$DOp5Rmnuy zLBA`0XM0e^Qv&RHsKM4TQn#>uCAvVpvErc0#aQfsR>sc{xDouTSU z+&u$zQRfLJGFUKH>DH(O7tO*@W1kzOjBrcV#3LtV*gRHNY91!dDr)uqPTYe*Ud3R= z#s_vwzK8Va$ebC44Z~%B4f&pIiq82^^)k|UcL-^(b{fAvQ5)MJ9XlL$*MbdR^XLLE z)O#4n-L<4#rnTrwA5#fLH!K{|b?kGW7c-5-qpt8ZP&}OM1lKL!LD~## z`KkXX6@ZAg?vui{3FZdWPltt!=T^X0&?rAQdgCW7ek=j#sxg|m=_Zi89NZ!O!}{_ z#cXs#g5a8Z>;CJP81)y3s$*-RoT5>DW`oK1Ut(X}(xvfkuKQC_dDr^eDrq4P^3SH5 z-i$2B_51|i2Nwg*R|?GXvz1zcEj{}ruW0G7c8e-keunC93)ZkLe+X_Sx2=G!IC^<{ z{AkSG3AC-&KQfA8bgH~0T1jt~rr) z?S(w=%>4iMs(t*AC=uT#Vy!c@rAy}#lFD2mzl{X5CGmNEDa;#!3#kvm24au)JuoE8Ex|{rnyDs9I-r4sT#fCOq=h3;WuB|2<;! zP4&DNx1C9N}TV5u%bal4#VvUhI$bDZlJdq3hpO= z<0JA+ocI#CP|9%yvqb9(!Vf6_&bcKg1vcZ*ltzHulqTAQy%<-mY%jQ$cvqZ4r(DTKA|O9YMBC|CnZGfbrX}(QHiVj zOgb|82g6Jz5D)+=Q1xc8X5EpCHS9H-)l&L>8eh9Zl&9A_M|IQMyF|u&FyEA*L}>Pz z@7=mMIdOz&Bq`ot0~+=i0t4G9>T0P@I=>Q*r6L)Cw8kRjalI^IBA7aGUxikQnGg%n z=j4BRrQzCmIi?wwaq0BL!1(2{0e7%Y-^voS0?R(9HdjP8(E3vfysCjFpqailOVL^0 zJwI@ynUP)off|+%W@eDylXhdmkixKvD44Tr92j#vr6J!Gt$7qdO)$4FXNL%FhSd7mtPd5VO*|KmI!71a5%ro%e}WyLF&VW;@0 zk8-)cn83I);fs7SWHY~en%5~t3?K&1mHREvfpYf^0i{cvKT0fxz78JQlnN8+OFL=< zu`@9n80|83-hb$UcSb8D91Ghwa~*5nr3S^s;78tZU$|!CkB3SvI5cu1DY;rJF^Tk* zemi!r8kD?nFL=BvZ-hdcYBHq3U__dMu3|H#a4~{=SUf4N zJskLgd@8bgAHi%CEpu^6wgLUx+}r0;>yb}ge-Y|;8z~B1t=LOGt$er`C0RicczsSfrhlG1~JO_qI2kET5dKxSB+Lp8^5W?PSanP(k_Oq0U zQ83s2R4S`{=kdZY$4!dfMKwV|l0f(KR?lCmhJ(XcmD4K>-#ZL?kLgt;a(0V`98?Gt zXRYqO<%~`p^U9KU-;TNsYa9t5QqYc~&)&|7PT-|JH5@6BENTHhok@rQCs6=(|GG%MpJLj%Qrrh&lu6p!oD}tpTSK(w#`rc#AH} zcgKajpK!cL92+hG9h#{B02xz_sa}<4oDauOy&Mmxp8#UNKb`xklsRZq$Rvt}6dBL% zd9U5!$6C5))l5%cP|f>WA-yTkmVDhAqs`Qis&^b=RA&bDUxBdXQdJx_B#HY9-3OFg zBUr>N$j!d(s0Yr2Lj--5NG0y)t4u?h51pD@ILA0qSw&{}M5Zw+yiZTzv zy6te1zj_MKSRV5?Wb6LyHiC5_4;@50r)bt~n^5inDOWfpTP-zQ%5^;2lRwaJWOg`j zB1+Bh6n}SdpjQ90^2q+*o6A0D!|zqe>WF z_IjgWr~P}I*rYD?INpk50+zD85$AR};Ru3oGr7zIzvVdvN^3C$b6)t_^j6v~K8@UG zDQ6%*aE#Gq6$XxsR{20nvonO*6YQ0mb>|ALbx2(?nSGbjAY_T_{ISiVWF!vh!U9Ry zh|<$#o&+K^k_5_8pC(5KwW41x4c;#CIVJ>F2e*grU_-sk#`ZRuu{+jlYbm96-MYjW z+QN`p)Nygui`{neK16Ct9Oq-JyAdQNfJcx}%JyU2c7hE+yNXtYX?NINlrA70rQ$5l>H}{v0hY$1rZCZPJ z{10_@n!8QzQ$KXuj{M89N0fNoT6OGqw=vQp_hsL9;}6<)+_Z*@R;+$Isl?HJ{mh(e z%8DmjAV$FV9Gt+8!lb+U++R`eU*Ee+gyYkq7-CwBo1l3l5AFUdx6NbnPXHvn-nTk< zYeuPx`HN5Ij7T=J^k4bsWAIR}Wnenz+nV1Wd#t^d3b%qB9SLf17$cBqj~nE{#biap zM|iQ$DqC+62tWHh#RJdE8DEc4N^t?E-(`P?4qiSFGH+&@n_0QhYS~y zmlJt<1qQw!BUaTm6qAhb=<}!ti-iCmV_&A3tIAtb^#6#?0M)&&jBBdrKbDGZ7@3m? znlbVa=Bm|YGU!TLcLC2^bKUGZ-blgG!XMwFg)TKrZ;;gVw4FcKua|KGT2Bm>!Ho1T zq;?B?B9opxf_vwx%_M!_Z&#| zWVczbNyYCRzP;Id*IrRDTwsiBD)mUm?0kW#fNU#A8O|exn$-5b+_=YQO9c5^hCPmoy(^t1p70#spIKnr1(W+b6jM*5_ z74;+jIBLQl4k_nGtQs?Px^2L}Q0nRSl*I#Wb7ZPKRHOg&0zC91RJAR~t9BBibzuj#I@^&D4u8;Xev&ATBMwu1TM4Xs7^_5@#x_7bz*cmHkps7=84%B5RBYfTTgb_F}l z>>DUw=NjKW$i{n+t9KS;8hLF?DVwMa;Xf=e33-#+$GYUE4_H$FR@vBJvuLlWKhn9e z7Rfx z$(DMAyjP(LxTDh)e)gc>?tKbRW}9?vJr*YZN;I>vbmb@UyRM6bI!|IiBwKB1uvHlU zAST)B&h%Q6@@(DiQgGEV4)I^MHToa#^%d-%v#t0VZ@jqi?ZNBbVRr>7s-7pU1=E-f z67ia=r2f~SFLd9mB`_0FanW4isp*l-H4M&C$%cQO@xNG5{UrC;8T7zucmSFxPDREL zt9FgFaQoG<)G(lOMG;@p^e`!F-Kz@9YzUz<%n}~@vtjY0NrN(7vWQ(~bS0g>ZtE*m z>15clCQrKTnE=B5IVx0Q+Zeuh{&}l0o!Rlg9rSyq*N0VHjh+yGysY8Zfvn~I;vSDd z5LzrJ@z;7{6o0a=lujF!oxk(qGNuYJ=r};9Vo}GRU*!eVPb;=HF1F)VyHq}_{{8{? z*&8_X<2XH1=+jP+0&&*F6;951Ob@*myBEl;6pBLeYLj zUe2GN`28lq5p}Zs2$}50(3xCQf$wWN<0hkmm(9z(o2J1-RV?z9d9NKORVsoAjIqvm z3?x5rT3=1ZkJd?!_pTu?)>(n242^oc!Aq^G9f5*^pFe{S>iisHQ+6pEgfpdpru!`v9*l8brD-xB*AYd=#54tlcNy}`{4yUwLn_;>Xf8EujTk;_45J^HTaVOr z_IEA!IDi|;+sA(}mSPE7M>RLkeOx7gg2 zZ^1L^dpt3hvZk*0@SlhWmo=J%=CCNvjepBu7IR#=S1Wg~KVwEv`B2xs%za|s(xA1R znLe02A61bjOv}F=mNbo|`r7gE7z_;&>PEWQUX{G7SOrymvc+a}Ca!5*rPYWVHYhu^ zCxG-<%0PVCb}oh+7UtOw1!CvK&S^AkGaY=^vK3}{Zoj#RQGJvN^@{w-@%S2fy0jEWt1;VPyX zenwFv!^snQkUE>y{a<4A{}AZ!zj_d90j7N1dr_&{|2+$f))@CT z9e{s*o(n1K{@4_vqjy0;hK*d}vlQ?7uuO3q$4g70x&VgMnl6Y0686yu1N|k?uE7C4 zm-kl`RN0fMOzUMBN+e2{s=!8C8hrLeo@z9)emqR_)Q9WK0DW0ckaDnB?2eOo0Nq*R zX}J$J-zBi4QmlQJObEcnw8&tLS#l{{@ueAg@eSoH8q#nWM1 zOR?XL1pZzImvagg5l&N==mL?l;2avsW__G~0YSvuUH-kGY**TUrPj#ktR~H#TIoWx}9WSEP>_R?W zF>kjJ@m+x*JJ^HvA?=m<0_~r#NdxwnX2b3p%Y86WoF9jwXC_s;U*C!HF>}=x_a*xM zIh21AW!(qNH>&}6V?D65`{S+%L`Or@IG>f?N$r9)SIQJ)<`wb#g~-`y&6>T`G?%ha z8(IM`vnX+C9`wgEe|hATP_D{B%?-uus zxnz1)GK^5x5+b5vf1wTug-1C3VAR^@mJRzmollbIf#-n9ZUf0YM*-hljENlh8GN?}9fjmf{a*Ayj0#@oEd$paA3^f|s ztM$UZSF7M2by*Z&8Pl&^oNl`K^mIPDhkV-7ynRNjRWc3ckR5rdjPI4?sO6ZU=Yx$Up};C>dB+O^&!y07mF&)8k!q6D zmSKyadwOl1k(B9q8sSQpy|==^#y=*8UL|BzhWP1`zLFQ#1?L8c`V?ft2-)#B$DK#g z}rSS;A%$F z4!E8~PYin@Smm&`Q+(7iB9#_SXv>838sIqET5_(CCLvU)SbN-_&vT3MtCy{Zq4_yn z;J-f=)%>=4yy48ED9lrB-@3y-yzf&#*W*2U=8F3BzxMB;@5&|r_sB+=8Dc;#@tlou zK_?~BjKFse2x~i*o&5)KZJOH{hCtlNg`{&2SQ2WXEOp;+M>N zVZoVf;`}jl36sJ5d{S{owmjMaAG?fg_{ZP8;EJciQhXWeQ>S3c0syL@CRZR|9e*}z zXjL{X-eQaz6z$fJLy-VDOHkG+wC=)%09rRfiXM8n6Xxz8KSg{_{|gF{!J4_wq_KQf zIpsXAKKXuhXakC`LIn+r4iO>%@fb!{5GB(enns?X^{^FAo=KF<%9e}UN1CI+p4{7d zy$5OCj2EW4(9ghe2e1-U;&K;e5_Qd=F~@jZrPKA%i?&nU_k+JQrZ^$-pM-(fz^-V5+rdgW%bsFHWnN z@BmxSzW=6@#-1hf%tWe}YPz z=-ot)8>=WUT1N~BOX;L*z4>%UbDnxi##@ORW_djz15#^%jj`g!4bWMu!hi3# zRjlmFWR&kwY(@=^*3Vrxl95IYO(Dnlk5EOPTN^=xRy-dW!fN&Vi6tH)kJS|3<>bGQ z9H)y)4a!I^KdtIx+0)BMZKQ-2yNG41?Ik}xJlzr{&vrX!-}0Yd35E&qObj?smHh-% z%JrOhGTTn)BFZrZ_qkRYG9~Z#c2dPlFlDgJd|Won$g*iFEkS%ntWXoT^I;+3HTaxM zKqK$-a?3ffl>@d$X)v^4N!HC5bU*1iz6pQ4eh$K4d`3Aa3eR{MCq#{YiwOBi`L0g;!TIot0yl`SC7XU+zmRY{r5P8^@-w$T>rr1usOCabkS*Qf|=xkJa4cz z*%-Taw!5VQiAjPuH?eD;bIll@E7>?4S3nNy^ot`{XX|?xPN@pi{_lc5InG@@!lf;U zKm`Fh2x>uRAySa~sPbhY_>J#26a@{~Phx6HM9Ka#FqLG=s=|LwS&|+{#)!VL71pXO zd9Nagrbj#noMLMgSW!_YT%&CNIei8AZS(i#lU0p>d8?L`Kbq;O7*?jNHbN2gS08=5 z#h1&zoJqVIoe2xPF9dSzYUu4wUV6priN{i}7{6PDOn+|#@C6+Lt7rMvZ;Q9k{%Ojr zm9+Iww%wl#SJX#b9M)4a;?rUD;lCfLi#(`)AO=v>gsOM#5==82nj~fE@Fje3oaH;h z)1=Q`MvPF`C7^d!|NE-qp?cd5Wp;$;%> z0#3__nZj7)4yUvK?b{_mzncvQYxnPU(Gjsh1?sluW}$M-@Lf!x`Yc&zU#arlFi)9C zWtYtRQYWYUl3q(Vk1|``pEQqIJqrYU3Q9>SDotwTnA2L(*4$kbm@I+d8?5f?VzA7N z38F#cX%|3C_w8+XEBp#8F!YpZQ_{bF4{G<)jv`Y zwbUawLLIxr!8?)}ap_<2_Q3muR`HnMT6D;)78PgV5 z^L$X#E;uVTE-hiFdVRep-4^dKQVrYXU`Vgs1cRUlRrrC+r0C%)F`d7_qiP3R*ur2u zlzyWCakOoZx%V@x&vM;keAnGfMxMFS92Cibk<%DU3c4-9^ojnkv@G7!g%@hd;~@Cu z!tPt~i+BkNwYZe7x_=AQwnTosJwmec{0;)%NCl=46vcu;XzDRI zv;BY5uDBGSu#~wbdTz<%#BgVQawQN`3?%GkQ5|5^9#zGUol0IlZO~sl-*i_#-SiN> zy8BEfeEvAI)suJ(qfBJE2){d}IGsPxd*1;LwoR4)tbi3f%1}8w*!py+*GRa*+aaFD z$X5R6Rk)=)Qm-GMZD0(_#x}59I4mFnyR~UhaToaD{%Xs@;#3d+dI|AgxmoYb|6r<$ zdL8EmTCX;eus_S@M>h0|D19qmMC0yp{79!qN4Oub zxhbPKU9Siyn$bPdmu6NY$%jIAZz^uE;=TS+ER3|-0e@~?-eBl$2`4P@p>B+|Ywh^3 zTJ2!{7C|%gOONSTxG{OUVb@O42enBhN8*S&a^9hR@q4)9$E%F(BrZ_2B`k zBMWChN_oiy*m!C$x$G=NxwftG{avJ+-P1 ztKnP^z(m`v@fu%htJgG``r62sFv;5Ccta-k(V#ghuFr9f1w=TG$1uN-nnt4v*>0@! z{HJjcI6Nw^7XS?p)bUtuU>bnLmg6J(#+tpV;?@~!a6-*N?NN3|l}CZszxQ*Gb-%$g zh*ZPrUS3uzZ*7PY(I&;g<8@jjXzjjPITUccJ=w};fsM4B1Zf*om=lv!7itGCWH3)|I955fVdT>dUcR-k3do z=vwN6(X_Ofp~& zT&tQS@)ygvBzAwvg^`vqG}-plOYc)bC(69icu`UnkO{E(B{@6Hw7FC(TW=yDbr1VE zlOZGQ{;@oG;H62(dQlm_{68C2D{=O~O`DdML1RRstQ7%wWo)npsgzl_LolgWL6o?}Ks1@cn0;_8RkP zs5kWs!3)3mdmN`1bdKF3!;j#oVfFg1FbWu*uq16)Cpdh_!q%`%$5N?6p@vLmDYT)h z2>Yq-dY{5*TaI;5e|IMQG!1YD6%xQs<{3k=Yp$fk2a&^uLYml-D-HsY8K;w)o9+Qv zC7&Y8&c>+89wN^*Gknda_(zLaI?;>MkSjtSOO= zQmwE#o0dssl4nJueV@|5LK-2C{qM4ak7giRo{?E->17k3o5%8CUTs6md?;hFO1sC;pmMt z@i$=OjOC@d<9mUvmap#84ePU$(^=I8U%$SaIXf;2I-f#Qsw^9v7wwVYDam(($cNbe z7H;1e5Gp^agBi&gIp{@PTUv!dgR^_Km74z8_FHJ<|6{v>86(1x6d@@ePoC@UyU-1K-Q~ODj_X%Y~{NWLqFD2ey=POuYaWZ|F)sL zB^E=wUi-@-Y1?0_P*jI`h_k}hdi9s{+6st+mV^vmdxW?>J**TkRRjI60EsFMxbpH~ z$zUC$<%E2W-fJeiX0{Fpn`9Z~0yCA119%;T!2^XQaZEDrB}656M?aw`k$R9I^x; zLPOE?944wvGA?NSgbG9cO#9Cbk_RTC_C>aR=fb^dg+zCTxYAHQThmdm#T=YotW9sJ zcT6Izt%K`MZ~F8Um0-DhO9jJ=0%4){6BPSGWj#wa(~|eVw@Jh;s^oOTQhYL%+<|du zJyEELon!R&X2EZUfGuc3>*F538YXcV1{%9v$XH;+$d=9ZaZ^i zT^M)F84Ro;=7<9Lv2TI2S;Gu=u_T}4TGK0FQ&CrWF%1QmqzYGUM${i0j%dBW4u`K5 zNxA%ST{u`#Ty@)-^j07TsAb{)H!rcN&~Ml?V4Y9EtJ9a|F>>`!+vm_hl21G7u8MAI!?$M8UlZ*AbVHRGr?0y*!^oF^x==8=V zMu&uXu35m3@m^K8`3OF)~UEpte+Hfejtb@CpZfZ)9wWpT|ix#yQxWbz! zd;T&C_5<42V3lCdBH~6S!`>hAs-fLlDXEJRzGhfI3UVBFI`VWXw^x%umd8r6164{WL<4=3pb@M5uLL7c!@w^@?j0byL9Fty}6_+dwvS|fCd`snK3 zH7bEhIkV!}_@6h}Y_|v%|JAnAfpkxZHkCP3xJ%YfEv<20mMC~vq1+r&g1!!^`15mi zKkeLq7BbY>I;SAm_ED-WOnfWR!rTs|3S{JnRWH`m(xI z$A}=EhQ}Y990Mx&9dWq;4Jf-y=Q-XIMa=(7p4AhOo>r0%NzD$Yk)Pap(WO^5UW~mG z^=OvE)90}*tL&Lf>kU@)1&ji|9wt}_w@SZ(Moo8L2>e^|Z!N-KLuEvYwf&i@Xi$sq zTn2t1I6NS!cIxE*LYkW)lS-1-A6I&DF$U*!C^fj1c#5Hx^i7WT?^wYOd>7s-nM~<_ zYeFZ)4_)0Al+;5g7C7g(O#5bp zjnFO#f}H*+BHl|b3IomVhJoZT*=}BAhu99fX8$P!+5E>6ls8)w4_BNflh^5m_wi{b zf`H%Lag+0z@W$E36q4B0>02=(F+2jEZvrDF&9fvHj2hTtUo9J63Wzo3CaI41+zl4W_C2s@;SJbWBFWA@*sI{ zu+t!&s7mk5_%ftI=sO&T2nuvjxNYbNye_h;Cl{6+=wz!1EU+RRQ)qr}%(tS3#Y5TX zpw*|SLgd^pix+}5ro_H=f+zHTFGmjv!9p3=&z@osW>QDIWtSE}*%E`81* zYv%J**Xg@HX13Fa>#r2_(?NJFe2_`5@&1xS^y#KG{_G|i1Eefz}*PfxfrDI4%KpLb|x&)*{x`*yY1XN<^7`l;=jzJm+kj|k7B&56B z&HFsxdwhHUihHefU)OoAqDMkRc(T=ce+Mr#T+xA`$KK8;e^nELJBzuG)8DF!4!263 zcZB+&65(TC?;S@Xyff=&L~HQWYizXz&7p@z95;0qE>QjLo zwc90hAAPNZwTr~{?;nhk@pt#fP5<>5|2Jowh%;^n96|;!|MwD9vk25Ejyjv3cbv=0$K*ZNr2=k-GUH}*nkH>M6=559Xrm1^vE9M$v6 zT4E9wZen#0sIucLF5{$H2rs#Mo&)ozN{u|Kth@-llmnURWy15QK@BtDw}o8_(-wwop7ZSIL z!Vhem0-xMl)xh-p@pB;Tt z(H|9Xsd~VtVK50^tapc3{3+^Jj}F)#)#A>q)7#!7M#DvpqKNC?bqZcj{PM#$ zyvlfHi1vb-;Sae;qLlm`Z-?lIc#!0!;ENq-T}chvA`|^&!gl*QZ9CT5U6+lWD(2kpD;2}i{I>CRNKY9R2fw@b z)X6CPdt>Z1Pc`}=$O-zXLJ9p5`arsmvk~MJK`F*EObDz#$kgKAMH+NSI2VfoCPpFG^M?USW7yHmrDR&h45w{&LgBQyvO)4|(-s&nxA zZsLac)xt?1ZYs4-)tH##;g7E1G-b=2%GWiA4a5S>LR!Ix3TFSw<|OEtl>L7W7pBC^ zaPXw;zNSHQP&ukR=M%X4ImRq=z~eKATu6`?4RXUgxwc||Shnk$GY(g7Em3v`awln; zij5Oxl0dlr5S-Dvv=(QgCBRs4|ITp!7;wWUMT1j8O?D)heYA)O*Dln{kEdh;-%fg_*u4_RDMHj6A=8RjgPiSmyZ> z(Yh$*2{bW7dnxsub(wH%6-a_Rvh1&pfpY3S+C+$i05OMSnoV^jv5qknKR%{ocGMHFp5hS z82UsPqJPTQS7LO>N}4pz_vzVQ%v$r=Ev{^1S}-|r`Npzyy0$NV4lJ;;J>wn9*#4t3 z(ufiDj<~npyh|(JT z))5&|bax$4pi6C4^7tgckSPbD*l48pDI>Yc!p}MdULa&MLNazYk?W& zAeMjt*;lm6@#KQz@t10g0|PG?Cli`vRV!$yjUM8Umq78hc0y)1;58XiYTxlPrn`^AgRiMZlEpM*E<%KkV=Z|^w&o@MPkW{iyEDBRYr z;5?s$i5nQ;|5Vy_ z{#Sl#01j^jUEf2=WUA(j7;YkHk+JCRFowW_kE;l-Hi2f{vJZnZ*ExYe$g2CbF<|W| zWCl}<7@&-S?wy#wd4J8SzXrxBpI9$~Hll$zJpoQK$t(pJ0EZkGpt94#uKQ!_$T~mv zGtcMS>>iHDEFash{T(Eh1cWJq?W@Wab0@44fT{laCZw-}9@Ia3#nmAm2Yi48DYXq* ztm-QsVTTtpcy`0w?fWbe^&oJa&mh;ZTqL$OFObOb*J+0kwBfK>f~}o|$C0(dApzU_ zyA^5v%G=@RAQT}H`s}-rvVj81mH?oQs%}6!$B!muCI;#6-BVW?8SGIB2$%x&?_9q+ zqpw?mT_km&L)8(Wo&=2%sz6dfe?9q{V?kiW18<1R-Y}BPAx?a9OH6s{d*N(@gizFJ z$s4XW^q8I-izon-9D<568ovH3tU=+qxj-h-ui$OSIg7<7G?{E;VJ{^f`Hx@{1|>rS zC!z&f*$Qv1bdwpC(MUcp?s^wU@P>(bBgPhqYRFehb; z>BJX+gez^-?>8N%L0NLqT zpcGKLw}cS(!t&<}vz?7&ae5fOzxZ-xA1g-ytBn{h{`>kZeJ(UbMfwV-q#r~u%Y7{ns1ek-ZtuDY-}`j+Pd}0S8r$xGT>`T zsrXV&KGTM)de!(U@g9`K=TBZuV?=++a(W)aww*<8JpOb@C!yIaQ8*x|s$I-#Tv=y# z5+IPdVY}3^<&{=jq_cD6)1<5e@09w;Rl==eWSVPxk$D`chv{&m?(- zi-F>_t!|I)TCUCV$Po#?`R!2`6R8IlqHZ{}{iM9=oR_9X+VZ*ZCN!jiqUJWf#A;`& zr0$X}qd_ANn_jM1L)phF2Uo)59D*K?{nv?wu8CSIbR5o5GaT#f{2f*^odEh1g0LGS zd;`zp2ZgfEE`LQdev5KY_fc;+l>C$u?(`-2#L%|=zk7V|+2VhE4@D{AhL*uvsBh46 zjC9e$BoB_?J(D7{bchUl>>-+5tVU;m_#|L>Jh@3v09JwJhR!XBO-)EI6W^xq^r90J5NRFLhaCexX1t&bYFi<>$(|y`5-;K)7;Kl7<2iS@+699Z-pZ zPzWs(0LwpH zq@1Vb2hHxje;zxxVzn}omndaj7G$MqGZ1G3;IsL{i5zS`1{s{pEU^P9izvydN+h!NgT@ba$_H{ff@_V7tM8e`~-Oo!`O+ zmlC}OwOCwA0&`xls1)rDfP#g^EVN6~(hexI!i@#4rfDFzj4|*e0DVuDN1<)MdA`u{ zR!IlxlhD~MOgk1y6K@&y;X)xzA!fc8(Dt?kcw#qLCtsBds_Bv&r#yrQrrY8(jXkRcKwIm%3w9Uy^$Eo0xhad7-gdG)z*4RO2+~`Nce?mszSBX9QZga)#6+v zWQEWR+Q83#6Xj4A{oHWJSi1y*Jr$13i8x-hw7maTeWS+ zE@e$_&B+kuc5p>V$fExfdnCiuSjlcH*vfT!Xbt7+%xbCE@*5ufLK!!)JJgMrIOW-( zFmX#FBD?tP5v(uP@wZPM0hz<8uB8{)hD7OGU-nDoY1%Jkh zQN;)-&{@gzQCZC92kUB~TLlp$IWJe#U%ds5^QRK+p!ka;h^LWoJ=w-=SE3A%S=eE1 z_8}`B>p4!a&4c$sda+s4Jf8+W%kPcw3k)7BKLcUb61C1C`z_~VBv{CQ^l&D^6ImM9 zFcUl??se2JkzkM11mB= z4YbUmfX}Kty$Lw#4l5?cYmXWfD4`WEF;pmn5h$6dI$Ll)I#7M$-}JzDX)8(rpMTna zI_=91#}!j;AC21g9!D~VdJS?;uL`rVSlHV5{-l6t3n#GfU5$@oL>~3&Bh-m@ z9ZCtGcfRQjDC`uP-@q@U31^v2s1e$WcD&kXymUYZGGrJLUOJ_a4V z9kSw2@rfGdcM97?JUw4JTtocUa@k^aG!Jr}zPQZ1-goi@?eHB&YU?{Zm`hFnZU2AK z6=vGPTGa*O4X6+-(WA&YWT5W~?qCu*flM^E3yWm#H+I7pL?^QV6co!Z6+7>gJ}#%Q zeBhzl#IPqTM(?Ja%bjP(wDx0=_U&KQPUzS9R*VSX9Fd^^eNKr^Ck#pG*ArGJjlt z!zbeWJIp?L-Wn4r-n-f@hM;MM@~;u)6V0SLkPVBelhF1 z?CJSslvv<(j7DG-7$<^Bc`5>I3+5U->&BT{yUhd7UrZKE(8ZL`F_V(1GvWzj<%_1+ z#$s>2!)+^GQ5(z^<2)H%MhAxNlW@JC+ao&~-D%WwM~W?Nd@o&N3Y=#^>BnsI6pM_< zJsYJz3Yz>*3*Jl;!)iP2g0p9pJ7i75@edVz#rwPo-}8Y5Y4E2Q>o2BUV;0$k^g)-) zPH!{h#faYxj!J4WCSJ97zD`zNoba)Ewx_p|%768t11+$Lcm~I0_`o^hQ~fKa$sT#I zKbUt|EnXwDA!OZov8VI|5Hb0n_SIr+#Ki>jzAi&XD!Zbq+Dvg}^Y-gi4E2D(VAb<= zAaVk~t3dLI*EXjxv?JsAqPMO4<_a{8;Pu4uAm2}W^D8zLN*#E#Yec3TF@gOByn`Xy zZ1AR!xjVyfpnDV@J6rMnd;i6WmM9TP4%NYPv51Y8B~F*l10DDu&-+1vDy@SV4sck0dNhp)#b9VB=XBeu zSy?Kw>TpciG|uq#gz1)h99bOl9m^OUP5)~mC>r?04_p%oD+}ryrT5UF@scv<=f-E4 zXpqT-9bvRt#m<@zeeWM1#jl>M;jY>E{X4EvXi_)gXL{qtV3Q=e-?wp7ewJeJOl!fP zQv3T@i;oU zzsr0@C>+AN**uAl?82Qq`k%KwPw#)1^cZscjPOeWXBNoQO@3E804Y9$RHj&#ucyMQ znZv-YihKVT+s0*4c$SvI{TC^@Xl)ldTKNee z{JgO=_jmjL)$;F8nu3KLCdBEcu-7H9>x~XuAd5OM`xlRo%+j=BH}!xCR8GM%U=X_H zQh;h8i;IzH8>W2oNDWaY2g^3jTXLEl?sF3U?(J{LX%9p94MA&``!03)o~6x|&) zsY|0m>ZLZ+D7vE>&QlDXaUppVn9s&oUKs*d{hqVa!-=}E3zjcFFE7W@QN3bW2cdNs z3+YCQi2@)9@DgvW!1(UEI9oEYXWDY=5`!xO`!h)+nSPs-emwh^(d~Dh<>dG z5Wjj+J@Cn4AI8~s>HKH#t2nG=p-^3j?e?O|3@SE3L)tNY=>I)B42`~5IDBwtJ@|Z? z$xFCu#dZHV=|Fuy!z=CUo!+&lT{+D24+HF+&jA~uXrL0kbu!wyQlWW6;yFhqno<*M ztSJmWic|UQv`^LR_ft9sP9$|ls+<5Rqj_(ntw~f1g<70h+$)4~cnxi|hzqgzqB!%L zPvBG@wfV1aA#F`R-@AIsnltvmb|}92$bpV+9MWXwvo%M$Bt7RE+?#g%ml5ijeCBs{ zUR&Mb3X*fj0c!!mx$1o$`wt#ZLRbzFRe>UlTbZx{r&i-*4z8B%i}vwpulyfZ?-%wB zYkg6%rxp~)_?BpXRMrY`h;7QOj=kaZS~(cA8gCv8aJY8l>j0cTlGb3~5RO@=+zne}`|9-5y=^ZS{0qLc*JIJeS_QWnfQ7!S;EYaE+;Jy* zw^Y`WaQrXTn$L`wd;Fe6<;TCt{<(GA4+;K9Ti>AyHD%zLD4V(5vn7(#rp6(4GvT6T z+7pq5|Hr_*9RAtRm9>Gbi&*}K8F zbpo)u5dH~LhsMo)&Az(=SW6cRV1ewLb*M`QU(xgN|QwQC78ExSGAt(t(t$C1`=O__=H{CG~r50>|S zq|MG*ibfsqFdSCMe{!FM?IfgK=TMa~BKAHXm9jZNxhNoxcUMS~7DKt6$!Vacjv+Mv z3x;eYrQ(s3&tK*)Y$GMAJP`u?&9ojI!~qga zqg>)ub{q#42#s))T}R5Fh$GxaZL7dL6})4=SJjh1JQ^B9EG}R0fmkVXm$;sNH&bra zHnEDaLp*;W#&h3jA_+||sFA}T_L!|r)=LE?O~Nde=wJL*$l9n0Y)6|u*xf6$Di8|< zYjbp|N*UPSs@3O#zCrvJF_Abw00>d8IkpjMO$>*&e92Bb4Ip#1#Q1{X{gN%IXZPhS zrBQ>BqDkXu@v+g)z+liL%rfMnZ|cY&HmO+S>mpSk1&;K8)2KZ8daK^5T%6^x=EE53 zeMu*%$B)4NknkE@gD-5`xxZR7YV^+qf#fK^1Vo$|bBi7&y2_BXnd#eqsan-}0@s#X z#m7C~CH|Vg;Tl)T`a)|x2cbfs6C>zd zKI7X{MZkKWS%mGW#83_4>0b}3yjv^IT*8}s!H-4rr&sqV$wHGU{U`w8OaPiD(3z#j zY}>bL`dSSK{Wm_Mi5>7BWGAuy6*ZFCWE}%84$P+qZYx@;N?x2rPSppuEyc^F($8`vY0B{L-g|U?c-7??bKS8GsdoP zj2^EsN@JRqmnJ4`PldX5XJ%6rhwtDSmRBZ6v zdKvVrF<*+P&Qd(wq<~@Y?(vW=Gv6?10L`7=)H-dI^y{8sHF^NcP;p&#yJr>gAzP-4 z;6@u%buWS$spy(=sf+-dW>o034JEStg7yjhl$ycp(9*NT^zlUREfuTUAEvrhS)cV! z=!Wh7Q$?;>jt04LrhId<`jURcI@~| zQ5%air4kg$l6yRh>O>iO`+B~Ve|Q)%kd(U6;gxN11#9gf3)4}pr<~XEzF9DlIBXYy z8#po6kohkojz(>S@I~;UGR}BviJtvFPKI+O)X4XFCPf|>V81GWG_>pzX|LpGn9##Jfz0eIZ zzy%-u2>!D=RK>b}2l$p`%5bqpu0kAp14%$3a(gM|)8IdTOnHvbQgkAA=IS}}`i99O zK%y6}Zh%9*As$Gaz($l*8~(IzPl(i!ShRVXmJ7H)Pk$@NSJWY0tJKT9L#fW<%9e$q zw)Yw*11ibI40jWV26&8qD8wjl0h0V^`vSEVMjd4T*x*||ea=^uLqA8D=h$e%J$3Jc zNjx~UpZ=ONmT*{ERF4S06Z-4Xki;QRxv}?bOCmgxIYyqKLK0vfzDKO-Eal*1u+ex@ zjF)d|W0Hl0Oc-4}gl*6VLKGAB#SP#N9sPRcskvBzu95>; zrY3b*YE)8h+C+&!)@sp%$>+_LQ^C1Vq-Y$@U5XqL;OLnk8%xFVp#w0XxTdPO2lzc; zShj}WJ#Npdyx@X%vjSopgltowivFMg_xgG<>PE-2vB{dV`0d4s+B?^Y(uiWa^DA6# zuRdn$9lP>A5hK)TP|6EkNhEq&-n60iREf%(Cb4ZW-4hWd2vRXK_*WzR$dcz?t+nZm zy)83PeQ_NA&{yav?kYJg*oG8Ol6LQvtQ3JZ zYhZghDN=~n2%^5PyzZ4j=-pMdbfX7{S)Bqbm(dqyuSM`;mPl=G`G!W*e`rQ(6I=+-#puIyfoCHr_8;2iW3u%3k#9tSzgaM@RS{BpUiuGC-~4YMve>EWv~U z5Q|N_WuZMex|d#LInurt@^7aU`C~cG-+pxl^eEI}GupxJQ3~~f zcVf~{vtwE$q*)H{=|7v`ah$gAeWD?Ek4>*Gwx~07%yZC!7|mJQ1c$z9-P%ECn)ISQ zgpNlkS^m9w{IgDb-F1KJIf-%cZlAw5_HwLe#%6Uq_>fJ(@0G~le-d(P|4qpCJj37Z z(OaJ_%7m_=_mFG;@F=Njn`U&jYosqwJxr@6l?Y1!xj-(y(!l=BJ`S5q%U+$x`p%T} z1naf>(fYO5zCfpTB_s`Zqltk22cHW+3$C+%WlQZrrgSOTi(9QC@**=wAAoC9$L@fW zu}Z7AD?0a>biJm-A7+7{c=%qEVL~KNIvd{6m@W5~(KhtyocEA%bpI0Hvhu#}=rh|G z_4$30t*7aJE4DDt=~otW+>FRa6J-b>09JtFsA%@hnP9Lu3@tDlI|mtbs8s$t-dWS;PZd-c}i7at`#6&&ugi+865MxXceAFeVnC@%MMI!&UPb;2~8Ye%n! zgnFKfIY};sEPpwAqPa>*>kIW`=>lYpV;RyQS<*wNZpjM0uNXygD+m8nqq}t>-BY`s zU6gH6yhO#(!`!U(hewlQ(idmbq#x;I2PC|?=qC)3wN2#-y9qVDBHoS*7v=Ori;dX> zlf1;{e%_vFA_atOS&NJt?AIwKjWlS7hE;4=lP*iGA1P6enMoVH6!Rz-y!c54__!(9 zcow6?6$VvN2y+Ogc4zlKMXcJpqOwD<4;iex50^qawvEQriSW`LDv zBrk0OWBamd+b(uDg3)4!gk|(x7ZDgk;YH6t@oIr|&K;(H-VgTuSYPKd>}Hib9|VBhGX5 z{>3&^oQnY{l*~taDFZ?87U6D)`wS~1b>GUbU4%QzX)B1qz#h@JVkHmjgKFB|$T9@? zQsX-c#hE5^esUs9Vbk8bUE77)rcTj3)r;PuPK_Go9eY0sTFo6gC&)R8#KprF>M=Vv zHte)9zKz^IwDJe4ur8(Vmo~({D5v{uL(jG4G_GmV&Rx#@jrB<53T)**A_+l4D|yi&Tjyg!z9s(`rRH@K z#WSvgVKMZcs4HEpqN6MHWm5#uJX*EFdh=e>ARD0P?u9ygW0Wp+Osr@8wZeGAH9ST}XF@B00|Z@1O%`&YJm)r`8V=D@vkLxNT$ozR+5 z#rFE9gT~81nTSyc$7Cg=Day4ouiE+N?xPelGnJ!Yb*MKgG0^M9)f(Oj*;^-k`ZDgW z>Q9>w57C%=9NJAJ(u)kjXaNqW;fa6DHR$o{RZ*oKl{>KFoB$d|y5kmvYPLhE501Q( zf6v#}c$Y1_^~g6J66;aYp-dm@EKnT;v-bW6Yc{jH2W8~vkEJ;EZa|^FNcENl;l%#jt)tz z5~%qWbXO3v{_+He1}4$MgD14Ns+o)U*uwIqL9Pwpp?3F}_-gk|lFN+o85c3j;I(5x z&&AjcR5Xk1Yci%+{WhH89Nnv~TrMzxanEL!iE~*dRypoqh zy5W;nyT8R#gfVNTys05a%Hy7QD&Jj=^VYflpbo;yv}<%F*!TI^BijNtD;@I7YOeBy znJK;kdNlZDXP)`!$Smv-98vDn9NZmf?<|%)^x|UOV($LsUrks?YjUfzTIcVx8&BXo zjMBTW@}#A8`r^C<_t6<&_3aH@J-Iypk1xIQzqWMgcW&I>SX1m+B{wHmj7Q@+6L%l4 zfuW%%?M~I+BjYGo0J18(HUpHsF`(nW=q0{LG@@5KDPfuK`D3C0m=P6Cy`qgmM$!E} z{p>J%oCkEtX+!cMt>*m?{m_o;6@ORiFmsL+kY17n?dnCHntSoE7bV&xi%uEtW|k9L z_hYu`E$^Dzdjf!ie%RHk>bdA=K==K{$r<1#679L;@fe`d_2`fJB{5(2#y(~9?^61Y zM4JW4QO4!{Q6Wxi7_Xz^WZXPt?peUjIJP9s!4yE3bTgd!~s&V@LoLhL`sk1W1(kbAMxZ^O8Rou<+!aT^hv3 z#Xnt*X0)&08p*)u(yq>;%S&1>{roL^U!w7fL#F;sUVKBb5@7#EdA?EpR>zd3k;>XS zDQa4I?=Ml%Qps%Kbn$Y738NfI;bde0r6-b0!q!GpDs?#XJ|*^tb>AqVa{BckBj6GH zG5nw@jT`G{e~jW(%o76@jm!z~Y?tjzK!J_c^)OCS#fK&d3d3*EyCqu@e7eXR6-(Ej z@ttyPV=wAcKXTbQ$Sn~Z-|G^58(gm3Z#c@>Tbg09{S7&$VsJdmqk$C(mS=EB6t@_D ziIxdtondPzT)O~HDVwqhd7`ePeZl)iF3LT*j}NyP-JhKE$(8W~nHuFIGrkn%@3cd) z_9EPqlm0G5`V?x?^IBOln{t-1ofn$3ReGo`;xPBmB>r6) z@NSp9nMg8ccbq-d1K|%|p$wMLz=Dxb&gABH-2p9I{V5Y?4~S4PXwMc)}G zws}lt*~f&>t*oVZhf6Mw&2JLDo=k7BBiB@5lxq+c8nS-0PX zG0%erX}_DV?i!~ljK2D7L(li^{F^HxZLr;pH!Am%lkwTpVB~JC0n^*h-H$4w7ph}? zLE|(?lH(EV*6{mMiTJx+&5LF^O#rEUo9*80#`Q8~@EyQ9*{-XqSJBVc63JsL3o7$%VQ z%lGn-jt6Vvr}RgKkBuRsn@M@l;&P)!!#}R(8PRB zIn2ha7fJF%Y#x)3L63ipAs*O6-pfXZ3OY(Wo7<((?{nPNbcWef$xrx&DB;giL}3M% z-IZ6v->!md+PYh#Lh|a8gK~DGPm|zE`vo82M#u_vp`%4XZv2!gwGUrZq$v(`)Er>*GxaZM4 zCP8e8Fp)_%Xt^!lsQJ@&BESPXb=E@l*DE07*uczGhf7%WgkERQfrZv&I!v347D`y_%mmR2}FuS{LwuHH5gCeg1NjbM`?%*G1;1Sh-16ySX??&v#RYR4@s@VyKXj zPC{H}tm253X~y}ymxr8|r3<+eb|X%8^nkU{8ta{T$;H!Bx^8WJ@cl1OxPe%C=tzR~ zok9-V{oNf+J$KFSw%w68ZRuB^>*N6ITm3EbX3P32TBoA6(D*@w>rx%;4h!T;2b ziKTps1ZfNX4~wSkvI3U>=j&|ae|76S8WeBb!?YQWEb4GRqGbFeH4R0{Zk;AjE?oZd zLo*0ic!T73Tmi;ibEe2R0(FcItg$!vG(888?)SKs#h-Ii z)fy8e_eJTuvitAp5CyL?eE?T)f@9FU$LYzRyVk}Ab@BSu7Gb|v*pmJ)%bW*{;EqmMV|N#4*=AiK;oT#BuV1$MiuE-(UC;6=Iny4aW=^tx$ZG!rfjeKIM#`u(Ii&gfAs0x|8=WI;A zCHv`rY+rJI`kwGafOvP&!=J$1CvZocX7F+6v(Pjp+#geB#3IiPpp->JPEf1oxr7>` z=?Nd%ux08yz9p$^zFNt!Xb?SS3Q4Asi3jUnc;oa;HQm3MTDznVFAjWbEt@mP^x|lu zQDh92-e&jqucs)j1iXadbTey?Nkda)0vr3RRVv<7A<-wY2_TC;ftFgx=alik0@XnE& zmRtwWiF2mMoRHJJ7wT`Lt3l57bfkN3ekN#F{;)M&yQQi@8;bGC->Ji}Us7|op{Cks z%clxm*lRA*Vooe4ZHV8adg++lfedPxjxKO`ZWVBIk@DI~W|DEc&Qo?lM6Yx1vkBrs ziD`SWH@NAFT5hpSedCunS8EpyHY)n)b^M6>P&N(72%KYuf2?Q*u>Nr=8IQCCtL%8i za&OJ_tfCH9)GS`9OYjb#|5A^L6+D?r8UqEyCeJP72KbkB4ib$UmFh?AS19JRz296U z-_&Fpm>0a{;-bK{UWgxh=j#gJ^?`iM{DWN*wrM{3Ex1GV-$jDaVr8Sma&;WZzT|nb z;D)$biBoTCQ~TUfKM^LDGm*JfU@F69K6FF8=pR_JRX3Ic;S8xO5X5!+A_qN`%In%iWk5V#ETI#7#-hd&k7?H5@yWWSvJB zV9{Fow6h*0xY^s(A9%miw$U0DFNV3B5oFY~W+iDyKdDeX|DOTi|98ZAf2klmyI;M| z*#{9t2uOZ2bqNF0y7pWeVW39@F-lTQtSZ;mI7c`F^UI~RIeD)5O_Pv4gtfB4M}M3I zv*mIdQK)n%-Q56R=s{XUBltiwx$ZnR_9KpY@<@QuHBs)F4KS^=8q$L)T|lmwtZ6gt z-cP!RvRlWjC~b=`%B4Ck-vRU+hcv%8I(7y0VVq$qp-$w)BN~l_9ng9X@m;19os9SE ze@SA^PynUT+hMYrfXaKXuuVMhvMJ&(MiTU4xbdhE zR&k{W!IW&*D&rH_ICkjU4(=wGb`~Gj?gYe~8xqC!WC#Iq5>&Ns!L^+c2@V!mt zuLhU-`4wSt=i~jNuqa1HN6-+A?Z{E-6EB>~N|}Kb@JF-THTjuc+i1M|RV32D?+wo; zHA;ok50820>%sb%R$Z=x2&-yX1pM5LM%RgpfgE-$OFNNXFqBGJ#JI7$C6{mw2f*pA zUL9UYaWP*_wpws~GxG70kl;(R8kDnMD&cOH(Vv<3TN85+8oL+b)Kjg7L!_`9K*&gS z_u?@}I`9vP3ngJ?<>OLW{k0=8tQ32_Fc&pOuGqKRk{;K)h>gH)QW#&^zea!D3SZK- z{>Mgbjom)=^)@lk_H#@tM(D%-i^qxYmG_cp7&8Y{zl@v$FW&!=3TJWZq194sWtryQ zC}))m5LaTNE|oTu<)nl{i! z7IlpabOv?o#HXEq$EH|$Z;;P8CYZ;sDbZZkPl5cu=$+Y;V^WXasgiapv( z+Dnv5hbbH1ZNmFX?AoKR#lus{ho~W5Ti2Q^D)%q zpv)Z=SqJg@g&4Wri#!OZZ-A2mQo>_A_^@zb|W&%Z2a6_y$#8x2-dK@ z%HnYzQqy=-LL`fYgUVF;r7H~CK38=>yte=olALMjnE=Q`)*%2MYluIqr2wb*~CRN3pl5&tQ^ zd?M>Hg(!D#2XEh*J!@BT^Yv6KrKM{bA*UUKxi}|npMargEhKSDD)Odm6qBi3SC_ZO zDB8fFhY(=qY(xtdNe~tj>-@ELwd{+$%$dznRt&%*TlZRD9eI{T>&?3nmVE7&8Gh^O zB0=%FezoeTjI7{uwu!@OpTPq+oQz?6eIF%mO@MLdzX5Z#3x3QInS*XS*B^n4uRdbL z3N;gISHAcHivq|~_0dj|@mjGJ;ruCC4sdA8E;uPt{bpNV8@X+VH3fS3i*fwA9bY^h}9D2_wEc74i0Yd<7nggDV?T^CxnZI?)_x z=?(GKef)+rlU4KDoGnD{S{Y;aF@c}AvnPbcL)Rt?pA0B?plRQa1ZYA zvDV)E;+(tr2gV$|x7J2`h9TSogKDG}r2P6GefJA@3;sa1{h7O$QgotA))y$GG_88? zV~TIm>vQd!=maCq%pvjRC#=dJ;>lpQA|wjqK|S&f0cL3dkvAP(Yj)R`Iks-=#p<{` zt6Y)bMZK;UYohHcJ{`>Jl0_MrWD0h$t0lH+PrR9U{}<^2(JiKTOi1{LuaVXMF0X3H z7h0-m>6dP=XLnE0f8sySU18zHmKJ$gb9m8yY4x;lr+*n$pEciDlPAS$(8ITt#i6|U zr$`~NBhI$GonJaU_0zlIJO+Fcz3pNm?hp)Gx>~7jR^~a}Lv!XX1D>d5zI28qeS8mpw%WY z!{sJFgR(fkxI68s`3bB$Eo^eem5iTqkY*wiLv-SKBiwgK9bDY`+OVuTig%aJtV)X`%*Sx z=CZZU_$Z*#^L)rB`X(mLxJJ(X=L+1eP>{!4k9{yWS}z zGQ^`z9V@h4O!oW^`6ctkyR2jRNjWwk!q()ZC7a7aAe5-`Z~v;lXJJcTIda{u8irT- zfjsmc!VjVl*y|J}mG_*!JOdqj($Xb6m$yE@(2nITl5GdM#uq&V!fQag^A0FGv7_V)MeZXL47kN>q&w&mxDyD++WhS4EiA!j zIlmo%h-CT+ko%#?ROU$N1kRaC?|9*TY41JUWAVKaRmkVg{VAe~(0fQ+Cx&2q@PQaH z(yt6~@S<(57UgNvV^A_MC*6jd)4pJ#Thla_+4_2riwyp_bNH;^P;TFA;)r z*jiiGw9;Nhf}MK-QP`kr>0Jj5;feoK#zDa$uN58R!ywWdp*4y1Ixf;#=cGcUw{F}Fx1@)JXP zUGk&{$J%8aaB7xEfi!is@mQxNOZeeI!_7FBM%+(0Ma;czmjMPLHH5H>fYd>xmr-Kf z=x#)709B0_;P0~7hwV-vT<6&oLs~<97}e-$CRy0ga2ehunq3J=xzM>?r4C!k{)~_( zP)xi;Q)tj;Mj)uk!75}a9txW#i!`cQj~bM2I}hX`t133rgKul?sC$l|NnHLcxm>?; zHa8~T2}t$k4uUj54*y#B5}0?&!kk<}=^C3^FBBfvDU4m>(qQOk78M-iJGOJ@;>(}nN>xRGepMb46omzl8i_U2@H%zz z21|cw4xOC2Lr=z02t2roJ6H0!`C+w!o#W8xbs(~OGDHR>mVC|uWNBR@)d z(Dfy~gT)nSsfrN9$WVwgG7d{~0vUZYjNVSEoJw3bO`oXm+}-;Y)yEX>f|qMKNNPcp zYnjubR`8#mwo6l;N;?)nvrk{t9CWa4v|2(>qCbeH(8r13{nu3^+i5xmkLu}?MQnqPnlSA&5V{Vkht*igB%nSu?MY6uZP|iX9?xu3|AW!O6=FZx%L(`vjm4^Ror(qJ}{!rgjJ<>~Hh{O|oZ@ z4Ex>b7q#U!gt%o+V;b*n6tkH}&u>kRlS2nR;X8eqBxr^Keu`0796MHo`}kC|mI_3P z0MZ0sN;hdr^xSXm{D$nb)ub`+8q9?|vThV4CD-z1r4GT2|ziWS=EbdFyl z#VT1>mAKIA2>Sr_HQpN3HVK{ab-@YX;Z5b7fO;$J{D%kYFkEDFV8` zc=`z_*8+b{4-3+}UE(9SvK&|XZO?jlI=!kYtB0C?)SBK2Zd?7W!{n*xu>Vpp@5}CH z-N839n_BNQO|c=cq>WXt6$$_Bf}OaXpRjerT38nhJSd7kn0xt^-!8X2P52b(MBF&S zWfIno^S$;4&Uuj0>IS71s8oqII@zuF(Gh63|G9-d(%Mu4?q}1YSp|e6oiNLEh zi8*>*(FFn#bDEiQZg;hY;vjPBup$q;3^H>aD}>rL#f)K(5sn$2>T5q`6Btp;mQjn zqI#s){{8#;u?7;)?OgGHQU)yDUz(Oyyr4AeCTvQ3BJQXZFE8RnQS(Fg3Zkvow;#S) z<%tx|LHC!7n-_?Z5J&iO`L&;f@Fuc6gC_h+GQPnGEfP;=l1~jwKYA?ehix$S^bv-kWSXyp2$9hHi2e<`ih zK^@DK$yn&W`or<3fE4x&>-myjYNq7cKB3~yN)t23|G`8l{@=VDT_*gfa7;7e^pE>> z3h>b=3u@vv`Mt6!4JvAeN=P2!*d6>LAQX`svP?qBgfnfm__$WzI=OoZ2L?>TMPOKe zq+%xH{qY*S_%z3$(7>jG-O*A}k+r;chMS~sv=-(BM!+E-M@6K0mb!d=4D55S5eyq0`|DnhUR zC+=8p5G7Km2%8VFFFQ$~7ln%?gaP%|JtQqoY*KD3T}WQ#@!IZ#9(gHV(NjjPLGLJD z5kS2x5n8OR#EBkh60vfC8rmGnHbqrL5pwI6Wa>77sfH0k^hrsq=?s0@DZ{M7n0h2Q zbd$WI>Git5lj{}!FP3Qm9GyXk8A?nCcd0MhH`8ZmB43Ou3IO`(Dx`=yR>waSz>A$s zfV-eK#vIr}2Y%r>^LXt{2v_?fSeJaPI7`FI^JAK=NuXN3s?aHiXiteXb;)3CB9wck z=PB+^^4W7FVm><$@-CN;fPmBVRQ0!2mFdz(5}x$eHZT{7Hxnu-<~N{HyDQm;dK!DYMh_5(3qzE3qm|9*Lbm?Rzc5a7^yf1RRb z^(Uk3R`TR(-Uq&IXoFAK4@rqE|J~^}JG9_7yQ^0HQejsjE4}Bcn(V7xHueH*JM5X6 zM;7V~8J?W+DLQDtJz}SpLsZHnP^TwhuK5t0l3LPCpQ?81qfmUBzaIm!r$WEmm zI9{R1vuiMRLVrF|B{#DcSjY!H*WI!FuAF({``adsBCBQ{8S(?P{-Fy)Ww*D^lG0t( zNU5v)_@{v6b=rpmuVX!Sm7V<`pzF+>OM#f|l5#CInGNbWU|Lp=5Q#m5l_Xa~GB{MT^=YQUvLkKrf!fY3qfWCm@ z0;pOOR#mC|EtBj+y+kR`-u1sA%MCZ3$$jb}NCqfI09ho~wekn}Ge}#Ye3i~Hy&196 zwEhV*%QItDxVcIkqcV9QkWw*mgFrMvJu&3mX;^(O=fU+fz$rkt?e$mbkWzmUZDR}A zXusgeR^`K;eb8MuL#hS?dE5(@_YUQ1ft-Jn+*2zE+x*Ek@fN?C3NZw84XLMtHn?^D z5kj>@sNi>RP|!APsTL{{jk7aHY#<3r#PA=>sBh+#&*6ww!J0`KzX*cU3_yOTP?50{ zhSUh5hI98^)dd_v1;{~msh9}X1wMh(vh4|HKm;eHUID5UF;2i4ObJ0fj5rgE1ROY3 z)``7|ik1%-%?P+R=T?k;&KIkVy1qz#z46R6h6{R5&Idq_vBI;(0y;_WnA);SdmcJe z^j1iF?ZLilG3OS;zc%2qz-ce7iNBcbkr&Ta1XX|%VitAd7>&eNP$?}Uu&jc)o)uiV ztp25NI6BqC^Dh2o(}%J67~?p^(`shXtr^9o4(|qJYuAN90xBl`uNHvw@K^Xf-2y^G zN^^Lii8wnIFPNy>kS%eOEmYn0>K` z4jnNog+MM_*{PPpr3Z}!01j4vlD`fPL08a21rvmRr3-QI&1R}wB+-_td2c!(7H;ov zq_F@yU)J!{;E$C;9HCwC;fd`6rn(s?r(PNP;-XjU?ggF45d|nX0noK9==X}bqxNs8 zm%urvxzHfj*t%bVPggL@r6Sx$kmK@_-|zP>k}P}zQYh{jc%ev7#-T_tQ@9xKH->=n zNQ_l^!xK}35@<#&VC_rXj&d^Ks=PuPsQ+Ct)(%V1BT=4ZQHf#W(wzXtRS5Q%&Hx!{ zL=At}kz==qh$)5aIPrx3b1}sly7qMWi#vYKhiC#{=n2(Z;^q+~Ba(!U<#zRXHt{e| zr8_1=ZJT>|p~@HyPR}QQ;M^I?b$@&QFiDEf7S(F#+2mBWfDv1<8}3#q-*lVTPzA%k znhgpT22T2Z>kSlE1W7X&%R;BJ;>JIl6MJ3XAkVNa)po2=t2iY~-yZYqXU7#x{Suk; z)SdNgc?0TSaffG2%KxHL%~v^#qQ3I(@}~9u~hsu zz$&plau5m$6?LE%p01WCWZ*6nDA|PV zN%_w#DPsPb^zId|mVU~O`0d?jqnKgfkm&jl1 zQehAAzVe;e;2c>YdDT{SJ{|F-F>z;^@`#ZaJ#!%!YXIMW${`$p4|PG#3-@y-A^-Bk!}*9qO({l^=gXh=w5;H_ zGeXb-tb5F>q;T5|c7l>>%Hy<|LJ~d`QYW4?SGDxknR1dvX9IHs#8MsKI;C)&*(F}V z{KA|W04JlB3^<+-NVHJn&{BzN_G+ko9v&@ojI{IrKm5L)U0EThcX;VTwQKO<34y)`>Mhf!1gm&LiO-RJxGA zNjS2Jol|oZ zmwF};7nNJXrOwX&yFv@7efi31b3!*+6h}-OX07WWu|;+5@L3>HgD0%7!V2sO>-hb7 zBQ*Xb%RH3Ns4_klW_5pab92`oQ6v-ZmsYq-xbd>s{U0fc*jo-;Jai+P}Y(sK2+C7&3^VddK@Wx=S5_;JQ z3LRq~nb-C1?pW?IWF;!splXv{bz^+=tN7qaA@X0K+t+pm76PZ$Dd3=WnOJvM+08pK z;jt`OAuP_7iL0uM8j)A5vf1##i&FJ7BlZbGnr4+U7TmV43?{lWqhLiJ=d@wGY>n54o( zx5Z9my^+V5QWXc3pb7jeJ?b$U?phXm;WDStK#q+nZ1f&r`Cf)Bfhky*3wGxmCUi0A z8$#p@`U0qqJ#e$aV0bgZdhT^q+sTuGdo;E4hsUa;NLNUoqYR^Sq44FLfM=T{#J|`n7Sn zN>*k!diD71%Bset8czZkJ+QB$iom*V&sbAFhE4(_7TWVN3F#QdGwE3S&=6;6%bn;8 zD`{#aUuw!cl;U*ddunzgpf3f>p+(Uh4!`6Z=WBS+spyb~#~qALipU?SAk)=zZ#Rq< zqW|UiEp+0SHPbxbCf}osUOL;C75gfcl~8q#NCG`#thX+f{5UH6(NnWg)){H#Z2hmF zpQOBlihXmWrN8Lzyy!?o7@f|Fg&&9RVcW_dl}K(~NMH@WmEVgG*5%I?$7=+yEfI(u z-F!0kTJB2?TSaCY#6+)kB&J^Cdj0ho_Q{w=V0dcaA0kW<#CWHOaD3Kc_tLaO3OuJ) z$s7G7R_l#)2l2`k?p&ag86;Tg@d^$xY%C}nJpyxskUGn@yT58iC(&msHx0(%JN1N- z1@Cu^=DF~`tckbRutp~nuJSmt;p^yo`>h$^E(y>YxgTbr^9$ZZz&uoRvr@=-JGMp8 z&3)v35BGws_(+t~e6MtPq~$JQn3Rp=TM;5Xns@ zCOyr(OrkdRHe8?l(Wk0Dn*Y}>h=`}3NmOpJmL||Bu8Xo8n9f1FAJ^zST`)rg-OCV9 zKYXeFve$8a0W3i}W>puaSW$DLYsvclUv;_WSyh8nyRo>V#+Znxw9{#ajlV9p)1CPK z(0sVXcwoJuL=CnX$%n*`wTDZSe;+#BY7DbX3O92-IQ_kDsS!>W z)`Asotw2fb!oJxC#|3XG)O+V+_>T__p3GD&`OoL7EV7GoV4{bri2lOwL# zgVQ%Q84a@D#`@@FU*6a~aAWjOiz;iL1r5!~JusX+UU=`l!FC2O?*V!@KnrSv6>1f)i19PoOP~9e5iTwN!zY~S zreu33+zLGX^GzhLi>!%pN(nV>WCN}7B3~ri#Y9mx4Ql2Pqbi>JyMwfJ#%F}0E%lzF z1Yxl6yo!IMG%6xAsK(FJ``}~}&qCk9;uTL9V9I8nyLG@f#_g_af>5ifnz;2vWeaQV zIG2m)Z+X(F$}(2BPTOvt>>s4YJF~bHG1-0IOAgr0ZIGHmz1DI$sWpv&T@J+3_)d>3 zdVZT{-61}-0(eRL6G|fg(ZfT49RSEN}IjN^-t4 z2FpIy`>))L_-N_1?LDjb7u4i1q?2;<6A(ar5>sXO<^vC(?Wi>m%}ja>#*4JjVAHd; zG{bRY{MFHT8%gO#dkg*`Ty1F6Gh~Au8y~6wg?4{A03e$9635%vjRzPdy^(FtHm~T} zGBEDQI3uiS4PF0!n8E6d1m}T+722}Cu|io!!(8)_p2lXS$7Bm`a#E1>jc16WKZQSt zxndLlocbv7H6w0l`+xZ7oKqxd%W*G78Bxt1Bs#%gF9^_5iEF>(^a$IG!d~l?R87QW z*{V8bKHrhJSJAIqdZEhThz!;88Sx-CBUGq2cO}yw@OT(sSh1NR?@hV}@&RuC%h^~luClv}_Rq4v0s0ZnbN~hk~ z3eI%#Lr?vx+XVg#_WG*&-l({C(vKszrf{&b((1?r_yRNYd%BN)5Fq%CrGH_nMpD{$ z+TYbge%vzg%iILieEY1!54>%rPm|IwWBS}W{)Y6RZZ~Af)w*9-T-l2`#smA;#pgy- zZpcPBtbt#k{Y6?Qix$>@%)&XS!-|sh?+8VJAVsWID|M#&b3wzZ=p@Mm2IPg6%#Wo# z>ZU?n;it0Cpy=}Zm_Ica5GnqD2L4(2=(ksTKvEMjnDAi^ku?;{Xuv~3JLlA&zLWpk zojF?4U-!TU=4f)NFR@^qH70C0Q@&R%P_%0>7M&_g{2eX5%iy2Xsd(1pWINNisyy3> zHC=LZ=$2us0#JjP!Kc=OjfYG06JvczNNhnV1-7{CUjR7KD{;qMam>9JXqP~-iCGhB z`zZV5+jEu2rmV7nq!MX^k`*);Id4c8y)2+UZ$zCc4a}HwD{qS^^b9T?JmCIlMDss} z>I{QE&saU88yL~HZ7GePO?M4#;y7PMzFm)yD{sjP4mw~s2W8}ubUR%lI5_<-C#qK@UA zSDD~ga6J^C?CbD=mXdfWLV`;86{}X~PK`Qv&kI1>If!sArF&T*Ju+{atZ-H(^my;o z#jFQUQ-@DdKm4O!i7Y`k8h*v;K z0I-;;4@;lCTS}2T!3gOok!_N(kLmt|Luwh1J7)uZ5(?@4B|n4k?ZL)j*CA`Yr~4wG zI@~mC*&wCH0^f}~(QrlYZ0wM5WRR`~uY*b&2Vp6E$zOFvh^=7@c`|^sjAW^pUgw&7 zw9Z8}MTG=KG~^kR&CER`0JDvwShZK2q%39&70*Eo^q0#>S$p}jO~li;pse08-|vu? zYe|fj`Uf_e;4#hS#`GIed3T}u8s6wBoOaXBp|E`1=W*j>9Jt*zOZ%ZSVw?EUTIT)U z1n$GhYN;P$6w+B{SRiNjoz?ak6ZQyJ_QgmJiMA#%NF~)!){S#GPJfPen-9b_*`#G~ zW(B@oL9pCQP)-ap&0-tH)PTI%F9iGh$KT(>H8{_H8Z$`y<10i~SykDV%+9>slj}Q& z7i6=JDgK!{EJ60}aOOHY=!G(WmO^S7e;mV&cSqFo`l`>kp77inBERqW-nx0ELv|YH ztLFQ|zs(G9BIe0s`}*#!YaJn%uxiGVPc=C3g|v`%|7f(?SDc5{Z2m<@uwa~S6OuVK zTP?(``~1=7Nl4bw&Qh+`1MR@P+Y-A#bH2WW(vMySjeJs)*E{EQrLZzOrBisLChI#} z8cPy+;??|qSh`fa%?Tc)2gW&bM>GB1ZMiY@*XQ@*zpG0Zeotn?i%)=$I3!<@9o(f@N1p!?t$#pyuxKlGbh; zx`t3olH+|(q?U9e?sQEh%+Jwc_M%%|g8^6o(hylmCk~SKPXPLF4KW_bc18)aet){0 zQ?7g7GAIJMmZs^`$f`Tbv?!@8|IqY$Ie)Ilj6(a#_5v>`e)?zB*Pbkd$TESOBIrD} zrUjTYuI4bf;^d=P@V1A<^+{zyE(h3q*A=olE1EXQE4=Q?!@1wxt6u146d#q#B;rBScjL!#oc69l)W`Al@#*njH z1aMU$Tp!*s^1Zkgv?w)%W6sQEz>|S}=W~^E>%5~r(c+y$9p%|m(crgPXk5%cR zS?rd36S&{xQbAWQ&fd?()6CN~x{gcZ*uaSI(#~&I9$DuT%t81)t4;!Ll-^+mT#s3p z-1eLM&|h^Ed{8%j6m;-tSH2>xW|5a9d>27qWD39uv08rLG|MJ5hr>8vNLQr`F==0= z(dZC?pr7>vkRQlN#U|E+?=TCv(md(Auq!5Zm*DQ8z+?#E>BxHEVNkNDjA(< z=s%9dYuyH%b=>hR*gPIo$~2X-iz%Bh%Q869;4t$AUO_#}Qh}Xado*0fI8A`$QfTvv zrRt=1H<->g53P*qsI1~k@uCIJnT7ULp6+M?n*pa3-EtOu7r}y`gznY4F#EH!GmR6p^tB1uoAuh zp!;AK3!LW13AdW6wi7=;W&Js{hW|)5vM8(DfR}?Tb71$bOzmRZlC!Z7g2a(SkmF@T zH-?*%0TI<}kHfq0Cu!ZShjWg57RP1xlu|QXt$abFi=f~l5QU!oUu$-}3jk~QAnHd@N+*BAf0@JH??1mmpykN#JDV@e8Ol-Q$Q z?=ZOiAsWqu9mL+AW{DJ1IS2$Fhjk~4CIjJ|0PfwKA)jFX?xsBuPGpkd4BPUl3|Y^} zO=(>k*%Aqhwp|O1#R5OjP)YJO)`$1XFb_1j7raB5!m+3vlFL$l+yaaB z^2X%Rz#-!@O_1ab8?W(7MWiZTwT-i8Y1P}4mQ&yp4uXz2BY z0pX4a67vE2rRZG028ww0h_y=iOp)|@5b`5|1#ne^h1s3IRM*|HW^0Z&z6tW4>3CbE z;Eot3;{2T|fP!lcfE-u9dVnysPh2~;sVLt*ebq1(hicHzR7^>pkUwp4f_)^KIEuz3 zM<8oi{_l>5c1J_V`S>G-A$=i24P)=iXD8Y{Emm8>97ztifz6p{-R<+OYz2cFK!3>A z%4V*8bR>5&>=vCE8j3tUncCsHEJ;P*3_(-+($eARd??Zqw`6I6^@G%W?~&R7xY37| z%(sbtO-VD=#TeoV!K~k)HsQ2u6`y4!;OTm<8MV^WrCrYw7$oIlOx7L=?blZ-FP5p) zPKYBDuF;;CP2LG_#wUSc>5x*Cq_u^kqblTaXZWMuWw`>ShGh&O>5z0hUL(D{vIW1e z++DlZDk(-;uQiuIPViegsJ-W2z<6g|^Ss-MH)!$62P-C0-&Qr*^|pXJK|KMfs6x2D z0d)E6Ar90a(7al1nml||RB6@7>wXt6il#oHD5e^`*0EgI6ngZvhTEts&MK*CoMq^C z=t@fVn?h*!^OmlBp?>O<@^U^t6xI6Q^~m@%WW@Wu%dYo~VIsSDB#k%Bdr+Sm_v6h- zERQH0aU!()Y&fg$nIFb~8?A`Pi&EMDxi0bDKjBVb1v%ld??vENuqELrX_y!rhiWl9 z+YANgq7=LR(l6~&yO{;{ zjmF+)H24v6lT4Jc=g%8*mP(;D-VsZu6Tpq8c+F1uZuHHLuJ&u)ZL)ORY68;7KxG9F(N$`K} zeRd)a7k?6QXR~$=`d{6@?EmTh9=_LRHA-1P&|7&6VVt6&Lo$DLGjQG#Em;9h8OLD# zY0Xm!$8;`U3zU)0G!j#54LpPwITjL*kk9V@0&8b@7b@j{5OW82dYhci?)gqkz$p(P z)?rfvJd`efXqd?c1o|i9E423PX_O84A**w}UgW->WvJq`rH(3O7(;(*6+|7@o`b7} z0fcHL{`IhTru$r!LgE2EmFn@3gwp&>zie6bQp71DT1GXhQxTi|%+$9l8-;9Mmw+2X z3G}O`2=WBZkRSepH4DiKBav5BOWCUK(a+S;C1{yIK+TTAtVLf{rta$;()39SyX7LW zYUAAZ_iQ=BL71AICn646S*0u;DyGb2zrjF2pNQccn}DRQq9?tJN>aGOrJWtc8p=dp z=f97@U&jpbo}5Sw2)hV|rAbcX9wB@4$GGF?$J>s2*d>kt-V)}1e7ylj42q&>{~ zjeEbcJm5MyITkZk^ApEo!_&nM)2qi1zW<8QS2{MOA#O!X)fge=6&Fz2&5ZCeZCQ0? z0ld|0me|jw-tfkJ;QignjU9w6sM(^z-?A!F@^Z|zn6=<;GAx;<+)EL$SZdH0gim~z@H&2GLAU~ECk!&n{jNi z;M7O?j2B7WO8YkX`rbxl3EUn1&o}RD8bwUrchaw1&*RPN^E=+MTN;n3!@t zcU)T^f_QCkZ7L0Y_iRV*vU*dgRUy=OqdW>V-xpqEm3~oe1-85~a90}wSzBxpo<4W# z=@~rjQLYX7G5aD{{BX;^;rRD_M`9&T`9Bi>zO7in$Nt;*FGjnKZF?kKedFs-Qk!sq zR2TFB|K2&qJ|5 z&Y|lu&3wW}$;YW+q2j>G-CiF~BQnq56SK!KY(RSYH-7*hy9U9gGF2r;-9d~?D$S<+RFhfzcMi?ew`YKVZ-Lmi(QKA9!d+*za zXugyhC}xVO5uEa5VYo89b!g@QKCDAa(h?DdnaT%|Q!YVtLFL8^A#=`wBagU&xbAnF zTvr|6n5p(q6C|tr&Iy?ioc@c)-929B$rWZR;b70Z-jbmvWxJ+HUAWMv+yg`sI937w zEV0ae@=-lkvAK5!%ffC>BPP5VL%E8_+{i?*aFIUj%WjHCPvJ!byGoMB74QZvKq~lZ zYjtpNIg0(C;`wk~gsC9~74l~0eW%m2N*oS)c?Xq0x38=dm(`dJS{p{;CUuGVB?8n<=|ODXbv~UmPYTj zA90{N>h^4>h*_umGGl~@;ZKwX+XYLolaC5nH_D#0o>S7@4VwB_$$^7 z8Eww3CVi}>lz=Y2>x4~ZDisj&!GBWz!(D9xl7?rAbF)I&VNUJge}v?U z=6b6j@{Eyba$QY#tmuoq2WF$BjSovY)_)Woz-@$H`` zd7_0x=^t0m1cIWZryh+~=8`?x(=2`HChUNM9E#gj6-6t=?ydV9#8yNh|4CkI&6sLM< zcq#TdsyCikdcWFzvNCZCI*KV=SWRnja;AIEKJ4mU{G6e6Ql6^mYu#dT7k)OD&aKHn ze|y_8)&4_@&2@e9@DG!G^^T4z0{+_Jnp>R1B;Kk5Q+%5Y6WU}hr{5n3{^Poexdre7 zDw1h_kVkCb5y|k>daF3?WZ?;#+gLkEZN2VuN1&R*4vJQ($o~p^Q*;0KpxcX59p30bI0Qu0^#`n_3R5A+#0N}yU(il0M0Eb+%;x1D{ zMs_+!Hr-f9vv&z8luPmLo-^Zp*}51 z3DPV_>H~PsZx>mw7*ZJ37voA@l{7hy^~}^*DfhXfF)p&j=XjF`u=9(A(X`PtTso<` z@)9n*h+Q0~;g*qRk150lfEtLHB$)3r%C%8Lapg}K(e<%$<$%G`cow-? z6|^1iU-z2SyhjvD44G!9^lj06tb0=wo4fOxW8#V^XstsT8CQ;wehQCt#Bn~*vz9CU z^sMj;{ zqxC@U@)LVIk$kXO1J5JZZXoNQP@w|Yq7{&jm-cv=>O1Dgzfcy(lobx-&5 z1>%8b*oLzr=Jfj9>-Ze=qeL>P3T9o@l{g1u5(6qD6%Dod@9(4qJy%CVpn7ZHwZ&|4 zu}U%=BzXp>BsUL3)<2%@TD2>db=(-~``1p1C^@aZrQ85N6#QvD*lz zM~=3OVGGN3_mQfFtALM|v&!4C6D(^F4^R5LcT~N@k!Pa@ykDg|c_uN(9y(udNk0;8 zNTXpkx|oC;2t4(yvW2xxE5X3aNpP($?H>=}-W=Z%@{93D*BV3I z9fv{vN|b)95mMJT=0Hfo+{Uxf$SWz$6@lAudnj9CR5}l@X0tDHn<$S_`U#2x#e}cg zAt8_8me5Jpuat2c!bYpA@^kg9C1}~dJ{RhV51h=m0U33`D}A@4ePt>u<#vB#{nWP6 zqnrP>kcPSZ!>4Z2Z`LF9^?8yqd)|ik^tW%Y5Z>|YS%0T$O5A?-_3!8M5Y`;!1_mub zT7sefN7kSDzh@qVhw*JykLtHL<$cmLsstV(;>TMc9#XKR)K{Ub_Vb^tkK-(ZMNiY?_uE>W8G6gj zzI_iQsHhJ!6G{MlH6R8u-Q0=NAlhBZgR-?&=@K6h;lkg{osy_IAh97_m4l$QUPqjh9+mloxgj%ETSYR;nnaQe6kS&Tq(yNYfv+Cy=$v_ zYuZM0O(GRFO7-cuFJ0!}?3I^^p<16eUcFhR?M>mx z4^Mp#OAV}?LxktiW=7B_;YrjSZrRz${9A7!ZQVRAw`Ynv`yaf=c3(1`k5hKL%@Xa4 zKMIaCd(pn0_+4YVFHDQ3T!_Mj`>dA@cn8K zWuWV|n#Rt5@PBS{{n`B{qn_3pRPxE7F&`x-CqkXdX&W(xr=aD{s**pP94IZB*uJmo z4#b#YFcfHfJ&C&fxnM-IyTm)G^|h`xJqP@|PDDzm83>|pvIOr~J~@)rcVO|Duj$6* zp>yr8yOOkuOHT?7x{9?*=I3eNnUYdVvc;s!RxdG3HJk&D*8E2i&2a+V*KV4kxoJxV zPMP(9oAxZrnAl0slavIH-ywz?sGwK(v`N^jIK4i0~ms>cz zV3L^BOsEAZJkY34bj7>N(obCcsX781JrUm`50IS>Q6peY#vc;cA7yB%Sm zpyyA%FU-+Qy>gczLg4TC5KUd9#twT~9>D~l4_XaJ83RMIC91=IBT_3FqK|=;-dAWz z#3o;;7$BEUo^`mGt|g;F#Y)IleR(e8p)+J~9j{CuLZ+FW6+m0_ow`353lPPop*_q#`Y#;XZ<-YL8L_5A4*A}grN>x1y41OG|3sD+_B8gp9% zmZu3{{emf4;pOtG!9dtjrFNTbA@A2Ezghwi(};Xkvl9Ea&)7*yV*X^bv4#e_v!_DJ znihJvGpzUlq14X#MD@4UaIKaLnWDu+5iyXaGZR&T+bNc4RrkuJ^T0kPi!bceKP?re z`^-m$WUDxMcz0Owkm}bVC>^y`SgddfT(`n0AEMNBiX8A8O59GyMU{r%@_e;9&IHoT z10)8J-K}rUMA4p&Fd9p8t(D}(-Ae>ye5ic9T#OCDvY@whjN5JP^y*A zYKart1p7W^800He^VDWuUC%J6@w=?!e7dg-Pd2*wYy-03es!Qkr=%(Pr*=EH-rYFQ zVAl+MW+7_NhS3j6W!Qj}S=n{gc)dyPko~KY``(`5x^Yqf*{(7l$MN32J5LhrioN%@ zc+ob@73`t^=05xwbDpp37b$=8(-6->tseIbYPiAc(ymuBh!Y1v!_M=8as`PRldHDH zHTDEr$C1eEIUb84=b**ytAh>qFH!hw_xQS66|=?2hq`!7S6PlegY;UXJ9bU_e_lbJ z=BIpb-`%=*Pyhd2{`PpR-wNwB-?Q+n)j2xYI)EaPUeB)iBdQ`D;&`l>36eERf!rMBc%Hjk zA!Z=Djie=4yrIzEJ zI)glD$P}=Jz?7qKYiNLMi|ZpeS_goS(6T08nC0W(?Pc6dE^j)CCR98273#TxbHn03 z<*-(d^qNIcD6a2Z`jvPrEYak^V5-j}mkz756Lot*G)qwD;jn`kdfbJ{OLG~<4)iVm z25S3zE5^i}`7rpBSmUsrS&_49A}yZ5_@D*NSFf1-^52~z=R{D{FdF;?Y$WewD;H2h zX}G6ZCRU@y3g{BMzbGHL;O&@zV$wa$i#=kr4Oq-f42Hg4nJewM_0q`*jueTBM-RF&^&{ZrwBA#S*}?z)rz zIqyh;stJ2Iss&U#_g;x3lo~Br*h=AjgC>0o{0GI_C=Gdye9V+^cu~8Sw68c`PJ^G7 zO_EB2g-T8fjz2{xD;OGbiqgd;QcO?n>G4Lz#q&)|mH%ZjDbEd&vE>ebCLs%SdTN74 zH+~q)P3Ihx4Q9LgdE?p;-rG1;V<^qqT~iHhjmUC!zU!t>r-O|qe*cbpzRwG$VSmKK zOQZd&HsKe3lOYM(y0eDZJi6=ECE*ir0Ksbokgb9&e^~$3F7klDQYyVgLflN;#H}8E zw7Ws7Z}ud0Swh4s-%zCc4&nbt)LXbk6}9c#LrI4qDKT_+Nq47oO6SnsAkrPuEhRN{ zcSx5YGoW+~;?UiEJkR^SzwbZT$FYyS*4pccn* z_MBVCYB#d3H)zPj)2ypuvC$Fz3SqDX(?cMp*eD~|JbGuoXmy60tuWyeZKX`R_r%#W z^+pkW$ON87ip3vkGjSYRuWIs3}B$N`JG1Uo`GzX+O06ESI2>RT}+uZ+z3Dz8TQ zdf87oT-=62W>Ge#Lv^Tw3A{sB^{FKvN=Ng(i-fq zQ)j3Ap3;>=0ZsO2h6oY{GZXiQM+f?ah4X~_O(5IlY6&P`OHNTX!L`}DuOp7#IodbuM4k~GK)O*}gmoD)BV zX}JjAE0YI}V~Tr;Ehci!ldDO-wm(rlI&KYPzb!5%)R)FHv_atQ8pRkw))_r_{K%)S zR_qjHdIH1xzTND2|K~dU+@F%8!AJ^B0KhL+I4#qanyNdl8U5p^8+g}KaRO*~4|Em+ zAmc7zgr6n9cqu(7tAv%UrAaYt3L)qL22-fvO&G^R;R9zCx>tVR7lW{cKBto1RJMBc zi;QmArWmCoqC2UTm7(mtslIT{tj*!5JmBeyx^fj@TX+cd$KDo1wpPY}Z`yS5tlXwkrD}4CE~+#R`e(XMdbCGEdXGV5lbkYU-NG2=+d}f5$oFwNH4e5(U|R z6r`J?&z`z;O@eIZE2o5$PN6q^s#=U|G!my)$Plk|fB&*lQU8K^5o}%XPo`r}*(pDd z1eM1Ot=2GVC2L=Y8qP4$G@YT0NeDoKP4Z|ul>-qnzkL*%=Vv(l*<_vXRL|BSZQF9zG3vo9R{)B*Y6L4DP5Nu}JP1Q@)PC5Cxg3jEk;T z*Q=4W=c};81OEQ4+<9C(H>KD%u{4*GJ(+HA4Yk8Nxu%&&2mbSk_qyn-_6f~F24ilE z{*ueOiinbSdXQDLHOm}VTBUE1xv$Xu?Wvu1oceuxN_Dv}IjPwNJeKXR{Sy`-=_Z6! z<5)zbp>j>}#PQnrVmZV`;EbJZRtL`q@Wc6pDz7|J3k%;Iczv9u1EpC*E78)RRlh9u z#3bmPS;Bnsk;H_ey=YXxjdsa#?=s#jtl``h5=|2a4%&`KdDdykWmzdz??S|!9ts#e9Fs(Xi3Y3;w9O_^J!7; zYBVqjAit(}q|jk;e|!Mk3)?1;uq%hu3bXGIkEl4HRI%IbT>f!&4iK4LfZos+MSexX zV%NYws{+W?O+no1aP$FWPXMpTjO6%iRVB-Az^3wKX|cq}@-9P~qf}F|q895`pBjP^ zpvMwPGhEdguV(_NLL5_~RP^|SR$@?B6mI@r@cR$dO_*3956if9Awnd+sHw$C8VSs3 zfDM8BOOukB7jA}P<|{MWI-+$mai+65zU;-ALD%}_@;V^K-PlFmvN(ME&ELAZrGwQP zr?6e64pZO+JbNy;r~1KM?O5y%XKF2?hPd`4x}sf3)cB-BXo9yG?raJofb+uLQWObX z`r4b7fZx6z;Q1L1Jp5aSgQzN;k7)e2V(2dfK$<&fLLKj2Y)))=%d4KChMJysIn%vr z^F@)!T0$CJF|3&TE&>b4k^{m`k>aSqr^OFJm{$`o?>VAg9c5Myp(oT=+*ee^ENTB5 zXXr9BSwk~6Vhw4~jl#4Z29chS?4|wvgF@P-=Rl{jvu-<$J%og=WoUl1418b-ORDtp zJ6hP%sGXx%`N$E|@9;Lm>!0PJc)s+dce>9}-RCYNwj8m#h~u~8G|)7jzc{(fwA?39 zYeRN+7$Zy;RP|~sNTv|6c{2zRTXkyBj7mexkr|!%$CM>3Wf;v9UlSx3=4mmnF6M!##%ps!G=Vk2B(- zAtA~e>mfT&c>cS}Ds}sF1>&4S1UtMnJc$y`uOU2AV{PA()lNw_*V;w*{eQj({SVQc z2VSc@sFz#53oG`WcD+K9*>Kt>QNuu-k>8!7&!t7Zz~>HF zYle*{(rx;Vmb|W>5LnSV8mqeD>M{0a-q-Z->F&SGPT~KBbQYyqtd{CD!;2$n97PIS zu%z&TyrX}rt02;qA_cg&G1w^NIdwViE=OmV6`j!4YFZj_AFo%A`Tl~yrSc~u%-t(W^nLP*{6w(}Zs%|4M7GQz{OOI-zIgnS zDB3xS$GgUWpva}Kxu5*Bv6!`bWN6?l4KB6aupc!I~4iaF0AKti9~pfi5{y?Q%$&_fjEJK1X%t{JhP0p1srG#szDE=w=?FZy&_VWpgM zd;D16mxxIQuO!74$ruj9@e4O5TKD`s6t_%QSV%aZavK$X8B`wjM`LL zU>{@GxY)zME~u|^MSq-{Hpg?FdcWXgNA;B^nDw51XWE)TuPybX&!$i(priR!#vB-$ zcp+_BHYBV6FZW5)zz*66e-@ti94xbTW)XMBV@4Bx`Wov0yk;Ons9H#BG(|rttiS5t zd;hy4(Az4Dn~FVc<)?mzmj0~!y=mr`OP%vi1SvV_Vekf;gNR3wN^R?PqpnAMJC!Tr znW+?gm|kScYirkGF4K$&MnK1REbdO78KHer2vhUqhv0=~dD4f+b0OF;?;Kam2?l;_ zD`=JVe%WdIDZx|5l5`FmTqn{T_hIi@p{?OInu~eRD6IgqYnD>ShX(TEs|8;n!dM0N zwmJ_%Wbv@NCBX#i%R33a2gSHpG(yf z0SmGF;})~;cW-K+)}qX42~k8S)(m(BD8bbVJ;qnbQ&=|xP$OJ$odY%yP5$cB>2Fig zfZYO78Yti#1>O_L9eKO5puEksUH;+J6(!JUR>!sQkuR0h-^BX#L$uSN?#)WTrv41K zSRFLTBpz7@@6dBartlc3G;q0T39*-QrsBQ5gPI{tA1J@iF{4hNwOLXu_P&E7l(#x3 zI`Dp)y%m0N%x}o~SYRau&Mcnz<&HipA10%sH{Z`15!RXRwBc$MGr-Pf|K~~J>*4%A zd-k;k7>@ui3kZ9`qZVFSe7P=Za%()8k1maJ$?%vfVuq*=7SRCs0qT_e$ijMK-N+;z zrpP#_;Gk8w}jb9{@ee*&<&;Oi#asjF!}K1!!9 z+tI0X>Q($B5t{hype7>SpeF5AO+CGbpXQDh#*%|gx?4nNG?4gRYG^&2sRP{AOw)1j zCPz?j*=ZGj!LyuIpbXV8H~GRV!X&q#;|Qq6B0M@v7;L4%^nj5NN8Z~*pFCvyP)pcy z_kpGq;2m>@Y+2mx^GMOaCe)6#G}A#V1|Q*|oyMGTZeiS=ZWN^LkG+MragecSZwFU{=lf@vBTh?^Dg%E{cdv90gL z$5~sK!cYNC&{_t+SXXDDK5YvvwRbJ*U?7Cmt|wZMBs$k)4u$uv#-dMqaH#14M@KG{X zPy%B&^$a!L>$bjZXOQ{1TIZvZ-5WQhW+=qe|3hD8hI>_tI5hP87>dWY127V_WSRa`@bz)L!kB4g;0@O@mhT(ZZ7Cu36&^<0;Ttw?cH` zd)^SRkc!t8*eALLEeqzJMp@&=xBjbZo&uERUihiA-!tS(Ein>=^zI_Rl`aJXb3_I` zz7a>>JK))d@~O+`izW>vZjv(|M&&qcHY6z!2)#)vs?Wa~Z>7cxpdJyLk=W_qA>V7w z!}w50{V>e2zJDRP@K4Cimh;~e-abRb&)ngyiQz}48zWn_*)jB);LA-5Q-4z$w!y2r z(yO(iQ0t4X!ky#BlR{!}s$I1Qr4VDbN^cg;XjW^xnK*5zm)U=h{Tprn$LkHzAZ4c* z-4puXpn3tYPmUJ*}FR> z(fmXO5NcL3l8}&6MMW@3JZQZxA;LfEN93!kup^BLCbbtsptBvmJoiTe9Nn@3dw%t* z)!>b|e%DnWNUL0X{wfX#gf{C*#4rKb#>sA~fpKXQw68a4exXt|dZKSopL(K~Z8 zQa-z*NajhWv0)C8VI%ZU58C!7L}=qXTE$DK)u@^p6u^x>5vn0NI`ze^a?W{9etFpUqj=evE^&nsb6-`a98#MaP@ zl@nO^ca)lyc9M4YP~aaSj;`ls@2HENR6uS;=?Q~QlRWe0t!VK}I-k`{2~E`wzY0%p z$WvzK9P94syRtkf)D_=nl!g#NI6D{ry~T8ap=aV-$U;S6dHn{pQj#_(m+10)v|~6I zTI@tZ%K#dTau|=XT^HY>40#^YhhHyc=!?CL|HAvRAK3KNxz#Vws+;tuYboU zc(&qC5|?Q_<*iGU|7Poz%hPkGvygfhZlB|<@9S)1EI7^Wan}@rgYs){oRWzxgLm^2 z1F2R0eEXUA*Xtt=LLE~?Mz~xpvQiq23 zwSB@LK}6B|0=vQe(b!TVUEW+Jnw*GSMARi7UM`C^_dkg)M zMv2f1l|}HM$L@A+(OIw}&`|ozBRniz&8NxDJ!R`KXvlVFJUtUWXT<%+G_|PEEF4X~ z%?Y;JEJ;%fdi3bDoJbM5w<^N&j{RVD{MP+vVL#tZxY@D)9Bu}QM3=vdet)3W2w8WQ zVJMV-bhz-`qO!Y1R*$riGczB)mik|a&+h;I`hQN7Rd%D^gkG`oK%+)Y1lc5MaQ!Df zhb`Rv6DP?ukyNQ)b9vEN03G!M1x@AzRkmBC(ePBs%er~88EUcSXV>oq^ArxvZ3T2f zz_ScLJIg$@E1v#%plx51M%b zqJ3eOMgAsYY}1J2pHp6`fvL!Jp}wIe&2Qa14JKQ$J*ee3uYt0IGN{J}>>(^)=FP56 z@l@8#GUTS}mZ{Qpbr~hufj*r^Tna|`H&Si%>60}W5pNNfy3MbfN^K@VYjmI4LB78A ze{&^XBc&42qKZz)11u0!&4Yr8WW}L%pwK7SH!z&TZb2#Xd3m(HX zyVPJzcw^{DVurFZOYO~-%G+dF;n4P$JIsZsX9pt7SwM(cVKkw?8~GSKjX&%@O->Dnd|w&W1ns8bAJs zgtiuhhycIeK!5l+f zekwR=yiOTWjP+8Ld${4@d^*T}g+dZ61M2{DjD;L+04?*8mNIyoRS!0v2A7Yes#n?* za<6_7`VIuZ4Zne&zEUr0+;9Y5hE(()3qFG_PbPD?m_AHpV4}6@t&P`kSxMNF+J4ES zo7xYD7!WeB#H}if4O8zzgY7!PCW&^&EAyG{`iZA?MOp9X{NDt~KmBDWxmwvbI8nR~+wuF;7d_1oVl2cD z$OuNYEtZOCL%$g|5vJuKmXz0BCdz&@4UfGkz4YwJ`=89%dl_SXpEmrJ@}Xn3RU?wL zKRW-tC5{o+0y!wS0VSF^uxH%v?dV9_D*$FHvux;ia_s=ei#XD{Wu)c}BDf1R3o^3!n0Vm`sL|Ok1&RBv~z`A1+Qd;EtQ`{ zzP{W@V^Hr!Exx?I$un`e(l<&@DlT3yB^pbJ51t_*2KSeC(6aQysUNF}Z0EG$OXL6|POv zKj4QCR!1Y2Hh_8c8%#N@8fF*bnaq*4?haY`>CPyHLg7F$v*tUjXtJfAJ$(4&t1|o z`sEPgyslL?>dO4L$Fc4wlhq(WeEd*-209I??K?xYK@_cj>w-#!WnTRoqtD_^8#-n7 zx`GbcOs+k&P<|Z!8;6_prtQ054VAj`cY&jK-Zw zJ5@J{W_~Nq0PmY3h;e9aKeI*;c%i+&zj13C+w=a_)?qK95%@pJz3+ED*Coza`M7S) zUjM@XTCJjX0yS!~tOqwRV{(cbUF^-;_KB=jxi|smHysRNe@OTxJU>tlscFvBa;MSx zQ%E(hgrMM>Q*Qi5q6PGz$4_?|OS8a!V5wrdLCz}!dFK6jpzInh{^~W4g`WWKQ=NLn zO24UG4m3iA5!u+Q2IWu+5xL#BHEUYvKiYxU~jRAO{#U#e*35|^`6w~DBTU-}rV24>q>&l8m8w%70#H-EZ^&HHK`H|?h1CyWqN41) zYe1vHxput)SH-fmnURDVxcLn^^om(cM2hidu{lhrrAIk+?#t^^^L_7chu9n7%O`c^ zd9Wp|rPW<`rr!RiR~vvcuR5kf<@n#&)~UZ8fkUcb-{WTg-(_#UF(?UCrO-jWV>~z> zJy+MqBIIZ5^uSp#200GO~J7SSFxb#@M6Y6qoCI7 zxfIMDVR&#x#cF6{6dP6xr3@^H>cTpW5?cGkVO8TYHdKFC$|jk#QLUOU0?(B84?A3L zqtuJIsS;mW&?N&yL8*{5gE|-`ttndZy@-${)!z#C&yR&a1k7d@rZ#%Y;9yLs)s&Uo z5Hs2eUQTl;LxC2N&a(aBS2laKewt9EmhUs~bG(5sxpO;cajjeY!-=-Ffkq4{;CYy!=@0i!7T?^Y;{2Yle?=}pnY7XW znzY-DW8YmMM^nA^b52<&VN>Rh->O3Cw`Pa999io6usmL+sXk>y0uBFXtmTV@H+K=6 z&2RX3A-u5Um(yskj$gGDfxhMoY}eP6cjhP0XRe;&m{JnlRF}B1J15tXLMI$=DXHDF zM57f@Z@L;87!oL8} zQh%TeOO`~gy~KZDpMFy-=>G^j<`#ks9yFnrR|QT9ugGm)3zI|nTQ4-pZ}Kp?ZKUzf ze;vi}Vh(Zs%)2}kvTvFo0>|-3(2r#mG~K~QzWLK!ip81Qe#9L$<_GGOaa4_RxqGPVIa_`Vhx<=!GqW`kcc!O zF1v-{zrb?nCpfi#xgYwd@>&Wpp7~m^1#(^o*meoUhvb%ifA8iKC69TU+eeoM5t>My z*HqcI#<=@3ZJf3bUW>b-@Exth8Qw;~I;!)+Ba2Y zk|v$tv5r@bxER=^R>-8t z_*T4LmFA_Cd{M~U0pklyJN)9V47TtTq(7%|k zp?xG8L)J{gMsRLjD?b~Om9M3Orgi))tXBciomh+`o<5DWwcB&=cNt=&9O*Mj0l8+j zvL|O)dV>S^#A}6u#h6v_a7AiWTH-QA0#(aXUH%4a>By1`1a6>ITMIXv|Y!Y+s}-Y2Ud z3uYGCQy2pg36Dud<(1hM? z7T&d0-|UL7qGc@VMDn^aBMY)R=08eM|HMlpYVnsoatQ>y7EDVaW*}H_gkc*LKW>? zW<`;R=>s-2W!LaoRUdXWMe|hoauurna%=X2>FM~5VMkra7mTuxxnD=!lVCFtl1*|= z{n5IJ(;K_bJ&9NE;hT!rS5hm{(TPAG_k}2%jZ=(@Xo0xtBL-bh*jgyQDmi8~kj@AD45V|#2H6HKUq+XlYIZ``9 z?#?h_rLU3$9ZPO9Z?Li*Aipz>#=LHpunnb&Zx9Et0XtpalGYPj6w^&%w&p~Yq zDEhlNXJO;cx4}Hf5eQ_FOj*q?LpPUKr6`h^MBW-4T9`j`rLgM5gg{3e)SO1o&wEAv z6+t}!)vL^8QNh%-%-0UK?1y;`UPjPo_BbBNE*t6TQ=>RMKiMb`mZ&NTO|AzT<#=9Gx=QNp9{LKP+ew&+J!P0!M_X`L!wSMm9yNhwAwyxx>l_RBX>l8kzEC^V{~1g|14Z>V!)44VKfXcmTof%B~;VwLV^o-ljLyxc3(kv^T3ooDA9#<6eZ{QnkMtR^X5yq5IkGd9m& ztvRtzBX+sGBYSmm);8yc{X=m{uj=PENZk%!RZ3jraHGXW!#;`1tJU5no&{@k3%{m( zSry72$Yv!@FJ?lwbR<4XJei8+q1&_%be%0HlCFa#9odsIf{z}X{vO)ECg2^HCZB#p z*yYH^xs-7Sx@W&HtzkW-3GO*s$oJg-wG_qFOoZ>ZKF9C9bRA^x5{1LIK&l0ba+>&l z_A|#0=?R?^dA2dH5nQNo*o_bom*<(mQBLb_ccCDeP7Qo#5?yzZmR2CTt@HxuCYJ&M8+ifzErsy z9nIyml|;bo+%jeW5|hlaLNA8Sn~t%>KY9mc4GQ1dG=)!n=O{(ak@Dcojk?q}FONAN zsX6^c)3H!AJ8KT3!njUY^ez=W`n%2kH_H2e01!fGN9>sfb}N9UFC^6Mp+Vmh+^W|u zECmLB!l#~JYTEJapL<>bttYP4CVBJZ?E%7UuYWR8AY-M!i;ky;wvtaG;1Rkwn3$ze z11>20823*qJt=n82YjfI?5P!uI2nJS;UoTJM#u%IfBuN{)`41{aPvV^CXHGQN?>gc zU^cRG=*{8H6cDfMuFA|HIH_ZawfMW8USeLegf*a#G*VDxk+S)Ox=D~w`W}`&N5*T* zOp8#kDQ2lA=MN}ZJV=qBVpG&IHeJLzttOP+tn;=*KIq`4vPeXk7Fx7rPjtV?&HRnb zeci%OtvcHp@1NbQ-(M2jPdMzwcedjNO+biox{WM@}* zQl)nQ;_e1@&ZhWyTm;oNb{OA7Lz9g^cBSIY`nRv_B)ATb7wq1NyNIW^UK%I$#_Ooe zh|3#q-?7)|LsmTmUcF={JR9qN8i=(rt6qYH`6{Es+j#)!c;Sj;t0hhjZJmEZcVYgy zuymHdT;96n)Qn(}z&N_~9tMe>n0N0|2w7$)p}X-%C5C}@1fPvxF2Yt9Ip9TiFF!E;)NqjUS^v?iv=%R!xH(cdY~IVl&76!mmnhtyZ=o+zVhNs?J{r82JT9VNa=}2s^ zFn6g?du^QHHoV! zMOsdF>u;Y)@IzeZQh8_c8qBjceWgdtdM=4z;ZyU5_e|0Un^89l9-IWvs}|KCj=4Cl zfxEZ)nHv7N5}b=6p%__LgEn7zW>YVovc*FSxm~U?E`H^^94sqwOlgiAsOW|N>-;WV zytNv;Af7Kc85^-k=Whg|52FrCFviW^^T=RiN7r8`CZBe#gdtZ2CB&XYO z=bjg+FQ-h!QvBnWr##QmZ|+oy1|euk%T^$j_%P|v({yaH>TT{Pg_54_V0`nNNM+*; z(f<;_7ko(%|Ksd5%*A!0I!+^Gmla>_CopCY7GL%*B7FQu!-#P<$k|C)W`CfYUQfs; ziNS8Ejldu7i?D@mZoOI^HcrR37eGp+%$uHTZGRS+03KPILrZZC)5J4Gt0RibpX1xd z2p5hYVcOw_8YUq`rkF@>V4vP%pZk9RP@*!FFMzpFA^=_pu~{O!xW%6+5Ddb0Z<4K2 z+Uxr%Zi7>m!@9YXtgO0^0mR3_;xY)?$v^*&ie8SWYPt;3P7(R{lBWshOOhv^bho_4 z1z}a~nHdeh{$@rlB~1OKlI&y9fz2Asr*qVFp~{f7EbtUq@bgtI4CIy>k=zBN$D+kE zZU#>-x6q(nKLz2C&hwPfH-(uedC67upJ(a{skmW4vb=3V2G?p?ZiKNH&7OPqFD`ZQ zvGIyjMuBAbf_oM?jlAxQlAyn*WE|NRVi7q!Yg^Z1WJvem6snjx6Rq4USv~wiBjR`- zOR5Yqss7_wL_PMbnLCoE_JB_f@>yQuCX1J(Ll@Cf)$Jx!h<3FNu}=B>gMV}N-jBm} zCq;{Zb7Av4{DkRp!hMFhXda`1^t`R$MLTOe>F@k*<3V|JHC0J?L;ijQ*(OSx)$yQ? zuQEitVki+RL)ub(YV+34t7+a6kMflU%{vd`%2?jxF5FRogoh@c>m@old`W_xkv>f! zBy`WiB$>U>L=#E=IPFdlS(Kze>GBBW_f{l{4iFD(QRhUg0~jlJ<8$NLf+yN~cBc;o z45jSQr{cx?x2|)*y3^_}>Wfi1AAUL|8zkAW=UXv0^B_M!jzbEkQmdg4t&HHtn(wI3 zeG8QA24Uh?c);=Rn4<)eT}}D?9AlpxBJ1n43tdsEZ=@$Npc*Dc?Qw~~A$)ZsMv<7W zBHCFHURl?d#(2;HS^Q=>yh_CeA=S>T)tk_>IPfmkTliJlx+g4yM$hBF^P7QmQNl#p z#i_}qHUJ|5jK>6)_+Uzlo~mcR^H~><33J1yhBNjTFu50gv!%ObCEam|l2&Wnr7TjH zAOq8;&oWG&@gt8$2sHYkcPO=9?=jFMWNTs@DWnq3+>LYhN30cfRuT;ympnY!)h=g^ znyJWXH}xS9oAlI)TPcHMzwk$tmjMUkP6BsG&!*_E<3W(6>52$L+i4_mRzkdGt$X4De^qb0F*-blO=!tj&{|wrF9PKL zc3M0h>u6n~9#Sc?_D-*5O@y=>jI zO?F&xLXAdYS6D*O1%CNkQTc_EaoR03wC_FTj&GJk+BG*vkvsVF+#vAJ6EZW0plor zLOnYM^OtG1g8(>AZZjYLVKm?Z(%!W@p5O5lHbfZI3u;_q(TH@HuT-K4ilZs-QuW_KwJ!w)$cmNIHjY&uTu{n4KfI^ z(+WeP7KqQ%HK?!aCL~(x)ogSzFyPK+ zV84@6rlvC!@?$D&u(^;SBMzUbcDT|k3!zKm1zXVkxEf44w7jK1qSXWWRt~V( zSQBo4upqwkOmF@CWSkeJe@_GRRtNI59~a{6Gt}AAgV66vAJ`-0;-8%OH8eCpqxvX~ zJQFEAq(qD`bH6j)bjY;UMTqLuG>PUlz#6zuVDvryfSe151ZKyNs*iqXPm_#AAEBon z`-5cL>AZMKYI`Y5HkZS~Ea8V!zwJ@)SqXYktEh&sREK<*rE)+D?yj`2+s^D**D2zm ztDTFqg#P%ROJD>tT2t#Q8qY}g7EvT}cSg_VH>Gb$?fm(Qp#VmX1XVVZH3;dgcvZ2Z z!OSDjWN+3ubeDDU*lbZg_HGJ zyi5?v$7sJv!-N%1iTcF`k_tl4>Ta5g>{0;W)&psN2;09D$oMfjQ7Y9D z?M=g+No-;UQ>u^8Ok1XHX;Ck|2)nRe~pv^-2vCyMOhvef8foTE6a{g@K1 zt$^?GWR$mlgL`%UJc)^&)ArmYH}7Cr(#rC-W23E`3>x)ZX;K!1$dcObkF1`o-=zKs zcsQcn+aph#$)^z%C-xF_UFo(hY-`EDpeQ1pZC2Lm4beHx=9@_Qkh6AK8FxKtanh%2=(15GWoC9U=TWa>x+(0Vt1##%0T+@zzIs8^ZIfRWLCz$>_tA7}CkgtUPz= zB~Mb|O?{cZj@e^Z0mFgSe4NcX7nEHjt>Ow+l81PjxCl(QrtLdI);e04qjogZMl3un zajQVaBFJi~1=!W0lViaa<@0BzPe4*yMUi%!gy3@?xy3XUwM5Ydi1}lTMuN3%3Nj9wIRsbimH%d%VUdn>QM8N6oGltV)qShWyVT=>Fg*Q8u%$Ar;0E z2%Z4>!kl%%3(uO=CpUnru^sL{`0Rmb^=``Q`|fJ^JsW3evP#(o;9Av*FkUBV;7D!*#YhXx6>hhd#py0V@Raas5V(4Dpv0g@ zZ)!a4dX3_NoEOfpPQm;_aDsjtyrYHzsmr73t!U0S!wt-zUIQ5m@q#>>KZ?=TosXDQXRtaND9dJ|S${3L{K-LFXJJj5oUiDbU+q&v|zz zi!+`H#g@mTnG9ay{&NV+fkT(bP2FG)^7{viS8aK1xn3^&N67Y}QM3Zuxo-2^>P0|_ zBC@H(oZpT1*V8T4i{6i(*Lk(s>#PMM6b;aJaVjT20C$wPpFoIU>{yAEc6@{ zsrp&PgVvclLfYr9r+Nt>#=G(-712NbBL~}e$k+Ox=|VFf6-0bGk#j2EFa=R6f-Km| z5yb-0Td8h9)vpBJ7$#>~6R9gGM&NR5(YlHl;b!$FB>^GG$QhZ7#wZVe4^J~QP@#SRy*DYSUzzXc*> zt09`>$aj614P`_NQ5+K@_4KCDdMfF5T09noUDkh8;=6vXP`C^e z7h*fHZ5C4+C4m(vfints`8Zs-U1%zNH+V983n@r-E#Q3wtrsVsJ!9fs+HI*+;^y;( zFW=$sp`YA*fT6y(2GNHcg+xle57ZZHdMUCoX*sFU?l1UhHQ@?84nn|~<)Fb3ib|wi z&CY9yjF0#|*`C)fow+gs56zPy)lS?XW1oqI>-Kg&>t319UY4A^3M^AY3)B4*$~F7^ z*9IyQUh%#be^iL~qUo%nj14yYEux%~m~0vGr5s|Zq(oaS^`oPZ<~^h@BgN$*ht=wg zbB#fxU6&A_=D55dRp${Wek+YDmtS35w&|q%b3~oq8#8G(smpR_zPv?nN6r!+=7Ir+!5QCJx?Y!Vl z-D+0QqphRc@ zhFrXdQ+}&=8LbrX=BrdMq-@@JI4OXAtMzfz@6EwulhV}^53}5F{!pdR+beWnh?)wT7Q)#(roLXJh-3c_ z3_C;gaX7+nr$RZNg6|?LzYcIiFUBs9;IB6OOgjPv^hXk9y6dxNp%ER{v>h{!2cx#| zYJ|{5Y%S=pzmT$7Uv1|s_Y-1lpy5}5?HfU4I+>Od)+%vHyjg(Lc$>=v#P_If71|OC zJ;KXIBmId%HlYLLT}8w9!fN7GPh)8Yh!iSW`-?&6Y3j(rF5ce!tyU365Fdl|?NS;| zoFGl5+y6u|;MwZp(c5eYeXO?&X&Z?|FC2AvxKBM!=?lcPh8r+Sc5{5c;SS68ouE}Yih!K4H^{JTMeB8=O~^)tNNYJ$3FPrdU>1XXT>-P| z;UXC47>VJP2znOeLgzivtLPB=K1TM!p1C{AYzzONWPK*J3+?PYh!%XQ_~cB0dyH+P zB?Sm9pNLoS#hP4Jm2@gqBeq|5*n{g;30qHUC(%YVj*}O)*HTe6;e~e&1R6E2N?iR^ zHSAhOe7viL3UuF2r^%;N@4S)RUj*D-n=Vuly0)%d8WtMvyKTuWe52%}W3bjS-0r=4 zCb9Zu8q_nZ)s|Cvm?=}-mCd@>yB$Id8GI6nZXs_A93P`YYvZvJZRb~|U!43BtSPQW zSI&BlMdP-2Pk(`FsvNk>j88^gghmNcE238SO}DAC=K^~#O#P+^cV2Z`B&WG(D16V- z5jFjzD|@WNgmcHX6(k6sh=WXGh3((V~dg5j;iZz;J5jMzU-CEnnA|tsXrJ4^0 zJ3#_IB0cIXgo^o#{~uLv;TL7pwrkJOr8Gznt#nE^A`Q|E-NGQ<4U$qLU4nGiz(|M0 z&>$cTNH<7HH++20yPtRe_W!Wvo^@U8IFEBtzc_Z*Mk!rxS`H!XxN#OmZ~}DCZ-@I| z9uz4?I9)n>4nspN#_g6+@gND&q7$Et$$R{@*ZOaaPsH|}FphCgLGEv-;e4HjP6iM} z_k6|r&+rd5$z;D=eWZnF!1m6Bg;iG}C!>BNlyj=c`NH}Wn3 ze^Y(^8pBI};X5kkKjGrmZ(jO)`I;m$Uh1RMK{gw@i#}aW;Fs;DuKtgFZM z$t{`pUu}q?)((>%NA(O(56d`^E5h&0S zxSDj1j3XKzQGOk*ixez)09t6|+w{XkVRTF?K!QLT>^|mq<_FY4b{Z|*zx-mnf z^DROs^5ZC=P8;#*V4pkqx(`YP@c1U#MbiFK27|!CuodN{S#TxDJKZIUwtKx6s$rkW zl?Q%vUisW9Gaeh!6^|~C@NsN`^^sv>90d6HGZR3V zSpW?38w}FmSG*mW7VQXZFD2eQetBK3M$Nw}asPPIx?@6cWto`(So-?Lw!ffi<291m zcw{#GC1n$CCVc$OCh9G&FUEINjM5NoWMd8e_c#@;`~q3_EpyFMGoj}@zegMCz52A* zlRA>)3N5riD(v5+2XvUPkd<^_Ae>`)I^XhBtjw*((;oTbxcF2TmAvtK#Rc+U5HDJA z76%ug;DL5gYE|p;^|iv-I4{#i7zYv=O)o?->eKC)Lw^*XW~0LTEzDz!os_fp`sU$N z_80nYD(J|If?4P3x1-t1n4;@13pbOUvd>_6fW>3_l{Vg@w0CD&bnrf?wciemOC!3Z{TE+OI6JrgLxR%e22}h%t zcOM67`EzyNh4)P*@m&@cI)h(5-`{TPYlCcmp%2jlCL|q&&Opv`utfjyIIsU(K?~#BGoqbw+?e z1H*BdO*BZFpVP_mDurn)+P&?rhtvhNveH^@1~u318#yJukq7*5k6HJEAJ5;=>kjdm zCigJ;U}ev$)&ze8$=%Mm6UJ1SqK!Ay*Jd2~ zic9i(8I~)rdhETGZS?qpHfMaml6U8BiF3wY!NVfBQj(x=(6gVONyF``m<`nKd3ZNS zODBU6TKe3M;Z~-T%g0yR!)0=S$$^232Sn z&y8D%c(oOx(X}s7b63Ds%p!h^vxfPuAt(?=u9E)B=zvn4yb6d+H6GV{6L_mt(!N=? zbB2CazvvSGQzSD~k6m|(w)?c(d@zPL5Pa=t6QL)+^r7v%-Jtk6)-a+XDsc7tcU4Oc z9`MfmJFwn+66XE!ZvR`T!O}A-YPz?325N`f9 z9`fMZEDes*pC1DpdUv;z={2ya2#*O@_7CB;+w$e|c_U0H`R(RQYD9}m$N2l67&)sn za9p*25-_`h0N@iw!=%8JYd1CG!WP!Jr==iA;6ov(fYPTm+36C@J7Hn(QDc?ItAg3^ z4Oq5h#OCct^qLc#MNJ;-OQ5GzOEMnFJa@d56W^ww*IcrxSy01-(_S6%JY#A}Vl-BY zPfA=pOw>NRCw{rTvDeFlFCBvT2A7SKdQ6&g!{t>1e&>5}&AVS^;sD>in<-lNO?6^x zZ;X^vjBjg{Vs>M&*ykc(wLY44xS9PT^is%a3n4mXyD(F{(5zun@1H~w@s&&DcIGW_bY^bsi)f6vi~KpbYQU=s%Y{x1!XO+$Wc z^_+yVMGF)(Xq6c~&Q6jgSk@3O_M zHOSr))rd_x3v<7Eb&7bWdftDme=C%AWs08gKr2r+Z(&t2&M4H15W<|LnE&Ng zy&eu(Ac}H5nuwTADpp_ZKl%t_Bkw59Ip$4OM zNV&Or*?5yfra_E86Ovt8TKYSO-sJ3=BNImNQ)x2qRUC_UT>8_0o|Q(>`SgT(6*U;DNQwdKr^A(;$CzCl>8jPSpx~P=6+Vji7#WYkX=R=)tdDVq``A|}E@ZbP|K?qiye7Nv$5r&3}p4?3$^-PVg2(*fno$62ONx4C2^rH#RX zFS=`Ix(zH%2-U0$+hDvQL|=&e@H0}g*pcX~%06&CrBDp*7=h7H2rk}Lh-Ecv+UYMQ z37D~Px{MiNfhb8Y(!9-bSoQt$)P+nTw!KY*|%r&Vm6zUZ*tlA1`i^ZEdb z&st#(L(3rylzjdhf&F)R@K1b{glm$(U$VXS>jpihe_jT--ULuZfj+4XMfkdyMr^6B z0iI_q94)!q=$Sp*Zo~Y1gg~I+_;oa;!3M8~SGK`;hE&yN6n6};=rixs*XZE}($x&_ zzKcssR-0Au$+lGNHuN=r(pd%t#%Uux_mlq?fKyl^D5KabaxqY2F#T86yD*<^o|9)6 ze4dLdMDO~W6Z4u>r*kG0+*p2!SaCiru_1&=MjOl!+S}Uy#{I`Q0+Yov<)i%-zqc*P zXzLFq$`8S$l7QGaZZESSK|20y9b!o z4uc}!RjDuUI(1UGMktubTKK#cZl_xHR94jwS~Bf$+=ZsMGHw$57S4mA`%329J1bkM zA}^5cEP{U@MNOmEP%NFsR&eG2_zfYX?MAElL^Wv}n;WRTN94)}*KcoWsHULw?&Q(- z;Z|{=(VXevdvE6Oq>lb&eq>KXi=XYw>}`$x28UNw;(bG3^M2|RHVod;K+g;#u}*Tm6Tg`pI};I4Jiy%1 zc)~l_7-JMbGvuD{it3f&qVn&rFWZHg{SU?PUym6WsvV-)3`0>z{vSjt1EX}tzQ zfbD4@-kQ3YWa;=O3b(`%LQa1>Vl>z4eoOS0%COB4-zmrb<5JP+^phB{%eIOl=k6PP z6rAs<$1mwC!Crr2>r(;TCJDY>!Q8p@F9}NXmB1j&-tvU{&mME6dka58i&Uq)R#;o6 z);ZP$E02jc`{p{|Ao(Z~C~T_--h8*$XhoCT2I`TI117;aoC-< zgj-XqWyuyzL4$GuFigdq8*8+mqZ%(n>=V;ncyrb5WE3sdLzFrvG8e)`tWBLf<(`0F z5Q{UI(%T}bvEtvtcI8@wFq0YxtwlLpb^H3TVX*w-Sb%MnQsq{{30Of9_vBP*KWk&w zVb0FUc32CwCG~)c^?si&Sgp+)tJW!j+g-6+xVj6k*V1Tw)?&yM!rLk5$NK5^-X4gB zzRR14Zf$+m^G7BF4qmxQw_{w!FW(8u>msS@I$HePNQ66Ibv8~ue?C%6JFCoISF(17TZ3=ixK#$A)!1op4AMc zL6kx^r_V5CvF6Kt={CCdkIEHLZcJqmR1G}|@%T}L_P~@C^k1aE93E;Isj3YtbR85C zi}-A`VfUvJiwQImeASgOCV3deFx6n~(b_CGSKI_Al=;>Q#w!_iug;jO7uyk2%v8Kz z>e(zu)-P*ic%bCl^LnwA{@_4t9|iLDt#7hk&`^1}v{v;(t9w;tsZ&F1R#wYU&Y+o33cv8gFwg1*1y)!Ao)JeJaax_Dh}M`O;BqWr99++~YI0__u?2 z>CW8ebV=|4Q-z$`qavbosv*;l!0G&g81@@oceQkk365ct(| zq?SKzrpTBjG%31`w%E0y-B~g!T3M30krTq1zcWSZ?-|WOj_{fQK|RNe>HY6JsKJ zankm+yYJ_$e)<^ToSd7N`ZY&z<2X(imqSPD@G7T2=j&|7%pDUQgZFX!lTCk+Ij6{i zxLD$Vgj?}C%(BKOfd`rN9wJ|9E?|*m0bt`%jkYCa+bHtJ9Dha20_^2a@K-w4%7jtzmLw< zGvt&QkCKN33x`9>(M(6e$;eG|;G#iym%}UBAUc+xyteKyc_-f;A1-{|$DhWsgx9WU z)#oVO{|%RNskv2{tE9`Msl{gCA^l0IjMmn1%+eoYOFj{aAyACS={@!2} zsGAu^VKZ5%<>i4o>;c$WUr^XhN2dObFOq~fVs%{za*FW*jPVhz_4{cDckyE$;MyU1 zJ*!*RP;T2{T$t6pDX?7T-J2~z!8XyQ3^1o9 z4U^4q)-AcsYSw-6b~*l=!lLt;hKe#57N2mjdOat$xFIzK2paN z>VO7i()T?L46oV(q2_mB>;B`@-V5LnSTB_V2~9-XOSOg&3eBh0tOAd|Qp9wemibrC z8g7KZ{}@uu`wl}ru~R6%Gk>_8z-w>q{)=GyAvGPWf}WWvy5Wu!#al2VlQeRV3FsB$gaOMpMGeP>5QyPm}OLZt;IkyceD`NCviu_<2$wXqp(==*^Bwz}434xPfADmkc?YHtN|1o%+a36BE2sN$dO{S{ zgx0Wl<|*&s)Uvj^X1oeW#OR{T5ojZ=o1(YVlR3S;LUY=(Rs}ZnrN?rpYcft>n03ZIAs{RR{;Tp@$#^h85SPB0|7p1L3lqczsoTp|*CjlmLtA$3 z(vC=7&a6fJ3Y!UQ!0s7ZH2h;fDlEZ$_*J=re#4D3Wr*EcXZ_fBt7X?oNL9M_>lim= zv)ft^EI|*>;bt+wVPo|d zW>k{ljt+VZ?{Wtz^4isUq`p4)=q!5L&Y69qp71{mbm{+^5E^8ag*`2ZH^V>-k8p1( zj8Vlh4=eQOtIV$&YqE}H8d9b3el!rj3A^w5dkhugB>*+fQWQ|+MYm-4i{RjuP87$x zsu~n;nbF$dYi2>fC*t%)pbKJM4HVvl4Z?R>Hu>Ws#>K4Y@my-isjT?Y=dSCKxR0p2 zQdjLC>n_1}d?wVm-ey&hf1j)^6cOPX+P>rStK#iC|L60Yh9PAxi|UzpO?`Xpj`}d$ z7*e0?{)Vv4ad$}brP4=7^zVVFuD927z`u5TwZS(buf|d0(h+Vy)NW7r-J4Bl|5)9g zpNh=*n_#Eg17H1Ky73Rxi+N!{`YTvH>I#3*gTmc;wA#>Bmn0*^4koac$_({rLBl(( z7h$>-g)Nr^P@o`~F4m%9BJK;}PFGojE#2nSm2wXLzaHMpo`wxZ|MeiW61xjgZMl$id7VOnr2Rww` z5r)xc3b8l1nd6nD?R0--EdUKxF@st>H~;%_^Z{jQq)^_H0jecp5~=kXXJb=n9@l$hChwD2qko zbF{q-*B1^F9jglunN^S&RN>C$h*I%DLM>BlLX`7(JhY~gE7PvzYIh@<-WGbD;EUJf zwlqPZKlAq%-|$@twFbfv(XTb0qui%^?%VasJ4h{Ro4|0B(^a7T6(t`|M0(0>VB>3* zOI{e}%CHFIv38AxJwuJ_##GW?3`Ev!w7EuhMs5}G6fTyVYj=`kBjLudjvB288 zRO)VtQDB39b;i{>y0mz+;M$K?uyu&YAOP)et(k^>Fq$GtyJ=SkY6@^6q_8I9JMbD! zK1o68iynM`W_0Y=A~E1zRLQKXqxf0hQJm<_$wC0cN-KJ&l4AG;eQY*GaC}&JM1$L` zfchQKW#$%l6uUBltD^PMo>W2zWXTWhL2@;{eK>8>$R~l`2S1*w^ffPmCds?ky!@j@ z$TjSB#eWafy;RLSey*@9HL@Gzg8X!JYv8vwf?1O3jxbW@G(t&&5&A&9n@$P8<0sA^z&wr)iSa zWcCttMWq+fSBbX=4e4(~7Z^nh%Ci~6)fN~TODDi*tnE=(^xVZqb08$esuA?g^%t=; zM6?J$>{I&zT1ddQASW1M%a+}B-x_*ed_MMSu|kFT_2q&yL3u%RhQtyrGhZua1<&M| zYtJpkg5$w?1l-VhR^|u{!O!+#w+bL2tv*_x27N@NM^WvF9R4ucOw98&As>0yV*QPI zBkpq^{(v07t>K}<7^`XeC}nm;x1y!gTqfOt9xp!$ndyt%-jjPUX_OT`FLKbSYOQ^hIEv)J(3j6!h)*?hS7JCArBG%c(@vP z^h^1#JcD6PUzb2uNf^}@Nw6Cn zbmf2BK|k6VXw}g;s9=1Q>K-<6m*u)0ktRKu6tlc|W@;xK6`r{mf08}Q@vTZ1EdB9Y zl7H)u#XOPtj?be3_cstfi{MI+;jeQ1Oh%6-9BI%0ERPVM_lq?qU`MjipBb5*(iy2A zHX|=y&$-)5B4wq7V&f3D=3pD$-9Rd!F1vgmzdsduZC!#m19{j;$qN z+?6C)v5m`A>5?)OQk6WDqz^@wBMosa(+-gGW}nMC3V*E;gWb|Ew5evfGE%KAPX#(; zSN{n9wb+#$U1xs*ltQ0qMD9FyyyKbwu!Vg3zsc$U4iNUKq?&!Gl3-`gz#w02>B6_m zQO)Kbs^Q01`Oa?4z_!hPEpl7e7vv^`sZ0#U4nQ&1?$j7JG?TPN9{Xq{P+Qj0*}ju) zx?TcB3yAL?jT2tIM_JP=0oX zkW*1I@ay%fGzoDyE+OtR)gQEV#Z1E1K?cZ!drMN&UmANj4ax&aRZgZR%X%V)PVEy?grK`?8~tG zYpLo`Hj=Ey@B;((OFYd(^@T>?On!x1cj2?;4@_`}1rcCNPM-V`;DMY~OJ|0O3ub{tHk5`E7(Mu=!XhI(`#7rb4tfuXKxA z^PBw;zZKjtevJg`HS*7T!_e>P7I=fw$1gPBbG^eJsJ;i<11{QqW}sQlUS{a0R5E`L zC2e@666Sd+U^~Alnab6_D8@gorEhpE_1qZ$HyQgG=~7T&a=z!UpXISTMBny&fmE2C zRjG+mbt7$PR4^piR^>*m&IM~QbMhQ&@_j^yD^$UC3v-A8l6EGI3C`Y8uX`E4BHw`} zOW^9U?VBZ`c-b?Ckb=#?fSnqlBhOX__Sun{g36Iv^Db_P6$Q;*zRGKc6bF-|SQ!FE z$Xe@@!)2-|0MYJeh7ETw2vA{S8BHd8$9tR7(oQ|rD2|mxTO92+xVeQGkErANx-|p} zZ10HD_3z8HC}1Q-zg&KWp!--+l zj`N*=pe5 zbgVV70X^FcBvOGtRK;!Y>*O_@iBl=q2=RQIReYifHANS99w@5gcJuSytoZEI_PX@+ zmVzb7`LVpiB}V71&i7ZIR)hxE(z;UZhYSVnR1r)o+&Mcrq_!@Sb^7fJ$R*j_Mwjgo zbO_qsCx643KK-f0B{ zkj;^Hg*)DXJXYt4pOU=rS>^N_fB&V}FwkkO_y-+rO}vQKocyk(?EBBROzh(SwXL#z z=m7Ak>M@2~+B;)|vYFKa=Jri*mtgyMXlN+ z4U^LZJag}1aK;2F6qBxuFVgx4xaCo9K$rJnk|WwR472I?fB9T+%>#5K583K;0!lSB zE`4U_o(8d&#&#dlrX@~(B-5+5&%b==^Q1>b@dIokyA1aAv~U5a0ZV{umQvoxnJeiR zyQN%nR!1GSpa-AA$g1y{t4*Q5v#LIJ@#F6Ezy-|@dix#cg53t&}OM~Camn^j4TrRps>?`p%uRQZgyOBws=&2pQg!`>SA znyiD@mU_C%w)0?)ZNMeY4P4+?T-S>z#JR(KxV#ynTo)Vo!-$g=_)$grpQRrv4}b7z zy{F(3i}Qu&U2We%k@F%?*%0O@$uTv_bxdob^IMZ^h2)JBzYJ zCi`=^>LYv4QDkO`1Sn)VzJ8PFGu!y|vPIj4GWypUx3=|m&MX9?>}1f?iI?mO0}nJt z8fu*4C7becuRvNN1^wCzk7rEZ0UFOAT2aWz_e3kT^`pM0M` z9u9MDZBTEucF_I(x8}n1i>(r~($-Pkegih+q#wqjIyjvvr-S{FaGpm=&A=(M>+A&# z{uW45l-jv}TA>@wjAzMVVZixz?_VpvibGiA-$`>V_K`8iT)j0}nv+g|8@9~r+-syA zc@wKZ^shJ(zGN8OW}>T&RK+Rlv%GJZBX3lkTF>k9MxCT^fxjoPC*6bVMj-|NVZU;7 z-yqWg;Ul(oP&X>JB+T|z*zq@p=M^?F!hd_&R-_ZgdOr0p%llR+>^$%}_xQ4uP0`0k z;rA$UIA2r-+XNBVN{6xKmE9M3nN^3c$-edLnG8(Mh1OGUVY++&6rv4UKMutoaMgXb z@gp4M?xlfy4G;F3wT4=Vpo#s=NsEP_|->4)emY-Xq~*x}k8|(?1~g%Ky?H=wVtw%eA@EXFXg=(G|~YgE|2Ac^Rc^jE-}5 zETMa(3Q7i>ssW1G@9!4;b12r9#{)0cJdZ11;TGdUTTxSY=u*@43=6WtEME%)pZGEEk59Wj+vCaPK(ibhJ~~7|&net(7sRFBA7tneB)7bJ%HaOJE!VAjisG`bRP7pyumEBJ z!k6FkK(;Na+mdW2Gt&|jve?llkFb1vYl~(2a*q=Cub@uLBt{HG9 z(@Gjz5>MGr@?ESTzT2mIsUl<|4e0#{<0{eWN57f0I|HXpha3DF_s-`7JXxgH5=jKi z0-@O*p*O0{(nT<1YKo#9Rih7c@4bE%zKMHOwN&ouIq262PQid$E=d4Oh?Z4xqh{q| z3YYVcHLO2IwSg9y>LC2l@<9Xk?;LQX7>XzNx$4l*M+tbl2%MN| zZvyAK{fe9-?ymEi&Zh;b+*JyI6P6mLW|LkicH&!Z7768Y4tm=ij)$!YI$j|wP5)kM z6+9-J$XgmOv3FQR%=Hlj(qxTphNlD88ekEPbLUP&`Eo{^In{CS{%`vip$==?&N+ zqgKtp`!I1Uf(Zj0<{_xSA-k>fV{t9zc`=&4cZ0XSR6Zz;0NfzvvIa;03=^*Gd2^Z( zQO+u{cis&gOeOtkQ)*~rQb}O9rptWW(8RPe9z?cC7hh=uYjUPLP`mxi5xbzvr_@tr z;kXj#FZEv3Xf}KzA!?LUYsqd0?m>7JS+zgDPx<%c`?{i=?VC)rd6wn^U}D8=`r)l38n5+J zV1P82Z|w#@t1dwnXlXDP z?%YdC?fd#w@|FJVVY)KU(08)c=poyjt*Pf;`|+=D&hoePBhu`^Ee2B(CN1A^t81XH z<4$By!B@pk7f&s=XE}2VY%I`EMHf?Kd)=m#ugbD@^y&~f4a|YODp%2+&0cI$XV_;_ zwocc9E+_50#@2*azZ~{gOkzoEO)@p)49-C=wSE$36wOUlx}U;0Y*b`xF6N;`y~6F6 ziH=}opu!&bASfm#S0)BP9gFXuBiLi2gcDv54V&rg_A`v09MuuGWqEWXZ= zzN}--pC&q&$el%Fm+l9pSWKc>f8lTB*tJbZ#d#TJRna7f|FoQBagbhLK5`LuY}8F- zorZ6SVTtmq5||5SIcCh~l}6$73Y8xNe3X-pnm6k9+uIxAFt$;1L^BO51F(S{qt1jM zkWZ(A@H?epK&lXyTp#Gi#j%nZApN{Sf^Pb+yoI{yP$i9X>JdF6t%G)?${Ndlf6Gy^?KC1l%rG95QqCTE(?4JBhf?p z-5r_1;y^wYeRA_^C06NnGM8#2TQAbzDsGJ~qRzH`xjd3*y7vA2*ojVy&tN7B1$sap zXiVP*o6n^@?%NN6QIz!;Ta&%tlYRJB2B*v4ZX>Z2lm@VGv|0eyHnch{Jdltl$ZvCu z7DoPaUvHU45CzLHTi^uqt$BIL&X_xN=|nd@;AoKY?_=BJmI#TIpW>XLZ59$5E;vn>fj{_RXK#-EFG^uI;2r!o=0la#}#1QiXB&vgvK z$J8ZdXfgS1U$~W`yAJ162t%1Xt;VAx=wA%J_Ak8sb16?^SsfJ#gB+B)!lO+3{nwhe z&=~xzsSgAdtLx#j_cIKCk6Rn?4eFiK-NNWhL5uwv<1v#@OyU+_UBAk}oNWBpXDwh|Lnld}4FNnF-YBM#J zby=Kl>(!WR!do?>=lIBu_xRUoaXu@8wsUP>Ff@j^?tR-l)3QPITHZYaPiOxJZy3t@ z-iPU(hxVR5(p8}yAty2HiY4q*2C1$BvhRi%d(rD&3zq z-Oz;f8@OF((N%f8BDym=F3{>5$;v42<}0{UxYvk60FIEwiOL*CM8-Cx#A+`HzquZF1Yf zMlh%URNr^LB|%?0p-s~`3CnJ>^I~t(-!odViGXS{McI-n39$)V`!4iG)Vb&7-E-<% zt`!$jPX@{|)c#i~xY&|brHCOL1NgxoG}#jDAB?|WlqSWwD>Rs}6{K3@vEEAbofy&- z$=V0n!bP3mLY`$#5ic!nrcgMejW|zJWMH{@pvExuS!D)xk>3v1 zNnDUwudn^XOl++}SH;3?+mE#u&h{DQXu$8VZIL3sI}0VsC01a_j+~z_MJaRmpuq$% zur5FwXf9DV`*a(m{B*BTT35DDPpN4nk3J21l)E>e zG->SrX&WVYR)3NgMPr@$xHo0cb~JeOj@(j-!mT9Y_XTmCk^k?B^4EiL=uvSbP!6Sz zBEt|!3}tnC&5}r!-Z}B=vNRLHR$Xp9Yi}LK^Mm5)?px6)VI{4&Y}?nP6lj~8@27Gt zB{ZCCokv+W+hI&ZU0oe=TrAKE*VnopMn_AKyH^LjC$G{v1|2vELvZZX@c4d;mIr7h zU@od6o#o@;l&I_Jql7flojJGzwwETHA7qSrvRJF=c$^R9u&R#^zbQo$gzw2V`Nqt~ zLlS%0gok{tB3$jPHjRph<9w-$9Q>ofy%z!u z_4&#p;+UpQmGSHbd?vyTdZvWuOwkR6Rms^0#`%7sje4an>cXALkSnt}R=?~%QIP)F z^1j*>T4pl?F&6zth@H0M z#`t&>RESElt22MAkrXeuq{LXzDTdr=PRtw7aZa)k=xL}R`0?2v0=p@?C72eEm_^F{ z$A7)t`X$NkU3tMWZW&`};5I)n+%{`!Lq9BjG6{4eR!TsOMg@K*$?hJKFn6o}8Q!v9 z)Qe{OC{5@4Q6;a(6 zAVQl;mhcm~)kEYI^TYoj9M68u?$YNI0d`qq!2A1}FB5-XEu(^)3O6%%X7C-2Ni!)U z3VJ;~Up~uk6Wi3!O%;dd|6vG z>q>hS)o98EkOdfZrUBw`Rv7Rg1&kbF$XN&N?W;(7>_z z0FI~-$L7d-r^0BdA9x99^!R-F@DI3CrObV}AZlsKx*H5$XLUdjpyJGfkA(=OXdkZh zqtR)&w90?}^rnQSXk+gsy;$jmgVGc8WA{@VcEEM+^pn3zUV^=Z#dxgy?bG81qyn5u zLSACgCmYrW{x zAvOwSO+h;*!!*e1h;C_zc>=t_^mQ$ABAl0V(B>Cy!H@LZ=M7789COK4@@#X&t)!KjS|UZz7CkT*vqyritm}+isICcz{=Hej zP{6+}ySNvEU-5})$#(l4a{o|SeI}{U;hWTYtz6Td*OY0Xq=8mL;5x(_1IQDsnSEtt z^|gzbc4rWtS(jMoR268gj_D|1mCpaDloa=VjEv|aVc(4LB;Bt6(FY5+@C(R^u)aGN z7ok{rFM2BZGNeqz|4)5bRrwcYr*GSX0b?S}Ejk};%$WWiQ4JXJNvhb+kOqdAzQX(@ zUgz!;b+AaEEZ4!FB2?Q8-cRD1pOG*KgXmeW1WVI$ywC$HL}mU?o$=8keVxQ|H?puE z_t4p;E1RM6-FAYOeOzyz>F&>*!GyKaUl$%*n#2Q&Z8oc?Yl>)}nK~ieIiI(#YMil% zCx33+%;PGms}DncbaQ71#J7Aq;^Ho33QN{UTaR?&ym_PVr(bFZ+D~I=ny96(wFZm2 zKDer{=(g9_mWaSoug(P57F#Y(<`E)qj`gt8=AB4feW#962$BK`S z)mc2Do;~HP{bhu*66b2JRgk)G%qt_r8Dq9xjj}Y7Z87#C(_LcS@vF8{)dMft++$0+ zu5tLq+sl#v><~Hrmv?5S7nnuC>@EcjZN3e&q&sRY$RyO`D`{JI=y-W}xfh^Z9ODfl z_+Dxq35FleR?qw?ijb=;@U(`5&_Y)8zRRe5EtcV^C1BQTZaN8T^;g)|ewc1hL7>WucW*#g6FzT&^0q@-Dq*kh zib;`0Je3;zAoMT}6GcvYIXe^=><2QHnvr(M+?XFtY+n89gdxuU26O`{qurs(wh7$KYeOk-&*2=kKSq3h-K?SWLQ&lat7KL^`Ay6APTB-u zF|c+R*T>?R0gq6GemX5;QuPnDx=ijEj}zbPC&|yoexG8HDer!($nqy0&9KQ;RohoR z*Mm#*-8sURxjBpvMFgSZL*lqUCBs0?q?;Wf-VK{s)UhM-!A=3{1uU-6@0G?{G7-`k z*whmx0T`AettN&m+MgB~H?9KFo-M`M7P)|K)eTZ zNSXebt>3Wmz$ee(+yu~RT)r_UbpGvNwxI_znQhG5yXO7F<5LqW*LeFbeW?CzekJVW z0CU^1N6KU%{>2zS0^w)Cu!}fmlX!WK{1+N=mn$;)rRBOn9j#XhS*exi6p3R|azAJr%|1Tez-DRzu2H9rupifpv( z-lf$3R3x{yj=2FdP87yCbqBaDx_160TQrJ`ulMR`tng2huR+`XleK{d5?447B45oq zkLoCZc$(VU!zQhY6xDijziH6tG&Ne9U|1UV^d6P(hav47nP2Bgk<_tCa z3r&Yu3O#ZvBVgiV-lyEQ+=t6~$?K)ZIi{nI^r^(diU0ie7X;Ny{%dGE@t00p6|of-31o*jJ_L6!JwXxFM|+{$uAi7Y`URZN+A} z!{-;-z7D<*FBOl(za#dvR#2*Nt(oOGL2OBP)bvGw`S~dyE)%;3Kn~ck;SNX z-7F+hM}orm1>uQYQ$n3?SaZeA;rp?3amyhC zY^k-V@=JTZ&2>+FSMk?G^j|(c7K(Tbi_eUw!POo;lJr`oTL%p*gB}9SCJTcUC6=LLbHAZ$Dj4Rl1a&naDp|?!D*L zVaKTW3MOVg#&E|``02eG_};aj@{+=uf3_$>-jr%Kdu5GQ#+*SLu9P+&Vi0`=S5V00 zu_}ruZ|A3#k(wU!iFb0Z6V#=Z$CId2!6_NfXs$)m{ek$#$tQ`z#(2o!b zr1SgP7H`P!;i`Vq*dlqY;^^6J2_}b^`Dwz-8E5PpQ?O0_?Phuj@4NRa9vxE0per_W z#AgB91jczeW0 z&nd=fxrkd1-x%?#^zy7`x8n!Fe{U(5Lefp3C17{Ob}&SN-mUTy03o zn`~()eWNXD9=$UQ*mBB>VsVqZ$6hYWUYS~smkEp*IY zP+5r|B@hPFBCR{#gX_Ll0{6?JB4b(?H$G_S?zb^1xJ4+6=~eF>3DyRRAAJ23JB|S$!*Yk5#EZM7&5lQu{FUlqg+cwHuW~eoZ)Ofq~V3gS{~onK%qi2?+9D` z(S4QdY2Xz?L|FCd-*H3ZLnPiWeRoE@xnTawhZKA-yW2qFaIL8h#y$SZR@c#_K;*oS zH7TK7r&-prUu|qVE&Xu&7YxqpR`*KjBod6DHjj;~{%TkG^gOLfDoGa#nw@G;MB?+~ zNdH}sHGg8LUBtzhu4F({&p1@gW~z#z_@i0>Q_bKkX`tK3T@} zcu)>Nwq6l-IQTgU{sGv_fyQ0{5jtaTp81y1NwM?shZV4d*8@xi@7X-pEvWMy&-9Mz zj}aM}^3#SzvTW}0r#L9JpgQc_qzE1{oE^VfFYKQUm+V&TYy>MpC)zO$FohEgz@54J zBaNevlAqF^Lj4z~%p`+UoTJiO%w%cqGE8GKtcQw}!BDY~-FGS=E0X)+D&;}`W7`^& z2|NOSwUy>|jwb`AM0723%oZAoQ1k{pM7Hu1)`v2Ymc%9{19zWEh2xGI=vTBT%s!XA=uhT~*cNF1*HGV1v+0!;_y2KqmR(VRZMz;C zX%Oic1QZ3No1rB{M7oFWX2_u%VdxG4NtI@3>F(~7nxT-nG}>-|k;Io6CkmwxcL$2jNb0u!KIgdzYB)VDZFW&si%QA}(4y9^sT0U=NP&wJ_kKF45 zeh`-{cQiz2&Y<-*+%L6$Qrj}b<&j3*m)zV5jm+!GAzjiWr-c#`XY*Pqrf0r5&6X7@ z`pEZ)q}o#*(r@1d^Zjc=c}tJ`Gmkb#TgF)DgtEhz=ZdgGEae)2@Ny`Z&ZkdWmtXxv z|HE}xp7>uH+q!N~ut+~WP~Pc>Uip>;xwhUk>b7w?EAr%LrY&&_mSlFhW2>@DgP*RX zLv19U>I%v|iYcmtL1Z5Q)gYs6iKU-Z9_v?}(+D6xi%meHu<#@L8OhktD~S=lqJ?+t zmS})2-WKVf4j%Gc$2S=1NihmfTy~H|=yhG#(HkSDJnZa;-UxQgdJ88jQmM_jT zw7Ww!B!9$b`{QGn^D4(lI>s|a!a94Rt?p5NVW&+o2mHwYFy;7^F7(8+?3mW-P+_fu z*VW0s9$jDxFi0G=q9gE7g4*A6!%^hL3SXg{6?pR&yfb~&uIA-U`~bO{^A`@k@U+?} z`J6Da%<~q*sMX%#7iP0zox$%lV1;B#l3|40+{e7P-x>?kTn#`{5h*#AlG9WXVa|Q; zNoz{KGr09~?76VC*UL;@^S@wK+wg1ZfsTZUDM(lnVVD~V>2hisB-Wm5<6zaqSV`z- zlgGWglt$^8Eu%i=RgG^)a*%(UND!04PSbPOs;>EDRu;Crl1^wlO*MA38kb90TLTYw zVQLbid0nN^T_fefj8PRnpZ^{T)v`i_@bSgy=LrSSP+l!fkPnShtY$PrN? z@>EmeJ6NQ<1$BE1#Y?!ZbVtvY#{+F`Vw(L-q?pKc>lkDbbjp073>0&0fgC%3ycJcK zQq6Z8^p)9MRurDqJm1XiC=$;wxdyqhneLh_%GAf@Kc{QnnvlFX!rcYU5NXfK*PFjo z(y7pnC5Cf(yDJn08Nt6imX=<_o$oO27C!@Ad6Ja-d}+7XYyfMn26Q1LigV|Z&EYrZ zAe(1y@H2iz-}uZt{e3djPUeNtw8e8=4tv`5<>?5`bvoqGZNXG+%YJ0h8BFhCQAG#O z5yz9XHddyn z82yWrI#eJ48T}28cgQj~H0^*N{I@_dX8DRlGZFO*+}w;i+x&p~$lfaAMO$YfUE`E# zAK6*NXX^niG4)%YSVc`|GlauH%cpjFB|G-?0;zt>oYWX6JhSeCAYH54*GpL2%D6r( z$0m*$u!`fS|MnC#|2t2Zwar5r2AIwuQC&78U6rOLEwh%chBKdmhmjoy$=C`lG(F{JOM!k`2_l-eUHCS4%jUl$OZU! zw&HG%a~I<7hwkH4bGMsn_ecZ1#Y4Hj5PLXT^Tj+b zbiHRqhY3yUZqe+ZT16|dclI*x-@fgi`>vCy?$HdO(jpoq3^?cAhDea*5ZCPS|MouX zE1`@@hxBW9w@qNJd@m;AEW>yuV>&utgU|&0tuytLofQqemgLu$d)d0Y+g4tceEW*veU`Gbl~+ddYLvvY=w6EB>aj(ZdqrP zJ1uqS=kc09a$`{fFZ)F)alOJ}pfbbG-_{$f3d&6N#s=gZwzJY4n6q?3b5xqN9{sU} zs&Rir_J_57-|Gs@cTeaZxT2*p;W6p;>vExT@<5M`eZQ=v$yo;Q9P{WXcgsx@4o#*J z3ykQ9$j^;)@x->>-zqM)9x*ajZ>h6>=PLCu`-CB*ht{y}wMPhZOX4)c@J9-p&bhWm z5TUGCFuysQ5$0P~Rx~_nC{FRrkoi7wcoG+;`&tLidbfW*TQHEm=CAx0;_hDwbnt%l z77aVj?4K*BC!7DDYXR$3Ey4a#^tYPk6f@_+Y?iS8t~5}zKG*}B_c-<$uaIBZRvj2g zI2-z4pHQQq3H0zDjp4BzN#h%v?`pC>gKC9KMdF5Y+ea=J>;pB9?`oc})nSesQo=$9 z;gz#zLRZC_!>pExM`!OVDIE67Q<6-|n0b6wc_vgvK!0c}4X+NixkVK+F6HNH2fqM& zpXsi>dpR8TEZDNcQJ;w6?mYUvz07HICVa|Rv+6zB5Eqk8du_sG8x5@ZAo;}{>)AwQ z17vM;whr#Vspl}wP5nB{=wA~HG7lcI9PQ0j{FQkJ_DRz#`tEq& z-KUTE(x(1b*_bM;5sxMMB9Ii8ij-1SP1hFwZ-&#nmXXZYVvr=2SD0du8q&{rq z1xmoU54!wh5Slh#Cbg9h>ff_J1+su5-1Q5K%TcvKSxbpYK2Qb2(DFV35y&9M8s5JH zNq@Yb%h-Rm$YXN09`C#jV9g8(eTEg7bz|gWe;)CnQg8$K1Zkr*6)5JuZujzo#yD#e zs^)!&`zExZSQ6Kk&bjT<6w))t#0lRO)o@%^Q$z=N@D8^xfB^nj=$+yX-$QHx--a0% zrVjC(tvTY2&oLXOs=dV*2>aEHi%h|$N>K98>{=w9w!&!#I1+{2Qc;}+0SXFsC~*n* ztN?)sDCSQ~eckQ*(l%s(x>$PT3A0kTB?5J$-TU)7Z-5of#$^);w|K9PvK;CkZ{5)- zU>=$nqSQH5C_SXKK~t$1_1Sm7b(<~bh|?NJd0Qs}@Z{({LkaeW%P-|hTWq%i0b@s5IE#4|8Td|*GED@c=J^E`dGmw4> zFdcS=IWP)5Y4XacGhh;iHhu22|{J8M$BIEp(hb`x&)>wY8>)f>{e zI*^C;EZV%A`MC1AvocCu!cI(VbrO3aE{?LVj3sK9qtUgdg=!r> zmN!}WvwDt>Sr{I|xz&~cA?hhDWXrD@>sqkX^KWVY+c$MUYB5V)-Q zMC93C_xjZ_*V21yOmh=!8FeVkK1 z;puJ3-KhWg>t{1+5A}QO7QDy{%!QK=qNax~L+M|=5`vhrpEz%T_3cK%|C*7!rtELl z-$5F`Pd;7ON1cn`GkC~_li0~VEtx7A`sS?STuLib`yn?4#{QnMj{@hmq}GNz;%rYW z#52rDdWqrp@z+4U(v3p^g{CHzHX8otw z|2c*0;1aar^pf-i3K`1hbsWle+6HcvxL0w+?KQd9DjD1703#Yn=&;>lVt)Up+dCR; zGxYBXiX7C1uGbDiBxQwjQ~{V@d3nw;xD&0{%?WBoVPS8y2c{moNVo!)2sm*A_dipq zLk`0lQTj)Fy_%dVDhmL&t{QwdpNK5l>#7{kW+gm8FQRQw*kAY3x$6sXZxHOM%ew&n zY@0zqvcGbMR zS0i#1+6~ZUvDgJgAJY^(lozg%%LCA_%WX|l$h_j+iINB=z2WFnGURf-pWEOs5{pHI z3f||q?kYBZ${7-UIPG(e>#C?I=H+2^FepqV2V6-ow+la9D2vRZHEy($1Sonaot>Z- z_XHWc^4Ap&fOHG~htB?DBEYa`&yKea346EqZ0yO_y#I%r&SqU+#GQbtER~80IwjVl+X}zW8q{c$#~y zTv%5VE{W1Wyb{?fL6OlNb5i5Uo|4q~v-Sr+>ix!#u1N3Sz-UZ zug#NBs`eLv?=er!mzdAM_#gSV^v238^B^iTmm;msZR@8QkAEsScAp+O{0TQl&D(Vn zPiPQ}VO1YjHeeG*oezYX?+If?p^=~2B@pwQ2h#la?!Ychvio4)OU6kF#R` zczQ`u83PZ-*wbfs`bDI#?(JS|(jgnoxFaK->7Is%Tu}&}bL#a$lK_e@SvM27X^{Cb zVLvmwVXgf4-YhV}ERL~#FHl7+1oZ9j3<{>-;hvK}4i1oVTB@((0> zq0w;_|J3a*kg3EwORoRI1*1Jk>P70ITAmSU0M8fvzind^QN|alXCKOj|Ae$_hZJI@ zDJ%B#g)rvmp@-H-kL{juD^}nROuwo|p*=(qC5psrzpJAye!5&@9_bAzrsCF0!lMAZ z=0y3q6PlfJ-$zqBu2@hmfE$_wC{zRtUDaRJ=!@!h^&jM4u?6&YeuSdl;5WbEBsk$~ z9y56zHfgWP5pbwC2yt+jB zH_QrKjqYD5^sL{Yq&rA zhk7{1C8xQoNPkJuTcAY@$2G2m?JhlCQr`tO0%AlW^xodYqyGr5`;ST*U+v;}Uzvkw z)mgaZaI$QDVM-Jsm}FLMLH0&fjy)y`?tvL68%?Q&Sj-h++<%um{Iwe0nOYinVezRU z1^z79v1jzxj;+}jF{#M$ik_g*v;$Z0AHcy+ABH1q&7~&lUm@;J_lsG^3tDe0EcB~U zu11F}G9DeDHnk9w#i9FdmdmO9@A;RsJpL>_2X)1&=H9BTXqg5)#7v>L@Fdgg)N3S@ zK}ON~%U$TC;-=9cviatk;-5xZKfVRtm4+9r9y3dZ-B61i`laMnfVE1+%~GGB*a@L^ zh$y$kR!2sdx>O;tL|34!C`5V&1UfCRwG3Pp<-jK(QMxL)DTUJIQwdu}uFq4Y-gYk( zhZ==tJH?!If5mJWeK{ID!jbv!S}*ahSQ1S9cjtbn+nPps6}R9Ik*vfc<*tq7R61!^ z^|nXfE?r4cp|RHosgerKeT)Q(bmV1S6jAvpM4w>n=ax|UX`z55%8sfPhZ}E{U9*Z0 z8N8sJN&lyPukL%wFV+N&B|FMlM>p%4A)GOb$I2|4U$##p7vJ;iN;UFIZZt0>VRiR&3kjeUc&F9Sh=XcmVMTe3sAupQ6`pq*5 z1L0upKzH>(j8a_9r{4rRe3ym>68cPZ34?5}0BCwT_cP&_CauW~VF8_7K)njZx*&bP z&oZ(1Mx3N>g5F!0R84OKTToBYS5#_3+rBS8$T8GKEijiM;@H~z=v+L1GL(w? z6KLQ0Kl#V(KHLGz&dVj3YyujA=GNQVzW~5#GV;rk88zdM)ESrf)`vIo>1ipcpCT+U zRPb|A6~52AmZhCEHJku;iog&{CQ=9QOSD)kz#)sY)h?h@385D#gv= zR!4FEL(fMAjK1*-VP3MF<^)I4DJcfe?iD3Y5mfIEM=Xy zTe+4qPFmkCk>>GW1gn`wCE5P@_Qmn~$kK7EGhw^nmLA8{gYc)jCdIY2yPA^o$8=?A zaCfF7{x3`X^UgGCTVr6?cSQt~!gM0ts==dQo6Zgr)$4c)^OSp?4tk6U*ng-~oVf!1 zy=Lgzr3nIjd+CJJ+MyI7}b2i7rq=-MC!}cgI$6s8iCdwzxaibB*AV;-Ae-HDlh= zChxyD;frNK9mq3=v)@(}D>A|g_L|DNAWaflWi+(izZ$#6xJq?ZMf5lcdzm_Hzd(1U zF)qn}x7`+}&d0u-ZE<9vnd5RvFQ{8jXIUo7BYuaj)BDI7DUrt)m7;(55+>UjgCjGI z$@Ir`EV+L@VMPrIKZaSx9yO@}kM|DO9{Iyd=XNg?iP>A-qhCdH{JNXSeIo4K+-L1w zq-5x5vi;gGU@pAYq^*q0yf9ka;$h7D3ClIKam`c45{2QiJ2&{>VB~ypHYI{EhoJ8# zdTEuEW2rC`L(HdEyHnVS4aK~})$YX^M?ZwfxB;v8=5!Y$?{_v3?Of5<<_lHGn`LEH zyc?O~q}0aj2$9Ync40Tm9K8Ss{`9j}iq%BzZRG8gG9rUi z?fw9)%{Ko3D+(DUqv8ug#U}ba)Nvq?h!~~Ej9ZaW9!Vonj>V5G3DsjlgJzVH3|abz zzXS^Ny1`Vr{udVfran4N?8blA;1vvm!ajK zoi?YOc!kmMxcb>$dB7>daL=V2@F!pxt?NaH4fM@cH`Mupbf?w{-;Umd;IGE(nlRpZ zZ}P7{iiw1lXzr70N@9m3Yul%8OFsTFR?F>2;H^x{h}*tGITZN4@n>c zh9WZQL6^TvX~~wKq3!5BPDpnmQ|=W9?3TWWSFQ9zR^_TyJVaj1C60gS=(RJ1DyU#qU=tFJ_A*`D_l{0=C# zSEr$l)%(!Na{e7RdWP70@rzu*)gJMCn|N-$*XgOxM!Id^7mm9u*{_TzN~ePL3&%S; zU_vKjoo0Oxfg{X60!p>@znzSVb4)H!SG}?~Es&HsjT#K8|B7lI&(@NN;Zm^>+v013 zaY&UpE`qN=SQA*f^r#SP>n~os@W#|&9K}_~cbw6#5INwKvAWt;%-HS4ty6gHxO`^U z?-p-CrW@QXWWmUT_cF)1&Dz1u;lm{#^}AlTI%q|6lrxN-xA#g;L2e-3lttu}dSzT` zi#9aLGZAdzHds|+L525bCwEnLtgPP~Nl9jzQCSfqzN+&U^mmY0NYcXQOhIQX4h0g+ zf^#l4`R*5NuLail(IQ)qiczXaw5z2g&}2Bukjc=g(XXzhOaq)3?PUjYBSpLh%PBTaVnvZzI>bF0*i2u0! zRcv-bK0D(CPc=o?)xfl{EP|H;kGbi-*kPHWK1Ojfr}v|p;}nhsz5Gykg#`!EqUsTn0~6eUu!)KpYsQD8L5~ zI;~fmmTZ0Zz%J2D_p&7;?7Kn;^AG}ypfM*jsPw?*Bn4EUI+hCNdl8^{ClVs_&jpP# z-4P3h;)He%G&gK52Yxm&l)l8143ls5QF^*OR=PEOEZb-t$MiNLK-oypZBJncC1IAv zx4$vz|Ng@z=+DevJiQ=lY1kY^+^LD+#Sy8*WSnBl+c|i_Kb2Q%v1K6*f22sf+Sc7` z>AuHz%PXtmO3uE-G!Bs1CUPFi-SZ;(NjN;PbK;G>l*?+%GEnLY;GAN zly+D9VI8}2z7Q-aTb3hh`U2tb{+18h7^251#fNmKz>Zyp&lea5lBvKPD5o5x-%#kw z0`}=Pw9aUkxLfLR5H(cp_n+dk7yt0MI6te=70!8E(5trB3S|y$WBwakl%7V$5&C^| zz}_iahALz#=g><~8)bD^;eDKo%9f<+OdQ=WB4Qv#1M!MyTCyRRF%S7m6a3rmPccBh z$I;H?LFOzq!rhErrpRpG9Nh%=xRkASv<5DdEe{thg+H?2d{hdE_d$1sMzNfl-;(L- zL}VuCosS$ze-+gHjy)-LYy31p6;V}6W_vzr6>2L(Df5TAy?H$?6_XoNDBWL|>H2d& z(x;(dv!3zHY>d08$0Yen+)isfAibJO*0T;HHeoBH<=w8jBUaNpV+q-Ju$x7xv?1nA z#IVk2>Mta$(V1S)c4a{e?v?UJG1@+i21&#+tBkhjOX@ApZR090mI-`|O=mfi?CtGW zo28?+@OG;^d;DmDuA0;==Ysx={dR$$%aOv*xTw3YB{A;+f3Da!>B4{XH4mN)Lxx_q zR}E~;>xBy4v)^iUL#_V`!($I1zAaAtm8mP16ZImmVM^a6$UUbb5Gc62E| z2ZzL?K);(;5l6Rs)mp|nk@o^nN?8$eKRo)A=D@r^IW_UsMj8_U7`OJkU<3^}XH@nj}`)f&GU=g2mGuNR*|q?Lt`Wd)NLU+Y97sv7IPTV?T4M$NBM zlW$s-3k-9Q#V@4#3X7rDEAvzJfrBvN11XcU#DjHVBzJ>*wE>~4C2pKFST za06wNyXW5ns|mdq)e?scFHsoJ_U*ol39GRU6O5Yw~fx1%<~t7S%cPh!17=P>KwsoCXf?N;=&0>M`xMQ(3RI_(n9RZ zkZNxHT!R1$p^rcLIz6Qd7Q3MAJHBgmR(TmNHKR`84J?b zi=NA2Ny)0J;?V21I+95FTg#R^XKM&s@027d?qskzxYWy5ZK21FV)d1@TRIN8KQdha zye2WvM1io2ZjwWxWF6a+ec8TW)dbu`ap8fD?e!)qkoAO?S{#TYnFbm@U0Z6Jg=zrT zn#2oFGL9kSKP(*BLuOHB!q4mdKTMXCxdU^~4iYrs!YyRv^20(cev@b!#RfA)MFLva z*;KtVJaS!zj(iXrDQw9#1IXuXv!qWiZY8?V&B(aR+u&_z4vw3^^^sr7eRrgdQe+Kd zG(>{bl1V9DHEH`d8C6?*WPi!>{umt&=?k6EpH4%p+)U2Q2}c-?j0vg_Blx$aIX<12 zPB(Q>uxIelaFFS-aibzuH6~F$2B_)bqn|JNXvu%BjtW4|6%-F1CT}w@{Jh) zlPAgb_^I6?SOg<>Innw9tb_(UCp{1`dg*SzEpvo)n&o|G;TEm6Ig#5`mm_n4tWK9-Wz;n( zZl>p;8y;7d1Y%_0F4h>ur-sJG6eDv$GyAWxiTi&)oI(0_pP zZ|lS%+W=K{y)31SgN6*a#dve`g(a5EJzhGzHrh9=qT0fdq%|axXLxo?E`VF%;?RAL(vX zeq5MH1xab8l`6*HtZ&y+$A9Gc-YL4nbxMI>?HWKdN?yV{y*WfVS2bFv!>#`49wrDc zZ9J2{f?-zCCKPyE{rF9D1E;6;Skb)yVsel^rg-nCUF?4|r$jW)Zn^v8rkir9sB4y% zdz+FT6L4d$f4Rm#S1*2+r4l1LQW3@kN9^f&>cv-p>^O+Ob@&NYq9z!P zid+SM{FQYKJCh)UL&oP{c4sx-){0mY-8Fum90RqS#gpX4RLhk<0@FT(hHYYUOZa6?pRR)+KOj_=?9>o5;vGjt5{+;!j`{`&Bo)u;+>Y@3#OBlqN4& zPr_Zmdd0FwEln|gfSs^dv9e-R?D;Nwz+D}d_8Rk&8$eypGfg}Lr6A8JsU6qIEarz$ zIG+S0PoSVbs6bGz>_~Tmc|{kQzgGwe_SE4l7$ytw`1UKCiv1$sa!?3x?_LZTP9^9> z^CBsw{B)T0x*3u#*I?LE5ri#Q!eB=9u@U_{;2qL7yV^JldVYR1FZ)_bqA_PZ>C!tn z_a?`eER_Q?yGz$?0Z40Q0-W1q_}#dr&z4Bu7W?Z0+JUFT<}bcMF|NxI&@bL**>c${ zZBKJ*zjfOS0Z?G&b5RVb7SybfpD@MErzX5R?`%mWI|)(`&Q8?G*wz7U*3NAYQRVsu zCrK^pf}8`+Se%%Ru}Hr(w#~%K5#7^p!=+|5>qpQM@2!C+?9T+BIT2JpZ+T6roS>?$rYZI$&>vG3RSBYY#5dht~EQ@*X&_3$|~c)xi|InPyCU6=7I3sE^9Cd9#Zw{ zfcZ?;F{}@cm2NIWKv4~run{2?nAHYtZ6EZRXDMi=&HXKwY>!+dQH^#c@iZ6T;T7Xj z-r5vkjKHxGWrt0?*?)N+FHd@J1hziN9v$dlO|kN3G{)vdHhO#aK;doI z@1n`cdQL@=d_~3-BxB-h9F49OEYgr>fBtwHi0s)%CrBr8G>_(^I{dqi@*;rQs`%cEY8&ImCpJrLOm6h@y51}p4=zu(qa`;~ZN3-+bkbvzt6u+PbF^OQnnoVVpxkBzL%bFwS&zt8nOVR|@a+HU- z+>c&SPy9WcElI(yr5_{*TMzMZ{}hb)ba`HE?1rLnq2%Q=V{Ah16P&yaR~fh1^na^> z=Dtcx+Qkv|n#U@gb-%7qJU}038#3P;hTBM{1#DhU7t&NZWEXZby1etsE{k@!Qp}Lz zRVJHXWNXyIA$mJLbLc@S!rvd&jUr_k`t_Rv1pONAH}{>tlvAEPrqLcs!boV1%}JV` z#2^E_?(;;jS0nDvku&O|9+xCd+!m>R{|rec!Q60ESF<6WF6xf>mhkcK47kU|-oO74 zGhyWg;*Cg>a_sr0b{t%Z^s_KQ9khkoQ$6-2Lm@p6%&p})C)Ea!Z84%R@_nALQHc+o zirwNRT8hJlWS1j+;;ISwLT36w|1=s2@&jc_yCAPb^OQ7Q*#Yrvl>IM_y!R(xJlBt> z>buG0{ft*XONAxDrhZTP3M(ggKkA!mZn1@etweH&jr2D^4nf|M71)GZEt%dI*I7K| z3POX~JJEio$VU$!S`08HNxn|MCnYLft>X#9u*#5`w-3_JBtOwwttiw+@BGaX9s+>TzWl|ZU+`Lw&Xc>`zSbbUz16d^h6OlOqOCR%Ax2FvIiywZmItf<+uEu3Z199!mpnagi2SN!kp@`m!-OlV!W}ZBdplc)Psb?&kH2jC%PX6f-m zi$Z+{pJ=-On9%&Wq$}L{n?8NE>DZ5-U&<|~k)H*_M~<_lo8?B2W0vD3ZN>P62aDoi zdMpluV2V|3#k8HBvAEqrhSjSN&2?qjZlUbCgm{eCx;)Rqy8;zb06%l zb__bekSEf;T-9t@it3BWn9}fvdebK^_qi^**;~&FZqqMrZtvgg=4)l+XcmJj$xAQG z!WY2{pnaoRKP|prh^wMZD~bt;P2n4%A6)AyHA6i&URo%>ER3&@=|BrgdR!U|y4=pY z9hW?kXfwO6uu6wMBHy@)@5O!pojUyAg(uSxp(jendKap&_%SmrsuaqFO)WyppX5z@ z7&s+^&>MGYM~W!-t`&dI|<6q65$ z#*s&>6bT@g#8|p58Y6Xik+Ft_iHGsudsfmAFc7EzBN;nWi?DPa1HA1?uvnacNH_pa z7lG-u3jHP|Q$MMVGH(h>DebTrNP9zs=cjenv?r|K->enj8gb&5Qg^}fFi)>Wh-nu~ zC5HDdi3RQF1d0=9(_}HpDL?HiYxrYGmO;IuE{CD#5s|9u55}-_DOWoXqcKl&vfJ0b zgB~F+ddgfM(Y%~|nvIzP6qnHO-X``_?uSQ1{Al{V{bBM}oZKPNS34Qm?x4yrW_ox0 z?kOh+v#nx^#6-JQ9Z*Lr7}4_^ui6b7et$A%(?F$npeGvOnpWW@jVR`kLH{1zT3i~n z-iy|+ED&Nf0_bA-uHl65*d|r3?_ctUW9TCQY2~qTOsVH7uH!urOs(u|;FtotA`&(u z$Td!=ZP8)Ke-p8;Dvh_#`*WdTEaF*QF(}lyuDEPCh2=}_;xtvGyVh^JqM1w52kM|F0Fo$q$tr~yl+9OF6x=6h4-~kkgJpXol)F%gar?O%HZo@dn}UY?w^TZO0W)_QcMr=Y z!R@wYu4A=IFYSx&ebnAEH;|FTDjmhNc$lfl3ovdv1#pas+#!V0u6CX}DlcSTxz9l|KG-Xu?NFlt$%sl$$rvi5C=G{_z+?ffO~Im) zQpbrkOVV4a*^m2tm8z!#^b3! zjQCLl1s9_XQ!jb!_>Swb%M+-=h9%_sj^m8M;uMBcCif)ZN^7t6$2dWWi)goZ#36#8 z9JgGbGj`?Bm#;%!#rXyC>YU8D%L-qdr|7mLqLKVpY=^)a@k=UFytBE7M%1Mc0H@|6Co5rJp!1;V9b-k`_AsR`DHQ|5D{3gRsCBl1>$yEOwRw&FuML z)&H(_ljHJrn7l-(2kav!JF$r5;_>jv#e~F3-I65T@Jf;qLAn~TEt74H)htDVsb3D5 z372IBSU?H&gio?k=sr!e1kWoypDK+^5(iDxhna9Y&JJdeNWT%z;sT#{+RR8}x4RN7 z{LKy{T0&b8wP|r4?Yd;81qeqfqMWm{kYNOASNeKZjq^qPY78eCr@UoYn7B4|D0mfN ze>_Ro)Gs8O14W>!G)dVFJIYkRIWTSsj4CF+iC^xT{ABGm>bzZLc!w}Nsu%Z+Ex`IH z@n-X#SrVxI@)>;Vm{ljfI)$-e@`xx)1jOWhjFwq*{>{UPc*8TB`At~DL7TNdDP-7L z&&#tLOjQXk*IAn>{l!GD+OS2(R$1U|5(&74EDI2c%6E}*4^w5AYrId1nqLbG0GF=% zOlS5zZup_OzMYM_@&543vb9b`m-c&YfYait#c#T%H9<6jwfbE=A$N{g&oGARa&rpB z`9EaY)C#i;%Avw}41q1jUU^u8dM^CA8g^ZrnpP~C(nitfC#8)9ndcQxH)^-rIfkm? zVvl1_6&~3ms~fv$V1LUBPjH%Y=^UxK5y7jbfqJxFh;X$4Qy^idknn!hmi|AOg-=+| zn6_dG#~-7;x>t+G4rE*Y=KAF4E}iK@tP^Va7TT=d{(6Q+t!$I-eP_IY&j#M3BA|tQ z9bGnf#OJU6JfnGq_MJyrl2ootv!WgHu_B3b2U+n4^sawhooE?)b|Uv#cOCyo>TVx+ zVYhg7VtW0&Q;WDu<65d;+%OT4uOKGU{08PAgPqY;3<3MdG}YF4OJ$gMa(otwz7SR+ zt1;ymDer$XaKWf6-CAn>QoLp@h`{E%+GVHr|6dc*MbC_uAOMkFCzk|wD4a-s*hzrN zFEfRMp)p^ek$~)=IM%aDX;5>TRIE8)%|xKIYoBaXA6W+`b@b@(mBXLU7CwL1X#DymqQrH7l zo+BEL1W$POqkuiJsjp_Bk19R9W;i>Tm3!7Cc6%BUTaqcvY~^}0b-#k*^c@0jHZdfi zvY7R}p`?Og-@BiqCKiVR9F$vI8Gb9z<7Q>F*=d@;TmiMpGu8lwM8QfN*wltl7{5r2 zXHsKk91HFjj7Ce}5x1<9$NmA@`rYZ~VsXExl$dZ(HBCXeqw31{NwSAucap->3EH{h z`^*{BXJP|@j9jD|8kZT&BVwegwQ#L+VttE)n_pHCZSy|ZUxX?f`t5_NnQ zZT8<{z2l#nG&a?M(|MDp-4akm*(W?a!-Wn%18i(alWOIfh_q zv8i3b%O8!Ul$#lO%BI+H@mQ#~tUDGvMVJJ77g-lLZLJc}J(ka|<|F$CxKZ*xAoP=; zSA7ulaycS*LPP<#T@ghDAzziojbUa4f{}}X_@`Pl;2i=?uK-(P? zn1}RF*NiO>69t#(&f9L;ugJ!@ak`sO>nA`kg{&A@@L90=Kaag2O#En#N2In0LE%yw z*IHAJzN9A>Qhn=X|GQI5{2$+qVKo`hC68Fwh(JC9%+g~Pm_e%Ih?W9P@sJf&$mnBD zMb03n)QUrv_{h2n%eOWzHt;h~;5y8l4SC>wPF`qvTwN?A?m(mo8ly$O@+{qiw4WIT z(H!keet$6AzWMoPq%8*GIJp1x$wTGM#V-YpXIGE6(RVNY3Z9^je-E7KP(&5~3(7Fs z?YH0|@=La>Y1`xUe97K1F$LSKkNQRLDNI(mETi90NrLt-oW!386wP9z7ff}}TMpmc zAx>5hb;nEe^Elj=NR{#69D5|NA%|lKAZENC=BeE;GiHRiBn8PF zS+l^ww8o2gM%FuKAqJ;?T;1;K02vgECY{kaHC;en06Bn3uLq|3%bd2IE4ysU|EBMQ zh7tkx%uxG$;~0(6^+TUnx{FnPHsL9KbmYXbsYUC`u+sj(@^_#_zKIFu8}L=9#Kc&no4b&*uoi zG&Nd2@rvAaaFd(8-?fdglt1Fcj$i)+C9VL-Glj@I?3%kN`#+hdJl>q~mE~)bU!j+_ zJ_T@|g3km6SV4tQ4q=3GJljCvS<2RH>R!gB32J?*?p{sP?Qm(+>`kWaDeewj?O>Hf z#{D~|40l*rs|3jrqWk@)7Vr-G-#ct)&oyb+X^>ljn^N5LrCr-J=7ygVnXE9wk}cuR zY@&K*+i!t1NvE;$z5Jl7TFWmUW|$Q8|1w&oG?#~*q|oL{q`N34;?)QlFt$#G-QGff zynYvzxpLtk`KEk<`8~lJ&{g)0&*L_;8>2jH1#fr5GxIVu&PLwzIT$nmr3xx79vqj& zB$H7fOzjQ7u=uXqt3n$SkF-P&si?+*H*SQ{t^pPZD`uGSf%|poTpNE~=Zgx#9}FRK zeQ`?<*e9qFOO9?GEskNMc{ysXGQop3jTVO#dY&;WT2|Mbv95tAS97ei=%~Ii)9A$TK6dw`a)V4(rj`A~)^xBhYhUH_32s9mTKm|)QpOj*D8x1%=JLu= zPQ+QOTk$>qV|%3jOm|mT4@~#!9M<8;^;V6&h;I=aqX(-(9xo7-#+@8N(^PNDjB_nv z+4fW)8l=_3X1_8kfJ+ha6)`qFbX3CS9bFl`c`eRSm-sidVJF ztyDv7RNIh|##yTZd*kk|*2jlX_-&`3G2xGw&`yzA?}uuWWrqmG_d`MzyHikeiiQx_ zS)}EkRjRLIEvLG!WnvOdjm|Piry`_JMIQ*h$0MAuO?1X-!C;7>mHjYEtzZ;9%905o z-5u)Mx34`H@m8<4N(1XG#d1=kY<%2MNpP`ybG%+Udd&B@`iA&OyqX;#3QuNVKj(0Kjl?SEGr!TP8s z;=?^QP)JY!l@v=qirKT|bCw5c0(|M$AWrqL|BjStZg+^It>ED#jz32X# zD!e4uwE&AFvxv;d;-@}82f!wn*C1N03T2BF+V%m!a+iYI03J*_S$0dGgkq*0mG8Dm zxcVJH0i^8**i}su=YZ(g$e)1aqF5&_(1$B7iSf&~9ua8|V9LI@iXiE-;~P&py3BsP ztkYr1Y=;2bE;$j1>Pk>_LnIR&ZP zAYTK5$;nFHBaNBhbJOFj@Le~aPm2Ba1PurkqBKdHCF8v>myg>5Fuif>r}3dzl`(9t zp0J{R3{`9GO_P|_Tnq`k)SFxiLFj8aHu0)^8ax4mVZ%& zZTI)kLzi?7B_Q3>DV-wS4bmYoLpM@GgLDWgASED;pfKdnAxH=eLnA}y!+l-%{d@8J z1^dPR?DIJHvDW%7o*%=X_k z^SF`}F>38iXS@C1Re2@PtW-Bgb^%gwV)i@ z+Qn$v>i1ppCQogFE|aC3(1(2Hiv!|kVmEB{prcFDdTR&HC5a-?XV&>s3q#WGvY|y1 zt9K!t_vvEbA3^oZ(}eiB&Ea__)G5g~3B?`B|Af|8Y_yLWY?Jiz-+DW1`>M?j=nXuq zA0&>f!*0H;Y9jM%Bswo~-9~yuD&M)k^Fp)=&^&AP;HyP7%Nq{7WS^rlX&t1J@vbP` zQTj`l<=&5y-q9k3;i*YNG`%{NMepC7j=y;w zq<+|{F?#)cuB{o321cg{v*5Vof=gHMCog!rOt8fboA%#$uP#1^eIrVVL$O0HzoiMd z!dDZ)!_-GrAtx)OqxaV{?^*l0-pvC{*(Un(v4*KHD_}*=*C4|oa+DJf)g=*Xz1MGx zp_6z5mS{|a4F~_>5s6(Xt>4{lj@^a|XPPJ^GsN$tKp@hb!J!&!Jxsy%yTr+mn@@j3 z#mQnYV1@27gY#IQOqse%Rk&i(Q|~*Ldxj+TX`2cDnX(RN7slrnESM6mtn6~~46cPE z40*=)FT0w53zj&-tXO1~oCn-SO+=3dotfM`Q(w|15-_F<|Np(0cf5+}>~5Ly6m&7v zjM`}5S7~JG$aK54!Gd>h2fzaqg!X6mLk7Pf<89z)qK%(Yi}`4Ty+LYqHYR^dtB0Yp z+dD#`Qg;d75(9tYNLtUQ?S#R8e6B>pqC>4{XFZ}bXV^>N$FCfzJ1e}?{#Zc@0q3o| zf@sR7SeN}TPlK^JvjqVNkW|t+eUzW}4r{%o0FR7Tyl`o;*Eq*0^T{D$6ow6U^1i~9 zABRAZJZ%-=Z)z_-dR@ZaU3|1^67dejMj-$MF*CbUgNo6ax+tgd+K@~aN-%a~g1Z2I z*SRd(Q~)bLul!rQMv=>X?8pyjc{o}crhBi1Rwf14LK$L4C%vKeBxW)e;CiRpq%p+| zLsJ>bzu~fLGt0|-bvyh}sReB^8SRsgXP3R&(+hB{(pw;|10VQ;#X0AlN?d_)H_Y;; zV`2(JX_(y}YM&4=fvWA;Lk(SLIRCbaJCFUAj59LkBjg1WBMR*QG*WZ1OKpw4K=(8L5|8PJLayvoh_XckSBATx8aOvqj z{E5{s?*)8k{v0QmN?mO`mPrT4>eKZE*aMS)0_TWzzcTg(Uw^8k_fWbrEyrY6Zx%{2 zk|BHNN5rdwS**gB!M8n)(njER8dfs*rGCgbh=F$90v z$}X1TwkVbSQ?MF8s-NvTel$Z2#Nl(f+ffjS3>J)dAA(;sd^UTQrP7DRxGYdj5hgY=b~}d%RF&w#ove8GWK`N zOpps%w!wEcOqzwWq%}Xx-ADX*Cxk9yj^_$KMFJ&1;K@uJc=6Yy?|%&N%ZKcLCs0?F zVznEvctc1pelg@4zGVfAxtFjf9sS30dN973`}4-aoPOzjt*iy>`Hw=d`KK~icyS|A zG-is#n$vGAb09L(n`q!9?VRs@r6|X|w%563{a=P@!yz|qa*2afAog4!E+Mp zlyEYMceR`nw^RGgTqLzmUiFI`0qj!yB?8{R5*HngY{)vsMP^7zV?&inqn2~=rt_Ig z{>8Gvis zel^1?Q6sh-YC7V(Ma4kv3@dnJ<1?YmW=%(_Z66S0C~zvMk8zU3U7_~rXQOyws9pN^ zfBl!lzT!WZ@e6`puH$gh=eDHDA z?oa_EUIPD`?s%h=AAFdnX!R`&Tizcx59b+pw;lccM^9qcjTXe?9xr7BF-T9mo04SM z7R|+rR|qQ~EkxaD%uBd(^6eKy-Gndx3H5V)m;$5BlecsI5}i@~gq7!tz$RAfRFuhi zciBts^{_Ns^2OVf0QC$4Tr5s?{){HBQ^PL-@65t1aTdFUdpd0+NF4CNE#1dxK%uWU z?r^=Dvf=^O@&yYaX|z0=e#vOP*@%bD39Bq9`sDZ6tn#+493R1++mj3<&E;<^fVpT9 z=j5V|M8FdEYu7~{J-+)H&0<+J9ybRNvuxpON&4k)k<#5?4;%}o+XkqoP0*sr{GLzG1~WN z)0?3-+Wwk{?6F86bZJ7|+N+|n>b(jN%bOcYij?MYGR4S=Jt2&QwGYgd^{HJ>GG6agmq@l(Zs8#Z>8!%NL!)R&V{9VuPp`zT= z@Gc#?d4f2N5!3p`3CqUcDD0sjtTdM6J@JcV4bBcZ_nO0+ge^7RjC763GyuDqP za!9bWtBl#0I{34sp)_ZoR>0xbA>aH*p^9LDC9JFKE$ifTA&Yp^e~f^-_P+uONK5331h~li1jg?$EUE1svRVqJ z#tVXC%ZB04YK+`wgA1#Vw3qd^eTdCf@6X&q(oXIK?oLcMoQv$U&Pq}bxF=-faAqy} zxjAYw!}ufz|M#3I{*OzW*q`R;nkqO&@j2iR%y6a|vyWuu)iQnrSqTb&*8MCH#t9Mu z$o2uIZ9Z)vtoR>$ivxM3OWaTqu6c$Pr(w&2)ja;AJS?;H@rH(%cQb`#d4*B9d>|**S#!9)N z^)yIB_>FnHd^Q^79mz*5!0?GdlIkmdbET)G6WHVI4om+lKiXvd3{EK%dccny+h+}; zaVV0APDYg71d9dw8SYoCCtCz4-?@?HsV6t)$-fo0wQMy&$8~T7>JNqBoG9UqO7)E^ z>R;>}KvMv7MvQR?nTXc*VEp+i*PFBZAkFZul9|gxij1P^YTcx>8zI|~cQ^L}T5GIq zQ+f`B%tjze#M(^nV?b4Bb*odyH}MjTBO{>82(4DNsR z8pq}0Qr`MVOuP3U+jZQyF^7`zgQDk|j$5*Ku_e~OD1v>3;59Uu_mt)SsX92BLZr|!Qf@zsWF4UmQ#o}oMw@e>z^nTr7k@gbW^PBzXbYuQ^ zq&aADm`bX_gZ9RFEK}57L{WJe-$6=u=G8E`C|~LZZOSXH?k@9RLn^emrr7_CU0$;H z@pRh_8Q2&{|0JEti+)I(&bxOlAZH~waFg5$i~B^^v0FGn!oOBu-Lk&JXes!n$KqrR z60OtB@fJb&Z+52o(g*Jc&*3oMZb=$q_vz4<&_A>Est+D&YRCOK+4V5Gq-Yuf58g-$ zG9~Gz{OcOVI?K`Z1H8*#Ym_HOSY}H|$$i0ZEmK0dkJS-`n|9d6S&ZsF3@0JJ?Fxluj3f7x;~K3GjOUS4QeYCuO9Bv* zbXJy-AG+1X*8-UUPK*leOs?lgr?)rI0-hiI3m&0q<08-gOiJdT^+xvu)Aw>amuEr? zUMB@{kS=Z}25p|_>>z)sv}sHP6FpDipn%6`R2>QF;9MYL?iugBB)r_sXBpx8Y@%N#%3b^@$^4Qvp1b$JaH? zJw`!Ft?wPt(qDdT-{|Uc77--IeQgs`zFr8)OX8+!SWI1A{&a)e(OACYQib!kKU4^i z#io~r(T9)DLUJBR=KS4 zxSGnur6vIMH(6EGZJK5!0FoCBzi7`>~jkBj(DYjl5+80d5O)lWr}x-IJ815^Y1U{mzyOk(SbI z<&luL1Dx>W+e?qL8HO`^7$pGma@z|KdQ?O8MO922;-u3&>4mB|cQMO1-b>M=!EjLQ zAG>?p4L7OAn+)HFrhCLqs^insV0(F%IcN~ykSRI_Rcsv45{}{bEbipAbbfh+hQFJP zvQ2~(M0=D~L;{$;)fam{h1)fCr5%VANe)Zc2BG{lKKr)Q1D~81q^JBH?(>Xe>RF|S zUq#tSes#C!JLdFY-ZF}5;mo)Fn9<;blLwFA^{<)smq@((!@U1;_OGP!NPI352)IkQy|ra3>Y?UnN`cn926I_&zs$q z3|1OjhCy178&5aq6{_Nqz1YQ3%?R{e0XAtxlgW769#$ z#9XJ95_)>G!}A-Rg~C9RLd}?&iRsUE)5-TlW3yNrm=zzUNhw;>6qNOm|tomI~J$o1~+Ok#6isC&3c1=*nM zhgOoKCEsMC0O@cjqFIQLIm8)OTbCrVmLE;G^R)n1W@>+Y_XmxT7CG=>BNT2iwW;Da z!k9 z)555KKQXbZC9r=G>8lf&j41^NU6uG^hbA#awQq{)s(XYBtcx)I;;f7gju z%M1}^%)Um{b7p)mM|S{5k=&SYMI{OO9U$j?C#329zFj(kR0j_>-9e}+QvcfP4Kb`k z$@94MwNl#=$ty@F(N)o^7(Om;6MM&ad#W9mf!fBiCMi1n3p7T+VPVM+{Ro9pQUEgi zer>|F&3O{Aj;V&vfA~y*BOf!!!W{M-@X8qKAk<%eUh7T#LxzCwJ#a2rPBFbcLKWdw z!_dtPCLs9t?3q|NWkEhOQxcsvphsU#Q<0x}Fm5i3p zi(kY+3OiWnx)NiopQQAV{pCD%Cfnug1--)<<#5_(xS=5WBCo@U82@@9I?n z)E;XisKbr7+~hPui#{G4(K~J+;a`jJMj$a95_W2;!OKqeN{&o$x~9Pmi72ge`*+Xo z3*anrb9c@%l7CvFN%#f|W?D$H@VZ^lIswO|sH>zr+V`Ho3RL3TjxmeBr$Bu~KKRQs zY`1p{Y6B*rmdfgCudj+I{IhlIopZWBQ>jn#3gS!9PLFiWDxeAoy#i{UrWmfS2Q5Scn2iY8Xj?@1 z)RbAe!apvEKW2WDznJpqE@%y$CZ{r-Y_FH-4U>zzvlx$bVlhZa_M5-085>jYErZ8d z((yeVe{oJb*V3XSBdWUQm+%;wp}VUBJjc0!=L{W;ufBkwU!!q=c238#r_Tv-QeR9Q zFkN=U;oufZe%>*j_Dt>RkamJs)AK5(UB>gWt=)TxVBCHX+%FS(;Rv^yhI0I4B6dn& z+wZclXBBc!w^vRIbKa>Hr+63%cH6!bGQ_d6)-v!c7K%1h9YeK#U$T>kzmrp((d{HZ zEohvl_dW_9Tz}~|G(5mI-3k(_G-j9rR+bI03|E2N#R_+E84#vN3`3iXJkK42nuQEi zHo2VBzz~@RIThFL50$^@|C$Phwfc=OEnC0r+*i$t-~2#CEqq&A*r+Ayyxkonj8oY<)SG1quW-J%eUZP4d zeG$~(P2`_+Yi_62<|3S^@ZY}A#o7}>0={o=Q3&{Nj!U(jK>XW{CowWN26uvhJ4-D; zoJ}yf;rkx7gO+YtWnTanrHLSidyAEvylp#R_Pr5W7zuEIn6M@(L zm^J!AXSV=k(gKTKiMU`lAA9H7iO2~tzJj0 ziNs5LpW>#D+lzinL&Le6ZRQa8wpZI8`HREPy?(bTI?LS_9U44v^}(LJ@(o5mde$c@ zJt1sI-1X60{`qh zq9~OC(>8lGeIQwaKD;nv;&lq^YtAIlk`B8fiYAjHOmuI{lqNQy97cVs1NSW+pE58n zrtV7By6Rn|LvG1`?D;}bONX-8H)yxOyfO}xx#d^9nZmi!B8ffUp}3^3N^Rfs5TmDU z(dD@rruYCO)#hLJ^?R)H0- zYFnk8WI|HehVXVePFaUCT9#|YNWmT--MDGfKumEdZhA=pju{gE3oBFDOEmp&Wo!4% z8Yxv27ZEV%%wEE(_n?|Pd;U?yrVo|FsGTAuesh|T)J>xowAZ-+E|_IhQeEe=!b*!? z?KddX1tOjgaG>Ka=6Ch;$jThVLs+U$=QSUT|FZe9DDncCXv|Dt+V&~q-byB%aKD$; z&CfyN0ZQKQL@#r>Wn4H;ToG9p;VA$!I7g<1zN8RQxGR-9Ncf^6zChU8kF*CrtS%`VYo+0%RG&98MTY)XH}|4h6LB;-EUC9$tDfOra~(vXJ-1>{#i z);X-gDC@-O<{zkUh2ER|(~`rNspbiCoO2PUV^L;YkQ+cvsqep(4*m~^3US(e@V}nR z+}N};>Zs}gvbx+KN$6p4#?g>erIFosb2)gfv`MJD~2z3gb2N_`M_@( zZTj5ZTXTz0;k%r4nvD{`<@xAFD2dwuIocgqt7|0Jw1d^T`#F}fX1NQK#t)Blx}&$B zsu&#yv9=!`?qP1tXK73n#{uK))_Vi89$}^^+AS=u+o!BEAa7^1;CuB}V2=fB{E;nv zdz0*?-XgZsqq|pYcW$4Bc_-`n4?BFL?;v{ZHo?C0 zq1#;;_TXxbwUM=uSH1h8t9BkaMj+&RY`mPyEO)`Eq_!DCi%qmFLleyGV@y=cFNr6^ z&k7zm-+bpj4!Qyl5*p@enQoX7cQGG>$34RBeX5W8+ud(jCzuEmT0v%GRHVP@JRn-O z)N)|-ecXkYwvSfbv;2iqxpa`#Gdu*(k3eBH4c-QXXt9}3XaXNm`S}Nr>~&P3ROVS& zM1oK{j2W9U6;#)H9GM#DGcmjzm|sVMT3AQ?gru-%yeW1D1|;<`5J4OUO&1jM#)VbC z+Ojp77^TOnz9bqc3CgFm!;DcDbsi^?FT5;n+{=|%n|k0VP&ngF4NT)?P_K_ma%TDu zf9n6arMMMYuW5r#OJB%vK0@>f6LMkLs9MrtP@x z?3NONsZQ3AO_K0ohZt}`iD*2@?9+!EVeGnMssl1zCDfC~g>FLkrW$t2w=C*ewAlN` zvl?G*oA$L}`U7CWFM-(USoc zD_}<9IfWKqH1~*&cUD!4HJYmhtzA&bb>B z#Y*5Y=N^IFM9;a@NCof_q0rVtoaqN{mu&NPn`Kv^z+d^IjFm4*U-9?duRaxjM@;1) z!ikG^;3v0$3(FZ{GpgyL&)j2Ar57UXlW|5&P&shYif?xk)Kn%Y%0qo`=}RZJVd;|UJ)n)VWX7y5+OQveD)D`ios)D&uSlc#S=^ULvh9tr`U4*a zC-cw8kB87W!Wy`@TYy_=W<$k(;MS6YQ(ny!W;(}6;hpX&;=x~Agc6rGYuuW7fA4$c zxPXP9pEgBaj$d)4EaAETTV<1&VqOH@Ss_YM#xAt58C>N&%?V&-XWOBjXB(i^W3kTT zaP>E<6&u@ZoG50{*DhSJ%8OQBlwGNMo~QcutIMD?`$q(0r%G$X=b(}sWSB4ikm=6L zpqy?SQS{#<2!F{FtAV*?*lufIrn1Ff=Q;lr^MfrD>lx5NF7FTFyU-vX?MXCss_=z% zQr;gA7Ibj79oFk^;+kMOWkTF};tW|*Lv=HDoR=h%xTLDWXHx6s)QeokR2((Sw?k_*gx66sygGTw zF`g!#^(R=$C_B8_YA6gv|3)RwU8>|{{n3GC_gZ3{fY|xCIgD0E#NSkF0!grqV9oB_ z`N$Y{{-)g}`9JW7(8AHoyZ^lq7{5`RHvl9wOyVJ*x5VY`>i@;C=*p@CaT;d#Ji*hO z%o<8{0UXpPO`NG7o&<@_QMJq+UkYH%EDQ_5{6Sw?by*+i3Gq4AXlZ#mLpOU8Fy-;dVwyJ9v9TAUEr zVyt3+_6?(g)xXj{b05nIhQ3O?ufP*f#%v%bcVZMfDH(5mqu_!l2&UDc5kD5@G07lp z4*&R@8!GEupp z#^qmHdqJ%^fe~H@pHHf)Hlt=8I!4uE903ufJAURN7O%xD6ieHUbEbC|gye6IAA@vn zyJNJ_%Pz?$(>#G=b!RoI4U!+f{h<}ArJ6liQcb5`IArh*P?f7fM#n}RSiU#<6~aND zf*pF3YrWu-TlVqt?8bHAX)sxSD5XLmUnrrH39-@&r$X!SdFBl@2MwX)ckod1cHcO8 z#?+w`&T&nD9MfN@;Pyc>CHC{_cd+>j4R9u5MT<@DliA|(Cs7liagN%?q~TYXNQOg( ze?mcfB)X%F{|%OC74R?N<{U|sivdoV7SzEnpboD`j=|oOAnR7pbDrX^a1hyeotZ(c z-tFskOer}s;Nq})%$hb2wXhC!Vi-F3`0C8D)g^P|BVuna+n0~lB}99)`Ak3qBzKS6 z5xAqK0YTe%lO&KB!2C)*3FiayM^tx)?J_~5nQP3$_*Z1dFF{L{ds4=a|DDu%=U4}@gzs^TDMGBM}#D`Z4+LgvZVL0s0476MF@ZgSQFr{p$Lm(k3Rdp7k!#~oQrr+tYg82nQ{?yKKzHg zA;|-5eN)pW?nowF>d1sC*4%m{$BE}jXNQ;KK;p^}OtfXiR4-^2_bK)EF8wRZTD=#G zN>(HZKl&y|OmEu4rK&D@*U3&Lx4Jhz{$XT>WcvRuhzwFwS_6gG@8J~9WPCUbPP$c2k zrx^jAn9&eo||bF$UBosx%ELK$T*@I&>FW>{J|bd4Qbj7 zu4Cq`;deXoA+qFS#5ykuAqFC_im)s6Lu{7#al`2=9=W1OaQO=5;D z6d%~Wf6$OL1A4adMBT-$dKaaqtSVf#eW^ub0q+V;;F}wEe_5=dw8>m4p*d#AD2p6) zA(UBBkfqMt$fqTfW~IHw^CKcicf62D`|HE1md1Q11)NA}{5l@(v__X2hG+rj9r}IY zx#$f2T|1u^<%aZrHe^?GIVgylTe0>l8=#(jYO8HhqiNdxgF4_+@8v?LaBEQ{5~tj- zg-w%pMkv2aTd|#&`jUW>9ImYw{Nga~CcxpmbbX96 z@dL=*?{&cdZqpD1+Ne(x_m$5?H?Z__da<$%@-ya)L=#H1YF+&3nY7V!Cln?{Bi36R%%odrsuFI+Dg! zag<&jL{13z>4lyT`Q;jWM{6L!6R^Y|*L%SYqrZ32K65QU{*&s+ifCe; z6)SEnqh#}``;I+biBzd}eUp`ho?Xy#ZEKD301JQk?Y5We?WT<5Q=(}Z7{mt%kF4jl z5(2Qf2rHg@irPbgN<@Ur^YY#+OfxszQ@Qi4FN}ds5V30Fb$n>=zh=-HW7Z}S87_4_ zS}S?dmzU2KD%j%f+avOdxWg$Agmk(IBHE_cNLUTi!k_TscDXih|K$G@7@q2lAu-`u6 z=vhSVGBMUdEo0N2R_YP88^x3+LbQGKin!|(5|OtRC%IOw$>(N#q(A%NFDqJ6TW{)0;fa=t-%$oLb z5*vsF{v7tr?^UVSuFv!mPk%|zg{E|gRJvSE(|sN)zU{Cg>0F|J{UC&=%WMAp)FwW} z;NB-D!S$P6oq2I0!I+ZAQxX+2-e7+rxy7ka_`X(c=unJ>kdGX;#{slVEpF*I2z2yV8X)7%Q+YPm#QFQHYz!$^0r#aj)FpAzAw9PGcl$(pFK_m9X5~joeKqxBvSXtV$K!wei=t4fl4gncPGDdSA$JA)dp+ zKKoJTG$^G58RSID{P*ZL_fFJh`azjx;pfm7Il+Zx4>}pw#tH3P3(s)sWR3KC$_uvN zGOj+-`4V+9T}}#k&%ok)bjFfY2isTu5(OY0J&e`k&i(_!q%wtj*+sri|0KL$%0FjL zpGP-g-QW0wicc4c6Fn}_zM?CkxOmao%wb083Y%7Rh=aS;LJEV4G0F$ifoqPb|C8tw zyJi8SCSH;|#OW6;|9w}xU3BfV&0?rZXhil~c$4;(twf5STxU?0Og2tPar+~I!DW6` zlZ$&Il32E$K$R%^d2aE^OV4!S<+zQ{QBQ?1%~D5(|@1_76`s#iYg!o zrfA)r0(zm_yy|0hZCWR{F6T`DrNh%eR62NB$x1r;@@4VDmSi31nZ>Pb}(5~V#@fL^dffV4F zpI40QV*_PsckZ5nbgTAHk+)#l_5+=^GwX*@;=V`Dxw+_4SNC>n5FmNTPL$HRW9f!V zm?K@3GO@`Mp=tha{%!5dM}54|FQRM!cPW2er4&YO6ej-=pIJ_=QG`!lt6>X!-QHRL zut(T6W}X)dOP`)r&6XLadOwS%SljepotpC(YOl^Tj;3Bc)Lj=D`t^q1QreCfo8m5f z4|(&t=M^8n-)kz68tNBIL~CpY0dLFXQX%BcAs50KjZw*^E+gdSQT~98bX7P-=JeI% zfz(-xc9QS#u|D;n?XP9d=c4c4a3z~uFt;?-1&{9yV@C0i`V%AdQ|F}(8T{IIP%+Ja z`(^EB$LQ`~G1ViZLj!PNwHqxXbHYDS{ZNQQ^|w6z4&M)+g-#80U3KBHT<_)* z-mcSA}hb>TK`=mMCx#Z<3Aw^E9TZwuJ20k#_5wh8@dUaNRdJYfOM>`slWUlYM z+0ghRy(v<>n;0Nk!O!iivz5dWxa~&lhL8A2@H>t^*-3C6K$~WPk`?!* zQ=I*8+D=bb5T7@;AS`z~PiFn{_XPo2+lQW}S*fuPjhA&*7N>L15;UV%75ruDD^n1} zkN=k2KH=Kb{-7tT5u5`OD21HA)hs{nw`MNzo1fC`P75%g6%709==tCxma^kwGXx*v})q%N_PBpE=YeivX)R#!a)1KT-wh68Whs}(KyThequE3%esyt?H`SA z@AGc4h%+=V{WAAkTHKH8(14pJ2Z(HcI}ueeg!5P?S-Ai&>G#XqWv5fjW9CJT3(23o z;>3O_;x7?D$+tu477096OUfTZ`wo6F*0yr!^*QS09+za%TNuF>dY^4U8Q~>)DfI=< zQg)X`J@iEc)W)LEp#Xci82I|<>MN&FdbM>-XlwpQczA(u)syD&eBf0K6%krR6g|qG zP@nuvxr`L?cJWJl2KoiI4Gy_>E6Ef$vWuWaELrbZwUWdwGj{KTSf(T6Vs>MxkG z4`}V&TsV=b7&+~`E%qy!*>kCAr%-#DzhJ`Z?qX0ewvQY0bIO13y}gPhI6++81J{6E z=R`(jJexhmm2|gSRtI>Oc6T8yH&2tj%fa7F5Bc8$z?Xb_;>ufOziJS4gX6SnM(}vX z41bNCO;L)^$zrMo2}LqdHHTcQ&RMb~*P>Z|k*A(scQ_knB&L~0D z_{!XjsIrc)xI7b^@q!C~mMUX_tsuWzMSG)gqL`l;&$QU{3k$1W&uOpT`{houqz~FnGku-wH9C`ZGc#zHw4D)At8?Hn?73#zjK3R8S z(}d%Gp81Cc-z`+Kcp5R|COId%Rh@S4obXLq|L>i#OZC?8a)Y@3-~F$2@3HiWx=pNp3NryFb@!X<6~SHK$bW*O0&a=8#+k!^+)}GD zt*-@0hFQX?^rs-RKC<*6R+>{4Sz6*aFwMCbD+Zx-Tu}if=-=qlLIyUWM7k=`ZVhu* z1z9i+OXQ2A%XcyHdp=_IPu1sGsF1B}7CMK6dv>-ewne_7r~u=Ob}QF`#q$hW#^cXU zG0~Zym_;Zrra8;$gSmVi4ug(H>r1A4emBP@orLZGWE^O*dU#0mnq20UoFz@SxpJ+u`4MrHfYa`a0G z-v?c{kHKLBH2Yn=Uw++R7h!#s4yTWgG3lP1bS$9X7Rv7o4`SJ0Ulo659^JpZoY)c( zV#Sb#jj{d9^jCYQX-`w{2LVN%#i7iyxe`LZxI5o4(e9ht^a^L%xT;IiMtj(|*gscq z5}T(iev^U`J8{9|>D;MA9daVi)T3nJQau`j+BmQ&v|*<=70zoNZ7Z8{C^JvWyGIa% zs0EAeA?epW`)BVv{=hdx zr>yulnjMphSN=U)$0)T{6yYfq!KmG>qb)GU1%*EGJ2V?bBmvOq8qsDPy!7#q3)dXIGs4|PWp8OIDbwOu;^~u6nLI&%8ySymvZeV9gtB*eiD;k zFM8&S*U(c<*5tYRy23^s>&tXkmR(dJTyoArC+wXa}%I1?M-H6^X;thZhOm zM8;O75A5?vh$Prck0kq*!?qzQ~0aDgi+T`a;s-^*A8j@Q75BI_{iuIZrqg1bM@`9(Vl<= z^k7N>A-K*IF|S+pkz_>4R@fNkSO0RN2<|i@ny0I0gpUUA9o2IE6!NvxeQKvTV4aBb zv;HS_J6SyK+pc987z0#Le7N8`dmQUJn{-1qA(wXvn9bn^jbf@+zN7hA+zUa~jT+^0 z@>N)smP@9GL3?+(en%BPpYe6#?1EX@HEQE%-@ zip!Lk$>NnImk)@-@VO<8t>h&j-KrPgnXhMMAMbl38X`uDj_dA?MWcIJKkPj6nhovx z+MVM2+LYJ-q~}2A=c8=fFYF<}{VmX6q7^)6A9&*Z@562|UG?!hlaH&Xb!rnf(u=UZ-;7W@-KXaa}x?hjBQ z0nm|+?{cLaX>V^;fH7Uy1-5gvxY?-x>>M^N`oH~OG+Ux{WkqOUg9SvYSMly&xVMJz}_nW*923kAO?YH32$jSUP zAXMn57baTNWOonW%!dVpbaUmYLmn4B8lIxh>e>w!|Fr0n^~xq z(?l@6wxC3Tq~kc9$ZPlu2;aIK()70^)Kev7Zprf_H@bBeJ}dyb&Z2iMr+t9SKdDT2wYTHy%ZE&I7#inRCL+J|hL%W3@V#dZOafQvqMl1Yc@m4izYFrL@cm>% zdm_%2zSNC>>e{P4pbL?|VbJrqDi-#ZrlmaVc;SV*WZW2qc5*o|o$zrME7|O|#R)2{ zp3O@z6^BgEWW!mBy~HMFE(#=4gyp3!F{lf^OT?;}(~ruQLgWKw#hjb%7YAk+XmOu^ z7OkY9AvVERdb_^|lqeG5cZioJeC%lwtK&5}3lOwUVHl;7DN$URvhM~tI$MQfzuB8A zL|$)Q4k<;~s_us3xWsLllDI(J0q~G*FI2XSzi5csmAM0vZH!)>Gd^$&4c(Xp2gn^` zdLqrmR;N9ZzV8sbs_t)<1gub2m}bb3$cImpG?+U)s41;u)~GNGx1gY z4JY1no1?W=*4(ods|q;6Gy?{XJZBA=V-eXX%GGOlJ}Tko%=qgqBcn3D1WkseGFqeG zGmegZ84=8kc2x*f;xurh45Fl#hs{>Bnc@712%nmW%{3`Ro^NM&qX|A$wffM4`F8!s z5LXWuYhk(cwDv=m)rub^SkK~B=cDJ zd%F#?H z&x@T3A^w|@#WS10gSnrwBIv*F9iGKb5zuD%4!#w6B}r^>zFHZ!_L1&(`DAC5=3Wp- zG902fysS2iKg((;@cVvZMM}84TWJ$E`$cwhB>#G30f@ zjyZKHbgM=nm1ilTwjxb@Q8y8c-{<%0U1{RD=oHE~UY%0!&;y@Z zEpo@q3n=(~3i-2Nt-E15M)(U836w4W%>zI%u(-FFD&Z48b}HzN*Hd_F2pqAZMA1U> zmC5^hMJ)8?F-_LJO8bES=%YJc07p06zp_kTW0#T7Dkj(c6~SZ|S^;co`>7YqyuI6MFK42ggVmlm3;=vO)L$X`mlW z0hPu$Q#UF9&1*mP#f!6iYl1}PcIJi=Ees%p&^r+~_XEDbs=UJmxwy2g4x39Veb9ln zgqX^Mn1j2V%8jKl{4r|RTL2S0hfiuEw?mhzY({~g{C9iHC$F4hgIC(}|3}nYFhmt_ zYuiKTz<`K!BS?35BPbx<-CY7h4I!X(gTNpm-Q6t=-Q5C1cc&lcdCqyiAF=mdd#(Gv zE*M(J83+hqDd-!Z;ejvcUBNP2h;ZN3uErdT_k&KD>6E|BRaev!%OGx)hxCX@1i_Je z@FfU9+0`*x^-kjqT{n5W8li{h*dN+1rn#G5>JWM6pG2%O=QVf>HL8seH(881tf1rV zNIZxX)@Adjo&Mp{sc{dl1j%EVkWPdWmFSLh#pn~YaR2YM3hJnv^S6wrUzc^Ty50GL zipZ&iB4uUph){*=X?SXC4l4g-oWx;wdyFq(XkG?azh;1XQEEYF2ghMYq(51^%Z`^> zT&345fc66`*JgwuJ4@fWv)&dWJt0V&k%K-jdx(I{n$Tl6G*9c5Lr^o@oKq*sRBq-k zcxB5cVeB22uXI`vhTY2(4G^Hf1>q=s&qw!>qt{iWKK#N)^_}Hc{(N1K4Lu6AW(WUO zSEdRr$Ba@WsJ+d}tbKj0VSnDZv*7mjR^x@(wmNVf6@!}v+<#aux&lJVXf@qf;DUbbifFw=agw6v7?aDq?Mx-th#+jiD~^&D;+4pW&K1UBHEJH6h28! z&c&rNhiEaI{Fpjjx6&j};kyWWc$#f{5L&%(eYmg;$(&%vs*qg4J|vHt7{1TOBh-db zg+9~;64aaB*7U!5|2@Y3O$gCpvzPM+B46z6EQT!#@C3*0bE9L6ChQL86IW1H{G8Ex zR?v70z3n_}eE%bWm8ytjqKrqh)itb|@SwRo-zqZLeV#i`O+kb>baPP7zs)&NN?zUi zNmJ@8GU+QWu~N{A=&Qk`jGa=Mzf4~Ujc&#J72Ur9^$#VU^VgEZm zWbS(Ng+_O?6y-ZI(;M_q6pxYW3~Xw-IFOy4p=%)e~H04EyM2L(Z8xSH<@^dY-E%T~v5NcK`%!wqU0z&$J@ zmmSO8x29KEtnY|#1qyGxqdgUf}eW{UxxDS^RhVR;)4b7p68fE(IPo{Pab zmKS_Myvpf3GvM}~soJ<-DueYs%{0b=vEB(+F%#b=g{_weV~03vjo7K(17jpt@c5U|J$+_`22r1thW%Npl`F0 z*BdAk$U3&^H~0|D4d6IeomQOrsUCAC=D}4Ixyc zNaC%O7ruSV-|s%+mK$Y;YrFo`r=ArAeDU;IyTUs6>uT|-H2fm~mRO{i!r;u7)I{w)J=5mim5hT&Ds|Gp6W#Ev)ty~E?wfKZpFB*9;)-Hh@d;MjmS^Vd7Mmtr162t z1LFcD#ak+Z>9Tvb=+q)|g;~CigKca;+&6K+$a@``k+#vsUe0pkcPqY`cCh}5v%R@J zL`Bd>&3FsbB&)(A>g15;hQ7wHx6va(Jh zj)B+@nva58&|GW(7^kvHB#*Tpi`oDmg54jvHrNd&0f2zip`pRB3cYq6$kET;vOyw% zb4C7zCjZDj&+ZD%Czk=8b>jSS-;&`lAreK?BELckqAU(6%3-p5A{-pikTk^)?_mnK zRdTqI4vI$fhQTiS#VlHfX9*e024nCjs^8Q55S$drD;7Rp?gS}zs{C*4W!cA>UvX)1 zefw9|h#v;FzHnNMv?W zkiq^MY7tXNo$wOvvyu_ES(*Msq=VM;evxuMZr}Dl=Jk|^F+UW<9ON_rQn#jQ*Q#&A z7K~R4%aY#)_};uEg&zl!nT^}PNTi#1$P9!%{Yd^aABhVGKk0Va_oX9yeIl-HNedbB zF9T4FTXfV0yUVHwsFUm8#oVuI0>;MVEhL~|sO6qpsTXdu$Hc}xIC1PrDO2Uf;iUX) zl#$}n%LR4`{ac|F{j0Kz0GJ(SkhL-iL77-3e- zk%K7574LI4&BZt0szwp4=QW#e0$xOD+`y1LQ&{6n!Kl=IR&S#4wpip2k>QqzrE`5$ zUBz+baEoj9ro{bi{H|!3K!XEozYy{47I8sN*JXML-_4V8`A*piS@V|N`-h$T6S4S# zk9@4&g`Z!JzKRdctlWu$D>x_7v}Ql#lCMN+h0WQJvIdHH(H};2Pgq2!iu;QEhw1dM zDRTOMBT$U*R2g;ir6YZS>601eY1v%{pj*a%k1bw6pu~58P}vE9u{xr;(RrCN9t{l> zNm;B1#ER;MH-gl}VrP+&{pUUIFaA-0QJe7>J6MKhq*8A(17d@V&3T)A5Wb5)7p@0d zPL1Ywqq0YU8|MK+wHG>!F6+vMODl4`&DjgW5;VcvmbKo|E~(QG+UFy0)YLetw;6dJ zd1`CELw2#etLVB=r9@h>`O^qKMyYydnjfWz$mEK|9WvP*zJ>)Uc(rk-6BO;+awyMb z4&raj7`B`}G0w}A(kqT3$pl#kxm_J!l)OH5|54T#dsVvo8 z!aaQmE)jK>Ox|!rmMK0ki%O`!@bVu1p`xpM7y|Cx zq&a5@MR3I`i2i!HzII>g*e_=J;#+oC88RvzO7-pFJD6%CQKp#a4u#KjNbKWA00t|lwSlbc=V7&lHI+8X@lEMmvt9J4`4V%d>frB)sX)^ zMGoR^$+XFx-x!v^_l;Qc=a_ExP^YEsbE7U3bw%koiE~+B+3siOjO3tbW`V*~_TdSo z<z~dJSsN9}Z@R z4b+JhOUohG;Ym3mhiMwK1{Z{@h6IDP*-}@Gxzdo1Zf%92&->q6O4S z57jnbfDb-NR_+m<7A&N|>pdDHsnKayM7LFEoGu`l5( z(kJEWi4{-B{esnOd?MCqC89!I%~S~UHifA-p?-wyC$ZtK-H4yyjitT?pRlQqVw6tv zG_zKjC)X6rQP$@lnV0~}6n6D`fBaaccEogC=IZ@P?fd(qCu~lat3T6QDE`eKFf<I3;^U3Mpd+>dylii8s!A`P2y^{}EjcLxMVTc|r>*0RPF^|<|N<%=aS zs3M8DgU{vuwYm(@BlXQC`;;H=#|#zsxheNG)m_`nWZ4+Avz8Z3H92E!$qqSI$r_o--F*|Z=2Vc=|>X3=mvp%%@xsW)7ZNF9T zBL3gIYd+qobOGRG+QyWBPAwX2kbri~W6{y$`ALi@g!d4ZUOC5Ev$VoBgmyW6{~!w^ zxEhO$i`5g6$l`f!10;Thl{l2HU9+p5_KD%{xmWUm@8#9b!7>g!MKrq#fqcp z?KW z((XsE&Ll{PTBTDJ7?-J#(*0@fg#l|r1!4Uk8_RM@+hslPIpn0@6$TPwO$qauBly46 zY(Hy@D#jU8I4?krulwZ2P3B(I_OC!-^G#}F4vJ5-9y-o5M5+$nxjB_uCqQ<7z!&!N z&5;JjNhCPQ-PzoTXqsM<^(-Ky4z9CXlf#q93JxW1GMim|ejBPeban z&#Hu3xS!s&J`#pKD~1Vq>^0tVX8s#G7|0@0vL2tb-)yYRjkrpyBE(;k$fFE!0Q$h>4w-Q_=f3BEmIj2yGe<7IRh7q*bkU~GujfgtSx4#CUHL5 z+beIDO^WcfXkW^|=@+u`*)n30J-BITkVK3BecU+q%1En8xU9w+FW7yZ{**m^l`m7@ znoF?jRC-g~5?9O9r<0KI$n51@V<*7uT+Z5f`4?(?g3Tg%WpIN})0E#%s&cbhXKrN% zmBoS&?0G*M3Bq`!)<7Ge+)~p&?FB+agifDN{d?~J=wNE+WNpLObqmNjd>I+y(Dpk2 z&!r*H;QwhazrI##0T>DG*x7FtWIDxObX{!3!UYgNvtZLR#$oTV)-CPHx}fOPnicza z6VlbVogP?L&!utaEjx6{Cn{Wun+&*fG;WW^WGJViSmmC<*3~^9OECtrzfl4%eJLZ=zx^B7< zF6GJiTJlcb*;7y-K!;YmM6M&Q;I~@1->%HStgT%pnRrK@?{a1nL{~gcTc|%(SZJJp z*1oF{8%)R|`uTa6asFQ$-kzP~L>i@@JbUHLs1rv&OAEf+? zDNaM-4Q@@u^fu;)RiqbP6++IoOMJEE6a^V)PztS#x|DTwB?7q2V8oUkn6=YELR|pz zh{n-IuSYHyo3XvD`TPf8YHXau9y@imcaM(O&-XN08CUh^D)H~K8cSB9Xy)^$J>Zxx?gGffUvTNZH}I3>(4LMcu2Ra;`EbU)19?1B&Pk4`K3L)EA*-BLSbrSWlk7D!K%1kyRzmTeOo|9~ z_#p@m5o25z9*0)^8#$C87z6h#h8)DB-1qbj8C>Zw?Y()_PME*+a_?U?@34B6<*r1w z+nn=y2Ed;kyEVjfl>~ZO%dFcW;njc1HkT4Off9i`)jy{LL)vova)e17%A!qpzviLz zOJDX-%CYO;M-dNKc87Pr&?RuQ~MxOk57Rnpw)8ev-oY_O0B`J&+fj zlzTnmS;!WV!4>{R@`=ik*SZ3Pf~|+YHwhXD**9Eskc1X+5jjc&T=WXj5c-A!X`QPvKRtD!C;&RS96$H=?fsv>z8~D|dF4Vk<7u~?ph7i` zffp`mza>Q#-gvYM=jM?m9~^hpeS>OlU6Xv7A@zlQh53zer@$oha&`>~I?Yy2-bN}B z|LGnMJlL^Ls`=9R3V3&A@7Y?sYVf^mo=k||1&5WqiP1IWaNN;-d;dR={{OF~)7DZY z(B!0c4)}L=AW}9RcB`jw(9h6Dc>{k>oXbKK2g3wik^Qs=+t~p~``Cz~s1Udq_$%rg z03)Q^rTGzb*3*ecHF=N`(n{?KUnZX#SzioKP`47e=YHq*MFgD+&=K~O7HiW=AsUN# zUlUq}Xhok&3~3XS{COg4$5P^!-6ehDQE@${)7%jD3z4O{5XFxLxlf{p*(748HxD_! z;{puXcnjfXhDaU&!k;g-)|G?c=0^r;Rip-Eu=a#i*_z3;D`}hx3c#$HiJV58zNM8haK`)M9iQDd4?znIAav1&vH790 z8yVIDkjxx|9v|1>|T}IieCzh)5tGAF<=AFs&!@avuLm?x~e3H^V{<<%VdNL6UKp~Y?S;J$L zuI&@MK0e`yg-N_dDw`E7xL41AMDQhV9#8kvUDka%7R;re8x6k%o%UOtavbG&&CU!C z4Yjw{=}dR8DW%M$SU&JHyGBL#;w+fF@w7Tcj*6(lp1LY{er$mh4B!Pfy{G|V>XRbo zm!;$Au&M_sFmFars<09?orst(zoP^D8SdlotOx`CdXcnUH4UXlB}`PgX5&!%D=EZ7 zHPOA)s&G&DtHcYghe_Nl7_S9;J^}}`*lVr=gk!)Pj zjrc(lt->WFWG^Rm^ii-I&)lC!La_7r)-jGqpZK0^rzEI*ZPecqD&~va-k#@7JC^y- zwW2%-3%9k5wSIAG{e^MLYIKC+sKm7$j17F(=&6#@`i}azZ1ejqTFXTy`RCq5ak>5> zDWtJH>q}Z^9hFLdQ!EQ1wh6&G9hIXTp*~%gYW!yGnd`qSW(CD{B!U+=ZL0sUGa7f| z;;EtjV0QW>bb60rqY>*}u~fi&56`rK=UlwOGjCrB{kpLf<4j+$6a9^dqHb*buxc<- zJ)#v1n_Q*=nhu?g8GN+&s6&Z+_BsAmp|-D)Ef6Wf&#Nq!`(5bfWc+;siD5bNOI#{u zY^LhRXoi3>S!SC4UwGZ)%!5r2G>w!qW+7Z-!>L1^pkmTd5Hh_`zdmwiQ@al=E0j+8fD4AjaFp@aX^irlZ#s#;nEd!<#KXid4 z3813@)KPZF_9g^B41vXNnNzZFPUK1&s<1% z(k>qJ^bjU0x}KzawKy_SDWn|nk`awnroG1P-$r;0ZyF%3%~&_uf zt%B7@iZ5A(y(eAml;s~QI2vr)k(z2%6R3y4n!Azozi_9}eClAavnlkYTAu!O_d$UY zARf#SDz*f147fLhg=o63#~|v^1Nn-+y~4i)$FuEbirN>RmJB(C6H%-pxFymNqdG+X zR<7i^ETamWIArWM`)x1UT9Nat3q(t5-UiXNXW|n{W<#rdEhE@WVz2Qdu)elmoo$0G zJ<$rH?T5`G9U2*d|m!!e-eZR z-~a_JyR;muM_<>Z=7v~}V@2GjxwzTCC`bzT1nnVZUY<?YiCNXw^Wbab2Ip82%1rtk_i@BMDaCt8J$uyiLtyo@-IUenqV zj!*Y*6%V?(3J*GdtFdUDuxi{=Db-3DMfe+Uj$b!EeL_i&1eF{D6FqUTI9 zCbre#mX$>M*~08IRxUH5n`5NUDO_?(^C-+^Pqh#d08ncw^t{LX@KqU?{Mc&`{b7+j zI>02gF)eDA+@^)?J}G zo+a!Nmmv@ydEr}%uJ1CcK!%a~IOx7&ZQJ(Rn?!IquQBn9Ey7h7$SmAlGt-rk|?O$E|Xr!pk_vpx0K;&CXm0)3cUFJZjQI%D%h$nR_u7?h^6!6(&yp2IQ$hq?fFk8cB*}+b69WK&ChPqK z|JA&Rs^n~5np(dtU_)QJ2tb`!bR>ujdROeHi-7$A&|Vi%j)=#w#=+8 zjBP!!xoeEP*@;T@$I&mgU7tzHVm5A-t`v+Q~ccHAH)^msQ zhHP-0EUv!fL;PV?s8PA0CN$ae^FT<`r+YuBT~}jHTP^X$Iwchi;1!$Cfs|Pzr@qF` zoPLU3W$k1?DMigh%=mTqyp%IVInC~s#A6a(2cH(;Ju>usqc3fn-$QMWIKcfuaUXqH$?hk+p1d3O+bk<|DpTRujr49~3T zQ6v`*VoHtqR&ZZ!AJVM4wfDkIK76+l-AG=v?_W=O|66+Hq3*8G@_<2f`(5zvDdrfY zSq(E2VTY>i$JoHG7tFcFBH;dQ53khiLSq~omTGeWI4ya=a;CsREb>hI`!sp(FT+0~ zR~gOQ6f&?X^PaFwrI)$5{%*{4C!Jf2zJ%Kq&_$M~!6IRpKNxPHyR`c@i(k9R!e}z@ zN@)=Nk;l^5KKD2T29edQ->ssj-`wmNxz8=8MEzT2UlJ9P6N@zdVG)gZt$-xaoaR19 zp7`zPfq#t7W7CLAT|cGzCV}nyg?Gw1HaeHv(J5#=%Khhc#E;9ppWpsjF%Y1SrQwTyLV1w_W9`DsGToDRWAle(*Ar z(O)Z>l!+Ry@Q)wq^TG{Nzn;cf-7MV0mS#>Y#;C@qvHoV^ezFVXvCTKd4oXw6l;^`t zsvcK1-M1gJBrrwnZpdv4!~cF~{4Fa0{yRtZZ$-5Xekt_?(@Ve!HMY^K6Vg5Wlx84x z{((0aZ6REIIpn_{%GlP0>;EG!BAYb~R|&SS(U(u+zh_>O!<7`90ICxb=x#1NDRx7! z`#3a9we(Q;V57pnN={Mty&-W%?`{7bC;hxGt*2(#5Ygb{}OeA zov+?w`e6@dN=L9X(WpiK{n%zqW8aZt^q#pzPgH{)S%c#OhTY7Ey`-v|PY&S+?;+OY znmL%$8!M2Tc&-3@nf>n0&(IH#6VTHb_C>BR(_`&;7haaQ*tSRg%ii0UW=^|O`t%{z z9{kc4!%COwpx;X2_*q-lD8>H6h_ZKJl({yy#54+DT$BlH=#XyiY5UUEuG9O-^Meuy z6ep8_q?bPAS}Ua!-;~c!SLupQHPn2FOFxcGD!*t<{^(isSJy`{99CsE(!Hd}Ejj`F z2qJ0r9bw8&!euGpAI|;4yJf}_LT$m0%?)aBNP)oiuZOLn`|Z>?C{&sCbBESSgzanT zsG+}e{*0VXNt8KFuEF@k!~B-Kt~OcQr0J-r%l^3fdhfk=hxKpmA&{=QKwP$3@*cqi zx8gUO$#do-#|b(8v&EmUPm-*9ZS7QmTP#zXeTQ+?6!{J~oAbUSKSy>giN4T1g$)F^ zNsE)~{~^2DfTodRf4G{R@LDfyeD)S8_^_>%kh?iVX66)Iwy3`sInFOrXX($>+qO6@ zCu%S-g4Z(#)m0xulb&a_v)ZH*ZL5fM^UNfPS`%z1w*cHQX*wVmK(GVl&&s!Zp{^%LpjDsO2ec-o@Nr?IPpI8W@=%@5VHww ztdU4Zv7AS7S+oh)sgW<7+a+|O%{Sl3QP6s@inJ9aq6`|?9-tYi)=ghmFHDy?Fruqjrme9 z^4%UpfBq5_@aX0BHlL{dxc23`uFT1w+p^}+VKCr?I-14HW3dP)+Mk{DWN>{or1Rf7 z>)bdDOSFYB!go8_XgVQ#RLLt*DCWf>LO>`sO8ZdI_bTP(+If%E*Ud}Br9XOlwKmAh zV>Qc{%NQ%5eq)+8bR^sQ zbWH?NMcB#~Fm+e}quL0BI;`PUY3}yR+02m3*wX=kI1*8GPJ!AAGH5Q{8dI&7t3p)x zkvacw{~dh~pk|O9A4wo93UC;Qj_~7N9nm6EEnV1JI8tdiQ+Xuu;DBHQilayDpjElw zBrfAhLG%UU-(BKUNob!CH+q#M$u#ozGTX-;8yAF?gS?_B;UH>Wlzjodijw_&>f3eB zF^UicHpU)kgREi8S2X`~>xgiXYu5*hAp3~QuF9+TO_3U$3$NrtgA{Fqg~dK1)mlsO8PbO=vZ-(hKdA^jHlM{ zDwc6anS8VHwpK9IAa)?@(K>$KZ;4lui8X*$Z4`O1tkx%&|2sCaM2*Q?JN-40hq{jd zx_Zzp)h42HFD<=iss;Vua~V|R2s!bQ+ms377xFDO9c#Fq_g#5&zTn0pXzp%cpBknpXW7zrU4tkH;r(^cfnnL~bvV{V#VD2_ggAbQ;c1RI+- zHFM9g7PG1O6z*M;jc;se7f}|Ee6U1rww0T*mmK=pj2{jUtEwbqM$f!}^yL&@gi`4R z-+xWhD-9;47;5ToMh@w8%{pC`wxqIfj|iVlH`dZx3%ja~!RvS!B;@ftAh8U=A-RcM zQR=tqsLmhvY-~A=_FdH(H^A@xX?r%fC{IEJztqfp$J;r)!r){_htJ8PcbXcTr-1XHA+hVuz@%P=ED(R*o-n7rC z5AvFmtsPw5j_+}Cneyj~$9cl_Qif+FbV`4$lLkkvwZK;Knz4t`c`5FFV`=-BUcD@6 zVa8{~v|l znC_K#97Kd@feQHkyordA^*hnjeghY)R3WCYR@R%m0^-Ekuck5r;QE6r$wn22DAF!$ z>!x%#&b~iGMxEeeM_kDIqin{2l6p={$Z1Wo6#)2mr6?n*0oO>()En7pvNj?{M$hdI zHG4rEz;I9D2_H~%rrSy$IauXLRkrVJ{(ZBPbSL6QM=1zF+$bSz8wHHwvS-Yy`@R@S zGCIk9Qu>Gt9_E#({CsJaZWodJCr=`^ctdc0HtxOw1TaE6Uv29^RIrzGMU${DHbCI= zdi(1tb1p6jc099;elN<&-kYi2_Ks7k!iUXb{h&bT*Y2>a5E;t`&4N2CimSSXFE+>y zMLnq20>)v^{A^b?q3*FnK~?v7Msx%F+Ou?^S#xoehjvIiGtu*LlX{aFzorxHh57ed zj~M45?Yam{0OffHKQ5AOlv*6oP1L91z8a`Bn+0eK!>xrB6M6vDztq23E!A0Hd$FF?LG=zscE)zB$3x}_|M^JgcV20=8z zRZC+19BLNc!r_}zmASr{7=L~$^dK+E0c}D-Nh(c^am%?90UF^VR4#;KO0?*>zN0P+ zzjG=J!&94WCt`&Uhu8T0yH?gGlbWl-uf=dC)dthTSTDI8G1Misc<&Toz((G-uQm!? zHDT}bhWY1)_JB5shjwgj#Q=DVZ`zY)weD7AazA}2A(Zg6aBu{jpXrTNYaB17F#I|Z4FVL+B@wr%5m&~ zC`3aNKAs}tX4ic~-b<)pb{W^WZtZ&KrPXdf-{x*ZeO9t+45^E=Xu*m3JpIE}O&E!h zRc3ueqHq3H3)@s`YSKp!Eh&2v802yb^0NG9DMcQ9o-D7)YYT5tuxk!dJCQq*P?_#> zz=u`tqeGLS2q%;SVlv_GV=!9l4Ai=TvjuzCyMHUpB@4C2zT<{)X4mUZ`BKKYbpKPq z-%&u#m?Fyl!S9eLyqEus1-<_-U*JGa6JKo-4h@AdBRAC{v|YPM#30u|j?UPW9Z?Wn z64K5d5r6q2b`d~!TK9gu>1kU4ShvY{@n=~VlSY(ai@sKKr)mwvMOv^R8xiZ)o5f~i zkmXEk3Fqm6d1)TNFcK6P*K*F!+;yVj=w0ys$-3$2SO^Qki-7$z@9py^1aoZ_=7Fv?A)KRo{}1Y(GrSg;*gl=+l2fh`NCj zFyf|#Z}y7r35YO=EH^Kr$^Z&))$tEOWqy9)MGC4Y7x06%YdDATV9O>9ep9|X>{0eP zu0hZNFxDlG(DqC7!m>K!EbJAz(rIq!%-2>B9Vda1FY|z!QAL$P<=s35338GYL1~4* zVRjz$@~@z7903v^2EBpmVVB6fM!dvx&ti>={w(z=%Otx8TJRf2O#=HzL@q49f2Msi zps9>dx1!@xDaIjoIi$PIQ6s|iOsvN4P5Z94;WHb-B4+TLcFy?gbPQrskiV*~ zb~IVVQqP3uwhbOPvxNL3IaK(sC-{4A9H}wAYFMFO(kRm)p3um1D!aYM6Q1FDk(>iw zG4bK^nT4=(yWzkp-W305>+M#fvMH3+Q~??0_gCG)U*OE)URjSHtNu=B`KE0xNO}KO z2#beOzl)q@%36BE4dJN?sL0Ey3Y+%gzd>EMR}jc5se|o;hWRu*PknA^q{@>s?pMK^ z*yk}ugGV3SH+UTs*ns}Cd3%Rt*eCbgvSJnSeKUW*;!{NO8w!0!-?ql9YM2tXi7bfn zH~VuX|42MoMA6A8H{&H~P@e0g>0J6=DM|E{?l07OY*j=Ti>di#NGri$8>Hbeg=izk zJTgfd=_>2Wi(d9^&cV=PeF@^dH*=jx%z`3OuwM*?<$MLl0{~ylihS;n*PZzH>Krdw{=AC) zn7lgmN;qijB&ov>?z2~jM<+kVAD!q0wT}N#is-)7pPozY#AS|ad~l`G8A^|i7!cb` z`Y{GI?_b$rl6!dl)sf|}+((G%C81u%8Fn6)h>~1;%eNPIxOdBJIMbW~q2QPRns+D4 zrQO=$!fs}U7X06$b}?sU?ZorJPnm8;X!+PT)6n`a4fvjc);2Y%GXG3Pz9T*SXSs;L zCjRihW)?RLj<&0xd-t4_qpI?vc5qEO9oE$6_oJl*%J=I(FRA3i!@M2wMI{$mGR_{O3(P_ONWIx*?pJxa(^nj^bcVkehTh2 zLD|RD84FYIsxg{Z6na{a!?9N*fM`J8QGFsNE_vKf9p6X3>qIaJa*7gGX>D{&yF-yH zoqrb*_?Dvh*y)`Gh62I1+?V2A{V7pPWgk9yEy#yngZOb;76*!X>(X!g9T7jrapQtAG9(p%1}iC|5{VcF`4d&M%KT9Uw_F4IT!*EpjM&Tb6{ z-Y=(~Tks(~P8Cl7tAQ#$Su+(>6XhyMD4H1T(cacjS*_=aJE6W7hC_Psff1ToN~H#d zIgoRKwy~(1jqyakj2AbK;;tW#b874VJzn}j<@oM5|FEn!VT0*8m>}sV{W3Ac zYX}QgfAaT735C)RHa&M&Labu#`G@GlQZ1v4Q5@&3_o?*0dw8hqK1nhS3=tyvbkcL+ zFZ7Jy=Iae#-D267D?((I-;uaEirrDdz|T6AtdiYxlZM5Rl67f*axW~#2$?PNoL$SbM1KPzH4 z|Jt4>e)UP6z#6G6-yg=EMkiB} z4teLfN1Eyci?9;N6``oqx3$MVXHX(@h<|ru_bwL%b?pHz`J&0Hi&EVLof?b(X2#8s zmC_=UEnc?2&7_BeJ>P!Y%{HC)I?3@`{p$vfoUL8R9C3eXQFw#FYJb`!WtGW*&A&~C z{PR}#X{6H!waJ-o0?%x?30_IR#Z9Jv_cBg!kw^(y0XOw#+n#QW_bpSCSGW zy9N>uIp$*wbuot7dU=PekQnx^JKv0b3w4XJy|ewP4)!-hnY=2izDuMVJ#PyDTRJof z&{`e66Mc}wAX2N+Q=VoDFRIZhuaSo~kk{Y@KlfYT3uy*w$x^Hkad&dF7&w>qvoc3{ z-B?%wxt7g+KJUnuwI{ac$Ps@n{bx|rLW&HC zNs*I5`OJ#<)8iM+EBX)kLed^6ZG;-cn0qH-^PhrQj&V*05xEnl$u3Ao&k)pt3pjuA zPIChQsT|k<*>F+1Jsbs04y>TeXm6mnF~A#ebRB8oow>HIC-KYFq78R~`mQc8SLw<2E>TBvw}bIYIxrB;duQsgt3>wc?HcxG#G?nHXda=WmzCqhO7 z0swMHtF!a)hWJb4T|-3LJPxnlN2FZ@<5WT8esE!p$0xfPN+aCxY@NoTX47tXkOSY> zPo%ilXpVYgr`;(l|5pKS(+g*S;MXos53T-fN~aeB~zpb^<-CXTV_|PvIvj>Fa4e+=Xth z^-f#Sn#nECgxW%?reL?5(*>LGYIpOSvEI&leaH-i z=;FUEn6~!)3TdpA zUT@N;OAfC3@HbpFCK`lbn>u-->A3lH*OKrz?tJm&SO^HiQetv$XC)K#-^2SEZr5-8 zGf?-;Gu=t{y_cDmspO?&c1^vdh||~eCba5G%#7B|`-m;_d!s!`ajk7}@WiX(uL3xE z&rxO92tKoyL`ED2wIU@Sf?5%UgfQT|EPG8n*@@a|rQ|Q6>@U?nWffYWyY`VrRaVi0 zPnqrHkJD>^URcM9uxnuVf`ehU)lALrzzeTh&+)^!V|0I_7_Kp?E2(jQ>vZJv9^Ib0 zg~r$x46qOIAMd}koW47e8QS2WY{Nh!Ctkj+4HFO|ru&nZ5zyJJ=IM<^=L}$6j2a1I!Z!6Ce1I&??uxg^F};*T=sgi@Qny`8>dwL=jpu7Tlk(D~QFpYrejQ3@6}4 z&kBF-EiDvEQGBnqNu-GHf6_`II~!x3P%|L~K;Hp+25EPX9Ie^EKu8wc5v!6cZc|A% z-Ut0P0*o(fCNwB_{xio)GnP}Cx|#b;ns43jSN5K%xF)cmoq9BjMLTTsv%1#-m7bT2 zU?4xk5&A+1i?Vz7U;3S4pOzhnw8WVNJ|Y!LW5Hmq1$ONDp6B!%3!^Gtsd5RXjRyR3 zKz*lZ$=@+*P^;5B+3#^iupW-j0zz&Z1%ded2;OWym6VW=r<*_!IrNzDqH1?-Ua}>d z%C;(On8@c4;|Yj(vz1xVoNt7S=aJ>Q6ICC~q7yn`_9^VTJSC&f{}JcjVg)jO(AV}3 zbe3va($N`?AnjrlV3fa4qw=__KSYIqU-4mMNlFfnIrPvV-QD?d&ilRRM?Cvk``&A<>p<%|h_%euL;jJu zfakBnPcUHqV~OW3c9$`=)HtZ%1s^9&pBHBfcG$Yyz0`b!VXrZU;W@@IkCaVL*V(z_ z=Id(*^+c5ergw9s3y)m{xYQESTO?TjpnO)*%@qCoYTa9;;QS}p$b<&slKnOJ4il+u zai5BFn#jn<)MuPb;)WZT8o7K8C6%s}Oz?~*%7#7<{cxzsiZbu_gdLmA#z`T@*UXLW zxwJpfw;Bwq21TPqm(GCIe1TKr2E8CjN^0#gu-9$+XKfE$GX$6Gv%)xGSj=HA!xEi5 zv2kmt5^Xl86R0M6UpLyB7^6Mi273Mjk(<6%XJsG$N&7;p;$wV}|BmvsQjXMvA_}@! z(bF=w&Umnp$f7qtJxAfjh1#+a=?P=EZNAkW&YoE)T z_F4G40d0NjdmqBhj%M7em%XHNiY)e$zzChHQmAJ$A`gloIrW^RVMd;Td+KTbEhr!7 zy+I@JqNoL)^4LIQyQ}^QjRB~!+Gon~&k>UYLc`-rrO7+K=}8$rud_zDM#3xRCTT~v zpFTRwD0O)J1(}moWyN`wFgP)A9z0JX9JCyJDK#sM1*LKC%L2n*+Nz7!tT#0ickzlU z_if&UI@U#NcA7^Wc4&Ov3Vl#S6fu+wzscaGSg+Kt?|qB=CWNuMa2nD6x5;noZP|`{ z49HIA&-2t~e~Gz11P~{8KX*-4g};O#Ci9xo{~r%Ri*Wble~igFvS)8R+`J7IIOtj^ zyc_qwpG;~8niQ>Q;~c;BH5)fPzKfh?F) zWTNw9Z6|4GPH$c+S!9yXECchVVPW<)k5|YyL6sn?ZvgE9A60Ikr$pF0G0_8EuTnQl z9t^;#?>Qk$hVg9HcQeMQ@k((V$#5^`j|IGzJfW!{_)pnyr0mUQQ_yLCW6&aD*C?a! z2o)M-qNP@XqYWKAqh4)Z>`P7@-(N#}z}IatDk5UG0N)f9j#$_3_M^juBVcGVs11QE zYR#T1C0%oC_HxNz8gh|TVXyCs zlz(i?6W1(vAI2X4i;m~AaDT0o)>p*pK1p_m{z`$rdwJ1RB2j85_p?^e-!OzLf+#SW zd0g!NZuw_bPupLVu&h}orw9; z+SX%=F3~U4-QBXpNsCoc>l12sP$-N;k{;AHTbe?-0d!2PDx|@$E&l6d`yM8eP5tdl z(nm6%3C}WI#J6LeNJBH>^*n;BDQV=bxr}jyD8et~8%O(WsCgJJsI;(3H}z-%QPiKAUKErrL8T)cy5kguET@1faN2D%6a>6yBtxA(&Z-HiEXBD&E9yd=H8- zEGH7;e7-Ok6}p}-VNI=t|1n=SQbs4KS1*m5?l916H-2f;+4$$_dn3F+qYF%W&Fp!L zVV#1hy7lU33RuW%hb-b$-PYrx4&)FcX3a8Ts%VkDpTc59SB#^0LvjY^1Nj*f3&F!k z+FurpVfsrU{o`U|F}3=q>J(Bt&*8*d45{s9g2&x&1ci*`MuWGTdlsJ;Y!nARc856c zYt}1PjDxZ$s`LmvolX8WKC``GiRq2)_+){8!LgKdV>_zwTP||VOwA@OYkZ3D4MOcD ztTbJji@}m@a>CK`1i7IldmAfL`cRv37iv8*#R!93u z^*SMxZ0x}f!RpC)o^9;?AJTJV=F@-1K*G@1zQFg9zQi;PC%~Qk=%@#6;aOZXZgTZ% zTG4lWyRQ$C&;zA!7K6I62>>6|q(>q+BDgj4`)FjM^(Ms?bCSX-u^6gcfx{piLE`|H%&U8ctCQfZ0&wusxgbv3F!OVF#nBhumPZ7NYoK zxX;iwJw2r1O$)OOdI0`%!l!GTP(JSwznxv#4oYZE+I97hvT_GP+4XRVoR(NhOPYMQ zKx)&kIkF`s7ydaS-;#)(QR{ogQ1^R!qV`<ZInw~Z6H{Zz16(VpvZ^9i< zTqXG!{s(DB@mI4f)6=LsF3xexmnl9R4$g_;#A^$nF` zdz*7#h%KmvxOnXHpe)SD9V*ZTbCQt%DO+0|P^*zTb7I8gCmT{`zNkR5tyA&NEBIE^ zM#$MtIQDVZmz#^nafn(OF=HyMDJJ)iig zwBC+2@F-cd4s-R73J!_=)Yu=}i|Rx{;$9kr&JjL>W^mcc&?+&0JE8c%B5;4)PXK{) z>wsE|@5p~fsZe`I&Yhg^gdM zc~nRm@2^_5@x2O$N*$RU9?X8XEJhg`tYy7syPb>j51%@&Atfp}^{)yiM1u_40 z4De&sR)7JKP0JU)VzqS5JgrbK_(fV{bdFUu=w7d2-SSUu^`h>dh7=6LB^UwEj{S zU8aT@3f8(`AmQ+hq~Rkv4PX_GV6}WSjZYgz){XW4-0IF?qqVC^N114Ix%JhaD=Q!5g`blMGK1z4NY9tm)8+O*Wi}??2ZrpFz4ADU8an?i8-5x=HNr zd-x2VVAChE%y6-6g^9Oa+=vRi!orx!cJ*XV6%39ltloInOV0<&|5KcTUZzOG?Ctptd^3Q4e^3d*udN_N`TdnxZJh6-uq7|ysZ%`>0}vwcCzd#r5LK4A=C5s zVLa4OQn6-_Z*zNT7ic)XrR&9$Dq`*2nc)KrMwp+>d*>Ej7=}67aD9rB%Mk9`uGEe5{ij#Mpr9pX`N6|vp4}gc3`~J>L)SbU2@!ivr^%I;$&a*DR*6<+b57u-{PX$%OY z-vvanFrw(pm4wn&lfFtw>;;HjTh*;K0KRtA>k$u(CRgZp4~h{CD~~{%4u8CQjJ`)Y z;(VGGA?+|s{g~pxyQ6|MK3QQ`B{&a4YMvV_O8T|rWQ;2t_v2wn7)nSv=~r5m+5w zzQ^JmJHqic>Cz~3M5aC`O|p}Qi#*P_$DS!FeTA{=p+tJ*B|-&_rkkAk6a!zg4ogDh zUZ2EBW7%(TYne$NOB4Zw-~X=^7ns&M<5mbN)>H} z^$~^#%jT3Ng6EesXTl?0T#R$|5=0}id^|}T|@nO>()wc$1QpjhRQTDW&F>h`UD%dK*`ufsf*M^IzcrsY-@UNhiDTw8<8gGBF#wX zo0)a*MeQOPlnA}Aqi*mwy{Ietj+Cle+8m8R!imXR?cype||x?R?g|uIVC&K9svp^0criXTd$MY z_-*zRVyU}yaZjx$_RYbRg$dfH=Tm6?Z5}FALG}9zkS(?{U8~+_dXA>I?SC- z;%ZgC&DTol8WnWgp>n~upe4bGWlrbNbZge|fSS)S@`XsOuNgA#?M0c_Lz2I(8kqJEh5EG$Q>`+}Y<@*giW@ z{VF{)W!$x)c?`=jZR`(xt;a}B(0~(*s^wwrzZQnH+EXV68@DG{#cV*0s&oZx4;Tt;^ zvY-+hiip5OUs|%B<5<6+Ppj?a4{e(WWqCsA1d3 zxlYF+z+u7Xf?=P*DHC4cB-ioSoX;^-B8nPyh+glccno=fB!==6;AbD+)Ur}q8Gpnd zms02Tq!LQp;W!JhcNN?b#dVj`e|OG#CbcExg}i$xPOk6P;O+&<^?a#fkrHZmYY-Q& z*2THfjMTPM`BGvMLtSacb|fDWg`(hQx`o*bP5KgVf0!O|i9BwAM1$VXR?VsHj3wsG zaw3eMb2p3=Me@75f$UM_nu^D4by@O!P?136qATC#-OTo`dgh4xmy4NTOM)+8G7bm) zyW%WqgW99CHzN{ZvWjjRMDlU6l@i;o6x@cF?>>JxaYtG4Oj&AAP_``P(+1JpQ&YHn(5|>vHE!DaG zY&j`gC6r^1Sb+JLt{tz3bp3ksosG2vgSr6e^C)QWa$k|GH>gc~itYmK&Pc9mGph7D z^K|M&vTxx)@tS+fH;H4K%%39ha;-gl__cHPv(*v~PUD0{ zE}N12fsQ^kfEK?UoL>|#lfZHW?F1ndg1fyO=2v^2&?aH2ALPC3mgO>twrrWfK8Y;5 zB@X3pduiHJt@-J&9K3t$?EU0(i=oF$1Ojw84m!NI!Z*6Nh`plVRxEd+R-i)im*JI1 zdQW+WETuRm1tg9?+NmyntEO(uBJ0}^`TjZ#6R)MWTmFck4|UZC1TaV_b)`03om@YC zWq>3EXe324M5;PO@n@ClXwE+%QuVJ%brbQ~YD3bnK~nL^y5xj2&;_C%)HkF+E)U;S zA#puE@b1U#_3|4q``qC!Zj$uwSdKuY<(cPHj`IRCxV*y14Q~3bMHuV}c2ZCoj7tIC zyvunIQa14{fzx%$-=|&YvMs)PlFd9~ue%RX4UPa8Kf`A>giQ>*HlCuEy0uoTYxz7h zprJ0#Se7cw#f%yc6qWOqB=S9U zI&I5k1f5@|d@Nd_kC8Yus;yY{VKR*xH4d3T zEDyR^#-$j+IN_nP6HdC#d4hpFKj2%LC%HhbkLL#dM>*O{wL*Vz;OCMtGW$uVrBeNy zL*kC@k$7jISJYY1g6&-z2IF<@`zr5+?ynMOby2h(ddY)05GnE0tW@2*aVdQ&(XMU7 z(h?ik&=s|td3;fo?eGE9EjjLQ^L~FGD1y`DC4&|@KNSLUn_ZP@tVH~xmSTo zy5-j_9R==ldumM{Z$V8#`v}j`K1h6>H@!ZAAAYt~xqRG5e(~&43}T&j1d7l!TZcDPguYb-IeLqra?GWLpK!3I`@q3+S>}^xdu#gcK{`|t#wN`N;G}@Fs2(p%8&^uX$d3>)e0&MqBghx^Bd zx3$kP2`fu^ON?)T5(8il)Yn``*E-{bzg;o-g%F-*i-ZFnVR<@w%U}lR^xpC^EoXwuo z=CRX0njC=Q<`rD%}KYb#+JEV^BT!pDW59CoB{w^@o-;o(6K>Hk~%?%HvfRgwrfa)419|}@FQ{kzX*4L=(jM1hq zIKeW`jmyCzuvnr+V}ZbL$m`C(2;bPLG5Wh;*m{H)R^}e*F>J%pU5-2_;@IJW!$gLGF%QWWK>K^Vn-}7K2Y|FA$S1ZE8P+W`S0dk z#{(U(A@?BoccJ!d6g9Lz<^Z~mj8oD{W{pdzD2}q785Kj06E-xYGR-8C_cNq~>{pV) z`*0%Oj(v+?+{tauF=0DNSo*agT>bwVZFd-}x6sY+%#5gqaAg`fUSn_6gJbAo?%C4m zq?LA~nm}z)YmEXMPPO@3>hTI=cD;RWW%8p#7p6&S$Ds9uj4W56x|s?A*uQpH0Q*~T z*<@kKX`rfJGov`i==_E}#a4k z<;BxW6Fb7j-j(A8u%2zF**>GrwP?>T*C(m0@sqe&jBIn%kTj%3suhMCAvpxiYV*3> zdJK45pn-SjvG*y=glwG_k!~1wkqlEwWX&yGCkJiFcf+5)a^Vv4rI%t>)BO|zQCq!$ z3L4`jH`Wc~vu6(3J<-HM%&S65BHuz>e_5I9Fpq()!}vRPc(q(hVtzi%4J$! zF&d1HSG*sS>h-N&jJ+GInGxXxfy{_SBN4Sq`(GhKRU5vizoLwsUyzRlBU;wUJ2l48 zoYUjVWe3VFk7lXS^;+lo6*)chP9F57wB{B9o2?RDLta6bZDbOY!#xtwWX`T@m+mZ1 z$}jIYoJ%!ufE)-pSWnl(Mek1T!r*21lbMg+Ql(cZbq!56+@-h8?0_TQ_#N{*=T$we zv1XvNt_6M4y9-26M!Jbdmz(?^XI77p>>n0E9^!Z7r2KABpP78fYQ7Zq{s3utGd!J` zYGwV2ysI;=PJ&Zf7`2R}rN2ZNv-8hl!mQjK-RDCgVG6UONX7cG zA8*jm0_Dhe52=>q0{r=7+IT_#@fmvPP>-f<56efeXIV{k=K8u zgT;Z?f5by8*Ah})h=u6^GLQ4pn}fZi_m-ERmyqwYoEm@_ORN6WSVFa{UwfG;sf#bu z2HY`M#{~*E3GIvaDVjsVO{3f@#DpilAn)$lO}?Xh7H=TE6O#oJVYE zuryA{3cx3b0Dy@(o~x4tRPl$81~W2n2^>vEm=Gl3tjd>cRw0G?4;*XSBdI(bYN2eA z#2eIixhbyIT*zpC!2$aG&fYz9pZco%<@o(LKXMXM0f5YQf z8zYNaxu6bf<9{#N1S;9cyonzg&NgGefBjc(MP8Z~%1p(8(vepll1!1~CS_J1$X#WSmznxHb{TDHx~s7_g&!P+z!~ld;~Z-Ar>)re z%|2LBVP_eTT=c=sm`Izz#QA7q+)=PG{wcjGDhl9nqr1iXUZ5C5j*1zaOt5|GFxKb#~F9ONAObsGNC@X1<{E?^AV74?32=;bvn`i@_~ z$pEY5abOJD>45t^3=>o1E_My~4z@0Y$kmM%9D!qeM4zvrjK)lgpYT{B5WV?dhG{)% zBH!N!Ij_{B+fqIbAB=rcExY9BWt0{~TtzjPkFuMw&J2B*`_iwnwCTs(R~z#d9u>W> zRp_ci;&u8rZ3pL$ZG1CJ3#`3IYy7EGqgOur?KfVYiv9aX)rv+UBS%9#rv4_C1MvfM z91|qttdTLN<#g7UD=}ep`?#X9fs?RDZWabhAvT4@O(oAhJvs{+BBe)3yU3uEAMDLNyuNP^fV$SZMf6X-ooppi+<0 z2A_a>4;Qw!0;Za5?yYmqkDa+WqSmS5!T*ZtKdO26p=|H~EAN*V|GoKkVB4=Qp&GN+ zsyDORo~KA)OZGMvx(qC1o91LM4b(Z2D#hA}os3Jfrqdg}z3BCXSN9>PmFzDRntcHjxlgSpV#B7sKZG9)kgy zxUlmtPQi*f1x_{GHLWx%2EduWaDWH?Cs+TlL%B*LmDDy{cNlFNIXa;8&rDFLfagh$8cSmh5ydW?EP1m2l1qyGkqVo6OpVU-Y z!H~~)EO71EJ-4!kB{5WJJ=i%*=|po~1IrHF1pCoGZ@5-`|3g3Q$kE{`orYBpFlQ{& zSK>BFnZdc6#BjG_iB}@gZ~Rd^?5XPdsAfI0fO?GV%_3uF&?c_5b*y*Pf$wM_uc3=| zpJ$k#_x`ciy?)MU`UA@+*wdiS*DXCNreEyT$&Sjj%pHO@MKGRX`95`DM zFs}=U{e#Z(z#Fx+rp79csXL0LW-7utc-Q|hM4WJI( z1!ki-7wU{PGl=;^9210TF%sN(%G-)2kakUeP!_ zpzn$}h>%}sun51KSdnT?T~4vgKi$)*`J)c034^z%RKLxhYV+O7K@4J3oKN51t%@>) zro{ZNGNrWm)#drg-QefCq+%v~SQJnB3Mz+isv+BdT>HI79c|kR3rxRk+58Z_5rqKL zd3tK*yM@cEFgwhwi^?7k-Sgj*p8YG>a37xhf#Is*mvx$vsyal|glP5C@Amc-k+Wtk zXLBaI6@NBvS}xSC)|)`N`VMj1cUTJ;vaNwLZ)q};uepoaL?6${N+Va))f=^w;?GIU z4at2pHK$uC2NT*+C)q9QXm2IhFOon;=kMm}DnWm5A0L>SF1Hu&Z#;nuFN5H?1RQpl z2cCDEa*jTi&>hOqGABoqCu&rT~O&Q}YRc0|iY_AEov8bMt~p5ArN>ZnI5 zg6!_rOv@10#$>coy301@_f#PQcK|xn?3!k1_9il_abn%GmDfVobwJZK*n#qw`E(7-^|N%SD86kv7@YL&#wX(R;#9E`SO} zM`{h2Ls9`|?fJ~7DUSBn%7_S1>t9-^&2$EQ-$0G(%(;gvO|cknJ-$8G>fxR}2$P)+6#4Wn)1eXR`p${{(k zVL~NSEjZi^+g|DIMLDlI>gE--8##9&nW9iCsfc^yd<}hR8#!@$6VFk;^PT^w&x9xH z)EQ8`$WhCHuX*Qlkzr1mn%(7qL6Vl!{5C&yUkSj8?4?wxeSE}P1kBo1MG6<_Jr`WJ zhM(SrfM{!f2grTfZdq>ZG2{=(f0>*V(i`+4svG_f%%+^O>JBWyumGlax)-~I$G2US z!c?}Hf0I$PFg{4??fps8UMCp8(aDZ`JFxlF#ROMrTU*K3jlaU^Q>vKl@il@#Q-h!{ z2;YQhe7eL4^H#N2OUx(4VGL`Q+A!$DMw*`o)X4}erV^!!FrAjbHnn9iz)IT;x|kok zoI*7Qxi(^GF!V`O{Hv8CDCS<7)n)lb(zVQXwz^aMBMeda-hIUUYdN`orFC7--f8F1 zVtYE#8YJ2_uSN?=J~+R?(cf2QQ5R>g4pLQqy&FZyd;1J5**eTZFq9csFBkdVc5APyHOt z-aMt-C+{*G)$x?&^%HJ#P`*M45yo#H6G50@q>`W<1mtY~#CHC8Ij{cWtZqV_ch}{= zOgnX-nbdt(J|0UF&q(qw>v8-IIw`O`JQ?DVPi^5VkN^61hz^Tpq-L0}xu4$Vrqbum zs>%KRiVdCI_5jQONAH9aHyrOb5#K(Secuo774)0MZXcd5&`Kc5o zM8s1$w);D~1o5flh&F$T_QKSF`ZG|3nS?WeR^LALYJ;us?^}L@tA~Vw_Nt?4TKqfj z^7C!DmcwL_{|bGhFL?gtYrmcZbzi+aFA7@ucI-zmP`?(=-`{^t^kq_hJgQWSK6@El zpuK|zFjJuwYe=H&%zwA(M|v;9C}YD!8CMe zHliTgv-5=R9?Ivcjcf9otOV@;idm>KYPcZLKGzEJ+;coe>6J+r3l7EIx|5_^pXaNcn7=xq= zN8OM1#gj`eg_n`nm@Si;6MUv&k>OdrPSQx%$)&orpv>s$32{BZ!!f-mU5uG8cYG}o zIG|ugA|U&Xj=%R6Dd0EV*3>yL@E8|B3B<&Zm#q*^(czj-ulmB+KzyJfxo4K{`$hK4IC`5O+q}sc0)jYD@AoeDyw@#JH}0hn3Ig zIamp4_CX#}mIIIaqh;@+J#&{pZ-YA1qKNY=c#3&mi>l@`mHJ0 zgj&|sbZF*VQuj4gtC_^nb+jQm5M|IB9WLfXtBxmS(su zm_A(mdM6?z@#d1d6|}Zn{5JAb_~jMYdGIUF%sSIayyTqJ`GO$nkv zKXz4qNBd4M_wROBBp7MzwXh_sDh0HJQqk@dLVV{8Z{r|sAkns1NxRdrP&$Q%k?8=N zu5Vc%B*|bKKHnKPz3WZHG&61E6OIRIM(q6}+j(p9mB6yNRCdJ&RX4w)noJf^`PRgB z$@$uR$&%XyLzK03wiNmf@|TbktPoX@D5oj$-6yW7C{}ZM^Y6S#w(@q=>+3PAE3R1X z`!qU)$5@(I2(wqtDOY+Pt`g`;)z58M9Up8t=3u<7_)fQ)y6R#ih@h-inhlY)nY>tW z0UF=)El~8-Blj?i^{GDg{h|-fIj=Os#Nsxq&sauCnoS)oLD3L2f@KJ1Gv_r>Xhq^e z>pZ&$-!ABPb9?Z7P>s;d_<2B^^H@Vvp;>D}50&%Rs^#*#Z)Ibd3jmHGfr1M8y4a() zYo$H&Bcazs5*Kc+kuS;(Ekb$v=-*+Hhu;sp8wUq5whIFO={S=sH^NDeF^uBNlkrC} zHxJ$UUA-d;kf-~qski`E9fti;z6zwG-HKWvZU97bSd0zRrt^%88qn+BD#N0+_Jr^>(fU&TRaf zY%^>Cz3g{uJ3~}zg7y&q3@UCd70zEcP`Y)?X!`i5@k82;J7npD7Zp!nGD&3cGCzQ zYs-@}mXs3Po(M{!y-2YyJd4b1B`FASSM=91-lwX0HRrBZmT2jLGPOUNh5>*Qca~DY zzW8d1*ao&1Vr2>!CiZs=^x0%~&+@uZTs-99SSy5d0ZBWY$9b2*fvzLco1x7=fhA`?her_c{FD36ggaVDJZQHMPFHsHz@ z@HL2o2O#O}cftey@FN;tU6C3cZ1{QQ=j(MkB;5_v)tL$5RJr&{MrHAkWu?d}f06Ys z9x?v9)z(5abv6r6@-%uJ$tW8`$vLDZPQPIj37FZHCm59q)ITF*l6HxwX={+2=v@Z>31R$75R6Elv3G`?@JSdg?Nx9H=7;Sg-_WMTPyVHWevM`tf$HTmwjERduxtmKRDC}V)707 zD8<~5PFpgssMeK7oDT|H^TQXm14euJ0LGA1ec4UvyO5|>arngE;K(%cii(8Ju$f@? zXq>;tPCm}zp?#!TnVbK9()KS2v$`3rEox1SiR4QOaL4K~C@JMLb2zEvWQo{*Ws+L> zMK`S6*`ALi&lsrUY&1r8I$vQLHWrWAi&%S0;(^&Qn%u3|q!}SSRImB-Qs)#% z-%2y)g#Y`@t@qE{$9eud+0u%df+1o;ubrgF8HZZ;5XV!cP8XH|UawPB5_PBpx(sFG zyK8bWqD1p@yDJgGUiQ76gwgN_GS)YNf#N=yA4aD~r zFOnW-_Xx^&QIVJ4ZA4W(`P6sAyC1GV6V|(kBxUWu=%*3%VI0RfmIn5IlkZWou`y}; zKb1RuU4CbS@KOORvd9jK+AySZSpJL-_Q&T2hB#kz6Be60=sm&tzkdaL~A zr^oAH+!}l9e#N24l)&b`X4g`f!?J$4$d9TCixMxtVav+u^{;;mhlml~jZc()=T!md zHQGu)Ati!Yo^V1dqKN@Sh=;dA+oD*kS8W)d-{-s!MM6S{GG8 zGgM6Gy(`99#TA_lXu-uG46`B}S@_5b#5Puz{S-9-otF?ToWX}V255k&zcJ{Xre@0E z;mutDthI>Cq2kiq8{KKC@1!SkzSDi;B|@a{M0g5FoY(Fl^KpJ4L|8>ntR2?v(pr1x zx=_|}aV~40mq;$O3zmDAS7Y6Y3=UVAZH!EC#{vAyQ{7oKjm&nKL;pV3eM>L+zCVV0 zGQxHKpkU1l&0GF7L&^Jrm&H`7Y{1M=G9}gU-5l11Gm>i-^N`B(SDLBU1M%QVqog^F z@oaG%rbmY;Ez8oH4;qK!P&%}i_=OG)KG9X*NA$@!Uye}VP-hqsN@*v%| zfVCFwn}OfVC~N%sQR^0GG#7tO)B=^UIx%xgvgCV*hg{xGDl;yF#k@%raf?f+ev3R_ zfxGq9E$+@BQ4Or+$WF41np-oM(oFuWj`X>^-|7d2wcOI3In9|))Y$wgxMBO zliU9UH)x2O2re;b0hdTs41AXV>``fN*P_T|p4@*RVz6^u`c#ojyDsr*FWN-b4vkoK z@Y2!Bh=-y^K^qzfcC18=+$fH6Z5Iut{@c%73 zd$G!5Bt6l%ANB6vFEqzXQhY(7F?M0UhJ}1Y@P;^35qHUSA?GotuS?Xj*&^5{5kMNW zV1$%1r@`ddo26Zn>XE7NWlm)28tlv-(o*QcnSCghPK{B@!$Yz!3JF&0+sI^LDHl@R z&%zq{rqrrl4s^K2kMF!B)*j!bW+aSmLX0u?{t~RbPcd0&efy8D_*`J<)#Yw{{tNhJmjm}9;Maz8)9TjY|o8!0+4E<27={8h}s+M^!`dP(G1as}U zU3g`sonXmMzV?5o!b(N>>i=IIEZx*~SVV!`qTTKs0|&*(5y1rB{$yS1fDn3~dmr2# zKsP=$KA?^{kMYV}%G1>>vKUuPORg9x0DQnWl=ittCHl9Ke zLS{wxKXz3INa+u1Ygr3Eij`7Da8rEU*EYv|{pv`+=lqq@qfjneZ?IUu$4rmAx)=kM z+;#VBfGSPh3NJukmr|YqRX@gt zOSw-k?pOd+@!6E9=bSGMVNAXPfC|A=y4O6AsfERZkB;I5R=;-5`|os`r1)_%T+TQN z0a{fcUos2SY)9zhFEHmr0liPCtGIIl#E{{8w$RbmCuZX%svHOQ7#9B|CY009D;r#L zx@4k0Yd%RtmNKjNquh@Mz=1=JF)tgbA*h9#_TRzqxFmxx`(o=UyIeQRunw-3Vr*TxT@ zf@U4Fg8&aaVe3s~L(|m4EcjId38#gAoL)ST&vpU7BX~AUzC(7=$Z10jBikjUr>FOe z2??dIDWCWC2{+)&va?4?yq9CI+Tm=+O++e9rlrFrshxu9VV;_WWL3vx353!KYW6dF zxK*J#m#M}>A|8M|NIgVRd@-4rw!*3=daV?vC<}GCB2=OU-Ywaa&?LTM(`#^+Fnc)8 zJ3w=76Ftrm2DP0p`5KEkgBJYKI=$qO&f1{WqCFhzP@$XL_e6fls+jecdGX4Phq6Gh zLG6|mCY&X2q)~*@P=vQb6DP+NC@02YK}j{b*_G5-dWd@3UMKmUvII zMn!+%i^EuT+q4Fx30rCA-FE_ejH8QD#Tn?s4D`|GZOV?NUgv-33EXUSIVkA7-q^Rm}CyxNs_+Il?p`;4IlgoE#s zLvhL^2<~LJlR{tbc8-40srWh4_I4!ZwEEa1$394IU)Z|Ly88|MpyaLBn6Fb9z6i{1 zF|Z)&Tja%)@FzWY3+B1|(H(ns=D8BuKMfzv=uy*};v0!LXTl}38ukR>CX_RT-JVO5 z3ze^B>n*914M^SmOk*zX|55MkBF0ke=Aq%CxP#4Ia8S87eYwYKuldg`6#ekhU_?+_ zXwUyVIow13dv_>v(^u?zWKEf&n8vq<=hwyHA~BOK?bd1_an+_^qdt(>CLwlvi+(7J zdM5ypZ8@K=7W1d&jLaFvo$eEe0#F_OMav*TzJ#=x<#n_!eYJY~q6WBO3rEdWD5jeF zr+^cZm)nPyo(Kr{+=o$g4o}69gX!qi&yYW1EjJ@_Ik3tjH}2J2Oo#L@PV7M?GvNM7 zP%cimg@l}|-F2|o*RB);te@;%Fs2xKrQUI|6E>hIq^>?vjaiT3v_X+_y#4K2ce`6TTfHX{jZFy}ZqpL8kKx4xo{RAHIkSgHG-=wvPtkG@TzZJdd~>sR z5{`P}9R#!9wYsNWjVW(Y#<7U~+%k>J>*UhYe}R}rQE8WHGABc%$Jv*c)uM_iH!aAA z;1%qF?xf}xP1$(WlyWIvH4*HvLoLX{2XvB2Z4;t@Bfk}vKHM}cOTflQh}J*p)qg=} zXqsRl{__?$aPn_r)i$i%))ks*S(*f8bVm956Vl3&1-<{)Co!Y(qfZp%Hg2qABYoU9 zw=uv=o=DuyTbXJB-qr!~gm{zgx7e)vO3kJ8c;r=~o z&gUx=hPCXO7uZIuzhbO=ZFK9<*EaU!gq^6BoE2zxg>5Wx4gEK6AMwOqu``1U<|%Qu zn{6gE!9OH!uQTT?@j#%UA~xu(wt;F3w%GkgNgu@6hGBT)GZcu;#8CB8$?FLwuV4&Y zPZ4*e4VhTSDV$#L#2F_;?jCNc20n1--aU9!48&smlBC-!TLl%}H`{KoT-9D5_p(n1 zWtgX;c{fOGGoXaEghn1TgFLH5d9rtD?>zOmhdJ-*AGuI&jU4br*hzFF>*|(lj828j z54lc5S8CdbX;q=ixKbvENq*exS51WXrkTNY7Bz(jsVFQRq4$Q;=@t7&q%R)I4elXx z8F$>EQy}wt)p$iU95mDxX|+fuE(75`f4=10)27@4J6T5;Ci%%(gE{0zZT0MNB5o)yWKQyyu( zx-s5SDJfY$uuPg`i4KS_l_R3X91><0$<=nG%=rMFp!q{qbE|6RWZVZBfa=ORUH}|r zZtfb0#jKzEvaODg#&WU`@c@{s2wS8uDp~a`Lo+R7?SD(`sd8(8+X)GkxcvKkcDJNk z_HtQBtcivS178;M9rlq&Imter0d~i9objP7WFC6}m0Mygmvu%Fu2{9iEG7sg0PM++ zwFgZBfPL|r7w=4KsnE<#Cfmo<`v*Q)W$|y_LQz=K04glfnr*bvl3I9xfx$PR8PQs_ zj_o7r`hLeJp>XgcsYvo^mml-`w*Hl}AM#CM%P^03gW7I&QRLp~2=o7=>Mh)w{^PIz zQ38U3APr-aQt9qiLP}AI(cK`OgAocygVGHG0vlZeLz&zvsSkd3K4QN@VaWP=qt)ox14IfYc$tvz^5@#0KnFRF^cQ%2y(x#-(` zgf=C&K%sknvQ^y}r0y+NckZcdmm1c2J>00|r4F4}Xj!bLCDFD@NSNHPs#+3KAUAHy zjavR%AimFwgdvS&w{T|;uF89Pd!fPNhV!|;a3fY|I1@ZbI+%ykd-A8qJOB|d8k6iw z=BniQ$xpbP(|%w98L0(xpBk9}hWVu?TodpPUhbs#I9L?cxjZf+ zjR>OZ2%1&O<~xX&YxKJ{`-hLGEMDqqg@`%7zTkCIqPVnD+kZ6bh&jZUBq`5{x%%~% z>Q5ZUSJWA@JjaxCZgil{GA<4zi+yMvjLx);HNnIqZiD8IPySv5>XV?^&En{)dUm7v`>%S`E|znN0;6i?HN_qG1Su&L$9YNMuII#BUh`F5nUwaF`UbE&o^|oA}z^f4vH!vE67&kNc9v37s{2 zOAtEn_@^NQ{8T^K5XjpV|!(YJi$q%BdY+7fE&$CTB{YxR2ST3YnG&_3L zIHQyM>@BcgJWDlF*0O1~Zr|{EMGon<*Org=w#$PgvC5@v!3*0apLUZLADHP*8t!Rp z5T}5g_dDG!#W2KK@V$%aCeDp z{p_t_ggA~S%Nd3UO=HhVGSmCC&m13fF zQ^Q2A+(y~p@}24oI{S8s5*qAUibK9mWwalvCLYwxu!6=MegxwiJSf>X@A-$mGG{Ej zWa?7+X~2TlT1u}dRmnxpsFf_4P3{SdRpudniSGyhaK!b~fhprhyNzaXUr?eomA`N` zBLUB*b|TuClc7xWcR0@$n=s*1TELO;>Q8Hal#C;(p5AFg@dB&-KPvg4^S|6%c#jW# zDTHkKbsTQqJ`_`ICFV{x=;L!thw0vAYNBd_j5sI1)U#-%cDBoE3I>)Fb8U&?z(k&& z%ZB=>J0mC+g?sYMVW{OcGhk)~II}Bt(l#{f2UwIEE|xG~_S$ki zn*Rmcpy{<)wD`qK`^|Mxt1WVJi|@LTAKXZn+j9k~$;w%+B@310yuf}O_mg|a55GY! zIITgd;L?st-#AU>d9CC^dYZ*Yn4Spd%5T=WW(x0rw{+Hg4i#)#X9%*}&r7Ve9ysyv6%@NLtcak69Hrgnn46QWf9sxBhJp~YMxcbf zOW)`zFDVVG@~?0Fv*wK5h)Xe(F7Qprf{(5BC;J(hpB@gGguTjT$=H-)#rdl=?bs`2 z>-vOf_Mv8dpncF)lAROjM7fKQU`n^4Yft4Yr^+m>@VN;IZCHx8|H4uq2PG z2~e{yP7eGVSS8jqCcs9sbyf&brbKUt`Zf z!2lA2Vc#|!Ggpi`W^m3RnFfY6a0vgaU( zdgFus&lXIXA_~Le%OxfeDsb~mb;N#`s8?a{`1_kyVO%bFZQrU`>VcpM?p_ z-`@Aao8ltjGvDc*bVVL`=>(6q{)R@8q z96z`9d!^A$GUP|fLQ!TwJ@~Xg3GrtQhLsj48H+f0^_ZTYP>s%)dRy(Dmw4(inGCj~ z!A;$x(a?2-+KVJilKx~2-*uF^Zap&;lF>9AS9*~iESMK$cz@GIFseIBZk#jlv)|cu zmfe3QdG99M5;Yoj69l@nXQeNeIk){)f z!G1J~(CAME?{{FV@Q>yeMVXe;j52H zuI$)yGac4ARlBq|^R{5s>8A!{$lxXv%tmUcSfq_L^SxClV(7K&5eq3naiwhYL#85j zrkS#yR%M~=H_Wy#>>!0tCnG1T0@{^jzEY}KH$ie&-qZbMLyj*&F5egd?@yf=MwSvd zF)|=G)DTO^-nf(D?4pCjV&SN~;HS&`x1AttZuDH{kpPdz@#)1+DVJqqGt1V>(Uq=n zO0=SSGt-_$oZ}p_D$R47Q8#|hO>!YG;j!0wi4X620xY6rrSB<9w zoX;OkARSuBcpWL9!O9h|)TgxOI@KbXT6>EOuR&;M#fPy~6?l`WD*`cFfNCH7W{0&o ztj3Ql3m?#i7Iqo0A4A`a*z4n1MF6{S<=SXH0(t@?h36O2LzEx(eW(gd@oiT45)$vF zBxEPFmEs&^ZUA2}iSK$u2ov+b+N4N;Ck8t1UDf=!=E9%iJAj#>tJaHhv-E)_FUSLZ zA~Yu`+tQ(A5KE0aiEKNgYyw()0R^FEU8Ek&k$ei&9(T>3C9$Yj7HbSZYM^U6)ZXx6 zU!c?YBhHNMR|*cx&*rj+v}nero<`%QVjGSuJeibJ&DwnZo^+L{lz{ zzoq)mxHQ3D_xYrOZI-~hZ0(r45zFOrSWhbl$vNXLzW*lAH z*r+)<)SZQWDIIfp3(%c(5WEpli$u(tOwC8 zTn|J3?n%!dAyy=-&dN#}{}zP1ri$h6nvg3K7g2dv5lA{B)9o=6_wT@y+O1Xly0)#W zgt03PTNEozOV(?I_fvHpLn3SHa~Gi*Z7tUD60GLmZWdg|mU%yj3=-wKi*)RGWu^}W zz@XMsvOQ@Wo(~@R1!R`A?)pI0uzI)>pVm(HfbKDqs(yCp^3|i9Ers~$mB8ypy>}(l zqY=(vHG-&{mbl!5I!`?zIrhQqj0r|1qG*Yt$j;zLS3GrNsv-4$b+#9KQlnvZ{`?e; zchCT17H$p|;M-4qikG6L9@`%I;#X(XH6rji;c&5$OVlcfY^c)Oub3Vs&UbYfZl*z~ zN$t9(P_g7ig?2{0w(r_0JVtJR<>Eq;!g!qFtODp6ce)O(Z=`+ex?%CCR@lK%U7qQ* z!Xo66+3h8%5Gp$x=k=@6wq9>4#kIE5jM`_*XfE~3VJ0y@uzAxG9_%xIMfLmQoyys0 zOy}trVx<6|Y{$8xk(bo#;Qgb$pSPnnrk}@u$wHe5)4JZ#1yDS@e_UpLD@8zZZqv!k zK+%r&cLqN*V!9CJgjn*cv{gQ^jyA1Ib2@He2{{`Bm9U}3O}6Z~%hz2cMWt)qry#`* zm;n04OzuxB>`5oVF@qNjKPL@!)|8ws!NHdU67wO8lD&nhtWDAZzpp!j=RGOB;x@7; zi!LcQDnCAmmeY&7x8Bb@=N(HqpCc3*bQXY=XVdXo>)?}5IHDr}W~R5`=~QG-+>vUR}^ zm&Zyuitm|E0avlKfM?A@WHl@zo^|;z$bR`We3DQy0C>ljZrV4v^xUqGbirjIqP@#0L02qv`*!RVx4!Ij&%c#_7a?6+K2a0@Dp%StU&jq}6{u^e zo1qui47w$2&h#l4RSdp&ZSY=@T=pkOC&n2+#o%4)2wD&5r}0gtX&g9(_VA0`4&}Qv$uFdNloNEM&+v_ zU3oncJ+d&{|}$A7H!YE{`!5K z6#_%L;6qc~G7)bQE`ni|cVgY#`NdlnRxEatLbbP^bo?Gm#A{=4t@+=}$(WP-%Oeb^ z5;2wLI8&FEkZX5_JaA1O#_q@T!9fD|YJ!Rgk*CO$D)Vy@`7?tx1uFYctC7KwMzV^>&Te}iui{ooCsnH@#9MS?j>&; z=nC^$4?6>=yW=m{FHo#xmivBxZX90$(^Fs67aZ7}*<0`<%rhsF0`cZwuy@O09U4Pu ztLYyLmPYPo4L^l%ZMxbned~b)2$KVd#=lDQLR?&~W7j=W!&OwrSUpqu+S=^Q_KSGH za{ULNPNZyh8=FhQfdU1T!B+3K?%{L_MV^258iT*xxLY4ak{zftQ$FpbuDYt2N|F7k zt|5@dL|s0itCPaMR0*EEgXKL5qL!a(8?C#9=pe+LotifO)bL%0ANy<;bjs=YUbCGY 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ྣW2=6)#N#;p;_n2v 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%0AsS)Dpcsa_ZaFAc(ktiA>;8a?P?#t6c68gb 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≦yBLK;xml@Eg9H9R$d_aw>>*Xne-# zToY8PC&p^>#f8?4#pH_;ZzD*S6Tf8sGT3}g*E-4J^OnK7<({l0#LAVG1*htg4Yd}a zXkggj*XQt+v=DNCyC1Rjr%XF9+XfeXx~qLlr`J-?V7k4)?QSQpt14y zjFy?($tO;fPp%7+<(v8V?Jb8uxHy#8a+C*`{NMWHwahE$bEiDja#VmaMQFkAVg$zT z+9BTiF9NnQK9%4f_&B7Q6~?&+7mjlU1By{H;3ey5C>Wf~0WntK5W`;OUW4FYVO4wv z2>B7uv|RPko-!)4&%@^kz;l4W$Af)58Q_fTyw~i+`^#CJoVTOfsm05;GlI)Wym;hL z2k3D7jvhc`F^)kSfJ#tXHsD;NWB}Ys1qA?zI3K3n02GWjalZh}0VYm~ke~D`an>6U z3w23ZCQU~zf ztQWB%9fOJ%<*cr!QSSpxXVVyU{qG#z8OJ|d0JT2+4U;;7jJ&;l6Y*967UXFsD% z8(61961K=zHG#7CRGTpE1Q2`J*zjVy|cdatPKgtjA{`BYwum}IC z1D6<|;#C}OX`9`g=LMrwY6_gIP!ITY{YAZ8qkzt#TJZB4C$NNmhkFRFby6;rB@lK| zqU=HAnsYfzSiLqNvdjA?q*JNvV+viaBJJK@3+n0)8QQ{=HilQjzg?_i!1s`}9>dQL zbiRX!ztTY0_HoYjBWT-Eu9XW~fmHsA^rxhMRBh()&>o*p;MEyG^BIQJx!qTkdu;td zTLs$PbI+maPd+({`>QMJvl!af!T2|O!(71W{TR7}hx^qO*0^N5j%o|I=N{in^TMz? z4Bp|>clRTJt%JsG_&^^3O1nBnca2e|UdtHN>VwX#DD$PmqX=G)sm~nBO?n#D5qY~f zm+i<$)m0o#fo2mx8KBgyo4%*6#-!Uqo9tO^V!bOE#wV^KPIgL z1*Gnf_j)w94g_Dv*gcq6I6R!&{d5^`;m2Emgfe91ROVO?fYHG!7LmEf>iH4Y_;z?)C^2)!JM~Un-H)T(tjFuo zZ93T<{CC?ESEI&FN1L)ZlvC~-Fc@~}(A+;5vC63m&(BYz14$KRqzkVEw>Q&S9CbQz zgk4(NJCB^s7Mr+(4-4N-+lNl_&Ps)aE$QH)+c`z+@lHvo1ihx=hXwa9mKyMY> zES(u#QvO5li-5*w1TDTN$S8WdiU3%>^L{Fxv~eVO^pZav0mEN{GV+v0iB>larTu3* zmMeR8p(O)be7AwN^_BDdw23???+u#GGi{7~<0$s+(i;qkRR9ag3-YtvDMx&YGV=myW}W9d1qe~TvYsAzVh^7*%S#(C9B!Vy zvpg$(f`L4z9Eb8`8d(5|Kz6?lEaRP#Ik5>-8w6`m?B-D_n-4cElUA}bazfqDfpS!G7t3PLFQaPM!E#I=cgwL z9Bp{GcWW!2msjp4VVd%h*YiE;v99H()XGP{kqq(>Bq{Gjx#WwVsf!;He-(4QiQ?o1 zJaDeL^Xrux-^&Ic-cSw%h63EW3rq2Ua+Ep(Uz8*HV9q?8vQyNrqd5wBRd%!iNe9me z`U((5*V9SMGyG5dNf|WxXMSRA^wlE0sL;S-@rtkV9 z+Kd%(qp^hBhaT*p>HIDoL__~&!1f=S0j8Ig%tr=uA+LMQN_P$r(vlUKm8=3I90tHH zk*%NGZ{4>MXXQPNnZm3>Y%!MAs$dHMNg6*QcziKL@c}%~?QtSVc9Ek7LRuodTY$#> zyc}PBJd7WI*#x8-q@zGQ*XuOmv0Hdd7UZ{zR=rDJ0Bjtq0dBRtjuXJ;Y&%E!TRCR~ zwT!c2FJ9k{<5zccEp51p@pL&yX`R!ti}L}`ttT;XxG>7*a`X02T@a0bb3KilSt*`8 za$YNR&LUm`5+|Ew90O$R1q_7rf&ih_sKld2D_7CAN4U(r-DVLdfb}mPx1+f!#rFV= znT86`Z* z3?nQpo?|TA)MJC^&)}zf4XeNo133a9y6_OzBf2%pt+9m<&bM_ga|vUWOWzA5kghHY z?G`vazT5CvpezuZ0KjgjzY%o07+5YO1YLtxCu+NLbgAb%WO24!$5~)N5l(QaC;zosh80BZnuiBk-Zzr;2hcwGBYRLD;qX2)_sio6|&R@f+D~PUfsvl7EHl? z1s=_)=RUkqKis?7-bS~8a&Ac-KHCC2-ZkRqlIPu@GaSV=pd0HOPwKn)zy9C82r`cw^n}nh72CzlTmjfEr*te|0pv9Q z{|2D`-fbM9@eW!X*)XBJh+ee{Gfefi>}xF3(Q_dKJ!>zu zEzT{Rav%Qfluh|RUmz#g6?Cl(pWTvZ1sx8xtSGn0*9b>>4=rRzdgKpp42b=`Lnm_O zQsQ`f1`OIouNn8x}u~0x;-SmK+s=5M?iIZnektTuGVVt`e>r*WNqN%^uMV zRxt$m9O(!w%tza4P@6$6e#>Aie`{0ILO>>G4nG!rmMR9S2EC?-&%(}6r(=AewyKbC zV+Ny2zjNUh%2WiGq{VmkN;rMv=)qQ^?I05PO(NUDz$3~dB|MasNad~0KzGPB11+8dZdr!5!v67)f9 zf)_3cehtbKByi39QeuOFu~dQvzRTDSgIpK#(|?sU9;92rK$Wqx75sS)i^hQ`u%j-s zK>%u9|G<1qC+iVf4zw286hMO8>A$7No-%iDkT>~{oBE*Sx%?pyfrjTcNF*@epCfLv zT+nJ6^!KJ=nr{7)^BcKtV7?>{!gOZCLjpqUQX>5DUQVepPw!D*0*S)MQvW<_4Qo(S zt{>=e^jgsXW3BK9uk8(Uq*?Z;awJI0yULyUXit^p)S|T01xQ1dAw|8g`h+EZERphG z%v%-ELox!gvU9_`yldR+_Am0qk$#p3GT;F*DnPc;Y-dCFo44G{s-jyKZJoVddVi$umRyJNx?&Y70qu$|P%jmB|g0lxW^@OrPvxmLp(yn|i z@R7=d3vk&pz9o)pLQnF9cjf((_|ZC57Ui{Zoj}yGsczPmBSQ|lWf^iCL6{~FU1Ton z37XD{!5^QUlb#JNtJDwa*khxdw_C`Cj?wj5Y!Gtvl)G*aJd>7j!^92?e5IXK0&_=1 zWKX9b%g6ufrN%NxfAXI7W9@D5*9l~aWt>Z_4pZ2qkN=W~@=~5Dw^=4W)*tNQ3bLwv z`3*mn2dcyyDIXZ4e_>UM^!BQ{J$>>Xm#mPuQG#>CP_7 znWNv-2|KpbFZUGAxyk%N1*!e+97^i{ZgXsPB)I?uHK4F)P!xU*guOEgn%Asom8Qu( z4U%K`>r`^5*2tbr-)$qvZUNNVQ>g^cIvRz*p|oEBd_JMl|M2lJ0Z(PYJNzwq_U+v$ zoCLqy+AF(@_m`spgGBF(YK-3imJob{c^jeR)@E&9(1xa_QWM`lT+HBiJ$nal<``pWKG6~&Pa5?dGSVPjd%9f=sN1Z^`Cg+8IOP2s0)RE; ze+MZ04hK`AP7N%o7>*WBvD2)?cp>0xQFapIdG}Ve$HWzspB&fY)5rZ-!81&E+)t;x z4+tG}^f@ub*xC!?qD^(4Xzwar)d`te<=*A8s=zg#EWDm(7teSIkTqMowrvUM1 z=SR`&))FL-;oT_)@)$DCs?O7%P_K0W{33ePw{yZK>lt(el2eIKn$_qbQ?KFOzvkV0 zc;nVXHe9(cu(DA{G)`Ql6`5)AyVpwNczk-6X^f|?kGZto|l>o(4;s3#qkPHt&EAivs|1$hxZWgQ#nyO*JL zcf$H(@)>+bpuo1;oIv@w@JX{HJ+*04P5Qn zD!`cOyojQ-rv5vdF zUeQyYz7D?f?HVSy;!Mu~*XPKITnkX`HLsX%mQNn#Id+o!{>~mho-r?hsy$&vS>@H= z%#XATP?>VTi`iS2^l}tE$b!UzpEiQJot*&Lo;mByt<=A=T(}xughdEIa^7cLRkXOZG zUxIUOx1$v(r}fIa&K>qGpRvqE;|S`=^ESemc#do!P4z%fXjyC=G7n{;u-}9e@Wft6 zd3unCoYzT$dIlF{(r@qr*NK-Ymp#AMW%>@%@AP|_PnLx5941T}E&`=q2vEJ3z0`c? z++@xUL(&~uY=WCC&c`u0HoCcr_I1)o$k%!42cxx}SG~`GJXflt{Xq-L$=Hv5@>QL4W z@@yT;4Q1Db&XlnnIRb4(ues9!h=2KZ`a`qP;<~-p@?F6wcxiscylg48K1f%2;JK_T zAL7447qk^z;M}*pRp@vjBg(qZ2)y%;-^Pcz)f4C9B1a4sX%(`1usi(B=hnP?(9QW` zN?b|awKlQAEc4=JpU(V#R}Q7|zbml)!O;F4hl;Pzd04f@hpMDzR8$2^=hya$HbTx{XznaC1r-OL&ehf&p0S6#7cEOEm+%Ieyn#H4|Mx340 z;`pdWV7iL=60k5{72DmQT;tg&79~J4rE)G_v7vY+x)iVkxH~&)#g{*N5hV=O-E1Ax z`8K`=2s+I2tJ8A)=|4V=ezz50zgovH?`AQlR6W@F$QD)t_Q`euU#jtPI*B(WgL;(N zrYm@0i(D7wyS%ywC@pi*DYP@UbJ*v*C_6#U1VD99e%CmXTY~lq2561psG{7Mhcs~Z zDA{7x?>MBk!u?Hr3{d|+{*NEUzP^s{zgfk*Z(T%S6pdajTM75jGX)s9n2~_e06~Lm z%Ta}E_7vR01Bco^q6~r<-Kar;!F#R*jqDUF>ESRa(^Nx7Il%5Qg5NWM!-QhZNNddR zY^g+UoWH0M=#bx6=jTxdWNs;+rn>3e<8}wYv4P$h>1()mxw>!_T5Jn*g<*$4p8yz7 z+%5+hDv{}o^l!ERC}gLM>^Wa^k8#tW*u!m49hNbU04r{zGo>8PY3sKHf(}u4HQ-(J z2HluXY=N#)HyZa{ym)k)tLFauyPMdx8u2m4=Z_kLI0E3fh>*)0^Zk{isiyj zE+Wi^Y4`m~V;vpBEIsq!xEwHU3=K?z$nDy0yTm!k>g+P1Ad&)-27Jmkv%3A_L zY)XP+fhymEIeQBPu0E$6`l(^pbLC^~it}#M{&U};%D^|lFEo%)KCkmv?(!q?+%tda zGYGUN$o;{!F9za*9}j_pv}%hDcz<1_{q0mGb;j!gni^m*dyYvngH8jyLPdUf&O^O9 z=!xIb;d=?dpew-$*A6s$UI3H=NEAnLFXzjfj(&#oBA)^%n~#Bh(Jxa3=+cmZKJ;e( zrUX9(O$Ofw0OrS`wDQkkPUcxSHpa$s}!tjh@z_J?#gQtrtltdaR28 z+cYT|wnZBMCKwg~ny%%|6{z{0_KMqrvSLdcK`6I>?S4QPgL4&@+MqSD&Pq=5yJj36*kY>sj*Q?ZB)(_x zztiWG8RahHAmRlZN*&c;0qt2;?#w$^p61U6Dt}W1e3nhA1wZ7k4H52dt8}?8jrD$* z?_S6^Pm#B4R``$rGau%V|4NuV>2x~Tt8B-EdHRTHSdWwWB*w(La5ZDx4Svt~#<|@3 zJoQpvIbW<2gvyhm@x}bmH|Vtd`bO)?*d!aZvhJPh?5HZs1wFi%c8z-iWa*R6l^t3S zI??O(6se>w*S+9b^D_2Knc}9uJ(T@}E~|U;Lrf#R=AP0AV-K=da9-X)7c{3G;%3sz z9pxm4ucr+wY`j^ep7|!vZr5|}SzjcGY&9G0TwBNWUXmMRl*9MsubFa4Cect^q_iAOiPi7lZixMH?epDDLg;CT{L9EDONF@Fm|ow<`x_05D=OpsQ0jJN9{=K>e+FW^gh%c8 zi?8npx(Sd0#Y@MxAf(H^!)-C5Ys$W_=Ssfkyel9fbVfM00O#WvjYs5wu-@_JJbS7}bg0yx;>-hf|^FvwqYy4kbpP>-7xs=|A1&R?8$;?e0K9zCwa)w`=0 zjW9R>ez!_-o1f8?65?21-%sPso&9GhB4E(rA_CIWEue?`&VBo^u^af}kmDn0oN@mS z1LVBhDbKt|aea2I!^aq`Ik(N#)pXsis9d8?7t|4DwGN1(^7<`x>!MyqfRU47H{M|k z_c&wcJUWcSeTOxCUw!n9vTt)JbY+jcRFDDEb{OywF#1QsMs)hM?5(^T&Eq@FoAP=J zJ)4@n*n0r=lKVx=T?Pn1&^>ihZPx)d%Q$vBCHVR7dIleB@k_wiyDK**ccBg&Gv?f{ zQ=bvPTrQA5f<01ks10Tt`qps)7<&p&E30|@LC?9arRcRP0NZu$r@P&c;>+_3(nOAN z2o=(NbbOqkeS{xzxavK$%;BGV`l=@`XWuWcVv2_K0q{fWy|ppOBw&K?UCOqG=U)RL ze~IIB-^)7sF$2tYEK>(5;~l$W2aO7Vb`sa)Js|ryX0Aqvb8}<$PP3B>q_j%_Q-IBlN zdoDyq-97>oo)6m4S4Q^$hv@gNUWy+*KS9@~(E_9nPN?T?19~wcb&NYk#ko{R$j3+B zR-B;|0_Ar&xeoTF4fOr!xEHyaIgWV?IG93@TP}3~vAuRT=kAV?n>(&I+~$Jfa6f(+|C5KaI}fwHhaJLyLA&rgDiadCmR+gF=UNW^X6g^z-(* zI+WAE+rZ5rRs3TbMSzb_H=yK`fROJ57N)ICr>shJLATdD?19Mp{4{UDj6u1;VM8#U z!64U_Y2yhLEQ7`j;5p3O@*jG|4u{Dr`_gKr294&OAHSf%_k8A{BR*pQS@g;j&!;}- z%|f5NZ%mRvnf$T`6uV*)(j=XGz<9<*q-Q#Q8+aT0@Ng!U!KOb+Kj+j^Cs{W1T7cs7 z=9l;Rw)e(!>&o(HosqX-b&K6Co-JXgrwQ)t@iTAzne@v+-$_m;7{LAu>YyWg133iB za^eRrKAcEv@*{tfujS>Hstb3LuVs~H{hf_$f*yOE1dYij-m@1n@AF~-cniBFamI?4 zUl1s$wtNuFy`qk+cgv6s4)EUmve%2h8Rb1Ja>Uh#GMcFTf$u)c&jT+d#-3pWE1!EP zV)Ds*%7W#UukurH;gNOAb-!o$%d87N@&%yiq2iX?Pnx^Rs1QX2T%LS9ULbYY0F10V}t_==eOE!?F98Ugo zUzzZ6Z(1Lg-3BR-tOt3^J9Z%1TS^IY$h(x-YnzQ4JXi2fy)Nw1!k9|lk0wLj#5YIj-EHqPl129HON$q-KBI27IAdpODRGt!}gk);m2Q@_rd# zJUxlKyJ_~E8u(5Z^Z4rd6TsOFAx3abui8n4zM1dhYXEE00ftNG^sV9_{iDb6-P;); ztQvpu-DPy!M>yDBEM~Thp)42!7py8*HUzwY;mH!9gn>nn>er z2*Uwi+l`3NKk3Bq9D3%XZ2fOSm0*&>Mzh_H+3i*QIUxOOjLjTnGM_rUYEyTofU#=; ztssT?A0E}hg>t3<%N|L%it$*b1(0enmr4mA$I9R?T>dknu?RrrE!&UuSzZ0w~g#p6;t zp7u&{G&~CTG@h>(aoTMFW}HW4g9`GD-MzEbm^>fz?hr8MydH`gQ)Jndp1;KievbhK zjZja!_?9{x@xUEm=ZZS6mf<16=KBQ>nESp@5dopsV)$7ln3R)tP1T-a-(YIaI-iTuCckXA?Fy^ni)M=+kF**u<~od$Ror(KR)oZI^aKyqDT{NJwTu5u|~e`kdqm5=N#=OGI9kk-jYkLvX3+9 z(b3w{vIf)}3~d0b4fuL~(TdXSF3PK2Hp(c+XPq9;?Q&n=YkcIJl5@h5bR6*#S#U18 zb)=1SgvZ@%k#p&fNq0qA-2%x)wX8Sy$jzZ@>wPStQ~PIo*RD}Z!0pjQR&2yToQf6Z z$;%NdI!u9yj#N8re%k2Y1&8+G_+KAIphkGa2gyOt9r;ACT&_o_(ZzfgzSka-oKMFy z2GoK@fo`sO@bJFDnZcFvC20`WCbWQ;1V=DBwpEb3mdOx zgLbBgElvG3FYWq6o;>f0zUHmu+LP>P2YUtQ=%{v10OR%_%5Mhy{29O<sBO6mVqFZ8?+9qW4D{y>40=R`WoD3ga*6^%;983we3~Xi&bRgu&|^J&F4)Q;ou*;III_OTC+X&sWg>kWS>#o* zSQhmsA1JGII8s4o$p^ufBNVm6S!b4kJT|?j;FLPL&@Xc?9rC!} z>nHDRq;S=I6Eqe~um?}AQyV!`5BV*xI4kO(Z-2W;l)beU)bcwA+#%1_qw?nAs0#Be z7Lh9W@948FzfI$AGRgAVF_d#&;fHm0up8zt__HD1Iy825XnFDwn*AtO3G{eYe)wCh z^GG^K*Ta>~U3J;H!16oyn&mj~q}HtG^e*|N4%u^?jTGGDzf4PjD&5)8W&LvBe5FfX zdY*OFY~}O%Ooy#2<5IyZ$yX11*jw(Ki@rM|B=uLm^N=5HkKcveDD>4tQqMRwt)gs& z+<80ogmZPnsa!skwuJ8@&BDGZCkd3j2#xCJ!S3ZX(z0@(B(!8U&qy z$xf#keS*x_m!s@GoRGG`Z~7wE`epW72m!a$DO@Tl;0k;{k{%R0iaR9`};-w z?A=Y=Z2>5h^To9q&{@eveTcgWpqrG%IkzrM zp^LM3&|X}(5b7pB_tArQ1IpooAh0L?dUhYP90p4ujN-ZS>qW=@b3n^I#${TIU%s2> z9-;r?SN1(XKTbwd^hv)J7XU-|#eIh(cMkG9Xw(p# zK;HnubsXPQ_Y*sOp|gpTn7|`fb+cd%dshKK&S7-r0O!8~A9K5vJ3xICI{MIhQs2gB zFCLS>LsaGfmp*m4$~|`j1N(f?h-b&00OLb*0g`i36?nIwFRABTiI)P41Zne@E)M*fTs%jGNp`bko76)ZZO8L z7SmjX90KAP$bW`{p4V|2lW{s1BL=t9am%E?Dp5bwg+uM#N~u{REqiH^{}B(q*;e8` z*H0Up_@DpeX*_yr%V;fr{{2ndQ(yPU_$%~p2_M`pr-gIrV!)kWZ?MwEd7KgKIuyCf z^Z)dGfJ31g;dc+CUIl4iI(y7(TVH*82VgJ$JI|71-YL>)#^8JOGH zqR-97XJo&9Y@l zdM4%(aYD-@uTE8&S>4su-2j>Z$2ex>2Y%r1Ce6lZ91;UUb$5xZlvf@dS|2`-uM=4{ zFdGa>6dF}z?sMbrh`pEaIHNv zH}i4C&A`&F-!w~pi*So~EKAbOon35Wpwtof z<8f12`6*94!&RDHAFRAw5+H9ZQ(g)y#Z+ue+6Ki-d@t*~9m3L;`a*nlB&X8zTiR*b z;aj1VP#Lx)?04l^>_b)%`JeB8e<}YIx;){xa*%f!+24H6&KB}8zoOsRkfb^zKufU^ z*%6cUsyAi%Ls{B~j=`H6benD&@i%;?@V|PcjQ)f#OaD){d6dkTA@(AAX?SIPHd-)L zeXys>yK~RWG%00J!Fi|B5w`=7!%PBZ9HnsGAwndL29Bp2&l~|dKW=y87=v*_evRB+ z4~LJ+|Ma3AqmyR*`ukacQ&Lx(^=%&g@%{abbTmMed)kXpYnmJBtN;LR zG*tn_WKSjZxY1L0KZ$OqAK%Ruu>=G;y4XY+horftve*cwjzgEdks46>dcx=RcpcwR z*6|)7506gkotSN%MvC&{1h04N*kN>Z$2VKbfDBHc*G;nAea{}Z1%|+ln5O38XcrY% zBhAOX$H_ssJ3E9%}x5;<;wBAL}>)koC!XMt%Z;w*c<@ z%{)dp^xu!~bA7MP)70sz$Z$ZsvqmS*k$(dt^^%JG*DZ`VvUG<$jg5vb*Y3g(*M#O8 zROsE}h~47xU+M5uiJy<^@#XVT?nL_@8Q;(5xi)hG5ONn~0qkkB5}o!w-h7x+en(>g zL^vTwb&Ou65wD4Jk8oTE>xN};J2udI1S)A%Hqj%0*IHKL+0)}zJOMm;?2@u5Ij0LhYXY*MVc+k? z&2$~p+gSo&H~6ZYw&H5KpnTA|LQhEF^~sKKzamXHI=KS5+W-w{4DHEmBKr#*KQ|9q zC_8MGYeDbUi?~(i0eylkL`pqdM;*DlyY}E{7k_hc9&h2x7~PoMlUAb@UnAdNt6v!G z9`gKIuN@zqpQ>Vc1lFxJ40@dc^8{9Wa@x$D$Y-l&d}Rj^`ZYx^AJE(P&|TS^4z%t8BX5A^>V~ENcY#Nab_G__;@7^zCUfai~Pdn%ungh^mpquKdJ8h~5&O&j6 zG)JKwrAKwBOPe_B_tO!uuGVNudg!3I_W%=Y?&cflnAWr(NOKzYkQ!Hadhh?&3ses>ZmfN#s)gyH+^_;Sn(fuMrH@%WhUL;tzoPIZd zd8odx@Kuz&;NH5iq>WeBg76$cx111S80F_ky|&5xtTWCGmG7y8@TKS(#PM<3wDhX8 zxf8g5@(w!F=citk-JAvM+Pebuou+L^p30?W6HSh!t{GR|eSDbD%ANGBL}V-pzVMdu z{05&7v8*>qqVnV8$hh&W`x#f&psdca^c@^UwncXhxx<%o{}6fTX12<0F8>~7_y6u? zIZ9dn^e(vnPX}xdj3~-e#O6Ik_sD2JX@m)fzYpNrqKs5@6wsY=9r2QA*NeJIOat!> zRRR!UK&j+Il;c^g8Bb8UP6gwGz>Y^f(x?MWYdEP7aeasLJ8`qARh;xa>#UwT`knz? zJ?^97y3BJNVWQtoQ6%UY63!iKZ>}eRmQD<5^HpwlK6X3&)!JQAw=s6d<*J)>EaRN; zZ#RIy#TxKciKhU97o&$bf9kZ1R($*VD)UR^0KGc9P0DhH!?ELevx8$zWmb&^j#CuZ zBXb%wm~NnDWpI=z9S6RvDAN)kvjjXrLk(k1rRa5< zIWo3EHqR(S2cz)wr+om-AU7Rw)D9dUEBJQU<(K!NSS7Sz*J*&3? z2suXHPmyP>hS8#S&jC+v5al}LoObg75TGIhb)!K=76dt>?JmB8kLrFMFOE;+Znlm0 z*HdIWh%G!=p)WJSYgC;&?(sa+C4j{#vo)u$U^FO`X9~{I&jrrL1W=gk7NOBzu=931 zJ2>3U_W?dn(beUC70=H{L_!8gq zmV5Pnob#nqnWC2~z$*0sIrIrn*64B1&i^>6w{yDlx5(mmZ?596K6x4yfY@T&fUgfR zL8q3`d71{dPC2&;Sl^@Aj>=|TtDs%zpYDk3MO#!Z_23Q%a#qFpqviWQefep8j=nSi zPj-@20e9{=e2KodI)hlE-?=L>O4H)=-VK;&h@Ll0M*QQ~ z*YQ2|>+j}uI@|;F+!JU=&{ba{YZ|iQ&<&?tVN;1IV17lzJ+sl| zU3JZ{ym3Z}GZtp(lX|GmeS>`80A4H9nqp1zKe=4W z(FfG_kJ^A#&!KEa3;XO0Bd6FMp%8)|o$UhDoWX;Ba!*i#jo@*P++-Mj7f`1SIXL6x zdlkEr01qAWlOTdL44=CQW5aZ@GCuLrnd2YkhdM*sWycLQ!!!hjI%Ycgj;O3=t5{UY{>_Meze=2a9w3tKUO+%Y%2u;c8Cg!vrbsIwNaGSb-TssByV`A z|DjV`c2|`^==+1aZNF`9`Yfiyci&nrWgzc#>hnAAO8w#kttD-Y0XEb)t`AJ&`Q;Lq zJ$9^25idM#lg?H@fO>DbF3ZZiuR zx$h|#zuj0%Ugi0nzSCxthUF}PED6pu6FBF+s|w<$$uI!Sxi2bxd1bSQULnF&XI_DI~&Ii zAN@@My9$dW^EX*%d*VGu%Xlug1-QJ1mZHznD9t~1!cbA9*?gtXIEGU%Ouy(DydaFa zyW7#WAPll#oiHZw1Z;VcXJ zm7~YzOPq{LT8>;gLEDYpY%6TLK7IKrXJHA5?DVvS%CP93K+sX$Hol|FY8)saY4Y48 z5N@}-se8#UKBvdW_$k950e148@;Wop*;ID0s>cGb(n;leG(Z{Y>$jUZ)w&D#?bF^m z7?#Hm!C%kG?UG+^MoRlSr;YR|C}(()MRqXg8+s&>9T3{5+&qoDOD^Pz#dfD|H*%lCD4R%NqMf0k#UK7@_~=t1!2G_%A=k&=8{eS^2Uz z2nBVzQbR>QQ~F1IBUdduN<+X0cnDoJ)*`2dw&D~-qhmV{VMw14(}H^QseqPr?6ZM z8gVn3#vN~pQKP{|+gr_U%$CzQ84Tj2H;nJ@uK_Se3G)8#lTN&PX75QQ-n}2=_z_+Ffdy}Q#VGfO7ua|%IxZP8Ly$oG@8)Z#<)@+;{oH)ueaj# zfjgjYP{pv=$nobnVHN1SgGX+{G=%;xmC#e z`2a}7SpaNJNb7d3Q2~q)=MxP-W%9V45ssHfsMuk#-vJtM&)&hLTljK^yd4D>5WAc0 zCA110KgUpgc`=M02H$C#9m1?}g6?ktGfMy#<#f&D1OjeOz#ggDph9p#QV>(z1!FxCX{+m5#YxFtGpb8{O#j}jsu)9+T$ zWePc6&EuGcVOVQr!=k>9QDVXX&r@0$+6}<3vY>7un>XAo%9BjkNQaDeytsoyX*LipP$n3HFK)}e!j}7vugn2z3X~uEN(WG z4QJ_-S`*Ks8fO6GW9o$?%v1FC1M>LIask*REOm3qvn#-wwencUf&4t8N*=qWE~jB3 zN5Q1d&vU@%Ge=`F#MhgL7$RHOzq~^)9DSa{j~jS@5AS+7b_4jmrc54rw1Adxr|b9z zUA=|(U)`;su@SelaCVUW?el(20F4zK!}A>)ZvAT@+g3HcI6tQhE9&Mxj%ir0#$y`z zYMeAH@$96N>t_*M9HX;#{&edd>L`4Ho(~W0_+dAWF~GO8Zl@i)o^EjBXo%p44V5!b z`W-vgmhkW)r;WL*v>Tnxad;7VI<+64^yAHJiZcVquOkEMg&jS)A>ZI{)XY5S#I*dpNSaPEm>ZoD4rS91N6D9qk z9I>H39sr3O`s6#F8P3rwzo!avOQ((ik}rThgfktT;tg$o0e93l!sI$RY^axxc1iOn zdi`$P-QT5yr<3ZMO4CeGli$lIp8)vj)2HMK$ilW(_2juctJLzC$>A?MivE);9aVXw zqb%J#69|^lmr=peDWJ1yzGZaI-@fNb(xL;b9dlGzu;rB<3Gi8mxcC;tA#A3fJbDCt z7K}?;c#vShV-ii@PaZX<7yo!Ey8=*}v`^jK6vw#oBiG;(RZ#3SU6a>&1DQopc;O7XZ0Hu@9^p`uGk`=`R~j`kj)DU^0K(G)tt7l9$Ta{G?AzVV*zgnmpsm zP9y37l1}}SHg(3Z%5sTsm2!L3IY*6K_(v&6FJ)rB{1h-Mhc0GmP z<(^fUzhX1I9yMORD^LEEdzt02$404trA)^6&f_eT;Q5e>wCTHJK;}RKPmv%15VVx}Gt6bpdMcF={Ky@(loH%yZA}w3A~5 zjZHxjR~P<$fwOYbZN;F4oe5TOd!#XCRC4qMWSNSEH?2Tuy+TTb!xer8o}1MM82>c zU29Noq0-8=x(oE`C63#6 zF^x66^DNhuhKmX^LO1NWM6&Q}A9v{c99>*&7SODLFJSNr!!;wX6J*wb{tH0W1$CxI z9G#otu#eF!jap8S2lVgVQ0-`(>&B}aWHh5rQI^ZO=eD+}15SkkP?7c#d{Pg7d2$|` z^)lwvr4JbW_sH@R9=uscOaNgzVDhsAjeYW}*SmoHUCaQOXEe@TjO;OvgN?CknFly1 z$IvV={(v5w!fSW@T98++Glw_-i2i@DEg>I|0egz`=7^;nxS_0`(fk1#Z_wvCIzHu@ zok$}ZwB;0?fcEJOy*hsa$et(9>*RgMyVJo5vd~!qloQ`+#QweqFxQ~}`7xCPn(tg+ z3tgKAj>WznKR@f`w8Kl%^++Raglp+>pQ9>3MIRhVJsS<;^6oY}m^Sdlrp+m!ezTKl zhi*7Ze}+~&mHcYAiU~Zmj_A0RsZx&Gx<+@GYizYWZWMG_e`Q0bGofQ3UyP9F-_pqC z6g?d^_?R2pWDFhMQonw>{`@Xwr?b*&v~w1K;I@ISbD57L57rwUY`^Qk>%ieQ<})20 z!If>Y4w~;7x76XN6joCb;GmXjR)2I<~eq3v2gln8F9^!=y{H=pyvg^ z2{@d7>jpWbOIRzB(?$hS`Xx6U)sMJ$cT^(%D4jkl}b&c=pThYIgrZlRvUfD(v-|4nHm#!e+K5c?| zX1yc7lo5CL6mbgnVfu0cS3W5-?{-w19=x5>&RI#F4OFkWB+HJYQjZSj%qm+u#8MaJ z7x^8^rpT=ij`pipx%QVhcH-M%M0M_(L-CC9Ut%xj-r>DY|3j${Nxeu)K&G`84sqTrYcMIj-OooPZ(bt z_fR%&=!W;=m#M=(BVwkPGb?$Z3=THU{Ee>+lXvPU=@*c1=Mmp|o;plACTGU3+ZWKf z=~d2PpnN5>Ki^A>_eY(IoD6$pij}n(_9C#ur2u^A5hRX&Y6LalS*cUFC@|q&P1_?( z3#Z&^noR^|^W`qCXd?jND0g}7WAr^H zvJcEaEN8noKkLTDQy1Ig!~zaB>sj<#&A7hZQX!qfA%KQP(&$ndw>16Ni%EPn*~F3x zyg}m<@IZ&tIoy6b09mh|;MnhII40|O(rLt}XRWxK%wluzQ6)~Pwbu%Tqw#SRYC_mw zK7SF5$vD1StYSl@yTka)HI27Uw@3AiH}h0x6?_3*bLd+TAJvXeTZ4FU+{{gI767a# zG-9>QEWRhd-+VWVx6@i&5#e?LP=vo<-_7D?-zJ?+P9=U0&wl>oEc*N&0!jz1qj>eA z85d86F+2g>zlwPA{AqmqdK{B2KybZ^uDzR-{|wM`R@=tUU-qNfCcfLTYm6x0_m^%m zgwb`h8zX3Kx1*v70QkID2at9s#3FjNHb7$qINRmO=$iOezb*2-!pKf3co(31L79Kq zYsOzT>+uPO@R*8gA1^LJyt%!LM!OeZ%@)yUb)W$rE@#NRmQzG$$Y_BMl&PGqm2@pI z`lZ}90J4|W=$*FWhd1N6S^!YcDR+`~x>^U2t3Ej8Lv?ly_7CuI4nG(5hj@n!^9YUY zQQX4+x9eTJo31d<>*%4MH{)6M3JOYJPbP6o`Ohim1$tG7k4Ny-b6f|sU+a5}<_0j= zcbe*yMywIvAXhhSszS>LP>Y+UylOY&(@`^C&yer35^vBel1XE=uI%HAhNF*ew9wU# zX9@$lU5D~BsY#Rj?jZP1)j$*fBq`2KHSIezP_P> z+C_8Nimw4{?{N+^+OLpB4|xrTJ)W)59l#fQJO;qtpu77W4lZDRyK~mTE^s3wVi_f0MgF6gkv@bz@_h`Tz z+N#K@jhvoS?`H60j#G1ve>dDUy}X}0n)?s~(tprytl&H8E*>`UgE|Sod_eba z&_f-F6Zm9z))ZabZM1zfHl+LF{5YN-573djJR8~07M;~LI^UI4B;J@lv^m+13% z*qF7Q6MHk>#V^|Z=umdgDb_C8k=NnlT4Wpe1h?qCpe9EJ$iruX6??mFh;7&p4#na6 zL%aRc_2+XP+F{#Yp{VQZ+%!tpTBm4$jnsd!ElF_7$6aD`YN~pYPG12#s4yv@3#QAT zo4;r-wV4I@k^>*xbU|6RgJd1#zNT+8Z)Y<8|2Prl`-7~cz^gz85gSROxKJ}+f0<;|bIr@j?H+kAYd+{{aW zVCRA$NICA3x8*$nvN+I2o(azQ=*OFG{+4e^`+)-$(yId;T=KC4@T{`q-M6M`_~IZJ zI;A`FDj8+^`NwN{o|`XWe{ACgZg49>TFO?svW#Uk*h^YW+0^8d4u6)zi`${|%}zdT zl=Ak-6+8EwcJ4i=1{=?Cf)Lt2r>DA+nczox%db*~QZCCY0CGxso^$)idqIbzXu0tZ zX*tpx-<`LRtTAM^Bm)-~e0VO0T; z(4$PD&op}Yc%5F4--Yjja%G(IQn$IxH){mX5&-jC-uWqjmOy++uJHGf&z8YUS*Ro4 zOBsr-GEL+9J@rkQ_<(HHpFG`!c-H@H@5#U!l5_l?Dt?1^KE5NilU1>?a zdyJ;a>{+Hq^){70Vu}-gi$b`QnA@En&SmXV>$Au4p&hu*IG^^2xLAG_FP`*b*a7JE zIx(JN5OH$nYaHc;l@^czKR(dFcz&hlc3z@j`+6ttwzG7+TMwQyOZtu^?=g1#J=9vU zs?u;fMHf9ht<>WMPW;OjM$SdZlx_v+$Tcp_Y79C@@%ri^-U5b>aIk;zsvCm_2CmY~ zjcuHU+a-?yM(o7(f6(uGS(+ts+hYtWF?|5URz~sm`(^yc*($Cm!$&wrusPZQG`AGK zpfZmDs@<;rn-zfmQ7mDcQ;^;CWcO67KN(!ve>icul~}6vt%%6=&#+Q#2=z z7DDUWEoGwIZeP#^AbD(*C!#%V9>r6@{OPD4A3n@uakI*`X9D214FvkN127GtX~Z+t z+x4wI8cxpv&fY(D8U3F-1(I>Jx)LXez^%ffMpymA>JwNJ{a@V#1S$F~S zP9BZ`wA9rGbVBbE9y+Cc2vGa{tc61oq=Tc1Q&D@clM3eppxh&^9C>xais>%bFTbG< zF3>Zl=x>mxYvOyvS)p4_$=0=Uhi5yrzS&IBqi$5GS2mtw`KS!%+xX<}uo8#+68veC4z)OYd8g+~L?q)Y|)`?LqG`Z4-5i($VV>$&S=T6u1= zojz`)V+YdTVI%FNI7a83iL!+6PSc;EOUk}R-8pP5VZ*BvX``!+wRyGSEAJeID7KrQ z=>!=5r|Zw}I<&*e(2b(BWuAHNv}2d|2nO5**=fl-Z#vLAd#-DBWW#pW_R}M%Oe^2v z2<0?Np6d)6FLy`gyE>CjIq!U~qowob-PsvBVZ{L@3_58dm>2?66Zq}fm(KdIlh}8T zrkR%ZUFFQq7WC7$&1ar+;Oq%?SLfZpZhn~46Q$jJbZ?Rk);9k~&k4ICt`2sBM&j!j z3g&e}6TlJJ@aAhOISrFC3E<>S){jGd@x8yfm+}iRb%voU>s*n8&-0V%%YS)@^KJRK zJe&0ZhUJq^x&T_RXn6B-1lwbYbd)pSL!SHz&ZN(2_&xs z3RFhxk&GX%a>N>zErH%e2)C^L1u`^2zVq^&X?&^x8)9GIw!B^wLqdC5lpjUfj zJg5JfegTq2AG1!AUdjXNQ^$#K9WJBkQc-M+b;rB>l$Nv$q@T+o49S0vI9pbyUAz3r zbC;KtSFO!@1JCRPu+yy9?-N(sDHqIFaIFn1wnH5>f9W$XJ0p^3e9Z7rAInk#J-2+E zaZ-z8&DK2ukGXf#=EeUYDqKGNi4N0hp{0RaCwUs|z0 zDzN>}T?$HpDj)@CC6mM6od$|zaX8&{rK+Aa^ZjD*y_;Y z2=e_U73BiJHfj%II=;=`)U`Xit|oDQ`YaZcNqqEdL}k3U-o){-jd~-#{_Y;(cjNAM zLLU1V9pk|FhVlBH+lQCkMJG7P*MLqntkv$Iz-7(a7GTmvA$I7kn*%)sN&IjB_Er4$ z^?i7>!1-}Ix~&=plBl~HAdfuwe%!~H(zBs1$7uY1rWGVhCy(RB1%{-ELOm z>7WCE#4zFTy0MW!w?!E`0xjrh?N`wxpXXJ!yAzB>6P|V)wFFGRK;BdGZ+BdST8rx~Mhz!Q zs6h7dY%l^CkT*OYx&akH$vurLfSERFOg9=~+x%t!A7yl1%6_$kZx|j7jMJnvj1L$GN7~$#dx!ybJ?~q>%>kfJOLkqbvjfhd z>C7#9;aR2Cidzh2i`3l#d(d&yBN|?0_|+1yOx}Cwo&g%K;nh0v;^}*I?k;v=8VvvV;DQkL{6+xLdg?(NWx^ z^V0=9ZjIur+xz$*C*$}ZXqbDXXQ$Fr4FAh!HD0yd(Hlcv15|G-@qw})0lG)X@g?>C zIc5C3-;3^I9-nnOdDK&n*7g@4J&&VKBjyXw(_2KZgWN94wCWF&4SE54s_T@KQ;H}2 zo)OO@w61M5up^$s=H^%r)Cuj24w!ZE1J6A_+1;@(y3KfY+>bkW?AmZUFK9}B&k+Y?D4&12{=6<7N&$$2c8<_Go1~51ak_ES z>5u45O+7`%ISrk<V`JTUYG!5jPbn-iw0Kl}Z8wpf+?#DbcUw=b`SMtWZiJJLXiMS4N z{3O7Ho%!WrtzZ;`8XiK7vesapLMEckRCd5$TQ_nTE6dgx(R$7k#$tnQB&zoTSd48H1N%7yN*)kKnc7zj`H`N zvJhmbxAH%MH03epL%HRNX}Js|dBbmkfYMPm0zdP$P8dE%EgK~*6Y_V~2`}O*haY81 z7S3UB0PsY||-xAHAV=pHZM$$MuPNK*oO-ji!`G<5?TF3pZ0S|-yrEz_62 zocd}U@5IvglaB%$-zyV4o=w99*0eiL6}D|L6ZJFKW~P2t;>r1WeEQKxadL8kZ!nMX z%pEQYK(xF$`bvHRQRQSA5+uU=qyf6*hqKqF(`k;DX8nH*Cl5@=@@h-G{GRJ!q18?) z3#sf5Yl{6i60EJVLr7OgKquHQvVj-yJ?pEyAiQbF8*OBffuqy~Eawqf{JGbP9U|qJ zEjx$onApX5IxFFc&p&8UEYd{vgRjc?WHc&%p|s*Nr);ubl)5Wt{gW047_yVe#C+;a z3Zz#Xl^O7eyEplhvmdRm`CD4lTf$S;A1~6852OrCud?Ewd`LyN=G=xuM<3 zDan7vms;~r25h}lUKL!WNJF8a=kDl1F+4O-D0;uuhz3U74Qw1v*Enj-9cy(o1pJa~ zQhPMiZr0*%$fpSAFQ1)J+17EFyS8CW5bQ~>%-bL1)OH(Ak-$i{TNuJ^y!o(>w^y!{ z$o3>ggL-rUQXlR%aR=I5;&iUb*K;*@04*!Ko9=j)YF1jFyAz~p;{x(mXPr3fx8gV7 z1FY>K$8lBZ?BUt(8!?-^o~1!L`{;K2Q2{i*V0;htt{KgK9YE&I3?K{u{jh{*ILEcIJHOWAH`5gke_4vccf*YcPe*E_#*g9UWF z4kLfr9>xMtc|`aQfM<@8{)fqZyq+zivv0>=ycl8VR@o3yLW)z5t1%^aB$WI&0PFS2 zX|=m}-tXk-@M~UwM%wBhqKG#2qXFOB?FOHt7>{>xMcjAD&<>Ut?#hkO9xC=SKg7$S zXEk@?w|BSk{oLu*o%jr}*6X$7{PZ~f-LF5yWIcmY>%ct??ZwiTb807`v{@d*$ zCZs)VwBrnZ)d00yoC(*g+5vG_-Ny!F?Xvb2;Br9vKkK(+)U3rN4WOGZb)mg0&v0nm zvHKReRQ6501sls{9K(w?Z)@;>5qZ zy@?iSyQ$O?P~AosHmgOfu@MVpfNWlkDC?2V;yQ-tWm8|2at?3=#^~~!#V#%v+xXvo zeilz!ICVS915Z(fESm@QdrXo}ZUsGuJ?J-1H#+FZ`JhqD>q-X>IqSG}sUzBqF1F5l3x#V@uXXs` ztjx|2+g&?7(h(%?VYEZ5aBxm_KDB?C{?r-YyN26$2OulJ(%}?H6i`#zd(<}R$q^gc zngol)F>Xm;N4$J@%4tsh#D>}K>u9A8((ZWVhYnym!hCXsm&6mi^3C=+0fRcutDKsd z%AD>w`d>P5yz2nl5m`2s(#0bM%baDhgN*o;!!%sm$78MnCNmG~j(jpN-sLDJfs$7K zrO#s63{%n+$Q0*VnjSC1$fJDZhDXSSwnKl&HHVH!N<)s?+DWN{{Uh%Rzoko=9nQNn zPxJ9vz9VntYN4dbvidWh`H%ZyggwD2(JW)3$!8@!o#Tu^8lFy|3+a=>bJCO-mjB0R z1za6ybTh>=Dp|tVrsq;FQc)(dMOwYo8#g0z%6S4y`2=C+YKV`#jfwOhfw4B-CbHn;PM~f{xbn4UjPFnOM zoa)>H;Fpe?vQ!eb#@+ore8w-PzWB~5(+%2w@rin&E_lq8yFw@Mru|K!ag`K`{_-#N z((hgrBl(P$WIEXyXdCYf%R(@@Ty&(!S38m^^DHGmSUa$due^&+6E}RbkktEkn7IsaqW6n9L24QM_zq^;rr<#ez=^_u-KF1_=^=Dr9jafC3d$#x81g9rv{+F zyb@ofsm6c`czf+SSR3@x7^M>8jL!g+z0M%UGaOwW-UAfBy}1EYI;E=?r+iKj$q>iG z^FKe_-bV`>2AwL-FlD1W@2ODk7A>&xNFbeRv^2moF>&M$MIH=#&_hMv0eXhr=mXZD z4KcifeGGBZ-y-G|z5oFK^hrcPRK1_aSMLF-7=T56A9Eb=4d6wdPN35@uJ`bDfg{|7 zC&v%XxZFI%8+cTQuNUy-v*SiwUu)Pb9EKQ~jse7QgmfIu)KEP{$0c}1q!v;Y2(b);S+~J%%t&@gEdOTCu5i;I?eY=VY zGPpxVH`Q&Pz1kF99yMbo2*VIQ0H)UfohqL;{5j@#6QlU5(~q2RZ3RcSG-`eH$elyy zfU+fNIx6P5#7_NGSJQzboEu8nkh+E>of@8NMCSII(tvr?Po46OF_wA!%j2d7ZpzS* zAABF37U1SFQ5VQ*x+Glyv7?krbg9`J#&70M)KviFGxVm9eD46Q>V*4xkD=rCXcq&FE5;)0QX6}xESPdOkG&gS=(p`rfEz``)X4GjBVoP&YsRXba;mDn)2A? zvx;5=nc<`ijscg$R$No&ujcFc9r)}UK-w|yPTKqEfi|xJ)@#7v#d$ZUvAcPeeF&{8 za)7>jByo#=wkkAMl;g`*FMAl@(xkfX%VV5S(RcxfoWh4+ZJ>c2_b3eq(0oQz(Q>?<+@<>1sUC1yNWZ0QxQgMXdv3tC#HpD+Glmy_DZMQ_+{x&X_I~CdPJRC-L4$9G7PrN5h#Q5IOF7*xagW`>ENXk z$z|Mq6=#<^=CjPt@7NPZLiTB&$%&78=%|QO4Bg#U1M3u8o%?j`d2SlnHtWPb(k~r( zObQ=od`VL(wmji|IhF=znsPj;&|bjGVp) z&z(`_l`^0_re_%K`_7p-)>CnfWh0Fone@&>gZi90EErQFUy;X7sNVW<3f3Pc`- zR2YfOx4Db6cBue+@+Y?PGK}quYfRl;H;+&wPup{4lzSekpIl&+`5!+7~+d%bN9;vI+=9#hQ z0K+bIK4(@WeF`1f@!JtjN1g?9JMwlpV6g+4b6)CZii7%-`NOk`n~ni6m8WYo<)a`n zJ7`E#0O=(_?4Zv%3xqV%A10hrj3+aE8~D41w>w_uCR3RgB~quolZN2SDbmi=m?KmD zdhM7yyK5Kh_;G_*N1!d59MP9dn?-r$l{O~Vn8L#%8}i}L{Iv_}i)VT-@F^V-QHSKS z`eksJ?>OVm9fy^QZRQcS%aK;so44?*)%CPZ+8OGG8+Q!=w{qJ{Z2{4wd~(_~Y2w~&zeb**qdx-0?oYp_XrR~&CBA*;N=9$*cY_wy!UYffv3|m04 zb)j@-TOP}rwunDx!DZb{8cFQW?6U0tRe`OBChss&1F0}oRz;{F9aXaTtW$T|9!kdh zJ`R^_ENci#faFMCS4Bli*>g#J*B83Ufcw`zLBY><^EhkOV+mlI%u8kKfQ~N!y91{J zqmTmt?)UGe@w@AL6dhoML#pv>N(1!NaD@38Z*FHO-Vw&27SB$*v0SiYmg0yS3EzjItwSjUv za_p|p5wD((Fl;!vb)11E0B*mIPSL-IE0I0p(RG8JA^!9NMAbrVm z&pdlKUBo}Wzs=rqryfz7I zLERS63~g8NP3zH+zvziZ$#oxiin-R?W1IYFC{`dX*Oso(iMx4epqlRXOxkMz)H2p- zWHh=@UyfooLE+Ga?=XT@)32-mZ4vJQif;g4Zs_EuVV^?heX|mG==IGMeggbY2Cb|J zI(rNBa7u&fI?KN~KSwv5rjGH)SS@MPZlQY$NI#`~FVNo?=#xFz>$@?HjzFHe*zQwu z8d~1#6n|S?#5)xCzKXs$dtmAGcZ}d>5tAJ{Pg&dT8ZzI-4ScwxF>-|Yo8>He%|>oU zc8p%NcI_>v}YP; zXxgGj9^vK6mi2ClY>#4e)QTIl@EX2rSB@W$Kle{zg6BYAV}okQy-6DV&M?>Q-%OS{ zt=SPLr>ft>Pl57`cn|2eYq}@sz=sAYq61H$r$;&uW9lei^rM&E7;d!*m3T+EIy`Do zwx@$G4evU2)e+Gq`5t#_@$w1fsqF&M#oc7W^Jdx&JJHtYjrC-K%)duTowD4f?tOpb zhIfNl-b`{9!HTjA@LkvK@jr7M1Kh*tQ18-Nfjrehl;D+|=_Bid$5k}8EZ#TNxQFDyVwY^Z9 zIXXf+;RY@`+FscAj1qr;gxmhlP4Gr_7hGQk6OHl1elI-jGv>BMDuvB|cX0&LfwK-!?GjuI&`qGw!gI>#*Bt4|cf}$6@v_cJ2WeVUj3@oJ0XqLl zgHp@&IO?3TRmkC*KZ0(&@GN92up5a)1Cah9KaaLLjJ${#^MZpLZ*&NBhp0SpZRDLJ}@uP0xWyfj$| z*Xt@L!{syLrhY(^{80DQ)hrvd*hym^<|%-X4zD~mhRd?#v|M>6&FU3&Cf$Tjutt7< z&-BSlFb4toQE!uH)aRc)e;K`AFFRi?U+G*x|5JD6As^aq!~fX1Rm7G&%8@;2k#2rw zxh-IJDiPkg>T|E`BtT!JKY7ldvqJpsNNjd=llFq|ju;C@-MC0u3-YC>h0R*;Jm0rY z-uO1O|N1zN^yW^`sS~`%cXpb#ep{}w764Li({d!)aO!JLF^9kdXp>I~a!JF1GwD=* z;tD%HJQ~lDT=+@hA_M9UBFxS&WhITI1EZsZ?M-`_vZ0nr z8|9Y&J}Y1to~I5Njygb4Y4%I0Q|g5EhDXFNx<*)$t)b+*bePVg?x>?aPliA0QPvsj zgL2COJ@^9O5P$N=Bb73od6B=g9eja5r%NmHUk%t=$^9rG|7-~DbvgXjfGgx|Fu8Xz zNcOO_H0V?s8@U=`@hwxR4Z^r_P41|R(E3L@&8zsh(}g+yg$A&^@No-T>%4 zhUQtj4Y;C_pn}v;_Cc!?D->}&pC#C6G<$J9xr;kM#fRxC_N0A&4p6}Pb~N#1*o-`` zsMC)bifSY28q{WE7w5dAI!3MAj5pt52nKDO`+EHL^(@d>2Z|>)Dv#Q1np16kk<;e)pzl;wUml}Dr$?L`0arEGwn-VOE^X_^QGg_bt zl@R*^K&`|-3JL-c49%PR17)k`RP}S@__4>qRGrecjf+|{I~p8;bvIgA7!&kxN*ed8 zMe3>sP%yUyFdtDiL6DnY-IDf%{43ZYM>*X1!N$s-Wt+4P@pKn+1Pys=NU|3>4IRc^ z{gF^L75WXXAH;2;DY2Iq_ySrI@e>X`- z?ghpYX2$#R6#eQTWt<6gNSWQz5ZPH#fl*V8uR9((a&4pa1#$oC`58LrMp(`?IErtV zYryD3%%_w1#aSnNc7Js}&#BH&(Z933>$n?v1l4QwaPHKm+Lm$vt|^mza0Gjc9xki! ziulg9=);Q|Ak(J$nzrHJ+dNk6(TP@NMkl^?RH(WWEC6E}>^aBYBCv zn(&O)2!OvzdR~q^2!9#Zcgu7(VO1_QctD2Q3fBxfZ^b(AdR{w*geL0S4B6jdW9Br- z1NeVQ9#@nbkz^Pz+p0VlkB9cM>!jGQIZH*Shu1$|+VG#QKdnod=$z=p*q)}NkKEd{ zZH{Kxu=ktYJkqDd$BpF#biQ*0MZI@D?ZFw>vC{E&y`B!1fYMQ5XFTQIHkmr5olK{d z-^CF&uJ%))qy00??*U4AF1`cg;sV%h45VhhZFb$n!JNM`=pnNT5SG{qQ*R zcOL=U@pSySk`IsJ4CHq$XYoOB+;Dd=sEQ+UyK!Xum^aewR+@w+tjh934F> z5zmu0@^v)Q{48^E{CWTQJ4b0r$7k{}(Ue#TK z-6_^lL@lDT019}3H_%^zWYO{L;E{Ka`t8(IW$0x&^kq|5p(jVAxujj4D)oRr^0#dM zNx!@hR0>Xg&JzfAFo=3edg@fBNBRqwj6sJ}^?l|k3+jEIt4jKU!wK!3AmsoE<&83Q zr{+?}OL-0e$;*7Re0&^qQU`KJY-n@@J4dmpPl8zosr;R6C!ANxfwb(TQTL9pG451t zK6aj&o}INTc)Q!vz7g3GdgD*$i1p+UmGv@l%0*yMF|~1&m2$ zW|iS=8(oL3?#Nd+pmGV89R~Vtd92eTy{Ws{P3x8&afWkm3U$KZmRC@#4U*=iQx*slM)L>u$MD zS9WdfF$(qBDFzL&_WEuLAZf-0zk7{M^t)CxmC>GHob$1jQ(><&-6I^_i(xz0^e(1j zDixGbK~=WX&QUxYwV<&Qmw>UTv;ba!&kn|y_@3qZ{ml$O*N9P-Pkot3@Z3xv;uv7v z>33rdO^y~XH;$N6u}D`3dxBbBP=QY=k8ALjyG1;Cate3@C}*dg3;JsS+Ev_FcL^NV z>jnU}694R%Phr(G4a}$ue+WIBV03G{7((-LuNqH|>x6fwx>~&Z02st!Z{iI9@a-&q zxUa-}DmCnk8O1#ZfDe#K!-^_UpaQAvR3*UNE~k-x2GFce0PDze*KI^+wT&g7y_-Mn z0X<7(yWT@MG}%%0)$KTbxEbT%H*&+H%?X&Zz}<0waRA6$&hzkB|3+R4lF6M*MBrZ8fQjyB255p7pw z*x0preh!~(@LfaUxxy;7BV+^kalvyN%7vX9IF%X>M+e+N`x8Lv9+^K>8u2US{xt@@ zS?K~=oK`=GKE|YXw2og~3}XaPdk;U~V!Ys1>{@l|LBvJ7lT)#80s9Z|*qxL;-?xd- zZjjOI2O4L>-_RILG1~qmfCD)7E9)4ddyCa3{$U#N9lZBEW~cRj)NjS8hZBq}D1IEr znrGFpgJ|xkIO$i>Nk=!^$fAReSjC;b z0Q63^?jW}khy*9jwI*Li;l zpg%zlZWLw1tPbtEo!oVK2;XYN8G7W;Y!*}W&$El~P|hlam?Do`c;ec2&(gi1@k+ae z{c-wzpF$1H2fOuty^AMk&l%+%lkf7O6<=HLb-lYKl4lQ(sUr{7eSA7>#S#PXa{%%PzJaA<4q$F$?>q^5 zPdXKxfGWD%B@ID}Bk6Xc=^!}0+$9l)^O&+4IyXVbUGuCCw|Jfnp-v2SRp;3rYFH5N z3|e;VEKcAb+V7vPKfO!Y=)|^hq}&*4I2c47eQcu3PB(61UxXgobni};91aPC%yZOA zd!TddAA0X}K^;xhDBEAZrxVRx=Q}|uFApP+34-~Z;Fmm&=sTVJ1JKJlMIfEy908<0 zly{_&AKpDaPaguCsXRcS(&5f>7ogSa^#Q6lsyt7?R(vvOdh|s|&&&7L zL7&_4nMQm%5&pA zc4#1bL5(9!rc~CbnyPXuY33-tz{QMxPPz5nl&j@1&0epA{x)JVo5yrKjw&|KOiaVk ze3HrVrs3d;JTk9z@=4S3%TL4S2sO_Wm`V$A4x{RB8k(|Cy3`GM2Y+~`ekjufQP_BO zOdy?^8-;ui>6w+CJp(F&67 zl&J#t+`0I1APd^e(-G-R1KoD|xM0#L)VWi?^i%%at(m)nV0rY8X-Z?OoqD3~$qPG6 zy0rIpD!80a&}v$a?&j=I`As^4RqM}oU8WLCkG^eo06@ETZ#s5xMn9SIL!bVHc1j@V z(Ks*)`tif@=cUupWCdj191i-q$(cuM+41AE!|VbBc`W4dXap(B_fV%wSTE^0$etfc zCGXOwYz5F>6d6m+MY#;4j`Fg!=lrw0(whnKPaQxrd0&z?P33JJHZko}Y7Eb%HJ5;~0{^oe9$L=XU+kfbD;J9V&xN@qSQlg_^>EvAJ;tmD>@h7KT9i*t_H?n7h%s zPE04&GbtU3b82i4xLb$MM@JgBque3+Y5O5QKOMw}D*)5hjhQO(`A0`M=w)LFR0CiQ z5V&8*WV*!JB^|)YQ-GdllRh~g#hZ6m=thmogfouAU#|in8V_-Hf^q4#!2m6HyWQh3wyAV=6lM-Wx}ISW_N(~fqo=W$O>;zL;;|^3YTQ$9*SkGnnA-3G zpFW+*TZ~Sp)d8FU%x3qot#@Jti10G zubnAG*ftgG#YroM0GtkhQ?SDtT%7?3lFSxYvN7e#R{1^b$7B@QJ#8yHJ`<$ zBd++(?j{Q|%p*z0fQI^J8pq8}HiWL3c3STOK5mzL9C0czp!1H}`7LzZZq{*R{_ss> z*u|LGvGEiTF))4`g9J?7)|K*2#PV~ zR6yM-d_ot```vgkJdPEh?O&rSu8+Of$Pnfg{QujNPW;WQe!O~liY%+~-R(5jm5$+C zH@4^+-)EC}f_@Kb@PRbHxu4}3sTaq+xY{jqE%q&7ZcN&a{`R5eFKN7jn;rr>eorD9$(@#FX5xJ8g$BD*n3MQ{Nlw0 zjX)*d&Cy%xSLNs->d+z_G;AGuZ$8}9Xv3R+kH)?k`{^uZ_jUp~GonmUwsXsLM;$;3 z{5VDDs_4S=(~D@es?-PcVZM(`r-0KA_2ID{E7=H9$3CodzOajw*(1m*Hl*Y)l7+ld z$DDdf-FQcXe~-@U6xlIn@2#C;6XH42ZzFEmbe61BI-WWMUWeZ2pRPa6%XU=#jwGTxxkrS$Kt0KhXVTM|5-8*d6rTd@P^J7` z-s#Zi5~6(e==}0dpyGEww)whYxnYif=oVEYpZh)CH}%nxTEdVjRN(GWmKC&bt)td2 z>PW5~lREU;@=62W(h1kU;E_L*M!#f7HqXl_A)pHVb%U2C<+sz^-#Uc{$5wic=Mf-+ zAnT?6ivT6_&3adSngq?1)wul2-`)+7jx_fI=yWpuUI1Kn4rD%$cgkFWhY83@Kb>Cx zC$Us6|b}W#eVAzeioI-5-v`05QmP`E>+!kc*`vfuK9JkvipL##4rgY9wbNCQDX9OG}q$*rAu%spO&=M+KQakOWt+> zN|*G?55c*BHrG=7A-$$Lm-<|6q~%p#m8JF0XXUEIY&pkIIgK8&%XPp!Q{LK#cW>Vj z<{@X#c)U^86Fy0I${AUasO9vrnQNbnEB=ulXBe1&zUM!~mz}b)bEIup-#Je}Iot8B zysV?@w8u3npR^~$5pe70x<+2UI3rG-`*XU~#y{#*WQ}+VhU;)oqMtZl2SX9gSPg?@7NF3(}l#meFms0hbLNJ9o3~QYo#> zn|SfbX-skUUw=Q2zyADXt_`>%&F!upx3f856(8F3I01gyV@1o+1uQvdKO1PA*(1uj zK%G6)a)YCLGn>T|^8Wbz3?*CS)MXc;yW6Y1ZJtj#!x*?$&Pu$;81w;t_M+)byJoiy zFg&UNTAT0>~=c z%CZg5eZ9x+-vUlFCbJ3^<)H!abHgf)d@D{G+qh^BV>*T2#y)PScn|PwMSNFXtcmwK zfbrdGna2PP0Mr_>=dD_d(32(=(UIO2GM?hNtSCubv$jn4qlu z>WXV+C;Mew!ebj@$b&|l2FlDUz&Q;EhNJ^MPElKH3;;!*pK8Oi2e{2NifI6Gppb*{ zPTPV`bb$00wGDD>geS>*M3V-6jxJpDT|U!V#tr$Tfu+m?8iwi?hi$T14){A$y0GBP!B;f3pa$nP+x_fZWhJb$>u_ui-#NzCd z=WIHOZ=v}f+dqaz&w)M%4K>hRr+L5U-LIEZcwys=gGgg=(I4@@1Xb14R!Hqj80YJ z-+cEzUOs;jtGPACMpMTJ#i}l%PfDXMb@HM^W4(>DGXNk?;B0%88&wUE{};_3Kr`UM zA{I#tG@&0OzMqob4xJs*$iWTtI^y}D7q!+=d~<&ji$*u*Jo7AB0>+CbI*oqKaVopq zcgT989-?~>q;~}G9x!WmN@@3}@M=fhI6^;n0C7N$zm+C{au%z_JU4NwSRY!I`258& z^|+F|hNDGkmp1D~o)s+Met$iQi_>A;PHtlc&|XrOY}9cuP)l^t4wME!A40K3=kR`x z?XVkxVq#wbyu8|w=L&fmYy$0Xx2qgQs6glrd*S+;9dam6i{Yq`RA51|jie2_4V`xT zCt&-hduhMj#L11Jn#i?Rr42&%13<0oXx#x-C#*>r?SQpOARs8Uoz*70v6O&8uS|z4 zM`<%{bzBEh{XlnoPxu53e77E_V~d?BBYLGRH(vP|kLP|jeH=&Q=9SUavl2$ybg1V} zmqhQ3uWss~6ySt&#&d4@-4PqZWm0DRc$Y36Wpy?;_InJcGv^d!^Vm>t^h~6$OdZuJ zBu{;mLRcxQz6|k6AnO*T$U2n3md8%7)Pc-`TW7c*KK`bOC}qoZ4OaLfFgQ5omLu!8 zjfr8TiMBC!T$L{K=PH};*j}2pO}#FwHbe*5Fgo0YM?OukMNmh!vy+N+GOqIA?kL^C zKeJ;&vE)=!=`sucOIZ=b@Hzcd+D%uwjAxFSMk%kO_J%!7jkKJWFGoh9K~P=7mKl5* zmcPW9zVSEdsbk7Rnw5QSFeY6_B`!0mj0uBv?EiU zPavFf);BAobpn~gsO4d{hUH4#gN~M<6{dFGi-oitoRZ1;+)_bXo`*|bb{@!^+$x*B^ticIhrDuXGj%#QmBJ@+R5hmw z6J9vCC4XnqS%>7uN6(+f$?!O?Z*O9}D93nOwv!W=$3YV1a|*JwC_~>LU=PL=xsa2`JL$5~c>apXP2q<(tO|9^~I{;*g6QAn$97M4r<;M&@vo5Y7OLZpt{ zx$QC~XKyX>8;F#7n*X26WljB~0^3qKW&iI5^y4#rXJf`+8=?1505|B#4V>(iK>BmQ%d7QVlaXH3??e+k&2m(2^8aR~o z)! z2uNzg4>xy!p>|H+bB%5Np&rkVhtb6Abl1^24c)J9=kaE(N~t`ha;yO`?ii_}^Z>x; z@S@(tn4v&!7PP1~at-O-c#_~v1=ShRAk+!tnV&TsRRG2IVMB%AM6cJ1ipUGaTJfY>rBzKPE+p2WM$Yszz!JG3qV?6sy2O(mY3o>Fm_3D%l8^{$h(3_}cx(=P2y zxT8dFDSl4HS;Eu$ZXM^uJ#Ib3$ES8&0K_*B@tz8Ig8&7PZd>kX>OCN4Q*Fk_-Byfn z!hF_+Ur%X6jxd&0oH@a?R-wu}jhmyv6ZpTtQ{N*aos?S|DKKx2Z20>I$0yGnMGrm3 z6>^hTUGzbNKSeKX1ezp0!XUKK+k15JJ>^{S9_hu@-aOa|H;@ZP0UbCQG^4T_$MfgI zczMx_yXz(4u`1-@&b~|Jxq{BG$$JCnuA&c~k?f{Gvqfo~r|8i5ZVAZJpj2|bC#_91 zA+$wW%?8GbyvFlw{ObKU&Xby2+-=|=2G8=fw##?{qO5Kz2{t_n$zE4?*ZnX@?+Ej^ zIdze;lKeYla%25K1{Dzw`aY!H`uWpd43JN!*Ntyy^Y{uHXZHG$b~?uxaYuPq5UyMG z(Q!LEM}j=SXd5_>4!D7s9ZE=y`iwrqw`0=Y0!pvv_Q1B|_02>48a}%b+cQAy8}d1- z?&4=J0MBdceXAbVl<&>$D%YsLyT@oxtGSc$4YK+L4cCAM4Okgt>cktsZ4Vtgf!F8g zrH0#4ck9q8{2Efnm;TL`G@8^+LNuwbj#fA2UDwVe^b6j&=6Xr}l(#(`CNw5ygj-e` zlm(iplY(4#KX=Nro7f3}kNf>xD?Wz41?9#oisR8B?(VPCStfbdjEwCx+0hs}Remy! zD?2&RL#KDwu#1x|GC^*h1r0^%+--5_E{;cOAKZ;w{a8CAg!1`)3)r_o{(#=!*4z}u znJA^!=27}{t0$u+p zuo0lNX!~?jeU`ugv8R*Ed#6O&MkS~rtZ7nZ^L;KI;#oc?4{eyw6R@Gz>WcMWhtRgd zwX^966V`ay-jiph&pXpjFu~pLf}o;b*eLYWwd{@(^ccQU%8Bb z`26U&WxnMzp*|Vdx{;$5(C1|;j;!e5TCQAg>z79!JO;}Dq}gyjcL!HPX8Cw~$S2EX zXn2y(wY~Z75BLh74glA51t}VQeSKbM7r|t>R z9N|)Ld@p@I%c-wK%5oB(TaJz@uhMbxNFU!5Q2QQzF6$i$Z<{8~ggfYydZ$yKJNgnY z0j$pm<97k9v>Pv{jPqQ*%?*s?Igi{4_;8t~m*q4aL9IYce&jRa3N%PKM~dZ-eyim% zyaiN8k{8llo|OD~f9T9W9kRS-#I1x)o#CBntCNP!_+~C|cxN1er(ep*8a|c&4$sZa zavNS?=6mZ*j)*EtXv+Fcaso&@dyVgY8VNvom!p>CBPewWs(CY;Ns*o;|gl61!c;28J)Bf#X9aNWzJxNF9O>0lats2I;~f(-L=z6!0S}# z>Z#Ds@_)qSte2}$Qo=;0C^Hw(; zaQfZ1-^KT@e@NL4d&B7CBiM130w-*OXyy7SV?X8MJAtxJC_lgZ6u;WYj^t)|7;H#o z=`4+G*9}2D>zq1gJxg6C&#dF>Ha{0Da1`}v3!ZT#xQYMf9xbxc_`j#+Py3Sle^g+5 zFvtfmn;-tHtQw(g5EVSnZ9MHc)Y(#z(WL00%ttVNM3swVvm?+9M)p`{2U!u$LUrf`Xp`T88Z|6^u%O zLUpOEp8y`$DBT1{v{u{2$?+hDeGQjLN(j zH9%Bb;KKbJg?-+vx{jt8Bz)^MJ5+?yDDNTz~4#01$HZ@isF2Ln>u2{s?%NvjfH0)SqfHRJ3YBLQz_ zOGh#_N*G1}!cz=}yJb&Jo3tD`?jyG?zkAS?qwUCRgYI0x8_)8!g5G1GT~|7z90J)f zG~FQcvYCes9ZnRL`W`UihCH3479bG4q)bk~I7Yu-kp8gQj%$pSz}B_hHWq7)coo1W z=oZKv18kf&|9-Q?Fds#Gw~T-F*=hXZue&i`-a>CRCgWOMIm(UJ)RDOjKsG8E>oErG z5+1IhXIN{+OVS_0yHnnu^g2=PH{)tC$M8WLbba{*y=<-k&pqlzE53d+k9KDe7j2ym z__tZ)CTxz9j^O=;)3KpzhOu_-DC!>9&@w}hmdKAbD|;MLJ@&((9S4vi|Z@toHY zgy17FSs+7a!0Dt-E^B7S2w|BFgithf|O91YY zQo8G~BQr2G283;56YT71)hjWqHshny5#`=S3!3k-9W(hs3N;#ocC!`F+b5}yH{|E! z<*PmXq>8+NhEwX?Y_$L=^rM5*h8o8dz?vOJu;8udJ@fq2K{rlYuJNI+lcu}T=J6HS z5s&3^YL&-6t)O`^+sEligNC{i-L`es?c}f|@IYO3HpGU?v!px=8X;$BT#QC>vzTHp zb&7P#btH!+u%AA zMTcJpRA){!?)qIvD>6@X%XU3SvUn#j^!EXHq@&Ki1U~8+ z;cWj+Pv^dBV@p=jVTX`2oSaFZ9VQY^s>Vq@#FyYtM=Pg=633AfuN;+vUg^_W7R)42 z;@uv8xFkUR71Z)1S}ocj!m81xBh8jQ0X`p{MH~F&iNClfk=zm-Shh!g`L02k3}XHQ zoh+|m`R-54lE8#a2D5An?Z{B7Noo}5mcqj~c?WkX&$GD@7Z1?HWk8NZY<@5D>~@=Fgl{X66FAfF$; zBMX0xO~iWzUEbT*_4W!zu^o2`!4C??#Q5yx@(Yg+A1F% zb@>5jv3Gn-kUF3iq#UJ}a7hR6(nmFUo(Zb#TybRCQ7Y3&Lb)5(G?byhDRqlD4P=vN z!_pSz2%dTHu^!}fUE>n7_`oGKX();X5BSfzntJ3@+9G9W8b|m%+Fmd7Dm)@B@>Yig zKu%}PQFt!92$XZb(?vI221olu`P|&nqjqwWL-MjzS@$VR>b+seN40RHEH_3np9DeV zX(w5(Q>8rV7g^>89-sAGKh81|XGNQ5oloFLJ+?e{7MOP7Z3Q0;T6uBUgi9KUk?oms z6j0m#SZX)uauDn6_!$1$Sy6b9XZ1qc-Thr0IkOW!+}_`(476v;Ng0;C1Ii2s{TiqE zJ~=%}IZdWhK;$4hHq6uIe#vY8885*lG`Z21a>$O1^%DOOzYbgE@pwagpsusi2xq59 z-2pjx;i&Wm-#~CFU>0DjuTB$J%C_&;1<&Mlgt>n_0&E}0$qB%=+sk@`lv6*_jw$oU zx}mJI1CTuBk-9C>%F${0g7or2J5qE#b(eQLn317L*RrZ(**VB3`NcbbW(PL9k~*8| ztH(u#TcnoLpM9Pc`+t5ZA1~!#zJCgr)c?_d?V*5&p0oT#L2Z2OxzMQPbOXX^+?@L2 zdRj-IT>C}L*h7&_b_B(vRJ?Zpa(*9Bq54SZtlEg@0O0dJV7I@E57&#>-c!M8EkE2( z@=Vb46C1B$FwOy~Cm>hDy}zHKkefIi9>?u?5ewRf3Xbnd&mG=sfMNx%kt)VmB^GSX zrYJ7#axJCG;&C|2(Dj6KDaYR&wt9K4EGCP%0v>=P<+&K(Pr8s~UJoNk`U z<+MRJ?Xfp(1RCkZDqcJx9Du3QDkxyQJAlcz@zrHVw}ICKr(A24k)u7Amc{i1uTDmBT-(RrQ<=Zp*5mbN z8vp9qljsocd(eT$*NmvN9|6p<6>$$h0Pn>QxAx{?C;(AIUf2n+vKI{SKEf$?)0_v5 z0z6$IgLml7uO_pYk?*SIktP5;WQI9SL)YMa6QZtGtEjfiy4b#Y$6H;P7agaqZu4lC zIrJ>ar*VXyQNCjwMK|biJ9KxXtCOGo{_BQQwO0TocNMNfV=FhSs>2^Qr}}7Ak1sA} zQTvytIl}(!f0zPLFv0-IH3r)a23+6j4$Lnao%j`if8&Nwlns@Q7xgyacoQekGQj9N zmDV+`b>vxZZ{p_{jrjcKfIKI0(m_@j;TGV3UE9Xbo*l<&V;4R6{0gIabvFh$SL4^K zS$qtgHY8hkFs7{T^!yYWdV+EE+qIYzKzR*t{G!u}pP^6Z^*xSq6Tr5P)?gGr+yE@^ z$MF>BqK~uOryf1+0hXu;3r9oXed(a0{&RbAc1~OyEjwfCaR;s9+_RGoV4OOI(|HT; zW`Oc<=F7O*FXHohKh_J3HR$pQb^LBRk2mi4&SMD8l1ou~?QoRG)K@i4~YaoPtRCyyDc!W%b6Ta)t@_0*%dAUyJ%Wt=dbL6XWw zuk`BL2-oUjhNwNeM(W@yL zQ)myzk_cq7bD8IYFT;A-S*r7G`U&KCEckU=s_6&{4eN-RQv*%kkv&1JpKPBV?`aos z-W(0cwCrHT<}~ey;rC{-%F&D*B{FT=CH(-W6zZ0%m$}Z(XwarES}sAO@1!RkbM)JL z0b?Z%*K67V+rpN)c~*b$xapMfP-n}X>+PiLkw@~*dytqQ=3UkeinWd zdi5fc?@42E)KebB^SuelfAesp&h#Cvb2QNO-1x`#LEf5<^6{TBz0`5br|#RSq3*2k z2MV}@$K)k=v%Go94-(SWnx{Xt&+<&Z2w1X=1kFwY%T`_{Z!L3=RyZ%}hnv>9R@Y;pa-^5?JI&kUi?nl449(hCbQKyB z55d#fVjjoXpP&8gXIbVwe%@&0W_}I=;M*1<6?tWyL6i6`T~+)E>u}0bKIC(LQ|_FC z&2RO^xbj5(Gd-t;`#h_gQMn!LyZYmqz*?y6971#L+)+M`*bDYu>zro`8=f=|mpb%6 zvnBGIbW;w00+%KHqX64OLI1F@7P2h-hVlIN%?8Ff4FX><4Y%9ad(K|&G>cL=9a-Sx zra>LRjDWXAJm1+1eayS3G=}cv`^EVH#}BajVHLG?HP7-~fsBtTC|^qh=w}xfIMVMv zOya|I8`bcCQlPf$ z4EIhqE+blQYSZeraJZ?Y)n>dzS*ifTlYWQFN0~7^AE+D?*L?CfXrof=MIN2gBJ9&a zJ-&R_qtRCfAL8zgiby_n(mtXbuDdOVY|Gm%PP|h>FvQrgI<(wVp8LsyyxfMo6FmUK z$3HuvEGB}1KLSnzM4G);j9y?oJ_ES->haxofI;N4hQE$p*)!--Ev~(Ew_(>k+q>=* z6lFo?IlZz9ZzvW@O+`TNV`Q}@u7_p6!;sD4jq47rAWqr6U%F1R66eire0tJMz+LTN z*j9kVRyF!Bp2zpdX=w+;W{wVUhjuqsYPc&de0+8~A}q!fGTzh3JN4T$K(m45%AP|j zI>tsh&LPlBf6-{6Ge_|Ry8Df4oFdyUIxxg(y9YdfsOVJHV~C-5L~e=<1o6t476Ls5 z*h7a?TrJNNo_!3sb8XZ^ZIh$h!=p|-Jv)l?U-TmG?&Ej=<}NO$$Yod0j*sO72C(Y1 zmrZHhiF0=ZDBP~&B@!N@gP5xr^8b*Ar3K(!ecM0@_OM$;XXZCI}-+xX3g zd7Q$VJ)qx>!W9wk-X)#B}Bj_iA7WE5I2`rSB!_ts6P2YXyqAK>dWoEGWRdW7epIYNFz z+zonQgFr4ZUo-+X#i-?O*!B2fy^l9eSqAJk+m0GnqD{Fj=d-jQZk0brr@NL98GZKb z1P(3Z?e$%B(V05=yaO;JvgpuoygEODM-TDcyW9B3yLl|I=>4M>Ky{uw5ZgKBxygO( z$QgS0*MIjaUX3UZ^!-QTf7os{ux7F_`3ggRnJmi^V9J*}g$g?`wcf z_}ti`qv+|by2oBk<6nGwk~12nj${)KZ#eCMj*)fIB@}aHoDKl>R)WDh6c0Qe_4bM?5!ss#Ns1!~bW*{AI9oz&& z+2)|%=3|D$NsyCi13HpE0AD&zE;kvh6iwK?h>@mJ+$**$p%-?*x zN|}mNDBu0=@}lHB-*ft-VWrJ@l+8H#NLuBg&-tCS@+CnTMUo~`BMsgYzl^+MucVQ% z2|nxyPjFb;J88BpQjRG@=*sl-uZ%$DD7ti5HlK6X;TIT6w{dmyZFh`go}xr$?Ui&t z(#-38?^hDa=LMvf(H}che*a#8Q+R6Uw`p2Vd2Tyk2ZZ6$xn5(-h?gV2mPs1nZvtb| zchoO4=O*AV9e=7LDI34T#{^;MWL^ZykuL6jlvO(ZB%&?}eoW7_9BH!yAit|@q?y!t zx4nlRJNF$ewoXa2^~EWxIR%=J$RPn6mpY-p=bw2=TLLi4NLqznI}I%Z|B7 zC2gwoNUQo{er1+ViSK&e+;ENr%*&&uvQvq6$#~6HJ9%kmw@VCsCcmV?I_^lS`8!f; zDWs3w6EL?scsb_Lm($)ZOfefLFP8n6&-mW=q@!`RbrH z!QUPqWH_o>UI`2-mw;OS$zMvHJan_Cm(QQa`RQr;FYfD-O2fw~yHk9M(&<#DaXZrM zlx&XxvR#Leq7%wjJ4^nie=;1#5?^TmK<-k;GHXL!um+Yt%VR!DzH~;Y?Ovts9`w?1 z0^3vyvNVR_n-mbfXL1Wd;-&&uIFT_UD~4i*m2}6 zzq8(P89&qHlX?ATu0z;=ip!e#Uj%GbhC_j};y}1}g{>(~B}3W04h^G*Ij80DT%+r7 zw?c7He~7|2t&}jgMVLCzb#xuwb;Qo0J({R^)jo=gX2kdR_Vjk5!EYU3dr7+OO#;^0 z9LIaGO|bd?7O*v0;wTau$vWNn#c>}Xf}`Eofh0b%c zMdjMTgLaIkIMmbI9R1Nvr9>DN_yL%0obsSkjoYuc@y+Xf9&fS)Jl;dM8y-2j`P`Ax zRx<`Dy`ZK_19S{H95!n4tkWb-&*F9D#}Po!&Lj;-kKx7Gqb8^vXE^6u%KnZtt#V%u z8u3>b-FPx;Mg7?6p_`apuHyM;FXMODxADW(B5p8RScJH!wc;M&ptJo2j`u~I#{I!V zvx&3X0Cx8=!~v@!6W2dhsdyUG0rwXeNJo6#A+M{kq__)!WxG?0(@s6QjYZqP)3#^cga0Bj6|S=f#Ky55su37J$#< z>0dvCA&vO(+g*HpyN?M1!+pz5y2do1CheNucNmMFd82bL8a==zz_hjpTwxqZyW&n$ z=1JLfm>k7E?IPPDhPmF3AKp&m^%d#X0Mg5K?l65jTSNsAdIfm8Aw4&@8dJv_Hnf{1 z^w9tVjs~>MS#~tkY@FpV>^G1oAg$4id&)goZ{rGZs1Dbtj~!$pz@AQ*G(gSh5plCC zhHr`UvY4-hi>n{5<8DbEN4Kl+%#JhZ_grUp6Lr+V5wS6G-|^m~ zcb>zGZVkCAr)nE;?OJQ<0zC7$rE3~&k0(2CxarqJtN`$5=tzS)wLNOb9Sw^+b3gD7 z_5fJ1N!XIV`}A4t;jg3mb<%fch{sNy_FN;}it8~Aj#6Py4IhaoHI8(K$HS_Mfi*_SZoU zw!O-yjh<2AatVvGL3BpTdA0>42rhG)Br?pA4D`b~=~_Y8`sFj)PMyvIehOgCQCpo| zo|&hPnogoXA?q~H3}@S(;mGd*ECsHP8WqQkcbU$kZW8ZsUTGc+VrR2|I?fc$k%nC6 z!f&VFWH1f6`(IOdHVNRkc6Wv$CJ`Do{@i>-(qejq%Q{+8NIH^s(lvhai}!AvXh(%|^=@$E+c9ROl$SYWd}%1O zmNYH1`8d|-yGLhMV*Sm#gC6EP)3vSz%S#IX~=uyQXgDn>L{#b zF>dmUt8``*-E&mWv=3m&dXl4<>IFKXt|yNmSRkMts5_QJeXt@VUo(}WPtusvsQqv` zdge>@*ZL)h$vQzA(kG8ocT9vU!8(`p8rC{*8LS89lvCxoQcmXe$Xn~7Bag=OnY?hX z5YshHpBLbRJb0EnPD7*9u?tV&HT;<2`%Wj*%ukS)qlNq(@^LL`+84gtL0~;lFTB!b z@Wzf7D}i8rJiQ0hE@Fj`SUP8F$#+4kfYSA%IYOFc#13(n|LQzkL!RUh&0+#;k=-}e z@%ssW@nV+c%zDbDtdwC+z2&(&D!3Q;dMwctUpnh5VH?<5%R61nGyVpk!7@d>4DUd?V{9X=I%v*x|cBvSR?7k{f$*nU7e?6rDZkNOX1z5!O-L?8te%(w3Pg zX?g$8U59Z06qg$CM;o!VkSdu9Bj0@{(^O`AF)AprJtL}z8??C7tO9UXUqND*N>ay( zcWSQSw#nT!W&%BXlfZxRI<_F##ZWY>J1NPbX`@%aZJR@qhilT*h@eL{wz%6AYZr z^bp8{vH}V6a_go7KkGiDQZzDr0 ziyJ4o-qKOB2Y{wiC%YYup6jLiIMvno=KIU|?)8|28=3!Uy%i10pCjYQOMrB=U&Jv0 ztOC&20KFUx#C-AAb&5FWN2EOhRyVE4v_CiK%{2z%7Tbx4qs4PKA3HkQpkL@K1<}A% z06z^H#`8fpE&&FfXSPI_?=kLf*5j1ZV;sgde5?aTP6Wj$qtEMrmpeesSJQcXi|#!@ zXZ@}k|L)(uiLW>HxTch@gSI23hFmm)9`3!NPS{z{LpMhlxIVx80M`!sanh{D%TY6@ zvHte@9-V-v)~(tG{cL0GHnH?Lq+KQEE5IIlT<<)@hx-*Ex|{1-U1M`go%ujJIKnzM zcJLa|d;;&zse`eZ#V5zZI6gUo-xww2=FYwM*Rwp@=Z3Pr2kf0SI|N-stJjXzd>Tja zFzYsT;ps^m9flg{pDfD8FQ?EVUw2h#q)h)2`WNj^OqX-&dnL|Vq=`;$Xskx?dp-sX zlgE0C3}{H6_B(mJ)C1q2^oOxnEu!A<#%eN;dJCXQIqtrnrSX6E>@42A8%Ga=@eGiC zN;s$SesepG8)S0z0C0s|<4CmY_a+$ZF~+(}&2mP_W|7@9l$ZL2tym$CTWH&(Fx~DT zrsU(u{b{EaJIXkw>`u$4I>trAB?hgyTu?93@d-M4g?`*=%h2OC>DeeOwyU&(9+1$d z4EB~fh1w+ywh=x@1lR|6Ja5L`bWB51k2zk%Gx#w&k2vqt;;U;nmBK-2Tes@e8yY8M z*22EDo7*^suXhvIOOci(hNceMGUe9v-o`wW$Nei7~Eg_%KWv$4&ckx6u4ex}IO1Rf1ThU~mJmLtH&WLlj_<&^Yt&&B))2xdiki1 z8IMX;^s_ipmc@Hc7tC1=vFrsu1w{IG2K zhM?Gs0}ssa@H}_-&u5g4v;-dNi@&Yc39gg}VWi0~sY=qTtSyg^^D2BPWzN8vw&g6} z56^V4$(NskWjixX#Aih&#o2b`Qs2fu-FWX_meIUSyL_O*c!uM<{5d$!^4hR|1S(tX zso}DNB+FNLaR9SLW(8=<2RmXMu<)JXEQ@-o9DJTTMnkJ56Rb+NadT8%xsrx!OE)QV zfv)uonUSt*D6Kc@mb^|7Lfn*rK$AS3MbRQ%`Km8~7|E;f_W*1Q-8}Oyo!%vtyPd73 zDPN@LAQxF_xB|wD4p}~RJ;NklO^sMt4pqQECO_IKmrA%9tZQ*yS1NCvcC6ibKwq>~ zWu`+VJR(SWY8UhmY?Id36KHl_64@Ukq&jkXQ>SqkNVho@K)cce4ixK|2yFLmlyPLAX51)HMOd#qrSA z>~Xr!MqPdbz#M%h-sNrCEQpk&*KGg*>ap5PbMby1COv)TNw2%O#)+-gS^#c$va7^B z4g%U7E$E*BMl=%lINj^rQQQJPZ*Ixs>WIp}itZ<)`1Sv^h_5fV;c1rt{AaJ?J%9j# z0D|^;)XC@1D;Vz`6%V6=A^)4tpT$Qn&*JLMbqwo+Xo1da036pPe?#Sh^*OcLhVdA_ zo&ap!q-%`<>@@*~IP(p(!V!gI%2lDlU*Bxw+xKIf|A(CVjntz?r8;lvm~G;$3kZUq zD~wA^{m^KjFFnG#=D}&GZ^*j_e?RN=;~b{;FuYeZ7_a9vbfn^xunARmf!vQVdZ*BL zhs*^QliYoHhC^5k#hckI&fs$`+hxo|vmLKzlhntL$h)u8fGs{hJB{hxJV)a0k^PLa zY*6J}9F@!4Rm=!`190%{QK4uWJLIteTu#Wx&X%rV9ld^v-gJ9c+`0Cw$NGp;bc&!{**vy%sY3s9|7 zEx_ED!{g|}%lq+NPM6&u9|O<Re>@AAMy}qD znWOLtitI$uVWcj$hoSUV4H_4~o3kPws=fGXyhz!dQ)mD8fAu6fy-M65m*bOB+|5?; zZvGGxN8tgded>9SdiL4VCo#p?S5l{{@dIUYC+S_k6{p>9^p-dc=tuR)qmi7&@DMM~ z`Z2qiM!QCV_S6UL!r#v)IV$^s=J#yozw-UM{z}c@Hix)@^rb5OB%xoeA3xzXy4JVIl6a@4p|qRqGh9` z1F+I5#ktIBX{2ipw9dp?mj)VHt)Y9fqCV2_dfe0og=$pS@#RH3zWII{mpgaQ*6C6I z8`v`e@-B|Ce|;*4HcxP#GdSRzGfwOzoM59o2U-1d`nw~`_ZTeYYlEIgV3D8e{~w5_ z6QNt9yI@Z_0kd(_o@?Lz?Nw^bPuG8o>kplYwrwe(RlDn1(zX-M8cOF2x#|$kuYjqF(CQ>X13gDEJW^&{$;t>b`LW6gq{5J&aiB z1PTDH1+J?#y$q{Z5*! zVO>AzNUv)$b;flx{cNebUe<#gh2UNC#Pm}4G5ql>W}D2{EqpP7zj zwcPTvltG&LuAGd|Z@(XScmQd>Q$8i_B6ku`db~;*%)g|gtSz^)P5>`QxF-)&9Nwk9 zymNY`j(BU2sAhEhBrWl^Eqjik5fO(D3i|*z}X1WE8nF; zJ4WREe(+5Vs~&jwN*yE3GA$jQ%`(!KCZH`d;N+9x)op1smOw-R<#g}lBe|6N1(2~* z0=;)cQJpx9NatuGcl|)8@ycsQCap`Q(-8VBaDGpYazP>GOx|P}pcT53&jia(EYkA5 zvhlJGlxd}%rYqa4jX(#X_A9Y>+XopE4%jT48J0E9 zPlroZub+0~=g&HNX((Ma(=Ah+ zFr?}nLUB}cG4l-D$5Bs5kCq4&<=p`Qn-2g2@@nDC_6D2i=4dENuxZBY%XM_R#KW<@ zymO;VGWgQgZuq9hLcKKYscGn_u;J0+q-oPPTEwu;uxr~4IKAo6N3i$^N5bk z-YwB_K8{=)>>9jzyc!(?s@%a1zS8L4Z64y?7{_~zkpX;lYQ1PTmht|28c#p#*>x2E z_kVX2)Aa~vei?uH^di<%zzg#F@?;R7j*h5!_6+s_`;%C?GgM^*Z$|O;o7)(}$K@JY zsATt>J>U{_hZPVQ)Iom7?$V2cK5BJyI*FUrygcc}SqlSiWh363yIuUlH)A}b2H@;8 z8WpFq?sIqBS10v&fviECl;b`YfUP|69G#dTa{=xgnN0w+o*jF9)XpP$YL!LOu|yfF z(9y@J_A1+GR^1sFBZ|tu1E{!5Y-Ng3obBQYeG{BrQ;vH_gGpCox+7gdv{T`qqT6Q} z`X}e7IR#1(w}r>ewTm}5fDgVuKSqDx=L7n5JKn@w zzHch4`1o`bEkNn34nTCZj}`+r>xSC(J!SbnUtPx0^(@Z&jd(tQb^sGi6+oW! zchI`^2&s1b?0GBRUXSByS&w&{dHkT$LP2|tcAV^MaXniD+UmKh^FNHQb0fATe$heGiXb-(FLnwsC~rSRylm#5KV5 zKiuBN5%u{q0Q!3z;(PesM()SmK`h7UHg*2%$viha*x)t0sgxZVBY5xhbk|ikA4gHY z-Pz&gOaK}>es5{0TFqfpR@3-D{EJWGle2aV>z%m1A5-V-NUP?q-cBLDMOQrI`2$X^ z=Rr3p2Tf!=M|T>?cShaZ$V=q;6#YMf0W?u@yIjQ#eR8h9vr}>efQEJrKV8u>A@0z1 zz1WE<&po?%imUVG$#Go5haPemgaF&~i@-+B<|7E$WqRiL;>4_TpF)H-Rvp0#+TJ(E+B-RTpei zGj*LDOqcb9IGzjcJDpa;N ztQ@`aDxida{w8ud^xJZL)xkk41QrKApYhA@UbdSC(1Fu=Ob3r=>9q33kG_a|R+x@7 z>zA0VY3N9rr?l(x9l)I7%*#(YoxDy5*xyO;V|vi(h-&8JGcIX1&nk|&yiA7@8(==X zOn=6!Ozkc_&e0))B_QD=9a;4r%b%do{P@p&r2XK38P@MU7kuQiKcK(R@v*la9m3 zbRKE&N;z}+TW;#KXZqYpCI9p>1zxtN3D7Jf@zk$F`48!3*vC8%?>zfkaP#Wb%lPQ& zi=ZirAs{3DQuJoMC~HJb!8n3ZL5fo{i>?&iwq8IKAHpKT9OWXOI#;Ky&~__o>yTwo zFO8p_AQ_KhC7IGh8sud@KY~i`X^(m5rGI^xx!~G)J4pqRc3LT`7QTl%)SwO5PnI61 zFq>AE17AQ|+#|*%Eb>-4tB(Tl%oV#TR6mN8t^T zbH=9h@|AoyDF;EP0g66RJ`&KEcYUXMc)oVO-AQ_^zjN9zM?T#T!WmWlUXO6Z0i74! zHjUCzp{7A~{yEdcsnPON8l~4Or{x=m?@p`E>Hd7Tto*|swsI7>=r1}!J8Z|Vz%Dz8zYkC~J?z(k|N4K~#zKR$1wB2%v3B|j)*)?vOMp5^6l3&ddVm+3!ObvD2$J6=yF3S1mn~@mBtOBT(fp^WbcQ}$6@1l zS7il&jA*po-SiaZenJC%(FCM5cX@2a{bZKHaiO-Orq573cTQXbVyiUL?bb1%Y8L%& zGw$Zg9LZ=<;^VHzpghpvN1Q($QL(LP5Ao(|io@+xrAAJBaGmUjn;q{T;slI!{G=1p zt4jRphbiC&@VM651;jLU0;#la_|j{o;(h=yXdzDrR6@${`K0)uafQ;4*Hlm&FX(m} z!PjqZ;&MtwuQ;kx1CUPuve3u-0qIq%Zh9feb-GK7MhGyEA`XX+=1t=qAbQfN$D0oe z(jYzx>;_ePfQE)EfmZ(^Zthp{jZq�ZO;C2|&cj#2Y~PE?xq5 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
    8P(jxEFH@72FHyvrB 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�l`C&XOF$8N0rGqK^b`4 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 hE4Bdz89! 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/concordance.md b/docs/src/concordance.md index 4d8488f45..e4cb2f2c0 100644 --- a/docs/src/concordance.md +++ b/docs/src/concordance.md @@ -2,8 +2,8 @@ RRTMGP.jl is a Julia implementation of the algorithms in the reference Fortran package [rte-rrtmgp](https://github.com/earth-system-radiation/rte-rrtmgp) -[pincus2019](@cite). If you know the Fortran code — or the papers it -implements — the tables below map its `mo_*` modules, `ty_*` derived types, and +[pincus2019](@cite). If you know the Fortran code (or the papers it +implements), the tables below map its `mo_*` modules, `ty_*` derived types, and kernel subroutines to their RRTMGP.jl counterparts, with the papers whose equations each kernel implements. @@ -20,7 +20,7 @@ and ``μ₀`` (cosine of the solar zenith angle). | RRTMGP.jl | Fortran rte-rrtmgp | Papers / symbols | |:----------|:-------------------|:-----------------| | `AtmosphericState` (layer/level ``p``, ``T``; `vmr`; `col_dry`) | the `gas_optics()` arguments `play`, `plev`, `tlay`, `tlev`, `col_dry` | — | -| `GrayAtmosphericState` | — (no gray path in the Fortran code) | [schneider2004](@cite), [ogorman2008](@cite) | +| `GrayAtmosphericState` | (no gray path in the Fortran code) | [schneider2004](@cite), [frierson2006](@cite), [ogorman2008](@cite) | | `VolumeMixingRatios.Vmr` / `VmrGM` | `mo_gas_concentrations`: `ty_gas_concs` (`set_vmr!`) | — | | `Optics.OneScalar` (``τ`` only) | `mo_optical_props`: `ty_optical_props_1scl` | — | | `Optics.TwoStream` (``τ``, ``ω₀``, ``g``) | `mo_optical_props`: `ty_optical_props_2str` | — | @@ -30,7 +30,7 @@ and ``μ₀`` (cosine of the solar zenith angle). | `Fluxes.FluxBand` (`spectral_fluxes = true`) | `extensions/mo_fluxes_byband`: `ty_fluxes_byband` | — | | `LwBCs` (`sfc_emis`, `inc_flux`) | the `rte_lw` arguments `sfc_emis`, `inc_flux` | ``ε_{\mathrm{sfc}}`` | | `SwBCs` (`cos_zenith`, `toa_flux`, `sfc_alb_direct`, `inc_flux_diffuse`, `sfc_alb_diffuse`) | the `rte_sw` arguments `mu0`, `inc_flux`, `sfc_alb_dir`, `sfc_alb_dif`, `inc_flux_dif` | ``μ₀``, ``α`` | -| `AngularDiscretization` (`gauss_Ds`, `gauss_wts`) | the `gauss_Ds`/`gauss_wts` tables in `mo_rte_solver_kernels` (`n_gauss_angles`) | Gauss–Jacobi-5 quadrature, [hogan2023](@cite) Table 1 | +| `AngularDiscretization` (`gauss_Ds`, `gauss_wts`) | the `gauss_Ds`/`gauss_wts` tables in `mo_rte_solver_kernels` (`n_gauss_angles`) | Gauss–Jacobi-5 quadrature, [hogan2024](@cite) Table 1 | | `LookupBundle`, `lookup_tables`, `LookUpLW`/`LookUpSW` | `mo_load_coefficients` loading a k-distribution into `mo_gas_optics_rrtmgp`: `ty_gas_optics_rrtmgp` | correlated-``k`` distribution, [pincus2019](@cite) | | `LookUpCld` | `mo_load_cloud_coefficients` → `mo_cloud_optics_rrtmgp`: `ty_cloud_optics_rrtmgp` (LUT path) | — | | `LookUpAerosolMerra` | `extensions/mo_aerosol_optics_rrtmgp_merra`: `ty_aerosol_optics_rrtmgp_merra` | MERRA-2 aerosol types | @@ -52,14 +52,14 @@ RRTMGP.jl equivalents live in `src/rte/`, split by band and solver | `lw_noscat_source_up` / `lw_noscat_source_dn` | `lw_source_noscat` | linear-in-``τ`` Planck source, [clough1992](@cite) Eq. 13 | | `rte_lw_noscat_one_angle!` (transport sweep) | `lw_transport_noscat` | ``T = e^{-Dτ}`` at secant ``D`` | | `rte_lw_2stream_solve!` → `lw_2stream_gpt_col!` | `lw_solver_2stream` | — | -| `lw_2stream_coeffs` | `lw_two_stream` | ``γ₁``, ``γ₂``, ``k = \sqrt{(γ₁-γ₂)(γ₁+γ₂)}``, ``R_{\mathrm{dif}}``/``T_{\mathrm{dif}}`` — [meador1980](@cite) with the diffusivity ``D = 1.66`` of [fu1997](@cite) | +| `lw_2stream_coeffs` | `lw_two_stream` | ``γ₁``, ``γ₂``, ``k = \sqrt{(γ₁-γ₂)(γ₁+γ₂)}``, ``R_{\mathrm{dif}}``/``T_{\mathrm{dif}}`` [meador1980](@cite) with the diffusivity ``D = 1.66`` of [fu1997](@cite) | | longwave source part of `rte_lw_2stream!` | `lw_source_2str` | linear-in-``τ`` source for scattering atmospheres, [toon1989](@cite) | | `rte_sw_noscat_solve!` → `sw_noscat_gpt_col!` (`rte_sw_noscat!`) | `sw_solver_noscat` | Beer–Lambert direct beam, ``e^{-τ/μ₀}`` | | `rte_sw_2stream_solve!` → `sw_2stream_gpt_col!` | `sw_solver_2stream` | — | | `sw_2stream_coeffs` | `sw_two_stream` + `sw_source_2str` (merged as `sw_dif_and_source` in later versions) | ``γ₁``–``γ₄`` of the Zdunkowski PIFM scheme [zdunkowski1980](@cite); ``R_{\mathrm{dir}}``/``T_{\mathrm{dir}}`` from [meador1980](@cite) Eqs. 14–18 | | direct-beam prepass inside `rte_sw_2stream!` | the direct-beam accumulation inside `sw_solver_2stream` | ``F^↓_{\mathrm{dir}} = μ₀ F_0 e^{-τ_{\mathrm{cum}}/μ₀}`` | | adding pass inside `rte_lw_2stream!` / `rte_sw_2stream!` | `adding` | interface albedo recursion, [shonk2008](@cite) | -| `Optics.delta_scale` | `mo_optical_props_kernels`: `delta_scale_2str_kernel` | δ-scaling, [joseph1976](@cite) (RRTMGP.jl uses the algebraically exact forms, e.g. ``g' = g/(1+g)``) | +| `Optics.delta_scale` | `mo_optical_props_kernels`: `delta_scale_2str_kernel` | δ-scaling, [joseph1976](@cite) (RRTMGP.jl uses the algebraically exact forms, e.g., ``g' = g/(1+g)``) | | `Optics.increment_2stream` | `mo_optical_props_kernels`: `increment_2stream_by_2stream` | — | | `Fluxes.compute_net_flux!` | `mo_fluxes_broadband_kernels`: `net_broadband` | ``F_{\mathrm{net}} = F^↑ - F^↓`` | @@ -78,7 +78,7 @@ The Fortran gas-optics kernels live in | `compute_τ_rayleigh` | `compute_tau_rayleigh` | Rayleigh scattering ``τ`` | | `interp1d_equispaced`, `interp2d`, `interp3d` | `interpolate1D`, `interpolate2D`, `interpolate3D` | — | | `Optics.compute_col_gas!` | `ty_gas_optics_rrtmgp`: `get_col_dry` | dry-air column amount [molecules cm⁻²] | -| `Optics.compute_relative_humidity!` | — (host responsibility in Fortran) | feeds the MERRA aerosol lookup | +| `Optics.compute_relative_humidity!` | (host responsibility in Fortran) | feeds the MERRA aerosol lookup | ## Cloud and aerosol optics @@ -90,7 +90,7 @@ The Fortran gas-optics kernels live in ## RRTMGP.jl-only layers -These have no Fortran counterpart; the closest analog is the example driver +These represent Julia-specific additions; the closest analog is the example driver programs (`examples/rfmip-clear-sky`, `examples/all-sky`), which each user of the Fortran code re-writes. @@ -98,6 +98,6 @@ the Fortran code re-writes. |:----------|:-----| | `RRTMGPSolver`, `update_fluxes!`, `prepare_atmosphere!`, the named getters | Layer-2 host convenience: construct once, drive the functional core each radiation step (see [The getter contract](@ref)) | | `standard_atmosphere`, `solve(profile)`, `RadiationOutput`, `solve_gray` | Layer-3 standalone front door (teaching, single-column experiments) | -| `GrayAtmosphere` module and the gray optics kernels | analytic gray-atmosphere radiation [schneider2004](@cite), [ogorman2008](@cite) | +| `GrayAtmosphere` module and the gray optics kernels | analytic gray-atmosphere radiation [schneider2004](@cite), [frierson2006](@cite), [ogorman2008](@cite) | | `Numerics` module (`k_min`, `τ_thresh`, `resonance_window`, `μ₀_min`) | documented numerical guard constants (hard-coded literals in the Fortran kernels) | | `LookupBundle` caching via `save_lookup_tables` / `load_lookup_tables` | NetCDF-free lookup reuse | diff --git a/docs/src/functional_core.md b/docs/src/functional_core.md index c17213eb3..948ce3c2c 100644 --- a/docs/src/functional_core.md +++ b/docs/src/functional_core.md @@ -1,45 +1,51 @@ # The functional core -RRTMGP's API is layered, and this page documents its center: a small **functional core** that -you can drive directly — in a class, in a standalone single-column experiment, or as the -foundation the host-convenience [`RRTMGPSolver`](@ref RRTMGP.RRTMGPSolver) is built on. The -core needs no ClimaCore; a single column is simply `ncol = 1`. +RRTMGP's API is layered, and this page documents its center: a **functional +core** that you can use in a class, in a standalone single-column experiment, +or as the foundation the [`RRTMGPSolver`](@ref RRTMGP.RRTMGPSolver) is built +upon. If you want results before concepts, start with the +[tutorials](tutorials/getting_started.md) and return here for what `solve` +assembles internally. -## The model: three inputs and one verb +## The model: three inputs and one action -A radiative-transfer solve is split into explicitly-owned pieces: +A radiative-transfer solve is split into separately-owned pieces: -1. **Immutable lookup tables** — the correlated-k gas/cloud/aerosol optics data, loaded once - and shared across columns and timesteps. (Gray radiation needs none.) -2. **A caller-owned atmospheric state** — [`AtmosphericState`](@ref +1. **Immutable lookup tables**: the correlated-k gas/cloud/aerosol optics data, + loaded once and shared across columns and timesteps. (Gray radiation uses + analytic formulas.) +2. **A caller-owned atmospheric state**: [`AtmosphericState`](@ref RRTMGP.AtmosphericStates.AtmosphericState) (or [`GrayAtmosphericState`](@ref - RRTMGP.AtmosphericStates.GrayAtmosphericState)) holding the inputs — layer/level pressure - and temperature, gas concentrations, cloud and aerosol properties — as plain device arrays - laid out `(nlay, ncol)` at layer centers and `(nlev, ncol)` at level faces. -3. **A preallocated per-band workspace** — one of [`NoScatLWRTE`](@ref RRTMGP.RTE.NoScatLWRTE) / - [`TwoStreamLWRTE`](@ref RRTMGP.RTE.TwoStreamLWRTE) / [`NoScatSWRTE`](@ref - RRTMGP.RTE.NoScatSWRTE) / [`TwoStreamSWRTE`](@ref RRTMGP.RTE.TwoStreamSWRTE) — which owns the - optics scratch and the output flux buffers, so a solve allocates nothing. - -The verb is [`solve_lw!`](@ref RRTMGP.RTESolver.solve_lw!) / [`solve_sw!`](@ref -RRTMGP.RTESolver.solve_sw!). It reads the state, writes the workspace's flux buffers in place, -and you read the results straight out: + RRTMGP.AtmosphericStates.GrayAtmosphericState)) holding the inputs + (layer/level pressure and temperature, gas concentrations, cloud and aerosol + properties) as device arrays laid out `(nlay, ncol)` at layer centers and + `(nlev, ncol)` at level faces. +3. **A preallocated per-band workspace**: one of [`NoScatLWRTE`](@ref + RRTMGP.RTE.NoScatLWRTE) / [`TwoStreamLWRTE`](@ref RRTMGP.RTE.TwoStreamLWRTE) + / [`NoScatSWRTE`](@ref RRTMGP.RTE.NoScatSWRTE) / [`TwoStreamSWRTE`](@ref + RRTMGP.RTE.TwoStreamSWRTE) which owns the optics scratch and the output + flux buffers, operating in place. + +The action is a single function call: [`solve_lw!`](@ref RRTMGP.RTESolver.solve_lw!) / +[`solve_sw!`](@ref RRTMGP.RTESolver.solve_sw!) reads the state and writes the +workspace's flux buffers in place, and you can read the results: ```julia solve_lw!(slv_lw, state, lookup_lw) # or solve_lw!(slv_lw, state) for gray F = slv_lw.flux.flux_net # (nlev, ncol) [W/m²] ``` -This is what RRTMGP's own tests drive, and what [`RRTMGPSolver`](@ref RRTMGP.RRTMGPSolver) -wraps behind [`update_fluxes!`](@ref RRTMGP.update_fluxes!) and the named getters. +This is what RRTMGP's own tests drive, and what [`RRTMGPSolver`](@ref +RRTMGP.RRTMGPSolver) wraps behind [`update_fluxes!`](@ref RRTMGP.update_fluxes!) +and the named getters. -## Gray radiation (no lookup tables) +## Gray radiation -The gray path needs no NetCDF data, so it runs in a fresh session after `using RRTMGP`. It -builds an analytic gray profile, longwave and shortwave two-stream workspaces, solves, and +The gray path uses analytic formulas and runs after `using RRTMGP`. It +builds a gray profile, longwave and shortwave two-stream workspaces, solves, and reads the net fluxes: -```julia +```@example functional_core using RRTMGP using RRTMGP.RTE: TwoStreamLWRTE, TwoStreamSWRTE using RRTMGP.RTESolver: solve_lw!, solve_sw! @@ -71,21 +77,23 @@ slv_sw = TwoStreamSWRTE(grid_params; cos_zenith, toa_flux, sfc_alb_direct = albedo, inc_flux_diffuse = nothing, sfc_alb_diffuse = copy(albedo)) -# the verb: solve, then read the fluxes out of the workspaces +# solve, then read the fluxes out of the workspaces solve_lw!(slv_lw, as) solve_sw!(slv_sw, as) lw_net = slv_lw.flux.flux_net # (nlev, ncol) [W/m²] sw_net = slv_sw.flux.flux_net net = lw_net .+ sw_net +net[end, 1] # net flux at the top of the atmosphere [W/m²] ``` -The one-liner [`solve_gray`](@ref RRTMGP.solve_gray) wraps precisely this. +The one-liner [`solve_gray`](@ref RRTMGP.solve_gray) wraps this. ## Clear-sky and all-sky radiation (with lookup tables) -The spectral path has the same shape; the differences are that the state is built from data -and the lookup tables are passed to the solve. Loading the tables needs `NCDatasets`: +The spectral path has the same shape as the gray path; the differences are that +the state is built from data and the lookup tables are passed to the solve. +Loading the tables needs `NCDatasets`: ```julia using NCDatasets, RRTMGP @@ -102,7 +110,7 @@ lookup_sw, _ = NCDataset(sw_lookup_file) do ds end # build the AtmosphericState from your data (pressures, temperatures, VMRs, ...) -as = ... # e.g. setup_clear_sky_as in test/read_clear_sky.jl +as = ... # e.g., setup_clear_sky_as in test/read_clear_sky.jl grid_params = RRTMGP.RRTMGPGridParams(FT; context, domain_nlay = nlay, ncol) slv_lw = TwoStreamLWRTE(grid_params; params, sfc_emis, inc_flux = nothing) @@ -118,24 +126,28 @@ lw_net = slv_lw.flux.flux_net See the full clear-sky driver in [`test/clear_sky_utils.jl`](https://github.com/CliMA/RRTMGP.jl/blob/main/test/clear_sky_utils.jl) -for the complete state construction, and the all-sky/aerosol drivers alongside it for the -cloud and aerosol lookups. +for the complete state construction, and the all-sky/aerosol drivers alongside +it for the cloud and aerosol lookups. ## Optional grid adaptation -`solve_*!` assumes a complete, valid state. If a host supplies only layer-center values, or -wants the isothermal boundary layer, or must clip unphysical inputs, RRTMGP provides -separable, in-place helpers — [`interpolate_levels!`](@ref RRTMGP.interpolate_levels!), -[`add_isothermal_boundary_layer!`](@ref RRTMGP.add_isothermal_boundary_layer!), -[`clip!`](@ref RRTMGP.clip!), and [`update_concentrations!`](@ref -RRTMGP.update_concentrations!) — each usable on its own and none required by `solve_*!`. -(Relative humidity is a host responsibility; see [`update_concentrations!`](@ref -RRTMGP.update_concentrations!).) +`solve_*!` assumes a complete, valid state. If a host supplies only +layer-center values, or wants the isothermal boundary layer (an extra buffer +layer above the model top; see [Boundary conditions](RTE.md) on the RTE page), +or must clip unphysical inputs, RRTMGP provides separable, in-place helpers: [`interpolate_levels!`](@ref +RRTMGP.interpolate_levels!), [`add_isothermal_boundary_layer!`](@ref +RRTMGP.add_isothermal_boundary_layer!), [`clip!`](@ref RRTMGP.clip!), and +[`update_concentrations!`](@ref RRTMGP.update_concentrations!), each usable +independently. (Relative humidity is a host responsibility; see +[`update_concentrations!`](@ref RRTMGP.update_concentrations!).) ## From the core to the host aggregate -For a host that runs radiation every step, [`RRTMGPSolver`](@ref RRTMGP.RRTMGPSolver) bundles -the two workspaces, the state, and the lookups, and drives the whole pipeline with one -allocation-free [`update_fluxes!`](@ref RRTMGP.update_fluxes!). Inputs and outputs are then -exchanged through named getters following the uniform contract on [The getter contract](@ref) -page. See the [API](@ref) reference for the full solver and getter listing. +For a host that runs radiation every step or every ``n`` steps (as is common +in atmosphere models because of the relatively large computational expense of +radiation), [`RRTMGPSolver`](@ref RRTMGP.RRTMGPSolver) bundles the two +workspaces, the state, and the lookups, and drives the pipeline with +[`update_fluxes!`](@ref RRTMGP.update_fluxes!). +Inputs and outputs are exchanged through named getters following the uniform +contract on [The getter contract](@ref) page. See the [API](@ref) reference for +the solver and getter listing. diff --git a/docs/src/getters.md b/docs/src/getters.md index 74c24ccac..4a634cdc3 100644 --- a/docs/src/getters.md +++ b/docs/src/getters.md @@ -4,39 +4,38 @@ CurrentModule = RRTMGP ``` -A [`RRTMGPSolver`](@ref RRTMGP.RRTMGPSolver) owns its device buffers (state, fluxes, -scratch). Hosts do not touch those buffers directly; they read and write them through -**named getters**. This getter set is the entire data-exchange interface — it is what lets -RRTMGP stay free of ClimaCore, since every input and output is a plain device array in a +A [`RRTMGPSolver`](@ref RRTMGP.RRTMGPSolver) owns its device buffers (state, +fluxes, scratch). Hosts read and write them through **named getters**. This +getter set forms the data-exchange interface, operating on device arrays in a documented layout. ## The uniform contract -Every getter that carries a vertical dimension returns a **writable view into the solver's -own buffer**, following one invariant: - -- **Layout: physical dimension first, `ncol` last.** Layer-centered quantities are - `(nlay, ncol)`, level/face quantities are `(nlev, ncol)` (with `nlev = nlay + 1`), per-band - fluxes are `(nlev, ncol, nbnd)`, and surface/column quantities are `(ncol,)` — except the - spectral surface properties (emissivity, albedos), which are `(nbnd, ncol)` (hosts commonly - broadcast one value across the band dimension). Vertical (or layer) index first. -- **Domain-masked.** When the solver carries an internal isothermal boundary layer - (`isothermal_boundary_layer = true`), the getters exclude that extra top layer/level, so the - returned arrays are sized to the *physical* domain (`domain_nlay` / `domain_nlay + 1`) and - line up with the host's grid. Without a boundary layer the mask is a no-op. Either way the - getter returns a single concrete `view` type — this is what keeps - [`update_fluxes!`](@ref RRTMGP.update_fluxes!) allocation-free and type-stable. -- **A view, not a copy.** Writing into an input getter mutates the solver's buffer in place; - reading an output getter reads the buffer directly. `ncol` is the flattened column count - (`Nij·Nij·Nh` for a GCM, `1` standalone) — the solver stores it, never infers it. Three - getters are deliberate exceptions: `volume_mixing_ratio` for a well-mixed gas (with the - global-mean `VmrGM` storage) returns a host scalar copied off the device (not a view — see - below); the `spectral_*_flux_net` getters allocate a fresh array (`up − dn` is not stored); - and [`heating_rate`](@ref RRTMGP.heating_rate) computes its result on demand into a fresh - array. - -Internal code that needs the full, boundary-extended buffer (rather than the domain view) uses -the raw struct fields (e.g. `solver.net_flux_buffer`) or `parent(getter(solver))`. +Every getter that carries a vertical dimension returns a **writable view into +the solver's own buffer**, following one invariant: + +- **Layout: physical dimension first, `ncol` last.** Layer-centered quantities + are `(nlay, ncol)`, level/face quantities are `(nlev, ncol)` (with + `nlev = nlay + 1`), per-band fluxes are `(nlev, ncol, nbnd)`, and + surface/column quantities are `(ncol,)` (except the spectral surface + properties like emissivity and albedos, which are `(nbnd, ncol)`). +- **Domain-masked.** When the solver carries an internal isothermal boundary + layer (`isothermal_boundary_layer = true`), the getters exclude that extra + top layer/level, so the returned arrays are sized to the physical domain + (`domain_nlay` / `domain_nlay + 1`) and line up with the host's grid. The + getter returns a concrete `view` type, keeping [`update_fluxes!`](@ref + RRTMGP.update_fluxes!) type-stable. +- **A view, not a copy.** Writing into an input getter mutates the solver's + buffer in place; reading an output getter reads the buffer. `ncol` is the + flattened column count (`Nij·Nij·Nh` for a GCM, `1` standalone). Two getters + have different behavior: `volume_mixing_ratio` for a well-mixed gas (with the + global-mean `VmrGM` storage) returns a host scalar copied off the device, and + [`heating_rate`](@ref RRTMGP.heating_rate) computes its result on demand into + a fresh array. + +Internal code that needs the full, boundary-extended buffer (rather than the +domain view) uses the raw struct fields (e.g., `solver.net_flux_buffer`) or +`parent(getter(solver))`. ## Writing inputs and reading outputs @@ -51,39 +50,42 @@ RRTMGP.update_fluxes!(solver, seed) # runs the radiation update F = RRTMGP.net_flux(solver) # (nlev, ncol) view of the result ``` -With ClimaCore this is the zero-transpose bridge: `array2field(getter(solver), space)` wraps an -**input** view as a `Field` (writes flow straight into the solver's buffer), and -`field2array(dst) .= getter(solver)` copies an **output** into a destination field. On the GPU -the returned views are strided `SubArray`s of device arrays; to bring one to the CPU use -`Array(getter(solver))` (or the element-wise `.=` copy above) — never index it -element-by-element. +With ClimaCore, this forms the bridge: `array2field(getter(solver), space)` +wraps an input view as a `Field` (writes flow into the solver's buffer), and +`field2array(dst) .= getter(solver)` copies an output into a destination field. +On the GPU, the returned views are strided `SubArray`s of device arrays; to +bring one to the CPU, use `Array(getter(solver))` (or the element-wise `.=` +copy above). ## Responsibilities: what the host provides vs what RRTMGP derives -The host **writes** the inputs through the getters before calling `update_fluxes!`: +The host **writes** the inputs through the getters before calling +`update_fluxes!`: -- layer/level pressure and temperature, gas volume mixing ratios, cloud properties (effective - radii, water paths, fraction), and aerosol properties; -- surface and solar boundary conditions (`surface_temperature`, `surface_emissivity`, the - albedos, `cos_zenith`, `toa_flux`); -- for the deep-atmosphere GCM path, `deep_atmosphere_inverse_scaling` (computed from the host's - geometry). +- layer/level pressure and temperature, gas volume mixing ratios, cloud + properties (effective radii, water paths, fraction), and aerosol properties; +- surface and solar boundary conditions (`surface_temperature`, + `surface_emissivity`, the albedos, `cos_zenith`, `toa_flux`); +- for the deep-atmosphere GCM path, `deep_atmosphere_inverse_scaling` (computed + from the host's geometry). -RRTMGP **derives** the rest inside `update_fluxes!`: the optional preparation cascade (level -values from centers, the isothermal boundary layer, input clipping, and the dry-air column -amount via `compute_col_gas!`), then the optics and RTE solve, then the net-flux combine. +RRTMGP **derives** the rest inside `update_fluxes!`: the optional preparation +cascade (level values from centers, the isothermal boundary layer, input +clipping, and the dry-air column amount via `compute_col_gas!`), then the +optics and RTE solve, then the net-flux combine. Two things are **deliberately the host's job**: -- **Relative humidity** — the cascade does not recompute it; call `compute_relative_humidity!` - yourself if your gas optics need an up-to-date `layer_relative_humidity`. -- **Idealized profiles** (idealized water vapor or clouds) — a host modeling choice, applied - before the solve. +- **Relative humidity**: call `compute_relative_humidity!` if your gas optics + need an up-to-date `layer_relative_humidity`. +- **Idealized profiles** (idealized water vapor or clouds): a host modeling + choice, applied before the solve. ## Getter reference -Getters marked with a link have full docstrings; the rest follow the contract above. All -vertical/layer getters are domain-masked views into solver-owned buffers. +Getters marked with a link have full docstrings; the rest follow the contract +above. All vertical/layer getters are domain-masked views into solver-owned +buffers. ### Layer-center state — inputs, `(nlay, ncol)` @@ -121,13 +123,14 @@ vertical/layer getters are domain-masked views into solver-owned buffers. | `sw_flux_up`, `sw_flux_dn`, `sw_flux_net` | shortwave up / down / net | | `sw_direct_flux_dn` | shortwave direct-beam downward | | `net_flux` | combined longwave + shortwave net flux | -| [`heating_rate`](@ref RRTMGP.heating_rate) | radiative heating rate [K/s], `(nlay, ncol)` — computed on demand (allocates; not a view) | +| [`heating_rate`](@ref RRTMGP.heating_rate) | radiative heating rate [K/s], `(nlay, ncol)` (computed on demand into a fresh array) | -The clear-sky counterparts (`AllSkyRadiationWithClearSkyDiagnostics` only) mirror these: -`clear_lw_flux_up`/`clear_lw_flux_dn`/`clear_lw_flux`, `clear_sw_flux_up`/`clear_sw_flux_dn`/ -`clear_sw_direct_flux_dn`/`clear_sw_flux`, and `clear_net_flux`. Per-band fluxes +The clear-sky counterparts (`AllSkyRadiationWithClearSkyDiagnostics` only) +mirror these: `clear_lw_flux_up`/`clear_lw_flux_dn`/`clear_lw_flux`, +`clear_sw_flux_up`/`clear_sw_flux_dn`/`clear_sw_direct_flux_dn`/ +`clear_sw_flux`, and `clear_net_flux`. Per-band fluxes (`spectral_{lw,sw}_flux_{up,dn,net}`, `(nlev, ncol, nbnd)`) are covered on the -[API](@ref) page; there the `_up`/`_dn` variants are views while the `_net` variants allocate. +[API](@ref) page; all six are views into the retained per-band buffers. ### Clouds and aerosols @@ -144,7 +147,7 @@ The clear-sky counterparts (`AllSkyRadiationWithClearSkyDiagnostics` only) mirro | Getter | Quantity | |---|---| -| [`volume_mixing_ratio`](@ref RRTMGP.volume_mixing_ratio)`(s, name)` | gas volume mixing ratio — a `(nlay, ncol)` view for `"h2o"`/`"o3"`; a **host scalar** (copied off the device, not a view) for well-mixed gases with the default global-mean (`VmrGM`) storage. With full per-layer `Vmr` storage, every gas is a `(nlay, ncol)` view | +| [`volume_mixing_ratio`](@ref RRTMGP.volume_mixing_ratio)`(s, name)` | gas volume mixing ratio: a `(nlay, ncol)` view for `"h2o"`/`"o3"`; a host scalar for well-mixed gases with the default global-mean (`VmrGM`) storage. With full per-layer `Vmr` storage, every gas is a `(nlay, ncol)` view | | `center_z`, `face_z` | layer-center / level altitudes [m], or `nothing` if not provided | | `deep_atmosphere_inverse_scaling` | deep-atmosphere flux scaling `(nlev, ncol)`, or `nothing` | | [`radiation_method`](@ref RRTMGP.radiation_method) | the solver's radiation method | diff --git a/docs/src/howto/gpu.md b/docs/src/howto/gpu.md new file mode 100644 index 000000000..dbc57670f --- /dev/null +++ b/docs/src/howto/gpu.md @@ -0,0 +1,122 @@ +# How to run on GPUs + +RRTMGP.jl runs the same code on CPUs and CUDA GPUs; the device is selected +through [ClimaComms](https://github.com/CliMA/ClimaComms.jl), and every array +the solver owns lives on that device. + +## Select the device + +Set the device before constructing anything, either with an environment +variable: + +``` +CLIMACOMMS_DEVICE=CUDA julia --project my_script.jl +``` + +or explicitly in code: + +```julia +import ClimaComms +ClimaComms.@import_required_backends # loads CUDA.jl when a GPU is requested + +context = ClimaComms.context() # honors CLIMACOMMS_DEVICE +device = ClimaComms.device(context) +DA = ClimaComms.array_type(device) # Array or CuArray +``` + +Pass `context` to [`RRTMGPGridParams`](@ref RRTMGP.RRTMGPGridParams) (or to +`solve_gray`/`solve`) and build your input arrays with `DA{FT}(...)`; from +there, everything (states, workspaces, solves) stays on the GPU. + +## Reading results without scalar indexing + +Getters return device-array views. Indexing them elementwise from the host +(`net_flux(solver)[1, 1]`) would trigger CUDA scalar indexing; instead +materialize what you need: + +```julia +F = Array(RRTMGP.net_flux(solver)) # one device→host copy +``` + +Broadcasted writes into getters (`layer_temperature(solver) .= T_dev`) are +device-side and safe. Two getters do not return views: +`volume_mixing_ratio(solver, name)` for well-mixed gases returns a host +scalar, and `heating_rate(solver)` allocates a fresh device array; read them +outside hot loops. + +## Checkpointing and device transfer + +`RRTMGPSolver` supports [Adapt](https://github.com/JuliaGPU/Adapt.jl), so +`Adapt.adapt(Array, solver)` produces a host copy (e.g., for serialization) and +`Adapt.adapt(CuArray, solver)` moves it back. RRTMGP's custom `adapt_structure` +methods preserve the internal view topology (scratch views into packed +buffers), so an adapted solver keeps the zero-allocation property. + +## Reproducibility caveat: McICA cloud sampling + +With partial cloud fractions, the all-sky methods sample cloud overlap +stochastically (McICA) using the global RNG. On the CPU, +`update_fluxes!(solver, seed)` with `reset_rng_seed = true` makes results +reproducible. On the GPU, the per-thread RNG state produces statistically +reproducible results for partially cloudy columns (overcast and clear columns +remain deterministic). + +## Parallelization strategy + +Each column and g-point is an independent monochromatic transfer problem; only +the vertical sweeps within a column are sequential. RRTMGP parallelizes over +this independence, with the same per-(g-point, column) kernel bodies shared by +both backends: + +- On the GPU, each CUDA thread owns one column and loops over its g-points, + accumulating the column's broadband fluxes thread-locally — no atomics and no + synchronization between threads. Parallelism therefore scales with `ncol`, + and a GPU pays off with many columns, the regime the benchmarks below target. +- On the CPU, the loop order is inverted: for each g-point, the columns are + distributed across threads (`ClimaComms.@threaded`), which keeps that + g-point's lookup-table slices hot in cache while sweeping the columns. With + a single-threaded context, the same code runs serially. + +## Performance expectations + +CI benchmarks the kernels on GPUs (see `perf/benchmark_ratchet.jl` +and the Buildkite "Benchmarks" group). Indicative behavior: + +- Work scales with `ncol × nlay × ngpt`; the g-point loop dominates. +- `update_fluxes!` allocates nothing on either device; data movement is the + host's choice (the getters return views). +- `Float32` roughly halves memory traffic; see + [Float32 and Float64](../precision.md) for the accuracy achieved at single + precision and the numerics behind it. + +## GPU versus CPU performance + +Wall times per full radiation step (`solve_lw!` + `solve_sw!`) comparing the +multi-threaded CPU strategy against the GPU strategy across single (`Float32`) and double (`Float64`) precision. + +### Benchmark problem dimensions + +Every configuration evaluated by the benchmark (see [`perf/benchmark_ratchet.jl`](https://github.com/CliMA/RRTMGP.jl/blob/main/perf/benchmark_ratchet.jl)) operates on an identical, uniform spatial grid representative of a high-resolution atmospheric model: +- **Columns (`ncol`)**: **`86,400` horizontal columns** (`30² elements × 6 panels × 4² quadrature points`). +- **Vertical structure**: **`63` layers (`64` levels)** across every test profile (`5.53 × 10⁶` uniform 3D spatial coordinates, `ncol × nlev`), aligned with GPU warp sizes and memory boundaries. +- **Spectral quadrature points (`ngpt`)**: **`480` spectral g-points** (`256` longwave + `224` shortwave) across all problems, resulting in approximately `2.65 × 10⁹` total cell evaluations per `solve_lw!` + `solve_sw!` step. + +### Single precision (`Float32`) — Primary target + +At `Float32` precision, memory traffic across lookup-table interpolations is halved compared to `Float64`, enabling large GPU speedups: + +| Configuration | CPU (Intel Xeon, 12 threads) | GPU (NVIDIA A100 40GB) | Speedup | +|---|---|---|---| +| Clear-sky (two-stream) | 77.95 s | 1.24 s | 63.1× | +| All-sky, McICA clouds | 98.42 s | 1.82 s | 54.1× | +| All-sky with aerosols | 99.39 s | 1.95 s | 51.0× | + +### Double precision (`Float64`) + +For reference, running the identical uniform benchmark sweep in double precision (`Float64`) yields: + +| Configuration | CPU (Intel Xeon, 12 threads) | GPU (NVIDIA A100 40GB) | Speedup | +|---|---|---|---| +| Clear-sky (two-stream) | 79.64 s | 1.70 s | 46.8× | +| All-sky, McICA clouds | 101.60 s | 2.43 s | 41.8× | +| All-sky with aerosols | 106.33 s | 2.59 s | 41.1× | diff --git a/docs/src/howto/host_model.md b/docs/src/howto/host_model.md new file mode 100644 index 000000000..74729bc0c --- /dev/null +++ b/docs/src/howto/host_model.md @@ -0,0 +1,191 @@ +# How to drive RRTMGP from a host model + +This guide walks through embedding RRTMGP.jl in a host model (a GCM, a +single-column model, or any code with its own time loop): construct the solver +once, then exchange data through the [getter contract](../getters.md) and call +[`update_fluxes!`](@ref RRTMGP.update_fluxes!) every radiation step. The +[Functional core](../functional_core.md) page explains what these pieces are; +this page shows the order in which to assemble them. + +## 1. Construct the grid parameters + +[`RRTMGPGridParams`](@ref RRTMGP.RRTMGPGridParams) fixes the float type, the +compute device (via [ClimaComms](https://github.com/CliMA/ClimaComms.jl)), and +the grid size: + +```julia +import ClimaComms +ClimaComms.@import_required_backends +using RRTMGP + +context = ClimaComms.context() +grid_params = RRTMGP.RRTMGPGridParams( + Float64; + context, + domain_nlay = 63, # your model's layer count + ncol = ncolumns, + isothermal_boundary_layer = true, # add a buffer layer to the model top +) +``` + +`domain_nlay` is the number of physical layers. With +`isothermal_boundary_layer = true`, RRTMGP internally adds one extra layer +between your model top and the pressure minimum of the gas-optics tables, and +every getter masks it off (you read and write arrays sized to your domain). + +## 2. Choose a radiation method and build the lookup tables + +The method selects the physics and which lookup tables are loaded (load +NCDatasets first; the spectral methods live in a package extension): + +```julia +using NCDatasets + +method = RRTMGP.AllSkyRadiationWithClearSkyDiagnostics( + true, # aerosol_radiation + false, # reset_rng_seed (McICA reproducibility) +) +lookups = RRTMGP.lookup_tables(grid_params, method) +``` + +Build the tables once and pass them to every solver you construct; see +[How to cache the lookup tables](lookup_cache.md) to skip the NetCDF read +across sessions. + +## 3. Build the state and boundary conditions + +The host owns the [`AtmosphericState`](@ref RRTMGP.AtmosphericStates.AtmosphericState) +(pressures, temperatures, mixing ratios, optional +[`CloudState`](@ref RRTMGP.AtmosphericStates.CloudState) and +[`AerosolState`](@ref RRTMGP.AtmosphericStates.AerosolState)) and the boundary +conditions ([`LwBCs`](@ref RRTMGP.BCs.LwBCs), [`SwBCs`](@ref RRTMGP.BCs.SwBCs)). +All arrays live on the device described by `grid_params`, with the vertical +dimension first and columns last. `test/read_all_sky_with_aerosols.jl` is a +worked example of filling these from data. + +The boundary conditions close the column at both ends. At the top, the +insolation enters through the incident solar flux `toa_flux` [W/m²] and the +cosine of the solar zenith angle `cos_zenith`, both `(ncol,)`; the host +computes them from its solar and orbital code. The CliMA package +[Insolation.jl](https://github.com/CliMA/Insolation.jl) provides both as +functions of latitude, longitude, and time, from the orbital parameters. At the bottom, the longwave surface +emissivity `sfc_emis` and the shortwave direct and diffuse albedos are +`(nbnd, ncol)`, i.e., **per band**, so the surface can be spectrally selective — +vegetation, for example, absorbs strongly in the visible and reflects in the +near-infrared, and snow does the reverse. For a spectrally flat surface, fill +the band dimension with one value: + +```julia +FT = Float64 +DA = ClimaComms.array_type(ClimaComms.device(context)) +(; nbnd_lw, nbnd_sw) = lookups + +sfc_emis = fill!(DA{FT}(undef, nbnd_lw, ncolumns), FT(0.98)) +bcs_lw = RRTMGP.BCs.LwBCs(sfc_emis, nothing) # nothing: no prescribed + # incident longwave flux + +cos_zenith = DA{FT}(undef, ncolumns) # filled each step (below) +toa_flux = DA{FT}(undef, ncolumns) +alb_direct = fill!(DA{FT}(undef, nbnd_sw, ncolumns), FT(0.06)) +alb_diffuse = copy(alb_direct) +bcs_sw = RRTMGP.BCs.SwBCs(cos_zenith, toa_flux, alb_direct, nothing, alb_diffuse) +``` + +The two `nothing` slots are prescribed incident fluxes at the top (longwave and +diffuse shortwave), used for offline intercomparison cases; a host model +normally leaves them off, so the top boundary sees only the direct solar beam. +After construction, the host updates all of these through the getters — +`cos_zenith(solver)`, `toa_flux(solver)`, `surface_emissivity(solver)`, +`direct_sw_surface_albedo(solver)`, `diffuse_sw_surface_albedo(solver)` — as in +step 5, so a time-varying sun or a changing surface needs no reconstruction. + +## 4. Construct the solver + +```julia +solver = RRTMGP.RRTMGPSolver( + grid_params, method, params, bcs_lw, bcs_sw, as; + lookups, + interpolation = RRTMGP.ArithmeticMean(), # fill level values from layers + # center_z, face_z, # required for BestFit/HydrostaticBottom + # deep_atmosphere_inverse_scaling, # (nlev, ncol) metric factor +) +``` + +If your model provides level (face) pressures and temperatures directly, keep +the default `interpolation = NoInterpolation()`. Otherwise pick an +[`AbstractInterpolation`](@ref RRTMGP.AbstractInterpolation) and +[`AbstractBottomExtrapolation`](@ref RRTMGP.AbstractBottomExtrapolation); +z-based schemes need `center_z`/`face_z` at construction. + +## 5. The radiation step + +Write the current model state through the getters (they are writable views +into solver-owned device memory), then solve: + +```julia +RRTMGP.layer_temperature(solver) .= T_from_host +RRTMGP.surface_temperature(solver) .= T_sfc +RRTMGP.volume_mixing_ratio(solver, "h2o") .= vmr_h2o +RRTMGP.cos_zenith(solver) .= μ₀ + +RRTMGP.update_fluxes!(solver) # allocation-free; returns nothing + +F_net = RRTMGP.net_flux(solver) # (nlev, ncol) domain-masked view +hr = RRTMGP.heating_rate(solver) # allocates; prefer net-flux divergence in hot loops +``` + +`update_fluxes!` runs the full cascade: level interpolation, boundary-layer +fill, clipping to the lookup tables' valid range, column amounts, longwave and +shortwave solves, and the combined net flux. To inspect the prepared state +without solving, call [`prepare_atmosphere!`](@ref RRTMGP.prepare_atmosphere!). + +Two host responsibilities to remember (details in the +[getter contract](../getters.md)): + +- **Relative humidity** feeds RH-dependent aerosol optics; update + `layer_relative_humidity(solver)` (or call `compute_relative_humidity!`) if + needed. +- **Reading well-mixed gases** via `volume_mixing_ratio(solver, "co2")` + returns a host scalar; do this during setup. + +## 6. Per-band (spectral) fluxes + +The getters above return broadband fluxes. Components that need the spectral +decomposition — an atmospheric-chemistry scheme whose photolysis rates depend +on the ultraviolet and visible fluxes, or a land model that partitions the +radiation absorbed by a canopy into photosynthetically active (visible) and +near-infrared bands — can have the solver retain per-band fluxes. Request them +at construction and read them like the broadband getters, with the band as a +third dimension: + +```julia +solver = RRTMGP.RRTMGPSolver( + grid_params, method, params, bcs_lw, bcs_sw, as; + lookups, + spectral_fluxes = true, +) +RRTMGP.update_fluxes!(solver) + +F_sw = RRTMGP.spectral_sw_flux_dn(solver) # (nlev, ncol, nbnd_sw) view +wn = RRTMGP.sw_band_bounds(solver) # (2, nbnd_sw) wavenumber edges [cm⁻¹] +``` + +The band edges from [`sw_band_bounds`](@ref RRTMGP.sw_band_bounds) / +[`lw_band_bounds`](@ref RRTMGP.lw_band_bounds) identify each band's spectral +interval, so the host can sum the surface downwelling flux over the bands its +chemistry or canopy scheme needs. See +[How to get per-band (spectral) fluxes](spectral_fluxes.md) for the full +recipe and the supported configurations. + +## 7. Debugging: opt-in input validation + +During development, enable range checks on every solve: + +```julia +RRTMGP.check_values[] = true # validate_inputs runs inside update_fluxes! +``` + +Out-of-range inputs (negative pressures, `cos_zenith` outside [-1, 1], +albedos outside [0, 1], negative mixing ratios, NaNs) raise an error naming +the offending field. The checks reduce over device arrays, so keep the toggle +off in production to maintain peak performance. diff --git a/docs/src/howto/lookup_cache.md b/docs/src/howto/lookup_cache.md new file mode 100644 index 000000000..e814d9606 --- /dev/null +++ b/docs/src/howto/lookup_cache.md @@ -0,0 +1,43 @@ +# How to cache the lookup tables + +The spectral (non-gray) radiation methods need the RRTMGP gas/cloud/aerosol +lookup tables, which are parsed from NetCDF artifacts. Caching the tables avoids +re-reading the NetCDF files within a session and allows running without +NCDatasets in constrained environments. + +## Reuse within a session + +[`lookup_tables`](@ref RRTMGP.lookup_tables) returns a typed +[`LookupBundle`](@ref RRTMGP.LookupBundle); build it once and pass it to every +solver (and to every [`solve`](@ref RRTMGP.solve) call): + +```julia +using RRTMGP, NCDatasets + +lookups = RRTMGP.lookup_tables(grid_params, method) +solver_a = RRTMGP.RRTMGPSolver(grid_params, method, params, bcs_lw, bcs_sw, as_a; lookups) +out = RRTMGP.solve(profile; lookups) +``` + +## Cache across sessions + +[`save_lookup_tables`](@ref RRTMGP.save_lookup_tables) serializes a bundle to +disk; [`load_lookup_tables`](@ref RRTMGP.load_lookup_tables) restores it onto +the device described by your grid parameters: + +```julia +# once, in an environment with NCDatasets: +using RRTMGP, NCDatasets +lookups = RRTMGP.lookup_tables(grid_params, RRTMGP.ClearSkyRadiation(false)) +RRTMGP.save_lookup_tables("clearsky_lookups.jls", lookups) + +# later, e.g., in a classroom environment with only RRTMGP: +using RRTMGP +lookups = RRTMGP.load_lookup_tables("clearsky_lookups.jls", grid_params) +out = RRTMGP.solve(profile; lookups) +``` + +!!! warning "A cache, not an interchange format" + The file uses Julia's `Serialization` stdlib and is tied to the Julia + version and package layout that wrote it. Regenerate it when environments + change; the NetCDF artifacts remain the source of truth. diff --git a/docs/src/howto/spectral_fluxes.md b/docs/src/howto/spectral_fluxes.md new file mode 100644 index 000000000..372550ae3 --- /dev/null +++ b/docs/src/howto/spectral_fluxes.md @@ -0,0 +1,56 @@ +# How to get per-band (spectral) fluxes + +By default, RRTMGP retains only broadband fluxes. For applications that need +the spectral decomposition, the solver can retain per-band fluxes. Examples +include atmospheric chemistry, where photolysis rates depend on the +ultraviolet and visible fluxes; land models, where the radiation a canopy +absorbs divides into photosynthetically active (visible) and near-infrared +bands with very different vegetation albedos; band-by-band forcing +diagnostics; and satellite-channel proxies. + +## Request per-band fluxes at construction + +```julia +solver = RRTMGP.RRTMGPSolver( + grid_params, method, params, bcs_lw, bcs_sw, as; + lookups, + spectral_fluxes = true, +) +RRTMGP.update_fluxes!(solver) +``` + +This is supported for the spectral (non-gray) methods with two-stream optics +in both bands; other configurations raise an informative error at +construction. The per-band buffers add `(nlev, ncol, n_bnd)` arrays per band +set, so they are opt-in. + +## Read them + +```julia +F_lw = RRTMGP.spectral_lw_flux_up(solver) # (nlev, ncol, nbnd_lw) view +F_sw = RRTMGP.spectral_sw_flux_dn(solver) # (nlev, ncol, nbnd_sw) view +``` + +Band `b`'s slice `F_lw[:, :, b]` has the same layout as the broadband getters, +and the bands sum to the broadband flux: + +```julia +sum(RRTMGP.spectral_lw_flux_up(solver); dims = 3) ≈ RRTMGP.lw_flux_up(solver) +``` + +The `spectral_*_flux_net` getters are views into a retained per-band net-flux +buffer, updated on every solve like the `up`/`dn` buffers. + +## Identify the bands + +[`lw_band_bounds`](@ref RRTMGP.lw_band_bounds) and +[`sw_band_bounds`](@ref RRTMGP.sw_band_bounds) return the `(2, n_bnd)` +wavenumber edges (cm⁻¹) of each band: + +```julia +wn = RRTMGP.lw_band_bounds(solver) +wn[:, 1] # lower/upper wavenumber of longwave band 1 +``` + +The RRTMGP longwave tables have 16 bands and the shortwave tables 14, +following [pincus2019](@citet). diff --git a/docs/src/index.md b/docs/src/index.md index d2762522d..0c143e485 100644 --- a/docs/src/index.md +++ b/docs/src/index.md @@ -1,14 +1,69 @@ # RRTMGP.jl -Julia implementation of [RTE-RRTMGP](https://github.com/earth-system-radiation/rte-rrtmgp). +RRTMGP.jl is a Julia implementation of the radiative transfer solver RTE and +the RRTMGP correlated-``k`` gas optics ([pincus2019](@citet)), based on the +reference Fortran implementation +[rte-rrtmgp](https://github.com/earth-system-radiation/rte-rrtmgp). It +computes longwave and shortwave fluxes and heating rates for clear, cloudy, +and aerosol-laden atmospheres, as well as an analytic gray-radiation mode for +idealized studies, on CPUs and GPUs. It is the radiation scheme of the +[CliMA](https://clima.caltech.edu/) Earth System Model. + +## Quick start + +Build an idealized atmospheric column, then solve it: gray radiation uses +analytic formulas and needs no input data, while the full gas optics loads +NCDatasets to download and parse the lookup tables: + +```@example index +using RRTMGP +profile = RRTMGP.standard_atmosphere(Float64; kind = :tropical) +out = RRTMGP.solve(profile; method = RRTMGP.GrayRadiation()) # gray optics +out.heating_rate[1, 1] # heating rate at bottom layer [K/s] +``` + +```@example index +using NCDatasets # activates the gas optics +out = RRTMGP.solve(profile) # clear-sky correlated-k +out.lw_up[end, 1] # OLR [W/m²] +``` ## Code structure -RRTMGP is fundamentally split into two parts: +RRTMGP is split into two parts: + +- **Optics** computes optical properties and source functions given + atmospheric conditions (pressure, temperature, gas concentrations, clouds, + aerosols). +- **RTE** computes radiative fluxes given optical properties and source + functions. + +On top of this functional core sits the [`RRTMGPSolver`](@ref RRTMGP.RRTMGPSolver), +which host models drive through the [getter contract](getters.md), and a standalone +front door (`solve_gray`, `standard_atmosphere`, `solve`) for single-column work. + +## How the documentation is organized - - **Optics** computes optical properties and source functions given atmospheric conditions (e.g., pressure, temperature, gas concentrations). - - **RTE** computes radiative fluxes given optical properties and source functions. +- **Tutorials** (learning-oriented, runnable end to end): + [A first radiation calculation](tutorials/getting_started.md) and + [Radiative-convective equilibrium](tutorials/manabe_rce.md) (Manabe's + classic climate-sensitivity experiment). Start here if you want to learn + about radiative transfer and how to run this code. +- **How-to guides** (task-oriented recipes): + [driving RRTMGP from a host model](howto/host_model.md), + [running on GPUs](howto/gpu.md), + [caching the lookup tables](howto/lookup_cache.md), + [per-band fluxes](howto/spectral_fluxes.md), and + [the validated test problems](Example.md). Start here if you are wiring + RRTMGP into a climate model. +- **Explanation** (the concepts and the math): + [the functional core](functional_core.md), the [RTE solvers](RTE.md), the + [optics](Optics.md), and the + [Fortran and paper concordance](concordance.md) for readers coming from + rte-rrtmgp. +- **Reference**: the [API](api.md) and the [getter contract](getters.md). - ## Authors +## Authors -`RRTMGP.jl` is being developed by the [Climate Modeling Alliance](https://clima.caltech.edu/). +`RRTMGP.jl` is being developed by the +[Climate Modeling Alliance](https://clima.caltech.edu/). diff --git a/docs/src/optics/AtmosphericStates.md b/docs/src/optics/AtmosphericStates.md index f7c5662f1..fa5083d3c 100644 --- a/docs/src/optics/AtmosphericStates.md +++ b/docs/src/optics/AtmosphericStates.md @@ -5,10 +5,15 @@ CurrentModule = RRTMGP.AtmosphericStates ``` ```@docs +AbstractAtmosphericState AtmosphericState GrayAtmosphericState CloudState AerosolState +AbstractCloudMask +MaxRandomOverlap +AbstractGrayOpticalThickness GrayOpticalThicknessSchneider2004 GrayOpticalThicknessOGorman2008 +setup_gray_as_pr_grid ``` diff --git a/docs/src/optics/Fluxes.md b/docs/src/optics/Fluxes.md index f2cc81065..514eb5e09 100644 --- a/docs/src/optics/Fluxes.md +++ b/docs/src/optics/Fluxes.md @@ -5,6 +5,7 @@ CurrentModule = RRTMGP.Fluxes ``` ```@docs +AbstractFlux FluxLW FluxSW set_flux_to_zero! diff --git a/docs/src/precision.md b/docs/src/precision.md new file mode 100644 index 000000000..63d260b05 --- /dev/null +++ b/docs/src/precision.md @@ -0,0 +1,78 @@ +# Float32 and Float64 + +Every RRTMGP.jl kernel is generic in the working precision: the float type +chosen at construction (through [`RRTMGPGridParams`](@ref RRTMGP.RRTMGPGridParams), +[`solve`](@ref RRTMGP.solve), or [`solve_gray`](@ref RRTMGP.solve_gray)) flows +through the lookup tables, the optics, and the RTE solve. `Float64` is the +reference; `Float32` halves the memory traffic of the bandwidth-bound kernels +and is the precision at which the CliMA atmosphere runs radiation on GPUs. + +## Accuracy achieved at Float32 + +A consistency harness (`test/float32_consistency.jl`) solves the same gray, +clear-sky, and cloudy problems at both precisions, with the `Float32` states +rounded from the `Float64` ones, and pins the end-to-end difference — input +rounding, gas and cloud optics, and the RTE solve together. The measured +maximum broadband flux differences are: + +- every longwave path sits at its interpolation-noise floor of about + 2–5 × 10⁻⁴ W/m², roughly 25–90 times better than before the + single-precision program described below; +- shortwave differences are about 1–2 × 10⁻² W/m² in clear skies and about + 5 × 10⁻² W/m² with clouds. These were verified to be per-g-point + interpolation and coefficient noise rather than accumulation error: + repeating the runs with full `Float64` broadband accumulation left them + unchanged, so compensated summation was deliberately not added. + +For scale, these differences are orders of magnitude below both typical flux +magnitudes (hundreds of W/m²) and the accuracy of the correlated-``k`` +approximation itself; the Fortran reference (rte-rrtmgp) accepts an absolute +flux error of 0.35 W/m² in its own validation. CI locks them in with ratcheting thresholds +(gray 10⁻³ W/m² and 10⁻⁸ K/s for the heating rate; longwave 10⁻³ W/m²; +shortwave 3 × 10⁻² clear and 1.2 × 10⁻¹ W/m² cloudy) that are tightened as +numerics fixes land and never loosened. The reference comparisons against the +official rte-rrtmgp results also run at both precisions. + +## How: the single-precision numerics + +The `Float32` accuracy rests on evaluating exact reformulations instead of +cancellation-prone ones, and on switching to series expansions where +cancellation is unavoidable. The measures, roughly in the order radiation +flows: + +- **Gas optics.** The interpolation fraction in the binary species parameter + ``η`` is computed relative to its clamped table cell, so it stays continuous + at ``η = 1`` — a value `Float32` rounds to far more often than `Float64`. +- **Longwave, no scattering.** The linear-in-``τ`` source factor + ``(1 - t)/\tau - t`` ([clough1992](@citet), Eq. 13) loses + ``\sim\!\mathrm{eps}/\tau^2`` to cancellation for thin layers; it switches to + its third-order series at ``\tau = \mathrm{eps}^{1/4}``, where the two error + curves cross. +- **Two-stream coefficients.** The diffusion eigenvalue + ``k = \sqrt{(\gamma_1-\gamma_2)(\gamma_1+\gamma_2)}`` uses exact + ``\gamma_1 - \gamma_2`` identities rather than subtracting near-equal + numbers, with ``k^2`` floored at ``\sqrt{\mathrm{eps}}``; thin-layer factors + ``1 - e^{-k\tau}`` are evaluated with `expm1`. +- **Longwave two-stream source.** The [toon1989](@citet) source terms are + factored so that no term divides by ``\tau`` and no small difference of + near-equal quantities appears (exact ``1 \mp R_{\mathrm{dif}} - + T_{\mathrm{dif}}`` factorizations). +- **Shortwave direct beam.** The direct reflectance and transmittance of + [meador1980](@citet) (Eqs. 14–15) have a removable singularity at + ``k\mu_0 = 1``; ``k\mu_0`` is nudged off resonance symmetrically within a + ``\sqrt{\mathrm{eps}}`` window, keeping numerator and denominator mutually + consistent. An energy-conservation clamp then bounds the direct reflectance + and transmittance by the energy the unscattered beam leaves behind, + following [ukkonen2024](@citet); and the direct-beam profile itself is built + by accumulating optical depth downward rather than by repeated + multiplication. +- **Delta scaling.** The ``f = g^2`` similarity scaling of cloud and aerosol + optics ([joseph1976](@citet)) is evaluated in exact, non-cancelling forms + (for example ``g' = g/(1+g)`` instead of ``(g - g^2)/(1 - g^2)``). + +All the guard constants involved (`k_min`, `τ_thresh`, `resonance_window`, +`μ₀_min`) live in the `RRTMGP.Numerics` module, each with the derivation of +its value, and all scale with `eps(FT)` — so the kernels behave consistently +at either precision, and the same policy would extend to other float types. +Where a threshold matches the Fortran reference (rte-rrtmgp), the docstring +says so. diff --git a/docs/tutorials/getting_started.jl b/docs/tutorials/getting_started.jl new file mode 100644 index 000000000..7f6b1204d --- /dev/null +++ b/docs/tutorials/getting_started.jl @@ -0,0 +1,187 @@ +# # A first radiation calculation +# +# This tutorial computes radiative fluxes and heating rates with RRTMGP.jl in +# a few lines, first for a gray (single-band) atmosphere and then with the +# full RRTMGP correlated-``k`` gas optics. The gray model is analytic, and the +# gas-optics lookup tables download automatically. + +using RRTMGP +using CairoMakie + +# ## An idealized atmospheric column +# +# Radiation needs an atmospheric state to act on: temperatures, pressures, and +# composition. Each [`standard_atmosphere`](@ref RRTMGP.standard_atmosphere) is +# an analytic clear-sky column, loosely following the Air Force Geophysics Laboratory +# reference climatology ([anderson1986](@citet)): a two-segment temperature profile +# with constant tropospheric lapse rate up to the tropopause, then a warming +# stratosphere, hydrostatic pressure, water vapor decaying exponentially from +# the surface with a floor in the stratosphere, an ozone layer peaked near +# 30 km, and present-day well-mixed gases (CO₂, CH₄, N₂O, …). The three +# `kind`s — `:tropical`, `:midlatitude_summer`, and `:subarctic_winter` — +# differ in surface temperature, tropopause height, and moisture, from warm and +# moist to cold and dry. It needs no input data: + +profile = RRTMGP.standard_atmosphere(Float64; kind = :tropical, nlay = 60); + +# ## Gray radiation +# +# The gray atmosphere replaces the full spectral dependence of gas optics by a +# single prescribed longwave optical-thickness profile, the workhorse of +# idealized-climate studies. RRTMGP's default follows [frierson2006](@citet) and +# [ogorman2008](@citet): the +# vertical longwave optical depth blends a linear and a quartic dependence on the +# normalized pressure ``σ = p/p_s``, +# ```math +# \widehat{\tau}(σ) \propto f_\ell\,σ + (1 - f_\ell)\,σ^4, +# ``` +# so it stays finite aloft and thickens toward the surface. Because the gray +# equations are analytically tractable, the semi-gray column also has a +# closed-form radiative-equilibrium solution, ``T(\widehat{\tau}) = T_e\,[(1 + +# D\widehat{\tau})/2]^{1/4}`` with diffusivity factor ``D``; RRTMGP's test suite +# integrates the gray longwave solver to equilibrium and checks the computed +# temperatures against the analytic radiative-equilibrium balance ``\sigma T^4 = +# (F^\uparrow + F^\downarrow)/2``. Solving the column with gray optics takes one +# call (no lookup tables are needed; the temperatures are the profile's): + +out = RRTMGP.solve(profile; method = RRTMGP.GrayRadiation()); + +# The result is a [`RadiationOutput`](@ref RRTMGP.RadiationOutput) whose +# fields are `(nlev, ncol)` fluxes in W/m² plus the heating rate in K/s. +# Plot the longwave and shortwave net fluxes and the heating rate against +# pressure: + +p_lev = Array(RRTMGP.level_pressure(out.solver)) ./ 100 # [hPa] +p_lay = Array(RRTMGP.layer_pressure(out.solver)) ./ 100 + +fig = Figure(size = (700, 400)) +ax1 = Axis( + fig[1, 1]; + xlabel = "flux [W/m²]", + ylabel = "pressure [hPa]", + yreversed = true, + limits = (nothing, nothing, nothing, 1000), +) +lines!(ax1, Array(out.lw_net)[:, 1], p_lev[:, 1]; label = "longwave net") +lines!(ax1, Array(out.sw_net)[:, 1], p_lev[:, 1]; label = "shortwave net") +lines!(ax1, Array(out.net)[:, 1], p_lev[:, 1]; label = "total net") +axislegend(ax1; position = :rb) +ax2 = Axis( + fig[1, 2]; + xlabel = "heating rate [K/day]", + yreversed = true, + limits = (nothing, nothing, nothing, 1000), +) +lines!(ax2, 86400 .* Array(out.heating_rate)[:, 1], p_lay[:, 1]) +fig + +# ## Configuring the gray optical depth +# +# The optical-thickness model is a keyword argument. The [schneider2004](@citet) +# form exposes a single pressure exponent ``α`` through ``\widehat{\tau}(p) = d_0\, +# (p/p_s)^α``, which controls how the absorber is distributed with height: +# ``α = 1`` for a well-mixed absorber (constant mixing ratio, no pressure +# broadening), larger ``α`` for one concentrated near the surface. Change it in +# one line: + +using RRTMGP.AtmosphericStates: GrayOpticalThicknessSchneider2004 + +out_wellmixed = RRTMGP.solve( + profile; + method = RRTMGP.GrayRadiation(), + optical_thickness = GrayOpticalThicknessSchneider2004(Float64; α = 1.0), +); +println("surface net flux, α = 1: ", + round(Array(out_wellmixed.net)[1, 1]; digits = 1), " W/m²") + +# ([`solve_gray`](@ref RRTMGP.solve_gray) is a related one-liner that builds an +# analytic, latitude-dependent gray column internally instead of taking a +# profile.) + +# The longwave net flux converges toward the outgoing longwave radiation at +# the top; the corresponding heating rate is the radiative cooling that +# convection balances in the troposphere. +# +# ## Clear-sky gas optics +# +# For the real gas optics, load NCDatasets (which activates RRTMGP's +# lookup-table support, downloading the tables on first use) and solve the +# same column with the full correlated-``k`` treatment: + +using NCDatasets + +out_cs = RRTMGP.solve(profile); + +# `out_cs.solver.lookups` holds the parsed lookup tables; pass them back via +# `solve(profile; lookups)` to skip the NetCDF read when solving many +# profiles. The outgoing longwave radiation (OLR) is the upwelling longwave +# flux at the top level: + +olr(kind, lookups) = Array( + RRTMGP.solve( + RRTMGP.standard_atmosphere(Float64; kind); + lookups, + ).lw_up, +)[end, 1] + +lookups = out_cs.solver.lookups +for kind in (:tropical, :midlatitude_summer, :subarctic_winter) + println(rpad(kind, 22), round(olr(kind, lookups); digits = 1), " W/m²") +end + +# Warm, moist columns emit more (though not proportionally to ``σT_s^4``, +# because water vapor absorbs part of the surface emission). +# +# ## The effect of doubling CO₂ +# +# Because the profile carries its well-mixed gases as a dictionary, changing +# the CO₂ concentration is one line. Comparing the OLR at fixed temperature +# quantifies the *instantaneous radiative forcing* at the top of the +# atmosphere: + +profile_2x = RRTMGP.standard_atmosphere(Float64; kind = :tropical, nlay = 60) +profile_2x.well_mixed_vmr["co2"] = 2 * profile.well_mixed_vmr["co2"] +out_2x = RRTMGP.solve(profile_2x; lookups) + +ΔOLR = Array(out_2x.lw_up)[end, 1] - Array(out_cs.lw_up)[end, 1] +println("ΔOLR from doubling CO₂: $(round(ΔOLR; digits = 2)) W/m²") + +# Doubling CO₂ reduces the OLR by a few W/m², creating the energy imbalance that +# forces the climate to warm. How much the surface must warm to restore +# balance is the subject of the +# [radiative-convective equilibrium tutorial](manabe_rce.md), which turns +# this experiment into Manabe's classic climate-sensitivity calculation. +# +# ## The clear-sky heating rate +# +# The clear-sky heating-rate profile shows the stratospheric heating by ozone +# absorption of shortwave radiation: + +hr = 86400 .* Array(out_cs.heating_rate) # [K/day] +p_cs = Array(RRTMGP.layer_pressure(out_cs.solver)) ./ 100 + +fig2 = Figure(size = (400, 400)) +ax3 = Axis( + fig2[1, 1]; + xlabel = "heating rate [K/day]", + ylabel = "pressure [hPa]", + yscale = log10, + yreversed = true, + limits = (nothing, nothing, nothing, 1000), + title = "Clear-sky radiative heating (tropical)", +) +lines!(ax3, hr[:, 1], p_cs[:, 1]) +vlines!(ax3, [0.0]; color = :gray, linestyle = :dash) +fig2 + +# ## Where to go from here +# +# - The [radiative-convective equilibrium tutorial](manabe_rce.md) builds a +# single-column climate model from these pieces. +# - The [Functional core](../functional_core.md) page shows what `solve` and +# `solve_gray` assemble internally (the explicit states and +# `solve_lw!`/`solve_sw!` kernels). +# - The [getter contract](../getters.md) documents how a host model exchanges +# data with an `RRTMGPSolver` in place. +# - [How to get per-band (spectral) fluxes](../howto/spectral_fluxes.md) shows +# how to retain the band-by-band fluxes behind these broadband results. diff --git a/docs/tutorials/manabe_rce.jl b/docs/tutorials/manabe_rce.jl new file mode 100644 index 000000000..c67575453 --- /dev/null +++ b/docs/tutorials/manabe_rce.jl @@ -0,0 +1,492 @@ +# # Radiative-convective equilibrium (Manabe's classic experiment) +# +# This tutorial reproduces the classic radiative-convective equilibrium (RCE) +# calculations of [manabe1964](@citet) and [manabe1967](@citet) with RRTMGP's +# clear-sky gas optics: a single atmospheric column with +# +# - a **prescribed tropospheric lapse rate** (convective adjustment to +# 6.5 K/km), +# - a **prescribed relative-humidity profile** (water vapor follows the +# temperature), and +# - a stratosphere in **radiative equilibrium**. +# +# The same setup (hard convective adjustment plus fixed relative humidity) +# is the default configuration of the single-column model +# [konrad](https://github.com/atmtools/konrad), and [kluft2019](@citet) showed +# that it reproduces Manabe's headline result: an equilibrium climate +# sensitivity of about 2 K per doubling of CO₂ when relative humidity is held +# fixed. +# +# From this one setup, we reproduce Manabe's classic results: the +# radiative-versus-radiative-convective comparison, the decomposition of the +# greenhouse effect into its individual absorbers (water vapor, CO₂, ozone), +# the dependence of the equilibrium on the assumed lapse rate, and the surface +# warming under CO₂ increases with the water-vapor feedback isolated by +# contrasting fixed relative and fixed absolute humidity. +# +# Along the way, this tutorial demonstrates the host-model workflow of +# RRTMGP.jl: build a solver once, then mutate its state through the +# [getter contract](../getters.md) and call +# [`update_fluxes!`](@ref RRTMGP.update_fluxes!) inside a time loop. + +using RRTMGP +using NCDatasets # activates RRTMGP's lookup-table extension +import Thermodynamics as TD +import ClimaParams # brings in the CliMA default thermodynamic constants +using CairoMakie + +# ## The column +# +# Start from the idealized midlatitude-summer standard atmosphere on 60 layers +# up to 45 km. Its pressure grid, ozone profile, and well-mixed gases +# (CO₂ = 420 ppmv, etc.) stay fixed; temperature and water vapor will be +# overwritten by the RCE iteration. We keep a copy of the standard-atmosphere +# temperature to overlay later as the "observed" reference. + +const FT = Float64 +nlay = 60 +profile = RRTMGP.standard_atmosphere(FT; kind = :midlatitude_summer, nlay); +T_obs = copy(profile.t_lay[:, 1]); + +# Like Manabe and collaborators, we force the column with the **global-mean +# insolation** ``S_0/4 \approx 341`` W/m² (the solar constant spread over the sphere). +# Because the mean solar zenith angle sets the shortwave absorption path length +# [cronin2014](@cite), we use a representative zenith angle of 47.9° +# (``\cos θ \approx 0.67``) with an incident flux of 509 W/m², so that +# ``509 \times \cos(47.9^\circ) \approx 341`` W/m². The surface albedo is set to 0.3, higher +# than a bare surface, to stand in for the shortwave reflection of the clouds +# this clear-sky column omits: + +insolation = (; cos_zenith = cosd(47.9), toa_flux = 509.0, surface_albedo = 0.3); + +# Both RRTMGP and [Thermodynamics.jl](https://github.com/CliMA/Thermodynamics.jl) +# read their physical constants from +# [ClimaParams.jl](https://github.com/CliMA/ClimaParams.jl), the single source of +# truth for CliMA parameters, so the constants used across the radiation and +# thermodynamics calculations here are consistent. We build both parameter sets +# from it and take the gravitational acceleration, the dry-air gas constant, and +# the dry-air heat capacity from them: + +params = RRTMGP.Parameters.RRTMGPParameters(FT) +td_params = TD.Parameters.ThermodynamicsParameters(FT) +R_d = TD.Parameters.R_d(td_params) +cp_d = TD.Parameters.cp_d(td_params) +g = RRTMGP.Parameters.grav(params) # gravitational acceleration [m/s²] + +# The iteration below marches the layer temperatures, so we ask the solver to +# rebuild the level (cell-face) temperatures and pressures from the layer +# (cell-center) values on every [`update_fluxes!`](@ref RRTMGP.update_fluxes!) call: +# `interpolation = ArithmeticMean()` averages the adjacent layers on interior +# faces and extrapolates linearly at the boundary faces. We collect this, the +# parameters, and the insolation into one configuration shared by every column +# in this tutorial. One call then builds the clear-sky solver (downloading the +# RRTMGP lookup tables on first use) and solves the initial state; its state is +# exposed as writable views that the iteration overwrites in place: + +setup = (; params, insolation..., interpolation = RRTMGP.ArithmeticMean()) +out = RRTMGP.solve(profile; setup...) +solver = out.solver; + +# ## Fixed relative humidity +# +# Manabe and Wetherald prescribed the relative-humidity profile +# ``h(p) = 0.77\,(p/p_s - 0.02)/(1 - 0.02)``, so the specific humidity rises +# and falls with the temperature (the water-vapor feedback in its simplest +# form). The saturation vapor pressure ``e^*(T)`` comes from [Thermodynamics.jl](https://github.com/CliMA/Thermodynamics.jl), +# which integrates the Clausius-Clapeyron relation under the Rankine-Kirchhoff +# (constant-heat-capacity) approximation [romps2021](@cite), the same +# formulation the CliMA model uses. From the vapor partial pressure +# ``e = h\,e^*`` the water-vapor volume mixing ratio (moles of vapor per mole +# of dry air, RRTMGP's convention) is ``e/(p - e)``. We floor it at the +# stratospheric minimum Manabe used (a vmr of ≈ 4.8 × 10⁻⁶). + +e_sat(T) = TD.saturation_vapor_pressure(td_params, T, TD.Liquid()) # [Pa] +rel_hum(p, p_sfc) = max(0.77 * (p / p_sfc - 0.02) / (1 - 0.02), 0.0) +const vmr_h2o_min = 4.8e-6 + +function set_humidity!(solver) + T = RRTMGP.layer_temperature(solver) + p = RRTMGP.layer_pressure(solver) + vmr = RRTMGP.volume_mixing_ratio(solver, "h2o") + p_sfc = RRTMGP.level_pressure(solver)[1, 1] + e = rel_hum.(p, p_sfc) .* e_sat.(T) # vapor partial pressure [Pa] + @. vmr = max(e / (p - e), vmr_h2o_min) + return nothing +end; + +# ## Convective adjustment +# +# The steepest lapse rate a dry column sustains is the dry adiabatic value +# ``Γ_d = g/c_p``, calculated from the Thermodynamics.jl constants: + +Γ_dry = g / cp_d +println("dry adiabatic lapse rate g/cₚ = $(round(1000 * Γ_dry; digits = 1)) K/km") + +# Moist convection and large-scale eddies hold the observed troposphere to a +# gentler value, so we impose a critical lapse rate of 6.5 K/km. Wherever +# radiative cooling pulls the lapse rate above it, convection is assumed to +# instantaneously restore the critical profile ``T(z) = T_s - Γ z``, anchored +# at a trial surface temperature ``T_s`` (hard adjustment). The lapse rate is +# defined per unit height, yet no altitudes are needed to apply it: +# combining ``dT/dz = -Γ`` with hydrostatic balance and the ideal-gas law gives +# ``dT/T = (Γ R_d / g)\, dp/p``, so in the solver's native pressure coordinate +# the critical profile is the power law +# ```math +# T_c(p) = T_s \left(\frac{p}{p_s}\right)^{Γ R_d / g}, +# ``` +# which reduces to the dry adiabat ``T \propto p^{R_d/c_p}`` for ``Γ = g/c_p``. +# Layers whose radiative-equilibrium temperature is warmer than ``T_c`` (the +# stratosphere) are left untouched, allowing the tropopause to emerge from the +# calculation. +# +# Although convection should only redistribute energy, not create or destroy +# it, convective adjustment by itself does not conserve column energy. We +# enforce energy conservation in equilibrium by adjusting the surface +# temperature (an unknown of the problem): each equilibration below holds a +# trial ``T_s`` fixed, and the trial value is then adjusted until the net +# radiative flux at the top of the atmosphere vanishes, so the energy balance +# determines ``T_s``. + +const Γ_crit = 6.5e-3 # critical lapse rate [K/m] + +function convective_adjustment!(solver, T_sfc; Γ = Γ_crit) + T = RRTMGP.layer_temperature(solver) + p = RRTMGP.layer_pressure(solver) + p_sfc = RRTMGP.level_pressure(solver)[1, 1] + @. T = max(T, T_sfc * (p / p_sfc)^(Γ * R_d / g)) # critical profile T_c(p) + return nothing +end; + +# ## The RCE iteration +# +# Each step applies the convective adjustment, updates the water vapor to the +# fixed relative humidity, solves the radiative transfer, and marches the +# temperature with the radiative heating rate. Level (cell-face) temperatures +# are rebuilt from the layer (cell-center) temperatures inside +# `update_fluxes!`, by the `ArithmeticMean` interpolation requested at +# construction. The ground temperature enters separately, through the +# surface-emission boundary condition (`surface_temperature`); keeping the two +# distinct lets the air at the bottom face be colder than the ground, which +# pure radiative equilibrium demands (the `UseSurfaceTempAtBottom` +# extrapolation option would pin the bottom face to the ground temperature and +# spuriously chill the lowest layer in the radiative-equilibrium experiment). +# The column is equilibrated when the largest temperature change per step is +# negligible. + +# Marching the layer temperatures independently excites a grid-scale +# (two-layer) oscillation in the stratosphere: a sawtooth in the layer +# temperatures maps to nearly unchanged level temperatures, so it barely +# perturbs the level fluxes that would otherwise damp it, and it survives no +# matter how small the time step. We remove it with a light three-point +# (`1-2-1`) filter applied to the interior layers each step — a weak numerical +# diffusion. Its damping is scale-selective: each step multiplies a mode of +# wavelength ``L`` by ``1 - 4ν\sin^2(πΔz/L)``, so the two-layer mode shrinks by +# ``1 - 4ν`` per step while smooth structure, which the filter perturbs only in +# proportion to its curvature, is nearly untouched. The main visible cost is a +# slight rounding of the tropopause kink; the balanced surface temperature +# shifts by less than 0.1 K. + +function smooth!(T, ν) + nlay = size(T, 1) + prev = T[1, 1] + for k in 2:(nlay - 1) + cur = T[k, 1] + T[k, 1] = cur + ν * (prev - 2cur + T[k + 1, 1]) + prev = cur + end + return nothing +end + +# One iteration serves every experiment: `convection = false` gives pure +# radiative equilibrium, `humidity = false` holds the water vapor constant +# (used below to remove water vapor entirely and to freeze it for the +# fixed-absolute-humidity experiments), and the `Γ` keyword changes the +# critical lapse rate. The adjustment and humidity are synced before each +# solve, including on the final (converged) step, so the reported fluxes are +# consistent with the temperatures. + +function equilibrate!( + solver, + T_sfc; + convection = true, + humidity = true, + Γ = Γ_crit, + dt = 8 * 3600.0, + maxsteps = 5000, + tol = 1e-4, + ν = 0.1, +) + RRTMGP.surface_temperature(solver) .= T_sfc + T = RRTMGP.layer_temperature(solver) + for _ in 1:maxsteps + convection && convective_adjustment!(solver, T_sfc; Γ) + humidity && set_humidity!(solver) + RRTMGP.update_fluxes!(solver) + dT = clamp.(dt .* Array(RRTMGP.heating_rate(solver)), -2, 2) + maximum(abs, dT) < tol && break + T .+= dT + smooth!(T, ν) + end + return nothing +end; + +# Run it. The net flux at the top of the atmosphere (`net = up - down`) +# measures the column's energy imbalance; at the true equilibrium surface +# temperature it vanishes. + +toa_imbalance(solver) = RRTMGP.net_flux(solver)[end, 1] + +T_sfc = FT(288) +equilibrate!(solver, T_sfc) +N = toa_imbalance(solver) +println("TOA imbalance at Tₛ = $(T_sfc) K: $(round(N; digits = 2)) W/m²") + +# ## Radiative equilibrium versus radiative-convective equilibrium +# +# Repeating the iteration without the convective adjustment reproduces +# Manabe and Strickler's famous comparison: pure radiative equilibrium produces +# high surface temperatures and low upper-troposphere temperatures, while the +# convective adjustment brings the profile into agreement with observations +# (here, the midlatitude-summer standard atmosphere we started from). Near the +# surface, the radiative-equilibrium temperature falls steeply — far more +# steeply than any adiabat — and the air at the bottom face remains several +# kelvin colder than the 288 K ground: the classic surface discontinuity of +# radiative equilibrium. Both features are convectively unstable; the +# turbulent heat fluxes that the convective adjustment stands in for would +# erase them, which is what the RCE profile shows. + +T_rce = copy(Array(RRTMGP.layer_temperature(solver))) +p_lay = copy(Array(RRTMGP.layer_pressure(solver))) + +solver_re = RRTMGP.solve(profile; lookups = solver.lookups, setup...).solver +equilibrate!(solver_re, T_sfc; convection = false) +T_re = copy(Array(RRTMGP.layer_temperature(solver_re))); + +fig = Figure(size = (500, 500)) +ax = Axis( + fig[1, 1]; + xlabel = "temperature [K]", + ylabel = "pressure [hPa]", + yscale = log10, + yreversed = true, + limits = (nothing, nothing, nothing, 1000), + title = "Radiative vs. radiative-convective equilibrium", +) +lines!(ax, T_obs, p_lay[:, 1] ./ 100; color = :gray, linestyle = :dot, label = "standard atmosphere") +lines!(ax, T_re[:, 1], p_lay[:, 1] ./ 100; label = "radiative equilibrium") +lines!(ax, T_rce[:, 1], p_lay[:, 1] ./ 100; label = "RCE (Γ = 6.5 K/km)") +axislegend(ax; position = :lt) +fig + +# ## Climate sensitivity at fixed relative humidity +# +# Manabe and Wetherald's headline experiment: find the surface temperature +# that balances the column (zero net flux at the top of the atmosphere) for +# the present CO₂ concentration and for increased CO₂, keeping the relative +# humidity fixed. The difference is the equilibrium climate sensitivity of +# the radiative-convective column. +# +# A secant iteration on the TOA imbalance converges in a few equilibrations +# (each restarted from the previous equilibrium, so they are fast): + +function balanced_surface_temperature!(solver, T1, T2; humidity = true, Γ = Γ_crit, tol = 5e-3) + eq(T) = (equilibrate!(solver, T; humidity, Γ); toa_imbalance(solver)) + N1 = eq(T1) + N2 = eq(T2) + while abs(N2) > tol && abs(T2 - T1) > 1e-3 + Tn = T2 - N2 * (T2 - T1) / (N2 - N1) + T1, N1 = T2, N2 + T2 = Tn + N2 = eq(T2) + end + return T2 +end + +Ts_1x = balanced_surface_temperature!(solver, FT(285), FT(290)) +T_1x = copy(Array(RRTMGP.layer_temperature(solver))) +vmr_1x = copy(Array(RRTMGP.volume_mixing_ratio(solver, "h2o"))) # reference vapor, for fixed AH +println("equilibrium Tₛ (1 × CO₂): $(round(Ts_1x; digits = 2)) K") + +# The reference tropopause — the highest layer still on the critical profile — +# sits near 10 km. On that profile, height and temperature are interchangeable, +# ``z = (T_s - T)/Γ``, so the height follows from the temperature of the +# highest adjusted layer, again with no altitude reconstruction: + +function tropopause_height(solver, T_sfc; Γ = Γ_crit) + T = Array(RRTMGP.layer_temperature(solver))[:, 1] + p = Array(RRTMGP.layer_pressure(solver))[:, 1] + p_sfc = Array(RRTMGP.level_pressure(solver))[1, 1] + k = findlast(abs.(T .- T_sfc .* (p ./ p_sfc) .^ (Γ * R_d / g)) .< 0.5) + return (T_sfc - T[k]) / Γ +end +println("tropopause height ≈ $(round(tropopause_height(solver, Ts_1x) / 1000; digits = 1)) km") + +# Now scale the CO₂ and re-balance. `balanced_co2` builds a fresh column with a +# scaled CO₂ concentration, warm-starts it from the 1 × CO₂ equilibrium, and +# finds its balanced surface temperature. With `fixed_rh = false`, the water +# vapor is frozen at its reference (1 × CO₂) values (**fixed absolute +# humidity**) which removes the water-vapor feedback and isolates the direct +# effect of CO₂. + +co2_1x = profile.well_mixed_vmr["co2"] + +function balanced_co2(factor; fixed_rh = true, bracket = (Ts_1x, Ts_1x + 3)) + prof = RRTMGP.standard_atmosphere(FT; kind = :midlatitude_summer, nlay) + prof.well_mixed_vmr["co2"] = factor * co2_1x + slv = RRTMGP.solve(prof; lookups = solver.lookups, setup...).solver + RRTMGP.layer_temperature(slv) .= T_1x # warm start + fixed_rh || (RRTMGP.volume_mixing_ratio(slv, "h2o") .= vmr_1x) # freeze reference vapor + Ts = balanced_surface_temperature!(slv, bracket...; humidity = fixed_rh) + return Ts, copy(Array(RRTMGP.layer_temperature(slv))) +end + +Ts_2x_rh, T_2x_rh = balanced_co2(2) +Ts_4x_rh, T_4x_rh = balanced_co2(4; bracket = (Ts_1x + 3, Ts_1x + 7)) +Ts_2x_ah, T_2x_ah = balanced_co2(2; fixed_rh = false, bracket = (Ts_1x, Ts_1x + 2)) +Ts_4x_ah, T_4x_ah = balanced_co2(4; fixed_rh = false, bracket = (Ts_1x + 1, Ts_1x + 4)); + +# Collect the surface temperatures into a table. Comparing the fixed-RH and +# fixed-AH warming at the same forcing isolates the water-vapor feedback: + +rows = ( + ("reference (1×CO₂, RH)", Ts_1x, nothing), + ("2×CO₂, fixed RH", Ts_2x_rh, Ts_2x_rh - Ts_1x), + ("4×CO₂, fixed RH", Ts_4x_rh, Ts_4x_rh - Ts_1x), + ("2×CO₂, fixed AH", Ts_2x_ah, Ts_2x_ah - Ts_1x), + ("4×CO₂, fixed AH", Ts_4x_ah, Ts_4x_ah - Ts_1x), +) +println(rpad("experiment", 24), lpad("Tₛ [K]", 9), lpad("ΔTₛ [K]", 10)) +for (name, Ts, dT) in rows + dstr = dT === nothing ? "—" : string(round(dT; digits = 1)) + println(rpad(name, 24), lpad(round(Ts; digits = 1), 9), lpad(dstr, 10)) +end + +# With fixed relative humidity and hard adjustment to 6.5 K/km, the equilibrium +# climate sensitivity (the warming per CO₂ doubling) comes out near 2.9 K — +# in the range of the classic calculations: Manabe and Wetherald obtained 2.36 K +# with their radiation scheme, and konrad's re-examination with RRTMG yields +# ≈ 2.1 K ([kluft2019](@citet)). The warming is roughly logarithmic in CO₂, +# growing slightly with each doubling as the warmer column holds more water vapor. +# Freezing the water vapor (fixed AH) roughly halves the warming, so the water-vapor +# feedback about doubles the response. The residual spread among the published +# sensitivities traces to the humidity profile, the adjustment scheme, and the ozone +# treatment; [kluft2021](@citet) dissects these dependencies, which you can reproduce +# by editing a few lines above. +# +# The warmed column shows the classic fingerprint of CO₂-driven change: +# tropospheric warming with stratospheric cooling. This pattern was +# predicted decades before it was observed. Fixed absolute humidity gives +# the same qualitative pattern but a weaker surface warming. + +fig2 = Figure(size = (500, 500)) +ax2 = Axis( + fig2[1, 1]; + xlabel = "temperature [K]", + ylabel = "pressure [hPa]", + yscale = log10, + yreversed = true, + limits = (nothing, nothing, nothing, 1000), + title = "RCE response to CO₂", +) +lines!(ax2, T_1x[:, 1], p_lay[:, 1] ./ 100; label = "1×CO₂ (RH)") +lines!(ax2, T_2x_rh[:, 1], p_lay[:, 1] ./ 100; linestyle = :dash, label = "2×CO₂ (RH)") +lines!(ax2, T_4x_rh[:, 1], p_lay[:, 1] ./ 100; linestyle = :dot, label = "4×CO₂ (RH)") +lines!(ax2, T_4x_ah[:, 1], p_lay[:, 1] ./ 100; linestyle = :dashdot, label = "4×CO₂ (AH)") +axislegend(ax2; position = :lt) +fig2 + +# ## Sensitivity to the critical lapse rate +# +# The assumed critical lapse rate ``Γ_c`` shapes the equilibrium. Re-balancing +# the reference column for lapse rates from a stable moist adiabat (3.0 K/km) to +# the dry adiabat (9.8 K/km) shows that a shallower lapse rate cools the surface +# but lifts the tropopause: the troposphere "stretches" vertically because the +# gentler gradient needs more depth to bridge the surface and stratospheric +# temperatures. All the profiles balance the same absorbed sunlight, so they +# emit the same outgoing longwave radiation to space. + +fig3 = Figure(size = (500, 500)) +ax3 = Axis( + fig3[1, 1]; + xlabel = "temperature [K]", + ylabel = "pressure [hPa]", + yscale = log10, + yreversed = true, + limits = (nothing, nothing, nothing, 1000), + title = "Sensitivity to the critical lapse rate", +) +for Γ_km in (9.8, 6.5, 3.0) + prof = RRTMGP.standard_atmosphere(FT; kind = :midlatitude_summer, nlay) + slv = RRTMGP.solve(prof; lookups = solver.lookups, setup...).solver + Ts = balanced_surface_temperature!(slv, FT(270), FT(292); Γ = Γ_km * 1e-3) + z_top = tropopause_height(slv, Ts; Γ = Γ_km * 1e-3) / 1000 + println("Γ = $(Γ_km) K/km: Tₛ = $(round(Ts; digits = 1)) K, tropopause ≈ $(round(z_top; digits = 1)) km") + T = Array(RRTMGP.layer_temperature(slv)) + lines!(ax3, T[:, 1], p_lay[:, 1] ./ 100; label = "Γ = $(Γ_km) K/km") +end +axislegend(ax3; position = :lt) +fig3 + +# ## Contributions of the individual absorbers +# +# Manabe and Wetherald's other classic diagnostic isolates each greenhouse gas. +# We remove water vapor, carbon dioxide, or ozone one at a time, find the +# column's balanced surface temperature, and compare against the reference +# (all-absorbers) profile computed above. Water vapor is removed by zeroing it +# and holding it there (`humidity = false`); ozone by zeroing its layer profile; +# CO₂ by setting its well-mixed value to zero before the state is built. + +function rce_without(absorber, T1, T2) + prof = RRTMGP.standard_atmosphere(FT; kind = :midlatitude_summer, nlay) + absorber === :co2 && (prof.well_mixed_vmr["co2"] = 0.0) + slv = RRTMGP.solve(prof; lookups = solver.lookups, setup...).solver + absorber === :o3 && (RRTMGP.volume_mixing_ratio(slv, "o3") .= 0) + absorber === :h2o && (RRTMGP.volume_mixing_ratio(slv, "h2o") .= 0) + Ts = balanced_surface_temperature!(slv, T1, T2; humidity = absorber !== :h2o) + return Ts, copy(Array(RRTMGP.layer_temperature(slv))) +end + +## brackets straddle each case's expected surface temperature; the secant +## converges from either side +Ts_no_h2o, T_no_h2o = rce_without(:h2o, FT(255), FT(272)) +Ts_no_co2, T_no_co2 = rce_without(:co2, FT(264), FT(278)) +Ts_no_o3, T_no_o3 = rce_without(:o3, FT(278), FT(288)) + +for (name, Ts) in ( + ("all absorbers", Ts_1x), + ("no H₂O", Ts_no_h2o), + ("no CO₂", Ts_no_co2), + ("no O₃", Ts_no_o3), +) + println("equilibrium Tₛ ($name): $(round(Ts; digits = 1)) K") +end + +# The decomposition reproduces the textbook ordering. Water vapor is the +# largest contributor: removing it drops the surface more than 20 K, below the +# freezing point. Carbon dioxide is the next largest. Ozone affects the surface +# less, but strongly cools the stratosphere it otherwise heats by absorbing +# solar ultraviolet; the mid-atmosphere temperature inversion disappears +# without it. + +fig4 = Figure(size = (500, 500)) +ax4 = Axis( + fig4[1, 1]; + xlabel = "temperature [K]", + ylabel = "pressure [hPa]", + yscale = log10, + yreversed = true, + limits = (nothing, nothing, nothing, 1000), + title = "Contribution of individual absorbers", +) +lines!(ax4, T_1x[:, 1], p_lay[:, 1] ./ 100; label = "all absorbers") +lines!(ax4, T_no_h2o[:, 1], p_lay[:, 1] ./ 100; label = "no H₂O") +lines!(ax4, T_no_co2[:, 1], p_lay[:, 1] ./ 100; label = "no CO₂") +lines!(ax4, T_no_o3[:, 1], p_lay[:, 1] ./ 100; label = "no O₃") +axislegend(ax4; position = :lt) +fig4 + +# ## Where to go from here +# +# - Vary the critical lapse rate or the relative-humidity profile and watch +# the sensitivity respond (cf. [kluft2021](@citet)). +# - Swap `:midlatitude_summer` for `:tropical` or `:subarctic_winter`. diff --git a/src/ArtifactPaths.jl b/src/ArtifactPaths.jl index 484f931a6..3699524ec 100644 --- a/src/ArtifactPaths.jl +++ b/src/ArtifactPaths.jl @@ -8,7 +8,7 @@ export get_lookup_filename, get_input_filename """ get_lookup_filename(optics_type::Symbol, λ::Symbol) -This function generates the file names for lookup table files, for a given optics type, for the +Generate the file names for lookup table files, for a given optics type, for the shortwave and longwave solvers. - `:gas`, `:cloud` and `:aerosol` optics types are supported for the longwave and shortwave solvers. @@ -45,7 +45,7 @@ end """ get_input_filename(problemtype::Symbol, λ::Symbol) -This function generates the file names for input files for tests for a given problem type and wavelength type. +Generate the file names for input files for tests, for a given problem type and wavelength type. `:gas`, and `:gas_clouds` and `:gas_clouds_aerosols` problem types are supported. `:lw` (longwave) and `:sw` (shortwave) wavelength types are supported. @@ -55,7 +55,7 @@ This file provides data for loading the `AtmosphericState` struct, the provides - The `:gas_clouds` option is used for the `all sky` test. - The `:gas_clouds_aerosols` option is used for the `all sky with aerosols` test. -While these are primarily intended for the tests, some of this input data is also used in `ClimaAtmos.jl` and is therefore provided here for user's convenience. +While these are primarily intended for the tests, some of this input data is also used in `ClimaAtmos.jl` and is therefore provided here for users' convenience. These artifacts are obtained from "Pincus, R., Mlawer, E. J., Delamere, J., Iacono, M. J., & Pernak, R. (2023). RRTMGP data (Version 1.7) [Data set]. https://github.com/earth-system-radiation/rrtmgp-data" """ diff --git a/src/api/aerosols.jl b/src/api/aerosols.jl index 471f0b64d..91cfb1361 100644 --- a/src/api/aerosols.jl +++ b/src/api/aerosols.jl @@ -3,7 +3,7 @@ ##### # # This is the single source of truth for the order of aerosol species in the -# `AerosolState` arrays (`aero_mass`, `aero_size`), i.e. the meaning of the +# `AerosolState` arrays (`aero_mass`, `aero_size`), i.e., the meaning of the # first index of those arrays. It MUST agree with: # # - the integer indices hard-coded by the aerosol optics kernel diff --git a/src/api/atmosphere_profile.jl b/src/api/atmosphere_profile.jl index 51636e630..acd33e3c3 100644 --- a/src/api/atmosphere_profile.jl +++ b/src/api/atmosphere_profile.jl @@ -11,8 +11,8 @@ consumed by [`solve`](@ref). All arrays are plain `Array{FT}` on the host; [`solve`](@ref) moves them to the compute device. # Fields -- `p_lay`, `t_lay`: layer-center pressures [Pa] and temperatures [K], `(nlay, ncol)`. -- `p_lev`, `t_lev`: level pressures [Pa] and temperatures [K], `(nlay + 1, ncol)`. +- `p_lay`, `p_lev`: layer-center and level pressures [Pa], `(nlay, ncol)` and `(nlay + 1, ncol)`. +- `t_lay`, `t_lev`: layer-center and level temperatures [K], `(nlay, ncol)` and `(nlay + 1, ncol)`. - `z_lev`: level altitudes [m], `(nlay + 1, ncol)`. - `t_sfc`: surface temperature [K], `(ncol,)`. - `lat`: latitude [degrees], `(ncol,)`. @@ -38,7 +38,9 @@ end # [m], tropospheric lapse rate [K/m], stratospheric inverse lapse rate [K/m], # surface water-vapor vmr, default latitude [degrees]. # The values are idealized climatological choices (inspired by the AFGL -# reference-atmosphere climatology, but analytic rather than tabulated). +# reference-atmosphere climatology of Anderson et al. 1986, AFGL-TR-86-0110, +# https://apps.dtic.mil/sti/citations/ADA175173, but analytic rather than +# tabulated). const _STANDARD_ATMOSPHERES = Dict( :tropical => (; t_sfc = 300.0, @@ -112,8 +114,7 @@ levels uniformly spaced in altitude from the surface to `z_top` [m]: `kind` selects the idealized climatology: `:tropical`, `:midlatitude_summer` (default), or `:subarctic_winter`. The profiles are -analytic and idealized — made for teaching and testing, not for reproducing -tabulated reference atmospheres. All `ncol` columns are identical. +analytic and idealized (made for teaching and testing). All `ncol` columns are identical. """ function standard_atmosphere( ::Type{FT}; diff --git a/src/api/getters.jl b/src/api/getters.jl index 044c2b2fc..f059e9b2d 100644 --- a/src/api/getters.jl +++ b/src/api/getters.jl @@ -6,8 +6,8 @@ # domain-masked `view` into a solver-owned buffer (physical dimension first, `ncol` last), so # a host reads and writes RRTMGP's buffers without touching the packed layout -- which is how # RRTMGP stays free of ClimaCore. The full contract (layout, boundary-layer masking, -# writability, and the two deliberate exceptions: the well-mixed `volume_mixing_ratio` scalar -# and the allocating `spectral_*_flux_net`) is documented in `docs/src/getters.md`. +# writability, and the deliberate exceptions: the well-mixed `volume_mixing_ratio` scalar +# and the allocating `heating_rate`) is documented in `docs/src/getters.md`. import ..AtmosphericStates: getview_p_lay, getview_t_lay, getview_rel_hum import ..VolumeMixingRatios @@ -113,7 +113,7 @@ function _require_spectral_lookups(s::RRTMGPSolver) lookups = _lookup_tables(s) isnothing(lookups.lookup_lw) && error( "spectral lookup tables are not present on this solver (gray radiation); \ - construct it with a spectral radiation method (e.g. `ClearSkyRadiation`).", + construct it with a spectral radiation method (e.g., `ClearSkyRadiation`).", ) return lookups end @@ -147,10 +147,10 @@ _solver_band_flux(ws) = Return the spectrally-resolved (per-band) up/down/net longwave or shortwave flux [W/m²] as a domain-masked `(nlev, ncol, n_bnd)` array. The solver must have been constructed with -`spectral_fluxes = true` (otherwise an informative error is raised); this is supported only -for two-stream, non-gray radiation. Band `b`'s slice `[:, :, b]` has the same layout as the -broadband fluxes, and summing over the band dimension recovers them. Use -[`lw_band_bounds`](@ref) / [`sw_band_bounds`](@ref) to identify each band's wavenumber range. +`spectral_fluxes = true` (supported for two-stream, non-gray radiation). Band `b`'s slice +`[:, :, b]` has the same layout as the broadband fluxes, and summing over the band dimension +recovers them. Use [`lw_band_bounds`](@ref) / [`sw_band_bounds`](@ref) to identify each band's +wavenumber range. The `up`/`dn`/`net` getters are views into the retained per-band buffers. """ @@ -171,7 +171,7 @@ spectral_sw_flux_net(s::RRTMGPSolver) = lw_band_bounds(s::RRTMGPSolver) Return the `(2, n_bnd)` lower/upper wavenumber edges [cm⁻¹] of the longwave bands, -identifying the spectral range of each band in the per-band fluxes (e.g. +identifying the spectral range of each band in the per-band fluxes (e.g., [`spectral_lw_flux_up`](@ref)). """ lw_band_bounds(s::RRTMGPSolver) = @@ -181,8 +181,9 @@ lw_band_bounds(s::RRTMGPSolver) = sw_band_bounds(s::RRTMGPSolver) Return the `(2, n_bnd)` lower/upper wavenumber edges [cm⁻¹] of the shortwave bands, -identifying the spectral range of each band in the per-band fluxes (e.g. -[`spectral_sw_flux_up`](@ref RRTMGP.spectral_lw_flux_up)). +identifying the spectral range of each band in +[the per-band fluxes](@ref RRTMGP.spectral_lw_flux_up) (`spectral_sw_flux_up` +and companions). """ sw_band_bounds(s::RRTMGPSolver) = _require_spectral_lookups(s).lookup_sw.band_data.bnd_lims_wn @@ -191,7 +192,7 @@ sw_band_bounds(s::RRTMGPSolver) = optical_thickness_parameter(s::RRTMGPSolver) For a gray-radiation solver, return the gray optical-thickness parameters (an -`AbstractGrayOpticalThickness`, e.g. `GrayOpticalThicknessOGorman2008`) the atmospheric +`AbstractGrayOpticalThickness`, e.g., `GrayOpticalThicknessOGorman2008`) the atmospheric state was built with; `nothing` for lookup-table (non-gray) radiation, which has no such parameter. """ @@ -201,7 +202,7 @@ optical_thickness_parameter(s::RRTMGPSolver) = isothermal_boundary_layer(s::RRTMGPSolver) = s.grid_params.isothermal_boundary_layer """ - aerosol_radius(s::RRTMGPSolver, name::String) + aerosol_radius(s::RRTMGPSolver, name::AbstractString) Return the aerosol radius for the given aerosol name. @@ -219,7 +220,7 @@ function aerosol_radius(s::RRTMGPSolver, name::AbstractString) end """ - aerosol_column_mass_density(s::RRTMGPSolver, name::String) + aerosol_column_mass_density(s::RRTMGPSolver, name::AbstractString) Return the aerosol column mass density [kg/m²] for the given aerosol name. @@ -286,9 +287,8 @@ Return the volume mixing ratio for gas `name`. `"h2o"` and `"o3"` vary by layer and column (a domain-masked `(nlay, ncol)` view); with the global-mean `VmrGM` storage every other (well-mixed) gas is a single scalar. -Unlike the array getters, a well-mixed scalar is returned as a **host `Number` -copied off the device** (not a device view), so each call triggers a device→host -synchronization on the GPU. Read these once at setup, not inside a timestep loop. +A well-mixed scalar is returned as a host `Number` copied off the device, so each call triggers +a device→host synchronization on the GPU. Read these during setup to maintain performance. Available names are: $(gas_names_sw_docs()) diff --git a/src/api/grid_adaptation.jl b/src/api/grid_adaptation.jl index 83cf6e3e6..3f874a1c2 100644 --- a/src/api/grid_adaptation.jl +++ b/src/api/grid_adaptation.jl @@ -256,7 +256,7 @@ place and returns it. This updates only the dry-air column amount (`compute_col_gas!`); it does **not** recompute relative humidity. Relative humidity is a host responsibility: a caller that -needs an up-to-date `layer_relative_humidity` (e.g. for RH-dependent aerosol optics) must +needs an up-to-date `layer_relative_humidity` (e.g., for RH-dependent aerosol optics) must call `compute_relative_humidity!` itself after updating temperature, pressure, or humidity. """ update_concentrations!( diff --git a/src/api/lookup_bundle.jl b/src/api/lookup_bundle.jl index bc6c8a5f4..1c36e0bd7 100644 --- a/src/api/lookup_bundle.jl +++ b/src/api/lookup_bundle.jl @@ -14,7 +14,7 @@ are `nothing`), the gas and aerosol name→index maps, and the band/gas counts. Built by [`lookup_tables`](@ref); pass a prebuilt bundle back to the `RRTMGPSolver` constructor via `lookups = ...` to avoid a second NetCDF read, and use [`save_lookup_tables`](@ref)/[`load_lookup_tables`](@ref) to cache it -on disk (e.g. for standalone use without NCDatasets). +on disk (e.g., for standalone use without NCDatasets). # Fields - `lookup_lw`, `lookup_sw`: gas-optics lookup tables (`nothing` for gray). @@ -88,11 +88,11 @@ end save_lookup_tables(path, lookups::LookupBundle) Serialize `lookups` to `path` (host-side copies of any device arrays), so a -later session can [`load_lookup_tables`](@ref) without NCDatasets — e.g. for -standalone/classroom use of the spectral methods, or to skip the NetCDF read. +later session can [`load_lookup_tables`](@ref) without NCDatasets (e.g., for +standalone/classroom use of the spectral methods, or to skip the NetCDF read). Uses Julia's `Serialization` stdlib: the file is tied to the Julia version and -package layout that wrote it and is a *cache*, not an interchange format — the -NetCDF artifacts remain the source of truth. Returns `path`. +package layout that wrote it and serves as a cache; the NetCDF artifacts remain +the source of truth. Returns `path`. """ function save_lookup_tables(path::AbstractString, lookups::LookupBundle) Serialization.serialize(path, Adapt.adapt(Array, lookups)) diff --git a/src/api/radiation_methods.jl b/src/api/radiation_methods.jl index 0e5a1be41..9d246e35b 100644 --- a/src/api/radiation_methods.jl +++ b/src/api/radiation_methods.jl @@ -55,7 +55,7 @@ end AllSkyRadiationWithClearSkyDiagnostics(aerosol_radiation::Bool, reset_rng_seed::Bool) Like [`AllSkyRadiation`](@ref), but each call also runs a parallel **cloud-free** (clear-sky) -solve. Those fluxes are exposed through the `clear_*` getters (e.g. `clear_net_flux`, +solve. Those fluxes are exposed through the `clear_*` getters (e.g., `clear_net_flux`, `clear_lw_flux_up`); differenced against the all-sky fluxes they give the cloud radiative effect. Requires the lookup tables (load `NCDatasets`). diff --git a/src/api/solver.jl b/src/api/solver.jl index d0ae2aa9c..3abe81d76 100644 --- a/src/api/solver.jl +++ b/src/api/solver.jl @@ -12,14 +12,13 @@ import Random """ lookup_tables(grid_params::RRTMGPGridParams, radiation_method::AbstractRRTMGPMethod) -Build the lookup tables for `radiation_method`, returning a -[`LookupBundle`](@ref) — the gas/cloud/aerosol lookup tables, the name→index -maps, and the band/gas counts. Build it once and pass it back to the -`RRTMGPSolver` constructor via `lookups = ...` to avoid a second NetCDF read, +Build the lookup tables for `radiation_method`, returning a [`LookupBundle`](@ref) containing +the gas/cloud/aerosol lookup tables, the name→index maps, and the band/gas counts. Build it +once and pass it back to the `RRTMGPSolver` constructor via `lookups = ...` to reuse the tables, or cache it on disk with [`save_lookup_tables`](@ref). -The spectral (non-gray) methods are provided by an extension: load NCDatasets -(`using NCDatasets`) first (or [`load_lookup_tables`](@ref) from a cache). +The spectral methods are provided by an extension: load NCDatasets (`using NCDatasets`) first +(or use [`load_lookup_tables`](@ref) from a cache). """ function lookup_tables end @@ -47,7 +46,7 @@ end Aggregate bundling everything needed to run an RRTMGP radiation calculation. It holds the radiation configuration, the atmospheric state, the longwave and shortwave solvers, the lookup tables, and the output flux buffers, and exposes -getter methods (e.g. `layer_temperature`, `net_flux`) to read and write its data. +getter methods (e.g., `layer_temperature`, `net_flux`) to read and write its data. Construct it with the `RRTMGPSolver` constructor and drive it with `update_fluxes!`. @@ -60,14 +59,12 @@ Construct it with the `RRTMGPSolver` constructor and drive it with - `sws`: shortwave RTE solver and its flux/scratch buffers. - `lws`: longwave RTE solver and its flux/scratch buffers. - `as`: the atmospheric state (solver inputs). -- `lookups`: the [`LookupBundle`](@ref) from `lookup_tables` (for gray - radiation the tables are `nothing` and only the band counts are carried). +- `lookups`: the [`LookupBundle`](@ref) from `lookup_tables` (for gray radiation only the band counts are carried). - `clear_flux_lw`: clear-sky longwave fluxes, or `nothing`. - `clear_flux_sw`: clear-sky shortwave fluxes, or `nothing`. - `center_z`: layer-center altitudes [m], or `nothing`. - `face_z`: level (face) altitudes [m], or `nothing`. -- `deep_atmosphere_inverse_scaling`: `(nlev, ncol)` factor multiplied directly into the - fluxes for deep-atmosphere geometric scaling, or `nothing`. +- `deep_atmosphere_inverse_scaling`: `(nlev, ncol)` factor multiplied into the fluxes for deep-atmosphere geometric scaling (the host supplies the multiplicative inverse of its metric scaling), or `nothing` (default) for the shallow-atmosphere approximation. - `net_flux_buffer`: combined longwave + shortwave net flux at each level [W/m²], the full boundary-extended `(nlev, ncol)` buffer (read the domain-masked view via `net_flux(s)`). - `clear_net_flux_buffer`: combined clear-sky net-flux buffer, or `nothing`. @@ -82,14 +79,9 @@ and shortwave boundary conditions, and the atmospheric state. Keyword arguments: interpolation; default `nothing`. - `interpolation`: scheme for filling level values from layer values; default `NoInterpolation`. - `bottom_extrapolation`: scheme for the bottom-level value; default `SameAsInterpolation`. -- `deep_atmosphere_inverse_scaling`: a `(nlev, ncol)` array multiplied directly into the - fluxes for deep-atmosphere geometric scaling — the host supplies the multiplicative - inverse of its metric scaling, hence the name — or `nothing` (default) for the - shallow-atmosphere approximation. -- `lookups`: prebuilt lookup tables to reuse (avoids a second NetCDF read), or `nothing` - (default) to build them internally. -- `spectral_fluxes`: if `true`, also retain per-band fluxes (two-stream, non-gray only); - default `false`. +- `deep_atmosphere_inverse_scaling`: a `(nlev, ncol)` array multiplied into the fluxes for deep-atmosphere geometric scaling (the host supplies the multiplicative inverse of its metric scaling), or `nothing` (default) for the shallow-atmosphere approximation. +- `lookups`: prebuilt lookup tables to reuse, or `nothing` (default) to build them internally. +- `spectral_fluxes`: if `true`, also retain per-band fluxes (two-stream, non-gray only); default `false`. """ struct RRTMGPSolver{ S, diff --git a/src/api/standalone.jl b/src/api/standalone.jl index 194cb45d2..f05423395 100644 --- a/src/api/standalone.jl +++ b/src/api/standalone.jl @@ -17,10 +17,9 @@ using ClimaComms The result of a standalone radiation solve ([`solve`](@ref) or [`solve_gray`](@ref)): the broadband fluxes, the heating rate, and the -underlying solver. The field names are stable — teaching material written -against them does not depend on the getter API. The flux fields are views into -the solver's buffers (they change if the solver is re-solved); `heating_rate` -is a freshly allocated array. +underlying solver. The field names are stable, so teaching material written +against them remains decoupled from the getter API. The flux fields are views into +the solver's buffers; `heating_rate` is a freshly allocated array. # Fields - `lw_up`, `lw_dn`, `lw_net`: longwave up/down/net flux [W/m²], `(nlev, ncol)`. @@ -191,10 +190,9 @@ end """ solve(profile::AtmosphereProfile; method = ClearSkyRadiation(false), kwargs...) -Solve the radiative-transfer problem for an [`AtmosphereProfile`](@ref) in a -single call and return a [`RadiationOutput`](@ref). Builds the atmospheric -state, boundary conditions, and an `RRTMGPSolver` internally, then runs -[`update_fluxes!`](@ref) — the one-line standalone path: +Solve the radiative-transfer problem for an [`AtmosphereProfile`](@ref) and return a +[`RadiationOutput`](@ref). Builds the atmospheric state, boundary conditions, and an +`RRTMGPSolver` internally, then runs [`update_fluxes!`](@ref): ```julia using RRTMGP, NCDatasets @@ -204,11 +202,9 @@ out.net # net flux at each level [W/m²] out.heating_rate # heating rate at each layer [K/s] ``` -`method` selects the radiation model: `ClearSkyRadiation(false)` (the default; -requires lookup tables, so load NCDatasets first or pass cached `lookups`) or -`GrayRadiation()` (no lookup tables — runs after a bare `using RRTMGP`; the -profile's mixing ratios are ignored). Cloud and aerosol methods are not -supported here — construct an [`RRTMGPSolver`](@ref) directly for those. +`method` selects the radiation model: `ClearSkyRadiation(false)` (the default; requires lookup +tables, so load NCDatasets first or pass cached `lookups`) or `GrayRadiation()` (runs after +`using RRTMGP`). For cloud and aerosol methods, construct an [`RRTMGPSolver`](@ref). # Keyword Arguments - `method = ClearSkyRadiation(false)`: the radiation method (see above). @@ -223,6 +219,13 @@ supported here — construct an [`RRTMGPSolver`](@ref) directly for those. - `surface_albedo = 0.2`: shortwave surface albedo [-]. - `optical_thickness = GrayOpticalThicknessOGorman2008(FT)`: gray optical-thickness parameters (`GrayRadiation` only). +- `interpolation = NoInterpolation()`: how [`update_fluxes!`](@ref) rebuilds + the level (cell-face) pressures and temperatures from the layer values on + each call (see [`AbstractInterpolation`](@ref)); the default uses the + profile's level values as given. Useful when a driver marches the layer + temperatures and wants the faces kept consistent automatically. +- `bottom_extrapolation = SameAsInterpolation()`: scheme for the bottom face + (see [`AbstractBottomExtrapolation`](@ref)). """ function solve( profile::AtmosphereProfile; @@ -237,6 +240,8 @@ function solve( optical_thickness = AtmosphericStates.GrayOpticalThicknessOGorman2008( eltype(profile.p_lay), ), + interpolation::AbstractInterpolation = NoInterpolation(), + bottom_extrapolation::AbstractBottomExtrapolation = SameAsInterpolation(), ) FT = eltype(profile.p_lay) (nlay, ncol) = size(profile.p_lay) @@ -321,8 +326,17 @@ function solve( alb_dif = fill!(DA{FT}(undef, lookups.nbnd_sw, ncol), FT(surface_albedo)) bcs_sw = BCs.SwBCs(cos_zen, toa, alb_dir, nothing, alb_dif) - solver = - RRTMGPSolver(grid_params, method, params, bcs_lw, bcs_sw, as; lookups) + solver = RRTMGPSolver( + grid_params, + method, + params, + bcs_lw, + bcs_sw, + as; + lookups, + interpolation, + bottom_extrapolation, + ) update_fluxes!(solver) return _radiation_output(solver) end diff --git a/src/api/update_fluxes.jl b/src/api/update_fluxes.jl index e3d191300..d216fe819 100644 --- a/src/api/update_fluxes.jl +++ b/src/api/update_fluxes.jl @@ -5,7 +5,7 @@ """ update_lw_fluxes!(s::RRTMGPSolver) -Updates the longwave fluxes. +Update the longwave fluxes. """ update_lw_fluxes!(s::RRTMGPSolver) = update_lw_fluxes!(s, _radiation_method(s)) @@ -62,7 +62,7 @@ end """ update_sw_fluxes!(s::RRTMGPSolver) -Updates the shortwave fluxes. +Update the shortwave fluxes. """ update_sw_fluxes!(s::RRTMGPSolver) = update_sw_fluxes!(s, _radiation_method(s)) @@ -185,12 +185,12 @@ end """ update_fluxes!(s::RRTMGPSolver, seedval = nothing) -Run the full radiation update: prepare the atmospheric state (interpolate levels, +Run the radiation update: prepare the atmospheric state (interpolate levels, add the isothermal boundary layer, clip pressures/temperatures/humidity to the range the optics support, and compute concentrations), solve the longwave and shortwave problems (applying `deep_atmosphere_inverse_scaling` if present), and -combine them into the net flux. Mutates `s` in place — its atmospheric state and -flux buffers — and returns `nothing` (read results via `net_flux(s)` and the +combine them into the net flux. Mutates `s` in place (its atmospheric state and +flux buffers) and returns `nothing` (read results via `net_flux(s)` and the other flux getters). When the radiation method requests reproducible seeding, `seedval` reseeds the RNG used for cloud sampling. @@ -226,11 +226,10 @@ vapor, and — for non-gray optics — temperatures outside the lookup tables' range), and compute the dry-air column amounts. Mutates the solver's atmospheric state in place and returns `nothing`. -[`update_fluxes!`](@ref) calls this before solving; call it directly to inspect +[`update_fluxes!`](@ref) calls this before solving; call it to inspect the prepared state (interpolated level values, column amounts) without running -the radiative transfer — the prepare/solve split familiar from other radiation -drivers. Relative humidity is *not* recomputed here (a host responsibility; see -[`update_concentrations!`](@ref)). +the radiative transfer (the prepare/solve split familiar from other radiation +drivers). Relative humidity is managed by the host (see [`update_concentrations!`](@ref)). """ function prepare_atmosphere!(s::RRTMGPSolver) as = _atmospheric_state(s) diff --git a/src/api/validation.jl b/src/api/validation.jl index b3562dbdf..452738672 100644 --- a/src/api/validation.jl +++ b/src/api/validation.jl @@ -8,10 +8,9 @@ Global toggle for input validation: when enabled with `RRTMGP.check_values[] = true`, [`update_fluxes!`](@ref) calls -[`validate_inputs`](@ref) before each solve. Off by default — the checks -reduce over device arrays, so they are intended for development and debugging, -not for production time-stepping (with the toggle off they cost one branch and -keep `update_fluxes!` allocation-free). +[`validate_inputs`](@ref) before each solve. Off by default; the checks +reduce over device arrays, so they are intended for development and debugging. +With the toggle off, `update_fluxes!` remains allocation-free. """ const check_values = Ref(false) diff --git a/src/optics/AngularDiscretizations.jl b/src/optics/AngularDiscretizations.jl index fcca5af97..715d31ed4 100644 --- a/src/optics/AngularDiscretizations.jl +++ b/src/optics/AngularDiscretizations.jl @@ -1,6 +1,5 @@ module AngularDiscretizations -using DocStringExtensions using Adapt using ClimaComms import ..RRTMGPGridParams @@ -8,20 +7,19 @@ import ..RRTMGPGridParams export AngularDiscretization """ - AngularDiscretization{FT,FTA1D} + AngularDiscretization{FT, FTA1D} Weights and angle secants for "Gauss-Jacobi-5" quadrature. -Values from Table 1, R. J. Hogan 2023, doi:10.1002/qj.4598 +Values from Table 1 of R. J. Hogan (2024), doi:10.1002/qj.4598. # Fields -$(DocStringExtensions.FIELDS) +- `n_gauss_angles`: Number of quadrature angles. +- `gauss_Ds`: Quadrature secants (secant of propagation angle). +- `gauss_wts`: Quadrature weights. """ struct AngularDiscretization{FT <: AbstractFloat, FTA1D <: AbstractArray{FT, 1}} - "number of quadrature angles" n_gauss_angles::Int - "quadrature secants / secant of propagation angle" gauss_Ds::FTA1D - "quadrature weights" gauss_wts::FTA1D end Adapt.@adapt_structure AngularDiscretization diff --git a/src/optics/AtmosphericStates.jl b/src/optics/AtmosphericStates.jl index e75aedc1a..d31bf3d63 100644 --- a/src/optics/AtmosphericStates.jl +++ b/src/optics/AtmosphericStates.jl @@ -1,6 +1,5 @@ module AtmosphericStates import ClimaComms -using DocStringExtensions using Adapt import ..Parameters as RP @@ -18,43 +17,64 @@ export AbstractAtmosphericState, GrayOpticalThicknessOGorman2008, AbstractGrayOpticalThickness +""" + AbstractAtmosphericState + +Abstract type for atmospheric states: [`AtmosphericState`](@ref) for the +spectral (correlated-``k``) methods and [`GrayAtmosphericState`](@ref) for +gray radiation. +""" abstract type AbstractAtmosphericState end include("gray_atmospheric_states.jl") +""" + AbstractCloudMask + +Abstract type for cloud-overlap sampling masks; see [`MaxRandomOverlap`](@ref). +""" abstract type AbstractCloudMask end +""" + MaxRandomOverlap + +Maximum-random cloud overlap for McICA sampling: clouds in adjacent layers +overlap maximally, and clouds separated by clear sky overlap randomly. Used +by `build_cloud_mask!` to sample the g-point cloud masks from the cloud +fraction. +""" struct MaxRandomOverlap <: AbstractCloudMask end Adapt.@adapt_structure MaxRandomOverlap """ - AtmosphericState{FTA1D,FTA1DN,FTA2D,CLDP,CLDM,VMR} <: + AtmosphericState{FTA1D, FTA1DN, FTA2D, D, VMR, CLD, AER} <: AbstractAtmosphericState -Atmospheric conditions, used to compute optical properties. +Atmospheric conditions, used to compute optical properties. # Fields -$(DocStringExtensions.FIELDS) +- `lon`: Longitude in degrees `(ncol)`; optional. +- `lat`: Latitude in degrees `(ncol)`; optional. +- `layerdata`: Storage for `col_dry` (column amount of dry air [molecules/cm²]), + layer pressures [Pa, mb], layer temperatures [K], and relative humidity; + `(4, nlay, ncol)`. +- `p_lev`: Level pressures [Pa, mb] `(nlay+1, ncol)`. +- `t_lev`: Level temperatures [K] `(nlay+1, ncol)`. +- `t_sfc`: Surface temperatures [K] `(ncol)`. +- `vmr`: Volume mixing ratios of all relevant gases. +- `cloud_state`: Cloud state. +- `aerosol_state`: Aerosol state. """ struct AtmosphericState{FTA1D, FTA1DN, FTA2D, D, VMR, CLD, AER} <: AbstractAtmosphericState - "longitude, in degrees (`ncol`), optional" lon::FTA1DN - "latitude, in degrees (`ncol`), optional" lat::FTA1DN - "storage for col_dry [`molecules per cm^2 of dry air`], play `[Pa, mb]`, tlay `[K]`, rel_hum; `(4, nlay, ncol)`" layerdata::D - "Level pressures `[Pa, mb]`; `(nlay+1,ncol)`" p_lev::FTA2D - "Level temperatures `[K]`; `(nlay+1,ncol)`" t_lev::FTA2D - "Surface temperatures `[K]`; `(ncol)`" t_sfc::FTA1D - "volume mixing ratio of all relevant gases" vmr::VMR - "cloud state" cloud_state::CLD - "aerosol state" aerosol_state::AER end Adapt.@adapt_structure AtmosphericState @@ -98,29 +118,33 @@ Adapt.@adapt_structure AtmosphericState CloudState{CD, CF, CC, CM, CMT} Cloud state, used to compute optical properties. + +# Fields +- `cld_r_eff_liq`: Effective radius of cloud liquid particles. +- `cld_r_eff_ice`: Effective radius of cloud ice particles. +- `cld_path_liq`: Cloud water path. +- `cld_path_ice`: Cloud ice path. +- `cld_frac`: Cloud fraction. +- `cld_cover_sw`: McICA effective shortwave cloud cover in `[0, 1]`; `(ncol,)`, or + `nothing` if unused. +- `cld_cover_lw`: McICA effective longwave cloud cover in `[0, 1]`; `(ncol,)`, or + `nothing` if unused. +- `mask_lw`: Cloud mask (longwave); `true` if clouds are present. +- `mask_sw`: Cloud mask (shortwave); `true` if clouds are present. +- `mask_type`: Cloud mask type. +- `ice_rgh`: Ice roughness; 1 = none, 2 = medium, 3 = rough. """ struct CloudState{CD, CF, CC, CM, CMT} - "effective radius of cloud liquid particles" cld_r_eff_liq::CD - "effective radius of cloud ice particles" cld_r_eff_ice::CD - "cloud water path" cld_path_liq::CD - "cloud ice path" cld_path_ice::CD - "cloud fraction" cld_frac::CF - "McICA effective SW cloud cover `[0, 1]` `(ncol,)`; `nothing` if unused" cld_cover_sw::CC - "McICA effective LW cloud cover `[0, 1]` `(ncol,)`; `nothing` if unused" cld_cover_lw::CC - "cloud mask (longwave), = true if clouds are present" mask_lw::CM - "cloud mask (shortwave), = true if clouds are present" mask_sw::CM - "cloud mask type" mask_type::CMT - "ice roughness, 1 = none, 2 = medium, 3 = rough" ice_rgh::Int end Adapt.@adapt_structure CloudState @@ -158,17 +182,19 @@ end AerosolState{A, B, D} Aerosol state, used to compute optical properties. + +# Fields +- `aod_sw_ext`: Shortwave aerosol optical depth. +- `aod_sw_sca`: Shortwave aerosol optical depth (scattering component). +- `aero_mask`: Aerosol mask; `true` if any aerosol is present. +- `aero_size`: Aerosol size [microns]. +- `aero_mass`: Aerosol column mass [kg/m²]. """ struct AerosolState{A, B, D} - "shortwave aerosol optical depth" aod_sw_ext::A - "shortwave aerosol optical depth (scattering component)" aod_sw_sca::A - "aerosol mask, = true if any aerosol is present" aero_mask::B - "aerosol size (microns)" aero_size::D - "aerosol mass column (kg/m2)" aero_mass::D end Adapt.@adapt_structure AerosolState diff --git a/src/optics/BCs.jl b/src/optics/BCs.jl index 768947159..182ab9f07 100644 --- a/src/optics/BCs.jl +++ b/src/optics/BCs.jl @@ -1,23 +1,21 @@ module BCs -using DocStringExtensions using Adapt import ..RRTMGPGridParams export LwBCs, SwBCs """ - LwBCs{FT,FTA1D,FTA2DN} + LwBCs{FT, FTA2D, FTA2DN} -Longwave boundary conditions +Longwave boundary conditions. # Fields -$(DocStringExtensions.FIELDS) +- `sfc_emis`: Surface emissivity `(nbnd, ncol)`. +- `inc_flux`: Incident flux at the top of the atmosphere [W/m²] `(ncol, ngpt)`. """ struct LwBCs{FT, FTA2D, FTA2DN} - "Surface emissivity `[W/m²]` `(nbnd, ncol)`" sfc_emis::FTA2D - "incident flux at top of atmosphere `[W/m²]` `(ncol, ngpt)`" inc_flux::FTA2DN end LwBCs(sfc_emis, inc_flux) = @@ -28,21 +26,22 @@ LwBCs(sfc_emis, inc_flux) = Adapt.@adapt_structure LwBCs """ - SwBCs{FT,FTA1D} -Shortwave boundary conditions + SwBCs{FT, FTA1D, FTA1DN, FTA2D} + +Shortwave boundary conditions. + # Fields -$(DocStringExtensions.FIELDS) +- `cos_zenith`: Cosine of the solar zenith angle `(ncol)`. +- `toa_flux`: Top-of-atmosphere flux `(ncol)`. +- `sfc_alb_direct`: Surface albedo for specular (direct) radiation `(nbnd, ncol)`. +- `inc_flux_diffuse`: Incident diffuse flux at the top of the domain [W/m²] `(ncol, ngpt)`. +- `sfc_alb_diffuse`: Surface albedo for diffuse radiation `(nbnd, ncol)`. """ struct SwBCs{FT, FTA1D, FTA1DN, FTA2D} - "cosine of zenith angle `(ncol)`" cos_zenith::FTA1D - "top of atmosphere flux `(ncol)`" toa_flux::FTA1D - "surface albedo for specular (direct) radiation `(nbnd, ncol)`" sfc_alb_direct::FTA2D - "incident diffuse flux at top of domain `[W/m2]` `(ncol, ngpt)`" inc_flux_diffuse::FTA1DN - "surface albedo for diffuse radiation `(nbnd, ncol)`" sfc_alb_diffuse::FTA2D end SwBCs(cos_zenith, toa_flux, sfc_alb_direct, inc_flux_diffuse, sfc_alb_diffuse) = diff --git a/src/optics/Fluxes.jl b/src/optics/Fluxes.jl index 6cdddad83..ea6e738bd 100644 --- a/src/optics/Fluxes.jl +++ b/src/optics/Fluxes.jl @@ -1,7 +1,6 @@ module Fluxes using Adapt -using DocStringExtensions using ClimaComms import ..RRTMGPGridParams @@ -15,24 +14,29 @@ export AbstractFlux, apply_metric_scaling!, compute_net_flux! +""" + AbstractFlux + +Abstract type for broadband radiative-flux containers: [`FluxLW`](@ref) and +[`FluxSW`](@ref). +""" abstract type AbstractFlux{FT <: AbstractFloat, FTA2D <: AbstractArray{FT, 2}} end """ - FluxLW{FT,FTA2D} + FluxLW{FT, FTA2D} Upward, downward and net longwave fluxes at each level. # Fields -$(DocStringExtensions.FIELDS) +- `flux_up`: Upward flux [W/m²] `(nlev, ncol)`. +- `flux_dn`: Downward flux [W/m²] `(nlev, ncol)`. +- `flux_net`: Net flux [W/m²] `(nlev, ncol)`. """ struct FluxLW{FT <: AbstractFloat, FTA2D <: AbstractArray{FT, 2}} <: AbstractFlux{FT, FTA2D} - "upward flux `[W/m²]` `(nlev,ncol)`" flux_up::FTA2D - "downward flux `[W/m²]` `(nlev,ncol)`" flux_dn::FTA2D - "net flux `[W/m²]` `(nlev,ncol)`" flux_net::FTA2D end FluxLW(flux_up, flux_dn, flux_net) = @@ -50,22 +54,21 @@ function FluxLW(grid_params::RRTMGPGridParams) end """ - FluxSW{FT,FTA2D} + FluxSW{FT, FTA2D} Upward, downward and net shortwave fluxes at each level. # Fields -$(DocStringExtensions.FIELDS) +- `flux_up`: Upward flux [W/m²] `(nlev, ncol)`. +- `flux_dn`: Downward flux [W/m²] `(nlev, ncol)`. +- `flux_net`: Net flux [W/m²] `(nlev, ncol)`. +- `flux_dn_dir`: Direct downward flux [W/m²] `(nlev, ncol)`. """ struct FluxSW{FT <: AbstractFloat, FTA2D <: AbstractArray{FT, 2}} <: AbstractFlux{FT, FTA2D} - "upward flux `[W/m²]` `(nlev,ncol)`" flux_up::FTA2D - "downward flux `[W/m²]` `(nlev,ncol)`" flux_dn::FTA2D - "net flux `[W/m²]` `(nlev,ncol)`" flux_net::FTA2D - "direct downward flux `[W/m²]` `(nlev,ncol)`" flux_dn_dir::FTA2D end FluxSW(flux_up, flux_dn, flux_net, flux_dn_dir) = @@ -152,7 +155,7 @@ end compute_net_flux!(flux::AbstractFlux, gcol, nlev) compute_net_flux!(flux::AbstractFlux, gcol) -Computes net flux for column `gcol` across `nlev` levels: +Compute the net flux for column `gcol` across `nlev` levels: `flux.flux_net` = `flux.flux_up` - `flux.flux_dn` """ diff --git a/src/optics/GrayAtmosphere.jl b/src/optics/GrayAtmosphere.jl index 4f61aab0c..188c23850 100644 --- a/src/optics/GrayAtmosphere.jl +++ b/src/optics/GrayAtmosphere.jl @@ -25,7 +25,7 @@ export update_profile_lw!, compute_gray_heating_rate! ncol, ) -Updates t_lay and t_lev based on heating rate. +Update `t_lay` and `t_lev` based on the heating rate. """ function update_profile_lw!( device::ClimaComms.AbstractCPUDevice, @@ -118,7 +118,7 @@ end """ compute_gray_heating_rate!( - context, + device, hr_lay, p_lev, ncol, @@ -128,7 +128,7 @@ end grav_, ) -Computes the heating rate for the gray radiation simulation. +Compute the heating rate for the gray radiation simulation. """ function compute_gray_heating_rate!( device::ClimaComms.AbstractCPUDevice, diff --git a/src/optics/LookUpTables.jl b/src/optics/LookUpTables.jl index 0581794dd..4f054ee1b 100644 --- a/src/optics/LookUpTables.jl +++ b/src/optics/LookUpTables.jl @@ -1,6 +1,5 @@ module LookUpTables -using DocStringExtensions using Adapt export AbstractLookUp, @@ -24,24 +23,26 @@ abstract type AbstractLookUp end LookUpMinor{O, G, K} Lookup table for computing optical properties of minor gases. + +# Fields +- `bnd_st`: Starting index to `idx_gases_minor_lower/upper` for each band `(n_bnd + 1)`. +- `gpt_st`: Starting index in `kminor_lower/upper` for each g-point `(n_gpt + 1)`. +- `gasdata`: Indices for minor gases contributing to absorption in the lower/upper + atmosphere, indices for scaling gases, whether the minor gas scales with density, and + whether the minor gas scales by complement; `(4, n_min_absrb_lower/upper)`. +- `kminor`: Minor absorption coefficient in the lower/upper atmosphere + `(n_η, n_t_ref, n_contrib_lower/upper)`. """ struct LookUpMinor{O, G, K} - "starting index to `idx_gases_minor_lower/upper` for each band `(n_bnd + 1)`" bnd_st::O - "starting index in `kminor_lower/upper` for each g-point `(n_gpt + 1)`" gpt_st::O - "contains indices for minor gases contributing to absorption in the lower/upper atmosphere, - indices for scaling gases, - minor gas scales with density, - minor gas scales by complement `(4, n_min_absrb_lower/upper)`" gasdata::G - "minor absorption coefficient in lower/upper atmosphere `(n_η, n_t_ref, n_contrib_lower/upper)`" kminor::K end Adapt.@adapt_structure LookUpMinor # number of minor absorbors in the lower/upper atmosphere -@inline get_n_min_absrb(lkp::LookUpMinor) = size(lkp.idx_gases, 2) +@inline get_n_min_absrb(lkp::LookUpMinor) = size(lkp.gasdata, 2) # number of minor contributors in the lower/upper atmosphere @inline get_n_contrib(lkp::LookUpMinor) = size(lkp.kminor, 3) # get bounds for each g-point @@ -57,14 +58,18 @@ Adapt.@adapt_structure LookUpMinor """ ReferencePoints{RD1, RD3} -Log of reference pressures, reference temperatures, and volume mixing ratios used by the lookup table +Log of reference pressures, reference temperatures, and volume mixing ratios used by the +lookup table. + +# Fields +- `ln_p_ref`: Log of reference pressures used by the lookup table `(n_p_ref)`. +- `t_ref`: Reference temperatures used by the lookup table `(n_t_ref)`. +- `vmr_ref`: Reference volume mixing ratios used by the lookup table + `(2, n_gases, n_t_ref)`. """ struct ReferencePoints{RD1, RD3} - "log of reference pressures used by the lookup table `(n_p_ref)`" ln_p_ref::RD1 - "reference temperatures used by the lookup table `(n_t_ref)`" t_ref::RD1 - "reference volume mixing ratios used by the lookup table `(2, n_gases, n_t_ref)`" vmr_ref::RD3 end Adapt.@adapt_structure ReferencePoints @@ -72,14 +77,16 @@ Adapt.@adapt_structure ReferencePoints """ LookUpPlanck{PD1, PD2, PD4} -Look up data for Planck source calculations. +Lookup data for Planck source calculations. + +# Fields +- `planck_fraction`: Planck fraction `(n_η, n_p_ref, n_t_ref, n_gpt)`. +- `t_planck`: Reference temperatures for Planck source calculations `(n_t_plnk)`. +- `tot_planck`: Total Planck source for each band `(n_t_plnk, n_bnd)`. """ struct LookUpPlanck{PD1, PD2, PD4} - "Planck fraction `(n_η, n_p_ref, n_t_ref, n_gpt)`" planck_fraction::PD4 - "reference temperatures for Planck source calculations `(n_t_plnk)`" t_planck::PD1 - "total Planck source for each band `(n_t_plnk, n_bnd)`" tot_planck::PD2 end Adapt.@adapt_structure LookUpPlanck @@ -88,13 +95,15 @@ Adapt.@adapt_structure LookUpPlanck BandData{BNDI1, BNDI2, BNDD2} Band/g-point data for the lookup table. + +# Fields +- `major_gpt2bnd`: Map from g-point to band. +- `bnd_lims_gpt`: Starting and ending g-point for each band `(2, n_bnd)`. +- `bnd_lims_wn`: Starting and ending wavenumber for each band `(2, n_bnd)`. """ struct BandData{BNDI1, BNDI2, BNDD2} - "map from `g-point` to band" major_gpt2bnd::BNDI1 - "starting and ending `g-point` for each band `(2, n_bnd)`" bnd_lims_gpt::BNDI2 - "starting and ending wavenumber for each band `(2, n_bnd)`" bnd_lims_wn::BNDD2 end Adapt.@adapt_structure BandData @@ -105,32 +114,31 @@ Adapt.@adapt_structure BandData Longwave lookup tables, used to compute optical properties. # Fields -$(DocStringExtensions.FIELDS) +- `idx_h2o`: Vmr array index for H₂O. +- `p_ref_tropo`: Reference pressure separating the upper and lower atmosphere. +- `p_ref_min`: Minimum pressure supported by RRTMGP lookup tables. +- `t_ref_min`: Minimum temperature supported by RRTMGP lookup tables (first reference temperature). +- `t_ref_max`: Maximum temperature supported by RRTMGP lookup tables (last reference temperature). +- `key_species`: Major absorbing species in each band `(2, n_atmos_layers, n_bnd)`. +- `kmajor`: Major absorption coefficient `(n_η, n_p_ref + 1, n_t_ref, n_gpt)`. +- `planck`: Lookup data for Planck source calculations. +- `band_data`: Band data. +- `ref_points`: Reference temperatures, pressures and volume mixing ratios. +- `minor_lower`: Lookup data for minor gases in the lower atmosphere. +- `minor_upper`: Lookup data for minor gases in the upper atmosphere. """ struct LookUpLW{FT, IA3D, FTA4D, BND, P, R, LMNR} <: AbstractLookUp - "vmr array index for h2o" idx_h2o::Int - "Reference pressure separating upper and lower atmosphere" p_ref_tropo::FT - "minimum pressure supported by RRTMGP lookup tables" p_ref_min::FT - "minimum temperature supported by RRTMGP lookup tables (first reference temperature)" t_ref_min::FT - "maximum temperature supported by RRTMGP lookup tables (last reference temperature)" t_ref_max::FT - "major absorbing species in each band `(2, n_atmos_layers, n_bnd)`" key_species::IA3D - "major absorption coefficient `(n_η, n_p_ref + 1, n_t_ref, n_gpt)`" kmajor::FTA4D - "lookup data for Planck source calculations" planck::P - "band data" band_data::BND - "reference temperatures, pressures and volume mixing ratios" ref_points::R - "lookup data for minor gases in the lower atmosphere" minor_lower::LMNR - "lookup data for minor gases in the upper atmosphere" minor_upper::LMNR end Adapt.@adapt_structure LookUpLW @@ -156,38 +164,39 @@ Adapt.@adapt_structure LookUpLW Shortwave lookup tables, used to compute optical properties. # Fields -$(DocStringExtensions.FIELDS) +- `idx_h2o`: Vmr array index for H₂O. +- `p_ref_tropo`: Reference pressure separating the upper and lower atmosphere. +- `p_ref_min`: Minimum pressure supported by RRTMGP lookup tables. +- `t_ref_min`: Minimum temperature supported by RRTMGP lookup tables (first reference temperature). +- `t_ref_max`: Maximum temperature supported by RRTMGP lookup tables (last reference temperature). +- `solar_src_tot`: Total solar irradiation. +- `key_species`: Major absorbing species in each band `(2, n_atmos_layers, n_bnd)`. +- `kmajor`: Major absorption coefficient `(n_η, n_p_ref + 1, n_t_ref, n_gpt)`. +- `band_data`: Band data. +- `ref_points`: Reference temperatures, pressures and volume mixing ratios. +- `rayl_lower`: Rayleigh absorption coefficient for the lower atmosphere + `(n_η, n_t_ref, n_gpt)`. +- `rayl_upper`: Rayleigh absorption coefficient for the upper atmosphere + `(n_η, n_t_ref, n_gpt)`. +- `solar_src_scaled`: Relative solar source contribution from each g-point `(n_gpt)`. +- `minor_lower`: Lookup data for minor gases in the lower atmosphere. +- `minor_upper`: Lookup data for minor gases in the upper atmosphere. """ struct LookUpSW{FT, IA3D, FTA1D, FTA3D, FTA4D, BND, R, LMNR} <: AbstractLookUp - "vmr array index for h2o" idx_h2o::Int - "Reference pressure separating upper and lower atmosphere" p_ref_tropo::FT - "minimum pressure supported by RRTMGP lookup tables" p_ref_min::FT - "minimum temperature supported by RRTMGP lookup tables (first reference temperature)" t_ref_min::FT - "maximum temperature supported by RRTMGP lookup tables (last reference temperature)" t_ref_max::FT - "total solar irradiation" solar_src_tot::FT - "major absorbing species in each band `(2, n_atmos_layers, n_bnd)`" key_species::IA3D - "major absorption coefficient `(n_η, n_p_ref + 1, n_t_ref, n_gpt)`" kmajor::FTA4D - "band data" band_data::BND - "reference temperatures, pressures and volume mixing ratios" ref_points::R - "Rayleigh absorption coefficient for lower atmosphere `(n_η, n_t_ref, n_gpt)`" rayl_lower::FTA3D - "Rayleigh absorption coefficient for upper atmosphere `(n_η, n_t_ref, n_gpt)`" rayl_upper::FTA3D - "relative solar source contribution from each `g-point` `(n_gpt)`" solar_src_scaled::FTA1D - "lookup data for minor gases in the lower atmosphere" minor_lower::LMNR - "lookup data for minor gases in the upper atmosphere" minor_upper::LMNR end Adapt.@adapt_structure LookUpSW @@ -211,25 +220,27 @@ Adapt.@adapt_structure LookUpSW Lookup table for cloud optics. -This struct stores the lookup tables for determing extinction coeffient, +This struct stores the lookup tables for determining the extinction coefficient, single-scattering albedo, and asymmetry parameter g as a function of effective radius. -We compute the optical depth tau (=exintinction coeff * condensed water path) +We compute the optical depth tau (= extinction coefficient * condensed water path) and the products tau*ssa and tau*ssa*g for liquid and ice cloud separately. These are used to determine the optical properties of ice and water cloud together. # Fields -$(DocStringExtensions.FIELDS) +- `dims`: Dimensions `nband`, `nrghice`, `nsize_liq`, `nsize_ice`, `pair`. +- `bounds`: Particle size lower and upper bounds and factor for LUT interpolation for + liquid and ice particles. +- `liqdata`: Liquid extinction coefficient, single scattering albedo and asymmetry + parameter `(3*nsize_liq, nbnd)`. +- `icedata`: Ice extinction coefficient, single scattering albedo and asymmetry + parameter `(3*nsize_ice, nbnd, nrghice)`. +- `bnd_lims_wn`: Beginning and ending wavenumber for each band [cm⁻¹] `(2, nband)`. """ struct LookUpCld{D, B, L, I, W} <: AbstractLookUp - "`nband`, `nrghice`, `nsize_liq`, `nsize_ice`, `pair`" dims::D - "particle size lower and upper bounds and factor for LUT interpolation for liquid and ice particles" bounds::B - "liquid extinction coefficient, single scattering albedo and symmetry paramter `(3*nsize_liq, nbnd)`" liqdata::L - "ice extinction coefficient, single scattering albedo and symmetry paramter `(3*nsize_ice, nbnd, nrghice)`" icedata::I - "beginning and ending wavenumber for each band (`2, nband`) cm⁻¹" bnd_lims_wn::W end Adapt.@adapt_structure LookUpCld @@ -244,7 +255,7 @@ Adapt.@adapt_structure LookUpCld # number of ice particle sizes (cloud lookup table dimension) @inline get_nsize_ice(lkp::LookUpCld) = @inbounds lkp.dims[4] # pair = 2 (cloud lookup table dimension) -@inline get_pair(::LookUpCld) = @inbounds lkp.dims[5] +@inline get_pair(lkp::LookUpCld) = @inbounds lkp.dims[5] @inline function getview_liqdata(lkp::LookUpCld, ibnd) n = get_nsize_liq(lkp) @@ -275,42 +286,41 @@ end """ LookUpAerosolMerra{D, D1, D2, D3, D4, W} <: AbstractLookUp -Merra lookup table for aersols. +MERRA lookup table for aerosols. -This struct stores the lookup tables for determing extinction coeffient, +This struct stores the lookup tables for determining the extinction coefficient, single-scattering albedo, and asymmetry parameter g as a function of aerosol particle size, relative humidity and band. Data is provided for dust, sea salt, -sulfate, black carbon (hydrophobic and hydrophilic) and organic carbon +sulfate, black carbon (hydrophobic and hydrophilic) and organic carbon (hydrophobic and hydrophilic). - # Fields -$(DocStringExtensions.FIELDS) +- `dims`: Dimensions `nband`, `nval`, `nbin`, `nrh`, `pair`. +- `size_bin_limits`: Beginning and ending limit for each MERRA aerosol size bin + [microns]. +- `rh_levels`: Relative humidity levels for MERRA hydrophilic aerosols. +- `dust`: Dust `(nval, nbin, nband)`. +- `sea_salt`: Sea salt `(nval, nrh, nbin, nband)`. +- `sulfate`: Sulfate `(nval, nrh, nband)`. +- `black_carbon_rh`: Black carbon, hydrophilic `(nval, nrh, nband)`. +- `black_carbon`: Black carbon, hydrophobic `(nval, nband)`. +- `organic_carbon_rh`: Organic carbon, hydrophilic `(nval, nrh, nband)`. +- `organic_carbon`: Organic carbon, hydrophobic `(nval, nband)`. +- `bnd_lims_wn`: Beginning and ending wavenumber for each band [cm⁻¹] `(2, nband)`. +- `iband_550nm`: Band number index corresponding to 550 nm. """ struct LookUpAerosolMerra{D, D1, D2, D3, D4, W} <: AbstractLookUp - "`nband`, `nval`, `nbin`, `nrh`, `pair`" dims::D - "beginning and ending limit for each MERRA aerosol size bin (microns)" size_bin_limits::D2 - "relative humidity levels for MERRA hydrophilic aerosols" rh_levels::D1 - "dust `(nval, nbin, nband)`" dust::D3 - "sea salt `(nval, nrh, nbin, nband)`" sea_salt::D4 - "sulfate `(nval, nrh, nband)`" sulfate::D3 - "black carbon - hydrophilic `(nval, nhr, nband)`" black_carbon_rh::D3 - "black carbon - hydrophobic `(nval, nband)`" black_carbon::D2 - "organic carbon - hydrophilic `(nval, nhr, nband)`" organic_carbon_rh::D3 - "organic carbon - hydrophobic `(nval, nband)`" organic_carbon::D2 - "beginning and ending wavenumber for each band (`2, nband`) cm⁻¹" bnd_lims_wn::W - "Band number index corresponding to 550 nm" iband_550nm::Int end Adapt.@adapt_structure LookUpAerosolMerra diff --git a/src/optics/Optics.jl b/src/optics/Optics.jl index 24bf27e54..9037009bd 100644 --- a/src/optics/Optics.jl +++ b/src/optics/Optics.jl @@ -1,6 +1,5 @@ module Optics -using DocStringExtensions using Adapt using Random import ClimaComms diff --git a/src/optics/Sources.jl b/src/optics/Sources.jl index 0531b0ce3..6090af81f 100644 --- a/src/optics/Sources.jl +++ b/src/optics/Sources.jl @@ -1,7 +1,6 @@ module Sources using Adapt -using DocStringExtensions using ClimaComms import ..Parameters as RP @@ -17,23 +16,22 @@ Abstract longwave source for no-scattering and two stream longwave solvers. abstract type AbstractSourceLW end """ - SourceLWNoScat{FT,FTA1D,FTA2D} <: AbstractSourceLW + SourceLWNoScat{S, D, PS} <: AbstractSourceLW -Longwave sources: computed at layer center, layer edges, -and at the surface for no scattering calculations +Longwave sources: computed at layer center, layer edges, +and at the surface for no-scattering calculations. # Fields - -$(DocStringExtensions.FIELDS) +- `param_set`: Parameter set. +- `sfc_source`: Surface source [W/m²] `(ncol)`. +- `lay_source`: Planck source at layer average temperature [W/m²] `(nlay, ncol)`. +- `lev_source`: Planck level source at layer edges [W/m²] `(nlay+1, ncol)`; includes + spectral weighting that accounts for the state-dependent frequency to g-space mapping. """ struct SourceLWNoScat{S, D, PS} <: AbstractSourceLW - "Parameter set" param_set::PS - "Surface source `[W/m2]` `(ncol)`" sfc_source::S - "Planck source at layer average temperature `[W/m2]` `(nlay, ncol)`" lay_source::D - "Planck level source at layer edges `[W/m2]` `(nlay+1, ncol)`, includes spectral weighting that accounts for state-dependent frequency to g-space mapping" lev_source::D end Adapt.@adapt_structure SourceLWNoScat @@ -62,25 +60,23 @@ end """ SourceLW2Str{S, D, V, PS} <: AbstractSourceLW -Longwave sources: computed at layer center, layer edges, -and at the surface for 2-stream calculations +Longwave sources: computed at layer center, layer edges, +and at the surface for 2-stream calculations. # Fields - -$(DocStringExtensions.FIELDS) +- `param_set`: Parameter set. +- `sfc_source`: Surface source [W/m²] `(ncol)`. +- `leveldata`: Storage for level source, albedo and src `(3, nlay+1, ncol)`. +- `lev_source`: Level source [W/m²] `(nlay+1, ncol)`; used in 2-stream calculations. +- `albedo`: Temporary storage array `(nlay+1, ncol)`; used in 2-stream calculations. +- `src`: Temporary storage array `(nlay+1, ncol)`; used in 2-stream calculations. """ struct SourceLW2Str{S, D, V, PS} <: AbstractSourceLW - "Parameter set" param_set::PS - "Surface source `[W/m2]` `(ncol)`" sfc_source::S - "storage for level source, albedo and src `(3, nlay+1, ncol)`" leveldata::D - "level source `[W/m2]` `(nlay+1, ncol)`, used in 2 stream calculations" lev_source::V - "temporary storage array, used in 2 stream calculations `(nlay + 1, ncol)`" albedo::V - "temporary storage array, used in 2 stream calculations `(nlay + 1, ncol)`" src::V end @@ -132,23 +128,21 @@ end """ - SourceSW2Str{S,D,V} + SourceSW2Str{S, D, V} -Shortwave sources: computed at layer center, layer edges, -and at the surface for 2-stream calculations +Shortwave sources: computed at layer center, layer edges, +and at the surface for 2-stream calculations. # Fields - -$(DocStringExtensions.FIELDS) +- `sfc_source`: Surface source `(ncol)`. +- `leveldata`: Storage for albedo and src `(2, nlay+1, ncol)`. +- `albedo`: Albedo `(nlay+1, ncol)`. +- `src`: Temporary storage array `(nlay+1, ncol)`; used in 2-stream calculations. """ struct SourceSW2Str{S, D, V} - "surface source `(ncol)`" sfc_source::S - "storage for albedo and src `(2, nlay + 1, ncol)`" leveldata::D - "albedo `(nlay + 1, ncol)`" albedo::V - "temporary storage array, used in 2 stream calculations `(nlay + 1, ncol)`" src::V end diff --git a/src/optics/VolumeMixingRatios.jl b/src/optics/VolumeMixingRatios.jl index 9d3f0ab99..c23e79477 100644 --- a/src/optics/VolumeMixingRatios.jl +++ b/src/optics/VolumeMixingRatios.jl @@ -1,5 +1,4 @@ module VolumeMixingRatios -using DocStringExtensions using Adapt import ..RRTMGPGridParams @@ -7,28 +6,38 @@ export AbstractVmr, Vmr, VmrGM, get_vmr """ AbstractVmr{FT} + +Abstract type for storage strategies for gas volume mixing ratios. + +Concrete subtypes: +- [`VmrGM`](@ref): H₂O and O₃ vary spatially, other gases are well-mixed scalars. +- [`Vmr`](@ref): every gas varies by layer and column. + +Subtypes are accessed through the interface method [`get_vmr`](@ref), which returns the +volume mixing ratio of a given gas for a given layer and column. """ abstract type AbstractVmr{FT <: AbstractFloat} end + """ - VmrGM{FT,FTA1D,FTA2D} <: AbstractVmr{FT} + VmrGM{FT, FTA1D, FTA2D} <: AbstractVmr{FT} Volume mixing ratios for various gases in the atmosphere. This struct can be used -when only H₂O and O₃ concentrations vary spatially and a global mean is used +when only H₂O and O₃ concentrations vary spatially and a global mean is used for all other gases. # Fields -$(DocStringExtensions.FIELDS) +- `vmr_h2o`: Volume mixing ratio of H₂O. +- `vmr_o3`: Volume mixing ratio of O₃. +- `vmr`: Volume mixing ratios of all other gases, which are independent of location and + column. """ struct VmrGM{ FT <: AbstractFloat, FTA1D <: AbstractArray{FT, 1}, FTA2D <: AbstractArray{FT, 2}, } <: AbstractVmr{FT} - "volume mixing ratio of H₂O" vmr_h2o::FTA2D - "volume mixing ratio of Ozone" vmr_o3::FTA2D - "volume mixing ratio of all other gases, which are independent of location and column" vmr::FTA1D end VmrGM(vmr_h2o, vmr_o3, vmr) = @@ -55,17 +64,16 @@ function VolumeMixingRatioGlobalMean( end """ - Vmr{FT,FTA3D} <: AbstractVmr{FT} + Vmr{FT, FTA3D} <: AbstractVmr{FT} Volume mixing ratios for various gases in the atmosphere. This struct can be used when concentrations vary spatially for all gases. # Fields -$(DocStringExtensions.FIELDS) +- `vmr`: Volume mixing ratios of all gases as a function of layer and column. """ struct Vmr{FT <: AbstractFloat, FTA3D <: AbstractArray{FT, 3}} <: AbstractVmr{FT} - "volume mixing ratio of all gases as a function of location and column" vmr::FTA3D end Vmr(vmr) = Vmr{eltype(vmr), typeof(vmr)}(vmr) diff --git a/src/optics/aerosol_optics.jl b/src/optics/aerosol_optics.jl index 2ba8b7e5d..02176b030 100644 --- a/src/optics/aerosol_optics.jl +++ b/src/optics/aerosol_optics.jl @@ -12,8 +12,8 @@ iband_550nm ) -This function computes the `OneScalar` aerosol optics properties and adds them -to the exising `OneScalar` optics properties. +Compute the `OneScalar` aerosol optics properties and add them +to the existing `OneScalar` optics properties. """ @inline function add_aerosol_optics_1scalar!( τ, @@ -71,8 +71,8 @@ end delta_scaling = false, ) -This function computes the `TwoStream` aerosol optics properties and adds them -to the exising `TwoStream` optics properties: +Compute the `TwoStream` aerosol optics properties and add them +to the existing `TwoStream` optics properties: - `aod_ext` total aerosol optical depth - `aod_sca` scattering component of aerosol optical depth diff --git a/src/optics/cloud_optics.jl b/src/optics/cloud_optics.jl index b5bbbaaba..46e3b9199 100644 --- a/src/optics/cloud_optics.jl +++ b/src/optics/cloud_optics.jl @@ -64,8 +64,8 @@ end ibnd; delta_scaling = false, ) -This function computes the TwoStream clouds optics properties and adds them -to the TwoStream gas optics properties. +Compute the `TwoStream` cloud optics properties and add them +to the `TwoStream` gas optics properties. """ @inline function add_cloud_optics_2stream!( τ, @@ -149,7 +149,7 @@ end cld_path_liq, ) -This function computes the `TwoStream` cloud liquid properties using the `LookUpTable` method. +Compute the `TwoStream` cloud liquid properties using the `LookUpTable` method. """ @inline function compute_lookup_cld_liq_props( nsize_liq, @@ -202,7 +202,7 @@ end cld_path_ice, ) -This function computes the `TwoStream` cloud ice properties using the `LookUpTable` method. +Compute the `TwoStream` cloud ice properties using the `LookUpTable` method. """ @inline function compute_lookup_cld_ice_props( nsize_ice, @@ -246,7 +246,7 @@ end """ build_cloud_mask!(cld_mask, cld_frac, ::MaxRandomOverlap) -Builds McICA-sampled cloud mask from cloud fraction data for maximum-random overlap +Build a McICA-sampled cloud mask from cloud fraction data for maximum-random overlap Reference: https://github.com/AER-RC/RRTMG_SW/ diff --git a/src/optics/column_amounts.jl b/src/optics/column_amounts.jl index d9933a7e8..69fd53540 100644 --- a/src/optics/column_amounts.jl +++ b/src/optics/column_amounts.jl @@ -1,6 +1,6 @@ """ compute_col_gas!( - context, + device, p_lev, col_dry, param_set, @@ -9,8 +9,7 @@ max_threads = Int(256), ) -This function computes the column amounts of dry or moist air. - +Compute the column amounts of dry or moist air. """ function compute_col_gas!( device::ClimaComms.AbstractCPUDevice, @@ -47,7 +46,7 @@ end vmr_h2o::Union{AbstractArray{FT, 2}, Nothing} = nothing, ) where {FT} -This function computes the relative humidity. +Compute the relative humidity. """ function compute_relative_humidity!( diff --git a/src/optics/compute_optical_props.jl b/src/optics/compute_optical_props.jl index d973b82fd..67d233e0b 100644 --- a/src/optics/compute_optical_props.jl +++ b/src/optics/compute_optical_props.jl @@ -10,7 +10,7 @@ lkp_aero::Union{LookUpAerosolMerra, Nothing} = nothing, ) where {FT<:AbstractFloat} -Computes optical properties for the longwave problem. +Compute optical properties for the longwave problem. """ @inline function compute_optical_props!( op::OneScalar, @@ -244,10 +244,11 @@ end gcol::Int, igpt::Int, lkp::LookUpSW, - lkp_cld::Union{LookUpCld,Nothing} = nothing, + lkp_cld::Union{LookUpCld, Nothing} = nothing, + lkp_aero::Union{LookUpAerosolMerra, Nothing} = nothing, ) -Computes optical properties for the shortwave problem. +Compute optical properties for the shortwave problem. """ @inline function compute_optical_props!( op::OneScalar, diff --git a/src/optics/gas_optics.jl b/src/optics/gas_optics.jl index ba9654daa..bf6757bf8 100644 --- a/src/optics/gas_optics.jl +++ b/src/optics/gas_optics.jl @@ -4,14 +4,14 @@ p_lev, mol_m_dry, mol_m_h2o, - avogadro + avogadro, helmert1, - vmr_h2o + vmr_h2o, lat, glay, gcol, ) -This function computes the column amounts of dry or moist air. +Compute the column amounts of dry or moist air. """ function compute_col_gas_kernel!( col_gas::AbstractArray{FT, 2}, @@ -53,7 +53,7 @@ compute_relative_humidity_kernel!( gcol::Int, ) where {FT} -This function computes the relative humidity. +Compute the relative humidity. """ function compute_relative_humidity_kernel!( rh::AbstractArray{FT, 2}, @@ -80,9 +80,9 @@ function compute_relative_humidity_kernel!( end """ - compute_interp_frac_temp(Δ_t_ref, n_t_ref, t_ref, t_lay) + compute_interp_frac_temp(t_ref, t_lay) -compute interpolation fraction for temperature. +Compute interpolation fraction for temperature. """ @inline function compute_interp_frac_temp(t_ref, t_lay) @inbounds Δ_t_ref = t_ref[2] - t_ref[1] @@ -93,13 +93,7 @@ compute interpolation fraction for temperature. end """ - compute_interp_frac_press( - lkp::AbstractLookUp, - p_lay, - tropo, - glay, - gcol, - ) + compute_interp_frac_press(ln_p_ref, p_lay, tropo) Compute interpolation fraction for pressure. """ @@ -122,16 +116,15 @@ end """ compute_interp_frac_η( - lkp::AbstractLookUp, - vmr, + n_η, + ig, + vmr_ref, + (vmr1, vmr2), tropo, jtemp, - ibnd, - glay, - gcol, ) -Compute interpolation fraction for binary species parameter. +Compute interpolation fraction for the binary species parameter ``η``. """ @inline function compute_interp_frac_η( n_η, @@ -247,7 +240,7 @@ end p_lay, t_lay, glay, gcol, - ) where {FT<:AbstractFloat} + ) Compute optical thickness, single scattering albedo, and asymmetry parameter. """ @@ -328,7 +321,7 @@ end """ compute_τ_minor( - lkp::AbstractLookUp, + lkp_minor::LookUpMinor, vmr, vmr_h2o::FT, col_dry, @@ -420,7 +413,7 @@ end """ compute_τ_rayleigh( - lkp::LookUpSW, + rayleigh_coeff::AbstractArray{FT, 2}, col_dry::FT, vmr_h2o::FT, jtemp::Int, diff --git a/src/optics/gray_atmospheric_states.jl b/src/optics/gray_atmospheric_states.jl index e7a81b37e..11121addb 100644 --- a/src/optics/gray_atmospheric_states.jl +++ b/src/optics/gray_atmospheric_states.jl @@ -1,71 +1,103 @@ +""" + AbstractGrayOpticalThickness + +Abstract type for the gray-radiation optical-thickness parameterizations: +[`GrayOpticalThicknessSchneider2004`](@ref) and +[`GrayOpticalThicknessOGorman2008`](@ref). +""" abstract type AbstractGrayOpticalThickness end """ GrayOpticalThicknessSchneider2004{FT} <: AbstractGrayOpticalThickness + GrayOpticalThicknessSchneider2004(FT; α = 3.5, te = 300, tt = 200, Δt = 60) -Optical thickness function parameters from Schneider 2004, J. Atmos. Sci. (2004) 61 (12): 1317–1340. -DOI: https://doi.org/10.1175/1520-0469(2004)061<1317:TTATTS>2.0.CO;2 +Parameters of the semi-grey optical-thickness profile of [schneider2004](@cite). +The vertical longwave optical depth scales with pressure as ``\\widehat{\\tau}(p) = +d_0(\\phi)\\,(p/p_0)^\\alpha``, so the exponent `α` controls how the absorber is +distributed with height (`α = 1` for a well-mixed absorber, larger `α` for one +concentrated near the surface). The optical thickness at the surface, +``d_0(\\phi)``, is set by the latitude-dependent radiative-equilibrium +temperature built from `te`, `tt`, and `Δt`. # Fields -$(DocStringExtensions.FIELDS) +- `α`: Pressure exponent of the optical-depth profile. +- `te`: Global-mean surface temperature [K]. +- `tt`: Temperature at the top of the atmosphere [K]. +- `Δt`: Equator-to-pole surface temperature difference [K]. """ struct GrayOpticalThicknessSchneider2004{FT} <: AbstractGrayOpticalThickness - "scaling height ratio" α::FT - "global mean surface temperature (K)" te::FT - "temp at top of atmosphere (K)" tt::FT - "Δt (K)" Δt::FT end Adapt.@adapt_structure GrayOpticalThicknessSchneider2004 -GrayOpticalThicknessSchneider2004(::Type{FT}) where {FT} = - GrayOpticalThicknessSchneider2004{FT}(FT(3.5), FT(300), FT(200), FT(60)) +GrayOpticalThicknessSchneider2004( + ::Type{FT}; + α = 3.5, + te = 300, + tt = 200, + Δt = 60, +) where {FT} = + GrayOpticalThicknessSchneider2004{FT}(FT(α), FT(te), FT(tt), FT(Δt)) """ GrayOpticalThicknessOGorman2008{FT} <: AbstractGrayOpticalThickness + GrayOpticalThicknessOGorman2008(FT; α = 1.0, fₗ = 0.2, τₑ = 7.2, τₚ = 1.8, τ₀ = 0.22) -Optical thickness function parameters from O'Gorman 2008, Journal of Climate Vol 21, Page(s): 3815–3832. -DOI: https://doi.org/10.1175/2007JCLI2065.1 +Parameters of the grey optical-thickness profile of [frierson2006](@cite) and +[ogorman2008](@cite). The +vertical longwave optical depth blends a linear and a quartic dependence on the +normalized pressure ``\\sigma = p/p_0``, ``\\widehat{\\tau} \\propto f_\\ell\\,\\sigma + +(1 - f_\\ell)\\,\\sigma^4``, so that it stays finite aloft while thickening toward +the surface, with an equator-to-pole contrast set by `τₑ` and `τₚ`. The shortwave +optical depth scales as ``\\sigma^2`` with amplitude `τ₀`. This is the default +optical-thickness model for [`solve_gray`](@ref RRTMGP.solve_gray). # Fields -$(DocStringExtensions.FIELDS) +- `α`: Overall scaling factor for the longwave optical depth. +- `fₗ`: Weight of the linear (versus quartic) pressure dependence. +- `τₑ`: Longwave optical thickness at the equator. +- `τₚ`: Longwave optical thickness at the poles. +- `τ₀`: Shortwave optical thickness amplitude. """ struct GrayOpticalThicknessOGorman2008{FT} <: AbstractGrayOpticalThickness - "scaling factor" α::FT - "fₗ" fₗ::FT - "longwave optical thickness at equator" τₑ::FT - "longwave optical thickness at poles" τₚ::FT - "optical thickness for shortwave radiation" τ₀::FT end Adapt.@adapt_structure GrayOpticalThicknessOGorman2008 -GrayOpticalThicknessOGorman2008(::Type{FT}) where {FT <: AbstractFloat} = - GrayOpticalThicknessOGorman2008{FT}( - FT(1.0), - FT(0.2), - FT(7.2), - FT(1.8), - FT(0.22), - ) +GrayOpticalThicknessOGorman2008( + ::Type{FT}; + α = 1.0, + fₗ = 0.2, + τₑ = 7.2, + τₚ = 1.8, + τ₀ = 0.22, +) where {FT <: AbstractFloat} = + GrayOpticalThicknessOGorman2008{FT}(FT(α), FT(fₗ), FT(τₑ), FT(τₚ), FT(τ₀)) """ - GrayAtmosphericState{FT,FTA1D,FTA2D} <: - AbstractAtmosphericState{FT,FTA1D} + GrayAtmosphericState{FT, FTA1D, FTA2D, OTP} <: AbstractAtmosphericState -Atmospheric conditions, used to compute optical properties with the gray atmosphere approximation +Atmospheric conditions, used to compute optical properties with the gray atmosphere +approximation. # Fields -$(DocStringExtensions.FIELDS) +- `lat`: Latitude in degrees for each column `(ncol,)`. +- `p_lay`: Layer pressures [Pa, mb] `(nlay, ncol)`. +- `p_lev`: Level pressures [Pa, mb] `(nlay+1, ncol)`. +- `t_lay`: Layer temperatures [K] `(nlay, ncol)`. +- `t_lev`: Level temperatures [K] `(nlay+1, ncol)`. +- `z_lev`: Level altitudes [m] `(nlay+1, ncol)`. +- `t_sfc`: Surface temperatures [K] `(ncol)`. +- `otp`: Optical thickness parameters. """ struct GrayAtmosphericState{ FT <: AbstractFloat, @@ -73,21 +105,13 @@ struct GrayAtmosphericState{ FTA2D <: AbstractArray{FT, 2}, OTP <: AbstractGrayOpticalThickness, } <: AbstractAtmosphericState - "latitude, in degrees, for each column; `(ncol,)`" lat::FTA1D - "Layer pressures `[Pa, mb]`; `(nlay, ncol)`" p_lay::FTA2D - "Level pressures `[Pa, mb]`; `(nlay+1, ncol)`" p_lev::FTA2D - "Layer temperatures `[K]`; `(nlay, ncol)`" t_lay::FTA2D - "Level temperatures `[K]`; `(nlay+1,ncol)`" t_lev::FTA2D - "Level Altitude `[m]`; `(nlay+1,ncol)`" z_lev::FTA2D - "Surface temperatures `[K]`; `(ncol)`" t_sfc::FTA1D - "optical thickness parameters" otp::OTP end Adapt.@adapt_structure GrayAtmosphericState @@ -108,11 +132,25 @@ Adapt.@adapt_structure GrayAtmosphericState @inline getview_t_lay(as::GrayAtmosphericState, gcol) = @inbounds view(as.t_lay, :, gcol) -# This functions sets up a model temperature and pressure -# distributions for a gray atmosphere based on a pressure grid -# see Schneider 2004, J. Atmos. Sci. (2004) 61 (12): 1317–1340. -# https://doi.org/10.1175/1520-0469(2004)061<1317:TTATTS>2.0.CO;2 +""" + setup_gray_as_pr_grid( + context::ClimaComms.AbstractCommsContext, + nlay::Int, + lat, + p0, + pe, + otp::AbstractGrayOpticalThickness, + param_set, + ::Type{DA}, + step = "linear", + ) +Build a [`GrayAtmosphericState`](@ref) on a pressure grid from surface +pressure `p0` to top-of-atmosphere pressure `pe`, with the analytic +temperature profile of Schneider (2004), J. Atmos. Sci. 61 (12), 1317-1340 +(doi: [10.1175/1520-0469(2004)061<1317:TTATTS>2.0.CO;2](https://doi.org/10.1175/1520-0469(2004)061<1317:TTATTS>2.0.CO;2)). +One column is built per element of `lat`, with arrays of type `DA`. +""" function setup_gray_as_pr_grid( context::ClimaComms.AbstractCommsContext, nlay::Int, diff --git a/src/optics/gray_optics_kernels.jl b/src/optics/gray_optics_kernels.jl index 014bafade..860191ce1 100644 --- a/src/optics/gray_optics_kernels.jl +++ b/src/optics/gray_optics_kernels.jl @@ -9,7 +9,7 @@ gcol::Int, ) -Computes optical properties for the longwave gray radiation problem. +Compute optical properties for the longwave gray radiation problem. """ function compute_optical_props!( op::OneScalar, @@ -122,7 +122,7 @@ end gcol::Int, ) -Computes optical properties for the shortwave gray radiation problem. +Compute optical properties for the shortwave gray radiation problem. """ function compute_optical_props!( op::AbstractOpticalProps, @@ -162,8 +162,9 @@ end lat, ) where {FT<:AbstractFloat} -This functions calculates the optical thickness based on pressure -and lapse rate for a gray atmosphere. +Calculate the optical thickness from pressure and lapse rate for a gray +atmosphere. + See Schneider 2004, J. Atmos. Sci. (2004) 61 (12): 1317–1340. DOI: https://doi.org/10.1175/1520-0469(2004)061<1317:TTATTS>2.0.CO;2 """ @@ -199,10 +200,12 @@ compute_gray_optical_thickness_sw( lat, ) where {FT} -This functions calculates the optical thickness based on pressure -and lapse rate for a gray atmosphere. -See O'Gorman 2008, Journal of Climate Vol 21, Page(s): 3815–3832. -DOI: https://doi.org/10.1175/2007JCLI2065.1 +Calculate the optical thickness from pressure and lapse rate for a gray +atmosphere. + +See Frierson, Held & Zurita-Gotor (2006), J. Atmos. Sci. 63, 2548-2566 +(DOI: https://doi.org/10.1175/JAS3753.1) and O'Gorman & Schneider (2008), +J. Climate 21, 3815-3832 (DOI: https://doi.org/10.1175/2007JCLI2065.1). """ function compute_gray_optical_thickness_lw( params::GrayOpticalThicknessOGorman2008{FT}, @@ -230,8 +233,8 @@ end rest..., ) where {FT} -This functions calculates the optical thickness based on pressure -for a gray atmosphere. +Calculate the optical thickness from pressure for a gray atmosphere. + See O'Gorman 2008, Journal of Climate Vol 21, Page(s): 3815–3832. DOI: https://doi.org/10.1175/2007JCLI2065.1 """ diff --git a/src/optics/optical_props.jl b/src/optics/optical_props.jl index 4f3f8bf75..c3a3d1dde 100644 --- a/src/optics/optical_props.jl +++ b/src/optics/optical_props.jl @@ -1,16 +1,15 @@ """ - OneScalar{FTA2D,AD} <: AbstractOpticalProps + OneScalar{D, V} <: AbstractOpticalProps Single scalar approximation for optical depth, used in -calculations accounting for extinction and emission +calculations accounting for extinction and emission. # Fields -$(DocStringExtensions.FIELDS) +- `layerdata`: Storage for optical thickness. +- `τ`: View into optical depth. """ struct OneScalar{D, V} <: AbstractOpticalProps - "storage for optical thickness" layerdata::D - "view into optical depth" τ::V end @@ -32,22 +31,22 @@ end """ - TwoStream{FTA2D} <: AbstractOpticalProps + TwoStream{D, V} <: AbstractOpticalProps Two stream approximation for optical properties, used in -calculations accounting for extinction and emission +calculations accounting for extinction and emission. # Fields -$(DocStringExtensions.FIELDS) +- `layerdata`: Storage for optical depth, single scattering albedo and asymmetry + parameter. +- `τ`: View into optical depth. +- `ssa`: View into single scattering albedo. +- `g`: View into asymmetry parameter. """ struct TwoStream{D, V} <: AbstractOpticalProps - "storage for optical depth, single scattering albedo and asymmerty parameter" layerdata::D - "view into optical depth" τ::V - "view into single scattering albedo" ssa::V - "view into asymmetry parameter" g::V end diff --git a/src/optics/optics_utils.jl b/src/optics/optics_utils.jl index cf399a5bb..37d23adf6 100644 --- a/src/optics/optics_utils.jl +++ b/src/optics/optics_utils.jl @@ -2,8 +2,7 @@ """ loc_lower(xi, Δx, n, x) -Return the location of the left (lower) point of the interval in which `xi` is located in vector `x`. -This function assumes `Δx` is uniform. +Return the location of the left (lower) point of the interval in which `xi` is located in vector `x`, assuming uniform `Δx`. """ @inline function loc_lower(xi, Δx, n, x) @inbounds xi ≤ x[1] && return 1 @@ -47,7 +46,7 @@ end """ function interp1d_loc_factor(xi::FT, x::AbstractArray{FT, 1}) where {FT <: AbstractFloat} -Computes the weights for linear interpolation. This works with non-uniformly spaced `x`. +Compute the weights for linear interpolation. This works with non-uniformly spaced `x`. """ @inline function interp1d_loc_factor( xi::FT, @@ -111,7 +110,7 @@ end coeff::FTA3D, s1::FT = FT(1), s2::FT = FT(1), - ) where {FT<:AbstractFloat,FTA4D<:AbstractArray{FT,4}} + ) where {FT<:AbstractFloat,FTA3D<:AbstractArray{FT,3}} Perform 3D linear interpolation. @@ -181,11 +180,11 @@ where, ) end """ - increment_2stream!(τ1::FT, ssa1::FT, g1::FT, τ2::FT, ssa2::FT, g2::FT) where {FT} + increment_2stream(τ1::FT, ssa1::FT, g1::FT, τ2::FT, ssa2::FT, g2::FT) where {FT} -Increment TwoStream optical properties `τ1`, `ssa1` and `g1` +Increment TwoStream optical properties `τ1`, `ssa1` and `g1` with `τ2`, `ssa2` and `g2`. Here `τ` is the optical thickness, -`ssa` is the single-scattering albedo, and `g` is the symmetry parameter. +`ssa` is the single-scattering albedo, and `g` is the asymmetry parameter. """ function increment_2stream( τ1::FT, diff --git a/src/rte/RTE.jl b/src/rte/RTE.jl index 17c26e87c..92aaa2066 100644 --- a/src/rte/RTE.jl +++ b/src/rte/RTE.jl @@ -3,7 +3,6 @@ using Adapt import ClimaComms using ..AngularDiscretizations using ..AtmosphericStates -using DocStringExtensions using ..Sources using ..Fluxes using ..Optics @@ -22,7 +21,13 @@ properties, sources, boundary conditions and fluxes configurations for a non-scattering longwave simulation. # Fields -$(DocStringExtensions.FIELDS) +- `context`: ClimaComms context. +- `op`: Optical properties. +- `src`: Longwave source functions. +- `bcs`: Longwave boundary conditions. +- `fluxb`: Temporary storage for bandwise calculations. +- `flux`: Longwave fluxes. +- `angle_disc`: Angular discretization. """ struct NoScatLWRTE{ C, @@ -33,19 +38,12 @@ struct NoScatLWRTE{ FXL <: FluxLW, AD, } - "ClimaComms context" context::C - "optical properties" op::OP - "longwave source functions" src::SL - "longwave boundary conditions" bcs::BC - "temporary storage for bandwise calculations" fluxb::FXBL - "longwave fluxes" flux::FXL - "Angular discretization" angle_disc::AD end Adapt.@adapt_structure NoScatLWRTE @@ -69,7 +67,13 @@ properties, sources, boundary conditions and fluxes configurations for a `2-stream` longwave simulation. # Fields -$(DocStringExtensions.FIELDS) +- `context`: ClimaComms context. +- `op`: Optical properties. +- `src`: Longwave source functions. +- `bcs`: Longwave boundary conditions. +- `fluxb`: Temporary storage for bandwise calculations. +- `flux`: Longwave fluxes. +- `band_flux`: Optional per-band longwave fluxes `(nlev, ncol, n_bnd)`, or `nothing`. """ struct TwoStreamLWRTE{ C, @@ -80,19 +84,12 @@ struct TwoStreamLWRTE{ FXL <: FluxLW, FXBND, } - "ClimaComms context" context::C - "optical properties" op::OP - "longwave source functions" src::SL - "longwave boundary conditions" bcs::BC - "temporary storage for bandwise calculations" fluxb::FXBL - "longwave fluxes" flux::FXL - "optional per-band longwave fluxes `(nlev, ncol, n_bnd)`, or `nothing`" band_flux::FXBND end Adapt.@adapt_structure TwoStreamLWRTE @@ -123,18 +120,17 @@ properties, sources, boundary conditions and fluxes configurations for a non-scattering shortwave simulation. # Fields -$(DocStringExtensions.FIELDS) +- `context`: ClimaComms context. +- `op`: Optical properties. +- `bcs`: Shortwave boundary conditions. +- `fluxb`: Temporary storage for bandwise calculations. +- `flux`: Shortwave fluxes. """ struct NoScatSWRTE{C, OP <: OneScalar, BC <: SwBCs, FXBS, FXS <: FluxSW} - "ClimaComms context" context::C - "optical properties" op::OP - "shortwave boundary conditions" bcs::BC - "temporary storage for bandwise calculations" fluxb::FXBS - "shortwave fluxes" flux::FXS end Adapt.@adapt_structure NoScatSWRTE @@ -169,7 +165,13 @@ properties, sources, boundary conditions and fluxes configurations for a `2-stream` shortwave simulation. # Fields -$(DocStringExtensions.FIELDS) +- `context`: ClimaComms context. +- `op`: Optical properties. +- `src`: Shortwave source functions. +- `bcs`: Shortwave boundary conditions. +- `fluxb`: Temporary storage for bandwise calculations. +- `flux`: Shortwave fluxes. +- `band_flux`: Optional per-band shortwave fluxes `(nlev, ncol, n_bnd)`, or `nothing`. """ struct TwoStreamSWRTE{ C, @@ -180,19 +182,12 @@ struct TwoStreamSWRTE{ FXS <: FluxSW, FXBND, } - "ClimaComms context" context::C - "optical properties" op::OP - "shortwave source functions" src::SS - "shortwave boundary conditions" bcs::BC - "temporary storage for bandwise calculations" fluxb::FXBS - "shortwave fluxes" flux::FXS - "optional per-band shortwave fluxes `(nlev, ncol, n_bnd)`, or `nothing`" band_flux::FXBND end Adapt.@adapt_structure TwoStreamSWRTE diff --git a/src/rte/RTESolver.jl b/src/rte/RTESolver.jl index 210595d65..358622e30 100644 --- a/src/rte/RTESolver.jl +++ b/src/rte/RTESolver.jl @@ -24,7 +24,7 @@ include("shortwave_2stream.jl") """ - solve_lw!((; context, flux, src, bcs, op)::NoScatLWRTE, as::GrayAtmosphericState, metric_scaling::M = nothing) + solve_lw!((; context, flux, src, bcs, op, angle_disc)::NoScatLWRTE, as::GrayAtmosphericState, metric_scaling::M = nothing) Non-scattering RTE solver for the longwave problem, using gray optics. Additionally, takes an optional argument `metric_scaling` which scales the resultant fluxes by the @@ -57,7 +57,7 @@ end """ solve_lw!( - (; context, fluxb, flux, src, bcs, op)::NoScatLWRTE, + (; context, fluxb, flux, src, bcs, op, angle_disc)::NoScatLWRTE, as::AtmosphericState, lookup_lw::LookUpLW, lookup_lw_cld::Union{LookUpCld, Nothing}, @@ -95,7 +95,7 @@ end """ solve_lw!( - (; context, fluxb, flux, src, bcs, op)::TwoStreamLWRTE, + (; context, fluxb, flux, band_flux, src, bcs, op)::TwoStreamLWRTE, as::AtmosphericState, lookup_lw::LookUpLW, lookup_lw_cld::Union{LookUpCld, Nothing}, @@ -188,7 +188,7 @@ end """ solve_sw!( - (; context, fluxb, flux, src, bcs, op)::TwoStreamSWRTE, + (; context, fluxb, flux, band_flux, src, bcs, op)::TwoStreamSWRTE, as::AtmosphericState, lookup_sw::LookUpSW, lookup_sw_cld::Union{LookUpCld, Nothing}, diff --git a/src/rte/longwave_2stream.jl b/src/rte/longwave_2stream.jl index db5f9c4c1..c67c89a36 100644 --- a/src/rte/longwave_2stream.jl +++ b/src/rte/longwave_2stream.jl @@ -138,9 +138,9 @@ end """ lw_2stream_coeffs(τ::FT, ssa::FT, g::FT, lev_src_bot::FT, lev_src_top::FT) where {FT} -This function combines RRTMGP-specific sources at levels, -computes layer reflectance, transmittance, and -total source function at levels using linear-in-tau approximation. +Combine RRTMGP-specific sources at levels and compute the layer reflectance, +transmittance, and total source function at levels, using the linear-in-tau +approximation. """ @inline function lw_2stream_coeffs(τ, ssa, g, lev_src_bot, lev_src_top) FT = eltype(τ) diff --git a/src/rte/shortwave_2stream.jl b/src/rte/shortwave_2stream.jl index 74ad7679a..b55898f69 100644 --- a/src/rte/shortwave_2stream.jl +++ b/src/rte/shortwave_2stream.jl @@ -175,7 +175,7 @@ end """ sw_2stream_coeffs(τ::FT, ssa::FT, g::FT, μ₀::FT) where {FT} -Computes cell properties (transmittance and reflectance) for direct and diffuse radiation +Compute cell properties (transmittance and reflectance) for direct and diffuse radiation Two-stream solutions to direct and diffuse reflectance and transmittance for a layer with optical depth tau, single scattering albedo w0, and asymmetery parameter g. @@ -254,9 +254,9 @@ doi:10.1175/1520-0469(1980)037<0630:TSATRT>2.0.CO;2 # the beam can either be reflected, penetrate unscattered to the base of a layer, # or penetrate through but be scattered on the way - the rest is absorbed # Makes the equations safer in single precision. Credit: Robin Hogan, Peter Ukkonen - # Note: Unlike Eq. 9 and 10 in Hogan et al. (2024), "Improving the Two-Stream - # Approximation in RRTMGP" (doi:10.1029/2023MS003932) where the upper bounds are - # scaled by μ₀ (the cosine of the solar zenith angle), here they are not scaled. + # Note: Unlike Eqs. 9 and 10 in Ukkonen & Hogan (2024), "Twelve times faster yet + # accurate ..." (doi:10.1029/2023MS003932), where the upper bounds are + # scaled by μ₀ (the cosine of the solar zenith angle), here they are not scaled. # This is because in RRTMGP, Rdir and Tdir are defined as fractional quantities # relative to the horizontal incident direct flux (which already includes the μ₀ # factor), whereas in ecRad (the model in the paper), they are normalized relative diff --git a/src/rte/shortwave_noscat.jl b/src/rte/shortwave_noscat.jl index e54030855..b0d10530f 100644 --- a/src/rte/shortwave_noscat.jl +++ b/src/rte/shortwave_noscat.jl @@ -104,13 +104,15 @@ end flux::FluxSW, op::OneScalar, bcs_sw::SwBCs, + igpt::Int, + n_gpt::Int, solar_frac::AbstractFloat, gcol, nlev, ) No-scattering solver for the shortwave problem. -(Extinction-only i.e. solar direct beam) +(Extinction-only i.e., solar direct beam) """ @inline function rte_sw_noscat!( flux::FluxSW, From e971ac2f2e79b0580f82e0a0d9a80559f4c47a8e Mon Sep 17 00:00:00 2001 From: Tapio Schneider Date: Sat, 11 Jul 2026 20:22:44 -0700 Subject: [PATCH 3/7] Corrections --- docs/tutorials/manabe_rce.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tutorials/manabe_rce.jl b/docs/tutorials/manabe_rce.jl index c67575453..166013b61 100644 --- a/docs/tutorials/manabe_rce.jl +++ b/docs/tutorials/manabe_rce.jl @@ -129,7 +129,7 @@ println("dry adiabatic lapse rate g/cₚ = $(round(1000 * Γ_dry; digits = 1)) K # at a trial surface temperature ``T_s`` (hard adjustment). The lapse rate is # defined per unit height, yet no altitudes are needed to apply it: # combining ``dT/dz = -Γ`` with hydrostatic balance and the ideal-gas law gives -# ``dT/T = (Γ R_d / g)\, dp/p``, so in the solver's native pressure coordinate +# ``dT/T = (Γ R_d / g)\, dp/p``, so in the solver's native pressure coordinate, # the critical profile is the power law # ```math # T_c(p) = T_s \left(\frac{p}{p_s}\right)^{Γ R_d / g}, From 4a7a7306a0abb208183dc5de3e6fb882b55b2c12 Mon Sep 17 00:00:00 2001 From: Tapio Schneider Date: Sun, 12 Jul 2026 13:40:18 -0700 Subject: [PATCH 4/7] Apply suggestions from code review Co-authored-by: Zhaoyi Shen <11598433+szy21@users.noreply.github.com> --- docs/src/ArtifactPaths.md | 2 +- docs/src/RTE.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/src/ArtifactPaths.md b/docs/src/ArtifactPaths.md index de64c8737..5e510f3c3 100644 --- a/docs/src/ArtifactPaths.md +++ b/docs/src/ArtifactPaths.md @@ -1,6 +1,6 @@ # ArtifactPaths -This module provides the file paths for loading the lookup tables and input data for the tests. These artifacts are obtained from Pincus, R., Mlawer, E. J., Delamere, J., Iacono, M. J., & Pernak, R. (2023), [RRTMGP data (Version 1.7)](https://github.com/earth-system-radiation/rrtmgp-data). +This module provides the file paths for loading the lookup tables and input data for the tests. These artifacts are obtained from Pincus, R., Mlawer, E. J., Delamere, J., Iacono, M. J., & Pernak, R. (2023), [RRTMGP data (Version 1.9)](https://github.com/earth-system-radiation/rrtmgp-data). ```@meta CurrentModule = RRTMGP.ArtifactPaths diff --git a/docs/src/RTE.md b/docs/src/RTE.md index 10d2841a0..f1d298ab3 100644 --- a/docs/src/RTE.md +++ b/docs/src/RTE.md @@ -162,7 +162,7 @@ The sweep needs conditions at both ends of the column. At the surface, the longwave upwelling radiance is the surface Planck emission scaled by the surface emissivity, and the shortwave reflection is set by the direct and diffuse albedos; the incident solar flux and the cosine of the solar zenith angle enter -at the top. Any prescribed incident diffuse flux at the top defaults to zero. +at the top. Any prescribed incident diffuse flux at the top defaults to zero, as does the downwelling longwave flux at the top. RRTMGP can also insert an **isothermal boundary layer**: an extra layer between the host model's top and the minimum pressure of the gas-optics tables, held at From 8ade3f4074560ebc071ed581e23524da3d5bf4cf Mon Sep 17 00:00:00 2001 From: Tapio Schneider Date: Sun, 12 Jul 2026 14:09:10 -0700 Subject: [PATCH 5/7] Review corrections --- docs/src/howto/gpu.md | 6 ++++-- docs/tutorials/manabe_rce.jl | 3 +++ src/optics/cloud_optics.jl | 16 ++++++++++------ 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/docs/src/howto/gpu.md b/docs/src/howto/gpu.md index dbc57670f..188fa6e32 100644 --- a/docs/src/howto/gpu.md +++ b/docs/src/howto/gpu.md @@ -55,9 +55,10 @@ buffers), so an adapted solver keeps the zero-allocation property. ## Reproducibility caveat: McICA cloud sampling With partial cloud fractions, the all-sky methods sample cloud overlap -stochastically (McICA) using the global RNG. On the CPU, +stochastically (McICA) using the global RNG. On a single CPU thread, `update_fluxes!(solver, seed)` with `reset_rng_seed = true` makes results -reproducible. On the GPU, the per-thread RNG state produces statistically +reproducible. In multi-threaded settings and on the GPU (at least on CUDA 6.x), +the per-thread RNG state produces statistically but not deterministically reproducible results for partially cloudy columns (overcast and clear columns remain deterministic). @@ -97,6 +98,7 @@ multi-threaded CPU strategy against the GPU strategy across single (`Float32`) a ### Benchmark problem dimensions Every configuration evaluated by the benchmark (see [`perf/benchmark_ratchet.jl`](https://github.com/CliMA/RRTMGP.jl/blob/main/perf/benchmark_ratchet.jl)) operates on an identical, uniform spatial grid representative of a high-resolution atmospheric model: + - **Columns (`ncol`)**: **`86,400` horizontal columns** (`30² elements × 6 panels × 4² quadrature points`). - **Vertical structure**: **`63` layers (`64` levels)** across every test profile (`5.53 × 10⁶` uniform 3D spatial coordinates, `ncol × nlev`), aligned with GPU warp sizes and memory boundaries. - **Spectral quadrature points (`ngpt`)**: **`480` spectral g-points** (`256` longwave + `224` shortwave) across all problems, resulting in approximately `2.65 × 10⁹` total cell evaluations per `solve_lw!` + `solve_sw!` step. diff --git a/docs/tutorials/manabe_rce.jl b/docs/tutorials/manabe_rce.jl index 166013b61..d965084f0 100644 --- a/docs/tutorials/manabe_rce.jl +++ b/docs/tutorials/manabe_rce.jl @@ -111,6 +111,9 @@ function set_humidity!(solver) p_sfc = RRTMGP.level_pressure(solver)[1, 1] e = rel_hum.(p, p_sfc) .* e_sat.(T) # vapor partial pressure [Pa] @. vmr = max(e / (p - e), vmr_h2o_min) + ## Alternatively, Thermodynamics.jl can do both steps in one go: + ## q = TD.q_vap_from_RH.(td_params, p, T, rel_hum.(p, p_sfc), Ref(TD.Liquid())) + ## @. vmr = max(TD.vol_vapor_mixing_ratio(td_params, q), vmr_h2o_min) return nothing end; diff --git a/src/optics/cloud_optics.jl b/src/optics/cloud_optics.jl index 46e3b9199..fc6d41af2 100644 --- a/src/optics/cloud_optics.jl +++ b/src/optics/cloud_optics.jl @@ -250,12 +250,16 @@ Build a McICA-sampled cloud mask from cloud fraction data for maximum-random ove Reference: https://github.com/AER-RC/RRTMG_SW/ -Determinism: the mask is drawn from the global `Random` RNG (`Random.rand()`) within the -per-column g-point loop. On CPU with a fixed `Random.seed!` the sampling is reproducible, but -under multithreaded/GPU execution the columns share global RNG state, so the per-column McICA -sample is not guaranteed reproducible across runs or column orderings. Broadband fluxes are -statistically unbiased regardless; bit-reproducible per-column sampling would require -column-indexed seeding, deliberately not done here to keep the kernel allocation-free. +Determinism: the mask is drawn with `Random.rand()` within the per-column g-point loop, i.e. +from the RNG of whichever task runs that iteration. On a single CPU thread every draw comes +from the one RNG that `Random.seed!` reseeds, so a fixed seed makes the sampling reproducible. +Under multithreading each worker task uses its own independent task-local RNG (seeded from the +parent at spawn, not by `Random.seed!`), and on the GPU the device RNG is keyed by a per-launch +seed the host `Random.seed!` does not control (at least on CUDA 6.x); combined with a +work assignment that is not fixed across runs or thread counts, the per-column McICA sample is +then not guaranteed reproducible. Broadband fluxes are statistically unbiased regardless; +bit-reproducible per-column sampling would require column-indexed seeding, deliberately not +done here to keep the kernel allocation-free. """ function build_cloud_mask!( cld_mask::AbstractArray{Bool, 1}, From b8f9f6d95efca32b1c98b211201bedde5b58bb63 Mon Sep 17 00:00:00 2001 From: Tapio Schneider Date: Sun, 12 Jul 2026 15:01:00 -0700 Subject: [PATCH 6/7] A few more docs updates (addressing issues) --- README.md | 8 ++++--- docs/src/Optics.md | 35 +++++++++++++++++++++++-------- docs/src/index.md | 13 ++++++++---- docs/tutorials/getting_started.jl | 2 +- docs/tutorials/manabe_rce.jl | 8 +++---- 5 files changed, 45 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index 9dd895d88..d134a2d94 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,8 @@ # RRTMGP.jl The `RRTMGP.jl` package is a Julia implementation of the radiative transfer -solver RTE and the RRTMGP correlated-*k* gas optics +solver RTE (Radiative Transfer for Energetics) and the RRTMGP (RRTM for General +circulation model applications—Parallel) correlated-*k* gas optics ([Pincus et al., 2019](https://doi.org/10.1029/2019MS001621)), based on the reference Fortran implementation [rte-rrtmgp](https://github.com/earth-system-radiation/rte-rrtmgp). It computes @@ -151,5 +152,6 @@ or open an issue on [GitHub](https://github.com/CliMA/RRTMGP.jl). ## Acknowledgments - [Robert Pincus](https://github.com/RobertPincus) for his invaluable help. -- The authors of the [Fortran implementation](https://github.com/earth-system-radiation/rte-rrtmgp) - of RTE-RRTMGP, on which this code is based. +- Robert Pincus, Eli Mlawer, and Jennifer Delamere, the developers of RTE+RRTMGP + and its reference [Fortran implementation](https://github.com/earth-system-radiation/rte-rrtmgp), + on which this code is based. diff --git a/docs/src/Optics.md b/docs/src/Optics.md index a816a658c..0a9af1a2f 100644 --- a/docs/src/Optics.md +++ b/docs/src/Optics.md @@ -191,12 +191,29 @@ tables shipped with the rrtmgp-data artifacts each species and band, the tables give the optical properties per unit column mass of aerosol; the host supplies the per-species column mass densities and particle sizes (the [`aerosol_column_mass_density`](@ref RRTMGP.aerosol_column_mass_density) -and [`aerosol_radius`](@ref RRTMGP.aerosol_radius) getters). Dust and sea salt -are resolved into five size bins selected from the supplied particle radius; -sea salt and sulfate are interpolated in relative humidity, as are the -hydrophilic variants of black and organic carbon (their hydrophobic variants -are humidity-independent). Each species' contribution ``(\tau, \omega_0, g)`` -is combined with the running optical properties by the same -``\tau``-weighted mixing rules as for clouds, and the shortwave extinction and -scattering aerosol optical depths in the band containing 550 nm are retained -as diagnostics (`aod_sw_extinction`, `aod_sw_scattering`). \ No newline at end of file +and [`aerosol_radius`](@ref RRTMGP.aerosol_radius) getters), and layers +without aerosol mass are skipped through a precomputed mask. + +The MERRA set comprises 15 species: dust and sea salt in five size bins each, +sulfate, and black and organic carbon each in a hydrophilic and a hydrophobic +variant. Dust and sea salt select their size bin from the supplied particle +radius. The hygroscopic species — sea salt, sulfate, and the hydrophilic +carbon variants — are additionally interpolated in relative humidity, which +enters from the atmospheric state; keeping `layer_relative_humidity` current +is a host responsibility (see +[Driving RRTMGP from a host model](howto/host_model.md)). Dust and the +hydrophobic carbon variants are humidity-independent. Internally, the species +occupy fixed positions in the aerosol state arrays: hosts should map their +species through [`aerosol_index_map`](@ref RRTMGP.aerosol_index_map) (or +[`aerosol_names`](@ref RRTMGP.aerosol_names)) rather than assume an ordering, +and the named getters above handle this lookup. + +What each solver family receives mirrors the treatment of gas optics. The +non-scattering longwave path adds only the aerosol absorption optical depth +``\tau (1 - \omega_0)``, while the two-stream path folds the full +``(\tau, \omega_0, g)`` of each species into the running optical properties +by the same ``\tau``-weighted mixing rules as for clouds, delta-scaled in the +shortwave. In the shortwave band containing 550 nm, the summed extinction and +scattering aerosol optical depths are retained as diagnostics +(`aod_sw_extinction`, `aod_sw_scattering`), giving the standard AOD at +negligible extra cost. \ No newline at end of file diff --git a/docs/src/index.md b/docs/src/index.md index 0c143e485..6a341aee4 100644 --- a/docs/src/index.md +++ b/docs/src/index.md @@ -1,8 +1,9 @@ # RRTMGP.jl -RRTMGP.jl is a Julia implementation of the radiative transfer solver RTE and -the RRTMGP correlated-``k`` gas optics ([pincus2019](@citet)), based on the -reference Fortran implementation +RRTMGP.jl is a Julia implementation of the radiative transfer solver RTE +(Radiative Transfer for Energetics) and the RRTMGP (RRTM for General +circulation model applications—Parallel) correlated-``k`` gas optics +([pincus2019](@citet)), based on the reference Fortran implementation [rte-rrtmgp](https://github.com/earth-system-radiation/rte-rrtmgp). It computes longwave and shortwave fluxes and heating rates for clear, cloudy, and aerosol-laden atmospheres, as well as an analytic gray-radiation mode for @@ -66,4 +67,8 @@ front door (`solve_gray`, `standard_atmosphere`, `solve`) for single-column work ## Authors `RRTMGP.jl` is being developed by the -[Climate Modeling Alliance](https://clima.caltech.edu/). +[Climate Modeling Alliance](https://clima.caltech.edu/). It is based on +RTE+RRTMGP and its reference +[Fortran implementation](https://github.com/earth-system-radiation/rte-rrtmgp), +developed by Robert Pincus, Eli Mlawer, and Jennifer Delamere +([pincus2019](@citet)). diff --git a/docs/tutorials/getting_started.jl b/docs/tutorials/getting_started.jl index 7f6b1204d..f7d47a267 100644 --- a/docs/tutorials/getting_started.jl +++ b/docs/tutorials/getting_started.jl @@ -65,7 +65,7 @@ ax1 = Axis( lines!(ax1, Array(out.lw_net)[:, 1], p_lev[:, 1]; label = "longwave net") lines!(ax1, Array(out.sw_net)[:, 1], p_lev[:, 1]; label = "shortwave net") lines!(ax1, Array(out.net)[:, 1], p_lev[:, 1]; label = "total net") -axislegend(ax1; position = :rb) +axislegend(ax1; position = :rb, framevisible = false) ax2 = Axis( fig[1, 2]; xlabel = "heating rate [K/day]", diff --git a/docs/tutorials/manabe_rce.jl b/docs/tutorials/manabe_rce.jl index d965084f0..a7bdb840e 100644 --- a/docs/tutorials/manabe_rce.jl +++ b/docs/tutorials/manabe_rce.jl @@ -278,7 +278,7 @@ ax = Axis( lines!(ax, T_obs, p_lay[:, 1] ./ 100; color = :gray, linestyle = :dot, label = "standard atmosphere") lines!(ax, T_re[:, 1], p_lay[:, 1] ./ 100; label = "radiative equilibrium") lines!(ax, T_rce[:, 1], p_lay[:, 1] ./ 100; label = "RCE (Γ = 6.5 K/km)") -axislegend(ax; position = :lt) +axislegend(ax; position = :rt, framevisible = false, backgroundcolor = :white) fig # ## Climate sensitivity at fixed relative humidity @@ -395,7 +395,7 @@ lines!(ax2, T_1x[:, 1], p_lay[:, 1] ./ 100; label = "1×CO₂ (RH)") lines!(ax2, T_2x_rh[:, 1], p_lay[:, 1] ./ 100; linestyle = :dash, label = "2×CO₂ (RH)") lines!(ax2, T_4x_rh[:, 1], p_lay[:, 1] ./ 100; linestyle = :dot, label = "4×CO₂ (RH)") lines!(ax2, T_4x_ah[:, 1], p_lay[:, 1] ./ 100; linestyle = :dashdot, label = "4×CO₂ (AH)") -axislegend(ax2; position = :lt) +axislegend(ax2; position = :rt, framevisible = false, backgroundcolor = :white) fig2 # ## Sensitivity to the critical lapse rate @@ -427,7 +427,7 @@ for Γ_km in (9.8, 6.5, 3.0) T = Array(RRTMGP.layer_temperature(slv)) lines!(ax3, T[:, 1], p_lay[:, 1] ./ 100; label = "Γ = $(Γ_km) K/km") end -axislegend(ax3; position = :lt) +axislegend(ax3; position = :rt, framevisible = false, backgroundcolor = :white) fig3 # ## Contributions of the individual absorbers @@ -485,7 +485,7 @@ lines!(ax4, T_1x[:, 1], p_lay[:, 1] ./ 100; label = "all absorbers") lines!(ax4, T_no_h2o[:, 1], p_lay[:, 1] ./ 100; label = "no H₂O") lines!(ax4, T_no_co2[:, 1], p_lay[:, 1] ./ 100; label = "no CO₂") lines!(ax4, T_no_o3[:, 1], p_lay[:, 1] ./ 100; label = "no O₃") -axislegend(ax4; position = :lt) +axislegend(ax4; position = :lt, framevisible = false, backgroundcolor = :white) fig4 # ## Where to go from here From 041107d56ef08ae0f4f565aee16d11f0488dd9b2 Mon Sep 17 00:00:00 2001 From: Tapio Schneider Date: Mon, 13 Jul 2026 09:08:45 -0700 Subject: [PATCH 7/7] Updated README --- README.md | 37 ++++++++++++++++++------------------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index d134a2d94..2596cb982 100644 --- a/README.md +++ b/README.md @@ -15,29 +15,28 @@ and aerosol-laden atmospheres, and is the radiation scheme of the [CliMA Earth System Model](https://clima.caltech.edu). ||| -|-----------------------------:|:-------------------------------------------------| -| **Documentation** | [![dev][docs-latest-img]][docs-latest-url] | -| **Docs Build** | [![docs build][docs-bld-img]][docs-bld-url] | -| **GHA CI** | [![gha ci][gha-ci-img]][gha-ci-url] | -| **Buildkite CI** | [![buildkite][buildkite-img]][buildkite-url] | -| **Code Coverage** | [![codecov][codecov-img]][codecov-url] | -| **Downloads** | [![Downloads][dlt-img]][dlt-url] | - -[docs-latest-img]: https://img.shields.io/badge/docs-latest-blue.svg -[docs-latest-url]: https://CliMA.github.io/RRTMGP.jl/latest/ - -[docs-bld-img]: https://github.com/CliMA/RRTMGP.jl/actions/workflows/docs.yml/badge.svg -[docs-bld-url]: https://github.com/CliMA/RRTMGP.jl/actions/workflows/docs.yml - +|-----------------:|:-------------------------------------------------------------| +| **Documentation**| [![stable][docs-stable-img]][docs-stable-url] [![dev][docs-dev-img]][docs-dev-url] | +| **Version** | [![version][version-img]][version-url] | +| **License** | [![license][license-img]][license-url] | +| **Tests** | [![gha ci][gha-ci-img]][gha-ci-url] [![buildkite][bk-ci-img]][bk-ci-url] | +| **Code Coverage**| [![codecov][codecov-img]][codecov-url] | +| **Downloads** | [![Downloads][dlt-img]][dlt-url] | + +[docs-stable-img]: https://img.shields.io/badge/docs-stable-blue.svg +[docs-stable-url]: https://CliMA.github.io/RRTMGP.jl/stable/ +[docs-dev-img]: https://img.shields.io/badge/docs-dev-blue.svg +[docs-dev-url]: https://CliMA.github.io/RRTMGP.jl/dev/ +[version-img]: https://juliahub.com/docs/General/RRTMGP/stable/version.svg +[version-url]: https://juliahub.com/ui/Packages/General/RRTMGP +[license-img]: https://img.shields.io/badge/license-Apache%202.0-blue.svg +[license-url]: https://github.com/CliMA/RRTMGP.jl/blob/main/LICENSE [gha-ci-img]: https://github.com/CliMA/RRTMGP.jl/actions/workflows/OS-UnitTests.yml/badge.svg [gha-ci-url]: https://github.com/CliMA/RRTMGP.jl/actions/workflows/OS-UnitTests.yml - -[buildkite-img]: https://badge.buildkite.com/ee3a0c43cf4925ee14a966f794ac85d0b9439244d23e43b308.svg -[buildkite-url]: https://buildkite.com/clima/rrtmgp-ci - +[bk-ci-img]: https://badge.buildkite.com/ee3a0c43cf4925ee14a966f794ac85d0b9439244d23e43b308.svg?branch=main +[bk-ci-url]: https://buildkite.com/clima/rrtmgp-ci/builds?branch=main [codecov-img]: https://codecov.io/gh/CliMA/RRTMGP.jl/branch/main/graph/badge.svg [codecov-url]: https://codecov.io/gh/CliMA/RRTMGP.jl - [dlt-img]: https://img.shields.io/badge/dynamic/json?url=http%3A%2F%2Fjuliapkgstats.com%2Fapi%2Fv1%2Ftotal_downloads%2FRRTMGP&query=total_requests&label=Downloads [dlt-url]: https://juliapkgstats.com/pkg/RRTMGP