From 3665bace5ab949a3386e887af2d95ba2d3b2042b Mon Sep 17 00:00:00 2001 From: raychew Date: Sun, 15 Jun 2025 21:58:55 -0700 Subject: [PATCH 01/35] blacked everything --- src/pybella/__main__.py | 4 +- .../flow_solver/discretisation/time_update.py | 16 +- .../flow_solver/physics/gas_dynamics/cfl.py | 93 +++++--- .../physics/gas_dynamics/explicit.py | 63 +++--- .../physics/gas_dynamics/numerical_flux.py | 63 ++++-- .../physics/gas_dynamics/recovery.py | 111 +++++---- .../physics/low_mach/second_projection.py | 97 ++++---- src/pybella/flow_solver/utils/boundary.py | 14 +- src/pybella/flow_solver/utils/prepare.py | 11 +- src/pybella/flow_solver/utils/variable.py | 64 +++--- src/pybella/tests/test_travelling_vortex.py | 2 +- src/pybella/utils/data_structures.py | 2 +- src/pybella/utils/operators.py | 211 +++++++++--------- src/pybella/utils/slices.py | 83 +++---- 14 files changed, 473 insertions(+), 361 deletions(-) diff --git a/src/pybella/__main__.py b/src/pybella/__main__.py index 253323b7..805ecedf 100644 --- a/src/pybella/__main__.py +++ b/src/pybella/__main__.py @@ -69,7 +69,9 @@ def main(): debug_writer = io.create_debug_writer(params.debug, writer, mem) logging.info("For ensemble member = %i..." % cnt) - mem = dis_time_update.do(mem, sst.ud, tout, blend, step_writer, debug_writer) + mem = dis_time_update.do( + mem, sst.ud, tout, blend, step_writer, debug_writer + ) if sst.ud.diag: if sst.ud.diag_updt_targets: diff --git a/src/pybella/flow_solver/discretisation/time_update.py b/src/pybella/flow_solver/discretisation/time_update.py index fb62afc1..1ccb28f5 100644 --- a/src/pybella/flow_solver/discretisation/time_update.py +++ b/src/pybella/flow_solver/discretisation/time_update.py @@ -44,7 +44,9 @@ def do( if mem.time.step == 0 and writer != None: writer.write_all(mem, str(label) + "_ic") - dt, cfl, cfl_ac = gd_cfl.dynamic_timestep(mem.sol, mem.time.t, tout, mem.elem, ud, mem.th, mem.time.step) + dt, cfl, cfl_ac = gd_cfl.dynamic_timestep( + mem.sol, mem.time.t, tout, mem.elem, ud, mem.th, mem.time.step + ) dt = prestep.apply_modifcations(dt, ud, mem.time.step) @@ -69,7 +71,9 @@ def do( ud.nonhydrostasy = gd_eos.nonhydrostasy(ud, mem.time.t, mem.time.window_step) if ud.continuous_blending or ud.initial_blending: - logging.info(f"step = {mem.time.step}, window_step = {mem.time.window_step}") + logging.info( + f"step = {mem.time.step}, window_step = {mem.time.window_step}" + ) logging.info( f""" @@ -86,7 +90,9 @@ def do( gd_flux.recompute_advective_fluxes(mem) - debug_writer.populate_flux_components(f"{label}_before_advect", mem.flux, mem.elem) + debug_writer.populate_flux_components( + f"{label}_before_advect", mem.flux, mem.elem + ) debug_writer.write(f"{label}_before_advect") if ud.do_advection: @@ -143,7 +149,9 @@ def do( gd_flux.recompute_advective_fluxes(mem) - debug_writer.populate_flux_components(f"{label}_after_half_step", mem.flux, mem.elem) + debug_writer.populate_flux_components( + f"{label}_after_half_step", mem.flux, mem.elem + ) debug_writer.write(f"{label}_after_half_step") Sol_half_new = copy.deepcopy(mem.sol) diff --git a/src/pybella/flow_solver/physics/gas_dynamics/cfl.py b/src/pybella/flow_solver/physics/gas_dynamics/cfl.py index e1eb709f..1df17236 100644 --- a/src/pybella/flow_solver/physics/gas_dynamics/cfl.py +++ b/src/pybella/flow_solver/physics/gas_dynamics/cfl.py @@ -1,11 +1,12 @@ import numpy as np + def dynamic_timestep(Sol, time, time_output, elem, ud, th, step): """ Calculate dynamic timestep for CFD simulation. Documentation to be homogenised. - + Args: Sol: Solution object containing flow variables time: Current simulation time @@ -14,79 +15,111 @@ def dynamic_timestep(Sol, time, time_output, elem, ud, th, step): ud: User data object with CFL and timestep parameters th: Thermodynamic properties step: Current step number - + Returns: If acoustic_timestep == 1: dt (float) Else: tuple of (dt, cfl, cfl_ac) """ machine_epsilon = np.finfo(float).eps - + # Calculate thermodynamic properties - p = Sol.rhoY ** th.gamm + p = Sol.rhoY**th.gamm c = np.sqrt(th.gamm * p / Sol.rho) / np.sqrt(ud.Msq) - + # Calculate velocity components u = np.abs(Sol.rhou / Sol.rho) v = np.abs(Sol.rhov / Sol.rho) w = np.abs(Sol.rhow / Sol.rho) - + # Find maximum velocities (with minimum threshold) u_max = max(u.max(), machine_epsilon) v_max = max(v.max(), machine_epsilon) w_max = max(w.max(), machine_epsilon) - + # Calculate acoustic velocities upc_max = max((u + c).max(), machine_epsilon) vpc_max = max((v + c).max(), machine_epsilon) wpc_max = max((w + c).max(), machine_epsilon) - + if ud.acoustic_timestep == 1: return _calculate_acoustic_timestep( - ud.CFL, elem, upc_max, vpc_max, wpc_max, - time, time_output, ud, step, machine_epsilon + ud.CFL, + elem, + upc_max, + vpc_max, + wpc_max, + time, + time_output, + ud, + step, + machine_epsilon, ) else: return _calculate_convective_timestep( - ud.CFL, elem, u_max, v_max, w_max, upc_max, vpc_max, wpc_max, - time, time_output, ud, step, machine_epsilon + ud.CFL, + elem, + u_max, + v_max, + w_max, + upc_max, + vpc_max, + wpc_max, + time, + time_output, + ud, + step, + machine_epsilon, ) -def _calculate_acoustic_timestep(CFL, elem, upc_max, vpc_max, wpc_max, - time, time_output, ud, step, machine_epsilon): +def _calculate_acoustic_timestep( + CFL, elem, upc_max, vpc_max, wpc_max, time, time_output, ud, step, machine_epsilon +): """Calculate timestep based on acoustic CFL condition.""" # Calculate directional timesteps dt_directions = [ CFL * elem.dx / upc_max, CFL * elem.dy / vpc_max, - CFL * elem.dz / wpc_max + CFL * elem.dz / wpc_max, ] dt_cfl = min(dt_directions) - + # Apply ramping factor ramp_factor = ud.dtfixed0 + min(step, 1.0) * (ud.dtfixed - ud.dtfixed0) dt = min(dt_cfl, ramp_factor) - + # Ensure we don't overshoot the output time remaining_time = time_output - time if dt > remaining_time: dt = remaining_time + machine_epsilon - + return dt -def _calculate_convective_timestep(CFL, elem, u_max, v_max, w_max, - upc_max, vpc_max, wpc_max, - time, time_output, ud, step, machine_epsilon): +def _calculate_convective_timestep( + CFL, + elem, + u_max, + v_max, + w_max, + upc_max, + vpc_max, + wpc_max, + time, + time_output, + ud, + step, + machine_epsilon, +): """Calculate timestep based on convective CFL condition.""" # Calculate directional timesteps dt_directions = [ CFL * elem.dx / u_max, CFL * elem.dy / v_max, - CFL * elem.dz / w_max + CFL * elem.dz / w_max, ] dt_cfl = min(dt_directions) - + # Apply ramping and step scaling for positive steps if step >= 0: ramp_factor = ud.dtfixed0 + min(step, 1.0) * (ud.dtfixed - ud.dtfixed0) @@ -94,18 +127,14 @@ def _calculate_convective_timestep(CFL, elem, u_max, v_max, w_max, dt *= min(float(step + 1), 1.0) else: dt = dt_cfl - + # Ensure we don't overshoot the output time remaining_time = time_output - time if dt > remaining_time: dt = remaining_time - + # Calculate CFL numbers for output cfl = CFL * dt / dt_cfl - cfl_ac = max( - dt * upc_max / elem.dx, - dt * vpc_max / elem.dy, - dt * wpc_max / elem.dz - ) - - return dt, cfl, cfl_ac \ No newline at end of file + cfl_ac = max(dt * upc_max / elem.dx, dt * vpc_max / elem.dy, dt * wpc_max / elem.dz) + + return dt, cfl, cfl_ac diff --git a/src/pybella/flow_solver/physics/gas_dynamics/explicit.py b/src/pybella/flow_solver/physics/gas_dynamics/explicit.py index 2e64d80f..b3f04d28 100644 --- a/src/pybella/flow_solver/physics/gas_dynamics/explicit.py +++ b/src/pybella/flow_solver/physics/gas_dynamics/explicit.py @@ -11,35 +11,39 @@ def advect(mem, ud, dt, odd, label, writer=None): """ time_step = 0.5 * dt diagnostics = [writer, mem.node, label] if writer is not None else None - + # Define sweep configurations: (reverse_order, use_diagnostics) sweeps = [(not odd, not odd), (odd, odd)] - + for reverse_order, use_diagnostics in sweeps: _perform_dimensional_sweep( - mem, ud, time_step, + mem, + ud, + time_step, reverse=reverse_order, - diagnostics=diagnostics if use_diagnostics else None + diagnostics=diagnostics if use_diagnostics else None, ) - + bdry.set_explicit_boundary_data(mem.sol, mem.elem, ud, mem.th, mem.mpv) def explicit_step_and_flux(mem, ud, lmbda, split_step, tag=None): """ - For each advection substep, solve the advection problem. For more details, see :ref:`advection_routine`. - This function updates the solution `Sol` container in-place if a Strang-splitting is used, + For each advection substep, solve the advection problem. For more details, see :ref:`advection_routine`. + This function updates the solution `Sol` container in-place if a Strang-splitting is used, or returns the `flux` data container if a Runge-Kutta method is used. """ flux = _compute_flux_and_recovery(mem, ud, lmbda, split_step, tag) - + # Cache neighbor indices (consider moving this to initialization if called frequently) left_idx, right_idx = get_neighbor_indices(mem.elem.ndim) if tag != "rk": _update_solution_variables(mem.sol, flux, lmbda, left_idx, right_idx) - - bdry.set_explicit_boundary_data(mem.sol, mem.elem, ud, mem.th, mem.mpv, step=split_step) + + bdry.set_explicit_boundary_data( + mem.sol, mem.elem, ud, mem.th, mem.mpv, step=split_step + ) if tag == "rk": return flux @@ -47,7 +51,7 @@ def explicit_step_and_flux(mem, ud, lmbda, split_step, tag=None): def advect_rk(mem, ud, dt): """ - Function that runs the advection routine with a first-order Runge-Kutta update. + Function that runs the advection routine with a first-order Runge-Kutta update. This function updates the `Sol` solution container with the advected solution in-place. Attention @@ -73,14 +77,15 @@ def advect_rk(mem, ud, dt): bdry.set_explicit_boundary_data(mem.sol, mem.elem, ud, mem.th, mem.mpv) + def _update_solution_variables(sol, flux, lmbda, left_idx, right_idx, variables=None): """ Helper function to update solution variables with flux differences. - + """ if variables is None: - variables = ['rho', 'rhou', 'rhov', 'rhow', 'rhoX', 'rhoY'] - + variables = ["rho", "rhou", "rhov", "rhow", "rhoX", "rhoY"] + for var in variables: flux_diff = getattr(flux, var)[left_idx] - getattr(flux, var)[right_idx] current_val = getattr(sol, var) @@ -90,48 +95,52 @@ def _update_solution_variables(sol, flux, lmbda, left_idx, right_idx, variables= def _compute_flux_and_recovery(mem, ud, lmbda, split_step, tag=None): """ Helper function to compute flux using gradient recovery and HLL solver. - + Returns: flux: Computed flux container """ flux = mem.flux[split_step] - - bdry.set_explicit_boundary_data(mem.sol, mem.elem, ud, mem.th, mem.mpv, step=split_step) - + + bdry.set_explicit_boundary_data( + mem.sol, mem.elem, ud, mem.th, mem.mpv, step=split_step + ) + Lefts, Rights = gd_recovery.do(mem, ud, lmbda, split_step, tag) - + flux = gd_flux.hll_solver(mem, flux, Lefts, Rights) - + return flux + def _apply_dimensional_flux_update(mem, dim, time_step, left_idx, right_idx): """ Apply flux update for a specific dimension. """ lmbda = time_step / mem.elem.dxyz[dim] mem.sol.flip_forward() - + _update_solution_variables(mem.sol, mem.flux[dim], lmbda, left_idx, right_idx) - + # Handle special case for vertical axis if dim == 1: updt = lmbda * (mem.flux[dim].rhoX[left_idx] - mem.flux[dim].rhoX[right_idx]) setattr(mem.sol, "pwchi", updt) + def _perform_dimensional_sweep(mem, ud, time_step, reverse=False, diagnostics=None): """ Perform a dimensional sweep in either forward or reverse order. - + """ elem, Sol = mem.elem, mem.sol ndim = elem.ndim - + # Determine dimension order - dim_range = range(ndim-1, -1, -1) if reverse else range(ndim) - + dim_range = range(ndim - 1, -1, -1) if reverse else range(ndim) + for split in dim_range: lmbda = time_step / elem.dxyz[split] - + # Handle solution flipping based on sweep direction if reverse: if elem.iisc[split] > 1: diff --git a/src/pybella/flow_solver/physics/gas_dynamics/numerical_flux.py b/src/pybella/flow_solver/physics/gas_dynamics/numerical_flux.py index 80b31e04..d62ca86a 100644 --- a/src/pybella/flow_solver/physics/gas_dynamics/numerical_flux.py +++ b/src/pybella/flow_solver/physics/gas_dynamics/numerical_flux.py @@ -2,12 +2,20 @@ import numpy as np from numba import njit -from ....utils.operators import get_flux_convolution_kernels, apply_directional_convolution -from ....utils.slices import get_inner_slice, get_interface_indices, get_last_dim_inner_slice +from ....utils.operators import ( + get_flux_convolution_kernels, + apply_directional_convolution, +) +from ....utils.slices import ( + get_inner_slice, + get_interface_indices, + get_last_dim_inner_slice, +) + def recompute_advective_fluxes(mem, **kwargs): """Recompute the advective fluxes at the cell interfaces. - + Parameters ---------- mem : object @@ -18,11 +26,11 @@ def recompute_advective_fluxes(mem, **kwargs): ndim = mem.sol.rho.ndim inner_idx = get_inner_slice(ndim) kernels = get_flux_convolution_kernels(ndim) - + # Define the component order and corresponding flux indices - components = ['u', 'v'] if ndim == 2 else ['u', 'v', 'w'] - rho_components = ['rhou', 'rhov'] if ndim == 2 else ['rhou', 'rhov', 'rhow'] - + components = ["u", "v"] if ndim == 2 else ["u", "v", "w"] + rho_components = ["rhou", "rhov"] if ndim == 2 else ["rhou", "rhov", "rhow"] + for i, (comp, rho_comp) in enumerate(zip(components, rho_components)): # Use provided velocity or compute from momentum if comp in kwargs: @@ -30,20 +38,29 @@ def recompute_advective_fluxes(mem, **kwargs): else: momentum = getattr(mem.sol, rho_comp) rhoY_vel = mem.sol.rhoY * momentum / mem.sol.rho - + # Apply directional convolution mem.flux[i].rhoY[inner_idx] = apply_directional_convolution( rhoY_vel, kernels[comp], comp, ndim ) + @njit(cache=True) -def _compute_flux_component(flux_values, rhoY_values, left_weight, right_weight, - left_val, right_val, remove_cols_idx): +def _compute_flux_component( + flux_values, + rhoY_values, + left_weight, + right_weight, + left_val, + right_val, + remove_cols_idx, +): """Numba-optimised flux component computation.""" flux_values[remove_cols_idx] = rhoY_values[remove_cols_idx] * ( left_weight * left_val + right_weight * right_val ) + def hll_solver(mem, flux, Lefts, Rights): """ HLL solver for the Riemann problem. Chooses the advected quantities from `Lefts` or `Rights` based on the direction given by `flux`. @@ -52,7 +69,7 @@ def hll_solver(mem, flux, Lefts, Rights): ------- :py:class:`management.variable.States` `flux` data container with the solution of the Riemann problem. - + """ ndim = mem.sol.rho.ndim left_idx, right_idx, _ = get_interface_indices(ndim) @@ -66,41 +83,41 @@ def hll_solver(mem, flux, Lefts, Rights): upwind = 0.5 * (1.0 + np.sign(flux.rhoY)) upl = upwind[right_idx] upr = 1.0 - upwind[left_idx] - + # Pre-compute common weights left_weight = upl[left_idx] / Lefts.Y[left_idx] right_weight = upr[right_idx] / Rights.Y[right_idx] # Define flux components to compute flux_components = [ - ('rhou', 'u'), - ('rho', None, 1.0), # state_value=1.0 - ('rhov', 'v'), - ('rhow', 'w'), - ('rhoX', 'X') + ("rhou", "u"), + ("rho", None, 1.0), # state_value=1.0 + ("rhov", "v"), + ("rhow", "w"), + ("rhoX", "X"), ] - + # Compute all flux components for component in flux_components: flux_attr = component[0] state_attr = component[1] if len(component) > 1 else None state_value = component[2] if len(component) > 2 else 1.0 - + # Get state values if state_attr is not None: left_val = getattr(Lefts, state_attr)[left_idx] right_val = getattr(Rights, state_attr)[right_idx] else: left_val = right_val = state_value - + _compute_flux_component( getattr(flux, flux_attr), flux.rhoY, left_weight, - right_weight, + right_weight, left_val, right_val, - remove_cols_idx + remove_cols_idx, ) - return flux \ No newline at end of file + return flux diff --git a/src/pybella/flow_solver/physics/gas_dynamics/recovery.py b/src/pybella/flow_solver/physics/gas_dynamics/recovery.py index 483ad62e..0edf21da 100644 --- a/src/pybella/flow_solver/physics/gas_dynamics/recovery.py +++ b/src/pybella/flow_solver/physics/gas_dynamics/recovery.py @@ -6,6 +6,7 @@ from ...utils import variable as var + def do(mem, ud, lmbda, split_step, tag=None): """ Reconstruct the limited slopes at the cell interfaces. @@ -34,25 +35,35 @@ def do(mem, ud, lmbda, split_step, tag=None): ) shape = mem.sol.u.shape - + # Get cached objects cache = mem.cache.get_recovery_objects(shape, ud) - Diffs, Ampls, Lefts, Rights, Slopes = cache['Diffs'], cache['Ampls'], cache['Lefts'], cache['Rights'], cache['Slopes'] - + Diffs, Ampls, Lefts, Rights, Slopes = ( + cache["Diffs"], + cache["Ampls"], + cache["Lefts"], + cache["Rights"], + cache["Slopes"], + ) + # Compute differences _compute_differences(mem.sol, rights_idx, lefts_idx, Diffs) - + # Compute slopes slopes_obj = _slopes(Diffs, Slopes, ud, mem.elem) - + # Compute left-side amplitudes and values - _compute_amplitudes(slopes_obj, lmbda, u, Ampls, sign_factor=1.0, lambda_factor=-1.0) + _compute_amplitudes( + slopes_obj, lmbda, u, Ampls, sign_factor=1.0, lambda_factor=-1.0 + ) _compute_reconstructed_values(mem.sol, Ampls, order_two, Lefts) - + # Compute right-side amplitudes and values - _compute_amplitudes(slopes_obj, lmbda, u, Ampls, sign_factor=-1.0, lambda_factor=1.0) - _compute_reconstructed_values(mem.sol, Ampls, order_two,Rights) - + _compute_amplitudes( + slopes_obj, lmbda, u, Ampls, sign_factor=-1.0, lambda_factor=1.0 + ) + _compute_reconstructed_values(mem.sol, Ampls, order_two, Rights) + # Return velocity components vel = [mem.sol.u, mem.sol.v, mem.sol.w] @@ -60,7 +71,7 @@ def do(mem, ud, lmbda, split_step, tag=None): reconstructed_rhoy = _compute_rhoy_reconstruction( mem, Lefts, Rights, lefts_idx, rights_idx, vel, split_step, order_two, lmbda ) - + # Compute pressure reconstruction _compute_pressure_reconstruction( Lefts, Rights, lefts_idx, rights_idx, reconstructed_rhoy, gamm @@ -71,34 +82,36 @@ def do(mem, ud, lmbda, split_step, tag=None): return Lefts, Rights + def _slopes(Diffs, Slopes, ud, elem): """Reconstruct piecewise linear slopes in cells.""" # Configuration variable_config = { - 'u': ud.limiter_type_velocity, - 'v': ud.limiter_type_velocity, - 'w': ud.limiter_type_velocity, - 'X': ud.limiter_type_scalars, - 'Y': ud.limiter_type_scalars + "u": ud.limiter_type_velocity, + "v": ud.limiter_type_velocity, + "w": ud.limiter_type_velocity, + "X": ud.limiter_type_scalars, + "Y": ud.limiter_type_scalars, } - + # TBD: Consider moving indices to cache lefts_idx, rights_idx = get_neighbor_indices(elem.ndim) - + # Process each variable for var_name, limiter_type in variable_config.items(): diff_data = getattr(Diffs, var_name) - + # Extract amplitudes al = diff_data[lefts_idx][lefts_idx] ar = diff_data[lefts_idx][rights_idx] - + # Calculate and assign slopes slope_data = _limiters(limiter_type, al, ar) getattr(Slopes, var_name)[..., 1:-1] = slope_data - + return Slopes + @njit def _limiters(limiter_type, al, ar): """ @@ -130,58 +143,70 @@ def _get_conservatives(U): def _compute_differences(sol, rights_idx, lefts_idx, diffs): """Compute differences between right and left indices for all fields.""" - fields = ['u', 'v', 'w', 'X'] + fields = ["u", "v", "w", "X"] for field in fields: - getattr(diffs, field)[..., :-1] = getattr(sol, field)[rights_idx] - getattr(sol, field)[lefts_idx] - + getattr(diffs, field)[..., :-1] = ( + getattr(sol, field)[rights_idx] - getattr(sol, field)[lefts_idx] + ) + # Y field has special handling (reciprocal differences) diffs.Y[..., :-1] = 1.0 / sol.Y[rights_idx] - 1.0 / sol.Y[lefts_idx] def _compute_amplitudes(slopes, lmbda, u, ampls, sign_factor=1.0, lambda_factor=1.0): """Compute amplitudes for all fields with given sign and lambda factors.""" - fields = ['u', 'v', 'w', 'X', 'Y'] + fields = ["u", "v", "w", "X", "Y"] factor = sign_factor * 0.5 * (1.0 + lambda_factor * lmbda * u) - + for field in fields: getattr(ampls, field)[...] = factor * getattr(slopes, field) def _compute_reconstructed_values(sol, ampls, order_two, result): """Compute reconstructed values for all fields.""" - fields = ['u', 'v', 'w', 'X'] + fields = ["u", "v", "w", "X"] for field in fields: - getattr(result, field)[...] = getattr(sol, field) + order_two * getattr(ampls, field) - + getattr(result, field)[...] = getattr(sol, field) + order_two * getattr( + ampls, field + ) + # Y field has special handling (reciprocal computation) result.Y[...] = 1.0 / (1.0 / sol.Y + order_two * ampls.Y) -def _compute_rhoy_reconstruction(mem, lefts, rights, lefts_idx, rights_idx, - vel, split_step, order_two, lmbda): + +def _compute_rhoy_reconstruction( + mem, lefts, rights, lefts_idx, rights_idx, vel, split_step, order_two, lmbda +): """Compute rhoY reconstruction for both left and right sides.""" # Use existing arrays for in-place operations # First compute on lefts.rhoY, then copy to rights.rhoY - + # Start with average in lefts array lefts.rhoY[lefts_idx] = 0.5 * (mem.sol.rhoY[lefts_idx] + mem.sol.rhoY[rights_idx]) - + # Subtract velocity correction in-place - lefts.rhoY[lefts_idx] -= order_two * 0.5 * lmbda * ( - vel[split_step][rights_idx] * mem.sol.rhoY[rights_idx] - - vel[split_step][lefts_idx] * mem.sol.rhoY[lefts_idx] + lefts.rhoY[lefts_idx] -= ( + order_two + * 0.5 + * lmbda + * ( + vel[split_step][rights_idx] * mem.sol.rhoY[rights_idx] + - vel[split_step][lefts_idx] * mem.sol.rhoY[lefts_idx] + ) ) - + # Copy result to rights rights.rhoY[rights_idx] = lefts.rhoY[lefts_idx] - + return lefts.rhoY[lefts_idx] -def _compute_pressure_reconstruction(lefts, rights, lefts_idx, rights_idx, - reconstructed_rhoy, gamm): +def _compute_pressure_reconstruction( + lefts, rights, lefts_idx, rights_idx, reconstructed_rhoy, gamm +): """Compute pressure reconstruction using power law.""" - reconstructed_p0 = reconstructed_rhoy ** gamm + reconstructed_p0 = reconstructed_rhoy**gamm lefts.p0[lefts_idx] = reconstructed_p0 rights.p0[rights_idx] = reconstructed_p0 - - return reconstructed_p0 \ No newline at end of file + + return reconstructed_p0 diff --git a/src/pybella/flow_solver/physics/low_mach/second_projection.py b/src/pybella/flow_solver/physics/low_mach/second_projection.py index fc9e4523..c686aa2d 100644 --- a/src/pybella/flow_solver/physics/low_mach/second_projection.py +++ b/src/pybella/flow_solver/physics/low_mach/second_projection.py @@ -58,10 +58,7 @@ def euler_forward_non_advective(mem, ud, dt, writer=None, label=None, debug=Fals # Compute compressibility kernel kernel = operators.get_averaging_kernel(ndim, width=2) dpidP = (th.gm1 / Msq) * operators.apply_convolution_kernel( - rhoY ** (th.gamm - 2.0), - kernel=kernel, - normalize=True, - use_numba=True + rhoY ** (th.gamm - 2.0), kernel=kernel, normalize=True, use_numba=True ) rhoYovG = Ginv * rhoY @@ -78,12 +75,16 @@ def euler_forward_non_advective(mem, ud, dt, writer=None, label=None, debug=Fals # Momentum update (u, v, w) rhou -= dt * (rhoYovG * dpdx - corr_h2 * drhov + corr_v * drhow) - rhov -= dt * ( - rhoYovG * dpdy - + (g / Msq) * dbuoy * nonhydro - - corr_h1 * drhow - + corr_h2 * drhou - ) * (1 - ud.is_ArakawaKonor) + rhov -= ( + dt + * ( + rhoYovG * dpdy + + (g / Msq) * dbuoy * nonhydro + - corr_h1 * drhow + + corr_h2 * drhou + ) + * (1 - ud.is_ArakawaKonor) + ) if ndim == 3: rhow -= dt * (rhoYovG * dpdz - corr_v * drhou + corr_h1 * drhov) @@ -116,6 +117,7 @@ def euler_backward_non_advective_expl_part(mem, ud, dt): bdry.set_explicit_boundary_data(mem.sol, mem.elem, ud, mem.th, mem.mpv) + def euler_backward_non_advective_impl_part( Sol, mpv, @@ -404,6 +406,7 @@ def operator_coefficients_nodes(elem, node, Sol, mpv, ud, th, dt): if not hasattr(ud, "ATMOSPHERIC_EXTENSION"): bdry.scale_wall_node_values(mpv.wcenter, node, ud) + def rhs_from_p_old(rhs, node, mpv): igs = node.igs ndim = node.ndim @@ -429,10 +432,11 @@ def rhs_from_p_old(rhs, node, mpv): rhs_n = rhs + 0.0 * rhs_hh return rhs_n + @njit(cache=True) def _compute_coriolis_coefficients(wh1, wh2, wv, nu, nonhydro): """Compute coefficients for the H^-1 matrix multiplication. - + This corresponds to equation (C11) in the mathematical formulation. """ # Common terms @@ -440,32 +444,35 @@ def _compute_coriolis_coefficients(wh1, wh2, wv, nu, nonhydro): wh2_sq = wh2 * wh2 wv_sq = wv * wv nu_nh = nu + nonhydro - + # Denominator (det(H)) denom = 1.0 / (wh1_sq + wh2_sq + nu_nh * (wv_sq + 1.0)) - + # H^-1 matrix elements (row-major order) # Row 1: U equation coefficients h11 = (wh1_sq + nu_nh) * denom h12 = nonhydro * (wh1 * wv + wh2) * denom h13 = (wh1 * wh2 - nu_nh * wv) * denom - - # Row 2: V equation coefficients + + # Row 2: V equation coefficients h21 = (wh1 * wv - wh2) * denom h22 = nonhydro * (1.0 + wv_sq) * denom h23 = (wh2 * wv + wh1) * denom - + # Row 3: W equation coefficients h31 = (wh1 * wh2 + nu_nh * wv) * denom h32 = nonhydro * (wh2 * wv - wh1) * denom h33 = (nu_nh + wh2_sq) * denom - + return h11, h12, h13, h21, h22, h23, h31, h32, h33 + @njit(cache=True) -def apply_coriolis_matrix_inplace(u_vec, v_vec, w_vec, U,V,W, wh1, wh2, wv, nu, nonhydro): +def apply_coriolis_matrix_inplace( + u_vec, v_vec, w_vec, U, V, W, wh1, wh2, wv, nu, nonhydro +): """Apply H^-1 matrix multiplication in-place. - + Corresponds to the equation: U^{n+1} = H^{-1}(U^{n*} - Δt_{cp}(Pθ)^* ∇π^{n+1}) """ # Get matrix coefficients @@ -476,12 +483,13 @@ def apply_coriolis_matrix_inplace(u_vec, v_vec, w_vec, U,V,W, wh1, wh2, wv, nu, U[...] = u_vec V[...] = v_vec W[...] = w_vec - + # Matrix multiplication: [U_new, V_new, W_new] = H^-1 @ [U_old, V_old, W_old] u_vec[...] = h11 * U + h12 * V + h13 * W v_vec[...] = h21 * U + h22 * V + h23 * W w_vec[...] = h31 * U + h32 * V + h33 * W + # Refactored main function def multiply_inverse_coriolis( Vec, mem, ud, dt, attrs=("rhou", "rhov", "rhow"), get_coeffs=False @@ -495,49 +503,59 @@ def multiply_inverse_coriolis( strat = mem.mpv.HydroState_n.get_dSdy(mem.elem, mem.node) Y = mem.sol.rhoY / mem.sol.rho nu = -(dt**2) * (g / Msq) * strat * Y - + # Get vector components VecU = getattr(Vec, attrs[0]) VecV = getattr(Vec, attrs[1]) VecW = getattr(Vec, attrs[2]) - U,V,W = mem.cache.get_velocity_array_views(VecU.shape) - - apply_coriolis_matrix_inplace(VecU, VecV, VecW, U,V,W,wh1, wh2, wv, nu, nonhydro) - + U, V, W = mem.cache.get_velocity_array_views(VecU.shape) + + apply_coriolis_matrix_inplace(VecU, VecV, VecW, U, V, W, wh1, wh2, wv, nu, nonhydro) + # Return coefficients if get_coeffs: - h11, h12, _, h21, h22, h23, h31, h32, h33 = _compute_coriolis_coefficients(wh1, wh2, wv, nu, nonhydro) + h11, h12, _, h21, h22, h23, h31, h32, h33 = _compute_coriolis_coefficients( + wh1, wh2, wv, nu, nonhydro + ) return (h11.T, h22.T, h12.T, h21.T) - + def divergence_nodes(rhs, elem, node, Sol, ud): """Main divergence function - handles boundary conditions and calls JIT-compiled core.""" ndim = elem.ndim - + # Handle boundary conditions if not hasattr(ud, "ATMOSPHERIC_EXTENSION"): - if (ud.bdry_type[1] == opts.BdryType.WALL or - ud.bdry_type[1] == opts.BdryType.RAYLEIGH): + if ( + ud.bdry_type[1] == opts.BdryType.WALL + or ud.bdry_type[1] == opts.BdryType.RAYLEIGH + ): Sol.rhou[:, :2, ...] = 0.0 Sol.rhov[:, :2, ...] = 0.0 Sol.rhow[:, :2, ...] = 0.0 Sol.rhou[:, -2:, ...] = 0.0 Sol.rhov[:, -2:, ...] = 0.0 Sol.rhow[:, -2:, ...] = 0.0 - + # Call appropriate JIT-compiled function if ndim == 2: rhs[:] = _momentum_pot_temp_divergence_2d_jit( - Sol.rho, Sol.rhou, Sol.rhov, Sol.rhoY, - elem.dx, elem.dy + Sol.rho, Sol.rhou, Sol.rhov, Sol.rhoY, elem.dx, elem.dy ) else: _momentum_pot_temp_divergence_3d_jit( - rhs, Sol.rho, Sol.rhou, Sol.rhov, Sol.rhow, Sol.rhoY, - elem.dx, elem.dy, elem.dz + rhs, + Sol.rho, + Sol.rhou, + Sol.rhov, + Sol.rhow, + Sol.rhoY, + elem.dx, + elem.dy, + elem.dz, ) - + return rhs @@ -553,7 +571,7 @@ def _momentum_pot_temp_divergence_2d_jit(rho, rhou, rhov, rhoY, dx, dy): # Compute momentum-potential temperature flux components rhou_theta = rhou * theta # x-momentum flux weighted by potential temperature rhov_theta = rhov * theta # y-momentum flux weighted by potential temperature - + # Use generic divergence operator return operators.compute_divergence_2d(rhou_theta, rhov_theta, dx, dy) @@ -573,8 +591,9 @@ def _momentum_pot_temp_divergence_3d_jit(rhs, rho, rhou, rhov, rhow, rhoY, dx, d rhow_theta = rhow * theta # z-momentum flux weighted by potential temperature # Use generic total divergence operator - total_div = operators.compute_divergence_3d_total(rhou_theta, rhov_theta, rhow_theta, dx, dy, dz) + total_div = operators.compute_divergence_3d_total( + rhou_theta, rhov_theta, rhow_theta, dx, dy, dz + ) # Assign to inner region rhs[1:-1, 1:-1, 1:-1] = total_div - diff --git a/src/pybella/flow_solver/utils/boundary.py b/src/pybella/flow_solver/utils/boundary.py index a2dccff7..7e214c70 100644 --- a/src/pybella/flow_solver/utils/boundary.py +++ b/src/pybella/flow_solver/utils/boundary.py @@ -662,22 +662,22 @@ def scale_wall_node_values(rhs, node, ud, factor=0.5): """Scale values at wall boundary nodes by a given factor.""" ndim = node.ndim igs = node.igs - + for dim in range(ndim): # Check if this dimension has wall boundaries is_wall = ( - ud.bdry_type[dim] == opts.BdryType.WALL or - ud.bdry_type[dim] == opts.BdryType.RAYLEIGH + ud.bdry_type[dim] == opts.BdryType.WALL + or ud.bdry_type[dim] == opts.BdryType.RAYLEIGH ) - + if is_wall: # Create index for all dimensions idx = [slice(igs[d], -igs[d]) for d in range(ndim)] - + # Scale first and last interior nodes in this dimension for boundary_idx in [igs[dim], -igs[dim] - 1]: idx[dim] = boundary_idx rhs[tuple(idx)] *= factor # rhs = rhs.at[tuple(idx)].multiply(factor) - - return rhs \ No newline at end of file + + return rhs diff --git a/src/pybella/flow_solver/utils/prepare.py b/src/pybella/flow_solver/utils/prepare.py index 9178de84..eeaecf3a 100644 --- a/src/pybella/flow_solver/utils/prepare.py +++ b/src/pybella/flow_solver/utils/prepare.py @@ -88,15 +88,8 @@ def initialise(): # Initialise cache and add to simulation state flow_cache = var.FlowSolverCache() - ensemble_state.update_member( - elem=elem, - node=node, - sol=sol, - flux=flux, - mpv=mpv, - th=th, - cache=flow_cache + elem=elem, node=node, sol=sol, flux=flux, mpv=mpv, th=th, cache=flow_cache ) restart_params = data_structures.RestartParameters( @@ -118,8 +111,6 @@ def initialise(): interface_params=interface_params, ) - - return sim_st diff --git a/src/pybella/flow_solver/utils/variable.py b/src/pybella/flow_solver/utils/variable.py index 093dff1b..46199653 100644 --- a/src/pybella/flow_solver/utils/variable.py +++ b/src/pybella/flow_solver/utils/variable.py @@ -2,6 +2,7 @@ import scipy as sp import logging + class Vars(object): """ The data container for the solution state variables, i.e. `Sol`. @@ -75,7 +76,7 @@ def primitives(self, th): p : ndarray(size_of_rhoY) """ - with np.errstate(divide='ignore', invalid='ignore'): + with np.errstate(divide="ignore", invalid="ignore"): # Direct division without nonzero indexing # We know that when this method is called in recovery, we always have one column of zeroes in self.rho. self.u[...] = self.rhou / self.rho @@ -83,7 +84,7 @@ def primitives(self, th): self.w[...] = self.rhow / self.rho self.Y[...] = self.rhoY / self.rho self.X[...] = self.rhoX / self.rho - self.p[...] = self.rhoY ** th.gamm + self.p[...] = self.rhoY**th.gamm def flip(self): """ @@ -157,27 +158,27 @@ def get_dSdy(self, elem, node): if not self.init_dSdy: logging.info("Computing dSdy") self.dSdy = sp.signal.convolve(self.S0, [1.0, -1.0], mode="valid") / node.dy - + for dim in range(0, node.ndim, 2): self.dSdy = np.expand_dims(self.dSdy, dim) self.dSdy = np.repeat(self.dSdy, elem.sc[dim], axis=dim) - + self.init_dSdy = True - + return self.dSdy def get_S0c(self, elem): if not self.init_S0c: logging.info("Computing S0c") S0c_result = self.S0 - + for dim in range(0, elem.ndim, 2): S0c_result = np.expand_dims(S0c_result, dim) S0c_result = np.repeat(S0c_result, elem.sc[dim], axis=dim) - + self.S0c = S0c_result self.init_S0c = True - + return self.S0c @@ -225,65 +226,64 @@ def squeezer(self): class FlowSolverCache: """Cache for flow solver specific computations.""" - + def __init__(self): self._recovery_cache = {} self._velocity_cache = {} - + def get_recovery_objects(self, shape, ud): """Get cached recovery objects or create new ones.""" - + cache_key = (tuple(shape), id(ud)) if cache_key not in self._recovery_cache: logging.info("Cache: Creating new recovery objects with shape %s", shape) self._recovery_cache[cache_key] = { - 'Diffs': Characters(shape), - 'Ampls': Characters(shape), - 'Lefts': States(shape, ud), - 'Rights': States(shape, ud), - 'Slopes': Characters(shape), + "Diffs": Characters(shape), + "Ampls": Characters(shape), + "Lefts": States(shape, ud), + "Rights": States(shape, ud), + "Slopes": Characters(shape), } - + # Reset objects if they have reset methods cache_obj = self._recovery_cache[cache_key] # for obj in cache_obj.values(): # if hasattr(obj, 'zero'): # obj.zero() - + return cache_obj - + def get_velocity_arrays(self, shape, dtype=np.float64): """Get cached velocity arrays (U, V, W) or create new ones.""" - + cache_key = (tuple(shape), dtype) - + if cache_key not in self._velocity_cache: logging.info("Cache: Creating new velocity arrays with shape %s", shape) self._velocity_cache[cache_key] = { - 'U': np.zeros(shape, dtype=dtype), - 'V': np.zeros(shape, dtype=dtype), - 'W': np.zeros(shape, dtype=dtype) + "U": np.zeros(shape, dtype=dtype), + "V": np.zeros(shape, dtype=dtype), + "W": np.zeros(shape, dtype=dtype), } - + # Clear arrays for reuse cache_obj = self._velocity_cache[cache_key] # for arr in cache_obj.values(): # arr.fill(0.0) - + return cache_obj - + def get_velocity_array_views(self, shape, dtype=np.float64): """Get views of cached velocity arrays for in-place operations.""" cache_obj = self.get_velocity_arrays(shape, dtype) - - return cache_obj['U'], cache_obj['V'], cache_obj['W'] - + + return cache_obj["U"], cache_obj["V"], cache_obj["W"] + def clear_velocity_cache(self): """Clear velocity cache to free memory.""" self._velocity_cache.clear() - + def clear_all(self): """Clear all caches to free memory.""" self._recovery_cache.clear() self._velocity_cache.clear() - diff --git a/src/pybella/tests/test_travelling_vortex.py b/src/pybella/tests/test_travelling_vortex.py index 08b86ebb..5ea98e4f 100644 --- a/src/pybella/tests/test_travelling_vortex.py +++ b/src/pybella/tests/test_travelling_vortex.py @@ -333,4 +333,4 @@ def T_from_p_rho(p, rho): class obj(object): - pass \ No newline at end of file + pass diff --git a/src/pybella/utils/data_structures.py b/src/pybella/utils/data_structures.py index e00b9f0a..3bee39c5 100644 --- a/src/pybella/utils/data_structures.py +++ b/src/pybella/utils/data_structures.py @@ -72,7 +72,7 @@ def update_member( mpv: MPV, flux: List[Vars], th: ThermodynamicalQuantities, - cache: Optional[FlowSolverCache] = None + cache: Optional[FlowSolverCache] = None, ): if cache is None: cache = FlowSolverCache() diff --git a/src/pybella/utils/operators.py b/src/pybella/utils/operators.py index 37e9a0a3..a06f4a6d 100644 --- a/src/pybella/utils/operators.py +++ b/src/pybella/utils/operators.py @@ -3,39 +3,36 @@ from numba import njit from functools import lru_cache + @lru_cache(maxsize=2) def get_flux_convolution_kernels(ndim): """Create convolution kernels for advective flux computation. - + Parameters ---------- ndim : int Number of dimensions (2 or 3) - + Returns ------- dict Dictionary containing kernels for each direction - + Notes ----- Results are cached since kernels don't change during computation. """ if ndim == 2: kernel_u = np.array([[0.5, 1.0, 0.5], [0.5, 1.0, 0.5]]) - return { - 'u': kernel_u, - 'v': kernel_u.T - } + return {"u": kernel_u, "v": kernel_u.T} elif ndim == 3: - kernel_u = np.array([ - [[1, 2, 1], [2, 4, 2], [1, 2, 1]], - [[1, 2, 1], [2, 4, 2], [1, 2, 1]] - ]) + kernel_u = np.array( + [[[1, 2, 1], [2, 4, 2], [1, 2, 1]], [[1, 2, 1], [2, 4, 2], [1, 2, 1]]] + ) return { - 'u': kernel_u, - 'v': np.swapaxes(kernel_u, 1, 0), - 'w': np.swapaxes(kernel_u, 2, 0) + "u": kernel_u, + "v": np.swapaxes(kernel_u, 1, 0), + "w": np.swapaxes(kernel_u, 2, 0), } else: raise ValueError(f"Unsupported dimension: {ndim}") @@ -73,22 +70,23 @@ def get_averaging_kernel(ndim, width=3, normalize=True): return kernel + @njit(cache=True) def _numba_convolve_2d(data, kernel): """Numba-compiled 2D convolution for better performance.""" data_h, data_w = data.shape kernel_h, kernel_w = kernel.shape - + result_h = data_h - kernel_h + 1 result_w = data_w - kernel_w + 1 result = np.zeros((result_h, result_w)) - + for i in range(result_h): for j in range(result_w): for ki in range(kernel_h): for kj in range(kernel_w): result[i, j] += data[i + ki, j + kj] * kernel[ki, kj] - + return result @@ -97,26 +95,30 @@ def _numba_convolve_3d(data, kernel): """Numba-compiled 3D convolution for better performance.""" data_d, data_h, data_w = data.shape kernel_d, kernel_h, kernel_w = kernel.shape - + result_d = data_d - kernel_d + 1 result_h = data_h - kernel_h + 1 result_w = data_w - kernel_w + 1 result = np.zeros((result_d, result_h, result_w)) - + for i in range(result_d): for j in range(result_h): for k in range(result_w): for ki in range(kernel_d): for kj in range(kernel_h): for kk in range(kernel_w): - result[i, j, k] += data[i + ki, j + kj, k + kk] * kernel[ki, kj, kk] - + result[i, j, k] += ( + data[i + ki, j + kj, k + kk] * kernel[ki, kj, kk] + ) + return result -def apply_convolution_kernel(data, kernel, normalize=True, axis_swap=None, use_numba=True): +def apply_convolution_kernel( + data, kernel, normalize=True, axis_swap=None, use_numba=True +): """Apply convolution kernel with optional normalization and axis swapping. - + Parameters ---------- data : np.ndarray @@ -129,12 +131,12 @@ def apply_convolution_kernel(data, kernel, normalize=True, axis_swap=None, use_n Tuple of (from_axis, to_axis) for np.moveaxis use_numba : bool, default=True Whether to use Numba-compiled convolution (faster for repeated calls) - + Returns ------- np.ndarray Convolved result - + Notes ----- For large arrays or single calls, scipy.signal.fftconvolve might be faster. @@ -148,32 +150,32 @@ def apply_convolution_kernel(data, kernel, normalize=True, axis_swap=None, use_n else: # Fallback to scipy for other dimensions or when requested result = sp.signal.fftconvolve(data, kernel, mode="valid") - + if normalize: result = result / kernel.sum() - + if axis_swap is not None: result = np.moveaxis(result, axis_swap[0], axis_swap[1]) - + return result # Configuration for directional convolutions DIRECTION_CONFIG = { - 2: { - 'u': {'axis_swap': (0, -1)}, - 'v': {'axis_swap': None} - }, + 2: {"u": {"axis_swap": (0, -1)}, "v": {"axis_swap": None}}, 3: { - 'u': {'axis_swap': (0, -1)}, - 'v': {'axis_swap': (-1, 0)}, - 'w': {'axis_swap': None} - } + "u": {"axis_swap": (0, -1)}, + "v": {"axis_swap": (-1, 0)}, + "w": {"axis_swap": None}, + }, } -def apply_directional_convolution(data, kernel, direction, ndim, normalize=True, use_numba=True): + +def apply_directional_convolution( + data, kernel, direction, ndim, normalize=True, use_numba=True +): """Apply convolution kernel for a specific direction with appropriate axis swapping. - + Parameters ---------- data : np.ndarray @@ -188,7 +190,7 @@ def apply_directional_convolution(data, kernel, direction, ndim, normalize=True, Whether to normalize by kernel sum use_numba : bool, default=True Whether to use Numba-compiled convolution - + Returns ------- np.ndarray @@ -196,13 +198,14 @@ def apply_directional_convolution(data, kernel, direction, ndim, normalize=True, """ if direction not in DIRECTION_CONFIG[ndim]: raise ValueError(f"Direction '{direction}' not supported for {ndim}D") - + config = DIRECTION_CONFIG[ndim][direction] return apply_convolution_kernel( - data, kernel, - normalize=normalize, - axis_swap=config['axis_swap'], - use_numba=use_numba + data, + kernel, + normalize=normalize, + axis_swap=config["axis_swap"], + use_numba=use_numba, ) @@ -210,18 +213,18 @@ def apply_directional_convolution(data, kernel, direction, ndim, normalize=True, def compute_divergence_2d(u_field, v_field, dx, dy): """ Compute 2D divergence: ∇·F = ∂u/∂x + ∂v/∂y - + Parameters ---------- u_field : np.ndarray Field component in x-direction - v_field : np.ndarray + v_field : np.ndarray Field component in y-direction dx : float Grid spacing in x-direction dy : float Grid spacing in y-direction - + Returns ------- np.ndarray @@ -231,12 +234,12 @@ def compute_divergence_2d(u_field, v_field, dx, dy): div_x = finite_difference_1d(u_field, dx, axis=0) # Average to y-cell centers div_x = 0.5 * (div_x[:, :-1] + div_x[:, 1:]) - - # Y-direction: ∂v/∂y + + # Y-direction: ∂v/∂y div_y = finite_difference_1d(v_field, dy, axis=1) # Average to x-cell centers div_y = 0.5 * (div_y[:-1, :] + div_y[1:, :]) - + return div_x + div_y @@ -244,13 +247,13 @@ def compute_divergence_2d(u_field, v_field, dx, dy): def compute_divergence_3d(u_field, v_field, w_field, dx, dy, dz): """ Compute 3D divergence: ∇·F = ∂u/∂x + ∂v/∂y + ∂w/∂z - + Parameters ---------- u_field : np.ndarray Field component in x-direction v_field : np.ndarray - Field component in y-direction + Field component in y-direction w_field : np.ndarray Field component in z-direction dx : float @@ -259,7 +262,7 @@ def compute_divergence_3d(u_field, v_field, w_field, dx, dy, dz): Grid spacing in y-direction dz : float Grid spacing in z-direction - + Returns ------- tuple @@ -270,19 +273,19 @@ def compute_divergence_3d(u_field, v_field, w_field, dx, dy, dz): # Average to y-cell centers, then to z-faces div_x = 0.5 * (div_x[:, :-1, :] + div_x[:, 1:, :]) div_x = -0.5 * (div_x[:, :, :-1] + div_x[:, :, 1:]) # Note: negative from original - + # Y-direction: ∂v/∂y div_y = finite_difference_1d(v_field, dy, axis=1) # Average to x-cell centers, then to z-faces div_y = 0.5 * (div_y[:-1, :, :] + div_y[1:, :, :]) div_y = 0.5 * (div_y[:, :, :-1] + div_y[:, :, 1:]) - + # Z-direction: ∂w/∂z div_z = finite_difference_1d(w_field, dz, axis=2) # Average to cell centers div_z = 0.5 * (div_z[:-1, :, :] + div_z[1:, :, :]) div_z = 0.5 * (div_z[:, :-1, :] + div_z[:, 1:, :]) - + return div_x, div_y, div_z @@ -290,13 +293,13 @@ def compute_divergence_3d(u_field, v_field, w_field, dx, dy, dz): def compute_divergence_3d_total(u_field, v_field, w_field, dx, dy, dz): """ Compute total 3D divergence: ∇·F = ∂u/∂x + ∂v/∂y + ∂w/∂z - + Parameters ---------- u_field : np.ndarray Field component in x-direction v_field : np.ndarray - Field component in y-direction + Field component in y-direction w_field : np.ndarray Field component in z-direction dx : float @@ -305,7 +308,7 @@ def compute_divergence_3d_total(u_field, v_field, w_field, dx, dy, dz): Grid spacing in y-direction dz : float Grid spacing in z-direction - + Returns ------- np.ndarray @@ -319,7 +322,7 @@ def compute_divergence_3d_total(u_field, v_field, w_field, dx, dy, dz): def finite_difference_1d(field, spacing, axis=0): """ Compute 1D finite difference along specified axis. - + Parameters ---------- field : np.ndarray @@ -328,7 +331,7 @@ def finite_difference_1d(field, spacing, axis=0): Grid spacing axis : int, default=0 Axis along which to compute difference - + Returns ------- np.ndarray @@ -352,19 +355,20 @@ def finite_difference_1d(field, spacing, axis=0): raise ValueError("axis must be 0, 1, or 2 for 3D arrays") else: raise ValueError("field must be 2D or 3D array") - + + # @njit def average_to_centers_2d(field, axis): """ Average field values to cell centers along specified axis. - + Parameters ---------- field : np.ndarray Input field (2D) axis : int Axis along which to average (0 or 1) - + Returns ------- np.ndarray @@ -382,14 +386,14 @@ def average_to_centers_2d(field, axis): def average_to_centers_3d(field, axis): """ Average field values to cell centers along specified axis. - + Parameters ---------- field : np.ndarray Input field (3D) axis : int Axis along which to average (0, 1, or 2) - + Returns ------- np.ndarray @@ -409,7 +413,7 @@ def average_to_centers_3d(field, axis): def compute_gradient_2d(field, dx, dy): """ Compute 2D gradient: ∇φ = (∂φ/∂x, ∂φ/∂y) - + Parameters ---------- field : np.ndarray @@ -418,7 +422,7 @@ def compute_gradient_2d(field, dx, dy): Grid spacing in x-direction dy : float Grid spacing in y-direction - + Returns ------- tuple @@ -426,7 +430,7 @@ def compute_gradient_2d(field, dx, dy): """ grad_x = finite_difference_1d(field, dx, axis=0) grad_y = finite_difference_1d(field, dy, axis=1) - + return grad_x, grad_y @@ -434,7 +438,7 @@ def compute_gradient_2d(field, dx, dy): def compute_gradient_3d(field, dx, dy, dz): """ Compute 3D gradient: ∇φ = (∂φ/∂x, ∂φ/∂y, ∂φ/∂z) - + Parameters ---------- field : np.ndarray @@ -445,7 +449,7 @@ def compute_gradient_3d(field, dx, dy, dz): Grid spacing in y-direction dz : float Grid spacing in z-direction - + Returns ------- tuple @@ -454,7 +458,7 @@ def compute_gradient_3d(field, dx, dy, dz): grad_x = finite_difference_1d(field, dx, axis=0) grad_y = finite_difference_1d(field, dy, axis=1) grad_z = finite_difference_1d(field, dz, axis=2) - + return grad_x, grad_y, grad_z @@ -462,41 +466,43 @@ def compute_gradient_3d(field, dx, dy, dz): # Compute gradient at nodes ####### + @njit(cache=True) def _compute_grad_nodes_2d(p, dx, dy): """Compute 2D gradient at nodes using corner averaging.""" # Pre-computed signs for each corner signs_x = np.array([-1.0, -1.0, +1.0, +1.0]) signs_y = np.array([-1.0, +1.0, -1.0, +1.0]) - + # Initialize gradient components Dpx = np.zeros((p.shape[0] - 1, p.shape[1] - 1)) Dpy = np.zeros((p.shape[0] - 1, p.shape[1] - 1)) - + # Corner contributions # Bottom-left Dpx += signs_x[0] * p[0:-1, 0:-1] Dpy += signs_y[0] * p[0:-1, 0:-1] - + # Bottom-right Dpx += signs_x[1] * p[0:-1, 1:] Dpy += signs_y[1] * p[0:-1, 1:] - + # Top-left Dpx += signs_x[2] * p[1:, 0:-1] Dpy += signs_y[2] * p[1:, 0:-1] - + # Top-right Dpx += signs_x[3] * p[1:, 1:] Dpy += signs_y[3] * p[1:, 1:] - + # Apply scaling factors scale_factor = 0.5 ** (2 - 1) # 0.5^(ndim-1) Dpx *= scale_factor / dx Dpy *= scale_factor / dy - + return Dpx, Dpy + @njit(cache=True) def _compute_grad_nodes_3d(p, dx, dy, dz): """Compute 3D gradient at nodes using corner averaging.""" @@ -504,66 +510,67 @@ def _compute_grad_nodes_3d(p, dx, dy, dz): signs_x = np.array([-1.0, -1.0, -1.0, -1.0, +1.0, +1.0, +1.0, +1.0]) signs_y = np.array([-1.0, -1.0, +1.0, +1.0, -1.0, -1.0, +1.0, +1.0]) signs_z = np.array([-1.0, +1.0, -1.0, +1.0, -1.0, +1.0, -1.0, +1.0]) - + # Initialize gradient components Dpx = np.zeros((p.shape[0] - 1, p.shape[1] - 1, p.shape[2] - 1)) Dpy = np.zeros((p.shape[0] - 1, p.shape[1] - 1, p.shape[2] - 1)) Dpz = np.zeros((p.shape[0] - 1, p.shape[1] - 1, p.shape[2] - 1)) - + # Corner contributions (8 corners for 3D) # Bottom-left-back Dpx += signs_x[0] * p[0:-1, 0:-1, 0:-1] Dpy += signs_y[0] * p[0:-1, 0:-1, 0:-1] Dpz += signs_z[0] * p[0:-1, 0:-1, 0:-1] - + # Bottom-left-front Dpx += signs_x[1] * p[0:-1, 0:-1, 1:] Dpy += signs_y[1] * p[0:-1, 0:-1, 1:] Dpz += signs_z[1] * p[0:-1, 0:-1, 1:] - + # Bottom-right-back Dpx += signs_x[2] * p[0:-1, 1:, 0:-1] Dpy += signs_y[2] * p[0:-1, 1:, 0:-1] Dpz += signs_z[2] * p[0:-1, 1:, 0:-1] - + # Bottom-right-front Dpx += signs_x[3] * p[0:-1, 1:, 1:] Dpy += signs_y[3] * p[0:-1, 1:, 1:] Dpz += signs_z[3] * p[0:-1, 1:, 1:] - + # Top-left-back Dpx += signs_x[4] * p[1:, 0:-1, 0:-1] Dpy += signs_y[4] * p[1:, 0:-1, 0:-1] Dpz += signs_z[4] * p[1:, 0:-1, 0:-1] - + # Top-left-front Dpx += signs_x[5] * p[1:, 0:-1, 1:] Dpy += signs_y[5] * p[1:, 0:-1, 1:] Dpz += signs_z[5] * p[1:, 0:-1, 1:] - + # Top-right-back Dpx += signs_x[6] * p[1:, 1:, 0:-1] Dpy += signs_y[6] * p[1:, 1:, 0:-1] Dpz += signs_z[6] * p[1:, 1:, 0:-1] - + # Top-right-front Dpx += signs_x[7] * p[1:, 1:, 1:] Dpy += signs_y[7] * p[1:, 1:, 1:] Dpz += signs_z[7] * p[1:, 1:, 1:] - + # Apply scaling factors scale_factor = 0.5 ** (3 - 1) # 0.5^(ndim-1) Dpx *= scale_factor / dx Dpy *= scale_factor / dy Dpz *= scale_factor / dz - + return Dpx, Dpy, Dpz + @njit(cache=True) def compute_gradient_nodes_2d(p, dx, dy): """ Compute gradient at nodes using finite difference averaging. - + Parameters ---------- p : np.ndarray @@ -572,12 +579,12 @@ def compute_gradient_nodes_2d(p, dx, dy): Grid spacing in x-direction dy : float Grid spacing in y-direction - + Returns ------- tuple (grad_x, grad_y) - Gradient components at nodes - + Notes ----- The gradient is computed at nodes by averaging contributions from @@ -585,11 +592,12 @@ def compute_gradient_nodes_2d(p, dx, dy): """ return _compute_grad_nodes_2d(p, dx, dy) + @njit(cache=True) def compute_gradient_nodes_3d(p, dx, dy, dz): """ Compute gradient at nodes using finite difference averaging. - + Parameters ---------- p : np.ndarray @@ -600,12 +608,12 @@ def compute_gradient_nodes_3d(p, dx, dy, dz): Grid spacing in y-direction dz : float Grid spacing in z-direction - + Returns ------- tuple (grad_x, grad_y, grad_z) - Gradient components at nodes - + Notes ----- The gradient is computed at nodes by averaging contributions from @@ -613,10 +621,11 @@ def compute_gradient_nodes_3d(p, dx, dy, dz): """ return _compute_grad_nodes_3d(p, dx, dy, dz) + def compute_gradient_nodes(p, ndim, dxy): """ Compute gradient at nodes using finite difference averaging. - + Parameters ---------- p : np.ndarray @@ -625,13 +634,13 @@ def compute_gradient_nodes(p, ndim, dxy): Number of dimensions (2 or 3) dxy : tuple Grid spacings (dx, dy, dz) - + Returns ------- tuple Gradient components at nodes. For 2D: (grad_x, grad_y, zeros) For 3D: (grad_x, grad_y, grad_z) - + Notes ----- This is the main interface function that dispatches to the appropriate @@ -639,7 +648,7 @@ def compute_gradient_nodes(p, ndim, dxy): consistency, with the z-component being zero for 2D cases. """ dx, dy, dz = dxy - + if ndim == 2: grad_x, grad_y = compute_gradient_nodes_2d(p, dx, dy) grad_z = np.zeros_like(grad_x) @@ -647,4 +656,4 @@ def compute_gradient_nodes(p, ndim, dxy): elif ndim == 3: return compute_gradient_nodes_3d(p, dx, dy, dz) else: - raise ValueError(f"Unsupported dimension: {ndim}") \ No newline at end of file + raise ValueError(f"Unsupported dimension: {ndim}") diff --git a/src/pybella/utils/slices.py b/src/pybella/utils/slices.py index b53a51bc..7a89ba33 100644 --- a/src/pybella/utils/slices.py +++ b/src/pybella/utils/slices.py @@ -1,12 +1,11 @@ - def get_neighbor_indices(ndim): """Create left and right neighbor indices for n-dimensional arrays.""" lefts_idx = [slice(None)] * ndim rights_idx = [slice(None)] * ndim - + lefts_idx[-1] = slice(0, -1) rights_idx[-1] = slice(1, None) - + return tuple(lefts_idx), tuple(rights_idx) @@ -14,6 +13,7 @@ def get_inner_slice(ndim): """Get slice tuple for inner cells (excluding outermost ghost cells).""" return tuple([slice(1, -1)] * ndim) + def get_last_dim_inner_slice(ndim): """Get slice for inner faces in the last dimension only.""" idx = [slice(None)] * ndim @@ -24,35 +24,35 @@ def get_last_dim_inner_slice(ndim): def get_interface_indices(ndim): """ Get complete set of indices for interface calculations. - + Parameters ---------- ndim : int Number of dimensions - + Returns ------- tuple (lefts_idx, rights_idx, inner_idx) where: - lefts_idx: indices for left neighbors - - rights_idx: indices for right neighbors + - rights_idx: indices for right neighbors - inner_idx: indices for inner cells (face_inner_idx) """ lefts_idx, rights_idx = get_neighbor_indices(ndim) inner_idx = get_inner_slice(ndim) - + return lefts_idx, rights_idx, inner_idx def get_all_slice_indices(ndim): """ Get all commonly used slice indices for finite volume calculations. - + Parameters ---------- ndim : int Number of dimensions - + Returns ------- dict @@ -63,27 +63,26 @@ def get_all_slice_indices(ndim): - 'face_inner': face inner indices (alias for inner) """ lefts_idx, rights_idx, inner_idx = get_interface_indices(ndim) - + return { - 'lefts': lefts_idx, - 'rights': rights_idx, - 'inner': inner_idx, - 'face_inner': inner_idx # alias for clarity in interface flux calculations + "lefts": lefts_idx, + "rights": rights_idx, + "inner": inner_idx, + "face_inner": inner_idx, # alias for clarity in interface flux calculations } - def get_averaging_indices(ndim, axis): """ Get indices for averaging along a specific axis. - + Parameters ---------- ndim : int Number of dimensions axis : int Axis along which to average - + Returns ------- tuple @@ -91,17 +90,17 @@ def get_averaging_indices(ndim, axis): """ left_idx = [slice(None)] * ndim right_idx = [slice(None)] * ndim - + left_idx[axis] = slice(0, -1) right_idx[axis] = slice(1, None) - + return tuple(left_idx), tuple(right_idx) def get_periodic_inner_slice(igs, is_periodic, ndim): """ Get inner slice accounting for periodic boundary conditions. - + Parameters ---------- igs : array-like @@ -110,7 +109,7 @@ def get_periodic_inner_slice(igs, is_periodic, ndim): Boolean array indicating periodic boundaries ndim : int Number of dimensions - + Returns ------- tuple @@ -119,21 +118,25 @@ def get_periodic_inner_slice(igs, is_periodic, ndim): inner_idx = [] for dim in range(ndim): start = igs[dim] - int(is_periodic[dim]) - end = -igs[dim] + int(is_periodic[dim]) if igs[dim] > int(is_periodic[dim]) else None + end = ( + -igs[dim] + int(is_periodic[dim]) + if igs[dim] > int(is_periodic[dim]) + else None + ) inner_idx.append(slice(start, end)) - + return tuple(inner_idx) def get_face_center_averaging_indices(ndim): """ Get indices for averaging finite difference results to face centers. - + Parameters ---------- ndim : int Number of dimensions - + Returns ------- dict @@ -141,23 +144,23 @@ def get_face_center_averaging_indices(ndim): or 'y_avg', 'x_avg', 'z_avg' for 3D averaging operations """ indices = {} - + if ndim >= 2: # For averaging in y-direction (axis=1) - indices['y_avg'] = (slice(None, -1), slice(None)) - indices['y_avg_right'] = (slice(1, None), slice(None)) - - # For averaging in x-direction (axis=0) - indices['x_avg'] = (slice(None), slice(None, -1)) - indices['x_avg_right'] = (slice(None), slice(1, None)) - + indices["y_avg"] = (slice(None, -1), slice(None)) + indices["y_avg_right"] = (slice(1, None), slice(None)) + + # For averaging in x-direction (axis=0) + indices["x_avg"] = (slice(None), slice(None, -1)) + indices["x_avg_right"] = (slice(None), slice(1, None)) + if ndim == 3: # For averaging in z-direction (axis=2) - indices['z_avg'] = (slice(None), slice(None), slice(None, -1)) - indices['z_avg_right'] = (slice(None), slice(None), slice(1, None)) - + indices["z_avg"] = (slice(None), slice(None), slice(None, -1)) + indices["z_avg_right"] = (slice(None), slice(None), slice(1, None)) + # 3D specific averaging combinations - indices['xy_avg'] = (slice(None, -1), slice(None, -1), slice(None)) - indices['xy_avg_right'] = (slice(1, None), slice(1, None), slice(None)) - - return indices \ No newline at end of file + indices["xy_avg"] = (slice(None, -1), slice(None, -1), slice(None)) + indices["xy_avg_right"] = (slice(1, None), slice(1, None), slice(None)) + + return indices From 864c3d6587a7376f9967644210f0b878bb3e0036 Mon Sep 17 00:00:00 2001 From: raychew Date: Mon, 16 Jun 2025 00:35:48 -0700 Subject: [PATCH 02/35] removed second_projection.rhs_from_p_old since this function is no longer used --- .../physics/low_mach/second_projection.py | 48 ++----------------- 1 file changed, 4 insertions(+), 44 deletions(-) diff --git a/src/pybella/flow_solver/physics/low_mach/second_projection.py b/src/pybella/flow_solver/physics/low_mach/second_projection.py index c686aa2d..d9d9f99a 100644 --- a/src/pybella/flow_solver/physics/low_mach/second_projection.py +++ b/src/pybella/flow_solver/physics/low_mach/second_projection.py @@ -180,15 +180,16 @@ def euler_backward_non_advective_impl_part( rhs /= dt if ud.is_compressible == 1: - rhs = rhs_from_p_old(rhs, node, mpv) + # rhs = rhs_from_p_old(rhs, node, mpv) + rhs = rhs # if elif ud.is_compressible == 0: if ud.is_ArakawaKonor: rhs -= mpv.wcenter * mpv.dp2_nodes mpv.wcenter[...] = 0.0 else: - rhs_new = rhs_from_p_old(rhs, node, mpv) - rhs = ud.compressibility * rhs_new + (1.0 - ud.compressibility) * rhs + # rhs_new = rhs_from_p_old(rhs, node, mpv) + rhs = ud.compressibility * rhs + (1.0 - ud.compressibility) * rhs mpv.wcenter[...] *= ud.compressibility else: mpv.wcenter *= ud.compressibility @@ -358,16 +359,10 @@ def operator_coefficients_nodes(elem, node, Sol, mpv, ud, th, dt): Gammainv = th.Gammainv ndim = node.ndim - nonhydro = ud.nonhydrostasy - dy = elem.dy - - wh1, wv, wh2 = dt * ud.coriolis_strength ccenter = -ud.Msq * th.gm1inv / (dt**2) cexp = 2.0 - th.gamm - igs = elem.igs - strat = mpv.HydroState_n.get_dSdy(elem, node) Y = Sol.rhoY / Sol.rho @@ -394,45 +389,10 @@ def operator_coefficients_nodes(elem, node, Sol, mpv, ud, th, dt): / kernel.sum() ) - tmp_wplus = sp.signal.fftconvolve(mpv.wplus[0], kernel, mode="valid") / kernel.sum() - - # set_ghostcells_p2(mpv.wplus[0], elem, ud) - # set_ghostcells_p2(mpv.wplus[1], elem, ud) - # set_ghostnodes_p2(mpv.wcenter, node, ud, igs=(1,1)) - # mpv.wcenter[:,0] = mpv.wcenter[:,1] - # mpv.wcenter[:,-1] = mpv.wcenter[:,-2] - - assert True if not hasattr(ud, "ATMOSPHERIC_EXTENSION"): bdry.scale_wall_node_values(mpv.wcenter, node, ud) -def rhs_from_p_old(rhs, node, mpv): - igs = node.igs - ndim = node.ndim - - assert ndim != 1, "Not implemented for 1D" - - # inner_idx = np.empty((ndim), dtype=object) - # for dim in range(ndim): - # inner_idx[dim] = slice(igs[dim],-igs[dim]) - - # inner_idx = tuple(inner_idx) - # rhs_n = np.zeros_like(rhs) - # rhs_hh = mpv.wcenter[inner_idx] * mpv.p2_nodes[inner_idx] - # rhs_n[inner_idx] = rhs[inner_idx] + 0.0 * rhs_hh - - inner_idx = np.empty((ndim), dtype=object) - for dim in range(ndim): - inner_idx[dim] = slice(igs[dim], -igs[dim]) - - inner_idx = tuple(inner_idx) - rhs_n = np.zeros_like(rhs) - rhs_hh = mpv.wcenter * mpv.p2_nodes[node.i1] - rhs_n = rhs + 0.0 * rhs_hh - return rhs_n - - @njit(cache=True) def _compute_coriolis_coefficients(wh1, wh2, wv, nu, nonhydro): """Compute coefficients for the H^-1 matrix multiplication. From 86e68e560042a5ef7a6306b05972df9798a22b34 Mon Sep 17 00:00:00 2001 From: raychew Date: Mon, 16 Jun 2025 12:17:15 -0700 Subject: [PATCH 03/35] refactored second_projection.operator_coefficient_nodes and correction_nodes --- .../physics/low_mach/second_projection.py | 52 +++++++------------ 1 file changed, 18 insertions(+), 34 deletions(-) diff --git a/src/pybella/flow_solver/physics/low_mach/second_projection.py b/src/pybella/flow_solver/physics/low_mach/second_projection.py index d9d9f99a..a717bb1b 100644 --- a/src/pybella/flow_solver/physics/low_mach/second_projection.py +++ b/src/pybella/flow_solver/physics/low_mach/second_projection.py @@ -150,10 +150,10 @@ def euler_backward_non_advective_impl_part( if Sol0 is not None: bdry.set_explicit_boundary_data(Sol0, elem, ud, th, mpv) - operator_coefficients_nodes(elem, node, Sol0, mpv, ud, th, dt) + operator_coefficients_nodes(mem, ud, dt) else: bdry.set_explicit_boundary_data(Sol, elem, ud, th, mpv) - operator_coefficients_nodes(elem, node, Sol, mpv, ud, th, dt) + operator_coefficients_nodes(mem, ud, dt) i0 = node.ndim * [slice(0, -1)] i0 = tuple(i0) @@ -339,9 +339,9 @@ def correction_nodes(mem, ud, dt, p, updt_chi): Y = mem.sol.rhoY / mem.sol.rho coeff = Gammainv * mem.sol.rhoY * Y - mem.mpv.u = -dt * coeff * Dpx - mem.mpv.v = -dt * coeff * Dpy - mem.mpv.w = -dt * coeff * Dpz + mem.mpv.u[...] = -dt * coeff * Dpx + mem.mpv.v[...] = -dt * coeff * Dpy + mem.mpv.w[...] = -dt * coeff * Dpz multiply_inverse_coriolis(mem.mpv, mem, ud, dt, attrs=["u", "v", "w"]) @@ -353,44 +353,28 @@ def correction_nodes(mem, ud, dt, p, updt_chi): assert True -def operator_coefficients_nodes(elem, node, Sol, mpv, ud, th, dt): - g = ud.gravity_strength[1] - Msq = ud.Msq - Gammainv = th.Gammainv - - ndim = node.ndim - - ccenter = -ud.Msq * th.gm1inv / (dt**2) - cexp = 2.0 - th.gamm - - strat = mpv.HydroState_n.get_dSdy(elem, node) - - Y = Sol.rhoY / Sol.rho - coeff = Gammainv * Sol.rhoY * Y +def operator_coefficients_nodes(mem, ud, dt): + Gammainv = mem.th.Gammainv + ndim = mem.node.ndim - nu = np.zeros_like(mpv.wcenter) - nu = -(dt**2) * (g / Msq) * strat * Y + ccenter = -ud.Msq * mem.th.gm1inv / (dt**2) + cexp = 2.0 - mem.th.gamm - setattr(mpv, "nu_c", nu) - nu = nu + Y = mem.sol.rhoY / mem.sol.rho + coeff = Gammainv * mem.sol.rhoY * Y for dim in range(ndim): - ## Assuming 2D vertical slice! - if dim == 1: - mpv.wplus[dim][...] = coeff # * gimp #* (wv**2 + 1.0) - else: - mpv.wplus[dim][...] = coeff # * fimp #* (wh1**2 + nu + nonhydro) + mem.mpv.wplus[dim][...] = coeff - kernel = np.ones([2] * ndim) + kernel = operators.get_averaging_kernel(ndim, width=2) - mpv.wcenter = ( - ccenter - * sp.signal.fftconvolve(Sol.rhoY**cexp, kernel, mode="valid") - / kernel.sum() + mem.mpv.wcenter = ccenter * operators.apply_convolution_kernel( + mem.sol.rhoY**cexp, + kernel ) if not hasattr(ud, "ATMOSPHERIC_EXTENSION"): - bdry.scale_wall_node_values(mpv.wcenter, node, ud) + bdry.scale_wall_node_values(mem.mpv.wcenter, mem.node, ud) @njit(cache=True) From 41685d3dab523a6fe566aa542421d60254f3726f Mon Sep 17 00:00:00 2001 From: raychew Date: Mon, 16 Jun 2025 12:17:34 -0700 Subject: [PATCH 04/35] laplacian.py: caching laplace stencil for profiling --- src/pybella/flow_solver/physics/low_mach/laplacian.py | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/src/pybella/flow_solver/physics/low_mach/laplacian.py b/src/pybella/flow_solver/physics/low_mach/laplacian.py index dcc1821b..be11049c 100644 --- a/src/pybella/flow_solver/physics/low_mach/laplacian.py +++ b/src/pybella/flow_solver/physics/low_mach/laplacian.py @@ -660,7 +660,7 @@ def stencil_9pt_numba_test(mpv, node, coriolis, diag_inv, ud): ) -@nb.jit(nopython=True, cache=False) +@nb.jit(nopython=True, cache=True) def lap2D_numba_test(p, dp, dx, dy, coeffs, diag_inv, coriolis, shp): p = p.reshape(shp[1], shp[0]) dp[1:-1, 1:-1] = p @@ -1672,15 +1672,6 @@ def precon_diag_prepare(mpv, elem, node, ud, coriolis): diag_kernel = np.array(np.ones([2] * ndim)) - # diag = np.zeros((node.sc)).squeeze() - # diag[idx_n] = -wx * signal.fftconvolve(hplusx[idx_e],diag_kernel,mode='full')[idx_periodic] - # diag[idx_n] -= wy * signal.fftconvolve(hplusy[idx_e],diag_kernel,mode='full')[idx_periodic] - # if ndim == 3: - # diag[idx_n] -= wz * signal.fftconvolve(hplusz[idx_e],diag_kernel,mode='full')[idx_periodic] - - # diag[idx_n] += mpv.wcenter[idx_n] - # diag[idx_n] = 1.0 / diag[idx_n] - diag = np.zeros_like(mpv.wcenter) diag[...] = -wxx * sp.signal.fftconvolve(hplusxx, diag_kernel, mode="valid") diag[...] -= wyy * sp.signal.fftconvolve(hplusyy, diag_kernel, mode="valid") From 73734e3c85e53b8689242f159e7170861d527eb0 Mon Sep 17 00:00:00 2001 From: raychew Date: Mon, 16 Jun 2025 12:19:27 -0700 Subject: [PATCH 05/35] updated .gitignore --- .gitignore | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 76231175..7501eb79 100644 --- a/.gitignore +++ b/.gitignore @@ -5,8 +5,12 @@ *.ipynb_checkpoints* *.egg-info* *.coverage* -profile.html -profile.json +profile*.html +profile*.json +profile*.out +prof/* +profiling/* +chat*.json # Ignore everything under outputs/ outputs/** @@ -28,6 +32,7 @@ outputs/** *copy.py* package*json *.log +*.swp # Sphinx html build **_build* From 0bf22148e714642783cb9a35c5d404d96f105aab Mon Sep 17 00:00:00 2001 From: raychew Date: Mon, 16 Jun 2025 12:35:40 -0700 Subject: [PATCH 06/35] cleaned up second_project.euler_backward_non_advective_impl_part removed comments and code I intend to deprecate --- .../physics/low_mach/second_projection.py | 93 +------------------ 1 file changed, 4 insertions(+), 89 deletions(-) diff --git a/src/pybella/flow_solver/physics/low_mach/second_projection.py b/src/pybella/flow_solver/physics/low_mach/second_projection.py index a717bb1b..a7d20c16 100644 --- a/src/pybella/flow_solver/physics/low_mach/second_projection.py +++ b/src/pybella/flow_solver/physics/low_mach/second_projection.py @@ -136,15 +136,8 @@ def euler_backward_non_advective_impl_part( if not debug: writer = None nc = node.sc - rhs = np.zeros_like(mpv.p2_nodes) rhs = mpv.rhs - # if elem.ndim == 2: - # # p2 = np.copy(mpv.p2_nodes[node.igx:-node.igx,node.igy:-node.igy]) - # p2 = mpv.p2_nodes[node.p_isc] - # elif elem.ndim == 3: - # p2 = np.copy(mpv.p2_nodes[1:-1,1:-1,1:-1]) - if writer != None: writer.populate(str(label), "p2_initial", mpv.p2_nodes) @@ -180,9 +173,7 @@ def euler_backward_non_advective_impl_part( rhs /= dt if ud.is_compressible == 1: - # rhs = rhs_from_p_old(rhs, node, mpv) rhs = rhs - # if elif ud.is_compressible == 0: if ud.is_ArakawaKonor: rhs -= mpv.wcenter * mpv.dp2_nodes @@ -199,50 +190,21 @@ def euler_backward_non_advective_impl_part( mpv.rhs[...] = rhs - VS = True - # prepare initial left-hand side and the laplacian stencil if elem.ndim == 2: Vec = mpv coriolis_params = multiply_inverse_coriolis( Vec, mem, ud, dt, attrs=("u", "v", "w"), get_coeffs=True ) - # lap = stencil_9pt(elem,node,mpv,Sol,ud,diag_inv,dt,coriolis_params) - # sh = (ud.inx)*(ud.iny) diag_inv = lm_lp.precon_diag_prepare(mpv, elem, node, ud, coriolis_params) rhs *= diag_inv - # diag_inv = np.ones_like(mpv.rhs) - p2 = mpv.p2_nodes[node.i2].T lap = lm_lp.stencil_9pt_numba_test(mpv, node, coriolis_params, diag_inv, ud) sh = p2.shape[0] * p2.shape[1] - # p2 = np.copy(mpv.p2_nodes[1:-1,1:-1]) - # sh = p2.reshape(-1).shape[0] - - elif elem.ndim == 3 and elem.icy - 2 * elem.igs[1] <= 2: - # horizontal slice hack - p2 = np.copy(mpv.p2_nodes[1:-1, elem.igs[1], 1:-1]) - lap = lm_lp.stencil_hs(elem, node, mpv, ud, diag_inv, dt) - sh = p2.reshape(-1).shape[0] - - elif elem.ndim == 3 and elem.iicy > 1 and elem.iicz == 1: - # vertical slice hack - - if not VS: - p2 = np.copy( - mpv.p2_nodes[..., elem.igz][node.igx : -node.igx, node.igy : -node.igy] - ) - lap = lm_lp.stencil_vs(elem, node, mpv, ud, diag_inv, dt) - sh = (node.iicx) * (node.iicy) - if VS: - p2 = np.copy(mpv.p2_nodes[1:-1, 1:-1, elem.igs[2]]) - lap = lm_lp.stencil_vs(elem, node, mpv, ud, diag_inv, dt) - sh = p2.reshape(-1).shape[0] - - elif elem.ndim == 3 and elem.icy - 2 * elem.igs[1] > 2: + elif elem.ndim == 3: lap = lm_lp.stencil_27pt(elem, node, mpv, ud, diag_inv, dt) sh = p2.reshape(-1).shape[0] @@ -253,68 +215,21 @@ def euler_backward_non_advective_impl_part( # prepare right-hand side if elem.ndim == 2: - # rhs_inner = rhs[node.igx:-node.igx,node.igy:-node.igy].ravel() - # rhs_inner = rhs[1:-1,1:-1].ravel() rhs_inner = rhs[1:-1, 1:-1].T.ravel() - # rhs_inner = rhs.T.ravel() - elif elem.ndim == 3 and elem.iicy > 1 and elem.iicz == 1: - if not VS: - rhs_inner = rhs[..., elem.igs[2]][ - node.igx : -node.igx, node.igy : -node.igy - ].ravel() - if VS: - rhs_inner = rhs[1:-1, 1:-1, elem.igs[2]].ravel() - - elif elem.ndim == 3 and elem.icy - 2 * elem.igs[1] > 2: - rhs_inner = rhs[1:-1, 1:-1, 1:-1].ravel() + else: rhs_inner = rhs[1:-1, elem.igs[1], 1:-1].ravel() - # p2, _ = bicgstab(lap,rhs_inner,tol=ud.tol,maxiter=ud.max_iterations,callback=counter) - p2, _ = sp.sparse.linalg.bicgstab( lap, rhs_inner, atol=ud.tol, maxiter=ud.max_iterations, callback=counter ) - # p2, _ = gmres(lap,rhs_inner,tol=ud.tol,maxiter=ud.max_iterations) - # p2,info = bicgstab(lap,rhs.ravel(),x0=p2.ravel(),tol=1e-16,maxiter=6000,callback=counter) - # print("Convergence info = %i, no. of iterations = %i" %(info,counter.niter)) - - # global total_calls, total_iter - # total_iter += counter.niter - # total_calls += 1 - # logging.info(counter.niter) - # logging.info( - # "Total calls to BiCGStab routine = %i, total iterations = %i" - # % (total_calls, total_iter) - # ) p2_full = np.zeros(nc).squeeze() if elem.ndim == 2: - # p2_full[node.igx:-node.igx,node.igy:-node.igy] = p2.reshape(ud.inx,ud.iny) - # p2_full[node.i2] = p2.reshape(rhs[node.i1].shape[0],rhs[node.i1].shape[1]) p2_full[node.i2] = p2.reshape(rhs[node.i1].shape[1], rhs[node.i1].shape[0]).T - # p2_full[node.i1] = p2.reshape(rhs.shape[1],rhs.shape[0]).T - # p2 = p2.reshape(ud.inx+2, ud.iny+2) - # p2_full[1:-1,1:-1] = p2 - elif elem.ndim == 3 and elem.icy - 2 * elem.igs[1] <= 2: - # horizontal slice hack - p2 = p2.reshape(ud.inx + 2, ud.inz + 2) - p2 = np.expand_dims(p2, 1) - p2 = np.repeat(p2, node.icy, axis=1) - p2_full[1:-1, :, 1:-1] = p2 - elif elem.ndim == 3 and elem.iicy > 1 and elem.iicz == 1: - if not VS: - p2 = p2.reshape(node.iicx, node.iicy) - p2 = np.repeat(p2[..., np.newaxis], node.icz, axis=2) - p2_full[node.igx : -node.igx, node.igy : -node.igy] = p2 - if VS: - p2 = p2.reshape(ud.inx + 2, ud.iny + 2) - p2 = np.expand_dims(p2, 2) - p2 = np.repeat(p2, node.icz, axis=2) - p2_full[1:-1, 1:-1, :] = p2 - - elif elem.ndim == 3 and elem.icy - 2 * elem.igs[1] > 2: + elif elem.ndim == 3: p2_full[1:-1, 1:-1, 1:-1] = p2.reshape(ud.inx + 2, ud.iny + 2, ud.inz + 2) + if writer != None: writer.populate(str(label), "p2_full", p2_full) From 90df47cfea10e4d6c19a7906acbbd04122dc1435 Mon Sep 17 00:00:00 2001 From: raychew Date: Mon, 16 Jun 2025 12:35:59 -0700 Subject: [PATCH 07/35] cleaned up laplacian.py removed comments and code I intend to deprecate --- .../flow_solver/physics/low_mach/laplacian.py | 1167 +---------------- 1 file changed, 3 insertions(+), 1164 deletions(-) diff --git a/src/pybella/flow_solver/physics/low_mach/laplacian.py b/src/pybella/flow_solver/physics/low_mach/laplacian.py index be11049c..78604b42 100644 --- a/src/pybella/flow_solver/physics/low_mach/laplacian.py +++ b/src/pybella/flow_solver/physics/low_mach/laplacian.py @@ -5,581 +5,6 @@ from ....utils import options as opts -def stencil_9pt(elem, node, mpv, Sol, ud, diag_inv, dt, coriolis_params): - igx = elem.igx - igy = elem.igy - - icxn = node.icx - icyn = node.icy - - iicxn = icxn - (2 * igx) - iicyn = icyn - (2 * igy) - - iicxn, iicyn = iicyn, iicxn - - dx = node.dy - dy = node.dx - - inner_domain = (slice(igx, -igx), slice(igy, -igy)) - i1 = node.i1 - - hplusx = mpv.wplus[1][i1].reshape( - -1, - ) - hplusy = mpv.wplus[0][i1].reshape( - -1, - ) - hcenter = mpv.wcenter[i1].reshape( - -1, - ) - - diag_inv = diag_inv[i1].reshape( - -1, - ) - - oodx = 1.0 / (dx) - oody = 1.0 / (dy) - - x_periodic = ud.bdry_type[1] == opts.BdryType.PERIODIC - y_periodic = ud.bdry_type[0] == opts.BdryType.PERIODIC - - x_wall = ( - ud.bdry_type[1] == opts.BdryType.WALL - or ud.bdry_type[1] == opts.BdryType.RAYLEIGH - ) - y_wall = ( - ud.bdry_type[0] == opts.BdryType.WALL - or ud.bdry_type[0] == opts.BdryType.RAYLEIGH - ) - - #### Compute Coriolis parameters: - # nonhydro = ud.nonhydrostasy - # g = ud.gravity_strength[1] - # Msq = ud.Msq - # dy = elem.dy - - # wh1, wv, wh2 = dt * ud.coriolis_strength - - # igs = elem.igs - - # ndim = node.ndim - - # nindim = np.empty((ndim),dtype='object') - # innerdim = np.copy(nindim) - # innerdim1 = np.copy(nindim) - # eindim = np.empty((ndim),dtype='object') - - # for dim in range(ndim): - # is_periodic = ud.bdry_type[dim] == BdryType.PERIODIC - # nindim[dim] = slice(igs[dim]-is_periodic,-igs[dim]+is_periodic) - # innerdim[dim] = slice(igs[dim],-igs[dim]) - # eindim[dim] = slice(igs[dim]-is_periodic,-igs[dim]+is_periodic-1) - - # if dim == 1: - # y_idx = slice(igs[dim]-is_periodic,-igs[dim]+is_periodic-1) - # right_idx = None if -igs[dim]+is_periodic == 0 else -igs[dim]+is_periodic - # y_idx1 = slice(igs[dim]-is_periodic+1, right_idx) - - # innerdim1[dim] = slice(igs[dim]-1, (-igs[dim]+1)) - - # strat = (mpv.HydroState_n.S0[y_idx1] - mpv.HydroState_n.S0[y_idx]) / dy - - # nindim = tuple(nindim) - # eindim = tuple(eindim) - # innerdim = tuple(innerdim) - # innerdim1 = tuple(innerdim1) - - # for dim in range(0,elem.ndim,2): - # is_periodic = ud.bdry_type[dim] != BdryType.PERIODIC - # strat = np.expand_dims(strat, dim) - # strat = np.repeat(strat, elem.sc[dim]-int(2*is_periodic+igs[dim]), axis=dim) - - # Y = Sol.rhoY[nindim] / Sol.rho[nindim] - - # nu = np.zeros_like(mpv.wcenter) - # nu[eindim] = -dt**2 * (g / Msq) * strat * Y - - # nu = nu[inner_domain].reshape(-1,) - - # denom = 1.0 / (wh1**2 + wh2**2 + (nu + nonhydro) * (wv**2 + 1)) - - # coeff_uu = (wh1**2 + nu + nonhydro) * denom - # coeff_uv = nonhydro * (wh1 * wv + wh2) * denom - # coeff_vu = (wh1 * wv - wh2) * denom - # coeff_vv = nonhydro * (1 + wv**2) * denom - - # coriolis_params = (coeff_vv, coeff_vu, coeff_uv, coeff_uu) - # coriolis_params = np.array(coriolis_params, dtype=np.float64) - - return lambda p: lap2D_gather( - p, - igx, - igy, - iicxn, - iicyn, - hplusx, - hplusy, - hcenter, - oodx, - oody, - x_periodic, - y_periodic, - x_wall, - y_wall, - diag_inv, - coriolis_params, - ) - - # ndim = elem.ndim - # periodicity = np.zeros(ndim, dtype='int') - # for dim in range(0,ndim,2): - # periodicity[dim] = ud.bdry_type[dim] == BdryType.PERIODIC - - # # proj = (slice(None,),slice(None,),igz) - # i0 = (slice(0,-1),slice(0,-1)) - # i1 = (slice(1,-1),slice(1,-1)) - # i2 = (slice(igx,-igx),slice(igy,-igy)) - - # hplusx = mpv.wplus[0][i0][i1] - # hplusy = mpv.wplus[1][i0][i1] - # hcenter = mpv.wcenter[i2] - # diag_inv = diag_inv[i1] - - # dxy = (dx, dy) - - # #### Compute Coriolis parameters: - # nonhydro = ud.nonhydrostasy - # g = ud.gravity_strength[1] - # Msq = ud.Msq - # dy = elem.dy - - # wh1, wv, wh2 = dt * ud.coriolis_strength - - # first_nodes_row_right_idx = (slice(1,None)) - # first_nodes_row_left_idx = (slice(0,-1)) - - # strat = (mpv.HydroState_n.S0[first_nodes_row_right_idx] - mpv.HydroState_n.S0[first_nodes_row_left_idx]) / dy - - # for dim in range(0,elem.ndim,2): - # strat = np.expand_dims(strat, dim) - # strat = np.repeat(strat, elem.sc[dim], axis=dim) - - # Y = Sol.rhoY / Sol.rho - # nu = -dt**2 * (g / Msq) * strat * Y - - # coeff_uu = (wh1**2 + nu + nonhydro) - # coeff_uv = nonhydro * (wh1 * wv + wh2) - # coeff_vu = (wh1 * wv - wh2) - # coeff_vv = nonhydro * (1 + wv**2) - - # coriolis_params = (coeff_uu[i1], coeff_uv, coeff_vu, coeff_vv) - - # return lambda p : lap2Dc(p, hplusx, hplusy, hcenter, dxy, periodicity, diag_inv, coriolis_params) - - -@nb.jit(nopython=True, nogil=False, cache=True) -def lap2D_gather( - p, - igx, - igy, - iicxn, - iicyn, - hplusx, - hplusy, - hcenter, - oodx, - oody, - x_periodic, - y_periodic, - x_wall, - y_wall, - diag_inv, - coriolis, -): - ngnc = (iicxn) * (iicyn) - lap = np.zeros((ngnc)) - cnt_x = 0 - cnt_y = 0 - - nine_pt = 0.25 * (2.0) * 1.0 - cyy, cxx, cyx, cxy = coriolis - oodx2 = 0.5 * oodx**2 - oody2 = 0.5 * oody**2 - - for idx in range(iicxn * iicyn): - ne_topleft = idx - iicxn - 1 - ne_topright = idx - iicxn - ne_botleft = idx - 1 - ne_botright = idx - - # get indices of the 9pt stencil - topleft_idx = idx - iicxn - 1 - midleft_idx = idx - 1 - botleft_idx = idx + iicxn - 1 - - topmid_idx = idx - iicxn - midmid_idx = idx - botmid_idx = idx + iicxn - - topright_idx = idx - iicxn + 1 - midright_idx = idx + 1 - botright_idx = idx + iicxn + 1 - - if cnt_x == 0: - topleft_idx += iicxn - 1 - midleft_idx += iicxn - 1 - botleft_idx += iicxn - 1 - - ne_topleft += iicxn - 1 - ne_botleft += iicxn - 1 - - if cnt_x == (iicxn - 1): - topright_idx -= iicxn - 1 - midright_idx -= iicxn - 1 - botright_idx -= iicxn - 1 - - ne_topright -= iicxn - 1 - ne_botright -= iicxn - 1 - - if cnt_y == 0: - topleft_idx += (iicxn) * (iicyn - 1) - topmid_idx += (iicxn) * (iicyn - 1) - topright_idx += (iicxn) * (iicyn - 1) - - ne_topleft += (iicxn) * (iicyn - 1) - ne_topright += (iicxn) * (iicyn - 1) - - if cnt_y == (iicyn - 1): - botleft_idx -= (iicxn) * (iicyn - 1) - botmid_idx -= (iicxn) * (iicyn - 1) - botright_idx -= (iicxn) * (iicyn - 1) - - ne_botleft -= (iicxn) * (iicyn - 1) - ne_botright -= (iicxn) * (iicyn - 1) - - topleft = p[topleft_idx] - midleft = p[midleft_idx] - botleft = p[botleft_idx] - - topmid = p[topmid_idx] - midmid = p[midmid_idx] - botmid = p[botmid_idx] - - topright = p[topright_idx] - midright = p[midright_idx] - botright = p[botright_idx] - - hplusx_topleft = hplusx[ne_topleft] - hplusx_botleft = hplusx[ne_botleft] - hplusy_topleft = hplusy[ne_topleft] - hplusy_botleft = hplusy[ne_botleft] - - hplusx_topright = hplusx[ne_topright] - hplusx_botright = hplusx[ne_botright] - hplusy_topright = hplusy[ne_topright] - hplusy_botright = hplusy[ne_botright] - - cxx_tl = cxx[ne_topleft] - cxx_tr = cxx[ne_topright] - cxx_bl = cxx[ne_botleft] - cxx_br = cxx[ne_botright] - - cxy_tl = cxy[ne_topleft] - cxy_tr = cxy[ne_topright] - cxy_bl = cxy[ne_botleft] - cxy_br = cxy[ne_botright] - - cyx_tl = cyx[ne_topleft] - cyx_tr = cyx[ne_topright] - cyx_bl = cyx[ne_botleft] - cyx_br = cyx[ne_botright] - - cyy_tl = cyy[ne_topleft] - cyy_tr = cyy[ne_topright] - cyy_bl = cyy[ne_botleft] - cyy_br = cyy[ne_botright] - - if x_wall and (cnt_x == 0): - hplusx_topleft = 0.0 - hplusy_topleft = 0.0 - hplusx_botleft = 0.0 - hplusy_botleft = 0.0 - - if x_wall and (cnt_x == (iicxn - 1)): - hplusx_topright = 0.0 - hplusy_topright = 0.0 - hplusx_botright = 0.0 - hplusy_botright = 0.0 - - if y_wall and (cnt_y == 0): - hplusx_topleft = 0.0 - hplusy_topleft = 0.0 - hplusx_topright = 0.0 - hplusy_topright = 0.0 - - if y_wall and (cnt_y == (iicyn - 1)): - hplusx_botleft = 0.0 - hplusy_botleft = 0.0 - hplusx_botright = 0.0 - hplusy_botright = 0.0 - - # dp2dxdy1 = ((midmid - midleft) - (topmid - topleft)) * nine_pt - # dp2dxdy2 = ((midright - midmid) - (topright - topmid)) * nine_pt - # dp2dxdy3 = ((botmid - botleft) - (midmid - midleft)) * nine_pt - # dp2dxdy4 = ((botright - botmid) - (midright - midmid)) * nine_pt - - # lap[idx] = - hplusx_topleft * oodx2 * ((midmid - midleft) - dp2dxdy1) \ - # - hplusy_topleft * oody2 * ((midmid - topmid) - dp2dxdy1) \ - # + hplusx_topright * oodx2 * ((midright - midmid) - dp2dxdy2) \ - # - hplusy_topright * oody2 * ((midmid - topmid) + dp2dxdy2) \ - # - hplusx_botleft * oodx2 * ((midmid - midleft) + dp2dxdy3) \ - # + hplusy_botleft * oody2 * ((botmid - midmid) - dp2dxdy3) \ - # + hplusx_botright * oodx2 * ((midright - midmid) + dp2dxdy4) \ - # + hplusy_botright * oody2 * ((botmid - midmid) + dp2dxdy4) \ - # + hcenter[idx] * p[idx] - - Dx_tl = 0.5 * (topmid - topleft + midmid - midleft) * hplusx_topleft - Dx_tr = 0.5 * (topright - topmid + midright - midmid) * hplusx_topright - Dx_bl = 0.5 * (botmid - botleft + midmid - midleft) * hplusx_botleft - Dx_br = 0.5 * (botright - botmid + midright - midmid) * hplusx_botright - - Dy_tl = 0.5 * (midmid - topmid + midleft - topleft) * hplusy_topleft - Dy_tr = 0.5 * (midright - topright + midmid - topmid) * hplusy_topright - Dy_bl = 0.5 * (botmid - midmid + botleft - midleft) * hplusy_botleft - Dy_br = 0.5 * (botright - midright + botmid - midmid) * hplusy_botright - - fac = 1.0 - Dxx = ( - 0.5 - * (cxx_tr * Dx_tr - cxx_tl * Dx_tl + cxx_br * Dx_br - cxx_bl * Dx_bl) - * oodx - * oodx - * fac - ) - Dyy = ( - 0.5 - * (cyy_br * Dy_br - cyy_tr * Dy_tr + cyy_bl * Dy_bl - cyy_tl * Dy_tl) - * oody - * oody - * fac - ) - Dyx = ( - 0.5 - * (cyx_br * Dy_br - cyx_bl * Dy_bl + cyx_tr * Dy_tr - cyx_tl * Dy_tl) - * oody - * oodx - * fac - ) - Dxy = ( - 0.5 - * (cxy_br * Dx_br - cxy_tr * Dx_tr + cxy_bl * Dy_bl - cxy_tl * Dx_tl) - * oodx - * oody - * fac - ) - - lap[idx] = Dxx + Dyy + Dyx + Dxy + hcenter[idx] * p[idx] - - # fac = 1.0 - # lap[idx] = - fac * hplusx_topleft * oodx2 * ((midmid - midleft)) \ - # - fac * hplusy_topleft * oody2 * ((midmid - topmid)) \ - # + fac * hplusx_topright * oodx2 * ((midright - midmid)) \ - # - fac * hplusy_topright * oody2 * ((midmid - topmid)) \ - # - fac * hplusx_botleft * oodx2 * ((midmid - midleft)) \ - # + fac * hplusy_botleft * oody2 * ((botmid - midmid)) \ - # + fac * hplusx_botright * oodx2 * ((midright - midmid)) \ - # + fac * hplusy_botright * oody2 * ((botmid - midmid)) \ - # + hcenter[idx] * p[idx] - - lap[idx] *= diag_inv[idx] - - cnt_x += 1 - if cnt_x % iicxn == 0: - cnt_y += 1 - cnt_x = 0 - - return lap - - -@nb.jit(nopython=True, nogil=False, cache=True) -def lap2D( - p, - igx, - igy, - iicxn, - iicyn, - hplusx, - hplusy, - hcenter, - oodx2, - oody2, - x_periodic, - y_periodic, - x_wall, - y_wall, - diag_inv, -): - ngnc = (iicxn) * (iicyn) - lap = np.zeros((ngnc)) - cnt_x = 0 - cnt_y = 0 - - nine_pt = 0.25 * (2.0) * 1.0 - - for idx in range(iicxn * iicyn): - ne_topleft = idx - iicxn - 1 - ne_topright = idx - iicxn - ne_botleft = idx - 1 - ne_botright = idx - - # get indices of the 9pt stencil - topleft_idx = idx - iicxn - 1 - midleft_idx = idx - 1 - botleft_idx = idx + iicxn - 1 - - topmid_idx = idx - iicxn - midmid_idx = idx - botmid_idx = idx + iicxn - - topright_idx = idx - iicxn + 1 - midright_idx = idx + 1 - botright_idx = idx + iicxn + 1 - - if cnt_x == 0: - topleft_idx += iicxn - 1 - midleft_idx += iicxn - 1 - botleft_idx += iicxn - 1 - - # if x_periodic: - # topmid_idx += iicxn - 1 - # midmid_idx += iicxn - 1 - # botmid_idx += iicxn - 1 - - ne_topleft += iicxn - 1 - ne_botleft += iicxn - 1 - - if cnt_x == (iicxn - 1): - topright_idx -= iicxn - 1 - midright_idx -= iicxn - 1 - botright_idx -= iicxn - 1 - - # if x_periodic: - # topmid_idx -= iicxn - 1 - # midmid_idx -= iicxn - 1 - # botmid_idx -= iicxn - 1 - - ne_topright -= iicxn - 1 - ne_botright -= iicxn - 1 - - if cnt_y == 0: - topleft_idx += (iicxn) * (iicyn - 1) - topmid_idx += (iicxn) * (iicyn - 1) - topright_idx += (iicxn) * (iicyn - 1) - - # if y_periodic: - # midleft_idx += ((iicxn) * (iicyn - 1)) - # midmid_idx += ((iicxn) * (iicyn - 1)) - # midright_idx += ((iicxn) * (iicyn - 1)) - - ne_topleft += (iicxn) * (iicyn - 1) - ne_topright += (iicxn) * (iicyn - 1) - - if cnt_y == (iicyn - 1): - botleft_idx -= (iicxn) * (iicyn - 1) - botmid_idx -= (iicxn) * (iicyn - 1) - botright_idx -= (iicxn) * (iicyn - 1) - - # if y_periodic: - # midleft_idx -= ((iicxn) * (iicyn - 1)) - # midmid_idx -= ((iicxn) * (iicyn - 1)) - # midright_idx -= ((iicxn) * (iicyn - 1)) - - ne_botleft -= (iicxn) * (iicyn - 1) - ne_botright -= (iicxn) * (iicyn - 1) - - topleft = p[topleft_idx] - midleft = p[midleft_idx] - botleft = p[botleft_idx] - - topmid = p[topmid_idx] - midmid = p[midmid_idx] - botmid = p[botmid_idx] - - topright = p[topright_idx] - midright = p[midright_idx] - botright = p[botright_idx] - - hplusx_topleft = hplusx[ne_topleft] - hplusx_botleft = hplusx[ne_botleft] - hplusy_topleft = hplusy[ne_topleft] - hplusy_botleft = hplusy[ne_botleft] - - hplusx_topright = hplusx[ne_topright] - hplusx_botright = hplusx[ne_botright] - hplusy_topright = hplusy[ne_topright] - hplusy_botright = hplusy[ne_botright] - - if x_wall and (cnt_x == 0): - hplusx_topleft = 0.0 - hplusy_topleft = 0.0 - hplusx_botleft = 0.0 - hplusy_botleft = 0.0 - - if x_wall and (cnt_x == (iicxn - 1)): - hplusx_topright = 0.0 - hplusy_topright = 0.0 - hplusx_botright = 0.0 - hplusy_botright = 0.0 - - if y_wall and (cnt_y == 0): - hplusx_topleft = 0.0 - hplusy_topleft = 0.0 - hplusx_topright = 0.0 - hplusy_topright = 0.0 - - if y_wall and (cnt_y == (iicyn - 1)): - hplusx_botleft = 0.0 - hplusy_botleft = 0.0 - hplusx_botright = 0.0 - hplusy_botright = 0.0 - - dp2dxdy1 = ((midmid - midleft) - (topmid - topleft)) * nine_pt - dp2dxdy2 = ((midright - midmid) - (topright - topmid)) * nine_pt - dp2dxdy3 = ((botmid - botleft) - (midmid - midleft)) * nine_pt - dp2dxdy4 = ((botright - botmid) - (midright - midmid)) * nine_pt - - lap[idx] = ( - -hplusx_topleft * oodx2 * ((midmid - midleft) - dp2dxdy1) - - hplusy_topleft * oody2 * ((midmid - topmid) - dp2dxdy1) - + hplusx_topright * oodx2 * ((midright - midmid) - dp2dxdy2) - - hplusy_topright * oody2 * ((midmid - topmid) + dp2dxdy2) - - hplusx_botleft * oodx2 * ((midmid - midleft) + dp2dxdy3) - + hplusy_botleft * oody2 * ((botmid - midmid) - dp2dxdy3) - + hplusx_botright * oodx2 * ((midright - midmid) + dp2dxdy4) - + hplusy_botright * oody2 * ((botmid - midmid) + dp2dxdy4) - + hcenter[idx] * p[idx] - ) - - # if cnt_x == 0 and x_wall: - # lap[idx] *= 2. - # if (cnt_x == iicxn - 1) and x_wall: - # lap[idx] *= 2. - - # if cnt_y == 0 and y_wall: - # lap[idx] *= 2. - # if (cnt_y == iicyn - 1) and y_wall: - # lap[idx] *= 2. - - lap[idx] *= diag_inv[idx] - - cnt_x += 1 - if cnt_x % iicxn == 0: - cnt_y += 1 - cnt_x = 0 - - return lap - - def stencil_9pt_numba_test(mpv, node, coriolis, diag_inv, ud): dx = node.dx dy = node.dy @@ -611,8 +36,6 @@ def stencil_9pt_numba_test(mpv, node, coriolis, diag_inv, ud): or ud.bdry_type[1] == opts.BdryType.RAYLEIGH ) - y_rayleigh = ud.bdry_type[1] == opts.BdryType.RAYLEIGH - cor_slc = (slice(1, -1), slice(1, -1)) coeff_slc = (slice(1, -1), slice(1, -1)) @@ -650,7 +73,6 @@ def stencil_9pt_numba_test(mpv, node, coriolis, diag_inv, ud): coeffs, dx, dy, - y_rayleigh, x_wall, y_wall, diag_inv[node.i1].T.reshape( @@ -660,12 +82,11 @@ def stencil_9pt_numba_test(mpv, node, coriolis, diag_inv, ud): ) -@nb.jit(nopython=True, cache=True) +@nb.njit(cache=True) def lap2D_numba_test(p, dp, dx, dy, coeffs, diag_inv, coriolis, shp): p = p.reshape(shp[1], shp[0]) dp[1:-1, 1:-1] = p - # dp = p dp = periodic(dp) dp = kernel_9pt( dp, @@ -680,8 +101,7 @@ def lap2D_numba_test(p, dp, dx, dy, coeffs, diag_inv, coriolis, shp): coriolis[2], coriolis[3], ) - # p = dp - # dp = periodic(dp) + p = dp[1:-1, 1:-1] return p.ravel() @@ -689,7 +109,7 @@ def lap2D_numba_test(p, dp, dx, dy, coeffs, diag_inv, coriolis, shp): @nb.njit(cache=True) def lap2D_gather_new( - p, iicxn, iicyn, coeffs, dx, dy, y_rayleigh, x_wall, y_wall, diag_inv, coriolis + p, iicxn, iicyn, coeffs, dx, dy, x_wall, y_wall, diag_inv, coriolis ): ngnc = (iicxn) * (iicyn) lap = np.zeros((ngnc)) @@ -703,11 +123,6 @@ def lap2D_gather_new( hplusx, hplusy, hcenter = coeffs for idx in range(iicxn * iicyn): - # ne_topleft = idx - (iicxn - 1) - # ne_topright = idx - (iicxn) - # ne_botleft = idx - 1 - # ne_botright = idx - nr_row = idx // iicxn col_idx = idx - (nr_row * iicxn) @@ -715,11 +130,6 @@ def lap2D_gather_new( ne_col_idx = col_idx ne_idx = ne_row_idx + ne_col_idx - # ne_topleft = ne_idx - (iicxn + 1) - 1 - # ne_topright = ne_idx - (iicxn + 1) - # ne_botleft = ne_idx - 1 - # ne_botright = ne_idx - ne_topleft = ne_idx ne_topright = ne_idx + 1 ne_botleft = ne_idx + (iicxn + 1) @@ -743,54 +153,21 @@ def lap2D_gather_new( midleft_idx += iicxn - 1 botleft_idx += iicxn - 1 - # ne_topleft += iicxn - 1 - # ne_botleft += iicxn - 1 - - # ne_topleft += iicxn + 1 - # ne_botleft += iicxn + 1 - if cnt_x == (iicxn - 1): topright_idx -= iicxn - 1 midright_idx -= iicxn - 1 botright_idx -= iicxn - 1 - # ne_topright -= iicxn - 1 - # ne_botright -= iicxn - 1 - - # ne_topright -= iicxn + 1 - # ne_botright -= iicxn + 1 - if cnt_y == 0: topleft_idx += (iicxn) * (iicyn - 1) topmid_idx += (iicxn) * (iicyn - 1) topright_idx += (iicxn) * (iicyn - 1) - # ne_topleft += ((iicxn + 1) * (iicyn)) - # ne_topright += ((iicxn + 1) * (iicyn)) - - # ne_topleft += ((iicxn + 2) * (iicyn + 1)) - # ne_topright += ((iicxn + 2) * (iicyn + 1)) - - # if cnt_y == (iicyn - 1) and not y_rayleigh: if cnt_y == (iicyn - 1): botleft_idx -= (iicxn) * (iicyn - 1) botmid_idx -= (iicxn) * (iicyn - 1) botright_idx -= (iicxn) * (iicyn - 1) - # ne_botleft -= ((iicxn + 1) * (iicyn)) - # ne_botright -= ((iicxn + 1) * (iicyn)) - - # ne_botleft -= ((iicxn + 2) * (iicyn + 1)) - # ne_botright -= ((iicxn + 2) * (iicyn + 1)) - - ############ - # top BC handling for rayleigh - ############ - # if cnt_y == (iicyn - 1) and y_rayleigh: - # botleft_idx = topleft_idx - # botmid_idx = topmid_idx - # botright_idx = topright_idx - topleft = p[topleft_idx] midleft = p[midleft_idx] botleft = p[botleft_idx] @@ -857,12 +234,6 @@ def lap2D_gather_new( hplusx_botright = 0.0 hplusy_botright = 0.0 - # if y_rayleigh and (cnt_y == 0): - # hplusx_topleft = 0. - # hplusy_topleft = 0. - # hplusx_topright = 0. - # hplusy_topright = 0. - Dx_tl = 0.5 * (topmid - topleft + midmid - midleft) * hplusx_topleft Dx_tr = 0.5 * (topright - topmid + midright - midmid) * hplusx_topright Dx_bl = 0.5 * (botmid - botleft + midmid - midleft) * hplusx_botleft @@ -932,47 +303,6 @@ def kernel_9pt(a, dx, dy, hpx, hpy, hpc, diag_inv, cxx, cyy, cxy, cyx): botmid = a[-1, 0] botright = a[-1, 1] - # shftr = 1 - # shftc = 0 - # blr = 0 - shftr - # blc = 0 - shftc - # brr = 0 - shftr - # brc = 1 - shftc - # tlr = 1 - shftr - # tlc = 0 - shftc - # trr = 1 - shftr - # trc = 1 - shftc - - # hpx_bl = hpx[blr,blc] - # hpx_br = hpx[brr,brc] - # hpx_tl = hpx[tlr,tlc] - # hpx_tr = hpx[trr,trc] - - # hpy_bl = hpy[blr,blc] - # hpy_br = hpy[brr,brc] - # hpy_tl = hpy[tlr,tlc] - # hpy_tr = hpy[trr,trc] - - # cxx_bl = cxx[blr,blc] - # cxx_br = cxx[brr,brc] - # cxx_tl = cxx[tlr,tlc] - # cxx_tr = cxx[trr,trc] - - # cyy_bl = cyy[blr,blc] - # cyy_br = cyy[brr,brc] - # cyy_tl = cyy[tlr,tlc] - # cyy_tr = cyy[trr,trc] - - # cxy_bl = cxy[blr,blc] - # cxy_br = cxy[brr,brc] - # cxy_tl = cxy[tlr,tlc] - # cxy_tr = cxy[trr,trc] - - # cyx_bl = cyx[blr,blc] - # cyx_br = cyx[brr,brc] - # cyx_tl = cyx[tlr,tlc] - # cyx_tr = cyx[trr,trc] - hpx_bl = hpx[0, 0] hpx_br = hpx[0, 1] hpx_tl = hpx[1, 0] @@ -1013,10 +343,6 @@ def kernel_9pt(a, dx, dy, hpx, hpy, hpc, diag_inv, cxx, cyy, cxy, cyx): Dy_bl = 0.5 * (midmid - botmid + midleft - botleft) * hpy_bl Dy_br = 0.5 * (midright - botright + midmid - botmid) * hpy_br - # print(hpx_tl, hpx_tr, hpx_bl, hpx_br) - # print(hpy_tl, hpy_tr, hpy_bl, hpy_br) - # print("") - Dxx = ( 0.5 * (cxx_tr * Dx_tr - cxx_tl * Dx_tl + cxx_br * Dx_br - cxx_bl * Dx_bl) @@ -1314,309 +640,6 @@ def lap3D( return lap - -def stencil_hs(elem, node, mpv, ud, diag_inv, dt): - oodx2 = 1.0 / node.dx**2 - oodz2 = 1.0 / node.dz**2 - odx, odz = 1.0 / node.dx, 1.0 / node.dz - igy = elem.igs[1] - - proj = ( - slice( - None, - ), - igy, - slice( - None, - ), - ) - i0 = (slice(0, -1), slice(0, -1)) - i1 = (slice(1, -1), slice(1, -1)) - i2 = (slice(2, -2), slice(2, -2)) - - ndim = elem.ndim - periodicity = np.empty(ndim, dtype="int") - for dim in range(0, ndim, 2): - periodicity[dim] = ud.bdry_type[dim] == opts.BdryType.PERIODIC - - hplusx = mpv.wplus[0][proj][i0][i1] - hplusz = mpv.wplus[2][proj][i0][i1] - hcenter = mpv.wcenter[proj][i2] - diag_inv = diag_inv[proj][i1] - - corrf = dt * ud.coriolis_strength[1] - - return lambda p: lapHS( - p, hplusx, hplusz, hcenter, oodx2, oodz2, periodicity, diag_inv, corrf, odx, odz - ) - - -@nb.jit(nopython=True, cache=True, nogil=True) -def lapHS( - p0, hplusx, hplusz, hcenter, oodx2, oodz2, periodicity, diag_inv, corrf, odx, odz -): - shx, shz = hcenter.shape - p = p0.reshape(shx + 2, shz + 2) - - coeff = 1.0 / 4 - lap = np.zeros_like(p) - - cnt = 0 - for bc in periodicity: - if bc == True and cnt == 0: - tmp = p[1, :] - p[0, :] = p[-3, :] - p[-1, :] = p[2, :] - p[1, :] = p[-2, :] - p[-2, :] = tmp - - # p[0,:] = p[-4,:] - # p[-1,:] = p[3,:] - # p[1,:] = p[-3,:] - # p[-2,:] = p[2,:] - elif bc == False and cnt == 0: - hplusx[0, :] = 0.0 - hplusx[-1, :] = 0.0 - hplusz[0, :] = 0.0 - hplusz[-1, :] = 0.0 - if bc == True and cnt == 2: - tmp = p[:, 1] - p[:, 0] = p[:, -3] - p[:, -1] = p[:, 2] - p[:, 1] = p[:, -2] - p[:, -2] = tmp - # p[:,0] = p[:,-4] - # p[:,-1] = p[:,3] - # p[:,1] = p[:,-3] - # p[:,-2] = p[:,2] - elif bc == False and cnt == 2: - hplusx[:, 0] = 0.0 - hplusx[:, -1] = 0.0 - hplusz[:, 0] = 0.0 - hplusz[:, -1] = 0.0 - cnt += 1 - - leftz = p[:, :-1] - rightz = p[:, 1:] - - z_fluxes = rightz - leftz - - leftx = p[:-1, :] - rightx = p[1:, :] - - x_fluxes = rightx - leftx - - x_flx = x_fluxes[:, :-1] + x_fluxes[:, 1:] - z_flx = z_fluxes[:-1, :] + z_fluxes[1:, :] - - hxzp = hplusx * z_flx - hxzpm = hxzp[:-1, :] - hxzpm = hxzpm[:, :-1] + hxzpm[:, 1:] - # hxzpm = hxzpm[:-1,:] + hxzpm[1:,:] - hxzpp = hxzp[1:, :] - hxzpp = hxzpp[:, :-1] + hxzpp[:, 1:] - # hxzpp = hxzpp[:-1,:] + hxzpp[1:,:] - - hzxp = hplusz * x_flx - hzxpm = hzxp[:, :-1] - hzxpm = hzxpm[:-1, :] + hzxpm[1:, :] - # hzxpm = hzxpm[:,:-1] + hzxpm[:,1:] - hzxpp = hzxp[:, 1:] - hzxpp = hzxpp[:-1, :] + hzxpp[1:, :] - # hzxpp = hzxpp[:,:-1] + hzxpp[:,1:] - - x_flx = hplusx * x_flx - x_flxm = x_flx[:-1, :] - x_flxm = x_flxm[:, :-1] + x_flxm[:, 1:] - x_flxp = x_flx[1:, :] - x_flxp = x_flxp[:, :-1] + x_flxp[:, 1:] - - z_flx = hplusz * z_flx - z_flxm = z_flx[:, :-1] - z_flxm = z_flxm[:-1, :] + z_flxm[1:, :] - z_flxp = z_flx[:, 1:] - z_flxp = z_flxp[:-1, :] + z_flxp[1:, :] - - lap[1:-1, 1:-1] = ( - oodx2 * coeff * (-x_flxm + x_flxp) - + oodz2 * coeff * (-z_flxm + z_flxp) - + +1.0 * odx * odz * coeff * corrf * (hxzpp - hxzpm) - + -1.0 * odx * odz * coeff * corrf * (hzxpp - hzxpm) - + hcenter * p[1:-1, 1:-1] - ) - - lap = lap * diag_inv - - return lap - - -def stencil_vs(elem, node, mpv, ud, diag_inv, dt): - igx = elem.igx - igy = elem.igy - igz = elem.igz - - icxn = node.icx - icyn = node.icy - - iicxn = icxn - (2 * igx) - iicyn = icyn - (2 * igy) - - iicxn, iicyn = iicyn, iicxn - - dx = node.dy - dy = node.dx - - oodx2 = 0.5 / (dx**2) - oody2 = 0.5 / (dy**2) - - xx, yy = 1, 0 - - proj = ( - slice( - None, - ), - slice( - None, - ), - igz, - ) - i0 = (slice(0, -1), slice(0, -1)) - i1 = (slice(1, -1), slice(1, -1)) - i2 = (slice(igx, -igx), slice(igy, -igy)) - - VS = True - - if not VS: - x_periodic = ud.bdry_type[xx] == opts.BdryType.PERIODIC - y_periodic = ud.bdry_type[yy] == opts.BdryType.PERIODIC - - x_wall = ud.bdry_type[xx] == opts.BdryType.WALL - y_wall = ud.bdry_type[yy] == opts.BdryType.WALL - - hplusx = mpv.wplus[xx][proj][i2].reshape( - -1, - ) - hplusy = mpv.wplus[yy][proj][i2].reshape( - -1, - ) - hcenter = mpv.wcenter[proj][i2].reshape( - -1, - ) - diag_inv = diag_inv[proj][i2].reshape( - -1, - ) - - return lambda p: lap2D( - p, - igx, - igy, - iicxn, - iicyn, - hplusx, - hplusy, - hcenter, - oodx2, - oody2, - x_periodic, - y_periodic, - x_wall, - y_wall, - diag_inv, - ) - - if VS: - oodx2 = 1.0 / node.dx**2 - oody2 = 1.0 / node.dy**2 - - ndim = elem.ndim - periodicity = np.zeros(ndim, dtype="int") - for dim in range(0, ndim, 2): - periodicity[dim] = ud.bdry_type[dim] == opts.BdryType.PERIODIC - - hplusx = mpv.wplus[0][proj][i0][i1] - hplusy = mpv.wplus[1][proj][i0][i1] - hcenter = mpv.wcenter[proj][i2] - diag_inv = diag_inv[proj][i1] - - return lambda p: lapVS( - p, hplusx, hplusy, hcenter, oodx2, oody2, periodicity, diag_inv - ) - - -@nb.jit(nopython=True, cache=True, nogil=False) -def lapVS(p0, hplusx, hplusy, hcenter, oodx2, oody2, periodicity, diag_inv): - shx, shy = hcenter.shape - p = p0.reshape(shx + 2, shy + 2) - - coeff = 1.0 / 4 - lap = np.zeros_like(p) - - cnt = 0 - for bc in periodicity: - if bc == True and cnt == 0: - p[0, :] = p[-3, :] - p[-1, :] = p[2, :] - - elif bc == False and cnt == 0: - hplusx[0, :] = 0.0 - hplusx[-1, :] = 0.0 - hplusy[0, :] = 0.0 - hplusy[-1, :] = 0.0 - - # p[0,:] = p[2,:] - # p[-1,:] = p[-3,:] - - if bc == True and cnt == 1: - p[:, 0] = p[:, -3] - p[:, -1] = p[:, 2] - - elif bc == False and cnt == 1: - hplusx[:, 0] = 0.0 - hplusx[:, -1] = 0.0 - hplusy[:, 0] = 0.0 - hplusy[:, -1] = 0.0 - - # p[:,0] = p[:,2] - # p[:,-1] = p[:,-3] - - cnt += 1 - - lefty = p[:, :-1] - righty = p[:, 1:] - - y_fluxes = righty - lefty - - leftx = p[:-1, :] - rightx = p[1:, :] - - x_fluxes = rightx - leftx - - x_flx = x_fluxes[:, :-1] + x_fluxes[:, 1:] - y_flx = y_fluxes[:-1, :] + y_fluxes[1:, :] - - x_flx = hplusx * x_flx - x_flxm = x_flx[:-1, :] - x_flxm = x_flxm[:, :-1] + x_flxm[:, 1:] - x_flxp = x_flx[1:, :] - x_flxp = x_flxp[:, :-1] + x_flxp[:, 1:] - - y_flx = hplusy * y_flx - y_flxm = y_flx[:, :-1] - y_flxm = y_flxm[:-1, :] + y_flxm[1:, :] - y_flxp = y_flx[:, 1:] - y_flxp = y_flxp[:-1, :] + y_flxp[1:, :] - - lap[1:-1, 1:-1] = ( - oodx2 * coeff * (-x_flxm + x_flxp) - + oody2 * coeff * (-y_flxm + y_flxp) - + hcenter * p[1:-1, 1:-1] - ) - - lap = lap * diag_inv - - return lap - - def precon_diag_prepare(mpv, elem, node, ud, coriolis): dx, dy, dz = node.dx, node.dy, node.dz @@ -1685,187 +708,3 @@ def precon_diag_prepare(mpv, elem, node, ud, coriolis): return diag - -def stencil_3pt(elem, node, ud): - # 1d stencil for exner pressure perturbation constraint in 2d - igx = elem.igx - igy = elem.igy - - icxn = node.icx - icyn = node.icy - - iicxn = icxn - (2 * igx) - iicyn = icyn - (2 * igy) - - iicxn, iicyn = iicyn, iicxn - - dx = node.dx - # print(node.dx) - - oodx2 = 1.0 / (dx**2) - - # x_periodic = ud.bdry_type[1] == BdryType.PERIODIC - x_periodic = ud.bdry_type[0] == opts.BdryType.PERIODIC - x_wall = ud.bdry_type[0] == opts.BdryType.WALL - - return lambda p: lap2D_exner(p, iicxn, iicyn, oodx2, x_periodic, x_wall) - - -@nb.jit(nopython=True, nogil=True, cache=True) -def lap2D_exner(p, iicxn, iicyn, oodx2, x_periodic, x_wall): - ngnc = (iicxn) * (iicyn) - lap = np.zeros((ngnc)) - cnt_x = 0 - cnt_y = 0 - - for idx in range(iicxn * iicyn): - # left_idx = idx - 1 - # mid_idx = idx - # right_idx = idx + 1 - - # if cnt_x == 0: - # left_idx += iicxn - 1 - - # if x_periodic: - # mid_idx += iicxn - 1 - - # if cnt_x == (iicxn - 1): - # right_idx -= iicxn - 1 - - # if x_periodic: - # mid_idx -= iicxn - 1 - - right_idx = idx - iicxn - mid_idx = idx - left_idx = idx + iicxn - - if cnt_y == 0: - if x_periodic: - right_idx += (iicxn) * (iicyn - 1) - mid_idx += (iicxn) * (iicyn - 1) - - if cnt_y == (iicyn - 1): - if x_periodic: - left_idx -= (iicxn) * (iicyn - 1) - mid_idx -= (iicxn) * (iicyn - 1) - - left = p[left_idx] - mid = p[mid_idx] - right = p[right_idx] - - lap[idx] = oodx2 * (left - 2.0 * mid + right) - - cnt_x += 1 - if cnt_x % iicxn == 0: - cnt_y += 1 - cnt_x = 0 - - return lap - - -def stencil_5pt(elem, node, ud): - igx = elem.igx - igy = elem.igy - - icxn = node.icx - icyn = node.icy - - iicxn = icxn - (2 * igx) - iicyn = icyn - (2 * igy) - - iicxn, iicyn = iicyn, iicxn - - dx = node.dy - dy = node.dx - - oodx2 = 1.0 / (dx**2) - oody2 = 1.0 / (dy**2) - - # oodx2 = 1.0 - # oody2 = 1.0 - - x_periodic = ud.bdry_type[1] == opts.BdryType.PERIODIC - y_periodic = ud.bdry_type[0] == opts.BdryType.PERIODIC - - x_wall = ud.bdry_type[1] == opts.BdryType.WALL - y_wall = ud.bdry_type[0] == opts.BdryType.WALL - - return lambda p: lap2D_5pt( - p, iicxn, iicyn, oodx2, oody2, x_periodic, y_periodic, x_wall, y_wall - ) - - -@nb.jit(nopython=True, nogil=True, cache=True) -def lap2D_5pt(p, iicxn, iicyn, oodx2, oody2, x_periodic, y_periodic, x_wall, y_wall): - ngnc = (iicxn) * (iicyn) - lap = np.zeros((ngnc)) - cnt_x = 0 - cnt_y = 0 - - for idx in range(iicxn * iicyn): - # get indices of the 9pt stencil - midleft_idx = idx - 1 - topmid_idx = idx - iicxn - midmid_idx = idx - botmid_idx = idx + iicxn - midright_idx = idx + 1 - - if cnt_x == 0: - midleft_idx += iicxn - 1 - if x_periodic: - topmid_idx += iicxn - 1 - midmid_idx += iicxn - 1 - botmid_idx += iicxn - 1 - - if cnt_x == (iicxn - 1): - midright_idx -= iicxn - 1 - - if x_periodic: - topmid_idx -= iicxn - 1 - midmid_idx -= iicxn - 1 - botmid_idx -= iicxn - 1 - - if cnt_y == 0: - topmid_idx += (iicxn) * (iicyn - 1) - - if y_periodic: - midleft_idx += (iicxn) * (iicyn - 1) - midmid_idx += (iicxn) * (iicyn - 1) - midright_idx += (iicxn) * (iicyn - 1) - - if cnt_y == (iicyn - 1): - botmid_idx -= (iicxn) * (iicyn - 1) - - if y_periodic: - midleft_idx -= (iicxn) * (iicyn - 1) - midmid_idx -= (iicxn) * (iicyn - 1) - midright_idx -= (iicxn) * (iicyn - 1) - - midleft = p[midleft_idx] - topmid = p[topmid_idx] - midmid = p[midmid_idx] - botmid = p[botmid_idx] - midright = p[midright_idx] - - if x_wall and (cnt_x == 0): - midleft = 0.0 - - if x_wall and (cnt_x == (iicxn - 1)): - midright = 0.0 - - if y_wall and (cnt_y == 0): - topmid = 0.0 - - if y_wall and (cnt_y == (iicyn - 1)): - botmid = 0.0 - - lap[idx] = oodx2 * (midleft - 2.0 * midmid + midright) + oody2 * ( - topmid - 2.0 * midmid + botmid - ) - - cnt_x += 1 - if cnt_x % iicxn == 0: - cnt_y += 1 - cnt_x = 0 - - return lap From 7e7221b5d2e119756c14bfa7c2a054bf3f6619a8 Mon Sep 17 00:00:00 2001 From: raychew Date: Mon, 16 Jun 2025 12:52:24 -0700 Subject: [PATCH 08/35] first pass of refactoring second_projection.euler_backward_non_advective_impl_part also refactored second_projection.divergence_nodes. this commit removes more unnecessary code and make everything consistent with mem as an input argument --- .../flow_solver/discretisation/time_update.py | 16 +-- .../physics/low_mach/second_projection.py | 128 ++++++++---------- src/pybella/tests/test_travelling_vortex.py | 2 +- 3 files changed, 60 insertions(+), 86 deletions(-) diff --git a/src/pybella/flow_solver/discretisation/time_update.py b/src/pybella/flow_solver/discretisation/time_update.py index 1ccb28f5..bd2565e6 100644 --- a/src/pybella/flow_solver/discretisation/time_update.py +++ b/src/pybella/flow_solver/discretisation/time_update.py @@ -114,15 +114,9 @@ def do( Sol0_increment = Sol0 if ud.is_compressible == 0 else None lm_sp.euler_backward_non_advective_impl_part( - mem.sol, - mem.mpv, - mem.elem, - mem.node, + mem, ud, - mem.th, - mem.time.t, 0.5 * dt, - mem, Sol0=Sol0_increment, label=f"{label}_after_ebnaimp", writer=writer, @@ -192,15 +186,9 @@ def do( debug_writer.write(f"{label}_after_full_ebnaexp") lm_sp.euler_backward_non_advective_impl_part( - mem.sol, - mem.mpv, - mem.elem, - mem.node, + mem, ud, - mem.th, - mem.time.t, 0.5 * dt, - mem, writer=writer, label=str(label) + "_after_full_step", ) diff --git a/src/pybella/flow_solver/physics/low_mach/second_projection.py b/src/pybella/flow_solver/physics/low_mach/second_projection.py index a7d20c16..96415717 100644 --- a/src/pybella/flow_solver/physics/low_mach/second_projection.py +++ b/src/pybella/flow_solver/physics/low_mach/second_projection.py @@ -48,7 +48,7 @@ def euler_forward_non_advective(mem, ud, dt, writer=None, label=None, debug=Fals dSdy = mpv.HydroState_n.get_dSdy(elem, node) # Compute divergence - mpv.rhs[...] = divergence_nodes(mpv.rhs, elem, node, sol, ud) + mpv.rhs[...] = divergence_nodes(mpv.rhs, elem, sol, ud) if not hasattr(ud, "ATMOSPHERIC_EXTENSION"): bdry.scale_wall_node_values(mpv.rhs, node, ud, 2.0) @@ -119,15 +119,9 @@ def euler_backward_non_advective_expl_part(mem, ud, dt): def euler_backward_non_advective_impl_part( - Sol, - mpv, - elem, - node, + mem, ud, - th, - t, dt, - mem, Sol0=None, writer=None, label=None, @@ -135,77 +129,70 @@ def euler_backward_non_advective_impl_part( ): if not debug: writer = None - nc = node.sc - rhs = mpv.rhs + nc = mem.node.sc if writer != None: - writer.populate(str(label), "p2_initial", mpv.p2_nodes) + writer.populate(str(label), "p2_initial", mem.mpv.p2_nodes) if Sol0 is not None: - bdry.set_explicit_boundary_data(Sol0, elem, ud, th, mpv) + bdry.set_explicit_boundary_data(Sol0, mem.elem, ud, mem.th, mem.mpv) operator_coefficients_nodes(mem, ud, dt) else: - bdry.set_explicit_boundary_data(Sol, elem, ud, th, mpv) + bdry.set_explicit_boundary_data(mem.sol, mem.elem, ud, mem.th, mem.mpv) operator_coefficients_nodes(mem, ud, dt) - i0 = node.ndim * [slice(0, -1)] - i0 = tuple(i0) - if writer != None: - writer.populate(str(label), "hcenter", mpv.wcenter) - writer.populate(str(label), "wplusx", mpv.wplus[0]) - writer.populate(str(label), "wplusy", mpv.wplus[1]) + writer.populate(str(label), "hcenter", mem.mpv.wcenter) + writer.populate(str(label), "wplusx", mem.mpv.wplus[0]) + writer.populate(str(label), "wplusy", mem.mpv.wplus[1]) ( - writer.populate(str(label), "wplusz", mpv.wplus[2]) - if elem.ndim == 3 - else writer.populate(str(label), "wplusz", np.zeros_like(mpv.wplus[0])) + writer.populate(str(label), "wplusz", mem.mpv.wplus[2]) + if mem.elem.ndim == 3 + else writer.populate(str(label), "wplusz", np.zeros_like(mem.mpv.wplus[0])) ) - bdry.set_ghostnodes_p2(mpv.p2_nodes, node, ud) + bdry.set_ghostnodes_p2(mem.mpv.p2_nodes, mem.node, ud) correction_nodes(mem, ud, dt, mem.mpv.p2_nodes, 0) - bdry.set_explicit_boundary_data(Sol, elem, ud, th, mpv) + bdry.set_explicit_boundary_data(mem.sol, mem.elem, ud, mem.th, mem.mpv) - rhs[...] = divergence_nodes(rhs, elem, node, Sol, ud) + mem.mpv.rhs[...] = divergence_nodes(mem.mpv.rhs, mem.elem, mem.sol, ud) if writer != None: - writer.populate(str(label), "rhs", rhs) + writer.populate(str(label), "rhs", mem.mpv.rhs) - rhs /= dt + mem.mpv.rhs /= dt - if ud.is_compressible == 1: - rhs = rhs - elif ud.is_compressible == 0: + if ud.is_compressible == 0: if ud.is_ArakawaKonor: - rhs -= mpv.wcenter * mpv.dp2_nodes - mpv.wcenter[...] = 0.0 + mem.mpv.rhs -= mem.mpv.wcenter * mem.mpv.dp2_nodes + mem.mpv.wcenter[...] = 0.0 else: - # rhs_new = rhs_from_p_old(rhs, node, mpv) - rhs = ud.compressibility * rhs + (1.0 - ud.compressibility) * rhs - mpv.wcenter[...] *= ud.compressibility + mem.mpv.rhs = ud.compressibility * mem.mpv.rhs + (1.0 - ud.compressibility) * mem.mpv.rhs + mem.mpv.wcenter[...] *= ud.compressibility else: - mpv.wcenter *= ud.compressibility + mem.mpv.wcenter *= ud.compressibility if writer != None: - writer.populate(str(label), "rhs_nodes", rhs) + writer.populate(str(label), "rhs_nodes", mem.mpv.rhs) - mpv.rhs[...] = rhs + mem.mpv.rhs[...] = mem.mpv.rhs # prepare initial left-hand side and the laplacian stencil - if elem.ndim == 2: - Vec = mpv + if mem.elem.ndim == 2: + Vec = mem.mpv coriolis_params = multiply_inverse_coriolis( Vec, mem, ud, dt, attrs=("u", "v", "w"), get_coeffs=True ) - diag_inv = lm_lp.precon_diag_prepare(mpv, elem, node, ud, coriolis_params) - rhs *= diag_inv + diag_inv = lm_lp.precon_diag_prepare(mem.mpv, mem.elem, mem.node, ud, coriolis_params) + mem.mpv.rhs *= diag_inv - p2 = mpv.p2_nodes[node.i2].T - lap = lm_lp.stencil_9pt_numba_test(mpv, node, coriolis_params, diag_inv, ud) + p2 = mem.mpv.p2_nodes[mem.node.i2].T + lap = lm_lp.stencil_9pt_numba_test(mem.mpv, mem.node, coriolis_params, diag_inv, ud) sh = p2.shape[0] * p2.shape[1] - elif elem.ndim == 3: - lap = lm_lp.stencil_27pt(elem, node, mpv, ud, diag_inv, dt) + elif mem.elem.ndim == 3: + lap = lm_lp.stencil_27pt(mem.elem, mem.node, mem.mpv, ud, diag_inv, dt) sh = p2.reshape(-1).shape[0] lap = sp.sparse.linalg.LinearOperator((sh, sh), lap) @@ -214,31 +201,30 @@ def euler_backward_non_advective_impl_part( counter = solver_counter() # prepare right-hand side - if elem.ndim == 2: - rhs_inner = rhs[1:-1, 1:-1].T.ravel() - + if mem.elem.ndim == 2: + rhs_inner = mem.mpv.rhs[mem.node.i1].T.ravel() else: - rhs_inner = rhs[1:-1, elem.igs[1], 1:-1].ravel() + rhs_inner = mem.mpv.rhs[mem.node.i1].ravel() p2, _ = sp.sparse.linalg.bicgstab( lap, rhs_inner, atol=ud.tol, maxiter=ud.max_iterations, callback=counter ) p2_full = np.zeros(nc).squeeze() - if elem.ndim == 2: - p2_full[node.i2] = p2.reshape(rhs[node.i1].shape[1], rhs[node.i1].shape[0]).T - elif elem.ndim == 3: - p2_full[1:-1, 1:-1, 1:-1] = p2.reshape(ud.inx + 2, ud.iny + 2, ud.inz + 2) + if mem.elem.ndim == 2: + p2_full[mem.node.i2] = p2.reshape(mem.mpv.rhs[mem.node.i1].T.shape).T + elif mem.elem.ndim == 3: + p2_full[mem.node.i1] = p2.reshape(ud.inx + 2, ud.iny + 2, ud.inz + 2) if writer != None: writer.populate(str(label), "p2_full", p2_full) - bdry.set_ghostnodes_p2(p2_full, node, ud) + bdry.set_ghostnodes_p2(p2_full, mem.node, ud) correction_nodes(mem, ud, dt, p2_full, 1) - mpv.p2_nodes[...] += p2_full - bdry.set_ghostnodes_p2(mpv.p2_nodes, node, ud) - bdry.set_explicit_boundary_data(Sol, elem, ud, th, mpv) + mem.mpv.p2_nodes[...] += p2_full + bdry.set_ghostnodes_p2(mem.mpv.p2_nodes, mem.node, ud) + bdry.set_explicit_boundary_data(mem.sol, mem.elem, ud, mem.th, mem.mpv) def correction_nodes(mem, ud, dt, p, updt_chi): @@ -380,7 +366,7 @@ def multiply_inverse_coriolis( return (h11.T, h22.T, h12.T, h21.T) -def divergence_nodes(rhs, elem, node, Sol, ud): +def divergence_nodes(rhs, elem, sol, ud): """Main divergence function - handles boundary conditions and calls JIT-compiled core.""" ndim = elem.ndim @@ -390,26 +376,26 @@ def divergence_nodes(rhs, elem, node, Sol, ud): ud.bdry_type[1] == opts.BdryType.WALL or ud.bdry_type[1] == opts.BdryType.RAYLEIGH ): - Sol.rhou[:, :2, ...] = 0.0 - Sol.rhov[:, :2, ...] = 0.0 - Sol.rhow[:, :2, ...] = 0.0 - Sol.rhou[:, -2:, ...] = 0.0 - Sol.rhov[:, -2:, ...] = 0.0 - Sol.rhow[:, -2:, ...] = 0.0 + sol.rhou[:, :2, ...] = 0.0 + sol.rhov[:, :2, ...] = 0.0 + sol.rhow[:, :2, ...] = 0.0 + sol.rhou[:, -2:, ...] = 0.0 + sol.rhov[:, -2:, ...] = 0.0 + sol.rhow[:, -2:, ...] = 0.0 # Call appropriate JIT-compiled function if ndim == 2: rhs[:] = _momentum_pot_temp_divergence_2d_jit( - Sol.rho, Sol.rhou, Sol.rhov, Sol.rhoY, elem.dx, elem.dy + sol.rho, sol.rhou, sol.rhov, sol.rhoY, elem.dx, elem.dy ) else: _momentum_pot_temp_divergence_3d_jit( rhs, - Sol.rho, - Sol.rhou, - Sol.rhov, - Sol.rhow, - Sol.rhoY, + sol.rho, + sol.rhou, + sol.rhov, + sol.rhow, + sol.rhoY, elem.dx, elem.dy, elem.dz, diff --git a/src/pybella/tests/test_travelling_vortex.py b/src/pybella/tests/test_travelling_vortex.py index 5ea98e4f..6b1cd69d 100644 --- a/src/pybella/tests/test_travelling_vortex.py +++ b/src/pybella/tests/test_travelling_vortex.py @@ -313,7 +313,7 @@ def sol_init(Sol, mpv, elem, node, th, ud, seed=None): mem.cache = var.FlowSolverCache() lm_sp.euler_backward_non_advective_impl_part( - Sol, mpv, elem, node, ud, th, 0.0, ud.dtfixed, mem + mem, ud, ud.dtfixed, writer=None, label="initial_projection" ) mpv.p2_nodes[...] = p2aux From 9defd61acda966d6b88ce65da70401dd877bf222 Mon Sep 17 00:00:00 2001 From: raychew Date: Mon, 16 Jun 2025 19:08:27 -0700 Subject: [PATCH 09/35] refactored laplacian.precon_diag_prepare --- .../flow_solver/physics/low_mach/laplacian.py | 92 ++++++------------- .../physics/low_mach/second_projection.py | 2 +- 2 files changed, 28 insertions(+), 66 deletions(-) diff --git a/src/pybella/flow_solver/physics/low_mach/laplacian.py b/src/pybella/flow_solver/physics/low_mach/laplacian.py index 78604b42..a3254a6f 100644 --- a/src/pybella/flow_solver/physics/low_mach/laplacian.py +++ b/src/pybella/flow_solver/physics/low_mach/laplacian.py @@ -3,6 +3,7 @@ import numba as nb from ....utils import options as opts +from ....utils import operators def stencil_9pt_numba_test(mpv, node, coriolis, diag_inv, ud): @@ -640,71 +641,32 @@ def lap3D( return lap -def precon_diag_prepare(mpv, elem, node, ud, coriolis): +def precon_diag_prepare(mpv, node): + """Highly optimized version with minimal function calls.""" + ndim = node.ndim + + coeff = 0.75 if ndim == 2 else 0.0625 if ndim == 3 else None + if coeff is None: + raise ValueError(f"Unsupported ndim: {ndim}") + dx, dy, dz = node.dx, node.dy, node.dz - - x_periodic = ud.bdry_type[0] == opts.BdryType.PERIODIC - y_periodic = ud.bdry_type[1] == opts.BdryType.PERIODIC - z_periodic = ud.bdry_type[2] == opts.BdryType.PERIODIC - periodicity = (x_periodic, y_periodic, z_periodic) - # igx = node.igx - # igy = node.igy - igs = node.igs - ndim = elem.ndim - - # idx_e = (slice(igx - x_periodic,-igx + x_periodic - 1),slice(igy - y_periodic, -igy + y_periodic - 1)) - idx_periodic = [slice(None)] * elem.ndim - idx_n, idx_e = np.copy(idx_periodic), np.copy(idx_periodic) - - for dim in range(ndim): - if ud.bdry_type[dim] == opts.BdryType.PERIODIC: - idx_periodic[dim] = slice(1, -1) - - idx_e[dim] = slice( - igs[dim] - periodicity[dim], -igs[dim] + periodicity[dim] - 1 - ) - idx_n[dim] = slice(igs[dim], -igs[dim]) - - idx_periodic, idx_e, idx_n = tuple(idx_periodic), tuple(idx_e), tuple(idx_n) - - # idx_n = (slice(igx,-igx), slice(igy,-igy)) - - hplusxx = mpv.wplus[0] # * (coriolis[0].T) - hplusyy = mpv.wplus[1] # * (coriolis[1].T) - hplusxy = mpv.wplus[0] # * (coriolis[3].T) - hplusyx = mpv.wplus[1] # * (coriolis[2].T) - - if ndim == 3: - hplusz = mpv.wplus[2] - - nine_pt = 0.25 * (2.0) * 1.0 - nine_pt = 0.5 * 0.5 + inv_dx2, inv_dy2 = 1.0 / (dx**2), 1.0 / (dy**2) + + diag_kernel = operators.get_averaging_kernel(ndim, width=2) + + diag = mpv.wcenter.copy() + + # Main diagonal terms + diag -= coeff * inv_dx2 * operators.apply_convolution_kernel(mpv.wplus[0], diag_kernel) + diag -= coeff * inv_dy2 * operators.apply_convolution_kernel(mpv.wplus[1], diag_kernel) + if ndim == 2: - coeff = 1.0 - nine_pt + # Cross terms + inv_dxdy = 1.0 / (dx * dy) + diag -= coeff * inv_dxdy * operators.apply_convolution_kernel(mpv.wplus[0], diag_kernel) + diag -= coeff * inv_dxdy * operators.apply_convolution_kernel(mpv.wplus[1], diag_kernel) elif ndim == 3: - coeff = 0.0625 - else: - assert 0, "ndim = 1?" - - wxx = coeff / (dx**2) - wyy = coeff / (dy**2) - wzz = coeff / (dz**2) - - wxy = coeff / (dx * dy) - wyx = coeff / (dy * dx) - - diag_kernel = np.array(np.ones([2] * ndim)) - - diag = np.zeros_like(mpv.wcenter) - diag[...] = -wxx * sp.signal.fftconvolve(hplusxx, diag_kernel, mode="valid") - diag[...] -= wyy * sp.signal.fftconvolve(hplusyy, diag_kernel, mode="valid") - diag[...] -= wxy * sp.signal.fftconvolve(hplusxy, diag_kernel, mode="valid") - diag[...] -= wyx * sp.signal.fftconvolve(hplusyx, diag_kernel, mode="valid") - if ndim == 3: - diag[...] -= wzz * sp.signal.fftconvolve(hplusz, diag_kernel, mode="valid") - - diag[...] += mpv.wcenter - diag[...] = 1.0 / diag - - return diag - + inv_dz2 = 1.0 / (dz**2) + diag -= coeff * inv_dz2 * operators.apply_convolution_kernel(mpv.wplus[2], diag_kernel) + + return 1.0 / diag diff --git a/src/pybella/flow_solver/physics/low_mach/second_projection.py b/src/pybella/flow_solver/physics/low_mach/second_projection.py index 96415717..d80b04c3 100644 --- a/src/pybella/flow_solver/physics/low_mach/second_projection.py +++ b/src/pybella/flow_solver/physics/low_mach/second_projection.py @@ -184,7 +184,7 @@ def euler_backward_non_advective_impl_part( Vec, mem, ud, dt, attrs=("u", "v", "w"), get_coeffs=True ) - diag_inv = lm_lp.precon_diag_prepare(mem.mpv, mem.elem, mem.node, ud, coriolis_params) + diag_inv = lm_lp.precon_diag_prepare(mem.mpv, mem.node) mem.mpv.rhs *= diag_inv p2 = mem.mpv.p2_nodes[mem.node.i2].T From 02895ba13e79e476e873ac5d9f3c33a778cd1c9a Mon Sep 17 00:00:00 2001 From: raychew Date: Mon, 16 Jun 2025 19:08:52 -0700 Subject: [PATCH 10/35] extended slices.py not all operators will be used, but might be worth keeping for future sake --- src/pybella/utils/slices.py | 53 +++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/src/pybella/utils/slices.py b/src/pybella/utils/slices.py index 7a89ba33..5367df35 100644 --- a/src/pybella/utils/slices.py +++ b/src/pybella/utils/slices.py @@ -1,3 +1,6 @@ +import numpy as np +from . import options as opts + def get_neighbor_indices(ndim): """Create left and right neighbor indices for n-dimensional arrays.""" lefts_idx = [slice(None)] * ndim @@ -164,3 +167,53 @@ def get_face_center_averaging_indices(ndim): indices["xy_avg_right"] = (slice(1, None), slice(1, None), slice(None)) return indices + +# ...existing code... + +def get_boundary_condition_slices(elem, node, ud): + """ + Create slice indices for boundary conditions including periodic, element, and node slices. + + Parameters + ---------- + elem : object + Element object with ndim attribute + node : object + Node object with igs attribute (number of ghost cells) + ud : object + User data object with bdry_type attribute + opts : module + Options module with BdryType enum + + Returns + ------- + tuple + (idx_periodic, idx_e, idx_n, periodicity) where: + - idx_periodic: slice tuple for periodic regions + - idx_e: slice tuple for element regions + - idx_n: slice tuple for node regions + - periodicity: boolean tuple for each dimension + """ + x_periodic = ud.bdry_type[0] == opts.BdryType.PERIODIC + y_periodic = ud.bdry_type[1] == opts.BdryType.PERIODIC + z_periodic = ud.bdry_type[2] == opts.BdryType.PERIODIC + periodicity = (x_periodic, y_periodic, z_periodic) + + igs = node.igs + ndim = elem.ndim + + idx_periodic = [slice(None)] * elem.ndim + idx_n, idx_e = np.copy(idx_periodic), np.copy(idx_periodic) + + for dim in range(ndim): + if ud.bdry_type[dim] == opts.BdryType.PERIODIC: + idx_periodic[dim] = slice(1, -1) + + idx_e[dim] = slice( + igs[dim] - periodicity[dim], -igs[dim] + periodicity[dim] - 1 + ) + idx_n[dim] = slice(igs[dim], -igs[dim]) + + idx_periodic, idx_e, idx_n = tuple(idx_periodic), tuple(idx_e), tuple(idx_n) + + return idx_periodic, idx_e, idx_n, periodicity From e704ca756f76c3d9d57c2b1744c7c1d365ca2e9e Mon Sep 17 00:00:00 2001 From: raychew Date: Mon, 16 Jun 2025 19:09:09 -0700 Subject: [PATCH 11/35] extended .coveragerc to omit slices.py --- .coveragerc | 1 + 1 file changed, 1 insertion(+) diff --git a/.coveragerc b/.coveragerc index 625961df..fe9ca39c 100644 --- a/.coveragerc +++ b/.coveragerc @@ -4,6 +4,7 @@ omit = src/pybella/data_assimilation/* src/pybella/inputs/* src/pybella/utils/debug_helpers.py + src/pybella/utils/slices.py */tests/* */test_* setup.py From 764415132390da015a370d300d0a640835060472 Mon Sep 17 00:00:00 2001 From: raychew Date: Mon, 16 Jun 2025 22:12:28 -0700 Subject: [PATCH 12/35] refactored laplacian.py to work with numba stencils generically but this appears to be really slow, as the stencil is never cached. --- .../flow_solver/physics/low_mach/laplacian.py | 309 ++++-------------- .../physics/low_mach/second_projection.py | 2 +- 2 files changed, 66 insertions(+), 245 deletions(-) diff --git a/src/pybella/flow_solver/physics/low_mach/laplacian.py b/src/pybella/flow_solver/physics/low_mach/laplacian.py index a3254a6f..dd843c46 100644 --- a/src/pybella/flow_solver/physics/low_mach/laplacian.py +++ b/src/pybella/flow_solver/physics/low_mach/laplacian.py @@ -6,7 +6,7 @@ from ....utils import operators -def stencil_9pt_numba_test(mpv, node, coriolis, diag_inv, ud): +def get_lap2D_stencil(mpv, node, coriolis, diag_inv, ud): dx = node.dx dy = node.dy @@ -14,20 +14,22 @@ def stencil_9pt_numba_test(mpv, node, coriolis, diag_inv, ud): hplusy = mpv.wplus[1] hcenter = mpv.wcenter - coeffs = (hplusx.T, hplusy.T, hcenter.T) + coeffs = [hplusx.T, hplusy.T, hcenter.T] shp = node.iisc dummy_p = np.zeros((node.isc[1], node.isc[0])) - ### Need to clean this up, but the Numba stencil is used in the Helmholtz solve for radiative BC! - if hasattr(ud, "ATMOSPHERIC_EXTENSION"): - return lambda p: lap2D_numba_test( - p, dummy_p, dx, dy, coeffs, diag_inv.T, coriolis, shp - ) + # if hasattr(ud, "ATMOSPHERIC_EXTENSION"): + # return lambda p: lap2D_extended( + # p, dummy_p, dx, dy, coeffs, diag_inv.T, coriolis, shp + # ) - ################### + if hasattr(ud, "ATMOSPHERIC_EXTENSION") and ud.ATMOSPHERIC_EXTENSION: + boundary_handler = periodic_x_wall_y else: + boundary_handler = periodic + x_wall = ( ud.bdry_type[0] == opts.BdryType.WALL or ud.bdry_type[0] == opts.BdryType.RAYLEIGH @@ -37,59 +39,22 @@ def stencil_9pt_numba_test(mpv, node, coriolis, diag_inv, ud): or ud.bdry_type[1] == opts.BdryType.RAYLEIGH ) - cor_slc = (slice(1, -1), slice(1, -1)) - coeff_slc = (slice(1, -1), slice(1, -1)) - - coeffs = ( - hplusx[coeff_slc].T.reshape( - -1, - ), - hplusy[coeff_slc].T.reshape( - -1, - ), - hcenter[node.i1].T.reshape( - -1, - ), - ) - - coriolis = ( - coriolis[0][cor_slc].reshape( - -1, - ), - coriolis[1][cor_slc].reshape( - -1, - ), - coriolis[2][cor_slc].reshape( - -1, - ), - coriolis[3][cor_slc].reshape( - -1, - ), - ) - - return lambda p: lap2D_gather_new( - p, - node.iicx, - node.iicy, - coeffs, - dx, - dy, - x_wall, - y_wall, - diag_inv[node.i1].T.reshape( - -1, - ), - coriolis, - ) + if x_wall: + coeffs[0], coeffs[1] = apply_x_wall_boundary_coeffs(coeffs[0], coeffs[1]) + if y_wall: + coeffs[0], coeffs[1] = apply_y_wall_boundary_coeffs(coeffs[0], coeffs[1]) + return lambda p: lap2D_generic( + p, dummy_p, dx, dy, coeffs, diag_inv.T, coriolis, shp, boundary_handler + ) @nb.njit(cache=True) -def lap2D_numba_test(p, dp, dx, dy, coeffs, diag_inv, coriolis, shp): +def lap2D_generic(p, dp, dx, dy, coeffs, diag_inv, coriolis, shp, boundary_handler): p = p.reshape(shp[1], shp[0]) dp[1:-1, 1:-1] = p - dp = periodic(dp) - dp = kernel_9pt( + dp[...] = boundary_handler(dp) + dp[...] = kernel_9pt( dp, dx, dy, @@ -103,189 +68,59 @@ def lap2D_numba_test(p, dp, dx, dy, coeffs, diag_inv, coriolis, shp): coriolis[3], ) - p = dp[1:-1, 1:-1] - - return p.ravel() + return dp[1:-1, 1:-1].ravel() @nb.njit(cache=True) -def lap2D_gather_new( - p, iicxn, iicyn, coeffs, dx, dy, x_wall, y_wall, diag_inv, coriolis -): - ngnc = (iicxn) * (iicyn) - lap = np.zeros((ngnc)) - cnt_x = 0 - cnt_y = 0 +def periodic_x_wall_y(arr): + # periodic padding + arr[:, 0] = arr[:, -3] + arr[:, -1] = arr[:, 2] - oodx = 1.0 / dx - oody = 1.0 / dy - cxx, cyy, cxy, cyx = coriolis - - hplusx, hplusy, hcenter = coeffs - - for idx in range(iicxn * iicyn): - nr_row = idx // iicxn - col_idx = idx - (nr_row * iicxn) - - ne_row_idx = nr_row * (iicxn + 1) - ne_col_idx = col_idx - ne_idx = ne_row_idx + ne_col_idx - - ne_topleft = ne_idx - ne_topright = ne_idx + 1 - ne_botleft = ne_idx + (iicxn + 1) - ne_botright = ne_idx + (iicxn + 1) + 1 - - # get indices of the 9pt stencil - topleft_idx = idx - iicxn - 1 - midleft_idx = idx - 1 - botleft_idx = idx + iicxn - 1 - - topmid_idx = idx - iicxn - midmid_idx = idx - botmid_idx = idx + iicxn - - topright_idx = idx - iicxn + 1 - midright_idx = idx + 1 - botright_idx = idx + iicxn + 1 - - if cnt_x == 0: - topleft_idx += iicxn - 1 - midleft_idx += iicxn - 1 - botleft_idx += iicxn - 1 - - if cnt_x == (iicxn - 1): - topright_idx -= iicxn - 1 - midright_idx -= iicxn - 1 - botright_idx -= iicxn - 1 - - if cnt_y == 0: - topleft_idx += (iicxn) * (iicyn - 1) - topmid_idx += (iicxn) * (iicyn - 1) - topright_idx += (iicxn) * (iicyn - 1) - - if cnt_y == (iicyn - 1): - botleft_idx -= (iicxn) * (iicyn - 1) - botmid_idx -= (iicxn) * (iicyn - 1) - botright_idx -= (iicxn) * (iicyn - 1) - - topleft = p[topleft_idx] - midleft = p[midleft_idx] - botleft = p[botleft_idx] - - topmid = p[topmid_idx] - midmid = p[midmid_idx] - botmid = p[botmid_idx] - - topright = p[topright_idx] - midright = p[midright_idx] - botright = p[botright_idx] - - hplusx_topleft = hplusx[ne_topleft] - hplusx_botleft = hplusx[ne_botleft] - hplusy_topleft = hplusy[ne_topleft] - hplusy_botleft = hplusy[ne_botleft] - - hplusx_topright = hplusx[ne_topright] - hplusx_botright = hplusx[ne_botright] - hplusy_topright = hplusy[ne_topright] - hplusy_botright = hplusy[ne_botright] - - cxx_tl = cxx[ne_topleft] - cxx_tr = cxx[ne_topright] - cxx_bl = cxx[ne_botleft] - cxx_br = cxx[ne_botright] - - cxy_tl = cxy[ne_topleft] - cxy_tr = cxy[ne_topright] - cxy_bl = cxy[ne_botleft] - cxy_br = cxy[ne_botright] - - cyx_tl = cyx[ne_topleft] - cyx_tr = cyx[ne_topright] - cyx_bl = cyx[ne_botleft] - cyx_br = cyx[ne_botright] - - cyy_tl = cyy[ne_topleft] - cyy_tr = cyy[ne_topright] - cyy_bl = cyy[ne_botleft] - cyy_br = cyy[ne_botright] - - if x_wall and (cnt_x == 0): - hplusx_topleft = 0.0 - hplusy_topleft = 0.0 - hplusx_botleft = 0.0 - hplusy_botleft = 0.0 - - if x_wall and (cnt_x == (iicxn - 1)): - hplusx_topright = 0.0 - hplusy_topright = 0.0 - hplusx_botright = 0.0 - hplusy_botright = 0.0 - - if y_wall and (cnt_y == 0): - hplusx_topleft = 0.0 - hplusy_topleft = 0.0 - hplusx_topright = 0.0 - hplusy_topright = 0.0 - - if y_wall and (cnt_y == (iicyn - 1)): - hplusx_botleft = 0.0 - hplusy_botleft = 0.0 - hplusx_botright = 0.0 - hplusy_botright = 0.0 - - Dx_tl = 0.5 * (topmid - topleft + midmid - midleft) * hplusx_topleft - Dx_tr = 0.5 * (topright - topmid + midright - midmid) * hplusx_topright - Dx_bl = 0.5 * (botmid - botleft + midmid - midleft) * hplusx_botleft - Dx_br = 0.5 * (botright - botmid + midright - midmid) * hplusx_botright - - Dy_tl = 0.5 * (midmid - topmid + midleft - topleft) * hplusy_topleft - Dy_tr = 0.5 * (midright - topright + midmid - topmid) * hplusy_topright - Dy_bl = 0.5 * (botmid - midmid + botleft - midleft) * hplusy_botleft - Dy_br = 0.5 * (botright - midright + botmid - midmid) * hplusy_botright - - fac = 1.0 - Dxx = ( - 0.5 - * (cxx_tr * Dx_tr - cxx_tl * Dx_tl + cxx_br * Dx_br - cxx_bl * Dx_bl) - * oodx - * oodx - * fac - ) - Dyy = ( - 0.5 - * (cyy_br * Dy_br - cyy_tr * Dy_tr + cyy_bl * Dy_bl - cyy_tl * Dy_tl) - * oody - * oody - * fac - ) - Dyx = ( - 0.5 - * (cxy_br * Dy_br - cxy_bl * Dy_bl + cxy_tr * Dy_tr - cxy_tl * Dy_tl) - * oody - * oodx - * fac - ) - Dxy = ( - 0.5 - * (cyx_br * Dx_br - cyx_tr * Dx_tr + cyx_bl * Dx_bl - cyx_tl * Dx_tl) - * oodx - * oody - * fac - ) + # wall padding + arr[0, :] = arr[2, :] + arr[-1, :] = arr[-3, :] - lap[idx] = Dxx + Dyy + Dyx + Dxy + hcenter[idx] * p[idx] + return arr - lap[idx] *= diag_inv[idx] +@nb.njit(cache=True) +def periodic(arr): + """Apply periodic boundary conditions""" + arr[:, 0] = arr[:, -3] + arr[:, -1] = arr[:, 2] + arr[0, :] = arr[-3, :] + arr[-1, :] = arr[2, :] - cnt_x += 1 - if cnt_x % iicxn == 0: - cnt_y += 1 - cnt_x = 0 + return arr - return lap +@nb.njit(cache=True) +def apply_x_wall_boundary_coeffs(hpx, hpy): + """Apply wall boundary conditions by modifying coefficients""" + hpx[:, 0] = 0.0 + hpy[:, 0] = 0.0 + hpx[:, -1] = 0.0 + hpy[:, -1] = 0.0 + hpx[:, 1] = 0.0 + hpy[:, 1] = 0.0 + hpx[:, -2] = 0.0 + hpy[:, -2] = 0.0 + return hpx, hpy + + +@nb.njit(cache=True) +def apply_y_wall_boundary_coeffs(hpx, hpy): + """Apply wall boundary conditions by modifying coefficients""" + hpx[0, :] = 0.0 + hpy[0, :] = 0.0 + hpx[-1, :] = 0.0 + hpy[-1, :] = 0.0 + hpx[1, :] = 0.0 + hpy[1, :] = 0.0 + hpx[-2, :] = 0.0 + hpy[-2, :] = 0.0 + + return hpx, hpy @nb.stencil def kernel_9pt(a, dx, dy, hpx, hpy, hpc, diag_inv, cxx, cyy, cxy, cyx): @@ -371,20 +206,6 @@ def kernel_9pt(a, dx, dy, hpx, hpy, hpc, diag_inv, cxx, cyy, cxy, cyx): return ((Dxx + Dyy + Dyx + Dxy) + hpc[0, 0] * a[0, 0]) * diag_inv[0, 0] - -@nb.njit(cache=True) -def periodic(arr): - # periodic padding - arr[:, 0] = arr[:, -3] - arr[:, -1] = arr[:, 2] - - # wall padding - arr[0, :] = arr[2, :] - arr[-1, :] = arr[-3, :] - - return arr - - def stencil_27pt(elem, node, mpv, ud, diag_inv, dt): oodxyz = node.dxyz oodxyz = 1.0 / (oodxyz**2) @@ -426,7 +247,7 @@ def stencil_27pt(elem, node, mpv, ud, diag_inv, dt): ) -@nb.jit(nopython=True, cache=True, nogil=False) +@nb.jit(nopython=True, cache=False, nogil=False) def lap3D( p0, hplusx, diff --git a/src/pybella/flow_solver/physics/low_mach/second_projection.py b/src/pybella/flow_solver/physics/low_mach/second_projection.py index d80b04c3..f757c532 100644 --- a/src/pybella/flow_solver/physics/low_mach/second_projection.py +++ b/src/pybella/flow_solver/physics/low_mach/second_projection.py @@ -188,7 +188,7 @@ def euler_backward_non_advective_impl_part( mem.mpv.rhs *= diag_inv p2 = mem.mpv.p2_nodes[mem.node.i2].T - lap = lm_lp.stencil_9pt_numba_test(mem.mpv, mem.node, coriolis_params, diag_inv, ud) + lap = lm_lp.get_lap2D_stencil(mem.mpv, mem.node, coriolis_params, diag_inv, ud) sh = p2.shape[0] * p2.shape[1] elif mem.elem.ndim == 3: From 0e1559fc7ed1decb831b5b99d535342a3b2284a9 Mon Sep 17 00:00:00 2001 From: raychew Date: Mon, 16 Jun 2025 22:38:24 -0700 Subject: [PATCH 13/35] refactored laplacian.py's manual implementation of the stencil this seems to be substantially faster as it can be cached --- .../flow_solver/physics/low_mach/laplacian.py | 277 +++++++++++++++++- .../physics/low_mach/second_projection.py | 2 +- 2 files changed, 273 insertions(+), 6 deletions(-) diff --git a/src/pybella/flow_solver/physics/low_mach/laplacian.py b/src/pybella/flow_solver/physics/low_mach/laplacian.py index dd843c46..8bb978bc 100644 --- a/src/pybella/flow_solver/physics/low_mach/laplacian.py +++ b/src/pybella/flow_solver/physics/low_mach/laplacian.py @@ -20,11 +20,6 @@ def get_lap2D_stencil(mpv, node, coriolis, diag_inv, ud): dummy_p = np.zeros((node.isc[1], node.isc[0])) - # if hasattr(ud, "ATMOSPHERIC_EXTENSION"): - # return lambda p: lap2D_extended( - # p, dummy_p, dx, dy, coeffs, diag_inv.T, coriolis, shp - # ) - if hasattr(ud, "ATMOSPHERIC_EXTENSION") and ud.ATMOSPHERIC_EXTENSION: boundary_handler = periodic_x_wall_y else: @@ -206,6 +201,278 @@ def kernel_9pt(a, dx, dy, hpx, hpy, hpc, diag_inv, cxx, cyy, cxy, cyx): return ((Dxx + Dyy + Dyx + Dxy) + hpc[0, 0] * a[0, 0]) * diag_inv[0, 0] + + + +def get_lap2D(mpv, node, coriolis, diag_inv, ud): + dx = node.dx + dy = node.dy + + hplusx = mpv.wplus[0] + hplusy = mpv.wplus[1] + hcenter = mpv.wcenter + + coeffs = (hplusx.T, hplusy.T, hcenter.T) + + ### Need to clean this up, but the Numba stencil is used in the Helmholtz solve for radiative BC! + if hasattr(ud, "ATMOSPHERIC_EXTENSION") and ud.ATMOSPHERIC_EXTENSION: + y_atmosphere = True + else: + y_atmosphere = False + + ################### + x_wall = ( + ud.bdry_type[0] == opts.BdryType.WALL + ) + y_wall = ( + ud.bdry_type[1] == opts.BdryType.WALL + ) + + cor_slc = (slice(1, -1), slice(1, -1)) + coeff_slc = (slice(1, -1), slice(1, -1)) + + coeffs = ( + hplusx[coeff_slc].T.reshape( + -1, + ), + hplusy[coeff_slc].T.reshape( + -1, + ), + hcenter[node.i1].T.reshape( + -1, + ), + ) + + coriolis = ( + coriolis[0][cor_slc].reshape( + -1, + ), + coriolis[1][cor_slc].reshape( + -1, + ), + coriolis[2][cor_slc].reshape( + -1, + ), + coriolis[3][cor_slc].reshape( + -1, + ), + ) + + return lambda p: lap2D_gather_new( + p, + node.iicx, + node.iicy, + coeffs, + dx, + dy, + x_wall, + y_wall, + y_atmosphere, + diag_inv[node.i1].T.reshape( + -1, + ), + coriolis, + ) + + +@nb.njit(cache=True) +def lap2D_gather_new( + p, iicxn, iicyn, coeffs, dx, dy, x_wall, y_wall, y_atmosphere, diag_inv, coriolis +): + ngnc = (iicxn) * (iicyn) + lap = np.zeros((ngnc)) + cnt_x = 0 + cnt_y = 0 + + oodx = 1.0 / dx + oody = 1.0 / dy + cxx, cyy, cxy, cyx = coriolis + + hplusx, hplusy, hcenter = coeffs + + for idx in range(iicxn * iicyn): + nr_row = idx // iicxn + col_idx = idx - (nr_row * iicxn) + + ne_row_idx = nr_row * (iicxn + 1) + ne_col_idx = col_idx + ne_idx = ne_row_idx + ne_col_idx + + ne_topleft = ne_idx + ne_topright = ne_idx + 1 + ne_botleft = ne_idx + (iicxn + 1) + ne_botright = ne_idx + (iicxn + 1) + 1 + + # get indices of the 9pt stencil + topleft_idx = idx - iicxn - 1 + midleft_idx = idx - 1 + botleft_idx = idx + iicxn - 1 + + topmid_idx = idx - iicxn + midmid_idx = idx + botmid_idx = idx + iicxn + + topright_idx = idx - iicxn + 1 + midright_idx = idx + 1 + botright_idx = idx + iicxn + 1 + + if cnt_x == 0: + topleft_idx += iicxn - 1 + midleft_idx += iicxn - 1 + botleft_idx += iicxn - 1 + + if cnt_x == (iicxn - 1): + topright_idx -= iicxn - 1 + midright_idx -= iicxn - 1 + botright_idx -= iicxn - 1 + + val = 0 + + if cnt_y == 0: + if y_atmosphere: + topleft_idx += 2 * (iicxn - val) + topmid_idx += 2 * (iicxn - val) + topright_idx += 2 * (iicxn - val) + else: + topleft_idx += (iicxn) * (iicyn - 1) + topmid_idx += (iicxn) * (iicyn - 1) + topright_idx += (iicxn) * (iicyn - 1) + + if cnt_y == (iicyn - 1): + if y_atmosphere: + botleft_idx -= 2 * (iicxn - val) + botmid_idx -= 2 * (iicxn - val) + botright_idx -= 2 * (iicxn - val) + else: + botleft_idx -= (iicxn) * (iicyn - 1) + botmid_idx -= (iicxn) * (iicyn - 1) + botright_idx -= (iicxn) * (iicyn - 1) + + topleft = p[topleft_idx] + midleft = p[midleft_idx] + botleft = p[botleft_idx] + + topmid = p[topmid_idx] + midmid = p[midmid_idx] + botmid = p[botmid_idx] + + topright = p[topright_idx] + midright = p[midright_idx] + botright = p[botright_idx] + + hplusx_topleft = hplusx[ne_topleft] + hplusx_botleft = hplusx[ne_botleft] + hplusy_topleft = hplusy[ne_topleft] + hplusy_botleft = hplusy[ne_botleft] + + hplusx_topright = hplusx[ne_topright] + hplusx_botright = hplusx[ne_botright] + hplusy_topright = hplusy[ne_topright] + hplusy_botright = hplusy[ne_botright] + + cxx_tl = cxx[ne_topleft] + cxx_tr = cxx[ne_topright] + cxx_bl = cxx[ne_botleft] + cxx_br = cxx[ne_botright] + + cxy_tl = cxy[ne_topleft] + cxy_tr = cxy[ne_topright] + cxy_bl = cxy[ne_botleft] + cxy_br = cxy[ne_botright] + + cyx_tl = cyx[ne_topleft] + cyx_tr = cyx[ne_topright] + cyx_bl = cyx[ne_botleft] + cyx_br = cyx[ne_botright] + + cyy_tl = cyy[ne_topleft] + cyy_tr = cyy[ne_topright] + cyy_bl = cyy[ne_botleft] + cyy_br = cyy[ne_botright] + + if x_wall and (cnt_x == 0): + hplusx_topleft = 0.0 + hplusy_topleft = 0.0 + hplusx_botleft = 0.0 + hplusy_botleft = 0.0 + + if x_wall and (cnt_x == (iicxn - 1)): + hplusx_topright = 0.0 + hplusy_topright = 0.0 + hplusx_botright = 0.0 + hplusy_botright = 0.0 + + if y_wall and (cnt_y == 0): + if y_atmosphere: + pass + else: + hplusx_topleft = 0.0 + hplusy_topleft = 0.0 + hplusx_topright = 0.0 + hplusy_topright = 0.0 + + if y_wall and (cnt_y == (iicyn - 1)): + if y_atmosphere: + pass + else: + hplusx_botleft = 0.0 + hplusy_botleft = 0.0 + hplusx_botright = 0.0 + hplusy_botright = 0.0 + + Dx_tl = 0.5 * (topmid - topleft + midmid - midleft) * hplusx_topleft + Dx_tr = 0.5 * (topright - topmid + midright - midmid) * hplusx_topright + Dx_bl = 0.5 * (botmid - botleft + midmid - midleft) * hplusx_botleft + Dx_br = 0.5 * (botright - botmid + midright - midmid) * hplusx_botright + + Dy_tl = 0.5 * (midmid - topmid + midleft - topleft) * hplusy_topleft + Dy_tr = 0.5 * (midright - topright + midmid - topmid) * hplusy_topright + Dy_bl = 0.5 * (botmid - midmid + botleft - midleft) * hplusy_botleft + Dy_br = 0.5 * (botright - midright + botmid - midmid) * hplusy_botright + + fac = 1.0 + Dxx = ( + 0.5 + * (cxx_tr * Dx_tr - cxx_tl * Dx_tl + cxx_br * Dx_br - cxx_bl * Dx_bl) + * oodx + * oodx + * fac + ) + Dyy = ( + 0.5 + * (cyy_br * Dy_br - cyy_tr * Dy_tr + cyy_bl * Dy_bl - cyy_tl * Dy_tl) + * oody + * oody + * fac + ) + Dyx = ( + 0.5 + * (cxy_br * Dy_br - cxy_bl * Dy_bl + cxy_tr * Dy_tr - cxy_tl * Dy_tl) + * oody + * oodx + * fac + ) + Dxy = ( + 0.5 + * (cyx_br * Dx_br - cyx_tr * Dx_tr + cyx_bl * Dx_bl - cyx_tl * Dx_tl) + * oodx + * oody + * fac + ) + + lap[idx] = Dxx + Dyy + Dyx + Dxy + hcenter[idx] * p[idx] + + lap[idx] *= diag_inv[idx] + + cnt_x += 1 + if cnt_x % iicxn == 0: + cnt_y += 1 + cnt_x = 0 + + return lap + + + def stencil_27pt(elem, node, mpv, ud, diag_inv, dt): oodxyz = node.dxyz oodxyz = 1.0 / (oodxyz**2) diff --git a/src/pybella/flow_solver/physics/low_mach/second_projection.py b/src/pybella/flow_solver/physics/low_mach/second_projection.py index f757c532..23bd62c5 100644 --- a/src/pybella/flow_solver/physics/low_mach/second_projection.py +++ b/src/pybella/flow_solver/physics/low_mach/second_projection.py @@ -188,7 +188,7 @@ def euler_backward_non_advective_impl_part( mem.mpv.rhs *= diag_inv p2 = mem.mpv.p2_nodes[mem.node.i2].T - lap = lm_lp.get_lap2D_stencil(mem.mpv, mem.node, coriolis_params, diag_inv, ud) + lap = lm_lp.get_lap2D(mem.mpv, mem.node, coriolis_params, diag_inv, ud) sh = p2.shape[0] * p2.shape[1] elif mem.elem.ndim == 3: From 21012b4069cfa7390a51c8f45b152f4858df4abc Mon Sep 17 00:00:00 2001 From: raychew Date: Mon, 16 Jun 2025 22:48:15 -0700 Subject: [PATCH 14/35] cache that one njit function in recovery.py --- src/pybella/flow_solver/physics/gas_dynamics/recovery.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pybella/flow_solver/physics/gas_dynamics/recovery.py b/src/pybella/flow_solver/physics/gas_dynamics/recovery.py index 0edf21da..789cb2fb 100644 --- a/src/pybella/flow_solver/physics/gas_dynamics/recovery.py +++ b/src/pybella/flow_solver/physics/gas_dynamics/recovery.py @@ -112,7 +112,7 @@ def _slopes(Diffs, Slopes, ud, elem): return Slopes -@njit +@njit(cache=True) def _limiters(limiter_type, al, ar): """ Applies the limiter type specified in the initial conditions to recovery the slope. From 4427a2cd6970d1ce195ec3927b7e410687cc62dd Mon Sep 17 00:00:00 2001 From: raychew Date: Mon, 16 Jun 2025 22:55:41 -0700 Subject: [PATCH 15/35] blacked everything --- .../flow_solver/physics/low_mach/laplacian.py | 54 ++++++++++++------- .../physics/low_mach/second_projection.py | 8 +-- src/pybella/utils/slices.py | 11 ++-- 3 files changed, 46 insertions(+), 27 deletions(-) diff --git a/src/pybella/flow_solver/physics/low_mach/laplacian.py b/src/pybella/flow_solver/physics/low_mach/laplacian.py index 8bb978bc..f01bffb9 100644 --- a/src/pybella/flow_solver/physics/low_mach/laplacian.py +++ b/src/pybella/flow_solver/physics/low_mach/laplacian.py @@ -43,6 +43,7 @@ def get_lap2D_stencil(mpv, node, coriolis, diag_inv, ud): p, dummy_p, dx, dy, coeffs, diag_inv.T, coriolis, shp, boundary_handler ) + @nb.njit(cache=True) def lap2D_generic(p, dp, dx, dy, coeffs, diag_inv, coriolis, shp, boundary_handler): p = p.reshape(shp[1], shp[0]) @@ -78,6 +79,7 @@ def periodic_x_wall_y(arr): return arr + @nb.njit(cache=True) def periodic(arr): """Apply periodic boundary conditions""" @@ -88,6 +90,7 @@ def periodic(arr): return arr + @nb.njit(cache=True) def apply_x_wall_boundary_coeffs(hpx, hpy): """Apply wall boundary conditions by modifying coefficients""" @@ -117,6 +120,7 @@ def apply_y_wall_boundary_coeffs(hpx, hpy): return hpx, hpy + @nb.stencil def kernel_9pt(a, dx, dy, hpx, hpy, hpc, diag_inv, cxx, cyy, cxy, cyx): oodx = 1.0 / dx @@ -202,8 +206,6 @@ def kernel_9pt(a, dx, dy, hpx, hpy, hpc, diag_inv, cxx, cyy, cxy, cyx): return ((Dxx + Dyy + Dyx + Dxy) + hpc[0, 0] * a[0, 0]) * diag_inv[0, 0] - - def get_lap2D(mpv, node, coriolis, diag_inv, ud): dx = node.dx dy = node.dy @@ -221,12 +223,8 @@ def get_lap2D(mpv, node, coriolis, diag_inv, ud): y_atmosphere = False ################### - x_wall = ( - ud.bdry_type[0] == opts.BdryType.WALL - ) - y_wall = ( - ud.bdry_type[1] == opts.BdryType.WALL - ) + x_wall = ud.bdry_type[0] == opts.BdryType.WALL + y_wall = ud.bdry_type[1] == opts.BdryType.WALL cor_slc = (slice(1, -1), slice(1, -1)) coeff_slc = (slice(1, -1), slice(1, -1)) @@ -472,7 +470,6 @@ def lap2D_gather_new( return lap - def stencil_27pt(elem, node, mpv, ud, diag_inv, dt): oodxyz = node.dxyz oodxyz = 1.0 / (oodxyz**2) @@ -729,32 +726,49 @@ def lap3D( return lap + def precon_diag_prepare(mpv, node): """Highly optimized version with minimal function calls.""" ndim = node.ndim - + coeff = 0.75 if ndim == 2 else 0.0625 if ndim == 3 else None if coeff is None: raise ValueError(f"Unsupported ndim: {ndim}") - + dx, dy, dz = node.dx, node.dy, node.dz inv_dx2, inv_dy2 = 1.0 / (dx**2), 1.0 / (dy**2) - + diag_kernel = operators.get_averaging_kernel(ndim, width=2) diag = mpv.wcenter.copy() - + # Main diagonal terms - diag -= coeff * inv_dx2 * operators.apply_convolution_kernel(mpv.wplus[0], diag_kernel) - diag -= coeff * inv_dy2 * operators.apply_convolution_kernel(mpv.wplus[1], diag_kernel) - + diag -= ( + coeff * inv_dx2 * operators.apply_convolution_kernel(mpv.wplus[0], diag_kernel) + ) + diag -= ( + coeff * inv_dy2 * operators.apply_convolution_kernel(mpv.wplus[1], diag_kernel) + ) + if ndim == 2: # Cross terms inv_dxdy = 1.0 / (dx * dy) - diag -= coeff * inv_dxdy * operators.apply_convolution_kernel(mpv.wplus[0], diag_kernel) - diag -= coeff * inv_dxdy * operators.apply_convolution_kernel(mpv.wplus[1], diag_kernel) + diag -= ( + coeff + * inv_dxdy + * operators.apply_convolution_kernel(mpv.wplus[0], diag_kernel) + ) + diag -= ( + coeff + * inv_dxdy + * operators.apply_convolution_kernel(mpv.wplus[1], diag_kernel) + ) elif ndim == 3: inv_dz2 = 1.0 / (dz**2) - diag -= coeff * inv_dz2 * operators.apply_convolution_kernel(mpv.wplus[2], diag_kernel) - + diag -= ( + coeff + * inv_dz2 + * operators.apply_convolution_kernel(mpv.wplus[2], diag_kernel) + ) + return 1.0 / diag diff --git a/src/pybella/flow_solver/physics/low_mach/second_projection.py b/src/pybella/flow_solver/physics/low_mach/second_projection.py index 23bd62c5..cb5136c8 100644 --- a/src/pybella/flow_solver/physics/low_mach/second_projection.py +++ b/src/pybella/flow_solver/physics/low_mach/second_projection.py @@ -167,7 +167,10 @@ def euler_backward_non_advective_impl_part( mem.mpv.rhs -= mem.mpv.wcenter * mem.mpv.dp2_nodes mem.mpv.wcenter[...] = 0.0 else: - mem.mpv.rhs = ud.compressibility * mem.mpv.rhs + (1.0 - ud.compressibility) * mem.mpv.rhs + mem.mpv.rhs = ( + ud.compressibility * mem.mpv.rhs + + (1.0 - ud.compressibility) * mem.mpv.rhs + ) mem.mpv.wcenter[...] *= ud.compressibility else: mem.mpv.wcenter *= ud.compressibility @@ -270,8 +273,7 @@ def operator_coefficients_nodes(mem, ud, dt): kernel = operators.get_averaging_kernel(ndim, width=2) mem.mpv.wcenter = ccenter * operators.apply_convolution_kernel( - mem.sol.rhoY**cexp, - kernel + mem.sol.rhoY**cexp, kernel ) if not hasattr(ud, "ATMOSPHERIC_EXTENSION"): diff --git a/src/pybella/utils/slices.py b/src/pybella/utils/slices.py index 5367df35..0c0f5152 100644 --- a/src/pybella/utils/slices.py +++ b/src/pybella/utils/slices.py @@ -1,6 +1,7 @@ import numpy as np from . import options as opts + def get_neighbor_indices(ndim): """Create left and right neighbor indices for n-dimensional arrays.""" lefts_idx = [slice(None)] * ndim @@ -168,12 +169,14 @@ def get_face_center_averaging_indices(ndim): return indices + # ...existing code... + def get_boundary_condition_slices(elem, node, ud): """ Create slice indices for boundary conditions including periodic, element, and node slices. - + Parameters ---------- elem : object @@ -184,14 +187,14 @@ def get_boundary_condition_slices(elem, node, ud): User data object with bdry_type attribute opts : module Options module with BdryType enum - + Returns ------- tuple (idx_periodic, idx_e, idx_n, periodicity) where: - idx_periodic: slice tuple for periodic regions - idx_e: slice tuple for element regions - - idx_n: slice tuple for node regions + - idx_n: slice tuple for node regions - periodicity: boolean tuple for each dimension """ x_periodic = ud.bdry_type[0] == opts.BdryType.PERIODIC @@ -215,5 +218,5 @@ def get_boundary_condition_slices(elem, node, ud): idx_n[dim] = slice(igs[dim], -igs[dim]) idx_periodic, idx_e, idx_n = tuple(idx_periodic), tuple(idx_e), tuple(idx_n) - + return idx_periodic, idx_e, idx_n, periodicity From debc535ce31e943b8aae7b18373ee1177f96fcea Mon Sep 17 00:00:00 2001 From: raychew Date: Tue, 17 Jun 2025 14:33:46 -0700 Subject: [PATCH 16/35] completed #48 refactored second_projection.euler_backward_non_advective_impl_part --- .../physics/low_mach/second_projection.py | 221 +++++++++++------- 1 file changed, 131 insertions(+), 90 deletions(-) diff --git a/src/pybella/flow_solver/physics/low_mach/second_projection.py b/src/pybella/flow_solver/physics/low_mach/second_projection.py index cb5136c8..203f4766 100644 --- a/src/pybella/flow_solver/physics/low_mach/second_projection.py +++ b/src/pybella/flow_solver/physics/low_mach/second_projection.py @@ -117,7 +117,6 @@ def euler_backward_non_advective_expl_part(mem, ud, dt): bdry.set_explicit_boundary_data(mem.sol, mem.elem, ud, mem.th, mem.mpv) - def euler_backward_non_advective_impl_part( mem, ud, @@ -127,109 +126,76 @@ def euler_backward_non_advective_impl_part( label=None, debug=False, ): + """ + Optimized version with reduced redundancy and improved structure. + """ + # Early return optimization - disable writer if not debugging if not debug: writer = None + nc = mem.node.sc - - if writer != None: - writer.populate(str(label), "p2_initial", mem.mpv.p2_nodes) - - if Sol0 is not None: - bdry.set_explicit_boundary_data(Sol0, mem.elem, ud, mem.th, mem.mpv) - operator_coefficients_nodes(mem, ud, dt) - else: - bdry.set_explicit_boundary_data(mem.sol, mem.elem, ud, mem.th, mem.mpv) - operator_coefficients_nodes(mem, ud, dt) - - if writer != None: - writer.populate(str(label), "hcenter", mem.mpv.wcenter) - writer.populate(str(label), "wplusx", mem.mpv.wplus[0]) - writer.populate(str(label), "wplusy", mem.mpv.wplus[1]) - ( - writer.populate(str(label), "wplusz", mem.mpv.wplus[2]) - if mem.elem.ndim == 3 - else writer.populate(str(label), "wplusz", np.zeros_like(mem.mpv.wplus[0])) - ) - - bdry.set_ghostnodes_p2(mem.mpv.p2_nodes, mem.node, ud) + + # Helper function to reduce writer boilerplate + def write_debug_data(key, data): + if writer is not None: + writer.populate(str(label), key, data) + + # Initial debug output + write_debug_data("p2_initial", mem.mpv.p2_nodes) + + # Set boundary data and compute operator coefficients (consolidated) + sol_for_boundary = Sol0 if Sol0 is not None else mem.sol + bdry.set_explicit_boundary_data(sol_for_boundary, mem.elem, ud, mem.th, mem.mpv) + operator_coefficients_nodes(mem, ud, dt) + + # Debug output for w components + if writer is not None: + write_debug_data("hcenter", mem.mpv.wcenter) + write_debug_data("wplusx", mem.mpv.wplus[0]) + write_debug_data("wplusy", mem.mpv.wplus[1]) + + # Handle 3D case more cleanly + wplusz_data = (mem.mpv.wplus[2] if mem.elem.ndim == 3 + else np.zeros_like(mem.mpv.wplus[0])) + write_debug_data("wplusz", wplusz_data) + + # Boundary and correction operations + # bdry.set_ghostnodes_p2(mem.mpv.p2_nodes, mem.node, ud) correction_nodes(mem, ud, dt, mem.mpv.p2_nodes, 0) bdry.set_explicit_boundary_data(mem.sol, mem.elem, ud, mem.th, mem.mpv) - + + # Compute RHS mem.mpv.rhs[...] = divergence_nodes(mem.mpv.rhs, mem.elem, mem.sol, ud) - - if writer != None: - writer.populate(str(label), "rhs", mem.mpv.rhs) - + write_debug_data("rhs", mem.mpv.rhs) + mem.mpv.rhs /= dt - - if ud.is_compressible == 0: - if ud.is_ArakawaKonor: - mem.mpv.rhs -= mem.mpv.wcenter * mem.mpv.dp2_nodes - mem.mpv.wcenter[...] = 0.0 - else: - mem.mpv.rhs = ( - ud.compressibility * mem.mpv.rhs - + (1.0 - ud.compressibility) * mem.mpv.rhs - ) - mem.mpv.wcenter[...] *= ud.compressibility - else: - mem.mpv.wcenter *= ud.compressibility - - if writer != None: - writer.populate(str(label), "rhs_nodes", mem.mpv.rhs) - - mem.mpv.rhs[...] = mem.mpv.rhs - - # prepare initial left-hand side and the laplacian stencil - if mem.elem.ndim == 2: - Vec = mem.mpv - coriolis_params = multiply_inverse_coriolis( - Vec, mem, ud, dt, attrs=("u", "v", "w"), get_coeffs=True - ) - - diag_inv = lm_lp.precon_diag_prepare(mem.mpv, mem.node) - mem.mpv.rhs *= diag_inv - - p2 = mem.mpv.p2_nodes[mem.node.i2].T - lap = lm_lp.get_lap2D(mem.mpv, mem.node, coriolis_params, diag_inv, ud) - sh = p2.shape[0] * p2.shape[1] - - elif mem.elem.ndim == 3: - lap = lm_lp.stencil_27pt(mem.elem, mem.node, mem.mpv, ud, diag_inv, dt) - sh = p2.reshape(-1).shape[0] - - lap = sp.sparse.linalg.LinearOperator((sh, sh), lap) - # lap = LinearOperator(sh,lap) - + + # Handle compressibility - simplified logic + _apply_compressibility_correction(mem, ud) + + write_debug_data("rhs_nodes", mem.mpv.rhs) + + # Prepare and solve linear system + lap, rhs_inner = _prepare_linear_system(mem, ud, dt) + + # Solve using BiCGSTAB counter = solver_counter() - - # prepare right-hand side - if mem.elem.ndim == 2: - rhs_inner = mem.mpv.rhs[mem.node.i1].T.ravel() - else: - rhs_inner = mem.mpv.rhs[mem.node.i1].ravel() - p2, _ = sp.sparse.linalg.bicgstab( lap, rhs_inner, atol=ud.tol, maxiter=ud.max_iterations, callback=counter ) - - p2_full = np.zeros(nc).squeeze() - if mem.elem.ndim == 2: - p2_full[mem.node.i2] = p2.reshape(mem.mpv.rhs[mem.node.i1].T.shape).T - elif mem.elem.ndim == 3: - p2_full[mem.node.i1] = p2.reshape(ud.inx + 2, ud.iny + 2, ud.inz + 2) - - if writer != None: - writer.populate(str(label), "p2_full", p2_full) - - bdry.set_ghostnodes_p2(p2_full, mem.node, ud) + + # Reshape solution and apply + p2_full = _reshape_solution(p2, mem, ud, nc) + write_debug_data("p2_full", p2_full) + + # # Final boundary and correction operations + # bdry.set_ghostnodes_p2(p2_full, mem.node, ud) correction_nodes(mem, ud, dt, p2_full, 1) - + mem.mpv.p2_nodes[...] += p2_full bdry.set_ghostnodes_p2(mem.mpv.p2_nodes, mem.node, ud) bdry.set_explicit_boundary_data(mem.sol, mem.elem, ud, mem.th, mem.mpv) - def correction_nodes(mem, ud, dt, p, updt_chi): ndim = mem.node.ndim Gammainv = mem.th.Gammainv @@ -254,8 +220,6 @@ def correction_nodes(mem, ud, dt, p, updt_chi): mem.sol.rhow += thinv * mem.mpv.w if ndim == 3 else 0.0 mem.sol.rhoX += -updt_chi * dt * dSdy * mem.sol.rhov - assert True - def operator_coefficients_nodes(mem, ud, dt): Gammainv = mem.th.Gammainv @@ -444,3 +408,80 @@ def _momentum_pot_temp_divergence_3d_jit(rhs, rho, rhou, rhov, rhow, rhoY, dx, d # Assign to inner region rhs[1:-1, 1:-1, 1:-1] = total_div + + + +def _apply_compressibility_correction(mem, ud): + """ + Extracted compressibility logic for better readability. + """ + if ud.is_compressible == 0: + if ud.is_ArakawaKonor: + mem.mpv.rhs -= mem.mpv.wcenter * mem.mpv.dp2_nodes + mem.mpv.wcenter[...] = 0.0 + else: + # Simplified - this was redundant multiplication + mem.mpv.wcenter[...] *= ud.compressibility + else: + mem.mpv.wcenter *= ud.compressibility + + +def _prepare_linear_system(mem, ud, dt): + """ + Prepare the linear system components based on dimensionality. + """ + if mem.elem.ndim == 2: + return _prepare_2d_system(mem, ud, dt) + else: # 3D case + return _prepare_3d_system(mem, ud, dt) + + +def _prepare_2d_system(mem, ud, dt): + """Prepare 2D linear system.""" + Vec = mem.mpv + coriolis_params = multiply_inverse_coriolis( + Vec, mem, ud, dt, attrs=("u", "v", "w"), get_coeffs=True + ) + + diag_inv = lm_lp.precon_diag_prepare(mem.mpv, mem.node) + mem.mpv.rhs *= diag_inv + + p2 = mem.mpv.p2_nodes[mem.node.i2].T + lap = lm_lp.get_lap2D(mem.mpv, mem.node, coriolis_params, diag_inv, ud) + sh = p2.shape[0] * p2.shape[1] + + lap = sp.sparse.linalg.LinearOperator((sh, sh), lap) + rhs_inner = mem.mpv.rhs[mem.node.i1].T.ravel() + + return lap, rhs_inner + + +def _prepare_3d_system(mem, ud, dt): + """Prepare 3D linear system.""" + # Note: diag_inv appears to be used but not defined in 3D case + # This might be a bug in the original code + diag_inv = None # TODO: Verify if this should be computed for 3D + + lap = lm_lp.stencil_27pt(mem.elem, mem.node, mem.mpv, ud, diag_inv, dt) + p2 = mem.mpv.p2_nodes # Define p2 for 3D case + sh = p2.reshape(-1).shape[0] + + lap = sp.sparse.linalg.LinearOperator((sh, sh), lap) + rhs_inner = mem.mpv.rhs[mem.node.i1].ravel() + + return lap, rhs_inner, sh + + +def _reshape_solution(p2, mem, ud, nc): + """ + Reshape the solution vector back to the appropriate format. + """ + p2_full = np.zeros(nc).squeeze() + + if mem.elem.ndim == 2: + p2_full[mem.node.i2] = p2.reshape(mem.mpv.rhs[mem.node.i1].T.shape).T + else: # 3D case + p2_full[mem.node.i1] = p2.reshape(ud.inx + 2, ud.iny + 2, ud.inz + 2) + + return p2_full + From 364f36b95d0de633605afd1153a900f9c121e003 Mon Sep 17 00:00:00 2001 From: raychew Date: Tue, 17 Jun 2025 17:09:26 -0700 Subject: [PATCH 17/35] restructured package to be flatter and reflective of the current directory structure --- .../flow_solver/discretisation/time_update.py | 37 +- .../gas_dynamics => numerics}/__init__.py | 0 src/pybella/flow_solver/numerics/coriolis.py | 87 ++ .../explicit_advection/advective_flux.py | 38 + .../explicit_advection/compute_advection.py} | 62 +- .../explicit_advection}/recovery.py | 4 +- .../explicit_advection/riemann_solver.py} | 83 +- .../flow_solver/numerics/explicit_euler.py | 79 ++ .../flow_solver/numerics/implicit_euler.py | 239 ++++++ .../physics/{gas_dynamics => }/cfl.py | 0 .../physics/{gas_dynamics => }/eos.py | 2 +- .../flow_solver/physics/low_mach/laplacian.py | 774 ------------------ .../flow_solver/physics/low_mach/mpv.py | 36 - .../physics/low_mach/second_projection.py | 487 ----------- .../{gas_dynamics => }/thermodynamics.py | 0 src/pybella/flow_solver/utils/cache.py | 110 +++ .../utils/{variable.py => fields.py} | 122 +-- src/pybella/flow_solver/utils/prepare.py | 22 +- .../interfaces/dynamics_blending/schemes.py | 2 +- src/pybella/tests/test_internal_long_wave.py | 6 +- src/pybella/tests/test_lamb_wave.py | 5 +- src/pybella/tests/test_travelling_vortex.py | 11 +- src/pybella/utils/data_structures.py | 18 +- src/pybella/utils/operators.py | 659 --------------- .../low_mach => utils/operators}/__init__.py | 0 src/pybella/utils/operators/convolution.py | 207 +++++ src/pybella/utils/operators/divergence.py | 189 +++++ .../utils/operators/finite_difference.py | 40 + src/pybella/utils/operators/gradient.py | 253 ++++++ .../utils/operators/laplacian/__init__.py | 0 .../utils/operators/laplacian/lap2D_manual.py | 266 ++++++ .../utils/operators/laplacian/lap2D_numba.py | 203 +++++ .../utils/operators/laplacian/lap3D.py | 257 ++++++ .../operators/laplacian/preconditioner.py | 47 ++ 34 files changed, 2135 insertions(+), 2210 deletions(-) rename src/pybella/flow_solver/{physics/gas_dynamics => numerics}/__init__.py (100%) create mode 100644 src/pybella/flow_solver/numerics/coriolis.py create mode 100644 src/pybella/flow_solver/numerics/explicit_advection/advective_flux.py rename src/pybella/flow_solver/{physics/gas_dynamics/explicit.py => numerics/explicit_advection/compute_advection.py} (88%) rename src/pybella/flow_solver/{physics/gas_dynamics => numerics/explicit_advection}/recovery.py (98%) rename src/pybella/flow_solver/{physics/gas_dynamics/numerical_flux.py => numerics/explicit_advection/riemann_solver.py} (56%) create mode 100644 src/pybella/flow_solver/numerics/explicit_euler.py create mode 100644 src/pybella/flow_solver/numerics/implicit_euler.py rename src/pybella/flow_solver/physics/{gas_dynamics => }/cfl.py (100%) rename src/pybella/flow_solver/physics/{gas_dynamics => }/eos.py (98%) delete mode 100644 src/pybella/flow_solver/physics/low_mach/laplacian.py delete mode 100644 src/pybella/flow_solver/physics/low_mach/mpv.py delete mode 100644 src/pybella/flow_solver/physics/low_mach/second_projection.py rename src/pybella/flow_solver/physics/{gas_dynamics => }/thermodynamics.py (100%) create mode 100644 src/pybella/flow_solver/utils/cache.py rename src/pybella/flow_solver/utils/{variable.py => fields.py} (63%) delete mode 100644 src/pybella/utils/operators.py rename src/pybella/{flow_solver/physics/low_mach => utils/operators}/__init__.py (100%) create mode 100644 src/pybella/utils/operators/convolution.py create mode 100644 src/pybella/utils/operators/divergence.py create mode 100644 src/pybella/utils/operators/finite_difference.py create mode 100644 src/pybella/utils/operators/gradient.py create mode 100644 src/pybella/utils/operators/laplacian/__init__.py create mode 100644 src/pybella/utils/operators/laplacian/lap2D_manual.py create mode 100644 src/pybella/utils/operators/laplacian/lap2D_numba.py create mode 100644 src/pybella/utils/operators/laplacian/lap3D.py create mode 100644 src/pybella/utils/operators/laplacian/preconditioner.py diff --git a/src/pybella/flow_solver/discretisation/time_update.py b/src/pybella/flow_solver/discretisation/time_update.py index bd2565e6..4d33d7da 100644 --- a/src/pybella/flow_solver/discretisation/time_update.py +++ b/src/pybella/flow_solver/discretisation/time_update.py @@ -3,17 +3,14 @@ import numpy as np +from ..physics import cfl, eos + from ...utils import options as opts # dependencies of the flow solver subpackage from ..utils import boundary as bdry -from ..physics.gas_dynamics import ( - numerical_flux as gd_flux, - eos as gd_eos, - cfl as gd_cfl, -) -from ..physics.gas_dynamics import explicit as gd_explicit -from ..physics.low_mach import second_projection as lm_sp +from ..numerics.explicit_advection import advective_flux, compute_advection +from ..numerics import explicit_euler, implicit_euler # for blending module from ...interfaces.dynamics_blending import schemes @@ -44,7 +41,7 @@ def do( if mem.time.step == 0 and writer != None: writer.write_all(mem, str(label) + "_ic") - dt, cfl, cfl_ac = gd_cfl.dynamic_timestep( + dt, cfl_adv, cfl_acs = cfl.dynamic_timestep( mem.sol, mem.time.t, tout, mem.elem, ud, mem.th, mem.time.step ) @@ -67,8 +64,8 @@ def do( debug_writer, ) - ud.is_nonhydrostatic = gd_eos.is_nonhydrostatic(ud, mem.time.window_step) - ud.nonhydrostasy = gd_eos.nonhydrostasy(ud, mem.time.t, mem.time.window_step) + ud.is_nonhydrostatic = eos.is_nonhydrostatic(ud, mem.time.window_step) + ud.nonhydrostasy = eos.nonhydrostasy(ud, mem.time.t, mem.time.window_step) if ud.continuous_blending or ud.initial_blending: logging.info( @@ -88,7 +85,7 @@ def do( debug_writer.write(f"{label}_before_flux") - gd_flux.recompute_advective_fluxes(mem) + advective_flux.recompute(mem) debug_writer.populate_flux_components( f"{label}_before_advect", mem.flux, mem.elem @@ -96,7 +93,7 @@ def do( debug_writer.write(f"{label}_before_advect") if ud.do_advection: - gd_explicit.advect_rk( + compute_advection.first_order_runge_kutta( mem, ud, 0.5 * dt, @@ -107,13 +104,13 @@ def do( mem.mpv.p2_nodes0[...] = mem.mpv.p2_nodes - lm_sp.euler_backward_non_advective_expl_part(mem, ud, 0.5 * dt) + implicit_euler.do_explicit_part(mem, ud, 0.5 * dt) debug_writer.write(f"{label}_after_ebnaexp") Sol0_increment = Sol0 if ud.is_compressible == 0 else None - lm_sp.euler_backward_non_advective_impl_part( + implicit_euler.do_implicit_part( mem, ud, 0.5 * dt, @@ -141,7 +138,7 @@ def do( debug_writer.write(f"{label}_after_ebnaimp") - gd_flux.recompute_advective_fluxes(mem) + advective_flux.recompute(mem) debug_writer.populate_flux_components( f"{label}_after_half_step", mem.flux, mem.elem @@ -159,7 +156,7 @@ def do( mem.sol = copy.deepcopy(Sol0) - lm_sp.euler_forward_non_advective( + explicit_euler.do_forward_step( mem, ud, 0.5 * dt, @@ -170,7 +167,7 @@ def do( debug_writer.write(f"{label}_after_efna") if ud.do_advection: - gd_explicit.advect( + compute_advection.strange_splitting( mem, ud, dt, @@ -181,11 +178,11 @@ def do( debug_writer.write(f"{label}_after_full_advect") - lm_sp.euler_backward_non_advective_expl_part(mem, ud, 0.5 * dt) + implicit_euler.do_explicit_part(mem, ud, 0.5 * dt) debug_writer.write(f"{label}_after_full_ebnaexp") - lm_sp.euler_backward_non_advective_impl_part( + implicit_euler.do_implicit_part( mem, ud, 0.5 * dt, @@ -245,7 +242,7 @@ def do( ) logging.info( "step %i done, t = %.12f, dt = %.12f, CFL = %.8f, CFL_ac = %.8f" - % (mem.time.step, mem.time.t, dt, cfl, cfl_ac) + % (mem.time.step, mem.time.t, dt, cfl_adv, cfl_acs) ) logging.info( "###############################################################################################" diff --git a/src/pybella/flow_solver/physics/gas_dynamics/__init__.py b/src/pybella/flow_solver/numerics/__init__.py similarity index 100% rename from src/pybella/flow_solver/physics/gas_dynamics/__init__.py rename to src/pybella/flow_solver/numerics/__init__.py diff --git a/src/pybella/flow_solver/numerics/coriolis.py b/src/pybella/flow_solver/numerics/coriolis.py new file mode 100644 index 00000000..ce9b7fa6 --- /dev/null +++ b/src/pybella/flow_solver/numerics/coriolis.py @@ -0,0 +1,87 @@ +import numba as nb + +# Refactored main function +def multiply_inverse_terms( + Vec, mem, ud, dt, attrs=("rhou", "rhov", "rhow"), get_coeffs=False +): + """Coriolis matrix multiplication.""" + nonhydro = ud.nonhydrostasy + g = ud.gravity_strength[1] + Msq = ud.Msq + + wh1, wv, wh2 = dt * ud.coriolis_strength + strat = mem.mpv.HydroState_n.get_dSdy(mem.elem, mem.node) + Y = mem.sol.rhoY / mem.sol.rho + nu = -(dt**2) * (g / Msq) * strat * Y + + # Get vector components + VecU = getattr(Vec, attrs[0]) + VecV = getattr(Vec, attrs[1]) + VecW = getattr(Vec, attrs[2]) + + U, V, W = mem.cache.get_velocity_array_views(VecU.shape) + + _apply_coriolis_matrix_inplace(VecU, VecV, VecW, U, V, W, wh1, wh2, wv, nu, nonhydro) + + # Return coefficients + if get_coeffs: + h11, h12, _, h21, h22, _, _, _, _ = _compute_coriolis_coefficients( + wh1, wh2, wv, nu, nonhydro + ) + return (h11.T, h22.T, h12.T, h21.T) + + +@nb.njit(cache=True) +def _compute_coriolis_coefficients(wh1, wh2, wv, nu, nonhydro): + """Compute coefficients for the H^-1 matrix multiplication. + + This corresponds to equation (C11) in the mathematical formulation. + """ + # Common terms + wh1_sq = wh1 * wh1 + wh2_sq = wh2 * wh2 + wv_sq = wv * wv + nu_nh = nu + nonhydro + + # Denominator (det(H)) + denom = 1.0 / (wh1_sq + wh2_sq + nu_nh * (wv_sq + 1.0)) + + # H^-1 matrix elements (row-major order) + # Row 1: U equation coefficients + h11 = (wh1_sq + nu_nh) * denom + h12 = nonhydro * (wh1 * wv + wh2) * denom + h13 = (wh1 * wh2 - nu_nh * wv) * denom + + # Row 2: V equation coefficients + h21 = (wh1 * wv - wh2) * denom + h22 = nonhydro * (1.0 + wv_sq) * denom + h23 = (wh2 * wv + wh1) * denom + + # Row 3: W equation coefficients + h31 = (wh1 * wh2 + nu_nh * wv) * denom + h32 = nonhydro * (wh2 * wv - wh1) * denom + h33 = (nu_nh + wh2_sq) * denom + + return h11, h12, h13, h21, h22, h23, h31, h32, h33 + +@nb.njit(cache=True) +def _apply_coriolis_matrix_inplace( + u_vec, v_vec, w_vec, U, V, W, wh1, wh2, wv, nu, nonhydro +): + """Apply H^-1 matrix multiplication in-place. + + Corresponds to the equation: U^{n+1} = H^{-1}(U^{n*} - Δt_{cp}(Pθ)^* ∇π^{n+1}) + """ + # Get matrix coefficients + h11, h12, h13, h21, h22, h23, h31, h32, h33 = _compute_coriolis_coefficients( + wh1, wh2, wv, nu, nonhydro + ) + + U[...] = u_vec + V[...] = v_vec + W[...] = w_vec + + # Matrix multiplication: [U_new, V_new, W_new] = H^-1 @ [U_old, V_old, W_old] + u_vec[...] = h11 * U + h12 * V + h13 * W + v_vec[...] = h21 * U + h22 * V + h23 * W + w_vec[...] = h31 * U + h32 * V + h33 * W \ No newline at end of file diff --git a/src/pybella/flow_solver/numerics/explicit_advection/advective_flux.py b/src/pybella/flow_solver/numerics/explicit_advection/advective_flux.py new file mode 100644 index 00000000..4d9b3e6f --- /dev/null +++ b/src/pybella/flow_solver/numerics/explicit_advection/advective_flux.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- +import numpy as np +from numba import njit + +from ....utils.operators import convolution +from ....utils import slices + + +def recompute(mem, **kwargs): + """Recompute the advective fluxes at the cell interfaces. + + Parameters + ---------- + mem : object + Memory object containing sol and flux attributes + **kwargs + Optional pre-computed velocity components ('u', 'v', 'w') + """ + ndim = mem.sol.rho.ndim + inner_idx = slices.get_inner_slice(ndim) + kernels = convolution.get_flux_kernels(ndim) + + # Define the component order and corresponding flux indices + components = ["u", "v"] if ndim == 2 else ["u", "v", "w"] + rho_components = ["rhou", "rhov"] if ndim == 2 else ["rhou", "rhov", "rhow"] + + for i, (comp, rho_comp) in enumerate(zip(components, rho_components)): + # Use provided velocity or compute from momentum + if comp in kwargs: + rhoY_vel = kwargs[comp] + else: + momentum = getattr(mem.sol, rho_comp) + rhoY_vel = mem.sol.rhoY * momentum / mem.sol.rho + + # Apply directional convolution + mem.flux[i].rhoY[inner_idx] = convolution.apply_directional_convolution( + rhoY_vel, kernels[comp], comp, ndim + ) \ No newline at end of file diff --git a/src/pybella/flow_solver/physics/gas_dynamics/explicit.py b/src/pybella/flow_solver/numerics/explicit_advection/compute_advection.py similarity index 88% rename from src/pybella/flow_solver/physics/gas_dynamics/explicit.py rename to src/pybella/flow_solver/numerics/explicit_advection/compute_advection.py index b3f04d28..0c9f9cb7 100644 --- a/src/pybella/flow_solver/physics/gas_dynamics/explicit.py +++ b/src/pybella/flow_solver/numerics/explicit_advection/compute_advection.py @@ -1,10 +1,9 @@ from ....utils.slices import get_neighbor_indices from ...utils import boundary as bdry -from . import recovery as gd_recovery -from . import numerical_flux as gd_flux +from . import recovery, riemann_solver -def advect(mem, ud, dt, odd, label, writer=None): +def strange_splitting(mem, ud, dt, odd, label, writer=None): """ Concise implementation of Strang-splitting advection. This function updates the `Sol` solution container with the advected solution in-place. @@ -26,30 +25,7 @@ def advect(mem, ud, dt, odd, label, writer=None): bdry.set_explicit_boundary_data(mem.sol, mem.elem, ud, mem.th, mem.mpv) - -def explicit_step_and_flux(mem, ud, lmbda, split_step, tag=None): - """ - For each advection substep, solve the advection problem. For more details, see :ref:`advection_routine`. - This function updates the solution `Sol` container in-place if a Strang-splitting is used, - or returns the `flux` data container if a Runge-Kutta method is used. - """ - flux = _compute_flux_and_recovery(mem, ud, lmbda, split_step, tag) - - # Cache neighbor indices (consider moving this to initialization if called frequently) - left_idx, right_idx = get_neighbor_indices(mem.elem.ndim) - - if tag != "rk": - _update_solution_variables(mem.sol, flux, lmbda, left_idx, right_idx) - - bdry.set_explicit_boundary_data( - mem.sol, mem.elem, ud, mem.th, mem.mpv, step=split_step - ) - - if tag == "rk": - return flux - - -def advect_rk(mem, ud, dt): +def first_order_runge_kutta(mem, ud, dt): """ Function that runs the advection routine with a first-order Runge-Kutta update. This function updates the `Sol` solution container with the advected solution in-place. @@ -66,7 +42,7 @@ def advect_rk(mem, ud, dt): lmbda = time_step / mem.elem.dxyz[split] mem.sol.flip_forward() if mem.elem.iisc[split] > 1: - mem.flux[split] = explicit_step_and_flux(mem, ud, lmbda, split, tag="rk") + mem.flux[split] = _explicit_step_and_flux(mem, ud, lmbda, split, tag="rk") # Cache neighbor indices once left_idx, right_idx = get_neighbor_indices(mem.elem.ndim) @@ -92,6 +68,28 @@ def _update_solution_variables(sol, flux, lmbda, left_idx, right_idx, variables= setattr(sol, var, current_val + lmbda * flux_diff) +def _explicit_step_and_flux(mem, ud, lmbda, split_step, tag=None): + """ + For each advection substep, solve the advection problem. For more details, see :ref:`advection_routine`. + This function updates the solution `Sol` container in-place if a Strang-splitting is used, + or returns the `flux` data container if a Runge-Kutta method is used. + """ + flux = _compute_flux_and_recovery(mem, ud, lmbda, split_step, tag) + + # Cache neighbor indices (consider moving this to initialization if called frequently) + left_idx, right_idx = get_neighbor_indices(mem.elem.ndim) + + if tag != "rk": + _update_solution_variables(mem.sol, flux, lmbda, left_idx, right_idx) + + bdry.set_explicit_boundary_data( + mem.sol, mem.elem, ud, mem.th, mem.mpv, step=split_step + ) + + if tag == "rk": + return flux + + def _compute_flux_and_recovery(mem, ud, lmbda, split_step, tag=None): """ Helper function to compute flux using gradient recovery and HLL solver. @@ -105,9 +103,9 @@ def _compute_flux_and_recovery(mem, ud, lmbda, split_step, tag=None): mem.sol, mem.elem, ud, mem.th, mem.mpv, step=split_step ) - Lefts, Rights = gd_recovery.do(mem, ud, lmbda, split_step, tag) + Lefts, Rights = recovery.compute(mem, ud, lmbda, split_step, tag) - flux = gd_flux.hll_solver(mem, flux, Lefts, Rights) + flux = riemann_solver.hll(mem, flux, Lefts, Rights) return flux @@ -144,9 +142,9 @@ def _perform_dimensional_sweep(mem, ud, time_step, reverse=False, diagnostics=No # Handle solution flipping based on sweep direction if reverse: if elem.iisc[split] > 1: - explicit_step_and_flux(mem, ud, lmbda, split, diagnostics) + _explicit_step_and_flux(mem, ud, lmbda, split, diagnostics) Sol.flip_backward() else: Sol.flip_forward() if elem.iisc[split] > 1: - explicit_step_and_flux(mem, ud, lmbda, split, diagnostics) + _explicit_step_and_flux(mem, ud, lmbda, split, diagnostics) diff --git a/src/pybella/flow_solver/physics/gas_dynamics/recovery.py b/src/pybella/flow_solver/numerics/explicit_advection/recovery.py similarity index 98% rename from src/pybella/flow_solver/physics/gas_dynamics/recovery.py rename to src/pybella/flow_solver/numerics/explicit_advection/recovery.py index 789cb2fb..ae5d76c5 100644 --- a/src/pybella/flow_solver/physics/gas_dynamics/recovery.py +++ b/src/pybella/flow_solver/numerics/explicit_advection/recovery.py @@ -4,10 +4,8 @@ from ....utils import options as opts from ....utils.slices import get_neighbor_indices, get_interface_indices -from ...utils import variable as var - -def do(mem, ud, lmbda, split_step, tag=None): +def compute(mem, ud, lmbda, split_step, tag=None): """ Reconstruct the limited slopes at the cell interfaces. diff --git a/src/pybella/flow_solver/physics/gas_dynamics/numerical_flux.py b/src/pybella/flow_solver/numerics/explicit_advection/riemann_solver.py similarity index 56% rename from src/pybella/flow_solver/physics/gas_dynamics/numerical_flux.py rename to src/pybella/flow_solver/numerics/explicit_advection/riemann_solver.py index d62ca86a..479b006e 100644 --- a/src/pybella/flow_solver/physics/gas_dynamics/numerical_flux.py +++ b/src/pybella/flow_solver/numerics/explicit_advection/riemann_solver.py @@ -1,67 +1,9 @@ -# -*- coding: utf-8 -*- import numpy as np -from numba import njit +import numba as nb +from ....utils import slices -from ....utils.operators import ( - get_flux_convolution_kernels, - apply_directional_convolution, -) -from ....utils.slices import ( - get_inner_slice, - get_interface_indices, - get_last_dim_inner_slice, -) - -def recompute_advective_fluxes(mem, **kwargs): - """Recompute the advective fluxes at the cell interfaces. - - Parameters - ---------- - mem : object - Memory object containing sol and flux attributes - **kwargs - Optional pre-computed velocity components ('u', 'v', 'w') - """ - ndim = mem.sol.rho.ndim - inner_idx = get_inner_slice(ndim) - kernels = get_flux_convolution_kernels(ndim) - - # Define the component order and corresponding flux indices - components = ["u", "v"] if ndim == 2 else ["u", "v", "w"] - rho_components = ["rhou", "rhov"] if ndim == 2 else ["rhou", "rhov", "rhow"] - - for i, (comp, rho_comp) in enumerate(zip(components, rho_components)): - # Use provided velocity or compute from momentum - if comp in kwargs: - rhoY_vel = kwargs[comp] - else: - momentum = getattr(mem.sol, rho_comp) - rhoY_vel = mem.sol.rhoY * momentum / mem.sol.rho - - # Apply directional convolution - mem.flux[i].rhoY[inner_idx] = apply_directional_convolution( - rhoY_vel, kernels[comp], comp, ndim - ) - - -@njit(cache=True) -def _compute_flux_component( - flux_values, - rhoY_values, - left_weight, - right_weight, - left_val, - right_val, - remove_cols_idx, -): - """Numba-optimised flux component computation.""" - flux_values[remove_cols_idx] = rhoY_values[remove_cols_idx] * ( - left_weight * left_val + right_weight * right_val - ) - - -def hll_solver(mem, flux, Lefts, Rights): +def hll(mem, flux, Lefts, Rights): """ HLL solver for the Riemann problem. Chooses the advected quantities from `Lefts` or `Rights` based on the direction given by `flux`. @@ -72,8 +14,8 @@ def hll_solver(mem, flux, Lefts, Rights): """ ndim = mem.sol.rho.ndim - left_idx, right_idx, _ = get_interface_indices(ndim) - remove_cols_idx = get_last_dim_inner_slice(ndim) + left_idx, right_idx, _ = slices.get_interface_indices(ndim) + remove_cols_idx = slices.get_last_dim_inner_slice(ndim) # Compute primitive variables Lefts.primitives(mem.th) @@ -121,3 +63,18 @@ def hll_solver(mem, flux, Lefts, Rights): ) return flux + +@nb.njit(cache=True) +def _compute_flux_component( + flux_values, + rhoY_values, + left_weight, + right_weight, + left_val, + right_val, + remove_cols_idx, +): + """Numba-optimised flux component computation.""" + flux_values[remove_cols_idx] = rhoY_values[remove_cols_idx] * ( + left_weight * left_val + right_weight * right_val + ) \ No newline at end of file diff --git a/src/pybella/flow_solver/numerics/explicit_euler.py b/src/pybella/flow_solver/numerics/explicit_euler.py new file mode 100644 index 00000000..ba20abed --- /dev/null +++ b/src/pybella/flow_solver/numerics/explicit_euler.py @@ -0,0 +1,79 @@ +import numpy as np + +from ...utils.operators import convolution, divergence, gradient +from ..utils import boundary as bdry + +def do_forward_step(mem, ud, dt, writer=None, label=None, debug=False): + # Unpack frequently used variables + th, sol, mpv, node, elem = mem.th, mem.sol, mem.mpv, mem.node, mem.elem + ndim = elem.ndim + + nonhydro = ud.nonhydrostasy + g, Msq = ud.gravity_strength[1], ud.Msq + Ginv = th.Gammainv + corr_h1, corr_v, corr_h2 = ud.coriolis_strength + u0, v0, w0 = ud.u_wind_speed, ud.v_wind_speed, ud.w_wind_speed + + # Reusable derived quantities + rho, rhoY, rhoX = sol.rho, sol.rhoY, sol.rhoX + rhou, rhov, rhow = sol.rhou, sol.rhov, sol.rhow + + # Pressure and derivatives + p2n = mpv.p2_nodes + dp2n = np.zeros_like(p2n) + + S0c = mpv.HydroState.get_S0c(elem) + dSdy = mpv.HydroState_n.get_dSdy(elem, node) + + # Compute divergence + mpv.rhs[...] = divergence.compute_at_nodes(mpv.rhs, elem, sol, ud) + if not hasattr(ud, "ATMOSPHERIC_EXTENSION"): + bdry.scale_wall_node_values(mpv.rhs, node, ud, 2.0) + + if debug: + writer.populate(str(label), "rhs", mpv.rhs) + + # Compute compressibility kernel + kernel = convolution.get_averaging_kernel(ndim, width=2) + dpidP = (th.gm1 / Msq) * convolution.apply_convolution_kernel( + rhoY ** (th.gamm - 2.0), kernel=kernel, normalize=True, use_numba=True + ) + + rhoYovG = Ginv * rhoY + dbuoy = rhoY * (rhoX / rho) + + # Pressure gradients + dpdx, dpdy, dpdz = gradient.compute_at_nodes(p2n, ndim, node.dxyz) + + # Wind perturbations + drhou = rhou - u0 * rho + drhov = rhov - v0 * rho + drhow = rhow - w0 * rho + v = rhov / rho + + # Momentum update (u, v, w) + rhou -= dt * (rhoYovG * dpdx - corr_h2 * drhov + corr_v * drhow) + rhov -= ( + dt + * ( + rhoYovG * dpdy + + (g / Msq) * dbuoy * nonhydro + - corr_h1 * drhow + + corr_h2 * drhou + ) + * (1 - ud.is_ArakawaKonor) + ) + + if ndim == 3: + rhow -= dt * (rhoYovG * dpdz - corr_v * drhou + corr_h1 * drhov) + + # Scalar update (rhoX) + sol.rhoX[...] = (rho * (rho / rhoY - S0c)) - dt * (v * dSdy) * rho + + # Compressibility correction to p2 + dp2n[node.i1] -= dt * dpidP * mpv.rhs + mpv.p2_nodes += ud.compressibility * dp2n + + # Boundary conditions + bdry.set_ghostnodes_p2(mpv.p2_nodes, node, ud) + bdry.set_explicit_boundary_data(sol, elem, ud, th, mpv) diff --git a/src/pybella/flow_solver/numerics/implicit_euler.py b/src/pybella/flow_solver/numerics/implicit_euler.py new file mode 100644 index 00000000..2a317064 --- /dev/null +++ b/src/pybella/flow_solver/numerics/implicit_euler.py @@ -0,0 +1,239 @@ +import numpy as np +import scipy as sp + +from ...utils.operators import convolution, divergence, gradient +from ...utils.operators.laplacian import preconditioner, lap2D_manual, lap3D +from ..utils import boundary as bdry +from . import coriolis + +class solver_counter(object): + """ + taken from https://stackoverflow.com/questions/33512081/getting-the-number-of-iterations-of-scipys-gmres-iterative-method + + """ + + def __init__(self): + self.niter = 0 + + def __call__(self, rk=None): + self.niter += 1 + self.rk = rk + +def do_explicit_part(mem, ud, dt): + nonhydro = ud.nonhydrostasy + g = ud.gravity_strength[1] + Msq = ud.Msq + + dbuoy = mem.sol.rhoY * (mem.sol.rhoX / mem.sol.rho) + mem.sol.rhov = (nonhydro * mem.sol.rhov) - dt * (g / Msq) * dbuoy + + mem.sol.mod_bg_wind(ud, -1.0) + + coriolis.multiply_inverse_terms(mem.sol, mem, ud, dt) + + mem.sol.mod_bg_wind(ud, +1.0) + + bdry.set_explicit_boundary_data(mem.sol, mem.elem, ud, mem.th, mem.mpv) + + +def do_implicit_part( + mem, + ud, + dt, + Sol0=None, + writer=None, + label=None, + debug=False, +): + """ + Optimized version with reduced redundancy and improved structure. + """ + # Early return optimization - disable writer if not debugging + if not debug: + writer = None + + nc = mem.node.sc + + # Helper function to reduce writer boilerplate + def write_debug_data(key, data): + if writer is not None: + writer.populate(str(label), key, data) + + # Initial debug output + write_debug_data("p2_initial", mem.mpv.p2_nodes) + + # Set boundary data and compute operator coefficients (consolidated) + sol_for_boundary = Sol0 if Sol0 is not None else mem.sol + bdry.set_explicit_boundary_data(sol_for_boundary, mem.elem, ud, mem.th, mem.mpv) + operator_coefficients_nodes(mem, ud, dt) + + # Debug output for w components + if writer is not None: + write_debug_data("hcenter", mem.mpv.wcenter) + write_debug_data("wplusx", mem.mpv.wplus[0]) + write_debug_data("wplusy", mem.mpv.wplus[1]) + + # Handle 3D case more cleanly + wplusz_data = (mem.mpv.wplus[2] if mem.elem.ndim == 3 + else np.zeros_like(mem.mpv.wplus[0])) + write_debug_data("wplusz", wplusz_data) + + # Boundary and correction operations + # bdry.set_ghostnodes_p2(mem.mpv.p2_nodes, mem.node, ud) + _correction_nodes(mem, ud, dt, mem.mpv.p2_nodes, 0) + bdry.set_explicit_boundary_data(mem.sol, mem.elem, ud, mem.th, mem.mpv) + + # Compute RHS + mem.mpv.rhs[...] = divergence.compute_at_nodes(mem.mpv.rhs, mem.elem, mem.sol, ud) + write_debug_data("rhs", mem.mpv.rhs) + + mem.mpv.rhs /= dt + + # Handle compressibility - simplified logic + _apply_compressibility_correction(mem, ud) + + write_debug_data("rhs_nodes", mem.mpv.rhs) + + # Prepare and solve linear system + lap, rhs_inner = _prepare_linear_system(mem, ud, dt) + + # Solve using BiCGSTAB + counter = solver_counter() + p2, _ = sp.sparse.linalg.bicgstab( + lap, rhs_inner, atol=ud.tol, maxiter=ud.max_iterations, callback=counter + ) + + # Reshape solution and apply + p2_full = _reshape_solution(p2, mem, ud, nc) + write_debug_data("p2_full", p2_full) + + # # Final boundary and correction operations + # bdry.set_ghostnodes_p2(p2_full, mem.node, ud) + _correction_nodes(mem, ud, dt, p2_full, 1) + + mem.mpv.p2_nodes[...] += p2_full + bdry.set_ghostnodes_p2(mem.mpv.p2_nodes, mem.node, ud) + bdry.set_explicit_boundary_data(mem.sol, mem.elem, ud, mem.th, mem.mpv) + +def _correction_nodes(mem, ud, dt, p, updt_chi): + ndim = mem.node.ndim + Gammainv = mem.th.Gammainv + + dSdy = mem.mpv.HydroState_n.get_dSdy(mem.elem, mem.node) + + Dpx, Dpy, Dpz = gradient.compute_at_nodes(p, mem.elem.ndim, mem.node.dxyz) + + thinv = mem.sol.rho / mem.sol.rhoY + + Y = mem.sol.rhoY / mem.sol.rho + coeff = Gammainv * mem.sol.rhoY * Y + + mem.mpv.u[...] = -dt * coeff * Dpx + mem.mpv.v[...] = -dt * coeff * Dpy + mem.mpv.w[...] = -dt * coeff * Dpz + + coriolis.multiply_inverse_terms(mem.mpv, mem, ud, dt, attrs=["u", "v", "w"]) + + mem.sol.rhou += thinv * mem.mpv.u + mem.sol.rhov += thinv * mem.mpv.v + mem.sol.rhow += thinv * mem.mpv.w if ndim == 3 else 0.0 + mem.sol.rhoX += -updt_chi * dt * dSdy * mem.sol.rhov + + +def operator_coefficients_nodes(mem, ud, dt): + Gammainv = mem.th.Gammainv + ndim = mem.node.ndim + + ccenter = -ud.Msq * mem.th.gm1inv / (dt**2) + cexp = 2.0 - mem.th.gamm + + Y = mem.sol.rhoY / mem.sol.rho + coeff = Gammainv * mem.sol.rhoY * Y + + for dim in range(ndim): + mem.mpv.wplus[dim][...] = coeff + + kernel = convolution.get_averaging_kernel(ndim, width=2) + + mem.mpv.wcenter = ccenter * convolution.apply_convolution_kernel( + mem.sol.rhoY**cexp, kernel + ) + + if not hasattr(ud, "ATMOSPHERIC_EXTENSION"): + bdry.scale_wall_node_values(mem.mpv.wcenter, mem.node, ud) + + +def _apply_compressibility_correction(mem, ud): + """ + Extracted compressibility logic for better readability. + """ + if ud.is_compressible == 0: + if ud.is_ArakawaKonor: + mem.mpv.rhs -= mem.mpv.wcenter * mem.mpv.dp2_nodes + mem.mpv.wcenter[...] = 0.0 + else: + # Simplified - this was redundant multiplication + mem.mpv.wcenter[...] *= ud.compressibility + else: + mem.mpv.wcenter *= ud.compressibility + + +def _prepare_linear_system(mem, ud, dt): + """ + Prepare the linear system components based on dimensionality. + """ + if mem.elem.ndim == 2: + return _prepare_2d_system(mem, ud, dt) + else: # 3D case + return _prepare_3d_system(mem, ud, dt) + + +def _prepare_2d_system(mem, ud, dt): + """Prepare 2D linear system.""" + Vec = mem.mpv + coriolis_params = coriolis.multiply_inverse_terms( + Vec, mem, ud, dt, attrs=("u", "v", "w"), get_coeffs=True + ) + + diag_inv = preconditioner.prepare_diag(mem.mpv, mem.node) + mem.mpv.rhs *= diag_inv + + p2 = mem.mpv.p2_nodes[mem.node.i2].T + lap = lap2D_manual.get_linop(mem.mpv, mem.node, coriolis_params, diag_inv, ud) + sh = p2.shape[0] * p2.shape[1] + + lap = sp.sparse.linalg.LinearOperator((sh, sh), lap) + rhs_inner = mem.mpv.rhs[mem.node.i1].T.ravel() + + return lap, rhs_inner + + +def _prepare_3d_system(mem, ud, dt): + """Prepare 3D linear system.""" + # Note: diag_inv appears to be used but not defined in 3D case + # This might be a bug in the original code + diag_inv = None # TODO: Verify if this should be computed for 3D + + lap = lap3D.get_linop(mem.elem, mem.node, mem.mpv, ud, diag_inv, dt) + p2 = mem.mpv.p2_nodes # Define p2 for 3D case + sh = p2.reshape(-1).shape[0] + + lap = sp.sparse.linalg.LinearOperator((sh, sh), lap) + rhs_inner = mem.mpv.rhs[mem.node.i1].ravel() + + return lap, rhs_inner, sh + + +def _reshape_solution(p2, mem, ud, nc): + """ + Reshape the solution vector back to the appropriate format. + """ + p2_full = np.zeros(nc).squeeze() + + if mem.elem.ndim == 2: + p2_full[mem.node.i2] = p2.reshape(mem.mpv.rhs[mem.node.i1].T.shape).T + else: # 3D case + p2_full[mem.node.i1] = p2.reshape(ud.inx + 2, ud.iny + 2, ud.inz + 2) + + return p2_full + diff --git a/src/pybella/flow_solver/physics/gas_dynamics/cfl.py b/src/pybella/flow_solver/physics/cfl.py similarity index 100% rename from src/pybella/flow_solver/physics/gas_dynamics/cfl.py rename to src/pybella/flow_solver/physics/cfl.py diff --git a/src/pybella/flow_solver/physics/gas_dynamics/eos.py b/src/pybella/flow_solver/physics/eos.py similarity index 98% rename from src/pybella/flow_solver/physics/gas_dynamics/eos.py rename to src/pybella/flow_solver/physics/eos.py index f7c00226..9fca5138 100644 --- a/src/pybella/flow_solver/physics/gas_dynamics/eos.py +++ b/src/pybella/flow_solver/physics/eos.py @@ -1,6 +1,6 @@ import numpy as np -from ...utils import boundary as bdry +from ..utils import boundary as bdry def nonhydrostasy(ud, t, step): diff --git a/src/pybella/flow_solver/physics/low_mach/laplacian.py b/src/pybella/flow_solver/physics/low_mach/laplacian.py deleted file mode 100644 index f01bffb9..00000000 --- a/src/pybella/flow_solver/physics/low_mach/laplacian.py +++ /dev/null @@ -1,774 +0,0 @@ -import numpy as np -import scipy as sp -import numba as nb - -from ....utils import options as opts -from ....utils import operators - - -def get_lap2D_stencil(mpv, node, coriolis, diag_inv, ud): - dx = node.dx - dy = node.dy - - hplusx = mpv.wplus[0] - hplusy = mpv.wplus[1] - hcenter = mpv.wcenter - - coeffs = [hplusx.T, hplusy.T, hcenter.T] - - shp = node.iisc - - dummy_p = np.zeros((node.isc[1], node.isc[0])) - - if hasattr(ud, "ATMOSPHERIC_EXTENSION") and ud.ATMOSPHERIC_EXTENSION: - boundary_handler = periodic_x_wall_y - else: - boundary_handler = periodic - - x_wall = ( - ud.bdry_type[0] == opts.BdryType.WALL - or ud.bdry_type[0] == opts.BdryType.RAYLEIGH - ) - y_wall = ( - ud.bdry_type[1] == opts.BdryType.WALL - or ud.bdry_type[1] == opts.BdryType.RAYLEIGH - ) - - if x_wall: - coeffs[0], coeffs[1] = apply_x_wall_boundary_coeffs(coeffs[0], coeffs[1]) - if y_wall: - coeffs[0], coeffs[1] = apply_y_wall_boundary_coeffs(coeffs[0], coeffs[1]) - - return lambda p: lap2D_generic( - p, dummy_p, dx, dy, coeffs, diag_inv.T, coriolis, shp, boundary_handler - ) - - -@nb.njit(cache=True) -def lap2D_generic(p, dp, dx, dy, coeffs, diag_inv, coriolis, shp, boundary_handler): - p = p.reshape(shp[1], shp[0]) - dp[1:-1, 1:-1] = p - - dp[...] = boundary_handler(dp) - dp[...] = kernel_9pt( - dp, - dx, - dy, - coeffs[0], - coeffs[1], - coeffs[2], - diag_inv, - coriolis[0], - coriolis[1], - coriolis[2], - coriolis[3], - ) - - return dp[1:-1, 1:-1].ravel() - - -@nb.njit(cache=True) -def periodic_x_wall_y(arr): - # periodic padding - arr[:, 0] = arr[:, -3] - arr[:, -1] = arr[:, 2] - - # wall padding - arr[0, :] = arr[2, :] - arr[-1, :] = arr[-3, :] - - return arr - - -@nb.njit(cache=True) -def periodic(arr): - """Apply periodic boundary conditions""" - arr[:, 0] = arr[:, -3] - arr[:, -1] = arr[:, 2] - arr[0, :] = arr[-3, :] - arr[-1, :] = arr[2, :] - - return arr - - -@nb.njit(cache=True) -def apply_x_wall_boundary_coeffs(hpx, hpy): - """Apply wall boundary conditions by modifying coefficients""" - hpx[:, 0] = 0.0 - hpy[:, 0] = 0.0 - hpx[:, -1] = 0.0 - hpy[:, -1] = 0.0 - hpx[:, 1] = 0.0 - hpy[:, 1] = 0.0 - hpx[:, -2] = 0.0 - hpy[:, -2] = 0.0 - - return hpx, hpy - - -@nb.njit(cache=True) -def apply_y_wall_boundary_coeffs(hpx, hpy): - """Apply wall boundary conditions by modifying coefficients""" - hpx[0, :] = 0.0 - hpy[0, :] = 0.0 - hpx[-1, :] = 0.0 - hpy[-1, :] = 0.0 - hpx[1, :] = 0.0 - hpy[1, :] = 0.0 - hpx[-2, :] = 0.0 - hpy[-2, :] = 0.0 - - return hpx, hpy - - -@nb.stencil -def kernel_9pt(a, dx, dy, hpx, hpy, hpc, diag_inv, cxx, cyy, cxy, cyx): - oodx = 1.0 / dx - oody = 1.0 / dy - - topleft = a[1, -1] - topmid = a[1, 0] - topright = a[1, 1] - - midleft = a[0, -1] - midmid = a[0, 0] - midright = a[0, 1] - - botleft = a[-1, -1] - botmid = a[-1, 0] - botright = a[-1, 1] - - hpx_bl = hpx[0, 0] - hpx_br = hpx[0, 1] - hpx_tl = hpx[1, 0] - hpx_tr = hpx[1, 1] - - hpy_bl = hpy[0, 0] - hpy_br = hpy[0, 1] - hpy_tl = hpy[1, 0] - hpy_tr = hpy[1, 1] - - cxx_bl = cxx[0, 0] - cxx_br = cxx[0, 1] - cxx_tl = cxx[1, 0] - cxx_tr = cxx[1, 1] - - cyy_bl = cyy[0, 0] - cyy_br = cyy[0, 1] - cyy_tl = cyy[1, 0] - cyy_tr = cyy[1, 1] - - cxy_bl = cxy[0, 0] - cxy_br = cxy[0, 1] - cxy_tl = cxy[1, 0] - cxy_tr = cxy[1, 1] - - cyx_bl = cyx[0, 0] - cyx_br = cyx[0, 1] - cyx_tl = cyx[1, 0] - cyx_tr = cyx[1, 1] - - Dx_tl = 0.5 * (topmid - topleft + midmid - midleft) * hpx_tl - Dx_tr = 0.5 * (topright - topmid + midright - midmid) * hpx_tr - Dx_bl = 0.5 * (botmid - botleft + midmid - midleft) * hpx_bl - Dx_br = 0.5 * (botright - botmid + midright - midmid) * hpx_br - - Dy_tl = 0.5 * (topmid - midmid + topleft - midleft) * hpy_tl - Dy_tr = 0.5 * (topright - midright + topmid - midmid) * hpy_tr - Dy_bl = 0.5 * (midmid - botmid + midleft - botleft) * hpy_bl - Dy_br = 0.5 * (midright - botright + midmid - botmid) * hpy_br - - Dxx = ( - 0.5 - * (cxx_tr * Dx_tr - cxx_tl * Dx_tl + cxx_br * Dx_br - cxx_bl * Dx_bl) - * oodx - * oodx - ) - Dyy = ( - 0.5 - * (cyy_tr * Dy_tr - cyy_br * Dy_br + cyy_tl * Dy_tl - cyy_bl * Dy_bl) - * oody - * oody - ) - Dyx = ( - 0.5 - * (cxy_br * Dy_br - cxy_bl * Dy_bl + cxy_tr * Dy_tr - cxy_tl * Dy_tl) - * oody - * oodx - ) - Dxy = ( - 0.5 - * (cyx_tr * Dx_tr - cyx_br * Dx_br + cyx_tl * Dx_tl - cyx_bl * Dx_bl) - * oodx - * oody - ) - - return ((Dxx + Dyy + Dyx + Dxy) + hpc[0, 0] * a[0, 0]) * diag_inv[0, 0] - - -def get_lap2D(mpv, node, coriolis, diag_inv, ud): - dx = node.dx - dy = node.dy - - hplusx = mpv.wplus[0] - hplusy = mpv.wplus[1] - hcenter = mpv.wcenter - - coeffs = (hplusx.T, hplusy.T, hcenter.T) - - ### Need to clean this up, but the Numba stencil is used in the Helmholtz solve for radiative BC! - if hasattr(ud, "ATMOSPHERIC_EXTENSION") and ud.ATMOSPHERIC_EXTENSION: - y_atmosphere = True - else: - y_atmosphere = False - - ################### - x_wall = ud.bdry_type[0] == opts.BdryType.WALL - y_wall = ud.bdry_type[1] == opts.BdryType.WALL - - cor_slc = (slice(1, -1), slice(1, -1)) - coeff_slc = (slice(1, -1), slice(1, -1)) - - coeffs = ( - hplusx[coeff_slc].T.reshape( - -1, - ), - hplusy[coeff_slc].T.reshape( - -1, - ), - hcenter[node.i1].T.reshape( - -1, - ), - ) - - coriolis = ( - coriolis[0][cor_slc].reshape( - -1, - ), - coriolis[1][cor_slc].reshape( - -1, - ), - coriolis[2][cor_slc].reshape( - -1, - ), - coriolis[3][cor_slc].reshape( - -1, - ), - ) - - return lambda p: lap2D_gather_new( - p, - node.iicx, - node.iicy, - coeffs, - dx, - dy, - x_wall, - y_wall, - y_atmosphere, - diag_inv[node.i1].T.reshape( - -1, - ), - coriolis, - ) - - -@nb.njit(cache=True) -def lap2D_gather_new( - p, iicxn, iicyn, coeffs, dx, dy, x_wall, y_wall, y_atmosphere, diag_inv, coriolis -): - ngnc = (iicxn) * (iicyn) - lap = np.zeros((ngnc)) - cnt_x = 0 - cnt_y = 0 - - oodx = 1.0 / dx - oody = 1.0 / dy - cxx, cyy, cxy, cyx = coriolis - - hplusx, hplusy, hcenter = coeffs - - for idx in range(iicxn * iicyn): - nr_row = idx // iicxn - col_idx = idx - (nr_row * iicxn) - - ne_row_idx = nr_row * (iicxn + 1) - ne_col_idx = col_idx - ne_idx = ne_row_idx + ne_col_idx - - ne_topleft = ne_idx - ne_topright = ne_idx + 1 - ne_botleft = ne_idx + (iicxn + 1) - ne_botright = ne_idx + (iicxn + 1) + 1 - - # get indices of the 9pt stencil - topleft_idx = idx - iicxn - 1 - midleft_idx = idx - 1 - botleft_idx = idx + iicxn - 1 - - topmid_idx = idx - iicxn - midmid_idx = idx - botmid_idx = idx + iicxn - - topright_idx = idx - iicxn + 1 - midright_idx = idx + 1 - botright_idx = idx + iicxn + 1 - - if cnt_x == 0: - topleft_idx += iicxn - 1 - midleft_idx += iicxn - 1 - botleft_idx += iicxn - 1 - - if cnt_x == (iicxn - 1): - topright_idx -= iicxn - 1 - midright_idx -= iicxn - 1 - botright_idx -= iicxn - 1 - - val = 0 - - if cnt_y == 0: - if y_atmosphere: - topleft_idx += 2 * (iicxn - val) - topmid_idx += 2 * (iicxn - val) - topright_idx += 2 * (iicxn - val) - else: - topleft_idx += (iicxn) * (iicyn - 1) - topmid_idx += (iicxn) * (iicyn - 1) - topright_idx += (iicxn) * (iicyn - 1) - - if cnt_y == (iicyn - 1): - if y_atmosphere: - botleft_idx -= 2 * (iicxn - val) - botmid_idx -= 2 * (iicxn - val) - botright_idx -= 2 * (iicxn - val) - else: - botleft_idx -= (iicxn) * (iicyn - 1) - botmid_idx -= (iicxn) * (iicyn - 1) - botright_idx -= (iicxn) * (iicyn - 1) - - topleft = p[topleft_idx] - midleft = p[midleft_idx] - botleft = p[botleft_idx] - - topmid = p[topmid_idx] - midmid = p[midmid_idx] - botmid = p[botmid_idx] - - topright = p[topright_idx] - midright = p[midright_idx] - botright = p[botright_idx] - - hplusx_topleft = hplusx[ne_topleft] - hplusx_botleft = hplusx[ne_botleft] - hplusy_topleft = hplusy[ne_topleft] - hplusy_botleft = hplusy[ne_botleft] - - hplusx_topright = hplusx[ne_topright] - hplusx_botright = hplusx[ne_botright] - hplusy_topright = hplusy[ne_topright] - hplusy_botright = hplusy[ne_botright] - - cxx_tl = cxx[ne_topleft] - cxx_tr = cxx[ne_topright] - cxx_bl = cxx[ne_botleft] - cxx_br = cxx[ne_botright] - - cxy_tl = cxy[ne_topleft] - cxy_tr = cxy[ne_topright] - cxy_bl = cxy[ne_botleft] - cxy_br = cxy[ne_botright] - - cyx_tl = cyx[ne_topleft] - cyx_tr = cyx[ne_topright] - cyx_bl = cyx[ne_botleft] - cyx_br = cyx[ne_botright] - - cyy_tl = cyy[ne_topleft] - cyy_tr = cyy[ne_topright] - cyy_bl = cyy[ne_botleft] - cyy_br = cyy[ne_botright] - - if x_wall and (cnt_x == 0): - hplusx_topleft = 0.0 - hplusy_topleft = 0.0 - hplusx_botleft = 0.0 - hplusy_botleft = 0.0 - - if x_wall and (cnt_x == (iicxn - 1)): - hplusx_topright = 0.0 - hplusy_topright = 0.0 - hplusx_botright = 0.0 - hplusy_botright = 0.0 - - if y_wall and (cnt_y == 0): - if y_atmosphere: - pass - else: - hplusx_topleft = 0.0 - hplusy_topleft = 0.0 - hplusx_topright = 0.0 - hplusy_topright = 0.0 - - if y_wall and (cnt_y == (iicyn - 1)): - if y_atmosphere: - pass - else: - hplusx_botleft = 0.0 - hplusy_botleft = 0.0 - hplusx_botright = 0.0 - hplusy_botright = 0.0 - - Dx_tl = 0.5 * (topmid - topleft + midmid - midleft) * hplusx_topleft - Dx_tr = 0.5 * (topright - topmid + midright - midmid) * hplusx_topright - Dx_bl = 0.5 * (botmid - botleft + midmid - midleft) * hplusx_botleft - Dx_br = 0.5 * (botright - botmid + midright - midmid) * hplusx_botright - - Dy_tl = 0.5 * (midmid - topmid + midleft - topleft) * hplusy_topleft - Dy_tr = 0.5 * (midright - topright + midmid - topmid) * hplusy_topright - Dy_bl = 0.5 * (botmid - midmid + botleft - midleft) * hplusy_botleft - Dy_br = 0.5 * (botright - midright + botmid - midmid) * hplusy_botright - - fac = 1.0 - Dxx = ( - 0.5 - * (cxx_tr * Dx_tr - cxx_tl * Dx_tl + cxx_br * Dx_br - cxx_bl * Dx_bl) - * oodx - * oodx - * fac - ) - Dyy = ( - 0.5 - * (cyy_br * Dy_br - cyy_tr * Dy_tr + cyy_bl * Dy_bl - cyy_tl * Dy_tl) - * oody - * oody - * fac - ) - Dyx = ( - 0.5 - * (cxy_br * Dy_br - cxy_bl * Dy_bl + cxy_tr * Dy_tr - cxy_tl * Dy_tl) - * oody - * oodx - * fac - ) - Dxy = ( - 0.5 - * (cyx_br * Dx_br - cyx_tr * Dx_tr + cyx_bl * Dx_bl - cyx_tl * Dx_tl) - * oodx - * oody - * fac - ) - - lap[idx] = Dxx + Dyy + Dyx + Dxy + hcenter[idx] * p[idx] - - lap[idx] *= diag_inv[idx] - - cnt_x += 1 - if cnt_x % iicxn == 0: - cnt_y += 1 - cnt_x = 0 - - return lap - - -def stencil_27pt(elem, node, mpv, ud, diag_inv, dt): - oodxyz = node.dxyz - oodxyz = 1.0 / (oodxyz**2) - oodx2, oody2, oodz2 = oodxyz[0], oodxyz[1], oodxyz[2] - odx, odz = 1.0 / node.dx, 1.0 / node.dz - - i0 = (slice(0, -1), slice(0, -1), slice(0, -1)) - i1 = (slice(1, -1), slice(1, -1), slice(1, -1)) - i2 = (slice(2, -2), slice(2, -2), slice(2, -2)) - - ndim = elem.ndim - periodicity = np.empty(ndim, dtype="int") - for dim in range(ndim): - periodicity[dim] = ud.bdry_type[dim] == opts.BdryType.PERIODIC - - hplusx = mpv.wplus[0][i0][i1] - hplusy = mpv.wplus[1][i0][i1] - hplusz = mpv.wplus[2][i0][i1] - - hcenter = mpv.wcenter[i2] - diag_inv = diag_inv[i1] - - corrf = dt * ud.coriolis_strength[0] - - return lambda p: lap3D( - p, - hplusx, - hplusy, - hplusz, - hcenter, - oodx2, - oody2, - oodz2, - periodicity, - diag_inv, - corrf, - odx, - odz, - ) - - -@nb.jit(nopython=True, cache=False, nogil=False) -def lap3D( - p0, - hplusx, - hplusy, - hplusz, - hcenter, - oodx2, - oody2, - oodz2, - periodicity, - diag_inv, - corrf, - odx, - odz, -): - shx, shy, shz = hcenter.shape - p = p0.reshape(shz + 2, shy + 2, shx + 2) - - coeff = 1.0 / 16 - lap = np.zeros_like(p) - - # cut out four cubes from the 3d array corresponding to the nodes... in each axial direction. - toplefts = [ - (slice(0, None), slice(0, -1), slice(0, -1)), - (slice(0, -1), slice(0, None), slice(0, -1)), - (slice(0, -1), slice(0, -1), slice(0, None)), - ] - toprights = [ - (slice(0, None), slice(0, -1), slice(1, None)), - (slice(1, None), slice(0, None), slice(0, -1)), - (slice(0, -1), slice(1, None), slice(0, None)), - ] - - botlefts = [ - (slice(0, None), slice(1, None), slice(0, -1)), - (slice(0, -1), slice(0, None), slice(1, None)), - (slice(1, None), slice(0, -1), slice(0, None)), - ] - botrights = [ - (slice(0, None), slice(1, None), slice(1, None)), - (slice(1, None), slice(0, None), slice(1, None)), - (slice(1, None), slice(1, None), slice(0, None)), - ] - - cnt = 0 - for bc in periodicity: - if bc == True and cnt == 0: - tmp = p[1, :, :] - p[0, :, :] = p[-3, :, :] - p[-1, :, :] = p[2, :, :] - p[1, :, :] = p[-2, :, :] - p[-2, :, :] = tmp - elif bc == False and cnt == 0: - hplusx[0, :, :] = 0.0 - hplusx[-1, :, :] = 0.0 - hplusy[0, :, :] = 0.0 - hplusy[-1, :, :] = 0.0 - hplusz[0, :, :] = 0.0 - hplusz[-1, :, :] = 0.0 - if bc == True and cnt == 1: - tmp = p[:, 1, :] - p[:, 0, :] = p[:, -3, :] - p[:, -1, :] = p[:, 2, :] - p[:, 1, :] = p[:, -2, :] - p[:, -2, :] = tmp - elif bc == False and cnt == 1: - hplusx[:, 0, :] = 0.0 - hplusx[:, -1, :] = 0.0 - hplusy[:, 0, :] = 0.0 - hplusy[:, -1, :] = 0.0 - hplusz[:, 0, :] = 0.0 - hplusz[:, -1, :] = 0.0 - if bc == True and cnt == 2: - tmp = p[:, :, 1] - p[:, :, 0] = p[:, :, -3] - p[:, :, -1] = p[:, :, 2] - p[:, :, 1] = p[:, :, -2] - p[:, :, -2] = tmp - elif bc == False and cnt == 2: - hplusx[:, :, 0] = 0.0 - hplusx[:, :, -1] = 0.0 - hplusy[:, :, 0] = 0.0 - hplusy[:, :, -1] = 0.0 - hplusz[:, :, 0] = 0.0 - hplusz[:, :, -1] = 0.0 - cnt += 1 - - leftz = p[:, :, :-1] - rightz = p[:, :, 1:] - - z_fluxes = rightz - leftz - - lefty = p[:, :-1, :] - righty = p[:, 1:, :] - - y_fluxes = righty - lefty - - leftx = p[:-1, :, :] - rightx = p[1:, :, :] - - x_fluxes = rightx - leftx - - x_flx = ( - x_fluxes[toplefts[0]] - + x_fluxes[toprights[0]] - + x_fluxes[botlefts[0]] - + x_fluxes[botrights[0]] - ) - y_flx = ( - y_fluxes[toplefts[1]] - + y_fluxes[toprights[1]] - + y_fluxes[botlefts[1]] - + y_fluxes[botrights[1]] - ) - z_flx = ( - z_fluxes[toplefts[2]] - + z_fluxes[toprights[2]] - + z_fluxes[botlefts[2]] - + z_fluxes[botrights[2]] - ) - - hxzp = hplusx * z_flx - hxzpm = hxzp[:-1, :, :] - hxzpm = ( - hxzpm[toplefts[0]] - + hxzpm[toprights[0]] - + hxzpm[botlefts[0]] - + hxzpm[botrights[0]] - ) - hxzpp = hxzp[1:, :, :] - hxzpp = ( - hxzpp[toplefts[0]] - + hxzpp[toprights[0]] - + hxzpp[botlefts[0]] - + hxzpp[botrights[0]] - ) - - hzxp = hplusz * x_flx - hzxpm = hzxp[:, :, :-1] - hzxpm = ( - hzxpm[toplefts[2]] - + hzxpm[toprights[2]] - + hzxpm[botlefts[2]] - + hzxpm[botrights[2]] - ) - hzxpp = hzxp[:, :, 1:] - hzxpp = ( - hzxpp[toplefts[2]] - + hzxpp[toprights[2]] - + hzxpp[botlefts[2]] - + hzxpp[botrights[2]] - ) - - x_flx = hplusx * x_flx - x_flxm = x_flx[:-1, :, :] - x_flxm = ( - x_flxm[toplefts[0]] - + x_flxm[toprights[0]] - + x_flxm[botlefts[0]] - + x_flxm[botrights[0]] - ) - x_flxp = x_flx[1:, :, :] - x_flxp = ( - x_flxp[toplefts[0]] - + x_flxp[toprights[0]] - + x_flxp[botlefts[0]] - + x_flxp[botrights[0]] - ) - - y_flx = hplusy * y_flx - y_flxm = y_flx[:, :-1, :] - y_flxm = ( - y_flxm[toplefts[1]] - + y_flxm[toprights[1]] - + y_flxm[botlefts[1]] - + y_flxm[botrights[1]] - ) - y_flxp = y_flx[:, 1:, :] - y_flxp = ( - y_flxp[toplefts[1]] - + y_flxp[toprights[1]] - + y_flxp[botlefts[1]] - + y_flxp[botrights[1]] - ) - - z_flx = hplusz * z_flx - z_flxm = z_flx[:, :, :-1] - z_flxm = ( - z_flxm[toplefts[2]] - + z_flxm[toprights[2]] - + z_flxm[botlefts[2]] - + z_flxm[botrights[2]] - ) - z_flxp = z_flx[:, :, 1:] - z_flxp = ( - z_flxp[toplefts[2]] - + z_flxp[toprights[2]] - + z_flxp[botlefts[2]] - + z_flxp[botrights[2]] - ) - - lap[1:-1, 1:-1, 1:-1] = ( - oodx2 * coeff * (-x_flxm + x_flxp) - + oody2 * coeff * (-y_flxm + y_flxp) - + oodz2 * coeff * (-z_flxm + z_flxp) - + +1.0 * odx * odz * coeff * corrf * (hxzpp - hxzpm) - + -1.0 * odx * odz * coeff * corrf * (hzxpp - hzxpm) - + hcenter * p[1:-1, 1:-1, 1:-1] - ) - - lap = lap * diag_inv - - return lap - - -def precon_diag_prepare(mpv, node): - """Highly optimized version with minimal function calls.""" - ndim = node.ndim - - coeff = 0.75 if ndim == 2 else 0.0625 if ndim == 3 else None - if coeff is None: - raise ValueError(f"Unsupported ndim: {ndim}") - - dx, dy, dz = node.dx, node.dy, node.dz - inv_dx2, inv_dy2 = 1.0 / (dx**2), 1.0 / (dy**2) - - diag_kernel = operators.get_averaging_kernel(ndim, width=2) - - diag = mpv.wcenter.copy() - - # Main diagonal terms - diag -= ( - coeff * inv_dx2 * operators.apply_convolution_kernel(mpv.wplus[0], diag_kernel) - ) - diag -= ( - coeff * inv_dy2 * operators.apply_convolution_kernel(mpv.wplus[1], diag_kernel) - ) - - if ndim == 2: - # Cross terms - inv_dxdy = 1.0 / (dx * dy) - diag -= ( - coeff - * inv_dxdy - * operators.apply_convolution_kernel(mpv.wplus[0], diag_kernel) - ) - diag -= ( - coeff - * inv_dxdy - * operators.apply_convolution_kernel(mpv.wplus[1], diag_kernel) - ) - elif ndim == 3: - inv_dz2 = 1.0 / (dz**2) - diag -= ( - coeff - * inv_dz2 - * operators.apply_convolution_kernel(mpv.wplus[2], diag_kernel) - ) - - return 1.0 / diag diff --git a/src/pybella/flow_solver/physics/low_mach/mpv.py b/src/pybella/flow_solver/physics/low_mach/mpv.py deleted file mode 100644 index 4e08a7af..00000000 --- a/src/pybella/flow_solver/physics/low_mach/mpv.py +++ /dev/null @@ -1,36 +0,0 @@ -import numpy as np - -from ...utils import variable as var - - -class MPV(object): - def __init__(self, elem, node, ud): - sc = elem.sc - sn = node.sc - - self.p0 = 1.0 - self.p00 = 1.0 - - self.p2_cells = np.zeros((sc)) - self.dp2_cells = np.zeros((sc)) - self.p2_nodes = np.zeros((sn)) - self.p2_nodes0 = np.zeros((sn)) - self.dp2_nodes = np.zeros((sn)) - - self.u = np.zeros((sc)) - self.v = np.zeros((sc)) - self.w = np.zeros((sc)) - - self.rhs = np.zeros((node.isc)) - self.wcenter = np.zeros((node.isc)) - self.wplus = np.zeros(([elem.ndim] + list(sc))) - - self.HydroState = var.States([sc[1]], ud) - self.HydroState_n = var.States([sn[1]], ud) - - self.squeezer() - - def squeezer(self): - for key, value in vars(self).items(): - if type(value) == np.ndarray: - setattr(self, key, value.squeeze()) diff --git a/src/pybella/flow_solver/physics/low_mach/second_projection.py b/src/pybella/flow_solver/physics/low_mach/second_projection.py deleted file mode 100644 index 203f4766..00000000 --- a/src/pybella/flow_solver/physics/low_mach/second_projection.py +++ /dev/null @@ -1,487 +0,0 @@ -import itertools as it - -import numpy as np -import scipy as sp -from numba import njit - -from ....utils import options as opts -from ....utils import operators - -from ...utils import boundary as bdry -from . import laplacian as lm_lp - - -class solver_counter(object): - """ - taken from https://stackoverflow.com/questions/33512081/getting-the-number-of-iterations-of-scipys-gmres-iterative-method - - """ - - def __init__(self, disp=True): - self.niter = 0 - - def __call__(self, rk=None): - self.niter += 1 - self.rk = rk - - -def euler_forward_non_advective(mem, ud, dt, writer=None, label=None, debug=False): - # Unpack frequently used variables - th, sol, mpv, node, elem = mem.th, mem.sol, mem.mpv, mem.node, mem.elem - ndim = elem.ndim - - nonhydro = ud.nonhydrostasy - g, Msq = ud.gravity_strength[1], ud.Msq - Ginv = th.Gammainv - corr_h1, corr_v, corr_h2 = ud.coriolis_strength - u0, v0, w0 = ud.u_wind_speed, ud.v_wind_speed, ud.w_wind_speed - - # Reusable derived quantities - rho, rhoY, rhoX = sol.rho, sol.rhoY, sol.rhoX - rhou, rhov, rhow = sol.rhou, sol.rhov, sol.rhow - - # Pressure and derivatives - p2n = mpv.p2_nodes - dp2n = np.zeros_like(p2n) - - S0c = mpv.HydroState.get_S0c(elem) - dSdy = mpv.HydroState_n.get_dSdy(elem, node) - - # Compute divergence - mpv.rhs[...] = divergence_nodes(mpv.rhs, elem, sol, ud) - if not hasattr(ud, "ATMOSPHERIC_EXTENSION"): - bdry.scale_wall_node_values(mpv.rhs, node, ud, 2.0) - - if debug: - writer.populate(str(label), "rhs", mpv.rhs) - - # Compute compressibility kernel - kernel = operators.get_averaging_kernel(ndim, width=2) - dpidP = (th.gm1 / Msq) * operators.apply_convolution_kernel( - rhoY ** (th.gamm - 2.0), kernel=kernel, normalize=True, use_numba=True - ) - - rhoYovG = Ginv * rhoY - dbuoy = rhoY * (rhoX / rho) - - # Pressure gradients - dpdx, dpdy, dpdz = operators.compute_gradient_nodes(p2n, ndim, node.dxyz) - - # Wind perturbations - drhou = rhou - u0 * rho - drhov = rhov - v0 * rho - drhow = rhow - w0 * rho - v = rhov / rho - - # Momentum update (u, v, w) - rhou -= dt * (rhoYovG * dpdx - corr_h2 * drhov + corr_v * drhow) - rhov -= ( - dt - * ( - rhoYovG * dpdy - + (g / Msq) * dbuoy * nonhydro - - corr_h1 * drhow - + corr_h2 * drhou - ) - * (1 - ud.is_ArakawaKonor) - ) - - if ndim == 3: - rhow -= dt * (rhoYovG * dpdz - corr_v * drhou + corr_h1 * drhov) - - # Scalar update (rhoX) - sol.rhoX[...] = (rho * (rho / rhoY - S0c)) - dt * (v * dSdy) * rho - - # Compressibility correction to p2 - dp2n[node.i1] -= dt * dpidP * mpv.rhs - mpv.p2_nodes += ud.compressibility * dp2n - - # Boundary conditions - bdry.set_ghostnodes_p2(mpv.p2_nodes, node, ud) - bdry.set_explicit_boundary_data(sol, elem, ud, th, mpv) - - -def euler_backward_non_advective_expl_part(mem, ud, dt): - nonhydro = ud.nonhydrostasy - g = ud.gravity_strength[1] - Msq = ud.Msq - - dbuoy = mem.sol.rhoY * (mem.sol.rhoX / mem.sol.rho) - mem.sol.rhov = (nonhydro * mem.sol.rhov) - dt * (g / Msq) * dbuoy - - mem.sol.mod_bg_wind(ud, -1.0) - - multiply_inverse_coriolis(mem.sol, mem, ud, dt) - - mem.sol.mod_bg_wind(ud, +1.0) - - bdry.set_explicit_boundary_data(mem.sol, mem.elem, ud, mem.th, mem.mpv) - -def euler_backward_non_advective_impl_part( - mem, - ud, - dt, - Sol0=None, - writer=None, - label=None, - debug=False, -): - """ - Optimized version with reduced redundancy and improved structure. - """ - # Early return optimization - disable writer if not debugging - if not debug: - writer = None - - nc = mem.node.sc - - # Helper function to reduce writer boilerplate - def write_debug_data(key, data): - if writer is not None: - writer.populate(str(label), key, data) - - # Initial debug output - write_debug_data("p2_initial", mem.mpv.p2_nodes) - - # Set boundary data and compute operator coefficients (consolidated) - sol_for_boundary = Sol0 if Sol0 is not None else mem.sol - bdry.set_explicit_boundary_data(sol_for_boundary, mem.elem, ud, mem.th, mem.mpv) - operator_coefficients_nodes(mem, ud, dt) - - # Debug output for w components - if writer is not None: - write_debug_data("hcenter", mem.mpv.wcenter) - write_debug_data("wplusx", mem.mpv.wplus[0]) - write_debug_data("wplusy", mem.mpv.wplus[1]) - - # Handle 3D case more cleanly - wplusz_data = (mem.mpv.wplus[2] if mem.elem.ndim == 3 - else np.zeros_like(mem.mpv.wplus[0])) - write_debug_data("wplusz", wplusz_data) - - # Boundary and correction operations - # bdry.set_ghostnodes_p2(mem.mpv.p2_nodes, mem.node, ud) - correction_nodes(mem, ud, dt, mem.mpv.p2_nodes, 0) - bdry.set_explicit_boundary_data(mem.sol, mem.elem, ud, mem.th, mem.mpv) - - # Compute RHS - mem.mpv.rhs[...] = divergence_nodes(mem.mpv.rhs, mem.elem, mem.sol, ud) - write_debug_data("rhs", mem.mpv.rhs) - - mem.mpv.rhs /= dt - - # Handle compressibility - simplified logic - _apply_compressibility_correction(mem, ud) - - write_debug_data("rhs_nodes", mem.mpv.rhs) - - # Prepare and solve linear system - lap, rhs_inner = _prepare_linear_system(mem, ud, dt) - - # Solve using BiCGSTAB - counter = solver_counter() - p2, _ = sp.sparse.linalg.bicgstab( - lap, rhs_inner, atol=ud.tol, maxiter=ud.max_iterations, callback=counter - ) - - # Reshape solution and apply - p2_full = _reshape_solution(p2, mem, ud, nc) - write_debug_data("p2_full", p2_full) - - # # Final boundary and correction operations - # bdry.set_ghostnodes_p2(p2_full, mem.node, ud) - correction_nodes(mem, ud, dt, p2_full, 1) - - mem.mpv.p2_nodes[...] += p2_full - bdry.set_ghostnodes_p2(mem.mpv.p2_nodes, mem.node, ud) - bdry.set_explicit_boundary_data(mem.sol, mem.elem, ud, mem.th, mem.mpv) - -def correction_nodes(mem, ud, dt, p, updt_chi): - ndim = mem.node.ndim - Gammainv = mem.th.Gammainv - - dSdy = mem.mpv.HydroState_n.get_dSdy(mem.elem, mem.node) - - Dpx, Dpy, Dpz = operators.compute_gradient_nodes(p, mem.elem.ndim, mem.node.dxyz) - - thinv = mem.sol.rho / mem.sol.rhoY - - Y = mem.sol.rhoY / mem.sol.rho - coeff = Gammainv * mem.sol.rhoY * Y - - mem.mpv.u[...] = -dt * coeff * Dpx - mem.mpv.v[...] = -dt * coeff * Dpy - mem.mpv.w[...] = -dt * coeff * Dpz - - multiply_inverse_coriolis(mem.mpv, mem, ud, dt, attrs=["u", "v", "w"]) - - mem.sol.rhou += thinv * mem.mpv.u - mem.sol.rhov += thinv * mem.mpv.v - mem.sol.rhow += thinv * mem.mpv.w if ndim == 3 else 0.0 - mem.sol.rhoX += -updt_chi * dt * dSdy * mem.sol.rhov - - -def operator_coefficients_nodes(mem, ud, dt): - Gammainv = mem.th.Gammainv - ndim = mem.node.ndim - - ccenter = -ud.Msq * mem.th.gm1inv / (dt**2) - cexp = 2.0 - mem.th.gamm - - Y = mem.sol.rhoY / mem.sol.rho - coeff = Gammainv * mem.sol.rhoY * Y - - for dim in range(ndim): - mem.mpv.wplus[dim][...] = coeff - - kernel = operators.get_averaging_kernel(ndim, width=2) - - mem.mpv.wcenter = ccenter * operators.apply_convolution_kernel( - mem.sol.rhoY**cexp, kernel - ) - - if not hasattr(ud, "ATMOSPHERIC_EXTENSION"): - bdry.scale_wall_node_values(mem.mpv.wcenter, mem.node, ud) - - -@njit(cache=True) -def _compute_coriolis_coefficients(wh1, wh2, wv, nu, nonhydro): - """Compute coefficients for the H^-1 matrix multiplication. - - This corresponds to equation (C11) in the mathematical formulation. - """ - # Common terms - wh1_sq = wh1 * wh1 - wh2_sq = wh2 * wh2 - wv_sq = wv * wv - nu_nh = nu + nonhydro - - # Denominator (det(H)) - denom = 1.0 / (wh1_sq + wh2_sq + nu_nh * (wv_sq + 1.0)) - - # H^-1 matrix elements (row-major order) - # Row 1: U equation coefficients - h11 = (wh1_sq + nu_nh) * denom - h12 = nonhydro * (wh1 * wv + wh2) * denom - h13 = (wh1 * wh2 - nu_nh * wv) * denom - - # Row 2: V equation coefficients - h21 = (wh1 * wv - wh2) * denom - h22 = nonhydro * (1.0 + wv_sq) * denom - h23 = (wh2 * wv + wh1) * denom - - # Row 3: W equation coefficients - h31 = (wh1 * wh2 + nu_nh * wv) * denom - h32 = nonhydro * (wh2 * wv - wh1) * denom - h33 = (nu_nh + wh2_sq) * denom - - return h11, h12, h13, h21, h22, h23, h31, h32, h33 - - -@njit(cache=True) -def apply_coriolis_matrix_inplace( - u_vec, v_vec, w_vec, U, V, W, wh1, wh2, wv, nu, nonhydro -): - """Apply H^-1 matrix multiplication in-place. - - Corresponds to the equation: U^{n+1} = H^{-1}(U^{n*} - Δt_{cp}(Pθ)^* ∇π^{n+1}) - """ - # Get matrix coefficients - h11, h12, h13, h21, h22, h23, h31, h32, h33 = _compute_coriolis_coefficients( - wh1, wh2, wv, nu, nonhydro - ) - - U[...] = u_vec - V[...] = v_vec - W[...] = w_vec - - # Matrix multiplication: [U_new, V_new, W_new] = H^-1 @ [U_old, V_old, W_old] - u_vec[...] = h11 * U + h12 * V + h13 * W - v_vec[...] = h21 * U + h22 * V + h23 * W - w_vec[...] = h31 * U + h32 * V + h33 * W - - -# Refactored main function -def multiply_inverse_coriolis( - Vec, mem, ud, dt, attrs=("rhou", "rhov", "rhow"), get_coeffs=False -): - """Coriolis matrix multiplication.""" - nonhydro = ud.nonhydrostasy - g = ud.gravity_strength[1] - Msq = ud.Msq - - wh1, wv, wh2 = dt * ud.coriolis_strength - strat = mem.mpv.HydroState_n.get_dSdy(mem.elem, mem.node) - Y = mem.sol.rhoY / mem.sol.rho - nu = -(dt**2) * (g / Msq) * strat * Y - - # Get vector components - VecU = getattr(Vec, attrs[0]) - VecV = getattr(Vec, attrs[1]) - VecW = getattr(Vec, attrs[2]) - - U, V, W = mem.cache.get_velocity_array_views(VecU.shape) - - apply_coriolis_matrix_inplace(VecU, VecV, VecW, U, V, W, wh1, wh2, wv, nu, nonhydro) - - # Return coefficients - if get_coeffs: - h11, h12, _, h21, h22, h23, h31, h32, h33 = _compute_coriolis_coefficients( - wh1, wh2, wv, nu, nonhydro - ) - return (h11.T, h22.T, h12.T, h21.T) - - -def divergence_nodes(rhs, elem, sol, ud): - """Main divergence function - handles boundary conditions and calls JIT-compiled core.""" - ndim = elem.ndim - - # Handle boundary conditions - if not hasattr(ud, "ATMOSPHERIC_EXTENSION"): - if ( - ud.bdry_type[1] == opts.BdryType.WALL - or ud.bdry_type[1] == opts.BdryType.RAYLEIGH - ): - sol.rhou[:, :2, ...] = 0.0 - sol.rhov[:, :2, ...] = 0.0 - sol.rhow[:, :2, ...] = 0.0 - sol.rhou[:, -2:, ...] = 0.0 - sol.rhov[:, -2:, ...] = 0.0 - sol.rhow[:, -2:, ...] = 0.0 - - # Call appropriate JIT-compiled function - if ndim == 2: - rhs[:] = _momentum_pot_temp_divergence_2d_jit( - sol.rho, sol.rhou, sol.rhov, sol.rhoY, elem.dx, elem.dy - ) - else: - _momentum_pot_temp_divergence_3d_jit( - rhs, - sol.rho, - sol.rhou, - sol.rhov, - sol.rhow, - sol.rhoY, - elem.dx, - elem.dy, - elem.dz, - ) - - return rhs - - -@njit(cache=True) -def _momentum_pot_temp_divergence_2d_jit(rho, rhou, rhov, rhoY, dx, dy): - """ - JIT-compiled 2D momentum-potential temperature divergence calculation. - Computes ∇·(ρu θ, ρv θ) where θ = ρY/ρ is the potential temperature. - """ - # Calculate potential temperature θ = ρY / ρ - theta = rhoY / rho - - # Compute momentum-potential temperature flux components - rhou_theta = rhou * theta # x-momentum flux weighted by potential temperature - rhov_theta = rhov * theta # y-momentum flux weighted by potential temperature - - # Use generic divergence operator - return operators.compute_divergence_2d(rhou_theta, rhov_theta, dx, dy) - - -@njit(cache=True) -def _momentum_pot_temp_divergence_3d_jit(rhs, rho, rhou, rhov, rhow, rhoY, dx, dy, dz): - """ - JIT-compiled 3D momentum-potential temperature divergence calculation. - Computes ∇·(ρu θ, ρv θ, ρw θ) where θ = ρY/ρ is the potential temperature. - """ - # Calculate potential temperature θ = ρY / ρ - theta = rhoY / rho - - # Compute momentum-potential temperature flux components - rhou_theta = rhou * theta # x-momentum flux weighted by potential temperature - rhov_theta = rhov * theta # y-momentum flux weighted by potential temperature - rhow_theta = rhow * theta # z-momentum flux weighted by potential temperature - - # Use generic total divergence operator - total_div = operators.compute_divergence_3d_total( - rhou_theta, rhov_theta, rhow_theta, dx, dy, dz - ) - - # Assign to inner region - rhs[1:-1, 1:-1, 1:-1] = total_div - - - -def _apply_compressibility_correction(mem, ud): - """ - Extracted compressibility logic for better readability. - """ - if ud.is_compressible == 0: - if ud.is_ArakawaKonor: - mem.mpv.rhs -= mem.mpv.wcenter * mem.mpv.dp2_nodes - mem.mpv.wcenter[...] = 0.0 - else: - # Simplified - this was redundant multiplication - mem.mpv.wcenter[...] *= ud.compressibility - else: - mem.mpv.wcenter *= ud.compressibility - - -def _prepare_linear_system(mem, ud, dt): - """ - Prepare the linear system components based on dimensionality. - """ - if mem.elem.ndim == 2: - return _prepare_2d_system(mem, ud, dt) - else: # 3D case - return _prepare_3d_system(mem, ud, dt) - - -def _prepare_2d_system(mem, ud, dt): - """Prepare 2D linear system.""" - Vec = mem.mpv - coriolis_params = multiply_inverse_coriolis( - Vec, mem, ud, dt, attrs=("u", "v", "w"), get_coeffs=True - ) - - diag_inv = lm_lp.precon_diag_prepare(mem.mpv, mem.node) - mem.mpv.rhs *= diag_inv - - p2 = mem.mpv.p2_nodes[mem.node.i2].T - lap = lm_lp.get_lap2D(mem.mpv, mem.node, coriolis_params, diag_inv, ud) - sh = p2.shape[0] * p2.shape[1] - - lap = sp.sparse.linalg.LinearOperator((sh, sh), lap) - rhs_inner = mem.mpv.rhs[mem.node.i1].T.ravel() - - return lap, rhs_inner - - -def _prepare_3d_system(mem, ud, dt): - """Prepare 3D linear system.""" - # Note: diag_inv appears to be used but not defined in 3D case - # This might be a bug in the original code - diag_inv = None # TODO: Verify if this should be computed for 3D - - lap = lm_lp.stencil_27pt(mem.elem, mem.node, mem.mpv, ud, diag_inv, dt) - p2 = mem.mpv.p2_nodes # Define p2 for 3D case - sh = p2.reshape(-1).shape[0] - - lap = sp.sparse.linalg.LinearOperator((sh, sh), lap) - rhs_inner = mem.mpv.rhs[mem.node.i1].ravel() - - return lap, rhs_inner, sh - - -def _reshape_solution(p2, mem, ud, nc): - """ - Reshape the solution vector back to the appropriate format. - """ - p2_full = np.zeros(nc).squeeze() - - if mem.elem.ndim == 2: - p2_full[mem.node.i2] = p2.reshape(mem.mpv.rhs[mem.node.i1].T.shape).T - else: # 3D case - p2_full[mem.node.i1] = p2.reshape(ud.inx + 2, ud.iny + 2, ud.inz + 2) - - return p2_full - diff --git a/src/pybella/flow_solver/physics/gas_dynamics/thermodynamics.py b/src/pybella/flow_solver/physics/thermodynamics.py similarity index 100% rename from src/pybella/flow_solver/physics/gas_dynamics/thermodynamics.py rename to src/pybella/flow_solver/physics/thermodynamics.py diff --git a/src/pybella/flow_solver/utils/cache.py b/src/pybella/flow_solver/utils/cache.py new file mode 100644 index 00000000..1357bb2e --- /dev/null +++ b/src/pybella/flow_solver/utils/cache.py @@ -0,0 +1,110 @@ +import numpy as np +import logging + +from . import fields + +class Characters(object): + """ + Data container for the slope and amplitude of the interpolation to the faces for the Riemann solver. + + """ + + def __init__(self, size): + """ + Parameters + ---------- + size : tuple + Tuple containing the number of cells in the respective directions including ghost cells. + + Attributes + ---------- + u : ndarray(size) + v : ndarray(size) + w : ndarray(size) + Y : ndarray(size) + X : ndarray(size) + plus : ndarray(size) + minus : ndarray(size) + entro : ndarray(size) + + """ + self.u = np.zeros((size), dtype=np.float64) + self.v = np.zeros((size), dtype=np.float64) + self.w = np.zeros((size), dtype=np.float64) + self.X = np.zeros((size), dtype=np.float64) + self.Y = np.zeros((size), dtype=np.float64) + + self.squeezer() + + def squeezer(self): + """ + Removes dimension of size 1. All arrays are initialised as 3D arrays, this function will remove the unnecessary dimensions. + + """ + for key, value in vars(self).items(): + setattr(self, key, value.squeeze()) + + +class FlowSolverCache: + """Cache for flow solver specific computations.""" + + def __init__(self): + self._recovery_cache = {} + self._velocity_cache = {} + + def get_recovery_objects(self, shape, ud): + """Get cached recovery objects or create new ones.""" + + cache_key = (tuple(shape), id(ud)) + if cache_key not in self._recovery_cache: + logging.info("Cache: Creating new recovery objects with shape %s", shape) + self._recovery_cache[cache_key] = { + "Diffs": Characters(shape), + "Ampls": Characters(shape), + "Lefts": fields.States(shape, ud), + "Rights": fields.States(shape, ud), + "Slopes": Characters(shape), + } + + # Reset objects if they have reset methods + cache_obj = self._recovery_cache[cache_key] + # for obj in cache_obj.values(): + # if hasattr(obj, 'zero'): + # obj.zero() + + return cache_obj + + def get_velocity_arrays(self, shape, dtype=np.float64): + """Get cached velocity arrays (U, V, W) or create new ones.""" + + cache_key = (tuple(shape), dtype) + + if cache_key not in self._velocity_cache: + logging.info("Cache: Creating new velocity arrays with shape %s", shape) + self._velocity_cache[cache_key] = { + "U": np.zeros(shape, dtype=dtype), + "V": np.zeros(shape, dtype=dtype), + "W": np.zeros(shape, dtype=dtype), + } + + # Clear arrays for reuse + cache_obj = self._velocity_cache[cache_key] + # for arr in cache_obj.values(): + # arr.fill(0.0) + + return cache_obj + + def get_velocity_array_views(self, shape, dtype=np.float64): + """Get views of cached velocity arrays for in-place operations.""" + cache_obj = self.get_velocity_arrays(shape, dtype) + + return cache_obj["U"], cache_obj["V"], cache_obj["W"] + + def clear_velocity_cache(self): + """Clear velocity cache to free memory.""" + self._velocity_cache.clear() + + def clear_all(self): + """Clear all caches to free memory.""" + self._recovery_cache.clear() + self._velocity_cache.clear() diff --git a/src/pybella/flow_solver/utils/variable.py b/src/pybella/flow_solver/utils/fields.py similarity index 63% rename from src/pybella/flow_solver/utils/variable.py rename to src/pybella/flow_solver/utils/fields.py index 46199653..416f3c6e 100644 --- a/src/pybella/flow_solver/utils/variable.py +++ b/src/pybella/flow_solver/utils/fields.py @@ -2,8 +2,7 @@ import scipy as sp import logging - -class Vars(object): +class CellSolField(object): """ The data container for the solution state variables, i.e. `Sol`. @@ -116,7 +115,7 @@ def mod_bg_wind(self, ud, fac): self.rhow[...] = self.rhow + fac * w0 * self.rho -class States(Vars): +class States(CellSolField): """ Data container for `Lefts` and `Rights` for the Riemann solver. Inherits the solution class :class:`management.variable.Vars`. @@ -181,109 +180,34 @@ def get_S0c(self, elem): return self.S0c +class NodePressureField(object): + def __init__(self, elem, node, ud): + sc = elem.sc + sn = node.sc -class Characters(object): - """ - Data container for the slope and amplitude of the interpolation to the faces for the Riemann solver. + self.p0 = 1.0 + self.p00 = 1.0 - """ + self.p2_cells = np.zeros((sc)) + self.dp2_cells = np.zeros((sc)) + self.p2_nodes = np.zeros((sn)) + self.p2_nodes0 = np.zeros((sn)) + self.dp2_nodes = np.zeros((sn)) - def __init__(self, size): - """ - Parameters - ---------- - size : tuple - Tuple containing the number of cells in the respective directions including ghost cells. + self.u = np.zeros((sc)) + self.v = np.zeros((sc)) + self.w = np.zeros((sc)) - Attributes - ---------- - u : ndarray(size) - v : ndarray(size) - w : ndarray(size) - Y : ndarray(size) - X : ndarray(size) - plus : ndarray(size) - minus : ndarray(size) - entro : ndarray(size) + self.rhs = np.zeros((node.isc)) + self.wcenter = np.zeros((node.isc)) + self.wplus = np.zeros(([elem.ndim] + list(sc))) - """ - self.u = np.zeros((size)) - self.v = np.zeros((size)) - self.w = np.zeros((size)) - self.X = np.zeros((size)) - self.Y = np.zeros((size)) + self.HydroState = States([sc[1]], ud) + self.HydroState_n = States([sn[1]], ud) self.squeezer() def squeezer(self): - """ - Removes dimension of size 1. All arrays are initialised as 3D arrays, this function will remove the unnecessary dimensions. - - """ for key, value in vars(self).items(): - setattr(self, key, value.squeeze()) - - -class FlowSolverCache: - """Cache for flow solver specific computations.""" - - def __init__(self): - self._recovery_cache = {} - self._velocity_cache = {} - - def get_recovery_objects(self, shape, ud): - """Get cached recovery objects or create new ones.""" - - cache_key = (tuple(shape), id(ud)) - if cache_key not in self._recovery_cache: - logging.info("Cache: Creating new recovery objects with shape %s", shape) - self._recovery_cache[cache_key] = { - "Diffs": Characters(shape), - "Ampls": Characters(shape), - "Lefts": States(shape, ud), - "Rights": States(shape, ud), - "Slopes": Characters(shape), - } - - # Reset objects if they have reset methods - cache_obj = self._recovery_cache[cache_key] - # for obj in cache_obj.values(): - # if hasattr(obj, 'zero'): - # obj.zero() - - return cache_obj - - def get_velocity_arrays(self, shape, dtype=np.float64): - """Get cached velocity arrays (U, V, W) or create new ones.""" - - cache_key = (tuple(shape), dtype) - - if cache_key not in self._velocity_cache: - logging.info("Cache: Creating new velocity arrays with shape %s", shape) - self._velocity_cache[cache_key] = { - "U": np.zeros(shape, dtype=dtype), - "V": np.zeros(shape, dtype=dtype), - "W": np.zeros(shape, dtype=dtype), - } - - # Clear arrays for reuse - cache_obj = self._velocity_cache[cache_key] - # for arr in cache_obj.values(): - # arr.fill(0.0) - - return cache_obj - - def get_velocity_array_views(self, shape, dtype=np.float64): - """Get views of cached velocity arrays for in-place operations.""" - cache_obj = self.get_velocity_arrays(shape, dtype) - - return cache_obj["U"], cache_obj["V"], cache_obj["W"] - - def clear_velocity_cache(self): - """Clear velocity cache to free memory.""" - self._velocity_cache.clear() - - def clear_all(self): - """Clear all caches to free memory.""" - self._recovery_cache.clear() - self._velocity_cache.clear() + if type(value) == np.ndarray: + setattr(self, key, value.squeeze()) diff --git a/src/pybella/flow_solver/utils/prepare.py b/src/pybella/flow_solver/utils/prepare.py index eeaecf3a..a6c1e5a5 100644 --- a/src/pybella/flow_solver/utils/prepare.py +++ b/src/pybella/flow_solver/utils/prepare.py @@ -1,18 +1,14 @@ import numpy as np from ...utils import user_data, io, data_structures - -from ..discretisation import grid as dis_grid -from . import variable as var -from . import boundary as bdry from ..physics import hydrostatics -from ..physics.low_mach import mpv as lm_var -from ..physics.gas_dynamics import thermodynamics as gd_thermodynamics +from ..physics import thermodynamics as gd_thermodynamics +from ..discretisation import grid as dis_grid +from . import fields, cache, boundary as bdry # test module from ...tests import diagnostics as diag - def initialise(): #### # Initialise simulation state @@ -41,18 +37,18 @@ def initialise(): elem, node = dis_grid.grid_init(ud) - sol = var.Vars(elem.sc, ud) + sol = fields.CellSolField(elem.sc, ud) # Move these to the FlowSolverCache flux = np.empty((3), dtype=object) - flux[0] = var.States(elem.sfx, ud) + flux[0] = fields.States(elem.sfx, ud) if elem.ndim > 1: - flux[1] = var.States(elem.sfy, ud) + flux[1] = fields.States(elem.sfy, ud) if elem.ndim > 2: - flux[2] = var.States(elem.sfz, ud) + flux[2] = fields.States(elem.sfz, ud) th = gd_thermodynamics.ThermodynamicalQuantities(ud) - mpv = lm_var.MPV(elem, node, ud) + mpv = fields.NodePressureField(elem, node, ud) io.init_logger(ud) @@ -86,7 +82,7 @@ def initialise(): sol = sol_init(sol, mpv, elem, node, th, ud) # Initialise cache and add to simulation state - flow_cache = var.FlowSolverCache() + flow_cache = cache.FlowSolverCache() ensemble_state.update_member( elem=elem, node=node, sol=sol, flux=flux, mpv=mpv, th=th, cache=flow_cache diff --git a/src/pybella/interfaces/dynamics_blending/schemes.py b/src/pybella/interfaces/dynamics_blending/schemes.py index 4904372c..dc545eec 100644 --- a/src/pybella/interfaces/dynamics_blending/schemes.py +++ b/src/pybella/interfaces/dynamics_blending/schemes.py @@ -4,7 +4,7 @@ import numpy as np from scipy import signal -from ...flow_solver.physics.gas_dynamics import eos as gd_eos +from ...flow_solver.physics import eos as gd_eos from ...utils import io diff --git a/src/pybella/tests/test_internal_long_wave.py b/src/pybella/tests/test_internal_long_wave.py index 5510d348..1df0776b 100644 --- a/src/pybella/tests/test_internal_long_wave.py +++ b/src/pybella/tests/test_internal_long_wave.py @@ -2,7 +2,7 @@ from ..utils import options as opts -from ..flow_solver.utils import boundary as bdry, variable as var +from ..flow_solver.utils import boundary as bdry, fields from ..flow_solver.physics import hydrostatics from ..utils.data_structures import DiagnosticState @@ -137,8 +137,8 @@ def sol_init(Sol, mpv, elem, node, th, ud, seeds=None): hydrostatics.analytical_state(mpv, elem, node, th, ud) - HySt = var.States(node.sc, ud) - HyStn = var.States(node.sc, ud) + HySt = fields.States(node.sc, ud) + HyStn = fields.States(node.sc, ud) x = elem.x.reshape(-1, 1) y = elem.y.reshape(1, -1) diff --git a/src/pybella/tests/test_lamb_wave.py b/src/pybella/tests/test_lamb_wave.py index d474213d..90185b20 100644 --- a/src/pybella/tests/test_lamb_wave.py +++ b/src/pybella/tests/test_lamb_wave.py @@ -1,14 +1,11 @@ import numpy as np from ..utils import options as opts +from ..utils.data_structures import DiagnosticState from ..flow_solver.utils import boundary as bdry - from ..flow_solver.physics import hydrostatics -from ..utils.data_structures import DiagnosticState - - class UserData(object): def __init__(self): diff --git a/src/pybella/tests/test_travelling_vortex.py b/src/pybella/tests/test_travelling_vortex.py index 6b1cd69d..4956ae12 100644 --- a/src/pybella/tests/test_travelling_vortex.py +++ b/src/pybella/tests/test_travelling_vortex.py @@ -3,14 +3,13 @@ from ..utils import options as opts from ..flow_solver.utils import boundary as bdry from ..flow_solver.physics import hydrostatics -from ..flow_solver.physics.low_mach import second_projection as lm_sp -from ..flow_solver.utils import variable as var +from ..flow_solver.numerics import implicit_euler +from ..flow_solver.utils import cache + from ..utils.data_structures import DiagnosticState import logging - - class UserData(object): grav = 0.0 @@ -310,9 +309,9 @@ def sol_init(Sol, mpv, elem, node, th, ud, seed=None): mem.time = obj() mem.time.t = ud.dtfixed mem.time.step = 0 - mem.cache = var.FlowSolverCache() + mem.cache = cache.FlowSolverCache() - lm_sp.euler_backward_non_advective_impl_part( + implicit_euler.do_implicit_part( mem, ud, ud.dtfixed, writer=None, label="initial_projection" ) diff --git a/src/pybella/utils/data_structures.py b/src/pybella/utils/data_structures.py index 3bee39c5..9aefdde9 100644 --- a/src/pybella/utils/data_structures.py +++ b/src/pybella/utils/data_structures.py @@ -2,9 +2,9 @@ from dataclasses import dataclass, field, fields from ..flow_solver.discretisation.grid import Grid -from ..flow_solver.utils.variable import Vars, FlowSolverCache -from ..flow_solver.physics.low_mach.mpv import MPV -from ..flow_solver.physics.gas_dynamics.thermodynamics import ThermodynamicalQuantities +from ..flow_solver.utils.fields import CellSolField, NodePressureField, States +from ..flow_solver.utils.cache import FlowSolverCache +from ..flow_solver.physics.thermodynamics import ThermodynamicalQuantities @dataclass @@ -18,9 +18,9 @@ class IntegrationTime: class ModelState: elem: Grid node: Grid - sol: Vars - flux: List[Vars] - mpv: MPV + sol: CellSolField + flux: List[States] + mpv: NodePressureField th: ThermodynamicalQuantities cache: FlowSolverCache = field(default_factory=FlowSolverCache) time: IntegrationTime = field(init=False) @@ -68,9 +68,9 @@ def update_member( self, elem: Grid, node: Grid, - sol: Vars, - mpv: MPV, - flux: List[Vars], + sol: CellSolField, + mpv: NodePressureField, + flux: List[CellSolField], th: ThermodynamicalQuantities, cache: Optional[FlowSolverCache] = None, ): diff --git a/src/pybella/utils/operators.py b/src/pybella/utils/operators.py deleted file mode 100644 index a06f4a6d..00000000 --- a/src/pybella/utils/operators.py +++ /dev/null @@ -1,659 +0,0 @@ -import numpy as np -import scipy as sp -from numba import njit -from functools import lru_cache - - -@lru_cache(maxsize=2) -def get_flux_convolution_kernels(ndim): - """Create convolution kernels for advective flux computation. - - Parameters - ---------- - ndim : int - Number of dimensions (2 or 3) - - Returns - ------- - dict - Dictionary containing kernels for each direction - - Notes - ----- - Results are cached since kernels don't change during computation. - """ - if ndim == 2: - kernel_u = np.array([[0.5, 1.0, 0.5], [0.5, 1.0, 0.5]]) - return {"u": kernel_u, "v": kernel_u.T} - elif ndim == 3: - kernel_u = np.array( - [[[1, 2, 1], [2, 4, 2], [1, 2, 1]], [[1, 2, 1], [2, 4, 2], [1, 2, 1]]] - ) - return { - "u": kernel_u, - "v": np.swapaxes(kernel_u, 1, 0), - "w": np.swapaxes(kernel_u, 2, 0), - } - else: - raise ValueError(f"Unsupported dimension: {ndim}") - - -@lru_cache(maxsize=4) -def get_averaging_kernel(ndim, width=3, normalize=True): - """ - Create a generic averaging kernel for arbitrary dimensions. - - Parameters - ---------- - ndim : int - Number of dimensions (e.g., 2 or 3) - width : int, default=3 - Size of the kernel along each axis (can be even or odd) - normalize : bool, default=True - Whether to normalize the kernel to sum to 1 - - Returns - ------- - np.ndarray - Averaging kernel of shape (width,) * ndim - - Notes - ----- - - Odd widths result in centered kernels. - - Even widths are useful for staggered/grid-face averaging. - """ - shape = (width,) * ndim - kernel = np.ones(shape, dtype=np.float64) - - if normalize: - kernel /= kernel.size - - return kernel - - -@njit(cache=True) -def _numba_convolve_2d(data, kernel): - """Numba-compiled 2D convolution for better performance.""" - data_h, data_w = data.shape - kernel_h, kernel_w = kernel.shape - - result_h = data_h - kernel_h + 1 - result_w = data_w - kernel_w + 1 - result = np.zeros((result_h, result_w)) - - for i in range(result_h): - for j in range(result_w): - for ki in range(kernel_h): - for kj in range(kernel_w): - result[i, j] += data[i + ki, j + kj] * kernel[ki, kj] - - return result - - -@njit(cache=True) -def _numba_convolve_3d(data, kernel): - """Numba-compiled 3D convolution for better performance.""" - data_d, data_h, data_w = data.shape - kernel_d, kernel_h, kernel_w = kernel.shape - - result_d = data_d - kernel_d + 1 - result_h = data_h - kernel_h + 1 - result_w = data_w - kernel_w + 1 - result = np.zeros((result_d, result_h, result_w)) - - for i in range(result_d): - for j in range(result_h): - for k in range(result_w): - for ki in range(kernel_d): - for kj in range(kernel_h): - for kk in range(kernel_w): - result[i, j, k] += ( - data[i + ki, j + kj, k + kk] * kernel[ki, kj, kk] - ) - - return result - - -def apply_convolution_kernel( - data, kernel, normalize=True, axis_swap=None, use_numba=True -): - """Apply convolution kernel with optional normalization and axis swapping. - - Parameters - ---------- - data : np.ndarray - Input data array - kernel : np.ndarray - Convolution kernel - normalize : bool, default=True - Whether to normalize by kernel sum - axis_swap : tuple or None, default=None - Tuple of (from_axis, to_axis) for np.moveaxis - use_numba : bool, default=True - Whether to use Numba-compiled convolution (faster for repeated calls) - - Returns - ------- - np.ndarray - Convolved result - - Notes - ----- - For large arrays or single calls, scipy.signal.fftconvolve might be faster. - For repeated calls on smaller arrays, Numba convolution is typically faster. - """ - if use_numba and data.ndim in (2, 3): - if data.ndim == 2: - result = _numba_convolve_2d(data, kernel) - else: # 3D - result = _numba_convolve_3d(data, kernel) - else: - # Fallback to scipy for other dimensions or when requested - result = sp.signal.fftconvolve(data, kernel, mode="valid") - - if normalize: - result = result / kernel.sum() - - if axis_swap is not None: - result = np.moveaxis(result, axis_swap[0], axis_swap[1]) - - return result - - -# Configuration for directional convolutions -DIRECTION_CONFIG = { - 2: {"u": {"axis_swap": (0, -1)}, "v": {"axis_swap": None}}, - 3: { - "u": {"axis_swap": (0, -1)}, - "v": {"axis_swap": (-1, 0)}, - "w": {"axis_swap": None}, - }, -} - - -def apply_directional_convolution( - data, kernel, direction, ndim, normalize=True, use_numba=True -): - """Apply convolution kernel for a specific direction with appropriate axis swapping. - - Parameters - ---------- - data : np.ndarray - Input data array - kernel : np.ndarray - Convolution kernel for the direction - direction : str - Direction ('u', 'v', or 'w') - ndim : int - Number of dimensions (2 or 3) - normalize : bool, default=True - Whether to normalize by kernel sum - use_numba : bool, default=True - Whether to use Numba-compiled convolution - - Returns - ------- - np.ndarray - Convolved result with appropriate axis swapping - """ - if direction not in DIRECTION_CONFIG[ndim]: - raise ValueError(f"Direction '{direction}' not supported for {ndim}D") - - config = DIRECTION_CONFIG[ndim][direction] - return apply_convolution_kernel( - data, - kernel, - normalize=normalize, - axis_swap=config["axis_swap"], - use_numba=use_numba, - ) - - -@njit(cache=True) -def compute_divergence_2d(u_field, v_field, dx, dy): - """ - Compute 2D divergence: ∇·F = ∂u/∂x + ∂v/∂y - - Parameters - ---------- - u_field : np.ndarray - Field component in x-direction - v_field : np.ndarray - Field component in y-direction - dx : float - Grid spacing in x-direction - dy : float - Grid spacing in y-direction - - Returns - ------- - np.ndarray - Divergence field averaged to cell centers - """ - # X-direction: ∂u/∂x - div_x = finite_difference_1d(u_field, dx, axis=0) - # Average to y-cell centers - div_x = 0.5 * (div_x[:, :-1] + div_x[:, 1:]) - - # Y-direction: ∂v/∂y - div_y = finite_difference_1d(v_field, dy, axis=1) - # Average to x-cell centers - div_y = 0.5 * (div_y[:-1, :] + div_y[1:, :]) - - return div_x + div_y - - -@njit(cache=True) -def compute_divergence_3d(u_field, v_field, w_field, dx, dy, dz): - """ - Compute 3D divergence: ∇·F = ∂u/∂x + ∂v/∂y + ∂w/∂z - - Parameters - ---------- - u_field : np.ndarray - Field component in x-direction - v_field : np.ndarray - Field component in y-direction - w_field : np.ndarray - Field component in z-direction - dx : float - Grid spacing in x-direction - dy : float - Grid spacing in y-direction - dz : float - Grid spacing in z-direction - - Returns - ------- - tuple - (div_x, div_y, div_z) - Individual divergence components - """ - # X-direction: ∂u/∂x - div_x = finite_difference_1d(u_field, dx, axis=0) - # Average to y-cell centers, then to z-faces - div_x = 0.5 * (div_x[:, :-1, :] + div_x[:, 1:, :]) - div_x = -0.5 * (div_x[:, :, :-1] + div_x[:, :, 1:]) # Note: negative from original - - # Y-direction: ∂v/∂y - div_y = finite_difference_1d(v_field, dy, axis=1) - # Average to x-cell centers, then to z-faces - div_y = 0.5 * (div_y[:-1, :, :] + div_y[1:, :, :]) - div_y = 0.5 * (div_y[:, :, :-1] + div_y[:, :, 1:]) - - # Z-direction: ∂w/∂z - div_z = finite_difference_1d(w_field, dz, axis=2) - # Average to cell centers - div_z = 0.5 * (div_z[:-1, :, :] + div_z[1:, :, :]) - div_z = 0.5 * (div_z[:, :-1, :] + div_z[:, 1:, :]) - - return div_x, div_y, div_z - - -@njit(cache=True) -def compute_divergence_3d_total(u_field, v_field, w_field, dx, dy, dz): - """ - Compute total 3D divergence: ∇·F = ∂u/∂x + ∂v/∂y + ∂w/∂z - - Parameters - ---------- - u_field : np.ndarray - Field component in x-direction - v_field : np.ndarray - Field component in y-direction - w_field : np.ndarray - Field component in z-direction - dx : float - Grid spacing in x-direction - dy : float - Grid spacing in y-direction - dz : float - Grid spacing in z-direction - - Returns - ------- - np.ndarray - Total divergence field - """ - div_x, div_y, div_z = compute_divergence_3d(u_field, v_field, w_field, dx, dy, dz) - return div_x + div_y + div_z - - -@njit(cache=True) -def finite_difference_1d(field, spacing, axis=0): - """ - Compute 1D finite difference along specified axis. - - Parameters - ---------- - field : np.ndarray - Input field - spacing : float - Grid spacing - axis : int, default=0 - Axis along which to compute difference - - Returns - ------- - np.ndarray - Finite difference result - """ - if field.ndim == 2: - if axis == 0: - return (field[1:, :] - field[:-1, :]) / spacing - elif axis == 1: - return (field[:, 1:] - field[:, :-1]) / spacing - else: - raise ValueError("axis must be 0 or 1 for 2D arrays") - elif field.ndim == 3: - if axis == 0: - return (field[1:, :, :] - field[:-1, :, :]) / spacing - elif axis == 1: - return (field[:, 1:, :] - field[:, :-1, :]) / spacing - elif axis == 2: - return (field[:, :, 1:] - field[:, :, :-1]) / spacing - else: - raise ValueError("axis must be 0, 1, or 2 for 3D arrays") - else: - raise ValueError("field must be 2D or 3D array") - - -# @njit -def average_to_centers_2d(field, axis): - """ - Average field values to cell centers along specified axis. - - Parameters - ---------- - field : np.ndarray - Input field (2D) - axis : int - Axis along which to average (0 or 1) - - Returns - ------- - np.ndarray - Averaged field - """ - if axis == 0: - return 0.5 * (field[:-1, :] + field[1:, :]) - elif axis == 1: - return 0.5 * (field[:, :-1] + field[:, 1:]) - else: - raise ValueError("axis must be 0 or 1 for 2D arrays") - - -# @njit -def average_to_centers_3d(field, axis): - """ - Average field values to cell centers along specified axis. - - Parameters - ---------- - field : np.ndarray - Input field (3D) - axis : int - Axis along which to average (0, 1, or 2) - - Returns - ------- - np.ndarray - Averaged field - """ - if axis == 0: - return 0.5 * (field[:-1, :, :] + field[1:, :, :]) - elif axis == 1: - return 0.5 * (field[:, :-1, :] + field[:, 1:, :]) - elif axis == 2: - return 0.5 * (field[:, :, :-1] + field[:, :, 1:]) - else: - raise ValueError("axis must be 0, 1, or 2 for 3D arrays") - - -@njit(cache=True) -def compute_gradient_2d(field, dx, dy): - """ - Compute 2D gradient: ∇φ = (∂φ/∂x, ∂φ/∂y) - - Parameters - ---------- - field : np.ndarray - Scalar field - dx : float - Grid spacing in x-direction - dy : float - Grid spacing in y-direction - - Returns - ------- - tuple - (grad_x, grad_y) - Gradient components - """ - grad_x = finite_difference_1d(field, dx, axis=0) - grad_y = finite_difference_1d(field, dy, axis=1) - - return grad_x, grad_y - - -@njit(cache=True) -def compute_gradient_3d(field, dx, dy, dz): - """ - Compute 3D gradient: ∇φ = (∂φ/∂x, ∂φ/∂y, ∂φ/∂z) - - Parameters - ---------- - field : np.ndarray - Scalar field - dx : float - Grid spacing in x-direction - dy : float - Grid spacing in y-direction - dz : float - Grid spacing in z-direction - - Returns - ------- - tuple - (grad_x, grad_y, grad_z) - Gradient components - """ - grad_x = finite_difference_1d(field, dx, axis=0) - grad_y = finite_difference_1d(field, dy, axis=1) - grad_z = finite_difference_1d(field, dz, axis=2) - - return grad_x, grad_y, grad_z - - -####### -# Compute gradient at nodes -####### - - -@njit(cache=True) -def _compute_grad_nodes_2d(p, dx, dy): - """Compute 2D gradient at nodes using corner averaging.""" - # Pre-computed signs for each corner - signs_x = np.array([-1.0, -1.0, +1.0, +1.0]) - signs_y = np.array([-1.0, +1.0, -1.0, +1.0]) - - # Initialize gradient components - Dpx = np.zeros((p.shape[0] - 1, p.shape[1] - 1)) - Dpy = np.zeros((p.shape[0] - 1, p.shape[1] - 1)) - - # Corner contributions - # Bottom-left - Dpx += signs_x[0] * p[0:-1, 0:-1] - Dpy += signs_y[0] * p[0:-1, 0:-1] - - # Bottom-right - Dpx += signs_x[1] * p[0:-1, 1:] - Dpy += signs_y[1] * p[0:-1, 1:] - - # Top-left - Dpx += signs_x[2] * p[1:, 0:-1] - Dpy += signs_y[2] * p[1:, 0:-1] - - # Top-right - Dpx += signs_x[3] * p[1:, 1:] - Dpy += signs_y[3] * p[1:, 1:] - - # Apply scaling factors - scale_factor = 0.5 ** (2 - 1) # 0.5^(ndim-1) - Dpx *= scale_factor / dx - Dpy *= scale_factor / dy - - return Dpx, Dpy - - -@njit(cache=True) -def _compute_grad_nodes_3d(p, dx, dy, dz): - """Compute 3D gradient at nodes using corner averaging.""" - # Pre-computed signs for each corner - signs_x = np.array([-1.0, -1.0, -1.0, -1.0, +1.0, +1.0, +1.0, +1.0]) - signs_y = np.array([-1.0, -1.0, +1.0, +1.0, -1.0, -1.0, +1.0, +1.0]) - signs_z = np.array([-1.0, +1.0, -1.0, +1.0, -1.0, +1.0, -1.0, +1.0]) - - # Initialize gradient components - Dpx = np.zeros((p.shape[0] - 1, p.shape[1] - 1, p.shape[2] - 1)) - Dpy = np.zeros((p.shape[0] - 1, p.shape[1] - 1, p.shape[2] - 1)) - Dpz = np.zeros((p.shape[0] - 1, p.shape[1] - 1, p.shape[2] - 1)) - - # Corner contributions (8 corners for 3D) - # Bottom-left-back - Dpx += signs_x[0] * p[0:-1, 0:-1, 0:-1] - Dpy += signs_y[0] * p[0:-1, 0:-1, 0:-1] - Dpz += signs_z[0] * p[0:-1, 0:-1, 0:-1] - - # Bottom-left-front - Dpx += signs_x[1] * p[0:-1, 0:-1, 1:] - Dpy += signs_y[1] * p[0:-1, 0:-1, 1:] - Dpz += signs_z[1] * p[0:-1, 0:-1, 1:] - - # Bottom-right-back - Dpx += signs_x[2] * p[0:-1, 1:, 0:-1] - Dpy += signs_y[2] * p[0:-1, 1:, 0:-1] - Dpz += signs_z[2] * p[0:-1, 1:, 0:-1] - - # Bottom-right-front - Dpx += signs_x[3] * p[0:-1, 1:, 1:] - Dpy += signs_y[3] * p[0:-1, 1:, 1:] - Dpz += signs_z[3] * p[0:-1, 1:, 1:] - - # Top-left-back - Dpx += signs_x[4] * p[1:, 0:-1, 0:-1] - Dpy += signs_y[4] * p[1:, 0:-1, 0:-1] - Dpz += signs_z[4] * p[1:, 0:-1, 0:-1] - - # Top-left-front - Dpx += signs_x[5] * p[1:, 0:-1, 1:] - Dpy += signs_y[5] * p[1:, 0:-1, 1:] - Dpz += signs_z[5] * p[1:, 0:-1, 1:] - - # Top-right-back - Dpx += signs_x[6] * p[1:, 1:, 0:-1] - Dpy += signs_y[6] * p[1:, 1:, 0:-1] - Dpz += signs_z[6] * p[1:, 1:, 0:-1] - - # Top-right-front - Dpx += signs_x[7] * p[1:, 1:, 1:] - Dpy += signs_y[7] * p[1:, 1:, 1:] - Dpz += signs_z[7] * p[1:, 1:, 1:] - - # Apply scaling factors - scale_factor = 0.5 ** (3 - 1) # 0.5^(ndim-1) - Dpx *= scale_factor / dx - Dpy *= scale_factor / dy - Dpz *= scale_factor / dz - - return Dpx, Dpy, Dpz - - -@njit(cache=True) -def compute_gradient_nodes_2d(p, dx, dy): - """ - Compute gradient at nodes using finite difference averaging. - - Parameters - ---------- - p : np.ndarray - Scalar field (2D) - dx : float - Grid spacing in x-direction - dy : float - Grid spacing in y-direction - - Returns - ------- - tuple - (grad_x, grad_y) - Gradient components at nodes - - Notes - ----- - The gradient is computed at nodes by averaging contributions from - all neighboring cells. Output arrays have shape (nx-1, ny-1). - """ - return _compute_grad_nodes_2d(p, dx, dy) - - -@njit(cache=True) -def compute_gradient_nodes_3d(p, dx, dy, dz): - """ - Compute gradient at nodes using finite difference averaging. - - Parameters - ---------- - p : np.ndarray - Scalar field (3D) - dx : float - Grid spacing in x-direction - dy : float - Grid spacing in y-direction - dz : float - Grid spacing in z-direction - - Returns - ------- - tuple - (grad_x, grad_y, grad_z) - Gradient components at nodes - - Notes - ----- - The gradient is computed at nodes by averaging contributions from - all neighboring cells. Output arrays have shape (nx-1, ny-1, nz-1). - """ - return _compute_grad_nodes_3d(p, dx, dy, dz) - - -def compute_gradient_nodes(p, ndim, dxy): - """ - Compute gradient at nodes using finite difference averaging. - - Parameters - ---------- - p : np.ndarray - Scalar field - ndim : int - Number of dimensions (2 or 3) - dxy : tuple - Grid spacings (dx, dy, dz) - - Returns - ------- - tuple - Gradient components at nodes. For 2D: (grad_x, grad_y, zeros) - For 3D: (grad_x, grad_y, grad_z) - - Notes - ----- - This is the main interface function that dispatches to the appropriate - dimension-specific implementation. Always returns 3 components for - consistency, with the z-component being zero for 2D cases. - """ - dx, dy, dz = dxy - - if ndim == 2: - grad_x, grad_y = compute_gradient_nodes_2d(p, dx, dy) - grad_z = np.zeros_like(grad_x) - return grad_x, grad_y, grad_z - elif ndim == 3: - return compute_gradient_nodes_3d(p, dx, dy, dz) - else: - raise ValueError(f"Unsupported dimension: {ndim}") diff --git a/src/pybella/flow_solver/physics/low_mach/__init__.py b/src/pybella/utils/operators/__init__.py similarity index 100% rename from src/pybella/flow_solver/physics/low_mach/__init__.py rename to src/pybella/utils/operators/__init__.py diff --git a/src/pybella/utils/operators/convolution.py b/src/pybella/utils/operators/convolution.py new file mode 100644 index 00000000..d2afe98a --- /dev/null +++ b/src/pybella/utils/operators/convolution.py @@ -0,0 +1,207 @@ +import numpy as np +import numba as nb +import scipy as sp +import functools + +# Configuration for directional convolutions +DIRECTION_CONFIG = { + 2: {"u": {"axis_swap": (0, -1)}, "v": {"axis_swap": None}}, + 3: { + "u": {"axis_swap": (0, -1)}, + "v": {"axis_swap": (-1, 0)}, + "w": {"axis_swap": None}, + }, +} + +@functools.lru_cache(maxsize=2) +def get_flux_kernels(ndim): + """Create convolution kernels for advective flux computation. + + Parameters + ---------- + ndim : int + Number of dimensions (2 or 3) + + Returns + ------- + dict + Dictionary containing kernels for each direction + + Notes + ----- + Results are cached since kernels don't change during computation. + """ + if ndim == 2: + kernel_u = np.array([[0.5, 1.0, 0.5], [0.5, 1.0, 0.5]]) + return {"u": kernel_u, "v": kernel_u.T} + elif ndim == 3: + kernel_u = np.array( + [[[1, 2, 1], [2, 4, 2], [1, 2, 1]], [[1, 2, 1], [2, 4, 2], [1, 2, 1]]] + ) + return { + "u": kernel_u, + "v": np.swapaxes(kernel_u, 1, 0), + "w": np.swapaxes(kernel_u, 2, 0), + } + else: + raise ValueError(f"Unsupported dimension: {ndim}") + + +@functools.lru_cache(maxsize=4) +def get_averaging_kernel(ndim, width=3, normalize=True): + """ + Create a generic averaging kernel for arbitrary dimensions. + + Parameters + ---------- + ndim : int + Number of dimensions (e.g., 2 or 3) + width : int, default=3 + Size of the kernel along each axis (can be even or odd) + normalize : bool, default=True + Whether to normalize the kernel to sum to 1 + + Returns + ------- + np.ndarray + Averaging kernel of shape (width,) * ndim + + Notes + ----- + - Odd widths result in centered kernels. + - Even widths are useful for staggered/grid-face averaging. + """ + shape = (width,) * ndim + kernel = np.ones(shape, dtype=np.float64) + + if normalize: + kernel /= kernel.size + + return kernel + + +@nb.njit(cache=True) +def _convolve_2d(data, kernel): + """Numba-compiled 2D convolution for better performance.""" + data_h, data_w = data.shape + kernel_h, kernel_w = kernel.shape + + result_h = data_h - kernel_h + 1 + result_w = data_w - kernel_w + 1 + result = np.zeros((result_h, result_w)) + + for i in range(result_h): + for j in range(result_w): + for ki in range(kernel_h): + for kj in range(kernel_w): + result[i, j] += data[i + ki, j + kj] * kernel[ki, kj] + + return result + + +@nb.njit(cache=True) +def _convolve_3d(data, kernel): + """Numba-compiled 3D convolution for better performance.""" + data_d, data_h, data_w = data.shape + kernel_d, kernel_h, kernel_w = kernel.shape + + result_d = data_d - kernel_d + 1 + result_h = data_h - kernel_h + 1 + result_w = data_w - kernel_w + 1 + result = np.zeros((result_d, result_h, result_w)) + + for i in range(result_d): + for j in range(result_h): + for k in range(result_w): + for ki in range(kernel_d): + for kj in range(kernel_h): + for kk in range(kernel_w): + result[i, j, k] += ( + data[i + ki, j + kj, k + kk] * kernel[ki, kj, kk] + ) + + return result + + +def apply_convolution_kernel( + data, kernel, normalize=True, axis_swap=None, use_numba=True +): + """Apply convolution kernel with optional normalization and axis swapping. + + Parameters + ---------- + data : np.ndarray + Input data array + kernel : np.ndarray + Convolution kernel + normalize : bool, default=True + Whether to normalize by kernel sum + axis_swap : tuple or None, default=None + Tuple of (from_axis, to_axis) for np.moveaxis + use_numba : bool, default=True + Whether to use Numba-compiled convolution (faster for repeated calls) + + Returns + ------- + np.ndarray + Convolved result + + Notes + ----- + For large arrays or single calls, scipy.signal.fftconvolve might be faster. + For repeated calls on smaller arrays, Numba convolution is typically faster. + """ + if use_numba and data.ndim in (2, 3): + if data.ndim == 2: + result = _convolve_2d(data, kernel) + else: # 3D + result = _convolve_3d(data, kernel) + else: + # Fallback to scipy for other dimensions or when requested + result = sp.signal.fftconvolve(data, kernel, mode="valid") + + if normalize: + result = result / kernel.sum() + + if axis_swap is not None: + result = np.moveaxis(result, axis_swap[0], axis_swap[1]) + + return result + + +def apply_directional_convolution( + data, kernel, direction, ndim, normalize=True, use_numba=True +): + """Apply convolution kernel for a specific direction with appropriate axis swapping. + + Parameters + ---------- + data : np.ndarray + Input data array + kernel : np.ndarray + Convolution kernel for the direction + direction : str + Direction ('u', 'v', or 'w') + ndim : int + Number of dimensions (2 or 3) + normalize : bool, default=True + Whether to normalize by kernel sum + use_numba : bool, default=True + Whether to use Numba-compiled convolution + + Returns + ------- + np.ndarray + Convolved result with appropriate axis swapping + """ + if direction not in DIRECTION_CONFIG[ndim]: + raise ValueError(f"Direction '{direction}' not supported for {ndim}D") + + config = DIRECTION_CONFIG[ndim][direction] + return apply_convolution_kernel( + data, + kernel, + normalize=normalize, + axis_swap=config["axis_swap"], + use_numba=use_numba, + ) diff --git a/src/pybella/utils/operators/divergence.py b/src/pybella/utils/operators/divergence.py new file mode 100644 index 00000000..8a5ad0f8 --- /dev/null +++ b/src/pybella/utils/operators/divergence.py @@ -0,0 +1,189 @@ +import numba as nb +from .. import options as opts +from . import finite_difference + +@nb.njit(cache=True) +def compute_2d(u_field, v_field, dx, dy): + """ + Compute 2D divergence: ∇·F = ∂u/∂x + ∂v/∂y + + Parameters + ---------- + u_field : np.ndarray + Field component in x-direction + v_field : np.ndarray + Field component in y-direction + dx : float + Grid spacing in x-direction + dy : float + Grid spacing in y-direction + + Returns + ------- + np.ndarray + Divergence field averaged to cell centers + """ + # X-direction: ∂u/∂x + div_x = finite_difference.do_1d(u_field, dx, axis=0) + # Average to y-cell centers + div_x = 0.5 * (div_x[:, :-1] + div_x[:, 1:]) + + # Y-direction: ∂v/∂y + div_y = finite_difference.do_1d(v_field, dy, axis=1) + # Average to x-cell centers + div_y = 0.5 * (div_y[:-1, :] + div_y[1:, :]) + + return div_x + div_y + + +@nb.njit(cache=True) +def compute_3d_components(u_field, v_field, w_field, dx, dy, dz): + """ + Compute 3D divergence: ∇·F = ∂u/∂x + ∂v/∂y + ∂w/∂z + + Parameters + ---------- + u_field : np.ndarray + Field component in x-direction + v_field : np.ndarray + Field component in y-direction + w_field : np.ndarray + Field component in z-direction + dx : float + Grid spacing in x-direction + dy : float + Grid spacing in y-direction + dz : float + Grid spacing in z-direction + + Returns + ------- + tuple + (div_x, div_y, div_z) - Individual divergence components + """ + # X-direction: ∂u/∂x + div_x = finite_difference.do_1d(u_field, dx, axis=0) + # Average to y-cell centers, then to z-faces + div_x = 0.5 * (div_x[:, :-1, :] + div_x[:, 1:, :]) + div_x = -0.5 * (div_x[:, :, :-1] + div_x[:, :, 1:]) # Note: negative from original + + # Y-direction: ∂v/∂y + div_y = finite_difference.do_1d(v_field, dy, axis=1) + # Average to x-cell centers, then to z-faces + div_y = 0.5 * (div_y[:-1, :, :] + div_y[1:, :, :]) + div_y = 0.5 * (div_y[:, :, :-1] + div_y[:, :, 1:]) + + # Z-direction: ∂w/∂z + div_z = finite_difference.do_1d(w_field, dz, axis=2) + # Average to cell centers + div_z = 0.5 * (div_z[:-1, :, :] + div_z[1:, :, :]) + div_z = 0.5 * (div_z[:, :-1, :] + div_z[:, 1:, :]) + + return div_x, div_y, div_z + + +@nb.njit(cache=True) +def compute_3d_sum(u_field, v_field, w_field, dx, dy, dz): + """ + Compute total 3D divergence: ∇·F = ∂u/∂x + ∂v/∂y + ∂w/∂z + + Parameters + ---------- + u_field : np.ndarray + Field component in x-direction + v_field : np.ndarray + Field component in y-direction + w_field : np.ndarray + Field component in z-direction + dx : float + Grid spacing in x-direction + dy : float + Grid spacing in y-direction + dz : float + Grid spacing in z-direction + + Returns + ------- + np.ndarray + Total divergence field + """ + div_x, div_y, div_z = compute_3d_components(u_field, v_field, w_field, dx, dy, dz) + return div_x + div_y + div_z + + +def compute_at_nodes(rhs, elem, sol, ud): + """Main divergence function - handles boundary conditions and calls JIT-compiled core.""" + ndim = elem.ndim + + # Handle boundary conditions + if not hasattr(ud, "ATMOSPHERIC_EXTENSION"): + if ( + ud.bdry_type[1] == opts.BdryType.WALL + or ud.bdry_type[1] == opts.BdryType.RAYLEIGH + ): + sol.rhou[:, :2, ...] = 0.0 + sol.rhov[:, :2, ...] = 0.0 + sol.rhow[:, :2, ...] = 0.0 + sol.rhou[:, -2:, ...] = 0.0 + sol.rhov[:, -2:, ...] = 0.0 + sol.rhow[:, -2:, ...] = 0.0 + + # Call appropriate JIT-compiled function + if ndim == 2: + rhs[:] = _momentum_pot_temp_divergence_2d_jit( + sol.rho, sol.rhou, sol.rhov, sol.rhoY, elem.dx, elem.dy + ) + else: + _momentum_pot_temp_divergence_3d_jit( + rhs, + sol.rho, + sol.rhou, + sol.rhov, + sol.rhow, + sol.rhoY, + elem.dx, + elem.dy, + elem.dz, + ) + + return rhs + + +@nb.njit(cache=True) +def _momentum_pot_temp_divergence_2d_jit(rho, rhou, rhov, rhoY, dx, dy): + """ + JIT-compiled 2D momentum-potential temperature divergence calculation. + Computes ∇·(ρu θ, ρv θ) where θ = ρY/ρ is the potential temperature. + """ + # Calculate potential temperature θ = ρY / ρ + theta = rhoY / rho + + # Compute momentum-potential temperature flux components + rhou_theta = rhou * theta # x-momentum flux weighted by potential temperature + rhov_theta = rhov * theta # y-momentum flux weighted by potential temperature + + # Use generic divergence operator + return compute_2d(rhou_theta, rhov_theta, dx, dy) + + +@nb.njit(cache=True) +def _momentum_pot_temp_divergence_3d_jit(rhs, rho, rhou, rhov, rhow, rhoY, dx, dy, dz): + """ + JIT-compiled 3D momentum-potential temperature divergence calculation. + Computes ∇·(ρu θ, ρv θ, ρw θ) where θ = ρY/ρ is the potential temperature. + """ + # Calculate potential temperature θ = ρY / ρ + theta = rhoY / rho + + # Compute momentum-potential temperature flux components + rhou_theta = rhou * theta # x-momentum flux weighted by potential temperature + rhov_theta = rhov * theta # y-momentum flux weighted by potential temperature + rhow_theta = rhow * theta # z-momentum flux weighted by potential temperature + + # Use generic total divergence operator + total_div = compute_3d_sum( + rhou_theta, rhov_theta, rhow_theta, dx, dy, dz + ) + + # Assign to inner region + rhs[1:-1, 1:-1, 1:-1] = total_div \ No newline at end of file diff --git a/src/pybella/utils/operators/finite_difference.py b/src/pybella/utils/operators/finite_difference.py new file mode 100644 index 00000000..6460c550 --- /dev/null +++ b/src/pybella/utils/operators/finite_difference.py @@ -0,0 +1,40 @@ +import numba as nb + + +@nb.njit(cache=True) +def do_1d(field, spacing, axis=0): + """ + Compute 1D finite difference along specified axis. + + Parameters + ---------- + field : np.ndarray + Input field + spacing : float + Grid spacing + axis : int, default=0 + Axis along which to compute difference + + Returns + ------- + np.ndarray + Finite difference result + """ + if field.ndim == 2: + if axis == 0: + return (field[1:, :] - field[:-1, :]) / spacing + elif axis == 1: + return (field[:, 1:] - field[:, :-1]) / spacing + else: + raise ValueError("axis must be 0 or 1 for 2D arrays") + elif field.ndim == 3: + if axis == 0: + return (field[1:, :, :] - field[:-1, :, :]) / spacing + elif axis == 1: + return (field[:, 1:, :] - field[:, :-1, :]) / spacing + elif axis == 2: + return (field[:, :, 1:] - field[:, :, :-1]) / spacing + else: + raise ValueError("axis must be 0, 1, or 2 for 3D arrays") + else: + raise ValueError("field must be 2D or 3D array") diff --git a/src/pybella/utils/operators/gradient.py b/src/pybella/utils/operators/gradient.py new file mode 100644 index 00000000..a6606d3d --- /dev/null +++ b/src/pybella/utils/operators/gradient.py @@ -0,0 +1,253 @@ +import numpy as np +import numba as nb +from . import finite_difference + + +@nb.njit(cache=True) +def compute_gradient_2d(field, dx, dy): + """ + Compute 2D gradient: ∇φ = (∂φ/∂x, ∂φ/∂y) + + Parameters + ---------- + field : np.ndarray + Scalar field + dx : float + Grid spacing in x-direction + dy : float + Grid spacing in y-direction + + Returns + ------- + tuple + (grad_x, grad_y) - Gradient components + """ + grad_x = finite_difference.do_1d(field, dx, axis=0) + grad_y = finite_difference.do_1d(field, dy, axis=1) + + return grad_x, grad_y + + +@nb.njit(cache=True) +def compute_gradient_3d(field, dx, dy, dz): + """ + Compute 3D gradient: ∇φ = (∂φ/∂x, ∂φ/∂y, ∂φ/∂z) + + Parameters + ---------- + field : np.ndarray + Scalar field + dx : float + Grid spacing in x-direction + dy : float + Grid spacing in y-direction + dz : float + Grid spacing in z-direction + + Returns + ------- + tuple + (grad_x, grad_y, grad_z) - Gradient components + """ + grad_x = finite_difference.do_1d(field, dx, axis=0) + grad_y = finite_difference.do_1d(field, dy, axis=1) + grad_z = finite_difference.do_1d(field, dz, axis=2) + + return grad_x, grad_y, grad_z + + +####### +# Compute gradient at nodes +####### + + +@nb.njit(cache=True) +def _compute_grad_nodes_2d(p, dx, dy): + """Compute 2D gradient at nodes using corner averaging.""" + # Pre-computed signs for each corner + signs_x = np.array([-1.0, -1.0, +1.0, +1.0]) + signs_y = np.array([-1.0, +1.0, -1.0, +1.0]) + + # Initialize gradient components + Dpx = np.zeros((p.shape[0] - 1, p.shape[1] - 1)) + Dpy = np.zeros((p.shape[0] - 1, p.shape[1] - 1)) + + # Corner contributions + # Bottom-left + Dpx += signs_x[0] * p[0:-1, 0:-1] + Dpy += signs_y[0] * p[0:-1, 0:-1] + + # Bottom-right + Dpx += signs_x[1] * p[0:-1, 1:] + Dpy += signs_y[1] * p[0:-1, 1:] + + # Top-left + Dpx += signs_x[2] * p[1:, 0:-1] + Dpy += signs_y[2] * p[1:, 0:-1] + + # Top-right + Dpx += signs_x[3] * p[1:, 1:] + Dpy += signs_y[3] * p[1:, 1:] + + # Apply scaling factors + scale_factor = 0.5 ** (2 - 1) # 0.5^(ndim-1) + Dpx *= scale_factor / dx + Dpy *= scale_factor / dy + + return Dpx, Dpy + + +@nb.njit(cache=True) +def _compute_grad_nodes_3d(p, dx, dy, dz): + """Compute 3D gradient at nodes using corner averaging.""" + # Pre-computed signs for each corner + signs_x = np.array([-1.0, -1.0, -1.0, -1.0, +1.0, +1.0, +1.0, +1.0]) + signs_y = np.array([-1.0, -1.0, +1.0, +1.0, -1.0, -1.0, +1.0, +1.0]) + signs_z = np.array([-1.0, +1.0, -1.0, +1.0, -1.0, +1.0, -1.0, +1.0]) + + # Initialize gradient components + Dpx = np.zeros((p.shape[0] - 1, p.shape[1] - 1, p.shape[2] - 1)) + Dpy = np.zeros((p.shape[0] - 1, p.shape[1] - 1, p.shape[2] - 1)) + Dpz = np.zeros((p.shape[0] - 1, p.shape[1] - 1, p.shape[2] - 1)) + + # Corner contributions (8 corners for 3D) + # Bottom-left-back + Dpx += signs_x[0] * p[0:-1, 0:-1, 0:-1] + Dpy += signs_y[0] * p[0:-1, 0:-1, 0:-1] + Dpz += signs_z[0] * p[0:-1, 0:-1, 0:-1] + + # Bottom-left-front + Dpx += signs_x[1] * p[0:-1, 0:-1, 1:] + Dpy += signs_y[1] * p[0:-1, 0:-1, 1:] + Dpz += signs_z[1] * p[0:-1, 0:-1, 1:] + + # Bottom-right-back + Dpx += signs_x[2] * p[0:-1, 1:, 0:-1] + Dpy += signs_y[2] * p[0:-1, 1:, 0:-1] + Dpz += signs_z[2] * p[0:-1, 1:, 0:-1] + + # Bottom-right-front + Dpx += signs_x[3] * p[0:-1, 1:, 1:] + Dpy += signs_y[3] * p[0:-1, 1:, 1:] + Dpz += signs_z[3] * p[0:-1, 1:, 1:] + + # Top-left-back + Dpx += signs_x[4] * p[1:, 0:-1, 0:-1] + Dpy += signs_y[4] * p[1:, 0:-1, 0:-1] + Dpz += signs_z[4] * p[1:, 0:-1, 0:-1] + + # Top-left-front + Dpx += signs_x[5] * p[1:, 0:-1, 1:] + Dpy += signs_y[5] * p[1:, 0:-1, 1:] + Dpz += signs_z[5] * p[1:, 0:-1, 1:] + + # Top-right-back + Dpx += signs_x[6] * p[1:, 1:, 0:-1] + Dpy += signs_y[6] * p[1:, 1:, 0:-1] + Dpz += signs_z[6] * p[1:, 1:, 0:-1] + + # Top-right-front + Dpx += signs_x[7] * p[1:, 1:, 1:] + Dpy += signs_y[7] * p[1:, 1:, 1:] + Dpz += signs_z[7] * p[1:, 1:, 1:] + + # Apply scaling factors + scale_factor = 0.5 ** (3 - 1) # 0.5^(ndim-1) + Dpx *= scale_factor / dx + Dpy *= scale_factor / dy + Dpz *= scale_factor / dz + + return Dpx, Dpy, Dpz + + +@nb.njit(cache=True) +def compute_gradient_nodes_2d(p, dx, dy): + """ + Compute gradient at nodes using finite difference averaging. + + Parameters + ---------- + p : np.ndarray + Scalar field (2D) + dx : float + Grid spacing in x-direction + dy : float + Grid spacing in y-direction + + Returns + ------- + tuple + (grad_x, grad_y) - Gradient components at nodes + + Notes + ----- + The gradient is computed at nodes by averaging contributions from + all neighboring cells. Output arrays have shape (nx-1, ny-1). + """ + return _compute_grad_nodes_2d(p, dx, dy) + + +@nb.njit(cache=True) +def compute_gradient_nodes_3d(p, dx, dy, dz): + """ + Compute gradient at nodes using finite difference averaging. + + Parameters + ---------- + p : np.ndarray + Scalar field (3D) + dx : float + Grid spacing in x-direction + dy : float + Grid spacing in y-direction + dz : float + Grid spacing in z-direction + + Returns + ------- + tuple + (grad_x, grad_y, grad_z) - Gradient components at nodes + + Notes + ----- + The gradient is computed at nodes by averaging contributions from + all neighboring cells. Output arrays have shape (nx-1, ny-1, nz-1). + """ + return _compute_grad_nodes_3d(p, dx, dy, dz) + + +def compute_at_nodes(p, ndim, dxy): + """ + Compute gradient at nodes using finite difference averaging. + + Parameters + ---------- + p : np.ndarray + Scalar field + ndim : int + Number of dimensions (2 or 3) + dxy : tuple + Grid spacings (dx, dy, dz) + + Returns + ------- + tuple + Gradient components at nodes. For 2D: (grad_x, grad_y, zeros) + For 3D: (grad_x, grad_y, grad_z) + + Notes + ----- + This is the main interface function that dispatches to the appropriate + dimension-specific implementation. Always returns 3 components for + consistency, with the z-component being zero for 2D cases. + """ + dx, dy, dz = dxy + + if ndim == 2: + grad_x, grad_y = compute_gradient_nodes_2d(p, dx, dy) + grad_z = np.zeros_like(grad_x) + return grad_x, grad_y, grad_z + elif ndim == 3: + return compute_gradient_nodes_3d(p, dx, dy, dz) + else: + raise ValueError(f"Unsupported dimension: {ndim}") diff --git a/src/pybella/utils/operators/laplacian/__init__.py b/src/pybella/utils/operators/laplacian/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/src/pybella/utils/operators/laplacian/lap2D_manual.py b/src/pybella/utils/operators/laplacian/lap2D_manual.py new file mode 100644 index 00000000..e0771849 --- /dev/null +++ b/src/pybella/utils/operators/laplacian/lap2D_manual.py @@ -0,0 +1,266 @@ +import numpy as np +import numba as nb +from ... import options as opts + +def get_linop(mpv, node, coriolis, diag_inv, ud): + dx = node.dx + dy = node.dy + + hplusx = mpv.wplus[0] + hplusy = mpv.wplus[1] + hcenter = mpv.wcenter + + coeffs = (hplusx.T, hplusy.T, hcenter.T) + + ### Need to clean this up, but the Numba stencil is used in the Helmholtz solve for radiative BC! + if hasattr(ud, "ATMOSPHERIC_EXTENSION") and ud.ATMOSPHERIC_EXTENSION: + y_atmosphere = True + else: + y_atmosphere = False + + ################### + x_wall = ud.bdry_type[0] == opts.BdryType.WALL + y_wall = ud.bdry_type[1] == opts.BdryType.WALL + + cor_slc = (slice(1, -1), slice(1, -1)) + coeff_slc = (slice(1, -1), slice(1, -1)) + + coeffs = ( + hplusx[coeff_slc].T.reshape( + -1, + ), + hplusy[coeff_slc].T.reshape( + -1, + ), + hcenter[node.i1].T.reshape( + -1, + ), + ) + + coriolis = ( + coriolis[0][cor_slc].reshape( + -1, + ), + coriolis[1][cor_slc].reshape( + -1, + ), + coriolis[2][cor_slc].reshape( + -1, + ), + coriolis[3][cor_slc].reshape( + -1, + ), + ) + + return lambda p: lap2D_gather( + p, + node.iicx, + node.iicy, + coeffs, + dx, + dy, + x_wall, + y_wall, + y_atmosphere, + diag_inv[node.i1].T.reshape( + -1, + ), + coriolis, + ) + + +@nb.njit(cache=True) +def lap2D_gather( + p, iicxn, iicyn, coeffs, dx, dy, x_wall, y_wall, y_atmosphere, diag_inv, coriolis +): + ngnc = (iicxn) * (iicyn) + lap = np.zeros((ngnc)) + cnt_x = 0 + cnt_y = 0 + + oodx = 1.0 / dx + oody = 1.0 / dy + cxx, cyy, cxy, cyx = coriolis + + hplusx, hplusy, hcenter = coeffs + + for idx in range(iicxn * iicyn): + nr_row = idx // iicxn + col_idx = idx - (nr_row * iicxn) + + ne_row_idx = nr_row * (iicxn + 1) + ne_col_idx = col_idx + ne_idx = ne_row_idx + ne_col_idx + + ne_topleft = ne_idx + ne_topright = ne_idx + 1 + ne_botleft = ne_idx + (iicxn + 1) + ne_botright = ne_idx + (iicxn + 1) + 1 + + # get indices of the 9pt stencil + topleft_idx = idx - iicxn - 1 + midleft_idx = idx - 1 + botleft_idx = idx + iicxn - 1 + + topmid_idx = idx - iicxn + midmid_idx = idx + botmid_idx = idx + iicxn + + topright_idx = idx - iicxn + 1 + midright_idx = idx + 1 + botright_idx = idx + iicxn + 1 + + if cnt_x == 0: + topleft_idx += iicxn - 1 + midleft_idx += iicxn - 1 + botleft_idx += iicxn - 1 + + if cnt_x == (iicxn - 1): + topright_idx -= iicxn - 1 + midright_idx -= iicxn - 1 + botright_idx -= iicxn - 1 + + val = 0 + + if cnt_y == 0: + if y_atmosphere: + topleft_idx += 2 * (iicxn - val) + topmid_idx += 2 * (iicxn - val) + topright_idx += 2 * (iicxn - val) + else: + topleft_idx += (iicxn) * (iicyn - 1) + topmid_idx += (iicxn) * (iicyn - 1) + topright_idx += (iicxn) * (iicyn - 1) + + if cnt_y == (iicyn - 1): + if y_atmosphere: + botleft_idx -= 2 * (iicxn - val) + botmid_idx -= 2 * (iicxn - val) + botright_idx -= 2 * (iicxn - val) + else: + botleft_idx -= (iicxn) * (iicyn - 1) + botmid_idx -= (iicxn) * (iicyn - 1) + botright_idx -= (iicxn) * (iicyn - 1) + + topleft = p[topleft_idx] + midleft = p[midleft_idx] + botleft = p[botleft_idx] + + topmid = p[topmid_idx] + midmid = p[midmid_idx] + botmid = p[botmid_idx] + + topright = p[topright_idx] + midright = p[midright_idx] + botright = p[botright_idx] + + hplusx_topleft = hplusx[ne_topleft] + hplusx_botleft = hplusx[ne_botleft] + hplusy_topleft = hplusy[ne_topleft] + hplusy_botleft = hplusy[ne_botleft] + + hplusx_topright = hplusx[ne_topright] + hplusx_botright = hplusx[ne_botright] + hplusy_topright = hplusy[ne_topright] + hplusy_botright = hplusy[ne_botright] + + cxx_tl = cxx[ne_topleft] + cxx_tr = cxx[ne_topright] + cxx_bl = cxx[ne_botleft] + cxx_br = cxx[ne_botright] + + cxy_tl = cxy[ne_topleft] + cxy_tr = cxy[ne_topright] + cxy_bl = cxy[ne_botleft] + cxy_br = cxy[ne_botright] + + cyx_tl = cyx[ne_topleft] + cyx_tr = cyx[ne_topright] + cyx_bl = cyx[ne_botleft] + cyx_br = cyx[ne_botright] + + cyy_tl = cyy[ne_topleft] + cyy_tr = cyy[ne_topright] + cyy_bl = cyy[ne_botleft] + cyy_br = cyy[ne_botright] + + if x_wall and (cnt_x == 0): + hplusx_topleft = 0.0 + hplusy_topleft = 0.0 + hplusx_botleft = 0.0 + hplusy_botleft = 0.0 + + if x_wall and (cnt_x == (iicxn - 1)): + hplusx_topright = 0.0 + hplusy_topright = 0.0 + hplusx_botright = 0.0 + hplusy_botright = 0.0 + + if y_wall and (cnt_y == 0): + if y_atmosphere: + pass + else: + hplusx_topleft = 0.0 + hplusy_topleft = 0.0 + hplusx_topright = 0.0 + hplusy_topright = 0.0 + + if y_wall and (cnt_y == (iicyn - 1)): + if y_atmosphere: + pass + else: + hplusx_botleft = 0.0 + hplusy_botleft = 0.0 + hplusx_botright = 0.0 + hplusy_botright = 0.0 + + Dx_tl = 0.5 * (topmid - topleft + midmid - midleft) * hplusx_topleft + Dx_tr = 0.5 * (topright - topmid + midright - midmid) * hplusx_topright + Dx_bl = 0.5 * (botmid - botleft + midmid - midleft) * hplusx_botleft + Dx_br = 0.5 * (botright - botmid + midright - midmid) * hplusx_botright + + Dy_tl = 0.5 * (midmid - topmid + midleft - topleft) * hplusy_topleft + Dy_tr = 0.5 * (midright - topright + midmid - topmid) * hplusy_topright + Dy_bl = 0.5 * (botmid - midmid + botleft - midleft) * hplusy_botleft + Dy_br = 0.5 * (botright - midright + botmid - midmid) * hplusy_botright + + fac = 1.0 + Dxx = ( + 0.5 + * (cxx_tr * Dx_tr - cxx_tl * Dx_tl + cxx_br * Dx_br - cxx_bl * Dx_bl) + * oodx + * oodx + * fac + ) + Dyy = ( + 0.5 + * (cyy_br * Dy_br - cyy_tr * Dy_tr + cyy_bl * Dy_bl - cyy_tl * Dy_tl) + * oody + * oody + * fac + ) + Dyx = ( + 0.5 + * (cxy_br * Dy_br - cxy_bl * Dy_bl + cxy_tr * Dy_tr - cxy_tl * Dy_tl) + * oody + * oodx + * fac + ) + Dxy = ( + 0.5 + * (cyx_br * Dx_br - cyx_tr * Dx_tr + cyx_bl * Dx_bl - cyx_tl * Dx_tl) + * oodx + * oody + * fac + ) + + lap[idx] = Dxx + Dyy + Dyx + Dxy + hcenter[idx] * p[idx] + + lap[idx] *= diag_inv[idx] + + cnt_x += 1 + if cnt_x % iicxn == 0: + cnt_y += 1 + cnt_x = 0 + + return lap diff --git a/src/pybella/utils/operators/laplacian/lap2D_numba.py b/src/pybella/utils/operators/laplacian/lap2D_numba.py new file mode 100644 index 00000000..b36d21d5 --- /dev/null +++ b/src/pybella/utils/operators/laplacian/lap2D_numba.py @@ -0,0 +1,203 @@ +import numpy as np +import numba as nb +from ... import options as opts + +def get_linop(mpv, node, coriolis, diag_inv, ud): + dx = node.dx + dy = node.dy + + hplusx = mpv.wplus[0] + hplusy = mpv.wplus[1] + hcenter = mpv.wcenter + + coeffs = [hplusx.T, hplusy.T, hcenter.T] + + shp = node.iisc + + dummy_p = np.zeros((node.isc[1], node.isc[0])) + + if hasattr(ud, "ATMOSPHERIC_EXTENSION") and ud.ATMOSPHERIC_EXTENSION: + boundary_handler = periodic_x_wall_y + else: + boundary_handler = periodic + + x_wall = ( + ud.bdry_type[0] == opts.BdryType.WALL + or ud.bdry_type[0] == opts.BdryType.RAYLEIGH + ) + y_wall = ( + ud.bdry_type[1] == opts.BdryType.WALL + or ud.bdry_type[1] == opts.BdryType.RAYLEIGH + ) + + if x_wall: + coeffs[0], coeffs[1] = apply_x_wall_boundary_coeffs(coeffs[0], coeffs[1]) + if y_wall: + coeffs[0], coeffs[1] = apply_y_wall_boundary_coeffs(coeffs[0], coeffs[1]) + + return lambda p: lap2D_generic( + p, dummy_p, dx, dy, coeffs, diag_inv.T, coriolis, shp, boundary_handler + ) + + +@nb.njit(cache=True) +def lap2D_generic(p, dp, dx, dy, coeffs, diag_inv, coriolis, shp, boundary_handler): + p = p.reshape(shp[1], shp[0]) + dp[1:-1, 1:-1] = p + + dp[...] = boundary_handler(dp) + dp[...] = kernel_9pt( + dp, + dx, + dy, + coeffs[0], + coeffs[1], + coeffs[2], + diag_inv, + coriolis[0], + coriolis[1], + coriolis[2], + coriolis[3], + ) + + return dp[1:-1, 1:-1].ravel() + + +@nb.njit(cache=True) +def periodic_x_wall_y(arr): + # periodic padding + arr[:, 0] = arr[:, -3] + arr[:, -1] = arr[:, 2] + + # wall padding + arr[0, :] = arr[2, :] + arr[-1, :] = arr[-3, :] + + return arr + + +@nb.njit(cache=True) +def periodic(arr): + """Apply periodic boundary conditions""" + arr[:, 0] = arr[:, -3] + arr[:, -1] = arr[:, 2] + arr[0, :] = arr[-3, :] + arr[-1, :] = arr[2, :] + + return arr + + +@nb.njit(cache=True) +def apply_x_wall_boundary_coeffs(hpx, hpy): + """Apply wall boundary conditions by modifying coefficients""" + hpx[:, 0] = 0.0 + hpy[:, 0] = 0.0 + hpx[:, -1] = 0.0 + hpy[:, -1] = 0.0 + hpx[:, 1] = 0.0 + hpy[:, 1] = 0.0 + hpx[:, -2] = 0.0 + hpy[:, -2] = 0.0 + + return hpx, hpy + + +@nb.njit(cache=True) +def apply_y_wall_boundary_coeffs(hpx, hpy): + """Apply wall boundary conditions by modifying coefficients""" + hpx[0, :] = 0.0 + hpy[0, :] = 0.0 + hpx[-1, :] = 0.0 + hpy[-1, :] = 0.0 + hpx[1, :] = 0.0 + hpy[1, :] = 0.0 + hpx[-2, :] = 0.0 + hpy[-2, :] = 0.0 + + return hpx, hpy + + +@nb.stencil +def kernel_9pt(a, dx, dy, hpx, hpy, hpc, diag_inv, cxx, cyy, cxy, cyx): + oodx = 1.0 / dx + oody = 1.0 / dy + + topleft = a[1, -1] + topmid = a[1, 0] + topright = a[1, 1] + + midleft = a[0, -1] + midmid = a[0, 0] + midright = a[0, 1] + + botleft = a[-1, -1] + botmid = a[-1, 0] + botright = a[-1, 1] + + hpx_bl = hpx[0, 0] + hpx_br = hpx[0, 1] + hpx_tl = hpx[1, 0] + hpx_tr = hpx[1, 1] + + hpy_bl = hpy[0, 0] + hpy_br = hpy[0, 1] + hpy_tl = hpy[1, 0] + hpy_tr = hpy[1, 1] + + cxx_bl = cxx[0, 0] + cxx_br = cxx[0, 1] + cxx_tl = cxx[1, 0] + cxx_tr = cxx[1, 1] + + cyy_bl = cyy[0, 0] + cyy_br = cyy[0, 1] + cyy_tl = cyy[1, 0] + cyy_tr = cyy[1, 1] + + cxy_bl = cxy[0, 0] + cxy_br = cxy[0, 1] + cxy_tl = cxy[1, 0] + cxy_tr = cxy[1, 1] + + cyx_bl = cyx[0, 0] + cyx_br = cyx[0, 1] + cyx_tl = cyx[1, 0] + cyx_tr = cyx[1, 1] + + Dx_tl = 0.5 * (topmid - topleft + midmid - midleft) * hpx_tl + Dx_tr = 0.5 * (topright - topmid + midright - midmid) * hpx_tr + Dx_bl = 0.5 * (botmid - botleft + midmid - midleft) * hpx_bl + Dx_br = 0.5 * (botright - botmid + midright - midmid) * hpx_br + + Dy_tl = 0.5 * (topmid - midmid + topleft - midleft) * hpy_tl + Dy_tr = 0.5 * (topright - midright + topmid - midmid) * hpy_tr + Dy_bl = 0.5 * (midmid - botmid + midleft - botleft) * hpy_bl + Dy_br = 0.5 * (midright - botright + midmid - botmid) * hpy_br + + Dxx = ( + 0.5 + * (cxx_tr * Dx_tr - cxx_tl * Dx_tl + cxx_br * Dx_br - cxx_bl * Dx_bl) + * oodx + * oodx + ) + Dyy = ( + 0.5 + * (cyy_tr * Dy_tr - cyy_br * Dy_br + cyy_tl * Dy_tl - cyy_bl * Dy_bl) + * oody + * oody + ) + Dyx = ( + 0.5 + * (cxy_br * Dy_br - cxy_bl * Dy_bl + cxy_tr * Dy_tr - cxy_tl * Dy_tl) + * oody + * oodx + ) + Dxy = ( + 0.5 + * (cyx_tr * Dx_tr - cyx_br * Dx_br + cyx_tl * Dx_tl - cyx_bl * Dx_bl) + * oodx + * oody + ) + + return ((Dxx + Dyy + Dyx + Dxy) + hpc[0, 0] * a[0, 0]) * diag_inv[0, 0] + diff --git a/src/pybella/utils/operators/laplacian/lap3D.py b/src/pybella/utils/operators/laplacian/lap3D.py new file mode 100644 index 00000000..31540ad6 --- /dev/null +++ b/src/pybella/utils/operators/laplacian/lap3D.py @@ -0,0 +1,257 @@ +import numba as nb + +def get_linop(elem, node, mpv, ud, diag_inv, dt): + oodxyz = node.dxyz + oodxyz = 1.0 / (oodxyz**2) + oodx2, oody2, oodz2 = oodxyz[0], oodxyz[1], oodxyz[2] + odx, odz = 1.0 / node.dx, 1.0 / node.dz + + i0 = (slice(0, -1), slice(0, -1), slice(0, -1)) + i1 = (slice(1, -1), slice(1, -1), slice(1, -1)) + i2 = (slice(2, -2), slice(2, -2), slice(2, -2)) + + ndim = elem.ndim + periodicity = np.empty(ndim, dtype="int") + for dim in range(ndim): + periodicity[dim] = ud.bdry_type[dim] == opts.BdryType.PERIODIC + + hplusx = mpv.wplus[0][i0][i1] + hplusy = mpv.wplus[1][i0][i1] + hplusz = mpv.wplus[2][i0][i1] + + hcenter = mpv.wcenter[i2] + diag_inv = diag_inv[i1] + + corrf = dt * ud.coriolis_strength[0] + + return lambda p: lap3D( + p, + hplusx, + hplusy, + hplusz, + hcenter, + oodx2, + oody2, + oodz2, + periodicity, + diag_inv, + corrf, + odx, + odz, + ) + + +@nb.jit(nopython=True, cache=False, nogil=False) +def lap3D( + p0, + hplusx, + hplusy, + hplusz, + hcenter, + oodx2, + oody2, + oodz2, + periodicity, + diag_inv, + corrf, + odx, + odz, +): + shx, shy, shz = hcenter.shape + p = p0.reshape(shz + 2, shy + 2, shx + 2) + + coeff = 1.0 / 16 + lap = np.zeros_like(p) + + # cut out four cubes from the 3d array corresponding to the nodes... in each axial direction. + toplefts = [ + (slice(0, None), slice(0, -1), slice(0, -1)), + (slice(0, -1), slice(0, None), slice(0, -1)), + (slice(0, -1), slice(0, -1), slice(0, None)), + ] + toprights = [ + (slice(0, None), slice(0, -1), slice(1, None)), + (slice(1, None), slice(0, None), slice(0, -1)), + (slice(0, -1), slice(1, None), slice(0, None)), + ] + + botlefts = [ + (slice(0, None), slice(1, None), slice(0, -1)), + (slice(0, -1), slice(0, None), slice(1, None)), + (slice(1, None), slice(0, -1), slice(0, None)), + ] + botrights = [ + (slice(0, None), slice(1, None), slice(1, None)), + (slice(1, None), slice(0, None), slice(1, None)), + (slice(1, None), slice(1, None), slice(0, None)), + ] + + cnt = 0 + for bc in periodicity: + if bc == True and cnt == 0: + tmp = p[1, :, :] + p[0, :, :] = p[-3, :, :] + p[-1, :, :] = p[2, :, :] + p[1, :, :] = p[-2, :, :] + p[-2, :, :] = tmp + elif bc == False and cnt == 0: + hplusx[0, :, :] = 0.0 + hplusx[-1, :, :] = 0.0 + hplusy[0, :, :] = 0.0 + hplusy[-1, :, :] = 0.0 + hplusz[0, :, :] = 0.0 + hplusz[-1, :, :] = 0.0 + if bc == True and cnt == 1: + tmp = p[:, 1, :] + p[:, 0, :] = p[:, -3, :] + p[:, -1, :] = p[:, 2, :] + p[:, 1, :] = p[:, -2, :] + p[:, -2, :] = tmp + elif bc == False and cnt == 1: + hplusx[:, 0, :] = 0.0 + hplusx[:, -1, :] = 0.0 + hplusy[:, 0, :] = 0.0 + hplusy[:, -1, :] = 0.0 + hplusz[:, 0, :] = 0.0 + hplusz[:, -1, :] = 0.0 + if bc == True and cnt == 2: + tmp = p[:, :, 1] + p[:, :, 0] = p[:, :, -3] + p[:, :, -1] = p[:, :, 2] + p[:, :, 1] = p[:, :, -2] + p[:, :, -2] = tmp + elif bc == False and cnt == 2: + hplusx[:, :, 0] = 0.0 + hplusx[:, :, -1] = 0.0 + hplusy[:, :, 0] = 0.0 + hplusy[:, :, -1] = 0.0 + hplusz[:, :, 0] = 0.0 + hplusz[:, :, -1] = 0.0 + cnt += 1 + + leftz = p[:, :, :-1] + rightz = p[:, :, 1:] + + z_fluxes = rightz - leftz + + lefty = p[:, :-1, :] + righty = p[:, 1:, :] + + y_fluxes = righty - lefty + + leftx = p[:-1, :, :] + rightx = p[1:, :, :] + + x_fluxes = rightx - leftx + + x_flx = ( + x_fluxes[toplefts[0]] + + x_fluxes[toprights[0]] + + x_fluxes[botlefts[0]] + + x_fluxes[botrights[0]] + ) + y_flx = ( + y_fluxes[toplefts[1]] + + y_fluxes[toprights[1]] + + y_fluxes[botlefts[1]] + + y_fluxes[botrights[1]] + ) + z_flx = ( + z_fluxes[toplefts[2]] + + z_fluxes[toprights[2]] + + z_fluxes[botlefts[2]] + + z_fluxes[botrights[2]] + ) + + hxzp = hplusx * z_flx + hxzpm = hxzp[:-1, :, :] + hxzpm = ( + hxzpm[toplefts[0]] + + hxzpm[toprights[0]] + + hxzpm[botlefts[0]] + + hxzpm[botrights[0]] + ) + hxzpp = hxzp[1:, :, :] + hxzpp = ( + hxzpp[toplefts[0]] + + hxzpp[toprights[0]] + + hxzpp[botlefts[0]] + + hxzpp[botrights[0]] + ) + + hzxp = hplusz * x_flx + hzxpm = hzxp[:, :, :-1] + hzxpm = ( + hzxpm[toplefts[2]] + + hzxpm[toprights[2]] + + hzxpm[botlefts[2]] + + hzxpm[botrights[2]] + ) + hzxpp = hzxp[:, :, 1:] + hzxpp = ( + hzxpp[toplefts[2]] + + hzxpp[toprights[2]] + + hzxpp[botlefts[2]] + + hzxpp[botrights[2]] + ) + + x_flx = hplusx * x_flx + x_flxm = x_flx[:-1, :, :] + x_flxm = ( + x_flxm[toplefts[0]] + + x_flxm[toprights[0]] + + x_flxm[botlefts[0]] + + x_flxm[botrights[0]] + ) + x_flxp = x_flx[1:, :, :] + x_flxp = ( + x_flxp[toplefts[0]] + + x_flxp[toprights[0]] + + x_flxp[botlefts[0]] + + x_flxp[botrights[0]] + ) + + y_flx = hplusy * y_flx + y_flxm = y_flx[:, :-1, :] + y_flxm = ( + y_flxm[toplefts[1]] + + y_flxm[toprights[1]] + + y_flxm[botlefts[1]] + + y_flxm[botrights[1]] + ) + y_flxp = y_flx[:, 1:, :] + y_flxp = ( + y_flxp[toplefts[1]] + + y_flxp[toprights[1]] + + y_flxp[botlefts[1]] + + y_flxp[botrights[1]] + ) + + z_flx = hplusz * z_flx + z_flxm = z_flx[:, :, :-1] + z_flxm = ( + z_flxm[toplefts[2]] + + z_flxm[toprights[2]] + + z_flxm[botlefts[2]] + + z_flxm[botrights[2]] + ) + z_flxp = z_flx[:, :, 1:] + z_flxp = ( + z_flxp[toplefts[2]] + + z_flxp[toprights[2]] + + z_flxp[botlefts[2]] + + z_flxp[botrights[2]] + ) + + lap[1:-1, 1:-1, 1:-1] = ( + oodx2 * coeff * (-x_flxm + x_flxp) + + oody2 * coeff * (-y_flxm + y_flxp) + + oodz2 * coeff * (-z_flxm + z_flxp) + + +1.0 * odx * odz * coeff * corrf * (hxzpp - hxzpm) + + -1.0 * odx * odz * coeff * corrf * (hzxpp - hzxpm) + + hcenter * p[1:-1, 1:-1, 1:-1] + ) + + lap = lap * diag_inv + + return lap \ No newline at end of file diff --git a/src/pybella/utils/operators/laplacian/preconditioner.py b/src/pybella/utils/operators/laplacian/preconditioner.py new file mode 100644 index 00000000..0e7830d7 --- /dev/null +++ b/src/pybella/utils/operators/laplacian/preconditioner.py @@ -0,0 +1,47 @@ +from .. import convolution + +def prepare_diag(mpv, node): + """Highly optimized version with minimal function calls.""" + ndim = node.ndim + + coeff = 0.75 if ndim == 2 else 0.0625 if ndim == 3 else None + if coeff is None: + raise ValueError(f"Unsupported ndim: {ndim}") + + dx, dy, dz = node.dx, node.dy, node.dz + inv_dx2, inv_dy2 = 1.0 / (dx**2), 1.0 / (dy**2) + + diag_kernel = convolution.get_averaging_kernel(ndim, width=2) + + diag = mpv.wcenter.copy() + + # Main diagonal terms + diag -= ( + coeff * inv_dx2 * convolution.apply_convolution_kernel(mpv.wplus[0], diag_kernel) + ) + diag -= ( + coeff * inv_dy2 * convolution.apply_convolution_kernel(mpv.wplus[1], diag_kernel) + ) + + if ndim == 2: + # Cross terms + inv_dxdy = 1.0 / (dx * dy) + diag -= ( + coeff + * inv_dxdy + * convolution.apply_convolution_kernel(mpv.wplus[0], diag_kernel) + ) + diag -= ( + coeff + * inv_dxdy + * convolution.apply_convolution_kernel(mpv.wplus[1], diag_kernel) + ) + elif ndim == 3: + inv_dz2 = 1.0 / (dz**2) + diag -= ( + coeff + * inv_dz2 + * convolution.apply_convolution_kernel(mpv.wplus[2], diag_kernel) + ) + + return 1.0 / diag \ No newline at end of file From 3cdfa0d7e5d106b38e793036da153e8560192c24 Mon Sep 17 00:00:00 2001 From: raychew Date: Tue, 17 Jun 2025 17:42:06 -0700 Subject: [PATCH 18/35] optimisation attempt for coriolis.py --- src/pybella/flow_solver/numerics/coriolis.py | 50 ++++++++++++-------- 1 file changed, 31 insertions(+), 19 deletions(-) diff --git a/src/pybella/flow_solver/numerics/coriolis.py b/src/pybella/flow_solver/numerics/coriolis.py index ce9b7fa6..5ada6ba6 100644 --- a/src/pybella/flow_solver/numerics/coriolis.py +++ b/src/pybella/flow_solver/numerics/coriolis.py @@ -1,5 +1,6 @@ import numba as nb + # Refactored main function def multiply_inverse_terms( Vec, mem, ud, dt, attrs=("rhou", "rhov", "rhow"), get_coeffs=False @@ -13,26 +14,34 @@ def multiply_inverse_terms( strat = mem.mpv.HydroState_n.get_dSdy(mem.elem, mem.node) Y = mem.sol.rhoY / mem.sol.rho nu = -(dt**2) * (g / Msq) * strat * Y + shp = nu.shape + + # initialise Coriolis cache is not already done + h11, h12, h13, h21, h22, h23, h31, h32, h33, denom = mem.cache.get_coriolis_array_views(shp) - # Get vector components + # Get vector components by view VecU = getattr(Vec, attrs[0]) VecV = getattr(Vec, attrs[1]) VecW = getattr(Vec, attrs[2]) U, V, W = mem.cache.get_velocity_array_views(VecU.shape) - _apply_coriolis_matrix_inplace(VecU, VecV, VecW, U, V, W, wh1, wh2, wv, nu, nonhydro) + _apply_coriolis_matrix_inplace( + h11, h12, h13, h21, h22, h23, h31, h32, h33, denom, + VecU, VecV, VecW, U, V, W, wh1, wh2, wv, nu, nonhydro + ) # Return coefficients if get_coeffs: - h11, h12, _, h21, h22, _, _, _, _ = _compute_coriolis_coefficients( - wh1, wh2, wv, nu, nonhydro + # For 2D only + h11, h12, _, h21, h22, _, _, _, _, _ = mem.cache.get_coriolis_array_views( + shp ) return (h11.T, h22.T, h12.T, h21.T) - + @nb.njit(cache=True) -def _compute_coriolis_coefficients(wh1, wh2, wv, nu, nonhydro): +def _compute_coriolis_coefficients(h11, h12, h13, h21, h22, h23, h31, h32, h33, denom, wh1, wh2, wv, nu, nonhydro): """Compute coefficients for the H^-1 matrix multiplication. This corresponds to equation (C11) in the mathematical formulation. @@ -44,28 +53,30 @@ def _compute_coriolis_coefficients(wh1, wh2, wv, nu, nonhydro): nu_nh = nu + nonhydro # Denominator (det(H)) - denom = 1.0 / (wh1_sq + wh2_sq + nu_nh * (wv_sq + 1.0)) + denom[...] = 1.0 / (wh1_sq + wh2_sq + nu_nh * (wv_sq + 1.0)) # H^-1 matrix elements (row-major order) # Row 1: U equation coefficients - h11 = (wh1_sq + nu_nh) * denom - h12 = nonhydro * (wh1 * wv + wh2) * denom - h13 = (wh1 * wh2 - nu_nh * wv) * denom + h11[...] = (wh1_sq + nu_nh) * denom + h12[...] = nonhydro * (wh1 * wv + wh2) * denom + h13[...] = (wh1 * wh2 - nu_nh * wv) * denom # Row 2: V equation coefficients - h21 = (wh1 * wv - wh2) * denom - h22 = nonhydro * (1.0 + wv_sq) * denom - h23 = (wh2 * wv + wh1) * denom + h21[...] = (wh1 * wv - wh2) * denom + h22[...] = nonhydro * (1.0 + wv_sq) * denom + h23[...] = (wh2 * wv + wh1) * denom # Row 3: W equation coefficients - h31 = (wh1 * wh2 + nu_nh * wv) * denom - h32 = nonhydro * (wh2 * wv - wh1) * denom - h33 = (nu_nh + wh2_sq) * denom + h31[...] = (wh1 * wh2 + nu_nh * wv) * denom + h32[...] = nonhydro * (wh2 * wv - wh1) * denom + h33[...] = (nu_nh + wh2_sq) * denom return h11, h12, h13, h21, h22, h23, h31, h32, h33 + @nb.njit(cache=True) def _apply_coriolis_matrix_inplace( + h11, h12, h13, h21, h22, h23, h31, h32, h33, denom, u_vec, v_vec, w_vec, U, V, W, wh1, wh2, wv, nu, nonhydro ): """Apply H^-1 matrix multiplication in-place. @@ -73,8 +84,9 @@ def _apply_coriolis_matrix_inplace( Corresponds to the equation: U^{n+1} = H^{-1}(U^{n*} - Δt_{cp}(Pθ)^* ∇π^{n+1}) """ # Get matrix coefficients - h11, h12, h13, h21, h22, h23, h31, h32, h33 = _compute_coriolis_coefficients( - wh1, wh2, wv, nu, nonhydro + _compute_coriolis_coefficients( + h11, h12, h13, h21, h22, h23, h31, h32, h33, + denom, wh1, wh2, wv, nu, nonhydro ) U[...] = u_vec @@ -84,4 +96,4 @@ def _apply_coriolis_matrix_inplace( # Matrix multiplication: [U_new, V_new, W_new] = H^-1 @ [U_old, V_old, W_old] u_vec[...] = h11 * U + h12 * V + h13 * W v_vec[...] = h21 * U + h22 * V + h23 * W - w_vec[...] = h31 * U + h32 * V + h33 * W \ No newline at end of file + w_vec[...] = h31 * U + h32 * V + h33 * W From 445cec95aed920240fa54d6bd52afcc418b21a0c Mon Sep 17 00:00:00 2001 From: raychew Date: Tue, 17 Jun 2025 18:05:02 -0700 Subject: [PATCH 19/35] attempt at optimising lap2D_manual --- .../utils/operators/laplacian/lap2D_manual.py | 53 +++++++------------ 1 file changed, 18 insertions(+), 35 deletions(-) diff --git a/src/pybella/utils/operators/laplacian/lap2D_manual.py b/src/pybella/utils/operators/laplacian/lap2D_manual.py index e0771849..3122555a 100644 --- a/src/pybella/utils/operators/laplacian/lap2D_manual.py +++ b/src/pybella/utils/operators/laplacian/lap2D_manual.py @@ -2,17 +2,11 @@ import numba as nb from ... import options as opts + def get_linop(mpv, node, coriolis, diag_inv, ud): dx = node.dx dy = node.dy - hplusx = mpv.wplus[0] - hplusy = mpv.wplus[1] - hcenter = mpv.wcenter - - coeffs = (hplusx.T, hplusy.T, hcenter.T) - - ### Need to clean this up, but the Numba stencil is used in the Helmholtz solve for radiative BC! if hasattr(ud, "ATMOSPHERIC_EXTENSION") and ud.ATMOSPHERIC_EXTENSION: y_atmosphere = True else: @@ -25,32 +19,23 @@ def get_linop(mpv, node, coriolis, diag_inv, ud): cor_slc = (slice(1, -1), slice(1, -1)) coeff_slc = (slice(1, -1), slice(1, -1)) - coeffs = ( - hplusx[coeff_slc].T.reshape( - -1, - ), - hplusy[coeff_slc].T.reshape( - -1, - ), - hcenter[node.i1].T.reshape( - -1, - ), - ) + # Coefficient extraction + hplusx = np.ravel(mpv.wplus[0][coeff_slc], order="F") + hplusy = np.ravel(mpv.wplus[1][coeff_slc], order="F") + hcenter = np.ravel(mpv.wcenter[node.i1], order="F") - coriolis = ( - coriolis[0][cor_slc].reshape( - -1, - ), - coriolis[1][cor_slc].reshape( - -1, - ), - coriolis[2][cor_slc].reshape( - -1, - ), - coriolis[3][cor_slc].reshape( - -1, - ), - ) + # Coriolis terms + cxx = np.ravel(coriolis[0][cor_slc], order="F") + cyy = np.ravel(coriolis[1][cor_slc], order="F") + cxy = np.ravel(coriolis[2][cor_slc], order="F") + cyx = np.ravel(coriolis[3][cor_slc], order="F") + + # Diagonal inverse + dinv = np.ravel(diag_inv[node.i1], order="F") + + # Pack as tuples + coeffs = (hplusx, hplusy, hcenter) + coriolis = (cxx, cyy, cxy, cyx) return lambda p: lap2D_gather( p, @@ -62,9 +47,7 @@ def get_linop(mpv, node, coriolis, diag_inv, ud): x_wall, y_wall, y_atmosphere, - diag_inv[node.i1].T.reshape( - -1, - ), + dinv, coriolis, ) From 437812e23c58184d524e55e7dd81dd52db01899b Mon Sep 17 00:00:00 2001 From: raychew Date: Tue, 17 Jun 2025 18:09:38 -0700 Subject: [PATCH 20/35] attempt at optimising lap2D_manual; bug fix --- src/pybella/utils/operators/laplacian/lap2D_manual.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/pybella/utils/operators/laplacian/lap2D_manual.py b/src/pybella/utils/operators/laplacian/lap2D_manual.py index 3122555a..ea8b348d 100644 --- a/src/pybella/utils/operators/laplacian/lap2D_manual.py +++ b/src/pybella/utils/operators/laplacian/lap2D_manual.py @@ -25,10 +25,10 @@ def get_linop(mpv, node, coriolis, diag_inv, ud): hcenter = np.ravel(mpv.wcenter[node.i1], order="F") # Coriolis terms - cxx = np.ravel(coriolis[0][cor_slc], order="F") - cyy = np.ravel(coriolis[1][cor_slc], order="F") - cxy = np.ravel(coriolis[2][cor_slc], order="F") - cyx = np.ravel(coriolis[3][cor_slc], order="F") + cxx = np.ravel(coriolis[0][cor_slc], order="C") + cyy = np.ravel(coriolis[1][cor_slc], order="C") + cxy = np.ravel(coriolis[2][cor_slc], order="C") + cyx = np.ravel(coriolis[3][cor_slc], order="C") # Diagonal inverse dinv = np.ravel(diag_inv[node.i1], order="F") From 6ab1dc12a564f73b4aeabbe5a79eb6aacac8ee69 Mon Sep 17 00:00:00 2001 From: raychew Date: Tue, 17 Jun 2025 18:10:19 -0700 Subject: [PATCH 21/35] added cache for coriolis temporary arrays --- src/pybella/flow_solver/utils/cache.py | 44 ++++++++++++++++++++------ 1 file changed, 34 insertions(+), 10 deletions(-) diff --git a/src/pybella/flow_solver/utils/cache.py b/src/pybella/flow_solver/utils/cache.py index 1357bb2e..432117d1 100644 --- a/src/pybella/flow_solver/utils/cache.py +++ b/src/pybella/flow_solver/utils/cache.py @@ -3,6 +3,7 @@ from . import fields + class Characters(object): """ Data container for the slope and amplitude of the interpolation to the faces for the Riemann solver. @@ -51,6 +52,7 @@ class FlowSolverCache: def __init__(self): self._recovery_cache = {} self._velocity_cache = {} + self._coriolis_cache = {} def get_recovery_objects(self, shape, ud): """Get cached recovery objects or create new ones.""" @@ -66,11 +68,7 @@ def get_recovery_objects(self, shape, ud): "Slopes": Characters(shape), } - # Reset objects if they have reset methods cache_obj = self._recovery_cache[cache_key] - # for obj in cache_obj.values(): - # if hasattr(obj, 'zero'): - # obj.zero() return cache_obj @@ -87,10 +85,7 @@ def get_velocity_arrays(self, shape, dtype=np.float64): "W": np.zeros(shape, dtype=dtype), } - # Clear arrays for reuse cache_obj = self._velocity_cache[cache_key] - # for arr in cache_obj.values(): - # arr.fill(0.0) return cache_obj @@ -99,12 +94,41 @@ def get_velocity_array_views(self, shape, dtype=np.float64): cache_obj = self.get_velocity_arrays(shape, dtype) return cache_obj["U"], cache_obj["V"], cache_obj["W"] + + def get_coriolis_arrays(self, shape, dtype=np.float64): + """Get cached Coriolis arrays (h11, h12, h13, h21, h22, h23, h31, h32, h33) or create new ones.""" - def clear_velocity_cache(self): - """Clear velocity cache to free memory.""" - self._velocity_cache.clear() + cache_key = (tuple(shape), dtype) + + if cache_key not in self._coriolis_cache: + logging.info("Cache: Creating new Coriolis arrays with shape %s", shape) + self._coriolis_cache[cache_key] = { + "h11": np.zeros(shape, dtype=dtype), + "h12": np.zeros(shape, dtype=dtype), + "h13": np.zeros(shape, dtype=dtype), + "h21": np.zeros(shape, dtype=dtype), + "h22": np.zeros(shape, dtype=dtype), + "h23": np.zeros(shape, dtype=dtype), + "h31": np.zeros(shape, dtype=dtype), + "h32": np.zeros(shape, dtype=dtype), + "h33": np.zeros(shape, dtype=dtype), + "denom": np.zeros(shape, dtype=dtype), + } + + cache_obj = self._coriolis_cache[cache_key] + + return cache_obj + + def get_coriolis_array_views(self, shape, dtype=np.float64): + """Get views of cached Coriolis arrays for in-place operations.""" + cache_obj = self.get_coriolis_arrays(shape, dtype) + + return cache_obj["h11"], cache_obj["h12"], cache_obj["h13"], cache_obj["h21"], cache_obj["h22"], cache_obj["h23"], cache_obj["h31"], cache_obj["h32"], cache_obj["h33"], cache_obj["denom"] def clear_all(self): """Clear all caches to free memory.""" self._recovery_cache.clear() self._velocity_cache.clear() + + + From 133732b60a85d287309ffb3ee7ebc47247e0343e Mon Sep 17 00:00:00 2001 From: raychew Date: Tue, 17 Jun 2025 18:10:45 -0700 Subject: [PATCH 22/35] black all --- src/pybella/flow_solver/numerics/coriolis.py | 61 +++++++++++++++---- .../explicit_advection/advective_flux.py | 2 +- .../explicit_advection/compute_advection.py | 1 + .../explicit_advection/riemann_solver.py | 3 +- .../flow_solver/numerics/explicit_euler.py | 1 + .../flow_solver/numerics/implicit_euler.py | 61 ++++++++++--------- src/pybella/flow_solver/utils/cache.py | 18 ++++-- src/pybella/flow_solver/utils/fields.py | 2 + src/pybella/flow_solver/utils/prepare.py | 1 + src/pybella/tests/test_lamb_wave.py | 1 + src/pybella/tests/test_travelling_vortex.py | 4 +- src/pybella/utils/operators/convolution.py | 1 + src/pybella/utils/operators/divergence.py | 7 +-- .../utils/operators/laplacian/lap2D_numba.py | 2 +- .../utils/operators/laplacian/lap3D.py | 3 +- .../operators/laplacian/preconditioner.py | 11 +++- 16 files changed, 122 insertions(+), 57 deletions(-) diff --git a/src/pybella/flow_solver/numerics/coriolis.py b/src/pybella/flow_solver/numerics/coriolis.py index 5ada6ba6..4a5d87e5 100644 --- a/src/pybella/flow_solver/numerics/coriolis.py +++ b/src/pybella/flow_solver/numerics/coriolis.py @@ -17,7 +17,9 @@ def multiply_inverse_terms( shp = nu.shape # initialise Coriolis cache is not already done - h11, h12, h13, h21, h22, h23, h31, h32, h33, denom = mem.cache.get_coriolis_array_views(shp) + h11, h12, h13, h21, h22, h23, h31, h32, h33, denom = ( + mem.cache.get_coriolis_array_views(shp) + ) # Get vector components by view VecU = getattr(Vec, attrs[0]) @@ -27,21 +29,40 @@ def multiply_inverse_terms( U, V, W = mem.cache.get_velocity_array_views(VecU.shape) _apply_coriolis_matrix_inplace( - h11, h12, h13, h21, h22, h23, h31, h32, h33, denom, - VecU, VecV, VecW, U, V, W, wh1, wh2, wv, nu, nonhydro + h11, + h12, + h13, + h21, + h22, + h23, + h31, + h32, + h33, + denom, + VecU, + VecV, + VecW, + U, + V, + W, + wh1, + wh2, + wv, + nu, + nonhydro, ) # Return coefficients if get_coeffs: # For 2D only - h11, h12, _, h21, h22, _, _, _, _, _ = mem.cache.get_coriolis_array_views( - shp - ) + h11, h12, _, h21, h22, _, _, _, _, _ = mem.cache.get_coriolis_array_views(shp) return (h11.T, h22.T, h12.T, h21.T) @nb.njit(cache=True) -def _compute_coriolis_coefficients(h11, h12, h13, h21, h22, h23, h31, h32, h33, denom, wh1, wh2, wv, nu, nonhydro): +def _compute_coriolis_coefficients( + h11, h12, h13, h21, h22, h23, h31, h32, h33, denom, wh1, wh2, wv, nu, nonhydro +): """Compute coefficients for the H^-1 matrix multiplication. This corresponds to equation (C11) in the mathematical formulation. @@ -76,8 +97,27 @@ def _compute_coriolis_coefficients(h11, h12, h13, h21, h22, h23, h31, h32, h33, @nb.njit(cache=True) def _apply_coriolis_matrix_inplace( - h11, h12, h13, h21, h22, h23, h31, h32, h33, denom, - u_vec, v_vec, w_vec, U, V, W, wh1, wh2, wv, nu, nonhydro + h11, + h12, + h13, + h21, + h22, + h23, + h31, + h32, + h33, + denom, + u_vec, + v_vec, + w_vec, + U, + V, + W, + wh1, + wh2, + wv, + nu, + nonhydro, ): """Apply H^-1 matrix multiplication in-place. @@ -85,8 +125,7 @@ def _apply_coriolis_matrix_inplace( """ # Get matrix coefficients _compute_coriolis_coefficients( - h11, h12, h13, h21, h22, h23, h31, h32, h33, - denom, wh1, wh2, wv, nu, nonhydro + h11, h12, h13, h21, h22, h23, h31, h32, h33, denom, wh1, wh2, wv, nu, nonhydro ) U[...] = u_vec diff --git a/src/pybella/flow_solver/numerics/explicit_advection/advective_flux.py b/src/pybella/flow_solver/numerics/explicit_advection/advective_flux.py index 4d9b3e6f..57261975 100644 --- a/src/pybella/flow_solver/numerics/explicit_advection/advective_flux.py +++ b/src/pybella/flow_solver/numerics/explicit_advection/advective_flux.py @@ -35,4 +35,4 @@ def recompute(mem, **kwargs): # Apply directional convolution mem.flux[i].rhoY[inner_idx] = convolution.apply_directional_convolution( rhoY_vel, kernels[comp], comp, ndim - ) \ No newline at end of file + ) diff --git a/src/pybella/flow_solver/numerics/explicit_advection/compute_advection.py b/src/pybella/flow_solver/numerics/explicit_advection/compute_advection.py index 0c9f9cb7..8d2ccd68 100644 --- a/src/pybella/flow_solver/numerics/explicit_advection/compute_advection.py +++ b/src/pybella/flow_solver/numerics/explicit_advection/compute_advection.py @@ -25,6 +25,7 @@ def strange_splitting(mem, ud, dt, odd, label, writer=None): bdry.set_explicit_boundary_data(mem.sol, mem.elem, ud, mem.th, mem.mpv) + def first_order_runge_kutta(mem, ud, dt): """ Function that runs the advection routine with a first-order Runge-Kutta update. diff --git a/src/pybella/flow_solver/numerics/explicit_advection/riemann_solver.py b/src/pybella/flow_solver/numerics/explicit_advection/riemann_solver.py index 479b006e..88f35532 100644 --- a/src/pybella/flow_solver/numerics/explicit_advection/riemann_solver.py +++ b/src/pybella/flow_solver/numerics/explicit_advection/riemann_solver.py @@ -64,6 +64,7 @@ def hll(mem, flux, Lefts, Rights): return flux + @nb.njit(cache=True) def _compute_flux_component( flux_values, @@ -77,4 +78,4 @@ def _compute_flux_component( """Numba-optimised flux component computation.""" flux_values[remove_cols_idx] = rhoY_values[remove_cols_idx] * ( left_weight * left_val + right_weight * right_val - ) \ No newline at end of file + ) diff --git a/src/pybella/flow_solver/numerics/explicit_euler.py b/src/pybella/flow_solver/numerics/explicit_euler.py index ba20abed..b9dff917 100644 --- a/src/pybella/flow_solver/numerics/explicit_euler.py +++ b/src/pybella/flow_solver/numerics/explicit_euler.py @@ -3,6 +3,7 @@ from ...utils.operators import convolution, divergence, gradient from ..utils import boundary as bdry + def do_forward_step(mem, ud, dt, writer=None, label=None, debug=False): # Unpack frequently used variables th, sol, mpv, node, elem = mem.th, mem.sol, mem.mpv, mem.node, mem.elem diff --git a/src/pybella/flow_solver/numerics/implicit_euler.py b/src/pybella/flow_solver/numerics/implicit_euler.py index 2a317064..cce0a721 100644 --- a/src/pybella/flow_solver/numerics/implicit_euler.py +++ b/src/pybella/flow_solver/numerics/implicit_euler.py @@ -6,6 +6,7 @@ from ..utils import boundary as bdry from . import coriolis + class solver_counter(object): """ taken from https://stackoverflow.com/questions/33512081/getting-the-number-of-iterations-of-scipys-gmres-iterative-method @@ -19,6 +20,7 @@ def __call__(self, rk=None): self.niter += 1 self.rk = rk + def do_explicit_part(mem, ud, dt): nonhydro = ud.nonhydrostasy g = ud.gravity_strength[1] @@ -51,70 +53,72 @@ def do_implicit_part( # Early return optimization - disable writer if not debugging if not debug: writer = None - + nc = mem.node.sc - + # Helper function to reduce writer boilerplate def write_debug_data(key, data): if writer is not None: writer.populate(str(label), key, data) - + # Initial debug output write_debug_data("p2_initial", mem.mpv.p2_nodes) - + # Set boundary data and compute operator coefficients (consolidated) sol_for_boundary = Sol0 if Sol0 is not None else mem.sol bdry.set_explicit_boundary_data(sol_for_boundary, mem.elem, ud, mem.th, mem.mpv) operator_coefficients_nodes(mem, ud, dt) - + # Debug output for w components if writer is not None: write_debug_data("hcenter", mem.mpv.wcenter) write_debug_data("wplusx", mem.mpv.wplus[0]) write_debug_data("wplusy", mem.mpv.wplus[1]) - + # Handle 3D case more cleanly - wplusz_data = (mem.mpv.wplus[2] if mem.elem.ndim == 3 - else np.zeros_like(mem.mpv.wplus[0])) + wplusz_data = ( + mem.mpv.wplus[2] if mem.elem.ndim == 3 else np.zeros_like(mem.mpv.wplus[0]) + ) write_debug_data("wplusz", wplusz_data) - + # Boundary and correction operations # bdry.set_ghostnodes_p2(mem.mpv.p2_nodes, mem.node, ud) _correction_nodes(mem, ud, dt, mem.mpv.p2_nodes, 0) bdry.set_explicit_boundary_data(mem.sol, mem.elem, ud, mem.th, mem.mpv) - + # Compute RHS mem.mpv.rhs[...] = divergence.compute_at_nodes(mem.mpv.rhs, mem.elem, mem.sol, ud) write_debug_data("rhs", mem.mpv.rhs) - + mem.mpv.rhs /= dt - + # Handle compressibility - simplified logic _apply_compressibility_correction(mem, ud) - + write_debug_data("rhs_nodes", mem.mpv.rhs) - + # Prepare and solve linear system lap, rhs_inner = _prepare_linear_system(mem, ud, dt) - + # Solve using BiCGSTAB counter = solver_counter() p2, _ = sp.sparse.linalg.bicgstab( lap, rhs_inner, atol=ud.tol, maxiter=ud.max_iterations, callback=counter ) - + # Reshape solution and apply p2_full = _reshape_solution(p2, mem, ud, nc) write_debug_data("p2_full", p2_full) - + # # Final boundary and correction operations # bdry.set_ghostnodes_p2(p2_full, mem.node, ud) _correction_nodes(mem, ud, dt, p2_full, 1) - + mem.mpv.p2_nodes[...] += p2_full bdry.set_ghostnodes_p2(mem.mpv.p2_nodes, mem.node, ud) bdry.set_explicit_boundary_data(mem.sol, mem.elem, ud, mem.th, mem.mpv) + def _correction_nodes(mem, ud, dt, p, updt_chi): ndim = mem.node.ndim Gammainv = mem.th.Gammainv @@ -194,33 +198,33 @@ def _prepare_2d_system(mem, ud, dt): coriolis_params = coriolis.multiply_inverse_terms( Vec, mem, ud, dt, attrs=("u", "v", "w"), get_coeffs=True ) - + diag_inv = preconditioner.prepare_diag(mem.mpv, mem.node) mem.mpv.rhs *= diag_inv - + p2 = mem.mpv.p2_nodes[mem.node.i2].T lap = lap2D_manual.get_linop(mem.mpv, mem.node, coriolis_params, diag_inv, ud) sh = p2.shape[0] * p2.shape[1] - + lap = sp.sparse.linalg.LinearOperator((sh, sh), lap) rhs_inner = mem.mpv.rhs[mem.node.i1].T.ravel() - + return lap, rhs_inner def _prepare_3d_system(mem, ud, dt): - """Prepare 3D linear system.""" + """Prepare 3D linear system.""" # Note: diag_inv appears to be used but not defined in 3D case # This might be a bug in the original code diag_inv = None # TODO: Verify if this should be computed for 3D - + lap = lap3D.get_linop(mem.elem, mem.node, mem.mpv, ud, diag_inv, dt) p2 = mem.mpv.p2_nodes # Define p2 for 3D case sh = p2.reshape(-1).shape[0] - + lap = sp.sparse.linalg.LinearOperator((sh, sh), lap) rhs_inner = mem.mpv.rhs[mem.node.i1].ravel() - + return lap, rhs_inner, sh @@ -229,11 +233,10 @@ def _reshape_solution(p2, mem, ud, nc): Reshape the solution vector back to the appropriate format. """ p2_full = np.zeros(nc).squeeze() - + if mem.elem.ndim == 2: p2_full[mem.node.i2] = p2.reshape(mem.mpv.rhs[mem.node.i1].T.shape).T else: # 3D case p2_full[mem.node.i1] = p2.reshape(ud.inx + 2, ud.iny + 2, ud.inz + 2) - - return p2_full + return p2_full diff --git a/src/pybella/flow_solver/utils/cache.py b/src/pybella/flow_solver/utils/cache.py index 432117d1..ad0d35d5 100644 --- a/src/pybella/flow_solver/utils/cache.py +++ b/src/pybella/flow_solver/utils/cache.py @@ -94,7 +94,7 @@ def get_velocity_array_views(self, shape, dtype=np.float64): cache_obj = self.get_velocity_arrays(shape, dtype) return cache_obj["U"], cache_obj["V"], cache_obj["W"] - + def get_coriolis_arrays(self, shape, dtype=np.float64): """Get cached Coriolis arrays (h11, h12, h13, h21, h22, h23, h31, h32, h33) or create new ones.""" @@ -123,12 +123,20 @@ def get_coriolis_array_views(self, shape, dtype=np.float64): """Get views of cached Coriolis arrays for in-place operations.""" cache_obj = self.get_coriolis_arrays(shape, dtype) - return cache_obj["h11"], cache_obj["h12"], cache_obj["h13"], cache_obj["h21"], cache_obj["h22"], cache_obj["h23"], cache_obj["h31"], cache_obj["h32"], cache_obj["h33"], cache_obj["denom"] + return ( + cache_obj["h11"], + cache_obj["h12"], + cache_obj["h13"], + cache_obj["h21"], + cache_obj["h22"], + cache_obj["h23"], + cache_obj["h31"], + cache_obj["h32"], + cache_obj["h33"], + cache_obj["denom"], + ) def clear_all(self): """Clear all caches to free memory.""" self._recovery_cache.clear() self._velocity_cache.clear() - - - diff --git a/src/pybella/flow_solver/utils/fields.py b/src/pybella/flow_solver/utils/fields.py index 416f3c6e..0a861e31 100644 --- a/src/pybella/flow_solver/utils/fields.py +++ b/src/pybella/flow_solver/utils/fields.py @@ -2,6 +2,7 @@ import scipy as sp import logging + class CellSolField(object): """ The data container for the solution state variables, i.e. `Sol`. @@ -180,6 +181,7 @@ def get_S0c(self, elem): return self.S0c + class NodePressureField(object): def __init__(self, elem, node, ud): sc = elem.sc diff --git a/src/pybella/flow_solver/utils/prepare.py b/src/pybella/flow_solver/utils/prepare.py index a6c1e5a5..ebfbb135 100644 --- a/src/pybella/flow_solver/utils/prepare.py +++ b/src/pybella/flow_solver/utils/prepare.py @@ -9,6 +9,7 @@ # test module from ...tests import diagnostics as diag + def initialise(): #### # Initialise simulation state diff --git a/src/pybella/tests/test_lamb_wave.py b/src/pybella/tests/test_lamb_wave.py index 90185b20..7f8de448 100644 --- a/src/pybella/tests/test_lamb_wave.py +++ b/src/pybella/tests/test_lamb_wave.py @@ -6,6 +6,7 @@ from ..flow_solver.utils import boundary as bdry from ..flow_solver.physics import hydrostatics + class UserData(object): def __init__(self): diff --git a/src/pybella/tests/test_travelling_vortex.py b/src/pybella/tests/test_travelling_vortex.py index 4956ae12..94ea65a8 100644 --- a/src/pybella/tests/test_travelling_vortex.py +++ b/src/pybella/tests/test_travelling_vortex.py @@ -3,13 +3,15 @@ from ..utils import options as opts from ..flow_solver.utils import boundary as bdry from ..flow_solver.physics import hydrostatics -from ..flow_solver.numerics import implicit_euler +from ..flow_solver.numerics import implicit_euler from ..flow_solver.utils import cache from ..utils.data_structures import DiagnosticState import logging + + class UserData(object): grav = 0.0 diff --git a/src/pybella/utils/operators/convolution.py b/src/pybella/utils/operators/convolution.py index d2afe98a..f343bd3a 100644 --- a/src/pybella/utils/operators/convolution.py +++ b/src/pybella/utils/operators/convolution.py @@ -13,6 +13,7 @@ }, } + @functools.lru_cache(maxsize=2) def get_flux_kernels(ndim): """Create convolution kernels for advective flux computation. diff --git a/src/pybella/utils/operators/divergence.py b/src/pybella/utils/operators/divergence.py index 8a5ad0f8..3e8af161 100644 --- a/src/pybella/utils/operators/divergence.py +++ b/src/pybella/utils/operators/divergence.py @@ -2,6 +2,7 @@ from .. import options as opts from . import finite_difference + @nb.njit(cache=True) def compute_2d(u_field, v_field, dx, dy): """ @@ -181,9 +182,7 @@ def _momentum_pot_temp_divergence_3d_jit(rhs, rho, rhou, rhov, rhow, rhoY, dx, d rhow_theta = rhow * theta # z-momentum flux weighted by potential temperature # Use generic total divergence operator - total_div = compute_3d_sum( - rhou_theta, rhov_theta, rhow_theta, dx, dy, dz - ) + total_div = compute_3d_sum(rhou_theta, rhov_theta, rhow_theta, dx, dy, dz) # Assign to inner region - rhs[1:-1, 1:-1, 1:-1] = total_div \ No newline at end of file + rhs[1:-1, 1:-1, 1:-1] = total_div diff --git a/src/pybella/utils/operators/laplacian/lap2D_numba.py b/src/pybella/utils/operators/laplacian/lap2D_numba.py index b36d21d5..21f06e82 100644 --- a/src/pybella/utils/operators/laplacian/lap2D_numba.py +++ b/src/pybella/utils/operators/laplacian/lap2D_numba.py @@ -2,6 +2,7 @@ import numba as nb from ... import options as opts + def get_linop(mpv, node, coriolis, diag_inv, ud): dx = node.dx dy = node.dy @@ -200,4 +201,3 @@ def kernel_9pt(a, dx, dy, hpx, hpy, hpc, diag_inv, cxx, cyy, cxy, cyx): ) return ((Dxx + Dyy + Dyx + Dxy) + hpc[0, 0] * a[0, 0]) * diag_inv[0, 0] - diff --git a/src/pybella/utils/operators/laplacian/lap3D.py b/src/pybella/utils/operators/laplacian/lap3D.py index 31540ad6..840b5375 100644 --- a/src/pybella/utils/operators/laplacian/lap3D.py +++ b/src/pybella/utils/operators/laplacian/lap3D.py @@ -1,5 +1,6 @@ import numba as nb + def get_linop(elem, node, mpv, ud, diag_inv, dt): oodxyz = node.dxyz oodxyz = 1.0 / (oodxyz**2) @@ -254,4 +255,4 @@ def lap3D( lap = lap * diag_inv - return lap \ No newline at end of file + return lap diff --git a/src/pybella/utils/operators/laplacian/preconditioner.py b/src/pybella/utils/operators/laplacian/preconditioner.py index 0e7830d7..e85d0c02 100644 --- a/src/pybella/utils/operators/laplacian/preconditioner.py +++ b/src/pybella/utils/operators/laplacian/preconditioner.py @@ -1,5 +1,6 @@ from .. import convolution + def prepare_diag(mpv, node): """Highly optimized version with minimal function calls.""" ndim = node.ndim @@ -17,10 +18,14 @@ def prepare_diag(mpv, node): # Main diagonal terms diag -= ( - coeff * inv_dx2 * convolution.apply_convolution_kernel(mpv.wplus[0], diag_kernel) + coeff + * inv_dx2 + * convolution.apply_convolution_kernel(mpv.wplus[0], diag_kernel) ) diag -= ( - coeff * inv_dy2 * convolution.apply_convolution_kernel(mpv.wplus[1], diag_kernel) + coeff + * inv_dy2 + * convolution.apply_convolution_kernel(mpv.wplus[1], diag_kernel) ) if ndim == 2: @@ -44,4 +49,4 @@ def prepare_diag(mpv, node): * convolution.apply_convolution_kernel(mpv.wplus[2], diag_kernel) ) - return 1.0 / diag \ No newline at end of file + return 1.0 / diag From ecdba223921d90a1792c507f16c3371c8a76d6d2 Mon Sep 17 00:00:00 2001 From: raychew Date: Tue, 17 Jun 2025 18:30:08 -0700 Subject: [PATCH 23/35] opps, wrong naming of functions in cfl.py --- src/pybella/flow_solver/physics/cfl.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pybella/flow_solver/physics/cfl.py b/src/pybella/flow_solver/physics/cfl.py index 1df17236..2274e72f 100644 --- a/src/pybella/flow_solver/physics/cfl.py +++ b/src/pybella/flow_solver/physics/cfl.py @@ -55,7 +55,7 @@ def dynamic_timestep(Sol, time, time_output, elem, ud, th, step): machine_epsilon, ) else: - return _calculate_convective_timestep( + return _calculate_advective_timestep( ud.CFL, elem, u_max, @@ -96,7 +96,7 @@ def _calculate_acoustic_timestep( return dt -def _calculate_convective_timestep( +def _calculate_advective_timestep( CFL, elem, u_max, From ae0f8c7cb64f391315bf60eb993b4aa20a81c66c Mon Sep 17 00:00:00 2001 From: raychew Date: Tue, 17 Jun 2025 19:10:06 -0700 Subject: [PATCH 24/35] replaced mpv with npf and moved flux data containers to cache --- docs/source/_static/logo.svg | 2 +- .../src.flow_solver.physics.low_mach.mpv.rst | 4 +- .../apis/src.flow_solver.physics.low_mach.rst | 2 +- src/pybella/__main__.py | 2 - src/pybella/data_assimilation/analysis.py | 18 +- src/pybella/data_assimilation/params.py | 6 +- src/pybella/data_assimilation/prepare.py | 12 +- src/pybella/data_assimilation/utils.py | 2 +- .../flow_solver/discretisation/time_update.py | 35 +- src/pybella/flow_solver/numerics/coriolis.py | 2 +- .../explicit_advection/advective_flux.py | 4 +- .../explicit_advection/compute_advection.py | 18 +- .../numerics/explicit_advection/recovery.py | 6 +- .../flow_solver/numerics/explicit_euler.py | 22 +- .../flow_solver/numerics/implicit_euler.py | 84 ++--- src/pybella/flow_solver/physics/eos.py | 8 +- .../flow_solver/physics/hydrostatics.py | 148 ++++----- src/pybella/flow_solver/utils/boundary.py | 40 +-- src/pybella/flow_solver/utils/cache.py | 47 ++- src/pybella/flow_solver/utils/fields.py | 20 +- src/pybella/flow_solver/utils/prepare.py | 26 +- .../flow_solver/utils/solver_diagnostics.py | 2 +- src/pybella/inputs/rising_bubble.py | 16 +- .../interfaces/dynamics_blending/schemes.py | 301 +++++++++--------- src/pybella/tests/diagnostics.py | 12 +- .../tests/test_blending_warm_bubble.py | 16 +- src/pybella/tests/test_internal_long_wave.py | 24 +- src/pybella/tests/test_lamb_wave.py | 20 +- src/pybella/tests/test_travelling_vortex.py | 36 +-- src/pybella/tests/test_unstable_lamb.py | 20 +- src/pybella/utils/data_structures.py | 8 +- src/pybella/utils/io.py | 36 +-- .../utils/operators/laplacian/lap2D_manual.py | 8 +- .../utils/operators/laplacian/lap2D_numba.py | 8 +- .../utils/operators/laplacian/lap3D.py | 10 +- .../operators/laplacian/preconditioner.py | 14 +- 36 files changed, 533 insertions(+), 506 deletions(-) diff --git a/docs/source/_static/logo.svg b/docs/source/_static/logo.svg index 44b1a947..d599f20d 100644 --- a/docs/source/_static/logo.svg +++ b/docs/source/_static/logo.svg @@ -45,7 +45,7 @@ width="203.2" height="135.46666" preserveAspectRatio="none" - xlink:href="data:image/png;base64,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 wE2Hm37//wJY2lpRqLZZ5QAAAABJRU5ErkJggg== " + xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAwAAAAIACAYAAAA19gs6AAAABHNCSVQICAgIfAhkiAAAIABJREFU eJzsvUuzZDmOJvaBx++NV74ru3taMtmY1lrpX2qhrX6YNCZtNBuNzKSZUk93VWVFZEbEPYQWeBIk j3tE5Zj1YpgWed2P85AgCOJFEKT/6X/+XxgAQB0AAG7ylQjM8pMVIkrfpB4zo7WGXWHm4T1rc2wL aKChPo8/++8dAVNtA1ojwwd0EBGsJus4iQ3+c2ynybhvTOik8DYCuE04ISJw72itBdz628FAJ+m/ g9FwgIjQrX7XPg3vG3zV3w7Dw6IKEaHr+z4+nDIslt9PjO3bmFZ/V+0H/hxhS1gb96k/xyWAgwRn Ns/RXtf6zeszMxpoqG/fbb69HTq8HeuTiByG3pUe2GoFfDZ2ZsYTNZw615kW7b3ojwpNs/YZeJE6 hlfe4HekR6JjvVZ0XoNuuv6/AdTRGAAYwFHgE7rridzkt5H+T6VgozPDXdcXWefjwAh/0KO9f1N8 Cb5t3XZFYOORjknXGmt/jueEg4E+dXyGhx3N2vNM/1Zaa6Au89GdAPf0n8cHjGuIuo0Pjj9pd4TD 6I14zWMBG+P4dL9Orf31uG2cmd8Ma+LsE16W7SR+ssfNXDLeM0yrdWPjGMeo/IAP5WUsc86Hw2f8 N8M743WGi5nByo+aVq/0X3Fh/OzAug97v03jsL/WbtBtLlVWOh9PdG7y9mqMxMFvl/W68tVmODt0 /Sl9KPxd+UY7hb+89I52kOPf+JnzL32/YTc/p7RvbAxtgG+Hp0GGCIa9//ye8RlyeX0O9SsubD1m /WPsr8yXfy16DYlsaaR8DyGPM50Zn8hlpR/VUp9XHpX1m4E/pt+HNripPFCBQH1cN5OcsWHz2F/t v3yv7xKJXnWwwMk6L81kLwSPN4W/AwP9GP9y+BYl42ZFWxlvBzF674M+Ze1nfaXOdy7LvlSemZ6T cVvhG/Bu67w3NF271BI8O32RR/qmxsN3/2wyQf/eHhnMxJQSQ6sDsc+28K1OFeT5swxgVuhre/Iw nhvxGkOU58F47Jkp6vLdGJcxpxtC6ZSJcwHMDDqs7dxHlHYcw/MBHwAYB45kgBhOYLhbKJJX303w UBvnxMdqf7mpsSHwCQ0RjnsCZ6f4ex83UTRdAG7w4hpyaScx0Py8eR+HKzattajPUTcriNZBO2wB 0PA8l0yzxhBXxisRufKPRkNLzcawWB/ylxBGaPQLkPbVNzi3NkbDAYAbjXcLN+17PYeyXtrQrq2D Sr9kCqwZTPbORkA1NXhXyqswdlME+kQrWdFj6WRSR1eCMSvA8X1vPOvA/Hvv3RW/YSxFoazfDWYr 1s7Ar0qbjlcGGIxaIc+x0csKfuOFs6IbfRuPsXq99yQwx3aatb1A2wrnKwV+Vwy31v5Ojkg7gec6 VgHu9HqEcY30vlMSR7hXyvZunjb20KV8HNZRemeknRF/dd2t2hZ+1Kf3rmDJbLPKYK2o+D5HGPS5 8WdR0M3wb2gtcGOGW17zWZ5bMR5i/R/HUXAyy09yxaktxwcs5CMJ3yIit8Rz/YpnRYP85XHtZLgN nmxg2Lh9jGDcbrdYZwqb07QZAKjrNspKHlU9ZvXc+uM0nurIpfqO/u79EQa4uI/6ieMr/WXvU2Rk lhWTwQHg0PXWmAFqID4B08dSe0drADfQip8bHhYGwMhPZoW/yofMRwONIY9N/6j6Vi6Vjq/gyc/r OzFPof8M41j0u+MZq7atmBFmv98y8xSGGEhbApgW6tUAV0LeCGSnzDAXjzCLBdZaA3FZkKxe5KRA 1/7kb3PEQps0BkVky7khNIMBIoATQRsSCWjuERuFj3vEq/6b9Y8wxJLllpkegbsKixZwNSKcvQsz Sgww92Ht2zz2U5hKB0Csymwj8GmWPzsc9q48H5XYPH/gpgMYFZFME6cpvPq8KzM3xkjamVmi1p58 O6e+oczdh0ryDrunJ9UFwM4AjXbDsy49z0pPFmjSBsM8SLaD4zsgdChOM5NR71c7YDsYlQnNBmpl CLMBcBzJm5M81TZOo08icoWum8Dzdsax2To0xdP7MjiUKZJ5XNzQsx0UpVWG0miXkVXlXwUnKR5n QRqKESuNg0J5rDtdgcfRePGdMazrD14kALeiWACqQPA9ZjryLoGTQI2G+e72nr56gNxAIsDrhyC2 vnRu9D3zKGf+NipL0Q4RgVpf16NZMAKi2PXenZ8YLZwvul4pPISCw5Hn74RQS+uxE5JCZAp7VYIo eDPy+qgOhpEgjA9Q6i/3b7u41NnMCBljgXe1o5pLt34KFHnORU4Fo6/ycZRRB4Q4KsWO4wCp8Zzo LrdXFYGMF8bILoz/meEv/OywbrTaoS8aneh7jt9bWSfB51prvvOX9YhxTLbujDYVvxh3NmwHAiZD OOqFkVNpRb8TJQ9oK/gpEQJusJiEz7LkQOwgHNKjrwd9v+n88wFzYg7rC15NX0ted0R9+2zfe0z/ do6H4rR5CI1jpG9SerMdPJ7a1XlP6zQrpN6OrV/ne1l/MIOaXBfJ77LLCsUphSxkNJENHLKfV2Pm cR3MEQF31kVRgLvTgeEptUvSru3iVENiUP7NwOOgX8dZ4sMVxqvPeczuUuK8fkgMv9n2wLAjkHTh pjxHHFaMW1bGq5A0gDIjM+vdCCgPcOepXDPAsf31KNL7i5/NW291BH7/dejb+88gcAO1vIU5K725 W2+rCL2dELwiwKsyWn5Rt/c+tH9F8Fko5WdMkO0sf2/nkZ7H01oDVIBwUkxW9XfGYW1vZUGLkj4r Mjsre9X+yoA1hWnnMczKeodQUHMFdlwbPbUbfWejaMbNCvYdPnLb2bNSmU8OPxve41A2bWx1bRIR juNYwpFqOd7qeL19nkOpqqJWmeAOLzEX+/WzKoafs59lTorRw+FpNgNIftcws0WI4YopV4Ew4KO8 D4iyciAU+lV72XOf29utxx0uVqUqGflZxkcotDWEjYd/V7R9IPisCHekfswbPK63Fa9Aem875h7C d1fyvOT18GjJQnTZ9gL+TOerdWt18rqqcrIqGeP6wva9XN/HW56jwFHx4rQhPvUwaNSYW41rpyDl ujv4CeMYB9xnnFzgn0h3bjk8pjONyq4HiqPHdg52Y7J6LvcQDtMK724eK52s5vdK/6o4qYWZI2wZ s1wWOlZ5og6t+r71lZ2tufhuTq8hQwW+zfLa6Vr7ujN8Vkyf2+HwkTW+W2P2vbZQacP/IuhotRYq PLvn3Ry/OwRiXvNX41zKQrIdmi7m+g5AAai7B1I6E6Zl7e4Ewo6Y7wJrk0EFeJGEYWSk0IwTLNtL D0y4CPnTGVo3xYjNsieA+uA56WC05EkgtZ6kuggns9gbCoFq7FgnxVGJwTYc5nGKwhkGiOHFGTDJ DkEVCDumOyxkJ4IRBjOESDW6ynhioZ84GsF2K7Y4T+1CPfuM0x0n4Ca7AtjRRZzhWC4cDrwTEdqC oYwMzIzDmTnXYgLpSB5PV8TUa3GU+tFW/LIT/EBVstdlpbSt/q7at/Xg9J3HtlFm5Dcx7qNPo1Fh +OZpZztb42c0bvI+d1nDxRPdd/RKo8fE1wRdscAodQ3Vsa2+rxj+jZoq5/LbgSaGzWJtye+iGHXd 1LJ1n2PHB6+yKrw2E9Zvt3XXmnpsdfvX1r62F6FKNLQdTF1gz2cMcj9LpasK0/xbM7qNcXFnWRPu jUoedqWXAybEAKIDRLIz9MLjOl7JCwAeI20hE1UZMfhsR8Xg2O0Y1TEf7p1UXrqhsjibEh7h1e8O wNSvhA1YyFzzXWbdCePCr0wJpni/wm/yZHiNhF66CnbHcZJV0J7lNwkDdKMPBHAHe1C+wpv0usH4 4KDJwE9SZqgrLpoOQZxFNSbdSlc8UcFxbtecMTKOcb1PfNVj9Q9dB1qvi1wHgNZug95iAyOVD41Z vc/zxPvZAuVPw/tE4HNcaxba6s4dncde+FtDPJdxQseh35VcbCdqDl1sIAIOdKUDayGdXSAC0W1Q 0FeK6mptkuKkKZ9pFsaVxp/hntZDH+kRvr51p1lZL6eQoFwm5Vz5TmMalO68I7gzBphZ9EdKkRAJ F0Q04p8IjWMeB+OoCZ/2nQKs+Wouhk8iMVhba+j8ogioeoHBhIl/5hLa0txPft5xSjcAQG0+A5CR lQ+J7JSG3WBXSltVGAfiS+9kxaISZg5XYJbYukYNfPa7sAjB9gmWrOBx0tCHw59FAZgUuw1+HE6U BVJwFPCt33cpVBT3aXwX468Le+pj8+zqt6pguIG2UbSs+GHoB4y2XCbG5Cu1+dzuYF61sao30Jcb HGOdK5zW7zule1Vv9byedXnUw2HrZdfnymDcH7qb4TTYpnHQSMa5zuT5EC33bnlkXvM46lr1cU4C KHA5hBNyvCsGzLi7eU9A5eeAqH0NM+1xqVdbsLGciIPXlJSTugNE6b3cbv1cn5lw271rfe34Si55 l9hwt+M7tZ+m81cPJa94JfHIo7NSvqMB59uAGA7YGw2rfh8tLmMoaG7X1lq2jL/X+vHly/iB9oA4 fNsjjCLvyCLCcKoBlkNY9v0QxJkgtMrFcAnFeR6TGzoXOztLHg0xOgV++O/yFyA0D1lZ8ok0V5U3 ArTE78zb5kPNGc7oe9aLrvhHo6rM3ltPa9myqmu4yGOpa7b5mgkj5pG1kdt3+CkbpOZg28vHSm+y fke57Mr/pkzwdkn8sHtlNb5q7OZSw7pyWfHJvNb8bB4A36G54JcrWME8uUBNr61GgXYDZsYtOipZ c9Jgq/CrQrwKhSuGZZ+r8jco222ub20Ls2bcLDaUoUQ5h0LY7wRCp1PbkP/dQ3CGJ8fTuaGQYhnF 0lq0wXH40WPU2shYTJD5941HyuHNxspKoDuPvyZen22L5W4jTNzzHLQUOzgzq6XhwRLf39PZgvze YaF3xlhKsUOlEx7Msh/o1k7xp50crBVfZ6jaqcdl83juwMdGZuHbgXaL85+zShCl0KE8lhYZheyd o+DyHoOufVl/u/Vn2T2MQ7rAcfyZzSp1rK3IYhP4YR6z/hAlD5bihyz0hoKV+/yl9eH0l+aXeJwP y84DjFlVtLbCmQQ7WXy91mMeYCCiEDge2zriMGhN5rDGTlRDqiqb4nmPOUC4WYZ3yBkF2aRI+xtR lHlFck1Mv7ug5SqAor9H+HKun793MzoSvXWW2PTBILR6BHD2PjqMZvyPO2UOLdH2oPlYL6Ac509+ O0XjS/2OYU55ze14TbxL0w7DnL3M35B6fdyJiTJm9YlsPRZrHQ4qoWv2cznNaCbBZsrYkZ9hlA/y rh0uNAVfwmAGA6pbAoFx3nJoWnYIrvoiFs+/zbMb2t6PnSMjhz/PR9CWhR71kZMXD6nsOKg8HlQd 3fE1fqMHlKy12CkwfpQUMuJ0ALXrEt3QZIqdDzoZDVgiAnX2XRoEWBMOMx/IfIoP2YlqXWO+9QeP PEg7StWABBKd2rhS1seVgmrJT2zHyUNecYA7o/s8ztmCjM6EZ9n8dzVWTZYRWPn8oMgnNDOzwpHp a8SL16XN9yR3ZD0Kldi5p1p2+tOqHjPHESmT5wRh7bauoQ8K/bwsDOJsLKWeFJx1OwFPyJJsyPqs 2HlX28HSUKObM0E7xEAzQYzK/rUllN8xhrvawl29d08ZMsvZYBnfrfDeFyI7i/vKONi9ny3oOvYd Pv0zhWLr9JcmcdXfPP5rnK7Ga5aj4esKH6v529HBbh7vGV0GzwB/HU/v7kEYjddrr9SOphrrNvQD 8Jlid0Wjqz5774PgrnjbCe1cf/fuPKf10Fv+jdKh6/F5/F3TUWWWllWqZgka3qFEP/5c31dmbGkV 8+8rBb22HYbNelfLGbLjcx5vhdU+d1fe1zSxWoerevlMUq1nz3fnPh6lsSvYxu9r431P8/V5UUwS n8tlx4fsr/DFdThIff8eL67tpxeXzzMcZsDWUIrVmgTgIUn3FANtZVLAOiIsT3DXBjrvhQdYv2Z4 VwPReWztOdH9MAY2Wls7Osb3GyK9J4asZ3XeV3Io/h6qlMtuQIRhrvlbni93sFxCW4vJgQcypi2K 8SGB3xyGPkNTu5X+Q+Eby6CwMqdAwzTmBT5z8V3ghay113cyIcN6xV+WzqRFew/JcfASH06fngRh v8arruED3RSJ8lqE6SCtZ2CdXWg3Dh6NZH8vybEr7//VWExnFANbzkfZc6LVTts1byQSx14jkkx6 mae4jB1pJJ0B0HziXZhTjb2WeM4CzgPM0POHFyv/S4RbZmqzp0yVf2MsFM/le916m3c07Dd56zAH lrxvv1vMub9RJqCPHprV4cx7RTwiqUmMHraVIuSxiGl6xaOkmXc0Rq0aE9XTNhslacFQeNCMeQWa R4/q1NY0yIr3RORpnD0phcr6wJ3RKNo8B1Zq5bH8wNlj0Ra/u+cPtlDXu17m2W+ltexFZmYcKZjT jMOq+D9ixD1i+MmzhnyQ0xiiZafxQ2z8MgpeFyTy7qH9mCdoYIa9R0w129jtkBi7UwFZEJT83Pa+ 47sMxzxqdXyk+DtAS9NvYrYFlxWPB1I8OzBlkTkwxuh6Hvn03efIeuyxHl1w9zKndXwGlsLBbT3H NY/9nqeWFVj4gdOekWdxpbXqWtM2ZS3SkDefk0FXPeY2z2aI3Mu6Y7B9abG5AiCeSjK+Oh5+Nrrq bVxTSx6b+JLzdawVJsN3y9lKSHZ2T5adVgYHfmBZZCybl2VK65frexL+3l9PNATNwpWzHuXD3Ule ROPus5TzQ5b1ZUwMgDzPvKdT4sQTODlC7hzcDg/15rmDWx0AcxrNrHC1cvYi7o05x+7sQ7qHRpTa vHZH4PK5FItLH/sad52AetZkrxO1BBjJCzjP088MWmSE0ajFrEvGQofAcYJOaO0AI+TOEOVh+o3p FxvQ3CBErBHBz24eZI+cuoYVbdb4zlHBZb1muBpDN2PSuyWPf9Zf1vSqryEZ5Yxph8EiS05WJi8C JtcYYM+8obts3Mt1wPTwDGPSXRIDNX0v9+W/NnMSjKcE7MxPu2Ky94jynrWznMCNopOZ7C7bzdXB yXznwAqelXdh1798aJOymtu6wk31wtR/j5Z7AjC3lxWeev/Cqt8Vc7qCoda3OaqE+zVCe9dnZ46L oYhwo+Zje0SB2LXr3x+fii3tZXp4uN8sCGooHM8MedV+XiePrNEMp9FIhmXytBR4JjpjEe71Qrih v6Rk1jZ3cD5SrK6NIRsNWaDu+l2tBVMKa6hT/rvCtSn+ub/V9/z3kRhPx3MPhWHlrR5y7WP+vX4n Ndbu8eN7v9n7ZhjZsxs1f7bmyQ1Ec+apv6VkWbOav1zPnuc1UMc1GY8kjha067VS11jOtFLxXdvJ v1dZVY2QnYyrbVU5dQ8ftbSFErsruV6V35JO8+vkwj2+ei+ZwmygjUXmYd4VISI5KIoDORVmPQej jdztm4gG2tzVr/9WsK/mOs9lKOHKbwjpfqNo5zxPr5vnbEdju7Kjo0c/r8ZbP+cxXcnb1Zq0Uuny kbLry2XGgh52fHMHe5Wv9fPQVroQcDXG2l+tm/sE0kVgGbm5rDyVq3eqUFsNsiJgZckRkccW53er ohSeOHl21ht9Ufuwfk2BGfORi+UImOUa/CoUm947qKcFmLyXDm/nsAjTuHb3FfgYN+ttUlZ0Ieds EMwch+fOU7MayYAsb28r47K5tK1eY9DmWUUiQqtf542ZPZa10W3JfO6Ve8sxspDYgyZez7sLudBj D2boZdGOeciPCj9Z3vnCnBwXlhe6afjWPiSJ2TxKErea10/My7zVnvFqn50JLRRx7owAqw3teipY WN9HCfNRzx0IMC8HNIsNS1YsO3dRc1WPfIIcxUIvuk4Vjy+aXah6xPJNqo5ripul7WI/u6ejcXcv JKvXgxXOsWzmhT0QbNgRcr9JggvMiLswuijpLFl8UDxUNh9NveaWLaTe8FovxiNEeId5+70dZjTN xw5054Hj+tRY7BKLnPmq4VNeGtFhefPDQ6rVGkemHqOnzklJSnHfCX+GQKZ0r4bRFi744kMCW+i5 EeEsWWzutT3JOwbsUobhUGgfD4AHvSr/86xkOc1b9x1CIt1NNC+gp6Hn6dbgDPPET3VnN3bCpaHT L9KTObZf/b4Ja88yNBU+NseuS1aZfp6D8tqdDyqOWr0nZNYPYg7HBB5EtNhBhcPn49W0ldK/8mcT sjTO01zGnfuaLW78HmE+cZ+keqz9/hY5zs/MauBZ1p3YbVrx8IGPGX4Q9N03NGrzljdEctu2Q/sC O1sDx1Ne1J1E2hisLt9J27Qb0c1fbLuXNl8UdIP0HJ4WVHkLrb3aGQ7Bu413PG8Su+bmySavz5yy 7HR2GaIvSH9lZ8lhaDpQivauDIJMFX5FRH0GwE79+b04hXcHDJkPL7scEVCKw2l6WlVPvPlTd5vX WRqZxWg+8eI8SRvcIA6YFm2tU5X7FWOt7+0Qv2KCV1Z+ratPt79XC2tVZ2fx1SwZ1RKvB0OzB+zK an2k7PqseB0ylST8+XtJGYtUpsGkVyfurX6liRrmVPH5e5Q6xshzPMN49Wz1fWcZV7rLY1+14+Nv +z5F+RoPSq36tH7NKFi1l2nt6lK9LHx67/rvBeHxuvKImEEypxG1v1nJqtm5VmVFr7u1ln/P71X+ MnhgzvCOVPxWGOrctNa28bVAeOBH428N86rcWxtLuKpSTuPZoiHOkzF9n8L+Ck5WsasVzolXn2Gw mBCfDDWO92o/ue0rnvglToT8Tt0pOUCRMIJmg3pFY6t2HzNE5uKyIT1bXW63k60rWB7hd7l+Hesj 75pyZPeEXK3TR2T+6r1HymxERLt5t6+W+dm9cwFrx4A9nd1Ea75Sn+cyyS3EDto9nFzxDcPRvd2Q Gm60kie5r99Djk+zcDHMTKe1/4GvbXTJe/Dm+TH6vkeju7U/6bpt49i+w1tW+mGd03u6Y/2t4qRG EpgBTUTzDoBHXE8pGvMZgestmwzEo0Q05P0n8osmmnrZ80VDQCIke8+yLlC+aY+Hiclw+uusRGqJ aGHGceSZzx64IYsPz2n82NOMBny5DJ7ELyjev8WylcVsP1d0N7egxcvAaiHygIsTWUQx85B2bJjD 9FvvXTx5Ne/jVak3DFuz5feOcWttDvmJmLZKp0Q0H/ShDubu+OCueblpzLpx6I2GvXd0DoPjRjf1 IET2BIFLvzeG5MpHZLVhBix7EorABMPOA9gzYC88fBiLeSGiwQOSadx2rJg17t+R3aM+SHcyat9r w1+Gb14OE4bGZPR3NmZzjnBe7PkQkXqzR+Y6JBHoXBT10YPckhczjNw8tjXP8mtAUstjhhu7dXwc g3vI3UPW5u32zoDxS7uN295fhBnm0pTvdW/v1HGlLGhaU77rvFLh47bDkJcEkSrr8PX/ghcfl+T+ 1vk9GXS0REvDsIVnJ2Ut8xNCpiE5CDqcu0lgmQeSGJLaOWHCagDwGFbaZP2ywnz6HSw+ZiJ4SApL TK7t+LHdVq53wcRZAaEhy1qyC0GsO072zfo/NUafnEYCTok1Jn+TGZGHXD2gB1WFJAwykwtEQWOx eaf0lxP8I8ste6HijxXuU3hWMOphPR8HofdzyIJS22h210WaiyP9nkYzHRFY8Z94KZwRtgtoO1hT lpytnCpZvvTvYbxbKXMY10JuGpyHyRAjs3rzN6DhrT04Ckc71ZlkOKiOhhOyyy8MLPElzco206ny 0klRcMY9tF8jGbz9onBUHatxusXc8GNdbUTAOMe2NpTeKe0CpJTvvmNRwtWujCqTl2aYmzss7yQd FGfLVmcAoi3Pl6ckJPpD7Og+quiZTLfPe3k1jIsCA/JjOo3YWjpjBB1zwliH3AS8zOWdCGGn6F8h uVruOyt9qVykZ48aEWFwWLuWpgqutN9TQHaFiGTHH3pwVgXn2mcgBzd+D+t5V7gYHjbOPL4wDJK3 FEHsXqjrPQrw9/ynzRiy8beij+oZeqR8SV0pd0JssnK38FRVQ7DCstrt+RIvzdSPS3oNBKA9/BXW uhZX+CbrP/XX9NKmcfxjRi6QwTbP9c7DpU82fxfGycUYPcAkGbR1bBWWXTFe5spla74uqscrt5cV 2lwmjx0DvOEf1Ui2VMbCJ+Z5q+tm9nBaRhOdM9/xOQq/Xv+tdFfpfXTwxE6eecunEMN26OWDwgep 0fL9oO1ZIGfFtOKt8o2FtBj/2viT0hR4A6ojK8+aXT4EaGhhpjlgSNdozg7qEmL2NXeXGHzS33hg 07P8tCZKlePDLo7Ksm1cv9qKvz+gCfDQvozXXkKubF6qR3Qw5h6Uv1nhyCVk0QkkeOrvu2J0VeFb 97F+Ho6Eu0O5hsPnom3xk+ltl+ULzGpgQ9Nl82BEE6+cXrOMuSpCP/N5G4OfOS6KXPEjUZAjTHrX x063a3087L+xMRfFZOTYDxvvoZm37AzXHbxOL8prvmZN51KTQ7RCj1+qD67u4Frdv1FpcDCmNQ2v 0a2/Iy+CmSMN6K7hRxjebnB18I8YDPVddw/pV8/r7QKqEndH74ybehtAFsesE+1dmOeWilB3n438 39JOknrNF6Kpg9GQGXYm3pHsH/X8u6d6s2r8kpY40x6/ZebOrB6tUTEQGaSmbTYcChz3DLQrwn5I adswusYmjO82Ud8EAJyu+J1KLwbvmJWqy5eI+Se5ubJTeGpAhK7ZcjpMQempN2DaESAGtYbTPONm elGf6CgLYTMQ7GzArPwbU2njc4yKQkMIkUH5oxKfaOvIYws3/ECV5D4p0lYjdhSkfjCrMRNFjFng p0LrXetnjxynew1qidhjZglL8cw8IHW+5/U430ibxz/CNvcXN3QbQ5rXghvkEAPrdrst2xrwVQQb D2eaWjqzIXeKyEFajjM/jkPb0alGhV2QlD1L7EqR3JAe+MwMt1Fz4ev9CDFhdLrYeJobEPXMUhXA gQvZvT0wxpTPpex80DFcKmie3rgpWXeFebx4MJN5TXnZ0vAJYkSP4RUGMglOAAAgAElEQVS84ON3 DHoOEmsJd0jZUuac/IAda6a0syx4ljYEziaZhpgBOwvApHNuDilG7y8DjS4vWCpOBttBY9IzL914 zPyun2NClql6lsiMQzbcilzmki2mzrrPV+pH3h7nsZPyJq1p/Nuo+tRogLPbvTzX85V3qDJukPiw GVhA8Lcz90dAO7so+D4AVerMaO6CkIPkPESW5Pd0BSLZMRXeb2Le6Epv1DW9x9uq+JY5Jdvh8vuU gqc05WNLfriR/yeTGh+a9S7L+aSPPFqcJ7v8THwgGVyR/z7kAVHIBNu5llUBgYPDuIPtuPpQ+aEL xmyujL67hZaYeE3tZblJVGlsaH0yavM6A6D3NZEvkJWxJy1Z76qnqNxoA3IXL15N+iPegaV1XJSa VTtEEf9ULZzaBgC3dPJ7bYGQK9i+pk4OXTKvwJd4TjKzHdpN4zTrN/9W4Rus2oXlWfGV8XLvtuda dtkzavuPlHtejos3cU/oXhkqefx357jQz8rLVI1X5jGzwihU18omEQkjzilKF/F7+Xud/1rsmRkE 9bd6TqW+V8e4NNJ3/TcCt/m9jKNVnPrsrZLD7Y/SVI5B/9K53eEgK0a1juExv7PkUXf6uTeXGQ4z ZHJ/cr4j+MUyf3X53OgG24dZzQURhRepZf56wMK8nMbyWaPyzP4eoDGkcjHeq/GvSo2TrTSd5cxc VEHZtM3M0wHtR0ru33HC8+9Xba7WTODYxnpb1ruiUR/Xpn7t+0o/qN/X624+g/FomfheHxU76+ee DLM27sXJ34Ml6yT1jNiVc3MFW61v51cardyMe5js74o/YbEjsy4NKIe02wO++nWf8+8Alut+VTIu r+b1alyZ3rOcWSUHCD6Z2+Py27rsePujcnm39iqeMk/bZbG8h9uB72sbt6lWVNG/1zGWYd2PB2Bz hzagcbA2yIIA96gRLI82bJETcNhNg+r9GCYoxc11tokvTCtb4kRYpfrU2sO3+Z6B8bkTDIcH1jMC pf6JxII7bIv3GG+mpILPgRNQ6mo0/Mwv555sZ4x6Ax91bb/NBsqwUBLDXRkSOyZ+pSTfY/w2HIl7 PMypdcl+YtbGGP6TTeE1T4t5RHT7l2UL+lQLvXHzDEkCi2YpSZ4l6Hxk73fEB1pQ1SntQetrvSPF 8+1wSEShZCgNnywunTbhbX3R10rICD0pE1IPsmd14OTNAoGazf/6ZkjbKcH4JH1T2oIpoDR4ZiyP U2RzCgZrtUg92znvTNDoTV8ZlSmLUe892jA6l27OgvcRX4HPiKHWp8tDsnJJmM5NOfR/xYQro2en q5in3rt7uMIz3Mt45b2cJYXlD1jPH8iFMmP42erCNiLZaZL+aeivA2jGmxDFLoUikrhv4+POM7Td zl3pwbKnvCi8Ort20ZJ6lmN84dnL8+FGXfpuYxjki80HjfiqykeMJ250z+Mf5R/H/Qis3kMeFdPp JtJJUIztS5YTQDykwLAToPTLSPTrdKu0auOhWMdCmgqXeTLthu6FSlnlwNqQiH6YZYdSwhNetM12 2V5HT5mU4kyJn3Hw8LjY2ayGrSg/Nvcp1Gux1mI+xnsEmukMfpZxvgvoXiFKApd1x6FBs4Ax7K4k yYgz7kQdnGLiSeBoLUJyG8ccUQd8RbZxx3fr9ErrlIhwQpI+eEhfOasAX3fsRq7RjchUkaAifzpY Q4mI5QxSL8ZCND7qEuahDr6q67izy3kiAp/JSCNSObUKL9b2CXJLsBuEI3aMfx9o5UzYmDqZ7Sgg Q3dlTgmTKzn4436TrIRFqWe50pFSh33Afwrdy3dlRX3/lMY+J1TI91QsjfokmwAkuTji7YvKStmr ymIdcH1H6ux/X/WzKqHolnAHVfqu2rxnNe2s2yvvh/1dKb3VKqwKhChjxzK/u40v2gkP+G4cnfrU vsfEbuakjm+Z9/gryrwA/AcRFH9DFxX/hsdBQC9oKY93p0Dnf1eC8h793oMlyrizUWml0tVO+QQw 0VE1xKuht52jUjJMM21IyEX1glS4Vm1e9beDIcOacZMz1Fid7E1aZVeYlEmiIQvKaky7OV0aeYty jy7ru3XOBuWbRUkzWjmL96/SiH0+jmMYf6W3CWYKfO7oZGXsZvzew8NuTa3guXcfxtVvuzbrGO79 VmlkRVdXdXbwrHhUVpIrX8rZwUJ5lnrnub8FuM7RCr4MyxX80zu71Iy4xq19dtjMkFjI28q/8vuV BoH1LnaF8Z6eYyVi5OfwwgzT6s6OFa18TVnxjOM4EJduj7vK83rY0dxIM5U27q3/1fNKPyM+7Lbo mfft2vM53s21082e9uoacmNhwwdXsnK9VjHVq7i4V6/2UfuufGDVzhrXlHcAzOLZM9GlMPCb8dTj YJZeacZDotyDwwgPvvtTJd8siSdQlPhxAcUhqLDEiNKNompTk8VIAm6V2iElQdh6GyUvBGY5jS9t F2Sy/O3yQb01PMTyEpHDXxEfWY0E5+bZkfqHe9JWOzBEBLnCUscPG7cyW5qVbL+eQInTDv8YbCth kktcWf3l27jMemNrF8+Bm9yI+ZpveP7biuWod4+D0lInFq+T7jvIhlJ4P3zh647BzT2EaW1wpr5x ca2Y6z2cCWxWT55Z+JrPB0Nja+0gmwlFkhhTH4MKISUlP+xFanBz6Tf1c8XMc5x1phevYztzSrO2 zsebgvUZZbrjad0NfcvVj9OvvrfA5GvOvLNdl2tei4bYRulgcJpvU2oN1uwpWQmKRpXpjj6oFb8c cWZ8zOjKcCK8Ld5VT3Hhy9F+Q++hFDU0vWnyhtbFmBS+lFPQyhg901e3mF+4J8t678ZP6RhCYTIu 8mffzbGqfGoK7mixNaB3NR759F1eotiHqI4274ub8zujNSLBmykBPNTX29QL/twDXNdqkgvST5UT kbfcFRlf8zlppK3TvaJJRCCu665kOSKjUVuvZqzZ303b6cyF7RIdh4ZtdQa7Z1m8vXnnL8MHvd9B zogw2OFpeju6jthv5D0n2WNtyTkS9ZKrYkm6I0uafSln0MprKGc3YpbY+QMy36u7itxY8LNXJncF JipjXc3NvZKNCZMzAECNxVPsXWSZOhrgRqvdzwboDrhHKOjK4aGp1PSYh9+yJ9rN3GBCI+DsHa1J 3iKA1SbjdLYnl+b0xnT4Dj0Akd8UN8S/LJw5KzyZnGfYJmBRkvWGbGj7KzzXwsySHIFlB9jpJSUo sFj8qqSnbnWc1qbQ8XGMhmVkq7J1VeAjOcjNqhz4ubYLw3T1+cqJYXVHuSvAVMOq6pv5e/7cdp0+ aolmK8naurKOKkCruOTd59H64Ym3WpsCjylCY1w+inV2NTlE+63jXMf+rZS/leWWFca8NZ+vz65w WewsAN8er//GPjuY07Uu5TxFnbOdwtKabPmaJ3Rn3e7KMFaKNiv+fo8yKpRrOGRxH5ex74PguVhI td387m7B7QwsU7LrnBq+d2Oq8K76WOH3Cj7DUcbNKsZ9BY+slxlPNobshb+C70vKiqmvfq9rxGi7 4niHr8xg8xiu1yGm7/Vv/nyF3xWMqzaJsQxfWrU70z7BwleGun295mt7q3MAq/5aE+XWnq14/a7c E6qVT63q17M1qzm8x+dmGjae+mXni+6N9VFYanumDNnnfBCy9nFP8bCym9+rNZPHUPva0bnDXOru 1tTVrek7eH7PcoL1vNO+/UfWxfBuVdQ2ZSVfMs4tdHVHk8NZoarYarF7ZIZ2FzuAK5q4h4+x3Dco 8vt17DVdfP5tJb8rHDsau7dOcx+P1HuUBuv6sXJ1P8Cj9EdE4xkA+aG+bAtrPwi3tnrH0Rr6y+lp 67jRpOQz68219h5Hju28gCLWUH4b4BjMYoHTfEPcO250Q+cuEZzMntfVEXbBJOyvI2pYFPq75lev ZwNWoRqVKZuQJqI5bAn1nWQUMGD5qacDO+oR6jkKLi9s9fg0vSehpXcz4daUsPcU4HvF6nscHk50 Fi+wKRxASqP1BQygFt/R0FzbCjSIYpzm+VidbHEGifUi2ikSu1CIlVDOz+szC8VY0Yt58YZYQx7r MidPuTE889jx7CVbKbS+M1OHQxbTGX1Ke+o9JKjfE+JRSjfIWqYZIvHWd15lUZm6u1tWCh+38GDX cVbcZiXZPGZMmHY6hj7sIqxJoKwvu9rCnYz93vWwE23mHtBY+eA/YF2rhyrUtyf5zqkPxUQVHDZv jYP/MJ9g8Y/od4Pz8Po2zhV/cNoa1t1jwknGfMDi3e22VYN3VDwsJMHaDvlU+a3xs/zsStGtvHAN b5vey+3P8nLMz24lwhEs5MEUmPD82zgNP0OfKc3sAIeeIWHI/7re/NkVMqZKI+NNz+M4jaY7OO2i 2zqxMTSG7yhMcx7DGIwQ8/wPOKHw8Ds9LfLhyw/lDJLdT2Q7Sr6jNp4psJ1VAe0EWkPnF+T8/F9T LB7ddCjL8mNyz/id7Yj6eLOMJgJ5Fid7GmdiGmVdCVgpyxPvSDgVGStzme8RatwHK2B1h0MtdpYs z47wi5xqlZ3v9z7Gu8d4Y3c+ylgn858r3QQIPg4aHWpW3+6V2h3unaMcrOLaKKVSLfBuji55l0uM s+uBd/TQXHfpYBZBpyma7xuYsQ4ED1+VBcieV2vJGy+3ynWaEe7vpcMv9vye5Ti00zTsqGRqWB16 y4t7ZSnXMeTbNKsFeQ/GK6u8Kl2ZGLZWZB8ZSS7DGDcos7naxV/viCcLzp0H4dFCVLbnf+ciMJ7w g5OLcWW6rfi4Wowrz4D9Vj/bYl3h9BGDqta/Ulx2c5dhWQla835n+luNJbdZc4VvbyEuaFxlaYm2 vz4rR4VvRbv1tx1zNJys1vhKIa/t72Cqpb6f1/1D/C7VMYNxBctKGV6thVVdq7PiVxnuWr++k+vN t1tLeFIoun2ayyokd2OofPORsa/+Xp0LWbWT/+12FK/opX7Pu2M7fns1F1fwDqtsp1SXsuIbJleZ 7Wos+I7CPRmyg7n2NeCUr9fTDueZr9d5Dd1DFao7l/E9WiQs7Bz6uKKHXNxQbTMfWDlDzAl4BfuK trW3h+RJbcPnvc9nHa7GZnXqWh52gzfvPcITaz2DNfPHYf7pMR69WkdX7ww0XQ8FL9bGrs2djKrj qPDeg28Fb9oBME9FutkMkAtgNkrKOPGRt3jVMYvmh+wNkXi8wuQ6SUwlJaCpp3arBwaAev6JxkhZ Zon1Jsy2MtvNhuYpsGwabJZpEYgsXmPSUzUeA+r9XBOUx9ymGxtba3IafmBy68mtZozcN0fodtPs GfcViBXs+QVk0ZIJQyPUmSnuiJSZNX50FKyZLoasOYviN7KyxJyiHNLNNzt/SamL4UU9QS0f70/1 vD+LtcXImGrbln5yJcSyQKzvmdKTy07RGtrTui21Jd8JC0diZKXpxUPQ4gIXSnQnnkRZEVnR8Lnw +wBGmC3WPuanpbVHnvc/Z/noAIhPjz02nPTeQZGJGcNlRcngrkpmLTuDbDVfuc2qKAreZ2XHfs9z XI2Eme53AlmF3QEwdz+knmGWfuUgb73AacAP55h9o+NVFgoOD2obFWMw5FxIGXPvp9KRXaQYSoN8 JW9/Zczu5+p0/AWe8jmI/F5LsJoAntMBVoXc325tuhm2rrlmywbzGO6VKmfGYnDqOLv+bUlGDfDE fSLcZMcOiBh2OA2MO3g22ny3gK+81ny92dkcwFaq7o5ujIzIXnT6c5MVq1L8dwhx3HS8o8MFKgdl 93/kaWW1+o492x0YaZ26PFc81huSqbF4+LUL9hu7yeFkHUCWv+P9G4+X6Nvk7fhbPTPkchUWBpx2 BE23IJHjktnP5H7X3ZwmPkHFta1/lyA6Zx0v3pbRPBEBRk8sJ+KSaaDtaDNEgjNH7WyUDoZcnw0t ITcdH/Vhndn9AIQDrBdXASEH7uXg934bhlAnNxxb7Dib0doo5sj0PbtdeO7PKWUofivxVD/puJtz pld8stJH/W3iTz12/VftViObrR3VFS/SgGr73QyBMWNNVXxCqK7becSCWgvsexCmSVSBZ4r50G9a +CNMo2VFncrvCT67XCzD9wXpxOoYBbfXeHEh55esWGMYx0vkB91EwRoNooCRAJzT3G3HXJSlK+J9 pOwYx9eWDE/+HPQ6MpwMx+7d3PYq9n2leNQ+Ks5yqYfW/pYS8zMqSJx+rzDL9/h9tVv2SJEDZGsG GcrIDczd13H2zDGTR8JU/F3hpxpYE5NjnuYif971NYxt8/6u/uOlwS7HWdEQ0Tz24bvJlocV1Q0+ JjyMZ4OuaEHgGPuvtD7T01xflALDhQWp1DbDOMiJCGoxQ937vZi/2scj/LsajMZrr+g0y6HZ0C47 G1jJpvHdK4M3f5c11oZ+aPHOCvaguTUeXHFLYXIZP7NBtncs5fbqdwDDbbhNDdqmjo0coGSKTX1/ aHcxlhU8jWaesoNv2R7NeoVc8LiWfZU3A6LI5pvs60WK9rniYCfTMm0dx7HOrf8gT6uJQ1Zl5bhY tcPMoC6prt0rnw3CtM4eKdN6Ynb1yuFdrKOrOd05+FZghb5aV/MI3wDPA6XKqlFezE68K32uPr/F 6X3XkYeyi3Guis/KugWApt4sF1y1D78Jcw2wfLcbDfeFSLwKHiNNM8zSnsbKm6fLLFrNaMBmTBDG WLj4UeqbV6W15WQOOGjNLUz/nQMXppDlZxkX4jGExMuZ59YYVY/vKiZx4kTjBlv6AktDxKUdS2JZ 4VRwNcf9TkInCd6BFroJ2ANmdQ90gnPojysD8AcBe4bB9q2aZQdJCn9lhONCIuwzX8ylKgrVONrh ciU4dgsauB8Qk29WZaeHHG5kN76qQsRIWVDYY2DtbMzVmK2/Xemw5TvHv3ssprqp5mb68AdA7KZd MK0Vj5lgvqP8/S0KfPbMA9nz34e/TheuB8n6I8NHY83RPtKzND3zFMlDEdmVat5869McAkEfoYxI nZ3h06a1l0tsBHBSciJLkHm7on1dH4ogv1nbDMGFkMreYjOGrC0AkOW3ytNvv2VjdKOwNQtfkZo3 3HR3TOqdwBDmUtevZ2kyudHsNxsnfJxZEam0O3jNlX/m71XOZDwN35vsGHkePRrDHjwhOQtMZ1JM akyxfD4HWKPfnOHI8Bs7UfOakh0jy7oT3ZZsWW0eZy2G34xnIrkFNxTgU8/INddZtIMANxXbAbbc O6EgxhkimYc5R/sI3KhvhNkTsAtWy46Pe4ebfxeaPHGkHaye6ZU5jg55B+nsAsPphh2eUb/iLrqE RyJYdh7jK24w2byIQdk8AkCfK93d2s3hA0Lu2Le6hq1QP0VXaAd6ZxzQc1BocgeOjbeieyOPdgaa Zc+z81Vx43kJl24EUCR9yWc6q6wxg87a935pIjOnn11I0JUOtpKDOz1zZUgu2yo4nfSNK6t+VWrd nbfCPJT2TlaeduVRCynDYX3XWPfZ63FguqzlTv87C3413lz/GoexSKry7/hnxGGZCxiZ49DRoFSa 14zbgJ9H8XuvXp77Wj/j3Jh9xdmKFu7R3qzQh7G1am/XVp27K0U+z/mO4ewK0XyD327B7ubZjZ4U i2/fd+NZtVPHcMU4dsXV3cVdGz6GxPTslst7xWCxf3ZW4dH7KOr7v3e5ZzBe0oUryVIn08Muq8Nk CNyZs7qmDIeD8rmAu7Z5xdNWa3cH+w6+VXnEIH205HthMj/I+GzFeVPHshqXGAp7pdAU/93Y8rpd 4q1kW9rhy2He9DfUdaNrTTeVRio/yX+rIfOlMlwOm58Oz5X8rG1kY8H5vf4Tx1+bZP+Kv8+lD3Dc g+dLyqP6kxzgH0PErDyih61K1cl2dfLnHV/Iv2cZVHcTVjxg1gXHzDZZyRZ958v5wCPznNfMI22s 3n0Ej5WPGZ5Wa+iRUnXN+ttVe5m+KpwAcPPY7JR9QF6SWGGia6YdDZoHJLzZ8r2hOfFy3JBmFlaJ A3QkNXUc3F2H4RGSeLUe8BNBYt1U2fUT6iuFr+l4tU4Pq9HeZQA5dp6ZoUmu3dL2NFQ+DgtJMst8 MdZhUky5u+muQQcjtgRZLVUbg+HHbpwVuNpAGHLD6ONM+2vL6nbFnmLCfRcIgOU5zsytKh8jU5mz VRAJViXLhfhP3EGyvedB35XJXDKuq7j+/Hk+2LjvL7cDzN63XbG+OthvYVUo5aPhrISV5HVlsEo7 gbdrWNuGbiNmWX5A2SnTNcOEWJuYYmIzLuzZ1fcvKf8lFP9d6Rpn7PwO6gmiajCaJ8i8RWPWEfPI dQuqLjHvhA7uusYBD+0Zxmr8SN/rPSLcra6EYzEYGj7YSeOr0ySmQ6I5uwQgdDZsKnB6PiBGeU+Z Cs75viGOmOF33l1WVbMQqWKzmerw87Hv5hKxZLGC5JAnAKfDI3UPEryogzLmTfs3pVVgJxCbl/9U 2pddD9uJNvo46KbzHvPaJTWKZ4+Rdkm9luZiXJ8ZoN5UIW6622PwzM4ubNaD3Mw7K/djYgSTKxv+ K8x8kOFAxHZbPagSRIcErnTvU+eV1TOpsJojy2L7e9ppkPlsIUcQ/NRDZ/zG2NPnydchA+QSU3Hu asw+C91KblrMvVNQ4ZOmb5Dmvg84aFAKm93YZRn6bF5s/TfGgOSNZxkrGBX/g7Jv8GhWQCFsM7L2 oYiyc9lh97V3+QHNcO907wiSdjpcj2qt4TyL7E1yjUjVKrZgr/sl+Ffc7O36GZDufRiNAB7S+Bg/ GcMRqzGWxxWvJzog4dIeXdKaKRzx7CsPnu+MwV0Ket8N0zOuI68pOwDycHPF8waYXHYZVU5ExgAD 9qrNVWzvI0UEG1yxlGcK02ZhZyL0/hJyrpSJ1W8N64Npu2Lb2nncRASUtE6VaVQrunqW6tZVrf+3 KEmVEQYTa0Mf9syVe/uHzaJK37/UQs7427W76mPV12px5b6sTvU2rYyZ3F7GydXtpStvQn5e57j+ XY0vt/OIN2KFz1VZeVN241o9X+Gpfv7XUirOhjVAANpIT4/wgbour8qOrvL3usZ3MAzPL+CsoQEZ bgDbnZkvXb/5vSu8TTi4IyJWBkJN87obW30mz+V+lbymQ5iudgyKx5xHOpIX5e+B/VqUizbTzmM6 3GyCvvaZFXrPMmNd8p4+V1lzVjjZZYO55idlZz7RF5f61ndtw/sB0g5IA9GxvFDSFNccbio7ETzh IcO+S+LwtSXP0ypCIdPjik+u9KJ7tLsaW9Uj8u+Zf6y8xrs1s+p7BUduw0rd0f5a3r/jIzs4dr/d 49uZDu/JrJXu8Cg8uc6VPM+l4qDiutLDLWyAHHN5P94+sgYFQftgOTr3idXnU10EQY4LbowV3JXm HnkjouT9Zsvcs0BWt/zImu1ALU9CxPgOPVs/aRxSSTwXjVL9nJLUDPcyzx6aeQJk8fvMka+d1GpV 4WDZmG7Uxv4VeovhbTCvrcB74gVi6X/dQc9HyooJHSCgNZhnDOqj97osOzb25t1T/46XecsxC0Fv 3zxXWC+WemFIFcp5kdUt5atF71luFm3vvue26m+RbaC7AgGod43gAs/H08Nrv4L5UVimcXq1K97Q pp2V3M6K9urBTmOuu12V37NcGcKVDol1bs3DCpsvM27HsJAqTAH4mSNmBp3GzNVz2UwJ0PVDhH6a xzTghbaRQz8GQe7e+xIjb3RkNydbo83OCsAdH7aWXOElmj2NDpOdWxjpqONUfm7Zisx7G98H3Oh4 Tutf4Qm/XsnalX674h01pzkpLzKPqu3oGi2clgWrybisv2bZS6A0qq6+CGOR+kTQc1l2U6/xu+Rg 04pECH6Gpk6yPtBFPlPiYyQCe8w01Hep3/u47jpOoGn+c3SLAwr8lM+z0pduheVkhCgd2VmqjlN3 lER2DWdfAB8XaM4qyATk+w9MMYfug/h8p3D+BvYbv9EZxGcYRWC0xhpLHvgYHFQUMJF5ZmVyC72s lfGvMQaICGcH5Aye0ttpxqTKGlMwzHNtO4MeoTA63phOlQNH0DAW96yw6Ad2ZsVuuBf9JxkWZIlJ JI1mfzmLspt0I7LdL/YIgxVWiCh2EnUSD+z5ZS47LTDWfOzQrVh5oGst/+J3m39gPBfLvm4HSHor GesCv9KPjY9cb7xn4N4rWR+5Mm4yLp23GaxFt21jA+sMENUyq41X5euekrmyrK8Upl1ZwQMgDvAg lP/JWmtC7PX54NW7A0e2Wm3T6J4Vu1U4Ul+tNTOrlh6K1fzMzEo8VQD8VtdHx3Wv7CzZahnnenaI qXodvqQ8QvS1j9V7FRc7Bn/VX312T+HdGRv3cGChPys4Acl+UtvdeYGuxrAqX0Yno0F/NceZjleM //dS/u/B/6X0t5o3+9v132pMti78XRyTN2+1LrLyv4K7wnPFf3c0N/RpzgaMdFv/5Xd3ONmdd7mi xXrPxK5fKxU793YDVl5ye1Z/y2O0enyBhzzuaGvv5b3iofVZ7qOWPAcr477y5FVWszqOVds2rpm3 ipGSjfZ76/dqXe54F1Ec0PSxlfMS9vtylyW1t5rDK9quv/+t8hMUoXF1B+3efNSxWMkX3pnyv2p3 FaVBNDowBhxf8JJcZyV3a3uOwzvRGFcl3820rVN0kdVv9XOFNcYhO0t5LVnJOM9tZBzXG5RzvUfH XN+7eqf+tqKZPP5bNLpWIIjWuc4tGwJ8W+2IxaexftKBelD0iLTFyJpF1vvpFzZ0q6flBMetBLZg CnG7J4yFsKRphU0GJePRFxs39OTNqQJnt7arotkgmSwi5hlTXu367oA/UjjVMo7D/d09dGyKaA+i cyHCqR0b8iIbC7gc+OXwGf9eJTNG2cZWYUCE1m44e8chlkzQGB1ghsfEueMyZVW4KuzZU9RjZbnT CXLrXtopWC2albJULeydkLa/qzr1eWaOO1hymS3z8AgC8NhZuy8Dh3r/dR0wxjsbruB/zNN+byeu lW/jmY/dvRDxgtHlnXr/Sgqp8G7mLbQYZIs5TlkwiOJeB9txhC+fm5wAACAASURBVPFawBat0ofO sdEJwmvWCXprAkdsuPIzRmIAmd/VcJI207nBmJUmP0vCce8Ks7IqTwl9+C6n7Tw1HHJru4HDiDFB +Jo9p5QuIw6Eypkt46BMR/Y1RjYZwxfMmBqVkKoc8ACPefLI6Y0x4sLfQwMIaGT9p4Yb4ewmx+Qy M/P0ZQdMlA67n1fkqe2OjPCa/Mnt8Ivil+ScU+Ufw7hXa6iHsivzK3g8u55dwXherJbhPRk8sJBy E39zuMqBYuuHR75istjIdLhXQ89JjH0pj+6xJg2/brQg+KUrcGVHOO9U2Ph7P3WMhM7nYKwz1/TD S19qoL/8KrxDqO6E7PRleJrpT0rbpqtYf4fvNB2yw6Hr1bJgUUo0kLNb2doJ/Ojf5PSN3YCRb7B0 rnyp5eUjxgwzgg3RoMdlmui9D9EYDaRnPWQtjPAZvmrWpHFlkZ/1yPjNumwf6D/e47g3gEKPJOW7 aBjh1vdFx2tOB6y48LM3KPpV0rvku4XiGT+8H2Zb12fV0+/pFfk3w50bSflLbTQrL/m3e7HWE7KL 0pFLzYQhH2blrHHESFYG6H8TMhnnFikOH623UnKpbUxXWeuYzMu+s4Rze/X9lbcBemX7SkGtuBnG 5N/DM7Oa3y8tj+AJ0PMeFPXPfNvfRsg8UrISXcdylV3nKta+jusKxp1in+HYtZM/34urHzMg9CTc xrZXO24VnitaNMZmZZ9lx3zbj5cdTn8POvxaOHbwfFEbbXGo9cLDkt+nFGojyn8X4Y1z+Mw40fkF nV/AOPHCL+j9JZ4xy3fPwvECy6wSGVZS2zp/9YZs41cDvOkMw4pvVJrOf1ehIztcrvCT8Vn/3Sur dn0uksdwRXvmRd555CbPXVJ0rsYRvyf+d6x32IcQDP2bdyYyTlcx7jt5mNtbZfbZwV7HIIoCDefb ogh9PbKmJn74wBqs+khta3X4cdkmtyG81zy7ta+dgVXp44rOd8XXislHmvmJjSnG24a1NdAG4KGI /q495/n4rCnfB8o8IHSzHb9Go4H2LcsWEBEGuzMTOx2mXr5Y39nRxmUQamlyJXvDGJwdwPHXeAWQ L2kb0oTeOfNVdbKvLTs+s4K91lvBl9+/IUUnxYl/G/haadkd9gWwjMMUy8isFGm/nxaTh/DiqID1 pcUAkofCPFGsFuZgwbL4wnry/lrmHmrJQ9fSYh6sZZt086xp7FsyKgbk22fPp3ttjUXMucXkHnIL sAqpnCa1946DDoilLYo8MXC08K8yJBa4gaUdBTMyL2zCrJKraCBQi4W1vMDFo1MV36aW9QmJW7Yz B0DHyS9y86GhSP83EKWNxDMWpVCXRh5OxT4gO6tx078RA8vMQDvciwScy9j/lQFVnz1S5yqDz7To q+Vvv5lHS5kIusShEomXl5jce9VAXt8zD7HEanq2HxdmfZqr1fj9meLw9MPy+oez0p/WSboZ1tqs fKIrg3xIGfgb+WPNi3+3flIA9Mm6ThFAjIacHMJ3JEu4DCOYbu/dPVgvetbBjVZt++xxQ+5xHAAz Xr16hdvthqenJ7QmwvXz58/49OmTKgDFK9UjVPBz16wn3Qxy0qwdBOaO09bdqQIgnZmyOHU/x8IA mskDNYBNOMCUGB27BECJ96/dElaCHmWdCq+0m1GZhF4sJjjCkCKbxzhfc1hNxn9es/bbkZ71dE8B q/BpCA/ymeiZVaYYHES6UzLE5R9wmVF4pY03Q8+wdTIf6MzjEHwfviNjMtTP2fjOiHkx9XyJxeKD PdMLgFmOmcezG15UsbMzcUn+yx/7fCAyNaW56EFDFPtUqcwe/8Ch4LQBsaNOsbC5d1gWuMOZvhOe 8GRTzHxHUZXkkiUowElx/wilnErWq5XsAyBnRUj0Beb1zn8etayDeCLZEaFe6IwX1UHKvT0mB5n0 jEMyxiiN16IGvF9/rpEFRACPcf8mZ+V28nNc73z6/AvP0TXpZ1SENo+mO1uuCynfcDEv+h263Gfi 2bR07NkoMbjyd29oo/7Pdyj5J10/oTtau1kWj7LSdDK4RRHtGw5GejLjijntLPB4odsAr02PWHDT mahdWfGYnZwd+NiijhoA44P68r2ys5gnq8UWaLeMN6P1bQIzb1Xntsxa4/SXKBT28Z22Pvi7Gdso aABQ9xsB4/drZFdrbKVMsi/2RIgcgqa2EwskxZuV7oNRrq1Na29HANN3b269IK/qiwCB444Av9Tj vjKoOE7zLxduWEztNT3WublS0K/auFeyINkyqwzTpp0QfHBGIVehR52D2uQl2fW1art+363NFR0Q sjIlmu+0TjB6VYRGfZNxC9+/prIavyny+bsrQBzb8sEXTjBbms4OVpp9ejrw9PQKdDvw1A48vX6F N6+ePJ76dms4jicQMW63Z7x58wq32zNevXrSv6+8fzMAeu84jgPn+dnnp3eB6+Tuc9BfGC/9M5gJ Ly8vQGd8PmUH4eWz1Ht5ke8fP35EP0+cvePTp08gIrx8esHLy4ucMWliPLD5DoiULu2yQWhCBdZQ oO4KSuY/RsvGv0f8jvMRCrzRe9SvQrCW/HzyghaFDijb4qWuGQBGA8yiYIexdExZTIbPFMZI5cPM o6JXi7QVcI5Z1ta4W627nXwBjN+SX/hkCjUSzABip6Rlw3/ux8NNdaxhQMGf5/k5mXAEcCPMJAYP WkdnxOWCmGnAaSwpfvrDgH/DZ0/v2bhlPtKZjzTGaQeFAHF6jSE6X1I6hQOBXME2ilXjMqV3HvC4 6aoquA3qt8jK4OIdDzty58IxtPWixiyx7FOS4U7DtFfx8HW+3YjlFq76Oziz+XlEmsyXq846DBV6 wKKetgakAEGrWwExfaXduVPqkRL8vO6mjnWudLpcx8rq7I7Vu9m4tCoAuLVkJSNupVzkhXWXKVts J3kDHkPliw7hCRhjQOG7BlB/B4DRu6HKVHcPwcxcBwbtD7W/ph5tZhAik4Mw+/nmxBXxDAxWx0Ed 6vUSeA6iwZeVBenASHs8tz5ba4AuCsPLbiFlQrman4qnnOoOgM9vjWq0emy7LYVOjg2R5n6NfqT0 6feuucvlrEjEEgOZTmK8V/R6VXbtrARNZiTLYXm/427ZyWVrttsBeonjtMPStgAtq473rUKKqe5E TNGmBQ6D4RjpYGKuLSkL/lYG2HG1pvlDW+kI5c2yWDwiJK89PbU86vkPD+E4x135SNM87YfFfqpy 2yFnlPpp3p0XEOw+BVm3z8/PePNWlPW3b9/i1atXeH5+xg8//ICnpwOvX7/GQQ3Pr1/h1o44KEod T+1JlPnjCdQEjs4vODRcwep+7p9j7et4iHQHrhMOijMddhO4eKsOfD7PAZufXl7kbM4pYZKfPn0C dcYLd5zniU+fPuHz5xO//fZBP3/Gr79+xIdff8XLyws+fvyoxgPkr90nQGrItwZwk50glwuAaJcW 32wx4m30kjm9S1Y232nlcR3Z3yt6snXEul6EP4lR4a1xNnQZKFmKcj/OSxmoHlT7HHLC1q94Xm0J mafztPUxLL4Ukmd4aBaqZ20ab4sdW1H0qhFixo3ycctmYnOChpwxLwZrMs8MWx1PusQx6s+6gMsp q6s7JD5XhR03x+WpcdEahsJyhsieMZ84iQC79fxUJa6NRlzMIzQbDo/w0IEzKdpOCf1FYG/KejUf f1YA89hb4YMdDdms9ew9VPlZiaYg4+uHnOkyXs+2452MOiJ0HOgng5q51o2PaZWyHIjkxmR0CsdF Vu5tHR4256pr2NkKDTQ61NPP7SiGGuGkiHx3PHExUquC3EnXRYzD8CFYMstLzhUGbtfyYda/DW/2 3miwZqM/6lu9eGYREV3PPpC/Qxls+E6/6q+dX3TcRY7VG4HzT8V4W+kv6/O4jzk/LeNern8zRgvQ ZcfA2vsZHV4zYyJy774tzMzICcFAV7sAeRC5f2GCXQRnQk5+70BszXceLXae2mJXvBmjIpkVvqxY 7ybABJBbj+k97mqoDDjiqQ1j0lXQDLZqGms2VHaWX52XlWW4Yu6rd8UReL/uVVkZVTlXPoCJcK/K zii7p3yu6mehuprj3Zq5WkcikFG2HjWuUBmwCM7wNPuYEIbEQGd4DO9SNw5dWYkt43xt/fhexc+j RpYJ5PvK/+9XtnRN9lviPSThHWZYgS2+3g7FihFAAN6+ei1K/ptnfPPNN6L8vxJlHwCen581dKfh +fkZZ/+M56dnoHdwW4QYMPB0vFIvu9BBQ7PDWQAYfL7gpgYDM3BoikqwGNh0kISIddmufyYJwekd 6Oh4vkUoY8eJd0+vdPzCM9+9eTXxNyDOz5zMOD+d+PgiuxDv3/+C82S8f/8e73/9gE8fX/Dh/Xuc Lx2/ffoN3Dv45TfhIPSiYthC1widGpiLIYqG3l+GtWsXmc1G7GPr+qH1oKzukcwiy/dT3yMOjV+U 8bhWFHw2O7pW7ed6RFW+zDAKDCon2+zAkEpaj9TPafyqhSLT2s2NgBiHEF6kKZ11AUt3W/Fjcmsc N5Iir4kdUipT0cgjrar3oX12nvkPqeJ+o+Z8hznmpzryVrxd1s+YhneV4nll2FT5fK8YfNaePi3j ivhDM+Qy3K4wEyRlKvO0NhrLQfKV7mIGkjsZjJYx4snwbXzMgsFW/d0b85fI8vquxK49fv4it5fb zDsX9jx2scx47wCvxxYbGSsd6stK1Td28Of6X6LjWHKQrEvdqiUlSkeNHz8BlLzGXiy2XhlEX08s U6yRAyGIZctcJrMq/9I3ya2iZulTj0xACQk1m4mpOOHFV2vYE7WOsdl22t2Xn3k8yoVcq3I12RYv 2egQP4cxTeiiV4+smQKWJaO3DmjOf5nYdV/ORJvFnI2H9x5SztLnQ+Mi2WlAdywUM7aNH4IgESTN sZ/TEjVFxE/Bj0Ikx+sOhpkpmxdjuVoAjxpB9xbUToCs2s9KMqBnOxqgVpPQdD9VEJPvAkk/trMC jZ20NuX9CmeU2GFiTp7OIUhy3M4WQy5m6kDyKLkn6/B1ZgrzzrgRATWfKbmHr68r4RGqhrD1JbWy IhVwwLLQqNLEzDhuhNvthtevX+H777/H09MT3n77Dd48v8Lz04Hvv/8et+MZb9++BTPj6ZD6puB5 VrPecbs9ifHPEG9WutF0HEZSjoiQV06gmZQnBI9WckDI/y4KuHqM28BDOM6TaPcHiXfVsoNl9ts0 POSpEXB7wrv2Ss41/PQdWrvh5UXOJHz69AkfPvwmYUq//YpfP/yCP//zH/Hx/Z/xy5/+M8AnXk4C bs94wRu04zU6H7rbZeF9DdRuauScAOmh2dPGF7S7EnxWakxtqFPJgZVR755xcgWno+HWCs36x1k2 jrD4L8gdGd8Y0jW2poq6GeXCV5l54Tm2dsjnxtdZrtDyeQEDY1RQx2LyT6voGRK7ibUzTbgOg4Un xdwNav1u8IDId9dduUrGDPhwpRbEw7xBb/21DFtXxpo7JdCF7kE+DdamGKYjX14lZ6h8yvg0A2h+ 03X3SSfSswiajZAToPksAHRMQHi8PSFJt5j6Y1AI7V0GyyYVx4FwqRP0wt4PgUgdOr0olX7+0bJ+ xXckAzaTTXbk1Nj2yaCweqAJjzZe0JYopzLLaEaOWohlZ2c/AKSdvskYUlhNTnK7lkl+dDI5jlTS jDAidm6+RMZVxd8dCSk18z0j49H+sqPitvoxS5SsYJtgy0Cu37/fuQ22q4JhMcc15nm6MMafzwSb 4bUBukULDL97m4PuxJPGurKWr8pkwekiOjYT2E0wIKxJUUwqDKIwsnmRrP1U7+pw6r0SiuDjFjw3 UVZk3n7fkudNPBFKO6qA5u0sYF7g9t6XWOLVus5t7Ayq1e9VaOT2zTPXEsMR+3Z3TkMZeRJfRGGY 7sY40UHxeGe8Gb0N7yzGWxnwFa0F/rR9Gn/7vYyAWJsjY6telEGIuuBnv7jl7ZtXeHolXv1vvnmL n//wI16/fo0ffvhOaPF24OnpCeiM5+PmipjjX5V7hm1/h7IP4HKXbGV81iLjMsPbeHS0FW1YO+P4 7cKh1oKOpL61Z/VNQVG+ZAozmVJJejAZOJ6e0fkFr57f4t2btzLMA8DLJ/TP/x3++ud/wi9/+k/4 7cMv+POf/4y//PU9/vrbr3jh3/DCTaOHbzg7gegGajecHXpAUEPJmqX7tXm9j6crOqj4crwn3nuj 9Dwa3r67omU3PJPHeHVreHwO+HdlUg4w05G/f/dmxXjnCp8jnEKDK56b2+i9C09Ldw6s+qlztevX 22fZFZWLwyIMrsr0Kv+JSBxYDL9ozuSWGYb3yjTWNF9u9HR2IwUEOdP1qPzhBkaXHZuu6jtnvFrk Q4SoPSLfJKnK6uzJyC8m/ZzibER+BnOksMnlvcda5PXfxuPrGIO+74eKVn1m1PvGHWzGOJdiRDaZ TzQN/SznVjmWV+Dg6+TaikdlfXh3+deXtp//EpFlARJFY9cB0YFjHLsraL4oLsY8Hl7SRalyh1hi bTlbomnS/SIvj7EKGMWZOmY3YD5ht+ZKE5E5h7BA9JA6FJF1BpbnVXY/OBkZtWQi3bVvC+WwxLH+ nuGmSXyyewIPN1AYkfmD7cZDd/mNOxdfWupNrJ3qgioxa7o4TkQmJiKJTee0wIgoDiA5LuD5b1va gdkJFGFUTdWOblreyHQ349oxx/n+hM28bZ5b2/abGyk9K1QQT44yV2Hmo6B0ZUAZtK0JV8+8/4gd JbL8CiFXJqFK3v00FjvIWw0U8dRADzdKvG9SlxXPITCuwhX8sxqHoj9mGpoPi+XntZhRHIf76hkU a4emdUhEkpGqtXRhmnjon54PvH37Fn//9z/j9asnfPftD/juu+/w+vVrME68e/1GlPhypwITx+3d RCogbD2qcabrel3mOybWfHcc5yxkh6jn1B8vfo/t3+jW+H296dXWJfSg5LgOclih8A0bgylSHXx7 xnE84cfX3+LHv/9v0c8P+PzhT/jlT/8Jf/3Lf8Jf/vT/4dOvf8avHz7i0wuh0xt8ejnwkV/hE73C Sa/BdEM/lf8NPEHgtp1COzNjYB9+Y3h49J2j53nEGArqHjvuQDonY0YRpwxXOWRop/z7M9tZ5ioH g1+Mikdtb+SXnTpGcslpQiP7WZYrADyr1zaJhOFFyNg3iWwHe1CeUp+VdJ1OTAlPfCqvz+n+ET8L pgdyYfdCBG2GTLfRspO7XwLWWJwjMgyljzQ+jjuAZLwCl525CeNh3G2wcdhhd5vXyEpk9yro+50k Xl7fnfRgH4dJSbgRANKQnkONijSPHnICzdJFYtR301FIdgmEXoIX5JAt6dUy8cDXCtIbkk0KmfHG nEP5HkF3isJBJ45i4St+uBrj/U65rRoRUEumT1eKe0/rYazHMbG4UNnw0ntac6Gbwo0l27nKum53 WWbzNJxFBKs+OxpZX1oGo3izfqzcMwKvfmdOOwBZSajAZAByuUoHWgcyfJb1A0JcI2b1zVq1LZod Clt9L8Hn26x6NXm1IFdIbBCmdSZYY1wdmpgStkTy7yvhWNs3xbUaQ0OdLkuLoxv/rRsHOZTAMDLa qrDuLOcMr8Fjz6vyPRBi2mHJ7VDqyxiuzd9VyQxnFC4B7z2Lt2aNWimAGdeVmex+q3BeGiheT88s 2BmVTTtZYSVVkAVf45ysvQgNkYJvZgo7RUTqFAseZS71WU7Duytb46rg12AOWM7pnUfKvcvEDI8S YvGiCm1H74yOjtvtwOvXb/H23Wt8++23+Pnnn/D27Vt88+4NvvnmGxAxno/ngebl4kLThBJdgSTN ImOgHzNAAh75vJrL9dzeLzu8V8XoEXoOGEeYx9/2MHsdNYTaYeuxwZSaDgDtAB1PePX8jFc/fIuf P/0d8OE/49e//gv+5Z//iF9+eY9f/vIeLy+/ofNv+PUkfPzc8Om8odMzGAde8ATGE05uAD2pED5Q KdUU+Xt8I/M9Hw8oPc+KwKiYzDxgdJxVfrnnM26W6LOdIRHfs7Kz4pVxOed6d04U39ERsaqz+h7t rW9XrR7KNXzzrswsZ8b3Kx8HkzgFK42zwTqOuy3ay3CbDrLC/aowsx8OtrSYZigMxtURiuD1+ZKS fMPGymHEtNbw8vLiIWStafgPIcERXuyvKdkRmOeoK5+zpCUNkUHJ8AE1hQD4+pl40NeB5bBlmhnn sBr2p3jqy4TUdbtSqMVJAh+H6W1jG2sYVzxz9eyRMuoVZijdl7n1+5W8sL+3q5mRBiLfa1Xigdmj sBtIfS8DLDexJY8w1DBI6/lI7RAR+NS4vZSdgJn9BkkiWR3UultmAo9kEWJiT+eWFaB8gHYxogHu EU9jbu46xqibmX3Kdw/1lnucqAmi6vHxhpaMd9XnCt65ObaK7mXuvaN5rP9taIcJk6ECzBty+fvg DUqGWSZU8+gdKuDzfQHSho63jsEOVS8YvSl0BIqjHzrIKhB3gjN/Xgkrah2gHrF6zTwAh2buUWPN GY9hWQxLTh66kzsaDh+nCBhtr4VHmlnOlDQi9/DlWGXjXwLvGIt/kAoQXd/dsm/YmRwYo1zHxu5L 7LfZepN28rO8LxTw2vtE5Du8pvSsDDgpFpbYcZ6f5ZBbYzw/PeGbb97i3btv8dNPP+APf/gDvvn2 LZ6eniQrT951IYLHUlvWlq2Xs2ZXmg0r+X0T6/9gdqN1mxmQ1RkBeb6eHvLnlse61lvj9w5MgGzz k9C0KT3u2dRYf+JvQO0N6PYd8N0/4s23H/Hm737Bx/f/hH/547/Hh3/+v/DbX/5v/IwPOG+fgPYG H1+e8P7lFT72d/itf4NP9A0+9Tc46S3AQOdDD0urAo+g9552hES5uaV1mRwPJjeUj548xoOHMpTk V1p/wDzH8o6tR+nDqTutz7HkmHiW8BbEIct8M25n+Fm2WVkgAHIjuqRjjd46sxqv6Z1ykJKH0Ar2 cZsTYW+Arg1gLnWulP1VyYYHNLyGNT7G++lhgBMigqCGiQ5wqI3GfCovjLMKZvcJvcwGA5hBbGGZ hp9Iidtjf17WRDJ8uo9FR8WAxMMbfPai6kF6x0BrxdCzedAbnVkNBksmIPze6jWc0B0KjSzgRpmA cRBA6OEA7bpLonLMsipaP559rzgeAEk+wLaOetDBaBCUM5jDfQVjkTk8VZ4ZH1M9TcViT3KcJFcz QDw5kvO9MUYj9p78Hft2uWNnC7Cn18xPhmdpnHzhzaq6Yzbq6pmLatBmpf6yvfJ9cQZgVPitYra0 zNPySLFO3dOcfsuXrgyD03qDleb6qdS38wi+XgwRGAktZwkY2tuAv/bWXJecHaBOhD8rCqmdqciw HZD0cB05S9I40b14nO7BuFKcVmMMPHPBYTBTHG1q+xEYcl2rn98Zr1Y3Rjt6KLMBmt+3BVINuNpn Fki7hZEF1CPjWtLVXpZN49VWxr4C7WW9xThsPTFJaEBdHyP8s/Bbj2Mn2O+PZ1VCWMn3R2IYw+HQ R/7SKJ/30nZjN4HRcbvd8Pz8hO+//x7ff/8t/vDzj/jxxx/x7vU7HAfh6ekJfrA6CXAiFQQ8tr9l EP+1TEVwWjOwAbZjRXSAmx7kJJbUmHSiPb/Dq+d3+DfffQP8+vf4+Mfv8Jc//p/48Of/B+APePeq 4Q9vXuMT/4L352t8+PwGv57v8Jnf4tP5Gi/8Gi/9wIlXOPsNwE1Vr6bqYobPCJFdYcrwWzrJOItz vbs2tVue579DP/rZlJnZWaSyF83jt61+KKgjz14pHKu9c1GY6BEWNcF9HE9LRd/a3Y6deesk3MJe ngnv2OMbjcBnlWl2f0wwDstuNhgOyejK/XvefGBoN9OE6BGu6gPAMGeWmjXLFjGQ1/hYFffK2wV/ agCMMifCTUl56KkXmZ5pNygbRSv8V4W+zsVqrg4d8/lyOqxEY4rqGhmx00dE4ZUwqE4R7lTfyXIp K+7hXJrvmLqH8jy/q3V/Txqs6q2V81l3W+krE/ybsxSPGc/7MhkA80s6MM3LK8xpJMBTIvZGoDkQ L4QpTfnNoz0ZBalLBiQGmbW7lYHAcXPhDu6qKHqdRuOidqtdinnknW3cSTXlsV8FTk9jSUA7Dpwv li1CLHGJk5N7FwdCYLMk5fBnHY95dnO5Uqwe/W2ox8ljbIw0T3B71PxLMbqahYAsS0XK/yvjFk+4 39xI4c23BW+KsDBRndt+isjn5JXIY8w2RC5+Y2RSqC8V5FmBzjTmBqBYrnCPvo5N3ptTjrmHrfTr Z2Io06cx7mPIMGGxoBVmYWYR6w1EesA+GTuOmAeU/pUHP94H9NB713nurczN/K4YMpKLnqh5TKhn SlGP58kMAqP3E8/PN7x58wo//eEH/PDtd/j555/x008/4enpCU9PT34hlQl7y+1vC8i38gcFwAa/ O2RWPabyd97m/1I16790yfB8/S7ErliI2Wzo67rydX4qsRE6v5KY2eMN8O5nvPq3/z3+7u/+R/z2 z/8ef/l//x3O9/8Bz/2f8G37iB+PBrx+g98+3fAR3+Bj/xa/fHqL9y8/4Df+Hh/6t/iMtzi7ZBPq XcMW9Ob5xn5/L2B8X3lGKGZCW1IxPJ3CZ0jlTsT+clJup7NFbDtwIx34ToAyJlvHceBT8uZnj6bs YesBURLYJIWwfgajseyY9iSvPcMToDt8angsufe4g9g0xrmn31szQ8+esVxCNyjGtnXXnacRx8j9 0KjH3CcPsDs9CO4xhS59Dn7Q+UV+WzhxuurkLd0bkTPkreTDIO+tLfkQvELpxejGYAOLkm0PGydH YDIUCAfcs+l1bWenhbJbPOKdTulXzxPYLdDmKIkjhaEviDy7CehkfTXVLUb548p5tkxR5xShl4ye GDc6JIlTR+80GBjV2M5nYgDIToN9Zkm7ynqHieCmnBmEodXkVHf+QpjPMFpI8srqqk6C/NfKYfcy QZMwGE7s5t9zbej7mEmzfHHTXcaot3LEXpWVwfbIe7l+xSF/owAAIABJREFUfee2tqpHIsjA1s5N wc/yJXs6audIhPe1xSzM1Z0AlOrUMVRLMG9RVVgf0IKmd2qeYPPSOtJz2ipvP/A7eRcWfVDZknzE yluVjL/hOcta8QtKakpYkZRfRHg2X9rCzFwW5b5lu94uk+iGfRhWpYvjOKZbHldK/urd/Hn2aqz7 zsZn/m2Fj8Eoce9Gk216Zcj1cNWIo5WRl9bK5Rxm79mVwj+Pcz930WalXaLwIkdmGlGFOndR+vnE k1669d037/CP/80/4Pvvv8ePP36PV7cn31HrXQ7IWQo6IM7KZE8Nc93t+q/lS8ua9ue1xxz0J/Rs Cs4B8Gsw3qHhW7R3P+L1q5/w+ruf8ek//jt8/Jf/A/TpP+KGDwC/x9vnho4/4yO/w/evvsf78yP+ +vk9fvn0DT6cb/AZz3jBK5z0jBe+4cQBxg3MBxo1VI7n8PK8bocxLtaZKThaaXjuh0GLwPb37Puk EBT+Q3CH2z3c5z7yOs91v1ReZDmx2sUbeaMp7eMlWlJmHiLKfHfHzqpMnlXqMo8Flk6u3epYhXf6 QeEWB8LrfUH578r7W+HxdxBqTzwzo6cPirsbN8aPvkJsCz3peMvNuys5ZPSVFeB7PHpHTyv6rxel CQzZCBkvR9u1l2FnlXPhXDsw7PYmh1VeL3VtDXNUxtpAyRCdYRsBVsX9EIPDwrm8rcNt06FM65X6 NDd13FdyKMvrleHwtTLsNjOovE12wi13P+wyE5CfwCfz9GfBakId6n6wbD6bgXLT7flyOMb7695P A4NpPpQkDZlHY7y5LjwdTS1GuBFwEE2e2HuFYgVMzCMzRbJgVQBE7DHwlp4McteeHZ2binkxCLFg vpSZr6zHICbbYhSGdeCAzIJlqzm2C0R+n+dLFFT9uc3wimUtpfl85fr5pL4uIFOKfcG3oR1vw+bR uPSkCI9w2vO1YrpfrHZRThyylcuahpzfmp2j90VGjWM0KubL9gyDuiNDIUjdq+oDBczjaKqOxfbH eFvqP96L8oiyX2JYMR7UJZLVa5Cw7xqG4UZ8DnGZp+r8xiskgwSjny+43W548+4VfvjhB/ybv/8H /PjT9/j+++/x6tUr3HT+/RB1ZxzDeRX1fOpQ62hDfysezAe95I/eRLx77/Eb5EeHwb7s4P+ycT1a dgqhFaamY+VhXZLF5PcXpfsDTM8A3cC3G+i7H/H89t/i+c//A97/8X/Dxz/973jq/4QbPuBGH9HO T3jV3uO753/Bb09P+PzmLT6cr/H+41u8//wOH/q3+Igf8Ov5Gp/xTs4E6A6Q7x7C4GH9r08Ekutm w0V+E2V3qZzTOFODnynzF/8YMdBGq9nw8GxyFsZmYSae9ahCMO4gmpzpnnWo8vPZcyr9yhrqOEEt 0lbHgj8HnihZww4JWbD2W8K3b5F0nNmBN/kgzYscO8VE5MqWedTd4PeQLeOlJ2wLx9qnxACcBxo+ MD73zxbDzqEX5d8Zp11fpgaH8bAS8qzZm0gpzc5iGO7Mc91S/TwPh3rm2Hm+zPth46dDl1bynFPi z5tkGTvFs6GjN0D+F/AMU5SdKTC5pTsgJ8CcknQoHtuG8YkxPTtIbax2miWditG5HkN+bbxnTi9D CHpiuFHyUsK2awmZfDh9BWzZw9enszRW4lIxyls+M51tyhAdU4y9elZp1d60Q233den3W34hIz2n /9ohKFu0VwMaAE91tgrsJh+//FXPUcoAs/OErPvQuFSHH66oZvi+pqwsUexgmwhq35ZDvrmJ+ZGy 9A6U/gDoFnfLtCpM9o6xcQ+uSrw7uK6em6cu/75qN9Pl0utWxpxLXgtmZE1ehaEtLu9EW00zogjc s6JwHAf69H6MQT6v8KkMh+KdK6Mw4yAbOZdrcPD+78uEd8x4tT5Xt2jKBxGMCi0+v3zWMJ4bfvzx Z/zjP/4jfvrDD/j222/x7rXcWushdr7tPSrI2VP0SPlaD8q/vvL7h/dcldV6vlcfwLB7GyEDN7ko sR1Af4vj6Rvgx+/x7t0/gP/5H/DXP/6vOH/9D3jFf8bT028g/gt6/wuejxte+g3f3d7h4/M7/Mrf 4cP5Ab98eo9fX97ir59e4xO9xSd+hRd+xgueALxCZ8L5AqBZ2k/ZoTJFMo+vZpPz3woeZn7xuNed OfKqZ1yt8Od9DpbFPivfbq1f84DQBWzn2ZUPapMXevk+mdEVyQEyLxidEWs+nWHZ0ZtkfjlFoQfj aA14MEHGqh+rt+L5eV7Vxoj6qQ/mOOu389o+qm/42HVHw3lqUQRP7HerMn2uDJoKn+gAppivdbr5 mYbUlpBAchxulG27JA56btNijj09rOF3hCPT0SA7Md4jVOkmy8Lhhu4Jb+tD5Fd4yMVhsPEn/lfp 61E+YfVz/zudeycA7fdbxJNZxfDd1c5WQPjAlEG6wWd1tDO7YrzGTu4K28111RI2AZfk3KkMSd90 2OLmxxQ/xpDvNHpYrEQuEnthjMnbwks22HkccYLbhF7gO5RG8SS7J1MbOu32wxSEv1Oar8rlHLJk 6rUcwkQdHS08UWA3GZ1g3ZDX+XH9TQ8BbfL61r6NMbCOy0Pz3X+8MQ5aYZ6FudV5OPPiR5zmrwtw lclphe+oY7G+I5M0j0WzLE7Zc5iyBSmrhd/gaQIWNNybkL3+1r/8VSOEu+CA5LKcDqAdBJz5DEDQ qR8urB6CXA/9roe704hqOdMw7yKYxyJikhVbmjnmpZ+gxvj/2XuzXlmOJE3sM4/MPOvdF96FLC7F Ki41/dCSBi1AgB6lmZfRX+r/pOd5EwQImAdhpgfSoKWa6kXV1Vwv73a2CDc9mJm7uYVHZh5uTbKu A+Q9mRnhu5t/9rm52eHmAHdO7+Dp06e4e/cubt88xcnJCdarNaY8lX4Tgi/Jf1SPdAvgKhPpusx3 +9z1mfr90vXz+y7UBPCDKQa5tZWfEQuc6zpxaMkikEI3xcYcUX2YZ96A0h3Q0THo8R3cuPkuzv/4 H3Dx9X/GQf4HrHCp3lGusEkTmCYM/BIbfIkbmyPcHQ5wwXJx+OXlKZ5fnODldAMX6RYuxhNMdISU DjAq8S9AVddGaYuuXwMZxT2VmmOUfURs9xOyCkNlII39NnAyW2+ur0zOX2OozVSznIEyYPd9iGjx IiXlFrx2dr7yuVF0bD1oiObWax2VcfVy3ec/M90pDCk3+aNnr9+Ry5wIqzSI+2UHjMUzlT/9l3ZN LIB8mupJBoGauAUFz6CzTjVv5rGzF7p9RE8+hyR7it0Do4JnUvl/iVBCQOa6b/h/jUiSOAS5jjcB OVfmOxmIDvU2uWsxksBJAyHOFQJmdncT/Xxo5brM63pCPSQgawA/zh57ygmF4IxSbTBzieeBTOU+ TKJ2U5HnKpDukXLStjpnVpSKcixjO6mbdwX9lUls9sNaHpdxrJVxc692gtvHO6lYSJTHta4WI4JF iVvOYTFtwyiFaFlSWHSuujsAc4CzLW373Qs8YG7vv/RuBQk9BaQK0tI4y3+HlgPKsEumkbG1fxPN Ny/JZE9TgE4dmgkOgBScRWYoMskxj6jhXhf8x3p6oLnEynLps/C91dkYsY5QBlCOOLeNaW/Sks/D CYJSfmh/ZDZiGUC9CNSfV8ufgeW7EpFNMOaj1Mn9ZkfUJf8g4Hx+s77sjE37fLnaqM/XecbZ1z/Y tnpJ3E27FbhY7zhH533UziNGFpOdgXD33m08eHAPD+8/wK1bt3Dz1ilWVL1KsF7opZpht5zKlM3r 2Ztzv7xkbfuuCsO+xTlwu8iitfJuyTUj4JmxQcwKaI3MGwyrI6QbJzh89wSbo5t4/dmA8eKPWOEF BlyAMAL5EisA60QYx6+xoTUOaYXT9S3cXJ3izuFNvBpv4PnFN3h1dQOvr45wkY9whUNMfIhMKxBW mBigPIFS9Qte2mcgL7VzKs77pfkP98+2/urLy8mtI+tDCoHulpMRJ1J+K0+luP6aFzlfMpnVU8ar H7ukJ2N78nupvkv7ot8PRL7WZHeAfFlWRM/N91IdDLDO5G4AjPM6L3/234s1gztptRvM8FA7eDLS PYH8+iF9nlE8//TL641F/dv+jfO51C+8K/tIBZTN84ONS5UNXpligpwicXWRO2BoTHekjHp53H/f a1fv74INGMga5M/GsOTHNa9ZvuE379Goi5u2gHL/vVXA8opAvffOEl5ZmnPbgL+lVRRWrBc3hjDB lxpDauxov4sDBef6al9Gg8TLgPjFlYBckocxLLYg7RhIy+MRwi/FUMXqVabYxEFd0LWPJauvfrZp vgswlAiC9gxXu6xpmoSB5KrUkDJLueStEztxYWljMBFRTFazxdlPTjtnYfOb+qJuOknUaBDE7SiR 6Z9VAMnHLYrhECa/9pN8XS8rxc1+MoXANvqZbbLa9hWvU2hcl/mqecalejNQLx0KHr2r2aHpx6kp d+uiQW/+i7/8Cm6oYbiNuWGul80rWKfAt9UNiyPllG0eCIh3fJD+bIw9gameqEwTiu9oqZe2PTDi 1LvBBDgmrk7KOv88E2SnWoCtSS8gJTAXNd4hpixr9uBgjft37+Hx47fw4MED3L59G5vVSjcmBk+i IAhoSWXcqASbQqlX/dt7y3DtiRvUnun7Zv5/+PTdgP91FSQ5Hdz2xBKJoHczCr6oG2x93lhtAmMD plugww+RntzC6fFbePlP/wFXL/8GefwTNikLAzmJ1xQJRH2JhCsMuMSKv8ZROsLN9QZ3V4e44lO8 vDrFV2c38GK8iVf5Lq5wEyMfgbGBXP6bKjFkfuIxYMwiv1OZU4D3WgMi9fdNQK7fN30762NvTlNN Uis8zCVujdxLcG8qA2/3f1g9yJlc9n0v3VzXs+2vrfeaSv6IbTq5+0ZePqpCQs5kWDB7MW2cnXRo PRKc57TMMG9oFoW5nMLY/opWHlv95dzF9WshNyzeTyVIuokGUErgPJZ6GfHCzHIS4EyNC4CiDvBy /S3xgt3vereDs0XQNqCfQGrmIuNoNRWmP0H2wnpy1O5bTfl6R8OTMkx2Ii93bozMSjY+Wp4pDZ5w 9ClG3i1hbtzJk909sHk0DIRskYwpKhCsgFxzEI26tKt4V9Tn664V9x2dcHBkUYeQsMv0zbhuUSQq 3WT7WAD88iAIg3gstP6z3znsS/o5kyqVti7Z6oWtaUmR6OGVnmLi6+Flwioyc6QCYjvYlCRgN3cn zHU32lhpAzLlMm/RmCozwMxAkgGwDcTX2yL1zYXtHEwvAX4KpkW9PKw+tcztbW9+n9yRMiDCqCPo uu+6ZMrS/Lv+8+YtZ+UOGUWhmk+ifdpSxFbw+ev/LUIvZ6AEaam2wL7/I3tWNdiaR2TniapJmt88 gVZc7prXs7YFUFvydGMVvQn5ZBvYrj5tN9i6ofs6W/t67xp4aqM6TrON+9umuF4AFAAxHz+gnHYJ esA0TRhWCTdvnuLhw4d49Ogh7t27h+PjY6zW5gpP65l58fTlTfrh0nXl9g+bhP0UEokw4QCUDpBW B6D7N3B6dBuXfzzA+Rf/EXn6Agd4jYRLMK6U2MkYAImpwgDjJcYMrGmNTAc4ObyN0/UdnOXXeHZ1 jheX3+Ds8hjn0xGmdIwxH2LKA4AVsu2JcPJAaylzv3orkfXe33Pi5yjn7F/zWFPy8yDUnabUoG4V KjXyyuXhy5yBn1KJ1ua67nsCVHv17bWznMpzW77J77gvyD6r5oHePtrkSm7z98kDdiqkEMq7/oTA 97kQUQq8w/4fPQyWd52JcdMu/dv37ba92jPmzAnEWZ2QCIEo7+qdlC1Lssj6YGPCLgia3UNo6hRB 8ve07L2iNnIuiuy2udLMP0TSpczghRLbE5IIgmdKGsSxjf1ub3fnlH4v42HvzHFmfGcp+XEvrVvA 2fvg7yV50usDCu/Ys6vygL+BDTme4casATBNy57KjS/iORD4NimrAEpkLv1cpUo93BdcJ7t8rXcY OKkbqlI9x7JysewyG/tUvA7Exdtvh/mDrYAsPBcUEgvkYTahAnydFmh9lusk8UFFdifHKvCEQY29 y6hyXxGyjawIvbS7vJ6maey6F5yiSWvtrN/tnXLxb7DaCxOEJHOPuKmPMdXMVdO3urRCWvIbQz0o Rcak9YKxOGc5qdCwzdbKJQXZlbkzYS7PLAFXBemFwdD2a9HVdtPXpVVlmOtXNDAaryawro3jGJj/ nWtUbVStXu4XqXOBP0UJYLX3lo1HplsWyhKr1YBbt27g6eO38Pjx4+LFxxQn4soW2rpq5xm5st+k X0ryXtR88nNTAE4GaxCrCQcY6C7o9BNs3ruJdPQUr//0vwPnf8ABnmGgK7EJL/eWoBR8xiYNYBox 5oyBL7GiZzhNf8Ldw1O8Xh/j1cFNPD8/xTfjXbzmOzijWxhxAvCAzOK2EkAJGMYacdRONRqTjh0N nzPqHpT5eC9Gk7Z5Vxno2PviLS6ubzUocfFlWBUjMbWrly8zoF7/gJQBYNJ8vdzwdzbmTCo52+dG RhuB18iQ7PoP5TvtpqatbWyYoDD5gJJuOg3DAJ7caYO1f8r17h45s03N0zvCqL1IOpcUVJU+IbXn lzG1E43s3rTMc84YFHfYAVpechYx87LXMuADyUl5xSGTKEEOD0g5wrCXk+khNX2Zcl9hWQpcm7XP ioIlm0DzDOU55qjbmzL+ZEQPSl3MXNYTq/PzDr/W+ibmfQJU7j1YRF6/Sss0JgKmeDcCpS5FabP3 jOCbrbl5Msa/0Ad6qmcnEj0i+ttiaV9egcu10gCCFyCgDlBk3vzGviv1AOLWSiogjqyE/33L211N aEmljcy0HCLuzzL2gFMcqHYB6wRyt8GnaSoKy0DVV24j0K6pkft6mWBZSpnsyla9RFby2LMsn7ad WPgUzXjie8Wzi2doTPELGqCPLN1rb1TkemMTF1qv3ozJfd+/PxLbIaxMtwtCHU0JqReN/KYjdVOg EJRr+zsjB8VEQqb37l34+u4nVFItXwHYkuIg8oFACTAThHHMODw+xIP7d/Hw4UM8efQQp6fHODg4 qMAvc9lU951Hb9IvP8V5xmynSgSiA2Rag7BC2hxi9fQEN9cbvPiH/w0XZ7/HJn+JFV0CNIGnKtsJ EFOPJEA4MbDm12B6jil/iQ0d4XA4wY0bd3FnOsdXFy/lvsB4iivcwBUfYkqHmPJKLjmmuaJa5MmO jXwnW2jirnmsgp5W/mSwdzLA7QmEMeOxb6n9EmC5VGsyNefqz99M+UwGmM3/Piylf84DnF67Zv0w I3iW91/AAVPnHclOAOI4+Xd9nhlKVGm9vbyNdat5qMFIXnZwUve1ChajnC4EZSCE9rmJGE8WvDVC nZdoP2P3XOwlP65xL7Q5s4Tn5EJ0/V7y0EvCuqbSnvtTnDczxdCdJolraVsroW6B+IxzpK9MSLIy evdKYh/FVH4P3/l/d41Tb43sIvjsndXsS2dLLwDDgLJolVWn3Z35tkpQ8sIwu8mz6k5SS9G20E+k ounC6cnG0OawgFmYGzkq3r28+oJrGQxb+xINTTtYNXSon+ScZCMpGiDZAO6sUrd+lqICYX6gzdZv kpdmG8OuA4frCotyXqSsSWGookBlYQyi0Fj0VuMEnf1uGy+zu7y14MVpWUmdswomqOXUYAp1tL7P Tti4Cu7oGdvAM9n9F+8foo6rnZxMuhEbaxXTbtBsJ09mIhTnfitQJ3Hdonlzs1aJqPoh13sBZoN6 cnyAhw8f4v79+3j77Sc4PT7GejCWywu1ubImyY6sdzTnTVpMuzaBXWnbxvV9px7glf1H5bmu7To/ xdf8RMcY0mPg/v+AG8MtvPq7f4+LV/8XOH+ONY1giGc6m6NECXnK9SSSlI2jEYQzJHqNQ7zAcfpn 3Dq6hVebEzy/uoOvzu/gdX6A5+M90HBTlAAkMEbxQJcZJIZCyM4stoA+KNGntU9sp7PJtiJNc+a7 x+RnfYZZ7LMnkJAOLPbdA1Iw5zSWtsq+do+ostnKISL1pJI0CrEpG0Y41NO/Omb2trRjKjKd3e9e jlApz9rfBzPtvIhMePnN9lH7DDtpKIyD7A/FtHj5JJgTgac8M2vtk0v6XWIQ2NmMO68+bs9iErOm MXPpRyKqz2m/2h3DpZOAqmy0ZjCMCUiK2ZgVjzj0VuQ3GoZ4Qv3ep9lJCGM2JsyMbPWlNlhrwU9S KWlfM9bqqCK3J0jt2vDtTM2/ddzay/A9IiFiRq8YFdfyAd/WS+62MCuu6LkbLQS6MfxLBKX9FNaR f6aXfN29m1mLtGw4yM/RlFIdNP2+UQCajkBfo+ylWNGetryrIT6fbRqX5d3TmGJ+gAoAysIKbNkQ fQf58v2i79WnN2gGAiPzAQDsjgf9996TkQHYCjz3S8ugtq1feOtaQGGpD2bAvQPkvWCeMRAmUIga jbpXrx6zEMeq9id339u/zQu+6zv1uc6879VlQmU+vADyCo0/+Wjzif+ae9+23F5/7Upi7tSf61MJ uCPKyfHxMZ48eYS33nqAx48f43CzwWq1cu4gw1gx6RF4/w7On1PaxhJdJ499nreyel7A9pEjP1Yq dWCrm34PADSAiZB5jTQcAPdWOBkyXv2BcP7N3wD4Eut0Bc5XcnmSCJknpGQmmO4OEjOGNIlpRrrC ePUMB+kZDoYTnAwvcOvgHF+eneHo8jWejzdwRTcxpmOMecDEA4QcaOvswY8H/+UZ389cLxsKcNou lz05InkIkPRRU3vvzPLoyG2vBKRUCRXbz5bksk/+Xpn9G/P3wNmnOWjrP2eArCefLY95G/Veid7Z 6LGs1l4AWK1WW9dIW5daTXs+mhHJ+KiHK3f/bZbPt0wz+cnz/P0+4pOZHMszy2OceA6Qi1Lp3GjX +B62L6ZmDvixiv78o8egXaYJPZkVx99wo3xuzYhLPbxSoMnWpU9WZ8MZUdGJ+c02YszHOt55m2Gk UH783hQv/25v3fm02nW45BdS/K63WZRKK+heOg/jsipkMJgqQ9HkV2zlzGsJjDbsdky1wNZZw9zY w8HuNdi+YnXlVDzGNJN5qAuBwTOvBgZcih8dFi8UmJKLTSA1K9EJkZAxysUc9R7E7gjKQmhfdwNu x6AKccALIdv46gQholnkyn1SM9n1ZRvu2XwBGi3XbP7tTgRBfDSbt4nZ0ejCKc1MMOvCHGAANc2e 294mWzRT6M/czPlefp4JqGUGl4fGrLnIx8zidSvnjGyRjkv2jvFzI2TsYf3KyvQbVBvTQP7urxvX ivBZvDJ5LwgmD3KWU480EI6ODvHkySM8fvwYTx+/hYODAwBi4pZzBqVBXLEVG1m7xGCMhX3cU4EK 8+3nm7zAX1IwgZl3qO8pVS8alv5l7lgsxZuIXqrKfgTYOZaa0K6R6B5w6y9x8t4RXvy/wNmL/wTQ F1jRmUwUljeYs97hylUmkdzKGdKAKU8YEiFhBNErJL7AYfoGJ8c38GpzE88vb+Grqwd4Nd3Fa7qD kW7iagL0yrHWtHVSUHjLJP5hcpnvrDQnld8BH7m37Q+TG8nJw2oyOLnOzML66gndHEMl1IghgN3r SZwVq2i9E9kEnMk/ZkaJX8KRkcbsNMd+9+t9bvpjpMXyibvInnGrrDBToMQmvwXw19hAQHMqXICa gmCy2nE5GWGu/toHGGljcrFtR8IgJzBknny0/hoBO4LMpCcTdiF1tttFLzpB/vm7dm2/Zd1f5E6l nIZljRdT+6mvnGF2EuBTwYVD0rslrfxqQX2PIKRSP2osJa6DRPon9qzzNvGCEk25mIlJLSyitpAM pihU7Mu2DKSMLB4uTREoZWuzTDkv/ZHaejT3PkO/2MVur8AsKbRe2coaCwOuB8t6c/u3L7c5AVhK BtC2pV2a6zZmiZkbLwc9jT7mFcssYLZ8Bgzly0SU89HCzpQ3FbB3tCQidX9WysxFmegNRlvfeWeL b2sLyNH6cY79sa8C0AOkfhEtaX5VALWXbWO+u8qefQ4KwFIbegxKSi1DEN/fBcABOA8KLWO1rf49 hcOXEeu1b5uackygpgSxQ6zg3z/H/h3fZlLWJTNkKg/N77167MMm9RR8+74K6bbvy/PEuHHzFG+/ /QRvvfUWHj28j/V6rYw/NFKv5qterkDGluSmX3tCbUfFu6zKj512rdHrrqFtz+0znvu+22OIvq/y vs/UBZ2a6vxkICWMGVgNj4DbhBsfXOLl7zPOX/2fOMKIgUYgjzof9Rqei3YPMxZhMQvNRBAjnQus 0iWm8SU29A02wxFOT+7jdLzAN+NrPL98gRdXt3CRTnHBh2AcI2MFXgAeGfNx8IDHhoHTvM3FzBHo RCY2hbpd+35fzApYBRDWPmzlXmt+yuG52T5D1cbe5FwxY1UTGl+fUidHlrQEReyb9vttc3LbXvdt k99DUkpycZirm+tFfMLoKF1tvl6e5gxQ2l7XbXtPrw6+LzyojOUDLftMRN3I1900tCY4u/ZIw1G1 agWqNgDVTJW9E4p9bSGIHPPu6uZxpr8jQkRCwAHlDgehBeSWqne9SoLZ94bbttVrSaGNY+HTNizV wy7x7kcvL0vlEnAm1Won4xazXsjQCgYgAKdhLSUDuFL77AQLF+07WbA+9e6SIyPQsem3JqRB3HiZ 0CZkTCFibWJhWcrdASI5VcCggqpqfiBC8UcNtUpjVuEmoIXc8TFQNfEU3KdxAXfuEhpVv7v+fUIV 7j0QunVBZQl7PjqmTJ73Y+AnUcuI+3Ij2N43FYFH1CwA73O2fhkUSltgbi+PgLABK1SyWa6LS4OW VRaz/j24E5K2/WKL6I8ve/8uJU5OWwckoJACDOmnSTcHizFo42MbImmUwOByr+7EaAFDBRDLyihQ L1Faso3ZM2RycpQ16Ba4rgEAGMdRvYMQbtw4xZMnT4T1f+sBNptNc7GXIXE9jDkpdbQmKPfQ6859 5t5u//M/bPLzReqb3PzxKRIB1faZmrGcM6FtyqFXnfvjAAAgAElEQVSvWsar9/e272ob4vq3OyL/ Ut6WWkYvWRwZW/fdMZeT2WEgMAYQ3QFu/yVOPxjw8r+OOH/+n3BIzzBgBNSmO7OZGbbz39aA733O wJAIwBUOkLHGFdbpK5yuT3B3uI1Xm7t4dnUPz8d7eHl1CyPdwogNGIScoFFRSdpk3swozeavmIY6 +U0E2bm4lZmAONExQsAp6nW+ST7Fy531EwDmLPF+uJpmTtOV9IHuiZX5reORUv2+BGzKEqU1MZVo 63IqwyFAV7tf1ja3ZE2EzHXdkGIEZbTl8l4h9zictBrzXyeM9btTwYgkorhbx2ae60+cCTTby/zJ TCN3mcE5i2VB+crVw4E5qfsA5rFgrUEVtExG8DiXoGRcpZ+f5Sy4fuOZd9lQQWnAOE0o+1AB4a39 OoDqmnxH8oSVd2QhfabNtfrqF3nSX3V+sjvx8gDYbshk6H2EJHNcPLayC0PUvwtisY5yspObcDpf 7lAYkSRrI6niXUxS9QTIk3XbCLbo0KJEI17VEw4LDCrlQzAQy342uwMVYiD1lIilYK5G7Ho8FZWi Vel0XbR26cIPrgG8a4NCbCfppBIVOO8CvD1g6KUocwsKTFM3zUwYi6wR6KyOUYDWZEqAf64Kqqls 4skFEuklE7S+fh7U2kTzg9MI+x2gswDo5vllJqT5d4eCsW8iIoy52p8uhbYu4+sUyl4dF+vtJYtL swiPC22qbd2uGc83Jsw07e7zLi8LatcrY6B+mXJEu2zHW+Zq6ZN5nfrKXDxGjHnmAhoEICmzME31 nQScHB/jnXee4unTd/DW/XvYHGjgLq5lmbew72Ne/dTSXNDulon1Hc/MTCDa6wD2B0u+/r+EcSIi TDmB6BRp2AB3fofT/ALP/vYCr17+Z5ykjEQjOI/inEE9W8lcNfazrg+WHzC44/g1TRincwxI2NBz bOhrHG++wfHwAjfzKzy7uocXFy9xkU9xhWNc5A0mFo9FxVwjnLh6QJYV5NldoBZbtqc29m5c//4u m5Ef7H9DK1Or3DRZ11P+hPQiUnbWKyowUFaZ23KSsAUARObT16fdaw2P+NMErntv2Pfbfo2ftX5E Eoyp9Occj8Q6xHrXunTK7IyLb0v1djfN8pphL/dOoxCF/orl+N978YniPgCguO7ci4RpFKy2vqWu 5Vn1v58Aca2tdc7V/Ll5dzD/+4N4LWQuShcR7TwRKHmxBRztAwerY0Lbb2ZauNhul+z0pLcuzc11 HBMjOr1Z9LZ2WLl+/XszIV9u07YFsW7Pr4xB5GIrLYspWyTWkIHZOBV/uPsmbs0okjGl1rBUn+tp NGX4gjefJA/oc4MTOKLZiV2/2DsSUICNhAtgdVvIM0FV2H8bVCYwsXEoWrgyFtQCRq0pmg6krHZj ps3XBVJZYJvk9XNc4HGxl4mmHmosGh+CxjsIjyEnKJxBaaVeIubC4tukEmmvfOG+dwDR+x5mZtCQ 6u88n/D2r7evT00k2KnpoxL5gPriod4Rcd4ZYFNobjIUNySrQ1RGrcH1RCyV0yTLB6iC0XvXker2 zX/M+j/B7IdbgVH/jl40vHeedt54hTe530veiZBZNkOxV55wdHiIp08f491338WTRw+xWR/C26W2 /SbM1s899RWY7L73QrddS5bmNvb2vczCmva/7G/1qHnN662/oBIcc2CwXYBXb1E/bgrH3xGgcPxe I4fr50QaO4Y2AN0F7v5r3H6P8c3vL3D+4r/gOL1C4ivoggLnqcxdIpII5YDsDaVA9cylvvEHIoAJ Q2Ign2HNn2NDL3A6fI67w2283tzH1+e38Wy8i+e4jwvc1BgCqJHJDWCSyRgpf0BuzBc88VT6xP9N UMBWO2pU17pVsfdgJpc22f4kRVXA0pTT9HfG5KaMyPyycTfvUTIZY3ulaT9c3oXWi4bUMKzSD8KK tvcb/KXS9vlStrXS5kPJ15wniHKULEBoA1LZya0+qJqNg8ntaGNt74W9uq4qI+3c+JLbl2y/tH1s 0hNjwxo2LlofO5EZEMYvmTeoSfdZyz817epd2u4qYVG50PZMBgwtTkYg4hL7OwcsgF4VEFPEamJQ HkA0oDpMMca+nkgxyEVG7qdBTxCtXYP1m+17cHg3ti/MdUNzsR/8BeDSd9qmMg+4zpfmWYc1lrDX IrgPuKTIEzVVk3K347liAkRcJ2FMxSQA7qLjvjZinQY0DcEggRm89hVsoIqIaQBYFTxeG4plejtj 354yoSxkeydFkJdLTcyTgHQw22YR29aAd1eHRBjS0NjcAfMLX93+6mrxsf5p/jwruxS0yG1sxr6p y4J0xjyeVJRAbVvyatqwRz2WHo2CjdDOJ6tPvHzTK7/H2MzmkAsEV9oe3pU53IJoD+CtTvqjMAmd BspY1n9j3XpMW6lDMjZKPBrkUr8J05SxXq/w9O1HePedX+HtJ49wfHwsAh3i6o4pI6XVjMnoz8uf V/q+679tHf9Q5QDzNb/v+34+/RxSBSty0ZZwBBoeAW/9N7h1+Q2++tvXSJd/wAFdgNzxOLtYFzF5 JpAYoiAkZaMnYE0AcIYBr7HKz3CAr3GcnuHw8CFu8Bk+Oz/D8/E2zvNNjHSCq7xGTusS2dbbZlc5 MVe6Epb3Z6AFJREgNvOhMPOtbLJIp/X0sYLt7IKq+VNvOJmW4p2FYkKzHaCVtlv1tA3VE5y3wa6n ELafVnka8uW4n5rzC3lXAripawVmQJWfKPt9H0ac4RWrbeu5wQGFqJrvP76evTwAFEBJ4T3f3mjr 3xBadnIQ8u+RjQAaZju2sZQnKH5v/GB5ye5nTl7moDoZoHXzuY63GIunRI09/7YyfSptcicQ/vuY 7C6ofy4mT1xbPv7+QKsY1neaftli19pTBKLywSUfdOdyTCtiCSNtGjlFykVt/MpCCRFu69/LrFIE 0k2HMG8H4az8OFMBTL6cLBl1wYcvc+KW3d0XoMRLWwDKfQlrg2+LMa8GbcvbbN5fAE56Fbj4nG1B cy/FwCBlgpHlMBUQJho3QCS3HeQ5m8EJoITMI8QUL9b/+ula4ILj574Nn6U6TgaIzTZPn+c4lnP2 Xsa95ifDJHPI++y23+3dNr9+/WowrwjwosLKzYIUO38UczsURkjrQZXBa9qj+Q1kNpJJXZTVDdq3 fd6X/jvGWGwq61H6dCUeNh4+uI933nmK999/FzdOTtTuUjZLVpvg0v5mLfXlwM8z5dCXPy+lZkl5 3f/9loH7l06zEwGz3YeweRLlU4Ad0hpMCcT3gUf/PW6cX+Kb3/+vSPkSa5xjQMZY7qpkIJkXlqGw rc2mDusPMit3YYCzMNY0MDifYUVXGOgljofPcXp8G9/ke/j87AFe5bfwEndwhZtyNwBDIcaT0JAo pjOZi9C3wI1wMsrLHfeT5KUMYGKB3zZ+RAby6rMeXDd7qDGtWUmVENkXcHbbzO5SbwCMMznkLA00 f9geX9oifSBOBJbksFkKmPwO3o6o3rEiHaO6lq2RlfBBuSMVgKzedWR3cmEMK4DZiVTx9mMnhdpH pAqSXF2o7e17M3PeqbT9dhJg3oIYkNgMbLGaUnHPKQqC2pwjg3NWDFeZb+vPgids3ymBuNp9Ne4n zR0Idw+lekUKe2lpoCKqwlRZ1PgkWM+8QSKcPizIXWYxW08dL4GtQrvU30lP7bVfEzXzvVGyXB1s PU7+d6doGd5cUp5s4VNDFO52r2t1iuNRytliGkbk4nrpqyvLsIDQkCJzagskgp4e6yTfz2+JWzLm QViQednWyV772raBxXb0OuCHSF5DLQLVAXVLWZefsTnNb2WiLycDWktguzAv5BUDez4XgSxuGWv9 oqbYAtf9+mwry0zV5rE3X/yCj8nbrO5S8uLf7RxdUEzDEVxUZhYZgYW2lt+dzf28Lm59dPL0zFKp V6x3J89tyT/fExyjG5+j40O89957eP/9d3Hvzi0MwwB/VmPj5fPqrbXrzJ8fMi3Vzf72zy39/mPI kR8ifR9jsG19/kunOJcLMyzfiMknHYMO3sH63b/C6et/xIt/fI1T/gqb/FpAPhhUJLOCU7341yDr Mu8zLMBUZnFxi0xit58uwXyBxK8x5G+wwlc4WD/HYbrAs6sLfHX5Gi+ml7ji27jCIcacFFUKIVBP /OTCZrxsOm8vZp+LzIUHTjaGcyIjznE/94sNtf5WmHlulaO4hywx5dvGL9YlpQRuTgDaJH3V8TKE OV7otS3iGGlP6FfnFca3c+jYfcfUgOdOm/dZl/ESaKz7thVp+72V2Ssvfl/mjlNMOVG5GBzbO6gq XC8rzwGoAdPGzMjKtT1XMd5QrAI0H+aZZUTJQyq82P7uuKT6nilkhKoQ1LVTTfXac/o2730w0y5M 4b+3edi0caktaPs51i/KAyP4fFrVAQsNdBqtB1Bm6y2sIbmOCRUsjEFVHGQhqC/ebJWr3i18R9iU l0kMZRloVowlOwmoip118qTvzRdRr7Nmn0279d6HGACJD1hoJD9ZkACnwDK4/pQBNkAnkSwtYvAu UWD+en39uuCSnOaJVCMSYy3vWiRi11bfH8z1wtC+wDIeE3rA6oUgEYl9ufcOkfSCNqPUWfrDvDbY RiQnHDb35Nyqc+ydWsFuSzcHG01owB0aTDlB0+YqZN3F5k7YdokA6jvEbDBzWLRp1p+lDPsMm+oM cxebIacFzDb/pH/EFrdd/FKerUjzImFzcSpzrxE+CoAyTzg8OMDjx4/x61+/j0cPHuLgcI2EarrV CDIXudqnSvT8NMA/sLzRyvd5tgZEVv04dfuh0+4x2H7CVZNYL8+Z5+0AaF+loTJzLUP5bZIBC8DW 0oGs0cN3cPju/4hXr17g5Wf/B26tLsF5xCoBiQdMJscSipcwY1RzkWmySjNLjBiaGOAJpHyzOJjI YGIkmpDwAqt8iTW9wOnmc9xZ3cZXlw/wxdVTvOIHOMcpRj4AWC4kl4mXqhyxxMzIkAuUww6vUTWC auzHaGPuf8vVj7nekbNLjFYPk4GZAFoNhf0tFx1NfuZJVKU4/ZxjeWYugZTYM8QsEWUlL70jpuWY NB5UGo4GIK0eLkLrtvk3I0NIySBmABIPwYAwAV4DkFpyq3gsxbGwRJwq82/tbrQCe9B9Zp4Ro0yD mmTP8RYzF3Pqko2ecDOhUeaKUmUnxq5/PQlVzIaNsdZ90lzmctmVLO6Brr+pmvtaPITSF9Zf2g+y n2fkVPfpgQZMejFepoyZa3lcYlFlatotPYoaUvBS5gyzJBD/QwyUnKkrGct3HeC/pBzUV9znVC8o s+U8t1+DN3mPeUTM0pSluNFOsOJdlVWp5BZdstHuPYhaSD1tpDAzBrI6ndPzstJjZZe0rJhfrx3+ PQP2gtxbxjbm2wPc5UKTE2TGXHjBSM1vdmzaKlZLadcGbnUpgtlsSuXH2XNlgbpkwjtqqPsAOP9c A/bLA/P2GFg3IWP9IY+zhlPvj3dpR6fbmNo276pzYVGYywLbNX+WUhGsvXoFhS2l1MQrMMVI2CbS IEXymw8mFxXLWB/Zv7ziMj/diO+yzpdHj57g3ffewdtPnuL06BgrVYwyuDBtzRxxJwA9ZXGfaKE/ VorzeWmNv0nb03Xkwk8lEQYx7cmHSLgF3PkU995/ji9f/gmvX/8tDtIZ8tUlWGXzxIxVSuIeclD2 z+9/lkyOaxDJpOZAk3qDEx3kCisiMF8h5ddYp+fY0C1sDl/jYDXiq8tXeDnewevpFq7oBBM2mHIC UnUZ6LGA7DOaOVpZ3UtVCdidpDwon1vz7UU49e9Aff1XHLF/Ig9Myolpux5NVmaFDPVsJ6zppK4U e3tFLDPsc/7eV9nHt1By0fvKfnv0HLB18+b2rl5sQSHnzDQIBlxbgrFXlsdRiQKe8XtOuThca82A XpCvz/j6eFPpSAD2WmtlDa4MabuT0QwlBL1TCU9gEUrXXkMkTeBqEsV9nLYrxb10HzzsFeSYZthy 4buST+fvpdQjZC0N/9O//Xd/DRUU/iclApCQQWBALwkR5pPTL6i4ydbIaPZ7cn6R62Iyf+32n6XI 7DPml4RJQVNSxcIaLJ8NaFKTT+0MwozGBASEElDOIihBLkrZ5CQMREjE0j8qwCgsJmPuaUgF7Jrm ubd0dvVdAnKlPYlL3kR1TEzn6gnxnjLVA3XbkzCEelsEwMLKdJNRClO2lV09oZuXHLUEJUOVyZTQ TJjQJ8lEVYkLYX6gYnv3b2v7jLTU29xB265WlK5K/pKd1GfQeVNGj80GMDdtIVQfyvqgPANTquU7 4lwZplI7mafil9/lDyBDLjPeOD3Gb3/zIT75+CO8/fQJjg8PykbbKr/GQmg+8sN87uBasvgHT2W+ aD/Fv9+k/fqhrkFWGVi9yNjvSwH39kpl4lx3BrX1KO9TKjJbJ6uu1QE42GAznePFs8+R8mtQPgcg 3oMIGpGcilTXNRjuCdm8N7nVlJ6RlbFcFVZZ9tJEF1jxSxwN3+B08wKHq3MkXOJiAjAcQgL8ic82 mMxmeTsl71mrXZO1F0J/UK57jf8PjKznCYmEf5Bvq4LfEDomu9RmwseqNVngZxFTUocF1ZSiEdf+ /luiVv43stwsBAhTFiPaKvI98KzvV8IRrr3tfmz23DNlwfZtY5dtf3LAN5JlZURUYbP9y5Mj5Iic TECioTDyNXfFHb7unPW6Wi57ge9pU9bMz714OSLoEY70rdahIWVI2XuykwE7U8ilz20vkyySlhMU KBrkKVJTqeLOr5ru9tLiCme9j1bmr4w2aSTv5OZSMszo8aHO9xYx+ikgfZUpS7tN8bR+YjMENLlh Fc4+k7YtROAiL/op21jA2mPV0c9l3utnuDW3I23FLxHXB2x3jUjA7UTvJX/B1j8bNW57xgPaXmP9 wM79yraavmm0iBN9S/J1ie2qecvf5Xg4+JVtw123zLJk1Jb5bdiznpbaax9zParbl6nrPbO4aBfG MtbBP28nvpxocV70y1QLVjdZvb/dZuxTckFoUDYc+71VStv2WL/6MbNj79jeXooua+ucysrITzO3 or799d12Q1pKPQWuvt0+V+oiwQVKOzNP2Gw2ePvtJ/jgg/fw4IEE8hrC+vzOoO5N+sWkOG/99z/1 UwFR/ieA1sh8inTwCKt3/goH33yGF3//JW4OF1jxFUxoGDhkZkx5wmq9BvNUNuxGvqBl2IBcA/Ak O4kjNSkaMfAVVukSw/Qcq/QNNsNLHB9f4HCd8fXFJV7zbVzyCSYcYITcLQBVW3CrmwHf0vdL+8ES LrB9132XIO4cJUZZJF70RJCLYC0APA1DNQls2Nl2f43lW77+314yAm8YBgFMmSViK1d0s3s/We6D mYxv8I6dgqRmr+iVkXPGKlzkrDLUrR8wOOu+oPuDKZ/bcMu2dbbPqWavvcU0dqHYimeqSZQ4QUHp f5nntQztwq0Adonx7v0tSnw7tvuC421JAtulMq9tHW2Tdbln2hoChfXwQMSHvVG8Tnsilt71jC/D 46Hh3/ybf/fX25YKG5sSk/m/VY26LBjKRr5ULZIkJ9OgDFR4oO4ZlqYBpR6owhcirBJRI4BNESD3 W9Ug55qQdQJQI8bCmH8ygD+BEkTDNuVW+Q9jHCQfeyeYxGzTzvZM5p7MKxe9vpI/2qO875J2CWX7 l0g09KQnJPLdAGMVloJRWP8AVZO3ZLA2TligZVPqC6YETjrv9B3YZZ9UiDHfLzOFBSoE5AsYOzAD 2MpIyEbf+Z3q/JB89WTAGJ20UpbD/mtbPk/CZtaARe3GWfpP6zxlWbuZJwjbJ6YMmTPu37uHTz/9 LT79+CPcv3cP69VK1o1jVgAsKi7+359Skv629YtF8PMmfbsUAaHIo/3evQ7RcL0U18/SU2I7D1aF YHWAg2HA2bP/D1evvxavWtMoHl6yziNmDLRybTR7YCkzsT4HAGAUFAdULx/Quciy/yVlAYmAFRhr PsMGL3CanuFkeIWEKwH8PAC0kYjBLKaAhKSxaFy77ISrSLzaHxaQj0jO8e2MndjqIH0iNtpDl/2X MhxoBGkf6imQMb4OABngJapuPMV7krH57BanMtXah2WOGSOrJ56kXtuMgU6hteJBxgOwVNon+EDJ Sdsmy3NaCx2oDCMRRfEizaeZS0RIaaXfB8Doy2jaoV8mZdSTnm7AgHRyJ04ENG2p+Q1U9zFrB5gl Pzv9IQZYTwLif82JSSrPlWnr9r620eZFaLJCS1T4mrLEFzC8xYC52k3F26QRo2Ydov0T5Aj7kyrd R9lqr6cXrDEtZG3oe4VBt3G1S9zSN8x6ApPUIkDvIA4Q5doC8Qks0ZPzVPuvJROD6ZPhAIKerlDT vuZUz8X9iSkqZEuK3beRn+XSs36enQBcR5O2Z8UncN9mDVjWUKJnmG0aUFc5UMa/B0rKbwwXbKWv MfnIifEuhAWIqd6KklV+1ge9/OOEuW7aBbhmgtoJ0e+qIV+Hjagabvt5Kfnx65XnlcRt9WmPWWXx +xOh8r0qaLSQT8mfnX2jKltcju7a8qQhpoAu2erZxlnbTUSVSbtGWmJILI3hdMQYC2mLsP6/+tV7 +M2HH+Dh/btYrXSjDlnFU62fS9rGeL5J3z31ZFFkFHvzZen5HztJ2QnMK9DqHujhp7j3q7/CH198 ieHqjzigC+CKMawT8hWQBjn5TSuVK4mRMEAu7KrLUHPi4LzrUANodJ9IA5AzBFJMSBlgOgfxBQZ+ jTV/g3V6gfXRGU7GM3x18Qov8x2c4wYucYhp2oBpBWIUDyUm75b6dNueUwmu7E7uKzTYtpc1f9P8 t0rU1BNzgJBCvJ9Y1+ZvV78eo9prm5zzxHwqoBIg2p+fibngBN8vBGCapqaNIlfn3nl8vWZ4w8pV r0KWqreZ3XutkX+9+vt/r8skA25/0r9yGPe6v4fnyXtpas1cPR7s4aAlDBFxAZrYCHnOwlMuWlf0 2FOeM7eeCQD7uy3tFd+Zow+Grtk29dbVAAprc75+GPN1tSvFtfFdTokQ+numADDl0mCZmP0jXqoj 2zDwZoLSPBveve5RXS95//8ehJfh9JOWASRhHyyS8Ay4B+WlPqdHXzxpo4fC5hD12tIOvtVvl1nS NiG+12QxTZNoJjS/z9TL14Cztd++6ymT5XvT/i0PavMrXoECuIhmZqagmTcei7ZsXhpsHnPiekyn zISvp9/Qsp0apCrQis2rvl/YD/uMvtK1JODM3CbPvJ7ETWXBBV74NcOEl1xkJKAx+bl37w4++OAD vPfee7hxclSU9lhH//nnAP4pai9v0o+cVK5yXE9+oyPYjPUy8YeYX9HPdzbWmLI7JVvJPbTNA6ye /nc4+eqfcPaHb7BO52JakhlDUhCoZveDgkgxsRagTP5fjSTqA1+JDLE4BROg15aYCXY1gCjJxcd8 DuLPsaaXOFl9hhvpPr4Z38Jnlw/xkt7CRbqLK5btuvGApj7ujaCianOpHaLee9xnL2vFqxNQOcFq riK/67cl21ZmkHuwjqtFZ4/uDGU/FQafi6mUPdPMBwV5Jb5ArphE9g8jUYJJTvT25xUxboErUOet lO+KpwFyrWoKe7d6pkkDAGfDT/N22P4g8p7VpSkKM95L5gXLzF0tH/vM2r4yz0vPtu97rzu7ktRT vc5RlPtyigRT5EL/ZuZyIMGZMBkGID3t4ZbAG/R+Sw71K4y6EWpZidfEqrTVuyCtEjigPdkosZTl mWzzMpU+EYXPSlZveWb+p7paIf4oY0ipLGuL5F2AvlcNMhfvRrPxTXZHYLvcy6TXOLfgwW3788qc waCPPczUyW4TrfyPFhwJnZdjhWaaXNCRIjCvaW4v30tLWqJPfpE04L9Th5iWOzc+0wJw0sm4PY8q DIoCumOz2/W7B489wMau/j+k3fZORqjzd+yTmF8UnkugudfuyMrMy1AWP3NRkOTb5boC7T0Ass0/ PN9TzuZz1U7I2hOjwkA4xWGb5r6kz836j4R9nPIEnkZQAt55+yk+/vi3ePzWW1ivxR1sAf+6KWa3 7nss1k8xGQB7k/7lk83BZU9u82d/rHplFucEk0YXBUjYdDoFbn6AO+/8a7z+5/+Cs1evcZAukPMV MBCGEiyJwZcThoFAg7r/pEFIIVblwsCl8QiydXT7AmBIAE6BHXKNMiPRa6z5HIlfYp1e4mhzhoP1 Fb68GvH84gJn+S4u+QATHyCzKlVCaTo50GeIRQ9bBoURVCzJXeZ5Ga2S12c4RdGYIF7KnCzcUodY hsn4NjZMfOZ69/8aZUcybd8PrsflPsm8H3tYI/ZfL2JtXS/tuzH2QYwYK3XZLaO3ka/2+xKuk8/9 fGd7eq5YR5Tsdiw5vOtPjhoiFmaRQWBM88C0mMsY5p5NfT01KPMqU1GQt+23vl8l2n3Ft/bOQEn0 jtzvz29D9i49u+v3uGZFMZG0C5+sqi2/BX+w++RBQ7OTgZJB9USbUqqadgnpTIXhgNeyHaD2FTff BUPonG2gyAO+yvxnXcQG9MTuech9UJyNFhB6oRz2kNVPb9TLhZF6E5yLItC6k7L/pmsAk4YxWPg+ Cpj4jvn/zfmHv7gZJ7kB5Oi+dp9F0GNQ/L/x7/hdEbLcemiwcchAOU3w+ewy2bK/txHM8T0vwMjF D5BgJua5Wucnar/VDXS5r4zpaoQZVUat1AlZ3ObljOOTY/z6g3fx4Ycf4M6tW/UeAiC2jURQk95G gd+2Edc2aXk/HpZry/8RQeSbtDvtInJ638sr368CN4sUzBZzJDXyQdzrroHhDtKDT3Hj8V/i6//n a9D0OQ7oqlz8BAhpAiiJTE88CcwdHLmTqSwIUn/sbFFnrSK6XmtcATUxyaOsvwRwBlIirJGR8jdI dI51eoaTg3/GM3qKry4e4ll+jDPcAeVDjJkBmhrRYczfzHt5D/xzAlL1mw8ARH23n8LY1lPKnKe5 rCRh/1tDjPasUp5blTJqqs8JkaFyic0UFGRS5k0AACAASURBVIWkzODCSBsJWBhdATOwCNYmhZPG BZjQRoaNakC5bG11Y/N45vtwEHKFROnxfVVMehRPJMVDk8lb3RdMQQSrNx7b360+Qb6WfW2BaJXL 4q0ZmjHB1n4B3i1wBk0apVj342LivIPY0oCj1mq7N1LqaPUP86D0oJnkZIYZ3adESrACrCMl7ePy fo13UD0ySjv8XLUTq4wGCVEtn4MNvvduBKAEJpO7QO5cr5kDWe6O6v5sZYMFCDG3ZmXS52VGopdS 2+1dgB9TmXveBXzJ0CaQ/qMfJz1hm98ByLUzo2ZFRUmoFd3G6MbfvRbf+97+9t9bXWLjFxUD2Npr AZmZqDT1U+8o+7Dv0i+uXmgXm5fCXsNdShH89hiYWIfICkRQ23vv+0jbN3FZIINecPFsVBzX8rct EpeMBYjfLbEcS/Ml9iXZZS5ut6Ve8DLLt69o7ddXVVAvJz9fat/uV0CpjwksahWyrO4ZHz16Cx9+ +CGePnmE48NNUdergjSUzz1lbF+G4k16kyy18+inOX+kbsLiMgYg3QCdPMLtd/5bvPj873H+5Qus 0gWQgDQCI2esIJfvE4sJxsQjEg+CgXQjbG3pucZ70T7xcWKAarrINOmlvCRggiEgg0ckXGCVX2FD r7BZXeBwdY715RW+vnqFC76Dy3SCkQ4BWmEcR/UShEa2RlnWgCnEtT5nmWud5b86vn6P1/50+UQZ sghcaDvREJ8vF5WdnCci8VHv59/CfjGT7W5P7+01zWdOMJUiRjq25wozHOvNtufU8qzMQS9pz8oL eVgA1bb+iqfsJAh+rKl6tyn93ScZY9nUeSa2WdZ4e7Id8Z+956HLEpaL8yXBTJKqyQp3AHFzp2Jh G7W7oDHOQvOMbwPDmfFkDRKXnILGZRVJfbgppxKQ83kYMce2VEA9B8LVpdgfi9iYa4wPe2b4n//t //LXhUlXBbF4C0Cqfvw1T4K75a1PEebgq1dR+675vtySrxNUNG7HknYaYl57ElHx+OMZFphDhlLv ALR9FUyvVu21QDIip+koa8r2jvnbjQoAz7WwTmoW5ZbfZ23X/5L5J1aTzV7/N+9xvYuwz+SzvJby S26WAHCRfAWADkgSLl30eHmSKFyAmsPedrOa18F/7xWiVJ4xm2QVtm782eURBeG8rXpBtuMFwtfD t0Zcfw7aD1TEscxNy6PdPF2tZv/VC3TC4CTzZALIRk4MSuKlhDljHEdsNmv8+tfv49NPP8E7T57g 8GCtHjOUsUzVq0HcRK+VYjN+xNTW9acJNP/cEqnyb//Ok/xGRShff/Js29zKM7Zf1Zo1ZVW5V5CY rKXVCuniDK+++D0GPgOmCRqwRth6CJkgMsXiApjVrMbqyFy8nlgflD3MAVNhSFllktQvUaoceB4x 6ImhSKARa36Jw/QCx+vnOBjOkKcRmRJyPkDmNYhWsFgi5gueKAlcVW84lJJ6apO2Z2ffXvZfKx9J 93jxWjY13JM/jQxmFuxPBhKiDK/Pud2D7X8OFGJhhixwa8V7D0QWmnyv0lWxRbysrZLaYiyUeqLd M8pv5O4mGO7w1VN3sR5HGEBsYA8r62z7UzFdqngjnuzYfCCPd2w+U/hXvftUrztQU5Y29UCw5Gt3 QTS+T2ojgA/lV7tzoP1B7S4GjRNQMJX1q/ialX5MrN6t6pNZAIXcGGDzKuVwVYjvkrRfkv5USS43 GroumUqkjdL/5jSkeAEqLZW7AIkJYHd/xjwcunHxZZGBdtRTAa9I70yyIOu/NowL+NoI1Jl8bDqe HL6XtAKqCc9MwBb3hsu2g/GdHqO6FGXNJvJiHzjNsAqnLMFV7H2uh0xmnmjHUMYwaCa1Hu7ikT/q ippoI7jc9239W8Ba3t8xxlGr3qbd9UHavNxtZfn+2yd129rRNHvtJp2wbd3mc8Q2RN+2JdDv6+H/ LvXSR3LO4i96W0ptHkvtt7zNDatnOHx/yHft3QvJd2g2xP5YRb8FNS0p0KVcInAexY9xzrh1+yY+ /vi3eO9Xb+Pw8FBslt0wsoYGFUbyhzUT+yHTPnP+Tfopp2pec530fYx5S34kcfeYD4CjR7jx5BM8 /8f38fKfv8YJTUAeMaRB3AMq20kDAQP0XoFu+MnEGIMyKwvJxYuMB2teztkJJTMXBhvIWCUJJbaC gi6+wgrnWOUzDOkFNuszHAwjvry4xNeXl3jFdzHyKUZsFFg7s9TUyikv1b0tvchr5+0mJWDyTL71 fd/BhDyT3b281G1z/Xe3acN1UmSn5+X2mX0v5zNXgOwVt6aNEV8ZxsiMxAgGRvW9GXvO3DWXXdr3 YoyWRXLO7beRUd+218U2+X3b3Mn6ODx+Is0wHbsYMtx+70rV/08lGrTPtz5fA2oWnCeMV1P2xCxK ieGPmYlNVOe294HlnUPbZOj6+Rie9EHgwDIvvPbnTwr79xbR/a534rTt2d64xOdWWbUhtkuJ7ncP /kWBUP+rOjC9ysZ/M5QVCSunPNfpS9Pk3BflT9NyrOMKi5zchDEl2DO9SYVsWrXgNZRtGqwx7IwA oEt/9Y+QMumx247NrQfIGxCcdZKn9uJTGlSQR+phj7Ls79lR25Y7A/VZZQIwIE8S8IRAmGxxkuWv DHjZ0FpljXQxeO9LvXouV8j8EdcNU8ZJhfmQNIrw/DJYyV8XKGsAD3+Z3JLEA5C6xt8aJYBU5+f5 ptI+b58yuPgT7ps81efmJlTWpixfimcIYjx5+hY+/vi3ePvJEwyUqpCBHftbIcYARBvdn1d6owT8 EtL3f3qzj1MoP28Ee6yQ0hFw51e48eR3eP7532F1dYHVsMI0ZtBa7vCbOElMoDVjGidQWjlZLaZC IgsSxD58KnKkIU7Mn3p2PsydvEqmcJDuoTkhJWCdz5DwJ2zwCjeOvsCN4Qt8dfUUX14+wXm6hzEf Fk6LmUHZ2E3nBYhFjrN2WAaQnP247XlyP9BD4nn/RTeKgMjTaTIZaWRMfK41hymy00T0wjj63yMp Zb8LwaEMsZ1CqAz3AN32D8ARkdYPxWa+vSNR2x0UAy7GQUUZLPVNHbOPoTqGEF7G9jHLVF2Tl8+A bfhEcseDQNU03vYde4PszABaqwAXgpcoUmWTohG65p007o1c5AaQViWfbMovOXM3TpK14pcsyLzM vx52khQuP5cH3PykXNrp2z1xS/w268lNKGmi4imutvuUUrmDQDD8mMrvTV1DN5lXIyPWqhLEiiH8 fBOc6hXD3p26Zo4ZHOG+whbfKevC+mlB1q7Kw4kKOLMGs3ZWnbzUMLyxEj3NKDLFS0z3UopaD5w7 sF458fJKzcOY3L6ninlbzEvLvB1NvmR1i+zv9VLUCosrKPeb5NvX/pfK7Na5804ftPpyuIy7afaR EWkAsJp2gft3LHoRlLfV35Q+/5QBa8ur7ad5+22eAxDwH+rnwfZSvwDtWNl79kRPCbD558cvXo6L 9fblA3Uh+zynPGK9XuP999/Fb3/7Ie7evo1BmjTr8yVG4OecWsXqTXqTvl1KaY0pTxiO7uLG40+w +q//EZeffYUNLiFQK2OTgGFF5XLfRAlpIORRTgVSGsB5Ku6BmRk05VmwpEiQRRbHr8mcRwzDWuyW k7jOTBiR+SWG6QWG4SWG9WscDBdY0YhnV2d4le7iKp9g5A0orRvZJ/teApG6xCQ1aeoAikhwxb1h l+yosr3/2xLjugRUYj3iPjCrp1eCHKYpd6dKHcV1slzCTsg8Ns9fhx7p4orO3tv0n95DXGyrb1tt Vs0H8zm1HWAvlVPxxeIzEIBrGMXjA9+nBbPkvDjO8XOsc7GMyAZgy8NdZx8Eauo0sTqt4freUrvi fPb7OXeeXfrcz9vcDxtmqEpA0387XLfXeT23QPCpXIpfilER5M1qgIFYs/Eyv8FW8ICqP1QaJAIS 3yE2MMlpVEVxWEiNo9CgKDSXhtM8iJI1zE/f0rH6N/FQjgt6Glc1lau3vAXsxk4Wq/ZoQvF9AKoe UC/1t0HHnGHeN8/r1KNGTq5MsTFXIjBkfKfc+knuaaNEJCcwQh2U74zFBiARCH2bCkPRHuXabX0T 5Ix2QXCSRbdSW1cR4hT3WZnfWnbOGalYBaKrtNQIkq2QJaC4GI3tlr8JQPVWYbae8nhGNBGyjRrq Uq/+NgKoG+qUR5yenuLXv/41fvPB+zi9cazBiGo0ZksWsdL6kJn1jkx7J+NNepN+rFTjBHz7CSgy xG3IXP/dlW2V83qaygNAx6DTp7j79C/w2Ze/x5hfgfKETVoh5wkYZQNJiYExy944Ojt6ohlAK9aG rDJCZbh5tymyvHjPkT1XNvEVzCxnIMLEE9IgFyqHlEA4x8D/hHV6iePDZ7i1foR/On+K53iM8/wQ Iw6KWEpud8xISGTmPRrjIKfiQ17qbTIoMvdJCYYIWNqT3uK1B+2eFsnAGRjcsV3Nfjc3nQXwS3+Z v/ayL5hoFzRWCSzbTzJAaks+aeRiOQXWdpU2tMw5WE9w1DtgNALqEZX+e8MypX7m3c28ynB7kl7e tXqw1I6g1gRU/fUTADJQbC2wfTh6hQqfy/rQ/pt0L0rmTVGzE5Kf0I409ITL5kQKv85T7Sd9R0/V bEVNxUsVl36SOVrdwFsyolBueLTlRic2tueWOB8hefgnunJ1N59RA45anA3zwmVepLJaTCB5iFDr uouomyXzcqkVIneSEAPrtg0X4lzClZCYKjG7E4ACLNv3Gs3ODUK5jOJAVKmjW3g9LXFXis9FxrUp xz3T1rVoMLN39qlH7cS+Bhs1qe8L/JcJWSb0nJ3uCZV9FQJL27RwIioTe6mOXuPu5VfuWXDLePQU Rj+O8beZxt054fF1yNzaHgLeLdj21JwUoPYr2+Yd6hbLt7/9737u+nra5rv0roF4PyZMwghdjZd4 8OABPv30Y7z9+AkODtezSKS9Nn0fSupPLX2buf8m/bipd/r0U0gtizgAvAZuPMGtxx/h8//7Ds5f fInNkHF1MYFWpK4/BYwNij0YhHyVkdZJLgtafADo2m+p6jmxUyOCdVlrX9eEekE4ZwLRhJTPQXSO FV5jNbzC6gT44iLjq/MJZ7iHKz7ExCuAjP230gMgB4qglL5Yrkus1yLp49K24JQ9WX+dRCoXJcnA RJYYWFYKW+IFWKVh5r1lZ/noYwDbd2KArYpPah7XYe7LXgI0nn5m5UfsNOXmDmQv6ns5WeB2r8o5 i/kzW3C9tk2mYtbvJlFEOm3rzRn7u680EcR8SAF2UjO6LXnsK2f2ea7mT6qMcyUjFS/V6MKtafkw DCW4qM2zHpbdVRdp0zwGAtB6NeziZJujrn5EVAOBxeQjkkF9tRZPKy7qY1lU3C7kOKl2pTnP0KZe njZRU0qYuPpdZtQGFltx67igcVs+drRlzp1YjwIHjpMx6fEoZvlcJ0WhEcFe6Q8TIGFS2+Tbt/ze ZWO/2LJ8WWzfijjllnkY1X49K0C1OeHdVVn9cs61/3V+5GkEDcIuEbf6uRdIZiNr9TSbfPMDYJp2 nF2D2uOXvtSjbKuvBWPxTBKBiqlbvctQFyQzN883YL7kb/OmPRr1qV2gfX/AdiJgcQRkwcr452kC JeDdd9/FJ598hEcP72NQB+J1vhsX05pDzYTqLALxzzf1QMhPBWS+Sd8v4J8p3+y+1/su8u+wsPe0 zC2TXP5MBIDWwHATq5tPsbn5FM++/ANubiYkTBivGAMTSO+GTaMSNQPAiZHFaTnSwAXLi9xQgG8R dGEiXZj0IsH0dJp8HcuzNSW9Z5AGYUEzDVgTIeUzJP4ca7rA8foLnNBzfHHxFp5Nj3A53MGUNxXE aSwrkbektTK568dqG2g3rzmlZjo2KrcWAI7/LLJe74zxCAAFYC65c5zVwxQV6y/SuphORVNhgUUu WL25YUwHPfHPOr6UbU8znBMcS/B2uWn5GvAfWEE0tXO4yGebJxZklFqgxpxr/XU/zO6Z0t+sF3YL LtN9gKe6t7HL33CIzQN3EmAMt+/gySxGivvPevrlMQU3JkKtOWxcw009Eut0rPNSCFEu4J/zpMw3 1JRX3F9nFneoDU4kO0mxE5Pt9x3rPJXTekkJmTSyEwOUxSWw4DSG3IPQTiXDJ3WlZx51ocwB+kxZ Cesm4juWTq/5+H0P3LzfJV2DQGniAEhF+ppsHcD+pVUP5Xrgfwl47kozoBqAZvk92dFjBfrSQVb2 MgPa+74cKXHQcqnanPVY4H2VnvhMw8aExUTUN3vaN5mw9Z8jO7IPDOxp1j0GwX9vX5Vy7P6AAfJQ zwhYYzvjxrBL0y/lGpLekmz+z94NF897+UfBFr/3bVlaA16xrYLX/PtPWG/W+M1vfoMPP/wAt26c aF/m0o9RIGxLvzSQ3Chlnb5/k36Z6TokU0zmNc5ACnIC0hq4cR+3n/4WX/zD3+Bq/BwbIkwDgLGW k9YJecoYBkKeGAlTfz2rHMzThKTeyTxrW+bovvuhcHEKcBmEpB6DCMSvsMIZVrjAsJqwThdYXY74 ejzHBd/GiBMJSOhkoQdw36Yf6xoTdrbH9C4pA727VF7j6bGlS7iifmHtsZNlavIqlLvL2++F7Ppl 0Y66M87VDfUC281zfNUjsGIfFRzfKZdySwB6Lz2ljNItBsr32yd4S918feL+Zp89forRm30bl+ZG g02aoJ2V9U8pYQLDzAj9/MlFUdmW5nGVrGzBi/X7lCv2yABadVC9mi3Yr9k4E80drvSwlNXBHIzE 1GK3Pk6KmGxpL1z1PJEALfPrA2aRm+gAxMZ/y+bbA0DN3YBSsFNPm/pI+HDx85qcBCyj03aIeWSo lW8B72yMyhJpik/WFrdgm7aQ1sH9JrnMBVLVqms0xTj5C0BNVdHxAsK8GnDJqe3fJT6XLF/qM3GZ ahTFwpwDgAWKSn1FxysDjcBRRpxTO/ZWX2Pm7L9ouxfLqO2rG+w2O9F46Wcf8x/mauO47Zn+e6bI VCWzqc9ssxBbXz92wvobE6a2hFmZNGJcjVe4ceMEn3zyCd577z2cHB1gGAY1O9VxAnZJu1CvHa5S f6KpzjubQ3UOStp+qfpN+mmlXXcBKolQJZ8Mq79EzwDIfb/NnERBZ9k+nIwhgHgFOriBO08/wsGt p7j48hnWV+dyErwSEIVMoDFjWAEYM1ZrYWgF7ASzV2XRk/rpR/EWwrVNlSXpkBTq25unsteZ3a/8 PILU9WcCYeIRm/QCN/jvsR5e4ujwGU7Gp/jT66d4jccYcYKRVyC7A6DeYjIgcQ70hHQeUXmpO/XE xQFc6AlkJJmsztM0YZ3ER/voXI8yK/OvhIbHFBHYlnoFL0OMrEHYdLfMrUmrvZ9dfSXfSrJJne2i pshliZw6wCIlzxQRGz8FoV62o7kjFny1Z9vTJiQiTDavs9wztEvJREPjrW6ygBdB3tW5pxdwXZwH IbIYE+dmngnOifERtD2OcfPlZ71jV02FtV+S9AaX9yaAWE77mcX7EYByUqFrt1o8qHeeJHF1mjoC AOrJXs5izsR64sM5g0mMt+zEZjDvRiUjOwFEk4irPBFyNxVcy5gKduQk82IqOjs12doHfydAMKC1 QxXGYMFRvEXVBncwN1DvBtZ5KnXT+pfLDXXtNPPecJjO/1Utbw70llhN//cSo+5TlxWd/d5nDkzL aa74qkLiL5Eulc+hjiZMALXN6tiUW+q56IwRHxsNLrwf29mrZ7UbE7DtlSkThEvv7pPqRrTQT6SF q5BaGrtennFyxXrJ384rEOZzweezrf7NmBKArBdfuH8CMcunXRfdciJDv01b988ttX+5nK2PwJgM ZgH/9+7dwV/8xe/wztOnWK/XZQH/OTLcUe705uufW5/83JOMZX/MPPiXteMv78pl0zafZbZ4MZFE +E1phZxHEB2C7v0KR/fexRd//BscH65BU8aUVFHRDV5AtMruTMAoyn1aO9nm6maSuIBB3s3EUkrC 3OrzovBG2SOAm4gxJALzBYgv5JIwnWFYjxhOEj47y3idH+CcTsA46Eaf3bvPOmnbmvTfm1wVE9E+ y+/f+zZruuzX5s2P5/jCl2FguleOvNteiI7YqDLuCWbOVMaH1MKLq9OK+g41efr50JKoc1fVniAE gJ4NehzXeLdhV9/GNu7CB5GAq31Apb49XFTysbJQwe/SfCiEmWYmAVirEWyvfktpyf2s1HXutjzO 14pTxJaPIPcE9pm79ow/kTJFuEdetvn12+fHvcHdySxYJK2qj3A78vBMmjsec4ceBuyWKhaBUeyE Xkea1lrf90cirW02k/hSL/lR38YdqANqYJsHqix7M1ViB5IuOtHAzfYtDYM7gnXgP/hRrkDeL9pU BtQujXjmo9SKzJ5VFxBR10THL4QUJmRTF6AcJc0E/CS9kDQfUsZk2jK+vvzaNBMwC0AZ3vvN3GWa n6SmZMWJ3tQ9UXMKUvLQzTFP5pU51KUU6TT+jpIR813aGOcK8vwspp3/qYxrFe6DUywzcmZM04TM E95++wl+97tP8NaDB1gPSafuMmD6JaZ+37cnaeXuxBvw/zNLxui3XsJqciyr85QDeGW6/tu82cyZ 5TsvhAF6xUiZuDWwvoubD3+Nz4ZTTHwlr1+NWA0QpWNIGMdRZGdKwAoYaCXtmOSZbDI8j4CefMp2 NgE07AT/AEp8Hksz8qmcAOrJAkjZWWBDExI/Q6IJm9U5jk6e4U+vX+L59AivcR8TH6KazIhpZhZ3 ODPCpG63ukcXxtQYZr+/A/OQWK0JyMTVxOG7gFCeea+xXVRKnO0zg5rJzMSJnKwIEcawSOnFFpw8 q6090bnYbFgpW7wFO6FgwxsaK4L0dKAS/mj/CvNcx6UCoVxOHci0UP1esknN9NpFsC0lYdQdwxze Fdt3jRNg74RAm2Kqasy/kY72hOVrd98MHwZMYJEMKDd7plneJABMitmYLcoFWO8Elt3eMfO9eWdV b3rLYZYJE1KyuzMik9Q3WAcP6vpHlWsxEq/1kbXTxql64dT10SEwqwLpv7R1Nm+QN4ezB1ZLi89/ b4zktmfi97FxPiX1fNBjDLxGHjd01oVgHohysznMGQwD/b38xTSk1UTnTEgFFZZFrF9cWOzy8snq Et+LdaOhBep6N6z5Lr67S8v147QEYsux5ZKi4PLqvV8uKWM+L9gxH8Lazc3OtrFQvbr7MmIgr+sy Rl4x2Tanl+b1rs0r1iv+W1MuUX0pAR+8+wH+1b/6FHdu3cAqDYXtlD788wG62+Z3VZz+fPrjl5pk LSyB+Pn9m2357M38BdkjaQA2N3HrrfexPrmD89fPcDwAOQNTYtBEGAfGapB9bJoENBINSCNjTBnD kJDmmEnLYRTutkVpuxo2q3OUp8zqxiJJELIVRjEvgXgLGo4yNpdX+PJyxBndw4gTTFg1oOC6fRjx gZen/fb3SZVt+9S+8rwoCvqfmDXpb7I5VaLIKY3GTKdCvlGYe2rKy+2l13lfiKI3gDDRVHEOV4W1 2QP2apXrAy1zySRq73ywGzc0+Gk2vvOxK3b+jMakVnCBMOIIymIB4oma5xcJZlLPWXDKsCpAxHLC YW8LcN6hWJo+pcUVN6GYt0/IWL38r6ZFXs2N87eM7x5j5OeUldXgPVMAgNBPSzKs5mv/9u60rCiJ tmvsS52cqXSI10a8nbafyNtAk/8tuQ6pjOmcHU0pXGKw8mAXqEyjMUbCfq+dUG3EVAtzoGl2tJLa w6Oc/fEyY0WrGQDctYAS1wll/WCWivPJYUxY24+D1ypD8I29kvp/jfioxj0Q7wdDEYS6qahm2TsJ AOr4myeF5IQEkVxNk1ahtLWv6NkGIpupnaTUdmu/ZFvstQ+sfPHjL+X7oGDN+GyxAYoLKX4Xn/Np DuKD2ZD2f5wH8d+EDNJ1OKwSPvrw1/joo49w89YpUkrlJMO0/m8j+H9uKfZT/zfGdcDhm/RTS3FT imNZj/q3AUtLy+tiwc1BEredAhomEAZ1UHCAo7uPcXLvCZ4//ztsiLFOBM4iigT0Jwn0lTNoAiaV XasU5RwVwC+yWNl/BUTyoDoKj/7ZSzfo89SuCyNcqneTCZlHJAX1nAaAJ4DPcUKf4WB1huPhGQ7T OT67OMM3+TEy3UE0ysh6Al7qF7yGze4IzAAhdQHWthTXe89dYgRKMbFOkOaGk7m9tLblDHWDVMvm BLB5DBIFoZXtug+RjRnDmwOX/s9c3k1lzjmCieQuh4zcUBUEd5dB2hZONjjJO+QiyZegbq3yJvnV fVzaMb/ztQtHNO1PjnhMhJxd/BowoBdyLd9BQ9eaIpDVXC5GIJbnnWJoe9ugc0CfH2y8ta3ZxR9K aHGfKBRpFjg0tF77Nc5vSXYSlvXgZSjzqvaj9LPszUXR0HEjJEzZMGe/FqRr2vAToZLag3ml3DJE DZ6a3d2pJ3WGv6SPbX7JyYi7AzCURlUmprLlA7cTogCXwD70mO/dSTTsuPA92LUGmPeYXlneBs7K XpI75d2FDUMuh0leEkG4BSJLfo19vtHll39mieHYJid7fft9AsGo8Uohc40zPrNrjIksaEd9tgme 4/LxZRXtF6bszetblFLPNlyzXwxY9Nq5T9t6c3FXebN/mTGOI2iV8PFvPsQnn36E09PT2h67LHYN 3e+XknqKt5dT+87DN+nnmXaBPp++zRwQ14pTMXMVPLYBTm7j9O4jfPV3RxjxCilncWGsgJ8ISIkw MZB4AE8jOA2YJnMfuaVO+8gnR6rE50tfFLlF5TEzJQRkDxNyJmPAhGF6CUqXwAGwGibQGeF5zrii mxgVDohMvZ785PB5sd2zJvaJFr/OtwaaDGW0lvrzPVLMQUisCYocGbR/27djWXFfMFwwS1lO8uP+ ZuPF3LLg+85Z26eiKZyv35xY252nT0t1idgg7pUG3D0ubO4k2HO2Z6MdP5+f/N66D9+GobptsDL1 p+y+3y/pXOhgnrbtS/1HWJGcepiplxEpSwAAIABJREFUsn+/Ryza/PBt8niyN99LngutiHM/KuSr Zb+odnlTOsLchfkLtN2K9ipHcxv23qDWxT4hBjxIZdL0NSqmqgUNRIUJiKnYmCXVhJJp6wpMC6BI TvDUAartkcnlNbRG4fDtIz2rCC5M2/6rbrMsLwCLIdntZvpMUeJw6pLaiVf+BskxZdCci3//sE4G Y9iXJuDi+FNpGxGJcKT2/oP0gWj05o9fNb66IIr3hUHfH0tfDsMgzMu29AOEvI1975MPAGOpYe60 HyZdZ+M0Yb1Z4dOPfouPPv4NTo9PQBC7VB934s8tRS8xvQ33DfD/5aZ6R21fMNmaAi4y/zMGUJzj i7KdJSLrcIAbd59iokNM+TXsSFhklpxxThMjDXoyoHKTM0G0go5yqvlTUsZ/G0JjuzNQGf7ozMEi ti/JooEYzBkDEpiAVQIILwH8Aev1OVZ8hs8uXuKL8R0w7iNjAJjUzwbXE1duCTiUMs3O2REhicp+ 2r1UGepp+4EndDxB5J9r2k5U7j4QpyLi/Yh7kNgAtxLB1zIrPabvtCafqXi3EW89S9uN2erbq4Zp DMAVRj4Rpsl5tqP2zuQ8WXwA6V9kgBKDs+2twnaXoGANrmsJ0dgX0f1k7PP4XW+/t3YnPanLGrfA vCkWP4i2j9v8aGpYf7f9007VllZxTGZ1YaCY3Z0BRsUTcy+U/mSrnnaRzQMayv0QWQdyb4iYZX8u fVWdFKDJpVaQbV/vKTVo52vBR1JAt81esYl3HLPFRVFFqp4kSRmrbmZNhbL4m9UCotbb0wZ9KiGK w+898G8C3BiIbRt7cW/pvZWagDYBi7nArPVc1qgiK7GtjfX7ebsik7G0iHZp3RG8iwBpy+jVaVub EqMsCFP0JK9Wg7bP5YgptKuXd1dhWRDmsW3227aIv/Gk57skvyEtgcveXPX12becXrnME8ZxxOZg jY8//i0++fi3OD48QlI/1r34D79kwLtdmexsPL/w/niTJO2z1g24AV5GbX0jfJYLmowk8nV9hONb D8DpCBcXjIN1xtVEGFaEBJY9CixBwtakphF6+S8z0jSAkOT43Er0l3odwVG/826jsRdj6Q5Au3JZ /jXyBRhwgcN8hoQrPDhgDCkD5wO+Hkdc4A4mPsTE4nqyEFkMIDmTI9R9NCbPvHZ/QzuePXm6tPfN 8vOBKgMh5/uj7MMzXGEAOpYXTZAC5gnuq2fD6NqUcy5ONuDuF/i9e2n/WUpVocx1fHrPcKvI+BP9 mNfSXtebT13w6r5bMlfuzc+lxG59FOLVnSxE5cWeM/PlbMrzDuVlnupJUINT3HeJhN0vfYK6zvx8 8+0G2uUcMZCZrAPmobJ/f7WXltaIr18vnyYOgGiroZPyvBG+UksuMe25MtGLv+by5tYGyMdqu2Y3 BRKFBV00H4ZE+82VZSEqAcLkmabAWdlLdfft6zEa2cnBGUAxO0Gq9yd8/tDId5mV9Sh2hXUzA9Ao ULG6+0xqv4AAgMfW+433uGTfmQLg61wUgjJOwjAlTsKM2LQpb0mAmDToyU6iYm/KuTI4pvjVyI7y TD1pMQbF5oDZUUqVo4K53D/tvEup6sC99/dlnH2fyJxQczZKfXMx9a7AyDg8WuN3v/sEH/7mAxwf HiurJ1456nvXVzp+jsnmk7dZlfGrMqGOSXsP6U16k+o8sM3a9if7PnKOgMXh8HkwAMqMzdFt0OYU +VzuhUFNf7JKrpQISAkjZ3AGOANDkpOArIxhQsKMavOk0GzuDph70VlK1duLAEGqNw4oF284cmIs FyhJTYPW6QKU/xH3hjMMR2c4uHyOzy7ewxk9QMaheFPRvvCEsnmlk/pHr0zSrlVaisRseeg7nUeW CBefIpDs7vFoCUAiKrbl7oG2QgsmHfWValpi+3cPF5gXKDBpTBwILrH6TnpXjStjLYFkq3c6qxYR 6VFyLnf6GAZKRWZKH9S7cGImRJhx55zk5IAZ3vTa+rkQhDtcs85SFjPfSLjaHF+M8Fy81rQnd9nW RahPjBUU65nI7nLaRWHJb8qTe4/BFPDngncrEGkfV5czskdNxZzJymtxqZZnFhjZyknuHdcNAm5L HTO4+dxTKmz9iQyphHYzbtGrVLkRL59XbWbt5ZNmYw0At8dK+9+/TeozOOrvfZraaHJcBXXXtRtR 8ThlC7R3GjAvv2WZZ4CedNJNGazrstUS4SZKFYh+ABtNmupxZ2QF9k1RS1zSGku5XDVM/xtz66d4 Wxmz3xa61sYv5iHKWRUY28gPWzCN4HX12CWceorp0h2Ob5tiP0cGa/YvES7HSxwebvAXf/E7/PrD 93G0OQAV8EvbO+UXmIxBkX6K39fk55T9/kYJ+GWm645rlQnRGnwp5SA/bKMDMGwwnN7F4Y17uPgK GBMwDDI35T9x2ZuzEFypkE2EPAlosOi/mAgYWEC4M/dowL+xlY75DI3rKAvbOiM58K+nxjwhI4ES YYUrUL5AohGUJqyPMiht8OVlxqvpLq5wisxKwOVczH4RZJtPtn99F/nq9/4e8LGyJSW1Frhe/rvY 9v+fvTePtTS57sN+p+q7977X0z09zR7uIYciKW5DkbYsUmSihZK1WFIUCJYdxIGTOBBgO0YUGBAs 568EAWLDsIMggUIHcqws1mYj3iRLMS0plKktIkWJ4pAciuTMcDicvaenp7fX7737VZ38cc6p7avv 3vu6e4ZDagqYeX3v/b5aT536nVNn6Z2jdV/shlZzQcTpWVRigRYvpWfb87nAWdWZkcB8g0sUaLbj yZry+qxsAWI7L1Xdzfe977KCt08HU9zTb7vFRWU929aqphWkeXcsQpgp4mpctrHKbptSP8uNG5fY paa/uT7P0fJce+1vXSw3IwjvWoYpKDXJ3aaxXNjpQZxM8jl/Vy7gdtut6RPSvgORQ+CIdvPUBFmC SwY1vgnp3828pBpMAtVNFtX4rNUol4xt5ChmeIXmRezpc93mmOo0QySbVzcM0OaNu+mqx3wZssZF hSJzumkVy53Na88jZr+OdkOmPAcqGQfVwae4yrMMNmcabL8HkMJVWoQbHZVunnxAO/LgyNmms/EB IdP4b8voNVvyTZUUu1O6tYy4ZWa9urm0IdKfkoZDCDh16hTe/e578XVvvAd7i2WRWyJqFI55htnT ZH61lwqAbbD57oUzewn8f60V010DpsPerZTAv3f6TDaq/qWEvQHFVeyAU2exf9crcP1LHsxqq65A X6J/EkLMNTkWfwDYTXos7OYjq0ZQ9vhGmm2jpcyC/3Ke7LNoGpOWmLyMm6U+rwEuIkn8duI1TuEZ DAjwi0Ps0zU8fvh6XIuvwhpnMPIgUUmivC9npZfvJkJWYauu3TX/AQ/KNuAzvoftmVv+u6/wyZl/ ewBo7rhIeY2cmdA0NuDkkz19Cf6zfr6MXoh0pjJbdJoc1MQjR3dJYyI9+5GVmaakzPhLFLK1gi3F gt7oiyDwQ/xamAsaoVjMk5vM2ZwyrafQKn8zPFN6ezIz2Imfm4Nk/gXVplVO90HAvOAoCT85gfo5 pYDgqhonukKjn6zzNVJTpahL85MqU8HBgoxkBZVUV1grlP9ONCoKVo71fPbm9SQKXKNFi67kFB9P FMsqGCaewdWfNMxh00KXHdrlgL0ZLdxU0s9xvXvEVkvEUpxzlanSJkmr11dbaCFEmTjTkLfPWZKL FhAzy3WpEdncPKR+0fwz1eZq6irna67+7nfc/31Oe0rUCaU5U7z3sFOwtNGzf88xmX6/W0Y/9Z/o 9X+utO/O/ftmS68OYYii6bOSQWtECAF3nD6Fe+99O97whnuwGobJ+0TbReevpZL32Fe4Iy+VF0k5 Of1nXibAp/fbLiXxDCJg2MPq1J0I7BBZnFvHIFrfpTfNsGhnYxA4HJ2Gn2bxZfMaLhRMIJcFXapC Bc0Oqgv+6/G0QkBRpZo2kdmKI/MXxxHROYFG4QBLBJx2R3CLgAiPC8cRV8dXgnEGEYtuG3Ol0v6S KJJ2uY+ZKO4wj0GccwKsiUTwOinzSIElSoBdj8FK8n002uAcvpG1LtHdGIhVG+65UKYAzCyN4BNg mz2fOwRieYqszur5UgnrHJJTKPeVjS3Oafuy61mZbybMPGZaupiT+lrwnlAwC/5nMIZp/He9E2zr TMrlzrz1FKOsuSe4odkWl1Y03Rl/bx2sGIdrgX9OpLaJX+RSIY+kKS6/s46lzteDaVM/TwmwnfJe 3OcMeJwb9P3CE5soZaRLn1MH84ZKX6SrGZHSZaNaXNVaoiYWr34Utx0t8+LOOEopupw/bp+xTaXO R2Z/12NqPS0HScVQBf0kHfhJi4yHk4Rb2pm3a7cbQ9WDJWepSnVlM6pyzH2Ne27LNbSbYymnAXTf q7+bjqneSM4tTn5gdEqp+c/0QGrHX9zQaNzkyAGnz+zjXe+6F/e87nVYLofMoJPCv9evVuP/tYWU y/WvvzO+Y1fKATVDtJud9vuXyldn6R3TpbZ1882XCN2938wconf+IH2feB/UhtoPcMMSkT3WAWDH 8BQweIfRnGpZInXBS/hCAf6AB4MGvSGNwiMz33fJT21SygM8FlpHyhrhed5lwS9stux55clpomQ+ fNIyezgO2MNVEB7Fq4dj7Llr+PL1EYFfgzXuwsji1OwQq3O0xA3c+AQkHwQyXnlzQkT7fToHW83+ zNxMbgKauO8ZxhBK7b19J5mBhS5EkZ3PPLmNTxWg1BTPgmku1lKz4NaKUK0wao6d9F0dJQfeIYR1 wR8LekHWRFvzDpLRznwpky/GDoJEOw7mfP9jcfL1TqPANgaUp7jFBKm5ebLvy+9Soq6tx19WuNk5 Ig1IL2WukfBISx9l/ivph42n4Rfm25AGhbxOhCQA+qJt+eskMVrRps2ZzUVPAeuK2yRnw2IG6Qcu TJ26Ql1z81bkATDJLf8oWpB5yWyTBnvXwzg/20p4/RVupbwS6AWOWQIqxiRhuKBRDOqbBVc805OG y7Za7UQpEPUYjwHPVqO7TZtdjmsTSBXmsRsQTHVzIdQ1pWRA7Tjn6izXrZXUy8y1m0pJ8O3zu2ju Nkn/9rnHWE5Cp9tKn4HVgHU9HmN/f4V3vfMduOd1r8NqMQhdRq7OxT+uQLak+bwXPCwssD1T3jDZ 8y+Vr6WyTVd3c+td8uu5tirgo+Db+RUYAupjBNzCiYlFjIjq5O9InH7JiY1wJDlbQmB4T3ACtaX9 gv9OeFDWsJUdT9/NAbNNZRNvZAQ4N2AcTRE2YsUjHI7hBmB9agl3BDy3jmCcRYgOIN/1c7O+tvx4 KgTsXiplHHPdVvNcqxzbbZ7q25NN73A7/8wpnwASrrD+FcrKmf62+YXqs7ONoz/T+zhmgbID3vtY Jt84tOMr/RF3LRNshJxYdJciGuvNv2/DBu14N3WfiBLus3WbbVtpNgJw1Zy1eNUEXk4CPHPfvLt6 Xk3F7d/ts+08mPxgGM6ErTkcmLAV9a05hvbBtiOiyaSURHeOLWevfoJzHn5OcEiSVilJTVefmar4 uWZbZldYbRz+ZItNEonGBAGL36uBjStGYtlrS6HBCDdWfVFbyRLsqvBqxBlDDnslz6eXk+NwiDH1 Ya6k38ypaPZJJQC324FQbRzOoLhkmj2Jc1O9xvjqZ0Ti9uQkAg5KhlRH2mj7NbdZNgmEs32zDcKu qtPi75fO27dSbA7zGsQ0lpTBl4F1FJv/d73rnbjnntdjb7lK70uHUX2e7p2s08v/7l/9n6zseqP0 /Jsk9WivpZtWQM7P5kyaN9t2K4C8ECW3NU12tHkv3tpN4Iu3bBtXOUeibbf3mE+yp8t91N46IYeZ 5gFH44ijozV4LysOhPeLvT+zHPzEZpMr+z86D2LWrPIkGn8WYAgNuyzewijoXPlHNYxCwz6hzf4N ezsLrKAkfY5yTkceEXnE4AbliXIzscAhwE/iFcMae/4GcP0YV8JrcIRzWGNIwhFb9DaouafaVydT 6bYfCSdsWJqmbNwPHAAGImoFwSYFZV3ye6LJFWWhY52LwlePiOBJYu3bmhnNGaCOyRkYorhIqKG+ mUkjIcp+gSWIFieU5nO//1wcIYZlLJpafw5r8NrTOG9TvKV35MP8M0YH+kiK0W84jPone/l82ReP GvSXYysLNZmUS8OBag8pvqXGm6XS/hNAxIic3zVfBE6/i0N44k/tPNj+dWa9YphBbg8j1WOycU3G aHOXAEPKHaztSh+MplJODaNLp28qg6luABIwbpzsZINv1rT1wmPuWtpB9g7iNPFJrVz3uyQCDypW oJ7YruZbBjfLMIho0p4V60+SUK1OJ0zBccuUNm+u3m8plwLlZ6y/kec12QksMTBYIjfKQLsrYTbv bisVuFagXjGbDkMu16LUOrRzMJtpselzj4Hleer18faVVqK3v+VYx/EYe/sr3Hvv2/HGN7weq8VS nmOkjTwP/Cct3tb+S+MR8wkBX/iSNTh9pliWVgN0K+UkPOt2lqwx3NyPF1IwefGXFtzchA146WSp paqDPEAOd549DzcswXwgCb8CwESIgcHECfgOgwdHQiA7Q0VAIG+KIuGPplBi0xayU8A41fRWfFr5 fq3t3HWomTfZ+2KjnjXXWj28I1Bcg+NlnHUjHDHCqQGLI+DiOgJ8HiMtUaYRyso2mggb28ocXffO 2pLfzwnIvSzz26fH5id1qgKwPUwiisbNtuctiDsJhfaUdGVp7c9LnDIddzYF28RfJvUVv02VLvPm KuzI7rwafDdvB38r/Lesk5knAnDv2WpN7TdGa2UswlTM44SMIu3Hds17QlTbXq9PRHVyuBaPzY3B 9sTcHnJExU2V1qePDr1Ei8yMrPKXB8YNIN1AXJqadIADpS2WfLTEGL4ROMqQVZBMa8XAU7smcRfm JZsORZvUdOVjBKf1trZesZ2H9D1lwC0unl3hI78b1BEsf+dKyS1prGrt5qQegkRCQuEI1CQz4R4B WnY6a6281dnCnOd+b0F5D8AnW0SLEFHNT9ZYl0JBG3LVNAOBIxz0hmVGMTgFhJSEHgApDq+V+WhG xiBPCrCMvtXGH3Uo1RhHrDTU59e/6euwWq2yw7rLd0o3B+5ccaOWamqeaSOi5M8JQLBDaWPfK1I9 AWgZWs60WNafHNwSg5lm9uyVPP3lvs+LX9KN9T/X29k/1v9NbTJnumk0GVPbz7kynd/+51oDtrln /b5KOdl78/N+0hugbeMrP/e003PtzUXuUZ8aas8Co6+YQPzNCEfz72jkIfJYDCsMw1I0dTHCw/ri JBoHEzyLuQ8tHMwMREKBWlJLpTMnWjq5+SfQsJDkYESqtVQQaxrQrC9MZxaAit/KOOp5TMof8s28 5XMPRGDYmcQw/yPpr4fjCOID3OGeAdEay/0bAAc8uwYO8TKMGDLgdPlkEzvw2rY69bsz3ZvOm03P 2hqcpMz1hyE3MdnjrFEaGV7Q7+RWR0JBmplIDcr0ObXZsLVN+76Jx55UABSFxmZMNqxUGeYZyDeI deCSBBDVNpx1AlIUwR1A99w6VHxM8YZlv2ZmBKrfbQWqXdoubwLatst6zVXGxhXTGVzzpRRFSG96 gCCnWpHkrj1JY8ym4qlVUmzjRIkguHLa/0SvbMIXQGo2yMzio694hWOES/1ie607ZmKoaVLmhcwM Q33pJggk+ZaMX0RKdQZwDgNaFnuxHEBLUPacfeea93vFDuyJtNgc5KWk3Eo4qe3m91JAMAAJIGXh S20VibnS+4TqSmdbEozycxvDP9dZa75L86GbAXslqC37AjIfh3pN5rTqs/M2I622c9AKEsx1co76 t/rAl/qnTKfVlJTtYUcmlfu93ddi0/s3C8jSXLDEy2Yw1usjeEd4xzvehjd93T1YLiXUJ4p52sRc +2VTiMOTFQMENu6elqI+cGvwJrRQjr+MSd0KZptv2Cp+UB2/dZvtNXWvbGqr924JKHt921RH7veu f7Fxnz1fpbfnes9MBeqTjq/829KwfHcz+3J+v9z+uWzr8osB6zAixIjB8gBEriIIyxkAcJTINF6C 7ncFU+ODlvgRQJ29vmm/xw96IGhK0/NnsYStlj6Y1pGZQRzgaUAAMHiHEEYs+SqIjkAghP0lHAjP rIEjEAIvEJFt2TPfv71lG/2We2qTb9AEv+zAk0pQKE61Y/7dEVJ47eIcY9Zzmeq+zXH1tF7IPos3 S8+tkGR4qsRQAj5rR/T2/N0WcKQSuk0QtLonAsZ25eNJxlv2udxjuwgWNb9XXJMUX/UeZKsz6ljL MKpb9iDQ8eVwtSJssiY7CMOVRQWh+27bRolVy74NTFHs6rmOztKz0WuFAUAkXNeAh7IUFubpUgFF HFbRvEJstSHLGJGlFGaRzGEL4AgqLUyu+gR4q/e1ioykWRnzJNZAOqI5XKwulfp6GmOibANGRWa+ so52nthstdLGPrnmIoFwcNZwk9iWloSaF9rmV9JWt9J3b73a37YdrC1h5ayErSbZnrFwZ35STyvI 2fdlv7blASgZ8cnKzR1aSdunvgaWeXAd14An3PvOd+DNb34j9vb24JA1zFysn/W7HMOupdWYT0ur mc1ttAxD+mPrVDswOarpvAU2MY65corFAZC+nK6x7v9yuHnd59ew3j8WSaO0fS7A5wwwmpbYpfle eL6+cFwfKBmYGu32he7nu8yBx2mx6FutgNnSVU9D39ZDWk/bziYBe37/lWOY9r18jwqnSEq/l+9S AmS6PsYTSxpU/lWu03K5RDyExP5Xc8wYWc8BoVepMPsIiJbPpc95HZqAE+brpnw8KahKoNrOCQMS WrMPQAzAkQEW6LlkNvpQ7WqIyTwUIETnEBFBGrfdOQcCYeA19ugSztMXMJw6At8ALh5HHLrzCHwq +chFZjga8jzMhGs5qS9An1dN6aL8W/HUhFO52KpFnXHKbwwA6mwBUDNc58UOTPvvQNliwvrgAE4R aEo+3ZhX242NfACUbuwGoF3P0pS3LtmCoiwWFMjoJeEEcAL/di8/EY5Qn6dmT57q7sxvGr+Zxlkm XDjJibHj2RYwgydL2kVeb9+xyJB/1/u9fMfqk9/t/PBZ4FN2xcwpahJB7OnJLCE0vK5j3cOYKskA 5aokauCabk0pooKHKdRmj3NVJjeJ5yz4WRo71euTMJrLfIWiGvHtckBWILsgCqGv6cDmSprMhlhT u9TRGzGnBFVtP+z3uX6XiSN6G7z8yjmXCGyOkfT6bEApEhITJEK3zXJMG4F1uaG4/t6RS6nE4wwD zP/ujXnKTDeNuR1/O/+b3m3bNiDUrmPL7HIfpwB5U2nrfqFK6QMy8ghmxlvf9ma85S1vxt7+snpW +jb1s3mhShYOS21CZoLc0K8lQyEqNGGhmd8k+Ma0gYkIiBHs1LmRHUg1IqWWrt2f8u8+AJ1j8Jwk h3qsu87rHA/c9v6u9Z9EqLudpddu/R1Xf204N9vfvPdqoNbrwy5ztwtfKfvb+q/1wOIuJfUtjohx xBgZS0vy5R2Yg4J6IAQBbCEwfKV8yX0QDKLOeJTpP/UrawQq8N/2aZfztQeEDMgQUPkete/UbcX0 LjEwxKvw7hjwQNhfgYhx4VhCGEcsEXkAQAgxwKuTc+TavPOkpTeealyY0npf/Ga6OqfVnsU96ZrH +GNNT2U7pW+dAe22r9sKEU1uAHbdA715SQqbDg4A5g3yeniip3C1drLA2UZm1PxIKryU/KVdU1sf 12jJN5UWB84JhMz9NZ7QfJNZbQ7jlIJ0OQfFALv9ZeZq79uNQpzz8Z4pNkfJB7T5vYeBRPDT91Uh N2TNj/VwegC2i1UOuJVUW/2RT54BmRGwtiOfNdV4cSWq06zRczQvQGc+RcMg9SULZIJGejGiyM9a +71i2R3tmaRZsYOFMRs5JhOhaI6cd3PrX/V9U39m27C/Ls8jUXmrIQDMC8evJGYZV26/t8m3tt88 75yr6pmPVpDrqf+d80BIXZIlt83Qa+8Z4QJIji1leLkejd6e0mic2Wz+KUn2xvTXx2u87S1vwrve /nbcsZIrc0/m+9DGqz+pSc9uz/WibZXrk+bTkrUBIIqIMQM4AAjjiEgkMc3lIdU+KNBX+8fKSYNU 8HQLoc8YAPXzETxRHMTOwybPbh+YASbTsDVACaR7y/a3CpWpcbtuLU3BjH8VQo7kntx5Pqelf7My /V363PoWvHhKO7+7Jf+bKxkg5PUEerzDQPJmM4MeOO2VWQCXcpBM11kOzikwYgRANXrwHuv1GkdH R1iOIxa+ETAipaWuwQgwMjAw4DTREzOrR4OYCMYYk+Y4ARWgMsuoFOgb+JkT5pOjnzXPlXwTQLJ3 htP5tbD6uk8iZ1kEEHORuA5wOMIqXsTLwBj2j8HR48Ix4ZjuRmDR/HuHxB9vlf+2SqHM+yE3J7HO q1MqE6rvLVFlMw9zeQHkx5wVyXi7+XcxxP7fbnzb7U3Gk9TnsZf52DmHYPRvfE4X3Jyz21S/8z5s 9Xw5BoKyYSKaalWtD0V/tYJJfbMguG2zuR0gEvHJMF8AJ7wiw6zxCJATsPayvfdKQACDc/RG83Hg fBMp3WsxbTMPLEJXO005vwUmaywx+VUodOYbWgtgZtaXN7JTq5NsFiRz5W0iqjaIrf2iTsOnlAW7 st3yufZzugnSZwcUL5a25OWLbWmlrt5ziaHFPtBsNzSASjpPkqBdBc20k+qdIfA5wG518cxzmw4d Zkak2rTIiNwiCpXP9trdxhzLAI/tfPc235xAkb7vjGFOIu6tTVlKaX+X52uQUY+yJVr5mLXDrnAq AuplNvCfn3VVn24FyJRt9DQeqX2YNC7PHxwc4PWvfy3e+Y634479FTy5asPtytiej1LPR8w3V2rb TETwMSKGNVwA4AAf9Wr5+jWEcY2jgxu49twl3Lh+gKOjG7hxcADmgBs3jgAA6/Uaq9UKw2KFO+44 g8iMO8/dhfPn78Zi/xSGM3dmZ60XAAAgAElEQVSCBg8MC+1UkDQIRWK2iFqj0WqJWsZWHzz1mDMY BdIu2ACkdhUa81z2/jqUlHo76PD5LuUeux119f72/r0LPrzZfm0DEpvWOYG6GLE+Pk6ZzhkBIQDk TeTPz7OCmkk9NAVGiW47tF31qzj7tAIRpov44ZwJfFJX2W49bjXrQEh9FKGYqzrkN3Fadp4ABKxw ABePgYHw6v19EDk8fURgvAwRg8Cx26Z4KYfegGE1lQFQa1WLUo7DPs+dp7NnBjtYJuXy5iSfZ/XZ azwV+pMImv3xtIq11s+qN5ZNpdpzpALPhmd7eKF3hvYEgfK3Fg+Uz5XPn0TZeBIaanEIkQZ/aW/a Ov3v1TPpE5ui1c4oTOihfL+HQeTfNmf6rDqTh5l5nvRjZm3KM61XR0mTpdI2CQCZkeQBA6hs9YhE 0yfAvKncBmgbhYUJyP6calqA+srM4sWTMsbkdW0DM00JakbQmhg6hprgNO9jujjtpFrpMYee5G12 alE1JT3QMimqWTJJf1PsC6sntuvCXNkc1gzGad+MMEIWWNT+qzcnbb9785HWqhDUes/3R2LPlJJ5 TptePlNfATZMv9MCEQFkIFwZQWSUGoZtZY42ks9JWmSlQ90YlusABBzfOMT58+fwjX/qT+DO06fh UAL+FxYETl0k6ugQEXpzAmAxDEAYEcMxHAMuHAOHB7hx6SKeevQRXHjsMXzx/s/iiUe/jCvPXsSl C8/g6uUriOMax8fHiHGEZD+NGMcR3g1gR1gsVmAAy719nL3zHO58+cvxuje8Afe87a14073fgFe+ /nU486pXw632AI2BHsXGTa7emWGmFhkYTYVEoNxvZktpE2F7udDCFzcBbdkGCo1+jYFvt4mfK7fP mft2lZMoQW5/mYsqtLl9KjRj+k16v91723lVuaZB6CSMOLpxgOsH13B6LyivCojRzjark4BkIkSJ JzPLjaYf9IazCYpQBoNJSqTmYJ+Ukv82EeESiaudMLspPRuoz3Mo/LicamIWrTVZXhfTVYtj60Br 7PGzOO8+h+HUIWKMuDgCR3QOa/h8YOoNTOsneOJga51SClI9Bc0EJBXjt7+OaOJLAUBudsxvwuaq nGd4EZiUFyVlYJOXhwODUDsDG56R48rp7av1zfiatGKCh/V3Fxruld58V9H7qK7fQcxhqPFtSEFW NvieVHOtmK6d/7I77bikT+JDtMkXDFDNPZDnN50RM+d55ZuU59UyFcuWi/CwKJR2Y6/K8cZ5JbWh vj5G7+24bJ3Tdyy3I8GFZDouvcs+r7k/0/FMBFdXdWtSiMS0LJ37+twAoNKczhX73bv6iniysKTP xvkOt++WjM4IqAX6vb5N2+5cV3Et/U//zh8Oc9Jx+dzkO9oMIsp2Zxn8lnfLsfYYXNnfubFZ6cXa b9eq1KK1wsKuIGGeBnxVl7ojITsLU3cDtP2ZMPhOWzdbZHy1aQwrUIWGv71x4wh7ewu8973vwbmz d4pxSefwfTEUIoKILRE8BiDof1cv49mnn8ZnP/H7eOKRh3D/J34fT3/5EVy9eBHrg+sYGKAwwpEk 4qPIOFVkswy6l+J6LZ8PD8BMGJ97Fk8/8SS+fP+n8enf8gh+wOLMnXjZa16NN73jnXj/d34H3vYn /iReec8b4ff35O7a5UNmjn43CbKAMNUM1Mtn+qB7017K3++6pi8+gL9LKffzCwH+cxtzf7e/v+0c mLa1WbgxYGimbmF9hIV3GByBw5iUL8aXSv5gwC23kQFHCFFi7BftMIt9elIunIRvbVufjXQ8HXMu U/8kIgYxiRM0IggRQ7gKR2uwA15zag/u0OHCMQCcR+AF2PnkA9Dbn7er9M4EUy71zsAuzbgOdmjm wN4jkhwQ5hhc9qFnB98be+92qm6/n623V3q0bEqK0umzLS1f7OG1uGXdem23uI2gSll9PgQRJr33 id4r4aMbJXI77chz02RmvfU2/tKLlhhjLCJ1N+1SQ08Jx2UB3opzThWRUmLxXqngreasaa6l355/ RKWQxWbe17aX8wAUoEkGwtVfG6D5mrumYlBO0mVAqZTk8jVoowEhuSlItmLMmvSKQN5JxIUO8O4N zv6WGYRbhpo2pgpzE5CfJlJKfcOQnW4tI12kbEdt9faSSVjsfi5sv4Da+97+OueSzWISKJSQWF5I TsDG5E3gMptXs4kL2lZLOJvmc07wKefX/t1m751q8my8Nk57zG6RWnBWR4VpcwS07XBBv+WYJht3 S+kJEmUx/w8y7YIjWPz8o6MbiOMR3vPvfRte88rzQs+kQrXuA7MlrKI+3OYic9gIzZZ3A2XItgAe R1CMoIPruPrEo3jwEx/HfR/9HTz0mfvx6BcfAI7XoHAM74A7SUz1vfdwboXIo8YtVke/qPasLGZF Ni9xEA1OZA+AMEYPhkNgYH3lMi5evIinPvNpfPSX/hXO3v0KfMM3vw/f8n1/Bu963/ux/+rXgLzD GEaQH7Itpq6zKF8pjdG0eOXqiU0mg9kcy4zeS3OBMm9Bz1a/T8/afLE32oN+G/B/cQoGLwTolzLN R2EC1s31oTYDy7xmM/ixf5f8LSmGOALhGNeeexYc1tX6xhjVJKasL//GzsltAKlCg5XWrG4t5J3e xEU9Y2vfp5suMgldobYCPPpfTGdEQZcUC9twMWvzxCIE6B50dIwVP4NzDPi9NUJ0eHb0OHTnEOAL G2rh9+SUf6qNdqSZvCPbZJvi93JNesJg9W9HcmurYVeTRnsOY6TzWueFnU1txUvYRfVFFHCZNOTO IUZOt8SJf7GXW2SdjyQ3WtuM5EMAFj8SSTinoZYLRtdTRtoFTO+3yfyBCuCjz+gNhQHKObwQ2nMX dSk/y3ashQ3jA62ZXObRfZ7UiwZUCmA2QexijZ+aGwWL4mgCl6yiRJLMvUP1r2TFQaIIi2qOl3AB oMJbqTCKXY5vkZEc+UmkRiCvswkSvUCy5fgwM1/p2UbOSKn85qSsHhgsn8+SUP+9Xl8m7zbAtOeo WtbbbthagqyfL4WS0sPcCbKWKEGNRqcVGFqpGMhhncC1SczN2Hj3JdTm9+addu5aDQeaMWxrc66U 813W1RModjm459bP+jT3fNt35/rfp3fibuPbtXjjCAZUWK70j8OI69ev499933vwxq+7B0SA4QIZ p7OzU9fltnVpUgy4VPMShdYdsZgOrEcgrhEvXcRjDz2A3/31X8P9v/dRPP3A5xCuPocFGOc8YRgY fkEAcQo9FxDgBsI4Br3SF0YbvTIx8dpPYChEAd+R5dlBD7MQI055j9NuwEiE9foIN778CH7j0Ufx m//mQ3j1W96CD/zAD+Dbv+/78ao3vxlwAo4isk9QOjSt8DS6mLlmT4W7kgbrOWy1R/kAmueP+fcX J6h/sZcej4+3ef/u0v5UACFgfYhrl5/FYnAqRAMU40R+y3QwHQvQnJvF71Ph4yYG0PD7TRX1zjeg tqFvz7tWWPIkwM/7ASGMWNEBHJ4CyOO1d5wBrnlcXBOO6C4EeGQhr3O7dBuXuD0TU4CDmbNQ1iLH U6/6daJ2i3DHLL4U1pZp0B1TUjhabiLmMNEUZiVNvz/cOfd6Y+v9NndGb8MC1bx2fp8qAefrsKda RWtLGz1suKnk52bGt8P7JW5Ky5kfyGMQ0Fi1m/vbvwFqi9EBkH0IPZEmfS22RZynx5vBX2X7ADCU kjEDOYOYVVhOfsyWck4HaRKgWkKrRpwKgUk0IGVnZcD1oTz2wj/F7OTZA+XVYKLEtXVeCHLhNOwX Zcm02gSuYBCxiJbTEFuASHXTONF9p7ldPdjnBKtk4988m8wh7FlGRWi5WFp5+10WwqszUGgIdlvZ RlQlrfQ0oDkCi1eiH9OYBEdPHWmA4laFRFBLNx6oN17vXQApOtRJy2x8amp0ASprXrlyBW/9+jfh 3ne8DQtPsHsNmxMnMffSXNz+UmtS0dKJxbdfB2A8Bi5dxOd//2P45Ec+jE/+7m/iuce/jIHXuIMY e/sDJK5BhPcEqOY8hDFl645geMcYyINZtZ3kESMQgmZtZoL3HkdrsZWOLIAu6h4dvEcILMIJAwtH WHngDiKsr1/HUx//OH7uvk/hV3725/CBH/wBfOv3/QDe8I3fCLdYIowR0ZGYItpeYwDqKwDToFqY NlJ7bi0yJ+rhjJqBm+aJ9HAuNUptpuNeae3RpZ4XBsR+9ZWZqDyUbwR2rYeT+hQw+r85IKfnmfUF ETi6gQtPPoZweAj4CGJSLR9r61EcAyPDDVkBZcKA/TWfr4D8PZGeKzGHsSV5WZ46iTTQEwIKhUPv nK/GboCT6nZTZvNC0woIWOE4ytjA8DjCHj+Ds/gc+NQRxgPCpeDBfAYBQ3JZS806SZroUpST3Yc6 VyZKMGQT17S/Dd8kBKrnVAqDZACwjs4zWxwn8xYghxF3MKfhAvwywHASxptisV5lyI9+iQhgYohv VEzn6s7Fci81X8vFJ1UCxxz4LgUlwygOEdFhdgGzb6e1J9r1HEBF/lo+DW0pcdmJwNbQeLqZb6Ml dfpCJP6ajNx+vkmwfBkQXq/7iVnesbAOrQ9Pm0kasJsTl+pPyjIAkaL4qUaI30Dy8cg3CKT9ER7k kn+tjT2AU96D1Bcdl2QiyBYHc3jGRpEyAVuGson0X0yesbc+4TlYUgOTrCfSfvXvnFiCi4FsyuJX lnnCqBNTTQSFW2yDoaDH+ltpb7IG6cQMvCjtJiz7U65NWUozpLbvc2O6lX6FEMSGb0vdJT0JmMqa kd6ztRlZPbfy39Q+9WYO+xOXKEKjMDQRZi5duoSXnz+L9773PdhfrgQ0zt5MZC2JbNDbW3qaO4Jy mnENXL2Chz/xB/itD/0i7vutj+DwwuNYjoe4e+Wx9ABzwDAwiBnD4BDjWuebgYX0GoCYNjDL1SV5 sGr3YwQi2zWsCJr7S4EGITDCyOq7KPazIwFDdPJejBgcEEPAnvPYI491jLjy0IP4Jz/xQfzy//1P 8d0//Ofwp3/oh/CGd71bDzO5Yk08y/Z9My8G6pNglPZVO2/1O6VmBdgs2Ld0fyt77I9zecH28kyZ nhURh1cu4fDKc1gm0JWVK0J7Ldgv38/1lrcDdtCXbSZny0p4POEtSE8IaMfXUTxt49vtuWP8DGoy RySKDs/XcRpPAN7j+NQpxBsOl0fgiDw4uiScl3z++bCFbOe+HReQz8upAiDXQUTguCtNNn5ybH+V P0VRShGgZ5/hlBkTKBtDiy/YvusrInqgvV3LudLSZW/9e/WKW/x8MTxYz8/0dmluHlpc0zX1KutG zUvKvQcoL29MjtKNY8P3oePrRfvZVMr5C0AKlw8UQgFCofQWWoiTdZrOb6KDzlwB6nvAqOjGNfNo fSwSgWm81HYCioe3bQNW92LpoHkLlIuR645RnJ+S/tIDoEIbbJJ5M5lpcpJNfW7fK2FZf4FsY196 swMm+alUTASvE1ZG+6mAuFPQat3TZ0iBIRBBnhDnFIQzGum0kbj+rv297FPv/RxRybL75bmPYAS2 OLU3D07KfrXOM9OSHaSkCH1ZZsKkiTF6Y9EllRnu5MAq65v23d4jlwm8Fsg2l20ZKVvmxyzRlA6v H2C1ILz/fe/BXWf2AYoYGqZTCTCcQ/7VMPKkokDfuZTjmExICQCPaxAH4MY1XH3o8/iNX/hn+L0P fwiXH38EpxzjzCpiseext3RgjPB+gBjZONVW2rg1GZiud9DspqLVEI2W0J/uf3YICvJZ5Q+GQ3BC o2NkRAcs2KvQwBhHfdc7rHWPUWQshwGnmHH89NP4hb//9/Hbv/zL+OEf+RF815/9s1i98pUgYsRI sKhBrH4ATkOv6syk+aoOMNNAIQvtdckRZNrD5GTg7KvTGfgrUW4N/N8akjRgETnCO8hGCse4dukC 1tcv487lAMQjVdZGmPVsKyxW9FHydHjJUpxC8LXvmS10Y3N+a4MC0ORJ6UxTS8sR+SY8fR/NxE7f IQ+Lew7IeeDCCO8PsM+P4zxF0P4h1tccAq+wxj6YB4iiMGrmXZfyfUz61Gytk1yelsqzLHz1waE9 F2OoBXy19ZdETdCoQJ12OGMOKSIYJYdP4xtOzCHtfDZgny0hmvGn6ijxMlFABsVpqrC190o8VOIj mMJNs/Ia3+uce6ViruVxc3sznQ+GN4r6DZjLeJuzuakzKBazfEUGeZnrADUmPPb6w5yjTU0vJMwi obYkcOqkzxZOVukl3SxwHkc9rlbpY8FUNDMwkSrJDIPpXVqa0xwBMyDA63As4SZSKF07WxU/k92W NIIeT/eMjFrW3HC103lixTVD+XBvYL1ioMj+DQjeF1tnB0ac1DJlki4JFYlQi36UwkMJ/nM/RZNa GmupcFy12WPQvZCeN3v4pIVx4t1ezs2JNTgzZU5DI//Iz8xtCpvY5yMG/XatAqFcSxO4WsbSk+x7 7ZTPtwzqZuZ603uiAWJEFWodDYBzODw8wOUrl/CBb/8WvO61rwYRwzBDrrMRRBQQPB8WISWjpTAK s10fgi8+hd/7tX+Nj/ziP8dTn/0UVuMBXrFg7A0EchL737k1yBMc5YzA8l/tviVTRGB18GUF6kwE GJi3qBtMCE6YN0c5DMMIBHgMo2pNo2ROjQAWJHWug/hMIEQ4NREAgCUDC2ZceeiL+OB/+9/hQ7/4 S/hP/up/gfd+7/fA7e0hstypCKk5jCHCOye5x3bkZz1NYXnYbNOk5YO8FhReKl8dpdQMMwc4DsC4 xhOPPIjDg8ug07Y/anqRCHq5DmbhA2baYvUJLTXX9txkBUVhT307SKcAoGUb256tdn4B2Oyznde5 GOhhxHCIlQeYHwO7BY7vOIvHDha4Gl6BtUZOE/Bfn023q8wpzCoBp7rNayIGzZ6180I/UY5aOKcs yH1ogeO8jXjb/9nzvag18SfUStvtCrtpu+1YWyXsNuFgorTd0F7p89PSRU8Q6c1HhfOav+lGBqYh rzGlJSKNcUz7vDue4nNJL21/KE7pztou54Qdgdin/nn1FeHifblh0yAW6M9liaUTzor170D2XbX2 swAQxTse1HfqaCXG7Khrk6OOMETIdnMiEVWbwuUscMysUQEiiLJGxTZl2VIZZUMWglO7UpvKoDNX Y5b+PFJMQKGV7MpikmjYQLwyHtU7FgRWEmmbT6GnESw1Bb1+l3Va8pg2vFq7GRybPWKspPxbASZT 0MMwc5gyHFr7TgmGq01Szo+ElMjEaQ/FvN5l39tMgjdbUsbGud/JbEgdRgZiGHHhyafw7ne9A/e+ 7a0YhgFlHu/MGJsryMT71VdGafxW3QKq9YwB4ABcv4IL930C//Zf/GPc95sfxvGlp3Bu5XFqRVgM wOAlPbtzkP3nAMeiAXO+Fu4z/eXoRQJy8j4XDRonX4AYoNlAJcW5RQ3x0QHeqf2/RPsMTBg10ZCQ kTQotthOwu05h0WIOOs99kH48kc/hr/7Rw/gA//BD+I/++v/Jc7ccw/g5XaCCOJ3gYi5GNLtQd8C hvKgaPeX9DP7NeV3bH+kI1e39C0u8Nd8SRz4K9oLwAR+VYGFCBwd4MrFJ7DgQwyeMCzkVlM0jZoL lpUWSHk8RZRZzEdWfxo9jR0L57dzRfzmS1MQPQtTUs5p9LyNpaRtO4c4awIjzDywtnFni7bWAlQ7 p0sttPJnMStQny4ARAsE/X2JG7gDT+DlbkBc3kC8QbgGh8B7AA2TVZ+ek1uG2eCRPPx5gafia3ZW EyPE0CgfOzb8ysOYmnkzftGcWxb73n5bB/usbeQ4k1q/1meab9i8WjtNWGyCeZOkczjNRzEnlr8p jyPTxKbSEwRaYao319vsRPK8T34QtNjJyNz2ZRdBxjTdhdjXAOhphuAySExyCXExrRkDKaOzbDOX xpvnyfqnN30xrxtQ4ElvFiUMVFmLSYSTol7DD4LrdeHb/eLanYsqt0MbzcnK5AagnPC2JE1mR+pJ 73Qk3lKgoMiIKgSQAtmyvU0Sca+9oJPmicRRtPPOXKEN9ZoE3c5qTwo2gFq2lRduM0dLDGdm3O0m 43b+E0Ofgm8PygnBijrKunYp5Ty27+V526mqar7rDVrXnZ0va4FwToDpMapyvDdbrN5Ikpzu8ccf x7lz5/DN7/km7O0vwWGcrLv+a2O9t9ovK+IEa7H818ClC/iDX/8QPvzzP40nP3cfzroR5/YYqyXD DxELD/hBhNZh8AJmnYQhM6WYT+N2KeloFWYxFoyOHdaREYOCHif5ANg5MAmAHxkII6mPgENYR3D0 CJpciNYMeIcxysHpA2MdJOa4c3J4LoiwHtfYcwMWwwLXr1zGh37u5/Cp+/4Qf+lHfxTv//4/A79a pTC5Nse9Q2MjT+is5bZ3a7pLkEbb3WERXyovimK04iIAirh28Sl84f77MLgAB4cQAoaBKq298DHA 1tupOWgkD9+pWxJricliyQdzyYB8Jx5RgLrq31ZvY/rarXPLOWUAuP2u3FsOAo49DxItjCMWfBln yAF7C4x8J3A44IDOY82nIKaUGna0A/pOUubOMmaeRAKqlJFcw1VZH303mdDw5L25tuXfervQmKPO xfxvz7NeO6Zg6L9nP9S/90p73tb1z2O+9mydnOEbsMQuOMOUvv1368/l322lfL/FdcwZixBl0+0Y oypOG4Eujb/+PNsuaqzcjrecwzxHokBq59QEOHv3JGUiPBWSN1FxA9AF88iSIpGYQ0C9153GQvVU T2jyhlZJKcIpDyo030wYDbja9Yfrt99G60BSpdqztWMRMXcJOkucrogAkCcnTRAykRCJAwY4e5tP +pgyxfZAcc9swKIOtP3avFlaYGKfPTldl3pzBAS50ZmhlzmtZ6lxqhi8M1vvlpmqM5gpRrrMPEdi SRp3bjVb2UavnQO5XarXszXj6gk5Ogqls2bslrEx+RaY132hoVBGEMkBEXjm4jM4OLiGH/i+P42X vewusbFPG7kvoPQEJiLKmTFn8wL05yeNK0pknhgiKKxB4xEOH30YH/mn/wi/8//8S8Rnn8IrVgGn FoTlwmE5AE5Nffwg5ggLJwce+QGeGBb5xhEBmsnbDupocYiTU5wDWL73YMTgAIjJD3tGCKJxCc5h iJqPAoNECvIST8iTQzDH4SBKT8+M0TG8A8bAGDXi4poBt1wgBgYh4A7vMZDDY5/8NP7ej/9N/NBn Pou/8Ff/MhYvO4fgXVpDUlveNHvODoVbQ+bzjLgfz/qlMldeHBISMYkW3DEYI4hHXLn4FI6uXsIZ Lz4vMR3SErWlBC6S/6X2e5LgFo3WlAQoT/V1ZdxzqVbqD2jPsqow9/8NiL+B8l2LQj5p19UOyv3J ITCPIOScHwmIkk99le/WoEhwzsPHEY6uIPJjeMVyAcaIx244RLdEwJBBjWZZl3Fu9gno+TKcBHxO AHTCz1zMeYEBVICKBa4xwaAEcnk+NR9JgUtEqLSOiy14KOgGus7Srmpry74QJZMy05DnNZAABxaA oT0/8zk2P589+irjElW35BsUcXMK5DkhwtphAI6yCZatrWNR8EodMp/JR6G5EWMneRIs/1FMGaz7 pkJUnK+CabR+Uj6ggw6WX2nik8NpbnRQumZFGNANYN0yeAf5gMAxRSYSAVLMfkJr6UF5PipsuQFP lnRu6x0VGk7yAPSlz8acQSfOmGC5sD0bpU2asJ4WZBepsVdijPBU11n2RaRwlciL6pPDRzGOUnqj gpHb74mAN0QHYWZ1CcpOVam+ZnwRvPFabipI5DInGe86hzWgr/+W45wwux1LnwnPSca1piIzld1s GNvS24xJ0COqDsRSKk9XgZpk6rkrV/ClL30J3/s9H8Db3/bWfEVbSe+b12Du37uUks7SwcOaGOb4 Bp757Cfwr3/mp/BHv/2rWB1dwcv2gDuWBD8ErJYOwIhhAQyO4L1o9p35Njg9ZPyQnbCTDz+rrEYK +NNsiX1/JIzBmBOpgABEv0gZFUNgRPIIY4RfOATywoAY+q4XP4ugpkkRcGAMBKwD45jEqSpEEcaO 1iM8ExaIOD8scHDlAD/7Ex/EA3/0OfyV//rH8dp73w54L3kIlB/l690pfdwMXb1UvnaK8XvAeEIE whGeefRhXLv0NO46EwBN7GeJrEqwk/d8Ga2k5nHlGbKNj5Yav5scUAJq2x/doaWGd5Z/0ewfUUwM iBw04dYBloDeBKxwFE/jmeMBR7gLI+/rW/lcfj5KhU946kTaPT9bQQHlTzW2mOMhlbCBfL7ZO8aX WoWhJIbTGyWqo/u1dad+a31JgWV9LLCJ/N72q08nLaJJQUaKfraYqUfTXSGpKdavVBcYA9dzWwpm FkWpqxRlZEFCP1e4rhJWZZu09Ugf6vesf+1a9f5t87Wb6scSn1Iyj0/rXcxpogOq5z+tMzpzgZq2 K5ytjw8wr2h2FchIjXgAHAF2OiCJQysHq9lHxaqxsrgmsys0G2Ja6mSLnwdV+yDYAFD8zRWmTHCy YhlANpvSNYQeKUthyRyp+L2d5I7iJGUB7hWLAtDmdUz1dr5X6u7WB2zS2ssI5fvd0ofP1z8F5wLu oNK5MaxGI02ZBnobQ74o1TYq2Sakb17/JiD1ha728N1aYt701aaoBNnicXC+jWIHkMPBjUM88MBD eOtbvx7vf997MLio62Sa/92Foiy5t5r/eSHSQHp5KwN1UsSNq3j8D34Xv/RTH8Tjn/k9nMUNnN6P OLUc4P2IxcKJCYMnDAMweMB5ubL3XpLWeM1c5pz6vrDTfeU0bjKl/rFG+zEfAGax4+eRdD5kfUYN 8TkGFk0/MRZ+QGAxAYwRot13DB8JMXgsHGMdAzwRBjDGwJp8STRmx4hABBbeYR0YSzgEAPsc4cnj E7/6a/hbjz+Ov/I3/gbe/Z0fgN9fISAiQuKBp4BdyMv/Evj/41E22ZgLXwgwtkDM4EsX8IXPfAKn FoS9pcegFcQoNv3iKFPuAPAAACAASURBVA+AAxwWkLC0mdvLmRFB5KozqwUTlgfACJOL929G2aID mggBLt00qmZ6C7+ZVqk25mQqLYg2HFE3k/rfaL4Qp3l4HDl4PsYePYuIR/DK1QohBFyKC0QsEdmj dJyPJmiZtQGAmkff/I1aq8yqgBNDAFd+WPqvNteGT8xOOzaAy0q+r7V8PKHKVhshtwceYg8Op23G aeIyJkIIdVS/0oJAvrebg+kpVCkMiyhBbO/3zG7KI9p+dprIrCM09T5vem76XRMONuFRUyg72UNF riYwY3AStS4kha761lnGaX20shTQfWH1W/ulYObYaUbeWCs9SYNSUFEX6ftl9y1fjIQPmmAhO/+j aticGyrFZ8pT4LJCXW7bs6BX1mf/zvQ5XYtEP4rhyhNvmJPgSilR7NN7ks7U0W5aR13vJtONbd/1 gH1P+p5Oei0Bpuc0wVcClmX7xXsBrNef6m/gvTiJdebN3u8ldO/dSqR5sXdnGXAxhs53iYAL7Uab G2DX0pr5lP1HGsMUVFcSZlFPlSmxGVN5Y1Sur7wnpkP27/b3XUpPe1O1P9Gk6L/hwd5jPI74whce xN5yge/8wLfgzjtPgTnAJ2a9UzdS/VnI7gFPmvm+2Y9Qm/+rF/HFj/4Gfun/+klc/vx9eJk7xKlF wN4ewbkRqwVhWADLhUeMAcsFgVyA9w4DSYbiQRmQS+EJsxAAIOfo4BzuU0J9AmACkcT5Z3PuhZnz iBCwcIS1E4AzRsDDITrCeoySzdkTjtZB/AUi4CJhZHWydFKPC8AaQs/HKUyaOBc7RIQxYs/L/D7x 2c/hb//438SP/NiP4Xv+wn8Iv7fCyDFZnPUAf29vvVS+tsqcc6nwEssSrw+GgPWVi7h24VEsXYSj oId8gEXHIlU2SUbyoIkx8/emSJm7CZjwoUmfbh78c4yi+e0orm69FACcau11WVRcAnQv+/Ea9vwF 3EkrxNML3Li8j0ALrP1phFCflglz3Oael3H/yz5v2vfzmv3+xJZGYJv6XyuhIKZD0QKUsEZXy4rR 1kewPXdvpmx7lzib0O5Sdonit630njOhWUyCyhscQs9sYlsfWOd3YtRT0jJNby020Uv5mySfMxGx 3vvtmy1WzX0sfUg44VEiMUVssRBvUBz3+m7vDXYyuiKOevWiRjkg0sgFTsCcY0bWbkDryM4vZt2V J1EXLUn7BHgLbbSJT5nmxd4zr+raxk4YTYeAvDPhvl+7xfenekMkm/cCk6VsqHFMz8diYaSjxYLS tD/J5s/AFihtsk3MyeyzJRsgJamYNaMxkTG4tBroZyHtRyGqpMkCqKZMvmxhW6VtrxKx6UwsGkaa Vw4V0K2lbnuG4bzdAKlQofGmQRYdKq+z9V+mZkcBwOjGgP0cE3J6WLJI3Ow8YmB8+ZEncOnic/jz f+778aY3vk4yf1IpyJXWkrUNcO5vUl1M94OaFFgMiF4xxpAcfsdj4MpFPPg7v45f+Zn/FVcfuh/n 9iJOLYD95YDVguF8wGIQbf9ikLldDg6eAOehEb8iPFCBf2bxK7EoBimDoRgrShQcpS2J8S8HPJzE 9wcIowd88Bgg3SUaheFG2ceBHIg8xiDjWkHmOrADAoOCgx/U/l+FACIGjTJv3uZpFNvJ1eDBjvRd xvrCJfzvf+fvYjy4ge//S38Rwx0rjHEEHMGbxseik9lnW/5WQbFBc/xSefGXOZBT8hNmwHmxHo5x DYQjPP7g/bj4+EM4547gSW6/zW/H+RzLH6hNS2McMSwkl0YOYCCaY4BSrppSuwpHsBvQpGBMmvqT lYgAOIBSZtKTFoto11NhTUurCDRNtQMwJgWgl9tGPsIpehzsPF6xv8TjNxZYB0Kku1LmU0ZM51kO 6Ff41RgfvwnM2wuFSXreROqDsfKdlpaYGfBukoXWNZ/ExLjWBpuJCOuclcrJEvDHIkxepSgr/oIB Liwtekrd9Jchmn8br/nCzcxniiM/I+j15rf37Nx7djOVMyjn85EoB6SIeh65jo9g9b7+1BrgODPG ZiS7e7PSCCHAq89bUIXjLF5MeMzmNf+W90IAiBE4ZisTo6NsW9ut15Lplj0nIsWJis8K/JhwY5OA 1CeToUaIMRrRuah8AHqlK40RJQItiWxbJlpW7Qhbx2fandOqW9fbEmPEkK5ASqYM0YhUBFm3lxa0 aaeUlGppsJYMHdVRhKoxIEt8SavdjMk2PtmmLoTabZK9CSBl/ZO+71AmTA15/vKa1nWVNoFzfdtW KqEnkc6077swn7mSQzlu70Nq0w0gOFx89hI+97nP4U/9yW/AN7/nm7AcAI6hQ1OlELC9zGo5iu/y LUi+eSIEEK+Bg0t44Hd+Db/6M/8Al7/4Kdy9GrG/AFYrwsIHLJYS7nMxMIbBY3ByJT94SuE/nRNH PRtDaSLHGq0nJftiThmAxdEXMGGAIyF6ifZjtwGeCUFj+48UxSY4OIyjAIUxAN47+CB1r0e5yHYM OD/geM1w0YFChGO7QVIGPuZrWecc1mPEGCMii1OzZ4aPEceXr+B/+3v/A64cHuA/+mt/GcPeSkyV SrOyYv1benip3N5yM7d3t6tdYAocS35uz8Q4Cuw+uo6HP38f/PoAd5xdAjhGAiR+ei4ZYANKfjPd yxYBiB2yGVDx+yYN6gtdZtfJrtIa8xx71pOa0rL488gTEWBg4dZAOAbTEucWZ7CmPYwH+4DbR4ge lJQOXGk5b2cpAXEIIWkGS17QAv65GPpybhV0jfqUTAAd9ZnsvQdHBZpi5CJ6Q1fvD6OrWNbX4I1t mGvnOdkBawAtCqjLSdbrdvBZIjHfZre9rnZ/JeyUcJlZgaiPDxp8gime6ilODZ+2389hshZ7tDRY 1icKipjasee6AtGOlh85DCiZZlUqy0HMYpKuzB6Jg9n/95mhdFg6aVJLGop4uIhGjxmgWsIG+pJ6 LtNwWqY5sIkpr/oka5o5+srwegualm7i7S3Xu2yJkiyBRHmgFNK72XK2B01qs3jPJHDXEKckS5kh PHE8SP+sbdmAjKTnCGAOqNZRZxIhkjG6GuTWa68RYNgiVsxFAur3q2SU9rks07Z2ZyCWYTDVncZj G8fif3lAQWVgwpXrR7j/s5/H3v4S3/Xd34Gzd51GjOsUVcYkc7PLB/KeqPslz3e1R4DUp849QrP1 xrexOmLg+BBYX8Wjv/eb+H9/9idx/ZHP4O69EadXhGHBWAwjlkuP5ZKx8B5+YCx8wKA2ywOxRAIC g7yQEbEKAwWtEcy8ySPly4i2t0Q7GVWbzxbhRx1svSMEjdzDUW+QnAM7h4X3GNfifBwYACSTbyCG GzwYg0RdACOYY3GM8ERY8gBS29njyFin6RXhZT1qnGdiLD3BIWJ9/Tr+yQc/iDtWS/zgf/6fwu/v ITpxQPbJFwNyi5XyiWQ6+eoo7Y3eST/fWtlFmC1LeSC+kMLAvFJFmKhEEGEgHuHo0tO48OWHsEKA J715K6JGOM4W2cxahRxqSLfiLH9lrBopjSgpwRQWp9vcidBwk+PMq7ptnVs+PHH7THyr/H02alkM umdcOkeJxFfKsdxGhAgMzoHjdZylR0DLAQfrfYT1CuzOYc1y7yH7XpRlUdtLvavChsaUwfWkmYIT 8HIZ/AOFBrkgy55JLInOPfHHNCcJP+j4izPG8Ahp1L5S6y8gHNkun+WmmcipFrweQxIc03lY4i7h gwzkG3DX2Wc77L1eFL2esDq3j3tCi30PoJscU3hDKN7T89EGjvI8deqfUPs+ugl92w2V0acoXS3v gmneHeUb4qQcMCsZcul5gxWOsqKUOd8qgB2crn0F8gnTvV7Mi3OD3EikeVB6czVGbpVWm4oo8Ix+ 6++HXZhwvYhqMtBI/q2kRCVhIxMNANWMJxbabW/XwizXV9Hl6yLva2csoszke2PdRLy2YCnslx0k zdi5U49offK/bfxy/Vdvit4msbJRA9HOBdW/n2QuSwnW2o2oN21JyHUx2/bW6btfSqYp7RrjrJNq bXv/VspkvuAR4bFeAw8+8DCee+45/NC//914+9veCIco5l7IWvMM/KeSf7+t6XqUjkZTyd9Ck0Zg PALG63jqD38bv/LzP4lrj3wG51drnFmx2Pz7CO+B5TJgsSAsfJSoPwr+F87BDwr+yWVNJknWXYq2 Tx2YIxwPwnwYiOQN5YPZ7KUHtfYjuJH1KlvC8IYRiF6yATv2iEESIhE5wIuQNUa1vQ4AMCAGQhg5 acHsRoLIY3TmDAwEx6AxAwDyDoEgh0SQ9RjDGku/xBnvcHC4xj/8H/8nrO44je/5i/8xnFclhq5H sDwkjGr+0yrdOpltLLdOx1OTs5N93l7aQ2dOI1Z+N0fv9ts2AWBTG73nTlJabZuA9ihKjuMbeOgz f4gv3v9JvOpUDnNNJDH+xfvFQi5a+yIkWA4A57we2FmhRaaAIuWPbn6Mohl+cZTcty1rRRCU6gS0 mKlwVnxFOGaEyHB0A/sxIPglXr48i/U44Er0iHQn5IaxOINuQ56A3pg2nbvl2ra0Uo1bDq8N+4DU tLVY56YdwxU5zKe9Two4i7qa/gBIysPy3KBEbPn3my1pj1Q3xH2hv/fupt/LUhrPEhEiMdwOSoLp GvWfa4WPEsf01t8c+sXstjAJM5NlWZjKBLzEi45sxnbHm0CtuRfcZ8/WPqeVENsMul0vU3iWdGH1 JyfgpOlzZlOfHktqDgKEUYrRmXSL7KnWfj6m7wEgmg2bvp+dDOsJKG38TSMqfxXUx/pKzrs8KYHr 2AZzAJs512Gm32kBLDqLvct54/YkXomHJBu4XVZ7X17I9v7OuWq+UtvNLYAxF06W9tCoTKZNcGn+ 87v1AZzLvAYeEK0WgVJI1NT/VIVLfiJEDLBHew1sDN8IV+Y7VM+082d9d8YInWWEbt+rNf/TQ3w3 JtF+n8KLOgGwHAc8+dSTeOyxx/CGe/4dfPu3fTMWQwRiUFqOGglk0Yxj+42L9MFuCQzgCmjl4uZJ NGACNGKMGHgNjDdw/YFP4yP/+Kfw3AO/j5ffEXB6AezveSwGxmIgLBYOfkAO9zkAgwOGwSd/Dkek 4N+EWQU2lpFS+8xBqE7OdJN6VSOhEXUkXLKYFYUg7i/EBPJyc+Q1C/AIvVUQ82TZp87DRUagAOcd wuiwdpJPgIgQA4EogCPhOEQEFfDXZMI0ww8LHGINOGBJA5yLwlfGiOPjNch5rBYOfLTG//E//wRe 9ZpX413f+QFgqZ4LhMTITRA1e9yc8JPSbV1PW/WVL63m9qSft5feAbPp86bvd9Vc7SoYneS5VlnF bFpcAfoY1zh44hF87MP/BkM4xMrLeUIkN2SlFs5AouxnC7Zg/kpm788gB2T776wM4xmIn4KKFT+3 oG+3ctJ1nrspQrftrBEWFTpLNA19NgPWNJYEoCTMqgvHOBWfxXn/MHifcXywQsQeRl4ikIMvzkeC CFRi03x7IgIBNR2kc8VNzXYrxUALugr6K3MFZZNKEu6nZzM7W/lyvrm6cSjbQsIt1oaZg+q5Abm5 zvkJUKwDJazQUputX9Lwd0BwjIIJaAe6reruCActdkpjrOZMPWWY00aweTF6YMqWKfmvStRFgKq5 4hSxRQDkYEECM7BuLC8M5aV6I+TGnp1GVLK5qefHlMItHk0+DTP9tHkJuWbtd64jjaWIGsWhuKUC ZUsU80lNVyj2ssxnlQnYAGSpnenBmpKZtR1v60ubKm4Gaa1kkzdd/qsPZq2pk4RD5sQooHj7wQNk SWuuT+1Gn0hdxRjlhdxGGRq02sxActaY06bNgdWqbyT/Y9ndEwl/OqbpFXMLnO2XuX7ZVZdTR0/h P3Illuqo3tkMyO25NJ+xZsZtX2Oct5M9ycHYE+JSwigiXLl6iIceegQcR3z3d34bXvvqVwB8DGaa 0ChQ+ELMHtLtWtrau+Z3ex9JQI1xlOtzPsL42IP4t//8H+GJz3wUdy/XOLsH7K8IwyJgb+mxGMRx dlgIwF94iaLjvYcfFPyrqQ8RJ0Ha2kwMlglOwbGskWjkgh4UmtkcpGFaOYxw3olJTXTpOQSpY2SA AkTAI49IEg0owr4XLZ8n6WMkAfBRTSPEOY/EcdkRoH4Eq4XHGAhx8FiHiGQ/PDLYE7xf4CgEjMfH 2FutcPmxx/ETf+vv4L951Svwune9A+y8BDVI8y+ZXtvMqZUQ36GlXQHoS2VzlJAXovS0gAAknwYB cMClRx/C4w98GnfvEVYLgvMSQtdAfOkwn0tM/jTOA4QIDwueYUEa5s+bbQqMr9ZSYghHopCQsBEE xoilu4HT8UmEYYGD1Z146ngPh3QeDJd82zwN9TlxG/dbq4Sy9W3HkMYxk1G4lNe2CcO9MZR15jbE pNapqRGpo3mrZqzqLcZCLvMuEyTm5qB8rsU5k7Z2INO58c39Xp2d1i6Z4DGjbCBTPkuf3AblTA/7 WL2umPu6mGN/xla1gjv3teIlVg8B0NCl7gQku4tC04rhvrm1Kr+r+57xdSUAlB2YCFNUmK84VxDi Zk1sVCUAkmRttoTNgE0SI5n4rAE2MKgbVCVAT3owe403zEV7Lnvmm+1/K4Ck5139OUvSoZH69WeC auQbbVIZv5c5A4l28aOFOGs2Ceff0yZIEqjMi31n8zbG7GXegu4cxcEYmAlT5uWeNT1Sl0WZMdtP jU9rQDVVnW0cmUMSaHqHYrnP88YQh05nNzyqHSLyaZ17iKvV1FR1dp4106Xka2F1NBEbJCunQ/Qe x0eMLz38BJ55+iLe901vx/vf+244Ejt1cwKcMgSLfmR5DFohKzSf242ZNQi5TmDkUTYnr4HLT+EP f+Wf4eGP/SrOLW7g3B6wtydOvnsrwmJgOBexWjgsV2Le4yjCe9X8O6Ff77OgbFFw0nqGiEFt/ikS yOerZSbAJ/onrGMA2T7hTOeRYhbkXAQTaWZG8Z2JiOnmLxhdgkCREIjAcAgUsYQIHusgcbCBQeIi jyzCjfN6QRaBcQDiKAcYOUQvoRqPI2PQjMDH4xqnADx6//342f/lg/ixv/3fY3H3eZD6Jpj2qUy0 ls2vCnPChty+0oD2q618JeYqrVlzGKZsoxBBmcOIcPlpPHT/xxFvXMDqbAQhSNQsWEQyY79qSgdT DAkHII5VZtXML0wQUJOPQovdzolFXcHzJlzuag5S3wS00ffaYlmQKx83IO2t/Jz4CpADOK6x564h hKdwfjiNdSBcDAsEWorDPvkkCCSVqdm63yIp9cB/dcbYMnAGTbWCywQGe8fDdTS7ZXSa+n2dlape pN+9xHNCCBJNT2jGpTDhEeZJbs+TnkJ6awBTVNoZXfdrkjFW37N7BUJWRFU3Azx9vy3tfJ3EBMlu 3GSzFbgs7WOpK9hzqrgqLRfkMaVXdiiDsVjxKNcCyH4aOcKXZfVl5uxLyE7POMWZRZ0iIGWsESBW A6FonSbh5mKiH6ujxDhJwbqrIGfjKxLIGT0DyCavUdZ4KBstJ2Sqja2120aYaAip17FeR1sg175p mpMahFPChmaKEpkUuE7ftzBIPY1yKb7MaazruagBfivxtZrhUjuwsd6ZeWrbKd8rf0u4eiLhUnPL IUyr1WCUkmE73+VzvZIYx0z/e+2IMAaw4+qZ3tzebJnTVFSMLDEnwA0DGB4Xnn4aX3zwIZzZ38P3 fvcHcNeZfazDsdK8zUMRGrXb5ym9z32e/iZ2s5FHOR74GDh6Fg9//Dfw+7/yL3BnuIxz+8CpfcAP EXtLwnJBWC0AX5gAea8aN3P0pRyW0HiryKcibDqGHBJR7C4Dh8TcHIBo/YoB5DyW5BEja0hPlhsD E6SdZOCNus5iLcZJsBanR+XjHiLEeoKLYttG7EAL8SMYWASBgaEC4wgiD16rEOuNUXt45+QmgAjH amcdQsDgPeJ6hHMekQb85i9/CG9669vw5//6j+bQasUNZV5Lnw73ln56t1Qvld3LJp7yQrWf+L8q R8gBVy88ji/c9zGcojX2NHoWOQKI9QYKyLfNSKZz9r38lX1sPgFy4Mv+YXJiKgPM0k9ryln2+cVf SktuxUIdBRGnp0cQM5Z0GWfwKMJqhYMbdyDQEkfuNEbu+fI9D73unHuAzjn3eX2bmb7lDZvO7rJM cJDiHooMz0Awm18AZm7WrcMUW8UUtWPZtOdKsO+cA6tlxdyN+yZTIHvHlMVz89vrQ3qfc/CMXknr IVL4zbg2VX0pcyZ1cZZ9T/m2uYf32jrR0hMy/cxZoVQJyJr+pjnRLPdJaRVrTF0KXYaHKhrW/g29 DnQniWtAbjdlGcdl7VnW5KoTD0RzGGPMqsRmgnsJJ2oCFg1xsnViabPtulONMtu4qL66SxPUvGf9 8KqhbiXcJNW6/hVZhIaCM0nNpg31/G7aiJZduBUugL7kPXftJYtfx5+X+jzKSD1OM7KKhMiICNXN jMyLabB9ahMobRE3M+VWkLDYzhYlql2/3lyZgFbPu9FbmLxnn22jGCNqBbfAEW5YgrHApecO8Uef fxgH1y/jO771O/DOe98q85HWqxxH2V5UUG3zlW07y5ujadGblnKuNDqEJ4lig/EGrj34SXz0l38O /vApnD0VcfoUYbVgLJYOyyUk2dcADAvR/HsN8ekHASRwUJpmDD5n3TSNdxhFs+RAgBfaGRzJfofS td6xekfgCESOKfGRX2g4ULJ1DXAk2RslqyHDQzT3kYBjtvpInP1YEoCRAxAdnI/ikOy1l8wYJSMN BnjEkTEMA0ZWB00ELLAA1hFR81MsHQEuAsMCRyGKeREDp9wAPh7xL//Pn8Zb3vlOvPt7vksYqZCi MNTCyavdp5Wwr7+/+HwCXpylp/h5Qdrd0BQJigfCMXDtOTz4qT/As488hLNLMaHzgwB874UcHUrB j5PGj9R8zYA+EdKtGyxzrjeptwZUWRHYKrqyqentBL4nB9LTm4CS/849n4AZjNeaT0DUEJjKc4gx 4Bh3uItgrHD3cg/xeIERCwRapXlIgMvmvQlHuik/wKYx23k2Fu3YzSQwPb8nGlodp0UHzDwinxm9 fpR19IJ8RIs4w3JWErIWdxPWzTbsDmRnt55fpFYJo0ZWK/tV9iGEkHwUqXR6Lccxkz8gRdlDVsL2 FCZz/CC9C41A2NyomymdncHWT1PkZjypwlQz/6aN9w1ukahzrorOWM0rPBij0mBE67OX5iVlnLQf 85o7xazym2aDLnwbAVk/LnFdK4RGTrxE1JJiMcGuyUjMtk72nkabNNomXfc8sVNtV3Xg2SCqpEHT 3dYudCJy/dxKWdO4zLmYpCIvcvJk3lX71gPqbb/KPhsBlYRU9aUzR/Z+tqeu52pTuwncakhKM4vY WrgWttp1KvvTtlm12/x7U19vtfQ0JGXZ9VBqhaNNtGC0VvqIlO86GhDZ4eg44suPPIULT17Aa191 Ht/7Xd+K1Z5HCGFC6+28lRL3pjH1mFxbDxGp9l/AP555FJ/8tV/A1S99CnefirjrNGG5WGO5x9jf J+yvCKs9h709Mf1Zrkj/c1gsCMPSYxgAtwCWKy9AxsstgZBHTIKC3A6IOQQN4l9DqtEERQVDcpNg mk6XhPkIUJDfSIC594RhkHkfnIfTuofBi500MQYHLNS+2gEYvLy78ITFMIhAMxAGEpMLTw5LP2Bw HoP3WDjR/A+eMAyDaDScJG1aOI+FIywdYbCcButjnHIeVx5/Ej//k/8Qx088BR8jOMTJeogA19fw bNozX6ul5Y03+3tvnzzfpe1XfWADAANXL+JT/99HcHjlaZw5JfQqYL2+JfVeotIYj60BX/k90jvO ITkQW7ttsXq89zufb/3BbneMvdX5vxn6bwGvjFHmf6ARC1zDPl3AueFJvGzxNFZ4Dgs+AqmJREk7 J52fufO/RxNtXyuwX5xdm97vtd87f8q+lG3Jf6E6vwSs9dvoKr/S94XZpy7Z0OCS9ixtMd5c33eh gfLdHnbqYZNdSllnuw6bMOLc7+Xcz+Hb0hzUfm/nqdcOkAXNbePrYTdGYQFHlEO7dnAqUNCLy3k1 TBhrywASMxlnUXpKoAIg2gD0s+QA4MKWvS7i5c6A5esklaIhiYeYI8D1AiIWEpfaJsn/Iig6SKx8 lWKpNsdxzCYOTiaSuVaxdkEo1TrsIDqGQrOdJU7rFgESp1ilQaCjeXBqh66Zhtuwn5Xmp2UIVNTn KAk+zKL5sHVilzVFUxuytIIzBO1SrPW2//l9ea6sN9LUNpqINmpg6nrGxPzNxKJ3oNgNQatFyb+H yXc9bYJ9Mh+N5MOhZMd+iacvPIsvPfgIEEZ8+7d+M974ptchRrPpN8aS5WuT9FN9XWY27V8pLCRf GJs3myXngHAAHD6Hh//gN/DQxz+M88MN3H3aYzUELFceqz0HT/LvYcEYBoLzrICb4TwrIymEHYtm k64XVUMDJ5G0xqQ7AEAgp8lp2A4U0b7pmQIK2QYVZj/qxCRPrrIC2G4RnGhynGZUlYtADajoIpaD hAUNo2o2yKtAILTPzmFJDsejtLXwJFl/ndf9SvA+YskOpDR9PKpQTcDSsUSWgEPgEaf9An/0sY/j X/30z+OH/6u/hmF/KbRASHwtaibV8iagXN8UHvdFLwf0o7rcatl2kN3q77erJDZibbL6nbAKvSEA h9fw+U/8Dp586NO4+9weFn4UwO6FXgentE1AjCMWA6kQoGY/HkK3jpLmnwgwaw3bb+lWvDjgqfHF SjfhJ54eua8ToJBNcVJLnOfhZGWObqaZZ4E8nvJmjJklgysYxJbhOEC9KxBZnKb3cISz9CSCH3B9 vBOB90F0J0ZeAqrJ5OjF3MFuq20bUv03+Xjo3/bGP52JBT5pf2fmpOFPJhZ2/ln94nykvJHg7Pw1 k2kGwFz5AnQLUQopGWOUCFLEiCAYbosxChZCXhWJxZAVpezkptXpranQXmHKE+sJo+bALueRm3my PsLa3JFOewo/Pv3XrwAAIABJREFUYGp2UwkZeq4GvXFyaT3l3B0VR5gVSAnNWW910/oh+2B4ncdE Jw02KvlFSdcO+URnIN2mpKiWBMG2TcCVLLaJgkCiTMVkGWM3EWk97WYFU4ErguHYhEGhWi7wm51J zKL5B0Xtq5hT1SugPiz541T66BVGrVWtfrNNg76mbALOZqRv4P9n782fL0uu+sDPybz3vW/tVb0I tdQIaRBglsHYwmKCCfu/mwnb4wnHxIAnPBOOCX4AgxdA4CGQWAwy0EICS2jvvbrVWy3d1VVdy3d5 N8/8cM7JPJk373vvW10tNTYZ8aq+77578+Z68pzP2WTCbJDQIHQAdqIBPcmyJ4n7J3softsu+3vn ODV97bWpfRcRzVRPuW0MQTI70us21G0JmTAJsdfeniQsvxebtV0IzLw9tfq7J3H3+rVv8XUt1eEZ uRBHUFzh7v0TvPjCVdy6eQOf+uGP4Rd/8ecxDnLQ+zbW4zCvz/++rd29ObHv03QCmk6A6QiHV7+B v/mTz2F9fBOPn2McjBscrBhnDoDVOGF9IIj/MBDGFWG1ChhGks8A0QAMiuYPKgxEIOjf2UGYNEqH 05IwqwN8Tls+n/fEm7yGJEqKzaEeKpRAlBAiNMIPATwhIAnqH1RTQCKcjJEQB8ZqGMSMCROIxAxj HAKGQBhIEo0FEgffSIyBgtYTMI4jxhAxKPo/2N/DgBgCoprpjQTEw2N87t/+Op79q78GpZSF7DxH 3Kch7Zr6u/K3o3RRQZ5AvEG6+w6++eUv4vjOWzgzpixMCzOnpqGGzAfZDxWzz8XhPkaRGk0AN62Z 30PbaMQHvbZ26wdOX3KbF86E6lyFo4GUVDsCMWVID3AWt3BxuIHHx2u4GG5iwD1EmsBTyhHImHnx nDxNqc7dTn+WUP4WRe6d9Uvv2nUNmGus/fjle2zIjZ8PNEv2VdGzpq9LTPlSWeJd9ikze/TO9e74 LDRvG18D1MJe76y18a0E8QWerxUC+nzR8r5llihOwv3sr53bNt5LvGerIcrgZ1OXCX0xRpcHABnr FgRa7fScaKkSqHik5/CbxWo8S4wMVBuUAZjxd7Fjk01ManNvklPIzjVFzu0xdLaAZ5PG7h0O+Qma 8s86T1S8s6VOtzGALI2jiTtbbOWU+KOgo207wCV0XFtam7psoz7jm83W1DQW7CIa9WAd8a4UiTdg kzbN5tfoO1HqwhRyHQKQmd27bYBix17G2/dHiRPXSFGeF/LaC3KORTH3wZjOnH1WfQPKOti/5MXO lpmYdd4jDGFLwl4iccSrV9/E66++iTVN+J9/4efwyR95GlM6gaxHoGyjANsbvoS8/uZRgpqGVeNS bBfL9UhASIfAO9/Dc3/5eRy+8R08cRa4cDZgNSSs1xHDOGFYi8PvuBJkMg6S5MtMFiiEjFBE9msF OapF2pjAFGDKlHreSVB6Q6W43nNB/QQ8ChijRqFIEv0nQTWIxBq1R3wIwMBAhCkCoiXgnAtC9meU hJ8keQQ4iA1xigkpkfgoiPGioh0ESsBJElMlPmEkGsSvJTIwsbyPBAELMeDsOOKd11/DH//e/4ef +IXPgMZR7SNtDkPxVWAuoSLRV2nnadZ+9gSIbWW3Bu1hy6NF/h9FqcCfBsHdVZbHqa/pyPfp3Ppw nmFiYHOE57/6l3jha1/CY2cizqyBQBsQT9l8BxEISOoHQAiEYganDsLmSEwk5m8SFZQFSAgEinou zkCKur2BhhxlJPd5B8Pj65H8Y505d48HbQeAjCAul5b+Lq2nOhCHn1cPzjDpPuKAhAnMG6EBYcDA jERHOMPv4kp8FRMIx0crTHSAgQ4EgTV0k6P0KSfsqPmC3fbypsHoO/MCcGdV8T0gvd+YbQbAasJo 57RvRx4Ps2xwpYAsQID6OGo0JYvyQxBzIKOnpW5kn0GrS9ZIUt4j5LbZfFT9pCSsjdF0J1DkvQnk 84mVLwqt4OASN3rmtQfqblvH+Twk1O2Z3V98S2Ue5GoOPw3hyZYYaYvmE1hBZGt/w4+Vs87WLgD3 Dlbb+xJU0NR9bkztXp9Lxt/rSpuxOfe7XddqYRNgJj31eiMkZQsdX0+ofDejnWHJ+Ugw1US4lXZN Q2CpkNt4oi1j3ismdXlJ1Q820NpS15JaK4nvQuHbvgAp19+TPlmTb/l+t+/x2Xx92+dS1nY7tLpd 882xDVVox3i+sSxU1vI8LL1zCRWRaxEhDHtL/r2+9K5XB8QeUnWv9FAcj6T4fkkSrwPcvHkXz3/3 RRw/uI9P/cjH8E9+8ecxDIXo98amh/607fVqzXZ/+O/2fOKN2v6fANMdvP3i1/DyX/9nXIoPcPEs 42DNODgIGFfAmbMD1gcR6wNB+w/OjNkBeBiC2PSrcEdqc0+6rPNebmwBI3ExZSPK6tI6AkSC2T73 xz41fZzUz4D1OUVSza8ARW1LRAhRBA7RKEiCv0jiZ2ARWGKMqikIGIYBMQaMY0QkQgxBwoNC6MUY 5doQFJkN8swwDODNBNokrCnij373P+Evv/CHYkqYOgL4lvXWW1vtemnv9evkv9fy/ex/e2bkvZk2 AE6Ad9/CV/7093H47hs4vwYIJyASp3XzdxFzQ3b+L7Wv1UAi/BviL+8r722ZoV3087T31w+fTuB7 VHPROwN9afsgDJv5OwitAp8gYIOB7+JiuI4r8S1ciDexxrsI4VjHG9mMpQ6vWO+t99Ov9uz1a2jb fCyd30ulvd/zPb02sdIoYyQJhbGzdRcbWtSa6ua/ue5br13+/tD83o5B69vTnnO+jb3ne2N+mn1i ZUqpys676/ke/9r2v1dPj1daWh8+uRiA2fnLTXt3rZ2Wf/B1tOPWakOISH1N5d6cByBL7BmRjCLj WEZf0uQcXBBjOPMAQxI882SNCw4hF2nRSZrZTtIl+CJkyWfSt9ECQ2xqlZDbUTpsScFCKLb6HAjJ Isew2M4nk9xTyg4XWcVmjJDzUfCDbOFQW0LRttNKO9n5uu7o3Mu8QWsBDIpMtQs3sG5AbadlNJYY wihRJjKC1pFCyciKjKyHjQSlsT6e4pCpoL2gCb28xZ45eYmtYhmBhNY+cVux+Zqg2hRiMJGGE2OY 9B5CwJQi7h4Cz373Vdy5+Q7ODQH/+Bc/g0988ik57BvmV/5XTZVDyGuiIb8TCD65SF4r2mdzapNr xckwEAPTA+DGS3jla3+C4f4NXDkz4ewaGFeMOCasz0QMKwINjKAJv4Yg5gcTCpMNcFn3VBAPgOBg JGl3orz2KLHG688zs6h/kfaz+gSFSpMR1P9lSoxIkkeBIAi8Nk/WNAFxjBJFaKPzZlZHua6ADQTp IU1SFpiQIiRaEFj6z9LamEPMEiInpI1EVeIQwSBMacIQIjaJcWa1wtvX3sYX/sPn8Nl//E8wXL5g hmqw7Sk2vLJ2gTmDkfcTCu1jH+jAYr/bWjE62xJ5rv77b6bsOoRPG0VpmSRsp0llvoJoo1ICDu/g m8/8AV762n/BExfXODtMGKNsVTbH+EAYopnR1Wi/ZddGlOhxkZAd5/M5RoV+nBY42VX2YZL2LhlJ X7qhpQRLmgG18d/SLGaWRGlc4rkHTkiqRBjCBOLbuBDO4HJ4HSdp1AzB6xzRLbFFMHFdcAxU/rtp R1k/y+Chp9utMMYs9IaZMU2TajSEp/DvLxlsY/W99QGomHDVight1X7YmRucuTID2TrCeiJkHpNF 14NFEeKmryVqHmsoyUoQcaydnA/Ojt7VMqNfHZOsVsAwUK4HFnubfOtvsk5pb42RJm2fPGPAlfKB OxjpmQ8GB4AF6Zew0O0NUm9yvJmsV8svoBYZgLlG1GNgUzux/BgAUEms2fMJ6a25fAzp/5mx13Cp UX0U2QlZzFzM6HO9IfPX4q7XQZJ7kuHShmgJkJgFufu5TMQuJHhfia9ifLc+0ZNyS+ZgwLQlefXB awd6kta2NvXaOJMG3Tt6Y+z/b4tHmH392wSO5JgPQCX/LVxGT4o3TYxcmzu37ld0gzbanNyuRor2 13aVPC7URzWKrTuLExlGvP7623jl6mvA8TH+hx/+KH7hf/oHoIHV/Ke0wwtbdt3Pn322ZeXzc91K 7ICaEaRj4OQ23nn+q7j23FdwfjjExQPgQCP7HJyJGFeMMDKGERr6k0BDAIckEXNisTs2h2A/jilt ZuNmqJJHKfwBOF8P5stR1l9KG4A4v880BUWAY7kWGKTJuUIs5goWN51IVJgRGl89AiGIvXUkzn0L Qc1zIOFITTtABAxB/AHEckPmz3wQIsnfWSvAhIvjAZ75oz/Gn37+C3oQ1KhcO89tIa61gfn6HrTy v4fix+7D8JFGTQh8gtvfexF/+Ye/g/jgFi6uGeMoazhqZKpEUxaqB9NOZdt/1QhEQMIDsmoGJhUS kH/3Y+H/t7JTSNpx9nyYytI+2acYLYk0IaZDrPEurgw3cHm8hgPcRsQDAKmY2XkGcssePW0ben3p Ibjt/vZ/n2a/E1TixPwc3KeeNoBH7+9ZJLxUwFl/f+arPKO+55C2NLC33nfxOL7dbd85UHXOAh2G 3v+2h4WIf0ePH2vX1RJft2vtidlNKGbyzb37JEtr10NvbS7x7/aOpMljreR4ZcyaDZP1E0SqMMmG AkMCVU4AJUXKBBmu2HAOsqA1bGd5Ub9D+W8Ue2rfsYHCbJKZvao+ZfS/vMmZ7FD5cHALiqJYUjlB ANrP6Fa8RJTdf3LavvUWf1UCiXSvjHmAmUIMuR8iySX9oLFXE/tJVm1G+37kmULzvf3MGpY/flGd 9tApm5nzuwpSXe4pv5+uyPKjKkyWRVES4bMQk0ADJqzxzu0jPP/cVdx/7y5WdIRf/Ef/Iz7xiR/G lAC28I8kwlMhOAQfFrLtX24PxH+kElJFb52Fp1aQozSB0iHS9Zfx2tf/Aqt7N3DpXMTaMf/DQUJU bcBqHRFXBIoJYeDs3EsRQJDvJrz4doaGOESNhpLHzROxxhzGE59CFKfM7AdGpaXLwgFs/0n/mcUx 2KJixaRMP00YAmMIjBgShiD1DablIIkrRlkQKI7M4nwZ1SyovhbVRGNQhCjGKB8KwGZCSBOObt/F 7//m57B55z3wRnxELEfB0no3YINZwpNan73gZMJV9fm7cqrSmqae+jmlrwmT7A1ihLQBbt/EN//i P+P1Z7+Ox88S1ivZo4HEUdxC1Aq9AiQ6ldpjR0KMlvhLBYZB/HGM+fdmbwicaTuge8kBMV3BUs8d yeT6wa2brM/nkJlQaUBC35woNJ/2upYt5nT1ntKzjuR8G4eoYxwRcYQL8SYeG67hHF3Him8hho3s TarP5TK+S+fZ/qXHgLagW3lvwCzEEHRc3by253Z+XjUECFSh4BNLhLY5kyf9Y7JPuz/k9wlTySlE aRYSu8o35Nbh7DyzPTTrn8Tg9+t4SXjpCQU9kM+Day1QmaMThdbHNFQot6/TCwvGA86KW+czsLRD +w3UkrVQ0xn5m0Xrrt9zW1xVjCmfzbldUfPmdIQQ+WMCeCr8uI0rCY2Y0xDbj2U/EFE+Q21/5pFr J28pS1npPFf3zweqnlgzYZk7uTrVFuaMyzYp5zTMaIsWtNf89d7f/n092/J929D2oS3bGMylzbOU wc6/J7cdy6q8JdTy/SBNntntXd+tw9mv5LHAXLjIDCsNAA7w3HdfwfXXr4FPjvAjH/sIfuGzP4tx PYigZXO744Ce92P5996cenQlhgSke7jx4tfxxnP/FRfGI5xdA6s1YVwlxLUw/auDgNU6Igyc0X4O rCYvxcTNhKBqDciPwoCDsnmca5WbK7s2d5DbhlTIuPuIDw5cMIRfVZVQBkeIklWQch1EKohrhB7z BSBwNrcYomoKQBmsEAEAiCFItCDNARBIfAIiEYYQMMZBDuUEXD53Fq98+zk8/7VvIqA4hO2LvLV7 6P2ikH9XHm3xhyilCTQd4q3nvo5nvvDbGDfv4eK5AQEnommKYrpj2qZoEbTUCTwO+ns2BVKB1Gnf bJ1zoGwi0mN42lLdo5/vy3r6gOrfp93Ga5R7k8hsUfMD8C1cCO/gyfU7uBBuIvJdgDZAYkzc80l6 tOdJyyv0rvfmaN852waq7XO2+NJGC2JmR1Nrjea+bdvn9x6P0jvzWvS6x2zbPV5Yys8oQ91GO1pi 2nfxLz3ep53f1m9BgNlcw0zQ2TVmocMDL/IrC7xZxT9s6V+vP56HjUROtqMEDoLxn6QJkjWWMhJm /3ukgJkxsfpDu0Z3HUKcpCoD4AYulQ+mVE3+BK7Q3WhJfVyfa8muRgBM8qYkmdesLfPRKk6OwjAl QMMhVkhekAyy+W1NiKsumtNhrEsFux0Pq4MhBvVcJ1SmOYHV7r9FYqiy90+A+msYuh/z/Z75Km30 KIRv6A4EqPnuF/b8uzmCFC3BvL6FsTGkX6Xw+WZIDl0Z8Ma1O7j68puY7t/HQTrBz3/mZ/Cjn/4k Em/EjjxthFHICK9oVnYldeu2TSX0nK3Sb+zs7Q9gOgJuXMU7V7+Bc+EBzq4SDtYTxlXCwRlx/o0j A0MCwoQ4ABSShN8MQBgCMBAwUJVoO+WoOqU91LZjsU/BFkv1eyDK6D0MKa+en6MRVRZmlvVuKEar pUAMoBhyBsMhhKwZDGCMgXKiMdECmKmQoP7EkujG6o4UMMaICIlMZPQjMLAaB6zjgFUiXH/lNXz+ c78DHB0JSmII7MIcJ4j97/L4na4YfWwRvQ/6+4e99JDArfbl+nvRqDJIhd4BwJBOsLnxOr70+d/E 3TdexBOXVhhGRhwYNCRF5+yY42Lyo74BwuwDgSaMQ9D1R/l6hDhiGsLaHsC+nTWy2qd3D6N1fSSl 1QjsrTluip5vS4BKPp81Co58T+Bpg4AJY5gw4jYu06t4fHgTZ3EHAx0rLYuFjlF09tsdM9NZf3Z0 vwOg9cJGLgkG+T79bHuPPDPnW0RDG3LOmYoJtPFME3gS0842sIkBr0yUNQZJI9ntWlOzPi1oME1T 3pZt9fuzJ7dZ10kPnJ18W6juZ6KUo0n0hDAP3hKR2rD010XNp8l+LOBBM/ehmLgHkEPUa7N3K5GU FmUfSDFFFzjMA21OqK00coVPy/ulSUzWCtJAkvMWfv8Zz1e4rFkpg10msc56SJjZlHWY3PzdMWa1 swdmzr0x1p3atZC6ap1enxyqt00iXGLg7fe2Ta001qvDS8V+UXbbuWNjmh1Xy5DOJh7LNnBLWoZp KiYqrUR7GofctngCOl8j3kj24Q46Q5Hyd3fQSKKUAMYKR0eM737nRdy9fRf84C5+9OmP4B999ueA lbSh1Tz55G11RJz9DmZmzgRmjlLIPEVsgM1d3H/tWVx7/mtY0wNcujgI438A0JgQRwaNgvpDTQ2E 01DEu9mH9r/1RxxZ5+nmSztp1r4eMcx96pb5+6v6IM6+pW459Fid3sr6ctGIsuBgGg8Ny0jiND1o dB9SoSSCNRSjCgcUsvlEFhBISaf6EQyaXfjSwRl87UtfwrVXX0PgtDOM5w+EKftbWDzN+yCR7Fx3 w0hkTTYA4g1w7x1865k/xt988fN4/IBxZh0Qg+SskHj+ASEmWEx/W3OmWQrBkH4ANDna5hkDznkD rG299bKE4gndmJ81H8Zy2jntjUVFK5SxigRwOkbAhIHv4RzdwJXhGi7EmzjgOyA+lrOfi49WC0a8 37Hrrdkeyut5Fk87d71/aRy2AzP1/e252hMjbcxbUHZb3b33PMq12BOcfDvqEO2NBUGY75fe2LXX Wv6tN5e977O9mV9QgL0ZP2zkyEWNzM1ngCjmhKCZT5Bfq/bnOq3taa4Z6LW/dw639wmPg3oymBJg ZgXWQQISb2COfBKyUG3v9doMaTJNAM0nV64lWIQhOcBZpNmmA952zhg6L3HObev6NoolI5xI1IGo SOfMlSTH09z8yUuqbcKFltnxE+HHwy+QTLS0PzZ+EqfekFuz+++pkdURk1KOHNBKvK3mpR6ftm32 TrHJLCZg9eZpbctK32tbM8885me7QkTK982vb0OY6t8jhQql8G1IFBDiGXzvjVu4+vLrmI5PsKYj /MO//+P45I/+CDikrMUy3xBDTHoaEa95actM2CMxdvHP5TXOGxBNwJ3rePPZv8bq+B1cOENYqfnP sI4YVkBcE8ZVQByQbf3Nzj+/V9H6hJoImX1kXr/sIly008FeAJqQdH49CkIkEbVyjgWlEaYJbM2G eqAAUR1tYUY8c0QhpUNB16GaXBTnZiizpRmQzUHYMftEhDAGxDAghEEcgVUwGihKRBieENIJXn/5 Kr78Z38Ga5qQAfEJyWsphxG2tdAv+yL6eWwYM6TUX897e+H3h/2e27XAqLfXe2DGts8uhmhpPPLY Ne8Usthrk8xT7qfNlwmmaQKmY1z/7n/Fn/z2r+IcDnH5XMQ6MoYABGKsBg0fS8hmZoLUSQK6cdAQ tWomNJA4nY+qJRDhoKy/in41NsG5jRbtxOiZnqdomI7sf/cBlXwWYl+mXtpriGd73ZdqPZjNvAo5 7bsmJv15ktCglLAaJqzpNi7Em3g8XsMFuoYBDwQhBxAwB3Bm61w1sftqwPyaXRIC7CM5TKh2qM3v b/0T63HZBQQmZiVHtT9A5iOMf5hSpW2Z8U3GpGaH48IHVGuypRcLDLr/7bTCQdeEOrgs2KjpQnTz kCOtNfwUppSz6jJztvrIbXWBLnw/hiCf+ZqXdZxIQ9byVPxj1ReTEud1RTzJPUjZX9YiNlZ8pHLO nMS6pge2Mou1CtKmnvPKp1ZqokSIlqGERCuQJsd/m+WOFtHQT64eIA/qUsa2luH1HuLtvbmx7cHv DrK2ZNXFjux+26Sa7jtpLr3Z4ljKQtdbzL2FvrT4lw67dvPu8iPobbglSbcOrSWHybYNu9RXz+S0 71gqS8xee10QmuW+aU92vs+XHnGqpHtrDg147z7jO995GSdHG0z37+KjT17EZz7z07jyxKWsVtw2 D0vz0f42PzAW+kRJbP/5CMdvv4mbV7+Nc7iP82eAYdRoP2vGeCZiGBV1HCijksI8GOPQMNdUt6Pd q4X5L6Y5vg89VXJVF9drsJ7riEDFTlJ+c3NiRK9RX0J7UgtucMyU0ZEkGX1VKCDVBoQItcuWfR9R TDPyngPlw2TQhIM8Cdp/METg+Bh//efPAHcfZM2C0aZpmvIham15mLKNWe7d4yMM9XKvPKrPUjuX +vAo+rtvu3pruUe3em0kkszREcc4futVfPE//Xu8+9pzuHSGcXYNDCGBII69yOuKytqK0EzXDEA1 USQZqsX0zFD/sh6NgTWksqJJrh+9vuTfGhp8Wibr1IX5B6J1WDp/8hnJGiCAjjHyLVwaruHycBMH eA+BDyFCk5ewd2kqT1eW9oZv7zZ+RO7dbSrV1jljcCG0tQew+HbMHY1DxYS2PMdp5nqJp+jxRKcp 7T7fNp5L+af8fb2/e9+Nvu72a/PP1mdjb31E1Pt92x72ArSZwVnbfMTEnChsYV33zNNm5rWYj88w 64i3h0oskU6JVNb2TKhVrgyIPa71E+vLmg7HqIIGAQCDcsxtRxwDZXv9peLj6vpFk/FklXISQSQy f4+mbjcVjNWTNYjBoRoqmXYdbLTsQ2zajZ3/98lMKsRCnjFkOjppHpBFNjHn/ASF4KgZD5WY5BIj d24CUvehPaQSCibk53A/YkbGYLFlcpi/c3vZJQxI/Fu/dmWMTeUm6FqgARsMeOWV63jzjXfADx7g TGD89N/7FH7ypz4NRGDD6ifAEwztZU3rSbnNJZ+AFMPMUtWeVqNhc5ozJbIyE4kBPgEevI3brz+P 9eY9nBsnHKwZ4woY1wlxFKdDBAtdK+8XG2cdXxLbQug4JIYLwxvzoa6DD9ln5kNSHF4zJqDZATNI l5Leq+sXJFEOEoEoIE16tdoXNZGppjyQDOGk86X7V0P653eQ0hxmJW4J4BB0PZdDLA6kCJza+wdC mhgIktBtCgEDEzgSNgy1B4eGBAWYIpgYCQkHMeClb3wbV7/zHD75mb+vvgjIUSnAjLTDFM7H0a5/ KKumVxK4mqsMumjUi8wQOvq69P1UB/COyERt/e+ndA/2pt5ef5KaZPl6emBVReOT0HjihDAdAu+9 ja/84efwrWf+EE+cmXD+bEAIGwSykJ4ADSo8RkKIwuRLxB/ka4EM6WfQEIopHizfhNEPrsJh7y5K b2geUlY6h9lZ+mEoxQ+mptfZLwvIPhk762IhXiEIvgmWeeFpgxAjhs0RLsQbOKFzuJOewPF0Fie4 gI0hnHYOQPa0whmzdtXt3X6etQyTP7+lGtVXJq7oEkGBFOU9wI1GaOEdve/StwBQymcRlG+SGPQE 0cQyJhReLT/Kjs9Q8pv5K4KsK4+WdxjbvCbtt4YP8vyjHAHtxjY/v7lfVU9AzvzMJDq8VmtTxsj4 svo345ssqeWkYHBILOeaI9DtnPrxzwx8877y/1R9T5rpetCM3mx9sTEqiWW0ynIG25kr9CMhceFP cwZjFHBMnyptD3BniM2T7Yn5+Mn4NANuRz05U4qeR/a+pZXSfDitVvIiKuEctyFQvgSH1Pn2lWf7 C25J6tulHty3XfuUSpLn+vqShqIt7XOtFN2TAmd1LEjNDyvJ+7/9RrV+tWqx0xZPaLchBpJYJeLe gw2ef+kNHB9OoOMHeOqxs/jMZ38WF564iMTFGMXX5U0NpJwuMVlb5loV5YLv3sC1F/8GR+++hfNn AsYVg4YJcQRoTKCY1NynmItViE8IleZMtGwNQc8fMZMwobnah5WDnDn3lr1Uo04RRBGcDNEwYW9p Tv26ECTdbH2FSNVJ12w6gwpUKaV8mBNpRB/SbMEo2VmzWUKOxEI5BwCR+AhYiF2iUM31gIiz4xpv v3kN3/rq32TBJB9whJ0ayl5ZWuc9lLtF53p0pr2v9zlt+9rnHkW9vbIP4t/7dA9kzOlNAYGUGUPC wCegzQNsIN3xAAAgAElEQVS8+Ff/Bc/83n/AOdzD5bMBY0yAhtgcBonvb2i/2PxrmM9o5pEp2/5b ZmrZf0ULwLamCdX/+4571adqP+RD8X3Pwa7yqM42X7aRzfac8NHJrO9BhflAJ1jhXZwPN3Ep3sR5 ehuRjoV+NHU+qjXr61wam96+nfEcgauz2O5b+t7ShvKuWP3eoxV1v+e25b137/qt8jPo9OP9jnUv OtGSJcLSetoGyrbRfGxd+f+rdzS0bysY3eElTQixtizNZ7cf0mLUCVOXz4PetSXanfEpnbMQYZ73 rce/3ShoISXNfqb/lxtq7/qejakRQ+8ADCDH5m4b3ivW+USK2OphP4FzWKjMTFSbrdi7mbNjtVDU 52HJmdgYQd8G397TlF7//HhZpJKBAmxerPg4tiYoVcyqlknR7FK/+DwgcDdqSdu2IkjF2QJcanh7 YMvzdnBaW4pad7sQ1XNjqkuXwBohpIBkUaLigIQzeOnqTVy7dhu8YRzwIT79ySfxkz/z94D1iCn4 dwZkGzn1J6j7NrlPzYiUfhc1bY9IJ8UeQggAn4Bvvgq+9xYeu7SSjL9rYDyIiOuAOAIpTkCEanQk HKbFDTatBahGpnIYy8QAs9oB1r/ZWE8a78a+y/g5u0QKyKlR/RwkfyjVB19vbmfXSWKzh2BIDaNk I2WJmBAykQIoOftqYcCM2R9CkARg+glqJmWOmNmcQ5+3BGEiCEQERAQOGMOI47v38Y2/+itM9x4g gIofU2Nj3vY396+J+2+2ub094uuZPWf3OJ8k++7rW/q+76dtU7Yp7vVNf/8goght842AZiPt2tCb zbn3/WFl1NMGIR3h3Re/hT/+zV/Bg2sv4sr5AWNG8mUtWShP8zmhjPyrMDBQDgdqoULHGNTpXPeK 5pewNhEVm/CWgWgFmqq/9pvJ3wYYfh+Yf0Cx5VO8q8xbbfu/vEbq+wSApqp/EfX4pJQwhIhICQFH OKBbeCy+hseGaxjTuxjV7NULTdvPmHk7dpVFBlGPwcxgOn7B3wcg51CyiIsceHaul+fkHJllzgVg uS1K7HlHi8h8l+ZCgaeF2ddkoX89n848ck2c/kUh1o+XfZrnPPDTa3Nuh/peErf8QbPumJF8W0nR 8yllB9r2XW0b6lIDf739WgUPUdt+H7lo4lSiMakJLEN5TzLQu+ajs/kPCnwWaJBkaG69MIt5qvHh HiwowJ/y92bd4/oafMd7jGc7MO3g7WO1XWfKLCY3vp48gI3032tDOdhLW9r7/bVtQsU+TPzSAjkN WrLUF6vDEz2/qLa1r90s3q9gidnYhUj5sk92ut6zvUzKXure1a993rVT8kUE84h37ye88NKbOD6e AD7BxQPgZ3/qU3jqEx8FB2BKZv7TQ1vqKEhLkrX/eynDc8UkY5LQnyd38c6r38V7117GOBxjfQCs VgFhREb+h0Ey3ApnG8Tkx9sG6uFpbY2qAiZ7V6rtjuU++3Cm8m3UBXRM8Hw9UpbtbbftDcsi7NtE RBnxN4dfVqeqwkjJdeu/mG1PAOYMvjFiYYhZSIhqWmgMmoUFtTLSiHPjGlefewHvXL+BkGr68P1h weblYffKf8ulpW1i7iMaJskmPSGkIxy98QJ+/zf+DV795lfw5IUBB8OEGDXDb2b8RQiIg2bYDhIW NETCMARETfY1jEUQIDIToZDrAuRQX0IUZ9+987t9XP/8d3yf18BpzrZtZcnp3Jek0ed8NDOvCQia kC0QI/IGI+7jQryOx9bXcT7cRuS7CJjUtDhlZ+lHuW/mtA/VO8yWvBctzv5fQqh7v3lApzB19flu 72/PVarG0YIWzP0Ce3xTr2Rz7k7/u/dvZajr0mZRXxIE7N6tdS28LjTt9+/cBsrIte0cbjlrSlsr 3pT64yDndmHyJ+b6TcbQA13zHb8GQghZsMx1o15X3LTBfgvly+SYl7mKxyoqjnoqdevdvsNc0S1j TINbhCYIdFRJ6q29xERZxwMHRMSZtzslrr73BIp203QZGATYlCxtkp6EvfR9afObwFXaJvkX5s/L mHlU3lBQmweZ0AieIJGOELMPg+UD6LWj3RTGPG1FSGaQnXqhuzkqAl+Z6yVC2t9o82stg90u9pQk JvLEAVOKePWNW7jxzj2kzQTaHOLpj1/BP/iHP4VhNeJ4SohxrNBDi9gzRxwLAszMKBmia81Siabk hinvKbFTH5gQeQLu3sK9G1dxMR7iYEyIQ0IYk8T5jxCmX9tFMWS7RUMQCBoOaDY3nIUCX2xtVddC mYvUECtmiSpRHBLLnNgaWTb7Kf1P4IxWWb0ZoWgIfv4/t9khFVok6pUx/eoDoU/lJEzMzaFYHGlj jBK1Q68NGhI0kkR7uPHmm7jx+pvqVzDkzKM+isijYpDaaEG7ogad9ruVylTwQyRP5H22wChm+t38 XuhMAZUoCCM+BGH++dZr+PPf/lV8+88+j4+cAy4cBKwtu29ICCEp488Yo0X1IVWu6QlAJekeEUsu AJ/5t4lgZW2z/d5l/O1TMWVJhVnX9z0BmA+i7KsJ2MXgL2uMihbf9qYAFin/HsGiZUkTiM28b0Dg Dc7G2zhPN3BpuIkDvolIJzPmq8cwPrQGy0Vxqs7Qpj6LDtPSs/acChzUooIXmEhbE2yE1/FgyyYr 0EhSYM0gTcnVH6r7iDjPQjsmbZbf+XvKd2mcRhhSzQIh1rmj9E2er5Lxo8yc+nq99syXnM+AUJBz hAxgCfiHPK6tNmnO9Nfnevnfnx3zM5Y4ZZ6ZElf9sHbmzOPBmVA1Eb4m1CApa8dImXPTVgvdqIW4 EOpohd3xso9F9wSyhoSIykxkpo2LxOc/Oaa4Gyg4hGzbgTiTVlHX7Ysd0P5+IspOu0uSsr+/fdb3 r332tAd5y3zuI+FvK3MGaEK2e25Q0rrd0+L7en1v+1+bSPSZsH0keN+mds207TbTGP/MvGwXPHq5 BHwxyTqEFd67P+GFF97AyXFCOH6As+EEn/6xH8YnPvk0wjhWCTiqdlEjPbu14oWlpayK1byZMErS NxEehLhvbl3H22+8iLOrDc4eEIZ1ifajPsjWqczQGzHKRMnPu5l0YAIsxXxu01wtXqEuzrbUBwIo RLN+pg1JmE3G1AksJxFEECmjmitz2lPiy+LU1m0XBMWKRtiNWdD3RxITjSFSlfV3yLb/tcaQSOYk 6mE+UEkgRgysxxXu3X4Pz33rO8CUwJuSG2MuJH84S0vbdqFc2z77vOM0n9OWXlZ4/93mYWJFX5kR 0gnw3g185Q9+F3/6u7+OS+EQFw+AVdwAtMHKomlFYFBEfxgkzG4MCSEmDANhXJGg/wESgtdMhrIw KeupRJ+q6ejSWeSZut64WvlBr7FHJeTuW/I4da+zCvoJkRJiuo8DeheXx+u4FN/GiPsINM3Mb95v 6a05X7c3+bEz1RzBe7yOD1Hs+9y22TN57fvbc58cMBN8YAobC2f6mwWQKqNtXTyvMI8qtH1sLLrb PmunpfP9fs35R/9MvrfhcbxJlmgGG+dtyBm1fY00mnb3vuqdoc9bWjvq99am6ZQ8DZv3w86dHu/b 86H17+/xLO355aIAyWGZNHZpbqg54DTRTYAgZktucvqTbhuFETQyTFhg8PwkBWWTAIiNvzocmgyc jAEiQsp1EhLVJkbm7U6ARhwKYEwSZaDX2tyFetO0C49I7IMjCJx4hp7ac7Ni9vm6Oc27OzbPeBuw EALIqxaJxc6dOZuvFLRGvcKpIMa9fswztob8vDhUGqO5C4UKAPzm4uq6xIsnZWbnDqzs2j0vHQSn IcAW9SgEWw8RTCOAA7z2+pt48613QRtgOL6Fp54c8ZM/8xNYP34ZSaNETCwag0AxrzuB160voZl7 bTegS7uMW9U+RiXpm2YixIDAR0A6xPTgFs6vEs4SEFYJHBJoREn6RxK9gQIBU3OwTXPh0HwYZKjN ITFleCdwWRMpJXUKzgOrKI6+k5EdgZklkpQIEZNeY+VjRAsioXUZyAdeUDNzBjEVKKIpNqbSDzFg Sm49lT0PUJrAPChaHzDps1ZPiABPE0IYQaQmBUm9HCjmtSwMvxFC1rEULeUYIjaH9/HqKy8DaQL0 wOaUAE6CbE1qNgZ00c9lWti5d8dtMwSuvb8xUyKGRgWp2+MvLdnuAu4x+2Ph/dSEgn7YsjR+aASY oIZt3NwXgiG9graNnIDj+/jOn34Bn/+1f4P18W08dmXEmRWDwoSYE+ipnT8xxlj8SqKa/WT/k4Fy +N04aC4A1RzAmzMGAlf0agmRMzvc1Fyvz1EyOtQpiRxjtpM+P3yxeXAX2hvKHJWjyVqp/283ochM Hix6nb43zZlDIkbghIlPECli5Hu4FK7hZH0W791/DBu6gA0iUgoSbIzLCfiw8RsqRh+o/Q2tpy4y mUUzs3mUoAthrj1QIdDGmPL5UYMvsrLrczgowy/PTq5eAVKoI2yXSDOCxqccHRDWMaH7TdAUb1bj NbgEs8Qo0YSKgBvQLt6M+jfCiFmPsLtGVKIWZabV+J0UYBEG2zkCoDHxgXweu21U8z/q76jmMz4S jzRT+RYLWKnP5+iTQI5IByLNj5VAofCbYEbizHmCNeAIUXD8gZniuraRsIdCV+SssuNzRpaz3T8D E1QLQSDSOUY0yiJbOSntNnDNOuaLxbwGyuLOg83Lm2kZGeMca53RMp7zybG6AGhopP79eSB04/nF 2tqhy/eSebTX79MU39427XtvHFrpbKnOnFiN+wizR163S6/zuPblezmcemN+2tLrdzufvviD3f/d b+v8XT3p337jRGAMuH33BN959iqOTxIwHSOevIsnLwX8yKc/AQwRR5uTLev10aBfFvqzlsQloR6O 7uLt157H4XvXsVolif0/MMIYJL153Zim5jrzJIunkxAcF9HH7wGP5DAzglNrtkiIAQJ2r/cjsGt2 nxWPMNgz/p4y1wX9r6/X7TNSV/og+za4gyWon0CEOBETA2OQNOsUOGsCon6sPUSUzYDa8H3DsEKM EddeewMPbt926Ms0W3f+7xZtmY3Hwqf3/L6/L73ff3rre592te9v+7NP/06zt7atrx6yZfO12Wx0 PTNWSMDJPbzy5S/it/7f/xPTre/hyQsjzq4YgK4TjeATB4hAMEAZ+qSx/Vk1AAHDGBAHRtQcEzGU wAbmDCz1lahT22jK+y4fULV7F2VU8sejilv4gtO/pkcPjNYjJ24bcIQzfBOXh5u4ONzGyLcx0NRd wx/UnBiCa5GKclupCDMp1YEArD37tGmJ0fW/+Tp79c/fs2z6vNgOV8Xcub3W0m2rt8eTtH30tMU0 KP1+zMsucdjmypjrXljSpXe1fA4RAdGSY+6/xrKQ74AYz/x7zcc+8y+C4FzQNs2310K1ObwGb+tk P4gJjskcmizIFs0s7q8izibJkMTKjoqoEji/NPFGJCEfZ991johwkiYEqheU/cYmFYGQUnvAiPTL zBmdZWdfFTWkQpJKYUjlPltg20E2ud81tHr52x1cwaMlrAiPGz/bYRL/GBg8geBSV2mLLbxWIBAG yOq2MWOS+DN5HHMfZDxzu7zE33zvl7IepH9lvpm92ik291vbirmX1SPvbrNe9tVxkQRBkd4FIAxI PODl127g+tt3cXICDCf3cGV9gs/+7Kfx9Cc+hhNAEI/JbFBrxEHqN3R81wopJiIytppUT9d6QbKc QJYm4Og2cHQbB6sJQziWmPOjohGm9iVDc0m0bYnUtjIJqi4qOGmjjnOkQbRBmvsBrg8ypkb8RHPl o/nIOg3KwGbsLP9OROCJERCQzHwHAawoiWfcrT5W3ELGJxQkR98vTa+fCw4fZRINHwfdIwmgrEkS tCtlGsGZ4EUiRWisH5r7g2Ehs7MgsHF9JQaGMODunTs4PjzC+RDEQUvry/vQ05pO2fcw2HUIb/t9 nwO8jZe/JDy3mqz2HeV8SG5/zBkP++7f3f7ea7s/7PJ5oRlWiSjb+OZs1FPR5gRijEzA5hCvf+WL +Hf/6p/h8K2X8PSVNc4dCIMfIoNiwECMqOYkQzBkHxgiMEQWs58o32NIEmEqEoYY1G8AIiSo3wiC HtpN35eYrqWSEcGZ47kTjJLsz+Ia+IPzEbASAGk388zRUMp2TcAsvnvubkHE67EsGscBGyDcxwne xuVwDQ94hTs0gugCoJraiS0fTmsCsp+GotVstHyL8TLMsr5s/vxtmcGTA0+vyfloJXBYdGKtS0AO okBtCGs52G3fWJk4uO9L+9vOesr9rPZ02289S4zn8U1v+ZLq+g46IPRFx1VrDSDR2LMI8nDcU14/ 2aF2amiyHE5RTWIzDya27LldflSMHyOSaD7SBv1NXiIgnZ0JgETo0bFPNA+kk7QdQtc2qn3nnMcJ jVAQ9Q8bRWI9y/U62XjmMSTH2wJmdgsqDvbSDpks0rbk1e+RlV0HyxwtLIQbQPbgt+8pJUyYsrS0 jaH2z9TM/1waar/7AVkixKeRepfaaKWyRzfVIM2Jmn9ujozVzmKB64hA+7R5Pqah+5v8X5h6P76V FOrWwj6lnZseMuF/2w8pWzDRWpDMM1OCFd47Yjz74mu4d7QBeEI6uocnLox4+qnHEMYBEwUh1p36 HhYpylK9G+sekinEZQPcu4WjO9cx0qTRRTg7CJWY8/phFMan8Q0B5syH/GhzKV/rKD+tClVs9ws6 0NMIGILVaANSEeJk79Ksft/eVjOXaYZzyO+uH25NTlyG3GZ8w+DWPGrUp0KAXP8M4CASrcH1t67h 6vMvInLEELeEw+2U2XzvUdo+95C0JXStt//2QbVOu9bb/vT61+51oBZCtqJYqNeap0e9usXZMGFI x8DmHm5848v49//6f8d7r34XH7u0xvkDxhDFpl9i9U8IMeUY/3EoCP84SkQfM/WJA2NUDYBE+RHm X8zzOJsJSelrVB+q9OhbEzmNVSP1fs+yR1Zsfj7g9vixTbwRbT4fYk3v4fJwHY+v38aK72IMJVSz p8OnOdNO3a5A3T1s/+9ifPdj/vfbwzPex0WICe6ehxkLH3Sleo97x9K63LZee23xwRY87d5Wl7Sl vtfut3eY460XnlqgZImG9t5XgD3lg5vx8X9b/hCjX/Jj2c+986+to8ez9e7b1n7r71CZGxivwYyQ JomTzQVVY+ZiB5a5SEDs6nWQMyqpA0J6AKt9MXjClNLM890aTKpKI20ksYorGmEmY3UdRqu9nusk 7RiCVOWYtWUMr18WN03iOeNv5gWur5YILts6WkZXmINnX8OSq2w0NiZBSrWtPbg8wezHxRgpGYti o2/OO0VQwNax8Qz6nLjNhQp9KjNfSwiiRQwAspajua9iBPKaSGAK2NCIl195A29cfwdEEenkHkY+ wuOXz+Ppj30U5y5exAOCZBjUdljd1nZfSsjKuaasLVKH3/RweyoUczpOwN2buH39dTyGjTqPEThu ZF2EgMRiV2gJ+coha29IgkInNy5yh/yqKJDY04sdoKAo5S7T/hjTLw65XsAdsDnpoYzB3ROQkvik gEtdef4UIqpsSXsM3WTrVFXpKHvHDzcROe2EyjlBmQ9mcBjAkvIXFICAgspFiCGI1JPUtl8RJTf/ MUZsTo4AZpwcH2OiASFG1QQoAWaAQBlh9GWJgPdKT3Bsx8bfu1THPvdtL/uiyXOnxPYg6l3zv/Wu EZJoWdDsL8viDqVdBCQ2PyUGcQLxBje+8WX8xi//c1x/9qv46MWIs2cJcTS7/+ASfpXwnTESWL+H CAn9GUgdg8VcaNRMwBSCCBCErKEuzIaNecIcsW7Htx6/udlMC3xMouHKD5hVeL7QedcProj2sadZ 34W4L/xuKLfZxgcu2cAxIYYRAw5xjt7AY+sD3NpcwQkuIIXz2HCQ9UEk9tnVvGxH/kt/dt/D2mcD aIgIFrceLd3jen9WIZF987g++0oznDCNqPWlfEXqTEUjS8ihoZMXArKvQWsC4+lAOffyryZTwGvu i9lpj2fYdmbmN+UzIXtDFv6GhG+Ua0B91s19C6D983S1/Jry2Rc8zYL4q4WW/ubcNOZkXXezmKgb GGd2/nEmgJqZGJFoHufWG0J/RAhox6Zozn07cwl6/qk6kkyTYuxDMn4sZXpLIAz+JZ5oBwrViyfH XArD2n5v2qMDCjegKSVE9ZBvU9DniWokvhmq6p4xya0nac0P4fqAyv/voJ/tuLRIm/XL7unFAW49 +clmptpMfaex6j1Unrd6J94sHrbtmPTQkLZfD8M8+LlaOvzL93mW4zlxKEJAb7zLdXNOFULFIeDe IeObz17F/aMJNAFrfoALZxJ+/Cd/DJ/89Kfk2TRvn297vXHt+m7GztvXtUKp1RE4AbxBOryLM2PC OkbEKMQ5ECnax66uQiSEqdfryYgzSZITMnUkQe4yxnmOmKTE4iyl29Oi9TAX4ihMtjn8lnrE5Efv T1xM8To2iHlsk9bBnhZwHl+7RoCYBQEV8SKKCIGg4cL1XhFgPUEoKIs6dcoSARFpjHGpN1LCpAdx jBGbqbQhBI3UwQGYNpLkh0Q4qtZqB+Vp188+ZXndnb709lxv/zxM/b0+LdGP0wgkts7JEeKaloSG oVENZkoYmUE4wjvPfQO//q/+OV77+pfw8csRV84HBNqAgkT3ETt91qg/AcMAxCFi0JC7MXJ2Cha7 /4QQGEQTECOg2YCHYciaBJA4EAppVybo/ZbOeUR+I2CZ9nyoijv332/prldKuv8JiSdEOsaZ4Q42 /DYuj7dwdHQeUxgxOT+j1vb5NHt0rza6v3vF2rAUy35XaNLenrK6BFTzmmGC55SyKd0e76kBuO3F +L59x7E3l5mPmSZnOjy/p62Hclv3Ky3vg4beBCystcVSj1N+jlBoFdCdb2ZLVkYZ4EDVtnKfmD85 83c31H4N+GuVkLjQJxvroRzcxZZZvpFIX84ZMDBr6DNSZA+YzLbZbJ2j2W/2X2oSr6FoVWxw3zH9 3wSwEDwddA59ZttFkAHluvNtyYeLJU0wyY6LdOsdMSyOfqvWaQ9TswOtDkRCdv7xJX9PephRqhiZ RBA7MWOs5al8SJodV0KPiCkzyHU7S1tt7MpY1nWcjkkoAk5SBstMuAB0tDzyfuXMADC3wlGf+JRx LVGFyCFxiQMYA1557QbeuvEuUiIM0yHCdBs/9ukn8bOf+WkMF89A7C4lpOwwDJXA1v9/Ozqbozck sUtmsiygeuCQSNqB3AbnCXxyH6thQpgSwhgQR4LZ64F5hlgx1EwmM8GanZdY7VslEVLqhDbLRHYj RCcEseUnCrroCZQYAwVMThCdOf9OUGTKM+cqjKKsayOwsnYJTFyt75YAz66ZfwAApISAiI2BESS/ Q9tisSugoTwjKEdQIILQq8SwjMkUsqVVnl8OVPIsUMQwrHD44BgvPPsCfvwXPot4JuZ1J6paAM53 pRWeW1o27yeq31uhoWVWHrYsves0paUFlNdxn0b0+t4ThttnMqZHYuPthQCAFJDa5L0UiUGb+7jz /Nfxb/+P/wWvfvUv8PTjK1w8BwzDlO34LdlXpKRoPiPEgBg2GGLAOAoqFmJUXwBGJEH9Y84IHPLZ RaoNAJGOhWrZFoCPYkO+L7PSIpko/gHUjOWHDP33xTQB86L0Mn8Pzf9tPdJPu7/qf5IQrQkbDJxw gNu4jDdwSCscTedxEg6Q/ZRYzgvzLdt3H8xsufcc8rzOlZaZ1igMMTsFl36z0zSYLXtTj/bdohBZ 7iCSH5wlgyK/Zo4CQYyLpUAjTJK8P+mzNc7tO5/g54qcLTonBoKdG3kEtAoBiny+Gbsu98tzkm+l 8GUhm+lYiwoDmFKSoA5RfDwAv7/U79DabgoCVgSeCZwm2U4uAEQyJjzT4T4fUl9Vu3wWmgEAKdM8 Rdr9vmee7VjPk/lxMfADkDwDZtOfaaIy/+Zb6sS9/Bc5jb+Nm5kWJx030QAok9I2rCXgTARzXEmg GeNqL2lRsdIgd9B1Dg87tP27e4dI9zkAxkJ4KbKHgm0rM6ck64sBf526RDKbM4elT/NDz8KTJnC2 +WcWB2pwsYlu60xOECCVDA1dbou8u28z5wWD2Rg4grOLUJ6GofASa8s47YvI9BDXBALCiMMT4Lsv vIKjiTExY40jrE7exlOPP4XLP/Q4cO4sTpRAGOrQa4cfA3Ms9e+si93frNWmnpSSRA0BAJ7w4N67 2JwcYlgFYZCJwFR2YW5Lsw/FjC7oh4FJGRLhekXZ28v+O5FrK4PYx2suasecLyCVOPpyYIX8vETE LMxZZtjUR1ZeLYfulIQIEVwis5k2jkRg7PAAgQYLcKSmQaEW/EzrkZK+x5CT0l67l5RpK1G7kjD/ SVF/InCIwGZCOtngvffeE2diJdzmcufno0UX23W8k9506MkHifKetu5lNG77Xu0JH/7vFkApz9in pp3TNIECEDkh8gnCdIK3v/s3+PVf+l/xva89g49fWePKGcI4nCDESbLHkphzUZCoPsLUB0H8LfoP EcZVxDDUpj+mERCjZ5RY/zn5l7afoAYWD2n/rxtmK/1zZ1Aeu7kM/eEri0LArsf62ib9I5sISyKr JDwPTxhwF+fDDVxZXcB7x09iQxex4TGztUs8wQdR8vqGnuWpnAOnKdvWlNDcYn0g7xWm0bQNswzA i9XNA6NvG6d23xKWz3ByfGOvHqHXMfNRck15F6vOna8haCD5lPbeA7m9Sq+ptUCxn/erDsg8W8oM +exXPW98RLyl8aRmj1PzW8rPlX7s6rpn/v16lHfJmhngopOwiyk7UFRkEXlSCACrDRKLjiBXbgNC KhGVznqBwDFDIGiw3grtsQgH7XJJKVVMcY7b6gcKSZH8+QHchlbMklkwRnxeCvreXOtNossm67q6 eP8EkcpjPvSQxxoo0qlPMuEXRladU4RftmbXXQ5P+6VjhlSVuepv+4Hm1V/+oSLg2futHhMOi9Rb M360oakAACAASURBVGi9UtakMX21b8TECUxrhHiA1753E6+/eRMTi7U3T/fxxJlD/NxPPAUaCTwe ICWCpEoO+QCX6paEkdpUZdY++yM4FAEeaVFfDL8OOGEcAoaQQIOYoQhEIe0GEcji+SOK9J9USFeb +ixkZBMcmXvJ9pyq/ZeSMOfMkHCZMOCC6zM61baHcnjU+6BG70sWxaSqSh972O4VRl0diPPbm7oC qWmW7k0y+cbaGCTGclIGP0QRhpNFBDOBlsVOeLI1lTSPgn4PACZWJ3B2SQ+lGRsnoAZOmKYTBKyQ USVOEkcZhWnz4f++H8zFacquQ/z0TGtNy7eVJeHB0/vMvCR261vvN1KqETcCiRgZpg2uf+PL+I3/ 63/Dq1/7c3z8ygpXzgDjOEmUn2A2/oIQj2Nh+uV/WSfjEBXll2zAIhQwYgwSajIEgCbEwSCaJPlG gjdZMnv0XY7iaevweRBJitI5nj9Hbg992MvDtLIH8vgwvB6hpcQgBCAQQjrC+eEWjjfXcTF8FEfT BTAug509dnKo7y6gSwC5HYKuySWZgTT6EfN1DwJZvTOALyjtdAMm+Y+0jUGE4CFD2vqf8QEcIJnK 5QxIyUxHg4I4xQJD2mD8RNKzah7dy84Pq4eZFUGu2ymCiDLsGR9I9f8zRio1P5tViMYrysOeqnEG xEzcAy9+PeSxs+vZMZeU1xNn22A+pSYchcK/yrzXdCoGXUPZZMdZoTieIbDOGwfkszyispDx82x8 aF43IdQ+P3m+Ld+R5uWy96gZNAEAhwxSsRs7oy0GYJipL9jnZEYtKbbEu/W+9hJ5j9B74t5DxPy7 uvHu3felOrw6Lijzb5NQtbEpbbt6aEOLDLcT3ZY5crxdcrd7l1SKnmnujVnvWtueXYzIQyFWnffU F+p5Yq4zqNp7e8jntjb6MQOQMxmS6ORxMgV8+9mruHv/SN+5QeBDfOqp81iFe7j0+BM4xpBNZIwY t+PbRgNo+7Lt0x0fKsixvG8DpAknxw/EyZcTZiHTuBAZZgY2nJ1cAaiI7NeAIOjs7mnbXJc58cqy CRfEotRDrj2kPIlzhHQResQkr3HUbd5vURiKP4G0Y4KGc23aTIgzzZwkVptrk3KbmuKv1YcvZ8FA xiMihAEhBBwcHOSs5KUzAW3o1G108wdV9mlPO04fZNt7+72lcS1aSaymkAyJ+56OETf38eY3/hK/ 9kv/FK9+/UvC/J+VLL+DOfhmO3/OmX7jAIwrwjAShshYr4L8PQLDGFRDENRHQKMEEWMcBlj23zDO GQ3KWfv6Y76Txu4ac9vss+vvn3b/bShbaasyZDYnA20w0l2cC7dwMd7AhfAuhnAIz9v0zvrWR8// tqss8Q6+7f4Ms0zAnm4kNL6MWoc3P2otK7ptcOYjCDWPE6OZrLk2Zr+BtJjHwb9zF13d5/rSvfvc X/FjA83z5bj62jkVs+qiLVmi27v6uI3Xzb9NzuW4k8F325i1PHEWLCx4yjTnc6ViPY+r5tXmZD3+ YAhs9MWyg82wd/0/1kiH7zBReYuL38pWLwN2yGdfA33EOuMHcYnh9wNlrbK4r/kOFz+eWQh0eV7V XCx/+Y3qp0QGqv99EVHrZAb1CHO7uSKKU695ksv41sUjufJdO9Akg2r/JqpGBfN5Dc1iPK0TW+tL IHVQXgtcX8sqQlvUsTuvS8xq2aDiMC0MA5Rxi3jz2m289voNSerKjAETRhzjYx85h48+eREXLz+G TYoogYtjthXfNr+F8C4RKG1fnudG08JQAwE2awIgbbA5PkRICeMYc/hMsZsFgAgLrk/KdEvEB842 +xLDH7DwldkMhW09kzLuis7kMYzlvmT3CGGw9WsCgXyKgGAjIGMkfU9MiozL/eZ8zB5dgTnHK4qS xL6RGXlsNzlOt6mLNY73xAITWTZjFBRPog/BzDBLadAZYfKDElIhogVRdIgg6UwlwjAMiKu1tBli fy7RZwShCUlfasjRFnDg+1HaA2wJpGgF6W3P9PuzFM3FaxAX7Ll67bGoHBZJTufDTBtCEE3MihjY PMAbX/tz/Pov/wu89dxX8dTFgItnGeOYMMaIQJOa7wA0AjFAGPwopj1DEE3AMAJRI28NkTAESfJl 94l5cUSQSQax+IgYTTXzG6JaQ9wd82S0Y7vzp9PtbhkwlE2oPi2ncYT8QIoNwBKQZQzW4r7YER2p 4QOWxjuAMWGDgQgreg/n8RruY4X3+AIoXBB9M1Ennv0W4cKd34tl4bzKP2e0xvEDRA751izjlHTX yNoPYci0E0jZFHFbsAV7e471E0gztBdGX21AAI/WA4X2tlr5IGvT2Kqs0TDhHUoDcyAi84mTM62K okMd+uA058L/zBF/Xywuf+RQaVQY9XowzS6jmLoGMrAJ4CCOuEGjJFp7EkFzO8j4eO5oFzxCJPkK ZJElGCdMFEt0KCutcwmHaimJAklpemCAI4gTUpC5jLmash4mFYgJ0CT2wRl26T5MHtzWKED58Ah2 eCPbdDE3HvQOtVlkhheKZ7SJKJu59PwGZhPa/J2ZC2WajcGpmPrqYNuvnUWant+/VXLDsm+DoKrc aFHcQeyFJicAVWgY1fOxuw/b+/somZVSj2ZhJarWRmEYtz27LwLpDtJAam6ywktXX8KtOw8AWgOb B1ilQzx+jvDURy7hIz/0GNbrM3iQYhYQjdS1Q9COy77tY/dH/xlx7A2UgMBYrQaJJU6kjVCtBUJ2 JK7MpNgSIzWCX1dQFWIOGJqvAoYuC07FVEiQejGvMMdttv9ZiaMSw8RAmox5p2yTbwIHEYnNv46w LzGO7iAy4i3tmljWR0qwWZF71GwnpSKQBBIHTE4AaxuJBL1NM0WKzGVEyFHMWE0JYwSmycw3/Fia adg8s2cV/tHmuVnnS+ukx1w/yrLt3dveO9+nvPjbtnqQYZjkvs/r6bRI/53vOwmDO0nCp5NDvP7V Z/Brv/TPcPuVb+PjlwZcOAAOxg3GABA2GuUnSqx/COoZNLO6RAOyqD+kGgK9J1pwC0ZU9D9EYQSG qHb/EbA9VNNnc1h2JiouYkVFT6j4uM0KUdemuewmmt/PPBu373v5Abzan4UFLBRgIfExIh7gfLiB zXgJ757cwTFfwjHW8GBSe0a15WEd8dt2ZVPBTv2AMNCBgMmCNxhdSWosmQXECNCU+bJd45Pbkqw9 tal1NiEi0/6qSaQDMjz/gYY/afssTG9c/F3ODC8EtO3dvZA8QNqCxPuUSn6e0bm+gLnvWNfPOA0z BwnoAeN/LXR0PdbbIkSlZIFElukzAAwhYOOiQtbzXGsX7PvgX+SR2UL4hagnG3CHxHHa7YhQXtz4 Tyv35TcLUcn4aAM7QQWQpp1QW7HWep/M1goqCeUG2oZr69m+9JgZTISoCH9rKx5YHXMdElgVHSNq mPZJUdOWibN3TronimAgvQrWiVMBP3P7/tOX+Qv9ovIHoKyfIm3bvfIb0B/xJWRx/i57BxCQ4grv 3DvCC6++ieMk0vLIJ1hv3sHTV0asV4RzF84jDBEWEtLeF8g71ywxT5lkdNuV72oY8UK4C0oBCFMB AuLBgHgwgIeg4Uo2hYHQcSgHh9ri53qEQfZeFMySa8Oy4kqWXYvYI3cFNV8hQomyY6ORkDUFxnQT yZh5gTXGiGmqTYasPa1gm8N/gjV5EZDzEJAh+FZXtA4CYEySEEGY8KSSCzGmRPDarxACTpIwfNlP JDB4A5iWQdahOH5ZPhOjN4HFCT9SRGRgk0qUkPXBASgWf4ae9qodx6XyqBn+bfWfBpiZ76ldv80P PPl9ib4kfab/XCBxxi8AeHHyjPIVYTrCS8/8Ef7j//Mv8c7L38RHL0acPxOwHpPG9QcGS+Jl9v8D MKhN/ziquc8ADAFYjeV3MxOShGBqLhTFxCDmyD/U9AWwHDdQ/wQCZabcox2UE79AhHjbn2S03+in +qpgbg5bKkPhYpgyqj5juhaAqB9kWc4PsPTAsmZAyISc/xM7NDQIfRnpBOeGOzjhm7gwvY3DdAlM V3CCATK+CQiD0IDU35un3a89jVqP8bdzIkd503UQUeiv9d8YRgCKIIdqG83A2ebdgKzlaSpgi0Xd SU00pJwpGSb8TCpcKoIeNFGVMC2NpYOMe+KNC+vrf295nA4vYX3Kf5j5St3OjGc7IaXqR87vY9Gm DJilPF7T5JEi1VTEogn345s1Gr6RnTIZI5+oEtKESyFxdyUCY0KkzEYWQSaxRsVM1Xh4Zi/Bzs2U fT+yZQjPORQZB1Pd6DxJx2CZjkMlhWgNbZKB3uHSQ5JqBrCxi+qUnjqufde+Ul51X6rDH5US3Ke8 c1ed21DgHDrUIT5tHfv0oYea72qXvc+30y9+18qd73/Y0ralzfTq59S3tTdeteC5IFAhIZsVhREb HnD11Tdx/e1boChq0xU2OLd5F5fGEzz2xOM4d+UJbKa+n8kMdXwfaJq1v2f3l1tvvgdgnKQTKIcN cUqOQJMRl1ns/4WFigCo2GtavYmrqAbThhs0XISDggBYuxT5EL2ntH2yakMJA8pBv0OZf9VE0SDm EZbMLpGaclA2L5IXFfVmGd8AyupZyo5dco86aCVyJhQEb9oDZ3st+0YBA06LmWflMCNJjMPIRDC3 hwg+q/HBwVnEUZiG4jzHlbD7YShtW04baeT9lN5Z0Ltn6dqUNHSUlcSQgL6McTrGOD3Ac8/8MX71 l/8pbl39Fp66NOD8AWMMJ4iBsRoCQiSH8Kszb0yS4XdFjtnXZF+Ri+Ovhvu0zMCG/hMJ+EUKkRUn c7eeQtCgFa4QlQ/mDFnvnPR/P6ygyGWDAf7vD7gknOJ0eQRCSbvWzT0bPAEszFWgCSM9wBm6g4vD 2zjHb2PAkfhbca2J7yHWH/Teruy72Uxm5u9szyZgt6A/40/ceezf2+O1PM82P58d7V0o+bcq9OWc 2e8JLLtKV+vgSutn2D5XCWVuDy7xdnm/7nTur/fu1IxrQNnzNBtTuaMNqdwbEz8nS9oCz8PP35Ms cnW+l0hNgHrRdQqyrk+xhF6SThgU4SQ2RRrJaTGLNKYWUQ1zWpsa1RPSEsreoPQHiiTWty3krCKd R7hh5sp230vc1b1cxKvuO2l5Ic/Ciup7cuhP6m8IHy6TiJBQmI7ECZYpcE4EtpPjpbHcXbpxkly7 DRWdckhGcVyZH3TWr8KQmtnQXDBr75ESBLEOhPsnjO889zIOjzUMJAMDb3ApHuPpKwc4OH8B4cx5 VcuryYslo+MAUrRxV9n/YLYEVS55kf4vtvLytjEOxcHUkAcyFWkUTRYrKqCRdaD2x2zXJ7WrN4Qg JSBRNm/KJj168InpjxEiMQEKbPMjbc9tnQT9SQgAqZ1qU2xOUjIhQUxzkprnwOxbYZqWINCHRgNK iVHFIVB4k5kROCriIX4GwqyzmgOZT4BG2phSNiOSHjtKl205Q459bPMUUCJlyFogBCQRqOKAg7Nn pApCgWys7x3VYUX4t5gQ1Pt9aV3ZXFgULKru9/s4J2PLdQJzPKi8u08DbB5qx+pHzwzVUUWsXyGw ZmUGVjEg8gbh5B5e+LM/wL/71/8Ch2+9iB+6EHB2nbAaJgxj1KSSEl4XtMEwBg3jyRiGmBn+YUAO 7TmMkNj/Gu0nDIQwcEb7jflHYNBQNNMZecskqDDaeQqZFcFT4ZZk/mw85QSeslAt1zS6hwRKn0eV Ya61x4QiXOj91Rng5/cRMNy7ymk9EJY0AVlTuqPGwpgJHU8T1EZa5mZKG3UOJYz0AOf5Oi7QOdzl xxDpAjYNnfM02jQzgpLqd9RzPAtG4MagJ+xtA/TKmaZrhigjiqznfW8G6/eEavxSqhdQ8TloTIpD 4TNaJljOl2KjDyD7YxXb+sm9RjUTRmuppk9dv4Um+g0vOPRm1wK3rnu8RDs+mV52QGbA+FxCWQtF EJsDlX7/1e1kZXgDlyy/CSg+G9r2pHMZ2DB5M3+VRkaN9mi+B5wdtmNepzZuAr5Z22y+IfwCCQ9k JxtbmzlkPw6JLCk8weA722co1TEiD64NZBlsP/B+Q/ni39FDeuXv+cbxElt1zd6T21NsqeQ+69d2 IpjbZe/1faFaHGg3NDsC3CusxC4/z06wcSq3to+9/oLqcW0P5+2HtVsoe92/XHY91zIO5e++Nmjf dpS5VcITBkw04Huv38S1m3clug9kWw3pGFfGE3zk/IgLlx7DcOYxHLGMfyINU2lmJXusj56Ato9A IEJcp38UwXHAlBzTZTLAJJuf0Gw01kgRihaI5UHM6EFliqLMeEoTQoggDmJjCtPQlCgUhKDMtaIK juBxsmg+9l4zgZBnmIHAhMDFjt9Mv8pJKXH7I1FWvTKhqJzVB6GmCyoEgLDJCe2kLZLQDKq1KD4x KalI7YAE4oiQ/QvqUJ2yt9UBe7I+q8MnE9brNS5duaLtcsgZMNt3VqeP7rENha9p4bR4X3uvvrH5 vkx/lurr32/vCVWfHqYY/dVvs/8rtDEzsEnQdzDi9ADh6B6+9cUv4Lf+73+J45uv4CPnI84fTBjj RiL9hKTIP4HCpCh+QhxIwn4OkN8olSg/g/gCiE8ASTjQKKE9Q4Ca/6ggMLTjbkBZQVSFgW8Z7WCD IONQ8T4N86B0XZh1qA1LEw2mHLQVLci/51v30x5/KEpzLu6+feGM0GACfk3FgRAScDwlxHCE8/Fd HNFt3Dq6gw1fBtN6ESKz/Q0UAHEvdGjPPljx4SszQ0osoIn5f/GyuVTNG+33/jJ+Bij2xzTzH/o9 m8ha7pmZiVqoBCVfx2nK0jMeSNnKZzV/M+/eBy1fQkTZtKZirre02fOfdVjSOe+Q3yE9s1oEKOUW GOpb2thviWpz1vlYkIb8RCWAmek56/uGbNeYDBWVXy22bvviTMbTwgJSWpZt3WALyginq4/hFo60 wyItcDbVKRmKa+ZS6rOEWq3vAGdHCxlk3z7fkHYjohnM/M18ALieHIJDghqJ3Qh7IejuxxiyPVbv MA86SYjeYdLXXdronyt98Xb/RdIt0jmqcdy3kDc8x3zBl07WffIbsmKa1L+ezdaQrOaCUIQQEJCQ eBKGl8Tn4mgz4bsvvYo7hydIRBhDAh9vMKRDfPxSxIWwwbnzj2ETz2LCII6cHHfx/FVpN2CLPsxL zdDZiDBk80WSdT2evQQa1+Cs9ZC7rL+G3sv6Ce5/q83WoG+c+z1JMqyav/Sqb7nfVM88aWxiimo+ ZEgQlNkX85iWr52ccMnM4meBIthaO0tYUBM4CBt14JW2mCAQsEm6elOC2fVnBtxkFKufCVMeZRUk 1KRJ9o1GLyOAID47G3Y0Q/0CSIUZUq3Ier3GE0884cbAfI6mzOD2kLN9Sr2GtgntcL+33x91sTa1 ttdL35unzUGagbqNfRMA0ogjPqoXMWPABuHoHr76+7+F3/mVX8bxze/hIxcDzh0Aq4ERh4hxEF55 XAVEAoYYMYzsnHqBMQbEKALBECX05ziKmZAIA4Xht2hBQocIIQbN7MtAmnLOCKZyrhV0061rF3lN hoHkHKWUz1UQSr4LDwBZvXD0ifM/KBu5Hk8TINmZs8m5ZNH6XBSW03yfTdqO309Z2lVdrqfZd8Hx tG/t8ne+AiFQDrkcYwTzMdbhDs7SLZwPd3CU7iKpRtGQVtMGFzpZmw8aklza2fgyVvfKepZpUNCA /G+OXuT8LQlGWThN6hRckib6cRd+Sb4HWztZc6K3Ba7WU1tyfgKzNXdA5jbqxZBEfOYT5vPxZDKW 9wfnaDNmUmJmopR5ytrHYc7ETjA0m1w7+30q616OP+VvUpLEjiiI/+R66QUo04STIvqCzXG+Xh6q 7fGJ5JyKlnBVKga36yhNCERtwG8EMDAJ3SETAgFY+Cibx7LrUxU9ElQ0CzUvmFA1m4uZvwAX8n+O AkQQhK6VYuYlNQugfoE1ID/tqqk2gh2YDfPb2yxWf6/kgzdvNEuYYC9vBAP3vX1PJeC0v9l+dO9e qqPX7py4jOrFvITq29/Tgj1zi2b2ozLNnX+9hH9aBMEYLqvb3uXViJaEyto0ZyiatqAe96WxMOcj EcQCEAbcvHUfr71xEyeK5qdpgzEd4lw4wRPnIy6sI6489iQmrMV0RD1l6nE6hTSwZ2nnwf8tYcwi sD6PsD4P3qgtexI21qLP1GrHovlg5pmdHydkG38CaTARQVWjRdNBwJQmGHIv0ZNMbWzDENQHQDIz Jq3PIlnI+wDTMAjz7kKymhlQZvxNgyBtLHb7RWC38KBFsLF++VC/puYOoBAhyVwADZ+BkoegCEUS aSFick6oIX8X+kWkAohz7A+6vi9evozzFy8gO6Vm2uRMGBvwYAYm7FG+H2htiyz5a3MB/oN5fxk/ 1yYSlAopaajPE4S7t/Fnv/cf8Xu/8kuI967jhy5FnFsnjNGcfVkZeMIYGUMQJD/EhHEcMoM/aD6A OCRx/h1J/QJKkjDxG+AcI50ICBb1h4AZiIH+fJeOivnpfP4jgI3Ug5jv8QiiVlidT/sUMxEITcJI VVXtN0F/y4s3l1IdnTA3xJhO7mGN27gQbuGQL2ODNU6wUnpaTCeDGUjPzubTjaGdewYQeNpZ6mx4 ABLAiyjBO5CSYxhjs6S20ZgM5Fb31vcvIcv5t1PiDZl5dr4CuR3BA6FzWrTUjrb+Hpre+06aQK3H V7T284Vmz/k5AYlazqU+m1taUNq0hU4A2Xwv84ehmrK9zhFbne06naoxjm5u3LNa91AYY3ESYIHw IDkXXYNgmUiLrWLFrAqUkbUG88OQNfa9GwinYWCKwj+w2VDbIAsikm3O8gO6eSlV7RQGu9hKexWN PV+h5c2gsF2vJNpm4ALNkaDcD73eeU5UyAVJskXdMvbVRtxjAxItJzNpS0AR9WvE3kqL8BgCi869 vp7677Ihlp2AmBkcYr3OGuYWQYj6lCzSBgAasOEVXn7tKm7fO8LEQEiEiBOMm7u4dH7ClQsHCAE4 OHsRjEHakbON1oLn+ynzjaoRe4wptf6Tmd5MQBiBg4sY1hfBxzY+YkcZuERskEGAKBVU7A+qBYHw TcXnhhn4/8l786dblqw6bO3MqvNNd3pTz61uRjeDaEwIGSSwQh0gJIMsWw47Qv63ZFmOsI0NOAI1 EpINbtqAkBQCQQuQbUAMQoJG3f1ev+G+++70jadyb/+w986pqs45977XNMgZceOe75yqrMysHNZe e2LSMJ25LQXQA2pfqMuU1fkswRgHyXbuZLbIbLb7PkfFBAS3pVfGobRVjJr3aAicih9Ibw4jogDf 51SZD2QCCmenYAE1AlEe6yr2tProuHBhcZKHgJvtBAoxj11uh6hDM8QdfK3KYD4SRHj5fa/g1gt3 waSOqiSwiC7zzb+eB88qADzLtc9b1oiD5bb49z0C2IMI/B32zwbbvJM8DwFku3ZJEyISTihB3nkT /+Qnfwz/9B/+GI6u38ELtyNONwljFGX7g2AMhDGquU8g1QjkuP6BFfhHUbv+CIxjxGYgICj4H8dB HYEDqQlREAS1zUSMAQiih3E1dlkru9D3wkjb3PL4527TbU7+RYjt3nm2hS7P6wawua4UNzWyOrM5 TFWZtPN1sZ59f/cZXb9aZSUqUEBlp5+JLSihEgI2A2HLl7gV7uMyneEp30YMZ5jcp8iBqREZvhkU H599/a7uI4CRVENt2IJs/8rEag3yQBBRAoLN9CeYdpJzn5zc6AjXblxyRtmsMUDRVnY4xgWldq4V 0zagnteu2TPiN5qNehf1Kwd0IBirXwkdFsbZBaLnKUvgv/4um8O4LT0CJg+7DSBl7bDb6RvwlpYp zxYo+cuwkKyVq3Wr53abvVfvA1U4yOqL8OSvpS1KaA0tOeL9tkrZCbLqIc3byzJ/Jfz5/rNjzMOa VJWjlVD729IB0ko+Cw9R3qPpXO/kGkINVtBc2z+vL/1Ezs+oyZmFevu+11LmTGLjAtbrw34fe9b/ Xpjx4rPwPKV+9lrUk7WSs8o9R1kDLPvmwNK1+66vx8zbrEJBxNNLxr/7/Gu42pbFOArjaHqCl880 ZvLZ3Xs4Oj5FksqWsevLrjYU8Fvsuvu/d0VW8DrqunQTAjDegsRTJHYznKiBLAoSyBt/W4e/8+oZ Fi1HA6oosPZoPe6QLdXaUjODUNVN2fmphN0M4FQB8waAE3KSMWf5PWEZlbbADj9OgLP/idvNVce/ REKYGqGiAvvVWLJQHnu4EZloiEUmgGKAQBMbCnuGYVLtUQ6FoKZHbi7k9TMzJAAf/DMfQjw+wnaa UDuNL4F+v0/fy1cZKC2Upbm5NFfr0u9t+9bKzkLcvPP8NRgRCcd8g+1br+JnP/3D+IW//7/g+OYd vHRKODtiHI3AuAFiYIyxMPlDVGfeYdTEX87yx0ETfY2D/WYRgerPHvEnRoIEASJl06HaKbvRQC6c DetC1Po+vHTeHrof7ip/HJqk97S8R4JvP6cDCDDHcJIE4QmDXOCU7uPW8DaO6BwBNwjZlK+t59kF 8nDwOln7vs0P1M6JIBbpaOHeve/c9vgas+y7t56H+0D3zkeLZMy0humep/QEY/O8FY3APmJmae01 dTe/tNqD+voeB/S/+zXF3Mg1j+vP7kslVrXfV/OXiCr8sHyNP2dYZa4qdp6I9NDt1PRN5YTlSSpQ lYx1OhIpW9FNepEJbsbTVtBKuH3xTGjJFjSZ1J5qpi5LpaU/dftEpHjLo9pIvF/oeACLJCP+eW08 MJe8QWTqPh93b3O7eWQ1juyZENU9OumAPpqOSqAm+TrTMTPJOQy45GyYFUBt+jdr17qA49Jvfd1s o5IAd+918EkY8eU3H+LNBw8V9FoiNUo3uEtX+NCdF5H4HOH0NsaTE1yJM9hF8oc9lxfeX3/A9xtz e8i37DTl+VKk9VoNHCAQCqDNLcTjO5ic7ddJWsaPzXPfVNVlrN2+UkAMA+mq2QgoMZ8joAK19dei KwAAIABJREFUzysY427gOchQ9c1/t7YEgKd6nigrH2goZkNQkO0AX+dcAclEYmFBSQG5FEdlsShA JecI63hJC/xDGJBMw6Hx06NlWa/NiARcCT8OLFw46NeCiGgUBIappgM4MRAi1HKTEY9GfODPfASe csDXlQgBwUOaLpvWvSug/CeolDXI5nw9mCnUvgO89gVAZhqVqfUaCUESgjBOaML04A185kf/e3zu sz+JW3KOO6fAyQY43pg9/0AYSP9XEx8N2zmMpOA/Z/YtgsAwwEyCVBswRk23EYKl3YgCCgwKERTd mbZd532EFCIqzGgJ5N30t0Ts4fL7AvCg6t6dZc32PhMFnQ3/e13W6n0vNALPsVayYaAL7RU+cJMK fRcJRIMKe7LFiTzALbqDk/QQ13wPTLchll2dUExz/fzf33b17chRcAB7J3PQNZtDzfmhWsty1pjm lHw/rjtPORpOnjsL70efQch29IZ/mmf7+sw4pRNCUBJP6fOKJkA/REtM2b8/J3YDGtsM0+QfqgBY 20dX302grmrzLbQzxX0qe0Ib1buo8YxG6/GxaB603F7Hj+TgP28UpnV3jYFmJObE5qfimgNn6rNX idfc/b/S/dAmrtT5WZusWt6gvF8IVtFZzRDX/+9iPvrv1tiSJankvTgweykuP4/mfWjY2AWpeF97 3g1zMH9eQA1++z4tffZ6RNqYxvskWQDPrXGo62vHs+3/Pgasb/++a+r/td4BExM+/4Uv4+LCHfQA MGPgCS/GCbfkEiEE3HvfBxCG0dKqzzfhHtj3bVtq41Kb276G1XtdDbxNAMYzHN35ACQcQzCYKtri 3wtmGztR1E3Mw4MyigNv1gDYxiOuTau1CFqn29xLxUKU+3UDSUks469GGWITRrhK5lV/n6MRVXWU 9of8d73uiNTnSOvomBxEtGtMBSTfWMUcfzWCkYH8UMZNAWfIoe/qdwMYdjEH6OysBiClhEkYx7fO 8PWf+CZg0KQxMUYV2nbM6UP3jj+pZdecf1bBpq6nJ1v0f0YUxrHcYHr7y/iHP/y38Us//WncCee4 d0Y4OwbGYSrx+mPN7quJz7ghi+HvYT9VEBhGFQI2g5r3xEGdf8eRcmSgEKF2/oFy7H83sl5jGHed h9VFc1DfjWdz34Fnxn/QReRdj8PanqzkkmCgCZtwgZPwELfiIxzTI0Rsm3f8LCxseXA5u9fuWzq3 l7FQHRnI98Vy/i3hlLXzc+naQ8uSBmDpu337wVqbD7l26XpvQ/1vaY/p71/DPz32W8JPYc+0JKIZ AdyPWf8PKD6TS21/nvNjLlTa93XTeHl8B2fTAGdBLFkGVIITtvB2zmLOJK224/45M4IoEqQ6PswT NmSJlghiYRqL4OML4/DByPHBXcITi7vfSYAixZchJ2xkQYiV/Za0dXMvFQbb9N20QVqmaEmDMH/J 9SbCzTX1/2uLbycwyfGml8dqPQxhy2Rl844cllFZXgW1zraWse/7syY5B2P4+4RqffuIAZYI2hzh 4eNrfOnLb2Ir6nwaAyCJEbc3eP8Z8NJGbSjP7t5DGDaYUkJ0tplK23VuLo9dzYDuar+z46W7upZK 2u6Sv4Fg7yNsANzCcPYyJJ5gSsAYNRqKcioeK1wQKKo2IEkhmBIbs4+ScKtmMljv80grDtozE5K9 azVOfyDClMeC1CkzBGV+RbUrCcj1cLK3LICQx/OnHN6T2TUKal/NWdjQuaKO0JTtY23R5PZrvVqX EyPaPd9ECZHJ6g2mJYh5jxJ4xmMTjhmmH9HMv5JY8xw4WcLlHSZm3L59C3fu3dVsxCEiJXfQRs5t kqPedALwfyil9KdnoroDq2MSA6lPRd73sgN1ifoRJeEYE9LbX8Zn/te/g1//7E/gpaMt7hwHHI9m 8z8AMSYMI2ETCRQYwez74wD1B7BQntkMaCSMsWgK4gBQ1Mg/iIQwBoAEEhixCv2JvI8llIPZhPGe Yc95Q7r9kZCdD1H9vrS/1od1zRQ24zoTJFb2n+dm/jtNxbOWfc99Vg2Bz7eDD/ouykrdD6U6NaEp AcQTGIwjusAdeguXuIUL3AHRac6mnAmKYHvRoYSePXAWvcjXhRjDW50n+rEdf50Luj/6Hue25jni j9e12o7yzDoaHbP7r4SMailHN+oAbM5Ea+PRz3/z2Qtke3eOX981yK0+fDzYNvHn5EdqwLxPGHI8 qb+VKFJEGlQl4z1QPjN6EN0w6c24WPdQxViUar+jokEoV6LgDifXRfKZ02Jhz6+wZ33Z7wE1ni5j IS4k+RuwAztbwng+gXrQliSifnDrsgY8Z5JUd33PokgXbhTE5nDXbpZrhavNoGexliTX+tlLE6rP 5FrXXV/T96WWLuvr1+qpn9n/vu/5hzxnX3mW+5beXc1aPE876jFbatOMoQkBghGvvn4fb73zBOrc S0hpi5GAIV3hw7dGHKULnN46w8mtF8xsTdndWiXZL/YlxqKX3J+lzDYk+18Cqep5uIXxzisYTu9h ywOYAeZJwb2zYizglGB2L5DEWZVJEkyadUHbbPKZlPk2m3/OdpiFQUdl8y9iWYOdCfdEXVLeb3HY dX8F1SgkzDM/53dlJftIsH52Vbv/BgAIrdDo9bSRrdqMicUHoVyrZkDzuogoH8KaNCvm+Zu1AkZ4 JGF87OMfxwuvvIxtmjAL+xdCM2f7fr/befOnvaxpEvQzI/CkzP/91/BTP/J38Suf+TReHra4d0Q4 G9lCfXLO4DtGAYVkUX1UA+DJvPzzMFBl9uOhPtXmX4UDrYvI7jf7/xABEOf4/v255J9XS79v70jp UO+RVPkz7WIK/39ZfO97jrMEqICWgT/hCaCEwFuMuMQZ3ced+ACjnCOGKTu3LoHLw8qKScgBuKVp d/XcHkf01679vVb/rrm8Nud2MfyHrI2+zn14Zt+zcg6Zal/p/+/vWatvac9eY+N31RV2PEvP3mUy dxeeDoeuf+IsBPfCS/OcxCp8dc/1tg19BaV3NjHcJjeLeJWNp0l0DhxcQ2BDAKDOiMZN5t8eJMRo YQeleHKDSsZcSFoUHtUiIuX2ZiJBkCVUECxuK5AZergEVKQiZ4iBBUE1tO2OHj7QHRQJ2d7VJfVQ 2x+7maDXkQkPZbl3Lbjmvu47oJiWHHbvcpQfqt6TX9eMZ/O7ArL693KY+eIKTf11qSeot7oH5D6R GVC7WgogjDi/EfzBF97AxdUWjA0kTdgQIeIKdzaMV25HhJvHGI8/hJM7L4Kh5ikUi725zkO35e4Y kFm87Z757DUCyz4qeR7lDMkeLYIxQSPybG69jNMXPoib8z9EStfYkNvC63rKLII4kDafBcuGKwyN QmDgPzioh4Pnal4kZfrz2xcxwOKOYqJRhLjqnxCSRUkI5uQLW7/JbPY1XKcx/ixlkfn7tbwHQuaT QO40rECcTS0nAsvSaRoLnwsAPOJPjjQhGhNM4AltdAyItA2clKFPjDwWnKL6MUEBmLDOAyblylLS 7ycIXvzg+zDcOsWlXFmkBhdAXAtTz+967iwfcs8G6PZpnJbn3y5fm3d3/xqTW5gtoDoeqPyufUdm LyMYx0jgh2/hsz/6d/Evf+bTeGGzxe0T4GQjFstfQXoIZNl+GcMQNfznqMm8NJQnMEZCDMA4BFAl BBAJxs0AooQhEkLQM4WCzpUQSOdU3pPT6h6qAi+Vcegzc3q3Kxtqzzru41CYSMtZIbBws1W9C6Un V3pAVYTYXe9prXyFndXfi7wB9ftYWkNE+ZpyrupexEjw2IoBQR29ZcJpfIwzPMDJ9BQ3uDHN5QjR bUjjpFvdimcGs3Xv+pGZcfsvN6/YwJdmUgZh3EXFW2Kf22JR5XI4x5LMEWhxiu9PzfmazJQo+0pU ++rS870/3vbeFFUY1c1w3ULdVzHyiqp6/FmwM8jB86FC1xJRuA8vNZgiFCKMiOyIlRIXf62Q453D Sj6zO3ybSS8q1wnK+yPzl7PGH7yqc33uSeAaV9dm+lwwjbjnn3DN9bBUac3QiQO9lUEgQQ5ntDSx tL6WERKR5oUOFPRlUAEY63NifoARUZlY1SA60E7CZeKLIEZLDhECUIFv72cN0L3MGIIdc2JtMWdQ y1wEkZwqvmWFDlkUuyTKZ2Uzdkno9ef+u16qDKH8dgjwyfdXzHAvBIgIJkkIw4AHTy7xhVffAIs6 ISmzOyFsL3D3GHjxdER6dI07L7yIzeldJMzHqHZeei/ZtqX33o+riCARgSRic3IX8dbLuAknOKZL IG1VtAoBZHag6qRuAF88mpEx1wIzowFCBu8O1Ktne8hcNysVMnxSaQSSVHPaswK7kGQgvt77TROQ JKFOQKYgvHKosjp044VpZPz9atsKMOLsy8BCRYAxQUPU4ztrE+pIRiIC9sy+wiDPDeFOwyHmw20S 1USwEBILEqur1lYYR/du4xs/+c3GsGhSHuYJRD17dNj87tfh0txYY6CW7t9VDtsz+mv7/5evP/z5 7XoW0TUahXGCCfLoLfz0j/0P+OXP/D28ON7g3gkp+B+SJeTS7L5uxjNGDdvpybpi1MRemyGYL4CG ASXSHAEhCIZxsKzA6hgcIoEG3UtCACRwPn88/nbPAutRVADm4hhLRVZVv3vIP/2+fd+hMnekSlhe Gniq7ps925/Vvc/dYGbenz/ppQb2s8m48m4caKpJVwRBQAGI6QYbeYITeoxb4REu+REmvIhJBoCk Mdvp66zLPiZ3sQ9LfbLS5xlZYu3L9X4uzgXWvl2aY2Peln37Vz9vDynl2ZznpVTrg0iF7rRrPa20 pd8n97XBblx8zowtRztu/V7dhztda+PSRjl/d/P2NL8zFyFgbymm2VbLLGhBXX8m8rtnD8XmP5oU WyaI3s3WuTnD2acvVrsvY1ADIFCmjogMcBVbcWdc/P4xOFOq/7NNoFpiyhVXJUiwa7mA/6rjeg3l +azCSLLEKVwy4JX1lTecRohRGqtZF7XA48WjvwR0E83uL8ywV9SaE/j/eUPItrPLZhJL4EEPoX4J r03kXqDazyTWBw9VmiFvizqRt+2c3+8M//oGS0TgtFXwhogbEbz2xn08fHqJxGozSQA2MeBYrvDS WQTSORIxbt99CfHoFBMr00f2rqHuoar5cSagU9XV7d6/HlumR4hNWHaGprKhJAfVFpYSG4wvfBTb eAc31w8wmn8Ni803dttPZZBq4boVkgvgZi5tdvaSGeoP4EDHHG+VqQFgWodiVoPcTg9ZlqB2hbDf GLCcA/V8oSqUb8jtYlYgHmgAnBcK3rcE4QASQpCAZO9FgXfx0fAsxSmxCQtGUkAAijl7cuuojHxQ +piriYDmQ0go+8s2Ca5pwie+45P45F/4c7jGFgzXwrQOzPAny/KcaWbHDhO3WsCd17MM+uaAnbq/ 56U9FHq2sRwg3i9reVdvYbjr74OtfzZ72mJTasRKCOrwGwT0+B387I//j/j1z/4EXj5KuHscsNkw hoExRDLHXgX2kQRDMMbfbP5jJIyDfRcsMVgG+W72EzEMCvqHIQI0KeNPyM6+qrQ17TDm7yDv683Y t5rSPPrs4K72g9J7TQTVeWJzjogr1rEGmi1ZlhPRNO9mqXRR3QgFLPeCyY5aZgLonxBhYQbqZhty 0bA089rzFcFtrSNCFIzY4lgucEbv4IncwTWdgeioWWdMGnrTBbY18lMftg8g6lnY25A3rmcN4Ris m+1+U4jCaCDbiUvTivZjRsU3BZZh1olNxwd5TtT7jQm+Gm2oNcH09jXNXhGQ6qiQNU6qAXhAe/4f Qho6gVpfV2PJ/Dn3Y2d1tv/rPHHc1rbH6rXnwsxHa5/aJRy4vxQfMn0PhoesD0thywE0ew0AUJRs trskOEogi6DXaTKMFKwSgWnJB7Dj/xXppZaa+ji2fl8bE9vZlVJHff00TU3jNQzTuyt1KCev1x9Z T6K6j/kwwHLf6+u8H/39+sN+yW+pzjkYaA+K+tr6he9q37OUQxnH94KxrO/pP5eFHpXNoYjLm4TP f/E1XE8CoiEfUCHdYLN9ihdPTrEZgUtmHJ3dBsbRTFgEzpZrJMeQbT9ZCuvXCjaF0bAer/zf/ikL 1+n6IDCr1KygdADLBuHswxhvfxjT1WsArrMzuluvAQHBDr5szw+NgCNmtqORgXzcjd3XrHoVoLe5 YIy8icb5+hzVB87mu7zrbbfeCbLTbz7OKpa/FkT8eiA05nAmfnX+AzUhoISDahO0Dx6CuOQksPwG bJoFN5GyJF/JQFqysXPhJwlh8ueZOQYHAcUAjgFf923fjOP3vYBz3oIiVaFLpWrrsmnG0npYyguw xDiVdeOH2Fxz0D5rLpTkg7Xaj/t9ti4N0bMqUKzM96YOvU8PsELEEBGiMEbeIpw/xD/5R/8bfumn P43buMDtTW32Q8bekwH+GvxTzv47RIvqE5F9AkLOEGwRfgZ1KYlRzdpCVHMisgy/8AN9iLPxb/Zd tEQFRLr+LhXXwC2AbTvTlsBkmfN2aajX4O69tG4/Mxcn5Gpf89+l+m5JcG0B9Fcf/B9a2nlcChGB AlmYYgDpBkBElMe4FR/gLu7iIr2CG7qDLhjZTjD6rOfbs5T6LALq/cPXdNkztRQwuFRKmO223UsJ GpfaUtq03talM7/+rh7LoD+uCg6HlDVSZWm+7+rXUll77/0a6YXy58E99b15rPFs88v3mnn75u9g qQw58gcYYpkw+8Y1m7xJK77eGvBfMVoiglhJMn20lX7jCrDIKdVlsXrOWuGcZEZDG4Ic2Aek7NhV QFz/cufxcEtfdpV90qoPa60laQ6ZSsDqX5qWUC4yUwq9oF20zFNznzMWLcsHzBm+vvjGslsDoIxD /VL22RIvW7M1hyuQnbecHavbn1IAHY14+OASX3r9PlgiJlEbd2IgpC3uxQnvPw24uXqK4fgYx7fv AEGZYQKrLTrphihS3js6FqNnOOdlxekrz5/WNloQMCUB0VRNKXU43dIRjo5fxslLX4Or+7+FafvE BASxfrMKAYLinJsMAAsANrMgLkBbAYADdSBCTWISYHSHsztk7VCVgQJdDZ0JMbZcCCk7BEtm14GQ TepYClvqv6lnja9L7XQyrYibHnmfBNX+kSNTOLgFEDS7sUYFsi6IM2Ean35iwGOzZCFoIXqYstQE kJn+QDMXMwg3YNx9/yv4hk9+qyUf1wFc2rf6df+sG//S9Q0DyeuHetnQi69Ofvf292HJyA7X+Hm9 y/eXdul6joX5AyMyYzNd4pc/8/fxz3/yR3GanuDuqeD4mDCOonH+N4RIQW36o2CIJavvMJgTb2Bs BrP9zyE9g/2vzL8KA2pC5MmgEAMowOz/FX7HaFHmehm+FrDg0Yzcrto01JmJJQMyc1tsNFXb/DaG sXZSF+n9BeycFMDpL6ZgWriUI4vVjGMBYEnba38zQzUfWZOka79ldef99r9zH/8klSXCqT9XTMva kDoB6oAEZVyP4g1uyVu4wm28nT6IK7kHpgFEA0SSJd5yE5vda3uNaCtjyLPxVAGr9zXr63WLCAfw 7bpv3w1XcntnIRHUytuzEWczaenHzTW+TjL1mpU5flCY1Jsi2fNZWfMkk/0dzErUE5Mp99+bpqyR is9b3FIFUEJ4ntU3P0SvV+eExuKkrKt5u7KwZtd7QJqwA0eJmBYyn1WCvKLJKYLK13ZWKjLNxjNG DavdE+/5VOj77e1EdYGIoDvv8mTY1RlAB8MTXBHRTJLx7z2KRs/6EqnDIeAM7Vrn10tdb9kgi/f4 oRNpiaE7tKxN4H2gYR9bt1R6EN3X+7wLZ5fkvCTMvBtpfumeHsBIIEwp4guvvolHT2/AFoosEtTZ aLrGKS5xe9xiiIStAEe3bgFhzIuirneR8foKF11H5XMSBtMG2LyEkxe/BjzexQ0ihKIKcWZeQ2K7 lv1TAOGgHPA4/AX861nntu8O2kMVszrH8U8enacI6A7EPZ+A1uHRc9ymX4UHYdKzxwAoCwH54HJi IaC21c9jIbUfkPkokPsIFJ8DZmSzIja1dw9ePJlbMfFx06PSrzqEgIiZGIIgCLjhhPPpBt/5vd+D T373n8eT68u9a/F59oalOnbtNbtA2rM+Z5/QUUqZJ89Sf606TykBkrDhLY7TJf7VL3wG/9ff+2Fs rt7BnRPB8TEwhK2aZGwIQwSOPM5/FcLTw3vGwa4bKUf/GceQY/67869G+mFoZB9o6E8D/7VvUgaG NSADdu5niyBlD7vmpd+fm38rwpqvsZyBvmtDHdXL//dnFaHAf6/7VZnEVaaPS3vh85xJX9Eiksd8 sTRnUhs1RsdETcsIW4x4iFN6iBN6jA0uEHjbjO+aPfW8Scvj05+Pddb4XQK+37v0jOXzijETzhfM kpYil5V2h3xNxm8H9P1Z96NZUtR3Ud+zXFv3dddczlTpQtScvp7697ot+3IHLL13rzcnHuv2o31l aT+r710SevyewVVEWeLMkTzsQiaIM5JgxG6DCN3fSlz44V9UGuK2ouQ2W7qWWdRRBKB8iEzCdSLi PcXszS2meR5flzB9UFiBDHySS82eiMZO71RL5BqJamCzw3N5ukobgRYnCKHtSGGeW23JHMQnHT0C AG7eSd0+F3WaKBRNXW2m3fZeNJvAEuNR4px7e31jbW3faw6sZZh2s5FCNmFzvomKYYNqOMIw4umN 4PNf+DKupwkTCJHUP2BExAaCl05G3BqB6XyLMG5wcnqmgmvUpFioAEBfWh+ANQ3GWvHoCn20BP9V P0QaLCqVy/eEiQlbOsN496M4ffnjuPnSmxjkKSCsRi7MOs7iTjzmxSu2x+dY+AySoJ+NIo+gohmQ kMGwCiLOWBA0DoCDfjFiVPL6VIEggM0DWHxOcrnGQb6yD/69qo3dI0LEWChnQIOZRLmfAHwtAMye /Riu6KhMEgV6ddTJI2rqoc9NEClJxDShGIMlQkBItj25JoAhmETAIWK4dYYPfu3HwJHAvmpFZtRu T1zU5VAg6Gu0jjxT6lpnw9pDLG8kzX1zLlq/o2q/ads6D6rQtjk2ToouUDsr5o/LpA9pXo4oCUd8 jT/61X+Kz/7If4fx8j7uHDPOToFhYIvXLxiiR+5JluSLLbGXZfYdVRgIAQgjIYyeC8CTgqnAEKIm 9KIhWJZfnRdEQU25bCUGZzpD0GsEpipTk8K8X2amPuVR1f5GLFnT8+w95l/KGmlvULtiv0/03pxn xmToXB9rW9m02O57Q3b+careRW1Cl9eCxsYRy1NC+WSqTAdtL/H54Aywzxcdl8qn6atVpGAU6b53 l0WnBAKcfCGbywKSG0QAJ/EJzvA2LtJdTGFjStZwkHmMl/nqCbMTowZkStYU9r/GIP3c0fuG5nxi g4l5PhpQKuC6RGrQ6Iit72AwbQGBst8UkeOY8hzP+MuNJULpaS80NvMW/nzzLZWaWOZsdtuXQ0iO erwOKSSl9Wre3vtccrOeIsiCTaDZ2/z6Hmh7O4o/Q1gRAiqsRlGjG4roWS/6nV5RNFXMCa4xXCPD xbTxIDK/ViPJQtXm/p7qvQ29M24DHt0kqB6IqrYQCuu49lKKRqCowtaucymoDsu5b0L0z9WU4DWz 4c43duBSC8zrw21XP+r2iEgzDkv37Gv7GutS/05EkDqRVCcw6P87h2e1DbveQfu3b3Hr77fux/Mw Rj6eq/VTwIOH53jtzXfUJAX63gYBSLYIssW9k4gNJoAI4/EJxpNbmEAlIk33vsomWX7oWZ/D5l/X D8zHXIFxe5DqWAVsscF4+jJOXv4GPHn993CULjAaAA+IYIui4kBcwVyw8TJwYc7C5Am5sjOvZEdg 0olvAoWPt60zpuzk5ODd7fo1CVYsBAGsHXlHNzbRksHVoD41zCMV8O/aA9RslM9n90sgCKlWUNPK uwqZACEkThDPTgyYg3LRcExbc9iCa0wAV7QmUUfiiQEOhCeXFzj50Iv4xm/7JoSjCL72xIEh7339 3Ny1362VnhxYvn+5/nq91wJ3PUf7+XfI88p363tefX9ft3+Xc6cQYwDjDBNe/Z3/B//of/7bSO98 CS+cCG6fEuKQMEbG4Fl8AyNYOM+c5GuACgYjsknPaEx/jILgmoFoPgCxxPWnwQBNACjATEJUYIkx Nn3IEmbwtTFn92usv/bOXaBYG7s5uWMyNLMBNDc1U61fPrQrJzgSFRbUvE7fl+JglWoLQHdAYoK8 3Z84IUSye8p54njRwb6v89LPEjLQ55/uRetn11erENBsyPX7dNJRwa5gDFtscY6z+BDn8hBX6R5i PEWSdq/e+8x+vsCs8qvx6Rn7ngho6llt+xxnKT5onlq1m7vf0dyvJpUFENcak8aHaI8JVAbAMczm RdvOdi9b2qMOKYfOt/q97N6rHbOUBGw+3k6w9vuwt3uGFYCZBU3z+8pv+T0DYHtnh2CPvv76fMim 983z54LmkMwm1qN9eKIeIbWTrF+e+VDVTy2SbzfA0UFPjr+qdQVQdqwj63D9gnq7/z4KUA6hxm1H zJpZf5MASLIdoUis3pc8QASNCV5v9nvAv8e39fZIlsBbBi37SfgLyYyCCyeDjbO3uVu4RLXQmNsA s00FKE9YoMFj3Ut+NqZmfli1EnMBr+8e+APQ8STSw1qU+SULvRhCAELEVgK+/NYDPL26USBYPZPT DWh7hVsbxjExnmy3ODo6xbg5LnHfLf6tMztqj+u2d9UcotBEJdC++oGYsLQgiymOzyGrofLZ8IOn HVe1n1eH2DOEV74O8d7HcXP/AUa5hEb+KeBf2FhvSwqWw1tyqVPgTL9tBuLrUjKgB9vGb18DAuGE ZDbzCAE8iUUNEtSx98Xi9duktjYUnxOPtgEoc+T2oUQAkv6f3KFXNNSnJwezNwB1Rq5wlwQIBgsL Gs0BWVwO0HcEIE0m/JhDNFFEMgFiEoJwzKZMDNIIQFGw3U7Y3DnCp/769+GVj70Pl9fASP3BAAAg AElEQVQXiBSQttwchLNpC9s/up96s4qlA2PX5q6MXC149+uLZvNxSVA4vHS2/NV+tK+4wKY4WkNw AoITJDz4g9/FT//w38Fbn/8tfOAO4eSEEAdl88cxaOx+ShrbP2oIz3GjSbxi4wtA2IzF1n8IjHEI CEEszKfeQwNAgTLwV9Dq5I6PbfasL86ygJ1zvtW2viPCbXjr2XsT9XXzkszWGlL0BASAk9lgF+cg /SXZMZE5inWzGyI126vfMVdhI5VZtfWX484XYKNzK4CdZazNQqCaeN1bTRfvUfKEcrQnJxScmBIJ zZjMbKBzN5Z92J6r+MuqhbPckVBF2iv/+5oKQSOJhRAQ5Qq3xke4lId4LNe4hgEo89FaWkuZ8Xey odcAe9Q+P59cY+N4oQP2tYnqrj2jNMB1N/VzXWBJ5XlkeZVm7S6gFyFWvhH6XYyq8fMwzHM8tOwr KKnXHOpekHFCxiehmgNtrhoXQq2l2FVq381dgrZbZjiW7ev3NZHniFnAsLRmjV5cOIh27qBei20L vSXWNrtf/MoAkL1LP5jhbahr2j0e5P4fgma+zsbC52T1HRG1eQAk9AYr3gYpqqbqIWLIZm1Jq9NJ 7TQixRnFkn/FMkYZKB8i+RwkQbJuapkllHk/DpW01iT0Xfd7/W5btyTFLwHRuv5DS5bc86b37MzM kqTb/6YLlpEFjwPBxhKjWf9f/+ZzRKDM780W+PdfegM3EyAUIUnViCMJokw4Ghh3jwbIdIHtdouz 4xMMx6cWc7i1ie2fMevj7Hx/75musn7UHGVLG2zufA1O3/8JPHrrd7CRc0QzufHEL5EGpMTG5BfB T9eMZEYdgCYVgQsnhMwM2VIk0jp0X2B4yE/Aw3j6IVPWednwTZCQAlJnPgTWNzU1qvxUPPIOjMkU NqKhnkN66IgBFskChtVp7fT2a78IJT+AOk5K1jKo8JdgJkAiEIpIwtgy4xKCj3zD1+L7/sZfw+bu KS7TFoguXAfMo27YM/3/joh41s99WWME+9/+uJjXpbXTt8c/RzCOwLh5+zX83I//MF797V/DK7ci zo4tzv8gOBpJI/8YgB+G0GT69Tj/4xDMH0DZfNcOKPgHhtF/1+hBGt0L5uyrrDVRaBg5PwBFWtNV ABULvv6uVlk/F7ZtvqeUSkZPCeY/Q0jJQTRs37dxdcd4a8kS8dI7oxOFyhyLMiGW7P5gbecZuARq cEJEoBjM5EOJM1VGiGEUsj0I8AAbOlYRVAn/eeyehwRaKM+7764xsDWrH6IGJxn5Bsf8ACd0F6M8 wYAXsMWoAQWoPSMy073n+UEbnUnOfG/+s5iErRFofd/3kWtqnuvMvfsY9ARpC1CFaPau1gBk3Q8i VPNoudQEBhkJ46Z3++6dt/T5Sj2m9TrtE/7Vf9f7QiYLXV6XohkJQYNl+LzP5jzNWtvXRxVifL54 WbvtEDxY96t+j0QEcdN3tO82CwC1o0ATmYAsfJqNBHuAeS6dz4dExR7VC6YejBrkt4yyvSxjITwa TGGiCsMu1l59sfbysvAi2W6/lnz6WafdUIa4WehrALB/MzFkEkL7wcv3ddI80aAHRPBeVdoIUkZF BOYXoRttW1rb+8KaO/tZFuCzbp7KdrveuZU8tR11RABXGa4DlqXx6K/N0X8qriK4PwUEFEc8fHSF 1+8/BMIR0s2ECGXHhScMxNhQwskAUEoIZgcwbjZIIjaXi3lPsaEtqlAHe/78drM9LBhtvkOoXWjS HeRdPGhGwDUPGOhFnL7/W3DxhV/D9cOnOMENAiWI2WimlIw4qcJ1Grj1BGHClE0FUIFmQIz1VxBc ALQyPcp2RGX4TWPCic0Mp2j3HKyUyA22eZIZHPS7nqQ8P9jbIeqQK+YwDN9a3IfB6lAnaX13EDHB x8kDAVOwvSeoKQ8DEwMUBvBUnBzZchYkVipCKCKxYCJ1FufjDb71u74LL3z0w7gmxqRqEwU4JE3f G2DoXV0RlP/UFmn+Qxb4uqMpg4Wga5cAjClhuHyAf/5Tn8bv/srP4d7mGqfHGupTHXUtUVcgC9VJ GAKrFiAAQzDmf1QToNFB/4ZMQCiRf0JQ8yAJAopAIK0TIegeRh6StNNgmma2TuC1yByWjvoPxRTP xkUZUovWY8J2Fs2zwAoAlIV3IoIkE45RQvvmfdYYyd58zjVDsChPuh+XsyFkZ3cXBPx6AzT2DhPp Ghx8XILoHiOAJMv7ETTAgpjzTTbfCGT7qX0Tim9aJu4IcJ+1Zs0ckFBpqSwCnwpszb9vCUd04wDL w8AsGELCUXiKW/IIZ/QUV3wBibdxI6TRVVDNkWpa6Ks2TYd9p5Hm2ubo/t/vHwt+hh1w63FRf63j hNKWQogQNKKW/qgtFO939Vz3BZjtX/6dm/Tl89/B/y7hYE5MMJIl21MhWeGMX1OB8UYzsN9qoc+V 249XL1wdQhirsKLXZgsP/7t3oib3pXOSgRpTwn1ll4Z1EUut4Ssbt8bRV8IMj+Zx0A7kNzDMLkJh NoD1Aat9B2rwnx1o8kSZ2472n/tn+MJpWfpanVmm0Kz+nvHpFuDsIF8ZWBcKCnu5zoT1/Vqqt+5z P5n64u+hr7d/hm66QG3/t5bSvpR1CbvZKBdkUQVzzqSU8XmW0l+f+yTl93qTY4l44/5DPHp6gym1 9ZAwiK9xawPcOo4YomCaJsTxCOpo4/HoFw55ad+JNuA9UE9X9e/beFzgShhxiVOc3fsY7n7kz+L+ k9cRp7dxLJPK2pMgImQTF9XCkJ6zOZSmH1RqVsTMmIQRMSqQZzUjEtcIiG1eomY+2VfCmHSxzMIU VdDw9rJrfyRkAaKAfwMhIlnoV8FU546QYJvBS2FYNE63aSQYGpIOlDGDiIBY1encaJ+KQy8c+Ljj tAkZzJKFsGQCH0OwnQQX0xYf+7Pfgh/4mz8EGSOu001mgMSBGZV+LJVn2ROep+yq/6tRZvs+BGma cATBkVzjN3/x5/C5z/4DnNEF7hwzjo4j4jBhiAljtHj/0YF8ifozxGiOvZr0azOY/b9F+nHzoGFQ tjMOZJF+YKw/gMo0wtvqZXXfyZ/LGq33aKnuz0yifcdTxcCTzXER85vxZ9s8ylo5B3naVhfqk1ea 9B7O+zDltVWAn875FjiW270vRPUeBwAeGjuAg7OQAplU6CcSJARQUMd4EVZ8QYWMEzerdCIBUCEw A319jgsNMwB94Hpo3lclhDUd7utaOXPros6a2kLma2yCYMOaHfg4PMWEIwAnue2yUA85adG3ufp+ CbwfUjK+OZRQW+jzDE9h6TQv9fgc7s1fWyAus/uW2jnDdD4edt4uOQBnxrwRAtb7s/T7EoZs2rhS RS8o+Hcu6NCOa5kZIUbkreeA9uazyzJPMyFH+gKQTcp9fj/P/l/jRxdknBjo6xr8cNSDWoqNpAv9 2U7NKs8MkeTffcOsD4YiCc2BMVFJh55gDnd1g0VyBjMjbBAr5xnPqGp3aGvEpU9HDd6vYpPnz28G y6IHUSd0Rne09M20G+A8ZquCgZv9pOY+j6rRR1dYW1BLY+fj7Cq/coGCI2XQqau3Zvdb6bmU+u9y jQtyQA3s1KZ6wfdtVnZtZsubgWmDKOB6C3zxtTdwkwST2c0lEVNfMiKucXKkkUV4e4OJE8ajY1Ac ywYuIQuPnqE5v8M8fFXfq02oHPyWoXq2SfbF3mueUKn7222MnW0LAA/YsiDRPWw+/B9juP8lXL/6 azimG6SU1MaYTeCzdgQEdZA1U5cEZdkdUKgLsQN7P8wUSOjzI9i1HVlgoSqkJkBxsJCOCjrYjPM5 1VoSV3fqnEsZ3IQMeHwNF+HFnokAN3PyTZcBE1SUYU1uLuEBCcSFE2VdHRyp9qK0330NNPIPYWIB Q7UFW06YOOH49in+07/2Kdz74Mt4whd5E9e5t2ya15d9h9O7LV998N+yctnWN3ctYAyMMyS8/tu/ gV/4Bz8KnL+B26eCcQOEOBVGf1Rn32EExshq1hMox/sfRkIMmugrDsBmJIRBw36GoM6+EhLCQIhB NQKa36P2r6KGuOnNOOaARUmPJaa1vVDPPLLTara/imurkM30HOgzF+HYA3mlZIKwuC2yg4/S7roE D36A0l41cQrQfBpmjoe+XXpOTLnvWk8yTYk7+LoAFaISC2wAkCip1jJoPgW264egID8E0vUqgATX AlA2jcu+AvQu1sPaGjCQlM9nWl+trs3Trc7t2yeABcfjDc6mB3i6vYsLuQUKp1ATFkHRwJd1IIQm imDznK6pSwC5/rzkPL7r/tn3jsdydCa/omPI83Xd756RXa/Ke7HjqlJHMRPV53s1NgapXzNGSJoA LNZft2zo+0FhmTl3zBIQMxZjACGv+WWQXP/d+FpwwVuZ3K3a4t+7pQDyurTrVU2dE4r2mGr+vnqt RvX+ySgLQrGAYMW+GQf5szEfNyWo2n1CBawS9DprBmy+9hYJQ/1H/bmPkrNU1hjOlnUvf9fe1RHF jKdOvb3UnuY7myieFKVfhGsS01K0H2fQdRFy9/28z22/5tqFpWvn18+/X0xtTfPn1PW27BWVzUSW 71surTZg7fq63bsO031lqa95otum2pqHRTy93OKtdx5jmyQLouTqSdki8hXOBsZRBGji3EZ/14GC +zktjl3fvuW+r8/HNeGyXC+z77V/rIesiLrYYMA1HeP0ztfgzke+Aw/e/He4vrnC6OCYycC/HszZ 7p8VeIs+CoBnkQWc4eec5tKuZTWP8DoTK/L2w1znhYGQHMO/3kC8Dw7+gT4uOQjtb7WO0rP+2jMY Cu6FSv21cl0FBQ3PKaKRwjyNDLOCKaYBIrqNTnYtizpdJlZTKxYFAVsBrsH4pk9+M777L38PrmmL bVKgIxUg6iOkrc2RQ0q/V+6q570E/bv2paXf97apJ1054QgJl69/AZ/58f8J73zx3+CV04TNqGx+ iIxxGDBGgAJbJB8gBM4RfoZBrwtBP49DwMbyAoSBquhAYrH9RVlqcuJJAZ6Dz36cd51hFEJ2uqsB QN1nMQE5h+3kYpOv9v0GMFPtD6Nrg1NhE3X/ihALSa1gH3l91wCrmPwg/y0ihSF0IcA1DHaGKtOH vF4jyEJvR7CkXH9CMqfkyfZK358l/61jEnKgjCAB0WiESYcaNBiLSSr4SKBMO3q7lsa2fj/PXLyD +c8D6hDJp10AQTIGSQh8gTN6iNvxMR7ylfpDiD8HDdvfWxisP27/Gu7n2RoZtvbboc/Z14Z9uGtX KQL2shBd3rG195lbqG/NwXBfljBg/7u3B2gx6FrZtd+Xv11kKn06DHOVdaxryrRndTtZcrj8rDHp +YiV5xyC1etrh/oP3VDMrKSa6e6wu3R47JK8AJOUWQqglTJpdJ+wznXtrjOxAcjRBUoUgpWB5lZN m9uh6T3BFj1D/QMLgIEf+KkyMyIq7fLDgIo0vSuzXG0zV4+N2maVly2kh1AfTjXDR4vr6kxEkVwF aufvjDDN2Ic2nnHvWe4aioPcmvJBKpLygj+09AexdJO9mARSZlYS67g8fPwOHj2+sDkzANNWJXAR RBFsZIvToCFBIyEzlLUTj4R2ARWGowdHzqL4qVX4/uwwtWBjKqIMhZ701YQCIAs21PpO1IVOQxXq MGxlg+v4Eo7f/604fv9v4vxLT3Abj0F8g2yPag6DesADweJEB4kGtPXwUgLLWX/boNk3ZV0PXIFb b0PD9EjZ2F2gSKKgwAF9YSv9en2es6BsdpJEQEqSTRfYBk4s8hKJZuVVgpMARmkH1GxHBMXhV7y+ qBGzWIFVUnymwN9MKybTFkwM3EyMqzQh3rmF7/7+v4yz993DI7lUdwQu/dcmyGyWP++B+24O2XdT 9gH+2f7t633mA7RAQoCxEcZ4/Rj/4md/Al/817+CF84Ep0fIAH4YCIBmwR5y9B7CEANGA/eNSdAY QIMgDIIwhJzgK4wBCEmj/hjZ7lhYkw93tv4OkGw+lfUjNu/84snuqaL9uMAtymDrV6E68j0DN9v+ FfLaE/fTSe6HYn+LKPAX3WeEdb1a4u1s+5+z2GYNmgEcZy4n3zs1G3oRxoFkxEIIpD4BAkxwM6Va qwkDGbr/wOc6Ae7oW/4JkNTngknMJMhyLASAb1QLgCCQWK53Rld9/DVkb48XDgHuawAY1d+KW7wY Y+/MrJEa5Uy385J0bwghYJBrnA4PcSoPsJkucRMSkmW0VhNCIGcGdhzjcyDPu16bXoBrbaJbilsA tFmL+37nq3Mf+jPUb6iHpsI1e0qJBtcX06bZmcBUfPOAckQGjjlUvD43gSiYEZhkH1G2dvX5l3wR O65rokg55mvqL4Kcf/Z663b1Jmd5P6jGSjXwrQ+OF80HUJh+x1E5KiUjO9w7TizvWsesEXykFYLF 2hRICQgPw00Uiw8k1x3x7nSYu4o+hfy0VkBsrq/yeDQCQLlJugV1iF05lBWpBj8vWJHMaJMh4khh cc6tSVAikp229m0ieYKiV/H4RFgHvCmlpu264Bc2qUA5oQqwPD5LrHD9XT1x6t+KM5Vf095XS6CF /aKFDWDNGWXdzr2ZoAuCnU9oB2aHSrzt/QtStZSF69fFGLAV4MtvavjPEDaQLdtiMZWZJBxjwr3T DaLcZPDPACZOZu+NfADsZ5w6jQgTpPI7WbT7zPN8f//re/xvzqQcYUoB13QL48kH8OLXfxdee/QG Lh/+Pk7lGtGYfkjLzNefAWfgfX6qdkEHoqwDQgkXmvstMHDO+TkKYMzUoJo2UtXlwikn5EyGZSwl JybTQ0QPUwX/AR6OUz/bc6TUX0LNmvOwqMCc2MctqomQDJiSWJQfYGL9PCU1+9H5INkcSDYbfMf3 fjf+3F/6blzL1AD9mbDafd9/PrQs7QPPW/atua+EdiFH5nK+RoA4bXFCCX/0W7+Oz/3s/44zXOBk I9gcEQgpx+rfGIiPzvoHzgnAHPx7zH8VGgKGMWYtgUYDVhJKuYcCUoWKo+/SWeChLjmVfdUZ7sU1 KW426HOvaDxFCDJpeOKSndqiWRmwgQSN9mOmd8kcyjODzwAQTaAuAkBEzA7BLucXIKcRW5p5yZIj /JQ928JcspoCKJCIBsMoC3FkzJVHGAtBgbEKCWrW4OalGlmOwaxChGpXASXMCIFMCxIDwJNmMI+E kARhJFVddJF06nOs18zP3t/SXPZzWRZowIX53Z7nFVCFemoMmDDKI5zGxziNT3Etl0hyYrtCO8bO yGpksZ5CqttdzuYGf62crf1vi1ihu37t/po4OaTUz82Gq6IEI1dBSNb2jv5sX8JNS+/R99fV9poQ sAhmfc4sjF3d1jrMe7m34OqlPjmecjzcE5d+TRSAw/x9tuNS+ufX6Zln11QzuCTIrdvrhrvVHF7o 79KzSxsoCzHlPenfMxMgz8frg11s1OaiZt0Il4qVygCIhu5qk9iCgGVCCGqjXRj08nKAWgOgGome ixN7Tt1J5RdrEbDYrK/FH86Jtiwz40zF7Yuq+t4FJK6e39/Tl36s8vf5Y/FZAGpTmFalXWzyA9rH erx537SWBaNa0s3sUjOZ/LAozIYfhFp3XOzHUjkMdLuNYsiaG3euub6Z8Mab7+Bm0oO0bTcQOGEj E842RwASrm4us8QewlCNqTHR9nq13ctx/csz9EB1tlnyoqUszEq1kDMD4Bsp9ZtGOcDzchZ/U9H5 IrAIruk2Tl7+Vtz++Bt48q/fxNF0A5kSIhtzbhsUMyOiZIrU6G9lzJk5A5nctAxYfA6JRRqKSEnM ltmAiHkUlg1MBYMEQTDbZhe5BKU+eBSh6hlJakDvAosd4gIIkTkDo9h6+niL5KgmHiWrmDoVIUSY NB8AR9UEgJCENOoPCxITLtMW7//aj+Kv/Ff/GYYXT/Fke6FmAIgKB0J7APtYHgrgVw+Uld++EmXX c+Yg2f+2fcWZUyrfA+oT5SZUGh+FcRyB6ze+iJ//iR8BP3kbp8eCcUOQmLAZA4ZBMATBMKqD/hiB SIJhiJn5j5FKLgCL9a+hPUsG4GGEagcttCfIo3Jwnp/BhEtBxzR7mFZ/B/nkde2WxUH3868yTwPU 5rckyGOACSnBBACNVgUgM/Pu1C5J57kgYILo2nIHewHqDMtpAtj98kVbGQwTJSnngL6WmCN0EWmE PoEL/AHTJMj+RWwCNgkG2w8kEGJCJqVZjz4ECx1p1ksY7LichA2/275mTsFDIM1tENXnzMQFhEBI aQIFFcYRCHGo1k42qV9eZw7sl+Zqnpf1Pjv7vTvnKzCqe7ZFURIxbZcKq5twhROc44Se4Ck/xYQN brCB79teMpAKzjrPcYVeX5udzQVU10TUNvdL5FsvENQAsX5eAccHOOWhtDtn8HVLi+oK7WubbyST vI4DMv8lZlHh9RQrDSc6/X7b1g136fv0sz+3rnv1nnfBhdAc1jX3RvIziKhoFjrQXoP5WoAreJOa hvRCGXF5og6LCyI2DhVuaglV75e797umtYwnM8PzH5H4eK4ImaYxWfJXrMsaacUy6TpfuxhABf53 FyLKqpgSfmzeqBDcB38+iV2y3gUVa0auruPdMmp9HT1Y7ycRsC5fLzGF9XeeMXN5bIstah+nurRr dx9KW5f707ezlty9fpc89brDMyU/bxERROhhp4xThNCAR4/P8fr9d8DZUc7Yf2ZwSggpYRO2OEIC jLUiSWDm7PQj7i8Q5uO5ux/qsC3dfM3vs1uYS+O79J0muuNKdawlQdTpVhImOsF2+ABuf+zPI73z eTz6w8/hNl0i0FaTdJnaMIMBqZhzRdPVoQJkswLRsWAuQMPNXqapZlrMXIhcG6iMpdvdazEzAL/e 6wOZ+VEJR5qq+1xUYCjSL4ymbmgiRZBR5y1l8UX0TWTnXwRziHSGX4VEd/zlFBptQJKIK9mCbp/g e3/o+/E13/aNeDJdQoIog5wZWh2jHEqP9s2T5dKveaDdY/YLxl+ZMu/L8j5TX58Bhr873uKYgCFd 4HP/+P/E67//G7g7Cs6OA4RuzI5fEAfBZoyIgTGGgHG0RF+DOv/G6LH/1b4/DpqtVyP/UAb/amLi QKKYQjjT6Exd3fY1wqXvpzhpYvseJw2rDIvQw2I+NOwJ6iwMLSvznRN7uXkdgJRUkEgqn+h8rLRa /qVYgkIWASfR8LVuspOJFiphBgET4Kt35pG8BChJB0N2viQDERLMpAOEG1YDo0jkFlF2fgdz3jVw FNQZfmINNkChgCgkquoGksehFwAUMSU10dStWyO2qUbA2PeF8y9rmRbOzb5o30IWBHaW+pr6vLP9 JmBCEMZA57gVH+M8PcJ1uAXIyawdzWfC3oR5a3Ow1LO7gvqc7sOn9894npL7kgWy7vdYza+uXWv1 9Welr4u6PwAq7fX8Pid+1tq7NCZr19ffZ9yVO7r8XnphLLetv3bV+qPfh9a1XCICd1SMsWhcNErQ brzVt3ENn63VUQQA9wa3TaPJlKhVLDfe+2pxUT3hQ/KO1UiJVJLzg6QunjhlJhiYpKi2vyavEkPY GMQuys+SmUbf5jkLJjlTbP+b5wvI7bL7Z5mJF15E7ttC8ol5e+Y2+uVzbk1VbwGmuvEGZWWr5i8v DLeR94yR3F3rE7cFLaUed/ppVUrNmD0DsNEoHu4KYJI5EQIG3H/4BE8urzHBonmoa6eylDxBeIvN yNgMgkgJEgKYt8pGBT24SnFmQjMBL2X5Wyq+8blomv+Xtblm6u5qLOoDWt9PUYlnwdeZLQQkHnBJ ZwinH8Ltr/+LePjOfZy/9Xt6UDlzQlFZR3bW3gGMg21lDZlTGVcTHpbWsrfTgUod7YizGGTzDWU+ OMiBA38zHdC9xIQOggJrIt3wzfGB2ceCADYnS2Ngkj4YgkH7lE2exASeEglII/4Ey/ysTr9J1Exj YsbEwCSCNEZ8+6f+Ar7nr38/LrHFVibtpSdBorLeva/7jtalvaT/vLQeDjKr/GMpth84i+w4s9qX 2LWjAIgiIgGnlPDq7/wGfvXn/w+cyFOcnURQmHC08VCfjCGoX06MZEwxEGNAjMoqjxvKpkBx0OzA o2UB9jj/0IixGnUm2Py184ns3NGGtflSfF9cAwVubuNrhyQAzDmePrM79ZpZDGssf2aNisVmyuN7 4PbGyQtl+VNOzkcAIsCT2gxDQ9WCiyYxhBHbrSdLUu1rSjBNmM5HTrBoPi0IyqZNHlUIgEa80YAJ ojfkDMWTJSljsIXFJc3+Cm5Ce06ABtsThvuzgVkzEQdjhycNZKBhWO0cikAIA4bASFNSjYAkI3j8 mqLRELSg3/vVzsH84rI5Z9kv95dcD7lGPdq6L6QXEXAUJpziHZzFu3icXkKg237Kwn0LDsmQ3c+1 HkS2ycUKWAQwO1PnxCSQfboaIcJa6nhkpZ3FVr6Yu9ZZx71ex3W57eShXVu8MC/uQyq5HieR2vt0 XRW8klSrkvvVEpGOAyGcBcU+UtYqcbEgMBUfDmu1+xuYLoIsCmX2JRRvh94QzN/N/Vhzj0I/nuW9 FYF8fkbUf/fJ5+bEb239Un0HwH1KiKWY5FaEQs5DZIJXowGoB3EXiOtffvvC5h1rQeRhdQIw583W pk0sdzr5PQttXTt4d0qUgWYTZamUxWyf4/xlzequJN594yseqaGXxFeu93GL5ihTMwZL94oU5yQ9 fPpU3EAtdKxrD5bbNBOgnkEYIFJTnRACJgS8+dZDnF9NAB3DrLdzzFwiAckWIzGOB01+MrGGCmTm 4jQnxXazse9flNq91MChF84qeVaQN7ilumrhi6DgN4fF8/dUtcfvS0yQeISreA9nr3wL3veJd/DG 0wcYLr+MY2JQmhCSsvKBYpmLZtbg5gXCZE7CkkNwKvixZxoAL3/XJjq65iRvyAFpkvw9oKy7zh8F 7UJiTsgK1hOSzkmmAv4h5tDr7pWuFSNjRCu/AHUWsOg/GmLUAb8IzLFXTXuSAJeoAkAAACAASURB VFvXAGQhgMCI2IJxFQQf+9ZP4Af/27+J+MIZLqdLc2g0p+iFPe2QcggTtiQoH7LX/HGVXtCpAUvT ThGIaMz/7YM38Ys/85O4fPtVvHDMGCJjHARDFMTAGDLwZzP1MZOfQb9XB2AqTsFDsN/Vdn3cqIZJ M0JyWcN2JpT9v7R1FqFsBSSqCUjIAriSUqwCssBU8epkTtk2H0gTMnBVczWd59OkG4GwzdEEuJmb MLC1+mK0cL82tylE82sJgGygTvZRQypSABCRXICIun62gCa7Yy7ZZm39u5A2BALJVrvPk/pQgBGI 7W9G4AnEagsUEiOa1iBEB4k67jFGMwMpQIREsE2TamYMBLlNMUkEBwGCk0wMcARHTUQ1sWBA1LZH AaGEaJwRZdEDK5T517zXA4WAdi7U56/9I/WxCHKFE3oHt+JLGLYXCANDTR7LunieNbtLuFk7O+rr /P/6nF4WDJ6v6Ph0630Vf7Sg+pB9ct5WyYFlYIFMehv3ch8191H1uW7DLgJ2rShBPW9rC7xbbLSv 7l0Rx/pnN+/RzX4gjWDT4pD14iZluW5UJEjVN19LPt4zAaCAnf3hkpq7Zo4SDtitNn/xNtFiaZX+ x61dPZsU6XXUQKkJd7lg2nGo8FJPHjVpKO3uM8DWC1NELIzT/LUsAQlnkdpY/GsAep751wFYUxzg dkx9v3GUz7WDa1i8Tt9hvaAdUNYbVmEf/P5+Q3qWkgm8SvgQAq6ut3jj/jtITGYLV2+ECZoqinFE hLESRjjpb+AEEqXRhBTEu4BRa1hcEm73sXYTqiMl9dJ9nsb5mmxfk81jFKg4Q1Ns33UZpga8EBE4 RCRh3MgGcfgATj/6nXjx4Zt4+Pu/iHD5Bo7sSc7CEWK2gUTwrKNmy0zItq4A5WRYSA5mbHXl66lE MjEAriZB1jvyaz2mvykLDehDgkVHsHYZ869Rh2Dx9at3nc15kNOr5/dMynAyEyADVDOgIJA9FwAI iUN+9sQK/idWtnQrgisCbn/kffirf+u/wPu+7qM45+sc/SHAzAg8m/GKr9CzliUCZNc1X72i+RYE 837X+79A7fQpTTjia/z2r/4T/NH/+8s4GSYcb4BxYLXVp4TNEA3ow1h/teuPAzBEDfM5RIsEFAWj CwJBEOOAODijrCx5iNE8k6rDmBit2NIzZpLDewKoNNrqweCMvxi4t4A6kCRm308gY/0B1SYRArYT wxPxqeJI57M73osgz0sRDSwBikhpwDYBjKhaLUSkbQAdHWOSERMGbDHghgfcMOHicsLVJHh6eYPz 6wlX11tcXSdcbidcTSpQTNOUtfYBUc2tImEzBGzGgJMx4Phog5OjiLNNwPHIOD4iHA2Cs8iINCHS FiMmhOkaAxLClDBEAYy1n1jt/GVixKga5hg9UziAGJCSCnnCgggBMYGDniWDRFAQjBQwJa1jy3p9 gJqEQUhNKSwJGhmpVieNalaQ71O1sLAyu/Mcztc6QDNixw7xEAICX+OEHuNIHuAoXuNKbsAYEYKS KK2AUs7S9v/5OmrNff33ZaLsUBKi7N1ep59ndoa4w/esCm6+z+ZllWK4vaW0vWhL5sC8tNdxSdEY 6Pz0ulWYjHGs+s0583W9VdZnr+Mm76nWSbmtuwQSPferHpERVqEew7b02Dc4yVbhzYZYDW7V4piy aOPqtmk9RZOQoJlFXNPglglZCFg8Oso76UNV1/g0uDYAZfr31S0IAKUccnC1IHrh/n1gfFcDFkrP 8uySQvtJsSQtlszFyxNnV1mSCtek0FqCPqTutbb31who7ziUNqgAssRCzAFLa6ZU/9ZqFN5bEOPP fnpxg4dPnupGIgKCIPGEGBS00bRFYMZRJIxElWZA4237YmIyVZ79HwPAz4Dx3m3/lt5zLaGD2nlZ m2QxjnAlhHj0Qdz9xPdiujrHk3/zSwA9xghRXwhb5DnxkJnGlYgilcOts6VmY6/PiUhTxThwLTB6 nT5H9Hq1GybL2qvjSUTm6FuiCLlTc6QBmkFUtQPsGi4zB9TxGDDZWCdfjh6JyEMaigJRnsRs/EkB vwTVAjDASb+bILgG4YIS4t1TfN9//YP4lu/9DlxgwgTBxKlZM4V1efZ94E978YMbWN5n/BqZJpwG wdPXv4DP/fxPIV69jdPjhKMNIUQBBcHRGEFB2T0KjGjhPWM0W3/TCoybUR19IzLzPwzRrrW5SqKJ qQBk4FYfyiv2t/1acrCgTvMmgFoaTkkK0oNH74FqujKQT75XmhkqXKNmrZpsDXkUqiQARRCN2DIh yQkmCdgiItEGkwxgjLieIi5uBA/fvsbD8yu8+fAcjy5u8PbDSzx6eonH5zc4vxbcbIHLrfu4AFsT uLMDo8cTByFaLoRAouZXARgjcDQAxwNwsgHu3N7gzsmIl26f4MXbx3j5hVO8dOcMd4/v4PZRwBgn bDBhwDWC3CCkLUJKiBBMrKx/mtR/QAemmPCEEJHMdigEdQ6eoMIcEqlGwGRthoI6Zo34pon8Uhut pD7/yguevetdZXZW5XuqM03E5tcWUZ7gNJzjGE9xQdeYJJog8u5M9vq2LmODdSA7xwG+X81NcpaY 7eVG1dRq+6x+z+sFk35LXGuvt20X0BOZt8PNfHp86cSQiiCqAVxj5+sxC0AWGhlA3LXPybL5YAgh m9XMtQNzXwf7tHOcAPP/q879nLQMZbqvTb18bkmYJVPbhc29n0UAMEaZsxyzXGo5twHwWQXhNuZu FjRrMoiUTQFq72vM/s729fZcZYOLLEnYrXLp7cSWFqCb3GQm166jaIdN5wuhljaU25pt06rSq6jq Z5drfYLNbdTq9q4xA/3EL38vz5SlTaaRcPOELzaRS2OWTZT8/VUS6KFAaU0AIWOHiSIePX6Ii8tt 7psf3swJQcwPQBICCaIwOGl+gAgBTxrbWyPBVAIZ9DZqtFstk1Ns5Lx9vUam64sNj8+F2XjNGGUP L9mtMwnKtgWzhWeN3CG0wQWf4dbp1+PeN30K108f4+mrv4nb4RwDb1UTZSxlnbWwbp/HFxYRkJBF wFBQo6y83sMWSUTE160oM2PrXAztu9MvswBBI+5kDYKgOEZKQKBgkVJMa2DgnxlFM+FqdqmYVTPj cdvbBLXzF3ZzIAX9UzLwb8A/sYb/3DJwJQnXJwHf9zd+AP/JD34KFyHhRrY5CdISePSDvmHOqs/7 fIz+tJU5IRChb6Y4kXrCxAGMzXSJX/sX/xhv/fvfw70N4+iYEEaN2jNGIAbBEByEBsSo4SPdDyBm 0x8F/mGMIAv96SZBIA08r6yaERyW2Ttn8o4FKM4AQkNomGbXmMsszCZAJrb9QJ1WhQk8GePPJgyD SsI908K66c12mxDiEdIkZqAYIRbA4CbpvxTPcJFGPLmOuH+e8OqDc7z+4DFee+sJ3nh4gfsPH+Pp NeNmqwnqtuLrIgJhAMWoAgUCMJgmTZE/ALROiB6+ky23AZvt/c0EAoM4gd5kBFwhyiVGAo6PCGcb wvvvneH9L5zhQ6+c4UMvHOMjL7+Ae0cJt8cbjHSFI1whsCAkQSQBe7ZSCBKrtobMVySY/TSzILA6 cUvUPTKIOiKTCChEBIb6XgwqILBY1D9RDa8nPvNAEH4+Owp4luXobKi/Q2fK1ciQEIkxhoRRLnEa znHOT7ClDZKMC7X1OofdrFI5/2MzP5fO5bW2z8uC1s4xk8/3GR4wE2ACFrUQ7BHqip2o7wueK0Kz svfRqYr5aLut9uNU8qzUz60DThARECYwEjw2YGbG/TlSIkj22Gg2Jo53ZD4aeR115NuqQJNzE3QE aYUDl+8t+1HdJn9e3bB9pPpSHwPY1COK0cSDA5iJK7o8KWIC9uAdzxWTsewzJ+Dl0kidmE/inmHe Ncln93J5yUXg0HpCt3D8WWv19QM3e1YoTKde66qr9ZewlgQMKMJHSUPd3rtWdDEAWJBm6wmWpeMc XcKdWHYLE4ey97MJiv5dS9OOpft21bnUBheuWAhvP3hs8f+PcH2zteuSOtlMfkQKjmJAsLB3IbhA kiBVFCB/ZrY7rNrSMysO/LNA2M1fQBbfod9Tb8D+XXu919WyG2yqUZGyF6g5fUDCMS7CgNN7/xE+ 8G3fh9dZ8OgLv4XbdIlBGCwJwep0czMAlROimF2zJypyh9pkycDIgJYDfwdNZhZjMc3L5oXC/nu4 VDcJsshAamCvkZ2ywACdp8r2eYQiMoHDgD37GGjbmc2hVyI4iUUFipbhlyyiUTC7/4AkARMSrmPA dhPxF3/oU/gr/81/Dro14poV/NdzsGcbSzK4d8f8P4tA/MdZloSe9rM78dke5gKCJBwT4/4f/i7+ 1T/7GWzSBU5PAoZhQgiCcTOAaKumFBFm22+x/WMJ8+kRf0JkjfQTuQgF0Vg/cyYF5vHivZ3M+0wp q7VtaxEJYGGNpMUwnxZdM2mCftbEEuBU/Gcc1HAyIR8a158pQnjAVgImGXFt/7bY4OI64OEl8MW3 zvHa/Qv8wWv38epbF3jracLja+BGNkhhAw53QCGC44AwmClfCOqXkJn1kMN+NvOKVKMmpCZ/8CST FWexBYNGvS+SB1MwYosnPEmC++dbfPHJNYYvvIVjeg2nA/CRFwgfevEEX/fhu/j4B27jfffu4IXT e9jQFoNsMXICyVY1P5g0QzMpm8lBMAwDIGy+V/bcYKZgouFC1UTTxl1E6yLN/kxBxx0pKeCs3jMt M4s75/wSSee/+TwTMx+NdIVb8Sme8BNc4Q5u6BR10s1DNA+72lK3Ya2+NRzln1PaYhhKCOh8jsgh Nui1OXD3TCc3oU7bDUmIVqDQZ4Z5HSukpZvP7GpfPmsrcN/U52O2p4c9yej+eoU+Ltf1BOYiwD40 IqZW2kxPF3jq9123382L/PcmzKl/n8+t5b3OBePiDCyL1/ffDxTE/KqMuUfcCf4lL0LdbMgBqNnM E5Aj+ujftillxmIAqgFPBqhCd+AqdqkGSgq40o2vG4A9i3Lt4GPluhChhxUzg6VEg+gBtYabXpcy y9/KZOdwlPZ9yguUzfHYJ7QBwsqm36Fc37fGS9zUvu6ysM4g1FJoudZt61yi7Z81Bwi96mtZWFhu Q1lsvXqPhUAW+vEqMR48eoopEW5ciHIAwAzwZOnaEzZBmUmNMhIAuUGatthurzX0HNjs2p2xSghi cc1TyvO5HxsA5qw6oTCjuj5UgjathG2A7HH/fTxQz4W6bmeydA5bTB3nN+ydDvZX0FB6CNhyxDnd xen7vh2vfPsR3mDC01d/G7fkHDFMFu3D61cNg1iELPbDS6V7C2uoNvredxHJtssAzEeAcyQSoeCR yoqwU23UgKkjQ8hjUxghd+S1w4t9LhbTIq6EFa1Ln5uM9WfWKc4I4KTaAM36S9gmUfAPwrUwLiC4 2hC+86/+JfzA3/ovQfeOcTndGFCC2oa707+xleiYcPHW9GtByudeeOzLuwUL72Up8bu776sDEvC9 rczllDTG/kYEYXuO//uf/Qyevv6HePEkYBg1Vr+G6gSGGICgbPAwBtUIQG38hzEgxGRZgOv4/2ry I7ooQUEjAKHT0ETTzGTb5gXNnO4PpumzDK4iCniFATBpqM3JzczUFoUTzHQOjvABVmdyT+LFSZ3M 4zhgSoBgUO0TDbjmDa7DbTy8GfDl84B/+9oj/MEXHuCP3niML731BOc3UNOfcASmATg6AkNtn8ic +DXcYgBZpDtB0PPPzkGJIZ+iZd80R2NiZW4Xs9KaLXIwJjAEJLExj7pPJI6I4RhTusEEwePtFd58 6wa/8foFjv/tBe4ev46PvHSGr/3Q/8fdmzXbdhxnYl9m1dpnuAPuBS4AAgQJDuIAjWQ3JbXoDlEt qSXbarXcHf3Q7rAj/L/85IeWIxxtOcKyJctiiGoREpsTCIIkhIkAiUtcDBd3OvPea1WlHzKzqtba a+9zwHY/UCsCuGfvvYaqWlVZmV9mfnkVzzz1CD72+FXc2M/Yo2MEOUEnAklJ74mMuAjGiqReHzc+ 0pAhHSuTUNDwrhgs3CPYu2OdpUTQCs/MBm6Yx9/ftb7wxhDI9n/zTLdzu9UrbPw0+qVeHwhAUCGz gyV2cBe79BCQHwbzVZMRgwE6HlLZjvV5CmJlktH9exKyc+6helS9Rywy1kFDgZR1sn5f398b9iug 8VDXJAARseRzA2dcgTZ5z4LqbcZgl7vs1nmmdVWokmTw+B04rz/sd7GQzBL6I15TxvcF98xb+JkY ha61h9i8tpvovqc6otWRUtrfdnx8vpg+PNGL2mRbAEV/DSCrzI0yR7xejsqqbP3wkL12jbbtwmjO em+mBohHynhIUjYQy/dQ9orXQMl3E8qNEq3Pj2N0c/sxVe5yo0RsUvw8kRBoMpInFtB5z6wWmtTK rMUy2t7+TRb3XL9G4USyHa2f0m35ddV6m1i/9mIxY2Wqx2Xc5rk2tgrF1CjZdnwQJHJuPmw2Ks5X +jfdZyqc/d8EQj8kvHv7HpI4a42ARZP+yvTNSgkag4ApmWBLEEnolyvkIZmgsArPHK02nHoIiCym b01Y+mIZv//yb9P+UTK6n+vvWcaK8voY+f0UdXajudynqX0AaGIwaB8nFLD/GOPJzw14hyLu/eh5 7FPGLgskiXk82JBLH/cAyTVeMCdYgbAMp+Rsk8qUkUfRUuRacEvNfFOORfn50Sj55Rp9qhnBQM1B cOVfv1PFXjBYyE+7AXkoUDbPZgKQE0Oy8qunnJEN8c9C6AVYATjGgLOdiC/+4e/id//tH2H38Ydw IktkoFAmtgb5GkrVvqGJgr8JJZrS0bXX/7RegE3o37Rd266/qFxXI9Ha2mxiIOPiJ8EeEn7y/e/i +b/9S+yFHl2niC1TQgyMyBnEWtWXo4biKZWnewE0JKgzGtDYkbLRBJiiKLYmN6Bwtmd4SNLc0SbR lcusDoQkIA1JvQCZy9yS5AqIecJKGBqZKSQYMmvcPXdYpQ5nPWMlO+h5H6dDh3fv93jtJ3fwyq0D fP/NO/jJ3QEnKaCnHaRwHbSzo/tkMASZG/Zt1urKLFxpMicACQAEHhs8ntaoysf4XbabSYs4lqJn UAOJWHMXxBRSCrvoUwbiJWQB+jRgKQkPTk7x9skKL7x5C1/dvYWP3oh45iPX8QufuIEnH7mOh/dV aeZ0AqYBw1lSI09gybNWM4AJMojRPZroyFq9WCRDmMFB3wUFNV0IZGxdVZGbzgtsmOfbPEME8w6z yUHAcsYGkJxgl+7jcneEuDoDYaiGWnknm/fETcDArNeh2QdbGTOVM9P1711b24O3Lvm8NlS1rfNX zIU86vhN+tz83eojJBhRXc/JWAcWiSwfZGZMWtBVv9d/2eRB3NDvqc4x1/fxfbdHKdTP6+cEGKDt z515n5uOGkqtOQDTtreGZov4z80TQmj0kCbczLzy7VElkRcLcsUnVQEz6rjFHGsjGtEjrDZUsEaU gh8EEUYwQueG/M/uP3EhuQU3UUQZWtU0iQDBWACacAwPhWkTIXzg50o51/vWo0zeC+ybc0r3eAL5 C/EfvYxSNRTGL80QGptbIjLypPj9yzj5xPK5SNlW8TwS4ZZsnsSkV6vbwpoanuUpgumlqn0BftBj dsK6xZuzhoVk4OjwDAcnJybcm7YKIDmrci9K9amhQOoS5WCW+LBCPywRTdlkiqZQOyKu6UN+jPNI lKbS+YjbzVQ9FXlyXRi1UxqKVUvRnl3IZVo4ciUyMTp9zKuHaMgCoV0c4SouPf45fOhXL+MmMR78 6LvI/YEWRGMg5VTDcLJtol4vQLc59W5AjLazhuFkgdH+cRH+Wew8mAErzqbkKBJULmS/pwvoYPVA tKdpEEOEKv7hIQ+qkDUGSBOqVAyBDEtADjUpMmX0osWNDlOP1aUFfuMPfh+/99//K4RHLuMUq+LK dhQlmwfgosfcBlAMwMkxp7hvM6DXuazrzBg/v8Z0zhmm02dWGej85dtjlGsb3ZhjiBenyT3o9A6+ +ZX/G/nkfezFAYtoYT2dhXLAk3hN6WdCiEAXCZFJE1Kjh/8AQEaIwSr/ApG177kxhLU5Bs7IoH3L Y+XIQywDuTHuCJuGtQ05W5EtAIk0hCwJIFHnfE5AUlYpZgaLJtwS6RwDd0gEZFpgKR0GvoSDsIe7 pwu8+vYpvvXyW3jpx7dx8/YpzqTDQDtAdx3oOhB3CKzVgIlUAVYGEq784gA4MJAJwfrKDVBE5pki jjXmmVCSmjFSIi0XzEEpkYL+kQCU2eK4yRBcU3xJaoXTQKCsioKy8WSAIwZJGNIuTlYr3Lp5hm// +DYe/d4dfPzxK/jHn3kCv/CRa3jiyhVcCkeI6Qg09FaaIQORsEwJIVgxMWST2RkSg3pkBcasl9Ww BJCgbEcxBs0HYSkJux6cK6Z8coP8zx4lh8B8nB4uZcCD6iUqbwKtEOkudugOIswAkACiqNTGANAY YJtAhPHanG9ZnevmCd7IQuahtr43tDqNhmzPAXIF4R/JmRomun6+7mGtfiNMsGRHOEDmVLSu/NNo Xk36qCgYtMi8jMK3A0mZk5qbr++FxT3tBlC0emKjfxcdaYM8nDtcbpSxaw5WDK88L9k+GWRibG00 OLwdmn+jGFlreFU5O2qT3VKHTxN6laLY+98sfgCZp3EopotIE5JNueRAjp7VPD9ut8rWDzcCpvct rkm0yne7YFyY2d8TV0o5J4vG/E2ev27JbVKO193u0414mxdgE8q36ZgqyUBV7kdW7Jbz2zYCrqLJ 6Pxtz5uOzwc9WmMkhPn34s+u/36w582NtyM6jiiICMJigXsH7+PB4QkyoipJadCksXJtNbIikwl1 LaMdGFidnaBfLrHPMvGsEMDSyo/191Rtt9m+b/rs3wnmFbRt70ev87Au31jGz3FhNQiQsA8KC+xd B57+9T/Eu5cewr2//wZWx/ewywNYScrBsKJDogJcTLh6gp7zL7vQSVIriQoBkjwvwBXQaijAEH4h lNyZnNzFrvcTi9QbUSZmd9M7yjq+rxpo+nefsnH9E1KyfAMEDACyBC0Qx4zVkHGEjPjoNfxX/+Kf 4zf/5X8Dur6P47yEKjACT1IuyCpQ3M0XOdYV680y5SJzZdP39bvp+t++wW0COC56tP1qx4RJsBcy fvz9b+G15/8OuzTg8l5ECEnjuWEMP5Ethp8QSCv5hoLuZ8QQwUHzC0JQnn9PBAb8vUgTYuqATiUn mOtn2cyN9QoigLFjpZQgQkh9hgwa15/N2yRZNCQoGyWoof6DmPcJjEEYQ97BSeqwpCs4wyXcvH2G V27ew7deegcv3nyAd08IS7oE6a4DYWHGcFSWERtLgZSqtUQEkDLLcBerXAgoRgJAjYyypEio8SCG ppMoQt6isWLKLRGBkn4GC9iN/6CV1ElgirSpnWkAFeBOQFFBPjGKYoSo7Y17yEgY0oBVyjg5PsHb r57ghddfwsduEL7w6cfxy598BB979Ab2uUfXnyJgidCvsOgiYGGPAVySuQWmYHKABM8XIghnMCKQ B0AE3LExt6hsa+VjqwCi/bs9/PvJ73XeWzKw1VDocIgFDrEXTnCaz7Ay+tYpUt+Gzvy0Rwv4tH3a JEf0NzZ5Pg9CbJYF8wZG3Z8U6CFgpDxWsGIcq960bjQX234UkNEJJSbneUaCfm9rJo2fXe7p+mPT PQXmpIZ1zYzDdEzLO5zIldY4Ge0PUvu0afzUoPd5OH9Oe/lUt3Nk3x84NWxaAyTntMaIOeqn1cvy zwEGxk0MzJhN2LkCVpBPCzJqEZfZjpeSuBqT6O6eXMYhwC3WdVSrPWr8Ysuu4+dVRiBFIAvRiCSz fMaDOrWGNy2q0g8ZK1vBQxZsYpcElsnlrSIwN05l0Uo9f1bB9A2esFaJefSCm0nStiVvQBjK71v4 zacG1aY+6XdbHzM65hbg2jnWhwACOCIL4b3376EfMoQCkhWrUfRPw2XINgIiASNpOMFAiMQIBAxD j+HsVBWBLJDA8AB2MlM7mxGRMorbvW13PeZjKitQ23oIUBTLOnaelDMdf1u8UIW7Pt8FjuVmTMaf SUMaljlC+Bry1c/gsc9fQ9i7gds/+FukezexT6eIEOQ8KL+FTmUQQlOkCBgkg8CWI1HRkAwBjE50 MOOETEEqiL3U5GEARh8KE/DqrdDCY4bgIxeufhCKsaB7H8EDvGqhL1Wgkiibk/rIlOd/aTHcqwz0 knAMweLDj+Of/tF/iy/8/peAKztYUg+/Kudshkkono+xt6UecxuMf6bm9/adzM2Pn/4Yr+Pxxjz/ 7G1yra07sunQzdz/tn8NU90hwerB+/jO3/wFwsld7C0suTcwOivyxUGTeEMgMGV0IVjxL/0uxmAJ +h4OBHRsFX9BigqXAR8nMRbvXKl7Yhult9MUfxY2T5cq9ZIycoIh/hp6ohPPbIQk0MT1Dlnc56cK imYORQzYwwlfxSGu4427Ad/4+1t49oU38NadJQ77iNRdR97pgLCjexA0gVls3rfVRImoKBfCXBWN yT6F4gWo3vUCKIWaC+XXp5TK/UsYF2VF8tt5U7yhhCxJx9MVBI5Ayggk6vmnbPevyq6SCCQQRZAw OBAyRwyyj3vDKe6/e4K/f+cdPPW99/D5Tz+JX/3UDXzmyUdxhQ7QpQfglEApaa6D5WKEYPmA1tUk AFFGEK1OTFkQu2hmTQaSgoMhRIiY94TbhNYMR/rLflNkuyH+k2XiuQKukhIpxLBgYAfH2KMjLHCC RLsYKBd1X0oYl+Zt+DOrvN+uN9V1yaN9YjQX1q4ReDy5nrOeB8OKuDRybBxr7/efiouRnmXrq3qS YM+Uch1NnqPfq3Upop4a3wPnwD8Sz3fz37juPqI5dlUW1ndcPV+hnita3boNES7PKvu0N7SON1vt CdXJbJ40gn8rCF7Nc5tWVb/RnJb1ek5AC6ihtEPfh6/WNDIEik5mf4uZpjvckgAAIABJREFUZes6 2kR3m3i4PfelGmD63FhuMtvVLcjt5DvvmD94M0LdWq3t4rXzbDDnNE1tq1WILPLTBppMwaCxAnYe Artp8yzX8ebNddq3gkZNlIKLoPOb0ES/f7HA7fs5dqKL3Hvut/YZbdun54zvdf7YTts+1y//d7Aw pCET7tw71CquMn52mcBIECRkGRAjI+cBTCY0csLq7Aynxw8QMIC5Q59zoUVr++HzqUUCxujO+Udp n7e18V5NkZ1N128bxynVodjmKELoQUihQ95f4JFf/C1cuvYobn//b/DgRy9iZ1hihxKYPczHmEwA AFal1+g3NUGyIj5etCsTkHqb0+TopCVjWtGenMWEavDdFIURKKtSkkq1R8YACzkiDXuA6KaisY9i 711zA5Kw0jM6648E9AIMRFiJ4BSCg5Tw5M9/Bl/6N/8dfu5XfwXpUsApelXkhh6BGR4T6e9jbU5d 8HDE8rxz2nv//2EUTNfMpjkza6ieI/fKBuJJ0OX7DEbCPhJ++Mr38PoL38A+L9FFARgg1nlZqvma 8r9o6DzJEH79L6PronkLNNmXSH8jL8LGFdlda+ek/SP5mqmEnkEyUp+ApEnrGp1EAGLNfcm5VMbW yLYIZkKfCAMYA/Zwli/jlB7CG3cy/uNzL+MbL93Bq++e4YyvIHePA3sdJETdWEMsbYkxqgLl42p7 I1sMv8DDFkKtIm/GuYNppqpX2UlA9OTOCL2nP69b1Gd7/pluxs34pVrICKZqZfF4OjUogoIrIQCC ZPTBgz1nAGdD8FPWMF9L+B9kAe72kfNVnAxLvH5whLe+/hN86/s/wRc+dR1f/OUn8XMf+hAu4wQY DrEngjT0WHQWutW5BzBr/Lcr+xTAnJEGQuaEIAwJmlSZSQqbm7NB+Xxam/dz+SI2Pu0a0FOz6rAk IKywYC0MtotDrHAFA/Ym+/okL6PZFy8qV87bO/1Z43PHelO7Z21jJtT5VKMTtsmmqZxp0f6562pb 8+TzOc+wcxgV5J3qGG6w+L20OrWfO1aY1/SomWeqgj5t97zOs7GvG7pFNK5o3bZnvI+PdapWgW+P Uhdj5jmb2rZNn213MJGmDsAI2SICUAd+9kbGMEJGE+KVfmGFU7x+S8lALpaYx6IDY+U/r7cDxREB oQBQQ4UkJqiouqPGVXHd4+Cxf1Z+3BhK/CWFMEZakk1gjxsultgF9/HpYh0vWsAVkLmN+7z7antq Mognnej42LM2MDhNJ97cRBkj12PltLa5MiBcRMGZMyjaa2sRGUXOzpY9bt+5Cw3XocLXDE9aHbcY vQxwgag5uQlpWGF5cgxkTckh7tQwlBpTV1eUxeA3LACbDiJDqlvBIvV7RdltrOz7ipC0iIZdOOmL SEVsSswffA3qmsxmrEjOFjsZtNhQ9wR2nr6Mx64+DnnoP+HglefR37+FfazQkSBTRsoCEU24I9hm a3URvBJjzhlW7BkpAxSCUfl5QnMVWCIwzn9R+kS/BwnEkoeT9Vs8BIlIFTOokq/KvhoA6hXQMJ8k hCGJKf6CnAOGlDAA6DPjMAn6vV0881tfxG/+yz/AE5/9JJYhIUGLwCmjVCzDrIhVi57M06ptWuf+ fjcZa3PfzyWrnrcxzhmp2zbfqcE6Xd+1nsWkn0BBrkQEgUw+srd9wA5WyMe38dxX/hydHGOnS4gd K30nWxIwW3EvUi5/D+sJDMTg/P4aEkRsVX8h0Eq/QacMkRoVtu+Aq2JQ3gcHfZUTzygLW7K6Vo2W wXJQMiH3ot6AklNil4ui2Eo9GbTAnET06LDiSzjM1/Hjo1185bmbePaFm3jj9ilW4TJk8SFIt0CW oPHxFuqTIQgcFaGHUQ2rWwMMRqYM4Vhi91VJUENBTGYQhcIkxobs+tgwUEOjHJCyvansY2awk7Tj kyzURoNKq5akTH8e959z1ro3ktRTN2g7615sIQSph+c4saH3nAWQBM5KW5rjAqdpH28uT/HWd+7h 7165hy/+0pP44jOP41OPPgGWQ8R0CEZCiBH9KiFGY2eKsLwBy+cIAAIQYjC6YjWAQjIKYQsZ45Ik DH0vW5R+GxiUnADTY5A1PDn7GEAQ6Qy7dA8LuQOiR+DCRPdh1zGm64tHhkhJvF4LeZ567PPs9+uA wnrOkH632fAYy4cxeFer6ebCqCPSeBBMjjgrWzHWycdhHvSYBw3Xjxq2k8vcJdR9xWW139vvx3Zu oYlPamRrXQeAUT0MRFTpwCkb6DBRxk133OQvbVIgNvZJ9041sspcm+wH7ukkwmQ+5PIcbp4x2Lp1 Aos6DjVXoh2HktvibrVCDzmeN/7kjZWA60YyCYFoOjTdrOYMBj/Pz3SX6EUURwDFsND/6ujoBkGF FajdbGc3diozurhM5yyxet52ZfC8tp+HuE/b1irD55kDLvC9i2JK4TanwBzyvu2c9vPUit3Wl2k7 2+vn54vdgwkUGAdHJzg8PlPWjZQUqSsjYkm8OYMbxUdZlDKyDNjpIh7kJc6ODtTlHLvyPG6FJM20 ATVZZ02RKoJicz/n/q5v82Kx5tsOZ+Kp70OVooQOx+jQhw6713fw1BcextEjT+G9H3wD92++jHB2 gL1AIIVAS8Kx+H9FGCmVpo6lr6G6WbYFxcTDdkT7pmvQamNIrUegm0kAiabZKeuK5iZorLWhO9mT nBl9EoCieQ803r8HsCTgJAPHSHjo4x/BL3/pN/H53/ln2HvsYZzSgGSbeRvRNVpXIqPCSWKGzQd7 B/MGQLvxza2vTWtr2/GfgyJOEaxtMgmo8a4eRsI5Yz8Kbr3yA9x88TnsYoX9RUSIAtBQFX/LgQ9B QyG0Amwu4T8huoeArRIwg1gTQrVibDQgx9YHz8upMrbt+rRK0jkBlDJSn422tNNq0WZYehI5QT1n Ws06g3gHiQJ6BJzlfZzFa3jrnuDZF27ir7/7Ll55e4mTcBVp9xFkVsTfjf0QQpFpgRjMUek1YzAl wP5FQCCyhFpX2KnOQzMCOHQIyFBaakc5cwERyMN8IJpY3MxDxdKM8k8/QETrGKgBOAASNPzHwyRy pSLkLMaLajSk7OQBpiSnwYCHziIvhlJgUKtydNB8A5OR3Q5SdwVpuIK3Vkf402/cwgsv3cJvf+4p /NpnH8eTV/ewL2cIwzEYPYCMLnRIw1DYyWKUoqwCAglUflNZrvUCEOy7BNUmUyr5FpMF4ZOq/O3r v8oIM8BEA5eTnGEh93ApHOF+6kt0Q8655neUvEYHxyrd59zR6ir+t86jOq+ne/W2+9XzPXSb1tfJ 5L5TQ4Qkj4DXbTJsDpSYnqOjsa47jO7fbKTO0T/tq183F1UxbS+7nrphf55T1j+oTtM+PzQsXaM9 odEXps+fnnseGNRe7/JmsCKn5+1bZV7x+D1MxzeyW5AbNqiCbMo4WZQ5moLj5OBqlXuxkWyWYl2I wf5vXNylHfOWcLGC3OpmMWvTG5ibhVfbnEyrcaSl2tVpNDkKC4MPDE0mJtfEkvM24nZgz9to/fzp EdqQmmZBtMLCDSxFxO1e4lz2iupMY/9K0kd5b+075MaVtr3dtS3rFQDP69+mc+p9siJSkXBweILD kyXAe5Dk6D9DZNDniyBSNeBS1kS3QKTeJgxASjg9PkROSVmhWIBc2QZyEwtaF6W5EsUN3fp7axig /FRzVrR/XM7F6PfpMf298uWPBH/Zr5q5RWYENEn42hu9V587CF3BsBux+6nr+PCNT+L2y9/Gey99 C8u7b2EXx9hhgSPhWUTj+bNak65U+fN1HNTdKoRSoM7b0sqgZEJZIxBa65R1X5Y611JRzDQmPyfl BRFYcS8RpJSREZTpRwgnQ8KxAHL9On7pn/waPv/PfguP/9wnkDrGkgYt8GVJZtmUIVibSu0Npkbw bzfIyvxKaeNmt8kYaO8xVcQvcmzbkFqD9CJH64EqIJEpQS7vlBKSTdYHDMMKewRgeYbvPvtlyOkd 7O8FcFiBkBBYOf41BwfoorJWaKVfTwgWdDGAIYiBEBnogjLVMJs8V2oaM/B9XVSPLBEVxN/bX4rm mFcpZUFKAHoYvacoop+oVo0eBKw7D4g1jAzcIXOHAQuchIdwJ93AV59/B//P372Gl24d4wyXMOxe Qw7K3c+kLDwUGJEtt8U8FR73H4iUAgkqW1Xpt+QH6LUCwJnDCACboi+sRoTXFSEAIdYkYbGYheAI YjNPpjICMM+8xWMHxMLdzrbPeaw/CSrDjnv1g9KlQhK8tgdyruhwIpCoAaFoeQasqq/K6Kx5V7QD 4ojl0OHVw2Pc/Ouf4OuvvI/f/bVP4R8/fQ0PLxbY4wOgPwVDY/vToGw8CQQmTeLOGYiWd1BAEGZl I/TxRDbu8wSM6Lyna9dXge379RM0TBHI2RS83GtFYDpAzCu4+RSCMkStr+lx+Is/zytpVzTbjZtW EfTPm/fi8fOmgKcbM2mUvFr0p6Jzjb2JVRbmonP5uiOg8QToj16HIzd62sh4sbywTJin5RU1Dlq9 S5/nc9gfWHNGVaWzv1sdrnjHUXIci54yUbA3jic54xFZ//W8hOm71fOjefbK9SUrxJ5v1bBTAzhZ C4uBOW1Tq0+xTN/r+PlVb2ry+Kjm4pXrjFyhUVsm9zQWIFVgAMH6AI0ejPXGaAfHCGkSR9km4SS5 NmXckXrPVsFtrSV93kTgoS6eWWuueQFzm3irWI8GrjkKurJpTCYv0+859XDM93N+gm3b/EcWcGtJ ArNcu0Rkbv06Nu1Yjekvx8+Ys06roDnfKJo75hSidlEwR9x/cIhln8EdW3iKsjNATGHIxkwhY8pS SKUSTMMZDu/fQ14uQYt9my/tBrlBIcueJV/nSpv4tOnYhiTX8dx0tSeRrW/mfn357O931GRHZCIy GAMJUu4wLC5jcWMfT1y5getPfQq3//7ruPv6izg+eB8xnWInBECSoYnZwgc0fMNZfSRXw1iglVPZ qo+CgCSKyqEIYmNyyS7QfB17uLHTjAKQgJRr8TGP8U+SMUCLMK0ysMzA0TAA+/v48DOfxT/67d/C 05/7FdCVSzhlM9xYk5RTSiME2cevVeTn1t6mzWEONZm+1+nfc58/6NE+e9P6/M95hq4f/btdQ1l0 kwoM7AXBe6+/gtd/8Bx2SXNsAAvzwYAQAjgIYhdABCvoxRoaxFB2LtJ4/xBhScAaa67nmVJBngPS 1IlBsw4m/XTPklJ7GstPEiABaVBlMA1i+7EaCcwBkGA00owBEZn3cUb7WPJDeO6H9/Fn/+nr+PpL d3E/XcGqewLCC0iIGnpqbn0mU/Yt5kQ3WlXyNemPNaHW5a3l6lBwim0LD2A1VNkoQjlkCAczJPwl WUVkMs9MkyzqCkNNnK4GQXZlJJNVt1fKTbXJa0Kv1ho0wg0ZNHSXssb2ZwYFAXIAZSumaLTgkgbz sCRw1HAlsQUurEW7ch4QQUgDaegTd5C4j6P+FN995wFu/tn38L2PX8Hv/5Ofw8dvXMfluAuRU3B/ hhDY3qtSybLtOcmSQokFlFyukIXBag2KOofOqYa7tqeN5a57aSIyIo6wwDEiThFkBUFnQMbFPbqz eoUbejO6ztz1F0Gm5/oEoCjErcI81y6/lwME0+e3+kWVQ/PXn6cfTOPkN+1/036NYtgnIFR7b0Id l/NASr/PFJ2fyv8p+LJp33cAcXr+Jl1zZPhM7jPVMed0y21jPXcPn7siQKwx8pMLy18WU4RaWQww 9BCYvERAkDS20yZdFiA0dEVisZ5FcDTPEfFYpvqcMniCItzEFD6gKvJT5dmVXZn5faoon3fMWZDb FOd5JXpesXeB30ZotVbu+stVi3P6fZkY2ZEyZz6hMrm13+rxyfDKufU5F4lZFlkXXnPGwtyxbhQ1 /WBCP2S8f/dA2Tvcjc0WIiKq+Adm5EH7mCA46wet2BkYIEFkIEjGycF95P4UyNdKNogrz4pUbEAG GhYJ/dcMxeZ6bfs4CWv6Tgq3cZ7Otem/fndHpKqnqs6jUF33QOF0LwgE2/O4oTmkDj320O8+ju6j V/HU4x/H9U//EG+//Dwe/OglrA5uIw4nWOSEQGboMJCSFver/Pz2jCyIHIuin3O2cENTfMxNkNF4 lbLxMlg135QEAq3gC9GEb03CDJYAnNBnwYoYywwc9gmyfxk3fv4T+Mxv/AY+9YXP46HHb+AUCYkG dfuacZjcM7Ihp2MTve1UDqzP9/kY/Ll1PndO+922zxc9Nj23KC9ToIbGfSlKgc9XXxMwZBICziuE 4QTf+9pX0B/fwUOLATsLRhc1jbvrNB8rNLkAkQmRvSI3xsxALFbwC6b4e8hDm2Q4jkadvitGKMns OQOSyBJ9BZKAYTAe7KxJriJsccF1vvUCIET0uIwTegS3jvbwZ1//Mf7iG6/h7QPGKj4K7O5DKJac A5UrXPIVnKJa2BX7oEo/WWIvoLkBIRivOYGiZxwCgTsIWYgP6doWJITGwwAikLGVsHlmPOTAC/GF GlSr42VGRxTACTEECZ2jrYJK/SnJ8u+zhuQiKBtKTuCYkZLRdKaMzgwEIU0khjHURQqAZKMO1tBC N8I5dPpMtuRF1qJ9xAzpdnB7eYQvv3KIF299B7/9uafxpc8/hacu72BnuIudIKCkSMQwJLAkdIug VYRFLFFY6wYQtLgbmzEUgu2NzKUukGBoqBxdtlfjSUOurNCkKMuaFpGOCCTosMJCjrHACQKdISGa TKugzfbDcwJq4q6uwakivR3886Ou/4osM3MJDSEtxFSMPZ9DgBdhrftfazCuPd/+LKFEsBpA4l6X WCIC2kNIpUi7X9oozMrO2jEDonPt53gcFCjwsLQasTHNmbBRmRgLjHXdRu/tm5XvH1zy7Oba6oW+ PGJjrm6D2Pjr9euJ4nMGm3/l78EBXScrYPVfmgFfczBasGh0T7uX10lwj4QkKDGInb4xB2Bto5k0 cOPRNN4PdQU5//Z2JbHt1OxGR+vLbhY1bX53mke/59T6nHoHRpafzFuQm9o+/bxJqd60wKdJ0HN9 G/3mz5m5X5skXO8zZ5xsb9u8QXPxY9M9HdFS8RAwDBn37j8wGj3zbOQBIorepjyUpGBPDBLABL4a e4sugJBxenAPaXmqbvn2mRb6xcQzbVlvc9v26byaGwvfXDZb/UWNHz27zvf1sc1QpNM/bRpfSR5O RIAQhBc4RcQqdOj397Hz8Wv4xGMfxemnfxl3f/gi7v/4Ndx99y3w8gS7REBeoQsMpGyVk5swOQvN yEmNsQxFIYuBrfxxlmRpggqW2Es6LiDGYKE9XtE3k6L/PTFWAiwZOMoC7O3jw7/0aXzmC1/A07/y S7j0xBNYdYRDDJZMKUgytI5P+5fX3tn0PW1D3aqhvP7+5t/n+r3XEZft92mfPW3jtmNT+0efZ34v RsAI/SejeSTsRcLBj17Hj178NigdYW9PGVlASRV5yiXxkjhZ6A9KXkDwmP8oZiTAWIEs1n9EnTs/ Lg5mABpmkG0i5WyFvBJjGLJVv9ZwMoGGpuQsWswKiuRmIYA7JOzilPZxmK/j+TfO8CdfeR7ffv0U x+E60t4l5LCrAJQp+UotqAp8Jo3nJyYgKMWnxuUHgKPuIRamQ2BkywOAGVkcOx1nMrCGQk2kpA4g q4JqNTjI+P/9fBscQKQYs2zgnIjUMCMbO44mv3QwjR7SvadswEoqcoMYYNF8jMDZ6vFY3tRAiLQw ViDWugEcgZwUjMis55tHETlrOFBnbcjJgI0dJFkAYYGcr+Lm6V38ydd+jNd+8i7+4Dc+iV986lFc 6g+xIABIiEbQMfQZMah8GbJozcuo3kbKapBw9CRqU7QNDFAFrFkFUo1P/UM9yw2PTJ2HNCASIeIU u3SCBU7QYxdAnF2/FznmriOiEUAxV59kTo75MS10SkRaDLJZS27wj5PEpazF8/rz04B9m84tSm6u pAzbrh8bRtYeN0Y36VHbjI2mT8C4X9O+zulH07/ngB1pAMFk73OzblXf9XqB2PG9a7vGETab+tfu czqnaNS+NQNgbGFWC6llBJC58zfwzFNzHqAKhFrx44HwLGb2KqY0HrC8ZaLOvqTyIrTTleIwTQbE rnHLsSwUXFj5n1PSNyn//vvUwp5e64cCujQax9FLtdLZpRwDje9VekgTZNQQlLml4RNrTvGfKkhz /Z6733RB1vOMxYIZZ2c97tx/YO7uXBQAKoJahXrOqSj2fRp0Q1atUNPomLA8PsTJ/fu4+lgCcajx /6m3tlqbPI7X+2DIQjV4zTqncT/n+lrfS/UQVDe9L2z/nJrrmnvMjJne14xfH3/xcIFsTFymaDhn uIX2ZdEQmxUiBtpF3H8Si088ho989Jfw6J138f4bL+Puj1/F8ds3kQ7fR9efIcgKHRghN56+EjIX xvOCNGY2oeynAIAsmjugSbykCn9SNpRhACRr+mCfBEsAJ0I4iwE7jzyGTz7zGXzyVz6Hpz77Gexe u4YVMpZdY8w2wo8M/fLY6Rbx9rGzFtn74rV5PT0+qIG7bbP5ae61DdnZvpmNAQSVg5VvfPSMmdDP EDrk1KNLKzz/7Wdx+O4buLwTEKIpJKRUjRQEMQBM6j3qmI3jnxHYuf6dnUVzAkJIGi1DA5xJhEzB VoXXQ0y838GUSoFYoa6cNDdEhJCHbJ8FipBZcq0AnhCrspORKWKQDst4He+sbuDLz72FP/3qa3jj XkbqHsUQFpCw0BAdUzpD6KrnkBkxRs1rIwLYinMxF/YyN3DVeIggVqYfIrJCV+ol4ODKvCrhVJ7J RRYFMyyIqMZIm2Eb4PK55mO5gk9U9zmYfAepMq+I7wLDMKBUFzcZKzGpYpgFkgdwEAUBxP6NHZCV CUgkYXD5IwnBCoblIanXIosaBimDsgIzOei1WnTNyAFoAdq7jpO0h6+9cQdvvv8D/OEXP40v/cIj uM4BjBOwrAAExBgw9BoWxFGfkZIgpQGxY8A8P54fQFkrTjvG494AoskeRbkIX11XrVc3gRFBMmCH B+zmQ+zkI5zRFQy0B+f5b+tsuN40rWkxv2ZzaY+Iv1PtQ1uxfF1GbcoxG7MPeSVsV7DdY7RJGrle wM6K5PdnKWOj269r4Osh3OMbymj+rkFbZmhjIquJPapD2+u5msEiRohyGQGSFlDelKe1vQ6K7mc1 j871xqme4utrfO34cxsCzlJlcVtcrN5zXOBw0z097kVkLPvbYrObjqkRpfqOennJdJw4+hHrlub5 FtTmONm5xmzLHieiQk3mHd60Ac61Tw2RBvkARgMAYNa101pamyzB8465c8djcn5snCtU7cGAhTyt GzlqZKQLtW/aztEzJ/ecoqNz1vicErWpf1NDqL2H9jlAOODB4X0cHB6jdZu1QkbDTrLGtiZFNRIx epszi9ghkIDzgKODezh5cBePNIZWFk8cH88jEWlCe2Rtbvk8nxuPOk5i7U5rY+e/6+f1fJVNiuPo O14f1xoWByC7oF1fHzlrrWSiHQxRsJSMnb0rCE9cw4cfexpPPPOPcHzrx7j/1hs4fPsmDu+8i+O7 9yHDGRgJnASBBJHVvSxicckJEBJNhkxs8fxKL5pAyERWtZeRiNBzQC+EpQArEaxyBha76K5cxeMf fRof/fln8NRnfwEPffhJhCuXcSIZx2Sbk2hBOCf48Jj+nNJo/LL4HJwa3w5ojMf3vLVzkd/nZN8c KNHSD2+SLXNgwlx7tsua+l2db+ONbb2tDMiAy5Fw+v57ePW7X0dYHWKx50iIh/xkU1ydApRH4T0a 9gPEDqUYGJExpVh+gHvIrGwLPGe8BWYo29vKmpuAZFSRFDD0alk6y49nqBO0cCAhGMIe0PMuTmUP p3Qdr70L/G9f+SaeffEO7sk1DDsPIceIzAExRi1mF9UbKRxK5V2vg8FO9enGdtTaFjBlP4toTYDA ZjBZsm+hOw3gUFmCXIlC4FJLgOFyVLlUXfKQUAk/ckpCIqXJRR4sX4AKCUcFtFITxgFwjDZ3pBj1 Grevsf4hR0hKqvFIgkQBDcEMqwQII7AaZ5AEsUTdAA1lwpC1LSxgowRHHvRz1gp+EiyBN2ilZeId 3Foe4I+//Aru3n0U//WvfxIfjgsM/QPskRolMQT0qx4RscQtxG6BNCT49siBQEkrT+ekoWCW/Vxl LbssWT9ElBaWAZtbAoIgYIkdeYA9HOMYGWcF5Jlbm+t7xdx6HV8zvy9v8gLMHetyYf1Z7Z5A3l+0 NBLzY7Le/s3K5xQgXL/2fB2rGAytPICYDqRG8LAmS7frqtv61l7f3uM82T89b/q+KEtJmm770n4e nU+ElIbZsZKpMXiBvq7rKOu/x9IwU7g9ltCZaDKZ4HAh0ihU2jD9ImeveJgtBn1+SgWH1idTzivY ZaNz8l8rX3eNeZvtXKl45wswj67n0e8+jQDBxIL3+/pYbzBE2qOd9OuTcD0kYbQ4zEIuFfs8u771 WswJGil3V6WsVCOsm8T4cBexuY3JYh+nMcMbJsu2MThvok3Pm/tMHHD/4EipIKGbPagqbe0Cykms oqVgmQSZg1anBGHBhEsd42y1wuHt95CGFSR2EKRCKasCpjWcDGXUvyZ91vlawiWA8t+6IjWzsZT1 ZOFn/sxi5HiIjbdkPD5FyEhFftR4txAoS7YFadslu0LsydF5FAKntwg4ywJCxCpcQri6wN5DT+DS pz+PfHyEo7vv4cHbt3D03js4ufseDt57G7RaIp8cgfoekAFdVuUbSSwGVduibECE3kJ/VgOQmXCW CCswViGCr1/G7tWH8cSTH8YTn/gkbnzkKXzo6afBl/ZA3QKnKSEPvSlAUpSakpAsohSHUINH1+14 fjcvAFUW1M15mzG+aQNo5+AUiFh77ZNkLf+uve9FDfd2fbWyZr6dJh+lPqvMLxGI11IRr79R44Ap 9dhlwauvvoB7t97A5U6w6AAOWUN8KNlU0zaEEErSr8f+a5Vgzd0jQ5UYAAAgAElEQVQJViWYiFQ8 B1IPXZDigq6VvScFiqTO7TQkUFalLKWkDD9J9wQGzACAhT0EoBTK28GSruGAHsVXXzrEf/ir7+MH PznFcnEDOV5CDgtF87VHQIy6d8WATKzIvAjIQnyINU4/RAZ5Um6IxQtArGAGG0uQDgzpf9SZYqyh QswdMqQxMAyBtXyBgsgajbGHtYh7/oggFuLi8c1eJRTBwqQAgLuyG2reU6qAh//tcksychoUUJfB 0HwBx1S8A4rsK8Kvez8jcAT6BJFBd608ACTIDA3/4c7CjAjCmnCslJ6k4xF3IRxw/4zwJ9+8jdff O8a//qefwi8+dQOUDrAD9UZwWCA7M1xO6LMmIvcrrU/RrDTrF0DR16JHMqRibHIDCigDEhtDmSCA kVgLj0UZcCmc4Wg4AOclAlcgJ5UlPuftb9skk+8msfNlLbtcWb+br5P2+uqRLbh4NehHz7HwqKyK nTQy0YJt63NAkLV2aCSFKG2U/kBTOVvUpzVP5CaZWhVcXeuewB2a/qDRy7KNVSBSgQAPa8kY10hw D4ZHc0wHVPeJDA/bs3dgRXDaGlNz7Z62f72v6+/JDzFD5iL3K72x/SR5JMQFwCsANUS67FdOPqAy YGMOwFzDtiFTF71uY0NnEC39Tl/IefcuEwlmMRbDRkbx8aNNBhtvXc89t+X13Lm/N1nJmPt+8pmx nk/h7c+EgoYTzVvebRvWDBAz8Obaug2tmKLjF0FRR/2eeY4qqBG337+PfpUA6tav85j/8jylmk0Z mgRMBJKkKFVKyMtjHN65DUqa2OaFtaaIw9p7m3Rlm0H0Qfo8fbl1LCZtuMD9to33nHIpI7QkaF4F GEBApgCKHc4ABN5FvHYVe1cfw0MffQb59AhydojTu3dxdPddnN69i9P7d3F6eIC86nF2eIyh79En RQb7PkGgFH7EHbhbYCdE7F66hJ39a9h/5GHsPvwwHnnyKexfexg7V6+BL+2hZ0YKhNM0AMigaG2V 3Bg7bkjnghBBXIyNx3P9qEbAdPzPG+u5Y1to3we5/0WPTeh+uwb9mOt/We9SZYVvIG5YBWLsBGA4 fA/f/du/Qjq5j519AcmgqD4JghljbGE+HvbuCZge+hOa75X5B4gxgihBN+vatgACMhtgwWWflgyk IRdFMRvin5MbtwYEsHmcLFk9c0DmBVZ5B328gVuHe/jTv30J/9e3buHm0QKy/ySGsAcyTn8iNkQ9 Fq5+rR2iaL4AAEf1wlpYKswYIGhBMCFo4itpOI9GA0VjDFKjQA2EDmDSOPmSP0DKKgQuNKEgAnul YFKIRo2oqly0KGkOrosJSsiP7ex+jXpAk+1pmkxN0HOzJDBElX4r8BWy3iAnzcGiLKAcICmB0gAJ GUGigQADJLKCbKQ5AUia9yeJQQ7iZbY+9WoMGbNQJsJqIMT9R7HqLuPbb76Dwz//Lv71lz6LX//M NVwCYy+vsBs07CkNg4ZfQZnJYheV+SnqGKhhC1BHariQE1eI5Ta0BrTKhkLW0KwXbR+DsEJI97Ab TkEWQgqgsOuUNaZ/jdbsdL+Z04favbly3m8GIDZd2z5//lhPXJ4LHW5Dc6Z06fqIPNLwHUH3v+fa uqkvU/1jCoC5QSMzoYztvVodaNpuD4ebts0BPSdLKW1CGp03Pab6VG3DegSB/5snc6AaaihymGis T42f74DeB9tX2jZ5DkBLnBPXTra/leNXMZYB7QvwE3j0sqbolh8lWVM2IW4tAoTGqvSEHru/oPAu j+7vg1qQc+gLlxrPH6wd2j+jFlOJWF1NU0tOACat7Ggd2ND+aultQ7jrd06b1vwuQKaKSOtkMKut IMi2CNkQX/h4iNK8TR5VF7YqUe2yyWaBTrnmL2pE6HBsDimYnjM+VAi180GRY+Du3Xsq+DgUTXh8 76w1JrKyxguAk+WZIhqSkYceIQR0DATKuPPeW1ieHQGLPVjpmDIfW49QqxCN0WJ7OXqFKaMtEt/2 b8PCdP7itbN8XZiBW8axpfmrY8uFVUDKXYg0tAdwdM83u9ZzUJWlWkU0gMVRgVQ2vWRUfj11WFEE 7XcIl65h99GPYrFaoROBDGdYnp5CUsLqbAkZEoa+R+CI1WoFjlrFd2dvH+CIuOiwu7ePsLMLCRHo AgZDXFfJMcsMpRs3pK7YYVxkAxrlR0zZGW8WVRCP30u60Fz9WTpmFQEa/+Gj48iWh5a4guQeI2JN mh/SCle7jLd/+APcfPl57HcCYLBKvoqwOb+/Fv3SolfMgtip4h9ZOfIDJUQCotF9esIpQQEL7YM2 NyPYy1ZUHdkYbJKy0yRRQ0AGf/caC44MBIq6b5gsHQAIdVjlfSzj43jt/Yj/5S9+gL978Q4O6Sry 3lXkbgEgGG0nIQkVCk8Er2rGiOiAwEZFaehdqGw/HBSkYGYFF6JW/6UQlI+eCfCkYY6a0MpuPDAE anCo0j/2GAhr4rJ+r/SgWcQoRwFp/FwEBS0Lq0seECwBWO0K0jj8UlFd2Z48fpokgSQhpR6ROkXv AT0vZa34mwa1yMSQ/xSArJ4Arb4aAFbwJYcBSAzNAh7q+iU9PyWocZIyhAbL14iIxMhpQFjsI+Ex vPzgLv7nP38J797/KH7vCx/Do3QAXh2gEzWghjwgghFIkHudi2k1QDpjaKGMNCgASAJQMC8ULDHJ Q64q7QxElGZU2QNtjyRCJMEOn6HDIVjOQKScbKpPlFgF+IxWMMqMG/s6lH1mrIJnVO8EEdt70vyQ aQ7AGIDzgoxWv4aChRg2Xm7rO0ia9tpTG8Vf54XNLcuL0CKrZKUmUUL3Skihj+WkbdOcCGezanus 8se+z3Y+m4FWRkflvNdwYd9v4Tz7rkzXvLsxUGphh2XjHSP75BV0YfHwXlcq53KNSNJkd2gYqz5Q V95aBkYB2MTeJ5d+jow5p9EejZl4Dr+eZ+e077uy2sn4/fq/RhowrsulkSHjsCOxOWJzu/4wtTr0 c0qpUAnNKYBuOYbSyc1W0/zhNQPGLnOnrnJaw7nQn9YimkOyvcx1a5U5wtKWlJ9bZGuW+4bW67PT 2j22HVM0YGr5loqcTb8KClTuYUVPwFtj+OaOdTx0+zFSRLeEP1zMAJpB4gPjdLnCweEphgzkICCK 8NdLRIYY0chazwSsMuGsz8hBEGNETBmQHhGM+++9g7OjQyyuPopBHC2uvdfxHM/p6Ytet+q39++n OcaC3TfvMEKaNyuuKqw32h/tms26MU7nXTmHAwbRDSi5RGIzjnYWamjiMviSnr8QNUxEBCyMPWuG tz9JBsWAs6SCtM8JHAJSUjYYCS4wa5Vmb0sAmfE6jpmcNyrXEbfp+M6N9c/asSb7mr+n47K2SZTc qnFioqoGgp1A4NUpfvCN/4h0fBuL3YSd3Q6x04yOQPquvPovmwKglX8V8Q9Rf+s6rRGgoTCKzhWs o9lfHGlVxYjAsKJeWUoMdk4aXupGPmAJ/1kA9rwTgnBExg6WuIJDuo4X3ujxx3/xHL75oyVOu0ch i8tIQcNwNLZfqSJDF2oYD6CoP9EIwU/mNmeOqhAYMg/SQAWKASBV9sWRe7teY1BIcwqC/qYVgqOu j7DQsCLWpAlX9HX9AyBSBRuNkWcJwvr+AKf91BSdhYFi2RLzxdCgoKxZbgyLqPJFGSwZvNhFzkkN gDyAsQAFDeeRMChNZh6AkIAUwdnCgvoBzAmSekACQtJ1nftBFZ3MkKEHoMaP9mtQhUvMCyBJY/cB gx0vIYUO75/dx5989U0cnyzxL37jE/jQLrC7OsYiZiy6DsPQI4QIwYA0KAWtJMEgGR0rY5RAStho INsrGZVmkakkm/t+ICLGEmcVy7EC4wQdnSJiAGEFQgfx8BGi0bpq90raIpem63p63kX2lynq7Wiy GgN+EsHDnuY0mZHuJBgl7q6h/6WdUox4Vyzn+uXUlX544rtM9L3z+oiJvGvHetOeMH0frhx7gTJV kNef50AgEc9uq1ODo31Gvb4Cg63epm3NJXS+nj/NPVx/5ojFp9VNGznasg8RVWCx3T/9PkATApTQ IvwWf1jiogGASkKDnuEYBI86QIbkGWXJzPCNj4IQQK9LHpvtLC3WUE8YK9YTFJRgkvmJZBa0j7wr rlNFuSx81bCrxVXIzMcLseZATGL2TXfUGK0qGOozfJGE8l37b1uyue2DJlsJ6mrefhS+W/LP9nw3 8Gg6ed0tv/n+25Srud+2C676rlW4KOvT8ckK9w6P1IUPGw83Mm0MimDVhyBlxukAnGSCdB04BoQB 2F0wdlYJZ8eHOLp7B4888Qmz8r3NhMypoRRtY4/LLlv6J6YUj5XQ7SbUeaK7jqJ6aKj5Qee2UlxO Z3ZrnuuCby7y546sSTSGj37hy8o3uznj1ZEwBqvwFVbjwFmTiMrcajucCTXmkAgyGOKSAeKIYVDl 31lo0gaUSyiUd96E7m800Mv4bNgM/iEcUwCm/bvdcgBUli/y9+2Gr76/QIwkWdGm3GNBwO23Xseb L7+APeqxu2AEViWRgiJ7quyrwh+Z0AUyDwGMHUgTO8XdsMhaY6KZj/5uglQvn6KesPhk0XhxiVbs SxFJL75E4go8rAp4gEhEQoczXMFdPIG/ffE+/v1f/gCv3RYsF48id/ugsFClzgAH4ghEU9g1W1mB LtTQmwRCDJ1WqBVj62FV7j3B1+k/KWh4TxLY9cHOX8AqiBkbEFlIkdYDyB4mFDpF+TR2SqsydLaP GBjgio+HS2mNgJrT4eBIauKXld6zmTOSNJF+SKBI8BrckpO+v6yeGrF8AJYeSBE5ZUX5JQE8ADlZ YmJQZjViRb056HXmrclJc0XyMFj14cFkT1bPDcyDA53AlLnUJsh7hPvLgP/zW+/i/YMz/Lvf+zw+ frlDSHeQ7DUNQ0YIAYTB4vE1NCj3AAcDM5IgkNaW4U6VK4bWE3KRL9nqijjgpCEEINLiZpF7hHwC zseIYUBvVKDOWKNTfuyVbAGcYU1HaSMH1j+zUymviTK/Z2t8SDGwKxPNeG+u60/8KePWCBvg4sq2 5l1QE+8/D8KsYeHlL1dI0ciAOiTqaZItekd7tIq+yrtUe2BIoYOkzUWl/0RKD9zeD+BGB7Bboeqk LSDoOZZFOyDCXChoyclr+29tFJGi59V2eu5CzUdZNw5QDSmq3490sdK+7Xtfq5My83wOgDIEFKOr XDCHjpbf4BafCxo0EztjLv4MDY1TsVIYo3uOTm8sQX9ebp49UuRm2jlCn+25cwWC/EVdwH5pHpIB hNEE3NSHuXErypgbHLxZoXaLT4+ZcZ02bXT+5PtzVdV5xX/a/vE9Nz2rHm0l5sARhydHODnrdVOE h205etjQ25VDN+njVcbpAOByh9VyADE0DCH1OD24i7vv3sJjz/RgWmAQKnZUTUIcW+6tpe5nzp33 X+pwurG5UuQbj8atuO3Ypji3vwMoCkdZl6QWeLZNMWdRbnQz5Mb3a+YzKdrGjJKLYE8bGds0MXAL ukPY2ua2rXPranrPf8jHSA77u6u/juS5xi8DyIIggl0s8b0Xn8Phe2/h4Q4IpIAQmU4aQwCHmnOk Sb6kyb9BPQPR9GPijBgDQtSNl1jlugM7WqG2BW6UFUZj/KXUn9CaE5XtR/d5KUaNKsMRA+3jJF/F nf4a/uK5W/g/nn0FP7y3i2H3OqTbBUKnyj8bV7yj+DD2HWYw+XdkyH9AFzpo/L7Rd4YOhb0naOVt BC8QFsFBfWQIDA6dFtdlS/6FGg4SVW4JYvEGCDEyR1XKWAuEQbjkJKhRXWlBAYA5oM8ZIMtlANcE QUzWjUlUjcU3HDRAlXnJSCTgnBQ8ypoPQJJBPCDLAsQ9qAPycKZAShiQ0+Cll5FJEDia90DHKq96 uDKuYRceFsQIOSHToEqWFgMBEoEpQSgj0ELZhfIeMgWcccTXXr2DlL6F//F3fh6feORh5NUBdqMm fSco1TPlhDQoACes3iOlscygYEp6IPtOwbVkHoKt7ITQ4niRVtjhFaIsMSBiSKwMTyJWUV2V0Jxz 2b+nJBub162v3e3nuuI5Pc/lYzAPa02IdbS3xn3rfWZICgTqbZJcyUk8xBQ1pHrb4cBe295tno/z JHJVgOtnl/fTZ/mxXe8yZds+z/VmiujPHd6GTWFaxStT1iCKd5yMTncMFDsQvj2/rMjAC4CtrUdg VucUQawP9JgjjZllR4zWJlpr+TkfMQxyqgLKKXbLgw055HZcZzTsMvCNAobG7dEevom1nWoVlykq 7Qq2lzUH3NoioAmNKL+1fc/1pc4q1MLNWLlF1yhdHsMFjCbIVLFsH6mJZ4a65uni81hDjDwja/UY /Ht2d1kVMh9EIRp7MzbnCUw/z6MGzTkhQohxdHyG5SrD3dvlPZKUvmu8YvN+OOCkB45XAqFOw0z6 QbnMIwPLU9x/7xZkdQZaqKs/GZ0kpHqugDYirCqT47Y3Q7pFGb2oabDpPK+EPT1PJp/hcbX+96bz ynszD5tkrR2RKi++LiK9piLy+h+V3BYz2FipZ1WwZYgZveW1GH8jiTJRKz0jSl2NkvtQmhfQvIYy 7lnW12Pt0nj01ujX/gsaaD8Lhwp+Q7sLK5BWknTFxKKYQSRYUMLJezfx3We/DE6nWOwxIgNEGcxS AAmP5w8RpfAXRVG2H0rQGlmEzhJ/iTIQdA2zJWGWTdtQ7QCv2C7IiYqBmVKy+hIETYSVImOzoUvC Cwx5gSVfx7vDY/jTr72J//2rr+J2fwl59yHkuAuOUauCilZwlcCqoFMEsTL2MOk5TJpETKboZyal zbRYfBBbx1VmkYf6EAHcQdiYgNhoRJmRuUNmXQccOyQLHRIbQCHL42GrPmxhKl6NW3MMdJ9iNr+K AWttvs9IZjnKaIZ4CBbzK+5RqHsrGzgnSUzWJg0JIgGHBOQeHHcgeQUxJRvSA8MADglDv0SIHSgN oBQgSQuFuQdAizQOmmBMyuAEUhYgyoOi8Fk95DQQMgYIMriLxgTXIeMSlsz4+g9vA/l7+J/+4Nfw sStAP9wBoAxVAwQhRDVoBgXF1OHDoKB7qZCUUCEy+uJgRnAVmDpPPWROi1VpvYuIHhGniPkEzPsI IWhhMqqVVsveKK76e4TAeH9ud+mqANZkTY+vWD9qTP0YwHM5n2yPDOV8rdTc9g9r+lEe6Q1VEa05 ASrPhVrDovWEc2k/rIdKF92N9tFKZz0fXjM9XBeouXK1cKvetwnnFe333P5cW1mRfWKpDIslJ871 Was/MAWRbM+lSQ5gGxrdPptFd7xqHFKj97Zj7nUhpoboWJ/TZ6pOLCKanN88rzgPPKcBVkyw2V/b +27wAJhCQEav5MIX1XUAqWWRp8i8F2646EZ83kbviuv0N7eEW4W0nRwjZX4O5Z9BCP370TSXcT/1 83zftimHm45yf1fMqRoKjiyUAXBB7wj6Offehl67YjtVcOeun/5b5sGWPp9nYJS2EXDv/gEGK+rj g0CWSJepVnxV49SQAwpYZsaD0x5JGKGLkJQ1aVEGMBLuvXUT+eQAvLjUvN/z29f+tq0y49p1uLgR 0N5ranQAF1BkZ4y+zZ6aKvhGAnlytJuLzktGlqF8t44s231kMtcmhnd91vpcGgmwad7DxPCann/e HPtp1uPP0rFWOXICErSHiBS5UTC9nLDfCV595bu4e/M1XF8wIg8AXOFHifH38B+N/Y/qGWDdSIOF AnWBLfRCq8tON7uWgYIF6ilK0CRfhbox9KqQAhp+oWteE3BTSoq+U4cB+zjmh3Hz4BL+w7Ov4M++ /ibeT1cx7FxH5gDuOrtlVNYfYQg7oBRATiVreQGZA4gjJESwKfHgqKFBvChovTCBw46GmVptAEgA OvMOxA4Cy6NhrUdAHDGwGhGZQ/leSxhoIjAs/FHpMXWtJdimHmwEHWTLLmnI7Hf1yimDi+VKQPex LJqj47LVcwQUmFIDQL0OGdEQ8ySChGQKXA/kiBCSVgNOEUQaBsRuFFAPhAROAanvVSblAQg9JJGF +gwgMo5+Yatv40mLAC0yZIDmJqSs3hlSL39viuQ3f/Q+Fn/5PP6Hf/4MPnL5OnJ+gJ2k3gbPSclg SC8IMSKRIq1iydCeFE1B4/MtlaQAKu2h+kXUcCUIGEvs4AQRpyAMa+uOAheg8KLYWtVx6hpNSXP7 5qiEz7/XWAkdU2OOz73ovXW+mUcQtMYeODp3ogS3690R/02yf9P93BPRyv96rb73i+ybrf7mQMR0 jKeg8fQgIuSUwNNCtTNF2/w5wXVlqlrjHCKvRwWPR2NgIDgm73jb6E318rmjGAA+oAFjBpZpdKkr QskQpOlEYGPxaNHwEUK41kpdLM5QMqcc+MRpjwSxZKp1JX86+doyzMWlVbVA/XeiaBTXTYkZWd9k CzNR+xuP+V6LQrWh+wHOhDI/Rknm8xb8+R7TTTy/0BPU+q+el2o9tvfadGw6b/NCaU2n8fnt7+5J EotGPD1dQuE9AQdyqVwXvV9NUMQIQJKAFRa4e7gE4kNIKwJFYLETsFgIwmqF92/+EGd338fu1cfU WDRUeoxkVD0lw4V3xdJD6CxxdTJ3Rv1txqzt98x3a9+3hm7z+6wyX/5tfhu5quq41t+adrfGpF8u UpPi/H1bCr0rX8koOZHMxV4vLgYAAPMQ5BpihWp0uMDWmiGGBLp3z0OCzKAfV4Gu7dym/LvA/UBG 1M/4UQ0mR8LcLW7vkWCIUc0BAdxoy4hIWB7cw/e//jfYoyX2d0QTeIMoiiQDAgUwNLGbGYiRi2EQ AiN6cbAgQECjZJO9z/o+vN4MoAq/rm+Cs3SkQRUgEli1SivORAHDkMFxgV4iMvZxjBt4/fgR/PFf fh9/+Z13ccDXkXf2gdghsCbmggCKqlizKfpUCnWxUnBSgHBEiBq2gxAgrDUCBAEUAyh4LL8z+2gM v1Y8Y2Rj9VEDQWP/yTwF2TwHxFFD+4x6VJOICR7GI/DvdaxGIhso+6AqYbJ+jgoN/YNreCyyFuUr +3qGGkDq3zMlX9HOgTRkiEGQtAJhQJAIcEbOPZh6xLCDNJyptyBEIK90rCVBqNc9cOiBFEq9BkIG srIFERM4JKRelJjAdIkkGRIJlM27SUNheJKUkHYu4ZQJX33tNmL39/h3v/PL+MjljDDc18ReCxkL lf7DKKJ12gtpDjPsWRwIHDXvUOsQkQHUhCE3OZFZAUimHpGO0MkROA8aViQuadmM1irBiawvaJBZ VIAVQEGgBR4yVFezI9LtPuv7ZgWlNocu1eua3cIr+54TMursPdk9ttS02+o/TA0mfWZltyMKzXMq O4314EKyORDNy3NhCHIZe09ubyM69IJsc8Jya2yP9bo8tb6PysxWHZxtX1bwYNznVkdyD03rOR8p xGv3Xf9sIWrkYUFTQ6nVjebbqeFcqueQvW/PzWs9AsUAaC2StRu6YkLjToxcUI3RQMQzjWqn9uRo MsrHAzG2EqeGAJG5bScxZ+WJTWzfJkuy/Da5b/v80X3tHx71dy5EZ7PyMf0+QCdmuV8Yu5MI0LAN ew85Z43d5dbdtVmRn7MEPwgCsOmeF1Wu5ixjR6PIKnveufdAQQZS44BtbhHlEkfZ5g2ozsBYScC9 oxV6oWI7ZyR0kbATBffuvY+7b72Jjzz9WUzZmrwt+sf8e3ekYF75nxkXnyYbhvaCufEXPHhjn+pX 43C0tfa0Rna7Jvz+Hss3c810jo5/W2/t+Fm15PycIVmM+EapP2/OrvVhtHFuZov4h3TUEEj9zBbO IJCRJ4uIEERwORJ+8vrLeO1738KNkEHQEIIQjfs/GuVnUIpEYkIXAmIkdB0hsJ6rRoF630AodQBc sfHD6Z5JyGL+TZmRaOwlKhtUJrMZ7QEpCcALZI5IcgnHch2v3d7Bv/+r7+PLz7+LQ76OvLimlXyN mpKIwF2AgBGMtpOMzSeLgGMAc1SEPkRkZo31jx1AmuhLHu8UOlVsOSAREMKOofcBOTjPv1YVVmU/ aKJviBoCYDUFKEQLgXJ6Qd2TMtU1usZAXMAr/a5N3h/lUDbCJ488PXqhKnSubJuSw2y2tlGgQgAE CwHaARlNK+eEnDuIDJCsSr7kATKsNGGbepCHCaWVGj+pByWG9D0y9eBsnnVS5wAvFkorygxhrSdA TNDkCSmt13YDGbtI0PF79qU7uHLpNfzbL30Sj8QeIa2gddsE0mcsYiigTWb1dAQRUDDZyAQBYcgw kK96qKqMamV+BqTHDo6xwyfa1wKaouzfo/CZiV7hh+tNfv1gBnvRT4gse2JN9M4e6yBJzWusNKEf fL93QKa9zudP++y5+1Z9qbIqjeXAxWTxVqDSw2Bt/5nuO2qweHFa9R6i6K3r4/ZBjm3tb/ffTcDp 3F6lgIkl3wqZETVFAyb7ZHPPTYh/q/dO2xFjq0CPOjXNDZBR/D4p8XixVDxoRkwp5eZecyEUNaY4 NC8tF4smN4igSb06QKjmRGsBzSkQm15s209f33r/edfUOl3UxL3Owew8p80Ko9/XLUW7S5Hg3gd9 GBn94tQCroLf2CBKmw39mLSby01LSya98Pd3/kFEI6/KTyVQRiEgAQTG6arH4dGxjqEVZFlL+s2W UGX91OlHSLyDe6enOFkKHqKAwYoDhSiIyMDZMd5783U89esrcFCKvCzSLKixEJDJc6dJRutzY+wK LLUVNiTzTJX/uj2PPRFzuRwtImOtW7tvQWpAjXGQC2vVdB6vr5lxaFnrlWjP19yTuk4rEmnzacNz Wk/A+PN4XbTPHIUFWf8uYkTNGQI/C8dPZ5w3eSDNpa6EUOPJLeORe1B/hrdefQF7nNCFHpEzushg SUaOEzTGnwmBlF4xEKzArVIrKkUoFRkfHP0vimoTA21QrGRvqM4FD3tw7wVThJMqqJ0YkSQgYxfL cAOv330I/+tfv4j/9zvv4Dg8jLS4BIlKDaNof1BufsAqFqGVb4sAACAASURBVFsdkKAIvSqGQRFs CpoPEGKh8JTQWeEuDR8S8ygIa/EvUAeKXvROjYTMwVC3AMQd9Z4HzSEo6L5bR47kmkLCOZfEf9+s HehAeYftGrHrkyuONcRCKVVh9/d5YGQRjTFBKJEdIGM9qkheNE8O63sOC4BWCBSR+6C0oDQgMyNI QoLVTkinoByQlz2YIxBW2q4ETfRlVspQ+9eLhIkIMhicBRCN5Qdrki4yQFHHQqlVr+CIBH/+3Nt4 aJfxR1/8ORBuo+uXGv7JMMUeoEQAa+4vkmhSu2aeQASWzzQGNSowkc3YAgIzOA3YoVP8f+y92dMk SXIf9nOPyKzv6O7pnmOHFI4lSOGQRAKkwUyiYKSZDA96lN70j1FmkokGgZJIGUjAABAEKAC7y8Uu dhaL2d05dnZm577vmZ7p7unj+6oywvXg7pGRUZlV1T0zu7MAo62sv8rKjIzTr3D/ecw3ESSVXEO1 Qudr3OsbLf/mogRAA110babKgJchVTiCBuK64DzCcdb7fI5GzJ+A1lnQDyk1XQ4hlPeLiBoCbFxG w8qu2ka5Dp7zwHk5eatpqvwulKJokcstPlrqls7ON+2EgO1vkHmvFHSfaVA0T5SmMgnaMgEULldj JdQoMc6Dy0U1/2zlrEXD40wRo4sTqFUfp8bwlu2ky4azyPAtepQb9ACNu/ISx4letpItNdYb6gug fdaJtwqL25bKad1T39+WCc49295TT6CIKDzYwj1tPeW5pg1LpT5GmSvt87vGsH2Pf6uF7BbppH7e x/9QAacWdItidgBtWBLWgHmhRWTbJcN6pusFuqA36wG3bt1RWEJTIKXpPwUG5fEEyBd55ojrt9e4 PSTIaoWIDYb1BsAaTANCuoO3X3kR//CT66AHTkpCD2+br9+6H3db5q0Un721uSZMW2taMDM3elTo 11o4zbb9eh2z17euVXJIW9fSc2379imRS4Kw9/eQ8tMi9Nfl7oX/5ee5Wi9Eo1uIiKAPQPr4Azzx yFcR0y2sejI6IgXrP0YGcbLgXy5Y/+7+E0KV/ZcEkQl6AgyMyr4LD2btzgISRnKUn4SiELBh+0MY HAI0nrMDeIWEE9zGfXjpwx7/+ivP4CuPv4ub8SEM3QVwiIbHTxagqwK7wnSqew1FtcKLJ4EKnQnv 6utvyQw0UBeqEAh3SEwg0vqFYvHnFwrFnx+mJGQPAqYIz7at/r+WZ0CUbhU+Y8axnHNh7mrYNMbO ZvRykAmxa41iXmgQplZGzXyr+1oFVZ7sQ7U3jbx/dPF1JVvRhfSEYwXBAO4MojetQRIgGOB5aSQR aBgABORhDc52gs2MzGswmwmD3PUvQTZrUNcjJkZKG4AzgKSW8EyQtIHAXBlIkOUIOOpwfbPBH3/n Ldx/5RJ+8x8+gLTZ4ChnsGwwiApqcRWQ0gDNS5LAzBgsuJ1JEYx0bqisV9gwkzEpDVIPGug+3ETH ZwjQHArkBqBmD24bPHyi1Go9S9dSnhggPYh7zoCxy/I+5UfjiUT9t7sFzvmut+8ScYdQhrC3fV7u mCpRKO8bEXsaGcbpU5OXaXoSM/UCAatCqe8ZjcvMDExALAI88dcWj294Uft7a/TaZ3ByNMklOYh4 KrgfInO4fD1pJ6btnRgfm3kobr2NNlC/O7oF2uEHxwRT0+KT4b8EE+IS7GSgwov1jTMuwO3R8za1 QjR7BrScLBmQNbp9Xnsy6wFXC8p7malnF87T++rFV96HqcedZ9GbUzAOETzmNg6L+rURxiQiS/XV 7yq4wTagLerA+BBrMFRoLu9pt//uC31ukWuZasZ15l1dP21sQMD5+RnunG+UCedKW7fiWq7AUrzn rKgSIkjEuH0+4MZ6AC6uIHKmLgkd4fSIcWuT8cHbr+KTjz7Epfv/rqLccNRtlYHswXCN4LullFWa +CzxplFxc8YplYVj6/6FK+V6M56tr+iWwkeYnGxsESKmYkGs21pOwMYztWm/JxYkvX+r5QcIrNsn DYbqUE7M5td361J1t+5Tn1aY/kmUezsBaItZuDD6FquCbYw0J8S8xotPPILbH76OhzuAZIMuRnXn tsBeICvOP2dzqVTBn4OoZTiyJcjNiDT6q4o4njmggQHj+vPTO4gG1ImIYbgTgikJiBEpqxC+kYAs RzgPD+HV65fwr7/yJP78sQ/wSXgAqT8FR4PnNOSj4O42Fe4+mQU/MEOgrj9g8+8vuPwaD0AhgsPK BPpO70GEBPP1j50J/wxhdfPJROCgiD8ZAoidMkAVIjdqjBbHig7mPI4NeSCp8c0S7Ot7Xp0wJpvY BAU1EIwWfoXXtZ2dCWBGtpMAqk7qzLF0bAvZXGXRUwABBtIYED3JUGGcY0CQBMg5BBFZNggIyNiA eaOuVRg0Vm9Y63zQoPQmRYA2EFqDKAKDhtkSOiAPoEjIwwDLVaqBxmzj1xHSWtBdeBDv3Mz4d994 AZcvrPBrP/cAWK6jz+b2goxhkxG7gPUmIXbqbgoIJFigdLTTdjLDfAxlv+haFWgvAJaMQGfo5A5c EhIR49fTUugWpnQzT2jtWIg0k3b5jmCue4Z333gU+DPLRV1fRsXbl4rGOYgzQB6hIrW/27F7hQ5T bWhyGM5hsQU+jrYZJ9dLvRjjHFVuVL7JIM09YVC4BblKVFEqSpLVEwiAaDYr5y4ioh4WAnANT4lR IZlm8JXqhNndED1Csy1TibA11I799NdOTzcWDXBoYelz2aeji+QIgbrEJ0bhv5LRm9wJROQeInch MDeN3mUFH+/dLVQuC5Nj2SdQL1kel+qoNcol4feQsfisBIxWy/V8AHOW9rl+tH+3pd4sS5jHu4o/ v2vR7a5gXtATJty6cxvnmzU8dmRL+G7mqmwyUqvE7SHj49vnSN0KnvCoC4ogcmEVcHbtKt578xWE vAHXMKLN+qvXULueliwFk758DsJmjQw19y5v51xf2t9rgXrr+synvu/TlPlxsiRwM5Yyn+O2Lfvq /ZtSPst15OOqLjZaSDKOCJBbn+DZ7/8VjvMZOk7oegZRArHlbWB1A9IPjQHAURAjl2Bgcsu/5Qho jQ51fzxLqWf41fkFlOUHS7jVQXKAhB6Ze6xxirPwMN68eRG/8+fP4qtPvI9Pwv1Iq/uAsFKXG3PV YY7wrL1q/Y8IFoArlqlX/foN4SesMCAAoQNiD4pH4O4IiD0k9AB3GncQe2RaIYceKXTIYQWJx0ix g4QOwj0SsdbFPXJxqTGhILsP/xh8uEVLm3XvYgdVHwaN8Wcpb+0PtRmbT7kpEMV9JIsFVzdzk6sP tmmDFkYSIAljkxX9KNMKA3UYwjFyXEHiEXI4Qe6OkOIRZHWCDa+QYw/pVjqefaeZl2MPRI2roK4H dT1C14NjZ6cxERz1Awqq5IVOAT04groOQ1hBTh/GK58w/t3Xf4hXr3c4o1NscochEXImSA4YNgKR gGGjySP9ekFcEhvZir/5pzaAEAQxnyHiDgLWQE5QiM27M4DM7u8GsCSZYnw38ljdZn2Ot+4ZjS/e LnXvG9s4v3dbntCeNIz9a2FKR769Ra95mX7Xckoro9Wf+j3tOLS/LfWrLofKU7tK/e67oeVzso/X 18oic/kP2ntFRBHLmLfGy+/j7Y0+H1A7Wii8Erca5PLMnGA5Lkqz0IAhQmBhjcxGBk02UIZrPe3g 1ScZbfx7uyhaQU2bOyPQpTxad+v3GbFceh+wrfzs3OSi/mf77p34DGbaWhSapyHN9nPSTsoA5Wp2 fEEIMk1jMtqx21d2jfVY2nnVNvm6UcKZQRxw7cZNVEmbJws1EyAUCnoIQZm6n1bBrHTvXbuNFI/V b9KCv0+OV4jI6LDBe6+8gHR2E0jJko0lQwKyj6SJcjCO9yg4j/711W/OP+ogcKbx+j0Xncm6SSUu BtvEpV3fNUGeEPxGANhe2dPvYz/qlYS9/fPfhXITt2C/Jw1kb4XDtn/e3jkFpWXWn4cC9tNQJkS/ zIvSWcDG1a4nPcJCTwM+fONlvPXiMzjmAV1HGgfKau3vguYCYADRMO1DCCUxGBE8GS6IVGFgiFnq ctmfYsKV55fReSWQJOScIGLtJQ2kDV2vjaAA4g4b6ZFWD+Hd4WH8ztdfxH989HXckMuQ/rQk8SKD 2SQEEypV4GeKIFK6S0QIrMKnhIAcCBLV3Yf7IwwhgLojUOyB0COHHjl0SKYI5NAjxw45dqoAxA7J 4EgzdxAO5jrEJdtpAGvGXROuKesJLyEDklVAFylKARHBDy3UbWqar1XnmZQvOL0pQr3AKajvF6cB huAOkBT0E69/a89YW8s+zDpf/l7PyJyEAIpIFJGoRw4rDLxC6o4whCPkeIQcVkB3DKxOkftj8OoE CCuE/hgUVQkI3UpPZ0KvyEsxgDo7VWFLwhajoRWpggdAY0Q4IMceOHkIP3wX+N1v/AhX1ydY0zE2 OSBlYBgEkjvkDSASkDMhJT1dGnJEEsaQNRuxyiUovEbHUCyfgIAkIdCAgHMEbAz9at6NsaWzhVcW HsITbHb/PYmUuAA9mQ7IaDH299PfwmOhp/YtP5ayXhrABqYKIQ/V/dP9PMigCIOYCpRWyRYvLOMQ 2NCyKiPyZOAy6pxMPo71O/y5GmI0gxW7qlU+JCGQnlYS8oSfTPoHpTm+/l1Zb/neyB8bvjojO9Vy kiwoOzWfFplXlFrhfdaAa/IlISgd9MstXyQqboLAQh6A+mGqFjgzY/AGVtdEBO4rR3ZM50ec+y26 O95N2751tfa5qFnOPbPv91abvEthYq+2e0BpraAAkCUjxghQTZTmTwZ2CUCtQuT1lEzKzfsPrWfX /XVbHY+4hiX2466bN29jM+QCfUbV8wAKxFcZYxbIYMfcICRhvP/JGmfSoRMqgkgIhKMoWK3XeP3Z J3H24bs4+vJ9GCphxN9TfBRpunmWLR12jz9fBe612Mf3WlrLx67xJfetbCz8S/XOveNeyizzm1Nu m7FUVwbAfdHaddXW82na89NQ7oae1WW/1chphqe9T+A8oM+38fgjX8Xm5lUcXWAo+o/5/JP+HYJm 81W3n9H3n5kU/TLAfmew4/5X8Hfix+gm9ANSLP+UA+BBp6IWezImDkRQt8K5nOA8XMJ7dy7hd7/+ HP7oW6/gBl9G7i8BoQdgwg0HBA5IIA3mgxmjQgBDrcdJROMEgibh8twAmsCrB4WAFDQzsGL+R4B7 dZsJhuUfVdDPCPb7CIebGxeHAEaWVIALABM8yA1HI/LboiFFZMKs5+6Z7GVB8RG2VoFM4YNltne7 8Lz9cLp+Sv0pawK18U0ACBtNtavCHBRmEDKoEiN9CbLmHCAgZAoKF7vZoOTIJY87UZ9/SqKnQJ2O VWBGHjaIPSEPyXy6g8VIAAmM3J1iffIlPPrCu/gvH34T//Nv/D3I+j3wsIEEgJIammTIBRaUu05j GIjBrCcEpL8CyJNYGb2HkYYE5DWAc3VxknOoehX37tvyuzLaifFQ5aVpDGaNfHZIae+byw8yR2N3 8Re/7vmWnE8uyRJ1f+q/pVJy0cYAYMqDSnswNTBOdBQeFSIRsSDlqYwwuqCP9bVl0u5KGavrprJf d5ea39ZjUv5uXIC2n/OXzMgY9RzNjP2hZW49RY/QTqY9Fa1UPHjKmwX1HS9wTu77pJ/tvtUkhtDo efb7OMEHCfECqHbJEEvEIaYkuA9ZPVg5jxCSBUpy6zUM5tFXvX0nFtvFJXueEnwtqRzWNmVGq16q Vys12D3YBiwLtMGgNf6STPAFRkZT15frZ2zB6QJV4ZwQJgs3mEDbjtey0O/zO/WNy+6PSbUwIHCo MkHEzVt3kNIYl1CPu2fSg/n/S1YuViwsRMjc4cMbN3FriLjUHZmGnMGU0XeMC5HwwQdv48NXnsOX /4svg7pT20xs4ySWQp6LouXlEEVL69q+f36cLAhLePaeGv1op0JH2ZgJjd91xKZt9evVRM73by7K BWO/lhriiW+qbrhBAABqtIQpgfR1PlXEPo3C9EUuc0aLlvnOGRH2Efjxd6PHFYqT1mdCNoxx5gHH NODjV57D609/DydHBA4ZsbMktxjQhQAF4VHup7j56jUTokKCuiKgqCt2wismEIrTK8sYnaGJn0Tp wSj8miUUAUQBGRFAVGt7PsKa78cN/jn8x79+Af/2az/CdTwA6U9LEC+FMaHW6KMOzQgb1BqWWT9E DCGF84QF96rbkLmcGNxnDhGgCAlHyMxAEfpZTw4sloAoKIQnUfE7LnOdpew7NaJJ5ds70jansZSl xJOVOqp1M5nnShph1GgfoXrSeKVQsbQWqyc7P8Qo5NJoZBnXpK0vQAMY01BcCWAGB6cYQzaUHcuW TCFikwYwRJHdEuuJP6/hmY8DKZwq8RrACsBGrZMioI4tfwCAbMIeme8+ovYLGRIFTECWCOpOcWt9 EX/22Bv4+Z95GL/+s5cQ0jl6GZCyAEmxmEIKyCzIG0GIAWTuWcmF7pwsAaXGOLqPe8oZQAQTg/MG LGeIGLCRBKIOe7bpKBAW0tiiGU6Fx4LwN5FLuPxPWwm+nJ9sGwml7LWRvhCCGbw8RqhSOKQSVic0 S0ze0/vHd8wI8CZ/CaMowW7Q9fVYsa9F2uen3q4Q1PfVwjrzNDYxIUGo6o93xxUZGWXbjDFmwN2h yu8LE1vzqlrY37pH3OI+Xp/QdV/XeVrfHC/cZQjYli89tteDvq1fPmb++2zvgMkRza6GbAvUM3XN DGI9eXNMf+mdrXY191zpbIV4sNSOueu72jVXWovqoWXJctf+fUj9IoJBciXUzpd9AsWiNeou6thX 9/hdjxTPzs7LvG1bKqZuMJN2ECBCkNDh6q0BV2+eg7oVYuwQI6PrAiAbdCEDtz7Gy099Hzi/A86p 8NEWbWBprbZ9r60EcxaPubrm5nbX/e2zs5aV5vucW8y9ztch5bOw0rfrvG7zXF8O+XxRirfFT4Xq /1umOff/3fSzvV7TyiQZKW0QkXHKCc899pc4++gtrGJCH1WQF0nFp98TfcXIo6U/wPIBpILzTyQG KzdFE1GloLammftROTo34Z96EHcQWgHUg/sTZD7Fprsft/lh/Pn33sa/+dMncS1dwtDfhxSPVBOJ HTi67z+DY1ALtCP6kFr6OTp+v/8dTeBXn/Tk8J0cIEH9/XNU9x/EFYS78psgWrArIct0rRY//4qR q8U3T/alPQRkmcRlTN1OKvAJkVFQt3snSaXydM3Y1cm6mPDK2k3Q14ns2JMyCjhtzMJknZEGVycE bHJE4g4prpDjCYawQu4tNqA7AroT5K4H9cdAXIG6TuMAQtR5DaqYcVRXIOo6UPBYAVXIPLEaRUNg Ch1wfAXv3O7xB998Gu/eCNjQKTY5aL6JLMiJMQwZaQCGTUYaRIMkBwKSoVEViNpthZ0AhTeXAQFr dFgXt9E5S3hbpnxtqvS3f99LrF293/z5uXpa2nGIjDSWKVrjEr2tx4LI8k8076npXCtMt+6g9XMT SNID+I+4gaqOdeBlpaXt51y5m3krRmhTeray3WMqq9ayUCvn+t/q1nV4afvqdUU0FrrcLEzVFrQb 3gnIeDTJMrVEqqUnGexRwlh/O6DbGwBAyaxLM/BUTlDrMqfBTLRf06RTpuLO5LCk3i6/pg/YxxYD GypAjQIz1x/NjBzK9cXF6ShHlWY/vc8yrlYWoZzz6Nflmn91OuPPMXOxK/C+Q96CfkRTRAqvrWn6 2B+vd+q6sbUcHYHAmb34/E0X4JASbt66gxpHuVUE3MKuJyGkY8gRyU4XEjFuDYy3PrqF//pSB8SA JBlZEmLHOEqC05jx5nNP48M3X8GVX7qMsyFBgtqxxC0h5o5Q3ln1fe5vYOyOYJ5wbhNfN3ksPHOA JUn/sKDsouF7u5sHbCL9XcsE8+4Dw60Zn1lpmcanEeS/iErAHNP9tO0cnze0Lbc0S9a1wRYSSgxI QkfAtfffwIs/eBSncY3jLiBGgDijCzQG+zKhC+ou4VCfavEf3YACAyS5JFfiUFEd0VRGCVH3bhEA FHJR878EMPcQ6pBzAMUjJHTY8Cnu0Jfw3edu4Lf//Xfxztkp8vFlSAiQQGqBj+a+AwGbtR9B0X0y BXV5UY0FCgeqgj9VcJ+ZWRN0cQB1KxP0e2RSpJ8M1YLE4hOEKlhpx683X24R2ToFY5C+y7NaAyXP CQAEc8tCMEQOp3fZra1ZE5W19IdIof2MnrJgy32yLW55JiJtD1MRamHPkSgOPTOXOsuzMmh/c1Y+ agnCdCxg7ck2XmqVjxyQkRA6IOWNzQOpH7gJYRwAWTNAZ0b3FcmOoYKbngyIZgkGVOkjATZJeUvO 4C6CGMi5Rzp+EM+9+w7+v79+Dv/L//DLuI82CEjISXNYEDQTec5A2mTEECCckZPmtBigGYILBjsZ So2tYSZTc/IZmM/1HITm9/hk/BshLpdxlebEHrY2VBDJs3S59UnXa1Ipa60RoG6Dr9UsUtBxav4w lXf0NH0qnJaYZYxxBTK2pUrQFYktIRtPTrfLeLi8lUUVYx9L/zmPxtycsgIU2PipHOdu5GlSbyt/ OWpkGX8hyzWiGbDH/Dt+AkN2mlrJvXMzYa9g2X6nzcqWgZGAIseSbLvALq2lbGhhE/nWm920a1te nZ4Qe/3RB8QvtAtoF3vS+6bX3LHnbhjbnOVvyTrul3cJCO1gahKYtpXLz3j9E63+gP4I0l4BTivP W/eNfm2VxYYI407Y8V5bVCJSfD1n75kRag+V35Y03slGnnmm9r3bshYExvn5gNu3z5BzxkDJAveq Te+ZTeFBSBsA6vsP1qC0RIxbucPr799A/oWHsBFlFJwzyCDrTmPAmx++iRd+8Dj+uy//Mjgea4bO Rigr8vUMAT10fD6v0ralTrB36H77SQvGreC7ZQDYoWztqu+nqXyec9Ba1bJkPV5mTYx3gRMe/8Gj uPHeq7jSZ0TKIHPlCcEy+gaBMn1GiO7uw4hR3YXYcf/to4GSVAw/rvCPwYsojFot54ScGaFbKawm rcDhCIlXOB8i7vAVPP3WgN/6/W/jtWuE4fgKKKzUQgyCBAYHheIMBeGCAcPoz+6bb8I/zK0HBf2n NyUkqjtR6DCAQBb4K6FHhrr9eObgpBK2QjOKuiSY9DzOJ1UM14Rs5JHpC1AEjMmqtexPtRCmSYem +52J1E9+fN2E7O6ziCqW+7S0NIUF6vNv73EBJ6gThuYEEHMbJRoNdparwOk1M2MjWek5q9InFBAG h+gMoIFMyDfDnFs8N5rwkIaNKjYb0dMAGpA2upaLPQwAZANkVeIGMM66S/j2jz7A3/+5h/HPfvEU lO5YZmCNzRgogZKAIEiWSE26oAJmDMZL1bFLXWOVr7MAQx6AvEHg2+joHDwDcDBXZoVDMteTT0nC WjmspQFzPExEfeclLSN2jUWVgMk6KS4343Ole5WRts1MvtT+MjYuTlT8wS3zek+rRMzz54nxtJLj JkoBjepTO0a1/LtremrBvr3W9m1Jjmxl7l19qeMfds0t9tACL1x31jtcf8ZKHJ1HymfObx6Um+x3 XkeDLjI5Dj7M+rhklfXvc1a1iTIjU2gpqo7v2vopT4+olsucpX0ZommaBGT7KGhCDOr3WnR8/YZi 9XHCSQSHJqvf4fPlT4llMazRVXb3rz6NmZ+vTNk+xjQq1CPVqLNllhz7KxkYhoyz9XqyCepxF5Ht 40DKE/xh4YhzPsZbH93CnQTN3OlWthCw6hl9yFjJgJef+j5uX30PbPWCzEdPFHVpdjNBx4pB5TMZ 86qt+8dzWgrKgWBWcZtrS3n2M7Ii/zhLS7zqa8BuBaEl4D+Nwv/nVca1Z9CErG4/gB0vZ8EqbXD2 wat45jtfQ0y30JGojEwZoAEIHvDLCAzEwIhMiIGmSb/MQqoAO3MIYmrt88ymQmqpIyLzB2bE0AHU AehB8RQIJ1jnEwzxAbx57Qi/9Yffxw/eysjHVyCxN0GcEUKHEDp1//Ns6CbUezwAkeYCYIoIoVNL X+jgAb/C6moioQdiryg+8Rg5rJC5QyJD9DHf/yGrAKwARwQSTUrIwiBkPQkBzEXE6MSMYGATtSVQ OI2bIpRwlT15vG8ksNP1z4aDUt5JecROByY01U8BeEZ42rWnWr6q92Y9BRKAVGXS/iRtVcqCQQIS FOUnxROkcIIhKkKQxCPNutwd2XxEIK4UDjR2ihbUr0ChU5jX6LEbmpFZzL1LmICgmZ7z6iI+kAv4 6uNv4L2bjA2dIklAGjTfhEiAZFaXoAQMWZCGbDKJGpV0TlBiVXLOGoDMAqaEmG8j5NsIWW30ZX0s lFaOQvVtd8nNZ/t3l8NaWUBhcFVzqXmriJ1OVe5gxQOiQe0Z276EeKPyACNs8S9fx7UcuLS+loR4 zdGQdW6ZJnKPPjOiG03lBgUeGOU9R6HUEkiKl8Q8z94tl7q8o2M/560Smjmfzk+LCrmrlDnjWp5u 2i0MyfNKzNiG7fXDdYVLL97XMC/kwtSBVtO6ntovak7QrxfvXHvnNLE54ta6/swVIipBWXOC2a6F vAV92Tw3lm3Nu237FBN6Worq1EBC+cJrx6MmDJ7Ma19f9vdhuzjxmPipNu+o5/B8PWC9Hsy6Nz5X oOfsCE3h35QISNVvIoJQh8Q9Prhxjo9vDeDVqcIJQorvcmTCMWd89NoLePf5p9HJGoJRUaohNltB vlVE9gn7LbHd9fm0pV0z9zqvP+6yNAa7vs/tkU/7+WkpS4rmXD+mfqhqlQ2ScNoBrz/9fVx76yUc R6DrqeD8K8pPLr79RdiPhBgDOGQE0t/Yfi/WfxcErY3JGH+r6KUMCAIorIB4DOYjUHcMCUfYyBGG cAXv3LqIf/tnT+LbT7+Ps3A/UjxRZB4KKsiTwtw5LClzKAAG5fSQLA+AJewqQmKICvMZV0BcIQeF 8ERYqfWfg54UeJAv3FA1FoeJ9LmgLEDK5bq7yPr/ZP7NcAAAIABJREFU1RnupNS0BVDrfjGgCkpw fT339Vqo18OWTzFNean7IItUwcC2Ttpnydqy1F7/W0RKMkY/sXA3iAK4kXz9ad6AQQKEe+R4BInH GKLmUkB3DO5PSkyAKgEq8FPoIKwnPhx7+99/i+g6jevgoLEB3HXIocNw9BCee+8WHnn6LdzGRZwP QdelRCSLB0iZkAb9u1YKACrClP7mp88mf8gAzrfRYw2ujXK0PWbzguW0HAoPsq8s8R1vi/+/S1ba TRN59tlpG9zQOLap/n/pWtuOLct59Wy79utn6ntaI50/Mye3jr/t3nO7ZNPtusaxaMe/rXtpPOaK K3dz/Vzq91IpKEA+uYAdjcj8IJS/he0IMhX3E6qI2BjotXt5Z0ADxnKo7s3IRNPjmzAlXN6euYGd nbziTuL1TEmz+FdXYpgnGvLYbwAilaIzY6Wp/l6eBB+f6bMEv5xBQY/ODtGaFcfW0TcYkNKd8h4R QSANKmPz1STxMdnVTut7tbhb7bZo+bJNENXi5Bl3A6i6vtkkrDd5FPi5fZ/OR4HWJH2XK5v+/swR 129v8PpHn+DLf+8EIX6CGCPWZ2cAgMjAcRDE80/w/GPfxs/+419HvPQwBgRkw6pZgulq+6/9RNUe TK+LTPbEpD6q7gOQ/RTK61uof+l9c+WnTbgFptaROWK69P1u+7k1Hz8l41TTvLroHta/1R7tDD6p PzwEEKAjYPPJR3jme99G3NzE6tjhPkdhni2Rl2bSHpN8qQKt+QECO8wuLFbABU6n9TVSTMAAAZxG E6vwTz0onIJoBQkrbGSFIVzAzXwZ//6R5/Af/uo13AlXkLtjwJMDsvrqCwdwCOYeY4g/FAAES3ar 0JNi18mw/4k1yDSH3jL8RhX+LdEXxw5qR1c3I49h0IYLspi7naOsAJA8wiLmlOx3Z/iMEBgj7rGh otG45gq9l2k0kK1udTeyyS2gBWWszW3GY7EyQMQInvvFMp47uomvnaIEmIGLKwOX0ufpfgg+CsUw 43w+O3PR2IHiqlmcgIuvv9IjRiJ1JHIan6E0PzCB6E7xb9Z2KEQnhrW9eK2/R1FHpMyA8QwKmnuB YwANAokdBAF3+AK+9dRb+MWf/xJ+9UsXIHnAetDs1QxBJFZY2gSkqAhZHdgy8FrdZAq0qTUiCYQB nO6A8y0gDmrMzc5Fxj25bSlveCWNrjGjr7/dI824N3xgrrS0TJXhSiJjRkZCykNZN14yEjgwkGyO C9ynZnHx3eBjMr7L+fK8K2pZe621ewEVsYbNRTEk6P218jKO4dS6Po6T+9jbENq+LXEtDe8QUhlE ld9Q7nE+7vsN5G1gG1rPnN0aODGR3creM7kWDR3fVxbHFcv8fqKsLNS79wyitTB4aVEsWmF8d6le S1NL/JymWLfFr7fa3lxyhPb6ToVm5l1tUNc+rblt072UUv/s0XrVdtlNDGafadp3N5bQpTk65Lml +pkjztYDzocNPLmXPtRYGbiKiZAW2clhrSLOMuH5N69iHU6QKZr1MppFLSOy4AKt8cazP8D7r76M ThIczG7Out+u+znryq4x/CJb4L9IpbXq1GXO8jj326Fl3xwe8vlJlCVa0K7Xuo05D+o3KgNOOOGV Zx7HG88/hdOYEcylsEB6BphV3ZUBvRZjQKAEtuzAgWGWdxQmru1qeITBfo6Cq7nUcATCERJWyPEC Mp/gnC7iJj2Irz/+Nn7nz76Pj/N9yKtLoK5TBYYZFDuAgiUjC+riw3oyQAjqAuJZysxNRDhUCD9B 8fxDLMK/hIhk8J9JLAcBE2rXxdEuVKHL2f8BVFB4HJWjCPXAxIC0SMebeR2NaAISqcYPxd1qXwnw AMfpe1qDxCFruaWBk/fnce3NWkhTnmQrFiEMIGQJSNxDwlFxA0q8gnQ9pNOkaxSP9BTAMwR3PRAs 4ZudAmhQdwACI8Qeiu5kABHE4NP78c7tiG8++QZuDD3W0iNlRhpU+UiigegpEXJSa/9mnTXAVfQU SMygVuQdceXhDB2dgWQNymPW3t0GmrsDWrhbWjN1b6at33wu55KX1etjzrByCP9foo9LNHSJZ072 g//fvH9O1loar3qNzvWn1MvbFv36/nsxOM3xjVYpOKTOen+1Cv3S/YfUG+cWpcMVAags502Fah7C qKLaf9mvqSXAwQpG/7j5TaBHR5qYShFNdGAisfmUG1rNDjz91kLt2tbSYMwJE0Wo9sxtFsjl1pJ9 sKeO06+oPYItVx+vHgEQFD+0EQdaE+SQSLEkzxVhTLXIybiM0evetzI2NDIqDQrbPom4u9LOZ+uS ZFd9DkizkrId2282G4VjI3f1AZT5mXZbNY1NCRB4llO1hGkWUMKGe7x+9TauriN+9ugC8p0bSDKA CIgdo8uCFWfc+OQjvPbDJ/Azv/yPEOKJCgZ2Ekak7gWSMqjykRXsF+hVEan77haymXvpsO9ljX5G ysQhlqQfd/k8herPUwlrmcqnrasu2/WO1sMJM6nrMIuUBmiy340VBuRP3scz3/m6+v4fmR9z1ARe DmXIYYT69ORfmu1UXYE4kiL+BKXvRBoEqnG/bv1Va6GUPqm/PIjNCn8M8AmYLyHRCTY4wjpcxuOv DviXf/AdvHe7Rzq+qOg3AELfgUOHRBbLYDj8AJfTAdNGwLEzNx4eEYBCB7jgTx2EIzKx3mcCZTKU HwrR9rDGSDERKHtMmwuBqULFM4VAgCRj8CsAi4BAtbENpUka16hKwPd1MEl0VGY5Y55Om+uVUAkK FhGALYsw2VUi+9Pf66cyto4EGoTcGslYf9QThtHPvaZXym08G4LRvCyT7KeSDfFHxrBZIQF4pT70 vXoBkAioFw1CJkVyQ4iAKKdyXMEMgEUgicDBTwUESQLAit6X8wpnxw/hsVffx6+99hH+21+4gAu4 jZgT0iaBIrAhqNKQauvuOBdiJwJclGxRbB45gwy3EFdqRAqGctNy7JFGzAOPjNyycsUCxjwAPg8y vc/jQ2p5ZEmwLoosUQk0r8EjiKjMr5D1opLXWEUzu1eQ8zBa9F1Z9nVkrlJEI73S9eYeAPbYjHeF 9m5c8do+Q/dh3YswOYKN//u+GyuY8stc8uWw8XB3f56fDx87V/KLMcVQjTi7d4Vf3+7DVMCvT3um fZ4zrC+V8rwrapjOs+cdKeOGdJBYNzET+AtqArHdISdQjdbVamjN26ci6bQUgavScJIfqY6N2yJO SwzY67ibAd56vnoHCBNEhLn7y72Yn+wlJaR2k5k7RdklYLRapW7aHQHIzd9zWuWuskvgOcSypAyh 0rIJuG0uOiJ6zK4wdNPVUxJ+JUyeJSZNtJGBQTK6cIS3b9zA6x+d4WcePgYCI8aIxIMKNAQcB8Jq WOOFJx7FP/rv/zlWP/crEIf0MwKQUip+rJ+m1MrDePHu6thn3bjrNt1jO+617FoXSxZt/+2z6PPn bbG/1/r37e/teqX5fyzlWNl+H0/SEhiCIx7wzvNP4q3nn8BJGBB4gxAZI94/KcKPW/kjIXYa+Msh l1MBddUwNyB2dCAgI1sugDoZjyZszAmg0IOxgoQTULgAhEugcAlDOsYdXMBr1yJ+6/f/E55/f0A+ ehDSrZDBCFEFeGEq8J1CangisFq5TSkgViFfoP7/COpvrgHCFnAc9BQBoQOiJgPLFDSJIlXoGqJW 9JyyAQToGKXKClgL74Den8xoM5kbjEJ5/ewuWuqGEgDqanuQ4clPQreNVXOn24t1OHrRnlIrMVzt VRIpLj4sqNxhPMjW4q1s/lSBMz40CGJ/rEhS5OAMAtB5GUOWEZwxW5t13KFKQuwgRGBskJFBq0u4 fusTPPLDN/CLP/9P0NEZIlDiyCgJho0queoOZ9CsbG8hBihA8oDspz0QBNqA8zkoDwAlgOIomNV2 uRnZ4NCyz8BQK40HGadclrG1W8sa5YSg/D6jRLgy2dbdvLq+rz1V8Kdpcm+1P5x+iY+1GpF9vpYk ulpGnch9MhqN9bfd9HrOiLxLzqxLjcq31Q5vv0xdltr6dp1i1PWgmrtPU9ijkcsAaq3V4jArqyVt 8pdmUuz7ehECKFHbWw2zqOk2GrkW1OugpBDVAuSwY3bz7IC0ZXKEVC2MXaV1qWm/H+J7PZnABrVn 6wgKqfwuUA1OmvHZdzxUC/B1WxWvIJVMxXWZ8yXet4h2Kwrb0eXOgDxBkMZ06G/MsVj/QwjYbDYY stjU6jojO4rPBYSrWqPiODyhWB9U4QwQ6nFjOMazb15D6o4Rj44AJsRVAAegs89pBG6+8wpe/eFj iHkNKe5s6iMplAuKST0PIopHXX/8Pv+9oJ/4dTXObX2WSp2wBEB5z2dV7tZ17NNauOux8/qK9XPh fZ+n1f4nXWp6tEu5a4PpUML+t+lDiY+pmIInpuqRgTs38PSj30DYXMdRFMQYECOD2HC1zcc/MgoS EJEgsu3lAEUCYiByKL8FO6kMcNqgODBCAYNkJNHgz0w9UjhFDheR+T5wfwXnqccZLuJafgC/8yff x1/98G2k1f2afAtkSZ+OkKH++yVRDqulXgV5hhiWPwznP3SxuhY0+y91lkMgQkKvWYBpBaGouDV+ aisa90W58mlPFleVE1h0TJXFbbsz1IHAoQ68xchXy7Ud619EpfdJdvbyPsJUrhiNccoHlFZ6e8q6 qFBHpgY9ABY7Mgrx6otN9fPevurNriz5/VqnjpWwFH7vyFSSBo8MNoMPI1FEsuRrQ9REYRKPNDC7 W4FtHXCI4NjryUBQX7SSAC4ov2D3SmCqEoRFyNElPPf+Gk++8QkGPsJGAMmEIYkh/hBSUgVlyGKJ 3qDoVZlQx8f5KQ/JAMIGXKHQFOSXGl3H1so2XdP1XHbzDCqMnxxMUf10vlPFc3YpbKpAVnzS0O6m 75gzEDq9Ka3VvdE87zILkc63ovNl1OvS1+1YpjGc9R7yAPhWbqjHJ+eMTd4Uq/y0w3lSr4ho7g0R ICtSFleABa30Ikj2weQzjss433rXSD/YkMr0/QktIEy97/cJ/0sy7FwSsQmNmXleC8PXXB1AXOUB 2NbY6opaPNe6sZmAMNOhQ8qihiyCMIN5mquED/OMk0qGRR+wOY12V1ki0HXAXf2+yUTs0RQnitbM e1GNQzvxh4ypELB9/jLflkOtErsW7lb77X/X3Gs3mvoewDbyOgGi8H6+tn0cSmI18QAgI7A0WohQ GF5C5h5ndIIX376Om+nv4L54BO47DMMdMBO6SFgPCSsSxPObeP6x7+CX/ulvor/ydzGANeMmjRuq ba9bUA4Zs7n+Tn9YvlwIIcZ1IksPfMalXs9zVoylew8tn7dFvi1fNGXiEAuPfh8t+s2dW9en+7ii QXnASRC8/eIzeO3ZJ3BEA2LMQJCC/R+jJ/fS/7uiAJgSEIOeABjjI6aR1pfAPJjfNNuCVeE1g1X4 5mMgXADCFUg4xRoXcB5WuJku4yuPvoI//PoPsI6XgHiKTFx8vJOoW4+AQOy4/Ab1aT7/IjS6BbHC dxIFE/rV8k9xhUSMbAG/EnpkZk0GZG4/LIw0DMq0y/hVrpNmZSaiCR8Q8vGfPiMQBKJZy/1s7o45 ZdAspgQC6nfOxLu1fBvkp+AzQATVeuGKrjN70qZleFClgfPGI28nAJCIJtAKOhaR3L0Kij3PQedV PGeAoItHyKZ4BNE+ZBF1IYsZEAGvVpA1YcyvQAidu95sdN0O0NwXQY2IubuA65s7eOQHr+NXf+aX sFodAfnMfPc1MVgaCGTrf5MzOjt2KTRf9MSMQJA8gERjayBrMARZkgaqz8gA85brwzP91h4X9VwA U2PSXH2t8cX/r3l1XaiWeGdKK4AKprIBl1iYBaHWRLH2ei3n6W+7TzWWLPNaj3+rA6+xdd/k7x17 ZO7+1vWK/PpMzMy0nYfR/6XfWllySQbeHt+xrlHBA6JaqmnUdOy7a41ekXZYsy6mvOSPiEqL3bZ+ T3FyR182IkGqaZowsgxGKEfkHtV220Fx69dooS7IDDW06HxrF8suJQC4Gyvq6Ftel3phyAIE6r62 zJeGucz4Xek76/Gj+Rt3tMlLxtRlrGwYEniyGA2sw7a1ggLO1htsUlJIcA4QSQhhSjCVoQY7KWEk dQAAUUCWDdyvNeUA4hO88eG7eO2D2/i1h+8Hn90Czs7BrLr+cRewGQSXouCj11/G688+hb//T7+E lNWiiDQy8LkxaK0WXmTrj2YMm+uLy8d+yDPKZj12+1CC7tXHf0lZ23fvF7V8UdpY0yUvtWI/7rF5 31S/fxQEFoAXGGpBo4wOCXz7Gh775p8i37qG1VFWXP+OQBjAgRBZsf6Lm49Z+vuoMJshaCIkYlFX ITLXCZKqDYZiQlV7OYKkQ+YVEC9C6DIoXkaiE9wejpBXfwcvvHYTv/3738T1dAocX0Rmt+gqoo8j kcRO4Tw1yDfq/0QAB4SwAuDoQJ26CJV7AtB1GJgN7lNjBDIRFFZUXU8hSqss/KgwcwLUEu9GMAKI 9JQgyxT9w31w241daLdbYeEC8BSIIVhsx2jxVJseFdQh92EeLcrepum7nIBAXSTVlj9ti6+0nCc0 Zc7I5Ou28uhuV2e5BxAfJLUuElk+NC4KbS0YEqCnABZ0y0QAi+py1p4QBNS5USSBIJCo/RjWQJKk OSJiQEICD3oqZAku9DQ8H0H6B/Dy1bfww1c/wgO/cgVHlJFkjc2gp7ggBg1ZXeEyKS+An+LrmboX IkGgBMg5WM7R0YBBItRS3xhOaUu21HEUQJDLuE4URSL1QAKQoKg7vrCmQjIw+pjP07llpS5D92/A lObrutumQ9OYAX+eEUzZTLMSRMHor1GjKEB45LBim07lT5j86TGc864ypb1sJ3SG2pUNncf3Qkv+ pzhMeuZPTJofAhhhbZ1WSxU/IVVcyw7BW9u3reS7wlR/bw1uh5RaKTlEqXOFam4kuH7gEJSBOSJR HyssNXhXkgyR8Xevo06sMSeU7FoUXuojGWv9ciPusSxpZ7vuq7+3i6D9rS61oNAS87YdU6Hi3trs 9+4SCts21PND1BwtV4vVP+fn54AokXJCVbs0qDARil+pP19QGZhs3aoVMFOPG+eE596+Cjm6D+iP ETt3YwAgCauQcRIEfOcTPPfYd4Cb18B5sKPHeUXI2/KTFCjrNvwkPv+53HuZs9bUe/iQcV+iIdN3 GP0UwXEQvPHsY3jjucfR0wZHluWXcjb8f8f7Z8SOi5sP85gDQIUdRwqiIhBlggraqOm/Iv9kUYU9 cw+JFyHhIhAvYeBLWNMFrMP9eOdmh//z9/4Cr35wjtTfBwm9uXKo6w6x+fOHCKFg2O+dWv3JXAkt 8y9FfSbb6QAsm6+EDoli+TtzQDI64ehhBXNfNCDTTze4mh+fI5apC+WuPVHPXXtfC0zhwkZr3fPi OQLuxXWvdVWavWcX3678+VsevtTHGlYUcIpqf0/i+vTvJBmggAGeJ2CFDa8g3RGkV5cgiitwd6wo UlERnDwxmOcE4NAhRIN9DRofAo6a7K0/xR2c4nvPvYsPzyLW0mkOAERAoq7bDGw2yRCBdJ4kj4K8 iJSEYJDB8gGswdiAZmSLnby1cc9t56d209hV/J4tQbP67JIT2vnzeZ57dyvnlXt2+NUv7ZE5GWVO +Zz8jzS7l4BRcN/1nqWxrPe0+tdvoyTV7WvHdKm08tpORK2mLMlZHquxjzf4vfveM5F2FBN49BnT oke/Af6hia9j2wD3sarr1PumPmVjA2hyr4iUzaGdNOFupoya1rbv3NYinWzQu4i+linhXfKhXh5k a99i5rc8Wo+A4gPe+ooLqR2i9EswSeO91V8ej6qXGMcoMOyy/gvq48otolDV7+OsmrfWzQj6ETua r3xUkQV3zjfaZtEgXapQTnYlEyuWK7F4AJidhhgprvDs6x/hxtAhrFZYHfdgS3zU9aoIHEcgbG7j nR89ibdffApR1vB1kSuLmZfiz+8bL4sJDnfHmPfFANTjeui1zxvRZ34/HW6x+NtcWga3f8zm6eRS cf9qpikMaIQA5zfxxLe/hnzrQ5ysCMIJgcTgcanEAXDIICR0gdAxoQukuVnMEEqcFfOflB7UQkcG IJVCLrXbT3cJ1D8A6a4gxctY4wRrvoB8/BB+/2tP4mvffRFDODHMfoszMxcgFeztVA6VMB4YFAM4 qtU/E6lATx2ENNGX+vpb1t/QI1kSsIwAcO0/rX0IlRAjpggUP3hkQEaXUudvLECkyihh+7Cmk3M0 0/sxTdZWzb6Y8QtiNv/xOVUE6jixZT47QU9bEOhEBIS8JbzW/KO00TtoH4Yg0Hh/EdIq+iYiBfXI 7pwKQR4rKFzsyYkYGzBS6JGCCf+dfhA6cHcMGORn6FZgSxYG7kGkSiCHoHl8OFg2XNIMwf0pXr46 4Nl372ATjpCI7AQgQHJAToycqPAuoqhxjhnw5HPeVw6A5DUCNggGIuE+1nNC+ZYC1cRe1plpgTG+ UnnpePoAlhHxhUwhp+35q+UACqMgOCJMTWMbvHiG25YCbct37lM+bd+EZ9frseKbk9jKRSW6Wses /dT9B1D1PhaVKerTVVWww2z/Wvqq2YLjeFWmczg3BrD7PPtuLdfNKVV+ra1vS/GoSss35hS6lie3 Y+kGVUDV78BcjAlM6v53EKeZ65SOQUXYZsa61n6WSrHCHPDuQ4WP3Zayz/4UYN/7y3Vr8gj5OV6b 69fkb2NISxmT596/NP73Irjts3i1727fVf8vUJQdEcH67DZS3igzSFkDyMQCd7LGAfjCT9CjcF8H CWN6bAEgxMrO4jHeuHoHz79zDf2l+4CO0B/3CJ37PSesAnD5OGDz8Xt46lt/gXTzOkIe4Efuc9at OUva52E1/6JZ3ev2eKB+sYbt6f/f9M+hYwdgNmtlW9oTAf97qe5pXdkQbBJOeYOXn3oUL/3we7jY A4ETiLNZ/FWAIc4KBWpBvyozCTjkkv3XUYD6GADKo6tHeb9nSlVBHNQhYQXhUyBewYYvInWXseZT rPki0vHD+M7Tb+H//eNv4IwvgFbH6sNv2XqZeg2+NB9/gv7mLkDqahTMsh8L5ntmLrj/EjokRKTQ WbbfgGyJwsQhROGy7MhUi/dMHpMOzc1jXZZ8fufmsrxnD92eKx5U3BqRDql3X5nLd1IXH5vt5FbT e5yXb61b4UI3yh6wQGspH3UlGyToiU3sIf0KOfQ6h7FD7lbgblUyOmcOpiyqwB9iry5kMYJiB7KA cSFSxfLoFNfkBI+99CFupWPNC2AuSDkDKZngmANy9njlcVwTBGDnwRlMGTKcaZ4M2T2GS2Xpvjne Xf+9ZNWfq79eH4dYxOvnltDwlqzhxZOjaVIt4M7Rz330sP4+JyPVa64Vpg+lo7veu1TXvj23VPcu j5n2uXr+nO/O3d/WV8MJA1P+49dji20/6uqlGkyiuVkDcwTY1uQEyDb2LO0gTRtdUGH8ehbLHLhw nCGNRXzPot9HqObqr9vVCuil7ub7YdosMGbLtHvNydsJJrkyVXi5uQbReKkezzKxTTvrca/7PHEB O2Djjbe2hMK11tC8p0UXUpvOqIVnm0NrCwFZBuQ8IHrMBitj4DIWjR+g900YinsdAAylPSD1BxVE XFv3ePKl9/Ebv/QLiCcn2JzfQLeK2AwbhBwQRXCcMi6tz/HWM4/j3ed/hJ/99cu4PQgoxoKLnM0/ 0TMLisMFbg3U9GsRJhwhovm9rLM9fKLgIjf37WMv5XceT4yA3esXmO6de9lHf9PLnBWntvDM/Q9g 9rv+79as0Uqnv/nvXn/CtLhlnKALlMCUASScIiFdfQuPf/1PENafYHWSEDtC7FToVxhP9fd33P8Y AQRBiB4HkBFZs9kSK+3SvovGA0DJiLtGCMgErR6huw+ZLmOg+5Dig0h0WZPzrb6EN68z/sX//R/w zsdrxAuXkYg0Aylbtt5oCZhIYSKFWP2MEQGKFhwsgLn/wBKCaeKvXtF+qIPEXl0/OAAURzdBbbBZ DAaln3nMjp631rzRteofBGqFJSogB+2eocKv1Frq/IVZLbs5a/IwEW3O1jYzOM5xj40wih4PAED9 /IlKwmHyZyx2wSlVy9+Uq1TgGi64eUOc5vpa5m1BCzD3JF/b9mxBEBKgOLMLJhZ0wBQKZHhwg4VS YpPdFUzAMQGSwDmBzWee0wAk/Y1IA3AFahnnISKzgIJAJEA2KlcwgEF6DKsH8KN3ruKl927hv3nw CCS30KWETGIhYATKGZSMD7mPPScbYy6BzJpDQ12ANIeAjPuSpsbNJRjX7YhJV04TCEC769uyL2h3 NGhR+U62/oA5Gm9IOxXSGNkrar7XdqeWE0hQgoPJ5IB6XEq7Jw11fqtKub/boYXZZEgh4/UiE9lo VIx9xPJ0TwnbRmvb3SjrsHgJwPaO1Wv5rcZYHwGVE8CpXLbz5ADbxoR9fPQQo1CJFarksnq+lua5 qEpLYuDk+MGJy54stYdax+beU3+fb/j8s35vHaPQHpEcKrTcqyVl3+mE4yW3vpT1/YdYCfcpP0t1 z9V7N4tv6T1uCay/Ly1yh8dSwT5rDAAcUquN2zA4O4ooiiiPkFtLFrqEiNt0hGfe+BAf3BasLj8A hIhMWeMBIiEGQR8SrhwFDB+/h2f+6i8g1z9CpFyUsntZx5+2zK3ZT/O51/e3bWnLT6Pw/3mM5xyt af/fNReH/F6Xek22dC2lDTrZ4JjO8dz3von3XnoKF/uMvhPEAETSde8uPaMSkDUGoGMwUwm54aCM hSEQ3rYy63f101cBfYXMp5CgVv/U3Q/0V7CJ+v1WPsX/8wdfww9efA/x9ArErLdg9d+us/kqrK9h /QeLATAXQuLOfLyjuY0EDfKNvSb7qnz+xbIES+WG4JZ/F1SJKl93C5td2vs1c52zxLU0qXyv3Fr9 2hytLzyKp+toqgg072zRimbaMwf/DMAs77tlWdb1AAAgAElEQVQFknbNtfWUE5NGOJmjJSUbrWi7 2X5zmptFcf0HEBIFDNwhxR65P4bEY7XsrxQadMwK3FeuQOr/765hsFMijwXA6gKurRlPvPAO1t0l JCj6nDpCMYYsGLKA0KEIw6SnAVmmexo5AcMaJOe6RxbGcAlJ7V7oc8uX6j3Z1lfLbv5se7p1aBva vb9Eg2ZPgBb6satfQts0dDR6TGlRKzcu8atd4zT399I9h/apbs++55fGqu3bCMwwz5eW5LRtuq0f nvhsAVs+gWp5ynq8msfN2gbtEjU+g3s66D5xmcwoQ/vuaxFb54XTOaSNXaVtB7BNmCfKQ+X3PWc9 1RwNU729bqfZ6wqqQNsHZ0beDz+Cm0zkDO5v2x7v1z5Nc2l86jiP+QDukaGMddRBJ+7Tuz1v3hbJ hM0mqeVQYITaV58/x2V9FPx/rk8fGK6+alsEmQiJj/DOx+d48qW3IScPYHV6gtAxhMXcHgirPqDj DS6tBG8+8328/MRfI2zWU8adE5CT7YoqcM+tXBgtPTV+dkuY248LGnMbebJZZ9bZ3ZSlGJa7qXeO wH6RPoe267Mqu+rb/87Wx3/8XmgrCAp5q5j7vg/GeCgTTHIGWAwaOaMjwknI+Pjtl/DYI3+KY9xB 7wm9GObXrzSqC2yQnxYLYBZMZzAq/ANMCuVIpEpA2RvFEsYQCcgckbAC4iWk7gpSdz9kdT/OcYIN nwLHX8K3Hn8Bv/cn38TQXVCBnQngHhxWyK5IlIB/3esSDM8d0HiAEBCCogIJGJlVwJMQkEBAXBW0 nyRKO1JGIfA6vtX6t1gewIUEgScGHIWO7aBA37tOp9rfxxwiJvgSIEHKiYkbMFgnEpJGdzrnRTVv zlAiKJLHE1KgZETVk6IZBUAboXYT9xcnt8qizKGvu/LxAEIZ+7qkFE3dO7QdOScAqhS4m9VEMCQN RM9olClbV6oIEFKIyF2vrkCxQ449EDtw12muiBBKMDCbz38IqkCGEBWW0nIGKNhQB/QX8Ow7N/DO JwLpVkDQ2IMMQk4KCZqz/q37bVwHHm8G89kPSKCUQJIU9rUoQyN9ndIBXS+eL8nXWWRGoDG+UixB XUsfGIRAo/HLY9OKfAJM/veYzpEmVQHwM4Jvm39kvCc3cs103Xt/PY9OtTp03GwdjZfHOMfxpGwa e6BLW9ery6Fjw/LoRiY0yXs0GiTde4UxFysBbMuLpXrRk0eX17xfZRxZDSNzJL6mC7vKITypvacY MZrrCrzAI5pneV5jpbaLjin7A0ubu10k9X0tSs8uTWpJSzmUObeL29syR5hqbXKfAFwnM9vX1tbq PNfHfVajVshr+7PUjnI/zf9+SGl9wu61jM9vM74tgWxGSap/T6IZfj3pjd/j/EAZJukRHhuudpWc ToUIRQICEwbJmsglHOHmmvD9H72Jm/kI3cXLiKseMUZDOtHD3MgZxzRg/cGbeOpbX0O6fhUrDI0S vM3AJv6sM/2rN2q7Hpc+u8f6i1EO7cun6fPdlM9auD+k7Juvu+3fLro7l+TL/ycTOJAFkgdEbBDP r+HRr/0xbrz3Kk76hFVU14YuwOJfQoH8ZFakn2hIQKFKAkaEoiyMEIMyYaKqmDMGMIAVqL+E3F3B wJeR4/0Ywn0Y+CJSuIyX3rqB/+23fw83zgkUTyEGLeluPCF2JsyQHT0Ey+Kr/v+ZWC2+0N+IowqB rAG/CD3EAkUzdwBpvZpYUIsL2y70z/EG0cxQZY+3vG0irJoF23+fo4W18WRC8/NIG/w6Y8ob5kp5 Rubva/mKX9vFt+pS06z2ne0154dzqCTtO/zeULVvi66mWhFSpScRI3EH6Xqk0CPHHhJXSDEC3ZEi AlEwF7II6ixAeLVSq39QeFiFCjX3sdUp3rvDeOzl93GOHoMlAEvCyFmFxiFDg4IzNA+BCbG+3/z0 AnkAYZgd311IPnP8ZJ+s0v62j760ssacMLnvfUv8jWbmce4dwNRN8tOUOdlz6Z27fltSfup37BoP Ks9sz9muZ++VT7Uyxdzfs881z7ftBBTYoSmNnx5Rcc8Apr6E2h/F+HWfL39GZvBb9Tm9N8ATRth7 tu4DUBHQsU0KNSc0ZYzl92xW82aB7gtm2XVtsrjd+lIYiEfEw4ih64x7SpWieteCqQVJf+8hZc7n cBeB3n652+H9aHz05SRMtUzAjnS5PsJrvRr9ver3CqjPpwxJsYopV5joatXXrJe5MJs0qAVDU4Oz +d/SGIkv5jIAtT4lPsZzb32EF965hX/ypUvA9fcR+wxsADZr6FHX4WRIePCY8cGLT+PZR/8Sv/Y/ /k8Ywgk2rJHyOedxRj0eplEQUpUGfDLmgxG/3aNd6lm6XhPcH7fA+3mWe2EKSwr6T0dpvXqdBug3 mV4GwBYDs/VDiY1hElBOOAkbvPzdb+Glx/4SF0LCcQS6SOCgWcdDZISolv8uMmIQzQvAsCy/atkK QYWWEMkg9xXxhQSAWVKVxkPddegI0qmgP/Bl5P4hDHwfzuUUtLqCjVzC//qv/g88+9pHCMeX1apP arlF4GIFJO5M4Ff6XTK7mrUf3EFJuyaRGjKDuq4E/yJYcDCzfq8KSQKkOBGAiCd03d1+4BZ6IsMA MpqWSYNKZ6x6wfgdRODQOJKyxh1A8e2JyKY+j+AZWewkWO9zXH6urDyFjpMoj615Sy4dmqULImpO 1usmlIpbhqcGpaJYKGRQVQuXcfG8PPbE5L0kKGM3R58YVDKazyGPuH8/EABHaSJN1jYQwNyB4gBG D7GMzBBA0gDusp2QCGRIGhwsAsQMWvupRwBRRowRaehx3l/B069fwz//lQew6gL6PCCynjgFJuS8 QY4AJz25KW2SqXGHRE+IEbT9wU6AM428q+0pUCLkgBLjY6csBnUZRPlkGytZ28iJqMSsiMlLOleE Ei/XrgegQEm2ct7k/oWgsdEwAePT21EKZO8vPbb31dWWNm0tFb+Pt37X8fEKWOPyTBBnsXwXLlOR yyJmtM0qUxCNCiYAJJGilGrsAsp+ybW8tNVLn5tKLmr2zVypY24PUYpaA2LZp83zo3xi7y3yV67a Om2H8o6q0XWGwiXtotX8/NqctrnL6r+vLGlSu95TrM40v2hnix1Fte9u/z5E6Pg0wki7EZdiAT6t wDNnIbrXOibXeLpm3B90cqS3tF7EFMKsG5Oq1RqwvT6LexFgFkP91JaXIQM5nuCDmwGPPvMmUn8R /YVLGHIGR0bXdQhRiUfHglNO6M6v4wff+ApuvPEyOtG09a3G3a7LXZaPXdfb5/eVLUXwb2H5SVj7 fxzlbvZivR4LvU4DTljwybuv4ztf/SOEs6s4iYIuiPn5M7ouIAagK9j/+umCrqkYqxMAOyHzWB21 ZKK4LWhhCHfqBBGOkcN9kHg/cv8AUryIDR0jhVMM8Qp+90++ga/85ePA6gqEVyXDr2f85RCRoW4a FILC8pk7kNB4GiAGFZpBAPegoEG+OfbaFu6QWd05anhghbfeHsu59bRlYcvTfTfH12rBagz2ZXgK rpZX1tbLGqu75a3te8r3iRVy2vYletTy87lTgVbYmLR5xrhRP+fPhoU2KU+YrWK7rdnHwV0bIjYc IN0KEo+RYgfEI0i3MregFbjrzYVU4wHgpwJBA8AR2KBBCcIBqbuINz8+x3NvXkU4fRAZ0YxJAesB FjNCSIPlAhCHB1UFlDkg5Q1EEkBpa9wP2dO+v/y5XXLXPnnMf1uy9rfX9gmfczJUvWZ0OeSt31r+ uLRvltCC9pXaELqrD+0+3sc32nlo+9XWfbfy09a4YHmOl9pXt3EXbOiu0t7HrTBTd7pMdqX1JtVR x0blhAAp/pT7BCIWBldQZh4MtH1f63tuvnCk/nNtsqjR8jynVS5fX/Ll9/uLr7cfGyfLPDenOOQ5 AWXBF6y2kFeuRTUzmStbG3OBue18ZmbjLOPTm8/ilhLivokzvoBEao1vsknPExX12UxpjImoNWR/ JhVUARsrQ/Vg1mN+gEarhLig0OEM9+HJ5z/AG1dvo790BfHkBBIYEgQcWZOFRkLfMS4G4OydV/DE f/pThLNP0JNZ9SrYQA9irn0zvY/tXqrX0aFzs69sCSh/i0ornCwpZD/Ocfn0CsnUV3W7b+r7WmgQ nD4xkgBJAKaEcH4N3/3qH+GjN17ChQ7o3MWHEiJnMIkJ+IQQBRzE8P5RxQcQIgcEYnWTIxVS6gQ8 5X8QhCIknkDCBaTuQaTuQaC7HzlcArpTrC59CX/15Mv43/+vP0QKJ4rNL4QQOjApek8JCmVz6fMT R0vIAw6a2dUU/oSgOP/sCb6OkKlHIocDVVdCddXICNny2mRSX2jthKKsSIL7BpdEYJ6zpBZ+zQtY cy40grHxB26Em/HkWix6COMxD4DaJ3kq+AO1dd3risSTJE1ibffYDa+jTqDpdNgDfbVSwy4v3s2Y 5DfhbONeYrigC6HEvrV5glDqKNbJWug3Gp6RITOMquYi3mcCSpszUfFvHoQxhFigQRE0GFihQXtQ 34FNqRRbTxwDQuxBVXwAiIDQY009fvTmVVzfRNw+z8iJkDJpdmJhzSobu3F/SijBwT6egXQtxajr WeDzspsuGKDtJEaCiMr6E3d3tXVn2ScmBrEtRDei4gGxy3jazs1cwijJ+oL6mTnlQv+u5LkqNk6L 5hXwPEY+422+gHFdTfnqkiIjFo/RyjKjtOU01a4sxADUCuuSe/Uh/MRjduZcyr2+dvwPqXtOcW+V mp3KnMVgFtqRZRLzGtsOb1k3tybdNS/73RtW1SMyHtTsUwgO+W3S+QotZt/g7dNy6/YttafVHpc0 fP2+rH3va2edslsrnL8vm6vJvVgN67KlQcqyoFrP5yFjqsfB3g8GUZ4eXVf1DsOgJ6id+vmCzH0M DD9S1keVDQ+yBiiAkJCZxqM3Ikhgtdqb0J0oAOEUL7/3Bh5/9h38wj/7B+gvfITz83PQhsCJQBYc d9x3OB8yztM5nv/eI/iZ/+pX8Uu/8Zu4IYzB3QUEIG6Odmnan/p/ny9lxDuHbHsMF9ZQvfn/tikA h5Qf95h8lu/bZc3Kokx0dEETkKhYcDEKXnj8Efzoe3+BS/0GRx0QocKh+vw7/j8QI9tJgOfE4KIY OBw/sdMhMRcgUwRMuUYIEERQPMEQLiB3D2AIVyD9A8jxMtZyjHh8GW99cAv/4rd+B1dvDojH9yFx VLEzKGY/c1B4SUdugSaqUeWC1Yeb1ZpLHCGswlymDtmzvZL9HzpgYonmWT9/IheM91s/XXxof2uZ 8Vi3z42WgBEasxSD96xhrZ0+MLujx7aV1+t32p+JCtyic+CpgGYCfQNtWtOOOYNM4edWN2F0OdhV at4095vMEMAJHfM28Tj2akTS0cggEAeIZEg8UvkDKnxnAJQTJCdQVIEnRMtVggjwoPyVSV2fgoJI 0PFFPP/W63j16hn+8UMPQfJ1gAMyElISDDQgBhXG1XvJoG4zkNKAwMpvSDJyGiC2b5xnLfPpou6A zc1sS8ZwxWkBvWlXWaIjNRpRPf8tcuIcj9kSPEnU7Q0oe2ruvSo73DuNXOrLlmIimH5v7h0NF7vf 1Qrqn2Wp6crdGKra9mwpPbOuZoeVeTNzc0um0dLrGppbGtQqC4uC3xb277VhPhHjiUMbhT7es/S+ Q5SPthSLR1Nq6wvgWiswGULaDgptNdq2ePuFUDL21e33KH//ToGnjOPAsrSwJ8E0S0pk9Z7t84zG Ek6jRQkwTbPR6CdjxHELPWqSYdPeradQaj0sCCkIgJilhAlgQbL3EUcNHgwrnMsxHnnqDbx9A+gv 3Q/uGRIJFAkcFBY0y4CjPuBiyMD19/GDr/8pzt59DZ1lWlUrllrzNOvqoCNRoYjo+Ezni0FFENll uW7L0v1zFpn/XMbS0oOffGl3TN765DygoFyIlEBU/7jcX5gYKYY8ZMDFKLj5ziv47p//AY4213AU kibvikDs9HQgBv07RCBEKa4+ITIQAO7YgoIzADvhKm5AauWUIjRGgHogHCHHC0jm85+6BzGEK1jj COjvwzlfwb/8N3+Mx55+Gbw6NUSTDOosw29BAekU/x+qEAhHc+Xp/n/23vTXtuO6E/utVbX3Offe N3GSSFGjLcuGv9gJAnds2GkEnaSDGEYnaTTSSYDkS/6AfMqnIB10kI7RNrqduN2d2G1HttqDWqNl TaYGk9QsS5RliZpoUiIlkSIlcXgk33v3nl218mGtVbt2nb3POfdJlrqB1MPBfefsvWvXuGqNvzVm CA5scI5hTPpFoWj8NSGUChWu4SIZ0eyIqGj4c4JZatXaQJlAecrc6JlmWcurQrItUIzTKuV+Jiru UmPm4BnKKdW5Uu5HhZhi1lWWohEeYTRNw2mxB6OFSM/JgArRyOiUWyoIMCShkdn3/kiQYg3SfUQl XsA6p9bX0sZRmVT/LZr/GVQcABWKEgoSkM7TaFEWkRGmNKslIJOtj9AjhU4DhClCuANipxp70sBf xFjOATEhUpPVETgEDNThBVzEI0/dwHV0OEvkvi0lm+wwZKTBUbhkRJEit8LIqGUFMORsyeamTN4S mt6IFmUX3SKVBUhaZ62lnuQpqs6d2kJYF+dn2nO5ZujbtupcjNY4/c2RyZyJrWNFp3zPlP5OPQFa 2lwjAQlha520Z6RbGNwXZXypjVsRZLRdRWAGT5MA0rZ4P8s7AnuF36U62tL25dBzqp6bltct+9Ri IAtqUnl46nHjpdCem+3MXGMAzLrz7Cu7tJ27vtfP70K4OUTaqgdzbsA1zvTmtK5zppr67xKiTN2u up66X4e+e46J9DIP8zlfXKu07559bSrtSqNZ3REW9KZ2PEaCUwQm39Al8CVUhI5Mm0PI3QkeefIM Dzz0XdDxZYQLJwhd1LMguj80A7LBcSe4ZU14/IsP4C/uuwfrdA0hn4GQLXHPNgGdy4h76Ficdz21 dX+/P3PvO4+24odVvl99Pq9gtuvaoZmSd2l4/G9xeYRaCtPmDCsaEG48jY/f8zY8/8QjuNRl9FEA JBCngvITovv7E2Jgw/13JCAAlErAr6Jw6jNsMTJSHNsValN4hSGc4IyOkda3I/W3QVa3IsVLwPoW 8NFteMc9H8db3nEveHXRUHlYGf/gGv0Ajr1p9FHcfMAK6aiaf7Y9zGoVCOrrL6FX1B/ukFmtBSlX Z48H5Fqp8emdmWq1ofW4i0hx5fDrSxRvIjggT35r6y8KM5k+mzCTU4AymEbLcPtOrw8YGfH2npqu t65BW22qzr5x3JomzdwDYCvDaN2G+uzaUtYtKZy8nf4xQcRRgSREpNgphGe/gvQ90HUgNnjYGCCR S5A5G7w0guaE4NhpnoCwxo1wEX/58BN44YxB3QpDUdbQ1HUKeqaUtSJAHjROjEUK/j1z3OrPdtm2 DARsn+1z2WLnxrn9fgifUM9HPS9uxVGeqq2vBiDIi+thjtH1/ui13fCYc8+2dbf8WUtDC5+w0PeW D5qj5zerSFo6R5eu3UzdrXXmZktZrR54Q+yEwYgukpnl/CVSCK33hYiKOUifnb5kroHtIbcUGa11 6eYPgZFN6ps7OOeKI1bsG6IiM6UquC6LwmP4OwgTrVDRAiyUehFuMfFEhtkqCMzj4eXaY4JmtfWF 2YqirM+3WMPFnJjnF9wW8W4Gxtub3de+6p+2Q3GEPS5AZGFuaWr6E3FiNo1OZ2YE1+rBkRCm7c0Z 4MjmBhEASSAECDZaJwWL8rcPAyIJlBlCmhPgmc1FfPCBR/DzP/1zOL54BeHaGfKQQGcDuIugnNFD GYkjSbgcEh788D146Wtfh7t/+mfxQiJIXGvLK7NsnSV7ToPwwy5bh3pDOM7b7jlz8b/tZYnxPqR/ +6+PdHP6d4wrATBajVxrbXULRm0kAGQZ9GDOA45iwlc+9kE8/Ol7cXmN0dc/ErpIRdsfCYgsBn+b LQ+GMv+RCTHA3ImUQS6oNRDzCYKeBQJQPMKGVhjiRaTuNgzm9y98AZmPgPVlfPGrT+Gf/cvfx7Vs GXmJVSOLCBFjyCra7UGbqunXPWt6aqND6vcfQofBLdLMEEsQlmzscoZipNuYBaM3rvnORnEZ2h+f 83q+p3Nu6HassUd2Y7GG+Pwpc5MndZYa3GWz4nmE9LxlZo1tcl/raikRgp4/LGoRddnG+hpgLib+ Tjt0q5NTz2farlvrz5OsrK61Lv0vdEHKEyJQ61Q1bnNney1opWY/AeqGldOonQ2uda/Gx1GF6jrB AUkGgBhd6JFyAoUeFBIoDJAwgLpeEYVENF6PB00yJwn5TACOmvU5BKQUQfECnnr+BXz7+TNcvkxI GIAuIYaIIQ8ITDaWSvdyzkhZALCdXQLJw7h2FtEPm/G3e9S3QgVO1+ITEcCyFXvDbIhZNmf1OptT GvjcjnO+Hbe43SY/E3Lh75QmEXLhUaTcV/Vw693KLzhtdVSf+uxMW/EkW3ENumVHvqii1RlT60jL 57V8pNLUsUcQ3dVzAsYhLLWIFKABVxY4vzq5pxF8va2HnJxLAtaWsDKSp9L+QoMIBXWztdYc4ALk 7hc2MLXZyZlOmQY+zDEch0iJcwfwrmfq33cdxIdISu09hzA2S9Ll3P/31TO3SOp+7Wt7OwZuFWnb ti9+YFZzNQkSGk3Zu+ppF1atYRh/UyItOQNpiphB2bUqmv3OtUw1EhDcT5hYXQkQwdRDrQWW2AWE xB024RK+8PXn8MkvfRPhyp0IRycIHSN0HSi4ltT9oQdcWQHDM9/CR9/9Ntx48htYSQZy2tLqzh2E +9bj3JjPEqHvQbJv61r6Xr9/36cNvF/KcPn/l5sp225vW4e/04k84EIY8MzXvoSPvfctWMtVrMIZ QkhgFsQgCFHQRWDVMbqe0UVDAuoYIbD6/ptlgMjXfwAc+7/iWFOS4q4jYQ2Jl5G7O5DXd0FWdxj2 /zGGcIJnrgG/9i9ej0e/dRXojiAwHH+ohj+ETgX9YJCfpvnXRE2e22PE+g+hA4UegogBsERf6gai yZJMeeXBj0mtqQwUi2LthlKPa713WwQ8D6yds84AU8VL/Wz916+3wuQSrW+/79MabgmukzppZLqa 9pQ2CGb7WNc/tlM5sTaJ4JyVAMAWbWjp4+I51Ljf5jyU+cvmXiPESERAXKkLUFB3sdD1GktiyeTI rUmBDXFK15u60TKo6yFxjaungi8/+iSGcGxJkxR+NBvMLVwZWvLPENIggEzhNJfGue1/PQ7tGM4h Mfrz9XpYOjPmytI5dZ7nlvijpe/t/7fXVtq6XtfV9r3eRxkya0M4aL80gfc1j3Te8/aQ+/cpv/eV lgdboiGH8MCzPGL5Zk5BLnAl87GqGzvR/mmtk0bMZTAsxM+SNbXXS2MsuUaZxHJvLhne6oY7Edo3 kLs2Sd32Er3OY1DOZHGYdL7lw8uqgdYsbIZAU6StuQb5PZhAuS2iFC0ssrlMg21f5wKI5g6f+feN MR85o0TcT5+dQ4Oo0KOqfuXGR69louuDY2uRu98rRaCgU6h7QPHlLZYJguSALKq1Y4rIUKjA54cO H/jkw3h2cxHdhcsI6x4cCV0XCiwikWDVM3pKuGUFPPfQg/iL970T3el1RMmmrdL3kfAWU3wIKtOh ZU4I/n6Wpb3j497O94R52LOO/m0shwhL5y8LKGDu/w+N89GM06NgVTI7+qE36HXKCUcYQM8+gY+9 641Iz3wDF2NCzxmBlenvIyFw1uRfMSMGQVcF/qq7j2pplc5hDAJmGHKQmPYT5kMcQd0RJFzA0F1G 6l6G3N8N6e7AQCfI8QLC6jJ+9w//BH/2kb9E6E+QKRaGLgT1zxYyzTWx+WUb/Cc0FiAjFEFeKJoA 4WhAwXz+ldaSYf0TVMMPQ/bxUFrVpFq+AfgeNSau7NMmtszzyDjdy2T+9roWhnIGsh1khmrSxnq5 T659JmenmGG5ihHw889jAdq939JEj42raWg5p2mkR21G+CWlUvFRt/YWn2yLeWo/7vc+V0TUSpKx fX557ICQQCzhnEitFRbzWxdMMzIDweZEbG+oO1CHFHpI6JFZYwEoKBoQRQ8iZ4MI1fWmADeELEBi hsQ1vvXcGYbuAhB7awcB1AHJM+fq/SBWzTFHY6Co7Nt6X+9iyESkoPq0534bQ1bmp+I5PDHfocrG WkAp9AYupNVZdmtXrpqJcyuIlO+OvjcqB9uYgVG4KXstTwVItTxltQqwIMlQPTdFm/I21gHTiizk Hy6Zk73tkzFpUIB8t84psYioxMocxivNlel41uVmzvUlBYGjgI0XbP9W9IhlbE99dossuDa2TJmX JXOEX9sl8dW/zTF+9Tt21VGedwK1wKzM1TdXaiafmUcTXNXOIoUdyA98fxiHsSxpaNqylKm49Xc9 VFLc0hpMzHXLxqM55Iy2uIAVo2b3zFkPwUCKBKIEQg/jtl9iwUiEoDG47iPsmOHGpIv5B1OIGIRB 3SV87pFn8LHPP4548XbEo2N0qx4IQNdFQ0ERRAL6CBxzxmWc4nP3vx+PfPYTOMIZGEYsK0tYrRHf xUTOHbxzY79U51+3QNC2Y0nL1F4/z2fpHT+ozw967M47HvU4A1OmiCRhRQnr9CIe+OAf4xsPfhIX V4JVTGAeEIKg7wSBM1YdI0TRLL8RhvYj6AKbS1DQdPa2XZTxV6scMxkTqhYv9aVeQboTbMIV5O6l +om3I/MFDHwMProNH/jQp/GGP3wnMtaQ0Bdf/tD1ZsVns9Z5si9j7ClYcixVppQ9zAGOApShDJmA QHGlWYLtkBOREvzbQiC2WWrnzp0l+uQ0ioiUTlUHJzA9O9o5nNOM1oyYVLStvT7XlnotHKLQIfLP bqCM1pJR47O3Cqa6ntJemm+Hj8zSeNcKtjkhwcchQwo6ns4lNHs8CInI4kEiqFtppHvX6Xrlvijn OHb6LmZwtDwTHM0SECDxCI995wV892JYrrkAACAASURBVFoCuFfBwJRJSaCuLzK64yZoUrNhyIvI Ou1enqOj9f/30fX2+k0xkYTJuNfjP08buaFFYauPS1bgRcVl+Z0na2NuHe/k/2b6X5jaZk9t8TEL bWr7tsSj7mvfriIiE4H8kFLPT0uX9vG/S23w+qI3Y6LXZZO+BCXS2oOFskwhhwpRQ7WYD2mA+T/6 A054fALJkkI5Fq1nT6wH45DNU5NoIkLteFUPBEvFKGftT1tvMlg0faCRLsW1QXtKJYUSHeYHtqtM MjnWr5lZ9EsL2n+fbirTgJk2qejIpH1+hLkkP3WAkkVPffg0mkSvWbuyKASnJ9ph07JkACwGB2hE ptrUo65OD3/HC5dk7gOS1CXA/s8QAJoFMscVXji9FR/45EP4uZ/4WVy4cBnd6RmGzRlyBmJi5DyA AiNQh5wEFzrCtdPn8LF3vQl3vPxlWN/9WgzoNC5mJkuiayioWk/1uNa450uH/RwD6PX8MN1uauLq 3/eV5cPlh1N+8G1pmcSWVllME9w9DyBDXVPG3xA8IOgo44TP8OVP34/Pfvg9uNTdQEcqkIZAWHWE wMksWurfr1Cfqt0PTPobq+ZVBXAGB80LoKA7BLH9l0UQug5CHdCdYAiXcRbvgqxeCVm9BImPkbnH 0fGt+MLD38av/Prv4LlrGdQfW+zCAI5rtdyFWJB6wMEw06G+/EYW1Dqg92bP/kuKDATqkFljAbKQ QUISmAMgubgssXlUI9thqYOuVgRA0XhyQtF9VbQPQGkLZfOup+m+YzgFy3o+2r5mmOa9TLS5OLDO rjOQ/ny2DMCtDs7PQUfGcXpLFZ3PWe0kGnasTDGBYCpLtT9Xftq6nowe52Q0EwXUgtxj2M6GgOqs UBg3UAhaBanvfsp+toz0ToeLRkaTqNBraca5uGNV1xgVBkQ5Y8x7IGuQOqyOJAQmRmYgdh1y2gAh IuYOEqMq8lIEokByRKaNugfJAA4RIgnIQQXd0OHqKeGpZ2/gFcejsmkzDIjR7OCiyDip+OXbvDND kApDVkOuzhevn1CfZkIBuUJAahOqpUK31JrkGernEAvnitgUt6U9953J376vtTSNsZha/FziwjP4 d6uhera6lkeFLlH9bC7P6bljGaKrZ9VCMI0p1OfzpF+6j3znTds9N1d6v5T5rMdpe2C2z+Nxz0Hb 3Jzn5f+YnZL59lTPEGlAf8pVVnHz1hhL266xPd4O33NbpUWlabUnbeNaZnNfp3b5oc9JO94mEYGk KhK9eueh0uO+skua2idJlkGfcVna9b7ztGvfPbu0i0tISW2/2jHY9UytJZh7d/UEWtGQyNwRjOAx c0mlXtfRMp16sJpLGcjcA4xRMn9ib7+eXwIwIaHDEC7gS489h49+7jHQpZeCjo7RrztQ1EM2BEbk DOKMLgLrkHDLmvDC4w/jvrf9IeTqd7FGUtxpkS0N49J4tRqFfevzkL33gy5L62vfM3Nr6Qf1+WGU 87anrFVjMnVNVQKjJIR8huOwwRNffgAffs8bsRpewFFMCDQgxoB1z4hB3dm6IOgioetJ/f8DIUbT 8kcZ0YECgSkjcAaXpFLG8AKaRZUicjxGipexCbcjr16GvLoTEi8h8wkkXMC3r57hV3/9t/FXj34H oT/CkMmCU9n8rkPJ7Fu0+kwqELjZ3nz+lYkmswqEgvqiMKAdQB1q33ZJY1yOu5C2iCr1GG+dVZXi plWW6ARMtYK79q4eqFMN8Nx5ssh0NPerIm56Xw1F3dZHMjII+ru3t3J9qM7eScIwoAr+3m7XFv3f ocVsx8D/X9M/YHQpnj1rZ+qW7NDjZvmxJBWZGDkyJEZIcMFR141ml1YEKgoKEQomMEVzAxIgrnBN enzh0aeQ0EFzyLliS8+XTIxNTqhBH5jH+1qG8hA+Ym6c2+vzzPi2MvSQ0rZt7MdhSp26T4eeX/Nn 1nZsYrs/lvZc2Rc7zqJD13DbznaNLiEzzr1rjrbUv8/N2c2eT86f1/zc0vppS8uDjPg+lXN+e1gX RoqA0XuqaRRh1OjPNMJNtF7v5BqN8QFtY4GMQYbmZUbAoJJxxtTNZSkAadeASyVJT3D3BRMivOWr bzjwZRwnzH+9gEy6r3zeZDZvQNPV5rPUjqIxAkaEgGYTHsIU1e427eIW2fYp1e+ta9DMRxoiQ9vE fylmAZYYrCVWECqxCdsmMdU2iq9bIoAjcljhaurwro9+GV9/rkN/5VbwKiD2AaFjdH0AGxMVYkbs Mjre4ArdwGOf+Rg+8e63Yn36AoKoL2XrBsCVALNrDpbmYecalcOhJXcJJYesg6U69rWxLSmlg973 11VuRmD4QQsd/pyupTGZkghpVl4RXAgDbjz1Vdz39teDnvsmLvYZkQVdHxCigDiDOKmvvwX49pHR MZmWn8yzxtCBWGMDnPnvzO0H8P0ewKGH8BESX8IpvQRp/Urk1Uuw4ROcSQfhI0h/Bf/y996Ke+77 BHh9giELKBAoRHDsi0DuPv9MURk4wxVnjvobxoRfBXI5ONOmgZ6ZAzJ5bIRr+MSsfCg5R5Js07tt lxbra+ARAQ65JBBjGaEz3X95CW4TmNJfhs5bfZ2qj7bbY5eMtgbRj90fzM+eWAzKQF2yiAQBUs7L OpeA9yHLgISEQUa/Xy8ETLIW6xN6znrOAPX7V7uAJobTtoCy0X7HYJ/GP3ldbZ6adk9oMC92aq8L IlAZP4N0qPoqYsx/yQehcQGInTH/yvALuSsZF/efTOrHHroemXoM/WV8+0XB9dwhoYdrrLW9gFgc HIBitZkoSs0yon1bDgovHuuSSxKzVF2fKOmExwD60Wt9Mu6+NpfozkQ4tHun+QJGIXzq8jMf41HW eOET2rPe+6F1jOthO4/TpJ3m80/CYEzhtutS54/w6/V3fe32uqzbPhmP6r5WuDlE4ZZyHj0Vci58 8Nzce937Fcnzpb4/hFBfgOe3EFd4Vs+M9G57XLju7D5JbBfTMkEH2tP4XaUdsEyNVkSwxez5vfVE nvdQLs8583/g3Cxrdg531dg1NrUv5a77i8akgf+sNyzQLJyZ0lp+6vfWkehjG9yU7i3d4RMoU00b EeGoX+nmGVJZNyIERrAcK1U/ROtg1riBYgUQlKBfb1M5hKA+xZnY0CMY0l/CQ986xfv+/CEM/WXw 8QVQH9AdqRAQO3eLyOhXAZEGHNOAy3KKz937p/jc/ffgSG4gyqABcaXdFeIIjRrdfXvHP63gOvfM zRKNQ7SQ7XNLz5yHgJ23vT/o8v1u3yF0Z/6ekZnQJHO21/KANQ1Izz6Oe9/2r/DcY1/GpXCGjpMx 8dDMvl1Qv3/WOJZVVDcgFw7q4F/3+SfOCKQxLyNzJ4acEpDCCkO8gk33EuSjVyKv7ob0tyLzCRKv wKuLeM/7PorX/8HbQeEYCVGzcxOBQgcyVBbV6Cvj7gy8sckKDxrMMhBUOCBzAxLqDPdfXX9KIqd6 7uaSH+3YS1OGIEFSNl98zFyXrbPN37uk3Z171xwTUPvai8gEp9+fmSRpJAJmBNS6BIwMBgOI7M/u 9rUu9WOG5riyrSh+UrFClFithbq9HXNjs2v82va0DFktdGURcw0bE4Fx6E3zH4Fo8LJsmn/W2DC2 eACwCg+n1OPxp5/Hd6/eQDYEoWEYlPn3/DKiycgAICeBCBX4VQBbmZB3aXszobiP1WNR1u1M8qab Ke172zbVc+BKiF38Urvu2rOgfXbfGTZ3vW3XUlm6ZzG2ZObcmmv3HH+5rw37ztebUQy1pXUfnrgc zrxjbpy3BKbC1Fnik7IATUO9rQUeJX9gZPadOa+7PcGgrYlb07GJRMI8Id7FROxMEo2WAVSyMUEz w3qEv2dyLIuhSHyjpEpE8Cx5c4NYEGxqiQqWmCbT1iadbg475Nj1U/PR6bVU2EqomNS0IAxI89lz KLXv31e2FrIx3V5fQhrRn8q7UrXgXLs0LkARsWychGEYCuGZe2dZsIVoQTUjhgBUtIiGSkCk/9es eJZ4CDpXKetc5rDCKd+CD/75w/jS119Af+VOxKMVVmsGdwQKGcQbS6o0YH0UcdQTjmPGydlz+Pi7 3oLHPvtxnMgZ8uYMSWqtfJr0tx7/9uBeIs7nIRb7iFT73la425qXPZ+5Z78fxO2vr8xbLFvCX3// XoSCXYxW/a6COtZo3VxL7K4/KxLw6VV87L1vwmOf+xgurQSrAPQB6Du2gF9SbX5Qbb9q/KFuPgwN /I2MGEMRBGJH6Fihb4lV25jBCHEFUASFFQac4Ea4A8P61UirlyN1tyPJGkkC+qMr+KtHn8A//fXf wvUzAnUriOH9O8OuLjyABAZMY02s/yfW69m0Vxw0WZi6AvUQKHqP6n0VDSjDM5GapaSiy870u+Y+ ksaR1Yz13DplntIrnx9hRdqpUety1liDGiJ1bq2I+NlZ7S39T4ktq8+11mqolfD0AzsbZQAoI0DA UtFV7w9C+SBTlVU6qbKiEWbczchRiLz9LFkFQ7jmWOmat2+MmRvHw89lIgFJNkFWsdoDCQIpyhHx tmVGFVhifv5SFFpEeq0oV2w+/PmBzA2UAoQ6RQIK0TICm2XY8ktw7OFB5Y4G5DwAcYcbCbieMtCv kSrrbqF1rC/PebrPW5rh61LXARpLx7y1fE5ASA2npLC2phw7gDn14hrgep0n8fiBFl0ogyfkcmSG UQmSjifkz9VIQu6Proo8gaTag2PbKlX/Xmuq5/gkz2bsbW2Lo0/tKrNCfjn/UqM82D4/fH97rGLN A7fz4vSjXSdzmcZ3FV1GxmNnMXe07X6M8zj1hFlK3hpreDLvhFc47YwN1ELjthhMGf8vItCAYhQC uGvp1hurbdeuovW2TPY8c1LqrxhMEYFg20RT90dERq3HTL+3mLqqz/sk63aRMDx5zWFljulsx7LV Uhxa5y5pe2z7+PvWOsLUQgPTKK3X68qEySAmpJzB7t9pgS4iyjywE1XAUH+SkZsRRzwjARw0NlsE 4AiSQU8TQxxK8QKevPoc3vWRB/Gqv/dzuHj5Cs6G6+jXAcgDKAUMQ0IXI9Ig6DvCkWXkfPrZb+Ge P3w9funoBLe/7qfxfBLNUiqCccb3z3VbWmFw35pZKm3d09wL2xqf1tdxjnFtNXJt2/5NEgKm7ZfJ 31rQaf8P7BcADhUQ2vvaMSPUQXyuWDFCLYIgAzqc4SjdwMff/zY8+OF7cGu/wYo26DqAWdBHKCNv 0J+xA2LUoN8QVPiOMZg1C4oIFBTtJ0A5L2ZGpgAGIXY9JBAQepxijU28DXL0CsjqZRr0i2MMCBCs 8fTVDX7l134LD3/92wjrSxgyEKJq+Cl2FvDLRl/VDYODQXqafz95oC/YgqAjMnXFXQhgcOwgrEHB urWMJguqgEAtkaZ0bS52yP8W//NsAc8z8+frxYv+v1nzC8ocSFZhx0nC1prIYBndXkUETDwGxdpf PztYlJEIxCWgc2nNaiwAFcjVco9WNhm19vz3fji99rYTUYHJdgYsgre0kHUdgRlD3n1+TPZI+36M 1BTAVFFHKi4TFEwkc4cQM/JwiswB7DkmOIA15TsEA4iD5pVJvv42emZwwLXrGY8/fRU/eddtKiTY +LCIWrHEkqIO7nqEEvTrYzXSk2CM8lz/Wd1/MVX0Tcdkmwa32vm5uZsr07VsdKdad3XdS+dSzpYU rzxIiogqy8pF3y+6BhcUnedQtvizKgjO86z+91B+cY4R9f7We3uLz3M3nz08XV3/hP6kZWvRrjLH 07XP+9+5PFBt4UIQtvDpbYNUi2dpUJ1gcTMRqDTFtV/g1n0zHawlJy2tZOjYy1ONpGobCDXuKxEV bb774Jd3OzatM90N9n+t8VHCpLjIDYuFWrJ1SMt6bFrLSVvGPAMo45WxHYOwq2wJHwsbY5QW95d6 3ueeGTGFhzHev1onLj9vMUSWY2K1WoFIEEJn9YyuCKWOWrAoZu1a2h41KfpblVCIDWPcrQUU1U+Y Ajb9ZXziK0/jvs89Ab78UvDxMULP6DpC6ANijIgMdJTBLFj1wComXF4l5Ke+ivv+9evxzKNfwlrO QKblILKFm0f/TBdwnHj5WM592vna96nrL3Nivqn+qeekfVdKrcZj+71zzx3Sth/WZ9r/YZJMqI5J SFUAae3PW98zDcwd+94+137aa6pZGtsx5GT0MaHWOqlve0JPCcfpGj5/71vx2Q++Fbf2A47jgFUH EGVE9ZIpGP+a+IvQR9E8AFEM+tOw/1mz1QYWBEqaB8BQecYMvACYsaEVzuId2KxfibR+BYbVHdjI GpscIdQD64v4zd99Mz5w/6fRrS4hU6duQyDE0OteJo/Nceuc+flXFgCEUNx9wGZZJQJYcwKAFYGo 0mOpqCB54vs+iUvyfCM6mOVJDwyuD+Ho/uO07cNc7wV9TpneNvZKFdYCixwd0VuksvgKig/7XKmx zUtCMz/ExU66EvhIgHDREPs5We3+8vGx0s9UeGfW3AiRNJttq71s13+55nTNxgRwHsdjFFohyzW1 43iIVOeax8JVZz3VApkQPFPyhAF2VxwCkiUGU///lcaLUNSkcdQB3INd4KRRUUQOQwt1WRPu8fh3 nseLZ0DKo9eBn+Ueh6ZJHLwNrFmHJ2fjyJeMlr7p/Hj/PQ/E9Nlta/j41/Pd2Bm3p4zrdbQ0EI0u tnXd7fnj7R3dkvy9dr87i/B0/0yZ06nng1BWgD6PhTygTGh7gsVijPXW9+0qE/7D+KttnskzrvtY JDii10SBU+UpqHmqltdi0XiPth8cgDkEoaX+l/eYB0a9V9u/5ym8ZeaavHiETJoL0PQyp0GYK7sY ybbU94xMnpY6ELJmqNpnD5GqdmlRdrYpS5nY+npdzxxiw1KZa+d5J3TXPEwS0ewQ5s7Tvvo9bZ1z 81H/xqzMyfF6rcHcpl334DlHA/Iaw6h7KO/UuefiG0zsGUcJJbU9ghorhVT7yASOHTYC5HCEZ4YL ePeHvoCvfXfA6ra7EFY94ipiterQH63Aljk1kJrQ15FwRAOu9IJvP/x53PuWP8CNJ7+OFTaAjMmc 5gStQ9b9eQW0miHZ9a42wVr9vqV2HFpuhvD8dZV6LfqnRo2Y63vt81n/7mUpj8auPbs9JtXBOfNc UTxIQicbrNLz+Mqn/wyffO+bcUlewFE4RUcJgRP6jlTjb7j+zvyHIOi6AA7u8+/ZftUVks0NgwMK 6pYA4Bg0howjNlhjE27BsLobdPIqzfjLF7GRgIQIWl/Bn7znfvzeH70dORxbRl4GhwjuoubdgDFX rkSqEn6p9nN0/RFjwNQ1I5q/tecJ0D0tVo8CtGdwBbpQ5kMcd2ibDul4q9tMvS7a/bK0PvbRNl9j Jc6K1OpBjYl/UrcF1iozNn2n10lsibdAioWfR7cUP1vmaK+uNhVMBKnAhgK1O6udmwZr2dIdr3MO Ual+3v9OcrUsBKXO7Y25s/qQs1DnXIUhAMgMzQBsAcCwmBEy3393M9N5ipM5IyK1GMceT3zneWxY XYDK+WJMN5HnBchIWd1oaiWlw08ewnccWto12Y7beeoBthV6xVJRrYGl4tdTmp4j23zjvGK3hcU+ Lx8yl+eo/b5rDc2NQVv/Fg/XCMT1Gq7ftS1IeP1TYa4+i+baNlf2jfP3stZYsvmdeoOLJUCRAIpW pXrp3KJsg5iWGuY+TEsLu31P8/Tst1qyaiclEO/0jR8rswjqBZz1WqIF2DIU18KJExY9bLYIsj9e +XTWZXGSG43TVrv2XPfiwb/nYS7r9nj7WmZoZHjDJBPfGD9hR4QhWtTPih1QkgaQAJEiKFM5OIvm ABj9VMkCy4QtW2go2p3pR9FAhBhUoT/4u5kZiSJyvIKHv3WKd9z3BVwLt+P41pdgdbIGrwK6VUTo yBgsRh8DAunfIxbc0gue+tKn8JF3/AE2T38LK/PPzZW7Uz0/U6KR4D6Z9ZrdGt8D56glBruIxryw f9h9S+//YZR9e3quD7Uiw3+fC9Zun/OMn9tlipax/U5jUCDm4T9FY1BNnDIZTIKIARf4DI986oP4 8B//Llab53AhDFgFy/LbBfQG8RkjoesIXRcLw6+a/YAuBnSB4fm0NCeAxgAwkwZAhpoBIgwhYsNX MPQvgxy/GpvuTkg8wSarq87RhVvwuS9+A//kn70eNzaqYVU8dmPQRTOvauKwqVDlI0XB6KQJ7Uye E8AEBu5NEOg0RqDOQppyCTyVNCjdgNMHHVcLnagXwcQaUEgQZWTWZ1zRpWvC8ipAtjR3tcBY7q8P 89n1Ma6gyfll50CNNqRMvQVpk1imVKhLI8Y1632un1t4S4m12sqjI2LIQtYvo8+BBGwr1e/XBI1K d8c5rd8ytajPuR4Uz3DXOlcN1/rU91zbQgBpPIB/lgRv/b/F5DEhEZCD1cEEBEaMmhRMoaL1d7WP cBEYRQQZEVevZzzzwimI1QIMslgQAJss8Fw1Pga14ORnU63Rz0iTWMp6vibMa4WS2I7dHHO55AO/ 9bxMlZmj5n1qddhHS8dMv6OP+bRd0xiDkVGWcr/nl6o/S/xLed5iU8rZ6HxEHhQp64AyJ8CPbW9Q lSrBJDvCT11ZG5vj/HIzv9o/n7/RoyVBFJ2reW5X29uyS5BpBbx9ZaczeHkRpsgLPjj7Glw34DyS XruIpr9PD5Zaip/T3iwNQi2pt+1c9surnw1bz7XtboN49vW3fc95yxJTN6fJOvQ9SwtwjtGczMmW 6XOsr25nH2LR/ntAsGr/t3MCEI1MmGOBu3YmE8y1wDSIQNH0EEfTKJplgNQKAIpIYYVNdwvu/+y3 cP9nvgkc3454cgH98VozBPcBMTK6LiIyIaq3BFYRWNOAK3SKhz/1IXzo7W+EPPskVmmDIJU7UDVe tZZl1zy0Au2uT5s6fukzV3/r+1//1v4+V9d52nnoZ24s2nd5Wcq8vNTOev3Vbjpz79lV31zb6t+m c7obkk5EFSycN+jSGS7SdXzlU/fi3re/Ad2N7+IkJqx71favOi4BvzEI+siIJqC6q0/03wKBQ0YM jECjEMABdm8oAZJJCJl6SLwFef0yyPErIau7kLpbscERknQI60v4xpPP4pf/6f+NJ77zAigeFSQu RVmJqmGNHYjV1S6Ezvabu+cZ9CWHov3PIGTqkIXVmhA6ze4aNSjYTfIly2/SeXNm1BUQzKzKnuoA n87FKBksMVpeAuY1hHPzXZhimb/udS+di+3aaPHvJ4HE7TX7tO+p39VqHMf/K1Naw5UunRMt3vgc /SJ7F8+8uwgYFZM01/c045Ix6W91qehXTdhwCFi3HGmgTBhpv7nt+LrnGIrgq6ARBFDEKTq8eMYI /aq49ghGmgFA0axkHJfa+uN9mssSfTNlifact7RnUf3bvvfv4xvaNeG/zV1r6em+/s0xuQC2xrdt 2zLDv8yjtt93+dC3/Z1rZ+36VPPMc+dAbd2Yu173Y5nGTcsh8xuLNtp2ZXZ/d9tinpHVX5YwJZBb A5GnxMGDnFpvNUcMqrH/28Xm37d/J2TPtDjT2fqZMnxmNnZmqfhdSnXdvy9IpPWi1eEKkJxMr+eb yqojHUNCMKnbDgmvz/7jgVpZfEDsL28T/H1lTmDyIM827ffcpt1Vlhaej6ebsetx0vd6BRYIZAxR Et0Qq1WHwAZhVx3WAgCizLrPox81BM1IzZqJBUJRtRqSkUkADmCJigiVXcLXTIJZEkQCAgZFghgY QzjBd842eNuHvoSf+rH/AC8/fgn64SnIZoN0BqzWPQCDhBMLSBbChY6BTcLFfIZHPv4BrFjw7//S 30d35aUYiDBgPGBTgxySrA4x/9zcHPQHS/Ey+TNZV62Au4up2ffbea5/L2Vfe5yQ7iLibZljntpr +8a9fN+6z4PfbZyZTNucKwCACrVD3DIZLMBdECRroi+6jr/6xAfwkXf8AVanT+NCGNB3mpyOA1Tr HzLWPSNEoIuCLgaFAmVSN6AoCAZhGwMhckYILiBoEjCKgLBAVEUFCSvkcAmb7nakkx9BPn41Urgd G1kjZ4D7C7iRj/Ev/t/fwyc+/QXE1SUdAybEGIDQFV9+ckafFOWCmFUQEGPMQg8PugTIXDUYFHoI RxB1EAsKVuY/I4ArtxKjaUYmiRyMAVD60h70bvFpTqBihR1daur7chbUGXRLnX4fsEWjW8HP6Za3 29tqqQasHe5fDNPIq/JkPBfH7KjzygPX1ksJnJ2n7eaqo7gser7XDLWdfeP5mHyAkTB1ZyVSOEyi yuovSrW5qkPXiPedoXkGrFeievIqx/xs8eqLK8bWOI/jlGSjwb8hIieFAS2ZpylCYkTOg60ttQjk pLCgFCIk97h6g/DYk8/ip247huRsGd+zJrJzFDmLX0splWSUBZ0oqzVcHLIRBPHFihl+p0xALv2Y 9L9ZXyLbTOTsuFnFrRJuO9PvDJKOSNkHVOIl23Xu8QS21qqtIuIK0jRTrzasWGIx8ppaXCDVq5rL Qle27x/3z59TQR8q1Iz3Wz/LAep7euQvCRrtLJnGeXL64fmMGuuf0BhoDTh9ISTjycT+1eAoc+d0 OcOtbe1Z1vKluwS1ubIlRm1JMhbMVHfQo98nDVxofKmmafS+Bm5LV3qo+vc6dqF9x9xvY31jsOgc 8XYXpbaeSbt3uPC0pTbftm3y32vifkidS6W9f0KwGySYQ5n/uo5DNQGAjmOLytHWS0Q4OjoqUITu p1wHApfDTMZ3AFCmAM5cjR81rXkMgLlWmLuBlOBgNf9mECgEDNRh6K/gkacS/vi+L+DG6g7Q8WX0 x2usjlcIHdCtIrpe/a37DuhCQggJF3rC5TVwOV/DFz70fnz0nW8GPfcUunyKIBr0mSSXE3+f9uU8 Qtm+cjPM/fer3Gwf6nV2nrW3q+zS8rS/1Zq+XW2c0xQVmkRTjVtKm/L/IhzLoGs+J4R8Ayd0HV/8 xPtw/zvegO70u7gYN1h3GuQbJxfdQgAAIABJREFUojH9LIicweYOFCKBOYODIgA5ox+DCgPMMGsB q/afNSOqau2B0EUId6DVZZx1L0Fevwp5/QqcxTsw0AXk3EPoGIgX8Qdvfjfe+PZ7ENcXALIES2Zx o+JzrcyWu1cIsyX+cphP3Z/q1c5mqdPcHBkMWCInsXvdglq76LSKjHr+9s3b0tx7fXMKFH9nqwAB sOVaSmGb3nlAr9Ngd5No+9IGZJY6m9+jWTkU5jTNxqK17ZzrfxF/zFrbvtufzzNjs0SjXBgowpTe rPdXLi7+Po1TGMegFTJKvVXw71xbPAiaglmWiv+/CgDClhPAmH5NlmFae1Zm1vMBDLTC1euD3i+m mBOaWEbJkOSyZQlOlh8gV2fUIQoKEZnlJZbG+VyKoaq0z+zjy3ad7a3ycLsd224t7Zwegl7UznfL Z+6KSa1pwdw4HcJ7Tu6hPPGCmXvfIUqzOf50X7t2rZ25Os+rvIsjUs4UYsqboppVneyAUYIlIt1Q DqfmQUauERbXANhmp6nmrs362w5AIZIy/p9AyJRNOrTwJG8/Mmiq1Cgl56y+tlRBXRWhvJFS2Sfa 29oybvpOJ7lFcCztn5lEJCTRS1Q42bGfdX/9aQ+APQ+7tsTY1ON6MzCg9eZbEh7G8dH7/PCe2zg1 QTo+WoGyJgLLPBgjP2pHGFRmyNfTuDZIYQcBCxxM8FgMyap9SsNQaVk0IyQlRWDJgwHJESEh4kY4 xvs+8zhe+yOvwX/2U3eD5Qw9PYuMhCQZMRNSEogkxKxrZTMAfRZc6IDh9Dq+cP97gJzw83/3v0V3 8Vacifqbsi9OMmjXVBHQAw6LetwAFASFUcMzMp+7yvdLuNhXblbQ2PVce4Cddy17WTpUyeamwDei UnAUgjivcGBW7aJja2dNPw0PDIThNhNHuIVL8gZrFhylG3jww+/ER9/9RhwNz+Nil7GKQGeBvuue 0TMQY1JkKs/oa1j/ivHvqEAofv6xU14nBAJYFBYRMKadMYCQumOc8S1Ix6+BXPhRnPHtGvR7BgwS sL54Kz74kU/jN37z9zHICoAyUiEEcNTsvEQBwQTwTAQOrOcBkeUCYDApI8Yhjgwa1ME7m5CeJICC CgXuW69aMqXvAMAV+gtQKWtM6CLTxpZ9RZgqD0gtgSyw/AejkKHngvvEW/1CQMpwN6aCdEOq6SzL j8b1oPbGEaqQhYGcDCGotgoAoKDWDHI4Uq2/oAlBCmPJzJCcANcdOqNi6lcdL9WY1rq9yXqHtz+a 5UTdCMnckj1Oi8ToVNkbTs89WN0YLOLJO5LoHIzn3BjiXCfZ1D1j18TQjcyWPooHWkZmr1b6lZPS Jl/gFgxxRt/iXjSmZFDEK8s8nbGBpYADMSM52hdFPPv8DZymjIsxlBiMYO8VmOZf3JVN88yIUBlP 1ZrbuIgYKuG2ptYFLLXLbAuvc8JQEeD2JOya+P2LrvfW1rIkYEz5nnYdjS5kItU6btxdROYtC7B5 kVqDLgAc09Gq0/0thReQSjh06/9kH7X9nxVOlot7hIwW9HmLjJdgfM7IAFJzv60ntzAij5r/ipca i8/ntnL4+1na8z/6f5Ykum2pcXoALjGCvlDK+sDYoV0S6SGNJto2rRbhopLelvrSSpfT+6YBfbua tiwF143Ni+1Zqmti3bhJfm1JmqzHakmT09ZTS927GC6tOxVz4FbdVEvlSo4uXryIfhVxKqblVyoK DrHMhP+u2jQztdqBQeSHoSb9kjyAJEAw6JrjiJyyOkG7VoAD8pAROGowoZlsc7iAp25s8NY/+yx+ 8pW/gNdcvhM9MpASJG+qcTzV/yStb5UBSRkXI8D5DJ+//73YpIxf+Dv/Fda334Xr2TDO4aniRy1Y PS/jGG7Pz5bGs/X9aV0VbkJT1D5/yLM3K1AcsvaW7q337/eDQNbjXRi5RkCvy1y7NY5FCmPUulfU h6tkASOhlzOshhfxqQ/8CR74wJtxCS/iOG6M+Wd0Uf3+uyjozOefomL9hyiIHaPrgrr9RM0HECMh cEYIEZEE7o2juOgCigyOEZkFiY9xFm7FsLobcvIabOKdkHgrzjYRSQQUT/DFh76Bf/SPfwPPv5gQ uhPdtUya6MsZefsrsLrBBW1FoMFuwgQms8RBY3zURUOfzxyBYH7bpMg4uu3Nx594DMoTRTKqz5Ta 9aTGu6dmHiAoSoTZOSWaYLsToRzcfl9RRsGZk3FuU1Wv5ldT5pSyMogJCSRBk2FhmQbX7avzFGgg 5bQtxX10YW1OtKU0pQ1bZ2s1jm19RSE3EZin8QXK+NcM+vissvfbZ76M8tbkDFxSaEn1vM+7iCCR KOCPaf41m7QKnQgMHiKEBySLW6HAkESa4wxQYRSEs0wAR2zOBOuVuY7mjdFuzzUDgDsVWrnfotPU jGGu+jJl7FWonOtn/f8l3uk8xdd/cTvO6oTVtmta9zyN3tWOXZY4acehErrt6J/cS0Rba6GOSanb cmj7/Ho7rqp0nO9vlkHdyGb6Md9H2qob2KY9LU+6Xc/8OVfWkH33+TzveTzh5lzrSs1vNeZwkcKa 99QTMnmBjNaApbJ0bf53w391vOeymTxKHVsbRf9viA+W8ZgVSqIEUWbIlk/nfCDPiBwxt3HHMo20 XyLy7SQv4dPebJnbKHOahV3Pe5l7rkYZKGMthIAAytV4zmHeSsLx0RqhPXCaBV9L5sCIoiRMoKyW APW7JASOcCtACJ1q/NkDvtT9hy1bcAaZy4InIYpAfxlf+eY1vOmDn8fT+TL6S7chrlZYrTus12v0 q4D1UYd174yZYbGTYN0BF8KA23iDr9x3D+79o9/B6be+hrWcQvKAJCPs39ifMS+FiMBxwLfmx/C3 C8Mh3GzCPP0YfvHW79V1mvw2refQ9eftWfps9eMmy+H7Yb4/u8q+9rX9EKkDqA3jH0kZp2r+9F4q yDQkZoHMCSeU0F//Nj7+ttfjs+9/Ey7TNZyEAV0nqrmPWRN9hYwuCEIAuLOMvh1j1QV0TOgjozcX H8X71+e6IOh6RQGiSOCOwQYLChZk6jGES9isXw269BPYhLuQwq04O2OcnmWE/iKeu5bxv//j/wuP Pv4dhO4ICSg+/cwRjsfNpJpShQFVVC6mHhDdgxTU8qYJvgxWkQ3q07Sy8GBhInheBA/4RZZKwdOg iSEVSE1GBhldJkFBDKrnl1WVaw9vx0XV81wH5jniTr0GmLbXhbq1CPycYmFQtU8ngBrwnDJTiGY9 h92dkUcYVIwWbJYR76dmEBwjXjXv6igZmUsm3gB15yVrq7ZZtbJaDynpoOn5J0VL3+pER6z/uVw3 3kcfn7GfotZ8mj4/xxC1Z0FBPyIVrsyp1+41rSv3yBQNplatLGBTHHJAdlQgQ8kqfA0HXL12Ddeu n8GhZ0vmZya1FogKGequFtWSZvVrG0doTWmEwrafS7RpXLPbGXqnvNZu+ub8RJ1wTs+R7Yz18zR2 em7UOQjGbNaEmv9aVgqP/ELJi1FiRtUNUJimcRLOm831bYcSqe3LPkVO9veTC8BTPC1mVhojo4tb XRzlp54NpweMER62nkdvwy4FQHsti0zc7+v7b0YhFusvW5q2pjH7imrQliWvenPX2pslbbRLrEvv arUT9caYS4CkP4x1MPNkcWmdrsGYYsLOTdIh7geFsOxATXKNx+Qd36MAMKdBqNtzM+UQyXsyxyUg srrmByoRNpsz9H1UApxaLZYH7rpgWll53K1MlCEZ51qDBoUFkpK9WoWBlJO2RdQ8odrJDEln0EBt UXciWuEGX8CfPfA1vOruW/H3f/5V6C++CMLzkPwiBJ32I9VOYOpGRDdELQ9BQB3wtQc+jBdOr+Fv /pf/NW591Y/jBoBBWLWgpu7IGcV32Mcn52xm9BlCWhNyIixukAOK78OxH2V6vm9lSTFwHkLVErZd GpF9bdn3nrl73fK11A/N6BvgChQVDmhCH3SOM0JOOAkbXHvyq/jEn74ZX/vsh3A53MARZ0ROGtAb TJvfETq2YN6OzeUHiJUVgDmbGxAQWNAFUjjHCABZ4Tjtw8FcKPkIG76IYf1yyMlrcBrvxIZvRUo9 NpJBsccLp4Rf+T//H3zigS+C+mPV7jODQwdiy9QbokLwBtX6OxOvDD3ZfcqIiiP/lPwAyqRpoq8A ih1Qu16JMolMCrlcj7dqwVHcfXzuPFMt2z7S65W1mKpYqIW5BvQgD5hen7N+qhCgZ8g0S+6yFdrb KvX/a6aXZoAWsL2+vb/ZbBPRMtMyuXvS9jvrvw5/SRANTCQujEUIoVJWNAofb9fC2afXlXZrP4wp 9LkwJVfdVy96Hs/Vt32WjYISQDxqbgXm1x8jZPA4ABVacx6UuTStcvL2mfCTiRE4YJMybpwm8Coi 5w3cK5goWPAzkFJWpWiIIO7gwbXuIjVHn7UfboWfZ1530Tr9O/XTP4SM1nyUP5sXMjSfi9er2nco bW3ncomO13zcJJu181MzbZ+rp/5e77u5tvjaneNHdwkbu4u65E3abvkl2vbN8VX13G8JAzlv/b7E Sy+VUQCwzVReWhGM2vffyyQ7K1HxgU9VtHY7mVPCNj5b//V6pdHGt+8nUT/TIgdXA1UvGGes3Wu/ rkb7Ofp6OWqNSslOaComlKoDBx5N35Ksqe+Ya/0Ey+aZWsNdzK9M3wNrN63bSysI3IzJaOlZ94lz nzdFQRqL41G7NihnZVz6CKzXPV44tTTrqo8fD23R5GD1hlcNW3AvRWSqYNgs+yRxRJYEDgRJGWw+ A8JZERrE6/c1alaAnEDdEZ4ZMt70vr/Ea++6jJ/98VeA+QmABtALo68g8wDBmWaqFAavNMAynWYc xQGSEp7+0qfxvjdcxS/8F/8NXv6T/y5e4BUGEy41LiVowp6G6G8xuf69YpB0k433sPmyTg6NMm6s 8g9t7wMbOBuHMmOT35d8Ib+X8tdz2Mji3yXBtdU6ugA6fh/v2z7IjEaIP+fvsTlgYzpF0GHASbiB Z7/6ID7yjn+F73z187jSZxxFde8JrJr/LsJcf4AuRsQIszQpox/L/wmhC4buY0JBEETLCyAsoMAI IZQ+ZO5xRhewWf8I8smP4iy+AolvxzBEDKI+0Lw6wW/989/HH7/7z8DdkTLpRgsV/rBXl4oYINCg X45htBAzAVBNHjMhs+4PYddmm2aWFYqXuFc/eNfIA4gwv9+smmsxFxoUpmpG+VDRHNVwNgdj9X+7 qRw4JDwqJzDOsbB5abMKJLnZH+77HSAYUhrPnpQnjHTdDn2frx6rSnSuyq6rLR4m7Oj54wfQqODy OlTEdGbYYvdcK21jyx7rR86AETgEFbaMPogkRQuq1jsXV6xYQECm+8gUWI75broKKueBMj3KJCsy Hgsq4a71NR9d6QgComj9MMFO/SgLTcykSiUhMi2pMvee5RrGBzCzw3LoeDJBkgamgwiggLNNwiaJ rvc8aoRzHlTIhSn/hEHcYchR9UEm5Gv/rT+8zYgqX6J9tOiNct29Cvz3MbDYGfdhwpfso8tuAcvV OnQGdMoo7g+g1/a7dXd8u0gCCuBH254xPmW+vt1u4dzsnVF49PaO1pa21Mrl8p233yOiNCbnNOF7 tfVkifRUOZGsOc6n+vrlOph7MqZen9g4EGQmULpt91jcqlLtd6KCMtX247wCwOzq2ZI0qG3UfKnN TK410YCZVgqeFr+37kAddb/07l0SJDD6RbVamSXNfa3lm2PI5qTKfaV+967n674uLejzlDkmclub cL5SWzGWcHjrT92XufcKErqecfutlxE5KAFPmnqcxDJqyjg2LSJGCz1a0r2r3qowLK6d1MAwv25C nP0Gyz6qcG4RqbuEb1wFfv+9n8LXX+jRX7kTqwuXsb54hL5nrNc9+j6i6xiduWt0UdB3hKOesIoJ RyHhMk7x4mMP4T1v+E187r73Yn16FX26gUgjMR3hRZVhlGa/1etibj7q/aZc/nRu67V16LzPrdd/ E8t5aAOwX2s00drP7NdWmVH/PvvOnBCQcIQNLuIavvaZD+G9b/xNPPvVz+HWfsBJyFiZxr+LhPUq YNVxyfbrfv0xskF8OjKQaIZqsxB05t7DQQNTmRkxRnA0pQUTUlghhytIq5dBTn4UZ6tXYehux5ms kNBhkwm8uog/fNM78TtveCMQVqCwAkIwNB9STX1Q//0sMJx/dfGBufioKV9de7JlYZUQxn0WogYP V37aowYVZc+bGIGCoIW0tS7bMS/zU/1WXLIaBYgmKarmcWY9LL3Lr3kiLwBba6dATS+Umka6VaNo 5nlkcubqUGWLLTG3gMrUclFfq+up+yVIJQBVFTQVDff2SC6uwe2YtLFMu/bj6OqU7blc3KqUoZbZ zMMjfedJH0aXLBMyjIa6Wy+Z2xkoQOIYq6ICsT43PbN0jSZhbFLSJHcVDzHpZ1alUhKFtmWOszRg 7vyt6cW+fEotzamVm+dRoMydw+el73Pv9HnZxYf5fUvXztOOMm5pv0Jo7gxrBYyWX5y7f2n/7S7t vDIynX/uZmuueON2TwCYnY+lEn7xF//u/wqMkntLDIWD8ROVBtyVENV9qBa3Ew8i1QLVQY8enT8+ NiWeYnUVJhL6fLSMvm0Q0fj+DFBF4E1rokRU4KZIPbUqdxaYpsC0MCBSRrIJbioDWvouZUz0Hif+ o2Zw0kcCJhJhudvGjEn7bZoT0PYY7SqlPpsUN4nOPTu3+A8pcxukboAPIWASMgvUHGzBWYSioQlM YDC6eIS/+Msv4clvvwjiXvMlFAYepnqDzZNp8QiGnEHWV5h5OSOLmcFFUaG0QRkaTJhsX7oLms4j IQOSNYC4XCOE2OFb334Wzzz7PH7ida/CxWNGRxuQ6H3GqSgjI2p5KEgaQghMCBzAeUC+fg1f+/IX ka5fx8tfdjdCvxrhD8FgO4wkqxm5RVFgG2BfL3Yaj9qjhrkRW8texJwvi4cbGI5zPj+n4wqdfvfA sR+McLBvjW5fb9u7vR/nS7Yx971ORg64eVb7P9JXW2fFzKv3K33ROIs1NlifPo0HP/wu/Pl73gi+ +jguRcFRGF15AovFlQB9Z0G/Hdt1QmCg6wJWvSbzijGAGXaP3hc7UnjPqP7+ygQRKAZQ7LHhizhb vRJy4Sdwo381Nt1LMcgagzAyOqxObsU733sffvlX/zk26MDxCGI9DnEFDr3WZVm11dUnIsTO9mVA CD00o2+E+ywJK9oPYl8F/vZ6D3caIMyOO06QrBpo3deqtSOq59rXf8WI2/4gKJqObQ87AwgQ/13M QFG0CVbjtkner9fnkF8LIEPAg+bwoAo1x+onfzU7iyraH1KNuh+FSkvG84+g50FxiTHGHIDSVGRY sIG2m0eLO5HROsjYFAAspvYodFiMduhaZm+svr06g0aLYckAi1z6IUZbubzVzvJCvrLSRBc4SLSr 5DEUSiu1z24Z1X7oPDmTDkDyyBtY+xwligOV8WVSmFSWBMoJLBmUNuCcgLwBUgKGBMig33NSy68M EBmwzi/g33n5Me68WNF7slODNAlYToQNn+CsuwPD6g6c8SUI99oXGn3JRzruPI3TE/2ws142vXqG jt4YanFwjb9qqZVX8jv8/y3Dl8t46DqpzoIJU5tnnp3yCGXu5phhmrqoiZ0tItveBbtouZiFeuxO dc4BdiYai8aw+J5597i5d1EVrEikDAQTzViymv5bv90iJkZYqHho+J6x50RsP8+0ZeLVMp03vWVO iLJxZXuv/U7CijdBu9u/r8T2h1ZK3WpINWCZMAbjNC9tmZFR47Ct3WzfXb+nXXyzrIoRr7beVgJU RrvxJ6uIuv6n0j7tGcTDpegpM6f1T8dsrr3fS5mTAM8jGdaFmrFdfl9ziMpo3Gz7KQJkyYhRkIcN Utpo8CMRhpzMRArT5JEdBgQusHPmFiSaZEtNuxr0iAxlLkSAbAm/RLHIVYBUPZOoA77ChzIB0MAm Asx0v0KKt+L9n34Ur77rCv6H//xnQPkM3dmNSV+ZNwAyaJMhg7ugJfBAwFkCd4RuOMPzN57BZ973 DnzzsUfxc7/093Dna38Sm3iMa8OgiCoSAKSJhqBkupxZ23rPSIbqvSPVb/WaarVBboWYmdE9f9PW fM+VpfU8t3cOW2O76z3k2bZ9Po7+txWQpxaYqS9nYYqq6kUSOCd0SDiKGde/+3Xc+5434eHPfBiX +RQnQZF+AmvSrhiDafvtO4tBfQo4qKZfE36p4OzxADEy+hhAnBCiunGEEEBBzB1fmX+JRzjDEYb+ TuQLP4q0fjVO+XYkOUEiQk4B3dEF3PuhT+KXf/U3cJojOB4hm8AfDZdfTENKlvyITRBQKwDAoTMY ZQbYnskAomr9mVXzLyGCKGrGXzZ4ZoNNLfCS59BQknJngL5ZYX1FCqINVcLw3JqrtdhzrFT7HNvm YuYJMMbc+bflutrcs6Q5VbjRVvhs16IzmXqeaH0arDhNrFhpajHSh/F9UsbOkY1ciTfJaWFTRFCY WRExN55pXSKCAFZ3I8qTd3mLgiUGE3AJ5hXQJPGonlcVP2JNrfvv/dT+WXI5B7x0FyAidcUjVUBq TjoGDSZkuZBHpAHtYAxZwCHYWWKNzqKuNDKiMiH2IO6qeVkQJJtCRAphO3O5Vt5QHmMmiAA2GOFD zmSva4nH8DrLOxeeb5+do8Pj+a/uiDlP98QhOTrqtbjE1BY4eR75wTla0cbs7Bqvdk9N2jPzTM55 4pq0r/jYKMM+rfMQelC3r9Aa5wv2JNLbV+KIJ26MsRNixyXOySSX6QamceWoFNV0wO/3DGhFmNjB hNaLzf9OCenuBT8RNljM33lcBEr4nNiZby5PFzWJmVccOSarL2kJZvJx0m6hRgJyAjAVopISMX16 9GEsYzgNcKsPqvMw60uZ/yZ9v0nmv25Pu0lGX7gp4dP5qn+bbtiEkbk9Pj4G0ncVkjOEog20mlAH A7cE0w82bwuR5gZgjsgpadRkzqCcATGtN7XxFaqF17iOMVtlFgLHY9xIl/H2+7+MV7zybvynP3UX wnAKoqsg0cgSMk1dpg06ZBBnBCKcDXpQ3jjLcG17l27gmS89gHue+hZ+5m//El73N/4mjo+v4EYC MpFq1CpNRTk+dUuO600mfyYCMBmRdIuNiIz3E0xrJk09tq6L20H2QZide9uVMztyO1Byqei1JmbG YxGqYDpryOS+pd/HBSLNdy/T+7Npa9gyRXvdJKbFq5JQueDqjAiz3aMPlfoJGR0yjugGvvPQZ/Gx P30LvvvIg7gtbrAKglX0BF3q298Fhfvk4HCepK5lQcC9afiDuggFBbIy5p/AYUCMbPmM1FqmOP9Q n+QYcEYrnHV3ASc/hrP1azHElyLJEYassIf98SV8/JMP4h/+o1/DM1dPEVbHanEzF7lstDB2UQMn uQNZ/IomA1PGiTkigYFgOQHA6nJn8J86Msr8g3tkp6sVVnwAIQubFc+0wybVl3VYrZ9ySBcm1bJt wjyHyAMGpcx+vZ5d+0qmscxmQYDtEL/PcbzzjvNWA4ENLc98tkEeeOyuPcpAZDJoUXJ/cnu/OGKI Wt6VUtL4PCyeo2wrp1ehQAyTu7ZUzDlXQXtEow+xW+OLbZrccurtN5rIbNKAtl0bxyXuws+ulsGE qL97cSP2cxHqDw1wdWh5gDaArNmg3YKfzQdbhbtcIsB8fytQjltYNMbAk35R8KRfjIEACkF9uW2N iqP2wOYiaSxVcR+eyfis9QWI9BgkaDZrUuuV9r9Vjrh1UdvLyDZwFvdRutMgQiGrf3kImsXYmPZD z3JGsJw447xMz4ZlSPDp77X7Ckqs5MhXTPks77NYDOSofKx5sjFmgrhxT2roNrNBLTNNUMC8ne33 Of6p5hVqYTZVsTulDuMD81ZLdA06r+H5jso+q95Vt8tjBVre1tdDUcQZIuAYY2oxIeLKCVcM2hme 59+3VFpholgAWkmjTC50D9bmz5qZpOb5pVKIQsoTF6C6YfV9bWOXOrPEoI71TaXBCbNfMYJbdflv 5VrTn7Fjk/FoJbVd4+EHxFy/zqMB2/eeek7r389T5oSym3keZWyUIIQQcOWWy8jyVXSsRD/Z/WzM lSCBJBbhWRmwNKaHn2iqzCxOUFeFnCEaxg4gK+Y/BVDIsFBDQEStACTg2EHSoAxIZgwiCPEE37ia 8Ntvvg933/Kf4Kdf8SowfxMigpWthDUAMIF5AJ0NGr9Q/LmAxGby3wzgJLj+9Dfwkbf+Pr756Nfw 7/2tX8SFO1+Fs5iwESjGuo+XGJOaRyJar1MvU+G71fJX89WgTyzt2Hp/6/+nFof2+fH9hwuZu/Z1 scSV9YtS/3TPT59bOsS2yxgIBwCpQvqpaUhJWtS8R3wceWR6mBI4DziKGXTtOTz4qfvw2fv/BMOz 38CVKDiOGpTed+qn30WgD4QuiPn1a/KuGPW3EPWeYMJCDKS4/6Tws6BBEx1Fc6cIBvfZqxZYQsBA J8irO8EXXoez1aux4ZfgTE6Q0CFlIK5P8OcPPIj/5R/+Cp546jl06xOFTwQbnCcD5jet8OhhvFag PAmwYGBh9efXhEukmv+uh4CRoiKmgHtkzxMgykx6xlxZ0mDMrJn2rKjXgFR8Rq1ZHO917Xo2X/fC ShbhkwvB8XU9Kniq1aB0DCOTW/z4jSmdZERPeVaJ4e0k+8vESDIobCdohDWlSvsMwJUjpU20MEZ+ RtEUwGG0iKMopdpzotZquysKIZR+iEi1D+w3EwxcSC4KoEKXCEWUExUCyr0VA1jOUx5dMJh4tHDW QZ0FzUdb6MK5av0DOAQE7pD4DBRYg9OptjhEiOH9D0PGIMARM9KQXbpTpi/lIjwkCsgUzYVl99no zLPP09YcYVTeFIHWmEDJ/vwoEO4uTTxKhYoYwqhgO0SOcPpfauaKcd9JX2f4rZlbaz5oFOqn96SU TEDePuOWxnxCxxfuq4ViTu68AAAgAElEQVSC+jdntF1YdW+DejxahaQrI5Z4pSnzPVWE1+s8G0hJ PX6T3FA2HnMCTtv3OfSymj+N/oKMVIiHmrm2JakRYcA2uIwD6Ieko/d4h8bMwNXBnaVs3F2lnkAP DsrtgLNNVjNgHiXvxK4Elnm6dr9fsmnkp4vcsX9H1B/vxyjJTVAvKhOXtjcULbjYQeMSnjW0SP5z i+RmMpzOlXaR6asPZ+DbRdUuulHzn5u/ze9iR+xkUyrixOXLFxE56BzljNDp2GRJkKyZReu1V/pg TWEmJKFKe032PssZYZpIUAYlszBkixkxTUaWpE1ztAVJYNagWsEKsroVDz/5FH7zLR/H//jf/Uf4 8VvuQkgbrE2TchrOVBtqjL/mDctIyDgOjBvX1WUmhAA+E8SUcP30GXzto+/DU199CD/zt/8OXvNT fwN0fAHXsx60I8GHol7JdE/oejIMdnHi6hodHyvTKAiXtjkVns7k1LKA6mDV8UwTgbktemaNB8PW /DffyRi/0U2hJtJKSKdCjf7eCjrjzjQa1Wg2qahsuVr/3ovR2kNg1SC6FWDSU7VC+fvcggeYm0ke ACKwDDjmG3jx8a/igfe/A489+OdYpRdxWw+sgsaEcMCo+XfUnqDu8qvOg32N8S9uQob4EwiRLdNv AEJgUGSEDoDovgm9IHMGh4AzPsFZfzdw4XU4Xf8YhngXhrTGRpRh6Y8u4i+/+Aj+wf/2T/DYE99F v7qIRGRMlkMoqnY/h2D5NFQo4OCY/+bOQ2OODUdK0aB6wwvnCFAHIU3S5K4W7vKB5Jp3C2yr5o2d 4REUmlvW/xbKCptfLwozTYChwtQWbKD4ZysnCYAsyygq1xqrQ8wdxCyIvo7bc87PHU6mqbM+Cbs1 j8Z4OIJq+mBnaaaChKpIPL4HU1l/As8YjFJH6cNkvWJyYdFVqShP3CoYUWuFCy5Rte8CgrpYURUk 29pUWfeH2NgQ/Jy0nWOabsk0sSK4NdUGAXA3KNNijyhmAclUO/UZre027T+NgedTRnQM/hWLhSqZ eymAuMPZoIqknAHOohC65jIKs0hkYQh1gNTCkI+xr40yIhMBCW7JpdaKGsy9Ktk4teu7PbsPQ++p dNOT52oGs1UUTs9+KfRP72Pr49QkNqeUmv4Wxj1j1hIRAVKjcHIreMkYbHyqZwEmc3Fr6MCc/sAZ c8bo81/2gng/x3PTLYB1H4DG1W1G8VQSSsJc0+rxM1euFkrdn3eXOvNT2+pDi7ronjqjdapdF/N8 ZLt+ojek9Q+fvKzCc58QXxqDk4LaU6oBng5OXf8uRmJOi3lomdMItdel6cfcs0vtqpmvXe8u95hk 6/0tgpL7by3AcNYL9Dz939V2ABMpcp+2Yqmc95ltojLW424xL73jNqw6RkZGYE3aQnbgq+bHyJcf CkzIBREkIKWkuBIFT9/dNoLiP5sAmCQV1BKhrMJjUjOfMi7VvhbFxw5QrVTKBMQr+NgXv4P1v74X /9N//7dw922vxPDMNxByQizjkhECYbieAAwACzYJYETcYI0TWCVBz4SIjLWc4fknHsEH/ui38dqH H8JP/4f/MU7ufAUSr7ARMRQLPSQVb3zcHwKle0oYR5/+VnCv5wK1Bt2HlGYIpxEsJ7DukjGOz9Rl qGhERpta+Tvdd017mgOnPjQK4W1yekz7s33o1G/fV7b2dTm43QUqVb9RaU/xxcWAIAPWEYibF/DQ pz6Mz9z3bpw9+SguxQ2Oo6ALGYEFMQJsGv/OIHCDa/bNp19x/hkh6jqKnbqRBRb0kSw2QIUATfCl hwdzQOgZmQWIK9zgY+T+ZaALP47N+jU4oztwhosYSJmauLqAz3/xEfzP/+D/wNe++W2s1peU+TfG iWMw2qVZVGFoWqqliub6Y4hahqBV8gCYMDCia2mSPTKhgjkWNx+F2POw/zzucTiNHmMtWprYniM1 g7uPSi0pQ4jcj7yC3auVS7oCSh2Ov1+erxrkGnvRh0d40YoZ1zwF09U6aRFlRIOjBNR3PkmebKTp +h/dMph5zEbclJYJ8gBF17SOTKG5tJAHi/Lk+cWz0Bmr4II+VKj3Z13BUFxw6wD8qv5KE5v9TAUw GCPYKoYSBIF0zbjmX5hAIUA4wjNNk9FUYhPogrr+eB2bQbP+JhFEZgvuVNcgjxUTMhhcisD/x9qb B92WXfVhv7X2Pufeb3zvtV7PakndQkMwIBLAQIbCDkmKSgjYiXFVioSYqhAqcSXlqpTL/5DKUHHF hXClbIwNWMIxCFJgwC6nLDFEDLJQAZqQWlK3xu5Wd6u7Xw+v3/R937337L3yx1pr733OPfd7rxuO qvW+e+8Z9tnD2r/1WxO2QRuRS9jtYw5/+LiJSCFAbnfd7Y7KOGsKUWAbW8zhpvOe0cro89rTAtNp LZVtxWCqLMzPq+DuwQ2IPg9PbrWHtp993lEKl/F2H821fdofo72MKo6eXt/uy9OjVm2ejmcuMZFA iyery+Htjli6e2Yyzt1gbjN2jXA0uPZbMFTVLuTULNrbgfZyzvSnMolrCjSQAhLPcxtC2J5wpQCG Z/OQkUC+3eGFRDwvr5uQnWEsQYFcB903MgWmY0Vo6z3P6YfXc9wJaPrTHdvprtpnlaqIXIV3ey1J wqVLRzjY73HjdA1wrxWEWZmZLGJm6rG7lqYcVKWTQAjifayCWlklgYgBEmIDHsmAirJqoKTzBC54 U4n0Z2KtRgoxK0OPTX8XPvSpr+H4Vz6M/+EHvxsPvEEg2IDCKUJg9UEN6qvZhwjaEMI6IyGY36AK wvVKzeCcM4g2WA3X8cQffAAvP/k4vvG7/kO8+V3fhuXRZZxmQVKKVwFTaoAJhZoXGiZfsGONToop jcTsZLpJ84dzjXnCSsjUYjAD/P1fnwe6uTlLYsLY2t9aCNQyNAYa3u4qUF2BHKfoK0xVidWZbih5 SwarYiO2V+Vyup9WWSLAU8y6r38fMnqc4YXHPo0vf+LDeOIzf4w+3cSFPmHJYmBfjLkHYifG/JPF AZgiEBmRAeasuf7ZrAMcEC0eIEYqrkIcSacvZSv0lSGBIRyR4jGGxUOQw7djvXgEK74X63ygKQsp YO/wGI9+7iv4sf/1x/HFrzyLbnGIIYuCJJBW0KagoIhI144V6mLuNesVNcW+gMLKwUBWItasXggQ KPCn0CEXBR9q7QOBLJOSg+csQ0kLSb4uaRtg+diUv7G9uRcCyn+f7G1e7yUX66G5uMj2vqNMo1mM RcwXWUBW46QAbcpbCrKI58nPxSoAUiKDTY7BLAQj2SxqQaay76ilUlzRb+a2ttfsBmxKAmUNuM1N 2/Qp2vPkAEp/D56ZJyj4h4ErB+42Qhj7hEsBSDX/v7o6Fflk7+/PUR1G+8HlkTK0RuYWZrz6bFfL mzGszfhu7XPNnk6WbS3EANmoW2cWs2xZKiZVCEjlPjMGEgxQi4yCQEJOCVmAAQSEAEGHxIviTqcZ WabzdOp6XD0AiFSpFhGYsRlg3988yqHK7VahuLN9PBvmtPVVsIjiELJA7Pb+55GbTvBIg3dqlqNJ LFdTP2kXltR4i7GnRXmOu2zLWDlyS5KfXrDqbVV+7MR5IoJQ3G79/WtM2ahfzHI9xT1ksRaYxto0 41Tcl+wKoI7nzjYXy/7ksIroqtRpX6rIrFWHBQlz1oT22KoEXF/IwYFC92w74q4Jt4tZb38v4H9G QM+du+toNb5WWdGg3upGMM+Ajv+uPoq3P85bdHMaPaB9KOdEas9pi683W8/t2vynYf5fz9EKjqm2 79+v12c42N/DctHh+s2NFu4CSoaEyGzmZin7DkstyIEmk4Kb2ahsqAEcgGEQBSApK3sJURcDykCI yEPSgK6cNVd0GnSdZygzNmQgKvsj2IOES3j/R76Eo6MD/Ohf+fM4vvgQqHsRFK4BTFjfOgWDsDpZ WVxAxmZtG3Jg8NoA3lpjAjoJ4NUJInU4efaL+PCvPY+nvvA4vuHf/W5cftPbMPRLDBSQzQ1AmS/d Dgk1K8G8stcIoNb3d8fYAFOx1Lr13H6822nbft5ee/Ofp0zHeYzRFPzreXda3G7qolTbQtRYmFBN 1kQEyQkdZSwDo8srXH/hWXz+s3+Mz374t7C6+hwu9QnLqOd0Uf39IyvLH4Ky+FrBVxWBLghiFxAI 6v9vhb3ULUjBf4xAFxkcMmLPYM4aBBYJElj/5QiJ+0jhCHnvIcjB27Hu34Izvh8rHEGoR8qEbnGA j/zRn+B//t/ejaeeeRGL5SESMTholV5mV9hVwQQHs3bopk4czJ9a3YgyuFQGVmsVm4IQrPBXD8QO EjoA0bj+oMGJIoBY2sosBbBOzdbsLO3kOE+WOcM7Pdo1oPZHB1x1o58DlH7Pmo1Ls8GAybxCzM00 OFx2OF+vVSCs36UCb+m2BNSUFdfYhAyvM0BkyTakzubR/tOYKNR3X0krgZMr2Nq73JKfm3U4kh3n bU9ZAPb2jtszd+g6a1jSHX0wvUcA7ZRMihHcCkXFwgHouhJmJLdC2H5Bfh4Bm2EoVtcEqdIiaxzZ kADpl8jcI1Eoyslt5+QEQ03lW+vjrtfM3we3BbxTxcGfn+xZYxk7h5WmhOSY5d4+b3r9tILv9Bma zce+l1ptu8V3c5gK0LWbboORRu82M4+L4sm7SdnXgplaBW2uzdP7tj/NEfBz18w+l2XUTl1Ht4vR 0KOpBJwAESuZnXXKt9oX7rxqrG6gdZIBsEppSvPo5PDfqoZcO2YsjPU8Kh0sppSMtWrbuAqBp+wU u0nUBZGdUHwoxQP6zLRUKkNO3ypbu2M5rWBQgmrStqPoJuP1BlHy1cIyzUBqVDhhW7H4swL/fq9W ALxW8D8FYW079ZgHUrvakXPessz0fcTBwR7opbPJw5txBWxQsk0jm58uiJr2SGmzmMDVrYJCAJKx /yUmwH438JHFgtSTclKCBIpW6TVESE7IfICTQPiV/+9zWC57/LW/9O04vtgBlimEGRhiBAXGZrXG wMZo0gaImu1l2GiKRwRGyupOcTYk0CajX13Dcx/9PTz3uU/jbd/6nXjHn//3cPDQw0j9AVZQd8nI rFkRPLuJNFy3K0zN+E3X1TSt6NZ4NcBfBFsE7LZQzKPy9oQMyVJdAuExBPMMWZ1bbOtnMhXKF87g t+1Pdf36vUy+ULEQmpAvDM1YKZ8qDkzRfH4r4IMAHWfw5gT95hTPPPZJfPJDv42XnvkC9jjhUq9p PxdBEBjoOyCy+vpzEAv2zQhB54gy/0Fdg0i0mFfQYl9dALqONA4gABwyQgSEN6Au6HhwVgnedUi0 RI5vwGbxZtDh23DWP4xNvBvrvI+cOoA6LA+O8Tu//4f4X/73d+PZK69isXc8mgfE6usswd16FMyr y48V9rKYJtaCF7phMyMRwEEZ1WwKgBUlAIcemTtVsq3mCok0aRAZxeVKzOWPXBFz1swUA2tuyS7n 882KVdWUjna7rO/Dtn+FZi6NgBjqpiySS2YYX9OiFK8GPoulDm2Ais+7Iue8grAtnKAPgDKnsPTu BuRaYMKeapK35qNycE0wpzWc2neZLmXRbENugWOy78hdaLDVF+4+MwZc9V0zoQbBN1mD2sNjGzTx AspmKe0+QQTPWFTbPWFWiyLj4+zvpf0diCsHZHPJ0algGAMgU2zr2NZniLm1IWtw72DYJ6eMIQ0l CJ4CIycCwhIbCSBawFPkahrnXTFxTiSE8m2LfxA8m+IEdJfsg/baUnHQ/HE7ssbVXr/fFHv42ti+ T4tPXJGp4Hn63jXwuH3OrmOL4HF5PX3PJsaUgWavn79n2fdu82y/b1HSqQXUdl4mxQ5t9xvDHrwd YtPPL9rhfjdW4HYpa4p3/Pz2PZkiMgYrmqrxjuQ41NuKsbwYva8dIwsAERUfQG+AMxUteNzSoogw SLY4gO0HuYY/vgdKJ+zSEEeTU5ypmfxumruYa08JZmEdxKLEQEERTTpyazO4Q/A9Eo6CkgGCMF9N 1N89pwkg93tYu0vQ8msE6ue10+/bRv/f6XGeZuoL9HbsTju+7s/Wvm+/DHjgvrvxxBMvqMKWLSgG UDYpUPFTdRuxiUUdVzEt2DaiaZu1MI0KaOYIgQJ9SclM+hHICvQZAhk0KNgDayWrwkamBAyDQLpD 3FgN+KUPfBwIjP/6P/0WXLxEQHfFnrsCsSBExjqssDlbg0KHsEkIkZA6As42oEA4Ww9g0jzuHQSb tEE/bHB28woe/9Bv4guPfhLv/M7vwtf9m9+Oo3sfQOIeQlrTgM1Najpe07W0i+kp18EDFifKVAmO ujNGYu657W/F1Wrmdz/ntcz94qM8044WWJQ52JjQx2tf/3bffpUhAuSMIAkRCR0yZH2Cj3/4g3jl ic/iypOPYz/dwiUa0AcgcELH6tYTAxCN5Y+e798sAMxS/f2Dn89aByNo4a8u2O+dkiUhAqEndcOJ Ao7QAlvcA90xcriEvPcQ+OjrseoexEouI/Ml5ETIFNEvDvDP/+Vv4++8++/jlRsrLBZHyGAgWL9Q QAgawMus6T45xJLbX+dn0L/Nzcfd8EocAHtF4GDBvh1AEQPUXYvNl51IZ1ZVUmW0zwtSASLSsNzt uE3ns8/d4i/rnwOQJwG7Dhw9PSJQQbTLKCnP3HaHdbk9nf1EVNTmO2IM9aLRfbwrRlk/JvfSeV0z VLUytj53m6xps7fskg9+nrsz1Ro/Spi4otSmam5BEvvn5t7tPtE+x/u3rD+yIOwQythuv5fvpXWP VXpHynMdIKsCCbClAvV5LoSasIG5UgFcg4aHvCkgfSrDiAIGiQAvkCgCElHnybav9nQcxocRkrn2 yVQxbd/7T3NM187cMffbPCbZTVY6YTtt9xyB6JmauBA/NEsA+XW5WfPteM+9W/svN9/PZcZp373F iJpDRMCZzBNmvp/m9l2PUfHzaba/ti3Q0zbNPSuV9PS7x2HXfdv+jzV3eigDwKxaNVvwS8J2o/ym 7QTX6H1zY7H7Jstj3ALQXWB/+v3cee1gA87cUBXg+kfRnlwBKPjeJlyrYY7fZ/u9VEMME+VgRkOW umG5Rpxdg7MMI7rhqMYsAgSuAL2A1T+DY9pP9f3mrCvn32fuvvVeYy19WljKfbnrd7n0MaDAOgTC Aw/egxABylKBqAjmRR4DlAFzfcl6W81Hbn6kvimpidEFf6fFySSrosFJS7qHoAuKgtW90CxBQgRS J1lIFqSs+f2FLGlBf4BXB8Ev/L8fw2aT8N/+wHfh8l09RBKYbyAEAXgNjgSOAevTtcZGbhLWJNgj Aq818Hmz1uwaKxaNHWaAckakFc5e+Roe/cA/wxMf+wO841v/bTzyzd+Go/vfjBD3sM6CUkVUAPfJ LCkDp+uMUP0qDSgV1nJ0bqpzZDQBavaOuXlRnjP5rd57lwDcTqM3nqPu7sOT9WwpAYvANhBTWBje mkflc6YaGyHqty1kcQoAWDJ6ZPRYgW69jK88+lF8+TMfx4tPfRk8nOBiyFh2gp4VyLMB/y4AMTD6 CDCTWQAyuuC+/zq+XafAP9j3zH6OKQ6dMv8UVGEQZMRO/f0zJSAsIfEQ6+5upIO3gY7ejlO6Dxu+ jAH72AwBsV8CtMR7/+9fxj/86ffi5umA0O+pTCdAzCrJlttfa/AqWA/BKvpSgAbeQ919mMzdR1+E vMgXsY6H+f+DO+Sg1X7BAdmqY1MWG6/GwgQojJO6/gElAtA408zJIx2+McngrJ7NLMsiw8XlBW6h RvVoJ6gFoVwj1aWwynW3ILOxtdkUimplZmlkbZl01QKm7XTQ6+ejXm9zLzXMvVCq9/P5Kyhg2ee1 E441ZsfIFnvfEr+AoGvYL/B7OsOaK2EXTCvJYCRG6QclvsbjUmoCwffdAFcVCE1dk6ZfHMhovFcj j3KjADb944qP9lWh0Jp2aIa+KqJMPvIYMOkQGOhnQzleKKxJrxqYkLOUfVpY/f/BSyBEXUuGJcT2 /imT73JPKBc2n9u+sLYmqYwvgFlPhNEFO49JzNaMEtvOm/qb78/NnZib+1XcMw/UxxaGaWyAP88z hSGnYr0Zp2G2dvj+09SnmnvLYvkTGQH89t3c3a7tA8erxVI91l0mfVQNyNPA/fZcv7cTXiOXbnF3 xvNxV/uGeunk/MaDpL3bLiWxKlbj32NpeKPhFRcguzBCffenWn3RsGU8oeYa4r5dnvrJFxgmGnN7 /9mXmGpdO9YBba0cB60VELiwEKnBidNjTlGxJ4y+q8xD/a7tT89z7QqJH3ODMqcpv56jTPyZmILb Af/2vDktc26B7brvnPCpDAKw2Wxw4cIhSDLSsAbFDmQBVQkZLMFAvq/OXDYEX+zJ+xYmsP3Z2VPV 2XMpgGO0YNpooAPq3jOImfjJdIABXkpdmVGY16m6mmWJED7C9ST45fd/AhDGj/7Ad+Cuy4wQn8PZ 9ZfQESOsa8B4ihmgjBCAIURESlixBuoxC7BRpSpxRsgMXq/QhYh+WOHsuSfx0fc/h0c/9od427/1 7Xj7N6tFQLo9DMxIWTSxZQPqW4VNOwS1/Ll9H0IYWWXK+jhnTkx/nd9MtufE9Pc6/2V07rbAksm8 mbj2FWDjLPBEFvn5/hyw7idW6AgiYNYKvgEJPTK6vMHNV57H45/5GJ7//Kfw4lOPo08nOO4IfacV e7sgiASwgXT31e8CWeYfDfLloL78gTUGIJCm8QyWFUgDhNUKwAyEPiNGBnFWBbIjUCAN9o0MhAVS fwxZvhGy9zBk/21YxQexoTdgwCE2KUC4x/WTAT/5U38f73vfr0J4gbjYRwbB2Xsy1p+CFfkKARR6 BYaNX79WVY3QuADN6JOJDVRHPY97jbWJC60lwB0oqhVAN3B1c2Db0NrsM8SirpJl/OvY6T4zL6/K +WVO1O9ZqCiEPo9S0qB/zMgpn49s7nUhhGKBnB5lv2sBhckkJ3JGRBIcwGbkkia1Xk5k6UENBBN8 36190D53BGRlDDJGbj13sIe0itOQJxa1nNUHbZapHMv0dr06kzr3rF2fyRJFqO5OprDUwwFcC3aU ZNTrXBgYZ4Ms6iKWRYE5taCYaqxLvVcAaFBFR6m70jcBmn1JkpIOAyKEF4CYZcz3dQG8AKnLq7k9 cQqTS5/N9E9LuOE1xGT5Paf9/HqPKWHayu32Wa+pXTPt3EVOZnt+ew+fA0UNnEl7GXz9TLEjxvNr jnAs/c9UFTeu1orb4fjR/uuKayOj7mRYpHnvKdbaRZptXz/G6H5OLK4rUwWjsOdcwK0LsXaA3LUH UFPc1FrA4towIyVLqUWEvMUUnw8c515MLRUTPzOfnN7JBTPYRkKYDJwrOnVCjwHzhMG2gIvcVKcl pvZBk/bofdNUKy3lyrc18bnJ/3qOdpymi2paWOJO7nPe3/XYVgzG55sPLFUGQSTjwsUjHB0f4MaJ gX2ryFt8PNlzdBsbYwuSRgu+yUxhnB6RVKWT1Hc6pWQ+dJZRQykGUFBwkvJGXYVEYKEwWhmQCDlb 1VVSdoKEkMMhrg+MX/xXH8dGMv76D3437r17gQStMLghZdxCCNicniISMKwTgmzAvWarOsPGcJYG j56sRFlL0rL0IEHIAzrKOHvhK/j0+5/G5z/y+3jLN70LX/dN34a73/pO9AfHOMuiNRGgG6BnCQge XCUJHLWiqa9r99UchmFLgG6xGl7i/RzJNyeYGhE1Aml1TlrFQ88rLjNX2nlzZd4hom0SIDepDBVM KNDXc0OZd0nU+qLVVTMiC3oM4LMbuPrVL+KpRz+B55/8HK4+91UsaIOLEYicsehYM/FQRs+aLCe4 yw6pSw8HaMCv5f1nc/UJZhUITE1mH9biXz2BQ0Lo3BNB3cVCFFBMoECQCFDcw7q7ADl8C2T/7ch7 j+AM92CgC9jIEoNExMURXnjpGv6Pv/0T+K3f/n2EuAfmztJtG8hky99vRZGCBQKru4Sm0B2gLDMQ AVKgX6qiG5Gj9pIaFAwwiDsE7lBiycp4ZgPrdV0BgORmnyG1ICcbTx9HkGeV3FZAcyO/dSIBQlIY 4kxSquyKZECafauRi9HmFTfZjaxhda4BhYgitBsrb8XKbFUIZYLHwWlTa476AvS3X69hHi1egghk MUteeRjgElsGoPhHc7MOhTSrGcHjnuaU8XoUVtWoUZbKUrdGQH18lQpV5qciS4kCBE3udxstVT5a a2PD5pssiUTmkpPgoyoi5mEAeJYl9TRotTLSxeTPIvvO41xE10HCRi1bqcmdrr5CoKwZgDhp5iBI ROY9gPfU0gWdQ9q+On4iquirLK4M8xSM2sQoTK4UJRmN4ltdZ3MmuGVoO9YAo891OGlyniuok8sm QXW7sEgd3/Z57XlTTwbLujitGyTbmGLuKHUjJueXO0+wZGSuRJf/3pAK/l0lkFrAWNuv4snXgO+r uVicfS0nPa1psMuHKTjnyRqZDsBU0a6xpPUeTqALQF4QbCyf2me2/7Z/E1kl4Dl2YQQeYewGb//u A+jdWB8wr/27i8J0mKcM8RaAII0zaH/fYmCoCqBWwPjnthqwM/Fb2hFDzTa02xet7Uhv4y6//yQ1 TdOcplYYrnznWv2uNuz6vjBDk6Cc81iBabummuPtrm/PaRmm7d/088HeEvv7S1y/vtZCYKXvOlWi RJ0TNIuGqHcX63wqzyg55DCKy/BKk0QMNCnQNKhXA40lR2VlRJXfIScEjmqGJgEFARKscFjSFFxJ IByQhwiJx7i5EfzyBz6J09UGf+OH/gM8eO87ccpfMQVmbW9url4kCNQjbBLWA3RDXmmw2WbQvlpt MtZEwJDBHLDaJHAa0DFhM2xw9sozeOxDz+OxT/wRHnznN+Nt7/pW3P/w1+HC5fuwEt2g1zkZONJN MGXdrFLSedl1na6lnMeuV5O5OmI9mnOmApt4t7Vpbl1Pj+k6mJNHY6FO5l6HAgq22zVVSjOIGBEZ nQgiEqIk5JMbeDFXmQQAACAASURBVPHpL+MLf/LH+NrnPoV04woO4oC7uoSOnOnXNJ0hcMnuE1ld VWLQf7sgpeBXNPcfzemvwb/qJkQIgdF3AUDCoiMwJ1AUzRIUgNBHzfgTCRIIEnoMcQHauxd8+BDy /iMYFm/FJtyH9XCARAdYS0Do9/Gpz30JP/7uv4ePfuxTiP2BznUhS13J6qvf+EGT5e1nswhopVMq ftGEqEWaWEE+e6CvXZcpAB4vUIKGrSpwVqIo54w42UN8XlQg0Iyage+2Cj2MgSxBqBNG8jxCI8ZY 50Ddv6tVqAXhcN5ouzJrmb+U/SxUxne84bocAkxJUTOlkQkZcfJccos0xvtIcSnxlzF//CJDfT9D 48533lojTbUrgtE53ofq6mhPZQsBbu5/3hqeWpw9SF/TitbntM8DDMgRz84PJdqMTLQ13KY4bPdS xQYEBIIM9h2huItKE78gllKSLRagtdwQaUyk5IyUMshSOQsYG0TksIAUht/iP8ieXd59ez6Kjc3o 3Ww+7J69eXTunwVBOFKYp+0bYbn6vQ97wV+T6+4UE2y3Y64NM2tyZu5t7UFN/8zhyC3MN/McPwJ7 7YftvWjunrvaNcWqr+VonzfdlwXb/Xne+dO1WYOAaZL6a9KIIlRo8mKkCzfMzMdxQ9Q3C8GYFddw qbJ+bcEDXxBlYbQCY66TXJkqpn8TDpZeziu+liCriaCp+XD1ORkGJkcabv297Zfx7809mhSVXmmS Gs2Xmtu1Ss3tBOz88+e/nwPu513XHrsm/HlM0Vy7RJQbNNxu55rAFgFJwuH+HvYWPdJwS32cgVKk pWQApYwsXEzkIig+gkX4+ifKY2OpKHMmHFV3zmLsowbfekVpyRnMva4MmxOBCBhg1i/NU09QMKW1 fkUDHOM+TnPEv/jgY7h1ssH/9CPfj7fe/29ofvWTaxgiY3MC9LHDiggpZISQIOuNsqxMWK8GkK2J wECAbsYK3BmrBAxWGCmIoJM1NrdewdN/+EE89YmP4PKDb8Zb3/UteNM7vgH3PPw2EHfIsccmZWQh y/euZe9VQdVO4pJtaZxFgGyhuoJQNutGRoxA+Y7MD9LMm7mNw+dDzsMoS9T0vOl9NYd8KG6LpXaE GIAks/gUi1dCYKAjQZANcHIdw6sv4ckvPoqvfv5RvPzME8DqJpYYsOxFA3tjRh9YxyJGDdwlAQdW Vx5j9b1Kb7Dg78hiWXwiyAt7BRSXny4yIgm6PoCDnkuRzAKQwTGpW1jUKODcHyPtvRE4fAQ4/DoF /nQJq3SAjB4SevTLY/yr3/xd/MSP/ySeefYKYrenoMoc3VMGOKryAdJgSi3Q5YW/zH2lTQEqrGCK GBDWoEoKoKgWhAwGWH3/Q1zaGjXrgggInoVH3XwIBuBtZozIAGrIGR9r8tSX401URMBkAX5KA6pC AljhJpTzGaxxQvD7+6x01xIq1/k16rWkzq8B0RQRnV9sjPiYzYNZ7fyhpP0lgMfOlPcVIDaWFGdk rXnwygXMgpS04A9RAFtIswNiXQuufOSRKx8zQ4L5IecxWNY+z6ak6cuWPZdNSRYgM42sfUQ1+1Dp I39vP0d0vx87Defyju3+JhhbWUS0AKMXVtQq0lZjQgQgru1nKdu976slOx/V+AB9XpPOl9kqQ5tl wGJa2vvGqJUGPC6lVVKFCAj7QNhDkgC1aucy5gSAXZ5NQLvzv+IMvvj9Kxut88Bdk7npr9oW5nDH pKE+e5tZngXsxcdq2+dfz/X/EsbKg5+/C1foPKNiIan9pY/ZBvE55/I07fdGAbAYTrE6GtPA+5E9 whRawPdOMrKv8Xxp8JHOcSXQvA2ubHu8zq5DZUOjZJgsyy5vqGaTvBMlzuvdVMLDcXLFca1cmev/ dpynNYJie1L77/QYbpNfu2VVRt819yzKxQ6NZU6TA6bBIdta3HmHd1CW8YvvAiPt/V1Tv1NAPn3f ud9zGvdjG2H/Z6XZ3659d6pctEfb3+cFKs8pAnOKQeljVpYlELDsuwIEIjMGAJ7jjR3sK+qHl9VO qKZBsgVQGCcyIDDK8+vAJyqzz+rmajWlEIK7DAXbnABJon7P4q4IwQCwbnoUBEkAQocNR+TMeP+H v4STs1/D3/rR/wTf+KZvxNlLTwL8PMAd0ukt9EJYnZ4AABYs2KwTAA2UD+uMYWP3JiCmgNUmgwYA JIhZ3YqSDKCN56UnrNY3cP2Jz+IjT3wBH710D+5+81vxyJ/7Zjz8zj+HveO70B8eIYWAwYqdJagg zSKWjjQjlLRlBd7vHOfp39N13Cr003nUftb1PT9f5tb5iAnLhFFqQTs8hoNAWASA84DAGRGCvDqD rG7hiccexVce/Tiuv/BVbG5cQTec4iAIes4gJM3YY2k7O3Ph6ViZxGi5+ENkaCVeMVcg9fOPUbP5 cICdRxoj4K5A5g7UBSCEjBAJFAlxAa2xxayuWsxAt4/UHwMHb4LsvxV08DDW8QFswl1YpQU21IG7 fZyeDvjZn/lZ/NzP/RLOThO6fr/6Mdt/HLi4twgxYug0PS5bsS9P3cmdpja0jD8a2Eu6UFjTHQoF ZA7gqGk+iXttfOiKqV+kITYElbHKNdvO1jyihm4JbYHJjNaPm4hGBIr9MQKZI+W0/O1yorHgorLE qhjnLVnlQaxeyMufv0u+mQfTeC2E6nJa2LgCIFvA2uxBJUy5PqO4FlCAvxIRIULjoUIhT2S2EnBZ d5PvXPFy0FL6aLJn1Pf0a1GAFaSC2dAoV255m95nhD3I8vTnbMK3tq1NqdjKgxDCKEaESC2sKns0 mDoAQIgoBIG9J1sVa39nUipESSIZpwr2e68HIO8tMNASXlm4VVpLe4Gt+ekWg7kdeMzOTixVJCMZ +Vo8Blpisf3uteCBO8El593H51vrWjT9fa49o/3EVFEH8e7oK1JVzYL3dvTPnWIfIgLlPM1uey62 a+UO0fa5o33rDnFei4Gry7TKL1+XW2toRzun5zFzVQBociKLCWFh+9F8kcQXo/su6vdeprsIJhnf zx/qPtsj/8FzFICSHUdxn18wYh+BumE4gClVJVFZYR0Yn4Ea+OtBaGw+/Qy2ANHmXeyXpsX6LNSg 5LpA68anDKRlLyGvKFtZn+lGNe2P13KU83dMuhZI3clEPI/Nb8fTczy0qfZm71Mqs27fL0HQBeDB N96Lzz3+nNKURIhkSkBTWZMZENa+zl6pMmVzZ0BhDakVvKbIuTInCBpPQNGyNAWdMCzwSj1MC0ge ANlgyA27k9fm5ytIyc5FhKN13Vz2kDngdz72FG6d/Tr+1n//V/Gtj7wToVsiXb+CdXgZOZ5pZqCT E9BaWVlaASFpysh1GECkrCmzLdYIhE3CMGgWI7UKRCQRDFBlZoGAZR6wvvo1vHj1Cp7/9EfxiaO7 cPdDb8Eb3/5OPPDWd+LS/Q/i4MIlrMHYANhwZVhSVssVcyqgzRV3tvVDRPruqMu85YaKH38es0e7 WH31+afRuE0/Q6prhM6DWKuMEpl1JoFFAxZzzugCK9OfNjh55QrWp9fx6gtP4anHPotrzz+D61ee RchrLKJgnxO6PlnwLtCR5e7vzBJDSd19CJrth9VyFGJWLxhmdFH7h4Ng0alMCEHvEztNExoCLCiY EI3x96ya3AkQBNwZw8cRG94HlvchHzyMcOFtwPJNOJVLSDhAynvI1KM/OMYTT17BT/xfP4Xf+M3f AfGiMP/OnrnPv87xUPL6i2X60WDgiMwMEi5pPwv4I/U7FasCnCkoGCerDUABFFQh0OeysldZLBe+ Vecmc28xS/C4UqVaoHw8HayTsWctYPW55pUyfZ44Q6eXVv/3YnmkCqxaYscBvgN6tuwbbQ4TXQOq xHgWHyUBlKGoJSO0v8FkBEMuDHtKOleUqTZXU+SS7ajKx1zkWZWXuYyHiJFHzGBhcHNtdCsHlMHX mgVS7g9Ul9VWESDaDrZ2UCtN3I2zmaM9yvz/xfOnS7CMPoYPsj3Tg4yFbe91ljzV/TZbRi4hsBFE DLUmFeVVBIRQiiD5uIkFk5NZ74UJSFC3NYIpsRr0nicZf/x9iSxTF2BrgDEMG9ikBCQg0xIISyWj 4HMcVWGx/jCuWfvV51Yz70oG3KzjozGG1eUsmqeCilubIyKl/6u70ZSxrxZPfadQFRqawxfT63fF FJyfSrxiQr9fE5yecwM0pwqlB8ZbcTCrz1N84KlaqH19wMg7f66+7zyeKUlBJoqGOAHr+IRh9Wtq vJDiHCr4oX1O68kCoLD/7dv5/Jz2jVt+7uQQMSsGVxc9YFzNpp0P2SyOlMcKQdt+ERnXASidldXF wU2jWfJovBwQlBvu2Nink8yvmwO3UwDs17dacQkMQwNkJ/dvAe95zyHvsPIO+nvrLrBLkyTBSPMc gxtvXzXpzh25ztzR4LxeC0D7XnPfz313J8+aY9OmmmT72+2OLe2exICS4OKlI6S0QYya+WeQbO4+ UcG1V/oFGuVMqgA15S94oE1TGVif2wgUjoB4MDCKVTJlBdeeDQJgc4NQNklIVDgxEABk87FX31AF 60MSgBbg7g34yKMv4G/+7Z/D3/yR78P3fOc7sFwcg+IehltXIeFVdEQIXcRmfQZhQdhoEbnAlnUo EoZBsF6bWwiAISjTvBoEMWcMSdmRmAUpD4gELMFIkpDyBsO153Dlxst49vE/QXfpbhzffT/e/I6v x+UHH8Jd970Rx2+4GxIiqOuQhLBKgyp2BAgHrQ0CB+v6js74lb51gD5RHFtL2/TzdJ7puqubhboC jU3VNUg4IbCWsg9wdT0jyAY9qxvO9Zev4Pq1q/jK5z6Nl576Mk5fvYLh+ivA+ib2JOGuSAgxIQYB cS65+bsAcOPzHyxPfyBNCMMMA/6MGMjmL/QeHSESIXC2wGDN4x+t6q+6BFk14E6DhDkSYmc3jwSJ HYawQOougA/eCD58E/LyYQyLB3FGdyHHY2yGgCQLoNvDB3/3j/ATf/cf4XOf/zIW/YGm45RQyY1g Lj2wjZQZQlEZ0RDVumWZfJgjKHRQNzpnRxVQCROYIoQ1G5CETgE/d2DukC1QWKtqK2lTXC3bcZ6w 77vkhrqzTCyIE2vw9ChyKeXiAjZ/NCQEVXeRUbtMpPgOUKqSq9AfzfPCAPv1JZ1mM8+FEYJbxSwg lAkseeTCMGu1cKCRs7prAToWrWVAUORd2QNdLk1ktsekaVIF3d9zrpZVD6qWpg272NCqsLR7rwPy um7bfw0RFegwclsSzcaWUAsJ6m0M+EH3V+/z2gaTUc2caf3qRQRZ1J0si4z7rsESDF3DPk+HlCwt qioSiSIo7GOQHmn3BBv10WiP1y9G7QbGltNCVln6Ua9XoTxWe8/b77l3ftyZVWG69593j11k4/Ta cp4rthS2+kjHTLV7Mlw6ndd3ekwBsX/nelYGwM0502DeuWM0F5t1623V2P0wefZrw3uOG8s+ivru 2qcqG3ZVyZ6+d2TZPmGUNcAypZQFVnFXOb+A6R2d2n4OoNl3nqQV39JUqPm+Bfj+WT0moUBwl0LS MEWuhZFsT1j91zRxX5gtuzM7mWtdgbbgCkQnsvtWlwaQ32f+vbfaPgHec+d4vmf7AkBlEKb9u714 x8yBH6PUkBPtVzeFeaVuOk7l+Ts275TXeOCBe7C/7LAazhBZ3XRIjOk3BsUrShNJyRKiTiBc3AN8 vox6yjT8JBkhqoBF0vEnShBzCQoh2qatoA56GnJOChKCA4yNKRy6EWWkkqZMRJAYyBwR9+7C5595 FT/2d38dX/qBfx8//Jf/HVy89xjdjWcNdPfIq1sIp+ryMZyuEJmwSRkcA2idsNkkMAPrjW5OIWet FBsZm01GCkCXNW/2kAhJlGkEBQxJ+2mZ11hnwfDy07j28tP45GOfQNw/wsV77sddD74Z9zz0Flx+ 45twcOku7B1fAvMSiTtzFbIxBTQ4O4sx8BnBLGZe2TTnbGMc0FYGljwYeKvCqy0GV2ahkV+BtPoq Bb1nSf9rsQjMjEAZPQfkzRmwWYPXp7h25Wu4+vwzePX5p/Hsk1/GzZdegqxuAnmDw56xkAF9L+hI 0EV1lYgG1om9mJdZAQJBGOgCg0h0TrL+y8zK4hMQIo+q9TI0tWpnbj4lEDhCU4AGgKLm8w+WJZNi BsUACRFDd4ihvxd84RGkvUcQ9h9C5otYyz4GWSBlRlxcxM0ba7z3PT+Pn/sn/w9u3FyhiwdIwhAo 0ByyjxoXywwZgOegfvst+4tgwcFWDAykOf89XkRCrJtvqfbbQRBA3INdIciEIBVUByIgV66q9Q1X kE1a1wBVsa9Ku4EiB4zlnZqlbfPNGTZnPP0+GSg+tB6DUINzSd2R7JYup1rg4kBgpIiU7EXkSWbg rmjq5mysn1WAVYCPUmjTzyOvT9AAdyUUfO1owDVlU5xYTB628QOA75Ct24pnHBp3FhtoajJliaVn ZbX86H2NkSaodUJoa9suCoKNSOuLLcie+dUOVeQ5Ngyy75eicoW5FjXMpBbEGuSY6yW+R7NAJnNh urcwaxafMp8aIkGdOENRBNpr+14tjDlnHYsA6E6jynPuDiFxCRGtz5ExVkzrXm2xCTOeESJNjSWq /SiunIjhL087N7qvH/P7dvv+zjSXy6aaHACvh1IcJKi1LgAt1+y4ZRs/tAqJjxc349dYyWqP6Cer e1EfUn03tjfzSiQUYkgbpunAUftpGpmQJ+NTC3Xp0zTrbVAvkMZlyd3hAsiIiWjfe+yJ46w8fp7N UDJXW2nm4PjYjrkYfSZYUL7HxM7IJKJRvQxdV96e+bi6LQvAHCtDfjOm8mZzOHROCZjV8mY6YC6F aPuCU/Dpf7dR0COgPnnmHMMzbXP7WUrMQHVdaX0Y6/uNnzV9xpxSpAcbQKrnTyvuTfvrPA137j0A bDGwu6+dv895Wvv4WTJicHa/9/a1JBmbvMHFS0c4POqxuprQdR02mgRbR65tnzH7TLoAAwWriOvf uVBwS5UBftKcwJLtfZnVVJ06MCdkQNO9cVSlxjIAaSCmgYjM6gYhampW9m4AROUFiaUTJUbOA5L0 oMVduHLrDD/187+F556/gv/xh/8S3nz3O7AIPcKNF7G++RI4BHAXkbqA05MTLAbW+3SMzYaxCgNi jFiHhCFZSt1B40M3idBlIGXCJgtSFkhmDJIsWFHZvUXOGLIqS0NaI52scPOpa3jpyc/jC/vHyP0C Fy7fj8v3P4jju+/FPQ8+hL2ji9g/Oka/3EO/3AOFgEHU7UHN/QmZUTZuny1kUpvcVO0bEXwzFkgJ +EWxMkRT6iAZQdSlj0k3ji6oy0VKCbJa4+orV3By/VW8euV5vPL8M7j+8hVce/5pDLeuIw6nWAZg mROWlmGnI0boRO9pAD9wsgBeLcAVOIA4KbBnzfajjL8H/KrrTyTWTD1B04EqsLcaAKyWhECo7j9B Qb7WxSID/no+CEDfY4hLSHcBsncf4vFbkfffgjXfD+7uRpIewxCRaIkNFvjkJx/D3/sH78Hv/es/ BsUeMe4jobrODNnWlvucG/inoAG/HAIGEGohJM/eY1YB2DwnKv8SERIsFSJFCHVA7BG4V+DvqQpt s7GVV4L5ARQX0pbVVrktIx/vKj/qmmcz/5WUipM9ZspMtrJnmoFMTEFxxtuZuqm4mrLmTmCM2FpX UowM0Qqgfu1YZtd22F7iskpQwEhLylHTbyPE5G0oWc0IzsJrbJSBPr+HjOX8tI7Lrgxgo76ddM54 r/AAVcs21ip57f0EZh3Zvoc+o/Z727cqX9lceiuwvd1R7k2wVKkYZTMEVcVG14sq+V1kdQFtAJlQ QEJApg6IS2yEEUJXvHfmiE9v4nn7r76r9/M448zt9s87ff/2aAPFtzBL8Ulq+v4292u/f60sfB3/ qpS7r3/JQtU+g1CSe0yfNTt3JzJh7nD8omtnW9Ea4bEsozW8fZ/xc+90np53+P3Ow3ej8wUVF4u6 ofs1jjP9cyy+SyaYfXGEuirK4p8KAe3U+uC515wCSi/S4UKOoX6Hrq256bH4LrEWZZk+d1cgqpcE d6a+dE6ZCIQ2ECnbZPNvalun93efTO28ZIxycBOq0UBVg9ZNMJgPaKmsiDrpPb9CO3HmJul5k7c9 RsLUX9v6e7yU5piESXAd7nQx385sOO87WN7JUjimlLDcP8BDDz+Al65+2fLXx7IpV8ZBAVMbkKvz sgbKkc3LDC7MIUTde8DNtcLIng8byvKGsADyGhwIGWuAxDhUtUQ4CBCxGhRCpVowzBGFyeNI7F3B kG4PJ4PgF9//MTz53FX8jR/5K/jOb/gmhP2nIH0Pudkhn3bgyOBIWJ2uQcOANAgCJbAwhiDgELBZ K4BZrwbNIT9kpKSs0SYBSQRpyMjESEHXRE7AJmd0oiBlsPMEA7okSOtXsT4Dbl6/gmtf/jQyR4R+ D4ujY+xfvIRLd92Di3ffi72LF3F86TIOjy+h3z9A6LXY06LvkYjQR3Ufcd7BBbVAXVGyxQ5wCe7U LA4xCgISQAmUEiAJeVgDZwNOb93A6sYNnF2/ipMbV/Hic8/i5Po1XH3peZxdv4a8PgWlAYuO0WHA UWTEhQb8RhYQkrr3eJAu5Zq7n6qLjyoCWQNl4f77MOBPmgUoiPn8e6rPrC4/UQPIPf1nsFiAEADu sv7dKfjnLqPrSK1JQSCxRwrHyHv3Iu0/hHD8CGT5Zgx8CV1/hFtnBEGE8D5ungX8y/d/EP/op9+L Z559EbE/UDetrEx9Nh9ZJi4JPUKwYkUcwUF99YUCOivSRcHy9XNXZBCB1GJjrkCaKjSAqVNLQOhU WeColixzu4tiQBRs+fXNhcvXgu61qNkwDGg0gLyVQS72qFEOeFYWmmnc9pYq9y2fjn12YKpkVsve OPgsLfWGlvZMFQxtf5VNkqVU5i1ERNlHs+0z5noDLntq3ctmLJcTYF2ay3au5NLUKrfTqL9G1/kz xceCi4zzt7ZeLoy8A8MWKEvW/yC69SlZUp/jsWFi9VwcbLtvP+nQaNNb0AVjSeGWXtuHrLij2PzU /ZTLfjxHXIkRuJlY5TSZQut9T7D1IqO+i0Y6RGaEZIrvJisJhB4S9oDQq9U46y6Td7ShHmr9ZIu3 oqZfdC/SzwnuIubXzoBaEsjttt3ShrElbRd28unfNnmMA6bXuIIwZ4Fw1lpQG6qB7vVdLJ7E9vM0 Uf5AVHPtAxCk0e9s86mNWGh15ALeZ1rtTXOuyX9p+6kQwV5zw7MOFbzcDkBV2hjQ2LcJQHdc6rGy O5n+mUPniylsXMdv5E5b/h33t95AXSHnFKbZGAAN1pEyOf1fFlQ/7MKEq7Yxi/4xDyJd49PX3u2v 7+eWfNCivnAjjWxy/i5WaPrdtqY43/75d6ltqL5YqKC+YX6mufdZvBiZ9191gdhVhOl2bHq7IW0D +93XT/tqeuy612s5f1c7pv1PxGASfOM3fT0ef/wZ3bgzTOP2/oVl4eCRIimspj+hBJJQhpKRkaQq kyo87ZkuCgRAIFACwH1JlwhJIFE2XVNhEpDVJxqD+igyALCFP1MCLMAvpcr+EJHlEWbksAcKHT70 yafwwt95L/76D/9lfO9f+Hrs33uIdPAc1lefgXQd6LQDdafYnJ5AcsbQMZjXGAYNIt0E0UJiBKRB s82kQdS9yYJ4h0hIQ4LYb0MQxKxp83IWDEFTbmYh9CxIOSGRphtNpMHAaXWGYXUVr774FF6miIQA Xi5B3RKLgyP0+wc4OL6AfrmHo0t3oVv0WO4dYe/wAMvlvoHPiG65KOO9Xg1FiKX1GlkGrNdrtQKd rTBsVrh17VWsV2e4ef0VrE9PcPrqNaxvXkfenALrU1DeaLVeJhyy5uLvoq4lzcmv+ZvVZ18z7DCb r77/TqTZd9jde7Kl8ASIcsnZH1gz9kRWVwi2Sr4MGMCnktnH4wiINd89B40JACeEnsAdEHsGdwwJ sEq5+5DlRWD5AOLhQwgHX4e8eAAn6QjUHWO1VgvPYnmMx770LH7qZ34J7//N39OYkG5f41Sy+u4L 1C/czdAhBCSCZT+JMM3FAiIDmCKSB/uGaEHCpPDdM/1wALNm1MrEli5Rq/yCO4B7PVcYbBvzNPCs lRuuDCgBVOV3cDJEX2KLAS4b8m1k4fS3wqQ2z5kmoACwBZiLbJy6QM7sJ6P9qJV/WQDW/PFoZF4F OFAQY3IskjH32N6OCqHDUyoHANkzyt9KLbnLQIGSBrJaoKPEH5d0v0C1IPi7FMYQpPNDBCNLuFft lVwY+gLcJ+Pg1hdnImkHkVeeO7UK+XUkyOY3M9r7oMoNsbcpAJpKwhIFzBNhLcaJTNjrOnAaCvgC MiQHDOiAsA9B1FwVBug5hBGzOgXS/rn25Vy/aL+2VnRdh2MMsT0Bzj8cj0zxzxYGmr1uG0PN7fFj /GEcvTTzHdu44TzItQsT3a49t8MfW7hj5vfReZM+277/TIzoTL+SKys7FPM7OfT5tV9G1b9n37u6 ordys5VnIwVgDGTrghOMO5pspfhivtPDNSSiiRDGmIzZdZALTWzHDPjv9QNGgo9MAweNXRFKlp5J O+eVhblFQtCNzLIdwLQtj1afNFQFvA0CYGz1WFmZfj4v7ea0X2Sy0Ha+iwdKzeTfnZ47GvvJ36/n aAWQdz1lQaYBl46PsLfocePGCkR7EEqAKAgZLEd1YQBE+R/PSa8WpKQCm0yIkArQUidCZjR9AMJs RoQI2HxJkkA5WeVf9QOVNGhu7WGjxZUwIHJE2gDCgpSzukykbNWLkzFcyjwROuTuEJ9/+iZ+7N3/ FF968nvw3/yX/zHuvfsypDtCuPU1pBvPo1tdw2J/gbObNxDCGl23QFpvsD5LGAbC5lQwDBnrQRAG QY7AMGQMpgDEDEhQ5iEHYJN1raYsGDJhkQSZGEPSwN5kUyGboj2IzuFEjCSA5A1E1shphc3qKtKt F3CaBbcyuNZBDAAAIABJREFUtJKsEBC0AqxWkiVQULcSn78xRrXmFb9YUUuPiPr7k0CGBEGCpGRV WTMCBAsSLEIAR0u3SRYzy8rWE4u53Cigp2wg3jLxBCg7T+TBu8r4B0rqukNoAL+ALbi3CxkxBos7 sHOiZqhCzJbaEyAMmgWoBPoqOAgxI3SM0BMoCqgXJEpA3IMs7kLq7wcO3wQ+fBh5+SA2dAESj5ES I28C+v4AgzB+6Vc/gJ997y/hi195DhT2wSEgiYyYfs88Aq9uzMHmrqb5VKYf4NiBuIOETpVrUtBH QbNuBe5UKaCgaUgpaCEyUtAvoQexxiuA2WpGaCY1sliZ6kJJVnMDZV21BaE8NidTLl8pG9nItIZ5 qyLHBYd/tHeA1unwLGwCKRlhAJTgfd/jsr17ybNdWEa9ubfFfYBbn2J9NyOAqMr0GvBq1m2kAlTn Dm7ecze4c6CxDWC1HfUzYMSrVcQd+XWTxyl4h2Zzlax3r0wilew9rdx3dyUiKlWUCbB6E+525ikL rfWWZx+Undy3xAnjg8iCdGHuseSKiGUEEtFsU7nOF9/LiAjO1ehDBRCx79RdkTwQ0AEwkcrnwWQW Mjqr+J3TBoyAlDTmaSBGlg4SliDumz6xuAzthBEBWMa1oaX0S+8X/1uVF4LHgwA1TqMqW3orC0ie cf+YMvVucUDJxuP7+rYby5TpV9CakCUj0O689dr3/uyqBLT907ZTFbs2fXdDpJID84niB52Hm6Q4 K7oiqCeUffy8o53DW/OuwU96yzT5fnxUWKf9lSBlTutzqNzH5YMO3h2abnYcUxfruXezFo5+36XA zFoA5o7pZGu1w9cDBJ25vd31NetHBWylwivQCOzd/ulznXXecdvfTcg4S5VLIvnxM13RGN3T7JJe 2npOM58ed9LHo8k9Ae/+3VSR8A1vqiTM3Xfu99c69tPzPa+tgwTJGXdfvgsXjvZw7dotxFjNozkD gQIENVWdsk91LmWxolmUNdiPyFzMmudVE0AVXMLq58+sikgGJK8VSIUekjeGSkTT7mUgR4By0jLy SZUBToCEBMoECQLkwRg3M2snqxfAC2Cxh6tnN/EP3/cBPPaVZ/Hf/dD34Tve9U3oj+7BavkE6OQK 8tlVLPsl0tkN5NUGstmg61fYrDZqBdgEhM2AuBHkxNhsxAKBAcmMjbme5UjosiALYxCBZE3jmYaE RccYNoKEhJQBEc10soDWBcgQDFlTXaorG5A7T8dYc5vnpAAgp5WBPAE2pvASlRifABjwdhewhBBq ij8i/SwxmbDLCKRGdqYBTLGAfb2HpUo1gK7FjSxtKgFMbMCdyvccgM7cr72YFzOKshAZ5t/P6sNf ztWsCSFQcfcJwSr3kmUGCqJZfaIAUdQiEATcR+TISDFAFoeQeAF08Ebw3iPAwUPYhHuB/jJWqcOw 7gCO6PpDfOJTn8dP/+Ofx2/89r/GaggI4QAgRibWKpWSFcxTwzIzWW50tmBfr9obrP8CPNhXiEoG IK2ZqKk+BVxcgITVZYhiRKYeCB0QF9BMHe52p5677n+KBlCPmfNs4zxlrm5PKhTmfCLTHUi0DPco mHi0Lwq8ArI/tyW8WrJrKvvmZCGZApEa2dvuVa2v/Ws9FNC2yk/jry4owFdydZ1yMOTv7UBlTLqM +65NHkHGnDFQ4yOa671/vH9by4iC93Ftga19iKqSIYQGGM2/f5vlZNR+c83w6D7/DcU638wnC6BW ZXnsdjt6XhawZPSBsIgByAnDsKlB4BSwkg7UH6oLMIWR61RLaO06pvt02xb9raa99HP8eD1775TF r3Nzvm0AjeawZrbjgoDbcUgGxr2Oi6/pKdicXUeoa9OfMX2nlqkGMLGwjDv6vPXV4rH2/F3957ht /Px5fDV3P/271sDRcX7t639n25rntArNefOh7cP2vKIA5IlmStQIsvr1bOfPPWhXwzOhZN2lPBFu bQc317W/l8wvjTDcNTCjDnLA7T5x/pu4P9n2s0bvJdvgOUNqhwrQavdVg81lAtlLA0BNX0XjRdW2 ffr3eYqC5xku1yRLo9j07/h95hfULkVgbgOZZxK2P08FQNuHurDITOUC4oS777kLTz99E8gaWJkg YBIo3x80bkBNSaU/KXtFSwWZQs5KJRVOCAikdTQFsHzxWvCnaNX6JGtzQDR3CBAhm8+R+tcCnBnC CchDAccKTgJy3gCcIRLMGkEQZA2uFGVIU87g7gAb6fEbv/8ZPPaFZ/EjP/Sf4/u/5ztwz733gU6+ inD6NfCNr0FWV4GzU2xOriH0QDgj9MuI9dkGcQMMG0beAKuNYBiAnICUgC5rCs8kGgQsohaAlDIQ GalTFmWwDBcpA2nQLCQeN+C5WVIWaM51HcNkQabJfSPNL16ESg5lBYDKAI1ZIAX1+rtWw3Wzvt3d rrf86JIRYCZ9+y9aitAAB/xed0M3k0AAcTaFQ5kpTb+pLjquQHggL9nfsVgSKsjXdKBSKvkyo+T/ D1HnrH9n7vHgTrM6IQCh65BCRF4cYtNfQjx6I7B8CHz4Jki8F2s5woA95LzAIBHd/iW8/PIt/Oov /jre855fwFefeRGh30MInXKEXvwJyta3VdLVlBHhBcDYwL4y+pr3XzhoASQOCsY5Irki4OCYVGkQ RAjsWiwgoYNwp0ylg2wLNNPqvmMZRnOEF2UDDDRyPSGiYqnzYGF3K6osKTdyHxhXydyWpZ7KkYvp Xe8lIBC7yBRkB802V5ktkNmygzAM5Lppmcf7lc/zKeFTrRhKezON5erOI9teabEymZWsCKjuOSwE yBhw+7Onmdmm/TMH0uzBVS6jAW/lPY2AKyYDAVlhRrKxbZ/pe7AzoQDmktCgZB1qMvKIi3dRcgHG jjMRhszWRin93GZAKUqKQLMFDc3e3vRDFsuuhAxC1loBksFJtJ4CgCxa9yOJVnvP8UBd4Bq2nMXn FWO6z4338lSwAwiVLClWUWubbedzng4oZ97J0WYBGstgoOkv2VZUlZizBVnmSzJluz5fr2lxQ0bO 2y5G7Xph4pH3QTm3yRok1r72PmxzUd1uZ9zhZo5RsVWTK8SesGAbF+ld3ZphSrI11Qmt9nPb/vE6 qh4yWpjytbP/7ToVkZJxjIhGYF7gsVa76zS0+M2v22kB2M0E89YkqQD4/Jfwv+e0lV1KxVw75tp1 3m9zwHpOwZjTFKeH1yLInqLMN67G320a+a1t2P1ePpitFjynSJ3329w5Uw161/O9DXOfp304mnQz 7zVnemrbNfcsv48gYbns8OAD9+Cjf/hFxO5QF1uzCSkkpYIrGSgMdFE9CDYuQBJzuyuxKwAal4BA TU2Lkvveqv4a2HfDvyRRs7rVAfCsEqqWKIhASqCg13IkSFLWXIEILK1lsjZnMO+B93o89cIt/J8/ +T588jNfxF/7we/Ft3z9O7B3fA+6g7uxvv4MeH0NvH8V+eQaNifXgSGhW51hsxqwPltjc7YBrxk5 A2nI2GwEwyYjiWabEksTKsLmJgQD9RqUlz14uCP7DZCg89zJgeTmbbHnmHqgG6qPTQ1o9DFXMzTp 76xuAyhMl7HyUucZB6gLAwnYAImLNWZl/4KNpf/LQa0BmfScSOrWo+BefftBZECeEUQVhxAYCKIZ hggILObvL4gx2DliFX2BGGrOf8/njyDoIsAxIPQCiQQKESlGSOgxLI8QFhdB+5exOHgAsrwfqb8f q/gGiFyA8AFOVwNi2MdGAn7vg3+In/nH78OH/+DjCHEPoT/SFJuigKEkSuBY/gax5fRn8xuGumJZ VV7NAKRVfrVoV6cbKFtWIHbFwL/r1OcfAap1mstQWACxQ846DyCiboxoSY+xDBn9PclIMQ4MRM1g MbO1t6TPLhlY3FWybMniEeglUjIIGULb7S77goF9uLLRgv6ZdjhgaO9TwAcRXBGe7knTa0otGhhY cYuJ3mK+rQZ6XWa27Ztr74jQmekD1QPsPt7W0t5mnZ+zt5VnNu1plRO13ppbmB3JiLmSwcqu13/1 HB/XELyAFErKRVAGi6W+lTHJJVYXwEmOonAWHJNwuL+HZd9phXoHq8TYpIChP4KEQ2QKmiJXJvOq 9IG/7zaWqOdxc629Z+mbbN4FKNhg2qfn4ZRdx1QBPO9+c+vndvcuiszE8jV3712fCx6YzMv2XnMY cvqO7bu1h8sRlxNz55TzbvPOPm9atr9tR1E076Ao5q77j/8ep83ewlV3gMNbmRCr/6FvyGOBwOYS AAuAy1Y9dwqg22NaW2Drt6avy6Y/0bDmDtfgSq7m5vnnXTNqp/sANn51W+cAWyB+VPHNtbqR1itl gNz/UX+rJrL2fcuhu3oV+JONYBeA33Wcpzi057hQaSduLTe9+3mjTUNf4FwFzOPzSzpVMQBfzuXy /5K1cNXluy/h6HgP67Xq18yhZOtRn95K9TB0EXs+CN+gnDUM5Ob5bFkF1F/W9v/y7OwBM179VEh9 QAkQFmj4YA8krQScU1KFgrnAFRIzpWdWAKuX6bMyIQuBLOuEKiQMkgSIIPT7OFmf4dff/yF84jOf x3/xn30PfuD7/yLefM894P5uYPUC+s3LSCcvI55dx3DrVcThBHTzBGG1Rjw9w3C2RlpvMAyEPjE2 60EtACkhZzbXn6zxAeJuQFJSdOZEGAzYqXULyMnnISGby0+GMrhJ6lxNZam0C8U2fksRooGWtiH7 ciRSBj0zvHI2EUBRN0W2+RHIXYSABEJn8QExmM9syY6g85pB5sdvhbdIgTqRufigpvEEC6KNU2Qq aUJLph/LzEScVEHozMoQoZarSOi7AIkAdQyJEUNcIi8uAvuXwfv3gQ7fCFlcxpougLqLWOclhryH 1TqgXy6wOHgDvvyVr+Fn3/ML+Of/4jdw4+Yaob8Ar3DisRk5OMgMJSBU+838lEjz9+vE7gDWVIUA gYL69mushroGZdLsPlLy+ru/Kun8DFr1ly3gVygCWYE/SFcFmVUWDRPvSrv7IOfGJ9jTZDrDxkyg jJpJxbJ1AaZSOmABqptRI4cKOUHVuuxyV+dYlU/ic7KVZ0Dx4S/++/BsNC341+v9vVBmcwOsAGh1 cTUvFIsALDhXbPujCmRG1eG9TZZIgATm5qVxEm590DsKNL8+lWBaQrBEBpXh9nsDKJWIg6V71ODu mT2i/GF7Wa4APIKQkEt/jjCuMLhYAbJWKw+hpkdtZLMxM8beV8VWQXBwmrfcOvs8A4xp5+b36lLb jm0RRzkjME3cv1y5ULtwJHUBWi46LBYdZJPU6pZWOiO4Q47HQHeEJFqbYbsGToZbe9rv2kP8/cq4 aJIIXVJT8ORMso+jX5/L33ps+/SPv6+Mth6mcJVkL221l+nz0Vgq6poSGT/L56vft7ifNYok8lip mOKcOl9lNFaaUEhKDKDHnvh9W/+DXYrNnOJQLAyjOAsp7SiVxB0rlFc2OWHtKupwsXRVS5C3s33X 7WPX+Nl78GRe+/v4/Ty2ldrxafvY3iOn0fvvtAC0HVcGrBFabUO8g3YB//a8OU3WF/303NE5qJO9 FnHZvn97tKB2+k7TBTV3bTtguWnnec+bO0plux1tVVZ1/D677vVaFIL2HVoz2JSxmLIC7TP8nNsp BvVct2TMuFERoU3BOn7fjEyElNa4fPkiLlzcx5UrZ4ihV7ddWBpPOADSKZNzVqbTzJQKilTwu7LG 0H91s6XCMLmso+A+jgySrOZmggZLSoAkMXcBM4ECILEiZRhACMhuPmZ9H2YLcM2DFu2gCKIBgFgm I/g2CoYWupLQg2OHJ55+Ge/+B7+I3/3wx/DDP/h9+I++6104OngDaP0y4t6LkNVLkOWLoM0NdIdn WN26hXDrFGl1hvXJDfDZCpKA2BMkBQzDYK5BgpR0bNJgsQ69BgKTBKSYVQkQVQIc+KsCAWggnVZk zu4KpL2BJLlc4+xhFew2ABB4ATx1wYIBDAaEzacfxqzpfTWws4I4NvCjGX3032iKAWCMIGXNchMA oqSsP5F9hl1jQCgwiFUpU39/Ku4+RDDmP4E7LfYVoliGIAJCBscIxIAcI6RbIi32QIsj0PIiFof3 gQ/uwxDfgDVfhMSLWKV9BD7CrbUA1KPbO8LVV8/wK7/2i/in7/tneOKJ5wBeIIYDA6vuiqIKlAbt mg8/jPFmBsfO/PidzXcmn5FB5j6kgb4aD+BFmxrwzx7sEJERgNgD3AOslgwOPTYCA7JG2ki22Bsu m/F4o63yw83XKL81cgpUsuC4orct68bsUZHhQHHlANmzDBySo+2Zw2aSAQ9ApnuTahHb102Apo+D /5ab30YMnVQLRUlX3TStBTQuq4lMASL3xXYFpva1gwMHvK2fvd+/yv/KzI58/4nO3cO9v2QrhqLu /UXeWl94Ne/2faaVWysBZzKjnKuypu0r/21uX8nk7sWk4+bzpx2fhBHILG4wLdFHCXtd1Jp4AGRI IA5IQsjUI8V9ZCwBquM9ehfAgLGSEao4bvdlxR/VAtCOF5HJ3WZPdlfG10IIbjHEk/d9Lfdq7+mW u9aCAZhivgO7+POm4N//zg1ROF1fKgPrcrlTBv08bAeMid5WEdlJpO64Tz3qGLX3GsWtvs6j7asW y80qNhOc6z03VY5qHQBjNrJpa1NThmcFAGBaHhv3U013AIp5bZcgaesOANBKiE0fzl0nMhb87VHY HzsvzLR9Oki+4bS/b/klOvA1Xz3/r3SntKeOFaWpkDp/kXncgC3yML9oX+/RTsKyiIi22j8F/u2z X5vvGqN1h3IQNwaD7XPtbwuoEiQcXzrEQw/djyvPfwHISdMVlrFNxpfo5sUMJFHffYH63OligAJS +59upF5p0jI+WA0HbWczXja/FawTCF0BoWx+2CK5VK0FlKEWSeoPmwdAVOmr+g5ZABpDMkNIq+im lDQ4lgyMgNH1+4Ak/NHHH8dnH/sivvsvfDv+q7/6vfjWdz2Mo4v3gtZXsH/8IrB6FWc3Xsby8Azd 6S0Mp7fQ3byGdHoLm9MTpNUKGBI2KyAmdehPCWYJgDH8rJvbJmEQggRCB/f3hxVNi6WfRBq/f1EQ qbn9bcyLUPJKoAxBgmalqeex1+lg981sNgWCFv8ic2mw8XTw5AAhmmanRW012xOxBQWzoLgXmR+/ u/zovWBWgwwmy+0fyNx7rKgXK/MaAhB6DfCNEaAuI3bBcuEHyGKJoT8CDu4FDu5HPHwA0t+FIRyh W17A2RkgsoCkfWTaw+kpgfuLWA0Bv/+7H8fP/ZP34Q8+8glkieB4AA/O9QBHBfO9bSSmBLusYXP9 EQJxQDQXn+jxP1b4C/BUn3q+ZIDtsyoXDLCmCCXSHP9CHSguzUKgLkHBmS/K8LRRbOOnm/hYdvi6 D6RrtpAooLL+9T10TaGRVaqFA1m0+nOV07q2RKQkZChp/U1BYZ85BMjEv1kVdM9L3vpxT4klmTDo uczXZICtWBwKQ04+amrJKFJx7BvekmqwMRYnJoD/n7Y3a7YsO87Dvsy19jl3qOqq6hndDXSDmCiJ QZmybMkO2bBMiVZQEZIVfnT4z/jN/8ARCj/6QTYlTuYMhsRBhAiSGCiAABog0MTA7gabjR6q7nDO Xiv9kJlr5dpnn1u3KWo3wVvnnL3XXmPml7OdlaB4IsAzzsHxJdCEbk6W4IB1fpmTClN2zio7LTcB y+e/Wfa1yqlKEAooEjFK89PWiVaXSAkdMBDtbmcsFkzehdcIqAZ+a2Mttg+aQBQAei8GRfACUY0u EEFjflQgdflwyTPZFEVs44q8vvE8IjCpRnSbCLTfI5WCUnbIWYPkZ0oaAJy2qLDaFw0njAhlAPXx It/7/ata+4K2HSM6f24R8HMCBDp5I6D09SmtZ53P6/uIGKjzcG6PaaAlrIkC3LbzO/i3/glgmbfs B6/QGdrR7W2B4CLNza5g1FC3AOwoEGjQ3epob7rWcFnUoittsvmScc8ezof302mYC3x6Rr3NVttE 3Gr6V88CtIpjG4ByQG1jcYsGYOfCba5+myo9BwtApXET+5WIUPyFIj1QbNGpCPyPbdAhp/DKoI5d PqHLZ5ag9Zh0uVz4LgDc/M5IUIa+rgD8CKQ/iLQ3aje6VuLY3KzNw9F24+aOz0v/Pc7PgeB35P1r zy5/XztAy/4s26oo2CTCs889APGMRIK5VHUDsnsSVOMHgWnTlYAl1sw1rikwgz+yp42zoBytBhxI itUacCGjJ9xLynbcO4iom9exaQKH5oKuVgDE8jYLAIgKNiSWe5AMeBFQihE7rVsgtUA9kgFAXTqm kwmPrq/xC7/yWfz+H34F/8s/+0n8zz/9afzYJ19BOnsSfPJDbE5+iP3Dt7C9swNfvAs+vYNy8T7y 1UPMFw9B8w7T1SV2jy4hIij7CpkLUAnzrBr/WgWSJg0ItnShYvECIqJVZcVBj/WxAiANMoYFE1dX ImAEXGjF1gz8MzdiIdIF0liQxy0pBIsZQG2Bvsw6U0TS7ku23z0NKFyDz+rOkZMS62TafUDTeXJS hpat4i+l2gOAmcCTaljTJqmHTGbwNGGfNqDNGXByD5s7TyOfPwM+fwHl5EOQ/CSu6wbACa72CdP2 BBdXFWVOQL6L6xn44pe+hn/1//wCPvMb/xbvvncFzqdQK5EhWUotvWfKGxQ4SMkNJKdpo9NrGnzN 458NIwpS1uxA1X9rggWBUmpBv1HgAE0aKEwbSJpAaWMFrdQ1ys3dVAOQWzn7xz47C+rfL+jOQhFR F24G4sX44hUABmwfHHhSoIMyAC3Yb0mLXIpotLjx195gD/jv+7k4HQuxRkrXzUZmqUYX07BK5w9o tb8HwU2qPetnbZyn2X3fYzuAVroGWq0GEJkbiN7DtKDri/V1Ac6zeh0ojIismvp6BdR2vk1RE7MA DS4+IpqytAWb9jV2gaFC8UgviGTgTQdo/v+uCNBWEpFVBRjXlEgtUElm3Ds9xzZdgXZa0ExVIhuA TyD5DHtMgAWJr61Z7wsQYxvW52LZhqzc06+GqW9hkT/WTgSpLlir3HUcsyxxzdF7gyB7kyL26L5f PofRa6Tqw0fUwTdfyz4/XohabyMqVAdlRTuhh89IsGL9p1xLTHXg3eLzd2RvLvFW9i9rAMXLF+rL zKeRqrk+LEAcPC/rupuJX2nxjtokohE0sEeDNzolQ5uC8QCw3tTaWC5UIyRtscbJoYPSeiZBmaQa xzJGj6vsH7XeH+Rgtn7Y3yahHVk0/y3O8drlyiLpjTRAFdfkGKEW6f6wy00Tfz9goCvtrB30WNly XFcANOP5558E0x7z/go531VQUguWQYPcsnQoDkiuNZECAmulZinwSqUMzdlMTKZV0HeXKkjNNxkg Sqgo5kqQO+HhCsEGQsXa2luVvh0Yk2r/OYMt+xCgO6TWCsgcNH9sAoz5pmqJIlR3GaqCfRGkNIFS wg/evsD/+X/9G/zGb/4+/rf/9Z/jp3/q7+PDLzyNafsOePsUsH8f5/evcP3+X6JevIty+S5o9x72 77+D7f4Sm7NHmHcaJ4C5oO4rNkUrMJd90fSe1Xz8Cyz3vwKmCQQp1VynoLSiejYS6lYCU8F5sLCD ewCaJQNB6MyAi2m+nBRzhSO4QNh66Gex7D5W3MvcgNifT1p8zDWoRArugYrESV17rBiYucEjZRcw oL/limR+/zwxKBFow6Bpg5q2qNt7wPZJpLsvge68ALrzIujkSezqCQq2KDIBaQvijN3lNS5nRkp3 UXmDL375T/EzP/vL+LVf/y28+cbbSDwhTWcQNP+knv2lBqsie4wEqca/nXMGYEVhfD5Ys/8IJXCa AGITALi5BjFnC/I1cEqTCgJpgtAGyCegpNWdNTNHghTAbAS6phjhivpZA0D3/x1y0Btg1b8jDfK/ s9ThPgekLpjruYQFhwOgkUY1H/sFvel0R1mASLBGsrSAfhkAWWqKGWft/msDQkYzEnUlDsTqM2C0 aHhxKrT9TkMufCLSVJQ0unw0/kposVvu5qhOyTJox33e9Sy1IVo9Eo3fgXSffKW5Br68H22sMZ/7 qKDSOXH67nywWzqY1a/f67ToJulA3mNBBnCKBDKffHUB4sHlaJgX6D5RXUJptKPR18XFRsfg1ant vLW2y4wNFdw5IUxZkzVspy0KEgpNkOkcMp2iUNL6D6w1Ug5Bet+/B9eyEJnPjd1aAn6yCRtcavs5 Su335SiH9u0+9/12y64LfGqlvQHU1yX/Xs5rXXzPbY+3+h9wfxFC9dsoumKhZXCKCjjr1ChofUDA fuxyjNj3gbk1+ShMqdfSsVanIcdiHg+Bf1Psws5dwLOHuOi4ZWANYxHRAP41OQ2UVq9g746HUxsv cIs6AANYBDUTf/uNusZFCSUdPPs4SStqZvyza0PjeTmUYo9fxyTexz1z7J6o3fFKyeMz69Jtn4Pb vZeW8xvGEv/eRnK9CZDL4mDd1KfUNOi02r+1Z+O7burfgTSNgrLf4/ln7+Ppp+7irTdmgC2/upL8 ZoAW6hklBGbqFdXcqv+poFT1G++mVRUaqn2vmFasxkCX4Z2JKMMzQCUKFESulWjyRqsV02xZVUy3 1GL1vNplUsJGphkyQKeF3zWwvlk1U0Yts7oxkFb3VWY+QfKEr33rB/jf/49/iZ//5X+Lf/HPfxI/ +emfwEdf+hg2pxeo5RE222cxX/wl0tXbwO49bO6+i93Dt8HnF9jsLlGvtMIwdjPKbo+yn1H2e0iB MseiWYBmDxSuptWvytw9PSjgJm69T6jX6yhSwNCaDe1guwAg6s+euedO5wQV0D3g0C5P3UgE0/BD 89pD3U84e+VebvcTkWUEIhC5Np9CPQAYQIYG9SZXoOt3ecqQxOCcgJxRc0adNsjbM8jJOabzp8Dn T4FPPwScPg/ZPI9rugPhc+w5oxbBZnuGi8sd9tcVm82TuLyY8Sf/8dv41z/3K/jV3/wdvP76X4L4 BCnT6sApAAAgAElEQVRrliudGjZtvLmmCYEyK51OWYVTEXXbIUt5ylqsSzipRp8SKKnPv+5H+428 Khm3+6tlNlFr94TKCZw2KgjkjWYdYrWACQjm16HBfdAUiWt0qgnoizTEkRZo/w+fV806BnoQ6QmL VqnmJjiuKHJuwRd68UWzOtbSGKODbweasbVEFuxOo6pMDFFFDX3f8yoIkM+PPnDQ5yUldfDsefVb ITLmYX48uNaDK9uBOTIvzQWXw/cuSzAfzGkCDWMipIHvr813e1etg7dA+93Anqd5rjYlLsSow1Qd hMgqtfUvBt76O+K7CQ4UK6RUpcEipnOpDceox0Pfe4kKNlSw4QqZ95iSjzWjYAvJZxBy95/U4p98 D6wr7da1wu0e7zdLdyMLYxHpMYS+Z2+6jvHcbiVZem/crr0lPomxlcv7/b6Ik9pvCzw3YAgTDuOM VfTAfqArRD6o5t7fF/sYv2s0hpzftfD+G9u5Db0p7imAUbH6V72Y1XU49kPPT7AQHsGOrd/27+w/ DlluhkZ6/nx7PXxSlHCNE7QGTuPnAq3M1wKFxBn4uKg1pIvzAca2WNgqX5b2/RpQbvlta/cJtTeM ffQgtsCUnDlT2BQaiDWmdzogcEcElZjOawmk28gfA67jb4/bfHGUbJL+8pmehtvulJXNWWqX+yPR Ql+nWGL9gwgnB1YFIlSZcXJyhqefvIfvv/ZnSLS1g2PBNEEDCWMmXZJXDRezae+4WwiKaU58tts8 hsOJxhgFrhxxTZEScwHTBuCCUncQ3gClF0sRBoQtvWaZgQTVFrk2SzoIMHsMqsy27kbu1McJIlWt AUityFnebFFqwec+/zV84cuv4l//3KfwL/7ZT+Ef/8O/hxeefQF3TmbQ9CTS3fcwySNcv/cmzh9c Yr58D3L1PuaL97DdXWD/8CHmq0fAvEO5vgDtC+puD9SC/b5gsu2glYIppBGV9lcqo5qPqX8WUY9/ FrUQUF3sU3N39UwuStCdmIVzS+O/E3cdrGIWAqdksQK237yqr7sFZXUHSlnjM3LmVjPA6mKBGUiW wpOyasdpu8XMG/DJffDJPfDdZ0DbB+C7zwGb+6ibByh8B3M9AdI5dntB4lMAhEcXj7Cb90A6x14I n/uDr+Lf/Owv4TO/8Tt46y/fU//8zRN2zC3rDqQBPnfH4ZQ7kLMCeMkAvEk9qtUHVJi0IN7KDGZ9 VojQShxD3aOKmBAlajkQL/xFGYUnIJ+o1QAZACPpZjVhttNawZLWdy9oPatZ0+b62CDDWfdrVKAs slhL/F1BNkmwVAvCPhnbVLrMTbNPZnGDqPsKk7m1AohFl3wXtqw6rskV2C++12wsC8WV0++hLotw y14CWxMpNl/BN5qIDpQtfnF4P6HlcOnzfQActR9rbjqDFtH6VK0gX1wPF+j0MzeLAVgFPM+qFTXS hF7R1RNlO3hvGdwIWodClGAyej716CPtFaUJhGQR/O5+JSLgpLTDxH+dG1PouMtVSgnkCW9sXith yKoCdyeE4GxLuLPNkDqjFgHXApkIO9oC+S6QNxY0H7CC0aN4DULaAOwd11hyEb8XQKvSLK6KGttR HNTppM/S8loXRjwY25Uszvt8DEuPAnt/smPj42o4TE9PryNgWYkWitAe9G1jK8GquYIVlxeRCqDs cWcf0If+GM3x39buh73PvtDPNGIWLbyo+33tHVpzyDP0APAsT5SsyQ8owLRYny5EdHwOeN0XB3xt jE4qLQDe0xj5/beqBKwDHE2tPgArvt5+KxawddNVyY6rSCeMiGA/SGhwoIkhQNg1qx4EtnaVUoag 4Ka90N6OhNGYQ/u8ECbGScfBffFa2xBLyS+20xjDSrs3ve9xEqhrQwADoQttxVrbsYLd8rdjB+am Ptymj6N1QTf0tCH8yMdexh9//luQuscmb5syQTQnGLzoCjlzpM4gGyZ0hiVAZsZs/v7qfmM/OfED rKgQVMg7mGtLn0gEVA0aqxZEhTp3rb/AGCRAlVBNA8hs1RNThhTTRLGZSaXADXIKWkS/E6iQS2QB eQKND7iH/X6Hz33+VXzpy9/Ez/zsr+Kf/pNP43/47/9LfOLjz+PB+XMQfog8PYV6/Tby2QWoPARf vAPsHmK6ugB2F6D5CtcX74CurzFfXUJ2l9jOBbvra4gINiKY5xmYGaV0s6kUPYOlOl3ws2GWgerH qc+tfvLAQCfuCtSUHjggqkgLTSdbADFDXXicBplsZmA+KyO3AGHxgOBMSDkrGPBkNzkBLODJgHbe ok4TMJ0in93HydmToNMnISdPIZ0/jTnfR8lPoKQ7KOkUdZ7Am626aKHgel8wV0ba3sdfvnuBP/qj z+HnfvHX8Vu//Vn88IePwHyqAb4iMAiqQBAAWPWSnFQzr7n4HQCoVl/HnazOQTYgwxbkPJk/UwYn c9JhExbUJwoA9Puk1XsFJvkgAZSBfGrgZqNCgaX9o5jNq2noDhUcLhy3q7pgNtJR/3dkpmNbcnAP Edm5Ei0eybeju2v3sAHEqI1c0rb4uccgUHtG96OPu79bpCsatOrsUdYUXAEP+UwE4ZHiqiKiz8fN ApVeCdQsbcv7CrrCI6VsmHacf8/sE9tlEMRMcpqWO45h7M9hhdcAolyww/hYtMImUgG2iBY+8/Yq AClV9zOcd2n7yd7FROoaxAI2SwCHfedFodB4c8UJE86njCSCWoryBMqo6RS8fQJF0tD/CPzbdwFE R5dVp3vLtVrjw3Ffxb/xXbdRAHp7R9sI/35cG7VhiIq121WRTF0oIEItLvDod2vpzod3SPcKiC4u 7e8N4P1Yv+N4H/e9f14KdAf04cg7hvsVJpjQerxA102XC4ONHi3qMAXRLPDfdbqgytDxuwMBoBW2 SKOUJtDAHhJBJUESbofUQQ9z1jSKchyVu+S7LJxV7SACHidQLS9w70dF9ylD6J+LqHpY7T3iwon6 e+tzXZMtjbh2djYIGK1ysN3P0Z8rLJCnA5N+KNcYypLAt+eb7yKtbjyCieBNO6DmausUBOMhac8Z o+vCmPehtt9dsNJZgBH8YlrnhW9tm4ro8+ebU78fmfbjN7y2q5puuHBmlV+r7PHhj3wId5/YYr7a o8xXIN6AU24BwOpX540ZUfL9wiaI+l4ToBT1t9e82qntN7J5r9A97JK77xXPHAQ/QJQgzCDxfB8+ w1UtIhWA7BW8kyDljZqiUUCZgXlvfq0JtezVDlAZYJ/vrGOrUKDGCTIXi3coIAHmeY/MDJyeYH99 hT/60qv4k69/Gz//S/8O/+gf/QP81E/+t/ixH/0IHtx9BjW9hUQPkeQh0r0LyO4h5sv3MVHB9cV7 ONk/Qrl4F9v5AuXqIcrlI+TrK8j+GlL2mHd7SCHU/Ywy73Wd54oym8a/OHFC0LxaPIF9dulNAMTM K6r9JpNrnHixncpuhuVswdQmuKcmTM8aVE3u+qP+/RrUS6CJgKSMh7Np16cNKCfUbBrv7V3I9g6m 06dRNk+Az5+BnDwFyfdQ+AS7dAakrVYCrQk5n2KPiut9wf7RjJRPQDjB9974C/zu734O/98vfwZf +MJX8ejRFYoQpu1dtY7oJtE0p+CunTU/fphAy5RRatXsI1DphkAQTjpuIhMCEjhnSxgyqUBBWuUX 7vbDDKYMzRWfTeBggKzYF0+QtIHwFkIZRNnS7rKdD9/hXYFRvZBGdc2iVQFuVhrAMzDpWezcQI9k PVCmKPavHSlUNIvtCBIwAHflV9aexyxRB1cdZFkFVqPFBYHW1sCvFiBYdQFRWLBYIokdQvO5F9G0 tN6suv51HlAl8LDhOgTeHKwInkWoLNIvNiTWYuTU2tDyEFhfKYwb6JYBEUahglRh7jqdh8bLC2qp BTaA6EUslxNNqYTkcRCqxWjAKSoAQB0EjzzMUsGSut42o484x3Plj/IQ2D5oyQPE1qh2oN/Ap0AV NP4mzgBmECrON4TTVDVJQ5mx2WyxFwDTOep0B4IECGnMoAXFU5jrlBm1KUoWRe5WBCSReRAYOk7o tHPEE36+3O4xKut6FivlWSkCQ6ote9USL7A2GlpbKgEtRsr2WFMEtbbYMkzpnnQA3/aSuR4duASG 84MwOwd9tNhT3z8I9x3DXceAcKx95L93Nze3zB+3Tijm7fPT2gjFXCtkcBmvbd5vJ7i0tkMGs674 ckyCNq9xnuywjTicA05xPCelCwBLjUuUPF1TUa2KHhuYpFpRW8GByNTXr0hIl+91QSJOeqj31J5f 3qMaIV/EQGhWJeaQPi6OEQfdWjy3/qsKRodSbJzHx7XTiDn6Qg79b231+wFLQYl0Y/+aOZRo9Z41 Y9qaNmJdQ3Y4Dn/+g/i4rfoRErArOzz97JN44cXn8M1XX8fdzTlmE4TYMtFQPwMtyI1AKKT7wqtn qp5ZkJDU5cxrBZBq64aCYKW2353YpOavbgDHqszWShCSXi2UyIBLUsBVdyDKCtpZAV6tFcgAlQqg IqUJtaq/PxnRFys1LGxvrHPTjKuwMFtWHgEVAucTMICrfcEXvvKn+MrXvo2f+dlfxaf/wX+Ff/pP /jv813/3b+CpJ5/Cli5BuEDZvQ/aXkJwjc3dHbB/hHL5Q/B8gW251ErD+yuU60tQucbu4hHqfgbm Pcr+Uv3Ad3ugCkopkFmLjYlIS31Yd9UEGTsn7rOwSAfngqnvYyZuRFL9VW2/ef0AD4bVtyBPGwXU BozzZGktLde9JA3epWkDTBMobcHbM6TNCWh7DtrcAZ/cA6Z7wOY+0sl97HCOQndQ+QSChFkS6l7d yna7HWg/o9IWPE243F3i1a98A7/5m7+DX//Mb+Mb3/ou9jsB8RY5n2nyJ2ifxAOWm8IkAeb7n+Dg nQAmZMoqJHKysaXu/83JALx+T4kb+CfL+KOFqCy7j+gzIoBWD1aXH/AE4S0onwBWJCzScs+W5XTE 1yiRWQEaWD502ep8o7tvrtE3VzghUVcELelB+M4z1Q18I9AbBRV6xuO7vF/HaLBzgIGXUgczkc4e pbkGVNvYyGORUqO1yz44/9AUpDHRhZ2jOgpLfe5GPkNhzI2frM1h5Kcm2000NSsjBYAP+Pr050QU 8IJdGz9OwXJutIZiujGVtJ57aq5iS4uFr+nacw7aQJ6AxGcVgY6MLlIxbkBMWAIESSrOJ8KEGWV3 jfPtFhXArgBzvoOazjDDLQ4an1PCXGkMFN1+vyBYghBTZS+FhLj2XYB63MXwomQAqA5Vb4+B2+W1 7E/1grHBRSkqSnta7XGvL+s/tHMR3KIVT0VFkT7jFh0VIKNQf5tzfTjeNUzTxgrFkbxow39fa9dp UPzcz9sCiP8VLud7xHJwjo6NpfXP++7pVYWHdcjN18kYrBdiEZOQC8yHWrxCqi+R+YA54xY3D1kU eDOduo+UHhyWkVi7ySeaNF3C18eNOIfDrO34z+wCj81xRYFm/LAHbGHVD1b0xYAUSx/pKNJ8cAMs jhN1aBKi9k6yqKa4MWIb/ZAwaMWHTTUWpjVa1FXoPpFdytQNkSBSh34NRGchOPmB6u9ZXjbr7mvH 68LM4T4b+9fHvswOgNXP64RRnz05zfjwyy/gW996Qy0++64FIXFfzk48/LcEUzkKtfnTsRQAVsGR 1f0stbcR1KWoolr0P/u+s0Dgwd1MNK8BM1CK6H6TZHnSd9Y/AjBDibuxCtN2N2fnohooBc8G9Itl uEhkWoRkh18FEA+usiz8cOqbJ8ZGtqi14jvfeQP/97/6RfzCL/8mfvzHfxQ//T99Gv/jp/8eXn7p GTxx5wXw5iGuLt/BdltB2yuks2skXGO+eB/bpwrq7hFyucb+0bvY7i5Rdg9B8xXmy3ch+2ukWlB3 10AtKPtrNcdLNWtBben5GqFu8qxg7Yx5oagU9hEzmhDnlV85Z1Qpph3XAHUwg/MGKW9QUwJNEyif aUabfIp8ehdICviRzpBO7gBZ/y3TCWY+Q6UTFEyolDDXDJGExKfY74pqzIVAdILT83t4eLXH62++ jT/8/H/Er/zqZ/BHf/jH+MGbb4PSBoITTCeTFl2ryuALxOIVmhSPpOlyLL2n+viLgTgtbGeCTlLX JXd38zgBZLZMP5YBSMsSW3Awm2XS2naBgRIqJ1RmEJ8AaQOkDapZE3R7qmKHTHvq9FqbWwMmtwMS ZCoop7fkQMkMDQzVnHYrWH8SQA/8JGtBrOjTAA7sCUGLM5tl9Kc/AA2+JBCLJbJInMCPDkCt0wIA FSErT9jPQj017fKKQhMFKy5bHQ4N7E06a5SaskKr6LpVZVQ6+To0ZV0QjIjMcUOkreGyqFLPikZt 1mVov/9b58Qz05SDfRGfqQQ1DQovEnp0d9xWMVY8s48KQJri2dwiyawGahNXklwqJI2ALAoAPs6O AWx+2GMfbA2pWl2LPe6eMLY8g6AxESLAvk6o2wfYpTsxprXNq16umBizWHXLeH+m76sytOWXB/2m ZMofa7+N6RYCQLubqinL3NNCPSLqHLFWfOIQYOrXDsw74G+4iKC++eT3uQdJtCewWg6lA9pByQy0 TUfUY4FcCUcRq4Xv4ufbXPGdsZ04nUTUhKVl3aqlYBf516DYcJ4uHYvFc/pBL7bOELkr1iiAIAh6 g0DQBLB8MEdER2IA/LC0l3O3H8RF90aWE4jaDzLQQe+qZHxAyG6YBGbV+K9piRaPRkIfpUUlkDqB tdamkVy74kQuJciDd91GwntMAIvO48isltdaas5lv5agPfYzWkiIuknOD3QruMPdVLYMSosM7Jbn 7sZrjaCplmDGR3/kI/js730R87yDyGaY5QTNYd+2o5ncTEWFRKHAuUpAQRBCMy2TzYuQ+nwqD3Ft RDUfbDe7ibEgbgwJCShlRjahUwCQMLgCNWlu6UqkbjTioXFG3AzwgwiUJkitXVtS1R2LEjRmgJXx qTgS1h0VIlVDBkhBX5pOAQDvPZrx27/7Bfz+738J//LF5/Df/P3/Av/4J/8BPvnKS/jUJ18GpRk0 zWDZoZQrzCfvYZYdeNohYY/p9AIsV6jX70PmS0w7cxGiivlKLQS17NWtqRbUeY8y70BzRZXZMnDY HrIgUs/2E02xjbMaASNYRV8APClAVVeXDEqMxJqLG1lz1RNr3vqcTzCdnAHpFLQ9g0yn4HwGyudA OkFJG1Q6RaUTVNpgXwGkUxRhpLTVCscMzDOwv9aCacIJhIw333wPX/ry1/Hvfut38dk/+CK++aff xW5fQTQh5btgTuouALa6D9ICnbVwnV4tmwl1oE/krj3BR9Yy/rg+SgVBFYLArDEATYCwAl+2Q9Wy kMy9QV2CKmcVFFIGaKOuP54tyAgBW9apZOel0YvI4Hid7jiDi36qjQb58i6eWf47nn/nK7JyfwoE f/l01JAvlRgH/479tLEt23MF1eiT3BVX/Z3aGRdGiMxSIsbAzT2i0SBvx4U/6lVvjyqR0Ns/0Egu aNza803h5jYCUqtUldri+chd8lbm3hfSQaASwfC7Aev2DNn7Ew+F0eI4/IqxhG6d6O8e+XCLScS4 D2PtBv3O3FIK1D0Z+jcxYxatAF7rjCQVmSrOMrCtOySzxhZK4OkMc76Da2iWLIZZtYQB8ow4/sYR 7zSBasGrl/UBIpBscxCEBmD8HPfb0IbjnTanYV1W+vFBr6UgLSKtRqwLcDGT1iA4L2Ig4+9LGjAK SmPfl+fhpvGs0ZZlO/E7QM+RMC2w5gqWWlzj+spQ4+Kv45IgtB7rg19tbm64l4iQPYsLh3GKWE70 WoeKbSNhch9w1/LxMJmEpAeO/F79Xn0P+/u8oEzIM+M/jH/DyFcXVTQjibfdNBDWS2bp2vUl4Roy 33RJeNRW8mLDSGOMHYFGCdHbiQVBeLXv/rsTNTWLaUejpkTvC2ZP64fPj75bfMRtrtaFl561I/4m sBzJVU39sw3f90GFa5a03WYqg0vMtxCEFtdABJpgIhBUPPPME3j6qSfwF39+qUBoFgWBDVDpmB3A 9I1vqdMAeMZq6ygIXtxOJWevqtq0E2HdKwDPhazhCRa3QK5NYgBJM1KgmPuFgzYG4xoQBhegJpgd KhnWsKBgmhrgV+bb5wFSQJUgXKFFkJJ2itG0tEQZIqopqkGYKqVgygzChLkC3/jW9/Haa2/gF3/p t/Hihz6Ev/t3fhw/8Xd+DH/7b38KH/nQ03jy3j1stg9Q54cgvsJ+fgRJW+RcQNMD5ImAskPeXwFz Qao7zNePwHWP+foRcgLK/gq57lB3O5BUlLoHytxdg+reTNMFE2kfATQf6gq11pG5vLhri6emFGSk 6QSFMvJ0AkknSHkLwQZpc45qAa0pb1F5AvGEWRJS2mAvCqJL1fPJvIVafBhXV7PVjGCtuptOUEB4 +/338cUvfQm/99nP4Q8//2V845vfxsOLnYqBfIppk1RzbVp8MxboHhQF9uqGw7Ak+aqhByy150Lj D7VqEnPL8qPpIDPSNClI4mwuZ0k1wmx+/wb6YfOnkdEZ4ARB0hSfSav8UjrVOBZMKjyI0U2g1URR QKm+zCxRew9kSxbQ6y0o+HLeAaDF4AxnHWbF8Laq8xVpOcIPwIB+qW1WrxXhfKYDyWRgGwt1zBrN bUAXvla9n5EbLHNqJ+v7gSqH26LbfWu0tfd5DMcL93k6z0aTlgDXwI86FTdroIS5a8AdMNc5bSYC CDYLZqXOBxpfsZSvx3iV0uegOw5DqS4YoOh+qdnAcm1uPjouxQbd6jDy/54SNPLf0YMgKv2SmkgA CFImJAuCaBpZH6PPabH0yubiRlKwJcFT24QT2WEyIbLWCfuUkU6ewExbSNPsK690PuhzKCLwlNFr 8xYttrqWIQNVmPNai2UPUpylGMsIP+La9DM5CH9RgI5gXXz9Vpf2sM+QYXzNktsCU/39luXJLXTu CRL5KMIqi69IUAKFeToUmDoYXwohq/2+QTjw55ZWCO2OGK2peqba8z3YXO93K6IMbfb3WTzTbSf6 yKU6RWkKGLfsSe3KbH33YcxGn20V7bWlERMexAD0DbjiJBK0QEsN+5HuY2nuX5O4bnP5O5eFxGI7 SjRomIyugRrf5cG0CuhufneU5OM710wqsb+Hm7MOgtLqOKhrMo5Jx8OBPhA8pPW3FY2J/aqHGibt Wd8u4wEzUFJs7UFo7k8rcyE47O9tLyco3mYpezx48AQ+/OKzePN738RmOmkMRqpqlSCCWk2LBgGL F7XTUSUwCsLhgZulBe7+KV58B+bDOewxY1HGTNgEx3aQACiYtHkRKOCq1ALpUXeolFtFbXXxJ9Q6 a9BxnfX9RJp2ToxRVCcgM5iSaqOhue2VicbzN0HNzb63Nf+9FuFR4jXlM4AJP3x3j3fe/Q6++up3 8P/+/K/hqQd38PGPvoif+PG/iZ/48U/h4x97ES88fw9PPrgHTFeYsQPlgl25RqVrpKni5DSjlmuk 8x0wXyPJDMKMiWbIfAXMexNmClD2zaUQpAF2YkXWquUz9iB9uOseMpAn2xcJlDPAG4AyKjIyTeB0 gkIJxBugZsw8AWmDuRCYJ4CzpjEFAbNW8N1dz6bMSJh3VYWJCpyc3MFcCA8fXuPNv/gLfPELf4Iv funL+OwffB6v/dn3cHlRIMRI+QScz80rjJSRWdC8lkdwwY1BkwnhYPPnNzOsB/bp1mngfxZYKsak Qqn5Was7QFah0oC/BvdaSiOwZQhieH5TTfOWMCOpZQkZlLYqSNn9BO0PwV2vFPyR7b+oPRKx1HY0 8opWmIeO0an+WRlutaI1h/QxxnOlAR6MAOkY/fS/S8AjCytvP7eHbcTvIw2/La8a4hEMNzGzFTni lhVkyW+XY1vylzW+OViLfP7j2pC79cT5M9cp6bB7CJoOsRN1Zfztd8FgPXchLQGD21XMEgSowD/G bLg91Pi3ItZhzEs/8QjeBA7YNPhfFWZOU6QBH40dQyt8RsYLxN7LtWLLBfdPN8DuAgzgelcx5wl0 ch8zn2IvbPViev88ZqUdA6IBOzEvcY5aCJb4YLn2Md99bRm1bn/Ftj1nv451zf33+KVx+TyMWfvo ewatzypwhmcX53+tj8tRRUDuc7TugXCLvi/A/RKfHRfS1tuKZ2+tL4dCwH/65f1sLkgLuqmW8rVq 035eDvFt7GeO2nLA3SpWtoiB6pimCStkVE3dJm1Qh5XVNz26iaoVBAHCQuuxXE5kI4Cgg0m/6Wqb wH1cFzEJ/UZGtzbE8ZsWzyay1nnYmK3/4X0u6Y9d8yARK1cepDN9zoihKCFTH8um+BolSwBEOayB a3lGoWEIxvWKfm2tD33+KmCAtDYf2pYGL3EjlnqvcpBWzOnAcB5bje8zP3YByPwTu8VjIYhKBVLB y6+8iC/+4TcAKZpHeMoA2160bDoADMQDrv/SOTOtOkT9mGttQkBjgJVaLme37NQiLfzECRmj+wYS DKy4JsPWqgFwJkD2JnszMs+oZQeFew6AE+BZoKoArPErAGkV2KQHROD+vwCqxxP4vvb9U+AVLtGq HntfPCBT98GUGSzArsy4vLjGdy8u8L3vvo7f/fd/hPPzMzz79H184pOv4G/9rY/jU598GT/6iVfw 8kvPYTNVJL7Cbr6AUELdCzZ5g4IJJ9sJVXZILMBkdQ1yBnbXQCZgr5Uz4UytCGBZwwB3r1KhR0TM nYXAtOl+8qK+pGDV4jNlpM3W3HSgAa4AKDGurvbYnEwgEpT9jHmeMWGLvSRM0wmYNyhlj90V4Tvf ex2vfe91/MlXX8Xv/f4X8NqffQ8/ePNtXFzvAEnI0ymmE91jpYqFNzFmP6tQ4J5sHASCJGp+oC0l J9CsGqqdU/AuVqguucuPf3YrAKtFifJkv1tVZMv3T+QZhZK6+JBq/Yv5/hdMkDSp5YzUelZN95Oh 56wJuIFm9X9TI3BuJfC0zBFo2wHWP+Kg0NqF0ifYs846CtRi0DST1swaQPJniYDMqiV14dbv9HDb WzQAACAASURBVODCCCKTzU9sp2VBC99LILjVxuLtUvw+XK2CsPOBASB0BYoqZEJslWlxm8tPbJOo 0d2YMasFr1KfK82/3oNxqRodlKa6MLqvN/S4idrXKig0QE7bHbxZUK4DehuDB91HQK/zF9ZNuC2M BiEyPHjUhQ5QQiatHt7WCwgeAWJWQFfA2PemjKlh7nSfqVsWedCjrYlbTOLa61+N2mKZcTolnBBA 8zXqXEDpBDs5BW+eQk1bEBl9IQbEE0OMfFkGbwKYa1Df8NonPnjOPQxg7pzdW6D5MBxgomjRidl1 AC0x2a++R9VI0gt5LVGAW1hiNiFdfvdOmA3/LVNTpsZ7dJxiBfbMGui4C56S2HHQOkD3z0pqD9HF MSXsseuoUtJwVg8SX67HKDRww6/rsRJRcGn9xHpwt78nvrcV/Gt1CHTuXakdM6tpTVEJbaBhWBHR 6sUWUwXxJAuzYVdtNy83lQfuxQFYPw4GujYgnwAlKIfDjVLZ0t89ChXDfXZPDE7ufRmla5X+D98b r1F6W968bvkQcW3c46XQKMHH+e2LdbyDcUzRRBUr7y21R97ejdIrjh+05b2u8fPKnGPfjkjDN0jb 4xVduw77PWj6QChlh4/8yIt44t4pHr43I3NGqTMIk6bFFBqPkPmNS7WAUfdBN/AL034xoKldi1hc ro8NFgTMak0AkLxuQCSy5GMVKzpTtbgNASDNP62afCPFwhpgjWvVBNcdyGoHKAWqQGXkvDGmatNU Ksg04aXswT4YJ37ONAAFltWDblXrKOTmZNFMQ5YSt0JapVamDCkFswjeeX+PH773Jr7+7e/j1z7z 73F2mvDC88/gkx//CD71iVfwyivP4hMf/whefOYpnJ2eYpMF280Zrq8Ep9t7ePjofWy3E+Z5RkbC XHdIJaGWGQkJ+/1eAZoFN9YKpNw4EyibNnyuIM4oQsaAMlJWV6acN5j3aj3Z7wsqCB5esN/vkbcZ SBtc7QhgQk1b7PYFjx4WvP3eQ3z3e9/Em2+8ha989Rv4+te/iW99+7v4i7d+iIeXe3V5ow1y3mDa nDbNmbvwMKQRaU800AAQrGq25fJ30NSUCHBWbh7YeVIiTf6cCfbWpmb30f8RTbpvTOBVn2qgegVb zioYsFbw9Sw/4I0KWilrkLKoOxJTMveHquDITqOfxAHcL85yA/w3aLsafThCJiNNB7qWt1l4m+BA 7dwt+YPTiPi5u5j0+/y8rmXTiYkgogASxz5q3DDUB+nPjQP1oEuB04t1vukFg+I7I7CLV3cRs88C cOoC0Eifu9Z2VQMa+u4BsS3fRphTH2sUwPjI2hJRU6wAmqhils6zRtcF/duDu7srzNrVhQo0odr3 oWc40XaC/33pAu2oQPeCnrqWUgpS2eP8hHBny6DLovUTaIuan0A6uYdSCTV1XtMtWI8BG4E7LQXa tbEe0zAvNfrxtzW8tuyXK7hqSCN722tNERv7FedhQGOLbICKE2A8Zz3r0cG/V/p5TDkc+7XW7vK7 iGOOA/TD/i/b65hpQS80C8SNbS6vx+FKsf3fsoPV5XpY/5BAwR214YU4FgC5mCbXG2KMWuQmmQcp MjbA4j7wxsAphbv7hKqUKOhpOFNzydBbR3C77GjX5JufqaXAjGmh/I2EnnEg6E8OJpSIMEsxrUj8 JTrEjP042KBtgkfpj8ytpKxsyLhxPNixtSk6ybQwW/c5GQWIWNp7vL+E+9E1TUui3T53TTIR1NcR XQvooGfs58jI1ypYrl/r0nOiXnZeRFCposiMew/u4MWPPIsvf/Fbqr2mDShPWnTOjLyyWC9mRqld ywB0Itj2igkEypD6mrv/aQMcBk4ZhIIKRgpzo/sxk6f6872nMQEMQmVAilZp1Rz3JoUTQWRvfv1s KUVr8w0XKUBOQShPAHt9CnFpBR5fAtLKwcQAimkJalJfRmITqPadJgUC6+vWyowzo9QZl1eCb3zz z/GNP/0efuMz/wFn5yd4cP8unn/2GXz05Rfxyssv4YVnn8Lzzz2NZ568iwd3z/DEvS04bZGS4M7d J3F1fYkk1YStGRePLjFNmuGkgLAvQDJN8LyvABN42oKqZrmZ5wrKGaWqa8v1dQGljEwZu2tgXwWS ssYIZOD996/w7rvv4J1338d3v/8Gvv3ad/CDt97Bd7775/jOd1/Hn7/5A1w8usZ+X1BMEwLegNMd 5InMpz+jFPXnbdp1AdxC1OiYaUJdQSDBItVohmvsTdsPEw78Hk4WL0Ka2cctBGCCFveaUEBIeVKg BgKQwFmBfPP759TBf9pAaINK2WoEJA1whmlhy4IeimY9Gb6P593PZdAwRQVOo8EeAEzm/kCBWdp9 CRjoNUR0HAh00rK0OX1vBeNM+KWFa6Pv3wa4AzN2QQIlFKkMri6aghVjW34+/DsJNCQAY8ABu/PH DoRcxeH9UoGgx1d0rXY/hyLdDWqgo2JKNe4ZitzEUiJ4YddQ9vtbx9EFrZadiv3dTSRYnYfa1kyL yHkl3Sj8Igou3H3kne+4RljrffR36NVdTHX9a583EFCL0QuxjEUwCUhAcGuFn7fRX5zdioC+7zT2 qKDMO5xwRZYd7m4SuFYkEKaUcV0JsrmPOt1DkYQwUrD2tM39MlavXz0L0FJxZhN1I6A94KVex8Z4 b212nhAbIeIOiSEIWOc1Ub9n+H2hgXZNfcvusxgbc1eMDjSgpd3QBMi+b7o9R5obckXUvPcrgupE 3c0qjm/tWhOeIg2I9zWcshAM/flal2tlWY2IbFTcFApruIcEykPVfu2EbqXXh1io75OOQVypHAVq pQFOR4PFDBgwpX0xzI0LbflAKuIOEqOp1ifOgVHXci+G48F+do/6PRe7t5vlpE2wa4RHoL92jRrn w9990m57eYYOJQyR9K1LbTrm7pO29v4GXl1Ca9r8MdhnbRyDJCpYvf+YhLvWlzWisiYJ3/Tc4eUb axzP7TUK48ZsmrvFXd7ejIrNhvHSyy/iy196VQmPCCBFze/OvEirc3rrRN2PWIxQDsBeAE/JSUZk klVkrWYPEFglTdfQIRhvawFZsBeLARVj6lqgDWZ+87gAVsGhOggDkiaS1hSXEE1rZ8Q2sQZn6jxY UZjM6jJTNSgogyCpoBQFTKLoRIm2uaaQASsiqBVg2mjMQZsnFS44aVpZFxTVv1wFJrbg1V0Brt8t +OG77+BPv/0WPvsfvoKcgCkD95+4i3vnJ3jxhWfw7DMPcP/BXTz33DN46eUXce/uHdy7ewfnpyc4 P50gVXDnzgRKCYRkLhua2nO/L5hLweb0RHdLBS4vrpE3DMqMMle88857eHRxhf2+4NGjR3jtz76D 77/xJi4u93jjBz/AO++8izfe+AHefed9XO32eP/hJSo0HgBsPva0BaVkxcMYGjZo/shJNSiVxGJO Sgu+8toGjAQk2xvt3LPtQ27MmZswkEzDSqa9tAA/YuuTavyJyALJk7ndsRWv0iDjCqigw1atF7Bn t+o2kdTtR3irETB5a1mMku1Rdf9ioq79F4utKrUx+mZxjLxBLFuMuexEJWNnqssCXytg1tof/MFF QDIC8XavbWBtd+HaGNp2/uTfDcB7QUdbNhyJ7g4j/VujlWu0rlatSBuVIRSei0IQKAAMUBP2hnce ebcLRADgGXtcYRLXAUBow/3nA89m19QbL0tse3W0gAxz7MDcgO7he2Tgd70vCgpja/49URfwxOZR 6PjaAl6jxa0mY752tQQkOPMkFmAufY2oqpIEBQ7MmRk0V/D+As/cfQKbdInMyVIwT6jbu5jTGZCm cb2bqwuF7+hgnx2ehdGlJ86JPoujlwM+k4+szf7bMFdkWKxZvbwv3Tvh2LVcexf2I3DuSqlFWwsB Y+1iZsxH5iuC6YiHboML1z4vz3Lcu+Nlrrft9zUMqEKAr1NPyT7OwdJT5TZXe97HXm1uXflICTGt ahzTB2vfMIF9bkHATXITDVRUkGQSBjkcim46h4ReGYa/SIFHCb54HAJg2Xw4xQig+ybO8riJGxfG Mz9UrwTbBuQ+FHX4XJulIbUDcdj+Wh/GfL5r14EwFQi+f5bYp3DZrIDzejtLRupM8PAwrwsn/Vft U09fh7ahW5/j/UsFhPfpoF3PAnDMnLZw3VqZSJ2fhYWDKnZljw+/8hLO757j+mJGog0yJ+y8KIkI PH9MMq0MRHpl2VpVawZgllnTelJSrSIbk2yZh30L6zxpkTEBpDYNv5F+q4gKLcxFScGf1ZPQJmxt KCloK3vNdCJ7BddC+l6ZUTGDSTM/qJ7EmJkImIqNr5hWTxlQrZYajlmLo9UZlBlSyCwBovmemy+6 1j9133Rff5DmqmJbA07UCqLNXo3Sqzz6lRJQBQV7lF3F628/xOtvvYevv/YGQBrTkVLCZjNhmiZs t1s88cQTODs/wZQYT9y7g2lK6mozKXPdbNT9aZ5npKykqewrLi4ucLXbI+WMR48ucXl5hbfefhu7 3Q6PHj3CPM/Y710AIlsjzxaTQHQHACPlDsxdw9W0qawavmLzLuYbrGlqsgF5r05ObY96kS4AzWqn wqZKYJyynaGk77LnVdPv6T/dp9+CbD19J2dzKQsFwACLAUi2OXWMFawpC5MWL6uUwWmjz5gvNoOQ GKAi4NozSzD03yqIaf8HmoMoqCcF6k3TZwzWhXHu4NuB3fKM+xlL1LNTuGjdEheI0YGuPjNWpGed KB3QmDW6o/7gtmbWp6F4k4PzAET9XRibGsF5fAe7r7t/K+q+BajSy+zSo6VA22+Zi1Zo9jEeYAMb 3bCoolVTt/2idJYNLNp5Z3+VGC8Yfeh9jg7f61rbAu/yMM/JcQEN89T4kYwTqlXNlf/qT05/q/n1 HyrM+sTUbilmQCwDjWdeYlGLYnuOPDlCB4AJpHSGBAkFZ6ngwUlSS6UI9sLY0RZy52lc5jMUYmvD YzdgPAYtUDaumVe4X1ZKXg7lEMC5Jb10oUq8rSiIOnZxRavWBKr2myqy7FxCY9ti8a1BKEWHbcvL q933GIcFNqHaFAvj5dwS7Wz5+FwxvDxHS7AfwfsHUzKOba5m+2kD1L1BK5oHjQ2kHp8k5v5paGFd mWrCtgnYDee0W9bxbcN1jU74+o5z57TYs//gYN7Rvu9CMVkVYZgVuNOpPGjV9R/tswPWpfS+BjCP SWoCPSHuUxolPDdDOuH5oNrkx2nBgW7yjNcgceJw83smgdu881h/GwHGYuMF3/dj7S8l2KUGa2jv SBu9b+v9LsVM/sDqeB43t1FjMZrAHr8mN13LvkAEpe7x7HMP8OGPPIdvfPV1MGmOeRJqfVANhYOv 4POveQbV/54Z2Yy3YkJCTgkzKtiUn6QqeQPM3DRkMJakQbo2b1Z3wP3qxUReRupCAAB3ixNKZtIk wNxZVEOjGlrIDGAGkUW1WsGPRkAFLXsQiYCyMb+iKUAbmE3QNHcmULa+ClmQov+F+pKjqFWBklX+ LKBkNWzJXYt4EF5ZzGWJNmYpAGq2OYcGh1ch7K8BuRKU9y/x/bcude+UAiKP1RkFW99LXrTIx6TZ dhXsKkgxAJ9OQSTg3IEVERmd7eZ114C3YxgYKwwke4Cp+laiafDZ0GC1Sr0O1t1/3zWsjXbC2uBk LiFmjuHUsj0RW7wIEtizHVmef9X8a6Vf5tysDJymVghM3YlUeJCUm89/QQLSBkS5gf9G70R0+Ypl BBHASzQzqGmtXBMcFRf9fDv4IDt34ax6AP2Cfq1p+tCYqitopPGEJR2A9zWpcmZN6xafWaOTS+1o vPw7pQl2nnWEPe6HRkHooE0Eq0kct7meNMDQftPtYjAcNJyDUbHmPIDChB+j/3rv4iyt8MAGUMJ7 XfOINK7XwJ8N3HAYy/LSPeAq6v6di3tsyQCAbsnQD4Rx9HFM3SJFRO0cdoVXEL5IY0OoFBUKzMol UoyvSwuGlCqQ/RU28xXuTIIMd9LaoG7OUbb3cS1bVE97GywUjd+ZELDs83JO1nh7vHxPe0GxiC26 q5W0feDt8UqQ7BL4xvZ738f+rfXJv4u3xyQxt8Fqa0B5mdnJ71vygb8K6D/27hEXreOU/p1TAP1n kaWTMYa+e3ttXDIqGm5zxf2h7Sn/6QL0Etutr9Xw75BUJ47P+5vjF8yMIrMtjEuu5uZDY5iTM0vP 47/sRIEG/ekX3PyO3Y/KKwz3xbF+HPGJam1jZDpNMzVEr1OTkPo9XSKFSCM6TaIKk34TQG8b1AlN VXeRlqbpcdi3abbWYxI8Ortn1agHm2ycF//dGae35u5ZYzaJLuj5QR795Dqzv62Z0PvUBZtbCWbt btf4O+O0FJbGYEACqgUpF7zy0Rfx6pdfQ5GNcbBsgCoNezMyhsZwoXvP18rbllqQSEFNlWpVJsl8 IQsSO0ixVH4AqvkAOoiqtZhfcF9/r9za2JJ0Nw79v6RaE9kDUkxsyWCyz1UFARENLkb1ACC2MVcD DwLOGnTrjFXz6GuufTKNi5q0YSZFMh9et5q5Y5NquNk1ifCUo9Q2eLVqhE4Qi2nEGO6q4fOt/3ki kBz2hVhbmgkpDy512cBHs0YY4UgwppGTBTTrcy7j8bCHnZm4n344V16/wzCDZ9MqMe6GSIuNwQMj GZ7tiRzoE7vJBKpxTf39TK0gG0hdehiApzhl+y3lBC2SSkoj86TPMYPT1FyATIUN4dwECNQM4oRC BOItBBnCk+b6p6RZjpxZiFiuc4BFQZFXkzx2kVUZF+k+6k1XLHpeCNSDLEn6+1BVADEh2xX5ZGfT 3T9ha6PfeW+MDriARx5TUy3jjQoPKBorE7P7RHp1E6CB7VUCmr+9hKKQUqouuQkDJr11oIqe5981 0QSy5ALUrAdLgcffq3vKWmugR0wi0EBoNsAppgm0moWDa5H7teuch4B0r1yuCwlO1NYuBgY3wdX6 1eIiVPob5hFSdD8GtqVZeKxVGefc46TQPAvM2oXSwIy1YoJQcIlpwKVfTj/dqtuVK7YeJjpoGwUe Q6BJIAqo8UFqqUBBFVJncK146jTjDBW76yucTae4KhP45D5qOsXMG1S40Om97lxr3GPdwyB+PuZW vHYpneThb2/e13zc9+2OsJ/IsVC4v2GJ4kDVPSWWgoGD0Q7+iXrWKm/SEwj0LFjekaB1tz0SM4cx ZUDQNNRqygGq9P3ScKfIjbjpNtdtMIn3tdc6KB0/8rpiY6lsEFYrcty/MRvmwRU8VBqtRRDIvT5U i7XwulJHmqOwEC0LFylWMBzcY9T4sA5AIrYDsi7ZNyklzOWaBOfbv02m5ZY+KvWF17WDuwClNw7Y 2uwH4fC35TjWNFJ94x9ea+OMV4G0dHpoppzj/T3W/vCZ1tx8+r3uphsP7njPuoCGpiE41g8Z1mHt IiKUMmqX4sG4nQChVzzWvo5M5o7GAqDgo5/4CM7OP4d5J0hM2M0zKG0V0DszNCDuhYsa6ECICagC IdvrpG5HyuJtv9mBZbMqaMGwHnDuWTBU09YZS/JPZBKGCwUDIWVjnG6ZyKiyM7A6K9BDAZeEMu+g WY0qhOpYjdT85vV8FHD2CpW6B4tZMhhdgGSpFpvlz5EWv6qzgTS9t6IgkQamihRjKsbYk2up3Ge3 DRWAFogSMW0o+Vmeu+k5MjeedM0sI4ftDCPCSrzEib6wCjGiYEeDbjctKYASObR+CqlbhyPPGDQq VJs/fsM6bT8qoyGyooVsRcmsX77WZC4BneGqtpeQW8yEuGsPdXekdpY5AakXO0tpQoUKIcRZhVqB VZ5Svw0VKjStrKYAVbBPaWPCxmQFxDZ9JAZKNeWfKiz8XNx0LpeKhjF3O7mhe2gpEw+FpfpcjW8b 2m709tAloNHpMPf9+04fl9eSTg/CQOraZ9+LQNCwEpoGFujb8pjmNH7XlFGPyfyhboq6Dz2mxC0M yzHEdzShyefP9rwseOrQz8AWHMgsx9HakwbXV8eomMLz7/f5XxN0Gp6AWbyWAgUcUGJ4NgpZvj+W c87MIfbB3HpgbiXShRy3bjVeJBWEaqksNa4qQ8DzDg/OE+5vCdOOMIOxS2eQ7X3sZYPZrWhxn8Y9 ZPwjXn0tln+PX8s9dmC1WVvfG9qIOMTp4rHnl+923LXEXgf/psO9urzXM20JOrZr/WKPKeh4xM/3 sTZvwhU3Xccw1LG55LX9uGgjemcM1j9/xwcQWCIuXWJXV8Z8kEuLunZ3wN6mpw6WLgDEYKioBO+a 6LHxpkFpnVdtW2JYZPxaVLylVqS1jXqo+R9H4xrs0ZdcJA6KGh+X6kFLFpQcJTCxAMxobyAvE45b Xe0+00gEN8sDgcYlL393k3iBodjKctx6n2nHyAK+HLhXHZsDjKP9jPPoUjUozKN/V4ZnGoN1XX0z K9s97uPnAY+LFKXHr1HjH20B/XfVsntMiWr5Ztx/8i5eeuVDePUr38EmJ6S01SwsUI0GmGxdgdmC pSrBUp917XXrp29015QDCtYAxIrKCeryMddqWotqGr8uCMQRqyuF71dRAUaUYRdoYRcPzhIWELZA nSHV52ZWLfCGgVJAmFU4qAROms2FiKA1AUTjBqQzQogGKBuChlR1EWp+yQVQgSSpxsX8hKTOOvao 7fDz1BBKbVpfJhVwULtwpDnDGUWg7kMCgJIll/EgQWMcTXsU15+6lpL8/Qz3a1aB1G8NSoIIRNBd N1pANnWM32Ir3K0gmNBVI6ya+0xB4+WpPbUBRN9eclAOAji1QMYI/AUaDwD7DCZUNk0YU6t1oEWj /C+rcGR1SICkAAwJAi2MJnZ/5QkpZZ1nEbCGp1iQ74xECWx7hImAA8ut0RLXnIoDfSf0bjkZz2q1 85aDABWB/HGFx+LcUx2eYdu77sJHVrkWDRw43etM15914InA05zONsWJ7ReyAoetwrkz7wicKWr6 x4uhwqmb/YGh7rhawVt/O8dMIIAn88ltk9D6G12GGq0iNE1+nFd1eXQ/d2P2diacUrM9s+Q31ejk QYFNx9DtaxP5/KyJD7eDNQoKEQ3YReAjHpQa1gPo6TzD2iQiFNN8Nt5WpfEgv0S08CO32gPSBBVX xHVepIoCsXiwWlQYYAi2XPHcvS1OZIfMhIKEOt2DbO+jJK3+21EGmgBJNkHuWqjCX16vo3T0cqWL rlui7kamChZTwC2D8Wwi3S61zOgvjXiqlV9k5LvdpVOfItNAS1h4HdPC/djyLRdPBuCJNGp7rO2d ppgzvsSBtusDHWgykVrhGjakMJqgPzePi+aQcwuAfQyTDILcYh4AVyS6YsD4a43z2veYA+xaLbHB kXfGFL7aALf3AsWScRSwZ+1qAplp/oNAfJOg1OoTDXShC60eU9KDgEUGf7w1rftSOoygvUtB5YBI xuclpLC67bUE1PGdB5KJf+8ST5A44xiWDXbwsK59WZMeDzQBxkgyp5aPfXynXtFnfk0SX2qUlmNq 4x6Klx1ePt8+Xlr8Nv7lvsnCvI6brc/BUsvm8QQ3WQzGMY79WH7ff/ODNeP07Bwf/+RH8erX/gyb bca804NBnJu2pIiCdGfCrA3pd902b7nw9TtPmEYamQt1bTCTJQhzLQZKTLg1gaitT5Xu5i2w5HcO LLo5vlZLQ5iSAUsthOVMFaypHDHvIakgUUXFXjO3WMW/KjOSqM94ZYBqyHxBCvgkkQZ5igbsMZMK JQQ1h+fJXIpUwAFV/T1NChwsFaz6M+ZBg0SSIFy1zgJXJZisZ74FMCEABACE7h7DHsPge9nBpRN0 tpSNALrZ0/cDt30WL2W8AUi01IYKMDwuwcEpmGwvaPEt7VdukLS9kwnJzaWWJQiozd1IQwBSs1bB fP5bxi+wvt8/W4Vf8tgAIltz8/UXA9gWIKwnNpnAONl3FlCODEmTCQlZhR4htVtVYzAiPU2zgaLD c+/z2z8rvT2kgU5Pl7RwCR4H+rtoY+3fN94TgS5zAKQGAwzku5XC/1KzKLhP+AioH0fTiQK/g2BK 62ke9X0yPKOaTW7Cg18uvA40XTvUlG5REefzqBrvdV7S77P2TZj3sbu2/mB9rR9utVzTPPp9xxU6 Bt44owmQGPnVci8sPQuicODnGAgufUNfKGJGBTfowJ+ZNG6KCe6elkjghe5YqiYeqQqAEgNyfY1U r/HkScYWBSQFV5JRTh6gbu9jTx5wX4axROHC+ZSPZ7m3HKhFwOY8TfoXbR6GdtbWGof74BjIjf1z BcqxSwVEjwM6tD4MQqet0xj/Z7mZCEgVppwa91XEB/EcMifIogbVf45rDbM97j4/S/G3YZ/b5bSn fx/n+gY3IO8LHx/3Ep8OOPAxl+5VfbpVyTaC0wWApsVcdLIBzGSL6Z0Jk0cWQanq7fZS/60zlL7g CTRYAm4EvqEffLDH133pQZpRyJfONcNLz9flYV6euD7RUWN+XDhyEOTaQs0gI10SltGcvna1PvkX LkE7M6i1zcfxw7L8XcfgbffRKAsY1oGB7uwZtcbd2Bk1gccY6XiNYyZjmL4emskHzSZD1Bxq2lzM dcbLH3sJTzw4xaO3L5D4DLW4P65n3DGXBzHAHutLwNcxZJhAz4081wImbhlNVLNmgoNnN2LnQwaK LduDE3gdqb5HYJo408o6/1J/49REA4ECbYj6DgrZurSKwmrp4kTgAoArqFYtpkJmgTAXO48VoATI 3LU5TlykrVff8z3AVrWtUs2fmTu48L/xHHfNdCRGtj+ar6KDRugcQnTsISUwm5uNC+oNRIHVlccJ cTi7HntUuaq7knQNvfHpIGRI238OztzCwZaX3DXeImIB0DBm3wPlVSvLLa0mQZqbj4OdlNR1h7MF 4Kas1gEiq8RLqlFk0xYSwDxpGtqUTdtMGtRLACipwIAEMbefGQROWxQhtSqIuWtVdY1zM50GdFt6 R3PlGk6koJmo/XQSklpmFj7B4hVnm0Wgt6GCZQfDnvVooAMB0Dj/aEAZQM9m4RpKO2Pe1ghi1wAA IABJREFULxZz9+oabghArKJZWQCgEp6N4DaZ5rG6Zs/4HrU9bRYmYbjtOCePOxldkfx5XcO+13Ue x8unocXOtX2FdvbE/HbbnJLSBj17o2VFBXtumZzUnS81l0Mh2DqS1VcZz5C7ymjBQ7QFXdLupUJH 9xMPCumY3ruNnPvZ1jY9nsG+b2NxwcEC8sXooiVO6JbpkX+kALr1rU6DBZlgihGnIyOP8vgXLgU0 X+HuBnhim8Dlkd6fzyBnD7DLd1BFkyToMkWBpMdJSaSJ7fdDISB+L4N7klq8pHY3mc5LUkiZ3tfG z3azqLR1Gt1xuc2yqqUOffX7RUSgygd9dXB/AI5C/yodcx5z/u1tHv7WMAkB1Sx9fRQLQaQ9f3sr i6/DWjKV1oeACeLfGqzMgNEh6RiCbO/7ummiEF1fYVrg1XqAX93i4HU11GLbFRetIrD3cwEdWwxF ++z01PlwtzwOAo3t3YxbXn3iRn8nbfDm5xxoLYG9FlY6vG6SZh93xb71AK7QF4wb4HHv+SD9GKTB I307uN/nI9xzTMoHcCDBrxGZ4/0r6NEZ9q4aN5CVnA5airXhOyA/1tfHS/AjsB8IzvA5BYmVMM87 PP3sA7zy0Rfxx299G5vpHIkTZotD0APTiaFhTvUNHTRTDpCoGfNEBNnMmQpUOzCoTBZXp5aBZuY0 TbMCEjR3EdV+Sw+t9fls8wrzeSTLL5/b90BFyluo1kp9+AQJmK8BZDURokBkhpigk9iLkWQAmjGH BBp5WyzvdfI8whlctcgamQafqFt+KkzIAZplQxmmcw5A/Qo9kM7dK1J3wymz9hlqfShNU2tZhizV Ji2BeQOLFifhcV/6kpEhaeS2umGxILkJm1M74+J7gANY8P2akgExA+f2fErcYkCItO8K6t16YEJ8 yj3mg622L1HbE0xZfbM5N4sAONkiq9ZfKOl82oQX/y0xhFy7TyGwd0IFg0kLe7m2H3AQR8BcgnlZ /x/Zf5EomfjSskG184zSNKhO7/2Kn5daPK5qrl5qytb+/bjvRKSdL0IQEpb7BMBS87x2NeAWrKVH gYADdZu39r0zZQNRrsiJYE39YrmBzpv6s/y3noSlixV0fchcoha/rWlzDzTPi/fG/vpqHqPjUXCK 9zS3uQUo9doCS555jL7ruLvromYXcmtghaf39L6u4QIXvJhNKAz7k1DR4ppkVrQhGvslAlAp4PkC 984JT54k0LxDJUbJW5STB7jEtgv4PhcHM95WA3IsJaONtI14mGs2ftAFrVHDO7bTBQg5+H5N6Fiu h1tmo6tOfMcqRkHferfCZtXcdh8HA+J4XGD9z3h53ZGGSY+M5Tbfd6VUxzF+D+kNt+uUKxy8HTk8 g6uPLc5e/84FGmuHls+MbR4VAFi6tOUyJAJBhMEbPRzxQBeQpUH0arhsKIioSzatnZVNsrb5Hw8q 7dno21plSJOqfV36nNs7gn+4vrM89p0+HsA1VoeHqpmnQcPGW47Nqxc2oIHxsHMDlla4yVwzjs9N 25KL7zv4Zk44THi99KvVd3hGJw+e5OaTOzKh43qA8f2+GdteYGUGML/6ZIJIjWOUAtAen/ybH8PX /vg1lHoNmOZLA1kXzBMKdGZnDASTtE0jYBp07Y/7RIr531GLH2BoXcVGNHyGnQjYF0PQkLoGtxmV Kq3InlTR9O0VILEAV7JMNJS7oEYEzY+9R0rmqlP3EClm4UhIrJksNLbRKgH7sgopc5G5ZauqtQKp mu+tWgxcm1jrbH7i1MA/AU070feiDqqP3+of1FlBvdUI6Azfpp+qEXkPfAyTFOf0EOuoe03oC8xd q5WUd40cWREma0S1ZNw0PDABUAutefYlsr2h5h1Kk8XYaByAElI2rWZFssq+mkFUrRcgS2ssFZyy tsvq3w9P+WkuQLAiXxCyNKwA8WT7MJlgYGk8abJ351b8i2JWIhEwKrj2NWrMwf9zawkBXqfD5QWC rZWnxjKliXsMt7NE5hrmDLAFOPt54rDeOk999wcaTu6iZy4JdmbcjQYVSC07jWbDaSTVaRY6yyGL YWpZeUzD37RehLaZDpgr6Z5cy6VN5MKAVbYPMmRsIyGhVLGwDp3vOvC1EdRpDH4FmwWwyWXmo+2P 6b4lXR9zz6Tawbj7jGtqS52HeGgOgDIwJB/oYzburqhlEKQGBVVVpQUlF1js7DPQ4tPiy9o8da2H giWvs6E3NmAZ2nQM4W4TrfCczyOo1fMBdas7kVv8a+PfterZ0JhF4wVSUGvFlgqm/SM8fZpxyjMy BCWfANt7qNsnMPMpajVLMtAEk7W0qnpFXnj4ewf5fT/6Xu2uI54euZ+r2J679HpGnVZrhsc197z/ 1c4kA4uKurUnW8ACiMd2kn1uvvF13BetDkBo2qy5Hkyv4WPRNaZfLXNYqWZxD8KkCV5/HdcanlQB uisQOq41BYmM8ao+TwDQqwKNV0z9qawq3uF7ttOcSNtUaQXDV7D3L4R8WeBj4TAeWdl2jrf04U67 9MZbWwDWLwURgxTiphGisJHRCNcSj0ZJxjfWoali/RlgFA783x58ApOEauxfeM+yzWV/jr3TryjA rP3mbUTT01q78X4xTcKhVsYZ6KGpcV0ACMR37dcGEgAntP2dMYzND2J/1zj3h+3edLnmbAmm1+5b tiksKNjhwy+/gKeefYA3v/cetpst5mLmVPPHTsSoqCYwpe6W5UKYZ8LwAD6bqgoDFu43WgkpcWfo JuWZ92N3I7B+erpEF9j67LobBtpsO8PT2L4KVC1OJtUDeAF1o9hDUzyqRkuYQTIjc4bUnRGxpJrp OkOo9FITDrwF6psOZZJsTAxSDEe701JVwYRUw6eCCMOrDBPQ076ZUOUKAK1UPDUGpoID+h4jFbI5 xX2d4XuNpFdg7mte7fxCBQxbM9ectaulL+QGdEUEnFMT7OO5bkWkLI2st+faVxdaKCnwoOQCi90H Ur/95iqkQb3q809W3FBz9VPWoG1OBuJF1C2IoEDe2izIKoQyqeBAkwoBlPT9okHBZOnydD8DHhRH gg70gabBd3cSANCAVR+fz1kPzIwKjWNXn0unIbWlg5RaNVPTkWecjsTL62wsNdCdTrMGJiduWaRi u7EdZh6TWdhGPKSlCD7OLvyMgBjo9E0BkD6z5ovP4f4aLKoOLJaZRIb2FwLCMGdmbdAkBePUdbo/ aubHOAnAhfsDPul9P+IW0eevj8V9JVVhtRAEGiDszw/zF+5TAZTbby6kq0hrhQfhNJpMQFUXNzb3 PY21ss3tRUAJQxrFWjxwUnP/S1HXSQ0EZlDZY1sv8fzdp5Fph5Q3uKYt+PQBrktGIRe+xsq/t3Ph HddpKXzGK+KfQ43+eE+8KqEVUF0C1TYHwbLAMBomMu4RhHVYvGN5bo7h8T4GxX0dKI97/Nhzj/vu r+NazkcUxo7dv6QHN7Xp94/VjB/XKQPoQUC6iS4s+7Gkh/Uxc7zEsbd3ATIZuBPKsVPFwIAyITf1 99/SCjGOA/DCSUmgu+xIQETzoWwCkEm4iwNGtbQsCHFimluGv5vGDVE8ivvAutorAWq/a9jkqrVy wipOjR5zqcS3UmGYgo9ZHHvIVX38fETwvi5s+OWaQCIK6UsX/VuulTEUErdYLDYYM5Z+o2Ob6iNN WBCcBUWKWZs6MRXMteLOvXP8jR/7GN584w8AmpF5A0oJ8+wBsfj/WXv3H8ty5EzsC/LezKqufs57 pHlIO6PRzOgxu/IDMPyvG/AvNgRbWElYLSBh7bXklbG2FrBhWLPdXZmXDP8Q8QWDPDw3s0Ziozoz 7z2HDJLBYLzDC39Zn3R3iMqXCqCW0ADkpaJvJ2Mt1C+kkoW9MjRLKjC3ke4M0LgzvVCYuiWC2YyK a6N6eFV2zy6UvLPAwlTGCHZY3QBn2rXCsjEUlNqgpZn2Xiq6WsYgMrVR+KuJVwO8Ae7CE6JMNwtB qQ++L9a3+eB7xqlOxokMkQLuf2hrrcbqqOOfCxAF1GQoilf3LSJeDMy06F3s8mcBIxUWVGEFY3EB 1NbFcDZplMpghKQUyyLSmLGBQl1x+pOCRblGZJpFBiPvcBTm9MdgYqUW0O/e3vGgXfGgX3jsgLgw wMrL7vtvWUXcEiBiQqpcIMXiBawC8MXW3gUJwKobm0XKUbGLW6uMASpu3SqhFUJYTZiZFnDvKZ73 5ZxmTR5pma3XsPgJ6HoxEj5IMTxvvVu+eG3uOuUBl7B1DDoRWlvx4GRNowJAH65ToMVDIKkCZr6+ Bd5PKH4o0PkFS8uq06YaVi37nzgd7jJnNFstGVyjKeuU41GRAq3N94CCEL1yxX3ynUkVdz/sZo1j xeKcpcfWHoGbRSxbTBaqHQ2MEcSxiQLM0hVnCUMI5FwZeL8mm6GvelRMVsUkVaqtGYVS2ypzleS6 zYLNmtLaXSA4Z8hI4UxaDUC0eVrowWjl4HNzx+owXb0VimT8nXCuZK5EjZ9pT/jsAnz33SNEv0KT C/rDZ9DHz9DLAxrGPNTpHdNVjvnk4PDZcj5+t5kVr0cCJAbZEyL0SA9T416Gr/JgRHXgHQsuRp0F +xHFIMlHxUZSytf8Y8AsJszJdAnNLQsoY/48x3Rz9ISf2SskrcdZv8yKt34euPMiJ32/HQTvOGND AbTCSH6HfC1g58BcYm2+zYrQuAspAGakivE2sQrZ4ph+rxA0Oa5zptPrGS9kBdhcCVRlSbGb+0pw 3RUAqE2hpJQlpnU/Rq76cmoiWzX7GdF3bSdx8fMg/IlJXRnW1/RTylHyzv3zs9HPsphivoctzZma LiLQayRa4YH19e7tfA13c+ZFbW0OqLs7bhCM10ndMS7Wg2S/08/uOMb8d5iy8Mr1cdzraLjpDT/7 5U/wP/9Pf4Gnf3yyaq2eim8K0PHUcQxBsvzbahpHZifAMI1a/KRGsRkSWhVLEyoMjO7F+4ZTBJql 8yXsKSR1MM3GDLfQKEtfLChMcZaYNVs7czNRaSgo7u5yg1Zj5Is2Fy+aESKpTuCbpflUCfdzEbvs TeigVY4+Q1YpUzqZa9MmSr0acy4e0IzuwUpc8+auQ2VUEpaK3omnLs4VR/Fw8UB41oz4CLOCVbmM DEGCqM4Kh531COjqI84OEI/qw1wBNQfz6iBsNk/r1lg1Z+KtXwymlXMVRG2AsBp4Vh+VkdbT/JKL BQCX0G3C3IDc8iHFGZoLtDy4z38FygVmQRjpRUWNea2Og8J0dGH2Nb2/qkK0oXeg1ppcpsi4DhpG xmLVWObzOAqxuUaa6+nunavmkTnazTqsqIx30JHd6aZ9KB4C/2fXx5lpdPeRdFRmJjnRXbe2UdBv am6ghUG0cf/t3fk0zXnSxoIWCTKTPe68yICWlAQ2o0GBVzi7KqrA3bpwuFDH/DxzmBfQzN9loc4s KXSDm/dQxE+HDAvPur5rW++YYEHFsqVR8B4xC86Ab8aYGJC0T6BCJHAmwcP70xfUUkiOnxHnE4KC C1pOSyi8mWDZXZnTAHcTardnXLXhi0fgXX0GesN7LdC338Dt8im6XJyJPa4X9zP/5Bqsd+5ubfdM 9P67/BnnS/4kKy5y2tO+8CJl09fazhjk9TNN9/b07IZ+6HIe7o17Btc/V1vxmT93ColdG+eXadhn +FdG9jexYmT3oaC/FBRDeN14YZhpZ5oTeWvSqd18RORlC8AYjJf2bCqNiTY3q3pQA4NAQjMflXrt +NZYHN+UyOoREB4WI7dIlbYEz7C1ZHpCgjoQVNWlZXGOi77AlIj78C1UgBqng09W8qHerl9iNG++ GR2j0ikwcvNzOZg6y7rn+zzQGjCRIExrNKUGPRKk4eozF0k5O/R5vWkZUXW3qlLQtQVRz5dn7tf6 GkTZGNwSQoANO7QnfC73Y1moOuq14nZ7wje/8yl+8tMf4S//9N/h3ZtHtOcbpFTP1JEkaB3aLQam ogla8msXwASC4l6ezpib7yIvgR5GKasr4AHlZQSqzd5+Riy4R7WYOb+1HmsPoW8mz4ibZnsxZp+C EkyzKlLQ1HJFm1RhhetVOuTiVS1xhVUQbp5i9NmCiQFob3Zpu0ldQJeUBvOnNxceSxlqG10AhAuQ 0GLkbjsycDNyVzc7N1bZlnjGDAuW27urAu5HTzcfDxqKlTQN+sjZlTU2pdZgqoGO7j7xvAwZ4Ca1 JguXZfOwwGDHXbExS7E0q2T2rc5CSUWTqlsaazA9UelZxNfDLAxajbkXWiaLxUNZKlDT+nextJ+s /myWg4fBDJYa2R8KAL01s5Bkxk7EhV2FtjYskH4X12IiqNBi6QspKkEX4/nlYizFM5/wEKQW57q4 ALXQaUWB9OYxS4mBwjjbl6QF5v0gGExE8fsiaGA6p4JqqQplf6lvm1viAER9gHADDEnb8vULfbBZ M8O/1kRTKcwUcpv0VQeCIWblXtLiipL6ohLdcETQwbzsI0apBuyoZlHaCUBmUdTAN/ECPaJjPcfe pHfVt26z/5MQGBa3ZVxam2jdggYqFHWGnAwjDmg0MTMMKl6/t/F4D1yn/fDFca8kCgo90t+iN6tT As/Ighb0q7WGKorSvsb3Pn3Ax9IgvaFf30LffIH3l4/RPHVxVGQ+MF+EZL33z5RvxXy0afGgQImC 7Daz07Lndog34/4pEk8Bd0UrTr/Jex3hi3054bfWek4HXit4FRl/e/+qQ1O+rgdrpRCa2yKwUm/R E/34p7TI36+Gp6GwlsF3TM+nv9Xv5ayuDnxIJjNVReteOLPsuIIXYFSzwFhWOks7yxi3s/lHHF0W ElU9q5wl/jBYxz5kfv5FASAQcpEQ84HIC8K2apLUWVguCzXFQwLDtp/XNNU5ejo0NnJEnLV/MgiZ soT7xyuk0qwdyYdzwJWyRWTNW5KYw3cza1zyZZw+79pjTI7xkk/ivbYW8Lq39utFwbGzNJql/1UL xXXNGg++d7hgljHDrYgmrgr8wR/+DH/1Z/8Oqjdc69UKdcFyoSsvedUQEkdgH4BO6w/cTaOEwieK CPmjsZ+FWg3TgtGkyzsoguaVlzDC+tCiloDvIYbWq5aBD00VUroH1QZHhItcXNt6C7eQLg2lXNHa 89BIAgCeIP0ClIailkkJLPjVOrR68C86VAZzD78gysWJhhOL3t086oQNGG4enZc/7BIrF8uYY5rp i62Pqacgcj0QsyjkVxBEarCNJc6H+QALUEaGJ189R5wLRHzPxC0IE366EB3pjunHXCIgF2BOfjeX ROYfvut9sYIvCW8tqO6+o3GxezEvx5EiV8eEqwsBF5i1oUJgWX0UnhVKrW/tHdUZK1F12qnTRbSz 8okLrlstXlr9/HWmOfPziPUzBHWT93If5L8LmOFpYSYwzvORztBRpg+Ru3eUAvf3draC2s1EH0lv 6B+eFQgVEu6pPJfrfcE5ABiVSZd7b9A8xLikW7nmxViPlSabZTLn9OfnQS9csLNOcLJOM7zx3vLd bv/X/my8mRnPF2EIaWE9SHsoY512Y8jSR9yz8ZCGAELlh51dif2JmgDM3OKwdMYBOeEtkHBzgyhM DHVf7H4DtEPbzdyC2w2X0lFxw7W/x/feXfEGz6YE+OhzfHn9FO/xCCZInN3BxvxibVJWmV3LeMN7 b/6Z7vYXCoitd2rR3ek/wig4unbdg3Mdc4VPKXCe8Asrb2g//R46mZdImWBex/+nigCZv9mNsz63 +/ylvxvvG8AMdsec9adt4JB6ngSdYM48Yua3BPBMgghBL8/xILAhjSN3BIBkIT90AMwa7x3BEy8I 1kt1bUdfNBLM80tG2/NG+8Gnb1ssdPiwuYGZEiIlHoeX0dMjkHKOWj9roXnxIiGSJGXT7yzPS9Zq yoH5J+zqQYEtB59k5tdzEmdLhncchHESjoIJdSKQgpOyREvYj63HIZ8OwwFXV00GmWsN5jgTsh2h JMNvP3UhcCMjAt1I5pt0mOFFRk4IvntrT/jtH/02fvwvfgv/x9/9Pyh6De2mNsDTGaCWgiauyeA6 olmsSTeLFPEnNDIARl5g4/CL1BHnAlhaQDVGy+JXTGMubiYUdLNmhUA0mNbwQYcRCheJTTPoc+/o 4c9JJpkBqwLPtqTOFEtFrVf09mx7UOCxBzcUZm/qLGTzbEyWW+K63rwybPOYhRtoM1FYSslSzJ/e fOnpBmVxB+aOA79hKDiYQq+hQ+qDad5bx8VLg967NI6te1aYiwcVtwOBa+FuQ3GgjmJdsD1SJIaC zGYdQcOMGTEYvC4BkFJQmu+/uZeYNj/cI6W6e4+gSMWtA3K5eoaLAlwsq49lfjEXILoBdbjwqSZk XFzILSG0OGOTomJEZJTpkAFjXpMhbPtjoflPzDDfcctIo7uJ4xbPd1EKFebiEe6KsGM2+UTDtfPd P3d6HBr12Odx4ZOchSZRBLQO8sJi1qAmZkErkqpX0xqkSyEex4ELBOpWCXg/wVYsawF4H90C7rmA IWCArjglnieeAogMYvw7YkucNkemGxfSxrgGf5jsU2yYiz5+9o/ulb13i8Hh/QKANT2MobYUwVmB 5ANGP0fm6ChAZAFlxLX4PBnoTgGY+1xMqNLQFJMptSrSkqh6FbO+ZZwaMPRDWm8vz5KEGIWoJTkI RkkV0hVVuwkA/YZLv+HSv8Q33wDf+qjgETdofYBeP8Hz5RM84cHOpXbaJw8KN/qOH5n/OWZk5SVX jTr7XD874iUmBpwQTUxeErzsPaQ9KofUn5mP0NVEszTTjwgM/X0foi+T0odQKs6vKTyrhNcuOnok BL3yi3CAxzgt59+muItzBv4UfrSxiZmupErHpuxyPmYDY24DGu6Jf5I9MHQv1Bxg05Qt0zAPjJXR JGjlfsyL1fknMUVH99oDOa5gQO30pHuKbZ//JACsGlt+tjLQ97USQzrJ6bvuNUkEPy7tFxj2ecwM f4mNlMW38DdtZBDvjyuHv8lUNl3Ljx3bQTNz0vf6/XnA7cszXzUK+ecOaYmoK0xnmgv2YTDOhTbG 3Iypsw9mZM9aBFXL39w84uXWG959+g4//f3fxd/97X/Em/LOioiIpw5Mcwjffz9kOdtLuOAweDDA Y9YgROaEAgTTJyzZ7mlCAQvgCcZI6fMszggOP027yMlQD6IcMLtAFlomf64zlada1hwjijlY9sG1 9kZQVSuamikc5eJzcLMg/GJQr+JpSfAicLI4sWDUmhUb5opZUG+tjyjFM2245MvLF1xbabBMS0ZD SpoXGRzY9MaFFZ94/u5yMYFLEAKNET7bR3MDqJ4zvQc9IRTqAmCmKyKstsvBazDT6jhR6tVg9PcH fSrOJNqcurtjmcBfTWAp1Zkk8XctNsOsC/Z3hwlEqqPgS1irFECqzF3TEd8xAKEVdLi6Hs+k0eSh LR+fleln3pdai2n9wUJgH94sdmI90wvzu8CZr671eftHHCoT3NkCUKTYPmZLc6ILWVhqyae3pz0g y873aq2bTCIz7Ls50WWQboiZrmXGuyw3hTHREpbE3VoZY75f9859JW2SzTNpPhEUnNaUQgSS4EQc KwVRMT3DLOl3FvhjEgtVc1Eol7QW3T6TYnNZhSNa88nkMvGovdvNiprXBHAbq/n+izZTcqBD+nuU r3+Nz98ovnhzwVUa3pe3kMfP8SSPaPKAnAh3vZszn/FSW7Wws5A1+osCn+m99fcJr5ISb533oX+n h2vLgvBu3N3nIfQEqIPZXDXUPI/WARnjIQTkczjBlOd7Sh9+87Z6PfCzie+I8bHdF1rYMihDIBwC Rsxjme+O39sJlOvanPUTdBvAlGZ0s1Y5mcwkAOwYT25qh/s2hYGWG79aAg7jmVZ/9T0rqynbWkuV zaaUbszry7EYvNv1ALc/MD6ToT/biQQUcEQxKkMGU+a+vfH0ouleQwKck9EEy04Iis3m34RlAJXm IcAae7CbA+Y9fG0zwpGZCmBoMHhh2/hkpLt6sK9/z/zgEVAbvqGsyMh9XQnr4vsflTmHMAmY8kDR hntWUdz6E376+z/Cn//ZX+LL//cJVd84pyrTgbADbcxP87LwNgeYtrUKwBz62keqNNB32OBWaKSj NKcEw/eu5sMbBARGIMiMVOfymz+v/RYaTBEM16EkPGeGrzt+0seTXxV1Sb4DEoSVrklk8ssosCId wAUQg11VUWoDeofUjo5nZ1o9TkHU0jqSQXC/RApj1OqIrxcA0+ip+d2aFv4yEaEqyyVBqwHxVhVS FOZKKbiUi8XMaDXXCV00zuJ76gLOQYEh8FzXLNpEWMqAvVTn+CWEw1o9h796vIUwxqAGXmlxwQqA MPi3VADVA3ovJlhJAWBMf/SpAHqP7C8l4lbUlbfDqqjoQHNYwyeawYCC8N7y9QMQfvY9BL0SzP+B RqgFcObvwldeFVr6yMwy7FheU4K0zBlIWLyCVchNtDJS5ppvcg76tjHTeVeFhBbNLcJ9CPDCfRXD /w5LnUvaY/NI+fuBUFyEcMp+qZEu+7srlF8enyIU/sKC6ZpqXXyqed+o0bKjC0bxfRpBnXSQEKe/ IsXT4vmOyMhK0w/32GAEIv+6mtZTebft5oc2BRHyaEWWOzeCDJfFwVjUKIvutMR92XcMzsqHFBfq O9p4nrnmxVx6SPcssYEAktxIhGfEnxE64HVj9D0+BhQCVN2lTvAA4E37Ct9794irPpmb4rtv4f3l MzS5egyQM3gLY7i2nbIsC6yhjFyYt/i9jMM7C6fj3s3vcg/H7lNQoyXbYeU9HZD0wCu+t/ZkMPCM +D6z8GEc+2rpppf5MuaEVD3XEyB/Md5xmBUhEEa6Zh3C39TWWh0v8EP32o5fLFERe9A9YPAzAfmQ gKGaGO+Et8w0RrpoXQx4d0oDqNUaoiMNxxXnZWpUXHaLm/SRWlzmVMN5XmG1d+Uos7Wp9/sBMQAk 5GMSeYMH4ZklmNdYACagNwTkHlz3nhPYQTrJKHoc2xfz8Dn2m5Y1NoEIIbAcicO9mSeAAAAgAElE QVQqsU19pTGyJLgD/R4xem3bCk1TM2Zy7TNrLPLfa7+rxmA3Phke+5sZLPS+wBQCRsHt9oRvf/+b +OnPfwd//j/+DS71CvRqafEpDXsxODMvD6IDUENt5mmbk4Qg2P3dQp/xhBur+1ktfmBdpd+FDIFl cOHhZHERLWQA/fy424G5ewyi3d0KkbMT0apqmXyMaTGw7JB3vfkFVsdlfFEPVmIKRc//7xdkqXZJ lnLx4LHu/SkiyNgvBRF3CWodIm3soyrqRSzGQC0feigPynDNI40lWo0CeNwbZzMu44IST7MmgPnC F09Dyz311J00I3S4gAKeyYLK4oRlWKSEbofF4gfo/z0uMVtHg5oWA08vq2KBt8zdjwq6DmmxwmNk /C05Qp0ERO1uwWDAeWJ+LYg6CW3xlQsIC0OSzxhz4YsjrWgzuBeGe7w/Au4yfY9nTfUTbbgKMPvN zIpait3jPRH7HbAhhIpdLvpVO5cZzxHrQrF8pmFDqEjrli7pTL/G9+P3iYbZJTK9u/Z/r9mzcIFk vaZneAszE4lbGJ1ptRoex3fsl/hg22dWXpkibghPQMI7IAS63GIP4BresKsNUbA6EeqY92E3z7jn 0hpTkCL6Gf3QMadCxWOf8IJrW4AowhbaO7GkCNobpN3QuwX+SlHI7Wt82t/jm9cLHqvgplf0N5/j qb5D06tn+RIXmpf15jw29/u8Zpp+P18PumQd+YSju0y8t5xRf+sA4wzPXhDL8O7mM9yO8lmugAtu 8X4g2Rh/GteryWv6Hun7FX+n+S506UPbPR5u/n3mXTJd2MG048PC4nbYz/M+SilW41TED+dQxkyw bGCPZAM7npDWcN933tO538s9Jnq6ZFBDS2Ave5EgG9tM2/ABYD6BrSniHr/jkmL9mb9qzoMcmX7U uJ6uOkmHmVDH79QU+edJuXHaAhkLL+T9QbJZeOo3GQQNwCGvdronX5g33JXBTewd0MkM26NP80Ft B/jOCNG+cUMcgQRJM2Aa0tHXcc+YeYC+gMOndTA3NrcRwzFpyrxSJ33mBjT2ObOWxOcL4z8JAgpI Vfz0p7+Lv/6L/w39/c0IZzMNLiv5ijP5fh8a3SkzgSqefxnUnktzxpIXpdfBIKOpEhoDupYQG5h/ 2l0m/YCWuHjp020xAmX4XQMANYKewcHiUQTQWzBf4heiwDJZtU5hzYNffXtZ3RMCSK1ozTWCLraa q/MNDDhCv0FqQ+GaoaHfbiYguA916892Qaq7DalCCoUFicuXMRdS3ZiudHehW0Eyw3pNBSkSLlaa XVjEpyFmSTRSbRaaArqAjHNQaxkuNRQQNGXmqYKh8RSgWHC2fcSsJzXF21hBIBCPpUKkmuuPu/MY 4zaEgJnJKQj0EYUdcttBJggdGvLuW0bhBBCIV3r2S0rHpTJqXQwGU2nFovaw2zpBl8tUNXCvzGZO owORccx8ZeHnJp73i8WEO7jv9sWEVEUwZHy3ByNMV6o90wFgSjMKOy52joTzpTV4tiZ0X2gWUxz0 aLYI8jMqnAgjGVDOb/BXLixx/RKeZqHAnkr4K/6ewq1DROkUxJHgA9RS7NaOUr3iL2aGu8NoTE/r cRRMRl7yyMYjRs+KiicQGIJU3COhkMkuDjKK+q11BNJdUcQtP4m+H+Icoo07zv402kuhReJ+zTEd TjP4nKq5KHpAlyldXNvviojiyp1rFbT3Df3WUJ+f8N23Bd//5ALoE/r1HdqbL/BUPrbiX9zyOLQz Q5uZxVVjvrZd9hXri8UriXea3pFYH1OsO68Vd3VSQiXxnPeiqqaUsP6gygR3tlTNW1NiX3rvTlfi teW5xHedaKAPjDL94i1t5FCCqa0VPQXi/XVdP1Dzvxeu9gxhpOGUsb45ppN0ISzfkJEdrALwu3pm 3mfmP84prcAyw8aaK5X1IBJdmOdFvCKNnj1FZKrVUeJXpmSmgvquBWBiNJfPqTGdfaf84kpMaiz+ CROeD9VRO/W6do9hJwl9DdpkCWk3BgUKVhbO/pOZ3581FEnKSxu6q5XAA7qT/oLx3Ry0s/nfEwzG vsjy+TDj3ms74WuFedXsnWkg1ov5XptiHoTBwN/D93/72/gP/+s/4FqvgLAiJ4v/uEZFNVLw9RCd rVmmEQRBIoMhZM4o2+kQizS/m4hzWAvECwJ5tiGa4cPnWs1VhsxKVLH0S5YaNRNoyXB5bEJXH8iq W5ZyAZwJ7EyxpoarohJMPlNWWnra4S5gYCtKYnxVG3DxPP/lCtWOKlcTDErHcEOhAACgarZqGy0w aEBiGFp/PzelAvCUolEzoYxLcFIIuCUA4k59Sj9+Y9BdNjOXLLjsoGpJAZIpsJRB+qzO2WCcuE4N ilJHzn9LoSqQejUGvlQoBZ1yAas/2xmoKeZj0ILI8KBijJ50E06RBHkRZ7p11q4vZ3tcqsQWFz4T A7G+G/RopRmk4/kIRmrc8a5ZNlxIcSaflqoQTsrwoc00L7JpyUzv7ymgSBci24+vZWTFWAX55JtN GpRbmZjWMf98zrIVtwAhlAYMmOnjGfwUtnj2CHPrDGzP/Sx00r8TAzqIDRlfW08NwSvHOU13zoFx GGO0ZkwYg7VLKeZaUEoUrIqFIA74eFngsc+dPoHfzT7t9xgxCsvq7piNlldJa5sKdiLGUJLZwbAB JmCjmyLDBYN2e0JBR7k9oTx/he99UvCxNBS5orz9Ak/1Y7zHFT0Y9OPdu2tnyrLx+Yh5sX5ez9ec 9Xvvnsz7/yHv5fezIMHP7j37oY18zBHW89iaf8628pprC+Fy+/lY40hanVwJ87rt2hCYwuEPVPip DryZ4oxewEHCtc5vfUY1Bznb3wcBIDQgZHJ1ZBwRSNKcDt+21qzqoxEuv/wSm2SLUmdAU6S0tZlY iPuERXChusAPxYF4pNYHRVpm9rqDpAwajEu1xMXATQ6Ic1S+zsS1w81BAKhl4j+uFdfbHikuBZ8j vr1PLYlf+MnHerAL98Sd+Tvmo4b2YETJrM3P0teV60QfUWeAdNZwhJosfDz7cqZ6/F8wKhgeZpAI MYCRrrMbpjW94aPPPsHv/+HP8Pf/+/8JqDHdYFAV9wR2myvInUpcosZLN1zoSgJbE+OLOiIJocqs OSGIAlwFuAVuIhGHipu2yEolALTfYhXEQIXmQPGQmT0WQBusyi8PQXftseFDlQKmE8oMgnL93O9c vE9VNU2dIgiPqKKUBwB91J6QAvPhb84Mui94v6FWGPOq3YUmAt3BCDHbswsnE4w718EYCCeYJTEX k7YgsTCCYOKFAeOLf5+dDd8fGfMe6CSWwpT77MyqKl0vKChUF1bMulDc3UcYuAjL5y8q3kedisuF lh7md4xG2rFguG+pOFNdWdN1ynamgceZYvDvYLa55tLT8wiY7BIwXBatxoh3ICk9j3SxW5HDa73Y peG+xEYHmi+h26MUYU0BlSncE/9Ou6B0K0zH6VBIAzDy85OJ9e+7hAnFxnRm3OBYaKnTH2bz8Y2O NbJaIfZ51KNRBip7DIMOGKoUWy+/GIT7p4BI1uqPnxRebH1MSM1pLY+tjzHLvHd2ukrgCusPCIUZ n0O+dSXNy2jd7PJEgWbcp2k91Gi34ZKh7iXuYs7fK6ZXr2/j7o6c9Cp4sC7QuBd8T7T7eIOZr2JF FZXrnFvgJuOSzFIiVET0NmepYj2UW7Mierev8Wm54bc+e4u3ekOvH6E8fo7n8hFu5cEPwxh5CIfV ccF97YOBO3PVSRZOvxsj213anxcVbTr6GOsqB++IpOiP9w4dTZRwhTnFsG2EtTULY+7F1mVmqEPw 13lUCnKtJ3IuArQkUPwT/PvXpt1pswvLIZCRPvNcJMHM0H7lw/pQSHiefrbnPrvCmiKIFjDum0// rtCU9shjjhg7+5JAGsnH5l4itkJB11xXnLigv7UA5AuAl6x2PaSR4vdr5cTftFH7NdrKNM7wvVZK FLVc6003wgMltiQVOoc5weWs7RTcwj4mpPfPjPFPB6qTIdybCvNY+SDmMe5qmgAg8m+/cl0O/XUA 2fQ0gt1es7VkGu8JaLumqkMrt+Le0k/nXviaNFXc+jN+/ouf4K/+/N/i//6PX0K1+r5KaODJBPFS oxWgOLOQSY6l1KJvqV1eDGrujku96UjRBUFzF5ku4tlqyJA5PiiFUy+QIla5VgFLT5cuaPF1CL95 ITM5WCBGGORtEdFRqbdcLEtH7J29EWtKFwsYEzNcsVpsgaWstIDcWuzwWxGvK1h/XEqHlobCGAM0 11gUdH9mtdqY5YB/C8hIdhfs4Pn57Z10Dn2fRCzd5oRZiXYYw0hXnvm8SalGnP2s0y2FRNsECKYH teeKZHhM23OR6jTDCkgpBrMqIlZMjcComsvUQiuqm+nva/SsE75XSib+CnceDeFdZdai9d5NQEQS osmQp6rXcMtflXJwmaxJqx5+vGmc0HqRCaGXXKapDi7XPZIGbDTfGVZ+Ps97XaNkaUAJ5j4u5FJM Lk3zWrOuAPA0uKNPPhcwQBK89+lbaBjX/jcBafkOtYw6aV4vkE+h8IWxTuwz41u2OFt2oGG5XufA rGUUji2Yf7D0JpMqpPoZD3oxr/HE5C50nIqHmGfGzbQHmXHi3wxkrE7v6LJYjDgYDYJasoXextyf bnjs7/Htd1d85x3wgAa9fgp98wW+xhUqV3NHrKap39+/Os1jclV8YZ8Oa/Kqd+RwFtZnlBmUnK7v gh4DT3TE06ztcB7uMqvWqog5Sq17yEaakOjcmWXoQ5n/18CXn+UYK5y8w3d9rvNax8ua/9fAs/YV HjR9vh8gg06v3iNnGv51nB1tWmOfLuvDE/vdu11S3TOkYFw0zKZRvEIrGei1YiJk9sMsMqRrJaHx 5ympAECfTH49LuN42pQG2wIX1u+i8WcKRXsgYgS4eLK8b0OXgDWpNrYLGxuTtA/0aeQl3KdNHus9 CT705Vp8+84ac9NHekWlOWm8n+G1gquDWIxYhWGiHPPftVkwwpKXfRyw2X0jr5EvztTfrG2hBYhB ozrdLKZVsP3UAjw/v8dH797i9372Y/yn//AXqOViF0Rh4CWMVyrivtCmzQomhVpgYDpkZHkKZBRA QrdLR8y8Tj97Sz2a9jXm2q1Sp87uBGNtbB0uYsSgh0ZiCIwZX0JjB43sHr4qzn0a09/7beTNHjTF C1Oxyisv92GaZk59Pg/tkPLgAcd0QUvua9SIJncgy9hVIbgZblYS3jYYxwmna+CbyLCe2Icp7SfH E3dr6gIpJgTWMgTQphqaE7jmrpSLn5VLnDwpxdNUi3Otw5efQiZAvnVoyC5SIL3gKqYx7ok2wLXH QV84lUTq4uJxnAIGHZPeBs75GnC/mdYRGHd8ZIvg425BEBjNG8z7iVmY8EhgyPCpDxjIXKbsHcli KcBcn4TH1fu37E0pi5EMRcHBRcfHZgrlQ10Vf7/Fpe0F02oNnBKlEGPzUbfc8QTZ2hfHqHlNKuqg cImR6sVwvnq2k74IVXk9SQOrmfam73OMGz/L9EAkzdPVTvblkWkyoYTxHs5UB4M65zevxa03ZGLV GfAyw9cC3p5g8wxmEFeGFF/XFnvW0Gw/CEvgkBXV6+oKk8EM+Fl34bmagqWZDipgyIoAdWaIAnf8 jWbP+pr1fkPpN7MueEKDhoZLf8a7/iV++PkbvL18DWkV9d038XT5DK08omFU2yZecA2jOKTjtUhF T5bcY3Peod+Czs+4cj92gG1lWFfGznDAYLoFM5mVU65sSPUHrDDkfP8MfMMEb4zHuhRNYz9G3XYA ndFMs3uNCYm0Cnu/MuoDUyk78vHPcz8TsPn92efhZruuM2FDA6AWt9VGP1EvQEmzTWg6W3uur7IQ lcyWq9EzFQmzi1C4YpKhzdkr1eOwwp4w3msu1CYKFU8Yb2fCoxTb13UV7e4suOQJbTWuSVqzgjnH xd5JHwSW0lUH3EwET1F43maG0onMHQ3Qcezx+5oykJCuCzLmEBRq2+9+rkPDsmrZ6Md4XNsZkSZY CjW5x+8PvyuJxAzTvYNzT4Ch4CHLBde7Dh/YjMAbTVpuGZZ7+3fEw9dJ9gFz7fi9n/8E//pP/wrP XzXU+gCTSwczKSEEKph9hQW9Bq9jN5B0I15AYkhbH/tJuFXHBax8vwQ/HusjdnuMGJK03hRSfDSa mwNLEr6UJAuRoel02XKzqvFzwnCGtP4N6PBKs/RLVofVyMzFayhIp3BjGXfIxIsLGVx7Fi8xP6Zm Fz6uBqvHDQTD7wKRFEVVcx0wxtBxXhsUJQJe5wvTGXkQVwVS7WJK3iTBXGJ6zlIqXlKRlFx12Biu gkK//1LiOUUzJppp6mCMtclWDVBF8qAZDJ9i0oKrqi0b905nhjDo6no2OwUsBE7kk5GVJGsKF0mX 1/T5dLS6bR8GzmSmdJ7a/TM5nQvZ0Osc+M11Ocxj7q+44EFFRzCY6fm1aFTg2zkJHGfibB6Jjtu+ +9jLnM5o26TMEEmMuUzf5zHsd+/AlTPHoNyhGPCRDOf5V7IyTALeCrOe75eIWzow7lDSIe3dzshC W+7dN/v18jWTeWxUxtrcDv2O37muwHAFcvrx/GTKIU8Faq67Da3dUPUJ37x2/Na7Cx6KoF4/xvPj Z/iqvEE+xaoaikLALZhwa2F65tiGO1AIXm7li6ruoFKHz7x8X+/WL/5OdLLKHOtI4S3v59qiUrYz u4cZJZ4m/xRBWMSoeAQwFAHeppz7pGGLYLzCO8Z43Zrs+smwTvwojKaz71xNmfQl3rUDMM19hvV1 LQs2IVTBLchlpgt9UyyZAimVkq/lg1faNJ0l39dLcUS8BcfJn0s+MGBc9pAU2kcpUGKheUlmwqau I0BitgAs/vbHS4OmuJXBzj5wOyJR1Ar7DF9yABAUGdIcNVZD2wuIsAhMIogHmDJjMiRdMiDw+cew +ACEkZ4CsGZz3XqpmnBERv08mC63Kap92gfLGz8Ev9vwsxVBKa4B3s1d5ABn3ktK4GTqo2quCNA7 LpfL5J5F3/24oPQ8iFtEgAo86TO++M6n+L0/+An+7b/+X4B+RdEHy5sr1S4Fh7co0IsEseraUVGC GWu9hcbMmOHhzjFcSgjRSAWbGd3IvR/rZVVMAaYD7SPrgA6XlIsMM61dRC3GGUIH7Htn0AdEJghK N4Y+3HrU9ycuG/rhC6rCs2tVqLSYmkA8LsC1ir2EBpCZGShsqMMzwUhcZfGo4N1ceBBzK5qINXoQ BBEkbZzNcjwHlMt85lVdS5lrU4hbbMBAXrgLULrI7cOgZuLADUGjehB1i/Ur6mTMXV167+aSlOjK zNBp+mn7S7Swgmsa+Z9HS5JCV8sKMbiPNHcL/Lb5unSontXGRnRN+fg5NY+lKXUWiBirQE18FlYm OpMYaVmYKKCjoPqGzRcStfcHSy0ZTh9Xi+Km1KL6+2JxBNFfZ9A4WxuI6evOoO/5DAGQPtHB7q5l wwpGJrXAC4cAQGSZSlh4oFHG9Hg8hh7xNdbb/2V/fhO8nS4XiexolCEruD7zjubg9pb643SHUqwP q9PhXtHIdhRMm481skUNAcQEc59/3EPDyqgy4F5bnBPtAGs5hHAiwSCZ4gJuZZ2ZW8YdqXZ3WRy4 drvdgN5Q0PHY3+PHHwm+++CvvPkE7fEzvC9v0VQsDm3ZI+I7C+upkkRtOLWJ+XdBqg+FGplh8wSY lYV5vLm4pytIRLFznenruSTt4dWSzmqgoAzLcUueBtnQvtIxfsZNVHC84zoYviQLqi6udaqhUCnS J9yUBSf/qUJA0xtEarJIuTCX1xoALZPjHIxbNSu+JyE5FdQSavCjjfdnRtyeaatiJmq1FLQ23HDt xYJeXLB3uPPa7hh981BtE0jG68wumIVfLB61W8Z6p+2QBRD+u5QyAqxwJDL5XWBcNIAdkN77HgGX 9hKCmPR9vGTW33O1yKP2MWmspsv9+PxOq3M25v12hHmFK8O3G+/s+bXfXT/r3HJfKx6cjbHLcmRM 2SB+rKx5XF9F9q+8Nw8e9HKt+MUf/wzXt5Y+VcgYkenMe6Mw7aq6Zcp/F1ULrm09/g4hCO5gwTVS TP8AO1BVFLXzc8uhX9R8qWvSVl6Lh3xGYCHcBGk5rEXmc7liekF2AUIwrfG8w1VgBExEcBUT2gkf i+bQX1a6omqPnyOozuAq7A/DzYVBsqVcEv5U/9sy6JRyiX+1XqNKbpcCVPsc5QqUB/95hcoFUu1v KReUekWpj5ALn7N/KldIfbTvyoNV8C0XE/zKQ8Ahns5TxNw/BF5sCWT9zZYianPWZm4E2m7G/BFH ijGGgUNxqfVI4bvSncBf9rGcV3FXh7Vq7QgC1IFrKxM+BYr1pIxZaUNH8X+ZWRnBif1Iy9qR6Thr ih1TNHByZJzq6ff5mXhWZ5o89ZdpMJIZHQgX0xIuIa9r9+g1+n7O6/2YY0DW73LbrSEVXGQ0LsmK tbpBrWMG/MCWTq9zfO5timVbq8mve7H7LM9xBGQn9zF+nzTCR+Xe8a40JVObg1wPz1Aw6PE84Ixc VxTtgDazIvQG3G649ie8wxN++OkVb9p7yMPHkI+/g6/wiGc8QoMhN8q23nkR5yjr/pISDnhXxVfs VYqV3PFQ/G6HL5Ft0L9rrR2e3/IGJDsyu0uf8U3rnM/4g/zsSzza2Xiv4U9+k3aGbzu+RTafr3zp +lm8uzknZ21du3XM3gBs9vmsr7P57b47wzVgqQRsfm7eATUqEf29+C5FVPqiuvJqfpqlc8AlvoKD FjlLKEnCGeOMTeg6p6+7JyHGGNLBYk5ZwoS7QdSyMLcn+BhmIhwXnma+LQwy/31PiMptzh8MrD6E 1ocAzOKyZP5AZ5aH/aW8ji06XF20eNAdA5dhbiszAzDCRgnnCj8L+Nh7IyAUKKj1it6HFnzul6no Rp8UJg9aNgani+BZn/G9H30Hv//Ln+Cv/+zfW/CjrwON5AwOncaMw2nzMWINMOOCSckl8JA4SU2Z EjJ3wVEAQ6XreZZjUNfYS/dAPNs2E1jKsJwVRDyN4dwI2hsEbFz8zCFUkIKFiA/OGFqmDBbG85zF gBcToRCioAlKu9VC6LihSPX51dCGBWx0qQKQC17Z0s7aLfrXu5qVi2W2LjEoGA9CcMT33T4za0nX WcCUUqJK6ry/QzOWHMEh4hocZb8m+EVq035zN59NFdfQRnpfCssmlfYyrEJxZCUqOYoIqgeVk0QY 6jn9AwIX4XBW0H+6R/pNZAYjgTesnN1NzQBkrh9C57YWNMnoSDVpL1S2FiAuhgvikKaEBtNe+doT J1m9VsR9qz31x6AHR8apQCKzU045OdaeAnnnZP19m3PY5ZRBu9zrW4ILyG5s4/xLWF8ZSRE+zY4n LTRojvvRT4n3VEbsA8/r0XI4YulEYO5sMBogCvTCPZZIHXzrHZcUh0H8m3CRMXaBeLMQpaqjHsai oJnWJ32WlXsAcTX5RcNd6ErxyrGsRzHWln1x/zh+nNVUUVxIFNEhKm7xoBLGaK6Q9mpDJY3uishA dmv2r3VcVfFw+xLffVvw7TeKBzTgzbfw/voNPJc3loCh0yI87O7Kf5nvcQuIRtqVsZ82R67bKJZl z9ISwPN2xkSP/ijQ27IwXuUo1O4E8yxecx+m55NQeyYwTkyuOqyOi609b9+J91wJYRYwDKK8wJxX z/BhH7v4Ic3Oqc15ypKoCiZ6WPm4wO/Wna76fRr1ZNphjHDtBU4crEYbAiWQE1NEDF7AYzyzdEvx Ya78w2LMNVmFdo5BRR/5teNzM36FBUCWAfj5DPze3SZSUC2IlLW66+Ktbf3sN3lmp/1Yx9c+M+Cv lUArTeSb9VlNcy/1+5qxd32vbSfRrt99SDtb31tOd7p8fzaHM+lUFleJnYYHgPtMzkTyBOpx6WrD m48e8Mtf/Qz1EYA845KKxkQ/PCg6tOgCS7lpGmCENq9Q4w8ArQeuX1Rw8fLhg5wTeDIz8EvLHR6S PEimSNyflu51ZApUddI8rufOrAZm5bCc+CNGoxRnBPptcl+LM07BwX9WkdBjibbppxU3UcBN6WYp MB9+0/j5/jmsvCh2uCCik8/qUYNSAkfM6aeCmvvQ4MOZ0iW2h7SG/soCI67F945ClYkYGvPi74U4 0bvPxfBEYe4DZvnosLoNLeY8K0XmvdqdpywQ2btH3M7nWnXEMU3aXtWDhbWKWV75/uzCt7ro2U9a anfP8HysfeVndzFh6zgTHMjzny/VcLshXiaae6DjvI885/sZI/KalveDY1WHmWtzNrd7bZfxbYcb awzDChfPFFMl53tXRMxv3l7YwhG0VrDNQnTvXr2nZIt18a875jXKbh/rv13LdQzIKE/PRgIAo3tF u1chJg6QFjU/12bJq+0J725f4fsfVXx8LajXB+jbL/BleYebPKIfUi2Vw9gfoqlecfUen/Ihfeb3 V4+FXUsqKCust/Bpa9/0vNg14s+98XJ/rzkf23tCj2fmN2nVzy7hWcfZ8Uw7i22OYVj7sM8KPqS2 w2rhjb66WNG1yWp5n36c8deqGl4V63zXdmFUe2usObgQCXEJNHU+AUNFDL/3MsbMvmEC3XAHWsEI Hz/PAzs0e8MHNU94ELlZk3LWzDfegvqorWmuCYwLVQEGhlCTeiCKei7jbccPCwo1GhjzF4m1zhr+ HcFh5cwIQpTu0ivrE1jU+mquowqPWYnIPOmJWXzKytjNF5u9ZWQbsBHxZkKUg3ft85H2cp6XPds7 UGuKD1Dug/fB2Ui23szr3b1yporg/e3X+MGPv4uf/8G/wN/8m7+1WJBeUVDN707VL0zPsW+2Kjsk pnYzDQe13OpZf1BRS4Gie6Ea16GKqzfUspFIdQIIgWrWaBQXArpXX6YfIi//glHwowEMhIVMuDdb IZYz0duEo1UKmjaKH64xow/+YCJU6fPr46iG9pNBUrV4HYyoTGzDiufNtlJ9S8QAACAASURBVGJg fiopYMSZ973tDZBqe8BnMM4WZxmuRRhnq8T3PohkpskFM+s29QLQR5UMVMzZj2TgtQ6/TIOrxoVk 6O6ZM1RhW290rnr+/8wJq2oqLMYxqA1PeePFtLuMCaGWk7RtxORQykznLPaYglfFoF6uw1RFaMqp iBNqjxIcLnxGYIOPTlyMKsB5PpHRpXhlWVqrTIPGTDHeFcBKzEp6e7zccr/cm/xdXjeeI6Aip+dU z0Bla1QjX3dmVrnf/HxOMtZRSoUVSPA9SjBS829W0Qz98BEvWqxGhKkVxjKku6wki0UuJqn0BVam Hzb3LNZtiHtQ05yWyz2sk8UsioqhbbeifmXY+4pnGaEFw/uMMkUu7N2U2cWG5UXF8QkJzyIDE8yG IjICuMF74+S+SjheIo7H5yfWY3EaYJpOVyj0GwBzY+zaIL1D27MJANJxRcc35Bnff/sRRBrawzv0 t9/Ac/kEt25BxwgZSty7YWS9WhmtLLiPO3vEbRnPkZlp2hSAnKAgZwXM9/2OWRvfzxZ1frfyIAdL Oes4JXdY0p/ZZdD5DcKQPEBmWEaMSowhAvV1uScikH7Z806xPOV4cVoBoVswe3pBMEh1Cnj2LbXm 4FcARBFK8eyVxnMmgcDhyoqPmNtCg4ZCMQfi9OXn+Nyv2Hif4/G+zS1iPtZ9XVyEVr6shdvzbEHK 4mCeQ+GkqG3JvvhnUvCqkbmnJVhb7mP3fv6cxGcn5ax9viSVWiHQdZGPc8vzO2t5wXfz2cGXJbJ1 vBWWte0sDOxj3Yv83b3x7rVpDMFW8n9Jm7M+n7UL+d01L+3ob/at3A/g33vgp6KjtRvkCvzhn/wC 5WpaRrs73MfW/Wzt8hh+/sbTub+77xU18zTo83lq4qidq26FoPY5vnOfcsD6qTDNotUgGL7axlBw H4d2GcDQ8nmLmAAxX+5gYIKAeapNGE2qycc9u7edBrYL/cCHtYNjmqnd1o1zp097733EG7D/3kNT XdAtfWbyP+f8ornFYo0xyDAHRnjsAroVKYuifGi2Bv3mvvw6tOXdNcY9+/Sbj7+qxn7coydE15Vm zc8cteX5mXxubC3b0M5hCCw+UQy3geP7/HvQtnNawT2b3l+sGKs1l9ahvCZZU7+2mLOaH/ukBWdi BN3PZ12ns+fs92oaM+zp49l76x6v+2jnSVcdw6F/09rptF7rxczc3mxFhol+R/+2a6k9CkeuTAnK cE8LbElCBoWAPMZqbTjH81Wxs1jZ+F2RAV8pnnFrzK9hvJtb3Ju63GMLHPP+GENYZaT9Xeci3a12 4jS5N1yfv8b3rh3fqB2lvkH55Jv4Wt7gWa7QUqc9yv3tNMLrHTi3mTmzn8cYGvIDZ/3u/l7hW8fJ /bx016/nin/XWqe7ZNcOVp7N7zv+aDeH9f2zffjQJs5pr3jH33Zw3eNn8n4dv+TZ2sO645nW8Xc8 3Ei3e97f2u7xY2Nv5v265D9IZMiUALOWY1vwS4Y0bF+u4cQ+oQDA+1KThkYMuC3wkFOK+8yeEI6l siE75tiN+Vzp7drdRCgpOwp/Clzjdxxn11ZEZ/+5icwS/m5z7Lv9mOsFFiu1ZJMAK70t2Y2Y45qX ALP8nAlrcZHFB+NzVU0xIRrwWFtdC2b4bGtMG0iJ3s6nPSuef1hd01pc803mNkZR06obHrmG1bUs xMsqBVqBp9t7fO+H38FPf/4j/M1f/B2KVjQR1JzYqpv/cvVJN79Q1IsjXcTTaIplCBJxP3sS2rSE dnExHaW4xjt6952w/ZOOyD3fnOmkZkZC4zdFH/ic/UXTKZq1Iu2T5Tvukb0jN2O7W/wemlsSnYzH WiLlbjCMPt+JCVAOQ6EIgAsNE/Ok6Zy5f5Whku2jxUN4mk23LMCFJ7rZap4oaA0YHfd4LqUnBK0w JgQqeCZXppKVP903H8BU3OfgMlHG//WoAQvxVWkh8iJFnIWM/oufl1jThO/qa10xYnwMvj3DSMtZ TvuZ6UkFq4dK7Cl3ATDhyvzl0x4K6CQ16BmznfVBB1QxcIjn+OIVpA80r054pAw2sG+DybVOxtgj Tfb+ghOFV/j1tIsAcro/9G4ZouBngDx0nAFbr1pWejb7U3OtGd9gcTyKYZFyS48X1Iu84j4/gLgx 3xdF3QJVLlAkxl7VXA/dzUeKoKGjuKXRzuocT4GAet+MvtDyNXzLiT9Wb2ICOS200zGQftt6zBXq eQglaFiMDQo2OhmcWrLdqWqkf+3aEO5A6sr6FEwebpDNFWxUTLQOvd0gz89402/4wbuKLypQ33yK 28MXuMkVt6AfXj0edu7i3naIdgLMYU09fsN7HMuVLG1KOg5g3Z8dY2hnhHhFBeLMuMeIizBUpj5k WItpjQ1+jzFdQznXiQMY9IH0bGTtMfpclPEE58y6zU3mcx8KBh7sNNhdN5j9+vEdCigl1pLrQsGA N8ORx9oLYQOWHJcYWTNfsFCsaVRFqETy+y/zbItAN8VHcl8XHvzIy7kA7mm81T0NaioQaPzWjCfx 5Uu+Q7uDoLADvANqx9SuvmarOXA1vb3UjszyAp8zATnbTPZvPWg1Xjjsu/5XBn+nvdpJyPfmwr9X TUf+LCNp3q97e/Ch89v54q7/zto674xjeY9XwrDOZ50/W2i0Ot14jCmrD4I//i/+EI8fVWhtuFx8 DjrWoybDGy0B1ZkQUeACllXqnhWop2cx/NmpCXRtamQKYsAmx+x+QaXsQ1l4Dq25EyvmqrmI5eff xdrUdGlutSr8Tgetqt7XTgtSN3jKlgOKDL7ZsBi6kDN06Mmq0m0d0BV6M029WUVMI25uQg2l2z9t tgfab8bw9DGnkv5lvDI8OwuCn8/MegGHRmiZy4q3+dnDeRBmFTqeFTLU6z6tMOX+8z6tdOGMTpK2 2aU4Psvz4VrkmAKegQxTKSW0+GcxBVnjfHT7G+u006gd5pj2lJ8NeGSyVgOYtKo5U1D0eUKnjnAf 17KGoJb8r1fhzwWi3m+Te6lDNz2XLdvrxb+u57pfsy/3UcO8/i0iYFHKw5yxYbFOLM4Z/mA005Jm /B5wjD050I8Ff+2zlB64G/PPdZRCBZIxUgFZ93iS3ozmOh2W1nG9vcdHeI/vvbviEQo8foqn+jFu sMxgmW/h3Hf3zEuNLheaXA65xq/uI63D7kzns3MvNnDX5+7zDCd/5zlvu7OyuA+f3c8ADp4DK26c 8g0fkLlr19bV3vFlu/YanmjH573mndwy77N7dv0u/ladvAvOYNrtCfm39e4SkVEJuIsMX0GlhBDq Nz98TnSBhQjBNOh+KO0i99+Xw6SuruuenQdd0BsmE7YR8JEhYEVWWxBWGp6zo4x3jr504lTDPnfN mmPMrcMh5nz8HS6WLodlwYH1IO2Y2XXDdt+PxgvjMl9sogY3/VxlSLkBgyZNRBHToujMMJy1A/NW qLtGzFttMO/rJUJJ37dUSVQElEA11nW26GS8UdWQ7OvZWJL2TgRP+h7f+/F38NNf/g7+5i//PUQv 0CaQWg13hQdh4InBZ0z7RQStd8tIIob/ioEwol6kCP45AAjQUdyvG144hgdYXJvs7jlqFUdHoBKs gL0LCkUso4Y4HIbbCkQBK/cP1GLMCWL6hh/obn6vbhUYOBE+4IFPfh5cE24uH+LnXQIvhOMA4SYh Ip59Z96v2BZdGc5YKn/WXZ60mxXBA/jcC98ZAWeYoehq/uglRhyVUEONpCVcLUCmTOx78Z9F3bea nIRi0sAXDGVBLqg2cMWyS1TSS6FARh9UOyhjjiXmbRDoxHAST7hWFxnKklIKmAfe1iO7TJhgSjed YKqCYe08sJBClcfYn0uZ5xWMfuCm6wGJQr7+q5cvM9EwpivPBUKdW3re4yjom8yQAWrExmle7hrv pvu8ItNZKlwYNLCr3VuEQUb+74OA5f+dlagUEVzFgvRaa1CxPbZ3x101FYPUYhYghWWacfi09EPa 7bC0h4b1WIcHGC5MIu6Dn1ZqXfOuezcCzhfda5jwPiGzXsZ+HVYjCumVBQdmpUFJtKIj5TV33+Yq dL2ROM8qZvm194tlMoHhMi2xCLpHIdqtGQAU3ZQFvaE931DbEx5vX+Pbbwo+fws8XC9obz/Hr/EW N68TdJFzBl0XXNkzifn9FufdzifQewv6an0OQdF+rl4VK5O98AoWQOP7WtAPvuabXtToou0Bqab9 rLK4J6c7Gj4Cxmv+SLGMXokniqJ1XcNqyv11kINnU9IjSVLCyvgnn/657fcrW54r8SqBnXnD17Tu HhMZHuLhVNzsTHBIMTFnTVVHJXfuh58HVnI22pe9H/b9sPH97ffGiMFvN97d50h+T3JatTqZ+d35 e699njONJfrI40zEDbOks+tzJ0mvz+d+zjZyBzswMzarZJs/27V74+3WeWR3Wc1JWevoxKd/yFq/ 3DI8OzenrNk6a/yOhCYTnDMN0z1YzjQPItRgd6sL8CD4l//VH+PhTUFr7+2Sac+DyeahK8ZE8zNq P8lUhbZahw8vgGQJwHCVSnBR0x3z0uHrL/69JQDuIdwU9Kl/MnVFPOsQxOoJEM5l3bLWaWIypAdR EuzPVYYvsrxgg/e8K3zNpv0L5mc8pzr8+nM+fbqR0CKR+40EcV51Vz2jxzY2oI89MuGuOyNlGXtm vCHu7dOoZW197GP6nmt9OOf9SI/s+zbtzbSOMjS8O3q1am/GHI4atTyuXawtcuLHZ12nuXAdwv0y acF311bRcnL9UviZzdmG5xWSL8ElsxVpyH0mazxLnCaj1SPV4txvkZHJh23a05Pvzj5TFgwCwud9 R6d6vzkeISwYu7N5dned0eyze2WtEbCD695dNI9VgHrfEp5puejxc57r8cWIYQnc4hr4I7xXsrUH mOOd7PfuAi8wYoksyQTrmGi/obdniDZcbs/49PnX+P4b4O3lAQ/vPsPX+oin8hgC2dn81nV8zX29 uvvseKSVH7nHC+S1em3b8Q9n+3g8b3sL2Ljn3c3mFRaieXxqD/bP/CZtywv0o5U1PyvL82f8xArn 7jy8dKZ2jH+mi2s/K5+5g3HNuHYPPzOtnD+fadeFgw3JwbWDBCJVarOKlzOB4nfrwvNqoVScJyUC aHcfu+IXcc9+kWW6gbKf95gJo5v37bipbnIFsxTZdx2zxDuqbRrMTdvIYLRuliVQ9wt3+Pz6DKY5 Hz3XjlHiwNAsUnbNF3XgOeMZkJHJBScxzUNJuiyRaswW5DQL0KGRuruLLjUxhKe4P7qqOhKcb4bB zzXeZzkYBR/53RypQaaPlioE+9uNMZ8sIYZjz8/v8f0ffAu//wc/wb/50782DVJ5cHycGSs4Aw5N ATjqAkEpaIrQMllqY/cHLDW0D8bwaEjZAEzrqqb1iJy+vYOa/CJwv3S4Xy6vOsQsR1aNsQdQoHTT mtEfMROqoZWcL1f6UMduuUY315EQpwNx/4aObRYYQnuhY5/E8W9ttBhYrv10ljUpgTLfwP2tJH5i GsKgSwB0xuXQAGFo1GNffFv6BFwORi6ehr9FVV/CZPE1dCGzjqKasvLSZyVUjfXmQgvnqRoa8iIX NGovRSDh8en9BW3hGktYTSACViZea5BEzAb/DhpEv2YTAprQumJYFW5CIP64VdWXy3yFCfvIr0+c 5KbHpdMbOoOAiS9JAOXPbMGENqzZgQg/98eK4wEdPTLbGH2zeAPLfDOqmp9dklUS3VeE1pIt20pM CDfcUM47BJyxDmaZGb76jMfgO9F3Egq4U4SlU5GTFCs7pm4wm6tirA24vLaAm0CmsW+9B+7EOUlz ZmwWaHEoU8mgqHwqUi1eqo+9zWeMbIjC48ECavg5EpTLuJ84Di12D7VaDQcYGhXJApQC/Qa6CkpT 9NsT0J4guOGxf43v4B/xO598E1of8Xz9HLfLG1hlePEMUcXrD+W1nfOn2313rMPD/cnvgRFKumi6 ufehYa9xLuc2xxEc8rirRJ+qx7t8J/zFGQr4EMoXWvSZHz/6yXyLDpe6sQZhsguBl+AdTlItVkdS KlRvE1xDX0nFAy0Oi2tbRLdnzbqA+apYbyDHYYiYdwnpjx3zcQ5UM78xt+BHZJxvW7blvG1jb2bt /zivjrMY55pOxhm3WoJJLjXqwHDEGPtEabLuk3B9fF0GnEDZSYKsrNcXZjEuRZxLTXxuRcRdRP08 7r4aIfDhUvA6Tv57t1j3pFHxy+5YAfB42NbPX9IarJmBzt7J2pOdluelObykXbvXdhfogRieOn3f l1KztnD9bGh30mFIwueuX1UNLT6JG67AH/yrX+DtJw9o8oxSxP3FRyabLAQIliqcQPRZRUa6TDUm Ivu9Zw11+Lp715F9iO4bZAj9nVGJ2J/XzPyMOUcN2zT/i5QtPoj3E0V0aOlAZlCHZQBK4cVbynLC cWti3nOuZf6dtfx5P7k3Bh+muWYrybrXI9gUs3axL3uX9oCaoHwO+VzFHDeRG+d3OEvdLsAC20dm yyjLVVcdR5g7PtPW9QxnWPhcdbyIdZFUn2E98/7cqo0bZ8TO0Ep34wwnvFjnOz5b6L/u96iUEus2 WZGQlUJzDMKRhs37tY5rP6l1PgYJ3qOBK93Pe1LjHxmQc7/tHXN11lYNXn5/N898J8a+b+IspmcK triV10Ix40i2Juf+GPSZ4VnhXWHR5dnpubLHqaDLfFdg9HXJj25nSdH7zTswhV+V4soeDwIWRCyR aDNFjnaU2zOuty/xw48KvlEV9fEzPF0/Q8Nlw7QdG3HkNXfna+7f/Ps/5R7e4dW9drbfnFMU60Sd GNbj+FabZdJI3+HL1jmPwqCvh53twCfpMZf+bvzW2ot785p+Pny/Xkc/dnTgtiq10vhnvKGIbPnr M9jz95cgPHzBiUpV86tU1UmDIcmPS2RoftYBqlDCo3anJN5C3F9UwrdVWZ0Q5h9u/ZfgSWS1f6yL hOE/mjOBhLzj8DaF6zNdA7xIgDRX0yLCQDO11Z7H3UiPxQDaf84xxPreaRVWhjjmx/ztHpvB1zos L3uJCyzVc1CNw5JdKgCYVK7jkldJzCeQiqMMidqyCRGosUduyonnVtiRv9acmzcRWmo6t5YEk6qF zLfkip8zOY/KnVCodHx1+xrf//H38cd/8kv82f/wl4A+W9VWz1YlUqlrAbPsdFWIVrtcUpaCrg5K GVoeYNS4aP5cQCJA7yRAzddAgGbBbaUIxoKaT6V5kds4gpRPPjQ2Y/3yShUqTuKy8noDtkrTJcYs 4NlEqDoyjwjMQqIwzYFh3JhaOImofV/F8JLMWVVFE/fB3uzmCrvqUofAPvS4D6sGWtT3PBxKnfn0 c5rnnoPPDql/k7ZF0rujn4FNaghul5/6iKrTuZeM744qxetFBBwJhpH1CYAIut5QUOLyHVV8JbT5 1nrAbnQVEZTLZ+aZDj9+yyfNSqvN97N6HIsBPXoZloK12ef2DJHiEp+ZlSBX8uxeFyNwWDCK4TFd JM32Yho9ZqDi+ovHfwh6Gj+tJgVl8H4RiJSoEE4mkb7U1fewLgwn7zhVsYQCGOfW9tDg597x/qgp +0hmbmNPhPgy+/T3hV5GPn3wrhXHNRzmzSw4zGhlVm32Z+uYmWw+b/ej/81c98o8TJdYc5wwTQZL T7+Lz2UoFEyb7m6eXG+fp/r4VonY72xwXdP6GVc/4X9xIa0A0G78hWq3+Kh+A+mxqqJ0xaU94U17 jx9+9gZva4F89Dn+c3mHJ1xsj30NhAkRklA41jGv+rnlXDVTxzXfO/PN89mXGPhV6aoxtwEXdyDD 4P0KnzoKDMZvAK2lGgJhnyHvke+QdZ6pLoUAZhHb838D/j3TS8tGubOu7Escb+zeSDE2ZV6XDLcV iyvBL6yN9a92MO7gXWFiJrCV6p73ceSLSileE+j+eHZe/fdlW8j4X4tZlOi9IH3gpPGBjg8CIN0j W1FlADG7FhBJVo1UZuZeavmZWVJh9Py5j1wwMBvJk8z/Tqu+jnuGlP8c7R7y755ZtScfKq3ek3Cz FmP3ec4J+5q27kM+cK+VkvNzFIC2WQ0m2PoBD0Kje3ZZqaL3hqY3PMsz/ui//iN88a1Poe1rCziF 4lLNmYDBppO2WyTcZiZNM+MBArSBozVp5u2cLH7RatOqtYY23g7h+AkMjda25ZiCBW9W/DCf+I0l RclUpeUWmbTjaF6UxefXkw90rINiWjNgXOTcl/VnfifDEtp0ZpmhNj1pyfn3i1odHf0GrixxBwC2 WtO8H/m5M5oxFCNjXuMS4toMoUdExt7quRZNMGjabm93Z5ptR1/WZ9c1zM9t3y/2T0QhlzrFLlTR iSas67tdt3SOxM/aOva6L/6iW7bKdl2Aoewx/BVkK8EKF8ejT/vZWq1trRC6pd9FLKA2MyZ3aHVe /2wFWp8LRvcVzMcAJQk7GzoOANdapzUK4cPyFh+sTVQarPiSg0AP6+eKPohsYinS3YC0t8WUJSZc dhNiRTzA1v+1Z7MWtI5ye8Kb97/Gd98IvvnuLT766GM8l4/whDdQXPzdl11hx56eaYH3bkH5blXV g5veh7YcO7cb60DbdfO5z3nSFMtMT+7yQRvrQKZzmVfbr8lc3+S1Xh2DV1nuuo1CeDf+GTyvbesZ Gf1tLMUv9LHC8xKfeu/z1WJ2D+ZdX3HO4yUnVnRiMA0FtUZJQiyKhuZZUSztVg42K9UObEdBU/PB ov+Wqr1j6fFkYnKKZ+4YEzDGpfi/XMq6936a+k/EtGNdMOWMtvJA88VsC9Ah2mKcvIi5T6v0miRj pjAMUd9cKTKBXTck/23hTAqp5q1/dgAHsggOGQEAs8g0hOmd7lt5P1Z/ujy/0c8YczIFS/d/pqE6 XnxmGjQmc2gWDsxE5AWj5aGg96EJMP9AmZ9Pbb4kNPYtz2VeQ0EpFVqAp9tX+OyLd/ijP/k5FM+A PluKud6ioMxg5AoyYR8HRULwBRKTUTHjv8KDdoHeDder6ByQs2HugzBLXzKp2JyJ61Xg/pmmASOj GMHLE7wC0RJna03ZZ6vEXNqI8Qs6zHWbWoLkYsDnzZ/J18zwBGXojS0zjWWoqTJcnegmNP5Zf1Zg TGN+BQow0LDzd43AytFXfsfWx/4NdxQKE0DSmis8tSuFlxHkNuAnHJ5iUPu0ruKZZnI64dWFx9xW ergtmGYUME1hOn/+L/6WFNifhMch+JbJzeooWDFtrY/DCrsHpsx2gYHY8/zmS4QUWbugyGViCriX GbfY6G40418zRm5Z9+ySpmo4lq0KK6MfDIWaFoz5yrOL1iQMiliudx+Vv49+PQ2tAeBa57Gv4epX YTfKKohxnwLMApE6zo+fm+JKiLUF3UzIQOtsuA2KIAdWl5K09+n53KfahRh/F9gdagJKRabfArMA Dxput2dhUWOR6U6Z4Tc857vN/xtP96BxN725RdMswPTHZtrlcCtLd17vN0gFWns2vkQbqtpZiew/ t/f4/PaP+J1PHvH48BZ4/AQ3eUSTy3BbKgKVMvDhwFxzPXrcUfMeZaEy431WKoy7+yVmkfQwN7vT dmMZLcTG7WPXCG8pl7GnbnUUoWXV9kVlzjZT4PeNDCUSeRGzUpLGUEEgB5rRgtcY60geDeWC7qoy 4mhOZDLgXxdnwE/+bAq8LXUScNaW+cc7ziXhtts9/XR2nRxxn+P5Lieu893vYpG4s43GND9LQ1E3 CQz8SfwX42WJkxW0oraAz+Yz6CpZL9IUw3W3BuYFJnF5Sbu0alCm2gF9fjZPKGuN2O+Z5mrXzqTB 1ZVh7WunRbk3xr2/7/nir+/sJLEzrRWf3639qp3baZ1CK7TRbu3WmIzlS229SI7F4E4QN+352V5I 0gLx78N6rpwNjmt29nf+vZUbfvmrX+A7P/gWbvqEWpMPpPTQRlLrTfNzGNZ58QeDNAugWQsSfUnS 7ovE82QUYzwMZiX810Nj7Sl1C2Id+Cv7oWCemXXuleX6TlVEM3O64jowiFqqhryu5bSHaZuOGYEQ c+LfO6MT1zA7MeS/x5znfgymcyvUeqFGv6v7hx4thyvtWs970e7WleParGc1070DDYxXPVvKsj+7 f+tYO6E+x6Zk4Xh31s7oIYX7CIBO46nuU/JOVbI39wbfzy44hZ8lITZiLTY0MrdVqF3vr7isMdPu dR92fQPjHKx0cLfuO1jX/dpZDkTm2JOXmMUVBtXsOjRwimkSVjh678Y8XY6pRlfcpbUnZ4hSVRMC 16w+SeGmy5qvLZ+rcJsSdcWDB3O7opHnvuhQsPHMUpCHWgYg0Wdcn7/Gt+sTfvDpIx4//hy3h0/x jGv4/ltQcYn9uMt3iEKWKZw9f1hjHPfyHt9w7D/ftbMVi7+ve7ATJFaYMu5HML+va3YPWud1jzda 06Lnc5jp0tl9Pac6P3dBmj73lJwvKVxfapmBX2E9ow+e8Bn9zlFd4ZhwovWIB8ztJdzIe7Wrp5Rp TINO+7LSDAC4rAPsCnRtN4PlN22m5CidGA1/rCC+sHSLsdHpIE/jM4vOyR4Wz8dq/er0vEhBI5Ok sAp1yaf04jENXQcnQhg7DxiY/cAJhBOd4tlI3DEZiCj+xXdwjV7frJ193pBZzNX1aT3oQ0u2EoIh fRtB5GFlQani7htjH6hnyW3NxFLAqWq868DFX6oK+s3DpW1dAjqP8x8+7KpH4eSA+w5Yd4i4S/Na 6uF3aHECYWv5tT7ho298jF/9N7/Cf/ef/nu05/cQPIIVp8UlaRGr6EufXyhwKcU1ouq+hX7wFZHz 3/RXQ+sg6hYnz+YCn5v5zHt2gmKBfPSI7RjP2hzsEu+xTiWWRBz3oiKvKlTaeM/XwqoXcg8cr7oC Sp9y9mk5zm1lKzDcDiPPf6746CU8pt2YdvrAEKWsVGrM5cRwy3phFkKSukxCgU76elCeFQoEJfcy mpBZcngDQuKr90rmlmNEgTS9xVg50PFQ9MrnwtGGVpgpL5nty5KewY7oUQAAIABJREFUigMjIoaL RIEgsUugZW/zuRSxKaTNyDSYfdLPvKRc5cSL+ax2wGpgxydMUWvvzHRI1Fw7uEfhU23Ap7XiinJi ZYqRUK/UyexxzDzESueihjdFPGYsUkp6ITlnIOHvqohZrARQbbi62x/Xjlk+Qnuo/i9Zc0lfx8oM gUDbqI5seKdzBiBf51Ksnoukipwidn55jizjl2Nmb6i14hnN7s1GfPIzvlT2BGzc0iXioEwxEDP1 9/OcR1yRi9igFaD6+WeQ6MCj0TSlfOnCNV3uJ9/PcerGuta07tSWN+0R3FzgbpLFrYZkUoPxaei3 Z1R09FuD3G54gOKxf4Xf+ewR33v3Fvr4KX4tn+C5VIs78fugnbhw5b0xLC2TD//LLfc75nbGk4ZW NhQttk7FreENA0+AErFyjNVci9utdgzm598JBao6sQE8u6+eKgymAAgYfvlaBo2VYQ1ho2ts0+wB oAh31RWIVGE6etIkLLIf3y/WXok7J96h1n7vTlWWF1bBZRJQNgs1+FZyWhrrAh0xTYhsjx5DdLLo u49FxMucsG8BPEtbBUZsATId4m1XBg8AWB2A3PG6IPe+j6lu/JGmQ7RIJvw+m5XO2pkk2Npsfj0T VDh+hUxS5ktzWttqIrwnHb7us6NwdS7J5rGPiEvfvh08azqze7CtLbu8nDXmVX9p/XefrXC9vBev 8xucARQ39wJft/f42R/9Hn78e7+N97f/jCLmO0UT2oHmxPJrMDPUvjOYURLB53fEFWaFyT7+oYl3 oh7Zf/zvktYlLA1wxlVbPE+XJI4jQu1P8qfHrHXg57WUg6Z5574hGPCE6wPG39l8akR/XPO7NjMP M67sNB+rBmnFl5JMvvn9MzxamdxVeOQerpYHWg7WsehaJPf+aRaqk/YvYig6GJfALDdnSgOOKbzs ePfmOSgCn6rsLQ45QDCv8bF2Sw+4g+7kCszLTu+sO+yLWXbiHPEMLXua8/yftTyXjBurtnlWnABH 6+U5bVrhj8+Xirq7bDqM8Zn3iAXvxjiEfayDrz8Gbo4KxBuNqsdkxP5z3zOeJdgUOcuIu2Iu2XrW OzJbDCe81DLhUfws+zM8waKJZ8hZyDCYfwCTn3eBuAuuueMZY2MKmd6egd5R+zMenn6Nb1TFD77x GT568w6tvsNTfQvFELipbDujF6/le3Zt8AlHS3zu+/z+PbqP7O5Kpilf92s3l5UvWOs05TN0Ntcd 7/AavmKlMWd9rO3lz5OLy9J/Fr5eaoNFv/PMHT7unvsQn8t4tosnexWcJ2u324N7MKx/X4akTmnV GTpTE0Cp9QEdAFsMTiYekjQogGlPUr53VUVPEdvG7HRTdAThcxNWZK0hUlqXvcNzz7NugI/rBDIC 5nTWfI3sCMMsgvRJSWMbrM7WCbBDDcteREsCmeugktsNEJHZNQpHIsHnBlLHp0cYtGFIzEPDR430 mLcxhqqeTaK4Ri1JrwdN46KRWNu8mgiLg0G6d1c6XB6pp+HnjNhvEmpbk1kIog2gxN8AxDTu0xgy NLnaFFqL5dh+uOJX/+Uf4R/+9h/w/OXXqOUNFAVVKpp6Ng0Z2nMEHvXwrfWVReuKXj1bjsK0lLpm 90k5xJ2Ba7TUCFyjl+I7YBYGkTLWQpeVV0CF9Qd02pfARfUqmZOmEHEuSzAmI1tNxNg0wy/AjrUJ AtRseqYB9R0oCuk9cucPgTNlasLA4qGJIRo4bqS81IAzM47TAkl4zZgcw42cH1lVw5+3lLoMJIBq MpUn14n82AHDjwzhSlDNOmB43GDavsr855rnbMGBKjLRCsY3KWGezmdiCskc88UOoFsGMMHQiq/N UIT9uPBRuCplWO2SMDeYZQR9FdfG8hm+n/8GBZU49y1W1TxPq8/D6ZzXMxDw/Key9RtyugptiN/Z HwL/ECOLVZl2RJz20+ly8fupp/msDJHdd0P4ADAsE7GlKw1E4CuEigQZcLKeDU1Aaj+DbuYdLRKu iaEphWv8UgyRikA6pkwnXVOWLxmCA+Ou1OvxXOqDu0UehQ74/tnfw52kaZ9iElQSjrCiado/A6jF eZ/m6WeklFmRMe5zftCgz09Af0JFQ+83XNsTPnn+//Cjz97i03ffBK7v8CRv8YwrIDUJM4PGz31n xoo1Eta7eq85DgFvxZfwey/xd25DICzxrGpHF0aIdKe58I0v8Zky05XMZzfDy9o2/Dyy5Indtbsq 5+vcVk8QmfosjmLj/BHU+D2d00Pfscem4Q+BpJPW0XJFNYTxfQWJTqgG/8m7mKcktuOksvBKYnhG 4vY4CDukLYMvoXXGmvMtIVlYjCbPU4yr2NLqtcnCiBnfOSrQZ0VBhj/DnuEaeNAAgdUBmAbcSMX3 JMMNxNv+7sUGrIxwJmxZOp3achFNY+2ex2ypGETp/GDnPnf9rlqEl6Ta0dGHarJL+jdgmbpc/l5h mxH4FTCetCVk79DW9SFs9+DdretrYVz7XrWA7Lv3jo6Gmzzjxz/7MX76i9/Fc/8SkGdAG6oUq7Tr vq4VEplweu+L5j1pfz0N48ULglEznn2hh9bUTLbZIjA0/I6TmrSjZMz8+1gX/47ZghjMyu/yOlYs WgcdlYWLyJzDXcgMFTAANhMgzocXaXWGRUQiBmA6Xw7zuotZqyVYcPUOVdxpPtZ+C+FP+zBlD9Kx 1mvf44LeB9dNmpy03txLVR11AHytgw3lejvLHPuMEfRNQWCsYYN4nwc6rQknUtBsXltg4wJFBt3H z+9cLhYkOMc5kSEbsTz3tFgrHk6wpCXfrWuRYVlaYd69t/t+/bzoEd67Gj2M/dzSJM34S1egeS4r TYrfl3z3k7voymBlmBKOrdb2KQtPuhPjnC5+xme1BfJ4+fOda4Kqonhmm8kyXiTcRtnP7h5a/+Um okHvnJ3z9NMdXa3KsqKbD7W6W2+7QdoN19t7fC4NP/zGZ3jz7jM810/wjAu6u9vZv+TaKkODnv2p pz07abu7bcdLfdg9O9/va98hFKY7PAtJmX7v1ne423zY3b+7v0dLMYByfOcezd4JFttzc6et+/Ca d9Z2j2/bfRefTYz/fRhXuhB87Zmm9YVGRdvZnNe74PicwT3VAcgvDqU2Nf1tEes6ShH0xvzLqx/p 5uLcVYF1rGkcN/kC96SdvGwYcdO2NaAIms4SWGRYiCJHvujUpSkQGhlnHMwiwT54qRL2mTCExI1B YPP8D0LIWQXeqGhHWFaB5Ddwe3H4tPe4FExDQ6uJJi3gkbG41yZtk78gItA+z1mDGoxnszuSiGmR zi8hSrgrBOeWgB2iR/9mQsJTf8LlesG//G9/hb//+7/Hr/+vL3GRj3B7eka5XEAMYb5086dHaGBD q60FCvUqmHZxXSCjUrFnv+GcWG+A/pgdGc8VF6lmng+msXtlWhnnQo8ai0o81Ab171VhPsc+AfFb z5jt4XdpANhJJZYNw4UzEaxgKL5/yWe3h3UQgTjjdQGcoctHftCWbq5Z3a8wrzhOH/BsmeIYtq/2 PsG3Cpbq2iG19OaqKJWWhXQxaoKTeNolLFcZfn7fkyCTVTYCMmbVUEsdKApnrhm2TNlex4BLrolW BJ3tUZUzXCsIrmdtKKVYfY5g+DtAX2AZ1j4KOtT25UrmMs0gNVG3PhHXS6yziMFRxcVCNS0lc4Jb Gxa9wnztiR405v12PGaLugAQr7KZmWKEy8041y3hroQFIluwoVz/4tY4H5O1ZspwAxkaWnapECiU VXSJCxHj0MJqEDedwvzUSwm/3LWt90IRwwsRCStelcRAh8aQglyfNPgD3sH05bEtKQDf7m4lGkAr BQcXIga1tnt+3Pu8g0t8L0XiJzvsrhQJX+2AUehDh64dLJ04Kmt7xdawZPN8Dgax9WdUqGWj68MN EupBq72j6g3X9h4//OwjfP+LT9Gv7/BlecBNL76+mT/gnWH3Y07jPyyQ6329d+2RPM/l+9xW5jb6 cMvPoHclvB+o8Tdhjv03ONUbDnpBcyiUKsB1Jd8jDAk3XivcGhdhc50l15kKDj57sCynv5sqpHuC j3WtUiXfndsyBdrqViBWWh/0OcW3OJ0zi3jHVCDssAF7/kttc8Zj42KJv1UVLKHZpUFVJoUIrYz5 RdJy+0Q9dtXoC78fLKpOAfQTfGXcXaEQEAnhnpF15LdUKXDMO6mNdZwyn+6ncdU45MU4kxbvSR67 vvgZ++zAZCpcx9pp6HZ/W5GebH60nySWO4lyMIUvS5wDIfZWitzOcgu/Vip9SUt173m+Y0zPEGzm OS9zuKfKX+Dgz6ZDqMgwvEarsPfR3Y9lbhwfJvycaR1ULRczAHRRfN2+wrd+8B388l/9Ajd5Qtdn PF4F6D2yuzD//EWGv3zxz6ipHP98vXVo87OGdtKALdsavtTOaGY7j4hEVWJaBHQaS9xEqqFZBjCY r5VhdVjqSh7zujmTKOJZhFwDLPL/s/auTbMkx3nYk9Xznt2zF+z9QhAECeJGgBeQhCASJAHRksMS aYUd/kf8W/5uhSMc4bDDDssKS6ItRpCUSFM2aWJ3z3mnK/0h88nMqq6eeQ+g2ph9z/R0V1dlZeU9 s8Rjm5MoisjBWjvPbZ7voJz1UvlHERby+D0UiDIXxq6SeIKJywyPsJArCqytMFcU3FhZ+4SSLrUW 1YP1OEUyJJyIH4qwONcDyKoCMiqn6fGhN2coXTkpwBTIEqdS+KPwX1uDDLF8834LFjFZDG/t02BC i+peh4pTZS1nL9Oq5QGOGDw2gfN3nq/jby3fzmuWk5PejVU7GG7KnGdrupT75+pacx/1+vi7Lj1S ZzzZnigCvN+z73vAe05glwLXs7HMdGpu4pqgSCqyTCauFZvqGswGsbP5ZCnoxK0YS1NcBKaI6A5F x74/oqsd/tX3HXh8xGuPn+PdB8FXP/nIYv/bM7zEA7okHgy8frH8Z/i1ulbxZDXP1f1PbWe4ML+X 3qoK7zqWUCZb0uuZ5Z/Jcau2wg96CKO/Mp6lIa58X12b/87juznWJ+SUHh7BUVmg/MG/HAfLte+L 8r++K5fz4b9feT6LcR3GP8sXFVcw0s7xuQaRZlWAVBXNs5TZ2gb0UmkiCF2JPQIQWd8ZWxzii/9x PZU0NAZqipd2WqgY2+zjcUaKQGiz6KAjLBICCUExgEOt1mOUmyqgsBwEH1nVPCkgqMey5dbheG2g cYWxj2KaHbQw+BvuVV6bLUFcoBQYxkQ8xhaf9SV+0qyGpb97PGXzRXZrB+FD+CLjHEWkMLd1CFf8 VQx4ErKVm5jDqlW0ixXix/MhfPEdGet5r/oCLQbAaLEQXzMAuHKtewpOXU0J+NXv/xr+7N/8X/jz f/0fIPoAxYOvZ8Y/t9awqdfJNkBChDqQOqwVIxlJK1fme3RnoDavJptbwAkjC7lRSe3cFsujHXWP 5wFE3LZZEtzap8nYwjIbIGeMpAKCsEiLZv5MAWzMh5a58Ig1kLKAp7a2GC/yPkjMJePBifvF8qMI gR1dw1rIPAsI/KRRH3dj7o75atT3N8fNuYQVrY33SFSZSRyqgkv1gNh3dUnP4VEUUxEB5uRxuhLF w5t4toXflOePezUgwM+M4Emt/WR8jtKq8bs4wRLCytss8FS8SE/r7Lmjxd+uxZ41m1vAI88nmEtI 9kCbzC1Vy3WhADJvE84BKUwOoPTx7Kpo4tW6tpZ9qYJHYCua058UVmsLOHYqVbQ8xx0h3O5uz7bL mawadfBt4DZG2QKWDqaJ8fMffDL56cgvqOAljUqhWAf4mOeNMerW70VaeozIW0XRd9sDTSZFtpyU vAHYdVTqjBL7Orh3JnixuGfL52oKzB4eS6Dy2GZ7AHtaIP0NxEsTXtOiG0aQfjV8K4JdhOrsV/T+ CNmveK0/4s3rZ/ilj9/BB+9/gkdsbvnfgpaZx6eZhwMhlrhXpFiVQSGACgyFvaNSbPCvHjAZ0E6d Ls9/x5b0yqEyCnGkmYyMiOh0egH3wFvA6LkN5xI0elcTmroIGs7LfHIW1s9tpS1lfucrxM9J0WCu SfBp9bAfp39z2fJWIkCMflcZIT1+1m8HmCtxIkffS9KtrXf3SqvGPC6XSzm7xRVekagw6U86Xd6G sQK2ntbf1fJlOumObdI5H4xwmGlhPddKC3+O7w3Y+14iNEwmjD3cAB2A5HLnMPlCUF41Nu7e75wE idveOx6v14M2NFuYKkBVxzizVq7znnuCN5WY1T2rJoe4ubV17Cma3HySIv/SOr0aSxWeZyE6BFo5 PmdjKps9qi1Qo5VDXz9Nu6XRriwGq/vq9yqM3Wu37pk34gBDEbzUR7zx3pv47R/+NtobwOPjF9hk x9ayHnsI67RGdku2oZGY3oCI6w4LaHcmRsu8W0V03NzS/RArhmQ5A4z5dwasZd9zhY8gQcUybveO 3oTmsZrpOTCFg7kKDRNOwuOnJ4nNBCwdhOBt27AFI08LEHMqOPfaf60gVOPomx5xoFrYbayca6qf 7Feagrm085kds6W7XltZwYd7mUN2Az9nxm0K+np/xMGG2gMnKPz4DchQn3lPcb636UYoNQuasaqD P/ezui9CFRa0aKgTz/k7Hs/9zvA4zLNcGyoGLZLibtGX1ZpUD9hqjnO1oPp3vkbBdaiBvxKYRJbh QWdjr+s2CEmSQjeA8FKyUQDYFaGJVTyoY2ulGtjZuOs4Q7lajJ3vWJ3JM+yjsuf528iPE67hxfEq bXbyr8bZAK3v2HYL/fno9Qt++ec+xrNnz7HjAR0bGOZF2nzGc/jvmceenRGw4snrfTT2/xSeVmWE Q9VE3F6jlfx2dZiFYPvEdoYz8/f5/asxrmSkGcfP5rKCgbV2oH9PbStZiuOcaYGNcwu5oXtIVsqh JUzwUMo6+xU5Vmxa4cQKHiuZau6DfPiMnq7mD3gVINNQnFm2I1CU2k1H1MOPpF7Jqh/sRzUtGpzf HJJDYKuaVWoTZpMbwu7MOQiNz8dS3mt/7Q9jrHqMn5oz3FZYrO2H2NVC+PXq3W5Rg5dm2kTYFhqn wj0Q3SsUFBf9QByUotRkYW9q7kxl/D9zKljxoA8wy36v1m+L/G+zjA7IVjTURTPN0SxXsc5T1aTD AR8nNCTPH5iJRosDC+uGn4WBxNVcb0K4Xj/OJa+rI54xK7cQVIEavpSi2AX4yfVz/NJ3vo7v/uav 4n/97/839P5gHpWLCdvXvUM2q48PrmNYsEw41r5bqT4I+t79hGyFZSkIVK0mb3eisQHYaWXyqlYe ZW/x5mJ9mVfKcM/iIsuM1fCO8eWmIABwC1y/Vq9RTws74aqOGepGdwGa1xFWkEDUta3wrl4PeEWs DpOQa8lZwz8OQ6srHolXaaMoru0gblQ48i7mWJC5Rg6EZC4SAFcCzPI178WZD6sqdN/RLltYXutv XGsRRAWw3FtjP0GP4HHNzc+J2BkDn3MBKFh1KExZsn9xGuJV0uDvk4jhNKPTXt7tHtJp3DaYIqg5 jhlo6Fkoik+djziezszG6RLphrtDjbZK7l0RsXrbvM89ZV1SsWwhmEzKnohXbFO3LCOt4tUDEu/y 6lswr3HO2OkJ6YZsUEXJEVHzdG+2gTZI6BhG1x0W9hKzjBemSwHb9s5IAyse7e45MtB39/hq8KeK T+Jwl2KHjzWa7rE93H2T2h6wyjz23VjzOC6AfMeryS3CFzTes/n6Mi7dlPSdYwhcSZzbYu0QeGN+ zLL3IkZZ/BlTXNrWTMCH4VJnmWkUoW3vphQ8vkTbv8Br2PG1Tz7Ge2++ib4DTR6c39v6d8AOCSPM CgyHqmP+fVyNUZ7hfMICfWhHz/eqMfbfvCt1XY480kaxhdfX3pI5cHEX8bDAK/ZHp7eR0gLp2nqs lYefKS4jr0/fJpA0Nw5v9PFZboWCFhWTJyOzbvmO4d+MeLBJ5fvLKdfr1mLdABSvKPmrmJwY5VE3 w7GuQZT2ffeolA08L6ryNHtNenNq2zvpN3kzMwI9FwazjMnuPPfG6bBoH7wakUOlud4GnxYlhG+1 9hTNtAprs0cAuK8p2/g0Fm6lWfZyj1kEGLKQwJ3f8xSNeh7PmcVl1jYBWhx30A14b46z5viqY6ve hZUWyX5XVTjqgUGj1nx0+dWxns097nu1adwkeveeA47a+avAc+6D184Uj66K/gB874ffw3ufvoMr XqJtHdJ3iPhBNSWfwjagMbi0RrtA1K+mxCoifyBOD6Ygqwgr/iZqTKmMP84FgG90Z/irE4QB5Du4 jn4yJu+ruQvxbN/BevNhcS5lILnzUhg/wnCoZx/Ee0zoigpHeiTiW8tqS7MiWM9BCELZkobE2k01 66v1ZvBEFKEs4DLtHVZXYbWmamWOEEHdbSys5LKkBQi49t6jP5lgGOviDGjAywWaD3vAcwXO7jn7 PsPGqj+N3pCZxo0eJDsQr64B4+krPsw0drYKjvedW8N67wecj321wJs623Gvd6wMIJWXzB5hvpen hM8JhGPYQsd+IvTNxq465nlPnPGmug/Hfic+SK9FdJH7SzDDhHccW8W1LqNgP++1lQW1WvYPODkJ 35EngN33sxvonF4m392TvvXd98COS9/x2v6IT958jq9+/Alea8+guqHjqIDdg/csVxzPxBhbVQLH 3wtunBje/C3eT+LEGUz5vkM+0glvHNb4JCz5ID+c8Ndb/PxMZlj1N9CWhbfsKfx9vjdKhd7YP3Pf 8awLyjuOssYqbIih630h3J+1FbxXssjquRX8+Fud64zDryp7pce5aZ7iBphGVT/+AjsPYCRmlanU QZlF6BL3h4W5uxBQCIaqxz/3CrTtiOSFIK8QsIYWDM9hvMZj7svFgYl06dCmIBs8IKr0AV4WH7of 3vn0RNZ6X4YF5F9BZnrXcblgMs/VqxuMAk0GhqjkJgBQBEZjmHU0Nal1tBDCYqpVot/1YUI5vrh+ yBD10JuSVGSKiY37jFifN0ES2TFxiv12Ab7YP8d7n76P3/7Rb2F7A+hqZUHV409b4wFf6p9ivVR7 D3G/+ymxObWE1obNrWCZKLlBLPmTigTXwpNjNwrqMAuB6O7hRV6iUzIBsR7IVQXOZlKWTbZLWAsC L/pu1Yr61dZA7QNaFSWtDhdhXkkrQl8LRaW7le0g4HRL5GOCtfQ9/hqMxz3bRMyCLx7jWfJciB8P bRvCDZrDJ/Bjdzxsiq3Bq650swfqbv+WEe72bruPwvumHRcoLtgg2uJ5e5+mwqT23Omn7EOjiw4b EdMcQtHk2m4Q2fwguaRr8T1woIRwqcb1Nll1VdWZGOK6RF+IuVRFKRW+7GMTCeXH+IEarvRUbAbh CA2jG5E5I2Vs2NG0Xid8yjgFkDYZOFgXX8R2k45Crz3sOFzokcgovMU8/H2Wc4IIrdG6F5p5D9om sHLyhQ86XWubxL2zghJKaTB0F3Ab0As9lIaBPs4Cqop7MdBRHD+h2Gzeb+CJH5xl1bZ281j3ozDC 72nB56mqfLnx37r3eDJyWlVhMkPh3zUEdbCS+97YILi0ZqeuuwBeD6zi/lDs0P0lcH2Bh/0F3pcr vv3pR3j72evQ3XAteeaOjkzerDx8FpYoD/D6UoEZhK6qHs+N+SMLQU6qsW5UFpcCdTkocpAr1Ogq obkS/lSOMlKFR53TDJdTQ2uTkC2sqlajz/JUmK/vihC2piZj+btWavotxYbymmizD0YjAPGsy/wJ Vhg4TqWTBoaAlPRQVlbyDFAN1BM++D7juPhrWuWtfyE/KvuPyh4A7P7fAJNCawE73I/y6lGe8+GE nDa2NgN6hfT3hK+aMV0nUTXpud3SdKvCsbKm3NOgVv0+5d1P6Welec193tLsVmO5tXGqEnBGkGbt sLbVyYSrMczvP9PtV9dX1pU6r5nZ3hrD2bieAt9brfaVlk/Frjte6gt853vfxbe/9w3seAmIeX3Q U8CrglK/7snAPXa/wWJxecwRFYEYb08FIubhm5QnBkcegKTlenMBnIpH5BsgvwPpWbi0FBZvWQ2G qiVFuYtPUfqqQFXrFgfTp2IU88y+OUbd+8DMALdKdxPWRdJrwr5ZuI73E75ndeLZB4l4rZxEAs/r xAUqdih0KtfAG49Nn2DQym5o8LMi+u4KDkYYs0/3fKzWpkHCRS96NB4c1tB/P7MuB577OC4LA83q OY5tkyPNIHOqXqKzMc79L5v0wWOzUh4TxuIhVRMcYAYlf+lxHCUZrs6vrsmgNAzzQeRozXRuvrYS oKoHjcr4YJGceGalUyu6mu80wZxJ0cBk0HH85XqloighgM30gGNU1VB+qlJX2/zOOt7uwiHb1tbw otdwgylUkQyMDKONJFI1o4HuV7S+4wGW/PuL772LX3jvPeijYr92zAa7s3Ym06z2Qf33/NvTjFGr dhKu91O0Q/4mMMD/Vrv17pVSsWpnfH1+flB2sJZX5n7n/s7WbVhDHPdT9CcjLajGxVuy2NmYbrU6 hiobP9suuVdKlaH52blxP9Mrp6oRpn4G/3vwvcwvjAfKyYr5+sUku1lf7jYd67onoEcEspgwOx11 Hmz9t4KWtEngPcyX1vQcY+1rqEO9HPgsQNv3fRKMYpqEY8TEpSUSUEzYZ/qkKiA7mlwcFkfGz/da NwqRHpo/Wo4j4Mq6r23zWN57yEDkT0Jd3V3L0ARFxrBq9ySUMrfeHe71vYzZu7+ZOG+DyRM2nge0 rwg4vwezwm5VRS4N133Hs2cP+O3f+S38+z/9S/z9//05NnkOdWu4JdbB1o71tRkzKGYh9FRf7NAS A2uelO7CrNkZNSqxtOZWIBu8e5F8/cq481CxMo+4a7dTeJ2oQtN6uglsjs5IzfAo0O45NkBZL3FB lx6cQnC6QLT5KdiCOSdGAKsq5PNYra1V4AAgHaJmGdTuygGAmmxv+Rvc32WQyv1N1aDCgi/qDrMW 4YbV4koC1NSEhQzHsfsrnTL8UUDEvRWlXrk2t4YVfPb9kHOEuwADAAAgAElEQVSemQ0y3KpUdDgI d96f7j3pm69p4sDu8/QMkpLywzrf1ieVlebeJBmQi1bqEB4kPVusftFaixwGCWrJOFi/Jg7auv9D C1b0PiaOJz2y0joCsTmEu0EcX33OIhlbK5yToMXVtIS3uv+nPugNQHMct0UHuhdTEFMwqjW++3kq PIHThtDdEqrIyiTieItS2MHto90ThZ3feNEl4xNO3j1Yh0sduDa3Dh3oueEZ/50ci3AOIWOi51YR h8oNY5dTQSX+WD6L5ZiIXKJaSlVmpL5TBJ0nQIt5CY1P2QZJfrZQ5p0F8frO8XcPmdx3q/n/+AXe f/aAb/78l/FaFy+msKGhB301D/WYyyYUmO4cwDQLVbPgeZt3HT3yZ+yr1ouPvV9/J25NXvRa9aeG 5kUVOakjQdAPtqfEJazmGQphLLiPq49KHnMOQKV0yi0ML+Kd8eQ6uCxxIjfEu33cETtPBbV7iBXP EekC5mtWeWte996vtpdPFpA5kzoTP22xlk1RcsecHoG0wPKMmHtLI9Ve5EjV8SRtteQYl89uG3ir om7fx98zBOjAsMv3EvJzAMAkmK9ezt+eYhmqQtqtd9XvxphxUp/1XNCcN3VYPSft7N6z81zthjF2 9JY2HZY+6Qdvyr22gmm9zpCt1RgHBjJpvmexbtWFWecGHD1BK826Xq/fV/A8w5NTq8R0EmZakcY+ 5r523fGiv8R7n76PH/zoB8ADcO1XC1lBB5wB1Zj+zQXLcLWp1aTOe9STawVbp7CSz0dSlvcB759W wlHhopfBp4m05rHqEOA5AcgDyGoo0AretPhRTstwI8TzMW7QK8AwIR+zu+7DkqeI0KaB4GmWAyWe 1/h34096jJ0vMp843Gwc+/DOQAHKGYRhP+Lj2ApjnbfwDdgBHei7eS/6EU9DOZIxNHLGyfneqA6E DDUb3l+F94KD8/3DGhdPQkN6BuZKa4TfCB490JazWvqcRzUmzfkPwI39u2isXmK4uiXsS6OiOoST Tsah1d5f8Zm6FtH/FOK6Hn8KwqGILHIL6hi2ui5+qNZh3coYrYxmeWOBM/+K2H5cVzNxunEyn/lv 9V7EOSonlewocNeTifmO3U7KS5i64LX516iS1kwQsv3kh3ztHpLYd6DvaH1He3yJt3HFNz/9EO+/ /oZVA5J2GNf87xlulU/EmvJ0dQra/cjDh/0yrfFZzt3q/at/P4VX1n/Xsc+4e7bHz8ayondPncOr PPdK+/8AnzEf8wxmgbfVoBmllkkoRrpc+5vpeAjgT5xTff9M/2/BS1UPCfS1cX+tTui+1wa67O+/ JAMkcjkgev57NZB6XdXyByBVOuRfHYCaxMWJDxP8SkLH3L9V5/E+wmIxMgGLx+czO1rz478LW2w6 eghUzZ3SThZkYFrUZHtagEQE9FXMtdQPCAG3eroGGnDIl9k152Ibq6tMLct5uQYpGqEj1YKLYjkw IuDMuViVxvFy/udKj837+D0tgIVZO/x2rcJXxQFWV1gThPToj3gUhx6FBeQ4RhoSK8Jn/XaDXeC7 CHoTXLHjhT7iG7/5LfzlX/wV/uX/8K+ge8O+K7btAeJM9epCr/YdIrZOdoJvC0+IndRnXgMV4Kpa Qln8/VG1xgU3j4eU3bcRullziCEMO3Emu6FlZRGFexO6PQwTwishiVAdxx8SRiM4SMtIAJHSitWl F4XNr/fR69bbVDnHLYniGNjhFV24njkPIEsjEg+yzGEKP+nf8hNmY06sFJb0xLcnNvdIWEURIGKD YxwC4btCaEmrp5R9bzitvnK27xrcv1Pqqds2qLHmto6997DUB/3pPCxss0eFa+GEueWpsLG346wP gNYwQ+RRGDOfm9XNb81AZGP0PCsOIU4KF4hq7imRsKQJ13Ggm8QJCXgknOzGbh3E2KUlXLiW/M08 S4P9jBvY1nLL8B7znGyGCWr00IA3W7kl8L05XZVCOKiE7w4XMsXuzLXtpkDQE3BQIKgEIf3fNRwG ql6xyfDKKcBwem7wRaeflgtQwrkgYClLM1h2O023WQnEURAtvMot+WfhmsYHADtl9UQAnE4A1t3D jcKj/hBrYnMv51eQSCFPgCY+mgcQ7klMGhyeMXelHUom9itwvVrd//2KX3j7Tfzy++9h23eINuMz AvRiaRaFrZ9UPjGuo4i6N2BUULkfZyVgwAGQPx1llvl74a4AlXbFoOAN46Is49UQNYwM5Ke2/l3T w2L73fFC8r1b8J0js1THeSFv9dsOSnCRncyzYvSHeY+1FHmV9XJumZ814Jl7XM9O6s0W7j3ovgNo zuPOFZBqVBHp6C3IZbxPOg7PjvLZFh5GLmLuYMN7XlAN9jsYj2cDlNE9y3sKD0VMM7ndcDI6ZQUl NLnXi1kw5IlqIkk+vzJ4DOrrWjsTzJdWAJsJ5FM07/q+Wfus1pF7WvJK+3qKBZ0AYSY4k46o8VVN chz/uirQOOdjWstsYVkRivm3kdgcY0RXcJjhG8T0XK4/rula31u21ZrM86tjM0Hck9JujeHkuwmI 58L/anyzRs/xhHu8CV7gEftDx/f/4Pv46Csf4hEvcHlwIU93F+SKxUUB+NkAm0hUAWI8fCu/h2fA 760x9zE/wskt4DUOvyo0bJu0FNQXc+b7dc+k8tm6TivF5cSq6505M+mDxwLB0M3z0bud61H7V69D 3dRjlnldFUAfqv6s3putWPjOcHNKTqxx/2cGjMNvEzwtLn/EY9KE5spytbzPzLzmJIjIwcK+qiaU 7865mvC6Zz8o50uU/gemvagWdhijFkG0rGvFzVuwq++t7zq8t+R/zPQ08aHcvvAi3uMxdW2qIMUz NACEIj7kqUyW8Jmf3ZpbpSVmA1MwyZjtqllx6Izfqe64XC531/As32Pu94wOxhy8zDWfiVhi/70v niE8Kw1dwaWOK5IZ1TzixNkhj6M53HTHvu/Bk3fsphjuV4jueBDgtf0R716Ar3/0Id5qDbpfl+Nc zXu1biuBaFuM/15bCVczXOq/6/tXeHzWxzwHID3vqzHcllGOYzqr6Bj93ZAhOJa573n+K/nvVjvs FVduKDzfW1e+sy3oDJ/h35pPER/nn7cOFTuTVWr5+1WExLyuIbOdyLc35WsqH4uxrWBkvGNM/Vto bkfNcRDsxD9eVaAjkxRsMF6xXABmkMOtW8NAvaoOk75M4ABYNQjaomrBivA1beXZgnDlFSu3Sd00 1q+HzOgonlF4o4Xcxk/L+oogJjyNsBpJWy1mbTWtEGh5+NQ0Z4ZZ3FK+6rtqSM++2AT1Pj63yZhg ti88Euf94CTRpxUlYGy3FSTrsW6g8U3ZP9BiDS2IZ1U21U4YZQxe71bO7wt9idc+eBM/+M9+gId3 Lnhx/QKKx1AC9n33NxhDS8HJqumYxdnDhmCWJBGAIWFW9aKX5F4fYRX0vLHqTAianiS3eXx/gxrz 9D1qj/p+ELMkXKB42LLi0Cb2aYpwrzOk5yK0HfS4jwLs5kINRxfr2r3ijO7IKkX52USxqYVDxeFi VG7E99OA9TK44BMerEZCRaKPn9qHWmUF7rea9Bvj4lgwwt/gntdF9+O4ux5yn5p4OBWrUjjdyu9F EOlz1R6DU0MfqrEFDNTwhxWTKr7Xal6mJAh4LIO0DK+I+4PwJ76Q0q0YZ610dPHk382fZ/2Pcb86 ZdRxvSNUq7tVm4ptwfthh24t8hEYp28VuVzxce0o5nBQdpJvpRJt8xEoRMW8U1wXv0m1D9WIEg5w Bd9DUtyAwWpSiTvldE3iRmvmuZ0SM6uV0Cy6VVCyKlDDWkyC1Mi7nHcv9fcj/7ZwWavCVb2+5FN5 oqzx7zrOJpeFIFVkiBJaEaVUNXlf48Ek4vRLe/C41pob5HarcnPdsanT0+sLPN9f4BsfvY9Pv/Q2 NqfFzFMZ5sh9EXx7bZCCjGFVlV+MoRsbalXCFYzHKoht+hz5cS3dXRvX0cZv8IywUfXy1KWfWpkn 5CzCHyN3nPf3bIQ6ayE7OV916hrwIj/hOOeDDM/KkZ4deFjeHDMw+mbvHxQJ+xF117LSz2zsY1tV ixSxPRrnP6HCc4TUXcWlVqss0833bOhScm1UB/onwMBr4zqrVXVBX0SbqWT1oopfUcXQ5RFRWI7Z zQnUjp+gqdlsU3EQsdCEVf3a2bLChWJlkNVmne+tv9uzkdP8Sm3W9gVrxBktTPcTn5da2g04rhSb VX8rqxSfqeO+ZZVYtahQIi4Q73tYfPj7vXGv2kqzvuWhOdOmB2Wn39bIn9rvDJ9dFS/0Bb767a/i 137wa7i2L9wNew2hhwSpCi+sI88yXwEzJBMKoqNq94oMuQRV0TNBeB/imhmLbx8TPDaOh2uuVbBM IZ0EJvBDLaGRni7lmJDWuVkRi/n6e6z1+GvzYMxu8QSge7nTXsafwnQlxjXu2F8eYyCh5HXOg2On IlZj4il4U9gPRZIl2nyM0KwUNNKfqQwixr1Z69KvPgPDrcKuv5c5D1U5OLR6wiQVyfKOeqbCytpD D5LBZPx33VsU8uu1bduGuaz2efVUrFrMd7GPVzBdGTRO685PMD6427WMrReFatHP/M4Vv1mN+4z2 zfkaK54287Jbh/ekAL2mw6pH2NW5LOcmx/nPc6+KhU5zXo3JfvdQXSY3bhSe69yOXmDVHXp9DHqh /QrtV2za8ez6El9+6zm+9sG7eI3K3GLtbrWjoe62PDLz1Fv9zmFL8+9nv93rd3VtNv7Nvy+V+Rvy wkwzTluhRfP+u+ctWe3fe+3WHhQX+ldryXZGF++9u8JkhWNz8ZlVn7F3FrRjJaM9BTeqt2cuuz+/ e9XnjBOXGAitWVI3t7ucm2tei0bLm1fINmBB/HTCEhfIXIN80CeU2qGq4uoxxBafKEBL4UbVJAVG VA6AXRD15XhnpsyFLYIb32PxxjNDnbWxfejrFkN4ylikd8sY7ztEmru5ntaXjW+aF9+hCCK+Ql4T GVdCuVUAqQm25tnQ6S5rB/cTNduWd6iOxCLj8xHvSBj2YGz2bq8u0S5uXeJdI372osASP1QtBhpC rLRzFEQkqtjIZqEsn+ML/OYPfwN/8+f/Hn/2L/8Mz+QNWAWLzYROsTjczQbsMATQNcotxrjF8JwL 2RSW+6KKLhnX3rtiaxbX2AA7BVYEVrfeAhjt+khcLp7jwf2XRL1ui9Eak/YSFwqbW5O8eoHAPUDV WCNifapa7KcmLikqrikaGPOLGEtUXGHbd2xI79Tm1Q1McWEylAv9PqfN4+g3bJbrofCTZQlj0jPH eQSKGF3a96BRVqOfko39W8uzq22XzATosNwP6Ro16uNZh0sXjsEFoqI4WT+Mb0dYmuyezheOgknf A+Y8OXigN25VtcpHCW0LS4OHbSVeatAvz1HS3WGTwVQjfe1o0tiNzXlz36gSmxLotH5F6JzfSKss 3fgzsBnB3sVya5gAzLyooG8duMiWOMRkAtVleJkGXWgpQFABa0dBoTmOWJWPIuCVNbDpOi4FD8gT hpuvpwgPHmLZ0Rb8ljkmvhIeRm/w6khYA4bnIpsrRYxl9qogdcEr0S+N8962Lby6DX5CswtM+57h ZgE79fwewE4td8UzYAKU6lZeNUuZjK2DwhkGA4+tNtQgL3ZBxy3KDYrt+gLvbILvfPIh3t0amlfl ooLfWUWM1m9PBtI5trzQq5Gx1nKMWpQp9waoQntPfC0wmXHMvjsdjhjutZBWFdVVq5elmTI/5uq4 YU0W1WImhfOWTHQYjysY3L8NpeogFE23eMaOS4qgMfZ6Otc6Pla5oVGjjmfoJ4SXDoDWcst52JHG wKxi5t8Xh7suhhdtcx6Qh2voBBcJPO1I/Ir1Y9ECP5sg+G0nXTma7Q2GZhzTti3XbeeBcY0yjwYc 4mt5f0Bvsba8rrY3z7Rec7efIU0VvsN9Vye0jcJIvHjqZ0bUedD8vjr9MQdz4l4qc5rHPb9vdcLx fP+s0VXL4C0rwT1N/Oy+W201r1saJONg7797JYgX4fqkvvAx4+HYZkWKytRs3Vtp6jMC71ArMP2E NvQdcGqHtchwBsWjPuLhzQf88A9/B8/few27voDiCsFuUkc/4hStqxkS5JZ9tfCaqBokcqizjfLs 1vO7Cf8Y4urNYm6WaVYN2kqNfB6qQwZZ98+qtjuAjPsuypbt6VEoqqEwNY6XB/sdT/KtSvbxA9Tw EI37oDq85yItYMawjfBIePI7cxFqyIn4+xnf3gpcjFBrhLVwPWLe9flZEFcd4/NLm/H37DO3wUNw CscxpGC1509P/9Sx74oz4aXCNgh2x3lsR3rmX7dpXpVm37KOss39bttWcMzCc2IcE6zqv2fBtM65 93yuvjPuKeM+W6uhqlKpqDPzsrH6ku8TSNhC6lbku2deXNuKt63GVUONVuOfLb8jT8vrFyaFTm2F nxUGQjrQzMvI9YpzKxwe2Ycre/1q9E5hScc8sO/6Em/uj/il976ET99+E6+jo3XLyeLBVqsKTas1 vtXm+1TTqm9RyAtL8Eko6wzPW/C71QgfelJmy/FTz1nitdU75z453xq/fiYb1T7nf+f478sn98Z+ 1s8BtlP0yArOK5lz7mue85wbUeWlUW4+n+OZjDnKRbf3/Krdk2/r9Xl9tj/+L/+rP6ns2OQJBWDW KdaUyBF1ROylaNG2yOQ99pkCC+DxyM0tbFIsKtSUARYbpOXKDK09hArWDzZeoG6haixJDohrbkqr mvfvWfozHOfNQMElNewGkawybX1Y1YSxTjKf5zBuJwPNBHdunD/fD7fwdTMrhvapougey0xIWgyy 3cNK6eG69ZtmwpVMYBhpwNFOnGy+Tu5+8hrQMXH2XeFbJLzVTI2Zj8LNGQGhFs3v9jc19BjzCO3h U/LsHVZwbIThE+FSYLLvO9774H1cLhf82b/9P7H5icdmufN1Uo2+4JUo+F3Vxinq1siIuzYLGiuz 0PrchImlNkqzfFIQlWH9OZLcURLxoerjAhRoiRuE11Ae0VwjhjeGYhCxOanbriskjbGbhdiQg936 npurYsR6uuXG58yYZZGcP1cqgKQ8B8BhoiVp2PvpQo+hDv2DgqPEjvGTU+uwTBFUv1AVFXplwqMg 3OOj0HOMf7GxNseRPJxpEiKdNmozEUZoafT3KN+hBvMo+iot7gUAmQV1h6F4gfFxF+TvxF0Dpd8f QrArqxCj8S3DHW1vuGdIBJa75cYf0fCYkm7WMqVcD14HUE4GTWGwNcMj7fAQ0oKLW0m51jJB1cJr 7O/W3FMhrDgGq4Ll+ygtj+5tA7BtYngExz3iYpxnwlyY3BfhTJMSkqAZmzw/34JYqsN33C9a4rnp 1cv1dXwuz+/w8oYOJfKKrhr0giVFDdYtqSG3GuPIZyGIONM2X/fua4bYk0aKbS82Zaiizz+UaPJ3 hILgb/FZuYCl3aelaNKB/YrXHl/g5581/PqXP8S7TXCZcsBILwdeYlH2iXe5SDG3Ea4+ahdaoupO AxSWVKOw5ExWMKotjFgtZ6RaaDPphQ/DzpWReK/MHfoYSb/5O6u4qcLH0sqvRy7I/XCvbXJx0Ls8 1ozvp8/Hsd1h1iFO/un1FaMTkYgQG3N4z1H+cUFRU2Yz8dN/Vxaijh4mGe9kziLuaZfg76IIDxHH UtuoGI/yBqun5cfmFrAZweMao8lVvXejqCI+zXyv+nttT66VddJklEeP8iPpzJHX8FfSZeKhGcvu CKsVMBUgT9FM6rOHuEsdf5/fzb+zNne0VFA4PfZxU1O8M34pz+R48t1GT8811VWr2uS9lu/ehjnX d8xhM6v5rrR0juHMIjC3vDfjgeuBW/FOWSFmtrquq7EPBLng36pKR02iutfivSdDGzVw71+AXRR/ v3+G7/6DX8V3vv9dfKFfAJ7E20TBBDp1S5VIxt1v0iz5VjtVhrQqq0ZOAFw5qIKSjVWzqhAJGor1 DC7kMFF7iH0vwqNfs7CCPOmzJqVuxYpZ4dQwnp4bCV48w6C1yBmonoG6flnju6UXSnHAacCJFN+x H13CK0tJzRkQKULZYo1VjwcHAkeLOT9MfF7lMM2tWlMBT/As8Dh7rsJmmEfB/dmKNfRTci3G/U+F a22tjfVxQblWyqnwFZhldraAzWtRiwzc2stnfcz3ipgHoFqNZx/jcl468paBZyz4WX129kTOYYqr sc7zuDfPGf4DHEvfpG3b4v4USo7jH/bx1H/0veCFq72WcEtlQBf4eTZP895UT1CGOwEIq7a4NR+e 9Mua/7g+4uH6Am83xTc//gAfvP4A2a9D5R9aqud5nn1fWbtn2MzW3Ht8S/X+uT3DeQIywXwx3rqH xr8S/OkWTVrNd96HNV8m/o1c03sVgeq7KjzP6NVqb/D6rQiP1X49HYv/rZ7sLhP8V7xHaujsepyH d5dk61t77dZ467vPcHI15lO5fbo8z2key2WuNEA3q3rwuQgF3nboGEg30epEP1qLVc1KIRCrFywC qDEcalTRb2NSn9dJ90ODNqjFno5vsdNOVYO4N/RQ0xoyNtxi2nCoxMCWJ+sVwCF1PMBiN3P+XHQy wNw0xojOkWdFZOO9HJ6OSk6caJjBXlAF9sjByHlUqz6tDyshm/NcIqiffMnXMbZWIDHHjrQwZaq7 Eyk9Mutxc9m4dh1jOe/BLAUTAVRTo53eUyBi762wxfgum0uLe5vPVQW4ouNl2/EP/tHv4D/+1f+D v/rTv8br0qBXAJtmfoz4eFQtTyq65/puoOMkDvsqHgiVHqfcEk694EatR295FWYx6K4o8DdFWnW7 CEQ8h0bF32/r0/weCIlrQTwqI7LBSmtyjI4a6rCKMfZ42hi+WW+jTFtZT0V60OraxWmhRaghPPm7 SJ5tEIUZ4GeZ6ogrPeq9k8lt5VnxsCFBF7cUig8+nq+42As+Tfjjz3ANwuJfcJIx4MjplVhphm2w jr0AXBvknDK216gS6c3GWG8AYRXWDGmqFVwcSMPYEuCMZeWebsMdLU5zFVRBXJukFQsAsANtS0Yk NorZohYwFItwF48pphXaHCuuVghMzZTkK/WAoyq4R0yu51xU/pC0EwfjAeGKltbUserZmHvgBcTj /Bq1ZXNeAEhrg/1zyElCru9ZG2K9SQ+GsVNgcg9GoLAGVRbYWSS5t47vpODSmQMzCXKxtj5fxHfn K1LG4WRXJDEklBKfeXO63QAbdA2jhZ2ton1H1yse+hXP+0t87f238fPvvI2Hx0doN/xi3lise9AS z5jgSbTRt70/QMBYbvLdYQ8Vo1P0MBVFkbyX/dlaea6WMtrbPSZocbK2kdjRKEpykvibxhjzcJqh 0wRZpxHtAtWr3zfNd+KlIZdIGoDoEFFVYMit0eFsF5PjmKvk/e52/960rO/0flmPJd9T5Ei9DvJU E+b4TYYH39c69zUpCav3mThZxtVkCBkalF7KJcGPRjpilcwCmZAnAqelXlx+MvlX4/oEKADpEaYn ksUgds+BrPGCRmv9HBjHl00kTw8u8sImzfJ53GBbaSBz5w6Am7WgYaPNfzEuxqqtLBhG4BPwh/tb 5hHEgA8Z0GpHhZdn51Kfs3XkKW04WRRAVt0wYYf93jogZLaqnGmHqzZog0pGd3/ss8WC11bC/2gt PNEmp/nw3lp3PH9fr+X8jnyXZQ003IhLn8Y/j22lqT/FYnHe2gFGuype6o7n772J3/3Pfw/bmxdc 5RFt07CGN8lkHItfdaLl1tlLA0T9JEtYTkCDYFPBg7TMFXDBu8XfskfUhJn4XdKrMMAlwOtCVKeH AT4exabsL08qNOLAQ77IIDTj8iWt+dwPeTLwaP3nM6yoM6/brPTGv0sOgJT7uX9VGXJYXLr8TOtG D01lenMJUnowRMZa/SMOjbHrNZxl27Ypr2asFlbb7OGpc7O5WFL5LctZFUKaqwB1rOGhmdpTLFur MbFP5lyYMjcmvR0qtk39nO3bM8skr10kPR8so1lhsTxcByPsD3ylzmP6zH2trp2Nt8KZ95x5lc6e XbWKa1zDsxPawfJ/MOGFY6GnesljOZbF74BjW/O5TPHvI072Aa6UGaqSxpO/Y0+2xBuWVyYM9+tL bLrjYX+JT58/w9c/fA/P9YrWH7FJGqBWckv9y7HO865/q1yw4jNPbXMfcQhjMTjWEtvhZVUcjKer xvKUgOW/qSsUP8345mt1LCuLMU+Brm110vTMq1e4fiaDrPbxuB6JZ3O7JUfdajPOrsa5GqOqQhu9 MGu5eJZozueVv5/9Ft7zG1WWaDRZ9cl9uMpjuJxNPCm5af4igDI+b0nA7iGjW3rcEh82w8iSdw3K jjz0QZtFAAD2MkzTLvfA3EEJUQAunFhN4f6k0WVzyxp4aqclqzLRyODVoaUWbR1XXFsgOn9bMauw 8NLF55UeRsuTKSEcg4iE56PXBMry3t47tm1Lj07T0t/9xjE/Xjsaw1gl4dTp0WEFFs7D13N3zZ6C akTulY1nhCwt9rES7ZzIRYWqsnHGOY3P0WJ68CGREdT3clyErSh+oi/w6dd+Hj/48ffxL/7bfwHR hgd5BqXQ1YnRfmKmx8WaEG37Z0NaFcPjEwadtIrTCif0EYh55nrZk2EhFK558caoZwcoYFUWPNI9 iBWGv6bkOhS6xWDT8qQisblMALSvPIV4m6s4qIeKDQJ1Pl8Ty0z4oGXJ16IIFgMu91zvrVjuch2L NUmOhgsqDfRw2rkinlzXs191OpcnldsoNrcO9+7VXtSqY5l1TxAWowm36HHRpoNw3HxdpAi22iUE hk3care1QtznSOGTsJRyajAVm/BwFqHMmB+p52hh2oJujtcJR0ggHjaQdvn9ZS2IVxEu6bDexTxF zXMVWgO0NXTstm67zzUMC/buXa/pPSm2brZDiEaMlYe28UnSi5FOS7HNi0hYQpvPT0h3HO+bx+BL 1MbvHhdd+JuY18zwP+mcFBjG2nEeisG70tE8OWT32IkALxQAACAASURBVOuMzvaHA+bMAxLxU41l c2sqdy9i/g4J1CZSvA3qChjP1ACNHc57DCgZ9+85aKwiA/GkZ3pFBd6Xe4B31jjajVT2josA7fEl viSK73zyAT58AC4vr+5hsLFtB94wW+hTNqjTC0HNPX+9j3Cn4cPEiOS/x5aeWqN/SZIUhdejmbxD ulOeB0bPkL1/FOP2/dHpWHPvIqvAPF2ime+WckU0aeReeUh9tve0vEselDry50mew1oAXwnbdjN3 JpVJvzeeIf8YaeCsPDGsdidvDHmW6z7eyz1UZbSntEM1Ia9OCVV/le21cyXE5WE+r1SWZuH/4rws DcJshBN7qy1wk/IRElftuuFsm60Vt9rKMhLTWcDtlpXk5nVtg7ayWpy6kWXCAvXxzFnXd7V7Ha0B 1m0La2wcamIzvoksZ/FzA7G5oR3bv/vh+tkcVtp2dZOuxjpfu2cZPLuXggGThHlNVUv95/FZ1Y7u p8SeeYLmuL1TZfVnaLPWXTVljmvfd+zS8Rm+wG/83m/hm9/7Fr7Yf4KORwh2CPKALY5pqOkvGad9 geIC9fr/iFyA8ApIG84LSG+A3R8HcrlStcFKiA2HLikPscIQE539pNuWOay8Z9voFZD4bQWrbWHh LCuHSpJCzJIeFuqwKocyMoVy6fjuEK7VwgNAgYx9q8Y15iVUfIlqN1wfkSjXGqVMewd2HkpEwa9M a88Dw2o+RoWBtLWFmZa0ajnbWosxbb6WNu/jyZ6Bo3HewRhCwFOhV94QEbOot9ZuwojzWFkkVXWg sxwL26FaFHooqrM1beY5EefveQi6j+UWxz2JZR+8thr3AYaL3/j8Ga1deZDnec18akWTV33PbeCz OjH3th7D/O+teFC08Kruhq0474VjCb6mQ+KxoUyGQxzgcCMPThfeAUgvlmZa/Xdo71H5Z+sdb+OK b3z4Dj594zU8PD4aPZNcr1exfp+1I16OBHM+/2P1/IxPc0RC7f9eX6t8ivDOUo792VlejK/OP3Cl 0OEVHs988pXfXQ/jmuZLJXMtq9gBWIOBcOJNx2fksMdX9/DvLTlLtQRflxybFf2c9+T8jhVdOBsn afQK3qu9vzaGnsuQl7ggZDg4PHi2KOMMphhZaib9Okz61mFS/GsaJyvwuL2hk5hRtSNR2zJjH+Oi 04LbWrOkQhgBrExuR9ZpBej2VEi3GsumgWY2QR80sL24Oe/vzOXCMLZ/DoOhO9cmFRanw1u6Hha3 Eo/Y3IvfD3GBYnFkdqjV1e9jzWoFFMUF7e9QjlLifvuB7uhpuP6X1QNuodUIr6OHwBCZ1ZKe1vL9 3geH6+vHbH/WLW80T8Jw5eVDxw//6e/jb//mP+Jv/t1f43l7w+Iht81sf80syPtuuEHfh07EivV8 FRL7ThRoZHIKXOCx6M70m0g6WoQCtNfd0hkPdnP/Y3MrwO4eBd9riuhXBlhL9G1Wh/SIhFAKgBWP 4P1RkKCHx/ZkH3NulLHgChErG7q7opJ7fWypILjjm2E7bjne9VqEapuN0TOJMwIMTxxGEcuaie1Q pHDr69fIbMTroAnCGixKwUihog4fKiJjLkPSu0k4pN9SPKTOp7+RvincAsw4d4TyZF5Cr3/Ne2U3 D51TSKVls5zf0bzvEKRVrepNEaq157kAql7hSgSQIhg6YAMXgIiBH5vj+CBI+3Ww6pGFanVxj0zQ cXU8EYcL4v1BB4sSmDkyEu+2fzvj1pGXZe6b3bcBUeu/Q9HKuQ2hZCL5GvsxC3sxssxA0IYuNUb6 aNQJ2AOwmGeD//i7W/GU+809hF4RxXAzlcYu/L1Y/GC8rNKi4BUqmSch9EQCfb8eKsYhYFXmEQKM WUBN2UzYMY+BSuMgXCsV3x3Sdzy7vsAvvvU6vvn+l/C6XtH6DoiAHDzOlLCRL+WWw0JQWY0ck+Q/ VfgK75Is+hg7LPBM2tg4EM9B4P495PjNHouFcmr9j+c97JOc9VTOx3BBDbwLSj0Ksjz52XMZYv/K HvSpCsPR5vMWDpw257USnLvnMvDZoLUTb2vsm+PjW7i/fWQ0oN2TyihvzuNhFbRI2EaQSTN2+35d 6L8+z0o1sIBP7inUOxny7V+vVzt3BTucJyGeE5GQR/lEwNaVdp5mFa1rVEKLUczaw1l7iiabN6+1 nFf5dxyes9B06v3V1T/HhtZrq74OyDgsVC4S71klu8wWprP5/Cxt1c8ta1a1Rp09O1fXqX9n+K21 z7x+T0msjFPVhIkIXyrXz7TnZZ8/A2xXfQ8O5RJnurni2gV4iSve+OBt/Oif/Rivv/8cj/1zAFdY HOsjrvujlVBrbfBAMWa7YcTBsLIzZl9LbL4irMR2IE6pFtSjMKR7BmqVIJ+jdiMEupdrZf7qMOw9 cgQSz93DINn/pbXhb6o3RwtwwLmrH2G/mxCge3ggTH0fBYnZ8l/Xi1WRajtU6OH8/Hv1xGzbtqzK M++Rmr4p5b4oFSwy0BkaNuq/I09DLEwkPAWaXoP6vAhL9/YwbtT6/KvY/oe2DacXz/kN7LPClf0F XDAy5ba4FjihAC26M80Y1go9aqbP8Kl0qf5d0ijBYPHcpr7q2q1wJoSyui6tRe5Ga6MVsq5pHec8 1nvjnis61fMyVoL/6kPFVSUTutn34X0gThVPyqJ6VJaktX9Xz8s8FyrKjP8m/BjHH8jUR7pd372C X93fqgrtVwuf1I5Lt9N+P3rtgm9+8B6+JB2X6yOq5f+WjHIG4/n3s9+Ov9/nL/M+SDjdl6dqH6tP /W3O9fpZWpgkbsgUq3GcPXOrrWA+7525z2UulDbQWkfjxbxnXnVsqop93+8+V3+v8s6ZzLNay5Xc eguPz3C54tlN/4s2aD96QGb6sf3RH//Xf8IHgBKTlDaPYWAHIc0/jRYtpFXX7kuBws2P/hzrpzc0 Pl37buIVVuzD2sVpabmNkDFWWP1il7wSPpIWPRsPLVpV0NesfCLN4/I9vlrC9hRwEikLpA1NNqwS rIbvIsO4lvfAtD/fNjH+NK/IYMWrcEl3lStJ1IplsugUZmmbyyxFJOYblSwxi9NcAlWiznVcAa29 5dI45jKGWtd/TahHfMwNwmtHy8a62QBomKYNkbi1bZt7oDgvT6BRnuwpeLy+wIcff4Dnr7+Gf/ev /w2kA5tseVopeMKsxvi6docljbLOfDcBtJfZZfy/yGaJfc3n6TW3WRvf4OfnbvgbWYKoCWt955qL lBhPt7DG4V0UWKFQeOWfBmjX+B3q4TKa+0VKWIk4Lhse2fOt2V4VPsv3aTllWMQt8CYdWJyxf9RG 3PxdFFpbE6JQ0iAxS6fVVa/hKEZl4AJQgxg/8VCsTlJa4EAcE+H8Nt/PkxvXLYoXucQ7TAFQ/xjO xVRBzwnpjqMqLTPKNTJ4XJogysvGf9w+mn8hWUtfDXYq6Wk5Kru+z3huyNZc6W2AK1o8ybnWqZey XwB4yBPAKk1paZbYO7nMRXgnTgutbP698QvxCWMrPKgyfuLFQONdoRlO+G0KaSj7xfaMhoLiZ3LA TuXmHgPcI0blVd07EyF58Dk5PXVJ11DR6FNrDV13AHaGC4Vs9z/43IDIi6lwbxdIwWHiOxEoz+2g 59fGzPNiCGQRoF3KKd0Op6CW0qGSVnzF7vBq8T7bQzlO7n0RsfN7iumfmJ/0zXMRerewH3TA+dLD /hIfyBW/+vF7+IU3X8Oz60vLvXGPIUA+WMOaKHf48Pl1gTfkNz6Q8tPIt3ySi04Sr0QZTHnsw/gk h7H5HisGhcPQeKqRhMepNVvThqST3deJRikU/l1SLAIOhcxEizLIkyJuin3POvmRw8JJtRA6VBH5 KeLnQh3bcaZrJYt3EwLOv0cBp9wncXel+/UdT2m3BHjj4QgLf0q2Pgc1eVAUfg6NnaNgsOm+PlXQ Np+ioXkNISecyrr5vHbKaoW+cY0hKa8MyncZo83R7h2EfqK3uUwtB2AFnBVQ6t8VMFfa45ml55Zm eM+6Mt8z17S/9c5Z4L017xlh57jn1fjnqgKrfp9qFXiVZ2YCFIRhUf/21vNnGv+sUIyaZTtdf7Y8 WXAiDE0O3oFbOHI25lfV/udWxz7DsrUWVSo6Oq7S8dn+Al//jW/he7//2/hs/wleXF9C1U4J3hoO +Gh4UeamOsRy51kBPDdAAJ5sS8YgMlZ6cQFntoRwjWi9j/n5u1h1iO83htZN8FZkBZau4W6nhbni 0yYtPBrVI1Ctzsu49O4hSa5cbKIBn1qVSFwxyHrhSVNGIX0U9uM60mof85e0yj74AVcx3+ivobVt eEesIyZYE14OT64Pv5v1rsfY4j0TTERkCOcjTqysf6v5B7wLLnMsq/1BmASe9rHUM/FotZeBZLqC 8307C+r1Wi/hPtxjZ2ta8Vr0SLeJf2TOdfyxZwqMqlKSoaRlHco7ZyMJMHpEV8/WRrzjc3wn8d2U nEKjS1K4zdeNMLqD3pdVqwaces9qDSrshz4k5zCfJTD3CaCU2D0qY+yjwpM4wnMl9v4IwLyCz/pL vIUrvvH+W/jK26/jsr9E6ztqqFAd81PzFufGPbzq8wzX65zna6txEL+fOh7+nT9skavj9PiWLHav nfF19ldpwimdmfDhKXOc4Tz/Po+JY7i1Fvx9lS/6045l7n94dvH8qp/WakmRI325N1aj+bgLbxGB bGNwYeKvDOtp/aLA1cZ1OQjOHGzc7Ai9+6YThkYwgccFjh3xEmMcVwNZ14EoMfZyFrQoaDArPgl0 3OGb195/LfHrxsDsEzYySWLLcdX3MkaMyWZzNn6tVhKL4haR2h9zE1K4NeCJJPzmRZyZ4aqJYnB/ 56awDy3IdIdhItQMdch57BHTXVuOgYg6VTdA5iioT5zErTIJ1qDdMCNsG8YzNkv2q2UGm1pOh7oV V2WPe+0Px1Y3VXVh74ETa6G+x3hH/AuADJZEYsXF4gVAy87L/ojt2TP81h/+Hv7fv/sM//Z//Fdo 2tD6BlWzZoQAVRZTwFNvXV/viDji7tZ6cGyM7XWj8a4aVkEKrb0bDJl6xnmbhQ4A1ONSSZQ60Afj okdkw+zIgbeb446aN8D7tYovpAHmudjE1mVrVr2qA2iy+ZQXsY9F0Ng9NwFdo1LKuG4Gi12sEoX4 ya3qHpCIFZXNrei+fkrvnbqitJmyWU1/qmBeggc6IIyXYvgX55zQhideKpWxuPS4AEPFpLk1eoWU MaQ93hVvEAFCSaw5LzLh+NiWhgsFWLM/lRZE3XpwvtIt5heXgebUmHoqCGF9FkBEixdhERNMd31J ivbVCFpqz1u/zC3Kk+edqft44sA7oXeDfMRgE+eJ+Hho7WUoUlMLS1JtZr0vdNn6t/ez2lzHUVDm eLhOoI1327AXga+exXJYF7EzR4IntjkWvJT766Y8asTtqlvXzRqrTvfPmqrdb/H9hucxrjbGUPN+ +6mVdbK1QGtRZnRsrOJD2Bec7gpxC/8umy+reVJNmG3Yr1c86zue95f4hS89x9fffxtv9SsunecK jKdQzwrbcTRUaJ0HhLxSYvHJ55xuSt234YUb26x8pC6no+LNHAPPJTKagVO6wL27YzKY7s5XnW5U nkxaY/OkceG8rYxaVVmzv44bJZy64pciE8FVFW3KAZrbPeH9cB178FZ6kMxrflmuxw4rZz3P755y UvMeb42LHpQeXi7Cocf7pVkpb+/Z5VdAekdjHbXCgypsuEuOhRho5z9WmQSMnlouECM6RtQiDvKq sSd6SEdDGOAeAMYKLSvX6LGKTGVQIYSUyQ331zJ3JMqvgBj1t5XmNGuDZ7/zHl57qvZctdEVfFYW hHu/PfXd1bO20lzrZ/aCtNaALYXQW/M+G/cMr7q2laiGwHkCl6e0Wrv61rMrplr/PVsTzvp76vhY dxowjO/7jrZtwNbwQnf054If/fEf4svf/Co+158YA1UT+KoAIUAkOXK9Is4egjgdGIJL85h7ZHk9 gQ7nAPCsARGJU34p+Im4Ul5q+ItIxBKbIk1LWDfhSHXwLByrzUwKNxAx/cLffGzmDeiwcw/yXSIS lmOON6rz1A9/27aoIjXX648TioUhRT4vzTj42p+Nl6JKCilSxrO1aX7lvQazfC8bY/CJHzM+hrWx WOLPan9XWjPTs9GSM9K3Yby1fr4rVvX5Fd7XOZ3tJ37fcbTMre47+ysih/yA8bmsIHXkOcc20ySA IVh5zkPcS/w+4RVn86hjWOWTxfv1ONfaJ2F3qxBGzKHg8RksD5WU9mOeVnhBWiuKLQZvE+ewbVsI otEn+zkRmFZ8YQVXU0bMiyEKL7+74xkUr+sVP//8Ad/+4F28qR3b9QWkWP5n3jnzq9u0vh34tv3b 8OwW3q7mO/+75nnNPPFV2gp2rPsfuDoN6947ZiV39c553er9c37VLTp0ePcEr59G7rsnB+ThWk8T /ld93loryqtRKWsa8z1571VkoBlG5L21rajGjDPVI7Bag/md2x/90X/zJ9NQrCPUxS/IgRaSqVKb FgFjDNVjCCOWy7U5vloZ4sWYxHlCUDcUmJXUYinZj0YM1JJxBIc/hgPNQLMQs4wlq5uLggSvj32U ccE08VUBICawKaxyy9Zm5DBd96yCjUz/IKRsKJKWFsbM6kiwh6VuI5xFBLSQsW2yccDuQakDkFg4 gVmfuE42HPcUgR4PiyFNhq51Rt5GT48UXIn4YCigzU/mna0AGp+AyZPaiRIERlL7eMqQec0sIp6q 2a0qjYri2evP8OWf+wR/+ed/gZ/87d87TnlfhEt3AdHnsblFjxZNQ6dSEQZmRTJrs8X+82RBkRSg zQKgkG6x25F/QAJEOPoslbH/WuIcheEIPlb12Gm/xhwF+yh8cR2ONT6dOGDvzxAk9WWVWLPmQJYI v5GI1Q4rfME3wiSUYg9ZyfApTxBmDLqyP/PGbPC4a9h8iE8x5rA0GhbU+GqBWH+SsG8yelGIrxbb 7fc5VkHoRWHek0KUQpXvO4+llcba2ubpCCbMXIiIufd1kSTBgXAKMGLU+nA4So6TY7H1F8v3QI/1 aIU+JR4lnTRvEU9rbyFAKk/2bZ7fEvBxYdi048T7wKNRWCZtumyTysVwMe4vz4HJXJZYDJ9vVjJS 33NcH0t3GBmmOL3x8P9QwYMvMgSyJb4Ogr5wPG3kK6JRC54wr3AljBRmdRda+JvlsFlmjsYJw4SX iydQRXhVOH+GE7H8a1wPltERVJXzAsOxfF86zXNw5ofCls9jVmoiVNT5H0s88ryUrjta3/GaXvHx g+J7n7yPTx8Er/WX4UX203i8xx7LumoHpUol4Ok29MQJX+smrcS8I38XOcTQHwRH987SE4mJ5xpf L/ifwxoAKYylL/e21gZBjjyeY6gCadDwGSDlQh++WpUpswbnHk45i+AwC3covMrqUQVQAJIg17kf DSmr3wEE78D8jHsCCao4KRepnOokE5wpbmfXbyoLse5wvhHJdyEHAPCzMBpUmJSrJUdAQ04cst9H YIBsy8Zq81bf64dxk786bw5+4zltHHjg3+GVA8TWnqNbmpSqmsegT26UNscb2d8uwHyK45kGeUuT r0h1dt9qoW/VTo17pkuv0v88vrPfbs31cP8NvLwFoyVStzXy1+fP1ntezxUsVPdhvLNngvV7x7Ge x0fSyjbG9Z1n6j9Fy34VTfxWHyt47+h40V/iva98iN//pz/Ca++8hpf6AoqrW8C7ixDHOVcLH4Co cmO5AMaEdH+EoGPrXru9IWL1RTWrA7nSGkIQRmZNC3y1aNPrUPdlhfNgTQdQ122uLjPMC3NVopof kPkOQw6EsBZ+qYDkfwn/8CJABuG/Wr3rh7X1Oe44K6E1C6HqJeegvIc6OcdliVuZI3HLohWMLZil hWBVyz8FRfOcTZ4VV74Ih1XeA2P7KRrHOE4sUsp4dc17uX41Th4AdO/L/byix/XfPOPAPud0U9U9 TeVMhWGsHuvO+c7WW16rtGv+VLyT8t7VPJjbQyF2EEymOdwyKt22Qlu7FAPN2XOVFs90mWmSt94Z QmLxCK/2deIBn/ffQuEseDeh+Qz7eTyzIqfYrQw3S8xKh6ji0h/xftvx7Y/ew0fPNjx7/Nzj/s/3 1aoRJ+ZWcy6GVk41nnnNrTZbflUzd+VV+PtZn/VarJ1gGF+NtKh/53+z7bqqH3/k/3OrMH1Vj8Zg yb5DN16174pXZ3N/isx2hsMzLWGI+K3olbN5PaWt5Ku6b++1FV1SzepG92SfNpdaW7+lD/9OIpGk 1norwowFBh8mlCUNu0cld6juB6IOrMelplHkYhQtMDRCZzKzgLUCaBX++wnAZ+uC9VPmfaOtEMcQ aos4ViAFqacI/7cZcsNwJoGXiyQ80sXU/IMx9lfNaroiaKyO06TOhQd0NNTyXTMzywNSZmKrcSDY qtVzJDAQrjaMcxbKbq37k4i9P96nj42pZ+KoCK79ir9//Bxf+fYv4g/+iz/Aw1sX9P4Sgh3Yr2gu hDIeOmvTpzBnITNXEwi1Y+MHiotKJA3TYxVW72Yx+I3394bWU8A1y7jEeqsKsCcOtQ2wUqGOD3Ab QVd3QXKPalyPNdZc/wF/uw7CJhUV9TlQ+DdFwWGj8L3cIehFkWmpFKDHvy9ywYYt3w+3zFPRKHh4 qZVwxOnOgoFEXY++h+Ue8FKsgzXPrNfq96VVH7hoCWlCfobk6IBhCigXacNhbqJ2OByopKBbsnSB 86AYeJm8gJ+2yE+qQpwlbq/3xgYLPyOc7Vl6K3v8RfN1YoK2h2v03kMxmQ9em8cRJSgnGl3vnb/z eZv7PuxMU876dK0bXLrRtA3bgJeG05vf4/guVoY1chJ8zisGDUkv2rrRSphCgTjs5nnOQmyXnqes l3u7x8YLeg2Pxw4deFk9QEoFp6EBSZfsU2OS5XAvQH5dldGawxX99ytEdzu4sFvpX+juvH7Hg17x TlP8ygdfwlefX8zyPwmmzLfLMNY6lsnjAEFUmugVZuqnOGt4AcgnApYKHIpRGEEp0x6Vf/Q+lGed FbdqLKl5NzMe89PK51AaWST4Z1Xc6FG+JYWwbHPSYvvQyxgfpx+Ey0G59H1Ry3HWdiYAB1/uApZ1 H1qzMy1Cwdnh9xr+VSMQkPAZjFOTIrHKUbwlCM8J/YNSNs13h6KebbNBcZGkR3WsHXVdW5wuD+BA N24pLaPy3uLMKvvN8yED98ljvdrdJA8djQELYWhgLIvEnzy04TzmrdZRXwnA833zplmNafWelSZ3 D5jLOS/urc/MGtmsuZ/1u9LOnqKZrVrta7Ww/L4a62oc9S+Q7rXer4OQAK21nfuwFq8igJOg8ye7 R9DaNtxXG+vp2w3HdT0IGNP8fpZGbJyTsQnfi3h8abMk1c/2L/DN7/8Kfuef/C6uD1fsYlUu+v6Y +C0UrvwdflpznUMwFhemxAWc5tcyikJTcFEPg1ATAKviF8OPKkClTr1S8GtjvXEk4x2ILiZFdVGf PoQdze9AOY2X15UWfB+ndmwTY+TxP1KUhLoORlz78Begy7hbnXEXWJpoeFnsu6R7uVQcySpK6RkA MAgRogjPQY5VM2ciATTMlfBqvl4cq+59It7WLp7LEYIzRjpXPSRnNIW/VYZw2Keh8GH4fdVX/FvH vldjWF2jd2vV10zHVnOa6RvHm0L70Wpd5zQoc4ph7DPdmuF0Vuf++JwHYVXhfzGX6tVivsssSFaL 7cAD9lI+uPTfpHgzSuWrCr9hDFOsN5W/wxkb01xnWNT+SDt6N1khQoBUcbm+xFv7F/jl997EV996 HW/2l9j262AsGvhSyBL5Dhrhku8ceX9V3Op87LPF82ftjJ/fwst7f8/khNW7V/kmTxEU53fU6/R4 3MpDufXbU+49M1BWGWHG83m+g5L+BFlptR/PPBj8vqooybaKHKFCPtOfmgfyVLmDCs5/ynZLcZjp KtvFShNahQ0DNnvrJqn19QKHDkNhziPt7AQ5lNg9f4bW7lj8EK98YPNgZbBMdx4s1rplh2O9CTnJ 7uMLJ/BQtWMEjoiUcR0RrhKR0BYDeQiLEz2cVWtYxEY8HnqHjc05+OzteGoYUGwo/87SbHZmAUJb rRYA1om294/jruswwL93bBer8iItGYsdJ29wrvhTrURgyArgcYWp/wa8S/UFY4hlvsBwZkOd+xNo w9RG5n1QXBdPUBAFXMhTBRwXUmgWPGrHT+QlfuV3fx1/93d/h//lv/ufgR244JkLojzVcXcCdLHx q1eW8YhVG6WdIApVXFrD7nXHLSZ3w67d80o4/uZxgwic5z6wKkAdvXG7qil1EItLNmCaxYXzET8R krDia6L0n8mLDQ17N+th790tjb73fPzWvZM8Cr7BsNXlzjwIjR4TKzxTGZ6Nv2OsQpTRt5msLfAK C36dMdUiHjddBOeoHEJ6oYBoS+OEwrwoPpZOS09rDMjNvnx/a2elm8Rk688TwNvFK58BKjIYG2cj wWENgOHkXbOEBZRy/XqH9s1oVamiQ3wBDIaqY91qJqvae1uMKehjF7B6SigBtoRD4qHNYx/62bw6 hl2TMApwfpvHuCfNDcSLec/CgYidmB3rI4krpPcil2DilvxABOg5do+iXbVYj65AM8VLWSHHIueH +7s9ND4bE5UB/7j3tDNnowimLbHb1o/Dtmd2oTLbBmMaK/a0BkD7YXwowkzXHeCJs6z2Ai10ymgL 6S0VE9N33ZPj87Xk3h6HPO5Os9T336aK5/2Kb7z9HL/yzpt4o7/ARs8n8cvXkvwlQZn7okEMXmVe lZ5b1bvmeRcukygQsds0YtYiJTeEt/Q2k+YeDXnDHnFvqgHMcjQYv62qQ5WtwBdvzfmrqvHafd8h 24lXfpo7P/W0ZONTfvYDmlcDnHHyKPAO72MOwFCFKXP9VrAbFdm1AXX+d208yR0Fe5n4OxdjmOnl am1W8Mv7KSeRXpToDPIMb70Y8K6K2CPG1tyQ1WSxaAAAIABJREFUcxDv1yHAOfbj+o6DTbo+zpE4 CazUCgl6eVRcQs5aaZcc2FNaJcSrDXFWK3dlmTjTrG5pvqvxHAT8G/MaNu6J8D+PexW/etbqXGfr 0U/TVtp11WITIY8b8x6hS615H+fddNCo51ZhvlrX+Z68Ny0xK008/50hV6v41rM5ze/8abT1eR71 u43DrV1QvMSOz+QR3//x7+C7//DX8QVe4IqXANTOkRiszCM8ydh4TZyQsxxgWpH3qOU/VKChzAAL gaOLm41hJkBxTVJ4K9Zntvq7+HisfwrFCoiHpgBxwmrd87OVhUJjvdaA4hnQ4qmQeK+4db+en2DN 3dV9H8KPHIiD58AUD/dCwebGsBX1fiu86pkLufbFzbunq3wVJ13pYm0hbLPvBS5WIfCWi39ksuP1 ug7zvhvG48LFLJTUeXEeNfStvjcMI9O45nEyphYAFPuykkf9e7ZPZ1rKE2vpHTdhP/+dIUMjzOb3 zOvIU8CHijtlD81jss82nl9xwutCoSielyONUdRa+MCIkwxLqeEQnTwAiYe1cQ1GgXnNZ4d9u6Dp M19jP/tuYb3YvRoaOi59xxvXF/jqW6/jWx+8g3flitf7FZuOocIzHxh5wO1W9x35YJ3f3G7ti/me e/3U+a/gNL/vTKYhjwpPpO/Pe5Z5VVNOZxyqz53ty1eZb+WfK76/kgPv7eH5Uz2bK2v8jLe3YDKP cZ7nON9xHQAMIUoqR6/RDN+nyHUz7ZgVmOXc5LgOhit7fJ/bLUVLVXG5N1BpGjFsNkhaLfx3dLRW 6uqH1Y2WAdO+W4n95jjWmy6z59tp7eEyvonAKcd5+I2mBK/BjH3uagI8+5sYFGLqNmczV8Ht+lhp ehyP/ZuhVbvnbK+RJa2SqYGGkLIQKsIyJrS0jBuyh+Y4ap4Juc2sP03QsXvcrFvLvAa7dZDEqSoE tPCfKRwHYhexmq5ouOeISL5fneCJ6d4Mt5F6mxM8xMrcf+9hk42KNe6FoVVt26Y6vkdEcO07Lq8/ wz/8Jz/Ei8+/wP/xP/3veBPNzHUet9+7uNDie0ppIYLX/Se+9ijr20TwiO6WZas+IbCzF+p9XQVb 2wC3OFNJsfVypcJP3m0+B2mbC2PjwVO600qdnolkx6QD3QWPjrp/BZUZV0EMZrlTteejVvvEwHqG 3OQS0xpkHgKGfdTbGqqHscZduoBhCzWsbdMW1iYpXVLI2h1PgzEVfLD9TJxyuuJhbaKsZ79m3q1Y ErkbtTkUBeVcFA8PEReotFlZ2S3jdqvQm3TA+mah5sRTzbkyJ0EEzu7CUq/Yw5sBMGHa5q1+P5qY AVGIBxpWxphnCSHc3Tpbx5Pny3CNWFPD14LXFSTy5omcnjM6aasQe4iVc+h1UgweV9bCWTHuCJeg QtbcM+Yec4TSZB7zIS+pKDsNpmC1eLd7ocQsvmlh3Aa4JG3pjn/iayt+Nks1vsFh3wARj0EmXIgX 5bRXIEqyQtxjTMXRx+dcI2jCHvuZHmDypc0Vbu+3s+oRTOlW4Nn+El95fsF3P3gbH1wUz64vTUHf mnlIASjPAok3I+Bh72kBt7KkuWd1H7e2V14C+SDhvLKCT20pCGvlAAnX9EiMzx/qsDuM436unZ+X VBVi488aHrMqCJP/XvxveNWMaIWQxfn13azMII44brLAWs6VPD09StbRmi/mft383Ucl2/6Rctig BGnuxyonse270woquvZg8J5ztS1b5c1zufRD8zMwGALbg74QPLudKQM48tkPljuzx/xSrnM6p306 F2c0zNR/r5REdXYZZ1E5P211L7p8zhPd+b029l0Nh4cf+e+lNqvHmL+zPirAb2lp99qtUxeZ7bzq l9cHl+o0xnptvj5Yqyozm7RIVVpg7qMj718K8TOsp3HxmVsWiNWz9zR6/wE8DimUFKxhVd931Pjb MN4z68E893luFBBq4i0FgHva/ekcp3G8SmMCVmzOfp4Tok3wou3Amw/4/X/2Y3zt176Bz/Un6LhC hMJGeXbvFivr1kBLKu0hBNHi3mh9VkXrwGb5mNiUVXckKgVZub20pGMvJwyXuYTg6JZwhhbER81i vUmLGGXzxWQCfzJnp/O9h7cgziug4DzhvaqOeQS+12vOAdsQjx/jkMgjGO5d4W/Xw7VIDoadhyDl HsKA45mbEeARB8KyUyy78z6Z8TiFRPttSMQ8ybEQqWc9lJlrO+yHoS36A1KQqgcgsmJSeHPKeFlj v84h5lGE+zmhsSNPfWbS6UwnBjq/GGtrLUKFONa08Kc38WAxlWT+M37UA9DmcTz5rytTDkmIptBU jTcr65+68qtlbUNZZY89Dxti+WnOJQ6sm+lmfY8kH5VJAatCfZ1/hZWIhKeljj3nsAdNsX29A7pj 0x2v71/gk9cafuWDL+HjB8Gl1PpnJaa5z/nagW4s7qmtwnEea537rfYUD9pTxhTvJI0sfbMx9C6e lXH9VvOf4+bP5javY71/lh1CpjnxONQ2e35m+eZM7luNP8awuPds/QcjpIzKxU2B+oTerBr3XDYW bxhx/yltfSDqus10yhTj8XwM3jfPcaAhN+Z3EYzAmjO87fIksCnjfAHGhnW6OycNL3IJisV4QEDk CbQicKJpFU5CV2KZPuXJhKn5RV/8HuNOS2TfTWARlLJO00LMhE9poYRtxDYJ93G3ppdCuh4P6yBj 5VwYe18Y3wq55w3ZJlYYCW/dx77Y8CiQqS61mauqKi5iGrWJif04DybwuqVH4fGlCXDrWwFauavg l+KUb9hiUaDl216whWXE5p1jtHnzJF14DO5RCH+qYmn4Od87E70yTt4bgh/x2HBWRMISowA+u77A W++9jh/98R/ixWef4z/86V/iDXnLq8BsnhfQQpj16EI/+fPCQRZcAx6E+TANu/awaCnMdmiVrBiP COywk0TbtqW1vFsNbFWNkx+b36+KqOqhTcwDqB3ots8FidMNtCaaDdWsg0VwgFtRYAqN1hNYlRZr tdGr4QE6K/i4h0PM93QNaxQ3lL07heWkAKOQx99afDcB3HC8NTvTIfY84NY4wt7ed0Umusa6UGhC Ny+pnztgpyVnngeQ+zhPibU+ol55uU78UXpkFOhi1iVaIDcRzy8w2NGqy0j7SDpy6G9SrIvFcsnz ULQxH0TiOas/X2gL92SrIXumhHQpNMpxlmt9aciTep2OS2tpDWU9co+vB0YvZXj5nNG2bYN0Cr0N 1TpphpiLnZqrbvXsCVNOxalcwIe4Q4v/DtsjaC33PWBGElu2ic40h6wJvxdcPHQABQ9zX5HPbqKD 0hUnn6t7EvyMCDXE9D124XBtXk3ARHeVtBgDwK48+fyaex4doEcJGP7WtqKPKTgxJtzH79XaIs9l 30HvzLP+iI8vwHc+fBtffv2C16+fo+kVwQsasMnlIAwOQpyI41Xm3j3JyFMkt9574NKZcJrN9lZU WSHek8XN7xJEpaWq7B2NXR2XJtivbq3FyP8NB25Oa8nfPJY7DVUw+ZQlgBV17e0Jo/+FT7tc1C1u 48nN4HiCJ5TDFrmX6gxFoWg6KpZhTNDpO0oOBcZE3pUysJKv6jt2p7+NNESrPLp+pr5DyKvIWqUo eIAjRp3zUVY7axVHZznXj5NPOg497Oehn8AD9wg7j29Vy18SgMW/l62UkRoGXDS1WwCd/wIeA4yj JeJV2qDcPHEusxZev6/i6Ro2sEzWPQ1vpX2vxnZLQ70p6La0CK008lVbWTfPtMu6mcZyYWaPpYAw x1OfVYtJRpVOcBXgqmt84XOVaf4s7anP13K54744WmBU1ebTgL/fX+DZB2/gx//8H+OjX/oIn13/ PyiukL5HeUda00V7SdL2smK1QhAAdMWmHaI7LtDwAlzCEt4iJl+91jrLWFqegMcG0/1cpl9zAETk QHzpDbD3uMXaYo4AZAJxw+SuZn/ex2D9VjJqjfFXYs/xRQ31gle1r7B63FhDEZm8DQoepgWYkkLB PlQNF2Ybiah/zzKXvk9ahtPAvShbOV+gwrRWVSLMdE8PV3hN/L31RFsbm8cEl/VhCczZ6lP3LuPE Z9oSZWkXJ/TOtGMlOK3uj/Up764GIAodlZ6e7femiNyDuWJWHdc4Du+rnDcg/j3o2ITvANLLNcUm z0LE6tpMl2dYreAW/0aOxWCXB+nV8TB3iCWFeXLvio6l8JyWWrmc0/o6rhXPre8Z9nAnj79CdTeL vnRcADxcv8B7D4LvfPgOvvrma3h2/RxbfzT6pHpKxw+wjN/peSzjmKY+w7/yrRV/vdVWfHD+fbXG q/kYncsqPAfBX7OSlaoO4SqrOcxKEp+r+WCznLHycJ3B42flrbfa2V6f51L3HzDy4Xv9nQn/M92o 99YxWAjkcY3pwTQjyUQXWOUtLpzD8FXh+5T7V2s6K0b1Nz8J2DU0o4hmeXLqLWJaIi1VHtRWuK9p f8OLscdvKyI6avpteJ71d23DO1OCD00kT1bj836SpnolFS5YVOeRYm0DhRbQnmdhEqhToTRAq3TG RlZgViAaU3aRwU+CZMxvMwnHrFyAVXaRBpk0/1vCrk80tGVpHkLgQgREUGV49f+puKBxQ3GigqXa PRZVsxMK+qihEhLzkvJeil4t4ktZ7ceseyHAlvUbiBmK5detbzYPVqvgmjguBeNmX7Pn6nZ8Z50/ 4+nWjeMzfGnxZmu7Anm0aOI6D0HV1nDtO770zlv45Oc+xl//xV/gs7/9O1xwQeuAikYZ1LZdwiZp sGzYXCzgCcL0vRmuKwT+vMcjNt18r7rlvuTiCMSUAisNYnjtMGhhnXertwBWV57vzdh/IdzZAZAn pLrVOvcXXGi2PolBti/SG7aJx0LznoJ/zd8j5XlBoqh9J/zHe+JkVwiYJEGc52zEV7a+ryohEIOP JUR3z63w+fI+I1UOL3+HV4bgZuR/TqRivCagbf4MvQqcXx2nGRti/OKeCuFIC30uOKRqVX4UKDi6 +fKpo+/oY9zkYnjl+zaSwWP9kl6rcFy+xoFYgnq6sA1TYlzEm6UgbMfHIsvAGlz5vDp9jkPbQMZu sDRcFqApePo17+c6Ja3T8KAQcptcnCbxvcT5wlOgpTpZ4VdilXVILrOyiMNH7SRwQQkt0BZ8QWJG gOW6KF8OnvTbmq9fzM3XteU6+Yj8VGL7Dc1xwvm60KVU5tRaPt2pNDquUHHaxGhSV4XF+KdyTKHo YX/ERxfFt959jq+99Rxv7i9w2a/Ymtuhvczudq8CCtf29JbixaFXWpvtUU8ZgABta6GUxrYh/9Dx +8BQUR9YjEsEVvVHfL2zxO9FWhgEmojvNUl+5fcGbS25M601zFPm9Ko8NcgRcLmE6wbDq5ABJNd7 tE4s/5ktLPl6cr0ff/PeRGqOyzj25vJbPd9GpvsATxlUTf5QeC3vBY58f6XEDrw+TrmmgrFBmh0f SX4YnkbIIAsO8EcxcocSRhjrANQ5moNwmtsgsPNacDtHyEB7yldDD0F7gSwME68THM8BMOG9Rp65 FtruZ9FXxI1pyail1hMsz7SwlWYMLyNGL0ObFnyO1avv59+nCITz83P+APuZYwuJBCu4nL1jZTm7 N86nWGTujeHWfVKqZczWsbMx1OsBi56HytAC2BSI8mYT4bK2Pr3y1kmNVbkc4PGEtV7B4FXbrFFT wa3z6E3wmVzx7lc+xo//+T/G259+CZ/3n2DH1YSAfh1i5IN49I69P44H1gB4aC4oKK3kPHFYAP93 xu6Xw7EAPGxbeY5+G+Qa2WxcAB9D9qqnyPZi4jytuTxP4KGNyYy8Jyz2BdxBLXpWOuI91UMwW/9Z JQhAVhEq94kLkPH+niFl4QlRtY97IGqtfM4zwla0CL+smkS8xpEW1nyCFd5Q0I3zFcqeqPPnAWcr xkZ8qe+d76nzYHhXVmsqHolmB8hdihdmRY/Ov49MXspf1XTXz17UFQ2p/57/1lbhxe+9X089sXXs HMXMr+b33DLSXKQd7gNgYUqFV8wehbNxZfgAvTrH8dVQq3qyN+e/ooMzv6o0swGRCD7jWIvq3Tr0 k2ezsIiDuodsh+w7HvaXeHdTfOOdN/D1d9/C88cvTPgXxb4/Du842x9DK7kV0w+HZznOmpMAjMa7 W21lDV6OaXqmVu/hvWdV5+pYatndg/yBca+v7lntxyqY1n04j/ns+f9UbZZ1Zn55Bt/V2CK/RUYc vjX2eS2rPFfXbKb5/z9t79qr23GciT3Va28e8vDwckjxJomUSJGSbdmeIEEmAxgYDzyYWPY4sZNf pH+UT0ECTIBkglyQiYEgARIkyOSTJ7FsU7Yki7d93tU1H6qequpevd69D6Wsg332fte7Vl+qq+te 1QxP3HG+/kvZcPHc172uyY6r+ys8m7+bz0bY/uiP/+zHNvqYBrQIk6oAYvHKwrlmCa9EUK2oEnZK pIZIDQvW3rUEExI5kbToN7RUeBoQ5xc000pnsIgIEOPJ6WW/9r6G1dEsBqq0Bh6B2Fqz2FXk4lfm oJqaniiRYbLoePUVwoHWnVmhGeaxBBJ/yqaavuY9LZ/n6yiEi8N6g2m86TORgdn5b8IzpDVvVzAe gkOY8ZlpQKLjfZIr4Xog18WEIxcsfGzjgXJf71q/S6gSxhGZ7XbuYt0BoD1r+gOMwbXo/r13vPbm U7z25hv4y7/4N7j74ksrDdrhtfoBeG375sKqugekhfXa4CxuCgk8dMtdepZsyKwtLoDb8B3/3LLJ 2OvGh1D3S97L9WW1IQ0kaM1EZ/U1tPeJ5/Z7E7vH8TWMtMUs7RLP1B++n/Przhi5b2MrDJZq+DpI 6dvwsFjs1Ky/bLu5qTes9YEXvuq0pgpiHazvnn2Izbz+tqYUGziWpE9QBM7Etub4lXtPwuuD8iNC rPSGYg/04Zlg/6SLvo+Yg9XEAtIkaFi+J0C63WULnLTYdGG3jocCsOJFdOn0TWRIPjXBsbtFXtjt wEQ7ur1D2uAnh4pDEpXGiOfm0MqquTfpAeqkmWV3i8O1eWLx1pqPqazDFSGpnn1QLbhAtczl5uqS K9hc4dUwQXunbIN4RtrbNqPJ9LQ231N8Wd377nscvm88IBlKjzv/jz59L7hFlvxPOXRN/DPeZVV+ umok8VJGuO0XvI5n+P4bT/CD1x7jlcuXuMWOjRlL0gZL9oyvZoCYLJrC5ZaAufAADC0PxpZK+mTo XvBYsu9YKdLLWLsjL1gJlxI7OjpyQdDlCR9HxK4r0LuCURK98m8HOz2esZdVy8nox2s2HJAOBx8o jDUtx0fBtsoCuwEYAaHZY3Cv5Z/Pse0sNmHjc3MLeYiPbyeFi2Ut3hHhifBrRegMNvPfw++I1LD5 UN60ggE994uM8+C+heNu8Ar2VT8sxpNjb8ODXXrwZqBW1Ywda+WrvVpblf34ecRTPYTfV+VqKYWv gLbS5OZ7s1a20s5WmnEV3o4A4stFi1MWCzlXImZNiJrcNY1+tuDN853Hf3b/odc1ja2O7xqi1zZW sZCrkxrvG9PZvcGCAYtXXGXxz2Ov+BEWDT2+470d+p2Rd6XtsjrFGe79/33FGhTiQqXRyrQp7tDx GZ7hve+/j9/753+AF7/xGJ8/+wyQiwmv6EC/DGFbLC+WbbOu/W4W5n0PoiB+QB7PCLAY84ZNBS28 CB5rT6Lmlm/izyi86FDJpv4G0vo94F/Pduh12KZ3paxrjfOvrtFasaha7VU18gSqNwBAeJcARLlK +6yDpX6uBjTvm/mMD9KcOVdm5XWLec1lLrGy5E775GQchOvqmcB/0qGyr+pPreZTq/cw76LCYTWv jKMn3UuPQs5JQYtsxZcYg4x5JWf0L+e246Ydw0PCQyRHeHD81dp1bPf40opB1s+ryj0oeDw8u8hr qPkPAfvZKzDxHDSJ8rMPmUPF55n2X+NLIhL4c4RHLd+tkePCE2WZF2P9XnC73+EV3OHjp0/w/ddf xsv6FW77s6j1P/O01fpXgXi+lzArsNoKHAt+sezxNZg9z3XN2jzLAcxVWJ37cxTSRiUyaP3kLZ+t 2avx1bbP5IdrisRZ21/3mgX1lcw0w7F6zOZ2Zplxfn/u59o14168I+uIg/HeMeT4132djX9eZz57 JuvNcNq2LXnBH//Jn/7Y5ApqrW6Fipi2soFKgzwZ0/VJC0EQuNVB07IRGntacFkLeaVMxECJ6MLP dTLerqQ9DDqG4ETb5fOuVpGoq1qs5tai7GEWDUpNd1YEYowLJSK/M6jwCfVKGpm84gIKu+OCnSBQ Q1oDgLSTgERC3CpDF25E001M0+ExW8BmhIlnaF1keHuxPmflJgPcJlYZyExaEu0PjFAJQxjuNAmD j8QDSMsPhRS3+Kl0tz41t5+aZX3vO7bNtfcThfQhV57ozB++l/gwwtSem5/u02cRW4+teJ4uveMb b38Drz19Ff/f//sX+OrzL7G1DbqTwXkd85Zx6bQAbvB4TvV95ku9EQ/8PteKiaotTBLia0uLYllr XwzVjHGnNZJKBvdIWoppqWuj0KuI01mljcReVYEI2ZtwUPfRluKWmIi5R32+xYzgdELBpF6+X+LP UemOt9ZkqItOvAtI9R5WXEUy6s33NOEXb88CTjB2+9FQbPIL0jTxNRyYI9fIaSs9QdVjEIYoR5dh OoQ5BwHDsbCKk75yhn7yLMfQC+4IHCfH4oROWzIHy8Du42wF1lBbD6AM0i33QV98DtDhtHVxvG/i CkvvkT8g6MhzFtKDfRAQfN0FyUQ51ya+R0nWhIuWO7pxzQE0r8BlnjdYjozAD/+qFKD5u3BaHaRu 4FdpTUTSUTjflNxXzH1A/Kay3YLfijQS3IQBYaUKemiM1pT8IUkPk8KMZhua73/Jgww93h+qaKIG BwFu+zO8Ks/w8dMn+K03XsVreocX+gVNNegi+d4xZlmGn7onLQctPWorrY+ewdjrAePwLTm/zO4U AE8oN+8/6dE6rGul3JkhzL1/kmtrdNftt6VK3A6PY/d+A5/kBkzZMrpJT436thk39Qy/AacUYXjK PUDEsh+jbRp4xLrxMU8xmIZHYvIMHTwC8zVU/zFPiaEN12icT1mWGkgQcG5Td2eyY/2ev0c5IHxP 8M0zljeuMuVGOmH70HZ1kd9E7CwWdXlk8LSM47DSvXXPcxwzf3O8gGAvYXmMNFAgPJWGGmNVtt3p 5mzEiVQEx6PdDbjGvoqWeQDk4U4KxisLbV2AeQAisjhZ8/o1C3Xjl8eqQ7GYGBdBgcH9XC1EZ5rT tRrCZ9c1Lf++65p34qyfua9VG6oa1SLua0vrITELCx1jvaNfjNYtIL07lQCFlTjameB5Uvss+x6t ZbHehSCvLAcP1czXzz3cm1OvigOEAdvfoehN8Xm7w7d/+BF+/z/6p7h94xE+u/wSvZknYI7TA2Ax 6jrmQ0StfFGrDuTCGN2kNyrYRHHryXaWJ+AWdLcm33gCFt+t8feArZMRIB/XXEUH47rz2uAVfRRh NawXPQM30gbr/IoOzbieLeRFGlbrUttTY7Wcud0DD5usPxWfqgUbQOS0zOOo7zG2fsAJGZ+vCsm8 XwA7n6DmODB3INbInx/G5gLtTI9ubm6GflfXvIcuXmFIxOLr57Fnib899iCFJa7F3N8qr2cejymz 6ypbEmtx9B6v8eVIG2fYVA/LLGzMV8W16jmbPZv1BOIavrBqs87tmoV3mM9JdTVWM2I78yFS9bvV PpjxqfJL/m1Vf+ywudv9Dq/KM3zv9ZfxG2++ilf1Di9c7tB6zn91rfhYFdo61vA/a4t5PSs+eE1O OZNlVpb3lSxwaGMqe1nXNpXr6d2TdZ/7Gsa/kMMr72VRleW720hDZ6F5hsHq2fuuFaxWbd/n3Zj7 rnRlNb6ZVqzGBIzyQ8Xxeoo3sKYHoyWe2XTr+V+7d0YL5r9XfLZ+nnHtABOZZAoR3PAEuijBGBPr g1bGusUqzHR2RPEaxTkHT7jxzH7WmYWa1SaERyea9VjyFVCOwGGCarOayF71oB4oo4DXzk4ARTsk Lj7PCwndFZxbMZF5XAwPiLJm03iJHG26yztxoiLvkhHgaE9atZvjMWsDvSxhyfKTTqWzOkUi02DV cI9IECfK5yjz5omHmiOzesmAVRxo/h0AuNXN61v3YJQWB2r98NyBVJGlVLAx+FjbHI9FgVfEH4Wn ej1MsfI69xlPUhq4n9jx6WzfLZEN2L1Gtu0bQW/As77jM1F884ffwz9pgn/5n/0LfPW3X2BrAuiN w28r7+3ofiKrdjuZmdbiGtoSMPBhWP184AbNLUs98MmMtK7EwQ4U21vxOvkzKraZNqcTVklocwbt iW9ScISWlcBBAc8Lsfl4zXcAdtq09XUjVtveiFRailQ16A4/izPYrJhks0hnTVE+i6Tsd9CUZ4IA UPOIJJ7Uevj+ass61U018ZTeLzieNY09RSOE0brKKBACAscdzKT2KcRHdfgYDPcyN1qOSUtzjL4G TaJSjYiFlKjYSb/WhyRcAehQFz+ZXK/7PyyqG6TUwBY/IbPDQs+0K6IcFtvz80SGcK/CzNG8sk4z GhIUkfCS5rgxhvyx/n48DuLnHoJkay3OI7DxNjsIx+egbeRDOtSNN5wk3dxtMilkKWHjCqBooZm2 94w3EbfogTP4XjgusbkaTHrggKABreGiiVs7w2ogUPGTqoX4JFkRSMwQgDisqMzRvydNSHiaRyPO yAihYne4JxxfwI5X5IKPn76C33j6GK/uX+C27xB/pnfBNuVGhBxBi3SBXT7HamrXBcJoU+sxSRjG ze+jypZMiqnmvpyVsOH7wnPqM1Qe6YXdyNfJX4MwNXSeuR5nN4x8y6zN141PeerGWFr32mVrwZPk Of6GXc2zbLXiJeQ2G4u/G0sywvS8s4KbOtIOgyfH3Q7rAaRBKGQ4QaFjDI09KvRdikAMBc+LCNqr gDTfj/CdIFIEf8O2XRVQo5ParKIh85gPdwuyAAAgAElEQVSizzrdE3CISJ5mDOMD45vnSsNgMLEv 4n7gLt/xP5qTwHk4NR+zS8L30HvVmM6W+ExTs8+mCc3f0WVSY//PhLFrAlv9vIkMzDey8Dk5XbdR x39WPeha//dpv1UDO89SWPe1GsdDte25/1Xc6Tz++077m7XJWvFk9XNfn7PFxUdx0vtIBFca/5xL 0nvH5XKJta0Wl4dc9xK257gCBwqOcQ90cSVA7/Ct3/wIf/Bn/wwvvfUYv7z8EopnEFU70VeyNv2w VtIHa71Z+AWbunVdO5qoW/iBGyhu0Dw/oGNTnh1gHoEbmIC/QeJv1sWvlXUaLIbQCHARuMMSqRae Ude8xq8vPIBScAoLy/CqgslsVT/G/hZCWs5qqHaahsxJ4bsUujDdj7Eicbi1FrX14x7ytNR4j3Mv V4XN3AeAZXUhKIWLIy7nGI7fn9OwHjkcNrceQmAoGMsYZnVL/wiLed5zzf7V3+Mzevre2TxW1rQ1 jUljxyq+GEgjTihuIkNeyTwHESkKwugdGq10vQjikvcGnB5ki8Mc1QWSul6RDOnMfQ8B0rw2Zzx2 xPcc9GxZ1N2qk4Xnr6cSYEqj4rbf4WXc4ZM3XsEnbzwJy/+m3YWv/QC3ue+vw2NjjFfo9eq72Uq6 eo4erIfwAtKTOeSi8sLgVWVKUT++ycAzn+cKlUKvvzvTzuqh54pXj9y1th4Kl6vjXuzZa59X9+t4 qyywOgzsTP6blQ4RCQMlIw6AEb7x+zC6cw/A3M/Z9RC4Pm87817q08C3H/3xf/LjGj1PxGQOAK1n QgkgcgXI3ARQjxBXeGxbcY1os+89hhuNFpMkViSeUj6T2SEAbpaCMk2IIDVZwfDTJmIehzgh2x82 rE0yNaoi8Iq9tAR0VKNoOTpqls2JpAhKVQMyW/547KumhimSlptzRSk1SRHG+A63h/kSfvQIqMOO fwdbkoRVzFEyBi9CibxMxmwpxbQpwTkw5lHHkJiIDp2JwDADLgLjkVlVBhkTVw+QupL4fD+RPYM3 Y/auE695/KrweurcjPEipFnM3kV3vPHWm3jnvXfw13/5l/ji73+BGwtAjHkpcVC61++2sTTuRc04 VMAjzZXV+OHt0EK1Y2u0pHKgLsh5XwIXQluDNFdkhYKRx/Zzv7gywglTkOY8gfQkKOy8CebKDICS HAP3T+x/t4LWML7avo0lY+ibB1zY9z5Otb9iiwhXNq3122aW50hCDiaQ8br2y+BNJZ/x62BvURe9 +dq7V4xN0osm5suKswocBluY4HzMithzgGliXGuoxjkCrcTCB3yUls9e8KHgqjCnw9pvCazcv5PA vDHmXYy2sxqchdGrr21ZX66ZeDy0Ek6EXeUHGPPEFkYKzj34BS+yCacXkX9CpQCj4Yc5UQ1WXaez KpIru2iEGK3xiPUUn58J5xTGMy8j8FKkPK8F15HvS46TE6zCffatjuWMiXdLP7XzZiyXuRfBXyYy FR4dwHhtwRqrZJZrD1U78MTxiDj3Ai54XS743utP8BtPH+Mp7nC7X6JKWN2iehCiUuh6bsHX92fg uwIa/MX3WrgwN6B6pCXbIMJkVavkXeJyS9J9AohGBa8YKCx14CVZDcFynuJV4JLQuvfTaYds6TE/ FS6PVxcF8zV37WZI6LmOMQ/fY/Ge4wL3tBQ6JqHJFKUwcu4ofNKyzypca2HUPHDZStAtkFYnXE3e 5Lxy+4YcBETem5Tv5jKcQMouiVf2w3OYBBKV+myfkgkI2pY83thtC3mpqe0jYXgj59nFZZsx4XyA hfD74Dynz9HLwUNwUx1JWS49jnbX9ijpqfLBZfvMFUFp997rIRt00IB1jP2s16wNr9qeNbSz65oX YW7rMN4qOCyI0IPmXAXZEGjHvtUtqPdpbdVq9bwa9kGjDtlbxnFM46pek2vjCmVoyqEIxQMjPOe+ AQBbO3xvf2dI2H3X3Db/XtXynef5EPieWYSuXQ9Z1+XhcWpJPnvvuEPHL/UZ3vzwPfzT//QP8fQ7 b+GL/jk6nkGxO9E1i36DQPeMv2UlDhPKMryNAmxY7hUhdDI2vwFu2btYfsBuluqNP2JJUfZ3yzwB tuVtM5xkI+Gq+6mE37GSzmChKOCjFwMouMb14x7q7uQvJy4y7pcVjq7FZA9ro0bAxwUlc/JnevZd rfJxEjDyp1ZF2iqOUqFqmRMxKDl1PnrcI6s68hXGpvCk4lTf2+AeCVUvb1meKwCKNarw8bVmjkit HmRj7WBISN1fwzOYxqzAeHpmnoBsbaaVOzwZhR8cFZH8PFtSB9pV4eS4FfDBOJah4g/xr6zLioYY Ldyjn5orZZWWAJ70zXZqDtrcVlvMdeYlphwogD7kbq34JvEh1mXuszxe956ohfLwpHvRHbI/wyM1 4f/j15/gN954Ba/0r9zyb7RERcILURUuwq9eD+Hj81z4Xv2p3z3PteILSwuyjN7tmm9Y8XDemx1H XgSkoUoLjj3v1YvEMfPcM+/+Ct703tWLguuMh89zncl/9VpVqJr7qWMmzGavxUwfzvCK71/cY1Bp l7137Lviw8Eze+XKdu8Xtav8cUpjity8mvsKBtfkmu1H//zPfgypWoHAQh0dmfweY2rVNUgyyaJr B/OxzhBWEcCtf67lKsh8BMxB4BUI3UbhcrbwkylQK9ogkSA3jIN1oytgJmIhlSFiRL6s3nMiRERM b0AqmIj4vBM6C8VsOmEv6snrcWMP/SpPHJboftYvbV6TjT6q9IyxkJWY1WoebOcAh1zEaJ9WO040 hFG6VAUW79jMOi3CGGbDIkkwxWTqRxuUwUs4IBktNHE+hJgVLAw/C6Zo81dwMgbn/BksSQcP1PUr RhQ4x9fTQl6rD6gqLuh4+ekr+NZ33sfffvo3+Pnf/Qw3coOmPg4FwLVSDJWF7FZ6DBrSmpAGAQ1P 1GZoYCejwpKCW6ITN3DxpKUQDwBbK3XY/fv47fcUKLHwuZiGY3Ca6BbN7vPhGin3AgVHq9Vvc7YY fmvLK7GIeQdy9dLy2YT38/vE8fREHBSTQcBu/k4fcupsCt2+B/zAxO6lSmHGL6/sBCmhHmrVH+BW RMbBI4Tk7BsoBpOofINQ5iAS7ROPuZe4BzfJuddqZGkhz/m6fRmsJhPrELB13PHJiNPjoc+yvhA7 +baXKi1cn4Fe+WoY6NvA8MIC6PCLk8IdV7MqSs6HdMrOeWjZr1cgC3rJOWAAgzUtKMK4UJPI9eHJ xiKxNh3dTp31tlgpXnOzcBI221ZwDWUAPlkKHUF/yRtjDPD5+hAllfzq+e6F3nMYnRZEX2Htl9iP XZPmBf0Q4AW94Cme4ZM3n+AHT1/Gq/gKL/QdTTMCn84qVho6CtTnAvs1IbOTjMwCtVuva6SA+H4d F9v5R/AN0vrs0/hh5mjYjhiFVPJ98SoupJM7aYnYu0WliJ9c3hgURK5b1OtFfh3zd3y4JqfQW9E7 Yl+P/G68LMeM0lj1+BJ+pBVn4UtlDdTaM6i1gN1gmPM9QS/KGQ7EuU2Frw8KF9zo4BEsvfta2YaJ aj4qs0cPUNJk93DNe1GR/M9dhwVyZ+vWBlw7w/eoNVarAdX9EvBmby6HN6c7rWA+4aMaS8vPlJfZ 71ItGS0nIyOatUx7Jq8zKyyAIUaUSVE81e1gSZ+08bnN1ZjPTpicLQYrLaleZzWTV9nWq0MWHqKZ /bqva9ZvXmdC8Pz+RdfzZxvxd+KXtTFVEOKanPVpJaSLdfee/lbXmaIkIkvvRl2L+/IffpVrtirw XljENENsVBVoG3YoPtMLHr/7Ov7xn/4zfPcffILP9HNccAfVHQ0jbs1xkJwTqwVtvsFr1RiGcpnl nqEOik0FN5tg62n9T0+BEeXaXuQDeOhKuGXj2ebfq7eFIQcAXYE9Y9ArngxW/K7Qvcc7diqygtbI SM3jaco92yCrYSIY3E1f6+u3QiCrx2S+xxjo6l3gRcs+Ff9NWsRN02PSFDaPUr0nLK11/QqT4HpW fK3rH3QVDLMbcU/q32XINW9hmEeZT3gJOFbCZsJzRR/wmZZvwsKR09bN/57b4GeOZ0gQPuGrqgot J27XuQ4wcJgO+7AkywOYPLRHmjnTijMmbjgwng48nJPQ8llglPUGPsF1RBa3qMJz7HPn9DPdW9Gd GTaVDoU3q5zeTvzVvfv+U8j+DC/sX+F1XPBbb7+OHzzNmH/RPvSTgv7R8zuv43xds6wOOSsTDl9r +1qbs4WXtHV8z3IaRlliH/jsDmV144SxKwOrNTiM43SEv/6r4sDqsv215r3PI8fMNKy2f+1ayYNn pyoD65yAlSxW73XViPlfyYX3ja22e+3ZFR6eyYzztZK357Hy/blK12os83s3mImhX3TjQb2+cMmS r7+jGx2FqbTcHAcev/0+s5IHjXAhNA4EjIzbvw+hlf3q+F5mlZ9olgURti0Pn1G7CREPscAkaDZF rT3A77rrYxwWCYNOc6ll7uw9wu2cUACAygjvAaFcm1bAYxWt5WAuapxqWAuR49g4Fk3hPuHKNc5q RLMwqr3HSYex+WKeDR2XFMAmphiWq8CDcb4r2mT9mrWV59OIdKgCdT+wRrIJnjOutZhTTWA7XiF6 Lr9lQt5hA0f9Zxlwq+tumjsUn+13ePzOa/hHf/JPsL1wi3/95/8nXsYjdO2A3IZwz3Wr88dup3Nu ztD3YEAbbZB+UoSFIFnIu0l2XXfQxtPV4ejClcItOa15WE6Hl5E2XBSBFX0xvI9hFbrQ3Gqxd7OY G44qsnYM37FtvKt7INxKo5oeiRAk1ax+TbYoUTmEa0AgypyRljHfavgB1QG1RuGlSs3eWsDDn29m Oao+RApWoRAXQV1E3SNJwagkSoqtjt23KjY7HC8oHBO+2CyPw/tjhaasKOQufekAtpLX49WCihLQ AbDcK1zp4mzsnluc/P0mHuveBFspEyIed27waEAzOyICMm5EiVhbJCSVdN0WX9Q8BtvWPP7WGV0i FlK+TMtWVBlDwmxYSq+6hLJv6viAKVnTX+xQYHM/SBlH5DLQVlpwj21JoIHGO0343Uh3e6XTkui5 C/N1mIM1hmPW+RidrcxeobtCttEYo8Oac8JGLJt/b3k4CvQdt9jx5qb4/luv4ePXXsLL/Q6bw1JV saugDdXpBqgO8K778CFXejOMLqUF3A9JJLBoXRZExTQAXm1rLVhWOCY8G/beQ8Fq2BJHgcEjYHt6 5L/hRSNeMAeklG3tvSNCBUp7Y/27vFQVETHgJ8Yz12VWzUOWcvmuu2ccYqcPcz/U6Avj2ePnXvG5 yip6HOEgo2kKPAmFgq8hT45hUTs9hhjxGbD15IGuM18+KDRdg26q6iD3ifOdkNUERT60fIWmY2gy 9ypirDResYrRDA2ew3AAk82pA07onK9x387yYMFJVVdC/d3pOirf04gKv0jDDo7aWNWyrmknD7mG 91WXg+uqQ/mmB7VV7l27zqwCZxrYrKGTkRAhZ5icCYizZeLMavHrvq5VrFxZjGfNOL6f2lnhQlWy WFYLWMP8XKELu2Pcn6/ngde196kZr+L+8v39V8L31Xhmzbv2e6jpK8AzUXyGZ+ivvoDf+5N/in/w +/8evry5w94uENnRlXkBo4IrYSEvDE3hVmlat13ydSFV9h7W8g2CW9jJwTfI5yM8SBFhdpu0iPm3 ajpWgQh+XoF09SpDEs/z7xsPx9ikeBgVQ3/0UABUWJJZqaaAquhh4Z1PHFYXZuMSUzuH9fV70tV+ 6x6/pVj4mAtAYT6S1GSsSFQZFAV+CuVNND0nxbI7W8hy/Psx7n6qytPKHq515mN6CuRhViMNShxJ eGyL8Qx7HmlVnys6zcKl9owdr/RvrpxUr2GuJvUfvpvfJQzrd0GvwP3M8KFzq3EdSX0uAiHqHLBu K3JYdIRLpShzSCq9doQv2yKeBzyaKVXzXIcTlvl7WpNQKspcBQgviqpi33ejR6ro+w4WFtj2Z3h0 +RJvP2r4rXdfw0cu/N/ud5D9rgj9R756dj2Uxp7u5XuuSndrf2e8qAqZK7xaKQy2Rvv0/Y7x5PZ1 P2dC2jUJ6EgfNLyKcz9nc74vSuJ4/5gbcDa2mWbUn8rnZj54kLm47+aqVPfgzDDvtob9PF9tchjr PK9V+7MnavX8Q+WWoFeL55+3veeVXW4sZlUBbD6IDmlCBQqQnvnLIbBF8SicJTeEJZd5ACVGngKI FJe2dsHWblKzpSvS5xwA36YNiWKpKFfEzE7jqtZfavNSLAVsuyksD2HaTMMcq0Ay9U8L4z69U5Fm 1eachHdGKOZrFthlPrehp8Wabc5nAAx9FshVixgtWtVNL0IdX4cZLDcP77OuNzVspPWed3wiLgNM G1ri63uutETZXLsLZYQ/G1i5AFkpZwX/mVSfeQSIr2U+7l2zOL6GrgWeLqQ8o/DyEvDv/uj38MKL L+B/+a//FW7vvsKt3ALdapx3dM+HaC4ssspSrksHgL5DvB7x5jXtL71HDHOU9PRqMV0zdnm06aXF sjnB9LQSP2gk+ZEJ7Z3gxaYmrpsHw88FaBn3GS8BgLKsoQlBAV3inxrxbm4xj5wArpUFu0Jc6Dac o0LhSoZUj5sCEy4pWkE70gsNWqhQiCbxNnj7NIzQBVO5bXZuidUENzxpsJhhEQmGpV6TXpDhYRSw RMQsuQC0kSq7IKeZcNq7ws5XcDxQ64+X2bE3XKak2VBUDXn8Yava1NTrWIj4Js51FQgY3xICEU9g rjRONU7KDWNiHEZU9yLBkX3Rl3Cgmz7OizIR3i16juOCm3FN1ayBW6E782WnG9AiXwQT8kT3IsQY Cb/SBgVudTzld91WHJVOqqrXH0/lUqFRccfq+Sd+h+eg8FAbIyelWV3P4a5gWEtRqIDge9otpAqO z1tzGq3PcCt3+NbjW3z/7dfwrZdu8ah/hW2/QNya3FWL4kkvkOO6E4PZY715n8+b+Ur82ovyKSKF /7FKDf9OeaEeyijIc4oqfc+QXp53xH3VnfY5R/f7dm4JcYaN+P5zelrHpR4nJjiGxgI4kaZyb8Y7 IYQ24yWTIB38lmVq2Q5GCY5taxdYbsAe61eYcc6ZkR8T/70mJwE4yhmeK3XtnRXfnQ+nw9Yy9MVp rsXD97Dy9wobh0I1EtQxbLLFFqnylwynKstgmKjX/QI45YBWP9kaLsSMPMegDfLaSn5U7kOYx2f4 TioGJCRuAnEmy0EZwelk2elqoWbhdX7uGhBXbZHp9nLPG74qIOcCO6LjaPmNRZYa++f074rsfdbO /Ez9XqGni1efX1kcfl3XrGnz7zqmMwXlvmuGwRhu04qzHIVBGEkaD2xjg8Sj5x5KjIe/bfPYCKKc WcCbb/D+Nt3/1S9jOCPjjjGQd4fg2nBRxY4LdBP87u//+3jy2qv4n//L/w53P/8SNw2QLti2WxN8 1EqC9sU+a1437KaZKKn7BWgbNhGKs8aMm6Dv5rbcfO5mYTQxvAM+Ts11lHrfhUtBJNF2zglmwW+e AL6JuEAMqFLNGOmQdoeX739Vs/KHNUsRZeMMeBqufhTLnaJDenOG5rFhSIEZIlFJKQ7n8dq4Ecpz wCN7N8ip6ZR5IKHj0SYC9cTlzcEUHhoBNvU2XGiLdbPOTGB2WA5r6oReVe0AqzKWzeHIw2vqQWBK DU00YtWZh7VJHhDkkBroQIOHb7nFusKFIRp5Hy54TvioVrbQ9KCt1N0+XrbvNQRiW3MZ3Pnz24bv tP7nvXpFzoSYYrNjFBDq/gyhnAoe92qp/1/h032OvRgO4lBKkUjaZh+chJWuLgppa1becbM9y8Ob CPNqxKn9MPRlCB3gdw7Hgc5TCNoVLYQpNa/e/gw3bcc3X3mEH771FG8/anhx/wq3ugO6hxBTYVz5 vgmRaxn/oLScXKeGt4OYcuRfy/cOn49C4Dwf+3Iaj454MceSx5imsT0vHw88LYqeqoV4khYxv2ag H5OAW+8Nc4w2R/lklbu3ulbzoQFxkKsKXOa8ybXM8zA47ftoYlV/n57RCn/Ca4ZLHcdKhpuVLxai +Hry06x+OdwfMN3D3prGx7/t4Ye1d7M589/1+qLE/WHwFp/ZRA6W7nlgsyC8Qhw72RcwZjkSlDzD MIndakSri1YfrOYUAJut/RmzPgi05VWemssxDJYEJ/jcYDzwpwMhBM7wIGIO/TkzXzHS61exGqpC oMHstm2L9VaPEdwgEYp1NpYKOwqHcT/k9pHYUfi7kXQUi8M74OQzBdRii50gRaxuGWfMaxGDyHnb uzW0KGOTe++ejF4YZ2vFOnYMRTrD14ddU4jP7vPbeVS7wzPWt2rqCpENX/YLeuv48B/+EI8ev4T/ 4b/4b3D3k7/Ho+0RoLtZ70TA6kpmKQDMqzftO4wsV3RH70BzS1YTj5dVs6o2tQoK3U8G34Oht0Fw AfoYbaOwyj7CMBgnvH3H1gR2RgGgu1nSaUHsIQindc4+Gmy66mDESKKeihzxRI2rQWSzk1mHWPv0 bJjwPyUrbo6P6mPbXIkCTFhvvlZeU9q2KRkeHRCSVWTc89FQrGciUDFvCLS5x4OWbIPDKknNxsjc Hu41zjVXuAEQ3UzQ9DAgcbqk2oO2WfnULQQ2Xg1ca7HYWJhi2MTosRR4AT32qFBJJD77XrZ5mxBs zVYaRaE4kLXqPJlDJX1iofbFjeS+DcYPqqoF69213UhTmuKGAlBZFwosFqKdggT7aMrkfWtn8xOX eZIxT/KFuGW18jNfL9GOYy4Td9Oa5hz4sceAK4yv7N1PHVX3MFb/HfdDgRMUpvxrhpJsomj9gsdy wfuvvIRP3n4d77wguO13aHqBNoV2qyizFc+PrSOVStt/25B/UvHYjDAPpaspiOsgfNfzDKpglHRv FPbUq7fsfjL92SFaIgLs9BazvdyLZjxpkBIXbyRqC5rBZ41O5DOkC/eL12VsbumYFZLc8654ylGR GUJp/PWIOXdcZy6Y0pDg9HZjAYVZ4ZoOeDviJcfpfGXLccwHYxqekOdzeg+BToaJ8gT5OCH+ROHa TQUewksBYG/2zhxGyvHRkAIg6Di8Z5sLP5+EMtfSRe5P4kyB/ErLcotI2Ks4jXN5jOv0cDlFVc0D sGqY15lmTavuBvG417XWNA+0tjkoB4Hc40RmQK6EMVpYzrSugXBfqY3L7w3wIzPVlkL8ak5YzLX2 K9N7Z1aB+e/49DXlT1UN5KKl67pgfx3eswadepiEwHX2rnRdMLyp7yLoWILNeKrsr3KlkKiuEOiD LR2/ruuM2RCmIWgURq1Q3LWOv7t8hvd++CH+w9ee4H/6z/8lfvJ//xu82B6h7QLVDXsHeEif7n7k d6tzdqInJijQilmPBe8uEFApVO3QZnXk1celYs80mZVve28P4cLWswFgnFCHIg/BsnutkA/xNgPz hy3mISWtWRKVuA3ehdSAo6TApkFTkIcGOS3efP5eyd57YfLsyAjq34kuR2VdkXsuhJIZ/jRa9JLU 7PfhY9ZuYTIm60vCK2iJh/KVxC5g2r8KeMU/+9ik7DHv2QBl/gR1A0WETmQYAwUlWpAbEEaEmFfQ VgrzaaE2Ydpxugm0X4CthdeK6xfZ+hPcw2pYmGjwjTauFfvSgFsqhkF3KaRTRSBdK3uiVm/hvOt8 OR4qLZsA3ZPkY9z+91DBCVV+08GbILkRRoUE3JNJx/l8dwU6BBhVCwuECVIdgLAqAnmPexq19zxM TTtuAch+hyeb4rtPX8En33gVT286Xnj2FW6wY4cbDEps+MMsn/k933leml7p5BlPH5WAFb/29Z3u r+SVNs1F/WAwAT21KaaGYD/3LUf+vxrbfK3GE+O88n6VY1brUmlRKqMr2S15z+o6k+3iO+W+5VgY UpV7YwWv+/BnNd+5rdX3ACKJeJQ31+Ouc6z4Ucd7hr+n43fG04dn1s9apOTD4HAm063GxEf4efvD P/qzHw/oKV63lNVK3ILCuu328g6FBPOJhulld7IjpL4Aqsl6BDAji5OgDodqTD+1znwnej6AkDCJ ke9vSGbKdmsCUCuEmGM9qjkFbGy/9MfwAhNcHHZi7rFol8q1jAsZyHc2vwkwBwLD+xMOBewhLsBp CO/BCHCO4NXCNoxLydjygJTN2VPUPIefXMthK6DlHAQLEXLcU9a7V9+UGUufiln9kRxIACh/M3s+ NzEtc3MCGAJvqwJ4P7PiOO65fMGH/a8cp8QYq+VBBF6FUvFML3j82sv44KMP8eWXn+Nv/uqvLclX m3lFVKPuPWDhO1aTm3G93mGD5w5orJ3ALK1MwqUQB6U1Xn2pGCbiIRpQd9a4Nb8IqsO5FvZH1Ajn WRabwCyqAOy8EY37qvQAZD16woXrTkpl2OcWWdmMdvkG2GSLEyBtGWiVNSE0Tz73NfAlSXrgtZMc D2OOs0HBwSvdgUna6e8Ediqmmv5Hj4eIAE2dClvDhrGlhrVb9aXAieVbwRhyh4s3G2vHwTZBxJvb rz3mZ/CS8HKYh6I5TG8ixnzjqZnoXiHI9yrXhSFVw7kQLWiXQv302jwFUwB0r1/uEjzEz58gLEVM 8TBFsLswb+/U3UjYMAehnnYsvuYQuEfO14LPGXOK9YBUfHPcBJyOWq1z69xORxaHHfuQXLygo1Q+ pPBQwhANOV7kydPcp9FO7GUBfP+S0Fi8fVFeUJIs1ZhX6ztudcfTDfjNt17Bb7zzGl6TCx71O9wM oZFjFoNIACn5ho/jjG4+VPYPfuh/hyLYRuF1FoKinnuVJUQs/KyyrS7JLP2sEY5fc1qQtuVjhIB0 q8zmD+fjAu4T4T9xT6jQE+r9cYQTPJJPuUdbc91Ud1CRq4CsBQgCDjKxmBlmiU3geTyAYW574BrV NhOwQK0URPKxEvQ5j6BIcvxZDWVQzviEb72co+HrDsuJIs7Tc9VlzAOS8u4w1lgvruc8Z/N0aPMw qiJ3ABaBEmvBPRn4VJ4vPzX88KT1hHQAACAASURBVAzO174b5kD+IPEwIHOGlL8QFqwiiKiqm9mP ib8hEJYFmWPW5kGeDXbOOZ83eHUbriwCD7naSBfW84eENaj2cU1DvSYw5numDavXnt6K63r13jWP xmrs/H4W/FWAtm3ol318XjBYKK5pk4dNCwxwsc/2bFN4qNP5eId2S1vWx4gz2a+F7zz8KjkdZRxV Ax+tPKlAzPef12J17b1T+Pq8mfDD98n4nknH3/ev8OT1F/CP/uQP8PjxY/wf/+P/iv2LL/GSvOhK gNlxLSE027Gyc2mNvegFMu84t853CptqwocqTDj2cCO6MFkHHhCgtyT0nKOHXDDfINQ1FxBsqY1o UoiK1VVkzL9kXDrD4oB0ZfNqLZ817ySCoccZCaCFtwjkhQCb8K2RJC2VWATj9QOAugx7J62zNs7d xx64AAQjalGiz9+nMBdCojH/FIIMuDX3AFS+NhMqhgoxpT3StIaQJUYSSK+M7vF7ay3zL/wZKgEN m1X5abn3GWLIQ7pCifWQFAoA9fnu8GiqmTA8MDUTgkLY8bwQAOGun2mQZ9W714JeR+ZtIMqgzpd5 NuTgpRQtc9KEX30nnzXA0tq5bf6eh40xn4Hw4bxEMl8mTogF4/mP/KEaYqRzk/qYuu0S7R2ywev4 mxI1WFyDr1nIzwv9Gb7x0iN8/M5TfPfVF/BY77Dtd9i0Qy2WLXC41TFMNG4WoH6VK9p3GBM2c/L2 mSX5bGxxNkT9rqXsM7Rbcl3inmR/Rl+P457HV2/l92sYjZZmN05o7gWZcPCkZP+wX86usa/cV89z XZeJ1vhbvRX8ruYHXJO15rUNPjnJh7x4BhV/R7jiAlfP5IGzOds4c0z3wUVcGRjooebz1fg3n/Q8 w+Ts7/qOjd7HP9Gv7Q9/9B//uAKKVrZooGg81gmKlpwbKC1okyAbVYB8jtoGlS7H7Jq0myzbAuA2 Hj/hTfuAALS4q4yaPyuMjPW/FTwZDzDCzFKDHZ5Y44vZsbsQ0Ai/pUbK9gPgmgttC+MWSbiQp+Kn DToiF++DwSUR1GLO0ooowOFngNFMfMTp1UoYVcSph0ulzDsQ/z7i9+L+uNnsl1n6AZjmLQIVr1Yg ZiHkj0sbZQMzhrZZjX5hfKv/5wSxOTSTkXJ1AgqHuSCerRtJh/uEfWsU4ijQNownA993Ze7BNILl 2AL24spztw8Kg8e2ZWnGrnZqsNw2fPDRh3j86sv49Cc/wVeff4kb2WAVgjTqsttWNatx9fbZSGgZ 8Llzn7g7T2CubrMgpGuYVXQihMJXXFASrOFWYT9TYCSlnK/HpgPBVJukhbfRSszxTZCkZbo1Cpg9 BRR0K40pPnZau4VKRHcjlTpe2fjheShx8Bl/+w/EEiYBx8uSQ9AalRnHzpb7lh7SOm7APDMcm5Zn ExYjTAYskoSmWat9/JyHW7JF6cF0BbAInnxXCpwrkEWA7ngQ9GfCq9h/IhHSUvHa1t+9A/RQBCOs 66/RHpuiv8LGqx5yw/1qHkbiMU/4tP/SeizQgKkYYJ12sE8uTg+6VuHbyvysHwBaq99knx5ogdbS w8p2SUylrBuRonpQWtvCKKIwDxlzMiJhHokjcIFBdy8DrOohfT6e7t4Y7XY+y77Hntj6BY/1Gd5/ 7UX87rffwgdPbvEinuGmP0ODj5uWa56gCgFPdxU0J82KerI6Cny70/swAbhFlR4SGuKFuUgw+IIs wu8HegYMSaGdmikVZePvVRoI5aW1yAWAdA+TUxMKIR6hnfSTQkrKQL5XNT2AUgx5FAi5xhmDX/ev wSK8DMDwvpSJ2rgdpzR5MYChwlS9hpOjIQC9Bo0CsKCJBSMOtJG9TrIITu7P8fz5pST9WdAVymVx 6COmCAzXsZocjZkcxwAnx8+p2FSRR1y+83GGAkiPouPGuZHPEuMRP9O3vt78V0aAuu4qHbQSDIop /wj3+Egnxr5SSXiIkq2+j+DzY/4TFLg5W2g+nPerWsyksqkTIDb04TuWeBy0zQKEogF1Z6izNm9/ 0wV/TLZQ1UP/PFgiBEwyf7i7v1GozD6iXFjtWy15tibUZPLoNcTxNkr+gGAb4Ndag5S25vbMgnba /LD5ButaMJXr12w9GcYQRAQjwlXkLbDjZxGJ0ny17eSVa89QzJf92bZdEKQjDq6vkgQ3zVmKkABg gP/Kcs99kFafr+cVuHfEPRl81zyYjsogrVJf6DP0G8X3/4PfwWtPXsGf/1f/PX72Fz/Fo62j6Q26 PoPI5gJ44rF6XLgJQqYMM7GS1nUmlQK03ruYHkKXlQq+iVjTYql3wa7DDvyyBNI8dryX/9Oi2iHa BnzdvC+WErYqMyuc8TH7+Kh0b77vMujMnZhKJi4x7upVsKpGZW0nBr1Jw773TCQVyUovMThPeNMt E/N8rtWqKSJhfSerEN/vQVELHeQ6RTemMVhfrAgiLljpSI9ZHUjdGBD5IYs8Efandrqb5YNMxQv4 zNLaWcY1rJUQNuJ5GNbermnlrfQ69mgx/Lg24LCDrX14tkL2MFz19VHJ6j9KbcfhG2NuJq1oHW+Z xyaG82qSBGi5C5hUoavSM5HwpHCeXTta2ddc/95a8djYHDYglBxIz/NXfD167+59MeF+qF0vMKWg a/A6qOIGCukXiCpeahd8752n+Pjtp3jadtzuX+IGOxBBtkcrf4wPtp4VLaq1e7bSpkA74kZWbhr3 d1p6kbhQ+FK9CMfeeyhPGPq2i2cd0NAHpFBtSa/xIBRFHgj+Z/i7qts+91XnMf895w0Q31nZJuiE JG06tDu3GX2bt/bMU8K/u44yR4aUHTuc9/k89qEPTT6+en6uBMT3cr5HmaR+f6BT8Xscd+1nxa9D flvMj303scIFs9H5bG4PvcaytEc5fElXi+Lz0P4q/sxKw/ajP/rTHx8eHiZ1bNA2lgNikjJZ5lql m6XCdm6EHkfbELj5DEbg7RgbtERM2VgtYgAPqNFBNbpmrFjzGMy4n5OpnaPDxkcLi92rAyQlJ4Ew iwerHtEikWw7BYFwI4tYJQEgrH8tYgXdgi3JAGjtOMQKT/Cva0RLb10oMjzONX5zIKGlpoWaloW5 lBhfq4hjCJXnNXgLfNLXg0zAbPV5gt2I4K1tg0Bd5+f03pXibRDKLP8k+zteiXC2car4aZ/zvnjd cD/USiSmQ09OQ4sQCApipvZvw7xX/d93jYQ07rqQ2lKwdUZ4c3NjxMPL/d2h47W3X8e3vvsBfv73 P8PffvopbhluoGqVh3yNaKWwqh0pIDJee2u2tswbMKud52b4fCLBFbE9QAsrY6bFpN7cRm5lMi9C tTg5LQkThcONhkfHUQkLjMG92looD4Tgxj0jyVRjvEg64WpkeAi4ZhxnbEo1GITVXiToT2wrh5XC Y9IVgJ/JYNTB2/a47hJ567+dTprIEbkKIL1RxHhoJGq+DyFOTzXpL9sj3jT4ZJnH4YunXEvu/5pf ENY7ZFJpnEjrTDhOiBupQVRxC2sq97OvT/O+Yo2rdVTKHNzT5HPPtSQuJZzIkzpxyseu6Ja0Ssbp a1gFS+4QkcSH2ANKSmP7gx5ca697aSQMfcaaE4ZUhoR9+NjMDBp4n95l8jn7LnM/iudSu1n2VSOf p0EtkVrhGf2OWy74937xvdSx9Tu8+UjxO996G7/17ht4VZ7hVi/Y1Gr8j3RTkg46TYzENz4h5Ckl DC2nHV79FPCSuVFpJG4fjVrELE3olPGlAEy+YEgjpOccI/FdJAxrTepZJKPCMvcjxLGq2MQGKoRR uZ6833IKDhAqb1Y61jzMXUfhn5ZrXulBT0NHjqHsJZKMgKF7sLkeAj9QknvK+dhC4Fgp+Si5e8Pt ThxwZfyknSheYIQscjLj0D0pw+gp1h+UUNkM1E0PY6lXFCMAhuRuesUOngz3TDcaomfZpPAYH9mA N7FuxO94jHiK0k6BbazPBG8kToyK8WJtVu8hcZP9icioAKwbOhnIWNTR/6Q13Fhr2vx0QmO/29Nl w+/3vsfmDKYg2dKhjRlZgUKw7d0ux1mkRWoxLv/dnZBbu80IMBduroEsufBsd/4MeDIiiR+MAdRF rZayqhnOG51EmJt8tqjEO4f5jYy6CnXazhFpJMb2nq1RMohVbL6CAtjMKCrDOFpBbPzcmC6oTJvf nr8/LKcykCpgj5YpXz9xF3GBPy1XRliJD1z3xPGvew0b2cfX2jbCiYLKbBERs/xd0PHiyy/iux99 B2iCv/7JX2Hfd4NP76ZICDxGssAGtBanEgq34Ag8UVzhwrcTdhJSICybEu3Rbcs7Hdvm4W7FaijR NzzWnJ3zdFtLF5eWQkwk8AKQSMgq7RF8hKUiEqJj2wifbXE6sXBckus6Kw2WKLxeP65TJKbCaSBh KQxlKoJtec/Wkq54coyENff4kBQf/0rYprgl1UFJYSDyGAo9if9dkOV4mCNAD0nQUWV/pCmlnZET BgxbS2VaQByuwqEEA+TnGppkVnmCQ4b3gLQwxm8p+FCsj3H+hzqSkHa0pB1NWgkVK/Pm+lfcg9G1 Jm1wLFbrXGst1kXZmBAfJA9CCmGa686QHxQhg5WyRnznIV5RKtrDfNQVaHUFIEKH+gXAjk0veKTP 8O4rL+B3vvNNfPD0JbzYv8LtszsIdjBvotf9uqj5bxcLPMiEzxq0u14pcMow7xpKRcG4whMgf/Q2 ZabrfBfjNSso8THHzcesjSm2HLWfHosSfGHBM2Pf+t43T81RAjJ+wn2QPG+g+1p5XY4Pc2sy/Fpe lb8c7kcDRz49e3FEUsmruRAiAu0erujNzPkyx345zxCs5ikFnziZFbP8DjLUzC8PfS7uxTs0cHNY h17zj+V6KAI3BqlIpvVTjbyEuaNZHp9lpNmav7pm2QrAkNd28AAcOz8CjBOxxolYKfzXCSbjqjMr BEMFPBXP2iHmjBpmQ1paB0AYZEIBZ+Ud4zomtFNQOOD+hGyDQC0eJyaMv62x7xrWAv6ItkILetnY 4aOOjnqtAitmfRavUFIt97FhbXADU5sRUBgLKB3MQ7c2OMaywctPjoMNGtwSYh7yQmZES41DNY0e GvF6It3aELMArfSKajjMig35w/AE4hijuhkOY56PrHZTWfP6qvg8bv6BABC/PEYuCR7ckiiBKzDo YN4aAcer4ykjK2ModGG8wlKgIZDYuivaZqEaz3QHHt3g/Y+/i5deeRl/9dc/wbMvvsRNWWeGl6AQ ShNkWIWHuQtZDYzbsjX35xSBpgGlsotGBRdauENw6tzvWeWHluGogsCGY7CFGalb3SieUXAVF5xZ JSOq5qSiIgB0N2WpQWLNrLsSA1vH4fAJRk5ZgfvGNkNYiTM0kW0x58eVyA47UVfyx5rYHU5ZzlNa pYU5H/PMUOi3+/S0iUuZA60jCXX4QczTU/O8tkjs9NwF914kHU18qzkAlq9QvJekKdr9HIkeNKyJ V6iCwCoMIWiv0OMAGny6t50KsdFigw9xjUoC3CPBnKOkmfOmdJpCeii+B4LOkKJp2WuunIYUIPmb Hg1JITEMT4NCz0oxhKfPT1vQcwXCYguunc91wG81fDGLpPg4O0Qz7l93P3RRPcxIFL3v6PsFTRQ3 CrwkOz76xhP87nfexTsv3eC232Hb96gFj9gj5M0LPuIC9EAf3bjQ+x4nMTeULe2eNN+IA0Mm3Hht MlNPGmCQgIeEotHB+G4FvVgHYRq5rvauzUNKR/Sy7CqoVXFEkz/TMDQI1OQXxLbIMSA1pEwo1WFW 1tz3OnHM25vH39SUheTXjKBYKxg1DCciK0SgXiWtCdsmQx6vyKHQ5nvU23aa0TZayG1dt8bTyylI k09iOrXa22HRCSfpkeOAolQseCgPgAw6AU2aYJCCSLPqO8gMtSpXAIgcisCKQe4t45xh20hPx12b cmy+wSe6aen+dAs5Yjb8rpQT/n2Qw9nHrKRxD/i4CC/2yVYOVYBqg/O11CaC0LFzbjqxTUALd1u3 OfdVT46NttVcXvVY+aoF1fARqguAI2klMsOCXZ9rfQeqxRoyJmCNbZNQZrsHNnTSfxDAkwXmc4cN NK2DGYVqXoJgZZnPfkt/Tci3D3M7kpcTuJ3khpxdwynBZX3muEubZs25UNT48F/3dbR4jH3cN6+H XrX9522TjHffdzTZoFD0tmNX4JN/+Nt4+o038ef/4r/FX/3rv8BLveNGb9BwA5HbgeGqqp0LAGO8 di/3VKwN81iECYaAx+wBqtiYx+LkoKnFPFslFHd1iyuqjus8UArqKp7LNlCkwM5xoISJGHWL/AEz EZiSwBhtxtgaI7SJ7VpCajSVjYhZN0kCTbyCT10nK6LkBxb6JLvaoWEdUfUKHn61BVu3g6p2r8hR D3nK34oNlpyhvt/2WvLQhQEhjfHflrJY5iCIvAqrslP6KgIF4Xm5XLIyBsQr6KgpbA7gLlmdBpoJ 0HGeQcXHymAVybxV0WwAHvJAYT332WCncOE5YK+Km81E9L0oJVEhh8KC01JR+DkYYz30tEDDvArq CnARwMKypsClG3yiaoe/I6qxWQRI3C9rSgswhWB1xUKExShSeeB4h4vz8opxylKtcD7rq2aI3V3A MGNN127JrF0g/YJbANvlgse3go+//Q188vZreLntuLl8YUaqfsGOUohiByzq0gXsfhlwliCd6SSA g9BZf9frGj+Wad3Ormt0c5ALJr45yzFxz3Ed4akf50lP2GG8fEay78AHzVCiGjpE2WIeE5A8eMbd 3b88WuXXsJk/t4qbiz6e95rf5biatMjF4Br1UoZ5HuO8jmd4M69jPLPIY1Idc0rmPs/an5+9T2Zc 7QdepI9GP1wuXshxhA+Yy3R2jsMCRlV+OJtP0OXp/qkHoIAAgFmvqltu1pCoLeecTDiBGvOPAcWE XOP0H4ufNUs63d8UcEz4gGl4pxZVmhRGBI8qJVc0p6pEhFWGi0QLQFiohJ+mdtiHWQND+IjgvFFo Dz1Ba5JiWl4W8na+60LUyGwZJQrXeDdkJ5IWONHQ6uHwNSuW33emXEbr45KwGFTYHTcjHXLEhVHQ Ue/LBAET4kWAjSEWg+VfvfpFhuQg1sNAmkyQ4yAsOffJ1HRyJVyvWwwyVtpd3AuCmnhwb7ejsICR SFTrAC3lZEC9s5yrW2ZglteuFhL0THc8efoE3/nkQ3z+7Ev87U8/Re+7CZle1i8S/KRCycbNGPeo DKG2T2ndjWo6xCHtiCoJbi1saHHqtcArP/j63/jipXUbsHJ3zfJ4XKGxcfWAuUXStOinMdSGSj8s XGwjk4yxS3rJCuzJoLhYEqbdHiFOAGy8DYBEOiq6dmxKYdgtXxRglfODVyiyf8RUihHWP4o3jDSm JU2FIAOeetIPGSmHUIuih6WxznhaCG1LBhuww7s0evSv7HRiGiQEiDr/cU8wwNPgnMoi6Wn1GFDx EvckDMy5mIpNgCjUXPyAK18m9ZM4WTVJYtyGH80FZSk/9Miq7xMgvTdeeM7ak8Th+qwYuCOmW9oW 4Upm2NPAG/F2GDLKMxYoXEaokSR/gjKW3/rfFB7fn/tPQjHReFYUVubTFVcqr0qNQxUbdrzQ7/DO kxv8Ox+9h++99Soe6x1u94vv2w7hwV7lvIDKBVokgCfu1EsiF8qxm3SS+9qrwPGRrNZj7TTGckOj 9amH4RcvWv55ABqvWTgKITRwmtZx52EM+3TeVPl57TbYdszDLd9oUVSkF+9xCMDlt62L7czdY/45 9hqCf82wVS3VNTyLNnvzFCAUD1rENeaTss21i9XvmuN9p580QqE2QEfFolqY6amo4XlD+04cIuQt 5MvxiipRynHxWZM5jsZpW0PmFLTDCnrd/imkN8PFzahjcol4FaujJJH9rtcq6GPzSlfd9wMT0GOv 0uPnoYGTDHAq2AfcbRZV/mYUBuD7jSTKAS/S7lcAzmL/ZoAryMA5bf9epZRmynJ5MrcXMxv7EDId Lovkd6MAKt6D9d6C4C+E1NI329mmMpwx30CQLMMIVISa4aS8Yb9S4xkWNMbHDRMCMj0m55sfWAnf MiA0Bdgcv8NncvOxBVpnE/3HdYi/V1aR8jlTAmRoj3PMqgujghfkYV6rUBQmgizWRsJhhpeW39dh ubpER4UjlERgULySwJ4Tr+fqt+AlUK1pPs8gklNpTRkVnR0dz7Dj5qVH+OQHH+PRiy/ip59+is8+ +6WFoEDCip1EtOK4l/8soRU1Hp3eI9q4tzYmaWeCKuPs872a4GqNB5YY0bW6fD4Teog2dy/74kAG fHBJERGmIlXApkLBxyQqG1ECr3hEYQ/8JCk82/o3F0CNK4ki39NksS7zYbAQQQYlV5oZCcSlpbAQ F4UGYs/UcDPxsUc9a8BjO5Htsw84A/CbzQEe30kJSZLu62j5SqDUXeePEoKGGo5AXBytXCPz0liD +C05HkUqEfV5cZwFxyq+LtMpsElGkr4aY80QTACZPzKNXTG+z2vbtoC1CQJ5LgDhEaD3YUSFKCpq glQavDMBwBOhpSgb9n0Kwwjh3240iJ3i27t5u3q2Zx4Ts+pL/8pCft5+Db/94Tfx7pMb3O5f4LZf INhN8RjwU2PfjmuZOX92b/YqT7SvGNYADN64Su8Nq7XQcq7/WFzBRYnDJQVOdc2uGfwq3meemfPf ON165OeJjbMgXfi8SB64xvGlwJJjbm7Ucgs1x2PlSdfVceJvx6/Zkp7P2rpsUqqPcaSyDqe5dmlZ JxrI6mdg3N+x7wQHL86KP8Z6lb9XXpuorkXFbJKd5nVXKmCFztn3lR73bBcIDyfsqzyDBqOisIST rnEu5APBQYEY5D/kBIMPncGqjGue97n8we/tE5ObH+ABWHeUEyeRI0GdEjaHJJFC2F1zbtBhEYYY 9YKujO2Laj8HAdzG2qkB+9jFLcg2YRdQfQzU9urcyOhzw8adAkYPOCjMht900dBoUTTHiKFnX9Rk w/SUG4zZ+rvqAWFyHBsYK2GEpAe8aIkksrPDqMqE0S5eLXW0iEU1kLDF+HocEHmMdWeMJ+eRjNiO Ba/MkgRfXMAxAGYccyaGpsBn1uEIcvL7RwsIcwZ8hsMa1ktyRwTjZsvNq+zYMNwzRYt78vAlYftV r9peCtvijJF7sqH3HTdbqaQEIA7rE8PHCzreff+bePvb7+GzL3+JT3/61xBtXl5QPYQo3bbcE0bI DSgu4+a4onQlBUF1+Ln1zDFHlPcjm9MZpLUbYT2KUMIVeYIslBbNwkgpWLNPkVgTktJQVAKWTp9Y t17FPSbso3lICWPYswqK4YINsjkcmnpsNGjdorUZ4LkBRRWw79w6zxh3cA5QbNjMY1K8pcwZACz2 F96P9h4KjOULwPQ1SZiKNhPg1dVnFU4iGI5CPblUYw/x0CEKgErIEc6SVs2uFg4kUORpx/kjgTNl 6cjwXNiNHIYo/1Lfk6Cn9EyWDRLo5NDyl5MWxVwJt2JejRr2cxKvr9+u+zBOKmakEcS9wCfSyigP qgUT+bfBmiU9FYCdpdbcq+G4rYjKJzYdz8FSL9von62Wv/1mLou9v0O04wU8wxuPGn7zg7fxm99+ G09vgbZ/haYd0D2squrzUfXj/xyham6WKiulEaaZK2S/Rz5BLz5j9pOeebuxcL7/nO9QsGsqZd/L oECwTG8cIKW57yuYDYfsDIIqqEsZr5UK9rw5xmdXwTa8vEmD6IUhuhlJKnyq4BM/kC+nrEG8cHoh N05Prgvo5vG8xs+ooOTFvMUq/Fdhe+Y1XCcOv46J86TnA2r0iNUPsSgVvLrqE2GsKUaDejE0xh8e owQSMi53plxRR75JfldHYLTd8DW+Iz42iT0g/myOz32rXA4fz+4GIBpIgv/IuGJBikKQ0IBvlSfv Cz9iv0eoxrcI7ut8zg6hdbjMB4GtGz6/BqHUOOvyGWotWZc1GaCgEvKTtjG6l2d3UQq6af2zj1Pi bFmIiOtcabCL+Q/tRmmHCKgBBWSACoqAZT5Z5aC7wN4gU7UZaorBoQBJa9dxLZLS8fuwUEupmDKt j45vL2E93KNgOW3MtECMyDdr7PnuZMnmeCIp5jjeDrX4agkUTqwRPay9DMw/tuzJjHOOlVDPs8qw j7RmWGxn7Pol0fpVrzPtv8IPQITYQGlLIwrZ/V1NAbiI4snrT/Dhxx/hpceP8elPP8UXX3wJ2UwU aUDE+LeBiE8EnUocErpDYrSvNQmgVYJhgrytJXXwzemFJfwVSzr3dmr/qJZCAUDKm8IWQgAC9ynH 5d+FUAo3PNDiGKE0OvBWa7uDYRpB2Ls9RE/KygJus5Xcz2CsOcIC2FwQYZssM2r82o+tV/ghcD4/ qRVm8l51wwvElVUXxluDDzloaJJqGgWS7hmaScKdApTvr6x2xP6QhyYhvVYinhQ4wYYWPBOwW+w/ enrtXBSHeNlfswWMCcE21Aojjipp3kC7Hf8ouK34iGw5rmqhCx5C+BPfhj2AItjBc0JS+XBp0HGP ymPyoq46hIiGsahn2U/1fcgDfVghakPHhgtekDu8+/Qxfvvjb+KDN17BS3qH7XJnXgHwJI7C9+JP p99TAq1MHoHjNQmSrpDSAp5htr2EvBIYxSgUoxj5CGEcp7pItku4Z5ho4iRFVhoqkm/lc2w//8z9 MPOF5XwjDHHxZOy/xLOB37M/LYaUMo4jrK/zs3jKrd81AmLeP9f4Vt4ua1rkE1qQCfsh9kNkmO/Y 7vSZzyPbmuexbds9alEd56D6GMeQsYrkMC4pni3rMCoYDcs6ja2eUzV8T1lMRno6e16k3CfNAFAM ErlGc/9na7b0nCgSj7XKuvb99kd//Gc/XrY2NTRfBOJhkT22KCylRTMDqntXAUmLcl4lyVZLBQZt uGmbEUBgqA3Lw32oGFAw6L274VYRFg7fkCq0MhKhc3Ou5hlJGbGw1IWdKdPaXei8U2aCJawYBH/d UHwnBYpWktNWC6BZIq9skIjjTgAAIABJREFUNlYYmecQfwNL0nEqwPIFIpHAhU6zyqVHgMRss/V3 xhUuckR4sq0VJBg3N5+qpkckwg/IbOlK7gz3PiGQ8wzPZsw23PITIQI94u3rqdY19ds2pscaC62I E6Es4/s6ykFsYJQ67+U7fs+TRmsXhNW2be7lMgJ76R39hQ3f/PADvPP+e/jF57/AL37+M8huh1sJ bC2tekgLRcC2q58TAKK03ed5GmHZ5F6E48R+wdZg+AAqG7ZzGjzcRxWtZ5lLEWCrXiw1JaEJl97G sTneicDO56j2II7RFqRYpRUiClH1qkYGY9Ik9efzPbu/+W8Kcmadtz5sXEZ7wps55DZZrkCHosmN eR9QmL1qnHpNyyXEas6zD6jt937wzFmM6tYa9p4Vfuy1XrESQMb7M5+jc38JHN/zDQr6ynVwOhAM DkB4DFCsk9oj5AruzWnSLN+AwruV5Yf6OLTviIokxT1ZHBeBc8OPDcnwooTQtLCCppcR8LYawuMQ Fn4RZPiHdUrlcmM5S9K/wJQM37hptOLnM4YymooCuuOPxn4KfuV4wH6qB0lV0S9jPgC0h+U/1qJ3 CO7wyq3i+99+E7/13bfxjZdusO1f2KFf0ICliITXwSEDIOlKhhTWVVyEnvBUQVShQ9Fkc9iwypYr MMGrEG0Hj6zNcu84r6XFnDkaCib8d/cccD+Yxd+ceMVPXJJ3RSxmH93op4Wljh6NMOyFwD7T38qb Jd7XgiP8avSwzx7wbL9CgZ4Z6Ejv71MAlDhdcH4uW7ISzPM7Ws8b5j6qMh25Lu4FiNCcNinnzgvj nKEyeintsu2QB4vwS4Mp+dN45XrNUzI6hahMZ3TPck2arwtzq8THWCNLVpJXtwU8FctIH7sr8ik3 To/Fb0GY4wFEBMgEm0G5PvEKrJ7TJsXLh4M8d/AAnP29nuv4/ejimtqRRPbrV2FC9R3NDRIaU2US i3GHZim5fZWA8dhiEr2VxXw1t2phUBJs4CpCzNcQa8YF1jJuv68Og/uuGa6VED/kesg6Hz0AMVK7 phhRAmQe29AOx8l1HPokA3YLZcCnWE2ujO+hFwm5zuM+PhkeIyqEgpYl/jDi3TUi+7BxsS3+XfcE ENq8jM9XWO/7boqWx4bvUDyD4hl2vPLGq/jwk++htYaf/u1P8fnnX7i1OK3cDEULEWFCJ1o8WmtZ vo06rzTAy6aaTEOrs5Ut5YF4TFakAG3CtO0HthkHcAFgsqRZvK0PSGEQLkyLryct61Jgx11mxHe3 dkRhSbX0FJSwRghQDAa1Vj3hQEuLWf0NUJszQeYKNBE/kwGhBAvjyqnIgVZhNzK48NAcB7QVeqEu 1rtUd+OWMlq8qqXe8NEFI9IU8ZOaw/xkfVR6GYYR4hnGIAWOV31dExcZFlZYncPNnlGqL0mjhcaj xOfWSrS1SIRiJZ1BeZ7KjTiTLzjm+EcYr+jyaCjhWNNSKr6mVbjiezyYL/grkImwABrFMApE6CE4 wQXxParGwCz7XQ0/FI7zGnoIy0Rursxu/YLb7RneevURfvjxt/HhO6/jMZ5h63fYlLH+Nt45fjhX 8giHEEhzJ6SA53idIWSl3YlehzhJfKKRbuLP0WuQvJEup8ecmgyrIhXeojp4oaoBKeaolAMy5GI1 7+DPWF2JH0mIJ2gWmBNPKpxD+O0jvGr44ASZoeHB2uuwqaHDLGJQ5ZvrckHhNfM3IlPvCObNMFSt z5Z+Whnj6lrJV4e+tShkha54C+djLvgQ6zyEex152+qqVbpWGDGfDD3g04QHMj2XMtG8/9b7NfBm svofFIFaxIT8CQh+tf3oj/70x7+qoJIbwC1JenQv0cp2rCfMi9nr1a1LoOTx9gylmZlQaoBTuxOT SCtdMht7LC0Ly3k2xtknQQimI6FDxvyDOSmZ/WbMk1ZlGj8KKo3wGib3oKsiwAz/r73GEfvuRJQ5 HZwELZ1Ior2C4lIgLkjvAEVIaFoQFYk3FL6bNhOCKTTI2Nf9V4v2RFqOJQh/c2FhJIisWrC1Gx8q BUm41TwFr6tzv+eqBGH44zBMx/5QKHuOq+JgYQBd7MwAvRW899F38M4H7+HzLz/DTz/9GzTtTgwd /ty3gMdi+/p6mwxpm/tgMnvMX7lviqtbgJuwFPKeRnw+LaJmtJVQDgJHoFaNBSW3yGGvXqloay6y DnXp6YK36icRZ4+M8TcFYMtzBeQGQNlX1kkI3Lbva9xsLlWgNmhdy5r0JkNR+QBYvzmTgDnuEt6H NBgwfAmku4lA9jzplqTgWuPmVd37Y42DngWbYnfvlntQS9wy18sEKKtqkeXuZVgPwieUgmqFxu5W us1pc/Zt4ei+A6Oqie/ZnmEvkQhM2osecKECFIxVBGaJFx8bPQSZrxThNFTg4MqgmkLSe3d0ErBC VYQoMmaY6+InbrMQN8PMmpoXlf/6fvHQnt1qtZMv6I7ed2jfEV7svvtROoqmHTftgldeBL733uv4 4ffew1svN9zoHZrusHNhED+h+x0EQWubJ/3yJNRAp4lPpfKVtNd+06O7oalb7iejj/1t4UCOds5P yuaJGOs92g/8jsR5Qas0RsT2MwwXuUZQwU1D4Ktqt5C4ZrSfwpC1Q0iVfeSKV73oOQ5FhbyQkPa5 zIItx8r5BK8G6Ud+XskFlbIoTdkkh4RTeTfoU13poow8D1+i3GX0vgXdpVxlS5PGicLGQz6YeSHH WsNdUmETqLivNCxLzneC1s0ei3GhQhFsN2FztfFnH4Yl9mXWy3c8Lka2wVDpORUa/GgNx5hTKeoi Bc8zgiTXPTZFef4gy7kBANN38T3lYS0humVMlDvjHIBZy3ioRTWR2D5HvejpSqH0rKXjO4bgNtH7 xpObLDWgM01XuiHTvCmAonl7G3WT1HnWfhECiET/q4sW2xqLuHLdZLswIeNk2oPGXDdV2Uy/7isV qIjGPPQ/j5FjquOLhNXpMr7mBHDRJue2gSfl6j14de1q8T4egPeEt6on46GHi0/V81sW6/+rrsXs gh7H4jOhq5HlXv1/uiHtVGBTni7agab4ou+4bMDTj97FP/7GH+L/+c7/jv/rX/1v+OzTn+NFfRFN Oza5Qe8XV7xvDuOqwxosPvCkbyc+KvQqpPJs2/ViTNuVueZCYFexk3o10+ugwK7m0r0oYe8JzwYU bGCtfwuhCwXFGVPHDsZv0jtBL4Tt9wvaduMw3004IK0Q5u2YB6OeMJ78iTAwIbLBnouTMVuJ7aQQ j6zCRQar2u0UZDapfqqzu9yJA0BauGxfOBwBdOlFuOmAmr3dKnk1YBvzhkKpk5wT94bAyrjGeLjm IVBTibakQNn4UQ40NWLahcJ5KlbN6V2D4Ye11cLrEjG7hSaja4S6hdeh00rtp0SIWPigC02iHvID 8grDIxFL5GveN/cWr37ZLScDDd2qsht+d8t3MfAIwEOy/DtRiXMiKLRa6FMf6qOrApuaMGg4sgPQ 2BdW4/9i5iTt2NoFb7/+Cj5+/y28+eqLeNQukH7nSmLHviA9M98YeMg9pOrAp5rRIPLeKkyTLs+0 33jqhijKkct52p+q+vkP9pmW9E0wKoY6vsv58fk0TrZDHznmAhOleHg9Zv4avB7qnT+TWU7lGBkN TWfPVcPAQKMXctq1i3X9Q9ReyB7z+GaEmpUPzpm0ZbCyu6DfymF8s7yU68nxkJqO8LxPJgqaF3KX /zpZ7qTh98h709+nMk35fG1dD3IeRjzP58eQvLN9fvUk4K+D7EdBNl11/gdCQFkBQ2CEOrRciTak NnPoe4xZI1OsMfkVAM1PwqP12kt0JBC9xnVYTKYYSQKfoSOSMuRAKPJvf1pzHmR+89iA6hpnVY4z 5M1KDfDnB+IuGxja8HUIWBUmOQ8KQy5iAsXigfzlcNwwHuJmFpfm920PCRfe1qFa75qGlmz6tlU5 6BiRPwkNa3efzZO4FSNMoRTJSOL7Mqd6bRRmxKyYkfQmFNj9cKB7iOQp1OP5tL3lxs22siRpvrNS QGqOSyQnwmLKL71DHm345kfv450PvolffPH3+OXPf4G+d9x4jD460PsOymGWCFvCa5Dzn5X97m76 7hZl1lYHLcIAeGifrXJ3AXAHK1I1ZQEAMowGYXhPWPcBqMXr04JOQTtDgQQqghvGiAst/NZ3azco 5ipXova0aHU/yVizP8OHVNREOqLsZgOiwpWPStTr6nOtpOQnkD44ztuaGy1rhJMqjCJtTisVjPen BT9tW0hhuQriBh3r190egT/gXvDBsr3oOwUoKg02dsvDsO1DQlByOfy7rZX1YRxTwfEMN8KgJEFI e3JcKGuXW1YCx6QlbON7b6dJeiDMy6kJF/h7qjE3gSl0ClgFLe7HgL15BKzKDaIPC7VCJHWDCn2n N8Fx1BVR13ygfc+ykP2CrrvnunTcygWvPFJ8//238Zsfvos3n9ziVp8B+qwoWFIUQxaiGMtrHuiS m2/t5FdxR6jx4PsMcPC9BSo+sHwiSNIIBVwxS8m/JhznxfW1a6+GFSUfcA9Yq2cQzJZgWw+eUNtV QkmpfbaSqyCBAeYhMs9gc48BN2t9evWzACskTuKdhTYjJZqx8iegpgeW+wLSrVJWKGEYhFLOo1YV X65j5HKsxu082uFh46WxptKTrNfP6k9DF2VcTamUI/IFQo7yHkLGKgItsSIMYF7JrdvEwJINzeWE HEKM0BX/Nowr2ucYHc4M+w3YT4ozc+cqxpmFfbx3Ko6AfH1s10h69+IKC3ya8jyinfx0T6f2c1UB eN5rFkCqhVIkrZRL5WJAQB0GXzc+JLX8+8ZYEe74LK16x7FXDaxNY63jp5JhIx61wYG4rDwiZaZn 14BUlQDWZw6JwjLORV2ROXn//kumOYVGNM2gUphi8fT7keAHSbecjoROZBUTOkJoZQkHUJgIx3g2 V52eqYywk7oc3y9rzdmmew+Z9FbCG4TS8jTW+XrouqwUuLSgsquJsZDgOkyT4dhhYrI1DwlS3PUL Xn79CT765Ht44cVH+MUvfoZffPb3FgLBI4Lhi9aQzL70RxjVKggeJmwKEdIaVwVRKYR0UHRcmGDO ACTLC0A1GZvCQ4XsGQuxzmS0GkcfzBap+OWKt4SnC3TbtlkZTjAhlFXgXUjy+VnuQQqDoaA20iwd 1rER3yEF7wqNUcRcOV9bbrvDaI0a74wCw4rFc6w9n4NgGO+Ar8XyRod5V/WciVp1CLCwm2Te7GOu AhRtezk6k6ecYbunhdWVIMy1GcfLOPw6Z/Y11NknyMsesBKznoPCkAtwrRFJpVKNEIc9V5i27oBY Uql4XH9YBtFATwDxkfgMVUviBTw5lt/DyvSVKj/iib6bdECf4dF2wfvvvoEffu99vP/O67jVO2x6 QdMLrK79KGASF2w/sGTwFQ+5SBDmDF04o1E0QEnMxfobDTMzv6Ohqoi/Sz4bnyc+gQgpnAeviOQY JCokbq/n0abbSgFUafX2XJlS1eghBrUq0JEWrOY4Q/lMAaDQZ4YMM8pYDuREA0IBYPu51usxS5G/ Sl5bfJ2GXFE/IKvQqGh34ncrATVok5B3aQjA+ZyAh/fRsORfDu1kJavxPhU+YMrRCPlipLUrtAgY 8mvVBR6WuSLpxVzV6mz7hExxJtNOcinHfIZ79yvp41UUgPXmOGswmIGXsqwLOAr56dolAGfiZB2N QmxpLEZWDxVhtaGV9WAFnIwlzK0mYrFlq0M1KjQODKAioIxjvAaz4V2axXhvMwtDd61TJcu0BUHF Wku3uYzVCxrIvLUI3zCmh5AW779oaYuYN0zvkv2PYncoAL7OVs1BQhjMzeWWlwZoWGFoRSxzVcaW zvA0Ir1hg7F3xtjC4uQOGnT9O9svqZCAn4rJetNBqGKmKdgaPNKC0XUfy6aWTbu8Gj0b55eIuLBH AXCcBy2IxnQZPsL4TMYyOoaKJwe7Fc6EFJ+fwCoFbYJvfvg+3v7gPXx5+RI//btPoXu3yulOdLvC Qxo6+XfsaXpAcoCpJASBTB7tcBot9hQwSVo2YcjEblZJhpa4IJYCrzgBRlijGwDpudeYUxAWe0Kz MFIKsyF8Fg+FuEfDhFcqExrt0fMTCof3SXQw8qVcDhtrSCoUEn1evuaJDAAavLRgh2yG9cwnCMGN 9Jf7i0ysAbXqVSqQbjtzF4W458feK/YySfhGJRsfvzSxfSqpdMGZJGEsnhiuBRY0VLAymAJoW2kf mtV6Sk6CrZnTuNgSmcStQOZw0KNDxc9pYlr4CC/Hy4Cj09NSExzQwVZg8yLBSwGfHh1V9Zh9AXQP gZ+4G2uuCtEdu8f8s16+VavaIf0rfOOVW/z2x9/GD77zLl59EWh6hw0dit2F01FQqGiT/BhXL9un tmimq1d+7fN3qO1KMmufGzTwptbVd98Qyq635ylEhXBO2cGs+jt6lJSsoR7CHBrU3AWN5QlZIeLq R9jE5RudJ3AbKc3nWkurMkNfSX/DaIQMfRImH3h+B2dLqEWxAio8VPR8fCoairr1VkIgpdassTZM oTuWC4+wD749GV5nfjSCRYY/s1JW+bYjxzI+Phj2BiW0dNLEqzTyOR2f78Kcy4n+Db7NEsWvrCqX 3kURCRxkI929f+bFLdX/yNCjXclQ5NJ3HNTKc0QCfpLNuDVugPDMaxxXs6x0CvYobYokPkEBBb3w Y6RHveY1viaPTgrA8TqNEyvuGUUSgNnqHgjAze3tMVfgPi36VPimBUAw9Hc2YRIObly6NM8s63Of Z21H/doCgxlmZ5raECM2PbLaNCbkTBtCTZBjVaPcpIYwbSuClf0xCKZf50qtPNsYyXrOiYQR0/1I v3YXMxbrOPV6ct/nYxTSeaBbEtsg1h/GPLbi1SRIosmXpvFI3PXBIy1+9kBuZsJltRErwQBwsvvG 8Y3jMOIXBykhGWTFv2oBjHmWky+B3Iu7H7iyQ/FMFC8+eQkfffIRXnvjdfzsZz/HL375C2eOVk5Q fL7NLZ0VietBKMO+28ZyuZHsL3YIWdp7PcUqBCDfr6aLondjflQmtyJANwqTvhwitDC3wLvmtAPp OnHCnJbFeW0k3hMX7DLnI8KsYIaRLZLzSshBaeyQFIbC1kJ5szFq7251dzxwpZHJqiooB4XVhOhu sbXdDkiMEqEMwQiYFes5xxYKxWQgUc3a/T72mIsDfKNxozDQmjfE/cr14FrYFI2WGaybPye5TiEs Zjv15OdcN0v27sFfJPpnFbZYkyrgcM7hM5kEJd/+RiOyokv1anHexH1x2oSuJlF344e69wgLosKH okCL7rhBR9M7PHnU8OH7b+F3fvAB3n76Mm7bDvQ7NL3gWlXCGDdGnnMfz82fFu+lAmGACt5fqtrZ uCvc6wiAuqsGei9GV/IdGo7G8QZq/1vW3qzXtuQ4E/sic59zb9VljWQNLKpYJCVZrcHtB7sBA34x /GALBmz4J+kPuN393v4/Bmy4AbXlVjeplkiZIiWxORVruPfszPBDxBcZmSvXPqekXkTx3L33Wrly iIz4YkzuObYTE7Caojw/iw9TIaMsCHm5vzpz3eTY//E3jQWZ3jb8P+QEnGe4wcE9M0G9HF9dchVS /3X84GS7kXWZt6xY4qa8na9VmSzuKc087QzPrO/JBqLu9J7Lb07x+Ie+rW11HLGSrb/lGSzPLYo6 lb1VcRqzxjGlkEU4n3JeSGMP87jWucjXWp0qj2UaZezVZb/I/Hn3bKa3x9b2Qiam1JqWfgeQ8b8k xx4Lcdw8QaCaN6JpuepgYwKPYVnIb9hf2p35SOjeqA4K8nLli4xsPb7cNLXl3vHQYey7y+zOA4Su wP4xRhuL1W2xuq9HBRmCr08u56SzK4rjMIXK3crSncnY5wIDElqsVGDRMu77Cte6UeDtDAuh9zf4 I4HciPkUIE7adO1xjIN/1RM1qz9mP0zvFhH3LIz3lcRMGIsHVaAeD+7I/RQtWGeC4SRZSVXJ+6Sn 74lNqttc1Lm/MajiVYMAiynnvK37baUfXlW8zJoMBjr1l4CN88d++/jV26bApBdA1c4LEPAkXoVc BA/dRN/1WcHH/+Xv472PP8Kf/R//Gj/803+PV79+wGsAWrMEXlXPFUhC6dpbjAeCkRCsQ6AS0Fun rwZC1ZL9aDExS73VQNduVQusnn4J5g/x8JYQLPb8RZxP+D4qvthFbC8YoGYsvoY3j51awwKufj4C dIQbNTjAS4oEf+veFVqkWXNfLRt58AZOgtXodJA5BFthHXoYv+Fcup7qccPWjz7tZ1qULGdC074Q 6RPr6+41sg9JaKf+WbyuQPvV7i0zj9dEfwFonTPUBIqgHbVUe6e6dVXd6yBW2hK+f4r4ac2GOqJt glFa5gUy9nLMlrgC1MZpsNLReoNosXkVsVKbPs6AEHoNBcykXfW17WjdaE2dv1LBBOkggTyBgfze l73dr97vMWdRItL5nvQrnt0pvvn+W/juJx/ivXffgOgraH8JJol3r5JcdU6sbD4DhTIJ+7CBGdyn 9RPKn7SPkeXhoHUDgSyEQPBRSVnYX/P3Ey+AWgJ7AsO5rxkEahcPQ6FB0X5rDiwpHyyEbvDp1aBC /IMyl+nMkMH4+GK4oyxSjsnoqvc+lD91PqMDgEZyccg0S/Zm7LzpjMdk2e74J9RdYVnkGcqsBkVB BXSA65KU8bz+HG6V4c1dL2IvzlpM0SN6RG5vzNtAlMCcBKzpOTvxXCIxX3XGid3lcg1eQrDNcu9p XTHkbqErj6hh2R9j/DOm4/k8Ta+QMkwF7gs+VyijDGwsxKQQze8cdHnW5m7v3r5877gieXnk7li0 6nVeA3hs3nMOdj1WKxjqURvdQ/eT1haQ1MUqJzw2jrP+0ZJxZIJDYO4mNjOmojgwhq+aZW/92Pcz FLAF/FsH+nTPGYjM/WZFlq96Hd/x9DYkhHma16TUHpSncmx/5xkBEDYfLRLETUbMkxgP42AJTXhS X/5toc8z+nmMLnL/e4dZzqn4bK6zdQvGsSpgJ9eWcadnhot8ZsoEjYqCXgVfase1v8Rr33iB/+q/ /2/w4cffwr//v/4NfvaXP8GlFFxUgNYArcFMSrlM1bOyB2Dtn1m4DISh9fCogdWVpJmgRHMhV927 4NCyFKvaAo9z793ArVQDasWgW+8dpVZAFK275U11VN/pnFqN+bn2bgK2FIgW3IWVzmm2mMfJEvvK WFMmKrtnrgNAt4PVGiyPIJSBtJ/EjQkow2sAJKOLA0yL8SaorIYDeK8L+YqEQ/NvGLkPXTxkAy5o HKCs9ax5hVdlepcETQrXNfN4r8bTutqp3pN1jsLIZQMVnz7WgCpE40nJBD8DHQzrmyavH0uSmjaD ixQ0WDJ3kRIKSeO7Q5mfvdLFv9fuIMTpzsDLNRKFgY7WR58AhIIAAKU5bRGYcsIk7W0HgVUUF3R8 /d0X+O4nH+KD997E63eAti8g2uxdjmbznppylBLPWg1Sq5zK/95ZMDONjvvO5cwtfnl27UpSnvU7 V14rofjowstGO6UUoA+5ubXSLnO1jmHIc4YUeVvGXQ5jOcMMeWxPBW7rvXP/dVmXLG967OXH5BfH W5bv83PT897d5or62r917c7Gs1c+nadMv3F9j+3bgZdlOmNhjGse7wq0R/upmtxXuKIvC1YU53HZ 4r/bj3meiVd2++dsL+1oaPeuM3qrf/zH/8ufYOiTN18grplGY8MwhUyIfjeA0ZFh7TJG39Hn7097 sHaIlk7q8XYxJvYMdB8Jzp6PeDvhyXbwxSze/xXI2LvMMj0AKoXCyizXf+fv8tyweiNPo+uMEQ5G AwMsAy3HfIx3JibibuYxq3T7Rw+sjdPqQk+7TI7aPFAweLdco/bPEVtss85qPofQltxA+o5OuZos fZr+fyRBYQ4xiukYQhlsTwbYD8aXyFDELdDTYVJjH4QRxitGUUunckHqEFlzJPYM8XQe/D0R9gED tuXEq5G6NrUVTL7Mz027VsiMqn+2Nbtqw1WAt7/5DXz0O5/g7vkdfvHrX+DLL7808C2AaLcqEM0A cXFwbvOtWCu3wGy/ZnGG5y54JzKfETFLblf1MBETOm47NqVKw5bvY/cqId5O8X8bAPSQIWWohfgp HfSQ6Kj24xNU6SHFoEVTZqO+ilUk8ZjxPF4VjTja4t+LzwllHSnInvUEWfiZBQXgOQDzOQ/wU5tt vE7S+/9SngdEMLECzPRVPKZEAFzqkgwrI1CO78vvhVvlI6wn2uXqAOZ98HXivJDlQlN/va/CEAcM 8K/RKQCI/IGgfeczESIC9xCRLyljx12KtO6A3davMqZcxrjUD+YKa5wCvTWjJSbrAmjdD96i50p1 Uli6l/5EVzSn/dIBUYvzf/uNC373ex/gD3/v23jv3ee4yAO0P8Dy8Fn+ssyx1t58c0PbpKimawUC JbyvWC5OcHFeQC86/N++h1mEKpgUZVFJfycO48o7QVPxKnESXjkzFDGcjd0xeVE5plHGzHl4sVwE t7QPD/TyF+4dQObH6YZF7hz5q0xPxf2qyHHZwzeiHDXoi+BcAuYNnKy7SfZMuMMBQkRPOB8Yde4l 8gonjEYe58yPb+pqX46QJR9Gt3nv7tkyz4HzRqkDca25RjcuGkjFp2sy+EXS9pDPoQCczLsBfb5X uE1d5nuVH4ZWoUT/g+TYj8M7JsZyeK/dQaE/1jnWUoGoQsizUdiEr8eq6FKGC+a+DPm/zibfm2gD 81h26zHnnoxhPdkDcPieQCER/c6aMGp15zi5f9y19kdhjC8OU9huXBz6GcACTvhlxHTH/CfwNLXT ueC+sIJIfD0DWmd9OdtAqrPbx4Dn/rkUhjk/v/Y7Mc8Asv+JrqFYnf/O0BNofsb6VmudtHi7OtTr lwMlXIQHthzrNBhEvjKjXDfNNMdZuGC/Pres/mvH4l45bzOsBol+2Rn2e7UMqOpmrs7bz3R89hwV yGxhq1XQtKMWwYP+7LOqAAAgAElEQVR0tPKAy1v3+KP/9p/ht3772/jz//NP8aN/+xd49emXuJcL 7ggsO6BaAXphMIQF+84+FV/bColTLAlugv8oAmh1R50RegPE2R4XqIdpdaj7dQQwq3IhuLDv4gAs f6bAXLoEnRSkVeVA2+IeAhHvsw6rbmCWsGSPg16CT2SQktaoC6DaLOTLUSZlTfXk3OY8auQF0LrP zh3pmDdWGdZykQGai4y5J/hXGfkhF38uYiKKCS1VHYdyxZwB0OaeDAfwDvpMuXJPsvczRKn/I59D QEWPakjm8fRER1hcFvD+zoaOKqSDZY9SMNMbOu3dZnTolmNGVqn4enTPUwBC4c110qEa8c2mbDBW XZNRqaOqmldXH/DsHvj2xx/iO598iHffeg7oK+j1FRjmQWnAPaQacMxAtQuBM9m3A2sjZEcm3jD4 MqbP07sT0tbUxvrO9d829eaN6/wNgAgDalMI3cklnaBRJqNfc+I1+jgmVTI06DHQyj7v+v7Y/fO1 H4mggudIEABOIXRpnkmbk0KQ7j19Bssz9uL43oxpgyfn9cse4kG3Oj2/ru+tebFtcFSusjzO1wqU M20ydHXqX55boSKwKEOpP/9YDJrb2n+3YFSXC8f99/QQ7IxLd2ucrx0GZrWo/P1RAVhiwrXPjMAl eXoR5t/9qpQkiUnxWpMlnrK5eK96jN0YBGPOma5DCxXHsfcIVDkmiM4TtskXmL+IsbH/Fp5nlsp6 sjgRg6e5qRS37hYC/t7ENfGeFwDhyo5aQbSipteNOE7gIoImVF4UUhXd41z/k1whIRmzFiP2PzoE uZkfQjiKKKTUyZU7+u4AGArLiJ8ZU4CB4Ah5AnK93x7gj1b/AI8HAk1fPHF+GNOJygPBqneH/TVm 3+NEVgpwmcKgRlnZ7ttHve+zos0azBnLjC7Pwjpfq4I8nu9pD5fD8w3GrBsUHVf02vH6J+/hn330 3+HjP/htfP///jP87Q/+Gu2Ll3hWLtaHBsAPIIMILPVBYAdSuQAXjFAsAWgJL1IduPuuljoBas4f l6ukZYu9VVhmEwOYO/PvqnbAlNo9NfIDBM3pkxWaOquZcO584qoUi8dHAp+KOOzLvEbVSzlS6Bgw FjFLZNCwr0Lx54v2AEfGY0aYH3lLa+CB1banDbF6O2XkXdBw4JZ9AlRJc08wm2YsEw0cLqRqRaQ5 RVM790CLnZDdfd+aHu60Szrw2tYgL/B+cG2sZr71JoSmwSNc0p7tvaPW4odDIeiVFC1KhSfRYLpP 1dZaaYsIXuRAbOIBCI9ErtgRE6FA12v0jcnr3fNgAPgJv+oWVvgBWlegv0K9L/jow7fxyXe+ifff ewO1KNC+sLWkt8i7z/FSoZ44bVK0Y29Q3pDCEqAfibo2CfR0ZoDEfZpLyNq4TOEJOZeURt4zYqOd 9wtjvpvnzvj+6t2UcR+nUbwrPf7OAkXvDVfPpbCwnrRElMFhWUKEuXafG46pFAsBY4hMBs63gkAy 76zOj9eT0If48ZCSJMMARM7dAMQMQ0zrsnmnlRdOexmjBCaDV1bDVr6GsSuFyaR3cCME0Nbh0Tf+ 6W2Gdp6exVF5P5s7wHKpKucrZqu4UgIoBCLcO5Sf9u+r9ojzZ6ngWQnR1L0R3BvBKp2+x8eBt9EE cyjdICNzCFhEGkgf88jnBcjyV+ftao/p4PFxz/L7aIB7A9DIXxp9zf0+jCWtVzZWP+oBmBpR9RMP y7QZgFljnAbAsI8IYT5qjF9ZCdgNsEs2bm+fy1dYVIXWMxc4ogftc98g3f37d2wtujgf65k2rYnx ZgA4xpDHNawNTMKaLK4YDPqrzPmtiyfM7qxLZxc3kIE4TGMyS9kevAKzQMsWifmaYtOCZlQVKBU8 GbewKoycbJpE249ZOLIpbp2H3Vyv1pBQRuI+/p2TtfIzaz7F1B7O90q+7/g7TxS2MBEmGea2SgFe accVr3D37A4f/OF38cG3P8JP/t1f4fv/+s/wd3/1E9SHjvtyQZULShsuWXUAAPWEVqjTEJA9EJzL KBfn+6C1Zm7+AtCSKlaTNCWAdTQVSG/xXgBxqmwVEwIE7wUlEjQs1txAJ+POTRGhdXwo2UVMea2+ XB1UbO0LAnjAlIcOeEUbu7/SfA8JYKeAj8d+byQDdTdxnO5bI4yJYIIWbq7XFBZjyMos2InCLHGY Ky9ecUgmIKKgwYFtzDTNUzwZphXV0ETw0D2u3Z3QzduaLGIOOLWYF5b7ieF3CB7o43Lhp32cA5Gt YwTGAkVzTwT8pOKg4QizWliIKwLjoylO2roXYiDAoEVSh7JAsNY7HlLyJnlvD2W4Q9oDSun4xntv 4Le/91v45odfx/2d4tq+sLAin3jl8ydyF9OYZ153Jn/mvxtUgqPHkTxytDdbjhm/zP6MRNg51Fe9 TDJLQHbF5BHuvU/KhsaYRt9EmC+yyMQyDDw8bbltQLGqjpDQ5e+t60wmTe27J9K+NAPUo7IjXc3p u69y9Qn9y23eksWTwTF42cAJoXScyJZbcvm0PxjgU5z/ZuAb7dgDwe/XKw53FZnINis/8e8ps2/T p6n9ORl51976rjwugOuWB6NTtTe2t7bz2LW7z7zIizHvxrpPbaR76h//j//Tn0RtM/t1+m8FdhQC pfrkKsIaCaTIN2p3Mk5utRi1AVpNYFhs2aOx6Go1y4+E4f1UxiVS0933f34sLYaYwEDadLc2UQbe kazq9wfYVt2cKIxhLcig360lUI/xjYM3HCiLt68F2WRMsBHCL0DFTLwqHmtJsCty7MM/Qimw5Mxq AAU+hpJ/Xy+dntYuqfb6OCW1A+5RuXB0Q9CKGFClzTBi7sTsKlJSNSSLu+T8kI6UPXGSZzx/0Ae/ TwMJGhOzaDG6DnCQCe4Ttw7DLNhEPZz/aVakRr+7ZgVUkEFsJ9OMn2eL3VoCFD7unZKz3Uccm7fZ tKOUigqvriw+jz53IsADGnB3wbvfeh8f/c4nePHOm/j85Rf49PPfQNvVYiJ7tlfxgCh1a+I4qVQ9 iRdhNbe/xeNVg0iy5detvZLmxbxhBM0Eh36fVJiiP5KBjYqi6RQrjmFY4NongEugWYtYzLfHtPIk YMb+Gqn6upd5TQHzJkCGVVb85ZryJuxd4vRYMHIJ4HPjwl0ETHiw6dJ5YD6nRhPW5xIGEF9UdEYr 21ipbHubrNGP2AvV9xeVNY/B9ZAwnvMRFKg+T54boGg+h3ClSwcfyeN33hgngRuV+nxLDJP0zj4W HXM7LIU6lI/YQx1Wuas7L06V13sH642X1m0MfYTi0WLY/SCvAkG7Pphy2TuAB/T+BS6XB7zzznP8 wT/5GH/4h9/Bu++8BukvUXCFquUPhOyyKQ/wTw/qkHPwGbC8FVqjuQ9ynXUCrp74BWPQ5/8h/U4F 0GOpmQ9AkhpM2/ZJWZUOB0d+a0ePzdVTjoxl4fP7QfFh2VcD97WM8t2QzKvh9xH88e2eOzC6Ocki wf77fIXCoWpKf3oD+5gq0gOsdigC5pQo5XrcZbTc/ZRiXnZGhCKSK0gHLts6lZcsOlI/ibskzd12 PBj0YG3I/Lucf37sEpE4Qd4qh4345PAQOS9nbkAGC+p73PxMPs+eID+OT6Ic8Jwrfz7q/C9Vgtaz ngqj4gNHjZKhktaNn/ljmAxcDoZi5sYjJjnQW5PXKRsKV+Uq5tfvkWlF0tzyFxe+6zrlvTf9FhB1 Pv5y8gA8BgDnCRpgomFolGET99+jjFUh4Fyg3/K+x/twgxB1Fopsb73CWrFrYgHEj14y4s0pRKil AudjPbMI7wkja3hUDI7zsGrufH5ta62Pny07OXP9QJxnUyBDow+QhPP522nVtCrR5RYgC0Df3H+w bAFWx57tFXEXsJVG3QGuYH65nSes+WwBWBllCUvKPDYykmNb6/zaOrDaS4q5XftqDUzt0IIz+lc8 KXrQ4rTWC33wewaCDO+HeKm1Pnl9HmAhHU0arui4e/s1/O5//U/x8W9/F3/1Z9/Hj/6fH+CXf/P3 qBBc1C3BreOqDUUu0ztt3TxeepnnYfHkXPK3hd4DrbMSToPIBe3aUC7VBUNHb91CSnqz+H/Gi8Ly HQC34AvNDsZ8m7L2eMSOWN+61eyO8D+RsD5GvhRG3DtPDB6x4Z7jUEayrAIR+he5IKD3y+ZPU3UT K/lY4p4gkuLzSaXUARSr+qgCvT+g1DsbqUqyXHU7RE1MWDfVOLSd99g0jGAchvZ06a5wMezFQoHA fByY0lQBqAyeCbE28tkynEezDhrgz2U4wTkjqGnqtKTGoqlMJhAWVnIHXb0IalIKAEQImk3FKDtr p/X21KcBHMT5Qm9XW2dt6P0VSun4+ntfw/e+8xF+61sf4u5OIfqA3r6EakdfSxsu8fiId2w8ew6c L6yGssif9fZ82FRuuyda5dwbsFzeTfCd+mf7uB32tKp6jt6QK32INWtTTHlYK7nsZGb2bnCPsWzl ekWfcZTrZ9bs9SJwm8eHQ7sAogrXbm537a4GmyzDt/zvpK24j79TZtzAU5M80uN7eGVMkJ+dvCdp D/KZUDh7Dy9h3M+/y3i7W1wi128Z9/gsyJ75Xb93WO5sPvJ9ZzSxQ4x5T2SsFlEkaWylFGjLxoIZ g+36f/Pq6p7wc9oIWgcSv0/3/2//8n/XfLPEEa6+WQn6U18UDVIu45nppd0ZLBM6ZWyYtKi5vQm0 yswA+Hu8R5MbVDg0WLygKg9xHYfa8Nk4CXSe1I7BlGzB5vCfsyWIO7i4y4bIxCkuPM+Aufc4vp9K 5MlCKBS6/ThfU/9I0B6bFiEzfFsAipkI81qcEdajTOXWpR47yvfH3DUL4SgyuYgHY2BWP3M+Zvde xH1XTzo19DQSKCGH8e3cltO6pDKha2xoKHhJKY4hbpWbs2vkqpggFEjR6G++rP+ucCdLQoNODHZ9 RsuILV9/G/PCA38S6FCN/dI7RingTNtlCOMCe09R4A4XvIYLPv/5r/DDf/MD/Ic//XN89pNf4P5V xT1qWGgU8FAsP+dAWeliFaxlWrv5opcRM6PiODk3tUD6fGALAHeombdIBZGnYL+Vqba++neSAL7N V7EQBDNhj8Mbdbi9A4yVRIM9eW2cp3F9QwgmQLHywlYSzab5mYSqwEqzYqwn+zEExNhPdljbUCxi nxDYCY7903kvCD1argiI1G18pt07aEjdxEdROg6MHCB0BViKebzz/PaxvgByrtLKay1JzoHTwl9n K//xd+0MVWuxzl2vUH1ArQ3vvvsWvv2d9/Gt3/oGnj2/QNsV6NcYgfi+793C1yo24T6bi7KGwB3A lF92KzRjHf/SMu/aP0v57vLlrtz5+8ZeMUWkzEA3zf92fGfn0vD+RfbseG3+jnJDtIH+qUdl1DpW keHpWT0ccd7J2D/kY3A8Ye8f8i73k/SaFVm7n0rvURYDa8DKLJ9WcL4FvEH/1+i/6jjAbX3iDFiu 78u/T+NxQ0ZPPRWRyEMsfg5P+IkXBUBEhqzSzBN73K+a5CIQNGPz87SY/7XvfZX8wh6Ww3NzYzRk 1uCX0fdH5m7Xp91Fesx9XqsbRU5BJMjNGLT+D3/8P//JDEzjX7s/0MhcH9bBmTgM/iN1hJoR3de5 vfE7hWSfPk8Cz5+M31OHR7d9eWSeGFoVsTAATT2RMi9Mvg7gYyXwzb/nDY3DlYk7z8j87mVjgYCB E3m0DkzPM6n2+HoDMU+oO7sqBGcMdKuwHd86Mxj/d02f063p317WkRtfZkZiwGz0weqdlxGOeaDH oFQ07Yc5zH3Jcc0cp+wI+cacTO1On4egDZCogukEmnR/i7vtyhVTmrtVDcj4mrlCFWAuWbNDiZYU kzlHmNmulXFw30rGmuauexnQXoAHbXiFKy6vPcc3P/kI3/7OJ3jx1pv41ee/xqeffTrAunhYAI1I 6m9d5wpZSVnp3WdER417gYeS2GAZwGQhHMXk8izo3LnroYDS6W3TUcIOME+mKrS7lRqIKj8+Ia58 DsMAgMg1ER92yX8BL5PJUKThAGZ1Hf5lW/aMPSxe53wIRI0WtF9H+JRb18LFLObdsIOENL11CFbx kB87+dNpNu5PngZ/Sj1pxEKMbC4tBAw+Hk825Pr42iPtKXWFNofpgb/6PnZPe8SCR5lYB2vwMBxR DyFEQUEPBRW9Ie1iOAGbVb93L8upkN7RH64jhKZr9Mey2gH1k5atdKJC+wO6vkK9dHzw/lv4vX/y Cf7oD38X7733JkppUH0FtCsk8St7fUpy5f7cgJIdb56A5RCzk4GHF0tJ7gB4lrMr9pjkJvcPaaK7 snsAWrNSGvKK1YNSH/KBd/ni/Xk/rXNy1s8IxeOcfEXwP0Yx5EyWh7VIuiM/QIVnjPfIO13hxVEJ yyepn/UHuK2m3TTUcacPQQx+cWZoyeNWtap9Z9dhPNH+MOTQoGXGI4YCkk42eCqDe9IdZ4CKGRCe bVsCcrTbIDuP7QwfAoDKfsaP+GngOplvPO3HV71IH3m91lXj25jXlSlKNR0ExkUNQj/rJzXxumdO wUzIqMVAAmulMqR1ML8R7mAW0OMg7e8CHA9DZL9Z7WUID2McxeuI8zfFnDTrE+X9Ds2a46IHwXtQ Zdh6BLAkrTQHZ5aX8b2m1VIwofjM8gs/ErywFrXHNdtjAmqkHf1AjFVKaMYZIHMT08pGi1C+soB4 CvAHsLUqRZ+iCoIzAm3btuZqRg4U0lXQQ+ufDEgp+dmEokY8fm4/ThiFJ1ti/p2ufXsXENn9rAKw nYnjdcZMx7vOXKu7ehQ+DukH+uqC4WIX4BqAUMMT5y+ItiZLh+jEPabj2KkcZKAQf0v8y1uy+wS4 qqLrK7yC4PLe6/jO+/8U3/zPv4cf/dvv44d/+n18+uO/h7xS3OPighKuiADo9wAQJ0HbRrZwHu+h rwOBd4uYfOtNHVVNeodjZNvxXrNd+1CWwtKjjN+uQISnjIo9ohWqo8qZxV4bCDegDFdEKjpMuSQu L9n6EnNLt3eLmHueankRHjPvJU1Z1SfKVipKtbCECj9si+vmVUOKKIAroGUqoSlavUoQQiGI1eV8 QWPSgsOoJWwX2tRc6cr0SMWG5CLd+FJR67uqKaq9pXBD9s0pqrcWYaNW9vQaJxVr0wnEGvgkePQT HcrgwWZ9uyJfAmDO2PPvlKET1wFS2B8RaFFo62gtg+fu/LSh4SXunxV88I138PG3P8A3P3wPz55V 9OtLS2hOMf42PzmEoHilI1OCMl89yFcgPosM62jwOX8ue2ri8jAEfm10wX3kJOALGfTCalaFIUBK Xd3uZ7c818LWh8Fzud9z/7N8Mbnh+KIw7LFYuJceD6ka/Rz9L5wCScQ3ujatmY/+JlCO9y24j1Xf +H5RTHJU2b56LHxqK1dhIb+sYp6wlgTfrHDMYbmj9336nD0kxiMYbufvT+MqiuSvWsZ7Ng9+0RvM 72/NYRxI5jI1xpv6Hf0POp9NXVPVROETErgQjcUcPF/Q6WAdy+AJw4eSQ8JFTpQaGTOeryJWJU4X hX14H2aZ+Q+F/4rZQwQ/yZwK/mkKbScOHtoT6U8keQAG0eTuzn+mRU7PzPFhs9YzTkJbs+HHjqIg pIUgD3S0PTOo0CLnX6P/3DhxMizUa+WTWOOuab4EZzF8cwiCOLDM75+sKpjbiN9T2zuLjgJhwQnm mzTiXG5stuwTfq0hTMa81hCgwe9njXAe8zoHG/XroPnux3Z8dsyjNzTPj8xtr5YqtqCY5z3a9Xmz oisE8kuf5sHNY1i6G0D3sWT1J147ZUlkeGSCYS/z292adFR8R8wnBO5yJoMeoXghjBbmfdZHVb5z 3L+ji0RFQ0ipgdteBFfpeKkPuLy4xzc//ha+9zvfwdfefRNXNPzy81/j4foqDsNzf8SsfBpmDKMB Ff1GULzMKy1/EIlKPvZT4k2xtwYAtkgeC+EJ+kpzNw4bY5sSvHBQH2K+2YfglQ7wqP+rJwHmxE2z PPNZP8wKVhq1dIRiY/3vwYsKPNkSpHVawhxW95GrBYiF4qv6xEhY56nkiveFs1biEDBPohN6WDg3 aa7hB6mpBJ8UCOAHlyHdC243kVAcQoFweiuQoMOYV0000rn2blV0az69NFCdvAbhPejN1rTDYvz9 Pyoq2q/GUzs8nNKTNLUDeoXKFapXdLzC/TPFNz96F7//+9/D7/3ed/H1r78A5IqmX0L7FfSW+XRN +ydfTwGkK/jaWfHZTvYCZAPT/I7xDEC6zwdx7SDkuEoqOb0zeoy9zDV7bLxJsibwv15xl8xAl3w6 7BoCzHyO8zf38exiLgjlzZiNoYyLpLh0vm+xaGpxw50ylC23p8mgMdYh5mFzxXlofP+pnD1+a0or gW85/D7hmWWNHsMK+TkqRTZPsyFXZcjt7PHgbKvO823vyn1aD7Xcz5P7Q+3/ZRjLOMM5120aRzSw Ik2uL3PX6jwnab4m3PXI3p7ePe3pdV9J0Fnu1RkeAxLmS/BG/vm/+FfTSp7lAOTKA2x4ZiQ+WE5U 17Cvnz03tQ93J4ZFnhaNhTAP/ZutGQhGNAMrTRskJ6VM1pHlXQyFEJEpPAhAxLS1JQmxLONlTOSo 4z8vZHPNrqLi6hU5GLMKzJpvKVYHN/dViteEHws1jYtKzzSuvG5l3uRPuXaEvfstj1M7wVafnh2A bY5qzGs2JSbLTOSs44x+hUgdMZ8EXEpFyYTvRY6ejmiLMdG70l3JAzD95u3n0nU3547k+wgP2DEK +04Pc8srW3NyjgCfbdBpXoA5jpv9272XdpGVToLJL0Ji3Gf7MMdmigLPUPBaeYb+5QP+5i9+hB// +V/gp3/x13j41ee4eyh4rbxmll3fgxe3/Jdysfdxx7OO/WIYEM81KcVi86M/zh9yzLrF/BMoJcty KeBhPWNOLJyqdwClmKU5rYe6YIeWCMfqPr+RC6A6eeTkwjMjHNAlRTVKT7KPAWQ8LGvhSzkOn2Ow 7wosxbXFnukYVTpUdeJl9rdHm6FQe7x5PM8xSI19pZ5Ma32dczpif2mJ/RZ7oXjCta9585PdYz4x 7sv8I+ck2F6vgxYt1guqEvsnK7OZxocCbXCh9R45VHy+QV3mdDS5Auh4/cUzfPDhO/jmtz7A17/x Bu7uL+jXBxjE8jriab2NjrPVcQYVKw9d+TMVr2nu/P41LLdBDzTHa97nc85aW969zhf3VMQ6M6Z8 sUgecgjJP9M+XC/V4QEIeuy352gNPDpTGNb3jA+03Pt+dxpijkP0s/BIyuWK/vWg8ZwjdHwiW5QP kebRt/WXY04mcwxOwqHivpFzZd8Xtyq77DrI3zr1Y1jKD6/YXjsFgXhuomuuM3PARJKiPHjQKu9I 17TkZ0MRR9tCQcizyJxIvo84kYdfzjkdMVzilsUTAwwj3pABs4zuPZ0I/hWuSc6WhVf1wTundV9w +hFnzFh8qgJkD56AxXTPaoGYn/d7wAMuzpkI75ve1wfYtmc3SoNqWMhPFD6bi0ggUyf2gs6JwzJx G/Bv7zkyY86HKRTL1tWZceXrFqNn3CsZKHXR7C7kQS+zh0KjssjcjQGe1z7kk155WMpTlIBVIO2I /fy38yoCbJvj4WeC/l0Fgpg73usCRb142FinDGiw7V8Iza6HDRP9WvoXfQE9DU9XoHbXOhfrmM/u y/8mvQCYTvjkZaKG8zvvzVwmcKVfEYkSg0C2lsx0JiK4Xq/J62eGASv16fNdzPJ8bR1fasflvuL9 P/gOPv7PvotPf/oz/Oj//QF++oMf49O/+zn0VUdBxQUV0OZWW/arRvhOXkcbe08x1M0Sf0l/cfhd iTGzDZbtI5M36zctfAyjaoCWyCmAhy9yUkVpxW6wvKMKYnhTOjSUIMDpM4XFCGCHe1lyhvETAGiK LhrVingITjwLDG+nOFtUX2h46E1pwxOiyXvo9fDvBNCwEA+Xc1fYabWjUQPJXgIy0495GgEP3vBS q/4+7xdDj7QtZ5N0tg3XeQQ84MzOUfC1aLTkySibWMoYlzSz+6s6P+7xmee8ZMCQc4dUUriPdGhv aG500SJ+oNcD6kXw7jtv4L3338GHH76Ht9/5GqR0qD7g+vAyDA/dFR8LGaog/2gtnQIr++preR9O ycoJkGY5lnlq8AZBnCOAxFNWAFM2hqAzXiMiuPIcFVl+X/hnTtg8a2+9iEPOjCkrb/oqV5ZJt64z WUg+ke8hTrA9TwV3wTk3RUOxELknvP/MAX2KN05eTOzUc8LX8vvapgagzvjsHDdM+GaDE3f389DF s3bGl5i+W7GJ8SLuNqcnzfJveMvV+Ty/P5O965WxxNqXGA95Te76yR576jtzOwf8y3NmTvp6+C57 AHaaAxn72aJ1FxTMKj9YaBPAWAllZzFY+0FLSV5UYFjWqbmPfh9j4EUkFAZ+f1Y1JbahzMmx2iXi kfN3VFbi5F7Mn1l5RTwhLVuvOL48L2FIWCzO2aI7MdJkrV6JyT73w7qKC9bp82IBGfPh/VwUpGwJ 3xFW/m3dKKsSuWqwc7vDMhEgKbXTlrUe7x79rYtjsJQC6c0FtD1Dz0ALy/ISgxvVLBbBfKYwp3E/ 5VqfY/WH4r+tMZ9hseBcLO9qyxqwnbWq1FMEIS0YACZrcGa2oRyQb+QqCSC4yXvT8lIYhnLRiosK nuOC/tmX+Olf/Rg/+Q8/xE9+8CO8+tUXeN4q7tUOFutdcfESosEf1BUT8QrPutLPoKOJYUfyWI1/ a8qlWPfaGKdV1eEz9ExottTALElhtReJtrNlqztIMwWgRtWmqGxxqehtAHCzsJfJoxNrKYsn0Xky eY+NS6xfOXBr3cMy/5uHioXHzRfb9syoJtXrCRDBkEtGMwyBUEgtgBYvJ21ppMU9BIyv9ySXRL/k +6wWVsPYkceST8flmjcdhz2KNjuDpdl4HvpD2oOA6hVdmq1WUTx7XvCN997G+x+8g2984128/uIZ Wnvw8TXnD+ecKMIAACAASURBVCnkDiO+fwr3S/spz5M271cdRpq838bAlnUvQ+F97JrbUtefLhMP ynyVJ/7ye15ZNq+e0eo5MLy00FLtn3uiIccYVWQyGub5ehokG1cHFdLjmLMsWvPVwjPTB80af0ie a9+n9nvDUHwpU7vvr6M8Chyjx/j7vH7lxOP85GuNnFh/PgHsZ4B0nb8V+K8eZfa/S/dzkcKHPO4X qxBmAHnwXFZBy/OhDr5WL1Zc+WwMEdBVwTWojkF7MmxMcnCJKAmPScKoM64FqKSGsWfBVdP86ZHW ch8Gj2wzXtI5xGn1UK3KdayNjvbX8ebcgfNzANYJfcJFIXemod8iOmpeZ0wv+rYM9NBv7E/ozUkr AMLy/dh4JrCXrTB9MPh1PMDYcDk8IGuteVH+IUAxf16B9dyXirXEGGDAtZQRETw04iNwjC2R1ues T48R+GPjP67rUUPPl2iK8BcBLZf5NgIUwQC0JYF/fmeJ1jPtRv9i/MNyByA8WLu9EuB52RO7K79L dXioCP5j3Gk+TGHbz3ueZ405wmH9drSX5yQEFgVcOdLYTjCsnqeWgImqJZk2VcAtnw+wtfyydNy9 qPjmH30PH/3ut/Gr/+Jn+Olf/DX+v3/3Q3z2s19CH664g4WF2OmylmQbdcD9FOAqxQ8V495t2Bl2 xrx2oFu2K0+IMDDiQF5JUx6GgzbCnlCAbqpjITDvBAp27L12AUrA2TFPnstgVWyM+gor5viCd7eU B4i3BuzgLCQaFUDLOEUWlKvkdU1j3yPuszKnklzpUu2UXOQTsFW97v+wgHbvsHiSn4EnFyxSRmK9 W9800ayojJOMu1npi893eFu8ln9RdWRg69tVvX1XdKAIlykAQaJf9RCtDLgJDEt3sGdWf1M4mp07 gu4A5QHlruKtt76Gd7/+Jj748F187Y3nePbsgofrSzxcrxMPG563Mu1TKgKx3+h5ldmjNuSu0+CG f5hSU2dPbgJMKy8948n+yWgslTnNfGUCI5iV//zMGGd6DgOASdACr8T//RP/vfKT/NwtPrqVf0mW 7MZ/kIs8TG2JSZ/WSAffpweMH40HlSX8Z1z53Wtp5jPw/VUvG9Ox3Vvtn8nnW33L7aapGTw3txWP 22qT93mwTsgWgAemHZm1vW8o0BO2WPpfZCiroz87ID/2Ia8u8GiAOUJlpi9Z2mKIk2PZy5wkHXlk y3hWml3322H8CUPO85L6vs5N6j/vVxgmln/+L/6V7hZ8Fex8sKbF3V05Rn+ybiz0E+0HE/NYYQx3 qDGiEWM4PbfEZAkTIwvZDuyeqDYzewpoSaWQipwALJr3ookfFIDl+3zZwtd4XwgJOS5+jk2fmM0j V650wc8i4jGT/XBfRzqI58Y7aPHLQmTLmBfaWQk6f39GU2s7JiBXhnRk2qv1DGnE2QLBERUd9Dk2 iVtePatexGOb1815wyLz2P659d1aW2C2Gi1zLcd9tHqI1ueGR2rxpMS+WXJuElKa1ztU2tPxkD+s a8u1P8Y8a/Sn1jre0+3Ezap2nsBFBa9+/Tl++ZOf4W++/5f4u7/8Ca6ffoG76wV3UnBRK/JYYo8X V1gEtcpET0bTmeZqAJADg8YaayrQgqhykvcxMmAoEvsnLEnKuPtBtzwlPK4p96QYb0RSOPPvyWI7 KWWrApoEhohEG+LVv9TBZik1Qmyamhck76nI5yqzckrhGTkA7I9bspn7MMDOqMvP9ynH628z5a6O fe9KHddWAUBbzGNTNV5WLD059rWPO9L9XDhzjzUd1XvsIGbBg17Ni1MUr33tGd59/028+4238c47 b+H+WXWFowXQ5rzHiaX07BwADD3kvn+W0Mu1Pnf8W8fzwKCdXAxivbKCwXGD5YAZ45wVItj67S7y zxoWXM7roGf2LnPGncWe9ANg8gCwP5lfrPywpjnZ8duzi23mc2T4fCllOtSQ9LFeKzi2fyzywMdD g98QX49lJ8we3WFw+YdZ/ulBKW457iEfmJzcF7qt03w+piTs7t3hg+l3ZHUEsBBKxF60fnt/Imdx UECcA8J3+ynxuU/ETPQoRA6HXyXxA3pYgZQj43guJGbnntxJ6EH/MaSgnf3vOczT1neh34QjM01G 231R5sug191eWHMOMmbiHALuAdgBODvN8Ei+Z9phPMfx0vrGDX4CDNfvVgKLLPtNG/aZ/waALEz6 1CY2xPlUJrLr79HCc9S6Zs13COTdhlljPHdXZiw5qXjXxyIFylNPCeQBs3L6tU1mypefNJf7tM7/ DgTm3/NYz7RSAsBVY873AEc6wdJ+Fhy8LsWsMaoEIsm7RJpx+uChQXxntoAP+pnbPygKOPeU7O7n HfnvqmhFP/KNMQekmyM9sd/2LC2FbZpPw/87pSaFqHR78eh7O4yZ9z5cr9P6kjlHf9O91p69v3d3 FTuQZJ+KWA32y4sL3vzeh3j34/fx5X/8NX72w7/F3//oJ/j53/1HfP75S1xawX25syPo2xWXcoei BU0biqZDrjB7h8Z8M2xjFhy1qHFNlsxkvHRYZrs3Ug45GDYOO2nYau3DTjsFXEAhkmZFxA6Hgpd3 U6tOQ4EkMOt6dQ+EFYz3MTSrJGQKBUMt3JsRQNMH1EwA4toAt+arCLqvm4E0hiDZQ/SuFA/XoIeD ScCl1qj/T6EhtuBA3pNOrwoHsB4rPaCzhz+IQHGNeQQshn/eMT0UiDg0qTntOc3xfI+rugdCG+Ko riJQsf3QS0fvV0gBLs/v8OKtF/jGe2/jrXffxouv3UGqopRulaq8DOqI2ac1c7besYwo90JrzXgc KywpZv6Cmffz2YMrfwEQVMaycs3fM0AgH7H+Dj4b5bJ1fyAY+QYtmKozIOL7RcTOTOCDG0BYgMjB i1d53tWaq5Wv9bvH5PaOJ+/azOu1tn0m02615zdP7efnV764ysenvuuxayd7HhvPLVl11vf1+93v uvteOhoBN+VUGfSVcdWQwzXmST0kbTemw7jJj2GYqcusjBSl8uFty8AW68isLyMEMX8/3j1Hr6y4 +LHrTBk7fKfz97moxfrM7h3E1fK//kvLAVgti2tCCjc2Y40f008jlo4xtlmDg8mKabCh2NgE0wJE jTYGXxaLMwflvV6rDcSw+sjShowqQGsc7XG2kms89SPyAbxdEmQXVj1ZLCVyJM688fNJwRno8zOT yvLvtwiEMbkxPj/pNO5dYu+oOddlLm4R0ZosswN4t9o6Y7ZZ8J1dkTsibtnqY+68IQf5vg7p5M6V 6QOANraFYDgcYxawR4vASsfDwrQK5scugmvVxbImffQ/fX+LkWelK4OBbFFZn8n9mMHJ/P0stBw4 tNHWNNZEZ6S7ycPnTHN6jyblUmDWCj8pGqq4lzuUppCHjl/97Of46V/9GL/8yc/wxc9+jfKyoTwA z8tz1O6hQM5PsiJSUEf7mPlfpkupTPYlg9IYj5aF5gC0ID//rRbAS5IGWAMFSAkw1qkIqUz02TD6 oCA4tmdbUgBzXzWB4sGrh0c26umfnL1iPLd4zP8CZhyETgl12TMRgm8ocmyD3qjuIUGTRyNVNaPr nla/UKhDuTqe1q5JSZaiaK259Zhr2dDR0aRZH6XjKqYEXZ4XvPnW63jz7Tfx5tffwGsvnuP+cmdg xCuljOEdwRx8ftnP6RT4yhNs53kM0LwChQWM5nvy95kPrc/O/C2dhloySBiewDPedAuM7/j/2bUC 7YmW/PMqd9b3H7nuvr9nQDA/P8+XnxvUkeapQBvzSbztFCNuwNXbWDzK4d1jUYqNQrCdI5Yx3STB Wr/PENftmQnaWk6uLouF/Cl9vNV+fMag9929awjpqhyNHJaFLqOevVvHk7wnH5xftvGYJfkXYZog jySPWTzko/zTkaYWPpRl7ti39OAmbOdFKqa5W3EK22NOQKqSxJn2WXJ55iG162nrS07lGup0OWM+ 63XYXJt7V2IPhiwCKA6TNf1bZs11ByatPQnl4fj+NgRJli066uMqGqrK5Fl4ynXsO/vqi354gmCD 4Ujn87X7ToofXBbfzYDt1ja1Db9sLLE+2cmbOqnBqlapoy/AOK/HrfyMW/OYy92twi9Xvnisne0Y E61IWOKoIftvEfe3t2JktiHAoa+niTteBeNwyI7HRavOSWxTX09oYdCVbe/eO6QUj2Me/V+tffnf BwsCLbXxm+J6vSaAVnyq5tOQd/+eFNDog4Etht/wPfne1jrmsBujz+6J2HG4EOzQuqx8KMueKkDr 8Wf60g63K8Dd+2/hk/fewrd/8xIvf/kZfv7jv8Ov/vbn+PLnn+HLl69wwQV6bbiDnQZruSDFND4t YXl0KHQYb1j6CV5p2RdPjNYCLfAqOxbzb/uJZTGtKhXDhuAKD3R4D0RGmEqBAjrCVATuDfBnDYDb PVFTRtXLG9NFnqhajPWIdHSGBXh70mgcmGnRvuomtNRd5hHSpBabL8lClsNNuucriKJL8585Z6lP 6qFUOpQf21fq1sACeM396/VqBiExn2X3vTdozOaz6zVopmk6KFDMwq/FLF+9KO6f3+HtN17gzbff wIs3X8OLF69BS0e5CK7tC7TrFyHAuU9KKclAMCsn/H0F9bjOgDzoPJ2imnlqLh6RQ1S4l8bem8tc T3trw5ftewGUXk4BMD8333teLIDj3/HGfOWSpMF/UG1thRWgzp+feFDq15Yfp79PxTHzO2Tz3XiG +GWVu3HvRiDndTnw5U07X0X+jbGc/z7Pi2z7v7v/KdctOXb2O9+/w3b52d24RMyoEQq1P3fLEG3v W9/l8nPBUHHngeaPe+CWzOX3x6pey17TI51aW8n4pSkCRve422TjCMvsj9DRSocXE2K3N5A6EM3T sfMEFAcrmKZtCTQptpDUWqxqhj9TEJ6C8DgEoymAW45EyygXFecOeEJcaILJ7W8SyVzlGKDwqRtu y3S6zQhH1ui+9nAJei4iznchGp7mOWLzDYyUVCef4F/ErWc3ursytVzG1OZvIVIPWYC4DUHHuwFP ClRMVrfdO8/yFTKAPvstC7C43+/hoU+na8T+K0zZcaDI9R8H05Ror/cOhrqOTeB9cJDMEKFp3pE3 u/fQz2S4kAKUJ48OLxT7l/6M76Qf5o0MALC1H27OdJjRIuwDKKZ5ngXnohCpeBUd23f0/BTNY0DQ p6oOppj2do4tHwPMoCH3x5SAnNBIBSkqwfj7XvWrr5fEeg2lrAdIf4VXATylm2C4f+91vPP2t/HW 9z7Cq998ic9+8Sv88u9/gc9+9gu8/OKKy1Vw6QUXFNypnf9MRlzUTi4ukMlDYhacAZK5fqUUXHsz RUoNII4TujsKip9ATAUjKUUosJNpPazFGWumO0+Ngx0EhnEwWAiuNt2PXgLo2xtJlxYrL6UYjTNU ZxWMqTqRAG7RFDs5PeJXqYQAEC99K3ClmzHRHmffDaS3YmFPrbnl3Z/vCrMGZjEcPGMeH2CnbXaG aQHQh2vQn1KvguKqV6h0VwA6HtCAori7r7h77Q5vvPUCz188x2svXsflvgLVhvXFw2+Mlh4sLIhg PvhHKm2rqrgrtMgNQN/brJiLOC1Bkc9BoFHE/h2LAIU50gzsSLSn/n4RoCF7GAGVjgqjVwsPy54B AB5KVVF93ZcwRwIMhmRoMw/RigVcZnO1CEz4N0rwkl9qB7qvr45QKctpkRHyo7fDIyb79oJTcv9W 4wQ9f/Q+VWU58NnAoyy3m9+nOjunVLflvvMuGvXh1/BIYheO4mi8sV8Sn91d4am3jzVZpu3/vW59 BqR5ntS9jUkQTUDzxrtX0Eh+KQjHb/Qv8gqJ69by6trQRYO/Bp35/63n10T/CW77vF6GChHjGrke CAMq4KHArW0xLuW6+n4nX3vKJS5H1/KoAxet2DoykqZ27FDyo8dPUAf43zzHPWlRECMs9HBOSI+J DbIoWM4BWCdmekkwnaMGPRFH+t66awIRFKwuS9fYxqzdZKtUtjZU1/56H/Wjc7/I0HYa/HhPrgzS b+YoEPw8RVEIMBvfzEkj60YLi0+ZKzBEXO+mL6vFZ+rncl++Z+eqnfoBbqLiC/O0JOTdnK2/rfHw K8POSc8k4rNxbq9pfY4g+LApFwGw06oGEB+Cbli7jJGqboSPYkkMXdrNfTsp73ZzbyUa4j5QIEod 7p7hRWVyVczCShouVioUcz+wPp/o1BSIstw/XKmTRT/6ZGt+dattRd4HLV6g0tH1Ch5iBa8VH30S AOjjfucN9y8Knr32Dj58/y30Lz/CF7/4HF/+/FP85ue/xssvHlBfPYAn41YVXCC4iHkYLQ5VJguO 9jnkobXm+6Zxdm2etVtVG3lwunFw0AcYsT1nFm4FIvxMOS/gvTnWPLnGvYZ8lPUMmhyWoEK6hdqh XFeeXG5j5vpGspqHNtgKNEAqKpQHXRpNaIeUCrPMFzTYulg3RlJuiOhuZzdop9EHcY9RhgHOpiPk Dpj3lfGl8beXPtFno1IDC5W79iu0Alo66rML3njtGe6e3+PFG6/j8vyCeleAAjS8xMuXjNNXt+7T uph5aJnAP/9r+hC0YOB8Ttxb718t9pE0zWTpw/17AwnDrfI+7wV+1oWYlyPLVAxLZPYcdKHnzxQo xN6cq/vcyt/J9wRPomLQTRll1aUh42c8wYvt7HjXrWvXlnnLuKeOSkN+dvfv9bLxON9Thi8+LiNt /ytS1w5y6R9y2VidWyQP+wH0b7GaVQXknO0OxHz83UcAjeU9xDWUO4DjNS8QQLDLi+OotR76tFtj a+H2POZM0LEnvF0d+JHKsvj9mY9mfLKO2T7L1O40J5t549xoP/6+o41bODDj7VGOd34uY1/7nYq3 3XdQAHjlEkrCAaSk0LPOZ1hjL4YRB2uPqgl4CpuJ6XcNTXq4i4cFPYBOnQcPB1SaH8s9UUSVF349 QhKMEdqx9NmCQgbSY9Kmixq5fyx9MHpVjbrHI4fAtD/xzdeLW3BoCeKc8F08MS8dipbn9bFrFgKD mLVL1IE1htGn6cZSPYgXQzPWGLN1Y+w27C2mlxkK600/5VohP9c7K5YAwqSgUQXBhW3EJjsjZb+p kCUmaw1k5WH2EKzhZNNm1znPJPpFCzObTwrJmENAq59oq74Pqnm/mHtKr4MGIDKmyxyBUF5YxcZf cx0aDlTNXxYWetgpqD6BUB0nVosSICQFVxXXfkWtdTrgSHVUIZI+lBa2SyuoquIKq1DC5EjSp93T INrQ9eoMeaUp9bG5cUCBL1ShjeE4BfLWBZc33sU7H7+DLz79Au03X+DLTz/Hy8++AF41XF4q7lRw 3ysKjN4JVqQP8CwiaDlZme+U5NGzAPmgx46rH/IH81J2C4UwWpkBxoh9ZR6MGh4XMYt5b0HkEkqS efro89RufNas/pZk7C7J4ReNfezgNogXkGJ8W1X9DIBEp72b11YL7NQMHVZ8P/l44glpzxepUGiE 6V3zmSN+Yi/pgyFlzZNpQ/FFA0uBdnQ0NLTiWRXPKi7PKy7PL7h/7Tku9xXlrkBqwVVfoT08RPiS zb0c/mOlIoDA3nJHKgZ/r7Wicf96wrRQQewtwnto8OL7SmHZWglQzJw2oyeAil4GwxNQSgI4cjl6 c34lQANqKejtOtrpis6kascINRkr0BQF1v+rl7sNenaP3IiJXkIvRaZ9Leuae7xXR1Yw5xwmgj5T IObfSxr77tLg5zjMVdyjGnI15wDYj64IUQ4szzJCgp7fAokwT2tnfoKe/DE/NeSASDclbSMHo4qb 44+1ahFS/9VLVBrfEMAjIvJ9q8Jmck7CW7eC53XewkCwxpT7tZ5hsFZN1J45kuf9uGSStCcYI2/8 Huid0ovzO2LoL6XgmgyEU/TJSQ5ESCkqtTzhV5vhPee3wxE3ZDzH35DPeaCyBQAzzmHI3rYH9FYD 46yPohHzv8NRu+iJgiErtiuTDHm5LTqxMy8FgMsE3peY7JF85SQdh96cJ3/m77KmOixge82I7+d7 10kZ93VIl0OJyl2bGfwWwMBLCKaT2G45e+/j1wAjo421j5Z4l+8fmrsx0vkE3PVgrnWcO6C/uwLc JWvW+ZV15+MYd2B3EtJLn9Z7H2vzq1xG3N03hQHTwfAwLNrsY35WEeBlrQ6w9g+Q6eA3fr9TdPK6 q3qo29K4dAWqeTyOSkC6Wk9nHQDSAEVS3BItWV8M0TMELQD5ktuQ509V0XpLgHvcYzHsJmhbu6Zy oxrg3O4blXz4mfPaew8FYICH8S4mXfd+DddlzlsAAE2HLa0KZWsPEKl+IFOJJKumqbqQwnMVALkH Lm/f4e6Nt3D58nXgZUP77CXaF6/w5SuFPlxxaQpBQ2mKKkBpYmEUPn6GD435sH091DiNmHwrjQqr kiLkb0z6ouGCZTTNo1CE4/DkfVfUJnoDIIWKgtfzN+uIn6LbjF67Kwu8txiIaQ70+JmKhGNxUyab 0W6hcoMGNAs5sEN1gKIN9Ico918Lwhyl9jx3IRKUuYbSPQlv8Lqw3KGhexsqVimoi0H/cldQLhXP nt/j7tkFcl9Q7itaMcD7sr+CvgJQB4BXB9wsa7la91mRaVjO/cRbHetGwG7AFdFea1a5ibw25GTy Mhd6F5iE3uFhQDq1vwILPp/D6NZcoB0fWvkxK8IVMa8UgbnCTyf26hY7PrEWNNjx+PG95XEoLeY8 5ILrmvo7jWNp57FrZyE1nut9TEmnpkDOEQJnBqzdOzL2UdVtvPUWU+S+Lf1fZfdGAtx8R6zv8vxK C9O9J0pS/jeLpJwZ73bY41Z7XPtVvrAND1DctuGq7c2+YNOHs8v2HxUNM7StuXyx99JvNMxs5TQ6 dCk1f1jbla6WwiUTnW5o8Gyu8z3570pPxKekF8CTgPkjLRZ8uMM1XR2R/MFUYoJ4eh+2dcpzPVZR QJAP6uqhaYkWVLn4xKhbRqwF67AzC9e8RKv9xpPdUsiAPTUmYGYAPhkoLkF5kp/V1ZbuzFHnEIlc xWR3jZyFofFDnbmLRHUggoI1geqQLMuFFlpCLm6Z3ieWrnXvuU7jfAAubJ/m83QDLxtiu2mT6/dM AblFsLweEyi7K6r7OOqSIhC5xBqvm68vB+SIDkt/9Lm4hYQW09S3AouviwNeItl8jSnVcGUCHqKQ 1of3WHWbYQ3kpoyY87DS8Gzi4rTcvKTkzCwi5jAtnFl7CALGnsv94F+zJmuc3DifbG0Jo1Dg2mmR JdBnG7TmzxaGq4NwhvhkIWQxmS08Cvy+9+skKEQE2kx4hEXYsaKFQTWbQ3j4zUKTHR1K5aTb+7Q1 4021o7wOyLN7SLtAXin0VcOr6xXy8gp52VGuwOWVeQiKGhiurjBdOwGar0PUzzcG0NzrWTE0TNVu h2fpsHCqmlfQ1hgAPT4Ye1WdMibHVCDl4sqp01EnPxZINcuzFVMa3htxz5H6uCLJloqEWPlNdC/T 6wqMxfB3S9A2P657NnqcJ8A+Gm2a1UqvHiZEhUMZMmL7o6NBYdb91h+ACjS9WpnS0s1rei+Q+4JL vaA8qyiXClTBgzSIXM2qR2ub2unO0kytogdYyvD0rryMwsz2JSJHRjULVkBLm08s9RAgvkdEUJJB K2SRWNinuDIltaB3gWi3vVRm4E9eIsWVM62hANgadoBnWUg1BQem8JUy9in5oa2jhkcvDCAe8jYq oxgh9qDPMV+UK6VWK7G6Bc2US6ZkkE/HwZj0SCYDlwFBf15kKIozWztcptAk71EpEfM8AHKc8T4/ m3IQMz3EZ6hPBjBKASDoHjKqbK19yhbcQ7GI8Ys3P+RW0/NzAMJDEvN3JdjxPrKDxE2wsEjSJPfr Uu54PUdofTvpPHuzJ7m9Vq/RJSQs4Zla6wgxFXr6CPP9faGAUM7Obdtvo+3d9O4UnuLzASmpjWnm bB0UYLW2SMyPexHUNFdtsrW0/p2HiK3J8TulfnfdUuDW63BPd1pYVvaye2A64huIUnw9b9DQzmTU Ul20HyBZ9bHTcLNzeem8YJrAPHAjOIpHdz/GwVzb2UCQyAJUFXPM4HjX+l5+UU6VgOn+VVsVghUf eUqeNQ1ZvBb+LJjWdnXz21k/7L4jIa7tPuXaaaRZYXmsP7etRXul6KnX3tpxLL81jUUxzWe3H4JO p3vtp0UwHE9Xzu/JG3muWHJ8ZtX4bW7b5GkLUDu+mOetz+5yxl+u5WIzE8lAmSEXA6RznIreHwyg 9Z7oU6b7eygGc05L8/uvnoA1KeM6KgGNPg6rvdXDv0KbKfg2ft6XmSdzg7zHroi0dh1xnq6I2NLz FOgretUU2qaQZ4J6J7j0O5TXKmpT6IMCL4H+AOjDFVX9dN/WIBezgItaAYQqGp6l6vPhExnrz1BG S7BtDkBt71PAjnMEDEBFSKDI5JanJUu1xZkOTDw1wGVKwLTzosShKyvdlUU/OBFFIIUKmClXPI3Y dGOnce57L1Or0t3T1KFJALar91tg4NO9A8zfYEhQC2t/g9YOqQK52HrUu3vgWQGqGHi9XNClo5UH 81DQSt7p/auwwLK7KY8sC928v3be57BMl2IyxOn0crlEsuWOfcY6JRmS157/prdOVVPp29FOVph5 X5GRL2XtOK+T4zkq9nkGYGwz+NDCH3LMM1+w410xFtnIZs2GB/HkeANVNYFL7udJAWM/lJbh2+A/ 1orzsyRr575lvvdYezsZsMqZHVDOv6/XXk4RR/nnhB3WZ9XlU1+e3b1T/Bn+3d6T1xO35+dMbuU3 rs9FmHF6PtqP9a1Q9HFQIPdCmD/mdw0FkoB2/L7DS7trpeNZrqfnsac94rWzeXnsmnDf5vuz+/m+ p4xtvWddV34OBcA2mgSgLh40lCdAdY6lA0yRCiJWIMeC5c6oiAPxNixaXUYZsER8BBKAu6zzvDBm Ly7ThA+KxHJSXzB8MW04LKLUfMfUAPDj52FC+nDluL9FGWB3S5kXSvuRSSrGRr1qD+uhqkKKevLj SG5m5IpNqAAAIABJREFU7zineb4a2qF9auyQMcJxQqDPXgBbF3xMIkt1j3fXGYPdJY3dutbNcAso n/UDwHSypYEa5lAcmf9uY5SFXpKtxYTmwpir749cJWg3tvX7LIiz12f8xjUkSF42bwLLK8NT1VGb nu/3Uoq0+DC0pigs/CTe02x4VBx0TGjxOTBFm7Nznd7L/XttD+M7IAA7q1FNfVVaSnpSIMbYVJUa jJ32KkPxR1pvd+xHqIXFwPdRdEAbejdBY4ybFVE0Vb6yuemq0Ivg2rqdDquK8ryivC5AV5ReINeO cu2Q1iHXjtrU/uvFDt5SoDQPt+gwazf9OK4cQFgEgLNkYMpyMdy+JB4SYgsDFMAqIQ2Q09DReXIk DHT2zuTLoTSYcjjW2yq2tVwm2pVhB/OaAJwYeusgkLPytyMLxKohKTrQu4csFfo/jJ6cplQbrqKe 3A1cxZWvosClQu4vkFJRLvfARcwrV4BWjDdV9AhFqrUie4CZ5M9TbQcYrJYUDXE+DBQpBqZlv3cP oUEJYPbebT5bd4v+4NvFZZaVOe2hsJlClmOJWQ3HZrDDvUeYzxLI+yAbuIJvVO+/KkR65IXYeRsK VDOyFUUctiikBUUAmaHwzOcDrB4EzkvTWZ7xGtZMVwKKeN5+uFRdYtNTL1MoEvlijPsG4Bm+LDad +kGeEF/4/thA9i3o7Qv/ouIoPQlhvn0YTyQAC3N8NO7Zy0RvI9g7+aVHEgj5q4dUoU35XQNfjHU3 gDwbaoZ1+hi+vdL42WXr4c+4wSlX3aEvJ+cBZZlk8+qj9qqOLE9eihu9rPRA9KOk9VdN50WQ9vjO NJtZxj6OIzyCJeQV5+HqtL6fr0rD8ySDJdpcB0w5JYkn+wBdXp3P+07xPLtGbqc/q4g1mGC0tzUl AWetZwjw2y88aBWb36YBsG3WDXfr205TNCvmzFx2FW0yYzxjFkGMMleaiX5FX/1dFJRbl8I8xmkj 5oWUZLFPz0xWoDSuDIJzGAkwAO6qkOxA7U7TF5nB5ggZGffSCv6UKwvEzDhy3eoDmHvitRMst56n AJzuJdNI9+T5nRO1JB5XOy74oGgdx+/sTo4KTx53Xuvs6tvNyXp/ZmQB2pZxjP/m57Pbkm1MCrn/ 7fH7sU37LFMfqFhwH2cFYNd3EbfMT9tiXlcRCVrP1lpVHQmC9muAGAOQMvGDtcybiCWR2jsKLpf7 CC+q9c732dWEtDjoc4OG1osn+wpeuaXfyghXXLRCekFVQK6W3tYfgNYV5drN3XpVoHUUdWWr+fFd HBesmo6tU/JgdoFU7ulZwRap6NrR+jjIUIt42IeFiHEdTRlqLtBmRUxVIzekR3lgv0/pDXO65jMp uazh6km48FWxfAh4wlw2HF2dv3eolesUA81yJ8BdxeVSzcJ+54UJ7i5+r3i8v4NABzYNHaVcDCAB KHJxBcfCfSLGvqjdI4BIQZUjiCWd5JyrTJ8GODypsx4P+sp7me0MgJ+UhyKRJCwLEGdBDFYhIt/P /Zz2beIZpYwYe037PQNpym85eT7Hsdtv43ND2u848vEsA7IMHPzN4qJtTG7IOuGnSO8hf5oBvfd5 ++TtK/N74Igj1jFZRMA85rgnRQDYbzMvHzxYl7Zvy6+IDVDuxcF/bRqoEG3GluYe01rac2dzMv07 KVy3rqCt5b6QM77/495Nc/M+TDJZkoFnaTcrATvZmaNWzjDZKnc6ANDrwHvBZ2cesdsDc38eUzSI U+bv8vh2c7T7bdtufJi/O3v2oABkt5IsRNOgqASeii2hRJItJ4IGVSUj9cFQ0KlZ/yngI+zaq/mE B2EBDlkgBrDOp51hJfnwVUAEcYjMUBkXS7HPhuocnxuAMhoXAAlIMqEjFHoCelo6mEDoADnq7Pdg jGyVYwXcYt/tKHo3hs5EGFBgb6mfGUFKJtNhWTBLTVIOdMQsymIxIChhO2SOFFq3+rBl/OkE0Mc2 +dlldDDskblvYYlBshZoDiQxGhNn7MaEMOjbGTxjMuM007UudBrnOo78Xbx/Fbw693/d/EOBtdhr LpDVY5awmuQQPWNkdQqpAYFQVFvge/r098iAPPxHTNk+K2OWQYCN04AA62gPUJvHmz2Lgx7gz0ME pShyOFePlYXHYnsOTL+CtN57x8VzZ/KzMnkF76E6aDcnMQeQdOCm1WKXOwwDdAC4K2giBvq1xnkK pSm0dasO1hXSANGO0q2UqVoxG/cYGPMrvds43ANbgv6NzxUn57x/czEEuzOQoI0jtlzybGVjiVbz /CbAYYfOmbeA4J6x/83feXXrnZXebCiXalbh6ickF1s31AKtVolHKgxIVwfFpQBFcSUNilmOmedV 692obASPpQcNPiNZtdYRF6+qQJEA/OVSw6MtYv0y8HFxWh1K+Wr1B5igC4haoqJcPNm3lC3wBWVW Ma9L3HNJnl00kzdyVDrkcue0PYPrIcd06WMdMjW3s4AdYA6xjHLqsY2pYPn3SEayMuTwCq52/G28 0/Z7rUdQlu+bnnPavsiKQo4Xw2EKXBlqIyRplR3Zk70aEbegLvUv+LNnx2u3vBoFIudolFo1b+vc y6dduWY75bz1QTyXQhGehOjL8PBZPzmnazL3HIaq/E1Z/YlhkH63PxbnFNnGG+uVpndS2FZ5xRvD M21KjMo40yJq/6tPV08GU814ALG+vLrQiFJRMCuYq0zK89E5f+lcn4zzhhLmnjJGSEzz2TGQRWoX SAdjznIdLseyQYbvWLHPU/DPiq2yAWDCq4f9YM9MOQA74CLigigLjRMtaO3YzCQ2He3DAkXA3ZJy QYKaLAFLkkT+LRP2jnnkCjsc0DpmJn1VZ+aaCALAMSFpyQkYgnTvfqKg6efFfeIeVZ0soqWUbUz3 2drFnCRwsx5oQjA1MzxMCt4BrOK4vrlPZzRx61oB704j/odcFnI2mOE6N/PNJUIKsuI0MTIZz65j PqvKwe/4/c5SngXk2Zpu52R5LjOOgxBM4zgoZXkPTKE64/lcT/yw9npsNwOYwRBHboa1cwHgB/Sp An7wV5U7WHLv7BlblaeGZhVeur8nQhJH/fZS7DTe/HxOMu69pn7Zd1HOjUnzCQCxfVUDcw0I167d 6ye6RkhQiZCrotWVhQJpPb6vHWhdoFcL/ynN+9rtHjtszL0LPRkkSDs6rNhW9ch+z6EaYVzBJLJS GFsdoV8usK96tURbwKzy4spAdYt9vQBSgHpnya3VwmpqrWFh6/59FEKQASw01dwv/pdufjP+17Bk A0Bh9Zy0D/N/7Hc8IWZkqs73OJZhDCHdzLHjA9zr9F6U4a2a3nvyefUuhHFpozyUUixAVkYIx9jb bGPkKuxAf+4/fI0J2Kb+pVwAkRErTo4V/H7hd2ce+B1/AsZ+2j03veeAF478Oj+T38WkX+6H3T23 ri2W2cqfGiFEw9o853itYZ1P6Ue834GmwvJgLnAM0nscEBfrKVRQi4dSky/Zzs6Y4cDrl3dv5YQe 75/liu/jzeF3u/EyxyVCiHL/VVEdhHB8Atzs99ovCx8SZOC34qTVc6fY33vou0h4ViXw1x5LxHd6 3qbICK1caS/35ykYav19ndcVu6284rJbNBEZySZr+S4xK5P4S+gmD8YxYg+4mrBmFgawxCQdBqQ4 ai2qkDrAtaoCUkGrZk+CMFw50YTa4pGhZa1T1S3QVi7QSuj5ZgsLkOUxhGUya/bZLRjjMCJB6o+q otSxgfKYRVlnnx32HeHuSNPoBbJoDiWqGJiHIaoAsfqSHMHaSiRIG94UAjXg4sLa7j9u9BXAruFA eZ5PPWRrDsUG9O4sNnHvSkQTnRHMt7EOweAdlEVfqZHD5juac8DonystA16dp8sQxHZ1n/0CWk7z 2PK41hhFWy9rI8dqToxC7aTCFhGXuXyivXunWKwhZjzBlLkBkfvRSRcUJKNqVBZAI5nQ6pfbWICK UQ3IrLm08oz3M3F3jH2pSFGYGJyTNAGGS0TSqaZydZ0HyLDNoUDndjhvl35JMc8FwCXGpKqHKk5c 9+whABAnjpLvNL3GOvFMA5tzU3roLbCk6jF+dCMWTV4E6Tq8m64cROx5G4fsmILFefW9zDrWisT3 Nsp/EroqrOgmbinv0HIZlsEiZDNh5bfnOjqBuVvYG/kDlQEBSrGwq1qAooLL5TIZbETE87M0LJrF E3CHd27Qsln+CeiHxWsFxyu/4344A9B5v+S9lME8y4WWxDetv0CcEeH9sufYh3xCfVYA7JlLzINA 0cJgw+fy87lPwROLAJAI9ar+755CzSso4yXqyU/zndvHPEdINDfPW/XW+3Q/52Xl54IBokspEQJT SJdsN/3N7889bNfErynv/KT4W2W0c/8sT0fDQxR7y2k/+Q+g2pEiXfyaiyeUcsFqrOR9HKd9ckUw PKo8HZ0+570xE5N8mGUivZ/k0xxnPJowQJWLD8T5mt9mhsYUgu1Vh+YDA8k3MOU48h2q6iWQxxwe lY0hxwBM8pwKg90okxzm7IyqVWvOh/Ixv7+O73yOjD7IX/nSGb+Mk6KpVB1DnKOvwCTnYn78fflF zJGh0veou+vGNeEhHPvmwwJDOWNsUDsH4OyiEiAJr+7AheqIKWad5QPBpXaH1jP/bu0kILYZaNfj pspaVNYccx9vXWx3pwjBAYB4kEnre8v+rbZXULwqAAThxzH5YookhjnfM+LKHx+vMca1H3stcl2v Ic80FK6VyK7X60EgfdVr15d1TGda7a6trlkAeEwsEMlCjNldLV1sm4pR/o5XPvU3C88dAzhsyE2f TQkdoDyPN1+T0uXCgkm8Z/N09jc3bcJYMNOnBN2oPyAyrKA59tHa5Hjt+6uX7RxyWJKCAVCByfX/ B+cZYzUFoJpSodekmZs3rVwKemcIENvVw9wXJlmGxT7Vns9VV/zdVx1uatWRPB8H5fjARC2e+kJv U7c9RIVg4nFqZwR0JNrQGotxJSDR2T2uKpaU3It7ys3AIEXRuzgNmOIlXlqSVv3DORSuzGmxg83o XYR/x999sJ7s192SnyxMKX8LYlU9bFlcDrhicIl7usfK+zx5X2j9pweCn/k72xvld/neYaknGFnl Twb7/Jz3a/6b48PzM6vSsGvHqQi1XtLzlCsS/dxZZbNCbGNxUBBJnOP53KfMm6b5gqT2hnwATJ5U D63jZxorJLW9XllByt9RPti/j/Mf/ZShUBz4pWDub/q78r/5yko/Rtsb+bQbzyiPaJ8b860WQ0p+ Zle8QdKeGN89rbKdvc//DYb6jXd0GYans7YeG+tOnoiv+3qtyputXwmcl39jDD0wx/+f9fUoS2e5 ugPXAIYigkEvp2MCUsiRXT393hxvicjBgEhaWOcij2nCQ8v712v3/fiu4cwy+lXw0y2scOs+kRQC FD9S410XMiWXERDvFrlomYhgTbaJbcPbusLc7M6EGWtFYbQKLkaFdnXriFsDi/0qnlVtQKEHAz3O cwJy3epXa9fAFR5cfSBoPSGc7RHJQBwdvr6XhpxsJKDCEROUv4+5zhtkKCjd61CPZL0Wm2QiYve8 rHV/DyCT68x4PJXplEyu5Rpzri2VIYRtvNWq9FSlbH0GmJmsdavD3EJ80CeUwCk0IwCwuuYZ+DWd hRUtogAsRnkD3u0+ggRWPSHTNEvYAHv2noplH6ThichYEF8LnqrLpMDVkhOhLouyMewpMsajOlkq eW+uWlFpMff8t7VaFOkgQJ8DVNRUDhCKEvNgz937+Rpa2c867SVTBC4xV1Uunkju98GrD+UDmpYz FUpsxpHcy2TUC2ahHAdsRTWGOf6fZTg5vnscFQO2FWvpQt76fZl+v9DD0iWUhXhfG+vAUKNot3Ff zs+E59K+RHgftQBo5imQDvTi8fv7XJU5ERYO3gcdhXD3eb2vd6AHJivLAAH2EhbDdS60+J5ZvmdA vd6TeROrOu0AZu73Gl5jvxEAzLkDVGAIsJhPEHPlc3AR9m+p4uH3jP11Wd5N5YLhQASEwyJ4VGTI W9IZOq4g0MN7YfGB4mDZ+T4VragG5koB0hwC8JOtvf8wPkFvg0qSs+jbtcrXGprE+c0KWdfhReyA 5YGoRvukvp4s+Blw7i7KxS59ol0DeF5VDOOE+ckgojYnPKkdXieqWKzUjXd6pEACqpTFqgiPCg0a p4B9kkuItkCab65yS/otzaukZ6Z3RLszIM7FObKnXhcgE3vI+x8VfbyaHGmEhWsYemRRIRK897KE GudxsB8VMp2MbPPm8ymDXlkEwuIu3HCxnBsQ5/GUGcsMhSXxb6fvrHgByQkwL8t2fiLAI7qwGqbP cj/K3HrBaA/H9RxycjbmTUr/hIf8OdLfI0VjDucA7AY+gV+keEkdG0AW7XdnDZ06wgHHhk99WDq5 m5hRPmmeFFUCLF/cpQzkti/pfZnlEGDthM1TQGxue2oT84ac7l0+k8hXzXg8uwclOwC9Lv763K3v ct/GJhjrftb27vuvot3yfibecd6CEbItDwuJjw6suJ7BuBZX5apQ5D4/pk1PgjE9M5Szce/hfpzP mfVzCFTup/neCiv7d7SUTIApedTynK1tSh/0b59nuivF55OhD2Uw+5wAHorlWnVoswfs37ynQeTO lfG7NNF+UBiPcE/lQnM7x6pZAyjleP+r2n3VBUAG2Kp26i+AYeFPe2oC6IsCoGr14XOfWmuxPyzp +hIKqqpC/WVUAPIVR8QnpSHzkt18iqR567fp1+7PdJBB+cxjYm7q3fT9+Fun7wjgbF/06fOOP+wA /U5JIKBcq2Hdep59t9AcQSlT4btQ+Cpk+24C6RIx+cZHLjzwDLMCAOzj3UefeR8t/tlwAAQglrU/ /rsPsySLrBW1mD0Xq4FhzXGA21QPJ6B78jI6QRMOc7teu+9iDmT+zJwU+8+Ad74x+qep5OOtS7zi DosAeBvkdxCZwlDO2zn+zuftZ3ruuBdPQjQXfHC2B8f3kmw/Rxk77p3nJ9PHrjrihGkWWfmYXNu1 k9vqy/25Ao+VB5YpFCXPIy+O2f6OvSqgzBsnzFufbs8nx9ZvzLfI8DCulSAB9ztvznna8drHeOtZ H3J/dxhj7dM2TBjn9HWK/SCHd5ZScBkaHjWwY4dFPCeADUSiFWxh1WyrCkTlCjtmvqB7zDo34RzB COjiMUBWJAQYMXNl0bgEKMDssh19jhMa+cyyXmsuwOEKSzIZEts+llyzfw9gNzVT6OIn2OIv5vVQ tVN+x3yTcXbeNcbLgeFIgEKLIcv6MRbNB8i69VzDHhtOcrPT+QAA0ARj4/iaWm142EFGS4zlTsD/ Yy8yGbaXPwOjfJ4UTUmPiql6hcCTpZqBdVqYva6zdIYcPMYch/WiURBMtc46em+o5S4Jent/5MvI iNFdN7csVtAcW5rvrTBrY6stLCTiwq41r+DioKVWt1z2jiJeYpYeAlpM3JIfFnP3BCAJulJL1Ev2 DuOORoC6uL9LnZg6Nw1PBOZ99EBJX5QSzqZ6mUjGiF78l4OFnPPp+z/Ca5r129foksSX9XeUH73F 6FcFoLdB97Y/Rl9yjgLbBp/H4AkmTJlDEFW0ba1xDAObAG/cjZivWwImjDVCfk5rLOerYrJipapo fJfFjB8BtogED8vCcwqlcQWAns8QYGB/fB3QJo8CovTrXjkZlnNZvkfQQ8n0E0nH1v4dZv6yKto7 xYL/LhgWyvG7r/kCwEGsr2Xa45EcH5a6ERpln2Tqf136E4tTC5AUo7VMY75yUjXvmsYJicgOLQVM WrT7xrrY/5uVcYBMrs8AL1nRiVCwk6p1BIRwmlnBGBV7HkYXFk6C6IWnCssdqY0rTpB3rKAgFphj 0elBj/nxPXbtHXOVn4VXeD/qGiYUeKOkcY4+HOl2WJorcpWfwRtjzrLMyHO1od2Mj4CjvKfHuIut wcqDIvcsqvdlJduEhkiSuymnIvrSjwqBGQrG/LB6HUeVFZ0ZFFOWEDc5b/VcoektCqgbEiNCgXNo B5yMsXG93OOzXmtEyTEUds6ZzL+vfNq/PLSv7PNyf17Lwb9l/M1YQRFMfFVSTd6z0WkwQ0PYaRjj q6SV0rK6ClE/9j23q848d1pU7mQwqURQ/39x/7osSQuqAYNgrj1z/9c7nTI/4OEkVtW793wxRnTX qkpTEZGTiABcJQlfvS0aDxviq1vmU9HFGAq0/RrwqBZWFlLAO2/5nJON70boKSQiF2ecUtuBkdPf QSSkC/0kYHuZhNutPGRbtvlUuY1CFyRd5+n/qQK4wQw8BOOCR9VmVRHXG1elHFrKhlDvIzNjZJtA AW5QH/jxDChEBR+3w8ylP6QITAqk0kINe1EhFIfoOpw3miLS59jiXav1syuTyPSGMaDtjQw1zC44 /BkYU6ffLen8QBjEDA+PXZAEAzb4hHkQ6TUFp3oOiSBw9/G7SLroLYWw5TXcvcq9Th7D3pvor4b6 iJ1lgCG637r2IcA9/a6F/CB4gaVmn5JdaQMGjodkABbMiyuOIaCVn8UZhTwhi+I+BXX8YMfW0iRD cGMHykxG4T3SW794MQuqwk+5eriFzDuOm6jt4H73iHcFPnBTQ4/ynGSFFIaCj6+FWN4U/cC/+FrL v+MzcIId8a7oBi5WMQB0/NOFgmst35nD+1lxZubjokO810un7T7GiV/ouZC6E1na41A8aOF8VV1T vxSFTRVrdJF3c7vikseDW6aZ6norRlzuS6ryJnzWz33k/vW3ml6TOXans0E76Ta3sTssCfY8jm6c 5jLh5lbGd9MYtf2aSx/Fqc7kDowDJioOnbwmJt75kO0ydwsUX5Mc7d8nuG5lonciKrLnaCsZAfHu UO/SX32vjnuiiQLfpd1+Lul4//LisVYHetQdgIRYIkJaeN9CxgJ5d9q6S5PnE8SkMVrpYiRmpocf YyLJ4jKbIMR6FJbXbg+MbQtKijza5a6YJ/hkC7nnclcPRUdDz6MND39c6GL9msLz2C8QnPHeb8TZ PXsYQ/9bpHokaSEmur6XPY1EwSQebcS9r7t5bm4ECQZm92Fpm6JtnLhSfPlNpVSZwH9hTr30hd+L iHqyX1e6/4fMLCn1tu0QwMOsgmW5p8DbA/M2xQtbyVWhomQobP+diGlD5bVDl67YYuEmZbOWncYo 3h4UdZHz0Nlai8jSr4XHzDyoCwYR6CwUqKzw6rrmclhOlPCLEQ8FfGKmMCSYWdd0YlR5XZf30wMm 8mw19Fj63ZStyc8fUAiZxxTdOJT7GL1DwfojGBabhJadL1hSL4oBIJGlSPv6ZwIwDJfvRgHwjB09 EfFLCvIZjIJ/M2TckOL/V50HE855B7E4aYjKeB5XDv5KBhBe/6N8AONhO5cDQQ1+seI2U8W50U8y GPTBBhEUWmD83ZQuMcXb+WlKEpEFOhSrh/6iTVPYu0GAQ8QZvnzINhsMOYZd+cT/2+cfCnWuv3FI Wer7Mx+y8zBkO6JDWIikkKMMR1H8OHZkUEDP7wMlbSk9mJz7J5vWcIGmyu+Q0VDs8Pw85AyYW7ac Bwr9k+aIySUQpyw7axHyBvZQA+zwPSZ5EXK15CnhfBo2Ejl7IIOwJpYssruoMTBzyOD8ixnZtq6c jzYll1Ob4KhODwaB4uXx3TUYXz0JR8Zv6DvGq9tc3yINugfecbaroRxw1r7Rfvfog06mi7i8XqJr WUpTcCU+tFS2bnaaIp9DNc6EIuLDQ1Xb/EOf8FBV6CTQJdLYiShTgPWlOzH53Fctg2KsCHAcqYPC cAl+770Yv1v1bFqMAbLT6l9DRvDc1iPkmOM/dGBXaQGvCJ2KKbnOVeUn2qfyGezqlNM3+S0iYQBM FpOkxXMUywazL6bc6DEQHJhTtzGzKvorPcdi2QlI++O6IPKcTKfup8H35wdTbkI+vwvL62b13cqt 3vh7AnMccx8jDDcwt5YdCO/i+68wE4XXJF8QBhg6vm+4/9UIuFnuU8ltxza8vdPnr9NI73OfAh7z jHVwW/uoh+K31WZFup2RibGFANf1UL+jvj9HlopjzcZ7+bBiGmX7rKXPYe47Kw19XaSzyyUGP9d1 JkwfDE9cuGaPXqqXmuFwZigEUQ/fgffNpNlymDz0Zcmy5/C0sylSlrYTDoTUntLUOnDR12MYAOe4 chrRkhaQd6UHaTsQRnMbV9JL2l43hJd843SuaRHxQ/h4XigiKY/c3vNgzaRZQIBmpgJHQefNDBiR Z1+6Ql/rrwXDLRsFpoiJ7nhBwSdSAasOCawl3J7bFezkbS/nabjAg3qgUxiaeV1lvLnxBvuVzvWj BsC53jr9dFwo1Pp9+TNVsOMQ7zq8gmstenEWIO3kZXjyAelP6zPXyW3kG2v1wO5K/USIoI+JZ7rU OhF2lkMWiWCYV5wEPaiS/74vYWeXCGdpKn9iooN/LbZQNuq8OM9dnbPZAKy4z/xhDwr8rcDIAO8C HEfCC9DcJVNVtJXGNvSf5/6U3UlpLAGAplcwlVSSXUZ1uYdnLq/eXXCJcKDz3bruEDL7bR5yn7LY +T8mFOE8sYMcawD6aMbjhK9vupPSXdcNuz55H0OfkymJCvRnx8dFb+rz3OXXny8Ms+jcskCDOzog CoHqjXMlkJxHVw8OWk5vG/DfWrSFPI0ds8Uj+uJfjiCR8DpHXFMdZFwwoTeV4jz6EhUYW60LhSml rOoFB1ckxf7rBzKcGALx+mb7u4ZnfCKQMmGp5N+c4VJ4/F08CxWmKES0HiVuXRwU88G+GWsCWOv1 EI/McCi9XqzygVbPRRghBjcmQDRvY071fjVQYDwWDT8r3vhe0uflrwiVUGGWFXBta5WMVJ4Mi6rA VIUC8bJCiGl0xkmklImrxwXPIMDAmDB+0D/OwOg2uZiAX1xDx2CI5/R+WzSWMyu82vZLrvAIEZv3 J8/ptm1aZtaDtKCLQSg5nlPJsK1ll0YxBz8Z6ufytO/u8c87CMyENFpZ8OFSsSyI4/lfOQPxh9gn 5dASAAAgAElEQVT1dxc6gkGRPfhEqtDiu0g6S2MKcjZIxIwQf78p4Bnu/Fnx8z+lrt9OftQNj3UW lBmvPpYcWsLhQVVavMFRlaSqxKki7iF5ySj4Z/Qa71p9HDpHfnvZHp5X+SkMg+gnw0JEpmTjlmDl c37GZVDQiVQ2+ZNkAMShX3360pDFjIiWhIKb3zfgnJ9QVnaS8taNnYgR30VxfmQZ/ze8MClvER3r TgZqn6ui+AsRUjmSUMhVUqdQwAgvud2AumIHUlLbeoGnEJH4beSowEnMLon5giGufO1NNBTGUqxT g807Vc+081r3sFo4SguZywtNDRfzJHsbi5616B/9a7LXDAa8bOu6e9IXIewUekLoT9NFYKsvfB9W 9YiHOtVCec24eJ5nDCVNgWbVkLDnkPt5V6Wv8ayYbvMoxr1HOmrcK+F2YFNs+46Gj5ubsWu7JII0 xc6PpLyHHXn0c9L6fJYEuuHLdu+F3fOEsUdIE2B/DXdcfvdqBk/M7T3rTzYkgBcqOyNR25X3ZIjU 0UmBBfTSdcljLX3QQXP5O2LiGlHcBL531jrIFkZcFlSBDXEDI+C0ANmMC4hkfb7T333wiftkWBPB /5KTt4ytWE/GIK3djodviM91b7/l8RTlrjGUGHM/aBXlRhwwCHr5zBROq/Q6Lp7buFmgU5//tRzC 9Et7DLrKhsJkZaN+WyNTvWl8Jw1F/76T7s/nLFoQuzACPYZx1+wLWXCgj3zYKUIdYLCaAbNP+PB7 eBuJskS98YSM/yNsyWm0G4Z2KCuF/nS8VgHaDAVLkdpx/okO1lquEEbsNQw6OxzFqzyHQs9JoX/f 1w5YJ4GHeTW85vchSG/8FCXTzcFn8FtRWkIBxSG9uBjM6lkWJ370gjI8X89DnrHHvMxZUHdcQoH4 o5Pn6IQsTfiQdlTy2spx47yF6NGQnzUctKt8Mc4AZBxFFpt4LqKXjRERMdX5mXit0pC1aUqopiik cZxuRDH7oVMpjgP1XmMNEsVcZA98HofLxnIfALthGfxVFeE4LN9Ch+zwfQ4B8rY4jNRjvTeaY2Z3 5uHeh/IMDgvJvCOfr6ly8+S11XB/SYh23m2UkjAxw2c/NHjniAP97QzJEdF7a3BvUZ7bjpdbeVO/ LrPTfHQ5PpVT7wkjVNurtDO112XMxD+mexE+8chZn6mXKvZyCzfqMOW0rMQVX3RRhD+V7NCCCcOs dzr8j8mHd29aCYe+E2xtHDv0/wd9pI834Ey8CyFa++R7t7GrQTi3jXbpC94GA8AW6wMPCJlFbQuz eQYzYiDMJoU8nxlQgaq52tm2xMuV7SJhCAiFt9CRtYsVJGI3YpIkz4kJAIfNTVQtuN/A4g6xpeyT zlT74BRvqG96PRxYYhEiEA5vO3aAflf9/KF0xaAv7B6GoUw6DukRbz9kCE8AQQA7WBZ2JdhCtnRb rr+D6eMHzK2h0dp5aSY0D8VBf1yF7cR0/i/KP0pn/vicFgoWuLEjWzR6A+teULjjJmURiewNnv2i hbT4LbXs7yOOTzulusNEZDmj9W/1GCzCIWCBwg7FxDITeIwqa4wmW6zug7z9y2LlLRb1z3ckQhnK u0ivkef/YCcEClC6eyAnSMj4zd+z0ggcHweuKJSKmJuk7HxQfF0IEh/zWteFei7hTXa/5Z7pwGPT LSXnw1zSmv5lmExwOVx/9UBgrg9FNe9G1HGfjL6v94IDCrr9pGD4zbFmsBzZaPA3EjMkj7e2pTsi fmN5M8z+hrlG2yLiN8HH4eZzngJ/MffYse3j6R55Dw0lNdpy0FnBwzIDbeUD56cyz6Tr8G9lT6/R gv3fjX8oEhpKyP5bKDCcjkpEYoCMg2muK3zWgK1v8GF/n5Qf+L6PKc5m4hM8yr4DRlRSdVOjU43p N8Veal09uAm4cK9JHDqPcavHXmhbTHUKHUqZksJAWIT87WjvWY+3J6V+uuGE2eUZQtVC7senz8aK sW4KJYlN18n4l3RDfNDDWTbFPAoT6b1EifdRUiikqBYFTpLALNa2952zu1HieW1dK/4UJ3lHP/OP dwKCZtmr677pMRzPdMxD7L3doySc/ePYgc1nM0jfZ0oOKJsv6Domv7IeMcGuYIZDa8m2MCXNLCYv EeIoxHbR0WHR7lwPhK4Jg6xHLMz6HNa5OwJM9vdsk+7Qs/uYKNHa2K6EDuW0ZvQGvKiegJCtudx0 oT9YDX2BdnCyx4WoW/6nAL8pfX5IaRDibq0SW3BE7BA4DBTZMrrV1r93yz57QbqyfbOC8Tx/B7Uy p60ewJ6y5ZR3/kPB+11g5tzwo4UuwVA5MYw8B1E/LliaFPIb/ibcFBguDOim8H8i/l/LjeY+7fgU g3WRGbwVLv0HfNbS+4IgufUZ9ZcaavqFXgvBUMUywslc4frDlfJVAQCDTKLE+liq/GANG004Xe5Q MpR+kQWm4lFTz83ZSfp3bE3ncJvcR8Znfr+2eWbhyXNx4PsyF+lXwxPgCIWotz2NJ/OJnIVjeneG 99yB+/ROL0V5E/GLmyajIeMNoS3+3jA+HRO5gqMKeKJdTjQss8LqY4NB2rIArZQqcaKHDGNXcIoS ZNX9JtR1p6/att7L0OkKeO13NviuhGcxQpakUO6LAj7wQ/1uDoMS9jTh/wzjmOVNpUNkSVqNv+cw q45DFA+Q5didiGx5GFOd48AdOzx5HPEZu2NETHsrLR7yoY13Wg4icZiUEu4zfpB+9GbYUxk76uQ9 hTYGTobB/0IeHfLtt2Xu9aFz3WRmx2GfX78A9KL/3Pqc+Ak+p3BdzNs7jE/76/A/6Q6NwEvWxyTt OkKJnVKoTmWirSVU75J6d2zNfiiTjKo0Ti7nf4FDRI76n+ToVDJOOh/rfLDr8NM4evnbRISkv3rl tAHla6chZZ+CTUQt/2L0IpsG3kve8QmgUK5r/n1Jz3SRwJvNmmoPCKDKTDJiAB9rs86ktCBW+7fF ojFx5tXIk2GeWr3dMx/QAeHkrDGfy6kc1TFVJXO13+zAjSKOtnmi/yUmTUTXG4BR4FGwnl0R/LTN R0ShSK5KI7n8X4yjXjSrlOWgSPG1ua9PRkBpa6jGVHeKPDpU+jqA8WqefyhwZiiKKVb6wqLHPaVP WO68g3F1GO1MgXhM6kv8MMVFWkbvtjZUJ4sDr6/9Tq6nKT37jY1Mno6wC7C+lojCI6uwKr096xnD C7riVJ+xx6TXdYnO7QzOxg6HPncP5KpzHYc7Gxz256R4deVi2mq/KfHTfSIiQs8TDhOmZFRYnzlE CAo46qOsJ+5EgIL6Nh66LIQqeyTxXMvG8VF7hoObdtgVh3LTjlf2cqHd7N2s9GCGFu45aWkphZnW ejzJDPhOxr8O7HKwMfGptT5lUIs0n1lxjawdsRPwZylctZ54P5PxvuD7No+ljx8GDjzTvs4fVaJd XzidVfn3nKaUiFLGFdx/oed+iPX+gKccwIxUwBOPW2vFTa4JJ1XZfVwmKF+xHU7cm4G1YPKTmC+X WFp7jx6wFr9XA6E+86FWL364KoVpWFhQ4Cf6REjdTa4uKETMdj5A9YOd4Nb0sxL6i5Wbt1yhyL7t gB1pbCclbSpQ9mHULw4+JCKn4xPzuPv6C0NZkqLt/Cz1l/FkNhIRzu68Rv8L9IKzGgZnv0ATQ09q m9KVygI/e0dETImfmpwhuxvF93VcT2uyI30trhtzUmS+x8weWrSIiNeil17blRSXy+N88GPYajqB ZwmC4hR0SkQkfnYMemiU6tRu8MODP0ITRQ+r27p9Q4YI6/jkjR0NxYetG+B7sY65peJH+dskxdPX BchkKd4IWwkZITGnEqAAEpFIxIABH/8hPv+/lO49APzTCs8ekMk61t/VG9vPOpxKUmwJVwPmO7yF WbfvAX8UjalbpQ0IpHivewbgVQ7r8VPe5tvcdGOQBgXw9t43L8UvJbcxKRC/9jEprefYav3C6Cno qsxbbo9WCKwLfM4w0lx05ZSX4Oxr0EmuC1pMccKZjvq5kTwO95j7uC7G2oUup1jT/P4Nz/k+gvLM Qx7YsjrAAEHI0nzgNa/fmyKPkhX+iQ91fOV17ztordmH6ro7DI+8FSz1jMNoQIkK2z9TBtDfcuH6 VHq0Op4kwQ+BR7IF/d/6cg9+U+ySB70oIq7g/hHR9gut9MdQRHA3x3pWab4bhSvf4pzpKimn02e8 s/yz1ql5+NFfjOmEB/UBr8LTjMKBf0HBqQq/HvLf+y1wxd+1PyFpfAx1l+MDyqZI6pcqT3IYksef gI1BDs0y8jzTh4sfu3xCQQbM2JGYd6J73+4ZtrNHfScd9ZzG6SxrLfq37UyR32w+FxE5dgP/a8lK Xaatm9Kfn3ejLeNoeifqzwZwWaODzJv4IwqynSm9YEfv2+hrgayrGDV+zRU/5TJJpOscvG95HLld sTUANfMmq5VeW9Y2/wu8BxdJzjvDGFv+O89xOd804Heai64H3vQMvcD2Mxy9P/weoYJYX7P+/reZ aMs+T6mnGCMiKrFY8GyKiJ8dyICs9OJmEKVBYwzpBQLRnb4cjNw9Yyfw+e/tfUohQDYkQABpTD+F p0bey8TCOJgXmt+ANzBLZdCb1rNo9z0yS+N3twCqQBiZJDCTCJ9E472DMcITt/zgC1F4LgIfVBbm Q4+Gf17SFfQ8wwf0jo9qTCwYS2kLbu9N9JwhH/8bY+CX6+I/GQGuDiVPUhhQumV8FVqUPB12xsXH gXWT3nFDYVVGzay7SXkLrysY2NEh2vRvi417643GXiGpET4GJuJNEf+/tG2sB4slfigySfVQA6KY fzJFcz+RFUQksqxAYepM+aaEI3sGdnIqjolwnwcO6yG0ZiN2lOC5Qd+nwlCN6KbA2fazp39sqUwp ZcbpBYcZFcxGX7pA/QzAsX7gaaNK938XnNkr/gwOlM2I+85dRxvLvqd7dUtbfhNyD5XBDtFSJXlT CukhoYcfYtYzI+oRjpSOHj5DRM+qijfg/jOe1fOWlx3gxQ6/4wByaHWFx5QQSxPloaoEz1i6MTwr Ta1/8fCn5UYu8KT6LDiGzV3L9+3zKdUD+Dx/h8LJzMR23gSGmt44m3cBl8MJuJhZY84X+43mnt3G 6i1GHv9TEVToNbz2b9X7H44dakEOdGQja4aaBN8jSuFSHHUif75m3ykJAjbreD3mmtSrCYV3kBGQ s3BuoOiZjEcTCvL272U4pvDpzsZOimVV5ICnvm59RwwGuGUhqt7pwHGum5W0YuQOZdIv8t85z393 dOS28SZ2QXC+MrSJ2qfsigdJz4hi3fUsP92UYmb1WONMGTtB2LzEvQ7MTLopUHcfy7pHH7zVAIaC 7foN9C/9fOnfiFdMZBgGNZz6rpPY+HWBK8WKBD5T3wWvFuufI9VgLImIP+8iZrpzqZzF21Uv9noS u7X4vTgAso5Blgb08Hrl7Z5uYXmIADwMdUDI3lMGo5Kc/ku5pYtEvDEsePTt/YAgPqSb/LToghDu Cmm3kLv11Qn5/1JOIwW/zdZfhsNzE8s/QnaCash0Q2en9mvb/v0C2yeY11rl8PAnRf+T4vhr+WRU dFz53/0d7ri597XWKtms8uGtDo+Y4jB5CLri3J8TkRvOkm6OLXXc668FW/pQuHx+GXHE1sZiU+Q9 aO/AD+ivZhciV0imMXwy8qC4UIvlnfDACIeRHg7CxZPsaViH/vR7GMg4xHkTtrqO7Yr6lnYV/aH0 rEeh+FgOfLxDdAht8IzuTcpr2PG1QgHpQqfvGiGd4aRs5B1YGItly9rlXlXq0Q5CsF56PdZ+4vGd FhxOTxLhAKnBwMtVzc5BVcF3K3ukMedxEF9Yl1Rh8PdCL1F4XfDWUDIYgTtfOJl5SRp6Xg/TmYHM J7z+wMMzDinBgvUNBU0VN1OkDno/d/8yPMday2snye1jTdtvTxqf0xPnvs97M943dhHy793rnw0J 1O8GnP9GtWQ5XvGhhqr3M8iXX2ROvijzf1s3j/VbjzdZWNr4JLfxPelz+Nx7l3nvdF3mw5df4x+d xwxnEvyguulPui51Pn7ZjTnCaOTcoQ4UnDtahY8+t3t5Ks4+0ULml52/4n1Jz6DwG3ilXg+5/bTz nmHusi7rA1k3znUcNhH6o3fb0Rh7SSFOBBMeyq74FrgYB3Yfi40H8uoksITlwhyW80rfgbhcwlN7 D4UhIrcMtyMcOwoORO7RW/Yc2RdkQgEiJ7QLHO4xwaEtFdL3C+SyavC55MmOdmNrEAoa2kJGGd4c l3cUJsEec6eKE7my4kzCs3Ag/3maMSG7DCZimInM+2SKGCM7Alf4RYOB00Vy2t7j4H0/m1Gw2Oaj K9iTwm29Eol47P2yQ7keN+gAc9QnC6AyQZiZkqe+1QFr6EqSM4uZLNEGMTM9vDVelhYxL3oYOzW6 dqAO5RsBYwwcBrkVZO2SwmDJb0xGdqEHa3rZfOOGZNokrDtCGAuReX4Uuaqo+Q6foccjSEBPemEP EZZgUwIllGEmJnnqPPOOeQylh0lo0Sre9hDy0KNuCj3waO4K48XGH5x+Q+HN6Qqjn+p13jsuIJvO FzwWPA3PqRA5vwX+pkPGhwFkN5pv93xazDGyRg0GisK1fM4UDqMnCiOOFxPuq32g6KaMURAkVQFs Ap0Cl0T5Eie9sRY3eeJW+NiihjL4GI2HB6tfPKiGalXoUTxtK9dzY9Q94cjyBR7tO5SQE6ac+Hae zZobWfqdxWBwQ4McNwaAwpzYe1fudRySUHcqvI7/1GbAFeDhTMIDPtENEjKD1rPuGL6ML/SQXF2y Ibik3S+yRGWK/NkO2vNnfEz5GdHyswJ6QRgVRdOVk7bG/QyEHOqe8ig/YxWGjBqUNlbcnL2XJkpw uyad9zBZw0S0WyTAan2+hujHz/39M68z2oYS2OSK4P3sTNX32cdnMjp9z0UNO3O6JBpEgeGzOHYC wpAzef00hR/GD/jRVv2AVhiHxRDrij0pTWvoudEHs3O3d0jbI6KrfD2PX/xK0A+87l3OiwjRY+N9 YxdYSJKTQPWFV6ADQT6+buQw21nBi6F0yJsiO6qB5DjJabSrHq+4JK7nJw7Fdg4Hwnv++7PS+iBj SdVJVOYIf0N+DzhlDr4fL8lc8RerWA+TfMm80r83Bf0QfFDMkoftm2WW4SEiTbfoHj9yA8V6rBPu k1u3SqQh8he1dO9dBMAE+6exHAsvE2uyJKGM6GekJa3EbRejyau7KOt/fIEniCkYWi3xW2XMk9Vc xtUIM95hX5CSDMXwGJ0C4FOZ+yBf/KChPJ8ddj+cVC5HivZuXpXJkxD94PsFZtvXW6b4oIeHuJzL uRmc3egRmufEYTJvO0JuxJ4/vDQsCIq2YGt2jd4ZGIboacIP+iwZHQCv9f8QEcFQbuPpn8LkFzB1 xlfqubJ2hidiS/pQ2I8LyjrPO7PJoI+M304DIi9MjEIn3rd10bPSHOMnHCjWUJTjgp01b2V3uNKM jYYSLt7Bo+nwqmOkecB0bLjXodJgVtj10Lc6FxCgIbwKLeltkXHmI/pDSFYzlkiVoMjmgzHHeDEw 1WuDD+SsatM420B8PF02TO9kT95EM5nH5bnr/OvxMw4n/+oy4tPFjUFPocxPBTxhN8XH+/BxxM23 RKaA2e5N51MHnJOsv3oY5xz4OR0r9Is87xWfJ76DLIbd1DwGSXwY74d9dKWXB4pcw/+vZdIBRpnL lR6ZQDtmYA9tQ98TIqKUcSzTcz6MLItH2sp6xHOsv2qAigjRWmVdfyubKHbyBppHec3UL/IyzS/a 6u8fOt6A75v87e91h9xPPIXu69lx0DP8NLl/K10G953mP98S74rmCs/PpPj4764X2uRkizOHCTQY kd805ykWMW+xEVRB/k63830pIhYTSUnQv0Sq3CrzC0LWnYAlxkSobnMFwA98dgbv9nAOq9yBMLSY uQY1wDzLSfTRaZ+d43FoIXSP9GcgcM2aAgbgRBW+JlrLPB1M7oF/FbjoRxIeiyAlyso5FNxAg41v q1B9CR4njRkGlMAKaGy7Z2L5LsOi8wbZTynBbrjrjGNSFhk0jfeoCXbB7FN5F4IOZys8NpWh0DWG ne6r8BwIwi5NmMi2CTctEe8P2bmw7tDmny3mOPtCGh9sN4gGU4x0n0qr5fRNeJaZabF6mKFMuPdB hIL+Me926ZGokQlj9LGdj4hdboKbHlMu9O4KYij54V3v8+UmOJOnQUU2hGmHbVTqbLmVOzuINN+6 JAPaFYikHHJ6I6e9ZHgXUwVmItnE9BdC1oXTcv7WD01DgV6y/PIuzeTweJyr2GVQwCRoohs+MT+a +UfxG8/AR+a1UfGYKIyYOQxUGFRWb8mfv6+CJ+hW14fdrM3bONKjsmNzGht5bCwUG7E4Cg/lMZRF lozAiDDFIVCMp8f6gP7tA2mAcQYAWZH8e7tnBg4Y4FF3ZNkPM2Jv29e+IoBEXq3rO7c5bItcKkBG uaHrLm60t4IWTcZgnWXehYJ0sLj0LSv2+t3aMTp6LLzXN0JsnAhBxJLO/FXPBpryafPRlSI1DDcF bRpeN+vujvG+4HxWsFaAU+Dd5LreXCske3useEI79UOeMTcq//f+57gUIt+xwoTHTlSar0FP8Avn Uh/YZVHHW11/7Dc9z0XsBmNqfW0MzMoDehWsEeOWHFCraFjuBFWeJqan2Y4gk54JxThZ19btfgHc kB6XZcYOKhHFWa3BQFmWpUdEHP4cEaLrb8YN5O3DiMV/nHZV5sR62dArSfUvMcQUQyHj/AfjBBl5 cIYtK+SOd9NbPrbT9BP/nWsd7CCaeuVrvL+XcYzneSc/j1dE6K9bOxNwvXFKA+71b7+5xyQDQnHb 3yY64hdvA5ssrANObmcDrP2iKHGG+YyluymLpR8g2lZ+CIBaz/mvI/971qPJI9FjIL+VYp2KmOIT nrscuz5Zub8shmmcEw6l3Sill8b4C0aserBxEfJp67ufznR8G/9k4f+y8DtNAYfFg5fmCIoxslD0 Nk7gltNNKOm2C9EOlXZFtsPf//bvnZHEt2gnKUzEmzazZ28AfUxpIKthWD2Uut7/zLA48SBWZ7Pe RdBDJLIAJUpnHxgG4+lkoPbOp+/5QjYdC+oZ0zQIFs9rzetz5FMHLqKuhj8URRuOFanz6I4KSmuF SG/uZc4SWJXrNuzc1vTpistAjui7rP9r2xYatvQMySYV0pzoJPMQvwBLEO6ljUdIzkpr6tWdgAK3 wYDzTH7PQKWTDHA4XYAvuxTIFPXatuF3vcZvNKuRt5wON3ec+dyZnGfrW+mCDgMvn7cLA/peYKxn fGyO0I9coDDd9kxvfDCHcUFZIKpyJvMNHObEs+CFUFTwvcXyF7lyjhtrWevJUeeQgUij7HDOuAya nvUHlEm+qILMI+5+lb2KE3E+kdu4tdPlsCpwc92q9J8FbeU7RYjI739R+t9FnQN9/lp0HYbZAaOv 4w005q6nvUkQzjMoyhkOKNnceGymMSKyXUNyejxkvtedcXkrnYansJvpnVtWvA57V9xdK2iyftIJ s07S9ZNJ8QdNrbU06QSYGJlgIqJAfOqwEL+HoCCTaz9tX7dO1FKSJNijE2duFPZ1F2BOyETmYQgk XA8Mp3Gs9Omp6eAVl6jRFYOAJbcW8jjS6IEwo0JMCsbM9Okq7alMxk4hmAsfckOEG1wCix6/G8OX 8LAsZos9DE8sFds8SuRjrgIVh7Ufedz4E0H2gFVie/Ge9pdCf1Kmj+NG6v9Yvin7RI3BAi/29dGF YoL2dXjhIfQLBpElgUD3pwBxJshsnqvo792blqaOIY3EXud7RIQsALyqN8+fe5Yf7f/MlrR1V8jm D+tz4QxLYzrblF3ilPEizTmIHGv1fdXbwrYbseEAMDwiHzwT++2fOT95HvMmOuB3eiIhke2Ko7/r C3QXZhoVYLAAbihQ7WbRlmfcnRQL9dXLvHgK4XkcH+5wTjczEynO4Xkr28dQGtm28Rkx//pWll9q ICgeFC85lK+HLuEciRkiLZ1HpxI9G7HJs+DQNpzZ7gvZ7lTmn0yRqjLllYdiWHLkE+63wA3X2oee 80i7Gsw2BYvif1vHMCLSb1iHPt0MtRJZo3Azrymc+yGi12jazk4sKNrPSQ8alX0qX7YjNCl5Kpw1 GxA/vytZyv+W7XQgzSUMUJzpsLqAM134B7kp7YI7HX/Izn44t/DIrqDZ+hUL6/fYdpO6K50RqgZp Dh+N1LW7yN0a3mV/pPEK7Tf4plB4uPG28w4LmkbWnJcsDCLthDEzmvUsN+55t5ugk+vQ38v4cc+/ nUEI+TsbNAWVra2u1ELfgteeOc7chfzfrc3YEYjsSGGoPZb3Xkj9TXpUKJwRTEzfNJWeSICZiWTZ btNrcuWJMZDqbYWSTN74b8jvny8YoFxhu2KdcUSr7vhE6BLSfNpOuZ1dwAZwhiYrzwVEEb/ZlyGj fDxWx/W+tO6ptm/Qu/OnnDBD24s7ey/93/SWrC/nUPncBuoSxS7xn1scUmNis+L9X8uktOJ3ptOa grBTJs1Fub8NIP92U/5Rvz9/OA4bZ69HCNhqgEzjmmCYrLUbfLffP+F7xEmb/DzmKnjuN63inZeE WGBkaSjIr6XTCw5GTsJEf2uWuc+FZnjRg7KVkD/hq7eTn3+yhm/jmH6f+u6/Ztr+35S17IDaEpJ0 DfkEl4+NNN3i1op1jVD1IhThT+SHmV0hTVlOsDamfhPEBnf1YEB6YKvaVVfQibWDdQrYiU4vI6dn ue8af18viWLPaT3fZhnvpmxizCTCxSsqTqfz+HHh0HQA+MQVEdFJp31u8nwFX46QLU6hehDovE5a cSMpeYdgZES6ZTcpxvp9DN4uk89h5kMTjvJ7/fxQjpGP8bX5Zw6fAFXeDoeQiJCsiD0P/Fa6dNoO Tp/gWy7IcVi+0M7K71UY+/0ZVV2McuMvBSdDneMSLTMYu8OMCIdt7+kN829lDF92WW9yvYJ8gdoA ACAASURBVPP+3n6ul+lrzPxy4TWI8Y9dglovzjJUmbOlHlTv8sL/puDnup7quuj855P8gAKtfGXm 2/2db+WGU29PzjEFDcLY1TMbdfw6H/+krbsEkq7v+Jvl5NEOnyTlmOsZghnuc+wKG9JxLyJ6S/3b GnE4qOJY61Ohm2862TFnw1i/zVuvj4aQ33/UHQZYQE83ODsskw6a38vP/2Cxx+HRWHBTA72ABWWL dCRSWFB0Wjf+CQZGsZ8ABg+rvm+p5OfMKRa7wT4qRwlxMAr8XaqIxCl7XPCzkuDEc31VihAithz4 zfP/7eKtqXSi1wVCDo9siXSJGIcpYK7UIEsCBERqH5lZ9P1Nrwg9XmOC1eK/M6F71qCqQExKN/BD MPrkcTpUVMZOQUTK/H4wGH3f/i5Ck0LRnOgXqdxu6yFnDVLGR0YQGHu9TCoboGRjFYmsDciP7fCY zYT8/MAfbyF6klfUca1Mc28atwQ1jagqlnntwQOhNGVtNjyJ6I6CrjfbufCQi6RIEkW7vh9hf5vy B8H+6T6HRRQhIPl3ZtpYV54eYTv9EiHTkZT1l3nIpkXCTPkw5FrL4fEdgdW8zhQKQzlcfqE3vIcY fDIZG4IUtTC/6tPE7xFSUdfbokXbdkA8asX7UBqytwgGjiHB2gilv8JhfTdF0Q+Kp7HVQ78R3qTw PT5exU/cyKvw2d/pzJk+N0VlAcfxDOdhMt30MJbgrWfYRf6es4iEIYM5SIbiit7fNP/Lf63lTs/z TipguimL8HCv9T+ezUfD6dOZIngfxQyhpAz1th1XWJcS63pWNut9AIovonzYu3oezRvZ5HEo/rpL xVtIFmgk+BbOXIDxi9+4bDHsWPYS69DHRrHG0Tey8XQFz+9/AF8EvnyHxXSXqz8cZ0aWZj9iyOUw QLVpM3yKZzvm4rueRU7bDzF51jjKBhgV2iTRnYhs1IrhGfNdz2dolj/gE4ozpWxovrbtwjZ5rW/R h+Cqse5qKFkZJXgzUeDF5v3dSL8cupPytX/pdSGcDAUF5PZfsrMFySufU7Lqus53deQdKVsjuKFe IoSv6Kw4C2Rtxj0Ys3FCCRcfHQGmTvjcNYU/t5n1q8kguBURqVmAbpWYazaQYplweFT678fgSW05 MM5jQQq5he/6nivSIfgKQ0t9HgRGdLzzqSyiogh0RN/Gru33xpiWaHyzK7T58UX5n5T8TxZvHhvu ZdCF2S5K8S3xPqZFlIT6L3jqXrzcXrzKV2LU+YzFrZmgpLT7a0H7NbNG66t9P4woshCotY5DWmWc WMD996Hd3Hamk1wmYd89NL19Tw+GOYfw25KUutjZQr58jK+MeW+N38bay+DsuCTn5mmZSlbCdqKn m/j8RmvdmJ/Whv5NBGGceZUaVPW9NymOWySlBr3ziQx/5ikZtpIVp9X3ObmNWXQd3g3WGTeOg8QD bjm1yzxOvJQqv1dBJvWw44WWNQwKd0tUQ6XAsEJB7zReYc27HOyHvvs4svGS4S+wjTy0GqaOC8qG uhy0kzFbDOcP/U9lwnmXhzfemWXirXyDIdPpJ7npdaX/Fjga+xQoWLNBE2eGnlBuU333+G/WnbzW v58paWvR6Q44pYGPUwH7KGEYide78x3XJsv3SS5gXfQy8YMbHcMB6cNoOkp/b7cxOL58sBedw3Ls W97EwMsQRubPUnjXJL96WbZL2/Ey4he/p/7+SVx0SlR3unQMp0zMOmMfQ97t9tBm1Nub3vc9dI2J jLr+GgOuvD07y3GoGDj2nXippPoLrfR5uX1ntjSg+jIaqKe48cIkVPIEH89xCHKdAuaVTYS0bzYh koQyVEEl+BR32/rOnyjL6uP9wjA/FFfs6WTMCtslNiwTTHn2goXgByMYpOWqPqMsoIDv53mu40Ss 7d5n/nFkG0BMp77fDuZwPnGx4tY+VuErW/TA8IG3OVYTMHrUkIGbLW5kClhrEQvbtqMdemXUeQtu kJfZLXJvy5RZghDbB3FP5caQHg5vpC54XRPLY/ylLPrnIarxrH2hWWwzKWPshz578XmR7K2PnS2L iSLmx3Mtx4V4/zRzDMnpMQDTRNy2t42dFvMSLjEvojG1QWkCIwTeVUHkg0ZFxGHDDlQfctiJ1ZOL XThfu5gf7ABYQ93Dui02Wht/PW3ilgg3Ksy+4ChghykqXh+x7ToHOIDIFIqLiJQdRnzHOtNQDSg8 2/FMFLHPHuBjw1rSaXUd+p7iNzyyfBPmzIQdB78xOq2TLXFjKqvmZll3mBjpXIioqIkboUABfxau pe9UWDY9TLQtzj8UGZ/p8n5srOlBXso7mETE62LsCLASc/y3Hj88nvPfl/c8m4p+j3Aou9PCcHnz CJe1IhLZ7jAm6x/yZJPu3CBoyPcHDIBCpxm/sjTMunm282dfn26E7q2efhjJCQdsN9ZjvJE8qUiz Yz31vzez8+ZcvD1RHOazYKvwF5yVYTOOjS+l9NaK2zhkTkS0WXcqtvNbO9th2Ez7gAYn6DftBW2c c9EnvTBzyvMfB/cNANt1m/WNleZ5MgJzycp2NrWYOZ2ZSFshVHmn4o8cV0zk9/OQVMM79BfwO4oX yU7BiJ2dEEoeb5siElq8dF0RlxwWhTYYu/1CtP8hXsJ3nl5b67n4XQnMzpdBG9gRd+11h/6K5aJV jf+2syyfdLq4GyaK45fregS+3pTyNeRfaYLEDiqTSDE61OA9DUh18v2ov8rMD3K9wwCog8dLWumX 287oHGMpUKCYVajg8K2mmzIC71ZKQkIHvgi4Sz1qylYfwzGWi8KIdz6VCS95u6hM8GUrspcpx/at Hkoet2+D+4JRFlIWffaUNu9wTV/63z3zuagRIK6tQ8DGGDUDiMPGOwnihi86PQE6hu+4yqXTxjQn 2v92xfybRyP3nRUASsZFL+j7NPTwWd/RA2zm/fAMKpq5xBnIynDWftAG7oVgZnrWon92iG/yGAQu ZibU8dh/09HU3294zP33W3DHdZveq2t7hjH3PX1HOxFKqGtH8WyZPBjGWKWZifYOhkxtvhdCKO/5 9j8bs/3ZfWwTromw9iu9qFBVgTvdZAq4g2/aGB1vNzjmddrp4RhzouM8nlytz0eRFRDmzUia6HvC 2Sfj/dciTHpJYoOrl25IHe0MsI7GlslRXMhFVL2cU/nlRlbtC4epz7MSt3VAK50BjPQZ8byXDzxa 12McxCaytLSN3+0dh5O13xvtRSiPj0l/PmVjAhWeYiltXcbTyicZ/wu9CVE57A55g2R7JRybqcJo SuU3eohSvfuOZ2sD81Hq0EyXMV7xpCz/Dh3T9A/eh+wQEU2WMURROG/dZojSebA3K/ZqFNU2HI/p t2lnteOOk6LudJB25okoMqEVPKQ5S3SeD7b/Wn6huzxXf+F56S8ie8O98cJsLzQ0WVEqUOw0Py2/ BCl6zUfeiEjSYSdjatnjdCiElM4QXIkPdaX0i1PpsXAuSuIHnEApLQqRW+wwbrYvAn1vjlVFDPYZ jhHp17T9pjQ8lnLuJQrFP8JbkA4PWQ8ic4K2CRmksZPr52vPOx7KjKbMHi8RITXiFlHGK6YoCmno CkdaQM8TTu/Rj2JVb4jEFv4v5caYFHY7G+MulG1Mk0yJaLsfsur7ss3baLc16sjJb4D0rCvzRVJY T9sEDBQsXkQiW7PObM2Cw6Qej3/7nwL3kp07IWIIM3pIXngEK6w77cBE/2GE5zheGJaINe2xzxDI GE/fuscZlb61Dip59EdXJkF2YkSJljqfEH78PILsfKN0rVcnDZ40sXsqYov7KXClHQpmiowSWx0a wCfwlJSAbXTp7MT+cM9zW+/PgdG6I4uiN2nvVEvXyZo5KN4in+icR54oZa0yIQoPITMt0Vh+fR4x whrTHDdPa0OP8Wd2pQ9dq5yILEsi6vFTuCt+8HfQY1NM2XYQpPVjBbTgykOjB+yMgY4hT7zPfM8D Bf6Z8y7aZyWcmW0dmmEkpNmwLLyiOxi0kX+0nmdUfgGnELnCBPmAemWMNneGfhIR+hvPA0WYV9cD PMvJMdbgw7NeoEYlPPG6y8GFf8vkXGrqSM0Wl3Yl1yq7I9tFKbJT5XG+6mGmRFOjYqo7BJ4hTxAe G37+MM7iwk0FTeXt+ot3oZdkXO/GB9Y4zrM4T6VkAJqB4zcSk9AiDd18TCcLzehoUT+epbunflN3 reVyP2U59D2OzJ+X7aagHZqVUTh6N5HxGHI8gt+AQ7zOfclp3PnnE2eJVOHXedFdpGQgC3k49C3s +pdcJ3nNgAaYuKYv5VrfSzICYDDibBbqYj4RsgbNCev7G4hoo9P09Fu5CMxh51h5YITwrP4Xhepm JNzr6zZtPuX8zQOCoopLjevyfOE+mipUJiZ984xN8E+Mf4KrZ9259RtCZ4bvBhe+ox33TqwWK6u8 jrgRJ0gqMu2EgpcPw1SL/PcyeqOSwXLDuzPKvYlS+EG0GQrF1A/Gd3v2CdY8V5lh/LKwsgUPD/Ey 2hap9F3aGPr/DOepfECJX7xo824ej/AjQBBPY4j6Z9vFe/KF/jMO+2/f1l2GyY10OplbacdfPA+n 3sqE77x+ClwWygWFYqXQOjaGTUTtwPPZX38SOJlhS7/MgtQNDeAJBnLmfPH5DTe3OXXBlw/S2Q5S P/R58KMW86qGw28H1IqwHeCZ4GeO8x8T/7mNuT8vfOYDzjoNf+NFWYnzpAND6Qr/m+mUqPD3fK9A gYm5eP47PJ9476fS18yt/XwQND/7JZQhr8/12GWQyUAJXD5letTA5KbcVwOjjzEMKOTa19TLt2tH 9z8NNeQtxdNOBN4BgyDx6S94hSL9idZ9romh6xKJFIUd4wd9fevTRqT//wfxng2RaFAPJef5vRnG /kqeq8EYw2WDkJO5LRi0RMaPkgN1WpM3nv+LvMjy57bme794xiLuTCujg2d9nfD9qv/2Mo3lG9/7 a743gmWrdWChM11jHiVOPjORy50a65c6ZsTPpZhYNi+jJKUDwGOSe1wYlBl4/TDQPsEGfUZnyRKx De4VlnydyDi9L1vMtagrP1twmdBOYULl+ycFqgu+6SAmFLlMdF6/X+DCpNt0eFcqjJ69yX5HHOYR 2/0f6RFwLOop2ExQCyIztyaegScPkGIML4w8o8+kZGv97jH93xXgPOOvHzos82zBybFgqXgZ9QiB /qjPwzNCROEZwveG335VeveA4v6G1xqLDXVkZMliQOPHM37jDEVjbGsT7/Bobxtrv7gOecY9hrbt iFjm/yJI3agjovflQoduyNA5o5NyMvm3NZmImHBq68zm6RX1EvnFVQnuvp70O9bhLvSxpMYv+2HD Nk/AA4p7+MNy8b7/k4J+9EO2ZnL+tOiIPftO3UHzsbqRmM9uEGFHNOCNswg6f3/H3IA/ufFm/B28 ORvXt9V7U6wPJXXIm91p6la6oNU5gGfh+lp5/2i/7Rw4zOAh+5/+LctuwN5V+WEYMGLbf6vsFm1T 8pbJNvDpPuuAy3c4UF+yAl0dVJ/HirVRD2d3OV+/b5O/qV7ycMYJjaAV3ARMphNueUfjeUlK2coh 13A2BOUB7bX32e4PCMWuUmI+U6CQGt9M966w6UX1RmDsFFEoqXw6AMBLNumYHxUnkU0t1ck3e4vf SXFT8RFSCPj7uEPu6/z3O3lSZj+pmpMaS6/NoUFhXv9FRGQX1EF/wztMm3JaWqLQ13LkBRGR0KY3 wU9MkejCWtwSDpiXhHgrsvVgONq317v+mcon/SvXn3S723opN/g6ncRcPukGezwTiXuDVIeOtr8Z ctnhMuqaJvfz+syQpzMAm3JKr2/M04WlpL9/KNnTlmO3ibBlVQ2B/E4e4LY0Ufl5Fix5HK7YNkT9 N5h7jLG05+eCxTPm8ExlS7LGlP3mWc0G0lSnGxC39vK4iJhWuzinjJF/pwuUnpUn4I9+1UMOvMJz HW0onj4fvr4pTr9Y9r0c3qd19yrkeSRKW7tbLO1khQMiL6ky+r0ZDn2enfnojyPu2Yy2PmaxINZp XeA3ZG5QZV9s8+Il2Q89mCupueFBzwpLVTRidFI+j/FddhqYLR3vQDtSiaPiYEWd7vXpf4cCQuPz 8hvmOb/LCJtjn3ddk++5k3nb+fH+cP4lhedd4nKntf1riXfq520O8nufePGNF3xzYNzGMf1+MwZu z2508403wkFxG88nPvStTO/238HXt1j6ZdFzJzud95mysBSnT2t/ctvlvvsY+k3zAR94YF/nWsIA HvpLBuM3gyzzC+DjpLU40Kkx1fed9hu/PGD8Mpcd9omWMryfZDnR6VxyWFv13hbCW+C46fUCxvv6 7Pzv5Jkmn5OMyu4r7ScDuWmbEYCzfOxvvCXtJlphqusy60OhlyT4HQ91npesQ8YUfMo5vm96rQ+L ayj3Tc8t64kmnhIw9HMEDltr9lc9K8P0iXf6Z2rbbgLOQAl5bJsXxMQ3AIUQCVYQ1POi4hBGv0kw L+bcvojG9/XT0PpxCh9mJuJkYVo7uJrdkTQgrnwfTtPr94DP+yIZ2yAKxbffV3ATHiIviWgsbVey puLtwEjitBjaoUkiqgdeUN8UvdKD4401vm5b2AqybsDv8OOhoXz1eFY+X9oFnrowwzu5hAwnNiUY FyuOsYNwY+Y3RfCsjFjOWUkotJ3a93E2Ebvt0BLDsw7LfrHtZmzLqIBdAtvbcmJ1S6LQfNxsa/10 BZnJrvU2g87Y7OuMWOt4bCrGabhd67G84dszLuUbhvdLaoxZ2F24FKohEIofbi41GG2nD7sLOHMi CcfgRTjcR8M8oJR81waHVSz8JOZOeRyyA4l5unEvBg+eW0d3YuxB09qH33fBEQ6Uwx+Ay4eY9jYo mD2+mIjsEPdJt8ivj7ACZqbXsl70HZdPHkFtL2LZbwq1KhhKP/m+EF3+Ff85xr/QU5uvWz7827qd kk7AKMxwP1z7RXmlCmvl2emMgd+Iqrzc/bu+/urZKj9jkuRVBh1wAR7PStL4RWTaeTRTCMH/rRnR QDox9odkiZ9lyIqDiEbSi4jRgcZLF2Ux0fPoBe03JXuMd/aEM/lNqhbewY3ugg3YotthiPCqOCgy EPNHTXllcpqvir+Os8+3dquZthjbTiREaYdTnSC6Dv7BgLIdzMRiiSjtaB47mwpr5ru679J2ZhVg fXctet//j9U/HZPK/1LMPAWfWpKxrwUXvOF9BQvrUArN950Ex9m7bQcU/SUda2v/OicxtyuN8XXd p+phHjWw4K2PMzhiSI45ZqMP0Iqkm5Pj7JifTWMm3Myc9rTtfCq82y0cKkSS8kvg8AflfzIYuif9 ULQNzmAjXO+YwHlHkwfIRoR2u4J6U/7zzkaGt99R4G34zdanQ23vTaso0byJqC+8aAx5UFGyApd/ 698zQ++fva/D4u0KbWL8yMhxTJaIba+RI6UzoJtS+F/G5MTKPCK/T2JWIPKYiOrBjG/9999uStJU +lz4OGxBd8/9tm09j8X7Qfnv8GXcoI9I2Tjn78/vjoSNfi59T7T1CdZp3v97MeGyEv5MJuq2XzPy thxpyWIdUqHbRRCBAXMfQzDnz/Q+rTnCQSlS5XLRPvA20Tenfj7hkMPGKiUrWJkxTcy4w1IVnhmG T2OYvh9wJ9ro//A8X0KFmz87r8u7q97v5eA/ykT3v9J072uiidt4c/s3XE7tTOOe6n7ivURn1pVv sKL0e2qKgvID7//1eQ+j+oVvZOWsm26QV70ukSo8fXdt6hcGdX5/Ulhm2sz89Bnp8he5cqytrQr3 BP9N3uf+pjV21Fvnu/Hw9LaiHZc/z1JlDbRHwZNQJ9PVf6Ed9DeVMj+7ytZJT5jmYvo9hwt9/dzR /kp0UvSBnv0H/Tz1Oz9I8tHGSaHb6ntPmdtPuMnzgvcfihDym0z5hc/1MX0q0w3ZuY+pjf6shHEN 85r5w38tuc1bX5P8Z+bzIjB9CIs7/65eL6Jtuef/zEvXANg1b2nOLkHWdGZM2aL5NvQcXuPIkggb EUlbW1gkzGpBDkIhI+l2EjxPjIhQjtnsSm1+h5j9lrn8vvdv/3yrzNN2WvstNhnlQQy14b3EdqV6 m5G7t3nl2sUYcUTUFpPF1m+MKwetLCbNsvOYdRsekNtCOojTx7XTJxsQ4X164bFGTDIZWoyQZC2i Ic2q72RYVqGVlOIMk8PWGNykuNx+Vyb6z8foC0+W5aOW5BEQegwavU2VPZrT4zUtqwwRKX4vGYKY gsZOhO/kR0rjfhVvbwoh0Ja2r0/tw2IuOc1GDg1MhpsqqC89zyLdgROlN3jARShHb/qtvPY+cKre 01fnC555BZ5est9xA6jhHXnMcWaFwVzS/FLCQ5w5snFYbLGHqPgkVHTmexV0LuDNPT3e2i74ToxT 6Rf8SlJ/p0LtW+jOL2JNMKtxxsx6QZfNF5EQQoiCNmvMP9t7m97SXjdM+r0E8Lz1kmNYi9CyM1V5 9whw/Wq85PAI35GgiAXXcZCHieWUh4CnrNks/OCJLGNaKWb6PNOS29rmbX7gqW1y0o30JujhHICe z/IGWEzhCBHN1OM8hahg8kk41HWCtYwb7+zMlIdQxM5AhseVmja3fb6dPl7IqvDBGsZsPNhZqwvo kccE3axEb3UtJXkXhg9JXh89+xsdu+y1vAlxCjdzzkqkO6yIJ89jxh0F8ircrLGqdr9Q6m8wMIjZ dy9jrLNijHfyKYPDqLVDXpPxA2DZ+DWUemb1MOM+pF6Q4pItE9hjvBO6X9GjLJugroe6Q79W/OI3 C686xy7/AkkVD37xW+WFb3lJ5YLvKIOOh7HpIz6ednmYeUTXUSbHwjpCkc3RTKFT5ZJletazrs4Q /m64dJkf/F/hUf6yq8E6tJP5UxgALRQiI1A7qgvYLZthEX6yjD6V24RkOCYYAsa5v1tbN6uue+Nv Ft4NnknQ3ZTJTIiZIX8bTzZ6utVPZCE0VAmAmQvjUeZj2WPa4a4J1jJ2H9N9jru1W9u9vlYUpn6o GW1mj1kwR/GLQvwipQ/0OcH762/dYl+kzDeuXT/XwOZNuJ2QN9thvoBprZW2bmcDMK8R7ecALpTM Bvs8nyHUgTeEE5QsLoATSjaYiwkdFeKh6LhA4IDjMdhEzFDwMdxDtnL6WTes0xgBG0IAcNFTV3oo 0dCUKeYX3qP1Kx+cYnk7zvMuB49zUGHIfRZljerZmi7M8nu9TO/p54eF+EM5cCVU6PO/lDxnMebK F9EnIMezTzhF20RUtuo/89eZHgFTd0ZNigVR7OKgiTJPWzwNc5/7mwwFzRW+AqOeqmJ5w0GB+X8x T/+X8itdZFOjn6tbRCWzyrRmcrnN5QifhHwSEXr3W+Ur2sp2QJfhre+jjxEGdaCg/makX65Z/Vzp 5H7+yNrGeD/033ESg0m8TNQY3G8YmmKnraF/dP7ex/zLXLuCzGd8PNrKOzEIFYKh/e2QbC+TbnON y2/v1OfQLz73l3f8ceu8yoSqI8Jx8bUt7ryBjzq53alkevnbAOgg6PpC9qBBqIkI7RyXQOSKmx/k 5d6O/c2xoPA9MEGEnYJPgygMzTwJnkXWF2McMu1MYFqwnYF3BOd3e90MDxYnru7uCrDXS4vVGZsp 1mIMIBtg7hmnNgZr8rg8iT4T1qaIM2bmuLmZ9JZecciQJYmTzIjY2eOiIDArV4hDeTTNkeJJe4/q +PKzXCcbIpJCwdaigkPtpsZ4Xw2bpgR+Y2aIOeZksKy1HI95C1X9mMa8mInE0nYKke50hPfNact2 AWAYPBZb7zdBiudS0ndSWsCbUqiK6Io4b5vfbXGcWpblWIcHmayfUKjBJzB+EnIGtQU7IxzvPxej 1nY7SMxIynOO6UvoL8YfEa3lSAvDQ2KHi81IwQuTIQSP46OcvZxZ2hQx50nFsrGfW/xQrETEbzB2 fkhUSD6PS2EC3UGJftMcnXMqZnfl2H7odbnuK7gQCb6oWXTGaLqn97eCM0Yf/AJj8ZjkVXdTQecP V9rJUGW+gLDPeo8DeT58/MamYP2t5tmTRdiQfPemv0Og4owXdp7rDi92cESg3EAenWfrmIO+ie+K SJlH3O7uWQdQ93Weot/zOtoOd5S4qdx/uR4AzuULPVzP0mA+ZqMVobx+rwMl/0Mz2ISIYtlZZi+a Ff04q5ilrEIyffeby2nrDdmAk5leO4y9fccxKZQNDX18R1YePLMDtP6Qq9NCaBM/VJJ0sIhmu8my CZ5xg+e1Eed+XSayIlDPdATMESe+fQ0rTkX3J5oIZNZsVNv6wlEWXb84g3HbIVquCDOx78QUDit6 /8h+s3mTZyvB/kFXzPBOhvqk8J9ZhADZbwZsdmao/A6DYTL4D92wJ2WBPqyCPXZyfSe9yvcbTPlm dCJC9jgVDLgddPI+3BSx/Bsz+4HfXybkVtw78R/K5HXqSM3fcx83T88vFv0vVq7j5QJziPfzuch2 5f9W8limubv12xdEbitCA2YF51M/mcB/8bx0vHcY+9x2I2zsW4j6wfPbGL7BlOHqQnpaA7l+b0OZ S92JwcGgjutOp7m/rJBMRkt/N3/3NvYNr49u8ZrS+tA5F7/ir8zRrvd/iogeSpPzvf53x0n+/tpv 8Izmcz8THFMbE556vzeYesFan3bmJh71iXdN8E5len6j4V/G8P+v8gn/nZ9A4cf8v2nOhWe+s1t7 nwoM+r7+Jn7V6WlS5m999L/x/rSmc5noqz775h+NcD6884l//V/KJGemfvI4D15BpM6CZOS/w9z8 X+j7Jn9Qbl5qks/84+N65qCxvS2E0xVHlQ9b/qmT8wMtfivM9zlleS0UCIkJsiyajT70/XxRim84 iednamK0P+lp/5WPfVp7Nzn9De7vY7q/d9NbfoH5pgtMMr/Xn9r8Y8+2Uz0d7lE4JheW8pkNQER+ NZA8+0iv36+dh0fxGTxtgJc5YkU/lXKBCsFDeCr9+Lse/smHVsOSvRGhh3bQbEigME/fPwAAGTJJ REFU3V54s8V12sRexpL9FpNAOtpFncSsiEhvZs31rC4TUc6pzPzYtdZUmF3bAHKPC3F4Tgp8BsNf 8ohxiQAMhsrMxw4DPBmc2yP1MDDBA8K0Bd7puCQLbX9TjLpXoHvGSh0iS6fZFHUYwQ/gfSq8RHYW QL//k3+NfC0XOLNb/cycBJ7lQ4bhYDGtDrcJ9dc8Fyt5cAQAUJBCPg2iTAR4BQ3Cs3cyXx03diRq Ni4WO4sh2P608dj8C9I1mLHBEp64vZOHiqvHDp79rADkFIkBV6z3olyY5/exjEOguTw/KCuGbb6u 5i3Ka27Vm5Pz7xIvlQN4laaAW4SOxI2XfUyVlrtBg65q1p9PZwIawBe+9b/bGfhW+k6I9ws+O9wY AD4lIrFzJKvOM2G2ImZfROh5nlGZQ1auRUt52H5p8aJXTEEmCnrJ8IsqZ6GU21kWFlIHzl1+4bPw IVl6xc1NaWM9z+Nfqd/XkMNGUjghnA27Kv8Yw/fSx9HOAnhbzZnBKgv9Qjkfd5YPTPwkZZpMNmSa X2RZAi1pgb8LWQ26xrmOz0bQKng6Q+te7GCmjC76qbha8pTzMHjPx+38GL9r2zkTnOSJy++uiKSg vfz9Lfqi8rrgWHtvj8FH+3n84INEyenCyjf/XD5y6FPaWFYXUmYnZEd8bHzGq5HO2PrdOPwJ/g26 M06KrFnTzEC+3hT/X43Urijf2ivz29pwo/xZaaeEnFbzjdmu5Bsmog3y8wLgW7d7CmLnO/htOYXB j9EK+JrJN1bd8ZQPc/FVOjGibK18UpzKwO3fVOeXgoXWPSPdsvlm7X+yzsZ+U1u97Vs/N4urM/Nv cKy1xi0tZtYFxzMT++Yl7MrQJysz41hEPNbu9o4MB1+IjNEzFQ/WDT/9mvk87gnGXCbhvTfFIag0 9k8Zln4xzHpc3SdG1Om2Zya5lW/enOyd83dwfKvBlXEML35XoPo7GfZJif5e7t5DN7x3XRM3xt/h 6TDnfqZQkFx3ovsSlznen3Di8RtM+ft/8crldrsx0PE5Ca++dnrGrdxWz1D0X3nzN/j/N+1+Wn8T rvt4p+ddhvXiOfWJym5RL6DbnIpTFf23tN15fZ6nWxa6Xn7hed/Kr+O/tf+NB/0Mx2DMfeozw9Uz DU6lG/pTW0SmXHOCR04e2tdUKPifdwELn98V113+E6kjJmdpc/iSjrXT8zAM6qc6F57Uf+wC5fXe 4cCFn1OZ7oi5lZue6GXL1WadSoe1t/srLN+K46Gd25nGceM/n3Z0b7QxyY5v48r18ztvw8uhK33h wbWu/itZgGZmAZvjTIVEpITtef6ZPccxASFUvWnyhb/k0I184MGzGqhJ6BdiwBO4aUY24VR6ys4h iH0TGc8oTEK8j53bs+45wN//LI6wb5NlT5LGFK4U/w9Hu1hHZ/xdz5Lg/bpDZFZEupLhLWDhwjOP eosd33ncIuJxasxhuBFZKOMieotHCZYvayYZqbQgy5RlGDsMT1ic5Ugjj8Vovz7EmuiGWL0j3rAp igseaF0oi2hU/m4lHxytBz9xhTxuUI2bXkUixjhnfWFmz+JENge+wyF2GNjmHrsjHcqHQ6BkI6Bg m5k0lh9KyCk01c6L+yUpMzch9TRkPLQ86XpT5va4Uozbbwdn/ecxkICTVzn/gphozDU8f4idVhyv 4CdbPEjYgx2wfkQOP+Uk2D8ZcLuvE+RufyOVay/dUMzOk16OM1De390w6+PRPqsw8sNl5nnOr1bF 9J/fM9AVB9SdhZStO7B5rm17W+35dJZD4T/z/ld4dV1l5YmZI6YfMEu6QRdQFoGe5If9/krkyEfq XvFnYusOXsiAgRK/Q1agnt0MPGKbvIozCE3h4aDhsbSY+kzHBV8HjYAW31I/duqFNMhmp7po439j BCQ+YAW8RX9blLceMd44h2TDNX73UKXXTif4jEiFuIE3l5IFzOd+O16Zd8qvj11JyIWdcLd8TCJ6 ZomZnE93T7sg/xzHwVXnVBzZeVwGG6/fdrnZ2to/+ovcXEwrOddwFECWtfhulyvKX2zYm2ktnMlb DosAH91BhOxMyXjCJ4YMpZRNnuI3sXnArCpPDn2MKPgBbW7rs2WLsvHdxPSvyn82yHPJMkD/hmA7 22FmPxeCnZl8lzVAEV1azt99fEDBhzB53GrtY2PszCdDhYlY7OyERT3k+w06T9bx2LsekfKSrDMl 8X8qUGwnS+xmiXzyMuTYvl7/sLovHoBvFtjtXy83KzA/nwQn0Rwy0q1aZTpJ8HGFdRPp5Sqt3V8I fur3v3h3suLSLc2Msz7vyHnf29G6poze5t4E6re8yZ+e5Yw64/zsOge3tm6/dxyUttPfVUANi7z9 1g9Qd1ohUnrYrU5/b+jI3q8x6T2n9mHs2mcPm7nV72EqfQzz7sWpZlTevFz5mwzynmbSDeYG5025 nOh3oouJx+TPT8ZE/57bDwX+Nxbc6azcpTHC/nl3lJ/11RkD+Oo9B4m3cqWHzmv6v0/9fVpbB30O dAZYv7Wfedoig8kcGXdvfb1YaaLHqeS2pnY/ycjbGCa6ndqYaLn+lnH1X3Op3Eo+vB0wo4y8RmSk lfxuX8e3kp/1vPbxHAqyOpvyOvT+XRmeb7N3pXzIRJfrOb59B/9UPner62kxucrLHMqXZWzvq9N5 TorCsvxsl1Xydm53jkx61/SJv/sazLxqWoMnnZ7vT1P+qx7UYczvZniUxj63G/VmffdTP/nZtEtb 3ksKfFb68yfgwF0I4K9ZLn6CB3T2p1kWVvLg9olCY2gmPEBQEJ7nodfilXsWUQe0Cwm0Bs9qqu/1 hIgWYtLEmy3I9LbCG60NJwSxxg5KZuImvNBueO+8RlkEGYlgEhqjaQxls2aGaBashzQR6S2qBv9q MahsFyF0wQOca4y7wssrsk93pTD5vptBMRP2wVyTpQ78kagHnTjdtEmhKOp38/BYHnq04+3L8owA y6/3reUhpn8bsZU6+s2+Ggpey5iZD3qL8ce8wouzxDwhTMRUD9v9UurCws2gMRMi5B7BsLiD7lUA BQZBl0qnEh5FZuI1C/PtHqxQZhSKPg7boWg4dOixPiiEy2OeBU67HlO4Vow34blkfdgthV8cTMyK SOYRwuKOgCVEwtgZwNkAW0v82CIOvP+tVdaUiHpY3z5uERfx/5C1yZ6h7kpt6M3EMe5X5MhKQ0SH QtAFRoYLv+e/M/+NNemrzHllbSc8mURE79Z3eDSxNJYdvPJJwvVm6GR8AJ9k7+ENHGpX/mM9ta41 Q0i06WMmKjtc7hkGDhpcV74HuWF8fe+K+6e9r3XMCcOIsN2eltPVEDNu+z0BNyPAY6idL80HddE/ y7LzSW038vCELtobmEpcHu1AIQMcCWMi+QnWARcsSuMbfWR91fd+ev0uVyyVvn9HNPOhXLrSXJWz W3YheMWPM4V2yzMo8sFZjKS4uiJm2djKuHAwOg0SfBv4q3JI5wU7h9GOhMFB6QSNIJsUjACxzD3G x93LrzxhCXku+mIY9XlzmHSNKo1XT6+I0LNEd1uMd2/gR3DWRe9vmHgXkfJN+6Hqi/h717AmMh4B scfPovd9Qx46J3Cso8c0uK1614WvOk7kxElW7n0+JHaXb++HXKrfU1zZ8Ql1pPIIcT3RFCSgj5hX kttVgd8JZlkJ30XfsbOEDUbcj5ILdtKgQQafa0rVbeLz7w8n4b2rR/IXj8RYjyvQ/b3J0v70rFvG E0zTbbOTRdf70EYinniy6rrhg9IFea8DvOIG3skYuVnfv+IecPw0L21RiMh4DkCoeuL2S0SynKkc aUoB265j7GPDv9uOU4btk6dhevdGX/+/KDe68+eiG/Gd8eC9PD+TJ31iVv8FltwGPm3zt/y+mTwj BeJZd2vu5CF5J6l+3s76EBEJnXQMgfI30A9tXcNIkZiV61z3Fus67djl9qdt406r09rHu11oT/i/ 8bX898Qzeikp+Ard1/5VON/LTbj2dl+Z+V5fcx4Sc+nnG3/y5+28VMfVxF/GsRn9ZXqKlJ3nOEsf yRj+xotuf9++z8rLfQdhkgtTn6jPzPQ8iCE/d0ywrvOb88yQO+Mc9qHvPH+Bt/eol/++8f6pXJ8h FDllBuvzSkTE9FzbHscskhIjnLBMHvA8ttxOWR9JecN7mU/29vB8PMjufcz9EZFd7jXjOkKWZllz 42c9NPL2N/rPcOX+RnnM3XFUn9/w3Md+rjVOa+E7/JV/DnpMg+3s+8zqONHG1P88trjIk4hSRsGz FMeElb8HvpGGwO5tyo0QkZ/qxw2+TJVrSM56QfTxYEixZHcjLpFChiUfORYNSbpgh2t/qGOxcd0i 8jMFjai16w9AZ4s1Z1J4wQiqBed1lmZvQFYjv0hNzMJnTLb2saR7/Ewx1B/KpHYiLWMCuhpxwAOe Pf/KHMyCt5g33KwrFAewYrcn8LRszlAeM/lxcdQtM6fH5rZsTxo6n8e3lGINP4J2B5oHnIWOjZH8 T6PvrsgR0XEBzefSLeq2diRiSImIELLpKNzqzU2U5N4RMYGDMxLMj78YSrOtoTe8wkTBwreot2ka ZwHTY2oRw4r+9Y4C6R5NTyGILeeOL+wM5ItulqW8DsVBeUC0J9uir22XTbN9WEYne0nXDfgMGPku 6wGxqbagPT88ivM/Sp67RDfTDeWIyiSiSOkq1cAADPB2b4zT2s8hSzdHgyotlnVMqof4fCd84/oo Q5nppAl9jwNWPLzIymH8HeVNKWMxVyISZ1uah3bjzBUFPW17vhaTuAPRlMNH8fKmi3723n6besdr L/67vPQs1p0QU3BYxD2zL73Ey27ktedPwcdjZ7LO9kXEs4nlMimhsc7gadbx+VmDHXxS6yGLT1UA z3W6jCbeAy9E5FlVROysld8XYtmu6DUvM9a30QOOXmUjrgyoKy3JyFwp/nlzcQx5lp2l63dpJykm GdlkoOipLICc0MOrAY1YKEwO8cHCUhygvz+jCcyl7tgLbrpn3bU+zgpZm2xjy/wT9K74rfhBff9N DHAf1mN4d87h7Wp11V18XKn9Guq5vX+iFNZ5HLI5jbJatu2uB791nrnYeLMEPnSSivHdad6Vetb2 9ce2I7Ys6mL7xBZ4kUUQZ8Acoy2rFG+KGHi662rVmCCCnFB4AoSQe8COKM0q09IddhVd2qYtLeUp EWlyjMd/07mv8jfB4nqt1oX+Fwl1DCeMdRC4cblCRCvNf3Gkm2rc8bS69ZKVpm+eis8Ksg3oo4Va vdsip5duegdwTt+nulP927vZsu546aVfAtTbvsV6ZYFxPB8O705j7lbiZH12RW+az17yHHRh2/H5 q7WPcd0s5QzvrTgOpBqTExPKOOmen1yvt38sjsthz/8nym3s4xy11I0370MuXTmd+h/X0OLiVcjn PAr7vuFJVij1UxB4mpuy5vLuUr4o59LftGa6YZzfyzSBzCP533RTsCtZQ6z4zfvleEv0NsXb9vH0 tfdpbdzKp/Wby9TP9F7G6e29XF8dIXPsb643Zdm68a9NMp5N6e97O1/4/cSziajsCvc6ZTxblfkJ nrz7M9EbYOlr7xuP/DZu1M20/Elef5LR/VzX9LzAMOwKn2NL/OswLO6K3E1e/ULXJ218ljXT+vwk ozru/yw6Isvzmz4xySeikHM3necbHJ9+I1qkEXAnH/1V5h10yKeDNcOMXdr83rSrjfp9Hia+M/X1 7bdpR/ebPtmf4/OfpIQg8l13jfaHXW75rP9+ovWp7gR/H9df/KDbE7ixjX0h65aFLNsebVv3Yp74 I+tDtvoSEALgmF34ExHJq14+9+ynTEBqibUFjMGYJXneqAkYaow3diqYqwWJts/7D6qRklB8EAMz Ez+wqJvwVZOVRGwxSHjSD4bzJqUVMdANH57VKO0QdAs2Oxym1GnZ84SfEUt5VfD5UW8arH175v7H lxLuiPaKeDT2N8izY+QUasz8MYyMjcGISIyL67jZ8rozBQ2+7+vKiDN+rsL5poBNTPeTMhZ57NtC 5sjjoPNtjA+xpxiPVC99YpVUzxmcZwsMuBFerw/40zrK9d0bKggDMrpGRG3zIvi6uMXo+vhsXTBp 5g+kmR0UbR2/6HkI9CVdOJ0KP+AQCU/dTQmLNffaOYsGNvriXeIwe8gAOAX66Iq+010AWrz/E9O/ KZyAKacxzWPS56hblUCUflj6NS/U8p1AjUflnXHMR1/RRnzqb4Zb3z2r8+Vw9xjqfSrB2IUua9Ob s/o5IwozvW9UdDlDjU5lUfb41bFpW38Jx3lONkGBUE88icpNavhBYXkJ3vciEwX4f4mE6I//vig8 oP1TWR95l733Wvab2K3FTgN29Cr/Pdp1fjArJn7fCT8EtrzWIrazXI7/nXY/ZOleAG/1rLIQ4tF5 BW6mcuPT8QN2HFlxxaA5fYx7IMi8sbh3KPNTWey/BbnFOG4wlTb8Pdxkq88eUg94H6LKPYOZTH5k Pi0vKQ1k+b1c/mP9MJsOlrL2ScqYBotN7H2SfN6gKr+QE3k8YnD2Mb9Gc0KVD5GEUV3WWwt7Ddw5 VhUvt5Dhpmd2ngm5lfW02t88f9K3fBHJ0vrFO5lOuMi+TieS8KnnEJ+16J/t5D3MFu69DebQJ0XE HKjb9gEMftNvAc9KOwSfdJRc/rJAWWsRjPNDgQA+hnRcWSGjQZmaCemzh8uVIILASKg0xtTbUNio wPcJEZjQzDAnZX9SpvLfRfEeFO3a5slkM+N4DNcdTxNzzoripBTkAkvbBdkQ3tIXZO5nwkV5b7jY KCsCIOjeLn9pN/99u+hppMc29qlcjZz2/UZDk+HQy9RGpwMwxNxmbrUyRvttiYVRfDdMMn31Q2rE 57rL9fs4NG70u7d7olnwEa3PToNTf/Cs3PwhvX435EYedMHJ1GbsAPT26trv9I7P7NX+5GGdeEfn XzcYP42l9/GND4LPChTGtuYzLJ/ow8fkz5MiMgjQDkfGSb2IsfP5CAeb5mDCa/6+hjkz6LX9LSSD sj3Bq1R6XqLlbdNLOLzY9QLA7oYOn+9rSNLM2465leXODe37NCBzv7mdU9HL+PmIilI0hDTWi/K3 R5XnrCSlxBCdLkZjinO6wx9kkl1CSHQaexm3SAvt77U2f5WBuYB/dQNieh/88FM51+NZRxVY7dTX W3u38/cMS+bF1J5Fv+dO8rH2qdLaJ7l0fq91u/Fwa6PPb+gL3/qrZZonZvZQcU50eqe7WS+xGv5M Q3prXy5nE4+zB21NnLrnJ8MZ73Wd9S8AViVt0z87sLkKMLRn5df/Tox+Uuzn3f8It3mgVICh2e+e rYf9pTooPH+F9haPjeqZOzBXnlUjISv3FzDfibcT24RkeCJzrnIShdeNKBgfbmUm4ZcJmcNzx5H2 yNsXqtvNRBQ7Msjj/+IQnsaCl8VOlQDLmOx9v+hVYDiEt8TxyoY1JmKLRd4vkxCreBTSseZ+F/qv Y8YUYYfgxU4TJxizIisqtHGTp9Mn8IExDkpp/35TKH4RBMcN2c4x7Hfk5U5wB7WZsrDUg1IZsQms fNZgJYYJgTbQZBacTnt+Iq/Rr6VHctVGYn3r+B/rCvC8oexizaxFJK9mYll61QgThK3obgKyZrUD UYD9SI1KNu/Cx83LYPbat67/RBnlOXBAaA+x72IZKZryvRGTviw2HApb2vrtjH4yDry/izLWaW7x n8Z8tpsy+zo9lXGM8yn9uMIDHKRPKEvgSRp/fFekS3/tXojw5Mdz5tjZ5R7Lm8YMw0kEMdq1TobD /wZe0m7L8XytUb2a1rnueOMs1rIzTOQ3wnbYsZPA8tDe/zRL1Yp7AWL9BzwiQo8p6TijgjM2HS5v Q5pC4XTAFErT9rn0MXmbtq4lKEDZoeL7nQ670LkOp6Iyqq7jnC8fO/qjwYGfMP9QkOz9rvgsZLtC tkKsU7+czTzhfg+D6jagOpxNRKYxlzeZn7RnSo8VH5MB/Enh7cY93qGn7jTxbkk0PMsg8KByVbvg SLfa+IA7lAxgP3PDRFs2PYj9N/2JiX2nnOguRyYts/CYbjjSvM78QviGkxzzTt7CLGsLHr8YhL09 gpt1nXK9jk3ros7eGb4wCIhOB4l+P9Ie6O/tjOw2LgCe8jaYpLXHHDqey7eml04Kf8fbQgMx4EF5 l3MSRiaVnv1SioEx9J3/fSu3OnlR3pR5jOV5ngMWPOs3yE19HsKx1cltj+8+bXdl1YN3PR93fpaf 3/rO45ieT/nhe3vTDlAfW68/tYPSFwx+63W/0YErjhkHYGZg3pexf2v3zhy+0+V/fefXdTQyZ9Df 4qOdXn9a0/j+SbDJu8sZjGl3pa/rSRme4Ol9d/hciR1i6PsO1wT7pzYnOLvnGOO5ZeOZxtB/m753 /pIFyQ0vvU4vvb+Ogwn+T+t0gnFq65P86MWVq30aUxPMv6z/vGvwKSsaPmfczvQxvX+D9UarROea 6XOe8XajqbmciQ2mv6ex/D9RJnmOPie6m3jtJDPxd57rqe9JpkyypdPtpLDmd2787FOWtk+6R34+ resJdh17rJv8fu+/y9dJhveIgNv6/sajP73/DdZfZf1/odlp/qb+brB6O+0s3NT+p7n+pXwb/6/6 wE2Hm37//wJY2lpRqLZZ5QAAAABJRU5ErkJggg== " id="image1" x="2.7314055" y="71.162193" /> 1: - mem.flux[split] = _explicit_step_and_flux(mem, ud, lmbda, split, tag="rk") + flux[split] = _explicit_step_and_flux(mem, ud, lmbda, split, tag="rk") # Cache neighbor indices once left_idx, right_idx = get_neighbor_indices(mem.elem.ndim) @@ -52,7 +53,7 @@ def first_order_runge_kutta(mem, ud, dt): for dim in range(ndim): _apply_dimensional_flux_update(mem, dim, time_step, left_idx, right_idx) - bdry.set_explicit_boundary_data(mem.sol, mem.elem, ud, mem.th, mem.mpv) + bdry.set_explicit_boundary_data(mem.sol, mem.elem, ud, mem.th, mem.npf) def _update_solution_variables(sol, flux, lmbda, left_idx, right_idx, variables=None): @@ -84,7 +85,7 @@ def _explicit_step_and_flux(mem, ud, lmbda, split_step, tag=None): _update_solution_variables(mem.sol, flux, lmbda, left_idx, right_idx) bdry.set_explicit_boundary_data( - mem.sol, mem.elem, ud, mem.th, mem.mpv, step=split_step + mem.sol, mem.elem, ud, mem.th, mem.npf, step=split_step ) if tag == "rk": @@ -98,10 +99,10 @@ def _compute_flux_and_recovery(mem, ud, lmbda, split_step, tag=None): Returns: flux: Computed flux container """ - flux = mem.flux[split_step] + flux = mem.cache.get_flux_containers(mem.elem)[split_step] bdry.set_explicit_boundary_data( - mem.sol, mem.elem, ud, mem.th, mem.mpv, step=split_step + mem.sol, mem.elem, ud, mem.th, mem.npf, step=split_step ) Lefts, Rights = recovery.compute(mem, ud, lmbda, split_step, tag) @@ -117,12 +118,13 @@ def _apply_dimensional_flux_update(mem, dim, time_step, left_idx, right_idx): """ lmbda = time_step / mem.elem.dxyz[dim] mem.sol.flip_forward() + flux = mem.cache.get_flux_containers(mem.elem)[dim] - _update_solution_variables(mem.sol, mem.flux[dim], lmbda, left_idx, right_idx) + _update_solution_variables(mem.sol, flux, lmbda, left_idx, right_idx) # Handle special case for vertical axis if dim == 1: - updt = lmbda * (mem.flux[dim].rhoX[left_idx] - mem.flux[dim].rhoX[right_idx]) + updt = lmbda * (flux.rhoX[left_idx] - flux.rhoX[right_idx]) setattr(mem.sol, "pwchi", updt) diff --git a/src/pybella/flow_solver/numerics/explicit_advection/recovery.py b/src/pybella/flow_solver/numerics/explicit_advection/recovery.py index ae5d76c5..d24863d5 100644 --- a/src/pybella/flow_solver/numerics/explicit_advection/recovery.py +++ b/src/pybella/flow_solver/numerics/explicit_advection/recovery.py @@ -10,7 +10,7 @@ def compute(mem, ud, lmbda, split_step, tag=None): Reconstruct the limited slopes at the cell interfaces. """ - flux = mem.flux[split_step] + flux = mem.cache.get_flux_containers(mem.elem)[split_step] gamm = mem.th.gamm order_two = 1 # always 1 @@ -204,7 +204,7 @@ def _compute_pressure_reconstruction( ): """Compute pressure reconstruction using power law.""" reconstructed_p0 = reconstructed_rhoy**gamm - lefts.p0[lefts_idx] = reconstructed_p0 - rights.p0[rights_idx] = reconstructed_p0 + lefts.p[lefts_idx] = reconstructed_p0 + rights.p[rights_idx] = reconstructed_p0 return reconstructed_p0 diff --git a/src/pybella/flow_solver/numerics/explicit_euler.py b/src/pybella/flow_solver/numerics/explicit_euler.py index b9dff917..0230f338 100644 --- a/src/pybella/flow_solver/numerics/explicit_euler.py +++ b/src/pybella/flow_solver/numerics/explicit_euler.py @@ -6,7 +6,7 @@ def do_forward_step(mem, ud, dt, writer=None, label=None, debug=False): # Unpack frequently used variables - th, sol, mpv, node, elem = mem.th, mem.sol, mem.mpv, mem.node, mem.elem + th, sol, npf, node, elem = mem.th, mem.sol, mem.npf, mem.node, mem.elem ndim = elem.ndim nonhydro = ud.nonhydrostasy @@ -20,19 +20,19 @@ def do_forward_step(mem, ud, dt, writer=None, label=None, debug=False): rhou, rhov, rhow = sol.rhou, sol.rhov, sol.rhow # Pressure and derivatives - p2n = mpv.p2_nodes + p2n = npf.p2_nodes dp2n = np.zeros_like(p2n) - S0c = mpv.HydroState.get_S0c(elem) - dSdy = mpv.HydroState_n.get_dSdy(elem, node) + S0c = npf.HydroState.get_S0c(elem) + dSdy = npf.HydroState_n.get_dSdy(elem, node) # Compute divergence - mpv.rhs[...] = divergence.compute_at_nodes(mpv.rhs, elem, sol, ud) + npf.rhs[...] = divergence.compute_at_nodes(npf.rhs, elem, sol, ud) if not hasattr(ud, "ATMOSPHERIC_EXTENSION"): - bdry.scale_wall_node_values(mpv.rhs, node, ud, 2.0) + bdry.scale_wall_node_values(npf.rhs, node, ud, 2.0) if debug: - writer.populate(str(label), "rhs", mpv.rhs) + writer.populate(str(label), "rhs", npf.rhs) # Compute compressibility kernel kernel = convolution.get_averaging_kernel(ndim, width=2) @@ -72,9 +72,9 @@ def do_forward_step(mem, ud, dt, writer=None, label=None, debug=False): sol.rhoX[...] = (rho * (rho / rhoY - S0c)) - dt * (v * dSdy) * rho # Compressibility correction to p2 - dp2n[node.i1] -= dt * dpidP * mpv.rhs - mpv.p2_nodes += ud.compressibility * dp2n + dp2n[node.i1] -= dt * dpidP * npf.rhs + npf.p2_nodes += ud.compressibility * dp2n # Boundary conditions - bdry.set_ghostnodes_p2(mpv.p2_nodes, node, ud) - bdry.set_explicit_boundary_data(sol, elem, ud, th, mpv) + bdry.set_ghostnodes_p2(npf.p2_nodes, node, ud) + bdry.set_explicit_boundary_data(sol, elem, ud, th, npf) diff --git a/src/pybella/flow_solver/numerics/implicit_euler.py b/src/pybella/flow_solver/numerics/implicit_euler.py index cce0a721..a8c6bf3f 100644 --- a/src/pybella/flow_solver/numerics/implicit_euler.py +++ b/src/pybella/flow_solver/numerics/implicit_euler.py @@ -35,7 +35,7 @@ def do_explicit_part(mem, ud, dt): mem.sol.mod_bg_wind(ud, +1.0) - bdry.set_explicit_boundary_data(mem.sol, mem.elem, ud, mem.th, mem.mpv) + bdry.set_explicit_boundary_data(mem.sol, mem.elem, ud, mem.th, mem.npf) def do_implicit_part( @@ -62,40 +62,40 @@ def write_debug_data(key, data): writer.populate(str(label), key, data) # Initial debug output - write_debug_data("p2_initial", mem.mpv.p2_nodes) + write_debug_data("p2_initial", mem.npf.p2_nodes) # Set boundary data and compute operator coefficients (consolidated) sol_for_boundary = Sol0 if Sol0 is not None else mem.sol - bdry.set_explicit_boundary_data(sol_for_boundary, mem.elem, ud, mem.th, mem.mpv) + bdry.set_explicit_boundary_data(sol_for_boundary, mem.elem, ud, mem.th, mem.npf) operator_coefficients_nodes(mem, ud, dt) # Debug output for w components if writer is not None: - write_debug_data("hcenter", mem.mpv.wcenter) - write_debug_data("wplusx", mem.mpv.wplus[0]) - write_debug_data("wplusy", mem.mpv.wplus[1]) + write_debug_data("hcenter", mem.npf.wcenter) + write_debug_data("wplusx", mem.npf.wplus[0]) + write_debug_data("wplusy", mem.npf.wplus[1]) # Handle 3D case more cleanly wplusz_data = ( - mem.mpv.wplus[2] if mem.elem.ndim == 3 else np.zeros_like(mem.mpv.wplus[0]) + mem.npf.wplus[2] if mem.elem.ndim == 3 else np.zeros_like(mem.npf.wplus[0]) ) write_debug_data("wplusz", wplusz_data) # Boundary and correction operations - # bdry.set_ghostnodes_p2(mem.mpv.p2_nodes, mem.node, ud) - _correction_nodes(mem, ud, dt, mem.mpv.p2_nodes, 0) - bdry.set_explicit_boundary_data(mem.sol, mem.elem, ud, mem.th, mem.mpv) + # bdry.set_ghostnodes_p2(mem.npf.p2_nodes, mem.node, ud) + _correction_nodes(mem, ud, dt, mem.npf.p2_nodes, 0) + bdry.set_explicit_boundary_data(mem.sol, mem.elem, ud, mem.th, mem.npf) # Compute RHS - mem.mpv.rhs[...] = divergence.compute_at_nodes(mem.mpv.rhs, mem.elem, mem.sol, ud) - write_debug_data("rhs", mem.mpv.rhs) + mem.npf.rhs[...] = divergence.compute_at_nodes(mem.npf.rhs, mem.elem, mem.sol, ud) + write_debug_data("rhs", mem.npf.rhs) - mem.mpv.rhs /= dt + mem.npf.rhs /= dt # Handle compressibility - simplified logic _apply_compressibility_correction(mem, ud) - write_debug_data("rhs_nodes", mem.mpv.rhs) + write_debug_data("rhs_nodes", mem.npf.rhs) # Prepare and solve linear system lap, rhs_inner = _prepare_linear_system(mem, ud, dt) @@ -114,16 +114,16 @@ def write_debug_data(key, data): # bdry.set_ghostnodes_p2(p2_full, mem.node, ud) _correction_nodes(mem, ud, dt, p2_full, 1) - mem.mpv.p2_nodes[...] += p2_full - bdry.set_ghostnodes_p2(mem.mpv.p2_nodes, mem.node, ud) - bdry.set_explicit_boundary_data(mem.sol, mem.elem, ud, mem.th, mem.mpv) + mem.npf.p2_nodes[...] += p2_full + bdry.set_ghostnodes_p2(mem.npf.p2_nodes, mem.node, ud) + bdry.set_explicit_boundary_data(mem.sol, mem.elem, ud, mem.th, mem.npf) def _correction_nodes(mem, ud, dt, p, updt_chi): ndim = mem.node.ndim Gammainv = mem.th.Gammainv - dSdy = mem.mpv.HydroState_n.get_dSdy(mem.elem, mem.node) + dSdy = mem.npf.HydroState_n.get_dSdy(mem.elem, mem.node) Dpx, Dpy, Dpz = gradient.compute_at_nodes(p, mem.elem.ndim, mem.node.dxyz) @@ -132,15 +132,15 @@ def _correction_nodes(mem, ud, dt, p, updt_chi): Y = mem.sol.rhoY / mem.sol.rho coeff = Gammainv * mem.sol.rhoY * Y - mem.mpv.u[...] = -dt * coeff * Dpx - mem.mpv.v[...] = -dt * coeff * Dpy - mem.mpv.w[...] = -dt * coeff * Dpz + mem.npf.u[...] = -dt * coeff * Dpx + mem.npf.v[...] = -dt * coeff * Dpy + mem.npf.w[...] = -dt * coeff * Dpz - coriolis.multiply_inverse_terms(mem.mpv, mem, ud, dt, attrs=["u", "v", "w"]) + coriolis.multiply_inverse_terms(mem.npf, mem, ud, dt, attrs=["u", "v", "w"]) - mem.sol.rhou += thinv * mem.mpv.u - mem.sol.rhov += thinv * mem.mpv.v - mem.sol.rhow += thinv * mem.mpv.w if ndim == 3 else 0.0 + mem.sol.rhou += thinv * mem.npf.u + mem.sol.rhov += thinv * mem.npf.v + mem.sol.rhow += thinv * mem.npf.w if ndim == 3 else 0.0 mem.sol.rhoX += -updt_chi * dt * dSdy * mem.sol.rhov @@ -155,16 +155,16 @@ def operator_coefficients_nodes(mem, ud, dt): coeff = Gammainv * mem.sol.rhoY * Y for dim in range(ndim): - mem.mpv.wplus[dim][...] = coeff + mem.npf.wplus[dim][...] = coeff kernel = convolution.get_averaging_kernel(ndim, width=2) - mem.mpv.wcenter = ccenter * convolution.apply_convolution_kernel( + mem.npf.wcenter = ccenter * convolution.apply_convolution_kernel( mem.sol.rhoY**cexp, kernel ) if not hasattr(ud, "ATMOSPHERIC_EXTENSION"): - bdry.scale_wall_node_values(mem.mpv.wcenter, mem.node, ud) + bdry.scale_wall_node_values(mem.npf.wcenter, mem.node, ud) def _apply_compressibility_correction(mem, ud): @@ -173,13 +173,13 @@ def _apply_compressibility_correction(mem, ud): """ if ud.is_compressible == 0: if ud.is_ArakawaKonor: - mem.mpv.rhs -= mem.mpv.wcenter * mem.mpv.dp2_nodes - mem.mpv.wcenter[...] = 0.0 + mem.npf.rhs -= mem.npf.wcenter * mem.npf.dp2_nodes + mem.npf.wcenter[...] = 0.0 else: # Simplified - this was redundant multiplication - mem.mpv.wcenter[...] *= ud.compressibility + mem.npf.wcenter[...] *= ud.compressibility else: - mem.mpv.wcenter *= ud.compressibility + mem.npf.wcenter *= ud.compressibility def _prepare_linear_system(mem, ud, dt): @@ -194,20 +194,20 @@ def _prepare_linear_system(mem, ud, dt): def _prepare_2d_system(mem, ud, dt): """Prepare 2D linear system.""" - Vec = mem.mpv + Vec = mem.npf coriolis_params = coriolis.multiply_inverse_terms( Vec, mem, ud, dt, attrs=("u", "v", "w"), get_coeffs=True ) - diag_inv = preconditioner.prepare_diag(mem.mpv, mem.node) - mem.mpv.rhs *= diag_inv + diag_inv = preconditioner.prepare_diag(mem.npf, mem.node) + mem.npf.rhs *= diag_inv - p2 = mem.mpv.p2_nodes[mem.node.i2].T - lap = lap2D_manual.get_linop(mem.mpv, mem.node, coriolis_params, diag_inv, ud) + p2 = mem.npf.p2_nodes[mem.node.i2].T + lap = lap2D_manual.get_linop(mem.npf, mem.node, coriolis_params, diag_inv, ud) sh = p2.shape[0] * p2.shape[1] lap = sp.sparse.linalg.LinearOperator((sh, sh), lap) - rhs_inner = mem.mpv.rhs[mem.node.i1].T.ravel() + rhs_inner = mem.npf.rhs[mem.node.i1].T.ravel() return lap, rhs_inner @@ -218,12 +218,12 @@ def _prepare_3d_system(mem, ud, dt): # This might be a bug in the original code diag_inv = None # TODO: Verify if this should be computed for 3D - lap = lap3D.get_linop(mem.elem, mem.node, mem.mpv, ud, diag_inv, dt) - p2 = mem.mpv.p2_nodes # Define p2 for 3D case + lap = lap3D.get_linop(mem.elem, mem.node, mem.npf, ud, diag_inv, dt) + p2 = mem.npf.p2_nodes # Define p2 for 3D case sh = p2.reshape(-1).shape[0] lap = sp.sparse.linalg.LinearOperator((sh, sh), lap) - rhs_inner = mem.mpv.rhs[mem.node.i1].ravel() + rhs_inner = mem.npf.rhs[mem.node.i1].ravel() return lap, rhs_inner, sh @@ -235,7 +235,7 @@ def _reshape_solution(p2, mem, ud, nc): p2_full = np.zeros(nc).squeeze() if mem.elem.ndim == 2: - p2_full[mem.node.i2] = p2.reshape(mem.mpv.rhs[mem.node.i1].T.shape).T + p2_full[mem.node.i2] = p2.reshape(mem.npf.rhs[mem.node.i1].T.shape).T else: # 3D case p2_full[mem.node.i1] = p2.reshape(ud.inx + 2, ud.iny + 2, ud.inz + 2) diff --git a/src/pybella/flow_solver/physics/eos.py b/src/pybella/flow_solver/physics/eos.py index 9fca5138..9a32de50 100644 --- a/src/pybella/flow_solver/physics/eos.py +++ b/src/pybella/flow_solver/physics/eos.py @@ -73,12 +73,12 @@ def rhoe(rho, u, v, w, p, ud, th): return p * gm1inv + 0.5 * Msq * rho * (u**2 + v**2 + w**2) -def synchronise_variables(mpv, Sol, elem, node, ud, th): +def synchronise_variables(npf, Sol, elem, node, ud, th): scale_factor = 1.0 / ud.Msq if ud.is_compressible: - p2bg = mpv.HydroState.p20[0, :].reshape(1, -1) + p2bg = npf.HydroState.p20[0, :].reshape(1, -1) p2bg = np.repeat(p2bg, elem.icx, axis=0) - mpv.p2_cells = scale_factor * Sol.rhoY**th.gm1 - p2bg + npf.p2_cells = scale_factor * Sol.rhoY**th.gm1 - p2bg - bdry.set_ghostcells_p2(mpv.p2_cells, elem, ud) + bdry.set_ghostcells_p2(npf.p2_cells, elem, ud) diff --git a/src/pybella/flow_solver/physics/hydrostatics.py b/src/pybella/flow_solver/physics/hydrostatics.py index 6aa8e215..58b32cb8 100644 --- a/src/pybella/flow_solver/physics/hydrostatics.py +++ b/src/pybella/flow_solver/physics/hydrostatics.py @@ -80,7 +80,7 @@ def column(HydroState, HydroState_n, Y, Y_n, elem, node, th, ud): HydroState_n.p20[xc_idx, igy + 1 :] = pi_hydro_n[:, igy:] / ud.Msq -def integrated_state(mpv, elem, node, th, ud): +def integrated_state(npf, elem, node, th, ud): """ Compute hydrostatic background state for atmospheric model. Handles arbitrary stratification profiles and proper numerical integration. @@ -138,25 +138,25 @@ def integrated_state(mpv, elem, node, th, ud): rhoY_hydro = pi_hydro**gm1_inv # Update cell solutions - mpv.HydroState.rhoY0[:] = rhoY_hydro - mpv.HydroState.rho0[:] = rhoY_hydro * S_ps - mpv.HydroState.p0[:] = p_hydro - mpv.HydroState.p20[:] = pi_hydro / ud.Msq - mpv.HydroState.S0[:] = S_ps - mpv.HydroState.S10[:] = 0.0 - mpv.HydroState.Y0[:] = 1.0 / S_ps + npf.HydroState.rhoY0[:] = rhoY_hydro + npf.HydroState.rho0[:] = rhoY_hydro * S_ps + npf.HydroState.p0[:] = p_hydro + npf.HydroState.p20[:] = pi_hydro / ud.Msq + npf.HydroState.S0[:] = S_ps + npf.HydroState.S10[:] = 0.0 + npf.HydroState.Y0[:] = 1.0 / S_ps ############################ # Update node hydrostates ############################ # Bottom reference node (y=0) - mpv.HydroState_n.Y0[igy] = ud.stratification(0.0) - mpv.HydroState_n.rhoY0[igy] = rhoY0 - mpv.HydroState_n.rho0[igy] = rhoY0 / ud.stratification(0.0) - mpv.HydroState_n.S0[igy] = 1.0 / mpv.HydroState_n.Y0[igy] - mpv.HydroState_n.p0[igy] = p0 - mpv.HydroState_n.p20[igy] = pi0 / ud.Msq + npf.HydroState_n.Y0[igy] = ud.stratification(0.0) + npf.HydroState_n.rhoY0[igy] = rhoY0 + npf.HydroState_n.rho0[igy] = rhoY0 / ud.stratification(0.0) + npf.HydroState_n.S0[igy] = 1.0 / npf.HydroState_n.Y0[igy] + npf.HydroState_n.p0[igy] = p0 + npf.HydroState_n.p20[igy] = pi0 / ud.Msq # Ghost cells below bottom (negative heights) Sn_integral_p = np.zeros(igy) @@ -179,46 +179,46 @@ def integrated_state(mpv, elem, node, th, ud): rhoY_hydro_n = pi_hydro_n**gm1_inv # Update node solutions - below reference - mpv.HydroState_n.rhoY0[:igy] = rhoY_hydro_n[:igy] - mpv.HydroState_n.Y0[: igy + 1] = ud.stratification( + npf.HydroState_n.rhoY0[:igy] = rhoY_hydro_n[:igy] + npf.HydroState_n.Y0[: igy + 1] = ud.stratification( 0.5 * (y_ps[: igy + 1] + y_ps[: igy + 1] - elem.dy) ) - mpv.HydroState_n.rho0[:igy] = rhoY_hydro_n[:igy] / mpv.HydroState_n.Y0[:igy] - mpv.HydroState_n.S0[:igy] = 1.0 / mpv.HydroState_n.Y0[:igy] - mpv.HydroState_n.p0[:igy] = rhoY_hydro_n[:igy] ** th.gamm - mpv.HydroState_n.p20[:igy] = pi_hydro_n[:igy] / ud.Msq + npf.HydroState_n.rho0[:igy] = rhoY_hydro_n[:igy] / npf.HydroState_n.Y0[:igy] + npf.HydroState_n.S0[:igy] = 1.0 / npf.HydroState_n.Y0[:igy] + npf.HydroState_n.p0[:igy] = rhoY_hydro_n[:igy] ** th.gamm + npf.HydroState_n.p20[:igy] = pi_hydro_n[:igy] / ud.Msq # Update node solutions - above reference - mpv.HydroState_n.rhoY0[igy + 1 :] = rhoY_hydro_n[igy:] - mpv.HydroState_n.Y0[igy + 1 :] = ud.stratification( + npf.HydroState_n.rhoY0[igy + 1 :] = rhoY_hydro_n[igy:] + npf.HydroState_n.Y0[igy + 1 :] = ud.stratification( 0.5 * (y_ps[igy:] + y_ps[igy:] + elem.dy) ) - mpv.HydroState_n.rho0[igy + 1 :] = ( - rhoY_hydro_n[igy:] / mpv.HydroState_n.Y0[igy + 1 :] + npf.HydroState_n.rho0[igy + 1 :] = ( + rhoY_hydro_n[igy:] / npf.HydroState_n.Y0[igy + 1 :] ) - mpv.HydroState_n.S0[igy + 1 :] = 1.0 / mpv.HydroState_n.Y0[igy + 1 :] - mpv.HydroState_n.p0[igy + 1 :] = rhoY_hydro_n[igy:] ** th.gamm - mpv.HydroState_n.p20[igy + 1 :] = pi_hydro_n[igy:] / ud.Msq + npf.HydroState_n.S0[igy + 1 :] = 1.0 / npf.HydroState_n.Y0[igy + 1 :] + npf.HydroState_n.p0[igy + 1 :] = rhoY_hydro_n[igy:] ** th.gamm + npf.HydroState_n.p20[igy + 1 :] = pi_hydro_n[igy:] / ud.Msq else: # No gravity case - uniform atmosphere - mpv.HydroState.p20[:] = 1.0 - mpv.HydroState.p0[:] = 1.0 - mpv.HydroState.rho0[:] = 1.0 - mpv.HydroState.rhoY0[:] = 1.0 - mpv.HydroState.Y0[:] = 1.0 - mpv.HydroState.S0[:] = 1.0 - mpv.HydroState.S10[:] = 0.0 - - mpv.HydroState_n.p20[:] = 1.0 - mpv.HydroState_n.p0[:] = 1.0 - mpv.HydroState_n.rho0[:] = 1.0 - mpv.HydroState_n.rhoY0[:] = 1.0 - mpv.HydroState_n.Y0[:] = 1.0 - mpv.HydroState_n.S0[:] = 1.0 - - -def analytical_state(mpv, elem, node, th, ud): + npf.HydroState.p20[:] = 1.0 + npf.HydroState.p0[:] = 1.0 + npf.HydroState.rho0[:] = 1.0 + npf.HydroState.rhoY0[:] = 1.0 + npf.HydroState.Y0[:] = 1.0 + npf.HydroState.S0[:] = 1.0 + npf.HydroState.S10[:] = 0.0 + + npf.HydroState_n.p20[:] = 1.0 + npf.HydroState_n.p0[:] = 1.0 + npf.HydroState_n.rho0[:] = 1.0 + npf.HydroState_n.rhoY0[:] = 1.0 + npf.HydroState_n.Y0[:] = 1.0 + npf.HydroState_n.S0[:] = 1.0 + + +def analytical_state(npf, elem, node, th, ud): g = ud.gravity_strength[1] Gamma = th.Gamma Hex = 1.0 / (th.Gamma * g) @@ -233,12 +233,12 @@ def analytical_state(mpv, elem, node, th, ud): p_n = pi_n**th.Gammainv rho_n = P_n / Y_n - mpv.HydroState_n.p20[...] = pi_n / ud.Msq - mpv.HydroState_n.p0[...] = p_n - mpv.HydroState_n.rho0[...] = rho_n - mpv.HydroState_n.rhoY0[...] = P_n - mpv.HydroState_n.Y0[...] = Y_n - mpv.HydroState_n.S0[...] = 1.0 / Y_n + npf.HydroState_n.p20[...] = pi_n / ud.Msq + npf.HydroState_n.p0[...] = p_n + npf.HydroState_n.rho0[...] = rho_n + npf.HydroState_n.rhoY0[...] = P_n + npf.HydroState_n.Y0[...] = Y_n + npf.HydroState_n.S0[...] = 1.0 / Y_n pi_cp = np.exp(-(elem.y + 0.5 * dy) / Hex) pi_cm = np.exp(-(elem.y - 0.5 * dy) / Hex) @@ -249,15 +249,15 @@ def analytical_state(mpv, elem, node, th, ud): p_c = pi_c**th.Gammainv rho_c = P_c / Y_c - mpv.HydroState.p20[...] = pi_c / ud.Msq - mpv.HydroState.p0[...] = p_c - mpv.HydroState.rho0[...] = rho_c - mpv.HydroState.rhoY0[...] = P_c - mpv.HydroState.Y0[...] = Y_c - mpv.HydroState.S0[...] = 1.0 / Y_c + npf.HydroState.p20[...] = pi_c / ud.Msq + npf.HydroState.p0[...] = p_c + npf.HydroState.rho0[...] = rho_c + npf.HydroState.rhoY0[...] = P_c + npf.HydroState.Y0[...] = Y_c + npf.HydroState.S0[...] = 1.0 / Y_c -def initial_pressure(Sol, mpv, elem, node, ud, th): +def initial_pressure(Sol, npf, elem, node, ud, th): Gammainv = th.Gammainv igy = node.igy igx = node.igx @@ -282,7 +282,7 @@ def initial_pressure(Sol, mpv, elem, node, ud, th): bdpdx[xn_idx] = np.sum( 0.5 * (Pm * thm + Pc * thc) - * (mpv.p2_cells[x_idx_c, y_idx] - mpv.p2_cells[x_idx_m, y_idx]) + * (npf.p2_cells[x_idx_c, y_idx] - npf.p2_cells[x_idx_m, y_idx]) * dy, axis=1, ) @@ -303,10 +303,10 @@ def initial_pressure(Sol, mpv, elem, node, ud, th): x_idx = slice(igx, -igx + 1) y_idx = slice(igy, -igy + 1) - mpv.p2_cells[x_idx, y_idx] += pibot[x_idx].reshape( + npf.p2_cells[x_idx, y_idx] += pibot[x_idx].reshape( -1, 1 - ) - 1.0 * mpv.HydroState.p20[y_idx].reshape(1, -1) - bdry.set_ghostcells_p2(mpv.p2_cells, elem, ud) + ) - 1.0 * npf.HydroState.p20[y_idx].reshape(1, -1) + bdry.set_ghostcells_p2(npf.p2_cells, elem, ud) icxn = node.icx icyn = node.icy @@ -324,7 +324,7 @@ def initial_pressure(Sol, mpv, elem, node, ud, th): beta *= Gammainv / height bdpdx[1:] = np.sum( - Pc * thc * (mpv.p2_nodes[1:-1, igy:-igy] - mpv.p2_nodes[:-2, igy:-igy]) * dy, + Pc * thc * (npf.p2_nodes[1:-1, igy:-igy] - npf.p2_nodes[:-2, igy:-igy]) * dy, axis=1, ) bdpdx *= Gammainv / height / dx @@ -343,33 +343,33 @@ def initial_pressure(Sol, mpv, elem, node, ud, th): x_idx = slice(igx, -igx + 1) y_idx = slice(igy, -igy + 1) - mpv.p2_nodes[x_idx, y_idx] += pibot[x_idx].reshape( + npf.p2_nodes[x_idx, y_idx] += pibot[x_idx].reshape( -1, 1 - ) - 1.0 * mpv.HydroState_n.p20[y_idx].reshape(1, -1) + ) - 1.0 * npf.HydroState_n.p20[y_idx].reshape(1, -1) - mpv.dp2_nodes[:, :] = mpv.p2_nodes + npf.dp2_nodes[:, :] = npf.p2_nodes # guess initial node value (at left-most node) - mpv.p2_nodes[igx, igy:-igy] = mpv.dp2_nodes[igx, igy:-igy] + npf.p2_nodes[igx, igy:-igy] = npf.dp2_nodes[igx, igy:-igy] - mpv.p2_nodes[:, :] = __loop_over_array( - igx, igy, icxn, icyn, mpv.p2_nodes, mpv.dp2_nodes + npf.p2_nodes[:, :] = __loop_over_array( + igx, igy, icxn, icyn, npf.p2_nodes, npf.dp2_nodes ) assert ((node.icx + 1) % 2) == 1 - delp2 = 0.5 * (mpv.p2_nodes[-igx - 1, igy:-igy] - mpv.p2_nodes[igx, igy:-igy]) + delp2 = 0.5 * (npf.p2_nodes[-igx - 1, igy:-igy] - npf.p2_nodes[igx, igy:-igy]) delp2 = delp2.reshape(1, -1) - sgn = np.ones_like(mpv.p2_nodes[:, 0][igy:-igy]).reshape(-1, 1) + sgn = np.ones_like(npf.p2_nodes[:, 0][igy:-igy]).reshape(-1, 1) sgn[1::2] *= -1 - mpv.p2_nodes[igx:-igx, igy:-igy] += sgn * delp2 - bdry.set_ghostnodes_p2(mpv.p2_nodes, node, ud) + npf.p2_nodes[igx:-igx, igy:-igy] += sgn * delp2 + bdry.set_ghostnodes_p2(npf.p2_nodes, node, ud) - mpv.dp2_nodes[:, :] = 0.0 + npf.dp2_nodes[:, :] = 0.0 inner_domain = (slice(igx, -igx), slice(igy, -igy)) - pi = ud.Msq * (mpv.p2_cells[inner_domain] + 1.0 * mpv.HydroState.p20[igy:-igy]) + pi = ud.Msq * (npf.p2_cells[inner_domain] + 1.0 * npf.HydroState.p20[igy:-igy]) Y = Sol.rhoY[inner_domain] / Sol.rho[inner_domain] rhoold = np.copy(Sol.rho[inner_domain]) Sol.rhoY[inner_domain] = pi**th.gm1inv diff --git a/src/pybella/flow_solver/utils/boundary.py b/src/pybella/flow_solver/utils/boundary.py index 7e214c70..06b48c66 100644 --- a/src/pybella/flow_solver/utils/boundary.py +++ b/src/pybella/flow_solver/utils/boundary.py @@ -8,7 +8,7 @@ from ...utils import io -def set_explicit_boundary_data(Sol, elem, ud, th, mpv, step=None): +def set_explicit_boundary_data(Sol, elem, ud, th, npf, step=None): """ In-place update of the ghost cells in :class:`management.variable.Vars` given the boundary conditions specified by :class:`inputs.user_data.UserDataInit`. @@ -22,7 +22,7 @@ def set_explicit_boundary_data(Sol, elem, ud, th, mpv, step=None): Data container for the initial conditions th : :class:`physics.gas_dynamics.thermodynamic.init` Thermodynamic variables of the system - mpv : :class:`physics.low_mach.mpv.MPV` + npf : :class:`physics.low_mach.npf.MPV` Variables relating to the elliptic solver step : int, optional Current step @@ -90,8 +90,8 @@ def set_explicit_boundary_data(Sol, elem, ud, th, mpv, step=None): if hasattr(ud, "ATMOSPHERIC_EXTENSION"): dpi = ( - mpv.HydroState.p20[nimage[y_axs]] - - mpv.HydroState.p20[nlast[y_axs]] + npf.HydroState.p20[nimage[y_axs]] + - npf.HydroState.p20[nlast[y_axs]] ) * ud.Msq else: dpi = ( @@ -105,7 +105,7 @@ def set_explicit_boundary_data(Sol, elem, ud, th, mpv, step=None): rhoY = ( ((Sol.rhoY[nlast] ** th.gm1) + dpi) ** th.gm1inv if ud.is_compressible == 1 - else mpv.HydroState.rhoY0[nimage[y_axs]] + else npf.HydroState.rhoY0[nimage[y_axs]] ) rho = rhoY * S @@ -131,9 +131,9 @@ def set_explicit_boundary_data(Sol, elem, ud, th, mpv, step=None): # p = rhoY**th.gamm - # rhoY = mpv.HydroState.rhoY0[nimage[y_axs]] + # rhoY = npf.HydroState.rhoY0[nimage[y_axs]] # Y = Sol.rhoY[nimage] / Sol.rho[nimage] - # rho = mpv.HydroState.rho0[nimage[y_axs]] + # rho = npf.HydroState.rho0[nimage[y_axs]] # direction == 1 is the bottom # if np.sign(direction) == 1: @@ -502,7 +502,7 @@ def get_bottom_tau_y(ud, elem, node, alpha, cutoff=0.5): def apply_rayleigh_forcing( Sol, - mpv, + npf, ud, elem, node, @@ -513,7 +513,7 @@ def apply_rayleigh_forcing( bdry, half=True, Sol_half_new=None, - mpv_half_new=None, + npf_half_new=None, ): """Apply Rayleigh forcing boundary condition (file or function based).""" if not (hasattr(ud, "rayleigh_forcing") and ud.rayleigh_forcing): @@ -524,19 +524,19 @@ def apply_rayleigh_forcing( if ud.rayleigh_forcing_type == "file": reader = io.read_input(ud.rayleigh_forcing_fn, ud.rayleigh_forcing_path) - if Sol_half_new is None or mpv_half_new is None: + if Sol_half_new is None or npf_half_new is None: Sol_half_new = copy.deepcopy(Sol) - mpv_half_new = copy.deepcopy(mpv) + npf_half_new = copy.deepcopy(npf) time_tag = "%.3d_after_full_step" % step - reader.get_data(Sol_half_new, mpv_half_new, time_tag, half=half) + reader.get_data(Sol_half_new, npf_half_new, time_tag, half=half) up = Sol_half_new.rhou / Sol_half_new.rho vp = Sol_half_new.rhov / Sol_half_new.rho - Yp = Sol_half_new.rhoY / Sol_half_new.rho - mpv.HydroState.Y0.reshape(1, -1) - pi = mpv_half_new.p2_nodes + Yp = Sol_half_new.rhoY / Sol_half_new.rho - npf.HydroState.Y0.reshape(1, -1) + pi = npf_half_new.p2_nodes - bdry.rayleigh_damping(Sol, mpv, ud, elem, node, [up, vp, Yp, pi, t + t_offset]) + bdry.rayleigh_damping(Sol, npf, ud, elem, node, [up, vp, Yp, pi, t + t_offset]) elif ud.rayleigh_forcing_type == "func": s = 5.0e-3 + 1e-4 + 0e-5 @@ -547,13 +547,13 @@ def apply_rayleigh_forcing( _, _, _, pi_n = ud.rf_bot.dehatter(th, grid="n") bdry.rayleigh_damping( - Sol, mpv, ud, elem, node, [up, vp, Yp, pi_n, t + t_offset] + Sol, npf, ud, elem, node, [up, vp, Yp, pi_n, t + t_offset] ) - bdry.set_explicit_boundary_data(Sol, elem, ud, th, mpv) + bdry.set_explicit_boundary_data(Sol, elem, ud, th, npf) -def rayleigh_damping(Sol, mpv, ud, elem, node, forcing=None): +def rayleigh_damping(Sol, npf, ud, elem, node, forcing=None): u = Sol.rhou / Sol.rho # [elem.i2] v = Sol.rhov / Sol.rho # [elem.i2] Y = Sol.rhoY / Sol.rho # [elem.i2] @@ -586,7 +586,7 @@ def rayleigh_damping(Sol, mpv, ud, elem, node, forcing=None): else: mfac = 1.0 - mpv.p2_nodes[...] += tny_f * (mpv.p2_nodes) + np.abs(tny_f) * mfac * pi_f + npf.p2_nodes[...] += tny_f * (npf.p2_nodes) + np.abs(tny_f) * mfac * pi_f c_f = 1.0 else: @@ -603,7 +603,7 @@ def rayleigh_damping(Sol, mpv, ud, elem, node, forcing=None): tcy_f * (v - ud.v_wind_speed) + np.abs(tcy_f) * mfac * v_f ) - Ybar = mpv.HydroState.Y0.reshape(1, -1) + Ybar = npf.HydroState.Y0.reshape(1, -1) Y += tcy * (Y - Ybar) + c_f * (tcy_f * (Y - Ybar) + np.abs(tcy_f) * mfac * Y_f) Sol.rhou[...] = rho * u diff --git a/src/pybella/flow_solver/utils/cache.py b/src/pybella/flow_solver/utils/cache.py index ad0d35d5..781d2c2d 100644 --- a/src/pybella/flow_solver/utils/cache.py +++ b/src/pybella/flow_solver/utils/cache.py @@ -48,11 +48,18 @@ def squeezer(self): class FlowSolverCache: """Cache for flow solver specific computations.""" + __slots__ = ( + "_recovery_cache", + "_velocity_cache", + "_coriolis_cache", + "_flux_cache", + ) def __init__(self): self._recovery_cache = {} self._velocity_cache = {} self._coriolis_cache = {} + self._flux_cache = {} def get_recovery_objects(self, shape, ud): """Get cached recovery objects or create new ones.""" @@ -63,8 +70,8 @@ def get_recovery_objects(self, shape, ud): self._recovery_cache[cache_key] = { "Diffs": Characters(shape), "Ampls": Characters(shape), - "Lefts": fields.States(shape, ud), - "Rights": fields.States(shape, ud), + "Lefts": fields.CellSolField(shape), + "Rights": fields.CellSolField(shape), "Slopes": Characters(shape), } @@ -135,8 +142,44 @@ def get_coriolis_array_views(self, shape, dtype=np.float64): cache_obj["h33"], cache_obj["denom"], ) + + def get_flux_containers(self, elem, dtype=np.float64): + """ + Get cached flux containers for each direction (States objects). + + Parameters + ---------- + elem : Grid + Grid object with `ndim`, `sfx`, `sfy`, `sfz` attributes. + ud : UserDefinedSettings + Used for instantiating States; its ID is part of the cache key. + + Returns + ------- + List[States] + List of directional flux containers, one per spatial dimension. + """ + ndim = elem.ndim + shape_key = ( + tuple(elem.sfx), # Use one representative shape + dtype, + ) + + if (ndim, shape_key) not in self._flux_cache: + logging.info("Cache: Creating new flux containers for ndim=%d, shape=%s", ndim, shape_key[0]) + flux = [None] * ndim + flux[0] = fields.CellSolField(elem.sfx) + if ndim > 1: + flux[1] = fields.CellSolField(elem.sfy) + if ndim > 2: + flux[2] = fields.CellSolField(elem.sfz) + self._flux_cache[(ndim, shape_key)] = flux + + return self._flux_cache[(ndim, shape_key)] def clear_all(self): """Clear all caches to free memory.""" self._recovery_cache.clear() self._velocity_cache.clear() + self._coriolis_cache.clear() + self._flux_cache.clear() diff --git a/src/pybella/flow_solver/utils/fields.py b/src/pybella/flow_solver/utils/fields.py index 0a861e31..16a8fc8e 100644 --- a/src/pybella/flow_solver/utils/fields.py +++ b/src/pybella/flow_solver/utils/fields.py @@ -9,14 +9,12 @@ class CellSolField(object): """ - def __init__(self, size, ud): + def __init__(self, size): """ Parameters ---------- size : tuple Tuple containing the number of cells in the respective directions including ghost cells, e.g. `(48,48,10)` has 48 cells in the x and y-directions, and 10 cells in the z-directions - ud : :class:`inputs.user_data.UserDataInit` - Data container for the initial conditions Attributes ---------- @@ -32,18 +30,21 @@ def __init__(self, size, ud): 2. `rhoX` has to be extended by `ud.nspec` for moist process. """ + # For eventual extension to support multiple species + nspec = 1 + self.rho = np.zeros((size)) self.rhou = np.zeros((size)) self.rhov = np.zeros((size)) self.rhow = np.zeros((size)) self.rhoY = np.zeros((size)) - self.rhoX = np.zeros(([ud.nspec] + list(size))) + self.rhoX = np.zeros(([nspec] + list(size))) self.u = np.zeros((size)) self.v = np.zeros((size)) self.w = np.zeros((size)) self.Y = np.zeros((size)) - self.X = np.zeros(([ud.nspec] + list(size))) + self.X = np.zeros(([nspec] + list(size))) self.p = np.zeros((size)) self.squeezer() @@ -122,7 +123,7 @@ class States(CellSolField): """ - def __init__(self, size, ud): + def __init__(self, size): """ Parameters ---------- @@ -136,7 +137,6 @@ def __init__(self, size, ud): Many variables in this data container are no longer used and can be removed. """ - super().__init__(size, ud) self.p0 = np.zeros((size)) self.p20 = np.zeros((size)) @@ -183,7 +183,7 @@ def get_S0c(self, elem): class NodePressureField(object): - def __init__(self, elem, node, ud): + def __init__(self, elem, node): sc = elem.sc sn = node.sc @@ -204,8 +204,8 @@ def __init__(self, elem, node, ud): self.wcenter = np.zeros((node.isc)) self.wplus = np.zeros(([elem.ndim] + list(sc))) - self.HydroState = States([sc[1]], ud) - self.HydroState_n = States([sn[1]], ud) + self.HydroState = States([sc[1]]) + self.HydroState_n = States([sn[1]]) self.squeezer() diff --git a/src/pybella/flow_solver/utils/prepare.py b/src/pybella/flow_solver/utils/prepare.py index ebfbb135..1aba0ee3 100644 --- a/src/pybella/flow_solver/utils/prepare.py +++ b/src/pybella/flow_solver/utils/prepare.py @@ -38,18 +38,10 @@ def initialise(): elem, node = dis_grid.grid_init(ud) - sol = fields.CellSolField(elem.sc, ud) - - # Move these to the FlowSolverCache - flux = np.empty((3), dtype=object) - flux[0] = fields.States(elem.sfx, ud) - if elem.ndim > 1: - flux[1] = fields.States(elem.sfy, ud) - if elem.ndim > 2: - flux[2] = fields.States(elem.sfz, ud) + sol = fields.CellSolField(elem.sc) th = gd_thermodynamics.ThermodynamicalQuantities(ud) - mpv = fields.NodePressureField(elem, node, ud) + npf = fields.NodePressureField(elem, node) io.init_logger(ud) @@ -74,19 +66,19 @@ def initialise(): # node=node, # Sol=Sol, # flux=flux, - # mpv=mpv, + # npf=npf, # th=th, # ) ensemble_state = data_structures.EnsembleState() - sol = sol_init(sol, mpv, elem, node, th, ud) + sol = sol_init(sol, npf, elem, node, th, ud) # Initialise cache and add to simulation state flow_cache = cache.FlowSolverCache() ensemble_state.update_member( - elem=elem, node=node, sol=sol, flux=flux, mpv=mpv, th=th, cache=flow_cache + elem=elem, node=node, sol=sol, npf=npf, th=th, cache=flow_cache ) restart_params = data_structures.RestartParameters( @@ -115,20 +107,20 @@ def overwrite_init_with_restart(sst): es = sst.ensemble_state rp = sst.restart_params - hydrostatics.state(es.mpv, es.elem, es.node, es.th, es.ud) + hydrostatics.state(es.npf, es.elem, es.node, es.th, es.ud) sst.ud.old_suffix = np.copy(sst.ud.output_suffix) sst.ud.old_suffix = "_ensemble=%i%s" % (sst.N, sst.ud.old_suffix) - Sol0, mpv0, touts = io.sim_restart( + Sol0, npf0, touts = io.sim_restart( rp.r_params[0], rp.r_params[1], es.elem, es.node, es.ud, es.Sol, - es.mpv, + es.npf, rp.r_params[2], ) - sol_ens = [[Sol0, es.flux, mpv0, [-np.inf, sst.step]]] + sol_ens = [[Sol0, es.flux, npf0, [-np.inf, sst.step]]] # ud.tout = touts[1:] sst.ud.tout = [touts[-1]] sst.t = touts[0] diff --git a/src/pybella/flow_solver/utils/solver_diagnostics.py b/src/pybella/flow_solver/utils/solver_diagnostics.py index 22983dcd..889545e7 100644 --- a/src/pybella/flow_solver/utils/solver_diagnostics.py +++ b/src/pybella/flow_solver/utils/solver_diagnostics.py @@ -3,7 +3,7 @@ def get_p_from_pressure_related_fields(mem, ud, psinc=False): - p2n = mem.mpv.p2_nodes + p2n = mem.npf.p2_nodes rhoY = mem.sol.rhoY dp2n = (p2n - p2n.mean()) * ud.Msq diff --git a/src/pybella/inputs/rising_bubble.py b/src/pybella/inputs/rising_bubble.py index 30e86cec..0a0eb1d7 100644 --- a/src/pybella/inputs/rising_bubble.py +++ b/src/pybella/inputs/rising_bubble.py @@ -38,7 +38,7 @@ def __init__(self): # self.output_suffix += '_w=%i-%i' %(self.blending_weight*16.0,16.0-(self.blending_weight*16.0)) -def sol_init(Sol, mpv, elem, node, th, ud, seed=None): +def sol_init(Sol, npf, elem, node, th, ud, seed=None): u0 = ud.u_wind_speed v0 = ud.v_wind_speed w0 = ud.w_wind_speed @@ -50,7 +50,7 @@ def sol_init(Sol, mpv, elem, node, th, ud, seed=None): g = ud.gravity_strength[1] # print(ud.rho_ref) - hydrostatics.state(mpv, elem, node, th, ud) + hydrostatics.state(npf, elem, node, th, ud) x = elem.x y = elem.y @@ -71,8 +71,8 @@ def sol_init(Sol, mpv, elem, node, th, ud, seed=None): r = np.sqrt((x) ** 2 + (y - y0) ** 2) / r0 - p = np.repeat(mpv.HydroState.p0.reshape(1, -1), elem.icx, axis=0) - rhoY = np.repeat(mpv.HydroState.rhoY0.reshape(1, -1), elem.icx, axis=0) + p = np.repeat(npf.HydroState.p0.reshape(1, -1), elem.icx, axis=0) + rhoY = np.repeat(npf.HydroState.rhoY0.reshape(1, -1), elem.icx, axis=0) perturbation = (delth / 300.0) * (np.cos(0.5 * np.pi * r) ** 2) perturbation[np.where(r > 1.0)] = 0.0 @@ -89,10 +89,10 @@ def sol_init(Sol, mpv, elem, node, th, ud, seed=None): Sol.rhow[x_idx, y_idx] = rho * w Sol.rhoY[x_idx, y_idx] = rhoY - p = mpv.HydroState_n.p0[0] - rhoY = mpv.HydroState_n.rhoY0[0] - mpv.p2_nodes[...] = (p - mpv.HydroState_n.p0[0]) / rhoY / ud.Msq + p = npf.HydroState_n.p0[0] + rhoY = npf.HydroState_n.rhoY0[0] + npf.p2_nodes[...] = (p - npf.HydroState_n.p0[0]) / rhoY / ud.Msq - bdry.set_explicit_boundary_data(Sol, elem, ud, th, mpv) + bdry.set_explicit_boundary_data(Sol, elem, ud, th, npf) return Sol diff --git a/src/pybella/interfaces/dynamics_blending/schemes.py b/src/pybella/interfaces/dynamics_blending/schemes.py index dc545eec..3c907cf8 100644 --- a/src/pybella/interfaces/dynamics_blending/schemes.py +++ b/src/pybella/interfaces/dynamics_blending/schemes.py @@ -55,8 +55,8 @@ def update_sol(self, mem, ud, sgn, label=None, writer=None): if writer != None: writer.write_all(mem, str(label) + "_before_blending") - Sol = mem.sol - mpv = mem.mpv + sol = mem.sol + npf = mem.npf th = mem.th if sgn == "bef": @@ -66,8 +66,8 @@ def update_sol(self, mem, ud, sgn, label=None, writer=None): else: assert 0, "sgn == bef or sgn == aft" - rho = np.copy(Sol.rho) - rhoY = np.copy(Sol.rhoY) + rho = np.copy(sol.rho) + rhoY = np.copy(sol.rhoY) Y = rhoY / rho @@ -76,32 +76,32 @@ def update_sol(self, mem, ud, sgn, label=None, writer=None): elif ud.blending_mean == "1.0": rhoYc = (1.0 + sign * self.fac * self.dp2c) ** (th.gm1inv) - alpha = rhoYc / Sol.rhoY + alpha = rhoYc / sol.rhoY if ud.blending_conv == "rho": ### keep theta, convert rho - Sol.rho[...] = rho * alpha - Sol.rhoY[...] = Sol.rho * Y + sol.rho[...] = rho * alpha + sol.rhoY[...] = sol.rho * Y - rho_fac = Sol.rho / rho - Sol.rhou[...] *= rho_fac - Sol.rhov[...] *= rho_fac - Sol.rhow[...] *= rho_fac - Sol.rhoX[...] *= rho_fac + rho_fac = sol.rho / rho + sol.rhou[...] *= rho_fac + sol.rhov[...] *= rho_fac + sol.rhow[...] *= rho_fac + sol.rhoX[...] *= rho_fac elif ud.blending_conv == "theta": ### keep rho, convert theta Yc = Y * alpha - Sol.rhoY[...] = rho * Yc - Sol.rhoX[...] = rho * (1.0 / Yc - mpv.HydroState.S0.reshape(1, -1)) + sol.rhoY[...] = rho * Yc + sol.rhoX[...] = rho * (1.0 / Yc - npf.HydroState.S0.reshape(1, -1)) else: assert 0, "ud.blending_conv undefined." if writer != None: writer.write_all(mem, str(label) + "_after_blending") - def update_p2n(self, mpv): - mpv.p2_nodes = self.dp2n + def update_p2n(self, npf): + npf.p2_nodes = self.dp2n ###################################################### @@ -111,10 +111,10 @@ def update_p2n(self, mpv): def do_comp_to_psinc_conv(mem, bld, ud, label, writer): logging.info("Converting COMP to PSINC") - dp2n = mem.mpv.p2_nodes + dp2n = mem.npf.p2_nodes bld.convert_p2n(dp2n) bld.update_sol(mem, ud, "bef", label=label, writer=writer) - bld.update_p2n(mem.mpv) + bld.update_p2n(mem.npf) return mem @@ -131,8 +131,8 @@ def do_psinc_to_comp_conv( from ...flow_solver.discretisation import time_update logging.info(f"Blending... step = {step}") - Sol_freeze = copy.deepcopy(mem.sol) - mpv_freeze = copy.deepcopy(mem.mpv) + sol_freeze = copy.deepcopy(mem.sol) + npf_freeze = copy.deepcopy(mem.npf) ret = time_update.do( mem, @@ -145,8 +145,8 @@ def do_psinc_to_comp_conv( fac_old = ud.blending_weight fac_new = 1.0 - fac_old - dp2n_0 = fac_new * ret.mpv.p2_nodes_half + fac_old * mpv_freeze.p2_nodes_half - dp2n_1 = fac_new * ret.mpv.p2_nodes + fac_old * mpv_freeze.p2_nodes + dp2n_0 = fac_new * ret.npf.p2_nodes_half + fac_old * npf_freeze.p2_nodes_half + dp2n_1 = fac_new * ret.npf.p2_nodes + fac_old * npf_freeze.p2_nodes if ud.blending_type == "half": dp2n = dp2n_0 @@ -157,12 +157,12 @@ def do_psinc_to_comp_conv( if writer != None: writer.populate( - str(label) + "_after_full_step", "p2_start", mpv_freeze.p2_nodes + str(label) + "_after_full_step", "p2_start", npf_freeze.p2_nodes ) if writer != None: - writer.populate(str(label) + "_after_full_step", "p2_end", ret.mpv.p2_nodes) - mem.Sol = Sol_freeze - mem.mpv = mpv_freeze + writer.populate(str(label) + "_after_full_step", "p2_end", ret.npf.p2_nodes) + mem.sol = sol_freeze + mem.npf = npf_freeze # elem, node, _, _, _, th, _ = mem @@ -171,7 +171,7 @@ def do_psinc_to_comp_conv( logging.info("Converting PSINC to COMP") bld.convert_p2n(dp2n) bld.update_sol(mem, ud, "aft", label=label, writer=writer) - bld.update_p2n(mem.mpv) + bld.update_p2n(mem.npf) # mem.time.step -= 1 # mem.time.window_step -= 1 @@ -184,16 +184,16 @@ def do_psinc_to_comp_conv( ###################################################### -def do_swe_to_lake_conv(Sol, mpv, elem, node, ud, th, writer, label, debug): +def do_swe_to_lake_conv(sol, npf, elem, node, ud, th, writer, label, debug): logging.info("swe to lake conversion...") - H1 = Sol.rho[ + H1 = sol.rho[ :, 2:-2:, ][:, 0, :] # setattr(ud,'mean_val',H1.mean()) - H10 = mpv.p2_nodes[:, 2:-2, :].mean(axis=1) + H10 = npf.p2_nodes[:, 2:-2, :].mean(axis=1) H10 -= H10.mean() # define 2D kernel @@ -209,34 +209,34 @@ def do_swe_to_lake_conv(Sol, mpv, elem, node, ud, th, writer, label, debug): H1 = np.repeat(H1, elem.icy, axis=1) setattr(ud, "mean_val", H1) - Sol.rhou[...] = Sol.rhou / Sol.rho * ud.mean_val - Sol.rhov[...] = Sol.rhov / Sol.rho * ud.mean_val - Sol.rhow[...] = Sol.rhow / Sol.rho * ud.mean_val - Sol.rhoY[...] = Sol.rhoY / Sol.rho * ud.mean_val - Sol.rho[...] = ud.mean_val + sol.rhou[...] = sol.rhou / sol.rho * ud.mean_val + sol.rhov[...] = sol.rhov / sol.rho * ud.mean_val + sol.rhow[...] = sol.rhow / sol.rho * ud.mean_val + sol.rhoY[...] = sol.rhoY / sol.rho * ud.mean_val + sol.rho[...] = ud.mean_val - # boundary.set_ghostnodes_p2(mpv.p2_nodes,node,ud) + # boundary.set_ghostnodes_p2(npf.p2_nodes,node,ud) if debug == True: - writer.write_all(Sol, mpv, elem, node, th, str(label) + "_after_swe_to_lake") + writer.write_all(sol, npf, elem, node, th, str(label) + "_after_swe_to_lake") def do_lake_to_swe_conv( - Sol, flux, mpv, elem, node, ud, th, writer, label, debug, step, window_step, t, dt + sol, flux, npf, elem, node, ud, th, writer, label, debug, step, window_step, t, dt ): from ...flow_solver.discretisation import time_update if debug == True: - writer.write_all(Sol, mpv, elem, node, th, str(label) + "_after_lake_time_step") + writer.write_all(sol, npf, elem, node, th, str(label) + "_after_lake_time_step") - Sol_freeze = copy.deepcopy(Sol) - mpv_freeze = copy.deepcopy(mpv) + sol_freeze = copy.deepcopy(sol) + npf_freeze = copy.deepcopy(npf) logging.info("doing lake-to-swe time-update...") ret = time_update.time_update( - Sol, + sol, flux, - mpv, + npf, t, t + dt, ud, @@ -252,8 +252,8 @@ def do_lake_to_swe_conv( fac_old = ud.blending_weight fac_new = 1.0 - fac_old - dp2n_0 = fac_new * ret[2].p2_nodes_half + fac_old * mpv_freeze.p2_nodes_half - dp2n_1 = fac_new * ret[2].p2_nodes + fac_old * mpv_freeze.p2_nodes + dp2n_0 = fac_new * ret[2].p2_nodes_half + fac_old * npf_freeze.p2_nodes_half + dp2n_1 = fac_new * ret[2].p2_nodes + fac_old * npf_freeze.p2_nodes if ud.blending_type == "half": dp2n = dp2n_0 @@ -262,12 +262,12 @@ def do_lake_to_swe_conv( else: assert 0, "incorrect ud.blending_type" - Sol = copy.deepcopy(Sol_freeze) - mpv = copy.deepcopy(mpv_freeze) + sol = copy.deepcopy(sol_freeze) + npf = copy.deepcopy(npf_freeze) - mpv.p2_nodes[...] = dp2n + npf.p2_nodes[...] = dp2n - H10 = mpv.p2_nodes[:, 2:-2, :].mean(axis=1) + H10 = npf.p2_nodes[:, 2:-2, :].mean(axis=1) logging.info("lake to swe conversion...") H10 -= H10.mean() @@ -285,70 +285,70 @@ def do_lake_to_swe_conv( H1 = np.repeat(H1, elem.icy, axis=1) H1 = ud.mean_val + ud.Msq * H1 - Sol.rho[...] = H1 - Sol.rhou[...] = Sol.rhou / ud.mean_val * Sol.rho - Sol.rhov[...] = Sol.rhov / ud.mean_val * Sol.rho - Sol.rhow[...] = Sol.rhow / ud.mean_val * Sol.rho - Sol.rhoY[...] = Sol.rhoY / ud.mean_val * Sol.rho + sol.rho[...] = H1 + sol.rhou[...] = sol.rhou / ud.mean_val * sol.rho + sol.rhov[...] = sol.rhov / ud.mean_val * sol.rho + sol.rhow[...] = sol.rhow / ud.mean_val * sol.rho + sol.rhoY[...] = sol.rhoY / ud.mean_val * sol.rho if debug == True: - writer.write_all(Sol, mpv, elem, node, th, str(label) + "_after_lake_to_swe") - return Sol, mpv + writer.write_all(sol, npf, elem, node, th, str(label) + "_after_lake_to_swe") + return sol, npf ###################################################### # Nonhydrostatic - Hydrostatic blending ###################################################### def do_nonhydro_to_hydro_conv( - Sol, flux, mpv, bld, elem, node, th, ud, label, writer, step, window_step, t, dt + sol, flux, npf, bld, elem, node, th, ud, label, writer, step, window_step, t, dt ): logging.info("nonhydrostatic to hydrostatic conversion...") - # bld.convert_p2n(mpv.p2_nodes) - # bld.update_Sol(Sol,elem,node,th,ud,mpv,'bef',label=label,writer=writer) - # Sol.rhov = Sol.rhov_half + # bld.convert_p2n(npf.p2_nodes) + # bld.update_sol(sol,elem,node,th,ud,npf,'bef',label=label,writer=writer) + # sol.rhov = sol.rhov_half - # Sol_tmp = deepcopy(Sol) + # sol_tmp = deepcopy(sol) # flux_tmp = deepcopy(flux) - # mpv_tmp = deepcopy(mpv) + # npf_tmp = deepcopy(npf) # nonhydro to hydro blending incomplete. - # ret = data.time_update(Sol,flux,mpv, t, t+1*dt, ud, elem, node, [0,0], th, bld=None, writer=None, debug=False) + # ret = data.time_update(sol,flux,npf, t, t+1*dt, ud, elem, node, [0,0], th, bld=None, writer=None, debug=False) - # Sol = Sol_tmp + # sol = sol_tmp # flux = flux_tmp - # mpv = mpv_tmp - # Sol = ret[0] + # npf = npf_tmp + # sol = ret[0] # flux = ret[1] - # mpv = ret[2] - # Sol = deepcopy(ret[0]) - # mpv = deepcopy(ret[2]) - # Sol.rhov[...] = Sol.rhov_half + # npf = ret[2] + # sol = deepcopy(ret[0]) + # npf = deepcopy(ret[2]) + # sol.rhov[...] = sol.rhov_half # t += 0.5*dt # t += 1*dt - return Sol, mpv, t + return sol, npf, t def do_hydro_to_nonhydro_conv( - Sol, flux, mpv, bld, elem, node, th, ud, label, writer, step, window_step, t, dt + sol, flux, npf, bld, elem, node, th, ud, label, writer, step, window_step, t, dt ): logging.info("hydrostatic to nonhydrostatic conversion...") logging.info(f"Blending... step = {step}") - # Sol_tmp = deepcopy(Sol) + # sol_tmp = deepcopy(sol) # flux_tmp = deepcopy(flux) - # mpv_tmp = deepcopy(mpv) + # npf_tmp = deepcopy(npf) - # ret = data.time_update(Sol,flux,mpv, t, t+dt, ud, elem, node, [0,step-1], th, bld=None, writer=None, debug=False) + # ret = data.time_update(sol,flux,npf, t, t+dt, ud, elem, node, [0,step-1], th, bld=None, writer=None, debug=False) - # Sol = Sol_tmp + # sol = sol_tmp # flux = flux_tmp - # mpv = mpv_tmp + # npf = npf_tmp # retv_half = ret[0].rhov_half / ret[0].rho_half # retv_full = ret[0].rhov / ret[0].rho - # solv_half = Sol.rhov_half / Sol.rho_half - # solv_full = Sol.rhov / Sol.rho + # solv_half = sol.rhov_half / sol.rho_half + # solv_full = sol.rhov / sol.rho # fac_full = 0.5 # fac_half = 1.0 - fac_full @@ -369,19 +369,19 @@ def do_hydro_to_nonhydro_conv( # if writer != None: writer.populate(str(label)+'_after_full_step', 'ret_half', ret[0].rhov_half) # if writer != None: writer.populate(str(label)+'_after_full_step', 'ret_full', ret[0].rhov) - # if writer != None: writer.populate(str(label)+'_after_full_step', 'solv_half', Sol.rhov_half) - # if writer != None: writer.populate(str(label)+'_after_full_step', 'solv_full', Sol.rhov) + # if writer != None: writer.populate(str(label)+'_after_full_step', 'solv_half', sol.rhov_half) + # if writer != None: writer.populate(str(label)+'_after_full_step', 'solv_full', sol.rhov) - # Sol.rhov = Sol.rho * (fac_full * solv_full + fac_half * retv_half) + # sol.rhov = sol.rho * (fac_full * solv_full + fac_half * retv_half) # if writer != None: writer.populate(str(label)+'_after_full_step', 'p2_end', ret[2].p2_nodes) - # fac_mpv_half = 0.5 - # fac_mpv_full = 1.0 - fac_mpv_half - # mpv.p2_nodes = fac_mpv_half * mpv.p2_nodes + fac_mpv_full * ret[2].p2_nodes + # fac_npf_half = 0.5 + # fac_npf_full = 1.0 - fac_npf_half + # npf.p2_nodes = fac_npf_half * npf.p2_nodes + fac_npf_full * ret[2].p2_nodes # dp2n = ret[2].p2_nodes_half # bld.convert_p2n(dp2n) - # bld.update_Sol(Sol,elem,node,th,ud,mpv,'aft',label=label,writer=writer) - # bld.update_p2n(Sol,mpv,node,th,ud) + # bld.update_sol(sol,elem,node,th,ud,npf,'aft',label=label,writer=writer) + # bld.update_p2n(sol,npf,node,th,ud) # ############################### @@ -394,23 +394,23 @@ def do_hydro_to_nonhydro_conv( # ) # writer.write_all(mem, str(label) + "_half_full") - # writer.populate(str(label) + "_ic", "pwchi", Sol.pwchi) + # writer.populate(str(label) + "_ic", "pwchi", sol.pwchi) # if test_hydrob == False: - # Sol = copy.deepcopy(Sol_half_old) - # # mpv = copy.deepcopy(mpv_half_old) + # sol = copy.deepcopy(sol_half_old) + # # npf = copy.deepcopy(npf_half_old) # logging.info(termcolor.colored("test_hydrob == False", "red")) # writer.write_all(mem, str(label) + "_quarter") - # writer.populate(str(label) + "_quarter", "pwchi", Sol.pwchi) + # writer.populate(str(label) + "_quarter", "pwchi", sol.pwchi) # logging.info("quarter dt = %.8f" % (dt * 0.5)) # ret = do( - # Sol_half_old, + # sol_half_old, # flux_half_old, - # mpv_half_old, + # npf_half_old, # dt - 0.5 * dt, # dt + 0.5 * dt, # ud, @@ -423,26 +423,26 @@ def do_hydro_to_nonhydro_conv( # debug=False, # ) - # Sol_tu = copy.deepcopy(ret[0]) - # # mpv_tu = copy.deepcopy(ret[2]) - # Sol.rho[...] = Sol_tu.rho_half - # Sol.rhou[...] = Sol_tu.rhou_half - # Sol.rhov[...] = Sol_tu.rhov_half - # Sol.rhow[...] = Sol_tu.rhow_half - # Sol.rhoX[...] = Sol_tu.rhoX_half - # Sol.rhoY[...] = Sol_tu.rhoY_half - # Sol.pwchi[...] = Sol_tu.pwchi + # sol_tu = copy.deepcopy(ret[0]) + # # npf_tu = copy.deepcopy(ret[2]) + # sol.rho[...] = sol_tu.rho_half + # sol.rhou[...] = sol_tu.rhou_half + # sol.rhov[...] = sol_tu.rhov_half + # sol.rhow[...] = sol_tu.rhow_half + # sol.rhoX[...] = sol_tu.rhoX_half + # sol.rhoY[...] = sol_tu.rhoY_half + # sol.pwchi[...] = sol_tu.pwchi - # # mpv.p2_nodes[...] = mpv_tu.p2_nodes_half + # # npf.p2_nodes[...] = npf_tu.p2_nodes_half # writer.write_all(mem, str(label) + "_half") - # writer.populate(str(label) + "_half", "pwchi", Sol.pwchi) + # writer.populate(str(label) + "_half", "pwchi", sol.pwchi) # ret = do( - # Sol, + # sol, # flux, - # mpv, + # npf, # dt, # 2.0 * dt, # ud, @@ -455,25 +455,25 @@ def do_hydro_to_nonhydro_conv( # debug=False, # ) - # Sol = copy.deepcopy(ret[0]) + # sol = copy.deepcopy(ret[0]) # flux = copy.deepcopy(ret[1]) - # mpv = copy.deepcopy(ret[2]) + # npf = copy.deepcopy(ret[2]) # if test_hydrob == True: - # Sol = copy.deepcopy(Sol_half_old) - # # mpv = copy.deepcopy(mpv_half_old) + # sol = copy.deepcopy(sol_half_old) + # # npf = copy.deepcopy(npf_half_old) # logging.info(termcolor.colored("test_hydrob == False", "red")) # writer.write_all(mem, str(label) + "_quarter") - # # writer.populate(str(label)+'_quarter', 'pwchi', Sol.pwchi) + # # writer.populate(str(label)+'_quarter', 'pwchi', sol.pwchi) # logging.info("quarter dt = %.8f" % (dt * 0.5)) # ret = do( - # Sol_half_old, + # sol_half_old, # flux_half_old, - # mpv_half_old, + # npf_half_old, # dt - 0.5 * dt, # dt + 0.5 * dt, # ud, @@ -486,26 +486,26 @@ def do_hydro_to_nonhydro_conv( # debug=False, # ) - # Sol_tu = copy.deepcopy(ret[0]) - # # mpv_tu = copy.deepcopy(ret[2]) - # Sol.rho[...] = Sol_tu.rho_half - # Sol.rhou[...] = Sol_tu.rhou_half - # Sol.rhov[...] = Sol_tu.rhov_half - # Sol.rhow[...] = Sol_tu.rhow_half - # Sol.rhoX[...] = Sol_tu.rhoX_half - # Sol.rhoY[...] = Sol_tu.rhoY_half - # Sol.pwchi[...] = Sol_tu.pwchi + # sol_tu = copy.deepcopy(ret[0]) + # # npf_tu = copy.deepcopy(ret[2]) + # sol.rho[...] = sol_tu.rho_half + # sol.rhou[...] = sol_tu.rhou_half + # sol.rhov[...] = sol_tu.rhov_half + # sol.rhow[...] = sol_tu.rhow_half + # sol.rhoX[...] = sol_tu.rhoX_half + # sol.rhoY[...] = sol_tu.rhoY_half + # sol.pwchi[...] = sol_tu.pwchi - # # mpv.p2_nodes[...] = mpv_tu.p2_nodes_half + # # npf.p2_nodes[...] = npf_tu.p2_nodes_half - # # writer.write_all(Sol,mpv,elem,node,th,str(label)+'_half') + # # writer.write_all(sol,npf,elem,node,th,str(label)+'_half') - # # writer.populate(str(label)+'_half', 'pwchi', Sol.pwchi) + # # writer.populate(str(label)+'_half', 'pwchi', sol.pwchi) # ret = do( - # Sol, + # sol, # flux, - # mpv, + # npf, # dt, # 2.0 * dt, # ud, @@ -518,11 +518,11 @@ def do_hydro_to_nonhydro_conv( # debug=False, # ) - # Sol = copy.deepcopy(ret[0]) + # sol = copy.deepcopy(ret[0]) # flux = copy.deepcopy(ret[1]) - # mpv = copy.deepcopy(ret[2]) - # # writer.write_all(Sol,mpv,elem,node,th,str(label)+'_half') - # # writer.populate(str(label)+'_half', 'pwchi', Sol.pwchi) + # npf = copy.deepcopy(ret[2]) + # # writer.write_all(sol,npf,elem,node,th,str(label)+'_half') + # # writer.populate(str(label)+'_half', 'pwchi', sol.pwchi) # logging.info(termcolor.colored("test_hydrob == True", "red")) @@ -531,7 +531,7 @@ def do_hydro_to_nonhydro_conv( # if c2: # ud.is_nonhydrostatic = 1 - return Sol, mpv + return sol, npf ###################################################### @@ -554,7 +554,7 @@ def blending_before_timestep( # Blending : Do full regime to limit regime conversion ###################################################### # do unpacking - elem, node, Sol, flux, mpv, th, _, _ = mem + elem, node, sol, npf, th, _, _ = mem # these make sure that we are the correct window step if bld is not None and window_step == 0: @@ -562,7 +562,7 @@ def blending_before_timestep( if (bld.bb or bld.cb) and ud.blending_conv is not None: # these distinguish between SWE and Euler blending if ud.blending_conv == "swe": - do_swe_to_lake_conv(Sol, mpv, elem, node, ud, th, writer, label, debug) + do_swe_to_lake_conv(sol, npf, elem, node, ud, th, writer, label, debug) swe_to_lake = True else: mem = do_comp_to_psinc_conv(mem, bld, ud, label, writer) @@ -605,10 +605,10 @@ def blending_before_timestep( ud.compressibility = 0.0 mem = do_comp_to_psinc_conv(mem, bld, ud, label, writer) elif bld.hydro_init > 0: - Sol, mpv, t = do_nonhydro_to_hydro_conv( - Sol, + sol, npf, t = do_nonhydro_to_hydro_conv( + sol, flux, - mpv, + npf, bld, elem, node, @@ -624,7 +624,7 @@ def blending_before_timestep( ud.is_nonhydrostatic = 0 ud.nonhydrostasy = 0.0 else: - do_swe_to_lake_conv(Sol, mpv, elem, node, ud, th, writer, label, debug) + do_swe_to_lake_conv(sol, npf, elem, node, ud, th, writer, label, debug) swe_to_lake = True ud.is_compressible = 0 ud.compressibility = 0.0 @@ -652,10 +652,10 @@ def blending_before_timestep( ud.initial_blending == True and step == ud.no_of_hy_initial and bld is not None ): if ud.blending_conv != "swe": - Sol, mpv = do_hydro_to_nonhydro_conv( - Sol, + sol, npf = do_hydro_to_nonhydro_conv( + sol, flux, - mpv, + npf, bld, elem, node, @@ -676,13 +676,12 @@ def blending_before_timestep( ud.is_nonhydrostatic = gd_eos.is_nonhydrostatic(ud, window_step) ud.nonhydrostasy = gd_eos.nonhydrostasy(ud, t, window_step) - return swe_to_lake, Sol, mpv, t + return swe_to_lake, sol, npf, t def blending_after_timestep( - Sol, - flux, - mpv, + sol, + npf, bld, elem, node, @@ -716,10 +715,10 @@ def blending_after_timestep( ): tmp_CFL = np.copy(ud.CFL) ud.CFL = 0.8 - Sol, mpv = do_lake_to_swe_conv( - Sol, + sol, npf = do_lake_to_swe_conv( + sol, flux, - mpv, + npf, elem, node, ud, @@ -736,7 +735,7 @@ def blending_after_timestep( ud.is_compressible = 1 ud.compressibility = 1.0 - return Sol, mpv + return sol, npf def prepare_blending( @@ -756,7 +755,7 @@ def prepare_blending( if check_and_apply_initial_hydrostatic_conversion(step, ud, bld): ud.is_nonhydrostatic = 0 - swe_to_lake, Sol, mpv, t = blending_before_timestep( + swe_to_lake, sol, npf, t = blending_before_timestep( mem, ud, bld, @@ -770,7 +769,7 @@ def prepare_blending( debug, ) - return swe_to_lake, Sol, mpv, t + return swe_to_lake, sol, npf, t def check_and_apply_initial_hydrostatic_conversion(step, ud, bld): diff --git a/src/pybella/tests/diagnostics.py b/src/pybella/tests/diagnostics.py index e7ab3c3a..92e1ccf0 100644 --- a/src/pybella/tests/diagnostics.py +++ b/src/pybella/tests/diagnostics.py @@ -79,7 +79,7 @@ def test_do(self, mem, ud): time_increment=self.time_increment, summed=False, ) - setattr(mem.mpv, attribute, data) + setattr(mem.npf, attribute, data) ref_data = self.__get_ens( tc, tp, @@ -87,7 +87,7 @@ def test_do(self, mem, ud): time_increment=self.time_increment, summed=False, ) - setattr(ref_mem.mpv, attribute, ref_data) + setattr(ref_mem.npf, attribute, ref_data) except Exception as e: raise AssertionError( f"test {self.current_run} has no target for comparison: {e}" @@ -182,7 +182,7 @@ def __plot_comparison(self, mem, ref_mem, ud): @staticmethod def __get_sol_for_comparison(mem, ud, attribute): Sol = mem.sol - mpv = mem.mpv + npf = mem.npf if attribute != "p2_nodes": test_sol = np.copy(getattr(Sol, attribute).T) if attribute != "rho": @@ -190,11 +190,11 @@ def __get_sol_for_comparison(mem, ud, attribute): test_sol /= rho # if attribute == 'rhoY': - # test_sol -= mpv.HydroState.Y0[:,np.newaxis] + # test_sol -= npf.HydroState.Y0[:,np.newaxis] else: - # test_sol = mpv.p2_nodes.T * ud.Msq - # test_sol -= mpv.HydroState_n.pi0[:,np.newaxis] + # test_sol = npf.p2_nodes.T * ud.Msq + # test_sol -= npf.HydroState_n.pi0[:,np.newaxis] test_sol = get_p_from_pressure_related_fields(mem, ud).T # pass diff --git a/src/pybella/tests/test_blending_warm_bubble.py b/src/pybella/tests/test_blending_warm_bubble.py index 104da5c9..a224b42b 100644 --- a/src/pybella/tests/test_blending_warm_bubble.py +++ b/src/pybella/tests/test_blending_warm_bubble.py @@ -71,7 +71,7 @@ def __init__(self): self.autogen_fn = False -def sol_init(Sol, mpv, elem, node, th, ud, seed=None): +def sol_init(Sol, npf, elem, node, th, ud, seed=None): u0 = ud.u_wind_speed v0 = ud.v_wind_speed w0 = ud.w_wind_speed @@ -80,7 +80,7 @@ def sol_init(Sol, mpv, elem, node, th, ud, seed=None): y0 = 0.2 r0 = 0.2 - hydrostatics.integrated_state(mpv, elem, node, th, ud) + hydrostatics.integrated_state(npf, elem, node, th, ud) x = elem.x y = elem.y @@ -89,8 +89,8 @@ def sol_init(Sol, mpv, elem, node, th, ud, seed=None): r = np.sqrt((x) ** 2 + (y - y0) ** 2) / r0 - p = np.repeat(mpv.HydroState.p0.reshape(1, -1), elem.icx, axis=0) - rhoY = mpv.HydroState.rhoY0[np.newaxis, :] + p = np.repeat(npf.HydroState.p0.reshape(1, -1), elem.icx, axis=0) + rhoY = npf.HydroState.rhoY0[np.newaxis, :] perturbation = (delth / 300.0) * (np.cos(0.5 * np.pi * r) ** 2) perturbation[np.where(r > 1.0)] = 0.0 @@ -107,10 +107,10 @@ def sol_init(Sol, mpv, elem, node, th, ud, seed=None): Sol.rhow[x_idx, y_idx] = rho * w Sol.rhoY[x_idx, y_idx] = rhoY - p = mpv.HydroState_n.p0 - rhoY = mpv.HydroState_n.rhoY0 - mpv.p2_nodes[...] = (p - mpv.HydroState_n.p0) / rhoY / ud.Msq + p = npf.HydroState_n.p0 + rhoY = npf.HydroState_n.rhoY0 + npf.p2_nodes[...] = (p - npf.HydroState_n.p0) / rhoY / ud.Msq - bdry.set_explicit_boundary_data(Sol, elem, ud, th, mpv) + bdry.set_explicit_boundary_data(Sol, elem, ud, th, npf) return Sol diff --git a/src/pybella/tests/test_internal_long_wave.py b/src/pybella/tests/test_internal_long_wave.py index 1df0776b..368dfeea 100644 --- a/src/pybella/tests/test_internal_long_wave.py +++ b/src/pybella/tests/test_internal_long_wave.py @@ -126,7 +126,7 @@ def rhoe_method(rho, u, v, w, p, ud, th): return p * gm1inv + 0.5 * Msq * rho * (u * u + v * v + w * w) -def sol_init(Sol, mpv, elem, node, th, ud, seeds=None): +def sol_init(Sol, npf, elem, node, th, ud, seeds=None): u0 = ud.u_wind_speed v0 = ud.v_wind_speed w0 = ud.w_wind_speed @@ -135,10 +135,10 @@ def sol_init(Sol, mpv, elem, node, th, ud, seeds=None): xc = 0.0 a = ud.scale_factor * 5.0e3 / ud.h_ref - hydrostatics.analytical_state(mpv, elem, node, th, ud) + hydrostatics.analytical_state(npf, elem, node, th, ud) - HySt = fields.States(node.sc, ud) - HyStn = fields.States(node.sc, ud) + HySt = fields.States(node.sc) + HyStn = fields.States(node.sc) x = elem.x.reshape(-1, 1) y = elem.y.reshape(1, -1) @@ -167,8 +167,8 @@ def sol_init(Sol, mpv, elem, node, th, ud, seeds=None): p = HySt.p0[:, y_idx][c_idx] rhoY = HySt.rhoY0[:, y_idx][c_idx] else: - p = mpv.HydroState.p0[y_idx] - rhoY = mpv.HydroState.rhoY0[y_idx] + p = npf.HydroState.p0[y_idx] + rhoY = npf.HydroState.rhoY0[y_idx] rho = rhoY / Y[:, y_idx] Sol.rho[x_idx, y_idx] = rho @@ -177,23 +177,23 @@ def sol_init(Sol, mpv, elem, node, th, ud, seeds=None): Sol.rhow[x_idx, y_idx] = rho * w Sol.rhoY[x_idx, y_idx] = rhoY - mpv.p2_cells[x_idx, y_idx] = HySt.p20[x_idx, y_idx][c_idx] + npf.p2_cells[x_idx, y_idx] = HySt.p20[x_idx, y_idx][c_idx] Sol.rhoX[x_idx, y_idx] = Sol.rho[x_idx, y_idx] * ( - 1.0 / Y[:, y_idx] - mpv.HydroState.S0[y_idx] + 1.0 / Y[:, y_idx] - npf.HydroState.S0[y_idx] ) - mpv.p2_nodes[:, elem.igy : -elem.igy] = HyStn.p20[:, elem.igy : -elem.igy] + npf.p2_nodes[:, elem.igy : -elem.igy] = HyStn.p20[:, elem.igy : -elem.igy] - hydrostatics.initial_pressure(Sol, mpv, elem, node, ud, th) + hydrostatics.initial_pressure(Sol, npf, elem, node, ud, th) ud.nonhydrostasy = 1.0 if ud.is_nonhydrostatic == 1 else 0.0 ud.compressibility = 1.0 if ud.is_compressible == 1 else 0.0 if "imbal" in ud.aux: - mpv.p2_nodes[...] = 0.0 + npf.p2_nodes[...] = 0.0 - bdry.set_explicit_boundary_data(Sol, elem, ud, th, mpv) + bdry.set_explicit_boundary_data(Sol, elem, ud, th, npf) return Sol diff --git a/src/pybella/tests/test_lamb_wave.py b/src/pybella/tests/test_lamb_wave.py index 7f8de448..e8a25f6b 100644 --- a/src/pybella/tests/test_lamb_wave.py +++ b/src/pybella/tests/test_lamb_wave.py @@ -227,7 +227,7 @@ def dehatter(self, th, grid="c"): return up.T, vp.T, Yp.T, pi_p.T -def sol_init(Sol, mpv, elem, node, th, ud, seeds=None): +def sol_init(Sol, npf, elem, node, th, ud, seeds=None): if hasattr(ud, "rayleigh_bdry_switch"): if ud.rayleigh_bdry_switch: ud.bdry_type[1] = opts.BdryType.RAYLEIGH @@ -256,13 +256,13 @@ def sol_init(Sol, mpv, elem, node, th, ud, seeds=None): ud.stratification = ud.stratification(dy) # Use hydrostatically balanced background - hydrostatics.analytical_state(mpv, elem, node, th, ud) - rhobar = mpv.HydroState.rho0.reshape(1, -1) - Ybar = mpv.HydroState.Y0.reshape(1, -1) - pibar = mpv.HydroState.p20.reshape(1, -1) * ud.Msq + hydrostatics.analytical_state(npf, elem, node, th, ud) + rhobar = npf.HydroState.rho0.reshape(1, -1) + Ybar = npf.HydroState.Y0.reshape(1, -1) + pibar = npf.HydroState.p20.reshape(1, -1) * ud.Msq - rhobar_n = mpv.HydroState_n.rho0.reshape(1, -1) - Ybar_n = mpv.HydroState_n.Y0.reshape(1, -1) + rhobar_n = npf.HydroState_n.rho0.reshape(1, -1) + Ybar_n = npf.HydroState_n.Y0.reshape(1, -1) ################################################## # dimensionless Brunt-Väisälä frequency @@ -303,16 +303,16 @@ def sol_init(Sol, mpv, elem, node, th, ud, seeds=None): Sol.rhow[...] = rho * w Sol.rhoY[...] = rho * Y Sol.rhoX[...] = 0.0 - mpv.p2_cells[...] = pi_p + npf.p2_cells[...] = pi_p ################################################### # initialise nodal pi ud.rf_bot.eigenfunction(0, 1, grid="n") _, _, _, pi_n = ud.rf_bot.dehatter(th, grid="n") - mpv.p2_nodes[...] = pi_n + npf.p2_nodes[...] = pi_n - bdry.set_explicit_boundary_data(Sol, elem, ud, th, mpv) + bdry.set_explicit_boundary_data(Sol, elem, ud, th, npf) if hasattr(ud, "mixed_run"): if ud.mixed_run: diff --git a/src/pybella/tests/test_travelling_vortex.py b/src/pybella/tests/test_travelling_vortex.py index 94ea65a8..a29c1df7 100644 --- a/src/pybella/tests/test_travelling_vortex.py +++ b/src/pybella/tests/test_travelling_vortex.py @@ -94,7 +94,7 @@ def rhoe_function(self, rho, u, v, w, p, ud, th): return p * gm1inv + 0.5 * Msq * rho * (u**2 + v**2 + w**2) -def sol_init(Sol, mpv, elem, node, th, ud, seed=None): +def sol_init(Sol, npf, elem, node, th, ud, seed=None): u0 = ud.u_wind_speed v0 = ud.v_wind_speed w0 = 0.0 @@ -134,7 +134,7 @@ def sol_init(Sol, mpv, elem, node, th, ud, seed=None): igxn = node.igx igyn = node.igy - hydrostatics.integrated_state(mpv, elem, node, th, ud) + hydrostatics.integrated_state(npf, elem, node, th, ud) coe = np.zeros((25)) coe[0] = 1.0 / 24.0 @@ -195,8 +195,8 @@ def sol_init(Sol, mpv, elem, node, th, ud, seed=None): u = u0 + uth * (-(ys - yccs) / r) v = v0 + uth * (+(xs - xccs) / r) w = w0 - p_hydro = mpv.HydroState.p0[igy:-igy] - rhoY = mpv.HydroState.rhoY0[igy:-igy] + p_hydro = npf.HydroState.p0[igy:-igy] + rhoY = npf.HydroState.rhoY0[igy:-igy] rho = np.zeros_like(r) rho[...] += (rho0 + del_rho * (1.0 - (r / R0) ** 2) ** 6) * (r < R0) @@ -244,11 +244,11 @@ def sol_init(Sol, mpv, elem, node, th, ud, seed=None): # Sol.rhoe[:,igy:-igy] = ud.rhoe(rho,u,v,w,p_hydro,ud,th) Sol.rhoY[:, igy:-igy] = rhoY - mpv.p2_cells[:, igy:-igy] = ( - th.Gamma * fac**2 * np.divide(p2c, mpv.HydroState.rhoY0[igy:-igy]) + npf.p2_cells[:, igy:-igy] = ( + th.Gamma * fac**2 * np.divide(p2c, npf.HydroState.rhoY0[igy:-igy]) ) - bdry.set_ghostcells_p2(mpv.p2_cells, elem, ud) + bdry.set_ghostcells_p2(npf.p2_cells, elem, ud) xs = node.x[igxn:-igxn].reshape(-1, 1) ys = node.y[igyn:-igyn].reshape(1, -1) @@ -264,32 +264,32 @@ def sol_init(Sol, mpv, elem, node, th, ud, seed=None): r = np.sqrt((xs - xccs) ** 2 + (ys - yccs) ** 2) for ip in range(25): - mpv.p2_nodes[igxn:-igxn, igyn:-igyn] += ( + npf.p2_nodes[igxn:-igxn, igyn:-igyn] += ( alpha * coe[ip] * ((r / R0) ** (12 + ip) - 1.0) * rotdir**2 ) for ip in range(13): - mpv.p2_nodes[igxn:-igxn, igyn:-igyn] += ( + npf.p2_nodes[igxn:-igxn, igyn:-igyn] += ( alpha_const * const_coe[ip] * ((r / R0) ** (12 + ip) - 1.0) * rotdir**2 ) - mpv.p2_nodes[igxn:-igxn, igyn:-igyn] *= r / R0 < 1.0 + npf.p2_nodes[igxn:-igxn, igyn:-igyn] *= r / R0 < 1.0 - mpv.p2_nodes[igxn:-igxn, igyn:-igyn] = ( + npf.p2_nodes[igxn:-igxn, igyn:-igyn] = ( th.Gamma * fac**2 * np.divide( - mpv.p2_nodes[igxn:-igxn, igyn:-igyn], mpv.HydroState.rhoY0[igyn : -igyn + 1] + npf.p2_nodes[igxn:-igxn, igyn:-igyn], npf.HydroState.rhoY0[igyn : -igyn + 1] ) ) ud.nonhydrostasy = float(ud.is_nonhydrostatic) ud.compressibility = float(ud.is_compressible) - bdry.set_explicit_boundary_data(Sol, elem, ud, th, mpv) + bdry.set_explicit_boundary_data(Sol, elem, ud, th, npf) if "imbal" in ud.aux: Sol.rhoY[...] = 1.0 - mpv.p2_nodes[...] = 0.0 + npf.p2_nodes[...] = 0.0 if ud.initial_projection == True: is_compressible = np.copy(ud.is_compressible) @@ -297,14 +297,14 @@ def sol_init(Sol, mpv, elem, node, th, ud, seed=None): ud.is_compressible = 0 ud.compressibility = 0.0 - p2aux = np.copy(mpv.p2_nodes) + p2aux = np.copy(npf.p2_nodes) Sol.rhou -= u0 * Sol.rho Sol.rhov -= v0 * Sol.rho mem = obj() mem.sol = Sol - mem.mpv = mpv + mem.npf = npf mem.elem = elem mem.node = node mem.th = th @@ -317,8 +317,8 @@ def sol_init(Sol, mpv, elem, node, th, ud, seed=None): mem, ud, ud.dtfixed, writer=None, label="initial_projection" ) - mpv.p2_nodes[...] = p2aux - mpv.dp2_nodes[...] = 0.0 + npf.p2_nodes[...] = p2aux + npf.dp2_nodes[...] = 0.0 Sol.rhou += u0 * Sol.rho Sol.rhov += v0 * Sol.rho diff --git a/src/pybella/tests/test_unstable_lamb.py b/src/pybella/tests/test_unstable_lamb.py index 54dfb078..0030493e 100644 --- a/src/pybella/tests/test_unstable_lamb.py +++ b/src/pybella/tests/test_unstable_lamb.py @@ -263,7 +263,7 @@ def dehatter(self, th, grid="c"): return up.T, vp.T, Yp.T, pi_p.T -def sol_init(Sol, mpv, elem, node, th, ud, seeds=None): +def sol_init(Sol, npf, elem, node, th, ud, seeds=None): if hasattr(ud, "rayleigh_bdry_switch"): if ud.rayleigh_bdry_switch: ud.bdry_type[1] = opts.BdryType.RAYLEIGH @@ -297,13 +297,13 @@ def sol_init(Sol, mpv, elem, node, th, ud, seeds=None): ud.stratification = ud.stratification(dy) # Use hydrostatically balanced background - hydrostatics.analytical_state(mpv, elem, node, th, ud) - rhobar = mpv.HydroState.rho0.reshape(1, -1) - Ybar = mpv.HydroState.Y0.reshape(1, -1) - pibar = mpv.HydroState.p20.reshape(1, -1) * ud.Msq + hydrostatics.analytical_state(npf, elem, node, th, ud) + rhobar = npf.HydroState.rho0.reshape(1, -1) + Ybar = npf.HydroState.Y0.reshape(1, -1) + pibar = npf.HydroState.p20.reshape(1, -1) * ud.Msq - rhobar_n = mpv.HydroState_n.rho0.reshape(1, -1) - Ybar_n = mpv.HydroState_n.Y0.reshape(1, -1) + rhobar_n = npf.HydroState_n.rho0.reshape(1, -1) + Ybar_n = npf.HydroState_n.Y0.reshape(1, -1) ################################################## # dimensionless Brunt-Väisälä frequency @@ -345,16 +345,16 @@ def sol_init(Sol, mpv, elem, node, th, ud, seeds=None): Sol.rhow[...] = rho * w Sol.rhoY[...] = rho * Y Sol.rhoX[...] = 0.0 - mpv.p2_cells[...] = pi_p + npf.p2_cells[...] = pi_p ################################################### # initialise nodal pi ud.rf_bot.eigenfunction(0, 1, grid="n") _, _, _, pi_n = ud.rf_bot.dehatter(th, grid="n") - mpv.p2_nodes[...] = pi_n + npf.p2_nodes[...] = pi_n - bdry.set_explicit_boundary_data(Sol, elem, ud, th, mpv) + bdry.set_explicit_boundary_data(Sol, elem, ud, th, npf) if hasattr(ud, "mixed_run"): if ud.mixed_run: diff --git a/src/pybella/utils/data_structures.py b/src/pybella/utils/data_structures.py index 9aefdde9..6b9fae8a 100644 --- a/src/pybella/utils/data_structures.py +++ b/src/pybella/utils/data_structures.py @@ -19,8 +19,7 @@ class ModelState: elem: Grid node: Grid sol: CellSolField - flux: List[States] - mpv: NodePressureField + npf: NodePressureField th: ThermodynamicalQuantities cache: FlowSolverCache = field(default_factory=FlowSolverCache) time: IntegrationTime = field(init=False) @@ -69,14 +68,13 @@ def update_member( elem: Grid, node: Grid, sol: CellSolField, - mpv: NodePressureField, - flux: List[CellSolField], + npf: NodePressureField, th: ThermodynamicalQuantities, cache: Optional[FlowSolverCache] = None, ): if cache is None: cache = FlowSolverCache() - new_state = ModelState(elem, node, sol, flux, mpv, th, cache) + new_state = ModelState(elem, node, sol, npf, th, cache) self.members.append(new_state) def set_members(self, members: List[ModelState]): diff --git a/src/pybella/utils/io.py b/src/pybella/utils/io.py index 68cdeba7..c8960d50 100644 --- a/src/pybella/utils/io.py +++ b/src/pybella/utils/io.py @@ -162,13 +162,13 @@ def io_create_file(self, paths, restart): def write_all(self, model_state, name): """ - At a given time, write output from `Sol` and `mpv` to the HDF5 file. + At a given time, write output from `Sol` and `npf` to the HDF5 file. Parameters ---------- Sol : :class:`management.variable.Vars` Solution data container - mpv : :class:`physics.low_mach.mpv.MPV` + npf : :class:`physics.low_mach.npf.MPV` Variables relating to the elliptic solver elem : :class:`discretization.kgrid.ElemSpaceDiscr` Cells grid @@ -182,7 +182,7 @@ def write_all(self, model_state, name): """ Sol = model_state.sol - mpv = model_state.mpv + npf = model_state.npf logging.info("writing hdf output..." + name) # rho @@ -196,7 +196,7 @@ def write_all(self, model_state, name): self.populate(name, "rhow", Sol.rhow) self.populate(name, "rhoX", Sol.rhoX) - self.populate(name, "p2_nodes", mpv.p2_nodes) + self.populate(name, "p2_nodes", npf.p2_nodes) # vorticity in (x,z) # self.populate(name,'vortz', self.vortz(Sol,elem,node)) @@ -357,11 +357,11 @@ def vorty(self, Sol, elem, node): vortz[1:-1, :, 1:-1] = tmp return vortz - def dpress_dim(self, mpv, ud, th): - p0 = th.Gamma * ud.Msq * mpv.p2_cells + def dpress_dim(self, npf, ud, th): + p0 = th.Gamma * ud.Msq * npf.p2_cells p = np.power(p0, th.Gammainv, dtype=np.complex) p = p.real - return (p - mpv.HydroState.p0[0, :]) * self.ud.p_ref + return (p - npf.HydroState.p0[0, :]) * self.ud.p_ref def populate(self, name, path, data, options=None): """ @@ -476,7 +476,7 @@ def __init__(self, fn, path): self.fn = fn self.path = path - def get_data(self, Sol, mpv, time_tag, half=False): + def get_data(self, Sol, npf, time_tag, half=False): file = h5py.File(self.path + "/" + self.fn, "r") if half: @@ -490,7 +490,7 @@ def get_data(self, Sol, mpv, time_tag, half=False): Sol.rhow[...] = file["rhow" + half_tag]["rhow" + half_tag + "_" + time_tag][:] Sol.rhoY[...] = file["rhoY" + half_tag]["rhoY" + half_tag + "_" + time_tag][:] - mpv.p2_nodes[...] = file["p2_nodes" + half_tag][ + npf.p2_nodes[...] = file["p2_nodes" + half_tag][ "p2_nodes" + half_tag + "_" + time_tag ][:] @@ -603,7 +603,7 @@ def get_args(): return N, UserData, sol_init, rstrt, ud, dap, params -def sim_restart(path, name, elem, node, ud, Sol, mpv, restart_touts): +def sim_restart(path, name, elem, node, ud, Sol, npf, restart_touts): """ Function to restart simulation from a saved file. Dataset has to be structured in the same way as the output format of this file. @@ -616,7 +616,7 @@ def sim_restart(path, name, elem, node, ud, Sol, mpv, restart_touts): file = h5py.File(str(path), "r") Sol_data = ["rho", "rhou", "rhov", "rhow", "rhoX", "rhoY"] - mpv_data = ["p2_nodes"] + npf_data = ["p2_nodes"] for data in Sol_data: value = file[data][data + name][:] @@ -628,14 +628,14 @@ def sim_restart(path, name, elem, node, ud, Sol, mpv, restart_touts): else: assert 0, "Sol attribute mismatch" - for data in mpv_data: + for data in npf_data: value = file[data][data + name][:] - if hasattr(mpv, data): - shp = getattr(mpv, data).shape - setattr(mpv, data, value) - assert getattr(mpv, data).shape == shp + if hasattr(npf, data): + shp = getattr(npf, data).shape + setattr(npf, data, value) + assert getattr(npf, data).shape == shp else: - assert 0, "mpv attribute mismatch" + assert 0, "npf attribute mismatch" t = restart_touts @@ -648,7 +648,7 @@ def sim_restart(path, name, elem, node, ud, Sol, mpv, restart_touts): ) file.close() - return Sol, mpv, t + return Sol, npf, t def fn_gen(ud, dap, N): diff --git a/src/pybella/utils/operators/laplacian/lap2D_manual.py b/src/pybella/utils/operators/laplacian/lap2D_manual.py index ea8b348d..a17d4d4b 100644 --- a/src/pybella/utils/operators/laplacian/lap2D_manual.py +++ b/src/pybella/utils/operators/laplacian/lap2D_manual.py @@ -3,7 +3,7 @@ from ... import options as opts -def get_linop(mpv, node, coriolis, diag_inv, ud): +def get_linop(npf, node, coriolis, diag_inv, ud): dx = node.dx dy = node.dy @@ -20,9 +20,9 @@ def get_linop(mpv, node, coriolis, diag_inv, ud): coeff_slc = (slice(1, -1), slice(1, -1)) # Coefficient extraction - hplusx = np.ravel(mpv.wplus[0][coeff_slc], order="F") - hplusy = np.ravel(mpv.wplus[1][coeff_slc], order="F") - hcenter = np.ravel(mpv.wcenter[node.i1], order="F") + hplusx = np.ravel(npf.wplus[0][coeff_slc], order="F") + hplusy = np.ravel(npf.wplus[1][coeff_slc], order="F") + hcenter = np.ravel(npf.wcenter[node.i1], order="F") # Coriolis terms cxx = np.ravel(coriolis[0][cor_slc], order="C") diff --git a/src/pybella/utils/operators/laplacian/lap2D_numba.py b/src/pybella/utils/operators/laplacian/lap2D_numba.py index 21f06e82..314f152d 100644 --- a/src/pybella/utils/operators/laplacian/lap2D_numba.py +++ b/src/pybella/utils/operators/laplacian/lap2D_numba.py @@ -3,13 +3,13 @@ from ... import options as opts -def get_linop(mpv, node, coriolis, diag_inv, ud): +def get_linop(npf, node, coriolis, diag_inv, ud): dx = node.dx dy = node.dy - hplusx = mpv.wplus[0] - hplusy = mpv.wplus[1] - hcenter = mpv.wcenter + hplusx = npf.wplus[0] + hplusy = npf.wplus[1] + hcenter = npf.wcenter coeffs = [hplusx.T, hplusy.T, hcenter.T] diff --git a/src/pybella/utils/operators/laplacian/lap3D.py b/src/pybella/utils/operators/laplacian/lap3D.py index 840b5375..5cd492f0 100644 --- a/src/pybella/utils/operators/laplacian/lap3D.py +++ b/src/pybella/utils/operators/laplacian/lap3D.py @@ -1,7 +1,7 @@ import numba as nb -def get_linop(elem, node, mpv, ud, diag_inv, dt): +def get_linop(elem, node, npf, ud, diag_inv, dt): oodxyz = node.dxyz oodxyz = 1.0 / (oodxyz**2) oodx2, oody2, oodz2 = oodxyz[0], oodxyz[1], oodxyz[2] @@ -16,11 +16,11 @@ def get_linop(elem, node, mpv, ud, diag_inv, dt): for dim in range(ndim): periodicity[dim] = ud.bdry_type[dim] == opts.BdryType.PERIODIC - hplusx = mpv.wplus[0][i0][i1] - hplusy = mpv.wplus[1][i0][i1] - hplusz = mpv.wplus[2][i0][i1] + hplusx = npf.wplus[0][i0][i1] + hplusy = npf.wplus[1][i0][i1] + hplusz = npf.wplus[2][i0][i1] - hcenter = mpv.wcenter[i2] + hcenter = npf.wcenter[i2] diag_inv = diag_inv[i1] corrf = dt * ud.coriolis_strength[0] diff --git a/src/pybella/utils/operators/laplacian/preconditioner.py b/src/pybella/utils/operators/laplacian/preconditioner.py index e85d0c02..3a6045b6 100644 --- a/src/pybella/utils/operators/laplacian/preconditioner.py +++ b/src/pybella/utils/operators/laplacian/preconditioner.py @@ -1,7 +1,7 @@ from .. import convolution -def prepare_diag(mpv, node): +def prepare_diag(npf, node): """Highly optimized version with minimal function calls.""" ndim = node.ndim @@ -14,18 +14,18 @@ def prepare_diag(mpv, node): diag_kernel = convolution.get_averaging_kernel(ndim, width=2) - diag = mpv.wcenter.copy() + diag = npf.wcenter.copy() # Main diagonal terms diag -= ( coeff * inv_dx2 - * convolution.apply_convolution_kernel(mpv.wplus[0], diag_kernel) + * convolution.apply_convolution_kernel(npf.wplus[0], diag_kernel) ) diag -= ( coeff * inv_dy2 - * convolution.apply_convolution_kernel(mpv.wplus[1], diag_kernel) + * convolution.apply_convolution_kernel(npf.wplus[1], diag_kernel) ) if ndim == 2: @@ -34,19 +34,19 @@ def prepare_diag(mpv, node): diag -= ( coeff * inv_dxdy - * convolution.apply_convolution_kernel(mpv.wplus[0], diag_kernel) + * convolution.apply_convolution_kernel(npf.wplus[0], diag_kernel) ) diag -= ( coeff * inv_dxdy - * convolution.apply_convolution_kernel(mpv.wplus[1], diag_kernel) + * convolution.apply_convolution_kernel(npf.wplus[1], diag_kernel) ) elif ndim == 3: inv_dz2 = 1.0 / (dz**2) diag -= ( coeff * inv_dz2 - * convolution.apply_convolution_kernel(mpv.wplus[2], diag_kernel) + * convolution.apply_convolution_kernel(npf.wplus[2], diag_kernel) ) return 1.0 / diag From 18e503e723320730c9b03e4f6727868e2cfded64 Mon Sep 17 00:00:00 2001 From: raychew Date: Tue, 17 Jun 2025 19:42:35 -0700 Subject: [PATCH 25/35] first steps into further optimising the advection routine --- .../explicit_advection/compute_advection.py | 61 +++++++++++++++---- .../numerics/explicit_advection/recovery.py | 3 +- 2 files changed, 49 insertions(+), 15 deletions(-) diff --git a/src/pybella/flow_solver/numerics/explicit_advection/compute_advection.py b/src/pybella/flow_solver/numerics/explicit_advection/compute_advection.py index 2edcf313..4d38bad3 100644 --- a/src/pybella/flow_solver/numerics/explicit_advection/compute_advection.py +++ b/src/pybella/flow_solver/numerics/explicit_advection/compute_advection.py @@ -1,3 +1,5 @@ +import numba as nb + from ....utils.slices import get_neighbor_indices from ...utils import boundary as bdry from . import recovery, riemann_solver @@ -76,36 +78,33 @@ def _explicit_step_and_flux(mem, ud, lmbda, split_step, tag=None): This function updates the solution `Sol` container in-place if a Strang-splitting is used, or returns the `flux` data container if a Runge-Kutta method is used. """ - flux = _compute_flux_and_recovery(mem, ud, lmbda, split_step, tag) + bdry.set_explicit_boundary_data( + mem.sol, mem.elem, ud, mem.th, mem.npf, step=split_step + ) - # Cache neighbor indices (consider moving this to initialization if called frequently) + flux = mem.cache.get_flux_containers(mem.elem)[split_step] + + flux = _compute_flux_and_recovery(mem, flux, ud, lmbda, split_step, tag) + + # Consider caching neighbor indices left_idx, right_idx = get_neighbor_indices(mem.elem.ndim) if tag != "rk": _update_solution_variables(mem.sol, flux, lmbda, left_idx, right_idx) - bdry.set_explicit_boundary_data( - mem.sol, mem.elem, ud, mem.th, mem.npf, step=split_step - ) - if tag == "rk": return flux -def _compute_flux_and_recovery(mem, ud, lmbda, split_step, tag=None): +def _compute_flux_and_recovery(mem, flux, ud, lmbda, split_step, tag=None): """ Helper function to compute flux using gradient recovery and HLL solver. Returns: flux: Computed flux container """ - flux = mem.cache.get_flux_containers(mem.elem)[split_step] - bdry.set_explicit_boundary_data( - mem.sol, mem.elem, ud, mem.th, mem.npf, step=split_step - ) - - Lefts, Rights = recovery.compute(mem, ud, lmbda, split_step, tag) + Lefts, Rights = recovery.compute(mem, flux, ud, lmbda, split_step, tag) flux = riemann_solver.hll(mem, flux, Lefts, Rights) @@ -151,3 +150,39 @@ def _perform_dimensional_sweep(mem, ud, time_step, reverse=False, diagnostics=No Sol.flip_forward() if elem.iisc[split] > 1: _explicit_step_and_flux(mem, ud, lmbda, split, diagnostics) + + +# def _update_solution_variables(sol, flux, lmbda, left_idx, right_idx, variables=None): +# """ +# Wrapper to update solution variables using JIT-compiled array math. +# """ +# if variables is None: +# variables = ["rho", "rhou", "rhov", "rhow", "rhoX", "rhoY"] + +# sol_arrays = [getattr(sol, var) for var in variables] +# flux_arrays = [getattr(flux, var) for var in variables] + +# _update_solution_arrays_jit(sol_arrays, flux_arrays, lmbda, left_idx, right_idx) + + +# @nb.njit(cache=True) +# def _update_solution_arrays_jit( +# sol_vars, flux_vars, lmbda, left_idx, right_idx +# ): +# """ +# Vectorized update of solution variables using pre-extracted arrays. + +# Parameters +# ---------- +# sol_vars : List[np.ndarray] +# Solution arrays (e.g., sol.rho, sol.rhou, ...) +# flux_vars : List[np.ndarray] +# Corresponding flux arrays (e.g., flux.rho, flux.rhou, ...) +# lmbda : float +# CFL-like prefactor +# left_idx, right_idx : Tuple of index arrays +# Indices into inner cells (e.g., from `get_interface_indices`) +# """ +# for i in range(len(sol_vars)): +# flux_diff = flux_vars[i][left_idx] - flux_vars[i][right_idx] +# sol_vars[i][...] += lmbda * flux_diff \ No newline at end of file diff --git a/src/pybella/flow_solver/numerics/explicit_advection/recovery.py b/src/pybella/flow_solver/numerics/explicit_advection/recovery.py index d24863d5..9e2b82ae 100644 --- a/src/pybella/flow_solver/numerics/explicit_advection/recovery.py +++ b/src/pybella/flow_solver/numerics/explicit_advection/recovery.py @@ -5,12 +5,11 @@ from ....utils.slices import get_neighbor_indices, get_interface_indices -def compute(mem, ud, lmbda, split_step, tag=None): +def compute(mem, flux, ud, lmbda, split_step, tag=None): """ Reconstruct the limited slopes at the cell interfaces. """ - flux = mem.cache.get_flux_containers(mem.elem)[split_step] gamm = mem.th.gamm order_two = 1 # always 1 From af5173759354d2d4eca67233854d46c7d7b2fbeb Mon Sep 17 00:00:00 2001 From: raychew Date: Tue, 17 Jun 2025 19:48:23 -0700 Subject: [PATCH 26/35] cleaned up utils.boundary.py --- src/pybella/flow_solver/utils/boundary.py | 103 ---------------------- 1 file changed, 103 deletions(-) diff --git a/src/pybella/flow_solver/utils/boundary.py b/src/pybella/flow_solver/utils/boundary.py index 06b48c66..426b78cf 100644 --- a/src/pybella/flow_solver/utils/boundary.py +++ b/src/pybella/flow_solver/utils/boundary.py @@ -54,8 +54,6 @@ def set_explicit_boundary_data(Sol, elem, ud, th, npf, step=None): set_boundary(Sol, ghost_padding, "symmetric", idx, step=None) elif ud.bdry_type[current_step] == opts.BdryType.RAYLEIGH: assert 0, "Rayleigh boundary not defined on x-direction." - # set_boundary(Sol,((0,0),(0,2)),'constant',(slice(None,),slice(0,-2)),step=None) - # set_boundary(Sol,((0,0),(2,0)),'symmetric',(slice(None,),slice(2,None)),step=None) else: # get current axis that has gravity. @@ -129,19 +127,8 @@ def set_explicit_boundary_data(Sol, elem, ud, th, npf, step=None): w = Sol.rhow[nsource] / Sol.rho[nsource] X = Sol.rhoX[nsource] / Sol.rho[nsource] - # p = rhoY**th.gamm - - # rhoY = npf.HydroState.rhoY0[nimage[y_axs]] - # Y = Sol.rhoY[nimage] / Sol.rho[nimage] - # rho = npf.HydroState.rho0[nimage[y_axs]] - - # direction == 1 is the bottom - # if np.sign(direction) == 1: - # v = -Sol.rhov[nsource] / Sol.rho[nsource] - Sol.rho[nimage] = rho Sol.rhou[nimage] = rho * u * Th_slc - # Sol.rhov[nimage] = 0.0#rho*v if hasattr(ud, "ATMOSPHERIC_EXTENSION"): Sol.rhov[nimage] = -v / Y_image else: @@ -175,14 +162,9 @@ def set_boundary(Sol, pads, btype, idx, step=None): """ Sol.rho[...] = np.pad(Sol.rho[idx], pads, btype) - # Sol.rhou[...] = np.pad(Sol.rhou[idx],pads,btype) - # Sol.rhov[...] = np.pad(Sol.rhov[idx],pads,btype) - # Sol.rhow[...] = np.pad(Sol.rhow[idx],pads,btype) if btype == "symmetric": - # Sol.rhou[...] = np.pad(Sol.rhou[idx],pads,negative_symmetric) Sol.rhov[...] = np.pad(Sol.rhov[idx], pads, negative_symmetric) - # Sol.rhow[...] = np.pad(Sol.rhow[idx],pads,negative_symmetric) Sol.rho[...] = np.pad(Sol.rho[idx], pads, "symmetric") Sol.rhou[...] = np.pad(Sol.rhou[idx], pads, "symmetric") elif btype == "constant": @@ -196,43 +178,6 @@ def set_boundary(Sol, pads, btype, idx, step=None): Sol.rhov[...] = np.pad(Sol.rhov[idx], pads, btype) Sol.rhow[...] = np.pad(Sol.rhow[idx], pads, btype) - # if step == 0: - # Sol.rhov[...] = np.pad(Sol.rhov[idx],pads,btype) - # # Sol.rhou[...] = np.pad(Sol.rhou[idx],pads,btype) - # Sol.rhow[...] = np.pad(Sol.rhow[idx],pads,btype) - # if btype == 'symmetric': - # # Sol.rhov[...] = np.pad(Sol.rhov[idx],pads,negative_symmetric) - # Sol.rhou[...] = np.pad(Sol.rhou[idx],pads,negative_symmetric) - # # Sol.rhow[...] = np.pad(Sol.rhow[idx],pads,negative_symmetric) - # else: - # Sol.rhov[...] = np.pad(Sol.rhov[idx],pads,btype) - # Sol.rhou[...] = np.pad(Sol.rhou[idx],pads,btype) - # Sol.rhow[...] = np.pad(Sol.rhow[idx],pads,btype) - - # if step == 1: - # Sol.rhou[...] = np.pad(Sol.rhou[idx],pads,btype) - # Sol.rhow[...] = np.pad(Sol.rhow[idx],pads,btype) - # if btype == 'symmetric': - # # Sol.rhou[...] = np.pad(Sol.rhou[idx],pads,negative_symmetric) - # Sol.rhov[...] = np.pad(Sol.rhov[idx],pads,negative_symmetric) - # # Sol.rhow[...] = np.pad(Sol.rhow[idx],pads,negative_symmetric) - # else: - # Sol.rhou[...] = np.pad(Sol.rhou[idx],pads,btype) - # Sol.rhov[...] = np.pad(Sol.rhov[idx],pads,btype) - # Sol.rhow[...] = np.pad(Sol.rhow[idx],pads,btype) - - # if step == 2: - # Sol.rhou[...] = np.pad(Sol.rhou[idx],pads,btype) - # Sol.rhov[...] = np.pad(Sol.rhov[idx],pads,btype) - # if btype == 'symmetric': - # # Sol.rhou[...] = np.pad(Sol.rhou[idx],pads,negative_symmetric) - # # Sol.rhov[...] = np.pad(Sol.rhov[idx],pads,negative_symmetric) - # Sol.rhow[...] = np.pad(Sol.rhow[idx],pads,negative_symmetric) - # else: - # Sol.rhou[...] = np.pad(Sol.rhou[idx],pads,btype) - # Sol.rhov[...] = np.pad(Sol.rhov[idx],pads,btype) - # Sol.rhow[...] = np.pad(Sol.rhow[idx],pads,btype) - Sol.rhoY[...] = np.pad(Sol.rhoY[idx], pads, btype) Sol.rhoX[...] = np.pad(Sol.rhoX[idx], pads, btype) @@ -610,54 +555,6 @@ def rayleigh_damping(Sol, npf, ud, elem, node, forcing=None): Sol.rhov[...] = rho * v Sol.rhoY[...] = rho * Y - -def check_flux_bcs(Lefts, Rights, elem, split_step, ud): - igx = elem.igx - igy = elem.igy - - if split_step == 1: - if ud.bdry_type[split_step] == opts.BdryType.WALL: - left_inner = (slice(None), slice(igy, igy + 1)) - left_ghost = (slice(None), slice(igy - 1, igy)) - - right_inner = (slice(None), slice(-igy - 1, -igy)) - right_ghost = (slice(None), slice(-igy, -igy + 1)) - - rhou_wall = 0.0 - # Lefts.rhou[left_ghost] = Rights.rhou[left_inner] = rhou_wall - Lefts.rhoY[left_ghost] = Rights.rhoY[left_inner] = Rights.rho[ - left_inner - ] * ud.stratification(0.0) - - Lefts.rho[left_ghost] = Rights.rho[left_inner] - Lefts.rhov[left_ghost] = Rights.rhov[left_inner] - Lefts.rhow[left_ghost] = Rights.rhow[left_inner] - Lefts.rhoX[left_ghost] = Rights.rhoX[left_inner] - - Rights.rho[right_ghost] = Lefts.rho[right_inner] - Rights.rhou[right_ghost] = -1.0 * Lefts.rhou[right_inner] - Rights.rhov[right_ghost] = Lefts.rhov[right_inner] - Rights.rhow[right_ghost] = Lefts.rhow[right_inner] - Rights.rhoY[right_ghost] = Lefts.rhoY[right_inner] - - else: - if ud.bdry_type[split_step] == opts.BdryType.WALL: - assert 0 # INCOMPLETE!!! - Lefts.rho[left_inner] = Rights.rho[:, igx - 2] - Lefts.rhou[left_inner] = -1.0 * Rights.rhou[:, igx - 2] - Lefts.rhov[left_inner] = Rights.rhov[:, igx - 2] - Lefts.rhow[left_inner] = Rights.rhow[:, igx - 2] - Lefts.rhoY[left_inner] = Rights.rhoY[:, igx - 2] - - # print("#################### TRUE ########################") - Rights.rho[right_ghost] = Lefts.rho[:, -igx - 2] - Rights.rhou[right_ghost] = -1.0 * Lefts.rhou[:, -igx - 2] - Rights.rhov[right_ghost] = Lefts.rhov[:, -igx - 2] - Rights.rhow[right_ghost] = Lefts.rhow[:, -igx - 2] - Rights.rhoY[right_ghost] = Lefts.rhoY[:, -igx - 2] - # print(Rights.rhoY[right_ghost]) - - def scale_wall_node_values(rhs, node, ud, factor=0.5): """Scale values at wall boundary nodes by a given factor.""" ndim = node.ndim From 13ec1c6b20e2a4a81211cc279fbc3b52b41064c4 Mon Sep 17 00:00:00 2001 From: raychew Date: Tue, 17 Jun 2025 20:13:10 -0700 Subject: [PATCH 27/35] restructured boundary.py into a subpackage --- src/pybella/data_assimilation/analysis.py | 17 +- src/pybella/data_assimilation/params.py | 18 +- src/pybella/data_assimilation/utils.py | 9 +- .../flow_solver/discretisation/time_update.py | 18 +- .../explicit_advection/compute_advection.py | 8 +- .../flow_solver/numerics/explicit_euler.py | 8 +- .../flow_solver/numerics/implicit_euler.py | 14 +- src/pybella/flow_solver/physics/eos.py | 14 - .../flow_solver/physics/hydrostatics.py | 6 +- src/pybella/flow_solver/utils/boundary.py | 580 ------------------ .../flow_solver/utils/boundary/__init__.py | 0 .../utils/boundary/cell_boundary.py | 248 ++++++++ .../flow_solver/utils/boundary/common.py | 63 ++ .../utils/boundary/node_boundary.py | 61 ++ .../utils/boundary/rayleigh_boundary.py | 203 ++++++ src/pybella/inputs/rising_bubble.py | 4 +- .../tests/test_blending_warm_bubble.py | 4 +- src/pybella/tests/test_internal_long_wave.py | 5 +- src/pybella/tests/test_lamb_wave.py | 9 +- src/pybella/tests/test_travelling_vortex.py | 6 +- src/pybella/tests/test_unstable_lamb.py | 9 +- 21 files changed, 638 insertions(+), 666 deletions(-) delete mode 100644 src/pybella/flow_solver/utils/boundary.py create mode 100644 src/pybella/flow_solver/utils/boundary/__init__.py create mode 100644 src/pybella/flow_solver/utils/boundary/cell_boundary.py create mode 100644 src/pybella/flow_solver/utils/boundary/common.py create mode 100644 src/pybella/flow_solver/utils/boundary/node_boundary.py create mode 100644 src/pybella/flow_solver/utils/boundary/rayleigh_boundary.py diff --git a/src/pybella/data_assimilation/analysis.py b/src/pybella/data_assimilation/analysis.py index 9b99c7ca..ca7f88c6 100644 --- a/src/pybella/data_assimilation/analysis.py +++ b/src/pybella/data_assimilation/analysis.py @@ -1,7 +1,10 @@ import logging - import numpy as np +from ..utils import sim_params as params +from ..flow_solver.utils.boundary import cell_boundary as bdry_c +from ..flow_solver.utils.boundary import node_boundary as bdry_n + from . import ( etpf as da_etpf, post_processing as da_post_processing, @@ -9,10 +12,6 @@ utils as da_utils, ) -from ..flow_solver.utils import boundary as bdry - -from ..utils import sim_params as params - def do_for_window(tout, outer_step, results, sst, writer): # mp = sst.model_params @@ -31,8 +30,8 @@ def do_for_window(tout, outer_step, results, sst, writer): ###################################################### for mem in results: elem, node, sol, _, npf, th, _ = mem - bdry.set_explicit_boundary_data(sol, elem, sst.ud, th, npf) - bdry.set_ghostnodes_p2(npf.p2_nodes, node, sst.ud) + bdry_c.set_explicit_boundary_data(sol, elem, sst.ud, th, npf) + bdry_n.set_ghostnodes_p2(npf.p2_nodes, node, sst.ud) # ens.set_members(results, tout) sst.ensemble_state.set_members(results) @@ -121,8 +120,8 @@ def do_for_window(tout, outer_step, results, sst, writer): ###################################################### for mem in results: elem, node, sol, npf, th, _, _ = mem - bdry.set_explicit_boundary_data(sol, elem, sst.ud, th, npf) + bdry_c.set_explicit_boundary_data(sol, elem, sst.ud, th, npf) p2_nodes = npf.p2_nodes - bdry.set_ghostnodes_p2(p2_nodes, node, sst.ud) + bdry_n.set_ghostnodes_p2(p2_nodes, node, sst.ud) sst.ensemble_state.set_members(results) diff --git a/src/pybella/data_assimilation/params.py b/src/pybella/data_assimilation/params.py index 714236b5..43ad0d7e 100644 --- a/src/pybella/data_assimilation/params.py +++ b/src/pybella/data_assimilation/params.py @@ -4,7 +4,8 @@ import numpy as np import scipy as sp -from ..flow_solver.utils import boundary as bdry +from ..flow_solver.utils.boundary import cell_boundary as bdry_c +from ..flow_solver.utils.boundary import node_boundary as bdry_n class init(object): @@ -23,15 +24,6 @@ def __init__(self, N, da_type="rloc"): # which attributes to inflate in ensemble inflation? self.attributes = ["rho", "rhou", "rhov"] - # self.obs_path = './output_travelling_vortex/output_travelling_vortex_ensemble=1_32_32_6.0_truthgen.h5' - # self.obs_path = './output_rising_bubble/output_rising_bubble_ensemble=1_100_50_10.0_psinc_ref.h5' - # self.obs_path = './output_rising_bubble/output_rising_bubble_ensemble=1_100_50_10.0_truthgen_freezelt5.h5' - # self.obs_path = './output_rising_bubble/output_rising_bubble_ensemble=1_100_50_10.0_comp_ref.h5' - # self.obs_path = './output_rising_bubble/output_rising_bubble_ensemble=1_160_80_1.0_truth_CFLfixed_ib-0.h5' - - # self.obs_path = './output_swe_vortex/output_swe_vortex_ensemble=1_64_1_64_3.0_comp_1.0_pps_tra_truth.h5' - # self.obs_path = './output_swe_vortex/output_swe_vortex_ensemble=1_64_1_64_3.0_neg_comp_1.0_pp_tra_truth_ip.h5' - # self.obs_path = './output_travelling_vortex/output_travelling_vortex_ensemble=1_64_64_3.0_comp_1.0_pp_tra_truth_ip.h5' self.obs_path = "./output_travelling_vortex/output_travelling_vortex_ensemble=1_64_64_3.0_obs.h5" # forward operator (projector from state space to observation space) @@ -138,7 +130,7 @@ def converter(results, N, npf, elem, node, th, ud): g = ud.g0 for n in range(N): - bdry.set_explicit_boundary_data(results[n][0], elem, ud, th, npf) + bdry_c.set_explicit_boundary_data(results[n][0], elem, ud, th, npf) results[n][0].rhoY[...] = (g / 2.0 * results[n][0].rho ** 2) ** th.gamminv igy = elem.igy @@ -148,12 +140,12 @@ def converter(results, N, npf, elem, node, th, ud): pn = sp.signal.convolve(results[n][0].rhoY[:, igy, :], kernel, mode="valid") - bdry.set_explicit_boundary_data(results[n][0], elem, ud, th, npf) + bdry_c.set_explicit_boundary_data(results[n][0], elem, ud, th, npf) pn = np.expand_dims(pn, 1) pn = np.repeat(pn, node.icy, axis=1) results[n][2].p2_nodes[1:-1, :, 1:-1] = pn - bdry.set_ghostnodes_p2(results[n][2].p2_nodes, node, ud) + bdry_n.set_ghostnodes_p2(results[n][2].p2_nodes, node, ud) pn = np.expand_dims(results[n][2].p2_nodes[:, igy, :], 1) results[n][2].p2_nodes[...] = np.repeat(pn[...], node.icy, axis=1) diff --git a/src/pybella/data_assimilation/utils.py b/src/pybella/data_assimilation/utils.py index 57fbd423..705b07c7 100644 --- a/src/pybella/data_assimilation/utils.py +++ b/src/pybella/data_assimilation/utils.py @@ -6,10 +6,7 @@ import matplotlib.pyplot as plt from ..utils import options as opts - -from ..flow_solver.utils import boundary as bdry - - +from ..flow_solver.utils.boundary import node_boundary as bdry_n class ensemble(object): def __init__(self, input_ensemble=None): if input_ensemble is not None: @@ -83,12 +80,12 @@ def set_p2_nodes(analysis, results, N, th, node, ud, loc_c=0, loc_n=2): rhoY_n[1:-1, 1:-1] = ( sp.signal.fftconvolve(rhoY, kernel, mode="valid") / kernel.sum() ) - bdry.set_ghostnodes_p2(rhoY_n, node, ud) + bdry_n.set_ghostnodes_p2(rhoY_n, node, ud) p2_n = rhoY_n**th.gm1 - 1.0 + (p2_n - p2_n.mean()) # p2_n = rhoY_n**th.gm1 - 1.0 p2_n -= p2_n.mean() # p2_n = np.pad(p2_n,2,mode='wrap') - bdry.set_ghostnodes_p2(p2_n, node, ud) + bdry_n.set_ghostnodes_p2(p2_n, node, ud) setattr(results[n][loc_n], "p2_nodes", p2_n) diff --git a/src/pybella/flow_solver/discretisation/time_update.py b/src/pybella/flow_solver/discretisation/time_update.py index 8e4ba8fc..3cd11c04 100644 --- a/src/pybella/flow_solver/discretisation/time_update.py +++ b/src/pybella/flow_solver/discretisation/time_update.py @@ -1,14 +1,13 @@ import copy import logging - import numpy as np -from ..physics import cfl, eos - +# dependencies from pybella common from ...utils import options as opts # dependencies of the flow solver subpackage -from ..utils import boundary as bdry +from ..utils.boundary import rayleigh_boundary as bdry_r +from ..physics import cfl, eos from ..numerics.explicit_advection import advective_flux, compute_advection from ..numerics import explicit_euler, implicit_euler @@ -34,7 +33,6 @@ def do( swe_to_lake = False while (mem.time.t < tout) and (mem.time.step < ud.stepmax): - bdry.set_explicit_boundary_data(mem.sol, mem.elem, ud, mem.th, mem.npf) label = "%.3d" % mem.time.step @@ -118,9 +116,9 @@ def do( if ud.bdry_type[1] == opts.BdryType.RAYLEIGH: # top rayleight damping - bdry.rayleigh_damping(mem.sol, mem.npf, ud, mem.elem, mem.node) + bdry_r.rayleigh_damping(mem.sol, mem.npf, ud, mem.elem, mem.node) - bdry.apply_rayleigh_forcing( + bdry_r.apply_rayleigh_forcing( mem.sol, mem.npf, ud, @@ -130,7 +128,6 @@ def do( mem.time.step, dt, mem.th, - bdry, ) debug_writer.write(f"{label}_after_ebnaimp") @@ -186,10 +183,10 @@ def do( if ud.bdry_type[1] == opts.BdryType.RAYLEIGH: # top rayleight damping - bdry.rayleigh_damping(mem.sol, mem.npf, ud, mem.elem, mem.node) + bdry_r.rayleigh_damping(mem.sol, mem.npf, ud, mem.elem, mem.node) # bottom rayleigh forcing - bdry.apply_rayleigh_forcing( + bdry_r.apply_rayleigh_forcing( mem.sol, mem.npf, ud, @@ -199,7 +196,6 @@ def do( mem.time.step, dt, mem.th, - bdry, half=False, Sol_half_new=Sol_half_new, npf_half_new=npf_half_new, diff --git a/src/pybella/flow_solver/numerics/explicit_advection/compute_advection.py b/src/pybella/flow_solver/numerics/explicit_advection/compute_advection.py index 4d38bad3..be9db3a8 100644 --- a/src/pybella/flow_solver/numerics/explicit_advection/compute_advection.py +++ b/src/pybella/flow_solver/numerics/explicit_advection/compute_advection.py @@ -1,7 +1,7 @@ import numba as nb from ....utils.slices import get_neighbor_indices -from ...utils import boundary as bdry +from ...utils.boundary import cell_boundary as bdry_c from . import recovery, riemann_solver @@ -25,7 +25,7 @@ def strange_splitting(mem, ud, dt, odd, label, writer=None): diagnostics=diagnostics if use_diagnostics else None, ) - bdry.set_explicit_boundary_data(mem.sol, mem.elem, ud, mem.th, mem.npf) + bdry_c.set_explicit_boundary_data(mem.sol, mem.elem, ud, mem.th, mem.npf) def first_order_runge_kutta(mem, ud, dt): @@ -55,7 +55,7 @@ def first_order_runge_kutta(mem, ud, dt): for dim in range(ndim): _apply_dimensional_flux_update(mem, dim, time_step, left_idx, right_idx) - bdry.set_explicit_boundary_data(mem.sol, mem.elem, ud, mem.th, mem.npf) + bdry_c.set_explicit_boundary_data(mem.sol, mem.elem, ud, mem.th, mem.npf) def _update_solution_variables(sol, flux, lmbda, left_idx, right_idx, variables=None): @@ -78,7 +78,7 @@ def _explicit_step_and_flux(mem, ud, lmbda, split_step, tag=None): This function updates the solution `Sol` container in-place if a Strang-splitting is used, or returns the `flux` data container if a Runge-Kutta method is used. """ - bdry.set_explicit_boundary_data( + bdry_c.set_explicit_boundary_data( mem.sol, mem.elem, ud, mem.th, mem.npf, step=split_step ) diff --git a/src/pybella/flow_solver/numerics/explicit_euler.py b/src/pybella/flow_solver/numerics/explicit_euler.py index 0230f338..a1b723d2 100644 --- a/src/pybella/flow_solver/numerics/explicit_euler.py +++ b/src/pybella/flow_solver/numerics/explicit_euler.py @@ -1,7 +1,9 @@ import numpy as np from ...utils.operators import convolution, divergence, gradient -from ..utils import boundary as bdry +from ..utils.boundary import cell_boundary as bdry_c +from ..utils.boundary import node_boundary as bdry_n +from ..utils.boundary import common as bdry def do_forward_step(mem, ud, dt, writer=None, label=None, debug=False): @@ -76,5 +78,5 @@ def do_forward_step(mem, ud, dt, writer=None, label=None, debug=False): npf.p2_nodes += ud.compressibility * dp2n # Boundary conditions - bdry.set_ghostnodes_p2(npf.p2_nodes, node, ud) - bdry.set_explicit_boundary_data(sol, elem, ud, th, npf) + bdry_n.set_ghostnodes_p2(npf.p2_nodes, node, ud) + bdry_c.set_explicit_boundary_data(sol, elem, ud, th, npf) diff --git a/src/pybella/flow_solver/numerics/implicit_euler.py b/src/pybella/flow_solver/numerics/implicit_euler.py index a8c6bf3f..389e20bb 100644 --- a/src/pybella/flow_solver/numerics/implicit_euler.py +++ b/src/pybella/flow_solver/numerics/implicit_euler.py @@ -3,7 +3,9 @@ from ...utils.operators import convolution, divergence, gradient from ...utils.operators.laplacian import preconditioner, lap2D_manual, lap3D -from ..utils import boundary as bdry +from ..utils.boundary import cell_boundary as bdry_c +from ..utils.boundary import node_boundary as bdry_n +from ..utils.boundary import common as bdry from . import coriolis @@ -35,7 +37,7 @@ def do_explicit_part(mem, ud, dt): mem.sol.mod_bg_wind(ud, +1.0) - bdry.set_explicit_boundary_data(mem.sol, mem.elem, ud, mem.th, mem.npf) + bdry_c.set_explicit_boundary_data(mem.sol, mem.elem, ud, mem.th, mem.npf) def do_implicit_part( @@ -66,7 +68,7 @@ def write_debug_data(key, data): # Set boundary data and compute operator coefficients (consolidated) sol_for_boundary = Sol0 if Sol0 is not None else mem.sol - bdry.set_explicit_boundary_data(sol_for_boundary, mem.elem, ud, mem.th, mem.npf) + bdry_c.set_explicit_boundary_data(sol_for_boundary, mem.elem, ud, mem.th, mem.npf) operator_coefficients_nodes(mem, ud, dt) # Debug output for w components @@ -84,7 +86,7 @@ def write_debug_data(key, data): # Boundary and correction operations # bdry.set_ghostnodes_p2(mem.npf.p2_nodes, mem.node, ud) _correction_nodes(mem, ud, dt, mem.npf.p2_nodes, 0) - bdry.set_explicit_boundary_data(mem.sol, mem.elem, ud, mem.th, mem.npf) + bdry_c.set_explicit_boundary_data(mem.sol, mem.elem, ud, mem.th, mem.npf) # Compute RHS mem.npf.rhs[...] = divergence.compute_at_nodes(mem.npf.rhs, mem.elem, mem.sol, ud) @@ -115,8 +117,8 @@ def write_debug_data(key, data): _correction_nodes(mem, ud, dt, p2_full, 1) mem.npf.p2_nodes[...] += p2_full - bdry.set_ghostnodes_p2(mem.npf.p2_nodes, mem.node, ud) - bdry.set_explicit_boundary_data(mem.sol, mem.elem, ud, mem.th, mem.npf) + bdry_n.set_ghostnodes_p2(mem.npf.p2_nodes, mem.node, ud) + bdry_c.set_explicit_boundary_data(mem.sol, mem.elem, ud, mem.th, mem.npf) def _correction_nodes(mem, ud, dt, p, updt_chi): diff --git a/src/pybella/flow_solver/physics/eos.py b/src/pybella/flow_solver/physics/eos.py index 9a32de50..4d2ae057 100644 --- a/src/pybella/flow_solver/physics/eos.py +++ b/src/pybella/flow_solver/physics/eos.py @@ -1,8 +1,5 @@ import numpy as np -from ..utils import boundary as bdry - - def nonhydrostasy(ud, t, step): if step >= 0: if ud.is_nonhydrostatic == 0: @@ -71,14 +68,3 @@ def rhoe(rho, u, v, w, p, ud, th): gm1inv = th.gm1inv return p * gm1inv + 0.5 * Msq * rho * (u**2 + v**2 + w**2) - - -def synchronise_variables(npf, Sol, elem, node, ud, th): - scale_factor = 1.0 / ud.Msq - - if ud.is_compressible: - p2bg = npf.HydroState.p20[0, :].reshape(1, -1) - p2bg = np.repeat(p2bg, elem.icx, axis=0) - npf.p2_cells = scale_factor * Sol.rhoY**th.gm1 - p2bg - - bdry.set_ghostcells_p2(npf.p2_cells, elem, ud) diff --git a/src/pybella/flow_solver/physics/hydrostatics.py b/src/pybella/flow_solver/physics/hydrostatics.py index 58b32cb8..ad36fe1c 100644 --- a/src/pybella/flow_solver/physics/hydrostatics.py +++ b/src/pybella/flow_solver/physics/hydrostatics.py @@ -1,7 +1,7 @@ import numpy as np import numba as nb -from ..utils import boundary as bdry +from ..utils.boundary import node_boundary as bdry_n def column(HydroState, HydroState_n, Y, Y_n, elem, node, th, ud): @@ -306,7 +306,7 @@ def initial_pressure(Sol, npf, elem, node, ud, th): npf.p2_cells[x_idx, y_idx] += pibot[x_idx].reshape( -1, 1 ) - 1.0 * npf.HydroState.p20[y_idx].reshape(1, -1) - bdry.set_ghostcells_p2(npf.p2_cells, elem, ud) + bdry_n.set_ghostcells_p2(npf.p2_cells, elem, ud) icxn = node.icx icyn = node.icy @@ -364,7 +364,7 @@ def initial_pressure(Sol, npf, elem, node, ud, th): sgn[1::2] *= -1 npf.p2_nodes[igx:-igx, igy:-igy] += sgn * delp2 - bdry.set_ghostnodes_p2(npf.p2_nodes, node, ud) + bdry_n.set_ghostnodes_p2(npf.p2_nodes, node, ud) npf.dp2_nodes[:, :] = 0.0 diff --git a/src/pybella/flow_solver/utils/boundary.py b/src/pybella/flow_solver/utils/boundary.py deleted file mode 100644 index 426b78cf..00000000 --- a/src/pybella/flow_solver/utils/boundary.py +++ /dev/null @@ -1,580 +0,0 @@ -""" -For more details on this module, refer to the write-up :ref:`boundary_handling`. -""" - -import copy -import numpy as np -from ...utils import options as opts -from ...utils import io - - -def set_explicit_boundary_data(Sol, elem, ud, th, npf, step=None): - """ - In-place update of the ghost cells in :class:`management.variable.Vars` given the boundary conditions specified by :class:`inputs.user_data.UserDataInit`. - - Parameters - ---------- - Sol : :class:`management.variable.Vars` - Solution data container - elem : :class:`discretization.kgrid.ElemSpaceDiscr` - Cells grid - ud : :class:`inputs.user_data.UserDataInit` - Data container for the initial conditions - th : :class:`physics.gas_dynamics.thermodynamic.init` - Thermodynamic variables of the system - npf : :class:`physics.low_mach.npf.MPV` - Variables relating to the elliptic solver - step : int, optional - Current step - - """ - igs = elem.igs - ndim = elem.ndim - - # if step parameter is not None, then we are in the advection directional Strang-splitting, where the array has already flipped, and we should only update the relevant boundaries, i.e. those in the direction of the current Strang-split-step. - if step == None: - dims = np.arange(ndim) - else: - dims = [ndim - 1] - - for dim in dims: - if step is not None: - current_step = step - else: - current_step = dim - ghost_padding, idx = get_ghost_padding(ndim, dim, igs) - - if ud.gravity_strength[current_step] == 0.0: - # Do this for the axes that do not have gravity. - # Periodic BC. - if ud.bdry_type[current_step] == opts.BdryType.PERIODIC: - set_boundary(Sol, ghost_padding, "wrap", idx, step=None) - # Wall BC. - elif ud.bdry_type[current_step] == opts.BdryType.WALL: - set_boundary(Sol, ghost_padding, "symmetric", idx, step=None) - elif ud.bdry_type[current_step] == opts.BdryType.RAYLEIGH: - assert 0, "Rayleigh boundary not defined on x-direction." - - else: - # get current axis that has gravity. - gravity_axis = dim - - direction = -1.0 - offset = 0 - - # get gravity strength specified in the user data file. - g = ud.gravity_strength[gravity_axis] - - # for the number of ghost cells in the gravity axis... - for side in ghost_padding[gravity_axis]: - direction *= -1 - # loop through each of these ghost cells. - for current_idx in np.arange(side)[::-1]: - if step != None: - y_axs = ndim - 1 - else: - y_axs = 1 - nlast, nsource, nimage = get_gravity_padding( - ndim, current_idx, direction, offset, elem, y_axs=y_axs - ) - - Y_last = Sol.rhoY[nlast] / Sol.rho[nlast] - - rhoYv_image = ( - -Sol.rhov[nsource] * Sol.rhoY[nsource] / Sol.rho[nsource] - ) - - S = 1.0 / ud.stratification(elem.y[nimage[y_axs]]) - - if hasattr(ud, "ATMOSPHERIC_EXTENSION"): - dpi = ( - npf.HydroState.p20[nimage[y_axs]] - - npf.HydroState.p20[nlast[y_axs]] - ) * ud.Msq - else: - dpi = ( - direction - * (th.Gamma * g) - * 0.5 - * elem.dy - * (1.0 / Y_last + S) - ) - - rhoY = ( - ((Sol.rhoY[nlast] ** th.gm1) + dpi) ** th.gm1inv - if ud.is_compressible == 1 - else npf.HydroState.rhoY0[nimage[y_axs]] - ) - - rho = rhoY * S - - Y_source = Sol.rhoY[nsource] / Sol.rho[nsource] - Y_image = rhoY / rho - - if hasattr(ud, "ATMOSPHERIC_EXTENSION"): - if direction > 0: # if bottom boundary - v = Sol.rhov[nsource] * Y_source / Sol.rho[nsource] * rho - else: # if top boundary - v = Sol.rhov[nsource] * Y_source - - Th_slc = rhoY / rho / Y_last - - else: - v = rhoYv_image / rhoY - Th_slc = 1.0 - - u = Sol.rhou[nsource] / Sol.rho[nsource] - w = Sol.rhow[nsource] / Sol.rho[nsource] - X = Sol.rhoX[nsource] / Sol.rho[nsource] - - Sol.rho[nimage] = rho - Sol.rhou[nimage] = rho * u * Th_slc - if hasattr(ud, "ATMOSPHERIC_EXTENSION"): - Sol.rhov[nimage] = -v / Y_image - else: - Sol.rhov[nimage] = rho * v - Sol.rhow[nimage] = rho * w * Th_slc - Sol.rhoY[nimage] = rhoY - Sol.rhoX[nimage] = rho * X - - offset += 1 - - -def set_boundary(Sol, pads, btype, idx, step=None): - """ - Called by the function :func:`inputs.boundary.set_explicit_boundary_data`. Pads in-place the ghost cells for a given boundary type. - - Parameters - ---------- - Sol : :class:`management.variable.Vars` - Solution data container. - pads : tuple - A tuple containing the number of ghost cells to pad at each end. - btype : string - The type of boundary condition to pad. Currently supports: - * `wrap` for periodic boundary conditions - * `symmetric` for wall boundary conditions - * `negative_symmetric` for wall boundary conditions, but with the signs flipped. - idx : tuple - A tuple containing the slice indices for the inner array, e.g. `(slice(2,-2),slice(2,-2))` for a 2D-array with 2 ghost cells for all edges. - step : int, optional - If we are in the advection routine with the flipped arrays according to the directional Strang-splitting, we want to pad the correct direction. `step=0`, pads the x-direction while `step=1` pads the y-direction. - - """ - Sol.rho[...] = np.pad(Sol.rho[idx], pads, btype) - - if btype == "symmetric": - Sol.rhov[...] = np.pad(Sol.rhov[idx], pads, negative_symmetric) - Sol.rho[...] = np.pad(Sol.rho[idx], pads, "symmetric") - Sol.rhou[...] = np.pad(Sol.rhou[idx], pads, "symmetric") - elif btype == "constant": - Sol.rho[...] = np.pad(Sol.rho[idx], pads, "symmetric") - Sol.rhou[...] = np.pad(Sol.rhou[idx], pads, "symmetric") - Sol.rhov[...] = np.pad(Sol.rhov[idx], pads, btype) - Sol.rhow[...] = np.pad(Sol.rhow[idx], pads, "symmetric") - btype = "symmetric" - else: - Sol.rhou[...] = np.pad(Sol.rhou[idx], pads, btype) - Sol.rhov[...] = np.pad(Sol.rhov[idx], pads, btype) - Sol.rhow[...] = np.pad(Sol.rhow[idx], pads, btype) - - Sol.rhoY[...] = np.pad(Sol.rhoY[idx], pads, btype) - Sol.rhoX[...] = np.pad(Sol.rhoX[idx], pads, btype) - - -def negative_symmetric(vector, pad_width, iaxis, kwargs=None): - """ - Taken from the reference: - - Parameters - ---------- - vector : ndarray - A rank 1 array already padded with zeros. Padded values are vector `[:iaxis_pad_width[0]] and vector[-iaxis_pad_width[1]:]`. - iaxis_pad_width : tuple - A 2-tuple of ints, `iaxis_pad_width[0]` represents the number of values padded at the beginning of vector where `iaxis_pad_width[1]` represents the number of values padded at the end of vector. - iaxis : int - The axis currently being calculated. - kwargs : dict - Any keyword arguments the function requires. - - References - ---------- - https://docs.scipy.org/doc/numpy/reference/generated/numpy.pad.html - - """ - if pad_width[1] > 0: - sign = -1 - vector[: pad_width[0]] = sign * vector[pad_width[0] : 2 * pad_width[0]][::-1] - vector[-pad_width[1] :] = sign * vector[-2 * pad_width[1] : -pad_width[1]][::-1] - return vector - else: # axis must have length > 0 for padding - return vector - - -def get_gravity_padding(ndim, cur_idx, direction, offset, elem, y_axs=None): - """ - Parameters - ---------- - ndim : int - Number of dimensions. - cur_idx : int - The current index of the ghost cell in the gravity direction to be updated. - direction : int - Top of the domain, `direction=+1`, bottom of the domain, `direction=-1`. - offset : int - `offset=0`, index starts counting from 0,1.... `offset=1`, index starts counting from -1,-2,..., i.e. end-selection of the array. - elem : :class:`discretization.kgrid.ElemSpaceDiscr` - Cell grid. - y_axs : int, optional - `Default == None`. Specifies the direction of the gravity axis. If `None`, then direction is the the y-axis. - - """ - cur_i = np.copy(cur_idx) - cur_idx += offset * ((elem.icy - 1) - 2 * cur_idx) - gravity_padding = [slice(None)] * ndim - if y_axs == None: - # y_axs = ndim - 1 - y_axs = 1 - - nlast = np.copy(gravity_padding) - nlast[y_axs] = int(cur_idx + direction) - - nsource = np.copy(gravity_padding) - nsource[y_axs] = int( - offset * (elem.icy) + direction * (2 * elem.igy - (1 - offset) - cur_i) - ) - - nimage = np.copy(gravity_padding) - nimage[y_axs] = int(cur_idx) - return tuple(nlast), tuple(nsource), tuple(nimage) - - -def set_ghostcells_p2(p, elem, ud): - igs = elem.igs - - for dim in range(elem.ndim): - ghost_padding, idx = get_ghost_padding(elem.ndim, dim, igs) - - if ud.bdry_type[dim] == opts.BdryType.PERIODIC: - p[...] = np.pad(p[idx], ghost_padding, "wrap") - else: # WALL - p[...] = np.pad(p[idx], ghost_padding, "symmetric") - - -def set_ghostnodes_p2(p, node, ud, igs=None): - if igs is None: - igs = node.igs - for dim in range(node.ndim): - ghost_padding, idx = get_ghost_padding(node.ndim, dim, igs) - - if ud.bdry_type[dim] == opts.BdryType.PERIODIC: - p[...] = np.pad(p[idx], ghost_padding, periodic_plus_one) - else: # ud.bdry_type[dim] == opts.BdryType.WALL: - p[...] = np.pad(p[idx], ghost_padding, "reflect") - - # if periodic_plus_one - if node.iicy == 2: # implying horizontal slices - pn = p[:, 2, :] - pn = np.expand_dims(pn, axis=1) - p[...] = np.repeat(pn, node.icy, axis=1) - - -def get_ghost_padding(ndim, dim, igs): - """ - For a given direction, return the number of ghost cells to pad the current direction, and the index slice of the inner array without the ghost cells. - - Parameters - ---------- - ndim : int - Number of dimensions for the problem. - dim : int - Current dimension to update - igs : list - A list of number of ghost cells in all dimensions, e.g. `[2,2,2]` for 2 ghost cells in the x, y, and z directions. - - Returns - ------- - tuple - Number of ghost cells in the current dimension at both edges. - tuple - Index slice of the inner domain of the array. - - """ - ghost_padding = [(0, 0)] * ndim - ghost_padding[dim] = (igs[dim], igs[dim]) - - padded_idx = np.empty((ndim), dtype=object) - for idim in range(ndim): - padded_idx[idim] = slice(igs[idim], -igs[idim]) - padded_idx[dim] = slice(None) - - inner_domain = [slice(None)] * ndim - inner_domain[dim] = slice(igs[dim], -igs[dim]) - - return tuple(ghost_padding), tuple(inner_domain) - - -def periodic_plus_one(vector, pad_width, iaxis, kwargs=None): - """ - Taken from the reference: - - Parameters - ---------- - vector : ndarray - A rank 1 array already padded with zeros. Padded values are vector `[:iaxis_pad_width[0]] and vector[-iaxis_pad_width[1]:]`. - iaxis_pad_width : tuple - A 2-tuple of ints, `iaxis_pad_width[0]` represents the number of values padded at the beginning of vector where `iaxis_pad_width[1]` represents the number of values padded at the end of vector. - iaxis : int - The axis currently being calculated. - kwargs : dict - Any keyword arguments the function requires. - References - ---------- - https://docs.scipy.org/doc/numpy/reference/generated/numpy.pad.html - - """ - if all(pad_width) > 0: - vector[: pad_width[0] + 1], vector[-pad_width[1] - 1 :] = ( - vector[-pad_width[1] - pad_width[1] - 1 : -pad_width[1]], - vector[pad_width[0] : pad_width[0] + pad_width[0] + 1].copy(), - ) - return vector - - -def get_tau_y(ud, elem, node, alpha): - tauc_y = np.zeros_like(elem.y) - taun_y = np.zeros_like(node.y) - - # ud.bcy = elem.y[-ud.inbcy-2] - ud.bny = node.y[-ud.inbcy - 3] - # ud.bny = ud.bcy - - # c1c = elem.y <= ud.bcy - # ccc = (elem.y[:-2] - ud.bcy) / (elem.y[:-2][-1] - ud.bcy) - # c2c = np.logical_and(ccc >= 0.0, ccc <= 0.5) - # c3c = np.logical_and(ccc > 0.5, ccc <= 1.0) - - c1n = node.y <= ud.bny - ccn = (node.y[:-2] - ud.bny) / (node.y[:-2][-1] - ud.bny) - c2n = np.logical_and(ccn >= 0.0, ccn <= 0.5) - c3n = np.logical_and(ccn > 0.5, ccn <= 1.0) - - # ccc and ccn can be reused below - - # tauc_y[np.where(c1c)] = 0.0 - # tauc_y[np.where(c2c)] = - alpha / 2.0 * (1.0 - np.cos( (elem.y[np.where(c2c)] - ud.bcy) / (elem.y[-1] - ud.bcy) * np.pi )) - # tauc_y[np.where(c3c)] = - alpha / 2.0 * (1.0 + ((elem.y[np.where(c3c)] - ud.bcy) / (elem.y[-1] - ud.bcy) - 0.5) * np.pi) - - taun_y[np.where(c1n)] = 0.0 - taun_y[np.where(c2n)] = ( - -alpha - / 2.0 - * ( - 1.0 - - np.cos((node.y[np.where(c2n)] - ud.bny) / (node.y[-1] - ud.bny) * np.pi) - ) - ) - taun_y[np.where(c3n)] = ( - -alpha - / 2.0 - * ( - 1.0 - + ((node.y[np.where(c3n)] - ud.bny) / (node.y[-1] - ud.bny) - 0.5) * np.pi - ) - ) - - taun_y[-2:] = -np.abs(taun_y).max() - tauc_y[...] = np.interp(elem.y, node.y, taun_y) - # dd = 1.0 - # tauc_y = dd * tauc_y / np.abs(tauc_y).max() - # taun_y = dd * taun_y / np.abs(taun_y).max() - return tauc_y, taun_y - - -def get_bottom_tau_y(ud, elem, node, alpha, cutoff=0.5): - tauc_y = np.zeros_like(elem.y) - taun_y = np.zeros_like(node.y) - - assert ud.ymax > cutoff, "rayleigh forcing boundary below minimum domain extent" - idx = (np.abs(elem.y - (ud.ymax - cutoff))).argmin() - - ud.forcing_bny = node.y[idx] - - c1n = node.y <= ud.forcing_bny - ccn = (node.y[:-3] - ud.forcing_bny) / (node.y[:-3][-1] - ud.forcing_bny) - c2n = np.logical_and(ccn >= 0.0, ccn <= 0.5) - c3n = np.logical_and(ccn > 0.5, ccn <= 1.0) - - taun_y[np.where(c1n)] = 0.0 - taun_y[np.where(c2n)] = ( - -alpha - / 2.0 - * ( - 1.0 - - np.cos( - (node.y[np.where(c2n)] - ud.forcing_bny) - / (node.y[-1] - ud.forcing_bny) - * np.pi - ) - ) - ) - taun_y[np.where(c3n)] = ( - -alpha - / 2.0 - * ( - 1.0 - + ( - (node.y[np.where(c3n)] - ud.forcing_bny) / (node.y[-1] - ud.forcing_bny) - - 0.5 - ) - * np.pi - ) - ) - - taun_y[-3:] = -np.abs(taun_y).max() - taun_y[...] = taun_y[::-1] - tauc_y = np.interp(elem.y, node.y, taun_y) - - dd = 1.0 - tauc_y = dd * tauc_y / np.abs(tauc_y).max() - taun_y = dd * taun_y / np.abs(taun_y).max() - - # tauc_y = tauc_y[2:-2] - # taun_y = taun_y[2:-2] - - return tauc_y, taun_y - - -def apply_rayleigh_forcing( - Sol, - npf, - ud, - elem, - node, - t, - step, - dt, - th, - bdry, - half=True, - Sol_half_new=None, - npf_half_new=None, -): - """Apply Rayleigh forcing boundary condition (file or function based).""" - if not (hasattr(ud, "rayleigh_forcing") and ud.rayleigh_forcing): - return - - t_offset = 0.5 * dt if half else dt - - if ud.rayleigh_forcing_type == "file": - reader = io.read_input(ud.rayleigh_forcing_fn, ud.rayleigh_forcing_path) - - if Sol_half_new is None or npf_half_new is None: - Sol_half_new = copy.deepcopy(Sol) - npf_half_new = copy.deepcopy(npf) - - time_tag = "%.3d_after_full_step" % step - reader.get_data(Sol_half_new, npf_half_new, time_tag, half=half) - - up = Sol_half_new.rhou / Sol_half_new.rho - vp = Sol_half_new.rhov / Sol_half_new.rho - Yp = Sol_half_new.rhoY / Sol_half_new.rho - npf.HydroState.Y0.reshape(1, -1) - pi = npf_half_new.p2_nodes - - bdry.rayleigh_damping(Sol, npf, ud, elem, node, [up, vp, Yp, pi, t + t_offset]) - - elif ud.rayleigh_forcing_type == "func": - s = 5.0e-3 + 1e-4 + 0e-5 - ud.rf_bot.eigenfunction(t + t_offset, s) - up, vp, Yp, pi = ud.rf_bot.dehatter(th) - - ud.rf_bot.eigenfunction(t + t_offset, s, grid="n") - _, _, _, pi_n = ud.rf_bot.dehatter(th, grid="n") - - bdry.rayleigh_damping( - Sol, npf, ud, elem, node, [up, vp, Yp, pi_n, t + t_offset] - ) - - bdry.set_explicit_boundary_data(Sol, elem, ud, th, npf) - - -def rayleigh_damping(Sol, npf, ud, elem, node, forcing=None): - u = Sol.rhou / Sol.rho # [elem.i2] - v = Sol.rhov / Sol.rho # [elem.i2] - Y = Sol.rhoY / Sol.rho # [elem.i2] - rho = Sol.rho # [elem.i2] - - if ud.bdry_type[1] == opts.BdryType.RAYLEIGH: - tcy, tny = ud.tcy, ud.tny - else: - tcy, tny = 0.0, 0.0 - - if forcing is not None: - tcy_f, tny_f = ud.forcing_tcy, ud.forcing_tny - tcy, tny = 0.0, 0.0 - - u_f, v_f, Y_f, pi_f, t = forcing - - if ud.rayleigh_forcing_type == "file": - G = np.sqrt(9.0 / 40.0) - N = np.sqrt(ud.Nsq_ref) - C = ud.Cs * ud.u_ref - Gam = N * G / C - Om = ud.coriolis_strength[2] / 2.0 / ud.t_ref - # Om = 7.292 * 1e-5 / ud.t_ref - growth_rate = np.sqrt(Om * C * Gam) - mfac = np.exp(growth_rate * t * ud.t_ref) - - # if np.all(ud.coriolis_strength) == 0.0: - # if ud.trad_forcing: - # mfac = 1.0 - else: - mfac = 1.0 - - npf.p2_nodes[...] += tny_f * (npf.p2_nodes) + np.abs(tny_f) * mfac * pi_f - c_f = 1.0 - - else: - u_f, v_f, Y_f = 0.0, 0.0, 0.0 - c_f = 0.0 - tcy_f, tny_f = 0.0, 0.0 - mfac = 0.0 - - # assuming 2D vertical slice - not dimension agnostic - u += tcy * (u - ud.u_wind_speed) + c_f * ( - tcy_f * (u - ud.u_wind_speed) + np.abs(tcy_f) * mfac * u_f - ) - v += tcy * (v - ud.v_wind_speed) + c_f * ( - tcy_f * (v - ud.v_wind_speed) + np.abs(tcy_f) * mfac * v_f - ) - - Ybar = npf.HydroState.Y0.reshape(1, -1) - Y += tcy * (Y - Ybar) + c_f * (tcy_f * (Y - Ybar) + np.abs(tcy_f) * mfac * Y_f) - - Sol.rhou[...] = rho * u - Sol.rhov[...] = rho * v - Sol.rhoY[...] = rho * Y - -def scale_wall_node_values(rhs, node, ud, factor=0.5): - """Scale values at wall boundary nodes by a given factor.""" - ndim = node.ndim - igs = node.igs - - for dim in range(ndim): - # Check if this dimension has wall boundaries - is_wall = ( - ud.bdry_type[dim] == opts.BdryType.WALL - or ud.bdry_type[dim] == opts.BdryType.RAYLEIGH - ) - - if is_wall: - # Create index for all dimensions - idx = [slice(igs[d], -igs[d]) for d in range(ndim)] - - # Scale first and last interior nodes in this dimension - for boundary_idx in [igs[dim], -igs[dim] - 1]: - idx[dim] = boundary_idx - rhs[tuple(idx)] *= factor - # rhs = rhs.at[tuple(idx)].multiply(factor) - - return rhs diff --git a/src/pybella/flow_solver/utils/boundary/__init__.py b/src/pybella/flow_solver/utils/boundary/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/src/pybella/flow_solver/utils/boundary/cell_boundary.py b/src/pybella/flow_solver/utils/boundary/cell_boundary.py new file mode 100644 index 00000000..550e448a --- /dev/null +++ b/src/pybella/flow_solver/utils/boundary/cell_boundary.py @@ -0,0 +1,248 @@ +""" +For more details on this module, refer to the write-up :ref:`boundary_handling`. +""" + +import numpy as np +from ....utils import options as opts +from .common import get_ghost_padding + + +def set_explicit_boundary_data(Sol, elem, ud, th, npf, step=None): + """ + In-place update of the ghost cells in :class:`management.variable.Vars` given the boundary conditions specified by :class:`inputs.user_data.UserDataInit`. + + Parameters + ---------- + Sol : :class:`management.variable.Vars` + Solution data container + elem : :class:`discretization.kgrid.ElemSpaceDiscr` + Cells grid + ud : :class:`inputs.user_data.UserDataInit` + Data container for the initial conditions + th : :class:`physics.gas_dynamics.thermodynamic.init` + Thermodynamic variables of the system + npf : :class:`physics.low_mach.npf.MPV` + Variables relating to the elliptic solver + step : int, optional + Current step + + """ + igs = elem.igs + ndim = elem.ndim + + # if step parameter is not None, then we are in the advection directional Strang-splitting, where the array has already flipped, and we should only update the relevant boundaries, i.e. those in the direction of the current Strang-split-step. + if step == None: + dims = np.arange(ndim) + else: + dims = [ndim - 1] + + for dim in dims: + if step is not None: + current_step = step + else: + current_step = dim + ghost_padding, idx = get_ghost_padding(ndim, dim, igs) + + if ud.gravity_strength[current_step] == 0.0: + # Do this for the axes that do not have gravity. + # Periodic BC. + if ud.bdry_type[current_step] == opts.BdryType.PERIODIC: + set_boundary(Sol, ghost_padding, "wrap", idx, step=None) + # Wall BC. + elif ud.bdry_type[current_step] == opts.BdryType.WALL: + set_boundary(Sol, ghost_padding, "symmetric", idx, step=None) + elif ud.bdry_type[current_step] == opts.BdryType.RAYLEIGH: + assert 0, "Rayleigh boundary not defined on x-direction." + + else: + # get current axis that has gravity. + gravity_axis = dim + + direction = -1.0 + offset = 0 + + # get gravity strength specified in the user data file. + g = ud.gravity_strength[gravity_axis] + + # for the number of ghost cells in the gravity axis... + for side in ghost_padding[gravity_axis]: + direction *= -1 + # loop through each of these ghost cells. + for current_idx in np.arange(side)[::-1]: + if step != None: + y_axs = ndim - 1 + else: + y_axs = 1 + nlast, nsource, nimage = get_gravity_padding( + ndim, current_idx, direction, offset, elem, y_axs=y_axs + ) + + Y_last = Sol.rhoY[nlast] / Sol.rho[nlast] + + rhoYv_image = ( + -Sol.rhov[nsource] * Sol.rhoY[nsource] / Sol.rho[nsource] + ) + + S = 1.0 / ud.stratification(elem.y[nimage[y_axs]]) + + if hasattr(ud, "ATMOSPHERIC_EXTENSION"): + dpi = ( + npf.HydroState.p20[nimage[y_axs]] + - npf.HydroState.p20[nlast[y_axs]] + ) * ud.Msq + else: + dpi = ( + direction + * (th.Gamma * g) + * 0.5 + * elem.dy + * (1.0 / Y_last + S) + ) + + rhoY = ( + ((Sol.rhoY[nlast] ** th.gm1) + dpi) ** th.gm1inv + if ud.is_compressible == 1 + else npf.HydroState.rhoY0[nimage[y_axs]] + ) + + rho = rhoY * S + + Y_source = Sol.rhoY[nsource] / Sol.rho[nsource] + Y_image = rhoY / rho + + if hasattr(ud, "ATMOSPHERIC_EXTENSION"): + if direction > 0: # if bottom boundary + v = Sol.rhov[nsource] * Y_source / Sol.rho[nsource] * rho + else: # if top boundary + v = Sol.rhov[nsource] * Y_source + + Th_slc = rhoY / rho / Y_last + + else: + v = rhoYv_image / rhoY + Th_slc = 1.0 + + u = Sol.rhou[nsource] / Sol.rho[nsource] + w = Sol.rhow[nsource] / Sol.rho[nsource] + X = Sol.rhoX[nsource] / Sol.rho[nsource] + + Sol.rho[nimage] = rho + Sol.rhou[nimage] = rho * u * Th_slc + if hasattr(ud, "ATMOSPHERIC_EXTENSION"): + Sol.rhov[nimage] = -v / Y_image + else: + Sol.rhov[nimage] = rho * v + Sol.rhow[nimage] = rho * w * Th_slc + Sol.rhoY[nimage] = rhoY + Sol.rhoX[nimage] = rho * X + + offset += 1 + + +def set_boundary(Sol, pads, btype, idx, step=None): + """ + Called by the function :func:`inputs.boundary.set_explicit_boundary_data`. Pads in-place the ghost cells for a given boundary type. + + Parameters + ---------- + Sol : :class:`management.variable.Vars` + Solution data container. + pads : tuple + A tuple containing the number of ghost cells to pad at each end. + btype : string + The type of boundary condition to pad. Currently supports: + * `wrap` for periodic boundary conditions + * `symmetric` for wall boundary conditions + * `negative_symmetric` for wall boundary conditions, but with the signs flipped. + idx : tuple + A tuple containing the slice indices for the inner array, e.g. `(slice(2,-2),slice(2,-2))` for a 2D-array with 2 ghost cells for all edges. + step : int, optional + If we are in the advection routine with the flipped arrays according to the directional Strang-splitting, we want to pad the correct direction. `step=0`, pads the x-direction while `step=1` pads the y-direction. + + """ + Sol.rho[...] = np.pad(Sol.rho[idx], pads, btype) + + if btype == "symmetric": + Sol.rhov[...] = np.pad(Sol.rhov[idx], pads, negative_symmetric) + Sol.rho[...] = np.pad(Sol.rho[idx], pads, "symmetric") + Sol.rhou[...] = np.pad(Sol.rhou[idx], pads, "symmetric") + elif btype == "constant": + Sol.rho[...] = np.pad(Sol.rho[idx], pads, "symmetric") + Sol.rhou[...] = np.pad(Sol.rhou[idx], pads, "symmetric") + Sol.rhov[...] = np.pad(Sol.rhov[idx], pads, btype) + Sol.rhow[...] = np.pad(Sol.rhow[idx], pads, "symmetric") + btype = "symmetric" + else: + Sol.rhou[...] = np.pad(Sol.rhou[idx], pads, btype) + Sol.rhov[...] = np.pad(Sol.rhov[idx], pads, btype) + Sol.rhow[...] = np.pad(Sol.rhow[idx], pads, btype) + + Sol.rhoY[...] = np.pad(Sol.rhoY[idx], pads, btype) + Sol.rhoX[...] = np.pad(Sol.rhoX[idx], pads, btype) + + +def negative_symmetric(vector, pad_width, iaxis, kwargs=None): + """ + Taken from the reference: + + Parameters + ---------- + vector : ndarray + A rank 1 array already padded with zeros. Padded values are vector `[:iaxis_pad_width[0]] and vector[-iaxis_pad_width[1]:]`. + iaxis_pad_width : tuple + A 2-tuple of ints, `iaxis_pad_width[0]` represents the number of values padded at the beginning of vector where `iaxis_pad_width[1]` represents the number of values padded at the end of vector. + iaxis : int + The axis currently being calculated. + kwargs : dict + Any keyword arguments the function requires. + + References + ---------- + https://docs.scipy.org/doc/numpy/reference/generated/numpy.pad.html + + """ + if pad_width[1] > 0: + sign = -1 + vector[: pad_width[0]] = sign * vector[pad_width[0] : 2 * pad_width[0]][::-1] + vector[-pad_width[1] :] = sign * vector[-2 * pad_width[1] : -pad_width[1]][::-1] + return vector + else: # axis must have length > 0 for padding + return vector + + +def get_gravity_padding(ndim, cur_idx, direction, offset, elem, y_axs=None): + """ + Parameters + ---------- + ndim : int + Number of dimensions. + cur_idx : int + The current index of the ghost cell in the gravity direction to be updated. + direction : int + Top of the domain, `direction=+1`, bottom of the domain, `direction=-1`. + offset : int + `offset=0`, index starts counting from 0,1.... `offset=1`, index starts counting from -1,-2,..., i.e. end-selection of the array. + elem : :class:`discretization.kgrid.ElemSpaceDiscr` + Cell grid. + y_axs : int, optional + `Default == None`. Specifies the direction of the gravity axis. If `None`, then direction is the the y-axis. + + """ + cur_i = np.copy(cur_idx) + cur_idx += offset * ((elem.icy - 1) - 2 * cur_idx) + gravity_padding = [slice(None)] * ndim + if y_axs == None: + # y_axs = ndim - 1 + y_axs = 1 + + nlast = np.copy(gravity_padding) + nlast[y_axs] = int(cur_idx + direction) + + nsource = np.copy(gravity_padding) + nsource[y_axs] = int( + offset * (elem.icy) + direction * (2 * elem.igy - (1 - offset) - cur_i) + ) + + nimage = np.copy(gravity_padding) + nimage[y_axs] = int(cur_idx) + return tuple(nlast), tuple(nsource), tuple(nimage) \ No newline at end of file diff --git a/src/pybella/flow_solver/utils/boundary/common.py b/src/pybella/flow_solver/utils/boundary/common.py new file mode 100644 index 00000000..d8740f35 --- /dev/null +++ b/src/pybella/flow_solver/utils/boundary/common.py @@ -0,0 +1,63 @@ +import numpy as np + +from ....utils import options as opts + + +def get_ghost_padding(ndim, dim, igs): + """ + For a given direction, return the number of ghost cells to pad the current direction, and the index slice of the inner array without the ghost cells. + + Parameters + ---------- + ndim : int + Number of dimensions for the problem. + dim : int + Current dimension to update + igs : list + A list of number of ghost cells in all dimensions, e.g. `[2,2,2]` for 2 ghost cells in the x, y, and z directions. + + Returns + ------- + tuple + Number of ghost cells in the current dimension at both edges. + tuple + Index slice of the inner domain of the array. + + """ + ghost_padding = [(0, 0)] * ndim + ghost_padding[dim] = (igs[dim], igs[dim]) + + padded_idx = np.empty((ndim), dtype=object) + for idim in range(ndim): + padded_idx[idim] = slice(igs[idim], -igs[idim]) + padded_idx[dim] = slice(None) + + inner_domain = [slice(None)] * ndim + inner_domain[dim] = slice(igs[dim], -igs[dim]) + + return tuple(ghost_padding), tuple(inner_domain) + + +def scale_wall_node_values(rhs, node, ud, factor=0.5): + """Scale values at wall boundary nodes by a given factor.""" + ndim = node.ndim + igs = node.igs + + for dim in range(ndim): + # Check if this dimension has wall boundaries + is_wall = ( + ud.bdry_type[dim] == opts.BdryType.WALL + or ud.bdry_type[dim] == opts.BdryType.RAYLEIGH + ) + + if is_wall: + # Create index for all dimensions + idx = [slice(igs[d], -igs[d]) for d in range(ndim)] + + # Scale first and last interior nodes in this dimension + for boundary_idx in [igs[dim], -igs[dim] - 1]: + idx[dim] = boundary_idx + rhs[tuple(idx)] *= factor + # rhs = rhs.at[tuple(idx)].multiply(factor) + + return rhs diff --git a/src/pybella/flow_solver/utils/boundary/node_boundary.py b/src/pybella/flow_solver/utils/boundary/node_boundary.py new file mode 100644 index 00000000..471047ce --- /dev/null +++ b/src/pybella/flow_solver/utils/boundary/node_boundary.py @@ -0,0 +1,61 @@ +import numpy as np +from ....utils import options as opts +from .common import get_ghost_padding + +def set_ghostcells_p2(p, elem, ud): + igs = elem.igs + + for dim in range(elem.ndim): + ghost_padding, idx = get_ghost_padding(elem.ndim, dim, igs) + + if ud.bdry_type[dim] == opts.BdryType.PERIODIC: + p[...] = np.pad(p[idx], ghost_padding, "wrap") + else: # WALL + p[...] = np.pad(p[idx], ghost_padding, "symmetric") + + +def set_ghostnodes_p2(p, node, ud, igs=None): + if igs is None: + igs = node.igs + for dim in range(node.ndim): + ghost_padding, idx = get_ghost_padding(node.ndim, dim, igs) + + if ud.bdry_type[dim] == opts.BdryType.PERIODIC: + p[...] = np.pad(p[idx], ghost_padding, periodic_plus_one) + else: # ud.bdry_type[dim] == opts.BdryType.WALL: + p[...] = np.pad(p[idx], ghost_padding, "reflect") + + # if periodic_plus_one + if node.iicy == 2: # implying horizontal slices + pn = p[:, 2, :] + pn = np.expand_dims(pn, axis=1) + p[...] = np.repeat(pn, node.icy, axis=1) + + +def periodic_plus_one(vector, pad_width, iaxis, kwargs=None): + """ + Taken from the reference: + + Parameters + ---------- + vector : ndarray + A rank 1 array already padded with zeros. Padded values are vector `[:iaxis_pad_width[0]] and vector[-iaxis_pad_width[1]:]`. + iaxis_pad_width : tuple + A 2-tuple of ints, `iaxis_pad_width[0]` represents the number of values padded at the beginning of vector where `iaxis_pad_width[1]` represents the number of values padded at the end of vector. + iaxis : int + The axis currently being calculated. + kwargs : dict + Any keyword arguments the function requires. + References + ---------- + https://docs.scipy.org/doc/numpy/reference/generated/numpy.pad.html + + """ + if all(pad_width) > 0: + vector[: pad_width[0] + 1], vector[-pad_width[1] - 1 :] = ( + vector[-pad_width[1] - pad_width[1] - 1 : -pad_width[1]], + vector[pad_width[0] : pad_width[0] + pad_width[0] + 1].copy(), + ) + return vector + + diff --git a/src/pybella/flow_solver/utils/boundary/rayleigh_boundary.py b/src/pybella/flow_solver/utils/boundary/rayleigh_boundary.py new file mode 100644 index 00000000..ce903e2b --- /dev/null +++ b/src/pybella/flow_solver/utils/boundary/rayleigh_boundary.py @@ -0,0 +1,203 @@ +import copy +import numpy as np +from ....utils import io +from ....utils import options as opts +from . import cell_boundary as bdry_c + +def get_tau_y(ud, elem, node, alpha): + tauc_y = np.zeros_like(elem.y) + taun_y = np.zeros_like(node.y) + + ud.bny = node.y[-ud.inbcy - 3] + + c1n = node.y <= ud.bny + ccn = (node.y[:-2] - ud.bny) / (node.y[:-2][-1] - ud.bny) + c2n = np.logical_and(ccn >= 0.0, ccn <= 0.5) + c3n = np.logical_and(ccn > 0.5, ccn <= 1.0) + + taun_y[np.where(c1n)] = 0.0 + taun_y[np.where(c2n)] = ( + -alpha + / 2.0 + * ( + 1.0 + - np.cos((node.y[np.where(c2n)] - ud.bny) / (node.y[-1] - ud.bny) * np.pi) + ) + ) + taun_y[np.where(c3n)] = ( + -alpha + / 2.0 + * ( + 1.0 + + ((node.y[np.where(c3n)] - ud.bny) / (node.y[-1] - ud.bny) - 0.5) * np.pi + ) + ) + + taun_y[-2:] = -np.abs(taun_y).max() + tauc_y[...] = np.interp(elem.y, node.y, taun_y) + + return tauc_y, taun_y + + +def get_bottom_tau_y(ud, elem, node, alpha, cutoff=0.5): + tauc_y = np.zeros_like(elem.y) + taun_y = np.zeros_like(node.y) + + assert ud.ymax > cutoff, "rayleigh forcing boundary below minimum domain extent" + idx = (np.abs(elem.y - (ud.ymax - cutoff))).argmin() + + ud.forcing_bny = node.y[idx] + + c1n = node.y <= ud.forcing_bny + ccn = (node.y[:-3] - ud.forcing_bny) / (node.y[:-3][-1] - ud.forcing_bny) + c2n = np.logical_and(ccn >= 0.0, ccn <= 0.5) + c3n = np.logical_and(ccn > 0.5, ccn <= 1.0) + + taun_y[np.where(c1n)] = 0.0 + taun_y[np.where(c2n)] = ( + -alpha + / 2.0 + * ( + 1.0 + - np.cos( + (node.y[np.where(c2n)] - ud.forcing_bny) + / (node.y[-1] - ud.forcing_bny) + * np.pi + ) + ) + ) + taun_y[np.where(c3n)] = ( + -alpha + / 2.0 + * ( + 1.0 + + ( + (node.y[np.where(c3n)] - ud.forcing_bny) / (node.y[-1] - ud.forcing_bny) + - 0.5 + ) + * np.pi + ) + ) + + taun_y[-3:] = -np.abs(taun_y).max() + taun_y[...] = taun_y[::-1] + tauc_y = np.interp(elem.y, node.y, taun_y) + + dd = 1.0 + tauc_y = dd * tauc_y / np.abs(tauc_y).max() + taun_y = dd * taun_y / np.abs(taun_y).max() + + # tauc_y = tauc_y[2:-2] + # taun_y = taun_y[2:-2] + + return tauc_y, taun_y + + +def apply_rayleigh_forcing( + Sol, + npf, + ud, + elem, + node, + t, + step, + dt, + th, + half=True, + Sol_half_new=None, + npf_half_new=None, +): + """Apply Rayleigh forcing boundary condition (file or function based).""" + if not (hasattr(ud, "rayleigh_forcing") and ud.rayleigh_forcing): + return + + t_offset = 0.5 * dt if half else dt + + if ud.rayleigh_forcing_type == "file": + reader = io.read_input(ud.rayleigh_forcing_fn, ud.rayleigh_forcing_path) + + if Sol_half_new is None or npf_half_new is None: + Sol_half_new = copy.deepcopy(Sol) + npf_half_new = copy.deepcopy(npf) + + time_tag = "%.3d_after_full_step" % step + reader.get_data(Sol_half_new, npf_half_new, time_tag, half=half) + + up = Sol_half_new.rhou / Sol_half_new.rho + vp = Sol_half_new.rhov / Sol_half_new.rho + Yp = Sol_half_new.rhoY / Sol_half_new.rho - npf.HydroState.Y0.reshape(1, -1) + pi = npf_half_new.p2_nodes + + rayleigh_damping(Sol, npf, ud, elem, node, [up, vp, Yp, pi, t + t_offset]) + + elif ud.rayleigh_forcing_type == "func": + s = 5.0e-3 + 1e-4 + 0e-5 + ud.rf_bot.eigenfunction(t + t_offset, s) + up, vp, Yp, pi = ud.rf_bot.dehatter(th) + + ud.rf_bot.eigenfunction(t + t_offset, s, grid="n") + _, _, _, pi_n = ud.rf_bot.dehatter(th, grid="n") + + rayleigh_damping( + Sol, npf, ud, elem, node, [up, vp, Yp, pi_n, t + t_offset] + ) + + bdry_c.set_explicit_boundary_data(Sol, elem, ud, th, npf) + +def rayleigh_damping(Sol, npf, ud, elem, node, forcing=None): + u = Sol.rhou / Sol.rho # [elem.i2] + v = Sol.rhov / Sol.rho # [elem.i2] + Y = Sol.rhoY / Sol.rho # [elem.i2] + rho = Sol.rho # [elem.i2] + + if ud.bdry_type[1] == opts.BdryType.RAYLEIGH: + tcy, tny = ud.tcy, ud.tny + else: + tcy, tny = 0.0, 0.0 + + if forcing is not None: + tcy_f, tny_f = ud.forcing_tcy, ud.forcing_tny + tcy, tny = 0.0, 0.0 + + u_f, v_f, Y_f, pi_f, t = forcing + + if ud.rayleigh_forcing_type == "file": + G = np.sqrt(9.0 / 40.0) + N = np.sqrt(ud.Nsq_ref) + C = ud.Cs * ud.u_ref + Gam = N * G / C + Om = ud.coriolis_strength[2] / 2.0 / ud.t_ref + # Om = 7.292 * 1e-5 / ud.t_ref + growth_rate = np.sqrt(Om * C * Gam) + mfac = np.exp(growth_rate * t * ud.t_ref) + + # if np.all(ud.coriolis_strength) == 0.0: + # if ud.trad_forcing: + # mfac = 1.0 + else: + mfac = 1.0 + + npf.p2_nodes[...] += tny_f * (npf.p2_nodes) + np.abs(tny_f) * mfac * pi_f + c_f = 1.0 + + else: + u_f, v_f, Y_f = 0.0, 0.0, 0.0 + c_f = 0.0 + tcy_f, tny_f = 0.0, 0.0 + mfac = 0.0 + + # assuming 2D vertical slice - not dimension agnostic + u += tcy * (u - ud.u_wind_speed) + c_f * ( + tcy_f * (u - ud.u_wind_speed) + np.abs(tcy_f) * mfac * u_f + ) + v += tcy * (v - ud.v_wind_speed) + c_f * ( + tcy_f * (v - ud.v_wind_speed) + np.abs(tcy_f) * mfac * v_f + ) + + Ybar = npf.HydroState.Y0.reshape(1, -1) + Y += tcy * (Y - Ybar) + c_f * (tcy_f * (Y - Ybar) + np.abs(tcy_f) * mfac * Y_f) + + Sol.rhou[...] = rho * u + Sol.rhov[...] = rho * v + Sol.rhoY[...] = rho * Y + diff --git a/src/pybella/inputs/rising_bubble.py b/src/pybella/inputs/rising_bubble.py index 0a0eb1d7..066eab53 100644 --- a/src/pybella/inputs/rising_bubble.py +++ b/src/pybella/inputs/rising_bubble.py @@ -1,6 +1,6 @@ import numpy as np from ..flow_solver.physics import hydrostatics -from ..flow_solver.utils import boundary as bdry +from ..flow_solver.utils.boundary import cell_boundary as bdry_c class UserData(object): @@ -93,6 +93,6 @@ def sol_init(Sol, npf, elem, node, th, ud, seed=None): rhoY = npf.HydroState_n.rhoY0[0] npf.p2_nodes[...] = (p - npf.HydroState_n.p0[0]) / rhoY / ud.Msq - bdry.set_explicit_boundary_data(Sol, elem, ud, th, npf) + bdry_c.set_explicit_boundary_data(Sol, elem, ud, th, npf) return Sol diff --git a/src/pybella/tests/test_blending_warm_bubble.py b/src/pybella/tests/test_blending_warm_bubble.py index a224b42b..5d03c617 100644 --- a/src/pybella/tests/test_blending_warm_bubble.py +++ b/src/pybella/tests/test_blending_warm_bubble.py @@ -1,6 +1,6 @@ import numpy as np from ..flow_solver.physics import hydrostatics -from ..flow_solver.utils import boundary as bdry +from ..flow_solver.utils.boundary import cell_boundary as bdry_c from ..utils.data_structures import DiagnosticState @@ -111,6 +111,6 @@ def sol_init(Sol, npf, elem, node, th, ud, seed=None): rhoY = npf.HydroState_n.rhoY0 npf.p2_nodes[...] = (p - npf.HydroState_n.p0) / rhoY / ud.Msq - bdry.set_explicit_boundary_data(Sol, elem, ud, th, npf) + bdry_c.set_explicit_boundary_data(Sol, elem, ud, th, npf) return Sol diff --git a/src/pybella/tests/test_internal_long_wave.py b/src/pybella/tests/test_internal_long_wave.py index 368dfeea..18cc9cc1 100644 --- a/src/pybella/tests/test_internal_long_wave.py +++ b/src/pybella/tests/test_internal_long_wave.py @@ -2,7 +2,8 @@ from ..utils import options as opts -from ..flow_solver.utils import boundary as bdry, fields +from ..flow_solver.utils import fields +from ..flow_solver.utils.boundary import cell_boundary as bdry_c from ..flow_solver.physics import hydrostatics from ..utils.data_structures import DiagnosticState @@ -193,7 +194,7 @@ def sol_init(Sol, npf, elem, node, th, ud, seeds=None): if "imbal" in ud.aux: npf.p2_nodes[...] = 0.0 - bdry.set_explicit_boundary_data(Sol, elem, ud, th, npf) + bdry_c.set_explicit_boundary_data(Sol, elem, ud, th, npf) return Sol diff --git a/src/pybella/tests/test_lamb_wave.py b/src/pybella/tests/test_lamb_wave.py index e8a25f6b..45a8ee4c 100644 --- a/src/pybella/tests/test_lamb_wave.py +++ b/src/pybella/tests/test_lamb_wave.py @@ -3,8 +3,9 @@ from ..utils import options as opts from ..utils.data_structures import DiagnosticState -from ..flow_solver.utils import boundary as bdry -from ..flow_solver.physics import hydrostatics +from ..flow_solver.utils.boundary import cell_boundary as bdry_c +from ..flow_solver.utils.boundary import rayleigh_boundary as bdry_r +from ..flow_solver.physics import hydrostatics class UserData(object): @@ -233,7 +234,7 @@ def sol_init(Sol, npf, elem, node, th, ud, seeds=None): ud.bdry_type[1] = opts.BdryType.RAYLEIGH if ud.bdry_type[1] == opts.BdryType.RAYLEIGH: - ud.tcy, ud.tny = bdry.get_tau_y(ud, elem, node, 0.5) + ud.tcy, ud.tny = bdry_r.get_tau_y(ud, elem, node, 0.5) A0 = 1.0e-1 / ud.u_ref Msq = ud.Msq @@ -312,7 +313,7 @@ def sol_init(Sol, npf, elem, node, th, ud, seeds=None): npf.p2_nodes[...] = pi_n - bdry.set_explicit_boundary_data(Sol, elem, ud, th, npf) + bdry_c.set_explicit_boundary_data(Sol, elem, ud, th, npf) if hasattr(ud, "mixed_run"): if ud.mixed_run: diff --git a/src/pybella/tests/test_travelling_vortex.py b/src/pybella/tests/test_travelling_vortex.py index a29c1df7..04a72e9a 100644 --- a/src/pybella/tests/test_travelling_vortex.py +++ b/src/pybella/tests/test_travelling_vortex.py @@ -1,7 +1,7 @@ import numpy as np from ..utils import options as opts -from ..flow_solver.utils import boundary as bdry +from ..flow_solver.utils.boundary import cell_boundary as bdry_c, node_boundary as bdry_n from ..flow_solver.physics import hydrostatics from ..flow_solver.numerics import implicit_euler from ..flow_solver.utils import cache @@ -248,7 +248,7 @@ def sol_init(Sol, npf, elem, node, th, ud, seed=None): th.Gamma * fac**2 * np.divide(p2c, npf.HydroState.rhoY0[igy:-igy]) ) - bdry.set_ghostcells_p2(npf.p2_cells, elem, ud) + bdry_n.set_ghostcells_p2(npf.p2_cells, elem, ud) xs = node.x[igxn:-igxn].reshape(-1, 1) ys = node.y[igyn:-igyn].reshape(1, -1) @@ -285,7 +285,7 @@ def sol_init(Sol, npf, elem, node, th, ud, seed=None): ud.nonhydrostasy = float(ud.is_nonhydrostatic) ud.compressibility = float(ud.is_compressible) - bdry.set_explicit_boundary_data(Sol, elem, ud, th, npf) + bdry_c.set_explicit_boundary_data(Sol, elem, ud, th, npf) if "imbal" in ud.aux: Sol.rhoY[...] = 1.0 diff --git a/src/pybella/tests/test_unstable_lamb.py b/src/pybella/tests/test_unstable_lamb.py index 0030493e..143d7e48 100644 --- a/src/pybella/tests/test_unstable_lamb.py +++ b/src/pybella/tests/test_unstable_lamb.py @@ -4,7 +4,8 @@ import numpy as np from ..flow_solver.physics import hydrostatics -from ..flow_solver.utils import boundary as bdry +from ..flow_solver.utils.boundary import cell_boundary as bdry_c +from ..flow_solver.utils.boundary import rayleigh_boundary as bdry_r from ..utils import options as opts from ..utils.data_structures import DiagnosticState @@ -269,10 +270,10 @@ def sol_init(Sol, npf, elem, node, th, ud, seeds=None): ud.bdry_type[1] = opts.BdryType.RAYLEIGH if ud.bdry_type[1] == opts.BdryType.RAYLEIGH: - ud.tcy, ud.tny = bdry.get_tau_y(ud, elem, node, 0.5) + ud.tcy, ud.tny = bdry_r.get_tau_y(ud, elem, node, 0.5) if ud.rayleigh_forcing: - ud.forcing_tcy, ud.forcing_tny = bdry.get_bottom_tau_y( + ud.forcing_tcy, ud.forcing_tny = bdry_r.get_bottom_tau_y( ud, elem, node, 0.2, cutoff=0.3 ) @@ -354,7 +355,7 @@ def sol_init(Sol, npf, elem, node, th, ud, seeds=None): npf.p2_nodes[...] = pi_n - bdry.set_explicit_boundary_data(Sol, elem, ud, th, npf) + bdry_c.set_explicit_boundary_data(Sol, elem, ud, th, npf) if hasattr(ud, "mixed_run"): if ud.mixed_run: From e634ee2178ffff113537cea7e876f04faf5ef7ae Mon Sep 17 00:00:00 2001 From: raychew Date: Tue, 17 Jun 2025 20:36:40 -0700 Subject: [PATCH 28/35] make cell_boundary and rayleigh_boundary accept mem as argument --- docs/source/content/boundary.rst | 2 +- src/pybella/data_assimilation/analysis.py | 4 +- src/pybella/data_assimilation/params.py | 4 +- .../flow_solver/discretisation/time_update.py | 21 +--- .../explicit_advection/compute_advection.py | 8 +- .../flow_solver/numerics/explicit_euler.py | 2 +- .../flow_solver/numerics/implicit_euler.py | 8 +- .../utils/boundary/cell_boundary.py | 111 +++++++++--------- .../utils/boundary/rayleigh_boundary.py | 30 ++--- src/pybella/flow_solver/utils/prepare.py | 19 +-- src/pybella/inputs/rising_bubble.py | 3 - .../tests/test_blending_warm_bubble.py | 2 - src/pybella/tests/test_internal_long_wave.py | 2 - src/pybella/tests/test_lamb_wave.py | 2 - src/pybella/tests/test_travelling_vortex.py | 3 +- src/pybella/tests/test_unstable_lamb.py | 2 - 16 files changed, 87 insertions(+), 136 deletions(-) diff --git a/docs/source/content/boundary.rst b/docs/source/content/boundary.rst index f7fbaee1..1854214a 100644 --- a/docs/source/content/boundary.rst +++ b/docs/source/content/boundary.rst @@ -4,7 +4,7 @@ Boundary handling ================= Boundary handling for the ghosts cells (:class:`discretization.kgrid.ElemSpaceDiscr`) and nodes (:class:`discretization.kgrid.NodeSpaceDiscr`) are handled in ``boundary.py``. -Cell boundarys are handled by the function :func:`inputs.boundary.set_explicit_boundary_data`. The bondary conditions are given in the initial user data file, :py:attr:`inputs.user_data.UserDataInit.bdry_type`. +Cell boundarys are handled by the function :func:`inputs.boundary.set_data`. The bondary conditions are given in the initial user data file, :py:attr:`inputs.user_data.UserDataInit.bdry_type`. For ghost cells in directions without gravity, the ghost cells are padded by the ``np.pad()`` function. diff --git a/src/pybella/data_assimilation/analysis.py b/src/pybella/data_assimilation/analysis.py index ca7f88c6..ac726b1e 100644 --- a/src/pybella/data_assimilation/analysis.py +++ b/src/pybella/data_assimilation/analysis.py @@ -30,7 +30,7 @@ def do_for_window(tout, outer_step, results, sst, writer): ###################################################### for mem in results: elem, node, sol, _, npf, th, _ = mem - bdry_c.set_explicit_boundary_data(sol, elem, sst.ud, th, npf) + bdry_c.set_ghost_cells(mem, sst.ud) bdry_n.set_ghostnodes_p2(npf.p2_nodes, node, sst.ud) # ens.set_members(results, tout) @@ -120,7 +120,7 @@ def do_for_window(tout, outer_step, results, sst, writer): ###################################################### for mem in results: elem, node, sol, npf, th, _, _ = mem - bdry_c.set_explicit_boundary_data(sol, elem, sst.ud, th, npf) + bdry_c.set_ghost_cells(mem, sst.ud) p2_nodes = npf.p2_nodes bdry_n.set_ghostnodes_p2(p2_nodes, node, sst.ud) diff --git a/src/pybella/data_assimilation/params.py b/src/pybella/data_assimilation/params.py index 43ad0d7e..b41e8022 100644 --- a/src/pybella/data_assimilation/params.py +++ b/src/pybella/data_assimilation/params.py @@ -130,7 +130,7 @@ def converter(results, N, npf, elem, node, th, ud): g = ud.g0 for n in range(N): - bdry_c.set_explicit_boundary_data(results[n][0], elem, ud, th, npf) + bdry_c.set_ghost_cells(results[n][0], elem, ud, th, npf) results[n][0].rhoY[...] = (g / 2.0 * results[n][0].rho ** 2) ** th.gamminv igy = elem.igy @@ -140,7 +140,7 @@ def converter(results, N, npf, elem, node, th, ud): pn = sp.signal.convolve(results[n][0].rhoY[:, igy, :], kernel, mode="valid") - bdry_c.set_explicit_boundary_data(results[n][0], elem, ud, th, npf) + bdry_c.set_ghost_cells(results[n][0], elem, ud, th, npf) pn = np.expand_dims(pn, 1) pn = np.repeat(pn, node.icy, axis=1) diff --git a/src/pybella/flow_solver/discretisation/time_update.py b/src/pybella/flow_solver/discretisation/time_update.py index 3cd11c04..ff25e265 100644 --- a/src/pybella/flow_solver/discretisation/time_update.py +++ b/src/pybella/flow_solver/discretisation/time_update.py @@ -33,7 +33,6 @@ def do( swe_to_lake = False while (mem.time.t < tout) and (mem.time.step < ud.stepmax): - label = "%.3d" % mem.time.step if mem.time.step == 0 and writer != None: @@ -119,15 +118,7 @@ def do( bdry_r.rayleigh_damping(mem.sol, mem.npf, ud, mem.elem, mem.node) bdry_r.apply_rayleigh_forcing( - mem.sol, - mem.npf, - ud, - mem.elem, - mem.node, - mem.time.t, - mem.time.step, - dt, - mem.th, + mem, ud, dt ) debug_writer.write(f"{label}_after_ebnaimp") @@ -187,15 +178,7 @@ def do( # bottom rayleigh forcing bdry_r.apply_rayleigh_forcing( - mem.sol, - mem.npf, - ud, - mem.elem, - mem.node, - mem.time.t, - mem.time.step, - dt, - mem.th, + mem, ud, dt, half=False, Sol_half_new=Sol_half_new, npf_half_new=npf_half_new, diff --git a/src/pybella/flow_solver/numerics/explicit_advection/compute_advection.py b/src/pybella/flow_solver/numerics/explicit_advection/compute_advection.py index be9db3a8..c1824f2e 100644 --- a/src/pybella/flow_solver/numerics/explicit_advection/compute_advection.py +++ b/src/pybella/flow_solver/numerics/explicit_advection/compute_advection.py @@ -25,7 +25,7 @@ def strange_splitting(mem, ud, dt, odd, label, writer=None): diagnostics=diagnostics if use_diagnostics else None, ) - bdry_c.set_explicit_boundary_data(mem.sol, mem.elem, ud, mem.th, mem.npf) + bdry_c.set_ghost_cells(mem, ud) def first_order_runge_kutta(mem, ud, dt): @@ -55,7 +55,7 @@ def first_order_runge_kutta(mem, ud, dt): for dim in range(ndim): _apply_dimensional_flux_update(mem, dim, time_step, left_idx, right_idx) - bdry_c.set_explicit_boundary_data(mem.sol, mem.elem, ud, mem.th, mem.npf) + bdry_c.set_ghost_cells(mem, ud) def _update_solution_variables(sol, flux, lmbda, left_idx, right_idx, variables=None): @@ -78,8 +78,8 @@ def _explicit_step_and_flux(mem, ud, lmbda, split_step, tag=None): This function updates the solution `Sol` container in-place if a Strang-splitting is used, or returns the `flux` data container if a Runge-Kutta method is used. """ - bdry_c.set_explicit_boundary_data( - mem.sol, mem.elem, ud, mem.th, mem.npf, step=split_step + bdry_c.set_ghost_cells( + mem, ud, step=split_step ) flux = mem.cache.get_flux_containers(mem.elem)[split_step] diff --git a/src/pybella/flow_solver/numerics/explicit_euler.py b/src/pybella/flow_solver/numerics/explicit_euler.py index a1b723d2..64e4aa87 100644 --- a/src/pybella/flow_solver/numerics/explicit_euler.py +++ b/src/pybella/flow_solver/numerics/explicit_euler.py @@ -79,4 +79,4 @@ def do_forward_step(mem, ud, dt, writer=None, label=None, debug=False): # Boundary conditions bdry_n.set_ghostnodes_p2(npf.p2_nodes, node, ud) - bdry_c.set_explicit_boundary_data(sol, elem, ud, th, npf) + bdry_c.set_ghost_cells(mem, ud) diff --git a/src/pybella/flow_solver/numerics/implicit_euler.py b/src/pybella/flow_solver/numerics/implicit_euler.py index 389e20bb..e0264ec1 100644 --- a/src/pybella/flow_solver/numerics/implicit_euler.py +++ b/src/pybella/flow_solver/numerics/implicit_euler.py @@ -37,7 +37,7 @@ def do_explicit_part(mem, ud, dt): mem.sol.mod_bg_wind(ud, +1.0) - bdry_c.set_explicit_boundary_data(mem.sol, mem.elem, ud, mem.th, mem.npf) + bdry_c.set_ghost_cells(mem, ud) def do_implicit_part( @@ -68,7 +68,7 @@ def write_debug_data(key, data): # Set boundary data and compute operator coefficients (consolidated) sol_for_boundary = Sol0 if Sol0 is not None else mem.sol - bdry_c.set_explicit_boundary_data(sol_for_boundary, mem.elem, ud, mem.th, mem.npf) + bdry_c.set_ghost_cells(mem, ud, sol=sol_for_boundary) operator_coefficients_nodes(mem, ud, dt) # Debug output for w components @@ -86,7 +86,7 @@ def write_debug_data(key, data): # Boundary and correction operations # bdry.set_ghostnodes_p2(mem.npf.p2_nodes, mem.node, ud) _correction_nodes(mem, ud, dt, mem.npf.p2_nodes, 0) - bdry_c.set_explicit_boundary_data(mem.sol, mem.elem, ud, mem.th, mem.npf) + bdry_c.set_ghost_cells(mem, ud) # Compute RHS mem.npf.rhs[...] = divergence.compute_at_nodes(mem.npf.rhs, mem.elem, mem.sol, ud) @@ -118,7 +118,7 @@ def write_debug_data(key, data): mem.npf.p2_nodes[...] += p2_full bdry_n.set_ghostnodes_p2(mem.npf.p2_nodes, mem.node, ud) - bdry_c.set_explicit_boundary_data(mem.sol, mem.elem, ud, mem.th, mem.npf) + bdry_c.set_ghost_cells(mem, ud) def _correction_nodes(mem, ud, dt, p, updt_chi): diff --git a/src/pybella/flow_solver/utils/boundary/cell_boundary.py b/src/pybella/flow_solver/utils/boundary/cell_boundary.py index 550e448a..96546718 100644 --- a/src/pybella/flow_solver/utils/boundary/cell_boundary.py +++ b/src/pybella/flow_solver/utils/boundary/cell_boundary.py @@ -6,29 +6,25 @@ from ....utils import options as opts from .common import get_ghost_padding - -def set_explicit_boundary_data(Sol, elem, ud, th, npf, step=None): +def set_ghost_cells(mem, ud, step=None, sol=None): """ In-place update of the ghost cells in :class:`management.variable.Vars` given the boundary conditions specified by :class:`inputs.user_data.UserDataInit`. Parameters ---------- - Sol : :class:`management.variable.Vars` - Solution data container - elem : :class:`discretization.kgrid.ElemSpaceDiscr` - Cells grid + mem : object + Memory container with sol, elem, th, and npf attributes ud : :class:`inputs.user_data.UserDataInit` Data container for the initial conditions - th : :class:`physics.gas_dynamics.thermodynamic.init` - Thermodynamic variables of the system - npf : :class:`physics.low_mach.npf.MPV` - Variables relating to the elliptic solver step : int, optional Current step """ - igs = elem.igs - ndim = elem.ndim + igs = mem.elem.igs + ndim = mem.elem.ndim + + if sol is None: + sol = mem.sol # if step parameter is not None, then we are in the advection directional Strang-splitting, where the array has already flipped, and we should only update the relevant boundaries, i.e. those in the direction of the current Strang-split-step. if step == None: @@ -47,10 +43,10 @@ def set_explicit_boundary_data(Sol, elem, ud, th, npf, step=None): # Do this for the axes that do not have gravity. # Periodic BC. if ud.bdry_type[current_step] == opts.BdryType.PERIODIC: - set_boundary(Sol, ghost_padding, "wrap", idx, step=None) + _set_boundary(sol, ghost_padding, "wrap", idx) # Wall BC. elif ud.bdry_type[current_step] == opts.BdryType.WALL: - set_boundary(Sol, ghost_padding, "symmetric", idx, step=None) + _set_boundary(sol, ghost_padding, "symmetric", idx) elif ud.bdry_type[current_step] == opts.BdryType.RAYLEIGH: assert 0, "Rayleigh boundary not defined on x-direction." @@ -73,48 +69,48 @@ def set_explicit_boundary_data(Sol, elem, ud, th, npf, step=None): y_axs = ndim - 1 else: y_axs = 1 - nlast, nsource, nimage = get_gravity_padding( - ndim, current_idx, direction, offset, elem, y_axs=y_axs + nlast, nsource, nimage = _get_gravity_padding( + ndim, current_idx, direction, offset, mem.elem, y_axs=y_axs ) - Y_last = Sol.rhoY[nlast] / Sol.rho[nlast] + Y_last = sol.rhoY[nlast] / sol.rho[nlast] rhoYv_image = ( - -Sol.rhov[nsource] * Sol.rhoY[nsource] / Sol.rho[nsource] + -sol.rhov[nsource] * sol.rhoY[nsource] / sol.rho[nsource] ) - S = 1.0 / ud.stratification(elem.y[nimage[y_axs]]) + S = 1.0 / ud.stratification(mem.elem.y[nimage[y_axs]]) if hasattr(ud, "ATMOSPHERIC_EXTENSION"): dpi = ( - npf.HydroState.p20[nimage[y_axs]] - - npf.HydroState.p20[nlast[y_axs]] + mem.npf.HydroState.p20[nimage[y_axs]] + - mem.npf.HydroState.p20[nlast[y_axs]] ) * ud.Msq else: dpi = ( direction - * (th.Gamma * g) + * (mem.th.Gamma * g) * 0.5 - * elem.dy + * mem.elem.dy * (1.0 / Y_last + S) ) rhoY = ( - ((Sol.rhoY[nlast] ** th.gm1) + dpi) ** th.gm1inv + ((sol.rhoY[nlast] ** mem.th.gm1) + dpi) ** mem.th.gm1inv if ud.is_compressible == 1 - else npf.HydroState.rhoY0[nimage[y_axs]] + else mem.npf.HydroState.rhoY0[nimage[y_axs]] ) rho = rhoY * S - Y_source = Sol.rhoY[nsource] / Sol.rho[nsource] + Y_source = sol.rhoY[nsource] / sol.rho[nsource] Y_image = rhoY / rho if hasattr(ud, "ATMOSPHERIC_EXTENSION"): if direction > 0: # if bottom boundary - v = Sol.rhov[nsource] * Y_source / Sol.rho[nsource] * rho + v = sol.rhov[nsource] * Y_source / sol.rho[nsource] * rho else: # if top boundary - v = Sol.rhov[nsource] * Y_source + v = sol.rhov[nsource] * Y_source Th_slc = rhoY / rho / Y_last @@ -122,31 +118,31 @@ def set_explicit_boundary_data(Sol, elem, ud, th, npf, step=None): v = rhoYv_image / rhoY Th_slc = 1.0 - u = Sol.rhou[nsource] / Sol.rho[nsource] - w = Sol.rhow[nsource] / Sol.rho[nsource] - X = Sol.rhoX[nsource] / Sol.rho[nsource] + u = sol.rhou[nsource] / sol.rho[nsource] + w = sol.rhow[nsource] / sol.rho[nsource] + X = sol.rhoX[nsource] / sol.rho[nsource] - Sol.rho[nimage] = rho - Sol.rhou[nimage] = rho * u * Th_slc + sol.rho[nimage] = rho + sol.rhou[nimage] = rho * u * Th_slc if hasattr(ud, "ATMOSPHERIC_EXTENSION"): - Sol.rhov[nimage] = -v / Y_image + sol.rhov[nimage] = -v / Y_image else: - Sol.rhov[nimage] = rho * v - Sol.rhow[nimage] = rho * w * Th_slc - Sol.rhoY[nimage] = rhoY - Sol.rhoX[nimage] = rho * X + sol.rhov[nimage] = rho * v + sol.rhow[nimage] = rho * w * Th_slc + sol.rhoY[nimage] = rhoY + sol.rhoX[nimage] = rho * X offset += 1 -def set_boundary(Sol, pads, btype, idx, step=None): +def _set_boundary(sol, pads, btype, idx): """ - Called by the function :func:`inputs.boundary.set_explicit_boundary_data`. Pads in-place the ghost cells for a given boundary type. + Called by the function :func:`inputs.boundary.set_data`. Pads in-place the ghost cells for a given boundary type. Parameters ---------- - Sol : :class:`management.variable.Vars` - Solution data container. + sol : :class:`management.variable.Vars` + solution data container. pads : tuple A tuple containing the number of ghost cells to pad at each end. btype : string @@ -160,28 +156,28 @@ def set_boundary(Sol, pads, btype, idx, step=None): If we are in the advection routine with the flipped arrays according to the directional Strang-splitting, we want to pad the correct direction. `step=0`, pads the x-direction while `step=1` pads the y-direction. """ - Sol.rho[...] = np.pad(Sol.rho[idx], pads, btype) + sol.rho[...] = np.pad(sol.rho[idx], pads, btype) if btype == "symmetric": - Sol.rhov[...] = np.pad(Sol.rhov[idx], pads, negative_symmetric) - Sol.rho[...] = np.pad(Sol.rho[idx], pads, "symmetric") - Sol.rhou[...] = np.pad(Sol.rhou[idx], pads, "symmetric") + sol.rhov[...] = np.pad(sol.rhov[idx], pads, _negative_symmetric) + sol.rho[...] = np.pad(sol.rho[idx], pads, "symmetric") + sol.rhou[...] = np.pad(sol.rhou[idx], pads, "symmetric") elif btype == "constant": - Sol.rho[...] = np.pad(Sol.rho[idx], pads, "symmetric") - Sol.rhou[...] = np.pad(Sol.rhou[idx], pads, "symmetric") - Sol.rhov[...] = np.pad(Sol.rhov[idx], pads, btype) - Sol.rhow[...] = np.pad(Sol.rhow[idx], pads, "symmetric") + sol.rho[...] = np.pad(sol.rho[idx], pads, "symmetric") + sol.rhou[...] = np.pad(sol.rhou[idx], pads, "symmetric") + sol.rhov[...] = np.pad(sol.rhov[idx], pads, btype) + sol.rhow[...] = np.pad(sol.rhow[idx], pads, "symmetric") btype = "symmetric" else: - Sol.rhou[...] = np.pad(Sol.rhou[idx], pads, btype) - Sol.rhov[...] = np.pad(Sol.rhov[idx], pads, btype) - Sol.rhow[...] = np.pad(Sol.rhow[idx], pads, btype) + sol.rhou[...] = np.pad(sol.rhou[idx], pads, btype) + sol.rhov[...] = np.pad(sol.rhov[idx], pads, btype) + sol.rhow[...] = np.pad(sol.rhow[idx], pads, btype) - Sol.rhoY[...] = np.pad(Sol.rhoY[idx], pads, btype) - Sol.rhoX[...] = np.pad(Sol.rhoX[idx], pads, btype) + sol.rhoY[...] = np.pad(sol.rhoY[idx], pads, btype) + sol.rhoX[...] = np.pad(sol.rhoX[idx], pads, btype) -def negative_symmetric(vector, pad_width, iaxis, kwargs=None): +def _negative_symmetric(vector, pad_width, iaxis, kwargs=None): """ Taken from the reference: @@ -210,7 +206,7 @@ def negative_symmetric(vector, pad_width, iaxis, kwargs=None): return vector -def get_gravity_padding(ndim, cur_idx, direction, offset, elem, y_axs=None): +def _get_gravity_padding(ndim, cur_idx, direction, offset, elem, y_axs=None): """ Parameters ---------- @@ -232,7 +228,6 @@ def get_gravity_padding(ndim, cur_idx, direction, offset, elem, y_axs=None): cur_idx += offset * ((elem.icy - 1) - 2 * cur_idx) gravity_padding = [slice(None)] * ndim if y_axs == None: - # y_axs = ndim - 1 y_axs = 1 nlast = np.copy(gravity_padding) diff --git a/src/pybella/flow_solver/utils/boundary/rayleigh_boundary.py b/src/pybella/flow_solver/utils/boundary/rayleigh_boundary.py index ce903e2b..28d08dfb 100644 --- a/src/pybella/flow_solver/utils/boundary/rayleigh_boundary.py +++ b/src/pybella/flow_solver/utils/boundary/rayleigh_boundary.py @@ -94,15 +94,9 @@ def get_bottom_tau_y(ud, elem, node, alpha, cutoff=0.5): def apply_rayleigh_forcing( - Sol, - npf, + mem, ud, - elem, - node, - t, - step, dt, - th, half=True, Sol_half_new=None, npf_half_new=None, @@ -117,32 +111,32 @@ def apply_rayleigh_forcing( reader = io.read_input(ud.rayleigh_forcing_fn, ud.rayleigh_forcing_path) if Sol_half_new is None or npf_half_new is None: - Sol_half_new = copy.deepcopy(Sol) - npf_half_new = copy.deepcopy(npf) + Sol_half_new = copy.deepcopy(mem.sol) + npf_half_new = copy.deepcopy(mem.npf) - time_tag = "%.3d_after_full_step" % step + time_tag = "%.3d_after_full_step" % mem.time.step reader.get_data(Sol_half_new, npf_half_new, time_tag, half=half) up = Sol_half_new.rhou / Sol_half_new.rho vp = Sol_half_new.rhov / Sol_half_new.rho - Yp = Sol_half_new.rhoY / Sol_half_new.rho - npf.HydroState.Y0.reshape(1, -1) + Yp = Sol_half_new.rhoY / Sol_half_new.rho - mem.npf.HydroState.Y0.reshape(1, -1) pi = npf_half_new.p2_nodes - rayleigh_damping(Sol, npf, ud, elem, node, [up, vp, Yp, pi, t + t_offset]) + rayleigh_damping(mem.sol, mem.npf, ud, mem.elem, mem.node, [up, vp, Yp, pi, mem.time.t + t_offset]) elif ud.rayleigh_forcing_type == "func": s = 5.0e-3 + 1e-4 + 0e-5 - ud.rf_bot.eigenfunction(t + t_offset, s) - up, vp, Yp, pi = ud.rf_bot.dehatter(th) + ud.rf_bot.eigenfunction(mem.time.t + t_offset, s) + up, vp, Yp, pi = ud.rf_bot.dehatter(mem.th) - ud.rf_bot.eigenfunction(t + t_offset, s, grid="n") - _, _, _, pi_n = ud.rf_bot.dehatter(th, grid="n") + ud.rf_bot.eigenfunction(mem.time.t + t_offset, s, grid="n") + _, _, _, pi_n = ud.rf_bot.dehatter(mem.th, grid="n") rayleigh_damping( - Sol, npf, ud, elem, node, [up, vp, Yp, pi_n, t + t_offset] + mem.sol, mem.npf, ud, mem.elem, mem.node, [up, vp, Yp, pi_n, mem.time.t + t_offset] ) - bdry_c.set_explicit_boundary_data(Sol, elem, ud, th, npf) + bdry_c.set_ghost_cells(mem, ud) def rayleigh_damping(Sol, npf, ud, elem, node, forcing=None): u = Sol.rhou / Sol.rho # [elem.i2] diff --git a/src/pybella/flow_solver/utils/prepare.py b/src/pybella/flow_solver/utils/prepare.py index 1aba0ee3..3ab6f920 100644 --- a/src/pybella/flow_solver/utils/prepare.py +++ b/src/pybella/flow_solver/utils/prepare.py @@ -4,7 +4,8 @@ from ..physics import hydrostatics from ..physics import thermodynamics as gd_thermodynamics from ..discretisation import grid as dis_grid -from . import fields, cache, boundary as bdry +from . import fields, cache +from .boundary import cell_boundary as bdry_c # test module from ...tests import diagnostics as diag @@ -45,10 +46,6 @@ def initialise(): io.init_logger(ud) - # handle radiative BC - if ud.bdry_type[1].value == "radiation": - ud.tcy, ud.tny = bdry.get_tau_y(ud, elem, node, 0.5) - ########################################################## # Initialise test module ########################################################## @@ -61,15 +58,6 @@ def initialise(): # Populate data structures ########################################################## - # member_state = data_structures.MemberState( - # elem=elem, - # node=node, - # Sol=Sol, - # flux=flux, - # npf=npf, - # th=th, - # ) - ensemble_state = data_structures.EnsembleState() sol = sol_init(sol, npf, elem, node, th, ud) @@ -81,6 +69,9 @@ def initialise(): elem=elem, node=node, sol=sol, npf=npf, th=th, cache=flow_cache ) + for member in ensemble_state.members: + bdry_c.set_ghost_cells(member, ud) + restart_params = data_structures.RestartParameters( ud_rewrite=ud_rewrite, dap_rewrite=dap_rewrite, diff --git a/src/pybella/inputs/rising_bubble.py b/src/pybella/inputs/rising_bubble.py index 066eab53..0a3e1378 100644 --- a/src/pybella/inputs/rising_bubble.py +++ b/src/pybella/inputs/rising_bubble.py @@ -1,7 +1,5 @@ import numpy as np from ..flow_solver.physics import hydrostatics -from ..flow_solver.utils.boundary import cell_boundary as bdry_c - class UserData(object): # Nsq_ref = grav * 1.3e-05 @@ -93,6 +91,5 @@ def sol_init(Sol, npf, elem, node, th, ud, seed=None): rhoY = npf.HydroState_n.rhoY0[0] npf.p2_nodes[...] = (p - npf.HydroState_n.p0[0]) / rhoY / ud.Msq - bdry_c.set_explicit_boundary_data(Sol, elem, ud, th, npf) return Sol diff --git a/src/pybella/tests/test_blending_warm_bubble.py b/src/pybella/tests/test_blending_warm_bubble.py index 5d03c617..32e4a4e8 100644 --- a/src/pybella/tests/test_blending_warm_bubble.py +++ b/src/pybella/tests/test_blending_warm_bubble.py @@ -1,6 +1,5 @@ import numpy as np from ..flow_solver.physics import hydrostatics -from ..flow_solver.utils.boundary import cell_boundary as bdry_c from ..utils.data_structures import DiagnosticState @@ -111,6 +110,5 @@ def sol_init(Sol, npf, elem, node, th, ud, seed=None): rhoY = npf.HydroState_n.rhoY0 npf.p2_nodes[...] = (p - npf.HydroState_n.p0) / rhoY / ud.Msq - bdry_c.set_explicit_boundary_data(Sol, elem, ud, th, npf) return Sol diff --git a/src/pybella/tests/test_internal_long_wave.py b/src/pybella/tests/test_internal_long_wave.py index 18cc9cc1..4a3772f2 100644 --- a/src/pybella/tests/test_internal_long_wave.py +++ b/src/pybella/tests/test_internal_long_wave.py @@ -3,7 +3,6 @@ from ..utils import options as opts from ..flow_solver.utils import fields -from ..flow_solver.utils.boundary import cell_boundary as bdry_c from ..flow_solver.physics import hydrostatics from ..utils.data_structures import DiagnosticState @@ -194,7 +193,6 @@ def sol_init(Sol, npf, elem, node, th, ud, seeds=None): if "imbal" in ud.aux: npf.p2_nodes[...] = 0.0 - bdry_c.set_explicit_boundary_data(Sol, elem, ud, th, npf) return Sol diff --git a/src/pybella/tests/test_lamb_wave.py b/src/pybella/tests/test_lamb_wave.py index 45a8ee4c..c708cd5e 100644 --- a/src/pybella/tests/test_lamb_wave.py +++ b/src/pybella/tests/test_lamb_wave.py @@ -3,7 +3,6 @@ from ..utils import options as opts from ..utils.data_structures import DiagnosticState -from ..flow_solver.utils.boundary import cell_boundary as bdry_c from ..flow_solver.utils.boundary import rayleigh_boundary as bdry_r from ..flow_solver.physics import hydrostatics @@ -313,7 +312,6 @@ def sol_init(Sol, npf, elem, node, th, ud, seeds=None): npf.p2_nodes[...] = pi_n - bdry_c.set_explicit_boundary_data(Sol, elem, ud, th, npf) if hasattr(ud, "mixed_run"): if ud.mixed_run: diff --git a/src/pybella/tests/test_travelling_vortex.py b/src/pybella/tests/test_travelling_vortex.py index 04a72e9a..9535b4b0 100644 --- a/src/pybella/tests/test_travelling_vortex.py +++ b/src/pybella/tests/test_travelling_vortex.py @@ -1,7 +1,7 @@ import numpy as np from ..utils import options as opts -from ..flow_solver.utils.boundary import cell_boundary as bdry_c, node_boundary as bdry_n +from ..flow_solver.utils.boundary import node_boundary as bdry_n from ..flow_solver.physics import hydrostatics from ..flow_solver.numerics import implicit_euler from ..flow_solver.utils import cache @@ -285,7 +285,6 @@ def sol_init(Sol, npf, elem, node, th, ud, seed=None): ud.nonhydrostasy = float(ud.is_nonhydrostatic) ud.compressibility = float(ud.is_compressible) - bdry_c.set_explicit_boundary_data(Sol, elem, ud, th, npf) if "imbal" in ud.aux: Sol.rhoY[...] = 1.0 diff --git a/src/pybella/tests/test_unstable_lamb.py b/src/pybella/tests/test_unstable_lamb.py index 143d7e48..812230f3 100644 --- a/src/pybella/tests/test_unstable_lamb.py +++ b/src/pybella/tests/test_unstable_lamb.py @@ -4,7 +4,6 @@ import numpy as np from ..flow_solver.physics import hydrostatics -from ..flow_solver.utils.boundary import cell_boundary as bdry_c from ..flow_solver.utils.boundary import rayleigh_boundary as bdry_r from ..utils import options as opts @@ -355,7 +354,6 @@ def sol_init(Sol, npf, elem, node, th, ud, seeds=None): npf.p2_nodes[...] = pi_n - bdry_c.set_explicit_boundary_data(Sol, elem, ud, th, npf) if hasattr(ud, "mixed_run"): if ud.mixed_run: From 6026bf7099a489f54df76161b450d500f01e4552 Mon Sep 17 00:00:00 2001 From: raychew Date: Tue, 17 Jun 2025 20:40:52 -0700 Subject: [PATCH 29/35] cleaned up rayleigh_boundary --- .../flow_solver/discretisation/time_update.py | 16 ++++---- .../utils/boundary/rayleigh_boundary.py | 41 ++++++++----------- 2 files changed, 25 insertions(+), 32 deletions(-) diff --git a/src/pybella/flow_solver/discretisation/time_update.py b/src/pybella/flow_solver/discretisation/time_update.py index ff25e265..ae0f1984 100644 --- a/src/pybella/flow_solver/discretisation/time_update.py +++ b/src/pybella/flow_solver/discretisation/time_update.py @@ -78,7 +78,7 @@ def do( """ ) - Sol0 = copy.deepcopy(mem.sol) + sol0 = copy.deepcopy(mem.sol) debug_writer.write(f"{label}_before_flux") @@ -102,20 +102,20 @@ def do( debug_writer.write(f"{label}_after_ebnaexp") - Sol0_increment = Sol0 if ud.is_compressible == 0 else None + sol0_increment = sol0 if ud.is_compressible == 0 else None implicit_euler.do_implicit_part( mem, ud, 0.5 * dt, - Sol0=Sol0_increment, + sol0=sol0_increment, label=f"{label}_after_ebnaimp", writer=writer, ) if ud.bdry_type[1] == opts.BdryType.RAYLEIGH: # top rayleight damping - bdry_r.rayleigh_damping(mem.sol, mem.npf, ud, mem.elem, mem.node) + bdry_r.rayleigh_damping(mem.sol, mem.npf, ud) bdry_r.apply_rayleigh_forcing( mem, ud, dt @@ -127,7 +127,7 @@ def do( debug_writer.write(f"{label}_after_half_step") - Sol_half_new = copy.deepcopy(mem.sol) + sol_half_new = copy.deepcopy(mem.sol) npf_half_new = copy.deepcopy(mem.npf) mem.npf.p2_nodes_half = np.copy(mem.npf.p2_nodes) @@ -136,7 +136,7 @@ def do( ): mem.npf.p2_nodes[...] = mem.npf.p2_nodes0 - mem.sol = copy.deepcopy(Sol0) + mem.sol = copy.deepcopy(sol0) explicit_euler.do_forward_step( mem, @@ -174,13 +174,13 @@ def do( if ud.bdry_type[1] == opts.BdryType.RAYLEIGH: # top rayleight damping - bdry_r.rayleigh_damping(mem.sol, mem.npf, ud, mem.elem, mem.node) + bdry_r.rayleigh_damping(mem.sol, mem.npf, ud) # bottom rayleigh forcing bdry_r.apply_rayleigh_forcing( mem, ud, dt, half=False, - Sol_half_new=Sol_half_new, + sol_half_new=sol_half_new, npf_half_new=npf_half_new, ) diff --git a/src/pybella/flow_solver/utils/boundary/rayleigh_boundary.py b/src/pybella/flow_solver/utils/boundary/rayleigh_boundary.py index 28d08dfb..02a6caa3 100644 --- a/src/pybella/flow_solver/utils/boundary/rayleigh_boundary.py +++ b/src/pybella/flow_solver/utils/boundary/rayleigh_boundary.py @@ -87,9 +87,6 @@ def get_bottom_tau_y(ud, elem, node, alpha, cutoff=0.5): tauc_y = dd * tauc_y / np.abs(tauc_y).max() taun_y = dd * taun_y / np.abs(taun_y).max() - # tauc_y = tauc_y[2:-2] - # taun_y = taun_y[2:-2] - return tauc_y, taun_y @@ -98,7 +95,7 @@ def apply_rayleigh_forcing( ud, dt, half=True, - Sol_half_new=None, + sol_half_new=None, npf_half_new=None, ): """Apply Rayleigh forcing boundary condition (file or function based).""" @@ -110,19 +107,19 @@ def apply_rayleigh_forcing( if ud.rayleigh_forcing_type == "file": reader = io.read_input(ud.rayleigh_forcing_fn, ud.rayleigh_forcing_path) - if Sol_half_new is None or npf_half_new is None: - Sol_half_new = copy.deepcopy(mem.sol) + if sol_half_new is None or npf_half_new is None: + sol_half_new = copy.deepcopy(mem.sol) npf_half_new = copy.deepcopy(mem.npf) time_tag = "%.3d_after_full_step" % mem.time.step - reader.get_data(Sol_half_new, npf_half_new, time_tag, half=half) + reader.get_data(sol_half_new, npf_half_new, time_tag, half=half) - up = Sol_half_new.rhou / Sol_half_new.rho - vp = Sol_half_new.rhov / Sol_half_new.rho - Yp = Sol_half_new.rhoY / Sol_half_new.rho - mem.npf.HydroState.Y0.reshape(1, -1) + up = sol_half_new.rhou / sol_half_new.rho + vp = sol_half_new.rhov / sol_half_new.rho + Yp = sol_half_new.rhoY / sol_half_new.rho - mem.npf.HydroState.Y0.reshape(1, -1) pi = npf_half_new.p2_nodes - rayleigh_damping(mem.sol, mem.npf, ud, mem.elem, mem.node, [up, vp, Yp, pi, mem.time.t + t_offset]) + rayleigh_damping(mem.sol, mem.npf, ud, [up, vp, Yp, pi, mem.time.t + t_offset]) elif ud.rayleigh_forcing_type == "func": s = 5.0e-3 + 1e-4 + 0e-5 @@ -133,16 +130,16 @@ def apply_rayleigh_forcing( _, _, _, pi_n = ud.rf_bot.dehatter(mem.th, grid="n") rayleigh_damping( - mem.sol, mem.npf, ud, mem.elem, mem.node, [up, vp, Yp, pi_n, mem.time.t + t_offset] + mem.sol, mem.npf, ud, [up, vp, Yp, pi_n, mem.time.t + t_offset] ) bdry_c.set_ghost_cells(mem, ud) -def rayleigh_damping(Sol, npf, ud, elem, node, forcing=None): - u = Sol.rhou / Sol.rho # [elem.i2] - v = Sol.rhov / Sol.rho # [elem.i2] - Y = Sol.rhoY / Sol.rho # [elem.i2] - rho = Sol.rho # [elem.i2] +def rayleigh_damping(sol, npf, ud, forcing=None): + u = sol.rhou / sol.rho # [elem.i2] + v = sol.rhov / sol.rho # [elem.i2] + Y = sol.rhoY / sol.rho # [elem.i2] + rho = sol.rho # [elem.i2] if ud.bdry_type[1] == opts.BdryType.RAYLEIGH: tcy, tny = ud.tcy, ud.tny @@ -161,13 +158,9 @@ def rayleigh_damping(Sol, npf, ud, elem, node, forcing=None): C = ud.Cs * ud.u_ref Gam = N * G / C Om = ud.coriolis_strength[2] / 2.0 / ud.t_ref - # Om = 7.292 * 1e-5 / ud.t_ref growth_rate = np.sqrt(Om * C * Gam) mfac = np.exp(growth_rate * t * ud.t_ref) - # if np.all(ud.coriolis_strength) == 0.0: - # if ud.trad_forcing: - # mfac = 1.0 else: mfac = 1.0 @@ -191,7 +184,7 @@ def rayleigh_damping(Sol, npf, ud, elem, node, forcing=None): Ybar = npf.HydroState.Y0.reshape(1, -1) Y += tcy * (Y - Ybar) + c_f * (tcy_f * (Y - Ybar) + np.abs(tcy_f) * mfac * Y_f) - Sol.rhou[...] = rho * u - Sol.rhov[...] = rho * v - Sol.rhoY[...] = rho * Y + sol.rhou[...] = rho * u + sol.rhov[...] = rho * v + sol.rhoY[...] = rho * Y From 69cde117215bd81a1a84861d81c619041e8cdd64 Mon Sep 17 00:00:00 2001 From: raychew Date: Tue, 17 Jun 2025 21:09:33 -0700 Subject: [PATCH 30/35] refactored cell_boundary fixed minor bug with set_boundary on rho --- .../utils/boundary/cell_boundary.py | 340 ++++++++++-------- 1 file changed, 192 insertions(+), 148 deletions(-) diff --git a/src/pybella/flow_solver/utils/boundary/cell_boundary.py b/src/pybella/flow_solver/utils/boundary/cell_boundary.py index 96546718..f3a5bfe1 100644 --- a/src/pybella/flow_solver/utils/boundary/cell_boundary.py +++ b/src/pybella/flow_solver/utils/boundary/cell_boundary.py @@ -6,9 +6,146 @@ from ....utils import options as opts from .common import get_ghost_padding +class BoundaryHandler: + """Handles different types of boundary conditions for ghost cells.""" + + def __init__(self, mem, ud): + self.mem = mem + self.ud = ud + self.igs = mem.elem.igs + self.ndim = mem.elem.ndim + + def apply_no_gravity_boundary(self, sol, current_step, ghost_padding, idx): + """Apply boundary conditions for axes without gravity.""" + bdry_type = self.ud.bdry_type[current_step] + + if bdry_type == opts.BdryType.PERIODIC: + _set_boundary(sol, ghost_padding, "wrap", idx) + elif bdry_type == opts.BdryType.WALL: + _set_boundary(sol, ghost_padding, "symmetric", idx) + elif bdry_type == opts.BdryType.RAYLEIGH: + raise AssertionError("Rayleigh boundary not defined on x-direction.") + + def apply_gravity_boundary(self, sol, dim, ghost_padding, step): + """Apply boundary conditions for axes with gravity.""" + gravity_axis = dim + g = self.ud.gravity_strength[gravity_axis] + direction = -1.0 + offset = 0 + + for side in ghost_padding[gravity_axis]: + direction *= -1 + self._process_ghost_cells_side(sol, side, dim, direction, offset, step, g) + offset += 1 + + def _process_ghost_cells_side(self, sol, side, dim, direction, offset, step, g): + """Process ghost cells for one side of the boundary.""" + y_axs = self.ndim - 1 if step is not None else 1 + + for current_idx in np.arange(side)[::-1]: + indices = self._get_gravity_indices(current_idx, direction, offset, y_axs) + ghost_values = self._calculate_ghost_values(sol, indices, direction, g, y_axs) + self._assign_ghost_values(sol, indices['image'], ghost_values) + + def _get_gravity_indices(self, current_idx, direction, offset, y_axs): + """Get the indices for last, source, and image cells.""" + nlast, nsource, nimage = _get_gravity_padding( + self.ndim, current_idx, direction, offset, self.mem.elem, y_axs=y_axs + ) + return { + 'last': nlast, + 'source': nsource, + 'image': nimage + } + + def _calculate_ghost_values(self, sol, indices, direction, g, y_axs): + """Calculate values for ghost cells with gravity.""" + nlast, nsource, nimage = indices['last'], indices['source'], indices['image'] + + # Calculate basic quantities + Y_last = sol.rhoY[nlast] / sol.rho[nlast] + Y_source = sol.rhoY[nsource] / sol.rho[nsource] + + rhoYv_image = -sol.rhov[nsource] * sol.rhoY[nsource] / sol.rho[nsource] + S = 1.0 / self.ud.stratification(self.mem.elem.y[nimage[y_axs]]) + + # Calculate pressure difference + dpi = self._calculate_pressure_difference(nlast, nimage, direction, g, Y_last, S, y_axs) + + # Calculate density and mass fraction + rho, rhoY = self._calculate_density_and_mass_fraction(sol, nlast, nimage, dpi, S, y_axs) + Y_image = rhoY / rho + + # Calculate velocity components + velocities = self._calculate_velocities(sol, nsource, rhoYv_image, rhoY, Y_source, Y_image, direction) + + return { + 'rho': rho, + 'rhoY': rhoY, + 'u': sol.rhou[nsource] / sol.rho[nsource], + 'v': velocities['v'], + 'w': sol.rhow[nsource] / sol.rho[nsource], + 'X': sol.rhoX[nsource] / sol.rho[nsource], + 'Th_slc': velocities.get('Th_slc', 1.0) + } + + def _calculate_pressure_difference(self, nlast, nimage, direction, g, Y_last, S, y_axs): + """Calculate pressure difference for ghost cells.""" + if hasattr(self.ud, "ATMOSPHERIC_EXTENSION"): + return ( + self.mem.npf.HydroState.p20[nimage[y_axs]] + - self.mem.npf.HydroState.p20[nlast[y_axs]] + ) * self.ud.Msq + else: + return ( + direction * (self.mem.th.Gamma * g) * 0.5 * self.mem.elem.dy * (1.0 / Y_last + S) + ) + + def _calculate_density_and_mass_fraction(self, sol, nlast, nimage, dpi, S, y_axs): + """Calculate density and mass fraction for ghost cells.""" + if self.ud.is_compressible == 1: + rhoY = ((sol.rhoY[nlast] ** self.mem.th.gm1) + dpi) ** self.mem.th.gm1inv + else: + rhoY = self.mem.npf.HydroState.rhoY0[nimage[y_axs]] + + rho = rhoY * S + return rho, rhoY + + def _calculate_velocities(self, sol, nsource, rhoYv_image, rhoY, Y_source, Y_image, direction): + """Calculate velocity components for ghost cells.""" + result = {} + + if hasattr(self.ud, "ATMOSPHERIC_EXTENSION"): + if direction > 0: # bottom boundary + result['v'] = sol.rhov[nsource] * Y_source / sol.rho[nsource] * rhoY / Y_image + else: # top boundary + result['v'] = sol.rhov[nsource] * Y_source + result['Th_slc'] = rhoY / (rhoY / Y_image) / (sol.rhoY[nsource] / sol.rho[nsource]) + else: + result['v'] = rhoYv_image / rhoY + result['Th_slc'] = 1.0 + + return result + + def _assign_ghost_values(self, sol, nimage, ghost_values): + """Assign calculated values to ghost cells.""" + sol.rho[nimage] = ghost_values['rho'] + sol.rhou[nimage] = ghost_values['rho'] * ghost_values['u'] * ghost_values['Th_slc'] + sol.rhow[nimage] = ghost_values['rho'] * ghost_values['w'] * ghost_values['Th_slc'] + sol.rhoY[nimage] = ghost_values['rhoY'] + sol.rhoX[nimage] = ghost_values['rho'] * ghost_values['X'] + + # Handle v-component differently for atmospheric extension + if hasattr(self.ud, "ATMOSPHERIC_EXTENSION"): + sol.rhov[nimage] = -ghost_values['v'] / (ghost_values['rhoY'] / ghost_values['rho']) + else: + sol.rhov[nimage] = ghost_values['rho'] * ghost_values['v'] + + def set_ghost_cells(mem, ud, step=None, sol=None): """ - In-place update of the ghost cells in :class:`management.variable.Vars` given the boundary conditions specified by :class:`inputs.user_data.UserDataInit`. + In-place update of the ghost cells in :class:`management.variable.Vars` + given the boundary conditions specified by :class:`inputs.user_data.UserDataInit`. Parameters ---------- @@ -17,164 +154,71 @@ def set_ghost_cells(mem, ud, step=None, sol=None): ud : :class:`inputs.user_data.UserDataInit` Data container for the initial conditions step : int, optional - Current step - + Current step for advection directional Strang-splitting + sol : object, optional + Solution object, defaults to mem.sol """ - igs = mem.elem.igs - ndim = mem.elem.ndim - if sol is None: - sol = mem.sol - - # if step parameter is not None, then we are in the advection directional Strang-splitting, where the array has already flipped, and we should only update the relevant boundaries, i.e. those in the direction of the current Strang-split-step. - if step == None: - dims = np.arange(ndim) - else: - dims = [ndim - 1] - + sol = mem.sol + + handler = BoundaryHandler(mem, ud) + dims = _get_dimensions_to_process(handler.ndim, step) + for dim in dims: - if step is not None: - current_step = step + current_step = step if step is not None else dim + ghost_padding, idx = get_ghost_padding(handler.ndim, dim, handler.igs) + + if ud.gravity_strength[current_step] == 0.0: + handler.apply_no_gravity_boundary(sol, current_step, ghost_padding, idx) else: - current_step = dim - ghost_padding, idx = get_ghost_padding(ndim, dim, igs) + handler.apply_gravity_boundary(sol, dim, ghost_padding, step) - if ud.gravity_strength[current_step] == 0.0: - # Do this for the axes that do not have gravity. - # Periodic BC. - if ud.bdry_type[current_step] == opts.BdryType.PERIODIC: - _set_boundary(sol, ghost_padding, "wrap", idx) - # Wall BC. - elif ud.bdry_type[current_step] == opts.BdryType.WALL: - _set_boundary(sol, ghost_padding, "symmetric", idx) - elif ud.bdry_type[current_step] == opts.BdryType.RAYLEIGH: - assert 0, "Rayleigh boundary not defined on x-direction." - else: - # get current axis that has gravity. - gravity_axis = dim - - direction = -1.0 - offset = 0 - - # get gravity strength specified in the user data file. - g = ud.gravity_strength[gravity_axis] - - # for the number of ghost cells in the gravity axis... - for side in ghost_padding[gravity_axis]: - direction *= -1 - # loop through each of these ghost cells. - for current_idx in np.arange(side)[::-1]: - if step != None: - y_axs = ndim - 1 - else: - y_axs = 1 - nlast, nsource, nimage = _get_gravity_padding( - ndim, current_idx, direction, offset, mem.elem, y_axs=y_axs - ) - - Y_last = sol.rhoY[nlast] / sol.rho[nlast] - - rhoYv_image = ( - -sol.rhov[nsource] * sol.rhoY[nsource] / sol.rho[nsource] - ) - - S = 1.0 / ud.stratification(mem.elem.y[nimage[y_axs]]) - - if hasattr(ud, "ATMOSPHERIC_EXTENSION"): - dpi = ( - mem.npf.HydroState.p20[nimage[y_axs]] - - mem.npf.HydroState.p20[nlast[y_axs]] - ) * ud.Msq - else: - dpi = ( - direction - * (mem.th.Gamma * g) - * 0.5 - * mem.elem.dy - * (1.0 / Y_last + S) - ) - - rhoY = ( - ((sol.rhoY[nlast] ** mem.th.gm1) + dpi) ** mem.th.gm1inv - if ud.is_compressible == 1 - else mem.npf.HydroState.rhoY0[nimage[y_axs]] - ) - - rho = rhoY * S - - Y_source = sol.rhoY[nsource] / sol.rho[nsource] - Y_image = rhoY / rho - - if hasattr(ud, "ATMOSPHERIC_EXTENSION"): - if direction > 0: # if bottom boundary - v = sol.rhov[nsource] * Y_source / sol.rho[nsource] * rho - else: # if top boundary - v = sol.rhov[nsource] * Y_source - - Th_slc = rhoY / rho / Y_last - - else: - v = rhoYv_image / rhoY - Th_slc = 1.0 - - u = sol.rhou[nsource] / sol.rho[nsource] - w = sol.rhow[nsource] / sol.rho[nsource] - X = sol.rhoX[nsource] / sol.rho[nsource] - - sol.rho[nimage] = rho - sol.rhou[nimage] = rho * u * Th_slc - if hasattr(ud, "ATMOSPHERIC_EXTENSION"): - sol.rhov[nimage] = -v / Y_image - else: - sol.rhov[nimage] = rho * v - sol.rhow[nimage] = rho * w * Th_slc - sol.rhoY[nimage] = rhoY - sol.rhoX[nimage] = rho * X - - offset += 1 +def _get_dimensions_to_process(ndim, step): + """Determine which dimensions to process based on step parameter.""" + if step is None: + return np.arange(ndim) + else: + return [ndim - 1] +# Functional approach with helper functions +def _pad_field(sol, field_name, idx, pads, mode): + """Helper function to pad a single field""" + if hasattr(sol, field_name): + field = getattr(sol, field_name) + if mode == 'negative_symmetric': + field[...] = np.pad(field[idx], pads, _negative_symmetric) + else: + field[...] = np.pad(field[idx], pads, mode) + def _set_boundary(sol, pads, btype, idx): """ - Called by the function :func:`inputs.boundary.set_data`. Pads in-place the ghost cells for a given boundary type. - - Parameters - ---------- - sol : :class:`management.variable.Vars` - solution data container. - pads : tuple - A tuple containing the number of ghost cells to pad at each end. - btype : string - The type of boundary condition to pad. Currently supports: - * `wrap` for periodic boundary conditions - * `symmetric` for wall boundary conditions - * `negative_symmetric` for wall boundary conditions, but with the signs flipped. - idx : tuple - A tuple containing the slice indices for the inner array, e.g. `(slice(2,-2),slice(2,-2))` for a 2D-array with 2 ghost cells for all edges. - step : int, optional - If we are in the advection routine with the flipped arrays according to the directional Strang-splitting, we want to pad the correct direction. `step=0`, pads the x-direction while `step=1` pads the y-direction. - + Functional approach to setting the boundary. """ - sol.rho[...] = np.pad(sol.rho[idx], pads, btype) - - if btype == "symmetric": - sol.rhov[...] = np.pad(sol.rhov[idx], pads, _negative_symmetric) - sol.rho[...] = np.pad(sol.rho[idx], pads, "symmetric") - sol.rhou[...] = np.pad(sol.rhou[idx], pads, "symmetric") - elif btype == "constant": - sol.rho[...] = np.pad(sol.rho[idx], pads, "symmetric") - sol.rhou[...] = np.pad(sol.rhou[idx], pads, "symmetric") - sol.rhov[...] = np.pad(sol.rhov[idx], pads, btype) - sol.rhow[...] = np.pad(sol.rhow[idx], pads, "symmetric") - btype = "symmetric" - else: - sol.rhou[...] = np.pad(sol.rhou[idx], pads, btype) - sol.rhov[...] = np.pad(sol.rhov[idx], pads, btype) - sol.rhow[...] = np.pad(sol.rhow[idx], pads, btype) - - sol.rhoY[...] = np.pad(sol.rhoY[idx], pads, btype) - sol.rhoX[...] = np.pad(sol.rhoX[idx], pads, btype) + + # Define field groupings for each boundary type + boundary_specs = { + 'symmetric': [ + (['rho', 'rhou', 'rhow', 'rhoY', 'rhoX'], 'symmetric'), + (['rhov'], 'negative_symmetric') + ], + 'constant': [ + (['rho', 'rhou', 'rhow', 'rhoY', 'rhoX'], 'symmetric'), + (['rhov'], 'constant') + ], + 'wrap': [ + (['rho', 'rhou', 'rhov', 'rhow', 'rhoY', 'rhoX'], 'wrap') + ] + } + + if btype not in boundary_specs: + raise ValueError(f"Unsupported boundary type: {btype}") + + # Apply padding to each group of fields + for field_names, padding_mode in boundary_specs[btype]: + for field_name in field_names: + _pad_field(sol, field_name, idx, pads, padding_mode) def _negative_symmetric(vector, pad_width, iaxis, kwargs=None): From 443571bc644074a6f92b113f20835b4618d0ba11 Mon Sep 17 00:00:00 2001 From: raychew Date: Tue, 17 Jun 2025 21:09:56 -0700 Subject: [PATCH 31/35] updating lamb wave test target due to bug fix --- .../target_lamb_wave_151_60_stripped.h5 | Bin 444827 -> 444815 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/outputs/target_lamb_wave/target_lamb_wave_151_60_stripped.h5 b/outputs/target_lamb_wave/target_lamb_wave_151_60_stripped.h5 index 7bd460b835085bb6402b52d75d1fc81f80f27176..b5dbc90bc65beb39735cd3f7ebccda4fc0e5a115 100644 GIT binary patch delta 291309 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

VKaRevJa)>+2ZBHS;nw|tgc0qv7s_7RpyQK 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�VT-b%J$7qa|*Co`$sBGm0 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

-9a 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

|xD`koQCu5jZEb!YJ(f3)zntDy8#-~_4J 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 From 620bd13b9f901120f9034c273e015da589aaac45 Mon Sep 17 00:00:00 2001 From: raychew Date: Tue, 17 Jun 2025 21:10:22 -0700 Subject: [PATCH 32/35] make target and test plots output the same quantities --- src/pybella/tests/diagnostics.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/pybella/tests/diagnostics.py b/src/pybella/tests/diagnostics.py index 92e1ccf0..b4c339ee 100644 --- a/src/pybella/tests/diagnostics.py +++ b/src/pybella/tests/diagnostics.py @@ -28,10 +28,17 @@ def update_targets(self): dump_name = tp.name.replace("target", "test") self.arr_dump[dump_name] = {} + rho = self.__get_ens( + tc, tp, "rho", time_increment=self.time_increment, summed=False + ) + for attribute in tp.attributes: arr = self.__get_ens( tc, tp, attribute, time_increment=self.time_increment, summed=False ) + + if attribute != "p2_nodes" and attribute != "rho": + arr = arr / rho self.arr_dump[dump_name][attribute] = float(arr.sum()) if self.plot: From 3bfe670dfe766130063ddc39807bc3e32e9c623c Mon Sep 17 00:00:00 2001 From: raychew Date: Tue, 17 Jun 2025 21:10:36 -0700 Subject: [PATCH 33/35] minor clean up --- src/pybella/flow_solver/numerics/implicit_euler.py | 4 ++-- src/pybella/tests/test_lamb_wave.py | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/pybella/flow_solver/numerics/implicit_euler.py b/src/pybella/flow_solver/numerics/implicit_euler.py index e0264ec1..b4a40f81 100644 --- a/src/pybella/flow_solver/numerics/implicit_euler.py +++ b/src/pybella/flow_solver/numerics/implicit_euler.py @@ -44,7 +44,7 @@ def do_implicit_part( mem, ud, dt, - Sol0=None, + sol0=None, writer=None, label=None, debug=False, @@ -67,7 +67,7 @@ def write_debug_data(key, data): write_debug_data("p2_initial", mem.npf.p2_nodes) # Set boundary data and compute operator coefficients (consolidated) - sol_for_boundary = Sol0 if Sol0 is not None else mem.sol + sol_for_boundary = sol0 if sol0 is not None else mem.sol bdry_c.set_ghost_cells(mem, ud, sol=sol_for_boundary) operator_coefficients_nodes(mem, ud, dt) diff --git a/src/pybella/tests/test_lamb_wave.py b/src/pybella/tests/test_lamb_wave.py index c708cd5e..68a984c4 100644 --- a/src/pybella/tests/test_lamb_wave.py +++ b/src/pybella/tests/test_lamb_wave.py @@ -73,8 +73,6 @@ def __init__(self): self.max_iterations = 10000 self.tout = [360.0] - # self.tout = np.arange(0,361,1.0) - # self.tout = np.append(self.tout, [720.0]) self.stepmax = 301 self.output_timesteps = True From 74c01ba8cc4bfe2aa5b27e9cb84a85b7aba43f8c Mon Sep 17 00:00:00 2001 From: raychew Date: Tue, 17 Jun 2025 21:16:44 -0700 Subject: [PATCH 34/35] cleaned up node_boundary.py --- src/pybella/data_assimilation/analysis.py | 4 ++-- src/pybella/data_assimilation/params.py | 2 +- src/pybella/data_assimilation/utils.py | 4 ++-- src/pybella/flow_solver/numerics/explicit_euler.py | 3 +-- src/pybella/flow_solver/numerics/implicit_euler.py | 7 +++---- src/pybella/flow_solver/physics/hydrostatics.py | 3 +-- .../flow_solver/utils/boundary/node_boundary.py | 14 +------------- src/pybella/tests/test_travelling_vortex.py | 1 - 8 files changed, 11 insertions(+), 27 deletions(-) diff --git a/src/pybella/data_assimilation/analysis.py b/src/pybella/data_assimilation/analysis.py index ac726b1e..ccff22b2 100644 --- a/src/pybella/data_assimilation/analysis.py +++ b/src/pybella/data_assimilation/analysis.py @@ -31,7 +31,7 @@ def do_for_window(tout, outer_step, results, sst, writer): for mem in results: elem, node, sol, _, npf, th, _ = mem bdry_c.set_ghost_cells(mem, sst.ud) - bdry_n.set_ghostnodes_p2(npf.p2_nodes, node, sst.ud) + bdry_n.set_ghost_nodes(npf.p2_nodes, node, sst.ud) # ens.set_members(results, tout) sst.ensemble_state.set_members(results) @@ -122,6 +122,6 @@ def do_for_window(tout, outer_step, results, sst, writer): elem, node, sol, npf, th, _, _ = mem bdry_c.set_ghost_cells(mem, sst.ud) p2_nodes = npf.p2_nodes - bdry_n.set_ghostnodes_p2(p2_nodes, node, sst.ud) + bdry_n.set_ghost_nodes(p2_nodes, node, sst.ud) sst.ensemble_state.set_members(results) diff --git a/src/pybella/data_assimilation/params.py b/src/pybella/data_assimilation/params.py index b41e8022..0aca048b 100644 --- a/src/pybella/data_assimilation/params.py +++ b/src/pybella/data_assimilation/params.py @@ -145,7 +145,7 @@ def converter(results, N, npf, elem, node, th, ud): pn = np.repeat(pn, node.icy, axis=1) results[n][2].p2_nodes[1:-1, :, 1:-1] = pn - bdry_n.set_ghostnodes_p2(results[n][2].p2_nodes, node, ud) + bdry_n.set_ghost_nodes(results[n][2].p2_nodes, node, ud) pn = np.expand_dims(results[n][2].p2_nodes[:, igy, :], 1) results[n][2].p2_nodes[...] = np.repeat(pn[...], node.icy, axis=1) diff --git a/src/pybella/data_assimilation/utils.py b/src/pybella/data_assimilation/utils.py index 705b07c7..18487fba 100644 --- a/src/pybella/data_assimilation/utils.py +++ b/src/pybella/data_assimilation/utils.py @@ -80,12 +80,12 @@ def set_p2_nodes(analysis, results, N, th, node, ud, loc_c=0, loc_n=2): rhoY_n[1:-1, 1:-1] = ( sp.signal.fftconvolve(rhoY, kernel, mode="valid") / kernel.sum() ) - bdry_n.set_ghostnodes_p2(rhoY_n, node, ud) + bdry_n.set_ghost_nodes(rhoY_n, node, ud) p2_n = rhoY_n**th.gm1 - 1.0 + (p2_n - p2_n.mean()) # p2_n = rhoY_n**th.gm1 - 1.0 p2_n -= p2_n.mean() # p2_n = np.pad(p2_n,2,mode='wrap') - bdry_n.set_ghostnodes_p2(p2_n, node, ud) + bdry_n.set_ghost_nodes(p2_n, node, ud) setattr(results[n][loc_n], "p2_nodes", p2_n) diff --git a/src/pybella/flow_solver/numerics/explicit_euler.py b/src/pybella/flow_solver/numerics/explicit_euler.py index 64e4aa87..44f79d14 100644 --- a/src/pybella/flow_solver/numerics/explicit_euler.py +++ b/src/pybella/flow_solver/numerics/explicit_euler.py @@ -78,5 +78,4 @@ def do_forward_step(mem, ud, dt, writer=None, label=None, debug=False): npf.p2_nodes += ud.compressibility * dp2n # Boundary conditions - bdry_n.set_ghostnodes_p2(npf.p2_nodes, node, ud) - bdry_c.set_ghost_cells(mem, ud) + bdry_n.set_ghost_nodes(npf.p2_nodes, node, ud) diff --git a/src/pybella/flow_solver/numerics/implicit_euler.py b/src/pybella/flow_solver/numerics/implicit_euler.py index b4a40f81..5001c96b 100644 --- a/src/pybella/flow_solver/numerics/implicit_euler.py +++ b/src/pybella/flow_solver/numerics/implicit_euler.py @@ -37,7 +37,6 @@ def do_explicit_part(mem, ud, dt): mem.sol.mod_bg_wind(ud, +1.0) - bdry_c.set_ghost_cells(mem, ud) def do_implicit_part( @@ -84,7 +83,7 @@ def write_debug_data(key, data): write_debug_data("wplusz", wplusz_data) # Boundary and correction operations - # bdry.set_ghostnodes_p2(mem.npf.p2_nodes, mem.node, ud) + # bdry.set_ghost_nodes(mem.npf.p2_nodes, mem.node, ud) _correction_nodes(mem, ud, dt, mem.npf.p2_nodes, 0) bdry_c.set_ghost_cells(mem, ud) @@ -113,11 +112,11 @@ def write_debug_data(key, data): write_debug_data("p2_full", p2_full) # # Final boundary and correction operations - # bdry.set_ghostnodes_p2(p2_full, mem.node, ud) + # bdry.set_ghost_nodes(p2_full, mem.node, ud) _correction_nodes(mem, ud, dt, p2_full, 1) mem.npf.p2_nodes[...] += p2_full - bdry_n.set_ghostnodes_p2(mem.npf.p2_nodes, mem.node, ud) + bdry_n.set_ghost_nodes(mem.npf.p2_nodes, mem.node, ud) bdry_c.set_ghost_cells(mem, ud) diff --git a/src/pybella/flow_solver/physics/hydrostatics.py b/src/pybella/flow_solver/physics/hydrostatics.py index ad36fe1c..b45a92f5 100644 --- a/src/pybella/flow_solver/physics/hydrostatics.py +++ b/src/pybella/flow_solver/physics/hydrostatics.py @@ -306,7 +306,6 @@ def initial_pressure(Sol, npf, elem, node, ud, th): npf.p2_cells[x_idx, y_idx] += pibot[x_idx].reshape( -1, 1 ) - 1.0 * npf.HydroState.p20[y_idx].reshape(1, -1) - bdry_n.set_ghostcells_p2(npf.p2_cells, elem, ud) icxn = node.icx icyn = node.icy @@ -364,7 +363,7 @@ def initial_pressure(Sol, npf, elem, node, ud, th): sgn[1::2] *= -1 npf.p2_nodes[igx:-igx, igy:-igy] += sgn * delp2 - bdry_n.set_ghostnodes_p2(npf.p2_nodes, node, ud) + bdry_n.set_ghost_nodes(npf.p2_nodes, node, ud) npf.dp2_nodes[:, :] = 0.0 diff --git a/src/pybella/flow_solver/utils/boundary/node_boundary.py b/src/pybella/flow_solver/utils/boundary/node_boundary.py index 471047ce..d300a029 100644 --- a/src/pybella/flow_solver/utils/boundary/node_boundary.py +++ b/src/pybella/flow_solver/utils/boundary/node_boundary.py @@ -2,19 +2,7 @@ from ....utils import options as opts from .common import get_ghost_padding -def set_ghostcells_p2(p, elem, ud): - igs = elem.igs - - for dim in range(elem.ndim): - ghost_padding, idx = get_ghost_padding(elem.ndim, dim, igs) - - if ud.bdry_type[dim] == opts.BdryType.PERIODIC: - p[...] = np.pad(p[idx], ghost_padding, "wrap") - else: # WALL - p[...] = np.pad(p[idx], ghost_padding, "symmetric") - - -def set_ghostnodes_p2(p, node, ud, igs=None): +def set_ghost_nodes(p, node, ud, igs=None): if igs is None: igs = node.igs for dim in range(node.ndim): diff --git a/src/pybella/tests/test_travelling_vortex.py b/src/pybella/tests/test_travelling_vortex.py index 9535b4b0..76989ef5 100644 --- a/src/pybella/tests/test_travelling_vortex.py +++ b/src/pybella/tests/test_travelling_vortex.py @@ -248,7 +248,6 @@ def sol_init(Sol, npf, elem, node, th, ud, seed=None): th.Gamma * fac**2 * np.divide(p2c, npf.HydroState.rhoY0[igy:-igy]) ) - bdry_n.set_ghostcells_p2(npf.p2_cells, elem, ud) xs = node.x[igxn:-igxn].reshape(-1, 1) ys = node.y[igyn:-igyn].reshape(1, -1) From d4d320e7377c278d806374d4a1037bbdd516fa53 Mon Sep 17 00:00:00 2001 From: raychew Date: Tue, 17 Jun 2025 21:22:53 -0700 Subject: [PATCH 35/35] formatted code with black --- src/pybella/data_assimilation/utils.py | 2 + .../flow_solver/discretisation/time_update.py | 8 +- .../explicit_advection/compute_advection.py | 6 +- .../flow_solver/numerics/implicit_euler.py | 1 - src/pybella/flow_solver/physics/eos.py | 1 + .../utils/boundary/cell_boundary.py | 175 ++++++++++-------- .../utils/boundary/node_boundary.py | 3 +- .../utils/boundary/rayleigh_boundary.py | 3 +- src/pybella/flow_solver/utils/cache.py | 9 +- src/pybella/inputs/rising_bubble.py | 2 +- src/pybella/tests/diagnostics.py | 4 +- .../tests/test_blending_warm_bubble.py | 1 - src/pybella/tests/test_internal_long_wave.py | 1 - src/pybella/tests/test_lamb_wave.py | 3 +- src/pybella/tests/test_travelling_vortex.py | 2 - src/pybella/tests/test_unstable_lamb.py | 1 - 16 files changed, 122 insertions(+), 100 deletions(-) diff --git a/src/pybella/data_assimilation/utils.py b/src/pybella/data_assimilation/utils.py index 18487fba..a7ea7046 100644 --- a/src/pybella/data_assimilation/utils.py +++ b/src/pybella/data_assimilation/utils.py @@ -7,6 +7,8 @@ from ..utils import options as opts from ..flow_solver.utils.boundary import node_boundary as bdry_n + + class ensemble(object): def __init__(self, input_ensemble=None): if input_ensemble is not None: diff --git a/src/pybella/flow_solver/discretisation/time_update.py b/src/pybella/flow_solver/discretisation/time_update.py index ae0f1984..2a3d76a4 100644 --- a/src/pybella/flow_solver/discretisation/time_update.py +++ b/src/pybella/flow_solver/discretisation/time_update.py @@ -117,9 +117,7 @@ def do( # top rayleight damping bdry_r.rayleigh_damping(mem.sol, mem.npf, ud) - bdry_r.apply_rayleigh_forcing( - mem, ud, dt - ) + bdry_r.apply_rayleigh_forcing(mem, ud, dt) debug_writer.write(f"{label}_after_ebnaimp") @@ -178,7 +176,9 @@ def do( # bottom rayleigh forcing bdry_r.apply_rayleigh_forcing( - mem, ud, dt, + mem, + ud, + dt, half=False, sol_half_new=sol_half_new, npf_half_new=npf_half_new, diff --git a/src/pybella/flow_solver/numerics/explicit_advection/compute_advection.py b/src/pybella/flow_solver/numerics/explicit_advection/compute_advection.py index c1824f2e..09f7dfe9 100644 --- a/src/pybella/flow_solver/numerics/explicit_advection/compute_advection.py +++ b/src/pybella/flow_solver/numerics/explicit_advection/compute_advection.py @@ -78,9 +78,7 @@ def _explicit_step_and_flux(mem, ud, lmbda, split_step, tag=None): This function updates the solution `Sol` container in-place if a Strang-splitting is used, or returns the `flux` data container if a Runge-Kutta method is used. """ - bdry_c.set_ghost_cells( - mem, ud, step=split_step - ) + bdry_c.set_ghost_cells(mem, ud, step=split_step) flux = mem.cache.get_flux_containers(mem.elem)[split_step] @@ -185,4 +183,4 @@ def _perform_dimensional_sweep(mem, ud, time_step, reverse=False, diagnostics=No # """ # for i in range(len(sol_vars)): # flux_diff = flux_vars[i][left_idx] - flux_vars[i][right_idx] -# sol_vars[i][...] += lmbda * flux_diff \ No newline at end of file +# sol_vars[i][...] += lmbda * flux_diff diff --git a/src/pybella/flow_solver/numerics/implicit_euler.py b/src/pybella/flow_solver/numerics/implicit_euler.py index 5001c96b..7fa9ba2b 100644 --- a/src/pybella/flow_solver/numerics/implicit_euler.py +++ b/src/pybella/flow_solver/numerics/implicit_euler.py @@ -38,7 +38,6 @@ def do_explicit_part(mem, ud, dt): mem.sol.mod_bg_wind(ud, +1.0) - def do_implicit_part( mem, ud, diff --git a/src/pybella/flow_solver/physics/eos.py b/src/pybella/flow_solver/physics/eos.py index 4d2ae057..3e91d304 100644 --- a/src/pybella/flow_solver/physics/eos.py +++ b/src/pybella/flow_solver/physics/eos.py @@ -1,5 +1,6 @@ import numpy as np + def nonhydrostasy(ud, t, step): if step >= 0: if ud.is_nonhydrostatic == 0: diff --git a/src/pybella/flow_solver/utils/boundary/cell_boundary.py b/src/pybella/flow_solver/utils/boundary/cell_boundary.py index f3a5bfe1..3ca35c60 100644 --- a/src/pybella/flow_solver/utils/boundary/cell_boundary.py +++ b/src/pybella/flow_solver/utils/boundary/cell_boundary.py @@ -6,90 +6,97 @@ from ....utils import options as opts from .common import get_ghost_padding -class BoundaryHandler: + +class CellBoundaryHandler: """Handles different types of boundary conditions for ghost cells.""" - + def __init__(self, mem, ud): self.mem = mem self.ud = ud self.igs = mem.elem.igs self.ndim = mem.elem.ndim - + def apply_no_gravity_boundary(self, sol, current_step, ghost_padding, idx): """Apply boundary conditions for axes without gravity.""" bdry_type = self.ud.bdry_type[current_step] - + if bdry_type == opts.BdryType.PERIODIC: _set_boundary(sol, ghost_padding, "wrap", idx) elif bdry_type == opts.BdryType.WALL: _set_boundary(sol, ghost_padding, "symmetric", idx) elif bdry_type == opts.BdryType.RAYLEIGH: raise AssertionError("Rayleigh boundary not defined on x-direction.") - + def apply_gravity_boundary(self, sol, dim, ghost_padding, step): """Apply boundary conditions for axes with gravity.""" gravity_axis = dim g = self.ud.gravity_strength[gravity_axis] direction = -1.0 offset = 0 - + for side in ghost_padding[gravity_axis]: direction *= -1 self._process_ghost_cells_side(sol, side, dim, direction, offset, step, g) offset += 1 - + def _process_ghost_cells_side(self, sol, side, dim, direction, offset, step, g): """Process ghost cells for one side of the boundary.""" y_axs = self.ndim - 1 if step is not None else 1 - + for current_idx in np.arange(side)[::-1]: indices = self._get_gravity_indices(current_idx, direction, offset, y_axs) - ghost_values = self._calculate_ghost_values(sol, indices, direction, g, y_axs) - self._assign_ghost_values(sol, indices['image'], ghost_values) - + ghost_values = self._calculate_ghost_values( + sol, indices, direction, g, y_axs + ) + self._assign_ghost_values(sol, indices["image"], ghost_values) + def _get_gravity_indices(self, current_idx, direction, offset, y_axs): """Get the indices for last, source, and image cells.""" nlast, nsource, nimage = _get_gravity_padding( self.ndim, current_idx, direction, offset, self.mem.elem, y_axs=y_axs ) - return { - 'last': nlast, - 'source': nsource, - 'image': nimage - } - + return {"last": nlast, "source": nsource, "image": nimage} + def _calculate_ghost_values(self, sol, indices, direction, g, y_axs): """Calculate values for ghost cells with gravity.""" - nlast, nsource, nimage = indices['last'], indices['source'], indices['image'] - + nlast, nsource, nimage = indices["last"], indices["source"], indices["image"] + # Calculate basic quantities Y_last = sol.rhoY[nlast] / sol.rho[nlast] Y_source = sol.rhoY[nsource] / sol.rho[nsource] - + rhoYv_image = -sol.rhov[nsource] * sol.rhoY[nsource] / sol.rho[nsource] S = 1.0 / self.ud.stratification(self.mem.elem.y[nimage[y_axs]]) - + # Calculate pressure difference - dpi = self._calculate_pressure_difference(nlast, nimage, direction, g, Y_last, S, y_axs) - + dpi = self._calculate_pressure_difference( + nlast, nimage, direction, g, Y_last, S, y_axs + ) + # Calculate density and mass fraction - rho, rhoY = self._calculate_density_and_mass_fraction(sol, nlast, nimage, dpi, S, y_axs) + rho, rhoY = self._calculate_density_and_mass_fraction( + sol, nlast, nimage, dpi, S, y_axs + ) Y_image = rhoY / rho - + # Calculate velocity components - velocities = self._calculate_velocities(sol, nsource, rhoYv_image, rhoY, Y_source, Y_image, direction) - + velocities = self._calculate_velocities( + sol, nsource, rhoYv_image, rhoY, Y_source, Y_image, direction + ) + return { - 'rho': rho, - 'rhoY': rhoY, - 'u': sol.rhou[nsource] / sol.rho[nsource], - 'v': velocities['v'], - 'w': sol.rhow[nsource] / sol.rho[nsource], - 'X': sol.rhoX[nsource] / sol.rho[nsource], - 'Th_slc': velocities.get('Th_slc', 1.0) + "rho": rho, + "rhoY": rhoY, + "u": sol.rhou[nsource] / sol.rho[nsource], + "v": velocities["v"], + "w": sol.rhow[nsource] / sol.rho[nsource], + "X": sol.rhoX[nsource] / sol.rho[nsource], + "Th_slc": velocities.get("Th_slc", 1.0), } - - def _calculate_pressure_difference(self, nlast, nimage, direction, g, Y_last, S, y_axs): + + def _calculate_pressure_difference( + self, nlast, nimage, direction, g, Y_last, S, y_axs + ): """Calculate pressure difference for ghost cells.""" if hasattr(self.ud, "ATMOSPHERIC_EXTENSION"): return ( @@ -98,53 +105,69 @@ def _calculate_pressure_difference(self, nlast, nimage, direction, g, Y_last, S, ) * self.ud.Msq else: return ( - direction * (self.mem.th.Gamma * g) * 0.5 * self.mem.elem.dy * (1.0 / Y_last + S) + direction + * (self.mem.th.Gamma * g) + * 0.5 + * self.mem.elem.dy + * (1.0 / Y_last + S) ) - + def _calculate_density_and_mass_fraction(self, sol, nlast, nimage, dpi, S, y_axs): """Calculate density and mass fraction for ghost cells.""" if self.ud.is_compressible == 1: rhoY = ((sol.rhoY[nlast] ** self.mem.th.gm1) + dpi) ** self.mem.th.gm1inv else: rhoY = self.mem.npf.HydroState.rhoY0[nimage[y_axs]] - + rho = rhoY * S return rho, rhoY - - def _calculate_velocities(self, sol, nsource, rhoYv_image, rhoY, Y_source, Y_image, direction): + + def _calculate_velocities( + self, sol, nsource, rhoYv_image, rhoY, Y_source, Y_image, direction + ): """Calculate velocity components for ghost cells.""" result = {} - + if hasattr(self.ud, "ATMOSPHERIC_EXTENSION"): if direction > 0: # bottom boundary - result['v'] = sol.rhov[nsource] * Y_source / sol.rho[nsource] * rhoY / Y_image + result["v"] = ( + sol.rhov[nsource] * Y_source / sol.rho[nsource] * rhoY / Y_image + ) else: # top boundary - result['v'] = sol.rhov[nsource] * Y_source - result['Th_slc'] = rhoY / (rhoY / Y_image) / (sol.rhoY[nsource] / sol.rho[nsource]) + result["v"] = sol.rhov[nsource] * Y_source + result["Th_slc"] = ( + rhoY / (rhoY / Y_image) / (sol.rhoY[nsource] / sol.rho[nsource]) + ) else: - result['v'] = rhoYv_image / rhoY - result['Th_slc'] = 1.0 - + result["v"] = rhoYv_image / rhoY + result["Th_slc"] = 1.0 + return result - + def _assign_ghost_values(self, sol, nimage, ghost_values): """Assign calculated values to ghost cells.""" - sol.rho[nimage] = ghost_values['rho'] - sol.rhou[nimage] = ghost_values['rho'] * ghost_values['u'] * ghost_values['Th_slc'] - sol.rhow[nimage] = ghost_values['rho'] * ghost_values['w'] * ghost_values['Th_slc'] - sol.rhoY[nimage] = ghost_values['rhoY'] - sol.rhoX[nimage] = ghost_values['rho'] * ghost_values['X'] - + sol.rho[nimage] = ghost_values["rho"] + sol.rhou[nimage] = ( + ghost_values["rho"] * ghost_values["u"] * ghost_values["Th_slc"] + ) + sol.rhow[nimage] = ( + ghost_values["rho"] * ghost_values["w"] * ghost_values["Th_slc"] + ) + sol.rhoY[nimage] = ghost_values["rhoY"] + sol.rhoX[nimage] = ghost_values["rho"] * ghost_values["X"] + # Handle v-component differently for atmospheric extension if hasattr(self.ud, "ATMOSPHERIC_EXTENSION"): - sol.rhov[nimage] = -ghost_values['v'] / (ghost_values['rhoY'] / ghost_values['rho']) + sol.rhov[nimage] = -ghost_values["v"] / ( + ghost_values["rhoY"] / ghost_values["rho"] + ) else: - sol.rhov[nimage] = ghost_values['rho'] * ghost_values['v'] + sol.rhov[nimage] = ghost_values["rho"] * ghost_values["v"] def set_ghost_cells(mem, ud, step=None, sol=None): """ - In-place update of the ghost cells in :class:`management.variable.Vars` + In-place update of the ghost cells in :class:`management.variable.Vars` given the boundary conditions specified by :class:`inputs.user_data.UserDataInit`. Parameters @@ -160,14 +183,15 @@ def set_ghost_cells(mem, ud, step=None, sol=None): """ if sol is None: sol = mem.sol - - handler = BoundaryHandler(mem, ud) + + # this is inefficient but whatever for now. + handler = CellBoundaryHandler(mem, ud) dims = _get_dimensions_to_process(handler.ndim, step) - + for dim in dims: current_step = step if step is not None else dim ghost_padding, idx = get_ghost_padding(handler.ndim, dim, handler.igs) - + if ud.gravity_strength[current_step] == 0.0: handler.apply_no_gravity_boundary(sol, current_step, ghost_padding, idx) else: @@ -187,34 +211,33 @@ def _pad_field(sol, field_name, idx, pads, mode): """Helper function to pad a single field""" if hasattr(sol, field_name): field = getattr(sol, field_name) - if mode == 'negative_symmetric': + if mode == "negative_symmetric": field[...] = np.pad(field[idx], pads, _negative_symmetric) else: field[...] = np.pad(field[idx], pads, mode) + def _set_boundary(sol, pads, btype, idx): """ Functional approach to setting the boundary. """ - + # Define field groupings for each boundary type boundary_specs = { - 'symmetric': [ - (['rho', 'rhou', 'rhow', 'rhoY', 'rhoX'], 'symmetric'), - (['rhov'], 'negative_symmetric') + "symmetric": [ + (["rho", "rhou", "rhow", "rhoY", "rhoX"], "symmetric"), + (["rhov"], "negative_symmetric"), ], - 'constant': [ - (['rho', 'rhou', 'rhow', 'rhoY', 'rhoX'], 'symmetric'), - (['rhov'], 'constant') + "constant": [ + (["rho", "rhou", "rhow", "rhoY", "rhoX"], "symmetric"), + (["rhov"], "constant"), ], - 'wrap': [ - (['rho', 'rhou', 'rhov', 'rhow', 'rhoY', 'rhoX'], 'wrap') - ] + "wrap": [(["rho", "rhou", "rhov", "rhow", "rhoY", "rhoX"], "wrap")], } - + if btype not in boundary_specs: raise ValueError(f"Unsupported boundary type: {btype}") - + # Apply padding to each group of fields for field_names, padding_mode in boundary_specs[btype]: for field_name in field_names: @@ -284,4 +307,4 @@ def _get_gravity_padding(ndim, cur_idx, direction, offset, elem, y_axs=None): nimage = np.copy(gravity_padding) nimage[y_axs] = int(cur_idx) - return tuple(nlast), tuple(nsource), tuple(nimage) \ No newline at end of file + return tuple(nlast), tuple(nsource), tuple(nimage) diff --git a/src/pybella/flow_solver/utils/boundary/node_boundary.py b/src/pybella/flow_solver/utils/boundary/node_boundary.py index d300a029..f83a7288 100644 --- a/src/pybella/flow_solver/utils/boundary/node_boundary.py +++ b/src/pybella/flow_solver/utils/boundary/node_boundary.py @@ -2,6 +2,7 @@ from ....utils import options as opts from .common import get_ghost_padding + def set_ghost_nodes(p, node, ud, igs=None): if igs is None: igs = node.igs @@ -45,5 +46,3 @@ def periodic_plus_one(vector, pad_width, iaxis, kwargs=None): vector[pad_width[0] : pad_width[0] + pad_width[0] + 1].copy(), ) return vector - - diff --git a/src/pybella/flow_solver/utils/boundary/rayleigh_boundary.py b/src/pybella/flow_solver/utils/boundary/rayleigh_boundary.py index 02a6caa3..3d18c5de 100644 --- a/src/pybella/flow_solver/utils/boundary/rayleigh_boundary.py +++ b/src/pybella/flow_solver/utils/boundary/rayleigh_boundary.py @@ -4,6 +4,7 @@ from ....utils import options as opts from . import cell_boundary as bdry_c + def get_tau_y(ud, elem, node, alpha): tauc_y = np.zeros_like(elem.y) taun_y = np.zeros_like(node.y) @@ -135,6 +136,7 @@ def apply_rayleigh_forcing( bdry_c.set_ghost_cells(mem, ud) + def rayleigh_damping(sol, npf, ud, forcing=None): u = sol.rhou / sol.rho # [elem.i2] v = sol.rhov / sol.rho # [elem.i2] @@ -187,4 +189,3 @@ def rayleigh_damping(sol, npf, ud, forcing=None): sol.rhou[...] = rho * u sol.rhov[...] = rho * v sol.rhoY[...] = rho * Y - diff --git a/src/pybella/flow_solver/utils/cache.py b/src/pybella/flow_solver/utils/cache.py index 781d2c2d..b56a67ab 100644 --- a/src/pybella/flow_solver/utils/cache.py +++ b/src/pybella/flow_solver/utils/cache.py @@ -48,6 +48,7 @@ def squeezer(self): class FlowSolverCache: """Cache for flow solver specific computations.""" + __slots__ = ( "_recovery_cache", "_velocity_cache", @@ -142,7 +143,7 @@ def get_coriolis_array_views(self, shape, dtype=np.float64): cache_obj["h33"], cache_obj["denom"], ) - + def get_flux_containers(self, elem, dtype=np.float64): """ Get cached flux containers for each direction (States objects). @@ -166,7 +167,11 @@ def get_flux_containers(self, elem, dtype=np.float64): ) if (ndim, shape_key) not in self._flux_cache: - logging.info("Cache: Creating new flux containers for ndim=%d, shape=%s", ndim, shape_key[0]) + logging.info( + "Cache: Creating new flux containers for ndim=%d, shape=%s", + ndim, + shape_key[0], + ) flux = [None] * ndim flux[0] = fields.CellSolField(elem.sfx) if ndim > 1: diff --git a/src/pybella/inputs/rising_bubble.py b/src/pybella/inputs/rising_bubble.py index 0a3e1378..a23903e1 100644 --- a/src/pybella/inputs/rising_bubble.py +++ b/src/pybella/inputs/rising_bubble.py @@ -1,6 +1,7 @@ import numpy as np from ..flow_solver.physics import hydrostatics + class UserData(object): # Nsq_ref = grav * 1.3e-05 @@ -91,5 +92,4 @@ def sol_init(Sol, npf, elem, node, th, ud, seed=None): rhoY = npf.HydroState_n.rhoY0[0] npf.p2_nodes[...] = (p - npf.HydroState_n.p0[0]) / rhoY / ud.Msq - return Sol diff --git a/src/pybella/tests/diagnostics.py b/src/pybella/tests/diagnostics.py index b4c339ee..16d91e67 100644 --- a/src/pybella/tests/diagnostics.py +++ b/src/pybella/tests/diagnostics.py @@ -29,8 +29,8 @@ def update_targets(self): self.arr_dump[dump_name] = {} rho = self.__get_ens( - tc, tp, "rho", time_increment=self.time_increment, summed=False - ) + tc, tp, "rho", time_increment=self.time_increment, summed=False + ) for attribute in tp.attributes: arr = self.__get_ens( diff --git a/src/pybella/tests/test_blending_warm_bubble.py b/src/pybella/tests/test_blending_warm_bubble.py index 32e4a4e8..697f75ea 100644 --- a/src/pybella/tests/test_blending_warm_bubble.py +++ b/src/pybella/tests/test_blending_warm_bubble.py @@ -110,5 +110,4 @@ def sol_init(Sol, npf, elem, node, th, ud, seed=None): rhoY = npf.HydroState_n.rhoY0 npf.p2_nodes[...] = (p - npf.HydroState_n.p0) / rhoY / ud.Msq - return Sol diff --git a/src/pybella/tests/test_internal_long_wave.py b/src/pybella/tests/test_internal_long_wave.py index 4a3772f2..29d8322d 100644 --- a/src/pybella/tests/test_internal_long_wave.py +++ b/src/pybella/tests/test_internal_long_wave.py @@ -193,7 +193,6 @@ def sol_init(Sol, npf, elem, node, th, ud, seeds=None): if "imbal" in ud.aux: npf.p2_nodes[...] = 0.0 - return Sol diff --git a/src/pybella/tests/test_lamb_wave.py b/src/pybella/tests/test_lamb_wave.py index 68a984c4..f8c7eea2 100644 --- a/src/pybella/tests/test_lamb_wave.py +++ b/src/pybella/tests/test_lamb_wave.py @@ -4,7 +4,7 @@ from ..utils.data_structures import DiagnosticState from ..flow_solver.utils.boundary import rayleigh_boundary as bdry_r -from ..flow_solver.physics import hydrostatics +from ..flow_solver.physics import hydrostatics class UserData(object): @@ -310,7 +310,6 @@ def sol_init(Sol, npf, elem, node, th, ud, seeds=None): npf.p2_nodes[...] = pi_n - if hasattr(ud, "mixed_run"): if ud.mixed_run: ud.coriolis_strength[2] = 2.0 * 7.292 * 1e-5 * ud.t_ref diff --git a/src/pybella/tests/test_travelling_vortex.py b/src/pybella/tests/test_travelling_vortex.py index 76989ef5..a8513384 100644 --- a/src/pybella/tests/test_travelling_vortex.py +++ b/src/pybella/tests/test_travelling_vortex.py @@ -248,7 +248,6 @@ def sol_init(Sol, npf, elem, node, th, ud, seed=None): th.Gamma * fac**2 * np.divide(p2c, npf.HydroState.rhoY0[igy:-igy]) ) - xs = node.x[igxn:-igxn].reshape(-1, 1) ys = node.y[igyn:-igyn].reshape(1, -1) xccs = np.zeros_like(xs) @@ -284,7 +283,6 @@ def sol_init(Sol, npf, elem, node, th, ud, seed=None): ud.nonhydrostasy = float(ud.is_nonhydrostatic) ud.compressibility = float(ud.is_compressible) - if "imbal" in ud.aux: Sol.rhoY[...] = 1.0 npf.p2_nodes[...] = 0.0 diff --git a/src/pybella/tests/test_unstable_lamb.py b/src/pybella/tests/test_unstable_lamb.py index 812230f3..8605e330 100644 --- a/src/pybella/tests/test_unstable_lamb.py +++ b/src/pybella/tests/test_unstable_lamb.py @@ -354,7 +354,6 @@ def sol_init(Sol, npf, elem, node, th, ud, seeds=None): npf.p2_nodes[...] = pi_n - if hasattr(ud, "mixed_run"): if ud.mixed_run: ud.coriolis_strength[2] = 2.0 * 7.292 * 1e-5 * ud.t_ref