From 63a5c180fd13c480911514b07a2e8437e7fa1a86 Mon Sep 17 00:00:00 2001 From: Kamlesh Date: Thu, 23 Jan 2025 15:45:44 +0530 Subject: [PATCH 1/9] Added dataset partition logic and cli arguments --- weather_mv/README.md | 26 ++ weather_mv/loader_pipeline/ee.py | 430 +++++++++++++++++++++-------- weather_mv/loader_pipeline/util.py | 22 ++ 3 files changed, 365 insertions(+), 113 deletions(-) diff --git a/weather_mv/README.md b/weather_mv/README.md index c36530d9..06f13384 100644 --- a/weather_mv/README.md +++ b/weather_mv/README.md @@ -408,6 +408,10 @@ _Command options_: takes extra time in COG creation. Default:False. * `--use_metrics`: A flag that allows you to add Beam metrics to the pipeline. Default: False. * `--use_monitoring_metrics`: A flag that allows you to to add Google Cloud Monitoring metrics to the pipeline. Default: False. +* `--partition_dims`: If the dataset contains other dimensions apart from latitude and longitude, partition the dataset into multiple datasets based on these dimensions. A separate COG file will be created for each partition and ingested into Earth Engine. Any unspecified dimensions will be flattened in the resulting COG. +* `--asset_name_format`: The asset name format for each partitioned COG file. This should contain the dimensions no other than partition_dims (along with init_time and valid_time). The dimension names should be enclosed in {} (e.g. a valid format is {init_time}_{valid_time}_{number}) +* `--dim_mapping`: A JSON string containing init_time and valid_time as keys and corresponding dimension names for each key. It is required if init_time or valid_time is used in asset_name_format. +* `--date_format`: A string containing datetime.strftime codes. It is used if the dimension mentioned in asset_name_format is a datetime. Default: %Y%m%d%H%M Invoke with `ee -h` or `earthengine --help` to see the full range of options. @@ -483,6 +487,28 @@ weather-mv ee --uris "gs://your-bucket/*.grib" \ --temp_location "gs://$BUCKET/tmp" ``` +Create separate COG files for every value of time and number dimensions: + +```bash +weather-mv ee --uris "gs://your-bucket/*.grib" \ + --asset_location "gs://$BUCKET/assets" \ # Needed to store assets generated from *.grib + --ee_asset "projects/$PROJECT/assets/test_dir" \ + --partition_dims time number + --asset_name_format "{time}_{number}" +``` + +Create COG files with name of init_time and valid_time (in datetime format) with 'YYYYMMDD' format: + +```bash +weather-mv ee --uris "gs://your-bucket/*.grib" \ + --asset_location "gs://$BUCKET/assets" \ # Needed to store assets generated from *.grib + --ee_asset "projects/$PROJECT/assets/test_dir" \ + --partition_dims time step number \ # step is in timedelta + --dim_mapping '{"init_time": "time", "valid_time": "step"}' + --asset_name_format "{init_time}_{valid_time}_{number}" + --date_format "%Y%m%D" +``` + Limit EE requests: ```bash diff --git a/weather_mv/loader_pipeline/ee.py b/weather_mv/loader_pipeline/ee.py index ef9389ba..7e4a3acb 100644 --- a/weather_mv/loader_pipeline/ee.py +++ b/weather_mv/loader_pipeline/ee.py @@ -14,6 +14,7 @@ import argparse import csv import dataclasses +import itertools import json import logging import math @@ -29,6 +30,7 @@ import apache_beam as beam import ee import numpy as np +import xarray as xr from apache_beam.io.filesystems import FileSystems from apache_beam.metrics import metric from apache_beam.io.gcp.gcsio import WRITE_CHUNK_SIZE @@ -39,8 +41,15 @@ from google.auth.transport.requests import AuthorizedSession from rasterio.io import MemoryFile -from .sinks import ToDataSink, open_dataset, open_local, KwargsFactoryMixin, upload -from .util import make_attrs_ee_compatible, RateLimit, validate_region, get_utc_timestamp +from .sinks import ToDataSink, open_dataset, open_local, KwargsFactoryMixin, upload, _to_utc_timestring +from .util import ( + make_attrs_ee_compatible, + RateLimit, + validate_region, + get_utc_timestamp, + get_dims_from_name_format, + convert_to_string +) from .metrics import timeit, AddTimer, AddMetrics logger = logging.getLogger(__name__) @@ -131,6 +140,128 @@ def ee_initialize(use_personal_account: bool = False, else: ee.Initialize(creds) +def construct_asset_name(ds, asset_name_format): + """Generate asset_name based on the format by using dataset attributes.""" + dims = get_dims_from_name_format(asset_name_format) + + dim_values = {} + for dim in dims: + # If the dim is init_time or valid_time + if dim in ds.attrs: + dim_values[dim] = ds.attrs[dim] + elif dim + '_value' in ds.attrs: + dim_values[dim] = ds.attrs[dim + '_value'] + asset_name = asset_name_format.format(**dim_values) + return asset_name + +def add_additional_attrs(ds, dim_mapping, date_format): + """ + Adds additional attributes (start_time, end_time, forecast_seconds) in the dataset if the dim_mapping is provided. + """ + attrs = ds.attrs + if (dim_mapping['init_time'] not in ds) or (dim_mapping['valid_time'] not in ds): + raise ValueError('The dimension passed for init_time/valid_time is not present in dataset.') + + init_time_da, valid_time_da = ds[dim_mapping['init_time']], ds[dim_mapping['valid_time']] + start_time = init_time_da.values + + if isinstance(valid_time_da.values, np.timedelta64): + end_time = start_time + valid_time_da.values + elif isinstance(valid_time_da.values, np.datetime64): + end_time = valid_time_da.values + else: + end_time = start_time + np.timedelta64(valid_time_da.values, 'h') + + attrs['forecast_seconds'] = int((end_time - start_time) / np.timedelta64(1, 's')) + attrs['start_time'] = _to_utc_timestring(start_time) + attrs['end_time'] = _to_utc_timestring(end_time) + + attrs['init_time'] = convert_to_string(start_time, date_format) + attrs['valid_time'] = convert_to_string(end_time, date_format) + +def partition_dataset(ds, partition_dims, dim_mapping, asset_name_format, date_format): + """ + Partitions a dataset based on the specified dimensions and flattens other dimensions into variable names. + + Args: + ds (xr.Dataset): Input xarray dataset. + partition_dims (list): List of dimensions to partition by (e.g., ['time', 'step']). + dim_mapping (dict): Dictionary containing init_time and valid_time as keys. This is used to add + start_time, end_time and forecast_seconds attributes in dataset. + It also helps to calculate the valid_time if the step value is in timedelta format. + asset_name_format (str): Specifies the format for the asset name of resulting COG, + containing dimensions enclosed in {} (e.g., '{init_time}_{valid_time}_{level}') + date_format (str): Datetime format to use in the asset name if the dimension is of type datetime + + Returns: + list: A list of partitioned xarray datasets. + """ + # Ensure partition_dims are valid dimensions + all_dims = list(ds.dims.keys()) + for dim in partition_dims: + if dim not in all_dims: + raise ValueError(f"Dimension '{dim}' is not present in the dataset.") + + # Dimensions to flatten (all except latitude, longitude, and partition_dims) + to_flatten = [dim for dim in all_dims if dim not in partition_dims + ['latitude', 'longitude']] + + # Partition the dataset along the specified dimensions + indices = itertools.product(*[range(ds.sizes[dim]) for dim in partition_dims]) + partitioned_datasets = [] + + for idx in indices: + # Partition the dataset based on the partition_dims + selector = {dim: idx[i] for i, dim in enumerate(partition_dims)} + sliced_ds = ds.isel(selector) + + # Add attribiutes (init_time, valid_time, forecast_seconds) in dataset + add_additional_attrs(sliced_ds, dim_mapping, date_format) + # Flatten the remaining dimensions into variable names + new_data_vars = {} + for var_name, data_array in sliced_ds.data_vars.items(): + for flat_idx in itertools.product(*[range(sliced_ds.sizes[dim]) for dim in to_flatten]): + flat_selector = {dim: flat_idx[i] for i, dim in enumerate(to_flatten)} + flat_data_array = data_array.isel(flat_selector).squeeze() + + # Construct the variable name with the values of flattened dimensions + parts = [] + for dim in to_flatten: + value = sliced_ds[dim].values[flat_selector[dim]] + parts.append(f"{dim}_{convert_to_string(value, date_format)}") + parts.append(var_name) + + flat_var_name = f"{'_'.join(parts)}" + new_data_vars[flat_var_name] = xr.DataArray( + flat_data_array.values, + dims=['latitude', 'longitude'], + coords={'latitude': flat_data_array.latitude, 'longitude': flat_data_array.longitude}, + attrs=flat_data_array.attrs + ) + + # Create the new dataset with only latitude and longitude dimensions + new_ds = xr.Dataset( + new_data_vars, + coords={ + 'latitude': sliced_ds.latitude, + 'longitude': sliced_ds.longitude + }, + attrs=sliced_ds.attrs + ) + + # Add the values of partitioned dimensions as attributes + new_ds.attrs.update( + **{ + f"{dim}_value": convert_to_string(sliced_ds[dim].values, date_format) + for dim in partition_dims + } + ) + + # Create asset_name and store it in attributes + asset_name = construct_asset_name(new_ds, asset_name_format) + new_ds.attrs['asset_name'] = asset_name + partitioned_datasets.append(new_ds) + + return partitioned_datasets class SetupEarthEngine(RateLimit): """A base class to setup the earth engine.""" @@ -254,6 +385,10 @@ class ToEarthEngine(ToDataSink): use_metrics: bool use_monitoring_metrics: bool topic: str + partition_dims: list + asset_name_format: str + dim_mapping: dict + date_format: str # Pipeline arguments. job_name: str project: str @@ -306,6 +441,25 @@ def add_parser_arguments(cls, subparser: argparse.ArgumentParser): help='If you want to add Beam metrics to your pipeline. Default: False') subparser.add_argument('--use_monitoring_metrics', action='store_true', default=False, help='If you want to add GCP Monitoring metrics to your pipeline. Default: False') + subparser.add_argument('--partition_dims', nargs='*', default=None, + help='If the dataset contains other dimensions apart from latitude and longitude,' + ' partition the dataset into multiple datasets based on these dimensions.' + ' A separate COG file will be created for each partition.' + ' Any unspecified dimensions will be flattened in the resulting COG.') + subparser.add_argument('--asset_name_format', type=str, default=None, + help='The asset name format for each partitioned COG file.' + ' This should contain the dimensions no other than partition_dims' + ' (Although you can add init_time and valid_time provided that' + ' you have given dim_mapping). The dimension names should be enclosed in {} ' + '(e.g. a valid format is {init_time}_{valid_time}_{number})') + subparser.add_argument('--dim_mapping', type=json.loads, default=None, + help='A JSON string containing init_time and valid_time as keys and ' + 'corresponding dimension names for each key.' + ' It is required if init_time or valid_time is used in asset_name_format.') + subparser.add_argument('--date_format', type=str, default='%Y%m%d%H%M', + help='A string containing datetime.strftime codes.' + ' It is used if the dimension mentioned in asset_name_format is a datetime.' + ' Default: %Y%m%d%H%M') @classmethod def validate_arguments(cls, known_args: argparse.Namespace, pipeline_args: t.List[str]) -> None: @@ -360,6 +514,40 @@ def validate_arguments(cls, known_args: argparse.Namespace, pipeline_args: t.Lis if bool(known_args.initialization_time_regex) ^ bool(known_args.forecast_time_regex): raise RuntimeError("Both --initialization_time_regex & --forecast_time_regex flags need to be present") + if not known_args.partition_dims: + if known_args.asset_name_format: + raise RuntimeError("asset_name_format can only be specified when partition_dims are passed.") + if known_args.dim_mapping: + raise RuntimeError("dim_mapping can only be specified when partition_dims are passed.") + + # Check whether dim_mapping contains both init_time and valid_time + if ( + known_args.dim_mapping + and not ( + 'init_time' in known_args.dim_mapping + and 'valid_time' in known_args.dim_mapping + ) + ): + raise RuntimeError('dim_mapping should contain both init_time and valid_time as keys.') + + # Perform the checks when partition_dims are specified. + if known_args.partition_dims: + if not known_args.asset_name_format: + raise RuntimeError('asset_name_format is required when specifying partition_dims.') + if not known_args.ee_asset_type != "IMAGE": + raise RuntimeError('partition_dims should be specified for "IMAGE" asset_type only.') + + # Check whether the asset name format contains valid dimensions. + if known_args.asset_name_format: + dims = get_dims_from_name_format(known_args.asset_name_format) + for dim in dims: + if dim not in known_args.partition_dims + ['init_time', 'valid_time']: + raise RuntimeError('Only the dimensions used for partitioning can be used in the asset name.' + f'{dim} is not used to partition dataset.') + + if ('init_time' in dims or 'valid_time' in dims) and not known_args.dim_mapping: + raise RuntimeError('dim_mapping is required if asset_name_format contains init_time or valid_time.') + logger.info(f"Add metrics to pipeline: {known_args.use_metrics}") logger.info(f"Add Google Cloud Monitoring metrics to pipeline: {known_args.use_monitoring_metrics}") @@ -475,6 +663,10 @@ class ConvertToAsset(beam.DoFn, KwargsFactoryMixin): forecast_time_regex: t.Optional[str] = None use_deflate: t.Optional[bool] = False use_metrics: t.Optional[bool] = False + partition_dims: t.Optional[list] = None + asset_name_format: t.Optional[str] = None + dim_mapping: t.Optional[t.Dict] = None + date_format: str = '%Y%m%d%H%M' def add_to_queue(self, queue: Queue, item: t.Any): """Adds a new item to the queue. @@ -501,119 +693,131 @@ def convert_to_asset(self, queue: Queue, uri: str): if not isinstance(ds_list, list): ds_list = [ds_list] - for ds in ds_list: - attrs = ds.attrs - data = list(ds.values()) - asset_name = get_ee_safe_name(uri) - channel_names = [ - self.band_names_dict.get(da.name, da.name) if self.band_names_dict - else da.name for da in data - ] - - dtype, crs, transform = (attrs.pop(key) for key in ['dtype', 'crs', 'transform']) - # Adding job_start_time to properites. - attrs["job_start_time"] = job_start_time - # Make attrs EE ingestable. - attrs = make_attrs_ee_compatible(attrs) - start_time, end_time = (attrs.get(key) for key in ('start_time', 'end_time')) - - if self.group_common_hypercubes: - level, height = (attrs.pop(key) for key in ['level', 'height']) - safe_level_name = get_ee_safe_name(level) - asset_name = f'{asset_name}_{safe_level_name}' - - compression = 'lzw' - predictor = 'NO' - if self.use_deflate: - compression = 'deflate' - # Depending on dtype select predictor value. - # Predictor is a method of storing only the difference from the - # previous value instead of the actual value. - predictor = 2 if np.issubdtype(dtype, np.integer) else 3 - - # For tiff ingestions. - if self.ee_asset_type == 'IMAGE': - file_name = f'{asset_name}.tiff' - - with MemoryFile() as memfile: - with memfile.open(driver='COG', - dtype=dtype, - width=data[0].data.shape[1], - height=data[0].data.shape[0], - count=len(data), - nodata=np.nan, - crs=crs, - transform=transform, - compress=compression, - predictor=predictor) as f: - for i, da in enumerate(data): - f.write(da, i+1) - # Making the channel name EE-safe before adding it as a band name. - f.set_band_description(i+1, get_ee_safe_name(channel_names[i])) - f.update_tags(i+1, band_name=channel_names[i]) - f.update_tags(i+1, **da.attrs) - - # Write attributes as tags in tiff. - f.update_tags(**attrs) - - # Copy in-memory tiff to gcs. + for dataset in ds_list: + if self.partition_dims and self.ee_asset_type == 'IMAGE': + partitioned_datasets = partition_dataset( + dataset, + self.partition_dims, + self.dim_mapping, + self.asset_name_format, + self.date_format + ) + else: + partitioned_datasets = [dataset] + for ds in partitioned_datasets: + attrs = ds.attrs + data = list(ds.values()) + asset_name = attrs['asset_name'] if 'asset_name' in attrs else get_ee_safe_name(uri) + channel_names = [ + self.band_names_dict.get(da.name, da.name) if self.band_names_dict + else da.name for da in data + ] + + dtype, crs, transform = (attrs.pop(key) for key in ['dtype', 'crs', 'transform']) + # Adding job_start_time to properites. + attrs["job_start_time"] = job_start_time + # Make attrs EE ingestable. + attrs = make_attrs_ee_compatible(attrs) + start_time, end_time = (attrs.get(key) for key in ('start_time', 'end_time')) + + if self.group_common_hypercubes: + level, height = (attrs.pop(key) for key in ['level', 'height']) + safe_level_name = get_ee_safe_name(level) + asset_name = f'{asset_name}_{safe_level_name}' + + compression = 'lzw' + predictor = 'NO' + if self.use_deflate: + compression = 'deflate' + # Depending on dtype select predictor value. + # Predictor is a method of storing only the difference from the + # previous value instead of the actual value. + predictor = 2 if np.issubdtype(dtype, np.integer) else 3 + + # For tiff ingestions. + if self.ee_asset_type == 'IMAGE': + file_name = f'{asset_name}.tiff' + + with MemoryFile() as memfile: + with memfile.open(driver='COG', + dtype=dtype, + width=data[0].data.shape[1], + height=data[0].data.shape[0], + count=len(data), + nodata=np.nan, + crs=crs, + transform=transform, + compress=compression, + predictor=predictor) as f: + for i, da in enumerate(data): + f.write(da, i+1) + # Making the channel name EE-safe before adding it as a band name. + f.set_band_description(i+1, get_ee_safe_name(channel_names[i])) + f.update_tags(i+1, band_name=channel_names[i]) + f.update_tags(i+1, **da.attrs) + + # Write attributes as tags in tiff. + f.update_tags(**attrs) + + # Copy in-memory tiff to gcs. + target_path = os.path.join(self.asset_location, file_name) + with FileSystems().create(target_path) as dst: + shutil.copyfileobj(memfile, dst, WRITE_CHUNK_SIZE) + child_logger.info(f"Uploaded {uri!r}'s COG to {target_path}") + + # For feature collection ingestions. + elif self.ee_asset_type == 'TABLE': + channel_names = [] + file_name = f'{asset_name}.csv' + + shape = math.prod(list(ds.dims.values())) + # Names of dimesions, coordinates and data variables. + dims = list(ds.dims) + coords = [c for c in list(ds.coords) if c not in dims] + vars = list(ds.data_vars) + header = dims + coords + vars + + # Data of dimesions, coordinates and data variables. + dims_data = [ds[dim].data for dim in dims] + coords_data = [np.full((shape,), ds[coord].data) for coord in coords] + vars_data = [ds[var].data.flatten() for var in vars] + data = coords_data + vars_data + + dims_shape = [len(ds[dim].data) for dim in dims] + + def get_dims_data(index: int) -> t.List[t.Any]: + """Returns dimensions for the given flattened index.""" + return [ + dim[int(index / math.prod(dims_shape[i + 1 :])) % len(dim)] + for i, dim in enumerate(dims_data) + ] + + # Copy CSV to gcs. target_path = os.path.join(self.asset_location, file_name) - with FileSystems().create(target_path) as dst: - shutil.copyfileobj(memfile, dst, WRITE_CHUNK_SIZE) - child_logger.info(f"Uploaded {uri!r}'s COG to {target_path}") - - # For feature collection ingestions. - elif self.ee_asset_type == 'TABLE': - channel_names = [] - file_name = f'{asset_name}.csv' - - shape = math.prod(list(ds.dims.values())) - # Names of dimesions, coordinates and data variables. - dims = list(ds.dims) - coords = [c for c in list(ds.coords) if c not in dims] - vars = list(ds.data_vars) - header = dims + coords + vars - - # Data of dimesions, coordinates and data variables. - dims_data = [ds[dim].data for dim in dims] - coords_data = [np.full((shape,), ds[coord].data) for coord in coords] - vars_data = [ds[var].data.flatten() for var in vars] - data = coords_data + vars_data - - dims_shape = [len(ds[dim].data) for dim in dims] - - def get_dims_data(index: int) -> t.List[t.Any]: - """Returns dimensions for the given flattened index.""" - return [ - dim[int(index/math.prod(dims_shape[i+1:])) % len(dim)] for (i, dim) in enumerate(dims_data) - ] - - # Copy CSV to gcs. - target_path = os.path.join(self.asset_location, file_name) - with tempfile.NamedTemporaryFile() as temp: - with open(temp.name, 'w', newline='') as f: - writer = csv.writer(f) - writer.writerows([header]) - # Write rows in batches. - for i in range(0, shape, ROWS_PER_WRITE): - writer.writerows( - [get_dims_data(i) + list(row) for row in zip( - *[d[i:i + ROWS_PER_WRITE] for d in data] - )] - ) - - upload(temp.name, target_path) - - asset_data = AssetData( - name=asset_name, - target_path=target_path, - channel_names=channel_names, - start_time=start_time, - end_time=end_time, - properties=attrs - ) + with tempfile.NamedTemporaryFile() as temp: + with open(temp.name, 'w', newline='') as f: + writer = csv.writer(f) + writer.writerows([header]) + # Write rows in batches. + for i in range(0, shape, ROWS_PER_WRITE): + writer.writerows( + [get_dims_data(i) + list(row) for row in zip( + *[d[i:i + ROWS_PER_WRITE] for d in data] + )] + ) + + upload(temp.name, target_path) + + asset_data = AssetData( + name=asset_name, + target_path=target_path, + channel_names=channel_names, + start_time=start_time, + end_time=end_time, + properties=attrs + ) - self.add_to_queue(queue, asset_data) + self.add_to_queue(queue, asset_data) self.add_to_queue(queue, None) # Indicates end of the subprocess. @timeit('ConvertToAsset') diff --git a/weather_mv/loader_pipeline/util.py b/weather_mv/loader_pipeline/util.py index 16ca435c..dcb361a3 100644 --- a/weather_mv/loader_pipeline/util.py +++ b/weather_mv/loader_pipeline/util.py @@ -27,6 +27,7 @@ import typing as t import uuid from functools import partial +from string import Formatter from urllib.parse import urlparse import apache_beam as beam import numpy as np @@ -327,6 +328,27 @@ def validate_region(output_table: t.Optional[str] = None, signal.signal(signal.SIGINT, original_sigtstp_handler) +def get_dims_from_name_format(asset_name_format): + """Returns a list of dimension from the asset name format.""" + return [field_name for _, field_name, _, _ in Formatter().parse(asset_name_format) if field_name] + +def get_datetime_from(value: np.datetime64): + return datetime.fromtimestamp((value - np.datetime64(0, 's')) // np.timedelta64(1, 's')) + +def convert_to_string(value, date_format='%Y%M%d%H%M%S'): + """Converts a given value to string based on the type of value.""" + if isinstance(value, np.ndarray) and value.size == 1: + value = value.item() + if isinstance(value, float): + return str(round(value, 2)) + else: + return str(value) + elif isinstance(value, np.datetime64): + dt = get_datetime_from(value) + return dt.strftime(date_format) + else: + return str(value) + def _shard(elem, num_shards: int): return (np.random.randint(0, num_shards), elem) From 5f57a33a325c5eae10926da7645ca34435dd7376 Mon Sep 17 00:00:00 2001 From: Kamlesh Date: Thu, 23 Jan 2025 18:31:07 +0530 Subject: [PATCH 2/9] Added fixes for bugs --- weather_mv/loader_pipeline/ee.py | 4 ++-- weather_mv/loader_pipeline/util.py | 15 +++++++++------ 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/weather_mv/loader_pipeline/ee.py b/weather_mv/loader_pipeline/ee.py index 7e4a3acb..0200acf1 100644 --- a/weather_mv/loader_pipeline/ee.py +++ b/weather_mv/loader_pipeline/ee.py @@ -227,7 +227,7 @@ def partition_dataset(ds, partition_dims, dim_mapping, asset_name_format, date_f parts = [] for dim in to_flatten: value = sliced_ds[dim].values[flat_selector[dim]] - parts.append(f"{dim}_{convert_to_string(value, date_format)}") + parts.append(f"{dim}_{convert_to_string(value, date_format, make_ee_safe=True)}") parts.append(var_name) flat_var_name = f"{'_'.join(parts)}" @@ -534,7 +534,7 @@ def validate_arguments(cls, known_args: argparse.Namespace, pipeline_args: t.Lis if known_args.partition_dims: if not known_args.asset_name_format: raise RuntimeError('asset_name_format is required when specifying partition_dims.') - if not known_args.ee_asset_type != "IMAGE": + if known_args.ee_asset_type != "IMAGE": raise RuntimeError('partition_dims should be specified for "IMAGE" asset_type only.') # Check whether the asset name format contains valid dimensions. diff --git a/weather_mv/loader_pipeline/util.py b/weather_mv/loader_pipeline/util.py index dcb361a3..49250050 100644 --- a/weather_mv/loader_pipeline/util.py +++ b/weather_mv/loader_pipeline/util.py @@ -333,21 +333,24 @@ def get_dims_from_name_format(asset_name_format): return [field_name for _, field_name, _, _ in Formatter().parse(asset_name_format) if field_name] def get_datetime_from(value: np.datetime64): - return datetime.fromtimestamp((value - np.datetime64(0, 's')) // np.timedelta64(1, 's')) + return datetime.datetime.fromtimestamp((value - np.datetime64(0, 's')) // np.timedelta64(1, 's')) -def convert_to_string(value, date_format='%Y%M%d%H%M%S'): +def convert_to_string(value, date_format='%Y%M%d%H%M%S', make_ee_safe=False): """Converts a given value to string based on the type of value.""" + str_val = '' if isinstance(value, np.ndarray) and value.size == 1: value = value.item() if isinstance(value, float): - return str(round(value, 2)) + str_val = str(round(value, 2)) else: - return str(value) + str_val = str(value) elif isinstance(value, np.datetime64): dt = get_datetime_from(value) - return dt.strftime(date_format) + str_val = dt.strftime(date_format) else: - return str(value) + str_val = str(value) + + return re.sub(r'[^a-zA-Z0-9-_]+', r'_', str_val) if make_ee_safe else str_val def _shard(elem, num_shards: int): return (np.random.randint(0, num_shards), elem) From a83b94d24d8db06e387f363782b4e60fca1f2389 Mon Sep 17 00:00:00 2001 From: Kamlesh Date: Fri, 24 Jan 2025 12:10:21 +0530 Subject: [PATCH 3/9] Added new lines and comments --- weather_mv/loader_pipeline/ee.py | 6 ++++++ weather_mv/loader_pipeline/util.py | 3 +++ 2 files changed, 9 insertions(+) diff --git a/weather_mv/loader_pipeline/ee.py b/weather_mv/loader_pipeline/ee.py index 0200acf1..6c348252 100644 --- a/weather_mv/loader_pipeline/ee.py +++ b/weather_mv/loader_pipeline/ee.py @@ -140,6 +140,7 @@ def ee_initialize(use_personal_account: bool = False, else: ee.Initialize(creds) + def construct_asset_name(ds, asset_name_format): """Generate asset_name based on the format by using dataset attributes.""" dims = get_dims_from_name_format(asset_name_format) @@ -154,6 +155,7 @@ def construct_asset_name(ds, asset_name_format): asset_name = asset_name_format.format(**dim_values) return asset_name + def add_additional_attrs(ds, dim_mapping, date_format): """ Adds additional attributes (start_time, end_time, forecast_seconds) in the dataset if the dim_mapping is provided. @@ -179,6 +181,7 @@ def add_additional_attrs(ds, dim_mapping, date_format): attrs['init_time'] = convert_to_string(start_time, date_format) attrs['valid_time'] = convert_to_string(end_time, date_format) + def partition_dataset(ds, partition_dims, dim_mapping, asset_name_format, date_format): """ Partitions a dataset based on the specified dimensions and flattens other dimensions into variable names. @@ -216,9 +219,11 @@ def partition_dataset(ds, partition_dims, dim_mapping, asset_name_format, date_f # Add attribiutes (init_time, valid_time, forecast_seconds) in dataset add_additional_attrs(sliced_ds, dim_mapping, date_format) + # Flatten the remaining dimensions into variable names new_data_vars = {} for var_name, data_array in sliced_ds.data_vars.items(): + # Iterate over the indexes created for the dimension that needs to be flatten for flat_idx in itertools.product(*[range(sliced_ds.sizes[dim]) for dim in to_flatten]): flat_selector = {dim: flat_idx[i] for i, dim in enumerate(to_flatten)} flat_data_array = data_array.isel(flat_selector).squeeze() @@ -263,6 +268,7 @@ def partition_dataset(ds, partition_dims, dim_mapping, asset_name_format, date_f return partitioned_datasets + class SetupEarthEngine(RateLimit): """A base class to setup the earth engine.""" diff --git a/weather_mv/loader_pipeline/util.py b/weather_mv/loader_pipeline/util.py index 49250050..121be3da 100644 --- a/weather_mv/loader_pipeline/util.py +++ b/weather_mv/loader_pipeline/util.py @@ -332,9 +332,11 @@ def get_dims_from_name_format(asset_name_format): """Returns a list of dimension from the asset name format.""" return [field_name for _, field_name, _, _ in Formatter().parse(asset_name_format) if field_name] + def get_datetime_from(value: np.datetime64): return datetime.datetime.fromtimestamp((value - np.datetime64(0, 's')) // np.timedelta64(1, 's')) + def convert_to_string(value, date_format='%Y%M%d%H%M%S', make_ee_safe=False): """Converts a given value to string based on the type of value.""" str_val = '' @@ -352,6 +354,7 @@ def convert_to_string(value, date_format='%Y%M%d%H%M%S', make_ee_safe=False): return re.sub(r'[^a-zA-Z0-9-_]+', r'_', str_val) if make_ee_safe else str_val + def _shard(elem, num_shards: int): return (np.random.randint(0, num_shards), elem) From ef121f571673948e28aeaaa30a2c0aaada29460a Mon Sep 17 00:00:00 2001 From: Kamlesh Date: Sat, 25 Jan 2025 22:11:53 +0530 Subject: [PATCH 4/9] Added testcases and fixed some deprecations --- weather_mv/loader_pipeline/ee.py | 20 +++--- weather_mv/loader_pipeline/ee_test.py | 88 ++++++++++++++++++++++++- weather_mv/loader_pipeline/sinks.py | 2 +- weather_mv/loader_pipeline/util.py | 7 +- weather_mv/loader_pipeline/util_test.py | 16 +++++ 5 files changed, 120 insertions(+), 13 deletions(-) diff --git a/weather_mv/loader_pipeline/ee.py b/weather_mv/loader_pipeline/ee.py index 6c348252..23f3f8ee 100644 --- a/weather_mv/loader_pipeline/ee.py +++ b/weather_mv/loader_pipeline/ee.py @@ -141,17 +141,17 @@ def ee_initialize(use_personal_account: bool = False, ee.Initialize(creds) -def construct_asset_name(ds, asset_name_format): +def construct_asset_name(attrs, asset_name_format): """Generate asset_name based on the format by using dataset attributes.""" dims = get_dims_from_name_format(asset_name_format) dim_values = {} for dim in dims: # If the dim is init_time or valid_time - if dim in ds.attrs: - dim_values[dim] = ds.attrs[dim] - elif dim + '_value' in ds.attrs: - dim_values[dim] = ds.attrs[dim + '_value'] + if dim in attrs: + dim_values[dim] = attrs[dim] + elif dim + '_value' in attrs: + dim_values[dim] = attrs[dim + '_value'] asset_name = asset_name_format.format(**dim_values) return asset_name @@ -160,7 +160,7 @@ def add_additional_attrs(ds, dim_mapping, date_format): """ Adds additional attributes (start_time, end_time, forecast_seconds) in the dataset if the dim_mapping is provided. """ - attrs = ds.attrs + attrs = {} if (dim_mapping['init_time'] not in ds) or (dim_mapping['valid_time'] not in ds): raise ValueError('The dimension passed for init_time/valid_time is not present in dataset.') @@ -181,6 +181,8 @@ def add_additional_attrs(ds, dim_mapping, date_format): attrs['init_time'] = convert_to_string(start_time, date_format) attrs['valid_time'] = convert_to_string(end_time, date_format) + return attrs + def partition_dataset(ds, partition_dims, dim_mapping, asset_name_format, date_format): """ @@ -193,7 +195,7 @@ def partition_dataset(ds, partition_dims, dim_mapping, asset_name_format, date_f start_time, end_time and forecast_seconds attributes in dataset. It also helps to calculate the valid_time if the step value is in timedelta format. asset_name_format (str): Specifies the format for the asset name of resulting COG, - containing dimensions enclosed in {} (e.g., '{init_time}_{valid_time}_{level}') + containing dimensions enclosed in {} (e.g., '{init_time}_{valid_time}') date_format (str): Datetime format to use in the asset name if the dimension is of type datetime Returns: @@ -218,7 +220,7 @@ def partition_dataset(ds, partition_dims, dim_mapping, asset_name_format, date_f sliced_ds = ds.isel(selector) # Add attribiutes (init_time, valid_time, forecast_seconds) in dataset - add_additional_attrs(sliced_ds, dim_mapping, date_format) + sliced_ds.attrs.update(**add_additional_attrs(sliced_ds, dim_mapping, date_format)) # Flatten the remaining dimensions into variable names new_data_vars = {} @@ -262,7 +264,7 @@ def partition_dataset(ds, partition_dims, dim_mapping, asset_name_format, date_f ) # Create asset_name and store it in attributes - asset_name = construct_asset_name(new_ds, asset_name_format) + asset_name = construct_asset_name(new_ds.attrs, asset_name_format) new_ds.attrs['asset_name'] = asset_name partitioned_datasets.append(new_ds) diff --git a/weather_mv/loader_pipeline/ee_test.py b/weather_mv/loader_pipeline/ee_test.py index 7627152e..e5d7773c 100644 --- a/weather_mv/loader_pipeline/ee_test.py +++ b/weather_mv/loader_pipeline/ee_test.py @@ -15,10 +15,15 @@ import os import tempfile import unittest +import xarray as xr +import numpy as np from .ee import ( get_ee_safe_name, - ConvertToAsset + ConvertToAsset, + add_additional_attrs, + partition_dataset, + construct_asset_name ) from .sinks_test import TestDataBase @@ -108,5 +113,86 @@ def test_convert_to_table_asset__with_multiple_grib_edition(self): self.assertTrue(os.path.getsize(asset_path) > os.path.getsize(data_path)) +class PartitionDatasetTests(TestDataBase): + + def setUp(self): + super().setUp() + self.dim_mapping = { + 'init_time': 'time', + 'valid_time': 'step' + } + self.date_format = '%Y%m%d%H%M' + self.ds = xr.open_dataset(f'{self.test_data_folder}/test_data_multi_dimension.nc') + + def test_add_additional_attrs(self): + + sliced_ds = self.ds.isel({'time': 0, 'step': 1}) + attrs = add_additional_attrs(sliced_ds, self.dim_mapping, self.date_format) + attr_names = ['init_time', 'valid_time', 'start_time', 'end_time', 'forecast_seconds'] + + for name in attr_names: + self.assertTrue(name in attrs) + + self.assertEqual(attrs['init_time'], '202412010000') + self.assertEqual(attrs['valid_time'], '202412010600') + self.assertEqual(attrs['start_time'], '2024-12-01T00:00:00Z') + self.assertEqual(attrs['end_time'], '2024-12-01T06:00:00Z') + self.assertEqual(attrs['forecast_seconds'], 6 * 60 * 60) + + def test_construct_asset_name(self): + + asset_name_format = '{init_time}_{valid_time}_{level}' + attrs = { + 'init_time': '202412010000', + 'valid_time': '202412010600', + 'level_value': np.array(2), + 'time_value': np.datetime64('2024-12-01'), + 'step_value': np.timedelta64(6, 'h') + } + + self.assertEqual(construct_asset_name(attrs, asset_name_format), '202412010000_202412010600_2') + + def test_partition_dataset(self): + + partition_dims = ['time', 'step'] + asset_name_format = '{init_time}_{valid_time}' + partition_datasets = partition_dataset( + self.ds, partition_dims, self.dim_mapping, asset_name_format, self.date_format + ) + + # As the ds partitioned on time(3) and step(3), there should be total 9 datasets + self.assertEqual(len(partition_datasets), 9) + + dates = ['202412010000', '202412020000', '202412030000'] + valid_times = [ + '202412010000', '202412010600', '202412011200', + '202412020000', '202412020600', '202412021200', + '202412030000', '202412030600', '202412031200', + ] + + for i, dataset in enumerate(partition_datasets): + + # Make sure the level dimension is flattened and values added in dataArray name + self.assertEqual(len(dataset.data_vars), 6) + self.assertTrue('level_0_x' in dataset.data_vars) + self.assertTrue('level_0_y' in dataset.data_vars) + self.assertTrue('level_0_z' in dataset.data_vars) + self.assertTrue('level_1_x' in dataset.data_vars) + self.assertTrue('level_1_y' in dataset.data_vars) + self.assertTrue('level_1_z' in dataset.data_vars) + + # Make sure the dataset contains only 2 dimension: latitude and longitude + self.assertEqual(len(dataset.dims), 2) + self.assertTrue('latitude' in dataset.dims.keys()) + self.assertTrue('longitude' in dataset.dims.keys()) + + # Make sure the data arrays are of 2D + self.assertEqual(dataset['level_0_x'].shape, (18, 36)) + + # Make sure the dataset have correct name + self.assertTrue('asset_name' in dataset.attrs) + self.assertEqual(dataset.attrs['asset_name'], f'{dates[i // 3]}_{valid_times[i]}') + + if __name__ == '__main__': unittest.main() diff --git a/weather_mv/loader_pipeline/sinks.py b/weather_mv/loader_pipeline/sinks.py index 553bb121..2b71d25d 100644 --- a/weather_mv/loader_pipeline/sinks.py +++ b/weather_mv/loader_pipeline/sinks.py @@ -226,7 +226,7 @@ def _replace_dataarray_names_with_long_names(ds: xr.Dataset): def _to_utc_timestring(np_time: np.datetime64) -> str: """Turn a numpy datetime64 into UTC timestring.""" timestamp = float((np_time - np.datetime64(0, 's')) / np.timedelta64(1, 's')) - return datetime.datetime.utcfromtimestamp(timestamp).strftime('%Y-%m-%dT%H:%M:%SZ') + return datetime.datetime.fromtimestamp(timestamp, datetime.timezone.utc).strftime('%Y-%m-%dT%H:%M:%SZ') def _add_is_normalized_attr(ds: xr.Dataset, value: bool) -> xr.Dataset: diff --git a/weather_mv/loader_pipeline/util.py b/weather_mv/loader_pipeline/util.py index 121be3da..9beb1d66 100644 --- a/weather_mv/loader_pipeline/util.py +++ b/weather_mv/loader_pipeline/util.py @@ -334,10 +334,13 @@ def get_dims_from_name_format(asset_name_format): def get_datetime_from(value: np.datetime64): - return datetime.datetime.fromtimestamp((value - np.datetime64(0, 's')) // np.timedelta64(1, 's')) + return datetime.datetime.fromtimestamp( + (value - np.datetime64(0, 's')) // np.timedelta64(1, 's'), + datetime.timezone.utc + ) -def convert_to_string(value, date_format='%Y%M%d%H%M%S', make_ee_safe=False): +def convert_to_string(value, date_format='%Y%m%d%H%M', make_ee_safe=False): """Converts a given value to string based on the type of value.""" str_val = '' if isinstance(value, np.ndarray) and value.size == 1: diff --git a/weather_mv/loader_pipeline/util_test.py b/weather_mv/loader_pipeline/util_test.py index 61b4a68d..37f2b578 100644 --- a/weather_mv/loader_pipeline/util_test.py +++ b/weather_mv/loader_pipeline/util_test.py @@ -26,6 +26,7 @@ ichunked, make_attrs_ee_compatible, to_json_serializable_type, + convert_to_string ) @@ -251,3 +252,18 @@ def test_to_json_serializable_type_datetime(self): self.assertEqual(self._convert(timedelta(seconds=1)), float(1)) self.assertEqual(self._convert(timedelta(minutes=1)), float(60)) self.assertEqual(self._convert(timedelta(days=1)), float(86400)) + + +class ConvertToStringTests(unittest.TestCase): + + def test_convert_scalar_to_string(self): + + self.assertEqual(convert_to_string(np.array(5)), '5') + self.assertEqual(convert_to_string(np.array(5.6789)), '5.68') + + def test_convert_datetime_to_string(self): + + value = np.datetime64('2025-01-24T04:05:06') + self.assertEqual(convert_to_string(value), '202501240405') + self.assertEqual(convert_to_string(value, '%Y/%m/%dT%H:%M:%S'), '2025/01/24T04:05:06') + self.assertEqual(convert_to_string(value, '%Y/%m/%dT%H:%M:%S', True), '2025_01_24T04_05_06') From ba1d23e3739d0425d6582e7a46f0be65024e5547 Mon Sep 17 00:00:00 2001 From: Kamlesh Date: Mon, 27 Jan 2025 14:19:12 +0530 Subject: [PATCH 5/9] Added nc file and some testcases --- weather_mv/loader_pipeline/ee_test.py | 18 ++++++++++++++++++ .../test_data/test_data_multi_dimension.nc | Bin 0 -> 290831 bytes 2 files changed, 18 insertions(+) create mode 100644 weather_mv/test_data/test_data_multi_dimension.nc diff --git a/weather_mv/loader_pipeline/ee_test.py b/weather_mv/loader_pipeline/ee_test.py index e5d7773c..0a8758c0 100644 --- a/weather_mv/loader_pipeline/ee_test.py +++ b/weather_mv/loader_pipeline/ee_test.py @@ -11,6 +11,7 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. +import fnmatch import logging import os import tempfile @@ -112,6 +113,23 @@ def test_convert_to_table_asset__with_multiple_grib_edition(self): # The size of tiff is expected to be more than grib. self.assertTrue(os.path.getsize(asset_path) > os.path.getsize(data_path)) + def test_convert_to_multi_image_asset(self): + convert_to_multi_image_asset = ConvertToAsset( + asset_location=self.tmpdir.name, + partition_dims=['time', 'step'], + asset_name_format='{init_time}_{valid_time}', + dim_mapping={ + 'init_time': 'time', + 'valid_time': 'step' + } + ) + data_path = f'{self.test_data_folder}/test_data_multi_dimension.nc' + asset_path = os.path.join(self.tmpdir.name) + list(convert_to_multi_image_asset.process(data_path)) + + # Make sure there are total 9 tiff files generated at target location + self.assertEqual(len(fnmatch.filter(os.listdir(asset_path), '*.tiff')), 9) + class PartitionDatasetTests(TestDataBase): diff --git a/weather_mv/test_data/test_data_multi_dimension.nc b/weather_mv/test_data/test_data_multi_dimension.nc new file mode 100644 index 0000000000000000000000000000000000000000..3df88fce40f72b8fccb828e37147ee5706a11498 GIT binary patch literal 290831 zcmeFYc|4V0_cwkFAt@?JDygIhnUXZTDHTddniQ#wB?)PgBq>u#B?(c8LPEwAGSBlo z9OrNh2S;g;RKKmb@B8`O_xJUCeV^y~K7W0#a;~%Yx%S@cT5IpM*LttD-8D6~PUjWj zW#{3cOkTexE`A%%-&JxGKTKEgFx#c6p~uemj(y4RI*#cRKTS6I>z$XK!Z!YhfWY`C z7yI}pg<|;UM&bM2GY5r_!b2fLnV8xgx3#pfw>)i4nN1$yCx7EDwwynD%Ero6%;c#3 zQ9Dz6K6wi1l!La#j(O{dYwW;k_NI3Bme%GJF7hko z&v%-?!O`DuGM&Q4COBTt&c?>ZG5&>I|G4vw6E8p*^M^NTlqoaDYdECF%M&EMe`U#JnNNNEQ4WeAd3{2{k)5XY$4$(XHlIFiYhr0lsJHt) z^dAw3{U-1?D@mit`*;U@EB|nV>kl_J?@-^f=QlIPIX+I5hL+BjoqM!)?L4w)v-%D~ zAMbdxe_rOj%`&?-Yi^&UnB%{s_|KbWO|WP8L>F9h$G@;~PR<`rd&^U%qZ2=_d9Z^z z-ua)VIuop&Y|6K2oJ0=Fls~lZRM*+^oAfE9^*HI{J&{|MPiW8oU1`nw!&S;(rN#4K zzWe_LX^l(m|5#ck7J*TupFh_-Kb4LD?0t3N=DL4&XnyO@L_0U}=>MO%#(N@<1`9u+|GT&*MwnbS6psJK;wqeYv#k?^ zOioqq|4DI;6a0THuAJ-BCip)=I=M~HI^y$BCihIN8>5K_xP-^QuyIbV(kWJ^4yIQ7 zCnoHlb@WyA&%>uC+BiNq*Zj{OWf%Ub{>Lg4`_HRvTpy0VB&@PAZ*<5T{BTY#4yS0zpmOL6jxVEn7(CZ)l4q0{pZvnORbxmMXOKK$`# zCU7kn?}d$%Z=$oQR;R7ae+#u@;$gjJ^NxRtZ>7&)#7EfvpSHO1<^5ZHliiW>BgrUU zMP-U>ZT8iFh*5uhT=psdZk$X^)PJnYe~5Ry0l6l2>EDBlmnYZnKc4$O2j?+W%6#bF(&+9MfdLl zqWm^L$n$KR|NdjIx7^k7=6t_(;eX54nq1zK_i>8Gi65tUoVUMcr^a|42W1*D;Koh3 zt(I0+`;JVvyf}>DIuJC#NnI`;1MUbBUX|wIn+M`dIN5&gh9pkV1 z+w>$IP0}@aAMbhL1pmUx_kS%%{H6TtFXhO;l%q)5EGu?++vZ(6epCEgZ&4`Y{f=Lg zrrxBLH{SpFHCaDtPK=K;eofX-?qcKPjbD@XllpOd-0^F&esYOD|5N>s`pI!${H1on+(8DksAj@^tNo>qPJz|<}F8l10u>~h;d9} zA|m)tWW_0~LCQ;i-NM;fXoGecwfRkm-Vg3)344Fb{n~04} zy7uEhB?tL8gJ4)>)X8X`hUF^ z1(W4T7EG3nkLVuwSBhB^6pKyp=>HwXe*{aROj0~qo}_rPykVB}ra#>L=Vz{qwa)lk z@NM~nxy>NB(r=M%*0nutV`^(}NkXsV@#iJvZ(LLkrnci#YJ-Bb_3s$%1|`|GvI^1` zCT6QQ$jizr$tsRd(f^DjWE3gQvt4lRBKK8); z`jKnHh9i;; z=tcf4jHsx9W^&;Z{_AN7eEP;lvb-8|9_7s7cJ0L$!;{w|?(`wS!A+HQh>pg~#SZaP zdhvbkGAE~N{aA2TL8#ig1ugEge3s=7Aa?zl<<53pkWkn~8+ly?stqIKG5oa&vSRJ~^G9p*dl za-s_#*PhK!)@DK_#7*z?f&>V+zx9myk_zYk4|}`ZJF%oss z&Zn+tVa&Q_mP$(pV&^_q+kCnoyz-Cv*X1?flX4!Ms;Zzi_T3|1p#rzObyZKMR3T^P zr5$_xXfS!6e4OoR8>IZ`MIm85SW|q@Mx(U@4tDfl!G>>N@3&m^Sk!8BqWtWgo!sQ1BaBzfPRa z`SJOBSr-ORE4F#(H$c^Rdfjr4HjLC%)Y7&MVBh;z(aq_-C^;DKIk>kJ$KLNTGhWsW zMfBY6Yh~ckuZ;aaHE38cw%RHCa|=X7eX2b-)k29;xA8c&AEV+?7I)lP@bOsY;5{c7 zJB0fmhtv-ukk0YN<5~rthTL)ORp z!zP7O?E#O;ykWi5_-Nk$a#!iO1l)mM*J z)1W;o!=H!J2@Ag|E6f5jVLdf8aD!?Spm$92@X|hv$^8=R^6bWjDMETYmzkK`_?Uk5 z7!41WFWf6UyANUy3`LFR^}_k-=<2B#DiOhx9=+~NGrF}m2RcPEU}Ab#Yl+qX$^$nA z4h&K;b9U@(nPC=Kd;KeXk9FgxtW{kWcLk`-4~4Jy=b-+IV3$QY6-vM67)CB;qSgJB zLP|+5)@X(6IJwiYWX^ofm1-?`5L`OddNCc*3uKJd*?RD>xB1ZzSr$ArI`@{ItH5HX z2jVz+42D>Q#U^CY!9lc>6 ziFg%J_36*suuoEJ%AK}uMBZMwqQ)a1`%WaBXfGaw=I)OI^MXomp|P zaV`}HDlRUSuWyHQH{DmJvlr?O1{s?_vyfw`)O1Xv62IzmJ5)|~!E3*`=T$B$t{Vkz zZtd&B(2`4uo8I(6-{qoxYF8T$aUWh`(M9HgfvN9x{u+c7zL@cJK@Uoro;_RYP>Qsj zyq9Wj3_$LT&7!b(l^AP2y;~um1dbby@6uB&#sMu3O~VgKsNqRrU(TJ6fESCpbk0=4 z-(u0wZP9Xg7Z%!`EgJ++>5V(WQKgXBp?kJ6q7@Yb9)tQvBQWY5WL*^B43AIYOKtA; zVorSLzTgc^cwWZo_(co-pS(rxQ6I`1D0uO zTQwfrvD;si>BEUR>PZ(i(=a0bs)e)l9X7T_ubGzDfr~pnnS>3up@@C`>>+VFhO{V3 z3v^--|6o3kz^8uH9Jjvs=^GOb4!yJ01e0-My^&1X?LP3vx(O|)tHBP%y7N+Q#mF=X znlt!=2~M?6hrDYNnHJNGB z35_qurG4~rVZCbO1MTV>2$kympboL1>LPz2PpT6cH_GI8G}0iK@oc%w>PAGR>)$(j zm;r6mYsJ(vRP@zd6v{nOi36LmzGU8ejbh$R(ZNH5xVF)=(C0gu|A)h7Y`gCa&2!)S zVt+B<%A396u52l0?CKLbbgvb+t!dNl%MQZ*!z8lU5&(3MCsl$AUH#KW3`jA~$cxB#>erOvyW|bt=z|`iPnAzS=bgxoNiW2U{ zO-bH;QERGUX4j(hS-uak_L(L8h3#Pf=-e^VF#w)GkC{u#-a+X{^3?mD9WeJ?dg?<{ zH@YsZR=BA|_M6ZvoQupKz&x*KRgw!6*L6j_`W_F!RP)uI^{ZHrbD7KOlNF9ZXQ7~j zkJ`XJ>)KIu!#;#)ACmueuoLeoN3{wbF%Y*Z5NmY?QFCVguazt4c>1y4NzJzl^j%)v zOq(t=Y4zzVh|qCZOu{8vFAog=MR76~9k`J4ZguR2emq}etK6m71nq&Wz#$#C4DT&?I`^dKV>Kw2X?HlLI@gyxJjMFt7PZLIVy4 z^{~fU4j{8XW7nfzH*om2%vD`Lh1X2V+)-v9Mj!Xs3G#MhMc?$Qu4mQA?(|DCAa)W% zenHS8K^kfl?-_}EGrH^`wLb7cLDQj9v# zT*b+%de(^*-}3#WN=h-6mF>93zZ>fZQO>Vmqi@XETFFlu5gJ;79%BRW#u&(kk(F)9fa= zx=J~5Zy@%XXJexH!9a|eU0c+-G!tIQGLJ%xau8U;o%8d~09Nu^F5P~Liq21qH&wUh zL0CrqmA~YBVvmjB23HK!xpbX|Imo<<@v1$!v=(waW)F9kF_1HBN#(LnMTnK0uUpgF zMf{X|1;6SWk=9f%TzjAr*{?5)X__^lrf2v@Dn~Z1zJ5JR?Jm(H!Eg5#Mcjix=KfsM zP0i?-*_f%P%tZ99(PI}h3qk4p`fWtA8Pb@uTrT`Q8jJTUXBYS5Q#&n|qqq{8AzuQo zMZSXgg=b$|tgrCn#8a|ZXs}^eOL+VTkeu*^$aB%AKZam7w-H%eAtX_5C zi%#UT;?!EavD5xh=-dG3&nFsq78RusDAI&yrZbj3eb|i}rCU6f+Wp}2NV-T5 zVM45$t!a(t08ZQ(O58@~uha7H`YnTXcwNBJ(lnb1AII;-^P0;MxBapir$QeTPwWkg zlj*<=^YyP?oNACMyn2uA&a2oYu6%Vv!T=g}s(AJ-Ndv`u_o3&buOacm+*!za0D>v0 zPnu5`!EF80r^{1Y!5;Es>P*gBSaDsUk5X$<6XQG8^kowQ9vd~xmuc?s~#rB2Obc}fT{uBu*fwcJdHGX_8a1x$T`HS#p!S29YI^PSyH#2HLr?C|+ z5z^tBT8)@GKRQlpRWIZY@7X#ts2M&g-lqyKwc_o~$Q{|+>M>18Ti_c_aSH$g_wQ|9HkbGbW@+nGvyU~wM*4elIZqf4JtNom9BAKH9b%_fV8wdD z7QO4);NicgA@lkTj?pv>3l!TS$HASaaz7t&RsP#&%}ImO&NqFuHYVH-q;KuH)CYT} zEaz0s0Z>1DS}A27i4SHMtIifPv3%`;pVxj;5hr8LfAmHH9$i-Bb-y%-7Cy=NO-tKw zX0iF|R0ld1NUWX~^R*Vy&9}Z@{>X&(;GR3?8ygXB*p@5*wGZWvEp@VM>5zM>Tc`f3 z26boEQ`H9=5NEu;?42SD+7E9GTnT2NLTishZ)F8o9qG}GiwsC}<{aC?lLeQOLzZnX zt02C~Iocz*6elZJOSz=vUbo%xIRjk$Lg$|H)nSYoI$u|rg)A zUMcbMq;?0)E||O+ywiqr-z{r6M+YDlJZIiIW*Pc|`Gil;=!0g+x5sgOn#vw9_c zVIBMf9i5_<)x!C9OG(YcUKo3odR;T_f_!aS`V->6ju=}e*))`6hSc!MMVITr(XjEf zC95CKR|Z{}cWklM%pp@trV8GAY*G~~`Vpv{ay8hm3${W$(-ciu@SQs=+xBA$FfHnCtI6gTF{U@x0T>2Lz^~EUsr`Z6AOcWhh|VtXH_j;3LH@U8x=qmC;b zCF)LzCZFGf`q@@9{v26T;;b2o8JELs2s0Y*@B_6&43K)Uwm4 zNO6^X{{3nSzQ*raaa@1_k7$>=73Nil%vCx!r6vPaewhgw5j{xO&Tv(w4uW>{dd}U; z41{Q&clWpO!-XS7+9&O35Q|E?3dH<>>>CRhxnU^7g05~?L$1-Un<6w9xT|~geNYsa1Fg3YvLKuNdipf2eq`jz+~%f} z=c}*2h~X^8hp4wxDpxTOkS;g8u&oZpbfb)1gEBant9?}{Zbkkap=g>=2lncu#-0ow zgzaLh1A)XIXwo}U_~CUI`c@S4XF4=NG$|m)IIaSlZEqMJ;3POrru_BmdwbDp+x2Ol zb~mC#8WhVqx{>(a;`GpkCKz+AfB)%eG|uY;E>f1w!`(%DT<5m*!OOV3d3$Fz!GTZm zdl0+H`KdwRLAhd-O#8-Rd8!?8J`v?>qav}dvaI)4T^$mosKLD-icxh?|IsDe7Fch0 zb4v7Sf=F?}JYC{v9xhR7O@pq9S~7P-A?&smELyAFj{}8Ulx&K-;P@pihkaKLgfsLF;!gFW zt=7aI)t-7R^_WUEz;w;`n+HD?Cuysb7b@hFv%9_qXAS55GX?Fay~pMyeb} zeTdVm79Fh3frqH_4K{f?(wLuLzC20x*=f@1;aUl35IwjFM4w+gyH9yldo$#pE*8ml zq(L=1zR~e(7cSkJw=}z-jzHOr*eHoAxbJViCrs=S{Xn;MPi~cC;O0S>bjc2=j-9?= z#AtxU%z}h763qzvk+TjSdrfA2=xV{r!*^}NVpynLlks3NvAe0J5f?WrWkN3Uj?VV! z)fn{|W_GhT;N$|kp4jMKOuOCGY(Iqs1>K6Bm)!>-9TB!oNF)=9_S$>QRr4`)m?m|` zmEZ?4Mm!>KJHQv1uz$N3v1bDWk7yIRt(QL;;Yeu0*7Qcnpm`lgxtW>3B)D+$JIA5R z7M<{`;@+7%y#?pJ4!CxRrb1ZI`tC{YO59_H+8g%`Kx1*#>f8s-5V!0K;z`Uwqet)k zYXpz85St;s?_fS$=jQ%8BGH7BwI#n?2K$j^8puvFqhp1(RIW5L9v@uAc~-`fcu*gk z(6!wSNc$Z1ft&0bm(H%;WxRli^r>F1t~vc=UyZ+ee@YmdtOay(Gdi%XuGl$hD)Fxa zpD)k2+J?Zep&LbW8c`=NvU|>&2E@NhJHg~_#e)OG!O_xvFcizUX}rA~*DqMqCmbbs zm#^>DwZy+n$zI1wBk`wEH8U|G@j;X*Sbeo+QXygET6pbhCGw|rp5r*ui;atJoM>+) z>pbATP7Yrx91m=HoV%w6+A(H`y;Q2o7L;Z>!QS;-?+6(~#@$h00jHN6VUcEV0a6P;kEye0M55cHApM zz?@IwH>2929~<`A@?aa(c;6oOxST=kL**)Of*;a9w@QB@@;}F?zf5FK2c8dQm7V!i z5B_e-9L7B+Zpq7ZT{W!5XwHW7H8(3^eBz{)&Eghl++Qg&{ZKIu+g_BGf6)hn7WzfU zwFGCkPrC6-jESw?+kGucD~LZgr7EzM4&yxMZC3(niQdU*NU|b+$;~V=YHSY#`rB6T z49UQkM{hzyrD*tAu{h0v;HL_7HO~a;IGu3q#GBe$L} zQ(f4A^U1TW*IK@VaJlyWbA>GktyXi(jOd2ORms&){mH(0_OhIXLj|@kPGIQpiK7Qhtz5PsM>bnh0*Ie49&SUKWmKO3C9D)&h7Jo z+|3xP;@7W`a!W>~@pCFRzFW71kI3of$>$;=pF5!zSW?313C7(G14~S25ZwHP8~aVc zP7IY+YE{)If>D30%$>gj6k%6317&L*s$kN+^!hM=`MTouvj%Yf+UvpwwnPN1EjjhW zx)yKqEmwuCVW8(y{%6%7I)a0_IWFI;N0Y9?`NsuhUviI`@^zgv^sTpQtx0HuGxvw9 zot=*Ge>vn~PvSP;w2o&S4WmQ2TQb7wa1wgL;!IlD`Z3^o?R~cl3j&E-rz;(5hQBst zVB@xIj7@jF>PhUyT0^bliM&*(nT)OarSuTm?x&oO2n?e7d1r0rEe5W?FwgV(%mDRi zj9#$hJA`jKrzKR#Np1{d44hWvRM(4cLaBebp) zVwCdhO0*0Tck$rLuBpX$0}l)8))^mfn+~g^!N*hEX&31U%<}B2FGh3#4uooIO7Yqv3 zYY;rNTrWIG9dGlyi^Lk>Jx?E5C>3I#ycP<*v znLUUzO}s)+U$LNaw1l5x*@H1bcMAbkVqcmp<2l|Fh4a<2AGsPDux~JP|JD>bT($JS z?HekB>r$B^fn#ORK4q;kva$zdi}IHHKdXSK_ul3!%2aIQ-Uy#}y$BNZWGy3dbL(B8 zbC9P6Hkx`oUl}i;Vmiw>`9>Fvcg`HpQc zWw0JKvjfJrW9+V!FmZJQ->3qy?<+!5sjH^H!%=q^)BB|Z(2wMu*X!F1G3SUAO_!dd z2+OL5wbk}+V&P?i+D!H+SX%tpKYqtYZ}5EXZxNPV4;q+a`;Wp0M-vh$FPjb z;eWoeU69!b1CMA0_UFCma+*HoE>DA+q10v1l4cZHyBFzj(D3?NUHLq72VG<>6vr@$Q(FYHq}?dKi}Ec!7yQmQ3rmd0i;6 z_WB&@SPAjMg!^WGeTX@!XmV0v5GET9he|egfai*2F4v(r$cxf#F3NNw#UONh=H4!x z$SE!mcNu_@L6PxZhc3*XoBt(bY7aOU3O?MsC+fvqN11hes7Of3+NjX`87grn zm-sEe_SlPZXQEWh=FJZ`Dum=y*S8KcA!tGSB^pD8n?Z|{#$y`3XlT+^?lwYpkBUgr zTow+D$!X4Q9t5XOQ~9a0l?YfRIPZ2=GpHJB#mQ#(usv3Hrf3Qc)%TpI+A7fCo_Kp- z_5L2bY&zumkl;3%w9u(nHa-RatB{5{2k7XuFk+Un(_v)CR(49W8gk10l8k3huz!C& zd%#gbm!Rz(wowLres1=i_p=NdfyWo0IZ}thnGZJ{F(CNvJZdP@mWkL@>!Xb?y9nO0 z)%j7$V~BkAc=q;5JBf!ESUWys!3iZPcSKuYT$Dt;PxP#u&Z308vm~Elm8Gd-L>0P@ zJWI4|r9z`8Z`zG>9oQ{2i&tE{6K_(QkLbwMp$RLPG;%Rr~@#gF~am07N%I`26~X6?*Ld!7vslZ=7|_Ze90{z&ZMx;|Kk z-@G9Aqy^7+>)zhr(E*kBdh#PdmBgR3ake1wqR)W~YaWUYK+|{b?D(csND9T@vW#M2 z3QNQ+{#PeLF4Qa0W|qQYe$}^{+%`nW{Mga=qaN|>j|1z&8_-b9tt{2PtX3U)>@kR2=T)pkFVSH#wxx}tH;7Ro#~Q|WCRDk3H#UqB zTyo9zGinFQ5o^|;9zUfXJPx0=jm}XK9d%c{c}5pzu%fw|ExO?*khEXrK|fYF%uUyi z>VohV!FMZVNPa+i%WBs}z1Tjp%vSFJv9oq?nF^E_BWvDtfiRK>b$_i}po?TTn#*!O zKjI;IIo{1ZV$v^=R$F(ak>oEZ=r8n&++7WY9WhDwtNT!s%AQ&2NpOkq>_PkBW|XLM zWf_uqjdW~IQsDJ+EH5eQ|Fv@v>vk`(&9m*tj^h!_oG%UFRqH_c)i=FFA1u~v*k21X z>X{SzIvuELO6w~7(TDXxO^T}}`(dK7gBJX)2+sB1*%gufh-?`)bv{nwz?`QaCR&Bz z%I&`3pISYz5l}@VD=D{ZQ74k734@tpSaoZMA-&m_`HTPDrllcQ445Hg{bo z`CakpYiGxuYJeQ|7F+hWQrx=Z$Uf7z9$FrJU)f5DeNv^~W!#$uBd&|RxgpvM$4xzY=q=v5nl}fDn7}$)P8NLhuBy3ZNVJ*Sf9Z%x$%IG z!J#`M`cW+0yyvWBaD>D=r_`9;Q1gYt)cnBCFO^UkO%38FezN~tEjf8c7G}6!(cdrM ziytNStHVv`@T&j87x1H>;4*yg3S%0fD_<40;!7AV(aL@)N)ud4EWGssvHK1$;Mw$k z2bsU+ea5v*DiJawKfffm06scT4thN+2k$p-)dk4}A7itNIguTQxLW7@EuY&U@vGYN z?x|Y5XjO$n2ptu-K29@OoPv$)iskMLo8h}KRnz4>$uErByY{;=(R+T$$HivcgFgFG z<5wNoP^O70@Q`&dwld~=@iwAQjot)iA1OmYaQ>deqF#h;UUu!;$68D?5z2f#+65c! z`dV(WBB;;Y$98=>DNA&RZ3xPNm9ymK0ZJd#at;Qmz!@QVncH0WW5MM!H)Bt04;o5D zRi|&RKs7@$|7LS1Hf_!N=uh%vW?1%ISef4ro$1g0m~vFZShCg6Da&{h=*6n0JNUMVX8tBeG-pkh~IX=Q-q za*EWPr(y6y$G|@E4)`3~rO8A5#;sT8h)n-N;$`!N?#S8J!a#A&%F$m$|H@`I_Oudz zP}7&A^ISPXDvyBH=7WzT?v%Y#J76`^yoB#U4rU&&`)W`8Y^&ngE(`n%Q9~JyGQXaW z6$%z#F84GNzI1x)Ms#3_!xpzfgDM&Rx^4`Y&afF$%nL^hVgB- zA}r}!Vd(vQyE7EytG%uKrMlQV>i|mK;pjgfyv)7mgn>EIx>xutX z*YL=6y&b`$W*@k}BAvu#^Bo7DHAX_QPwP-8!ErLRci-&qz7O-%LCq5ZR8$%s9Q`WR zhl0G@(PB5t;H=NPvY?{_qAnvo;o+UwGXG5ei70{tY)*C*?QX|dRfP%7s2YAd=PZg- z@5flYNB8=LxoAsA@mNqVMlQLz?%$CHaS3mYhmqZAIOmy=$k~A_{P$8{ka%GgHRkcK zZ51?@XD|(pkomkz5y8(LGkkj=&6wabl;yf+`XT1T1q z8Rof7I@?i_kt+I&FB_kB8#vj_Bl!{Kz8lTgTt(TZPrLS!cxKD3a0?ct z8)iEC+ap#}aqxw3@tciZn0YPK+svDR(o$Im(OW%OmMHc1_yDnoBCMS4&2x|_d0#MV zN(cJ4&}vg=)PZq~Cy0$z3Ejl9XV;EZqqcx<=qAO0F^BoseEl+v8CO>6d}_vWuBo(3 zolH1{A6^|d){8dw{Rqe+@!EZ|b#ix`h+SOhR6jQy1-v}3c6lU%k`UFjc$yai(+6S; zOR^Erp!Hm_x(Z+9xgXwAVZq|XQ~85lJ)j+n;d(`IMOB_EkwlVbyg7i6`Adrl>O9vK zqrwb0m*{r{&m{Sg?({iLPZqFQ&_nx|E z%}Z{JUPLqW=_=JEe{yN_uzY0~n3~)jA1{%-^h10zDnd(1eyGBtE3srh4!FK3cHe#M zwk@>2Du z;M2ELsYcS-`0TyDblTKDtep8>lBrI|a{=e023NY#qgENKSeA+hjDU<8VqNf)Zd=f> zgMq70#z+P)!B5XL1jOgq!}*o&@n!ciL3tLRvUu+ml*{MNJgh_FB>O+DZEvf^Jh#X> zRAOfq+%tLUXHMemboV@QkqXd?L!YSB)Iiq3S1h04J-R>aV^e)|uwG=)b7@~5-g(a~ zo*zzdi&OD!qKb{EU@c0IDXW4&aLa{N8(!j6w-dV^lYt9-r;i+)Pxw>QZWd(l5K<0P z;vKzM(3~y4n`l-uj`n@MDBXWtr(dEM4SGcm=7KHI z7Z6{r?w*C`8{-bY(Pu$Y+IRHgkpWPW?7j->T*N*e_l_8$c6_{1CMr9f1={z$vsgI; zxKrimbt#b!&#-&KRzAeP9+XxYO=*HRjdPI#@fT~u$Yo&LZgYIOW?7j6%y{fvK;8-?|DQ1mWB5cLy^QH?IPn-^@ z<*kIAewOuO>jJ2VeRBvV_H=LkMb;3(Yo0JIrywSho(iq^CFfB} zw1wO}NPPFs8EPbtFB6qAjF;!N$UNJ1*jME<@rwhl@s4!#AoJ4m1M&fWNYS1#zoNSa zE2^KrkffD^a?b4bg@f5p)S%ywUD5?ed~aU6wI7d-Uj1;^C+l%D98eB|L5Y*0!`q&Q{VjI zdOg&`rH=3__QO6s;)!r_H3Xv-$|^I;asJF+g#^V?2poI+K|`PiMXB!m0;&CI`06n1 zwSxGsJbP99>j%*HR)kHpi-uwM68DIWOq5FnEqW$G@SZcbvf1c;=wWv)opLn`6(Vc~ z@tlzev|m3YSeZrg(p+SGx%1&KdC2vwb2Ds?owpL+5C$%uMLMQwRS2wCsnO#;spVWHcS<+dd6`}FNexNLm^ zXx4K#b0s!F%&>6H@w@?;ypFHWvB-w_Oz*VgByLan_2kZ`wItt z>A(hauRd222aSk3)FrT^8EQkJ`TGS2&^WNkrSsJQPJ0SPJ}M^XZWf!bJ$@+^i#-z9 z7iUxPMgm*DoGt;^60_-vP9*MQ@7E{il#CF`yX8h<{-BuAlReY?ASR&recARRc=!jE zUVKaP0QIPk3W>f}dtl%5`hh=G-#0z!_w7KsbQ{leg8PUKP7{#3*GOIx z#lX&x@9P7SALX38P@ovxpVU(9U1+dE)z1Q1?x8Qw!5Pvy_BaF1=jri^44^ru~%>ebT&zNi81?j;SUnobE!;q3do9XLFGs zqh%bQ+k?U2GN;)a>!E9K{i(DqiN`GqG}Z4f#q2rTat>Z0{)Fbj%U4H=uwL_odd*d` z??muDUr+EQspfT}T_m5b#@F0XqdE_R*P>4eUhD>A7Z?9padIBT#$Vc6r3uZq(z7!1 zdLZ;}Qw-ZDCWdTZXy~{^V!cFe=lYKK5PG;;bc-8_n{~Z-ka2*}?Yl2ROql4q7b-s= zEUZF*zuUdMxNdyAXuF$P)(epwf}LwOAvwP|(P?8RXzU4;&OIcb@W}fMHiAX)SD7n# zl$ilO$s^vkP7-`XD(B>#pEX!B#Z6)EM=Ca$C`U_@{nds#^mu+d(ZkPfuLzVT_WSUr zjv3x8%((lC`}kIpuk`hNy!63#tV`xGvnr)w?yfLOxoj70a)|EtB;hXy0i#sJM^%i=3m%j9j*=mG3UpBIabA z+g<=&zUB5ldA;Z~e7I6wEej_iuAYo1IKYXt-hnKFyVePrWR4PhY35?Kh%U=M$h{a@ zEVD5a8^VHJlEaDrTAb~a{V@+=Ia&%E&lKW(dfw?-W=uRbU)$hm)B}~r1CHE5EGX-! z9+iGqOX5JwM!!17<0;$LombgNJcd)`BzI^4R_vEs_pQGRXUvv1+!SJv{39ca{6l5f zZhrOyZ}b3^{429hv{pdaoaeGO$?N{~xqj9~!iP&O<|NMD0axmR`#ZBTq5n`ayz*5W zUizPXInR#@ZCT+`&2M#}aL-#>AYTU!nS}Cn8#?hJjed)Z*z1|1-gkn9LU6w4ef|5P z*T|8ca<{;%5{F;vYNw{uU}OQiqW8E6=%hY^WYzfT|vVMidJ2!9s zm_{Y%TP4gRwM*g3$QnJYUWAPIS3?Ru^gu4$p}4B79GXRyM^#9kY^$QuH*JznM|k*r z?*1->MPFU*ZNWk=b{-ONVBqlEyZMD9G@L2k)H3TyKjhl{K6~ANg`2xXz1vA#CNnnv zU2SbHh7Mj0qXl;%Uw=u|EYpb#yiU%OObc4kGoOkaBbR+#X3fMO ze>pd(cK}nxO@9ea?}2-ld;8RTB>ptBymyS)&6K%Iy?LeE!1wrm#8HtdD7f8wB3ams z!h}Tg>w2AdJ6E~3`*b_r8CZXES=bM^noCLiB+sT|N4|34_Xt$wbHqKJUx_<|jiuX# z2gy0kNDYI)D10AKNbX%g?8&%WBNjy^ICNT0ZmkUsKd*N$3Uc=R;8LS zN>G=zC;zofE!v+6maNbx=i<`C0*p&Kk(o3srTmTsKCfLr^D_D{SaVKwa9TYitn*#j z#Cq_t%x>lhcY+_j*|h9LTotSYc6s{h5WML5s_OP`VwcZX^sL>(g05AS!SL`a^f_NR zF^x_`w48f)#MuHQUNQQ)l*AEq)t9j^;*5X>UC|{!w3D1uO1pP>bqCt(4WmS?y1}Pm zRW#_=g<4;^rFXb`u_G|1@NR1%s9Bswnx8Y!Vb3`DnUlojPW{y8e^m*Y1{XEA15A95 zqIxE4vrysh<)KN=@mXBu-28NHCFJkcj~)2X4fV__#!f31cx}E|XOes=Vdpu9Bcddq z@F{ms{~9J{jJcn@|AP4aMtim&d)kDD$F>+cedxlhRiBgJq>i8aeBfQbCmuUF44j-k zkoZ!;kf5AXD8#eF)+X6ifTHGbO0s4-&WkPk@+I>XRMJOa>TF@=c|^kyJ)1M3R=Yi_qRf+I#Qa z)86Z8?wcKrm%iQ{mwsINC}c@1`A zzbv>VVLnHeCi4sCa08Qm|H(VH08RwPpr2QpV9KIJpXm_hG#?PWx0zdEGhQt79Yqxc zZ!YeKsyU#vsN2&p?EoeHb=GmrP03I3r94A@Njm(wnK4}{)U7uvQH3wV-Mbl&j^Vxb zL+I#P?b#KeyH;UoSb;ijLFkCye=V>?6UUK>_veS6$(MHMlVa5S-1>pH0XD_Tk__Ju z1H+=9ZZg>rlq_;?2BR<0^`PX)zf=d{U-nRtFJA?lTPOEQW*ULo{3;_k!yE+4w%KT} zEWv*164#2|A&AT{v{SjU2w5E>DyMB$px}5O@wO74yBz7u?_Z3=qj~0QG5_X4UFl)@ z0O>dgEgyB^ZovGtfWO=!Ce%MBM2*hUWkXlivWnun1vpnYI=zBbyVG^kJRrJymtTfH+V3uHXNSQlgW2@ft1`G3pZWCg@hM;s z-#VLqeGC}?b@)GE9tZhaYtQQF1^8*s);V&32o42w@2~Bw!Wr0VI@*suaMsvUwyE>L zNLQFEpoJH}uE% z*qR|MJ7f_yewt`XCZW$E;DE{2#a^(cG*&dnx-{y5IB#m=641=;kX2`_!QNf!TYr6s z(0=`D=Uep=oaYHR8~d!Gk5+m8iwM@?Ov2+Pbp!B}JNmH(>O?-Q*5?W6zYTEs?f+3DEv` zl9g*4bND&l`YGs>_*I@T@mr||eo#0tO_z=Wb>;gn#EC|@Q2IuPgFh8CQ?C3wva^i2 zvRnRv#}=X6%J|!Jv!(4n1Pk{Rx6f0jky6-pE zUF)TJX@0iAr?#=I7cvG;!-eW}bW>0%cV)jDzPIUBJNpV8dOY9v%|c&ey?a(k5&AtyZgq&tbzuLvarkpA6@JbN25D2`?XWy$^gzD_=T;>`^Fg7_ zFmPCVk+G%-OpY*VaAbDF3tp~&>2Gn~x_;xRP~9k;IXV9O0M2VjG+%qijpAI0q$kd$ zk_Q^!h%1`TPlD^1QvYC-0|Xa2RcKs7zvtd?=HQoEP#;jp^qv|A0sT{!(?zo&DSCP6 z_~a54hg`nY61WPPGJ{bvZ$}~jthFY?MFQMAw6~FBy$t6*UtUp{?gbicpC1CKD-Vc2 z-p7dluJmypDX}af+{sqyisM`ZW{o$ZazBvgU{7mmyNSLq%_tjgpKPez`LZ>R`fn%4Fjw6jU*pC`q0%<|$_lFMme5Vl42-Fpt$nV2fJF)vpC z=M~u+eqPOwWDL{_CxEoco%`8o)HlDc22*&XfY53n>z;8pIJwsQ7Hsr`)J7v6DPJd$ zq~)FRZ0`h$RL)Tkze(V(yl|D-X9DbPdFGsbM&OF7Q==fuD3px-jMhLN#Xo=BTU|0k zFzdV5Y+lz56A!zNTN#$XG1=zyyvb>x*OTYmSdN84vTrx(2y<|3_L)%|=Fh6cT137(UTJ>MJQr0lbM6;Bs|PtFLQ;k<)=(ubu zbfM~Q%{+MgYCeC(d>)`-T|ymw6g15nO`7fV@KJp|bAFl#jVaI0Ed=Jkd!xW{p0|?_ z8T#Adt6v}bBE0$=-nU_noL9r%41L)nIsHT1!*IuzKfEdxbKj2=LMhOncT>8XZ}Hn0 z#Pdg;@M^1s*|Hr{!X(xoKkV-vdr$<@b&MDPlsAKNbwK?tKDSq5Z=0uY&Va7adF`Ln zmFT;pN~@?Tg_k-mBs{S=7bm+))5MB?E^Bc+1^k@K7YqY@Zeos@Mq^0_8X$eMqv*%R zAZ&ipyw=6A4DQNjq>^+ep;BofIisWi5{fQ-W5K>vim^)F+Z+3_An*Q%s2??s`&OzT zpM{)LFO{8i9-aiJ$NnAe0>)TU*2i4t#NeC~R+y>$!l+&kvyWLGy1t+JwDCa#QwpmNN~ zBVqlpSv!{Jk9oN^zSInjxHa(j?Y8(>vkNY~ERtfy=l?>Z^t}y=R0!X4QjH5(1=}9Z z#|12Np!>Lrit~0hEPP^|*~5Eem%Njh@S-37aUGAUof!p(XDzRUoo7MuN%GU_L!*#E ze5~Vr8}*f|-@iOfsf6{jRy^%P-N2k8otykOALN=&yPU%LW}z|N>-LdsSluD|%iSA+ z#e|zqi4r}a8$|#3#N8}lqzxJ6T&aRN-fIOtrZccc$hkyJ0W6U;f!6=V#mu_xQz3e zcad06oMinFL%s+?DxqQT{;j~!Y0>OJj(Mp)H_A!$tEC-I?X*t- zcG5Rqo!co8_onQh($yvS!uE*s;)QCk?jSPV$iTeKgYxID#88M|oH0JgQxA#mB@rhq zG54n!Q{-VY3lIP3oCGc%O7+ZC=7X2x{ujv1{!c)bhPc!&lMQa{9 zDVg5@^b|qk9^B|J&MJL)>0%t_PWcPfgeQQlo=@GK6n(+>bL895za)D!M$L_K8lt)n zD*sNK0ym{OkC#&D^GtSMdU7-#*7tlWIK7ANMtWUM(#y!|22o+&zPw5VGf*`v0FZU7{A{ySxfkC94ngOBaFJ zeaemc8T!7{>l|OW%!4dtai>?n0C1hpCzi5~f`zQd>6G>fI5?r;x@}2>!pYCi3hbWG(Qc0XtWkyKJ0`!om$t=Treo8gUq*3;V`7vL)7b=D)OQ@py+ zIdXmo#6mVX^JcNWppE|eoZ$)BSJ~8o<}$FiNS>g}YKD3Of z&je+IZwj32J*FOj{rAGvqQJVcDY()tdi3ua0U9R-W#2kxgNnPphtR+r)G(0H1*lDf zUs^q*P(Au+3Ddf~35^is^+A?EIs%fU*LaFBm+^Ql>)U|s6xiCUKE8pzpxy&B-;Sj$ z!fa~YIcLEU;Bu2#3lV67`UTg^_3sIAHItv0b`qc4-1f6UQp=!{(BJTQaULAcl>|S) zy1jw)v|Z_~2_W~#^(MhSk^cR@veNT)FlSj=D0y)XKJhOy5Ykpb<85d{$8H%YGw|Lk zGeW=mweh3(>I=b(AiE;t%JNT}RIJx`j;@F4$-HF%eFUTNSV-ltQt9oNOnz@2t2 z;V9`Ma5AdxKSIEHNKWAX3Fcxb`R2PDNVNu@!Z+Eiu|9sH{Sw^H<9yM#qwME$59*2E zoU&s3A&c#^?8%yC@C`MjSx~Nm>vx$+C_m#lC;Br#p{^E8KWEvCy;*<>p*hXv;s7W; zJNVPjqXC|!Kv;6$5d29$z!%^%3>Noev_s#t0?C7qBg?FAz}%8ASm{>?-vojbuGwK< zahsvtAm_vDm4)AsBH3hv>RG>w0$&pXW^-RceL{p)a4X*kMx}@fr$f&U+&?( z<~n?v!y)P^Fs7PIT>RVvBfs)&jnRiws`%0{p|~14-t8PNu$+QR`(vvOHr7CkQHnOg ztqly1KQ&R_TZIhYk5mi#y}&n6yXaz629#+(|Hxgb0lK`v(o8$-dnJSOpP^pCI27qL z%a1z4vu#HaZM;Vw@CiMG1h5UE>q)oA@6F3+|A);lphe5W`dPIWG)Bc84vY`LWwkjE zu827x>Etq4z4{3jPOggvy`Bb-f-1Em$T7O5Ec4g==o+ZqQ>%#9nSf-`n5bJ1bHTv- zQSWv1@uXh4eLIM^7p^^D(tX}F4Q|#7=XInP;I41ewL|w>;CF@ay%PtQfus9zP8R0> zGkL;nAI9eb;VnbZiHdBTp9>!D$ykMt53f^?UTp-Qka_d!RlHv>{L9t;mIjJ8vI2vS zSl47S5QBe?!bG-VAI&j5=Qp%QrCTR}plQ~l?a&HVGr!3cy~e;KJ#dyZArvY%_st}X zpntB6F3b;eke1c`cNKA7XuZ7fr0o0(aI~kKD#RS1MA5+EGjdoT@(~UzUd8_L<~O|t z)R%lMhRnN@hp?Uw(Qm{0h^b6(bl3)S1d+DAyb4v&&Mp}_lsW)6ztW1VpCW+Ew99`a z4H@@T1$wAOkHTfY`(gy`aUZKCy*UNe> z*nqCwv@anJ?z3#dpDF&bA@FL#trjx~G>K zk9r#oja&ojA`(e5601k%024zVf$4p~K7crr@n)b>T@cBbp97-|o4lhJQKzarJ(J}% z0*0KY_{{M0x7TG)8=i~?u@4&_JSxZ~D|(#K-qr{bySLU&PP798{pSdxKCfUc0d! z{|)C^{zaAHT!rxR@4x)L>Jeym8C^<>BSOGvX|a0*>aRo6Opc`e$k!se8key#{< zcV`&ZAGLs2b;ZF@)XSn3EX&vy6CiWNaizIB9<)_We@*C*LIhQfR|@*3ggNJ)oWPum zj(pEkAqUJEypSY|WGI8w2iN7qF_(AqRKu^DH|XyTAXB|xRtqb|!7G8}nC~(hZjDAC zqsXO}S(2a2(0a=kM7{C;w(6r^{o4rQW6!|39sMSE82lDqR|B7}%JuQ;8A$rV9(o>m zD~(lYS;kuZ;FTyMce|$sfRrIin0p$i&Gs53&^L_N`%SKk6X0;o&%m8`3i|D6?L#&( z*H5mU>uO#BHs&(w;z12CkpH=tS-le`_U(p>hlaqYI)lDSEb^+(P_W1Q1i^#xO`kpF z-0e8Zl->Wl2AQ8?>OIy+fuUjLN78{MU}a5xq-8%2B*{CQP8prxzH9X@Tz(SPs|iMy z8|e_XciJV>5c>y5b1l*)xPJg>0~{F@H8`#m^kuOqLA?ht)5<~H0k_s;E*EyH9&*;WVUFciw0 zR*jKcnr!9Q^B?-<*=e%XxZmN=vqre7E&8_V`V-Q=e*<-e&ucN~d!e;7d2qCG2s*lk zCU^oTfsZ!0^qgc5)NcEl->{j1Hm~Ocf~RJIC7$}xc`?+94e29~5L+BH|GW&E9 z^Sk;F$s})-fhci{Wri2Ia>IQTrO1u(Y4#(&#(9Mt)e5%<-uv-76Rc9_YT%YMJ;7WK z^HQCjuHVBtK|a;Lc}X14kI?fxVRwn>_xNKe*4YL%dmu$bC zSAm;~zDYEI7Z1D2 z8}}Y~6e&HKE-(j-qGK9I>sul0yT_-<@g>;$BvParKm;2D$BIbiZt#5^9PwTV{q_=< zd+7ah;g7-0KQiPlWH~p{%3(gre&m|g3)EFz^~VLt-y@H0l3q>u<_Z`HiSmb$pij%A zk1J)O9p4L`;%UquSJJJ~$|L`Vs-tasIB*bx_@-ln^#{Pf?!={**mn3+SZm~j{;`QL z=_`Ev=@7pVvFZP51hNywLn5%AVu^d|{G_Q1jKt3WVU8Vwnc~J04b*qpX>8;zFIB_X z?$?b02JTfg8F2su7@}Q0e9rJ>> znMBNWn|ahZ4J?D?@S2Vj_H$QrQ?n!Yufmm%vobY$M7R-kY$GOq9t^ZEAEo-!1Mau! zw?cknKTG@5nAr3P#2toCXS$67JEw!hhRrCPy8C)b8*?od8rDktk%O>AuHN?k@D!Yo z5#Fc$X99#ot;W@>Rv=!T;VIAiDqxNMzNe2|*Y)*>bxP}5V9)BDP|c29k^A=|KiXiQ znUz>@$g>f4!(ZGOWNCwZi=TreF2k@xH*6QjJqtEBIoa;hwL|X1zNsj~VW_+zs#!o1 z0@P%W`-OWK;K7#s-_JF(;6m^tcMT@OX))7M4elAJ6(GGa7uN%Xeb0Sanx}v^SJh$k z0P2@_sKRcAu7P23pXwn0G*o|wa5HTX3Lky?ZFZv>rd8?_ z8d1O9*RE6;V}br%|6a2@>&4I|xO$Hja|fJx8OQafmcjnQg>MZAZx*sa9sH!+ zj$o)3FnWr({l$7D`(@wqO zvokYhAp64k?k8WDK>4+MhXzR&Xk31In98L9G%D3MIIUxVj^}X(751SOAN)5zV@~UC zXU(>6dLI0`ZEV$vc?#}NRMd5t3$tH~w@^($on64Q@7eYM{E6P2|28uXTwbEgMXyJ| zT_XQp+Y!`1`Ki9%)69TyUIEiTwF@vb-1y}0{Z4QSINhPhUjwBh%jelnRYIjbwWZ|> z`jiYMemN7CKv&h+^YS=;FMm$g9nr)(gyrHRiNjcT&J?w?(M+mW535dPzU`Z9?nch7U2BtJ9WRQtw}PH-w*SF zJr!~4oz?K&c*P=RVhW_iKkv1k3WdYM{|tvikiV$OOU)IDJgZ`*AGOhg=ua%CGeBRS zk7nDoo`>jfF_)?3>FsJ4p zg3Xfsc|Pb1Ge}HSDU9j|k{`Rqyg8mAs3YvaMvryJb=&Hf8<;DwNK>d(s)g)ZbEYNq znDe!IB`d`7USo5!`5kJ6bJrtev6J<^z`FN)icG#1HVn+Hd%cSD0!H0 z`{V677?QuF^Y0w$Z9S8_vC-?F6%Ut>Vvj z;SxrFrrutIX}!!a+Rfn7#p@L<|?swu0bQo4iP<=vv zO$Y0vu!HF1h~f({Ru~4Y4s{k8lcr% zLYIO=*2?e#-1+$7>dG@bZ<})K{)-BO=6a!-ts^5~Wbt#r>-q#(R}mYiP`3$U5OJJD zuGxjN0ozduBTzYRO-5xTT831{aeU(zZgJ7Z&_|`nM6Ks!>zn))0zn+hdp+n;Y6eOh_ZTYzb zv92^(+UTS5<@*pT`Lz!2&NU2kXAc6Wr!ajf`f9gXH9}&Xk+WlCy#4z?3&_4u;fkS} zglh#qqMO`%K{VqVi)+vbh$M!*l0l!M=)3lSJwgl6j(5e~oFssEvIaT57}iOOyPqQl zk+aJ5bl(Whtr)L-aQTKhXX7dUr3dKSzWa5$M@n%7BCQ&Fg|*QqzEn}Eg!&}CwD>MX zVIwRPG=H2#PI+Oq!YL>8Pj5}W{dn>t`sQK{QVUw!U|cl+iIwLZ)G3EEp2BbE_3qVU=9$==A_t|o#O36wA1m-lY z9w$x%bMj2c0i2_-cGkaDWUaxy65eO%YTEEV4U!@d=fJU$%aChz9$faHscll8gOI6< znI?yEp90llVLa+D6Q-X0XV&Ur;Od~>azq{Isl?|FVgEfAasE!&7;>&9$sM_I|AQ^# zUY6UvK@g=5ALmW)g}XXu=G^y&piwwVFPY);gQwl-V#O>rlRxSLlH0 zT%F`g9hl#Ww9;}m?S_g=yU&=9VqMWmBXETa_dfJftS6QCAlLPsWhdWVP)O{f970`q z+TqrXsOWBhNN*#0E zfAzBqM?XpF=frf;l{s*@&TMsRZ3##%dlYnX@j1;RZoA+)ueji`U&9&sG)*_(Tw5#w z!tF@^=J6t!FsXWG`LG{sIc>a_@m|S|IQohn`vPORIdhsMoR6`)x4MT;!F>9G-;Wo@ zkaMx>#6qzKk>2Hu9ML+w)|CY+?8=?00`zSW#{F69PunDN$hvN4JZeRHZ zAz-CZ=Rwa51pVH8{S))8UM&MIm%ofb<}3b`lQQL?TYu>m19I9XxpW)pRu;fk-~p96 z`YP6iE2yt24RU0CXhV5=V01uWEJhIfV!9{- z*9_)xAf1U5^R>CMamK!D9dPW>QQ4}r1+b!4dQ^118+e^N406#YrFJ&1(foZQdU1Mem#tXigO5k%(f9h<&ckCYmI8JL3xNuIadQ_1A#w5rm zlv^^(SHjY8ys%vR91N1BU0OpQt}jiUUH0oq;F-K9wRa5lVMVs$0?m9lcl&;N$8;Zz z)K{Ogm%x5h^G@alv_VGf#*a8Zg^_MzSa>_4YqysbS5 zPjAUtl=c&#oJQE~cEu1}wbTCOgM47t!r&-S%gIMA+=?3y2rcbxL54ReH1BXdNeq2J``^v>9 zveBd9ZhGzQ-<~Fjm;L$gQ+hMV(|@%S$3DTv`g2G$>Z?URXjFa=uYylQQ%Wew0C*l@ z;d)((I{2aAggm(dsP?=WW=(tBKpD&LZp;6VE$vgg8c$cKsTNO43T zXx@+YwS{Q7cH~f873TujyQNVc_=WX&N|gSr<`{6R^gN9rlIlM?_<{2 zYC)F$odW|tPaj@MHU}`Szz4NAT8~?2K=S7+=BM$?5Tiz%@!JbpFtj)n}cmpQ4Il{P8aNW|7ig=g{97)$WyFtxVIU7dKvT`CqAem-`(|$ zZ7U=319WM=VHOadgjUV_!KOl(FRT7)+8i+mwXIDycGt(DM}3&}d=>In{(4)MG`T?j zw_?rnm-@jqgfeD!DhA?bv>Z#zYM^p=y>c^l4g?#-xN?!B=ylrCGyG2@@_?p7sxik~ zE+NhL66e{@?K&@&qUPcF)Zv9_6ZB_^?(%$ALcK?EK6uu(8%Ugmo;<&>07N>aN!p?T zuyF}@GbzHpf?@1DLrfWX4`kfAfVrr|2#4uvhJMIw&|R~aEC5Y~h2LLJE<>akq;&~ZZOMzUe*$Fqw1@AtrOYNf5>^q^pb|RFRI0t-74}1oV zi{Z2AI{Wtb1rRd1l|*|D=e9=Y)S z`62XcS7(tYV{X25d?^mZIv^nBW@BpjHxNU2hx0egFOcn(*T{E3$RVw72j4b=cG$@U zlf%gK`loib3w3MarN#8w=3Z#jAKFt>t%TCM(?ySBhM<3QOWG6fuiu4-4z#FF05{u0 zQoAqmmHvoaoZrT|QtQ9qTgV$VqNdK`++KpB4@FI{^O5gXuRf?I&lHZ4)y7k$UA?c=3p~o!G({h5iV^n8(qG+ z1R9Tmnlw?rXXY&C>9PSsFUxnF2vV-g+`pa1D7 zMb1k~W|{fNG9b#ld%qbxkNx3^eGJx-ZEKLmNrYvP;R8M7t#-SKSr6Wu5tM}Ir1@x(kesB#ELjH`jK+7@XUO$*k zZ**Qcj(+Xp!m&%wJ8>_WVlb6@C5*Es(JR9WM1Oqvx$rvjR28emB9lu&*>k5Pa(_3d zzSud(JFo~{q*NzKQBT?B{8dqE+6L_Fz^{Z+q>0wt^RhSI$m zct85jYs(V-zMpKkU9KY^Bj9H8C0q2dsmBHsm=+^9F)5cG`J}RM+}?NjU>;a~$tDYR z@$R1%OeZksAgo(9CaKc|f%MZ_<8P4z7F*6^kh%(bC3OjplzL#hDltzE=k_CQoUE_? zkSiN#c11NA{lhE~I|&q{C&K+qE5Y%lz|min$XSe}wMx-PpIVMRzxK}_2ogM)>`Ar?M#tN? zONi*(e-;*Hr7;Jzvdx!=kdv0oHo3yykq@p)aR>jp`#=CW(H<@(!sPi!Lm`crV>Z5a zl{cpe?4MD{l*H7+e(FjW;tKA~I6n31T>J_|=)L+(hWURE8jxm2{x-k=fj$M}1)$F+ zO>O6Gf%%g4)k5SiM9)+O-fP5P`E3`XQraQ;i!`SW=Hq$xEn6Gtj=B%d-chbk~%(W#7F<7>Cl$mWOP zdcoc?G2<5L5Z-RchkdAjr`(0N=(pl9eyt>g zdoyChubf<|gC}?N4qBP@02S$DY4W`VxHxA-XM_EcMsikut7RR8wHy_p!tYa~NZBTB zqZ&;9?U(&N`xUlM8&C=19xo0<>9xLX+&|;RB4{y&^N*dQOxfs1Je2$*?rO&>&{9|H zKNTE?8K;*!5A+v7c5n2~+oSVfb++zbP{stP1klZtVIL!R{Zq+mDei%xI30XSvj(I~ zZ=XxaN4~SFeUv$G0^Ibt$rd6!3k~|G9;q^69w_@k&d@S){W`Ut2d))EJ^8mXqkh~+ z^kBBSqi+m;7P`?)k)jV%%9X$xvIZr8xNk|`U53)M|oC0N2P?W!gRF zA@zGPeXS(&FT6mRo}>!4FJ`K$S0V3VmtkN$z7BRy4L2rItiZH9_Yc?QRVd)hOzgh2 z2C3ry%=MVZlvfBz9OG`m3}sZ;rJ{cDv-KtqFzvYp{7tptPGJljkd=Ng}l&s3d zd@V`X0K?TTGx)inx5JFN{hM-=-MPr0*#G$Sr`E<5$o_u+^6|H*Pb{hJ3tvEAwno9e z9|KXK=qX*=#m>+C~RhgnEt$*i$vra_Hb|8Z9O-1pi%v{0 z%O;?2=F1OGZO<2NaG@zflHH&KQWO8X!o5d;-YdU0rsZ(%7&A$tYlwSjcAmXds!9Rd zty3JmYp5GL*JUf|WZ^!*@xuMMcg5Q{)|s4p9wN?#7d#`Zz)Qjzk$waGp0ZCU8zC3< zoT}Xs6a2hYICV^Y6&68#-pe@q3;HN(h6A#(zv-(fsOeM2{d{767i!)k|Mq@z{ilpB zSUMZ*D>$?Szt4+i1a@FPW178e-Dw1@>_WCT9mm0|QZL1cALk{@Q*JHL0_^_02_8e~ z;B1{Bjk~%aTfwwd_XOqw{q(bq&}ZtjWX^gKecCK59Fejl$eG}d`k3cl4(FJ2QeN{` z!ks&u7eutPpMP74{|JZ}|D@(8)`ukJ+ky+%PvbT-kJx1*K;Sdvtzq++ztI2U_g} z<|Xk7xEj3XV{1PNeRVH2rtLaGrQNCjYS0S&?RRK&MxS3f??ChYqE%QgD1A|LJsa%W z)E}$d#y+)KU(Jel5<-&f1#{9{AlbL`bOkx?1-bI9r44;$ht+O0+oA6Kk@Dw(j^BCk zK$l;r7&#aL8{dtxTWcY0+k&DT_Ze2MeR?_?kpQumYxnteErV_OP2=0EU0^kr`*st# zaK9%^)a`N44g19SZ=(-I=r0lIyn+4W6q-yIkUMLz4hh5fGXjX*Z@OD=Q}_Zd7O$?USn`cII` zE30uDavM(5n(T}z7-Pl+E`Y9OLwe}$#E`xYbtJ+Mcf~UdG z|3&bRV}7dWzRchdO5u%12(XAdUGT>Uo<>EVXwXIVNR!KpH*!*dFDmaIfpuU{iejnYv~Ny!d+R-YML_IMJRfwhy0sWzlAyeI6a~ z(u$qBa}fQKez#^;gvP-1-fBG~&Z(z$TZs^> zqa?8X$^7X;3D)ywGrDvid(lTa9;*;azY zG7tlWZwQuT*Q&ssS^24JSu^gNRZC~-tc7P%&!&tp-`~!uXH)!l5ERK9`M-Wzgiq7F zo)zWe!28hbt+)p6OH12anaddjwIt0PW@0aRNtN1kVO^UORele~lG5CQk$9OXTpTiOr8u^ngsOf}iFN1i&b?$qTzoL@filDoQvxg3@78`NVsSBr6TUn;JL+plWg^Zkc= zbHp9)b}Qjtz^@Sx!uR1GKZ%;Zf1J~hzf~@`i2OFDDg9Cn$zJ&Rcr@hjBJS5~*F60a z^#~HNfF3DgHRz`6v#1t~fCMw6^JlkKcvKR7;5`R&Ci3&>%9N&{{AMA2Dsr%%q~|@c zknaVPy>u?yra&-zaLSwMDsm&O$Hy0H2Y^$4D`yVpK36P`tZ@z!pqVY{cIY+KJL<#D zQZAuyE8a_tb7=(oFe??&n>b(JTrizu8-Y37jeGy0KT%jc{(!&HC3gP5EALmm_0QH6T$ww?gmjnzu}yDDlQi6e>t{rHzxy)c=($1d-Tyf)!Yt3Utlyz z7ux9K;8cy#<&|RePcCWdS?Y{~@U}>W%7axHT2E53?m>>0B!xVaG0tTz&dkuh#X9ZR zmlth~eIOOWrX9b8eI1R9$BbVE9AmBEam-nR#})kbPFK-Kx^w;Mfu9y&;XYQRi2T(W z$$iUA)|kK64p&r2{|1z~I*HL^rJ&Jm`D|m9y((66$eG-iH>QeQ@n8SFQ?|go=#n~DiP|Wz`hIsmUXQ-AV3+3g z?M%3k!tps(BoCOIYB{&pyJ1_c#`a9W1W0`+%Sm@b{p0~d(Z%sTxTdlv)NhTtF<)7= zA?i7NtV9(BPY`L(8ap-Te3B@{2$`Cu~o# z3rk@?d#P3+s}plM@=xVIUPcb-$aYu5+in3#wZaDD zC3`;1FaOBY{NSj8er~~ZYpTvzI5{V+I{kP6j#Om6uMbAQqF}Gg(p}X3iGQ>Y;=bv1 zsag^Vo(VX&FYVO|`nIPX6e9n&Rly(Sw&TJF32-Z5ZL(bvxzUo@$98a@e#Kpsa^yYE z$rjT*zvpIwjnjB%E&59c(y6)AY~#?y|ID&PY936UJ#U{7?E!A;lDi=!^AP6JKRt1W z0HRab6Q+0`nEmuP#vU;O)am#7MpLj}oZWwgLfa24j5Qsbk|u%PFGBnPTO$xIWG{U? znGLS#`Q z_r_)01xWsn>r6uN90)LKse9|q;(n=|y>-iRD4e6=b@_omS42K0VyGB)ZA2LZG5_k( zJtO|x3Vl12k#*rZ%Mj+!bvw)w{mRDvISV+aaut8gUb;USSlq)NXG{`7zKSPhabf{( z?QU?8xgx)0;7bGfUCg5 zCBZqLSnnK*Kron$bp58lbF03sY>+<$IsW8gp+9_24?HM0rf( zD@;sq52zrASCsc6zc%uUiX{X;_k{Mt*^7kdO=H;47oO*PaC8)!3piD)@H|?zo$1+3 z8-aD%gNpm;C!zMm!z26A&!cvPY(So51UApgEzc8iN4(#bRhRfQ)Lu+49$#L-Jv0WN zolJ*dt9ie~jS|eUJL$x4r|2Y%Nr;fwBre0f6Rr%A*q`t# zmmUuj!}l`B)AsJ&K4@254hv{PE;Xl>0MDZsP@|2x<~=eF-iPMdY*9}-`ew;8FBdtq z8E<8EaL(=|D7yG60DXQ5C&j)d7l2J1!Ol2)8ps~!CjLWxY}n3GHxPASi%XmTt>c`& zvR(HuU0f3oa!*?vI?(}l?kTfhoyU98B!{~Z{pyZPNw(iVPos~MyE`r~3w`=m$fh2Q z!8xYl>>uJSz{Ik)JF*}9+KQY9J#xsq_KEaU$3B~BmprH_0q16~9OF$-bi=aAo8|*Q znt(e`ftjRr4*uRy8O=F31LlWh`HJl3L7C~{?cvM@V0}aza_2ne=Pv6I5u#>IdP45`Qd-RW-c% z?R@j|@C01=_vkOtCKdHiX>nQPLq9ZXE~C#G?HuUiDorJb|%?5j}je4XQOUoXr*Y?4(bA;K-0$gr=0czzDi96Nh@ z6{@ubj57;Y(I>n})=Y+6V=hX;lt)CM^d8Dzt;SsN*^X%e|0Q@aY87g}gZ&frzAsyg z?U1J*{ML^OeE=m3IUZf;TiQH+U|_Zuc|509N07HDXuACC>ev(r&sBBV;Js*=VR%eK zdlj@l8pU!n;`@2JQB;OA2R?PLSkqErUUFlFy1u*#ItIO;$>dH0Re^gJJKYS}Ti)o0e6vG|X9)Y3V433>`-4&fd{O@`q#{`ZKNsavpUBRkZ=L$vi7Cvl z1+Vd3F(5#GrVOjo5CH_3b_(S#Aot=m>!`?)7WgBoBd<0*4xN-Tz3ml~VCNb0p&9*= z=Ji_g_A5)k|MdXf!2AmCwW%pNw^@ohU-D*+l5MP5cjI2q0nX9Q81!X@>4nzj zVs5NwaX_vW=D#Y8cq}f0J@V+!_%?xekDTe?$4Ssg(In+@Oas?<1P9*x9YAg2WcFVq z`h;$K4mG~Z0TKFl@`i%={(X5>5Y*oX9aPV?_BCSO!RF$$Yd!kzcO$N6G8N&TpbtSI z5{pn}lppJJZWZi;&kuenP(~r7wKVQb_wnm>r!M`Fa}@IPSZ-g#T>oaro;wZt z_h0>d-tgf5GHk00W!s_8ptA5s+TkZ5Fu+^m|DVn@WH>sV-G2=CffkV#Xi1g8ym3|# zxeNLdcX%pkGkU=5C%iWyAAtnI<@3jhvp~JUbnDm@o~I(V8@uK+Pckqtz`Mi^^sxJ?ZgCmic3MIp)C0}+YIhytGccbgYQpE^ZVL^Q*h|uKrS2Z;~=B? zkL4Hgwi*vpC-ZE#LXOjKvTHJ^_q#pU*xTQQoa^k2;XlnleUwVUL%R*q`?+rY)942M zS_+kCMoVz`L-m_Ho<-oj7#D#_I^fZp^X&4(ocWVG2MCf)Fng2Zubcty(Tn{~_XT;Z zxj&kM!(VrRA$9luJF1J|G?HW6)s_uUyYp#yan7*#c{l!G*aGtD-qDt5&cT-rn%C2~ zpL|~PbGh}$ZeZaI`PTG5iq1Ql>;4VnLI{~DBPGcwMNvq(HF%VftRyQT**j6lP7;xf z$ev~Iy|ee;d#{iX`rW_3I?p+s^ThZ2`MmG`VDt9dWhfob-~#U8sEXbd~tt<^IF<}~+sWuDYR zehnIp1BM{q=WsdSd@q!-Te1DZzgK>Nx-x<=1PpJT;MhA@0R`?k^5oSO5Edv~5~093 zX*bdqre>k7Jh|dDz846>3xwKxzk>Rimy}(kqhK9<3x;6PC5vk72Q_!3XY-fBQ1~A9&hxT3{Yz8E{6Un^`B>})%D45hoR(|DzNs={3DjGxX?nSS&)|NV@#Av2 zNi`^4KN@VrSq-gTH2UFEQ?PjPPP~K86zJ0nMe6$v!f+-du?YGcXb#I7A3NI$x(QMw zrSlWWr#p9Lm!ls0-FrVhxLpO?oDzSDvoHs6)|0O>Zv^(4#3&s-mf+uhAx&2441j}q zXh7^Z6dsM8Cqh4znQcP@4RRQg)_kK&{^Fi6OyG)NJn|_^#HGADyn!S5S}2EnJFI3M z{I1r};Yw}V~=Pt0i~*FU<$hP@wS8VrNnRi7X!th6{5 z=VFy)ngAokCFD>BuKOvVk4m`v_R8K6xJ%JG=_^mc^-Y#wa{FN@H1zmjI*I4z$(xL2 z{LL_@-4iNwX%6l+9rfELLf(_+(;YHlcktL~8RRd)_i>DB?~8L~u=Zo!{J44^h>q2< z(p|$oC{snR)=ve<2|9N*Bn5jlW@?_B=yn4AhI!;NawBbnE)%vTw84*5D4P=GZ+&=vwPs*8w;KZuD6uzHuNz=LB=Hv(j2Qm;Way5ZCz3GS0fHrWG zpiAXMp5w!=ET?(wtx24CX{wSt0OC1AcVdJlz<_$r{2cBP$Xk9JN4g>xb6)+W?=pU` z|4JPaz#Qn@3VGDdQWM0k$56Z}8V80f(>(c`6Hpyr)^Yy93UFOY@~&XR{WRSNQ4<&R z`TsP_lY3ST*M6-vJCAmORQunI1Da0c&x=s$EEU62)%NCH!8%YD@FF6>9It+#_WU^J z?#5P>7Ul}#VYzBa^t>?ce~!PHP-7Z`bkSbsZmKpYFF%(`cQ+7*uhSLbXlb>d&1jh;&bOGQwO;UfX-= zuTo3kpsH%@gZ+!?Rv+4UEK$cxF?_4pnhmFq{iBP(eB+H**O^rU(D$ROC;a#X8oWTi*&|SDWBq#gq9X{+?Xg9tV~_?S`5!YL_a`W1nD{ zmr=E98<5l*P8Va%0`os+v_+ybeIH&n!)qyPWQilT(= zPxSFxG#UEW0b8|8%x-rxpuMX=lsge<`xd@ zSEdqir-^MqE}@Kaoo5Hsy?1G+LEc(yij49xcHA$?sum8t?n6CIk7;^v3EucUvmQEx z{EV%~&5^QHr>=O^6D1nVQ-23mgN11w?~0nDyye} zvj({3wQ?tPhrl?gR)iz79Q~s|g0hVY;08ZszYaU=tJg(D+(7-swQ=r-}a+H@x{Z%<+ZB6s?>bW+0LYu%=$ z#Lx&-FZXtaX4OKA9C^%(1H2~^OdQg1n*ztMLx-;a=mhH&=XZip=o>q-WV3*}?(4tB z%L6N@@D~plthUq2$tYj>j;(o`$iZuV;xd#$M?s+ zqu+UnW)NtyGnqhMMbLiTH7Dv0*pWKfQo^&0em$PN$2gCy`B_Vx#J$Eque8ks@@%g8 z2AzmNZj)ueQw`JUUbr%pCVHf%2a@^nlPH{qVeVCxx@AHOC;%}H-%1Ze(aW|Zqfh)V zjZINO@*?;>m+c>;12ZNM2XI4CGNj^OYUYo@|6C~MCEN3Emk6;FP z0?%_BAct#T19dlZ;HuH3G}ebCtCpsC)qWH3lST*Z8&66zjN{`bvu z71HFNYIOg=zMSH0G9zj9Mf!0q6e4$ji~sC+{n0^q#rT~u^$YgQ5~guoCu|48p1KHc zonc^2Gt({qioI0>kB%${p#L=_;qK;WAq>zNrA5kO-ngcTYV&UyTz|+z`v!B3b>-@# z^n2-Wz31Of9O?r8J^p*YcTsn!aEpKyT;<35nk_frvtuwI;3WiwgKy7 z--c$^322Y!)$x|ZJh`^XrDK(ea9XbIqMzkFR3*DBF$s`j1W`Hc06GWQrz{*CVJLO$qTo8>Dr z%wcn<7szGfeL^=o<@=R%%mF-qtwd%y2)m`pk{_gc;8k>ex55zmaL2DyNl;*pTBTa8 zwWvAk>;hJ|_<=c`T5N6O1 zHM2+kDCy#NDbzK}KT%{2KE-`6)!9oHq)Fg-y@6c{b-gavR$W3voKwyHYXqKJL4!mM zNj$zM9K>smle5ggf9H=;Nu$25uiPFdhWYY!r*|c*6>XqbXy0k~0?!2&jx#Uuew{)~ zUBrcR>evgR58LtaFlPGFFOvN;usvj8%8aRl*U2)EKSd6LDgC@lj}qpn7=+C#A9@$$6)H_Q!Pc&l4Fir*72?q-{#$q+}LtGwep z3#?JEVoF`cK}X}J^mqQ$HvZ}Ykrbgty+Y0Kb93nIlRfPJDRYzWKz>U0#>BLY z@G!_v@V_NOPJltH-|WroI^@Y}YX$m;0Zs32{fn+DU<|Qs7GTPQ?qi+?BA7G$%AR3O zD$oEe|1k!J%OP*@*@*I8?+&mOl~S!QT?Cg_ufsgZ+nrXvj79fL(3Sb!QzxbeoF>gT z#LH&DM?rn%mGuaWq=)=eIg9$PsoNP+{|WTVI}27+&p>ukaLW(mBb1hRE7M{=tlYbf z?bG)*NV`%0i+p3^KZkx_D|~ihb{;C7?_C30atMhun=YajsEa4}31_$RGV4s)sA*-Z&_V;v9W#{m4U#3Wz;hnk4004iwKO>LMza zp|)zhnGN+i9r=i~f{$IeCyVEh%SYak3d65+5AYlk>AzKv-$!u<8|z!eK|ro#Bl~7+ z5j+n$7ObNmv+JEK5sl#>Sie-bEWa}b#IINb^h(g@>!WO1gt@aGH&c^--f8%2S(#1w z6niiBLgi-okazHvB%{o13Y0{qWmbbm!2PSlu_EjV=-{T-(A!1-%wNe}*ZoNl6%MYM zGsS&va{N1Kt!XF-GAw(UzY20>8ZVz;S%ujCHs`O}Rq)qi%4rVux*HVV@}9DeVb2He zxsQKlp-_f~_{Hur`q3X*>yqNnQT425lhzN66JAu0M>fON@PM%rNz~h^&KYtUuE5G^ zkG7hUVPLRHo8Q6nXUcA2$5jn^rP|!AYZRylQ;bNTEXN#CBayKs2lj3U-R_!WS_V?d z-^2vNsP}~bni^q8z6I0G@OYeup|y2s0q3nkrL+33iX$NVF5^t39r9I)!c7k2+!*oL zO3_NK7rHu&_Z)PZ;fig}nKfJV?dWG5K9+?2g-ypJcQKz?&SpOSh%F8-Ebdi5C0zo& zs(=YE-Wdqei3{nu&;}8I!U8AhF|RWtc&5Q8A9Cd%H9LxQ0%2Xi4+6|zUNeg`{EWVz zo*h4v9JL`>yK!X!+j^|Nh415V@gwq2(AV(mG9^{m$OPuk$oVg! zAJ4gxzf;{M1UZ=M5AGiA2VIpP%01x&FcMO~c6N9GvdiMhC7IEeYgXKlgmZ1k9B=A~ z8S+=%a^waY`yg=c^!$aCHhBGXXz8Dr9qfX&Dg4{MW3GZZIOt|ULgNL z9T0)~+7^+-&MWjW(HOu%84?EWKUzR+*y+>oC){AqNftb3tHejgNVV$tLWD? zpn2Y@TLyos{X@>9URX5hP;R9<4c}Bhghp7-!QFR!gH}zWpcCSkD__zMyS;%=6MI+i z-1zP0cOeG6mgw`htc!rHrv7?{O%lkKB<*ky;(VIeX7Ne^d$tzR=w~(Oz$JiUHV$(Z z=dHA-0?^lV%*SFtF0~F;{)=JmVnBUMwobqyw;rMkEvpOy@t)pq_`cI<5KNr+)J{83 z0G;R&VR`hSr7O@~iV|ps`!*K8`~`8|d;8vg#1{Q8of29Xhx(xS@ZN~(z+ACUD*rdW z%MGCP_fKXb=5k~G24ZgFy}V9nzW3efdKfk`cFp6N0bfe@Czbdfbaqno5jgLGxqQ7X zx*E(;+fCl$rtQV~q=RiJz8tKodH!(KFG1VU#D@uout&LjWa_s9?kANWeEfv(of5(~ z&%AJcysQ^$n8uK#>|#|7uWPImi7>}DC5U;h~z+E5JX zY`z&iy~D6>`(QqktP=(fxiVECH-Yz~Y?O_49S~ppx0>QP4-4E~&CS_M5N&92g<%HI zgZS^2!5-r8-@=ZAA#`F_8{ZT z2^jVo*t43z9^v;7+uFyGD=K~So*3?T+5-qV!ZBA%Sm06d9Pd9eTdmC^0r>M2vk(8! zz?XhYH>eYpBaXxGKVJ|pt*{gBxxe0~=A4~@U_rLVtA+Itwl>quiux^qHPz{Z z@IsJg-tZYg9V!31S@<8WPO!3kl6dOPG<1IdcqA_x`S{oWCeuAH$32ZvE9LPB2z@*v zoo0aj1auX`dYA{D-m14h-Hkf8{y49(S2Gx@=9QMXW51=FdhZi_Z~JSzOk1M=$+S>h z_K@)q9O5fstcgLc!^NjIFE=n(E-$x2h;!TAn!C;laTWMU9(&hW*#_q$;;+9b$N&HI zSBDP@_R^5<#a*-G74;l=I?KMR!2PcHmdEK&32C4~wJUmYZw!(R9OtTq(O=%mYH5D8 z8`i>qxaM3*MSaINx-0~rlLvKamr=*dsTatj4?-Tm4{nh{;{n+7)xY5*z6={S;s#|; zkW)yS=G2Gz1+v^wjvO-NTf5OtkIOUwSKBS`S1xd;7@;(>7?uuY`EG|?x0S0X|}hwAz}`4r4_!+L@ooRrslyFX6&!w zJ0AM`QU%Z%mfWZK*bk<8q#EO@^SB>OKOu^~3+F2vK}zMwSw3l_v$KLcokOBG6L@j| zIqP>RnEof!K4Hvsr5}d6vcr!vBDz6G^0>yIf=Qq@cwypkd=A<;!IO_+6jH?-t2W1G zaZaz-KNCF#xth|9dvBM3KF6jyZoDOjH5J(y(76kY2Zr=Pqzl*D z)-ybJ#~z;^6iSEwpgQ5I1mxFvmaoy{{9zu`MVDJY3necfUNpn~maYK3bhu3g`bBIW zmA%D$P@%Qi&&f$(bg6N2OT#=s`1nG?y9MB&XUrgYj~uc%{=l%S=;!#d5u4bLIW^rN zhMw&OIy}??SU!Zu2zkx?HQ+&_lnrjdq(Bb2+^3*7C@=sD|90~Fggv~7i+2D9AWa9=Wa!J_oXD1we;8P9JK@uf$tMwi+|H54T zwOV8Ei=UUEenpwHmvv^cE;`mM|KWMG)ZWRSfc){0b;L;!As)aDE=R_ChoRLif&4Y+$d1s=HK)_T@~Np~9yJeLWr^^ifqF zbE=B}4VHHGf-nI)49J9I80K5F&q%S&N>~wgKAy8q2u7 ziUjU%_v++lb)Y#*e7SL=tv1I|VqVf@%6@>YI>qUl7Q&UQ`X zg(l%j__rl;g~1DZG?wy9&l8S7a`_r-?0g6I0MeelhI&2ar}L79)Kl2+_trdu1^H*k zT?x($EC6As;!}m&%fQIf@1KQzx*=@Fc{eBLVf3E9hkwTe_^Uj+OocsJGy`fCS(tMV zv}KTffE<4|`T{;$iJy=yx*KrsMm-$o8r~tHa^edg1)8xOjn}Pa2#nYrkIky!EdRnbvhI#5b@?S^#k}@GOm3;MA^BjozTvKR2 z=zwoEO%{ht7omZnhTSZ)4fNN&B8+^{Z*{2i#S8CQ$oiP$mAX0(F1J6Iu>`ckDfd{} zSNQz9?cN!4+iiurtkc1xVyzI(%rfrrU=EB3+}K{D{&*l~#vLqxyy>$kKKDYJ;gE{l zv`7ka+8|9K?Bf_1SdIHZAofDgzsw@VoXXI9$(=jT@LpobR559ebJQMj%HiH6kc|8w z&hZ0#E(qms6`NyT&Oq-kEAqW`d^%;>QU5ugd#3$+`aDP`Uma+~e3jznW^PPW>JD$FLDdj~kRPQ@3aD+~P+d-(p*@GF#<$2;clsE=uol6%KxE8_uQIPLt<|XJh zVS3Q{0&~VK13u?($3wl*w2KJ(<<_l2j{SbyhrT)08YUZjkDGRXUp27!LTaZ~u5 zf1GnVjPKb~+NFJclOV(S-17!S9TZK5Fg1O_K5NNevfeDnGZ7R0;W*d^gPA0KZ2V&| z;P>Sq8-1f%ky~fnai6gkXGuIDQ3pPG#VV$l+pSDk^Q3t{3C?frg^!*}g2=A)x4+%9 z;nCZxDVYWD)@lW4*jf_gk1fDd!BfNYKPRA>L`A>kJ^IG%K0kB! zhzI5Z~$!>C@PUtpp z_I)7g57JqBZy&sa*>hL-7Vj*AlKXMCg4dV>WR5apkVM|XQ{TJ7s0+%EhM%++Ed_R& z8(XI5XW&uM9ot&ZF=$rJn&Anagy!h!8L>gU7u3*SjlPMwTf>9C9Nj?((aj^9(_Mkr z;q8Zi?KA*&S6=X_8$O2=)&!~1bC4o2CLhRvKG5*b-51Z}eqCrpQ3Cg*krnEk&zK`X zit$@L73QfOqIz6ZVvtAjWA@zVqydm4=$ve^8iDrb)N|i(z9H6Vp{$Fq!+mG|yDL6J zpgqd2x{_K3uj3DUk96XEa)`av@9Y4?u4$;U%3^M(e%mAZBA&}{JJ0uVRDu^7{T!7| z7L0c9Zccgk3MXRg@+MAKD?Q;u>K!Ix?2tQcz9mk)F=o<{;EhMlT0_%yN3D}v`oWqBF|ei zhnGQ4>2leh3p0=|;g+3&{u#egN&)d#$h$n;NG0Vx3Q2)W)q`Iq;M7Zt#7^ut;3j3+ zsNczlo}o`LdZi7Hb3Ts`V{M0T+#^>H;e9uoNRf}`QV*oNzG#+7>jvqnM@NNa(VyVW zWdGzY_K-bw(tm>7x5$4J{vH`?Ob;55AW6tH-ZOYeS$oSMux}zC_KF_4nm!E$B z2|jNliDpe|q2#>ruE{67SMI3a$rh{!{@4=Y2+t-UlRDFP>~BB(G514=TjGc;&KEX@v0(=0K>MH4=Q{Mm`-!QacPOp`^Z1$P zSI-W?Uii~ZUhf8wJ1=oh;_wi7Mc!k~;zd3KE1A!5F7ko;hEy(~{=ua8`Aj*^SxNi1 z=A|tr!L`76?SvKX0Ur~-lwikx5xUycgkN2-ud?1S8!-;a;cvJoaL;CMIGp@~z88vf zEQ*MbOTSTf;ov=4o}9g`yR^F!ls+`C?!fE_sm zvaHb=m}^sdkhf!w*^Wzt*n^58XG&EQ*E3&uS^L}jUwhZ{K0rBRv>kwJX90hr&9 z%v|BU?A;A)swwGulxc9eEHtYE_hzx5h2uVEHh@k63;E3&c>bn&<-&FVN{EaYk=&(8vDLjPQ$vO!R67t_9tI<2+FM&?K4nXh-kym1Wr zl}<1j{6;Q^qWs*Z622#yH(SVhgL^=|GINi@WC-Nh`kRZe$BK?CPh>(J`zT>KuVnZpv$nEkh2u!MVTyUPT7 zXOiKlYof*%-1}V=s%#*cK~AppMUMo}X-M|^UYXm`4Q(D{y+0)Sz)|*b=qODSby@~}TbmGe`-2l~+SXb*O?Iv^{y)9vCS&egYW zHB!A_0H5h!)Xj(MVfU;PjBfP7hiHx^Zj)K`?{hr2V;q1lc4Q-d9r)gQ5OjJU^WV;; z%W4W8KF}p`Q1ik9=WriI@~4X$QsNgTHl$Wr@(u)`l34#NjePvi#e8|fqU$ON8VxYq9N^+C`(rIGF;;E6#mH5PwMYXgP##cTe{CM^mR4glL4n-6;x|{$-bVjh+m|odjZg<9pLXM3?Y* zaEHtBom%42V*}*HrW7q;DQL9S%Logt`2)DsrRDsZ($ue&_k} z*IAfiRaH9}tObHf&I$$(H5lR>Ws$PNesU(Soh0;6vQItG+}`Mc%Un@r6(8}wys~sZ zm)jezbsK%BO2NFrn$0I4%%zkYojXVDR1RWPsp2PazVT;a=8$mvHqVN%2Cpd>0{&z~V1e8bx z%ln=oS2?03*jBs@ipl3(_{woF@>}AB`+u`wx^vL4Xf+9IbPanC$lPBSKb!*{Lma*_<_YoKzQWXvnL%!_Gaw7wBoTnScJRG*) zfn--xns-Gz+&N~<^f6#|as>Xlz zc^PQ$N|7~q4M4h}TlSk#JP!yq6SZ+J&suO#b#=vjR6^?8sFSE~&-b2*6hl9)X?gCX z!US-=x722f#2gCer^<#Y^h*np+zLe>%=xfNo_*{`M13?|LJPU4tqlP;2C%=%kTpsN z&kus&z9I&j7|8tnsi1jm2uyhn$a3&rG*|FI(I;jWWL4<-tg?_p#T)Tk%PAAEcGS*w z0_U-bxi^MS@_}PIRIL?xbOe!WO}9@ZLH;o^A}P$#3vOq}=(m=`LY=f$fAInYWU>|u zRpI-fHEvkn5%<7?9xLO4R^VmU&wCpCW2_!%iM_=hL+;x~M=P_d!0U^w9;aq0%+(gq zJj4FQk<5gUc+>$+)mqA@_c1@e{rveiyC&FT_Be5@yBEB>u3T?l!XCERvDv~$lVJ7> zT!>CALcZ9Bsy%5LjBOMeR9*`QAHB!9y0wE4;cw{^1lWu8x9FiwRSzVPupO>k#@@`! zfe${KHGs$EzWR9PcJL6eb@LrUec*xoo|-XonYN$i+Dt9L`pPBJBiJip?ea;s3Uk%u z#_6=za8K52|J30M`V8ZL9&6~_9ENh)-Jp>gnqj(fz{k1~8xH_Jhab(XBetOs+t1ulgZm2hL|DHm%%E!21gjpn4` z=Xrj_xZA@8)I5a#n&h`ZrFUWz1?D$K8Ck~mp3MVeDt%P^?JhWbGRBVm(HzW~NVo|$ zU|&?BskY!m9gun5x?^6A55xxtSY)uU#SQ(vV|}z8g+p+XOHX78`Q&4>$NhCmN1(jNenY9=2WSkV zIzvp6 zdqxN6@qyhN%T?c@ytBE?VWk_svCEXwI3gz{T6x!gG!ZI^pU#Pst%5y6(SOVI_`X@8 z*jf`+0H!IS!#o_z|L2#zTf>~|S2`A+4a}dKH3!`|(TX|+8OxRNu4QPDe$rNk`-{YZ z1NM(YS@8AAD?LT@Tas^^TXJEHo1dUDA`mdA$AV+61>Hq;ZMmUJ{#xbwcJ;?(|+D{`i}@vUn2rCNn1%xgy~n z$CV*PeBX;d4fAfy>IJ@%q_Qydt*!YT`x1jZ)xcln3di-a_ewF=()Z^Q3_g(3Ph^{c znb5Y2=WM2-Jyht*7YF?Nx;CnNR*?|)n0YE)d=~UQnfBer&=+**66u*scn;1sRQ~Ar zioAxxn|e4mX{R%LmK`pJzjlL1AE;noQCRJ<`m}Zkr0*wH^s0qSHua(fpE(e>bDL_$ z`;D;F!ad2?$hYT+%kjkb)Fj*85PRhI$-dP3Xv8=LPrfl;-5Qw&ehZhYW(?(EanJv4 z(k*Hw|wu|ubChHKj9R9oSKFiFtLLT|{`&>=S4lt{dXgcnWdE~2M zhe;O)!0&NH+a^UfR7Rc7Ig0zlCU>IHi>$Mdn>m_V(Ao{b4&%z9mD#Y++%;+` zMp=9B(H|T3%XzDC0PN+i{By*f6n58Q@cp?6%>LJo?qBHy2Q|0r!st8h$~9RVQOEmQ zmxG)qa%0376jTf|kf$awxZ9uf8im} zLg4i&9PeH2J(A4dvT%Q~cfz4{9^ao*(%+vr)xm7K9?@dgEWGZYetUly^SQAS*=-lA zfj3U@;&ZTFqig8j$#VAs0Rc;jr$XUPSv&00Xh3)&vh(is=|SWG4}IkIrQ_iv~9=+ z55jGd>-lz=Lppi&Tj2N1C8#>`W_(e32~tnWrk}rpJ$pHRs*+;!Q268Lcm96l^4b(T zI%>>9QQ2a%L z+wol^guFOEjuG$LbtE3-k+ePQWy%SnCLb=E_ zEesj@9ykf_6;pdc))!%bH+qZy9o`?*d}TzjcZ{RtMDexW7I5z&2wF^D0b1st`cdfr z=(_X0%mg{+$w}jm&hgl5k>(Z7R)YRK0&7FV4CF(myP;+(Eq0HUXj4t z3fCA`g{IkYZ|I=9J5`DK)d2Q?L9rz;_Ms#!n*;B8?CSaP=>M4W9ee%%-h?;_d0qV~ zeC{5%xe{;>W6!|;$@Ay1*MK5y=N7{tT&pAbNFY7~j0RsEjJ*b7G_>j_Qyb>OD9AE5 z-s8T3ef33$as&_xtu*;u?1bzi7REG3J0SIgT~F0M_F_D{%I(!u2X*&(y#*eiUYef0 z;?K|p3liOYY54c`wr7t#!F&D6X>W5qxnbZ-WI?~x9N3-`lFmJizFE#)Fy%*`pUMxB_yJ(e*zSy}?z)NSSBxYrjav?h2b=na*Q8Ee*Fv!Js% z+!F zF#{$#O5`>q^89)5{UL-pP71F3bwl1u6QM_PW6(%`d~O$Y_VOcNbAoVOR|>$}8R;em4$BJw?6@AIAIl?;`fp z7}Nvf9?vNmpw7j~EASIJ1}s`lHz|vzf&6QnkG9MNM69&@$nYA5mGo(oILvG6rmi%X zY~VibZ`9Nh`Xk>JO^LrkpUc}D`l)`66X4+pq1oum(blrbX&T4=qU-L=v#-nHU!HqY zD&HzJm}|cJf38Wc{ogI&+#w(ukfL=A!t+Q;i8Z*R4X8&PhF_#lL*iWz->vQ}DDPk* zOnmwlay%9~_^*ybE_dU5(!wR|tu#|{L!Tmnh$P!hMNg2Y4F6<7(GFCB`=9mqkdK%8 zy7Xk|JOu7?B&47o%pSS6{god-w;&SgnbmB#PwDk8nXVrKKkSg1qAyo&JFdeubPSZD zmsrw+kZ*n>@b}C)+!tofJ5k!i!=W!+YMuB!=U@qrBE63J#a?;`=P$kR)_!e}`x3qf zO4^TVX+H=1-eZ#+OH0^W62;$&_op?1Z_y7(+JN}spqz-@&(#U}0AWt0nuXxYu{q3=Zz88Lvszdg; zhrjI@DbX@X7UUf5g2E81EI~MDd zUYJ8_Qhr#Qf_|LvZqCpDpPRl~AAJug9dNzmZ`P559(Zvk($FUm&pq=(IZm>62sKjM z)AekFHf|l_FxL#=w{Lwv9FvbZPLbr++H%;M-h9U^+Y6U%E));!&w$uiyfMkf92}^> zA-i4N4{YDmuG9WXg1dyZ51ksiK!TyZhJSq-u6@)$^;i_|$5WSN3ar1tNk6acQ`Y^! zZFb(^L(T&9rs&5fU&UTeZ_^+D7?BfV=g{@_U#2UAoIgw^g}yGjLu1W`nV1LvHvP#) ztP38NN2ah=PJ`>~k4n><=#MnZUW;!Ug54PlvWpBO;9EN`-0XmR!)r{$qv)%B6ZYrP zo3Kfk`PFbmBfASUSg8sLP=`njV_ERW^E~-l%(Gfn^kq~qswJ2Cff>15d*LejX*GN( z&uost(qCdFPV0KO5ZHeqryb9G?vey8PyIlzw}o#C_GU>4CX2?P+wj>d0T864QyGZen!+0 zFqb!AZ$vW<6CDOGlNMGWux#;>8c!Q+?LJahM}0N_CMolW{#DpKdNG!mvk7ieD%sKE z+$_})KE7>O1cbbPO%bRMJ!cuetoQ2w`ErGcxE~$RX!9ueQT-xlj8@Y)r7nQXoyqB3 z!WL+5X_1&^K)=g1re`c)v4{K)QwXcz5Cm=ooR_>=0c^GGuLun?Acf&!KA-Fi$n^K` zOk;-O_QP1kG@f=Kst;&Q62kk6xx+;PMSL#uB5#~0u7FJw9k!Pan2UE?d?AE7Q;COn z(f(ibIeWRu=#baJP&Rwb7vvyhn@CS+$TWf@&#N=)w8&QtXKBg4*#qpg8!s}T9dmjc zBcln}uc*QlR~*v{<qP87I@}}b-D-LA8sERq+I?BuUxAvB>cO(W6u7!H5+tFo zgoRw+BsFCg^_(M4Bm9&ezC=!p4$s^Y}8M< z>qcR&G0~vMdKT`ccL$i@-o7KU*QDOJAJm%p=e}2sLa3R6f(JgA=j^xk2}>rxx{q|F z4ez~=MD0>7=3AY_E9^A!04V1uBgd212zw7NClk%bT%#VZo zD=QEdJN+RRH~(Ex*s5JXQ|3ZH|TYreQ7)!{$~bx80hV z#vGURGsc?uKJ3e&J^!CIeGJHRo8LGi7Y{7ohJ3U%k;l4OXlCs-1F1cSmjY35=i%IJ zbwkd%X2686nRF?dM_R>8hsIQ{+iI6}qb(v_P=izi6UY1rT;x z@?_W1DJcBoKthTp@Xqx8KG_zR9-YB55c zMZU8uS!WUmzXhN2Sw_ybiN4HxuJ14&IC*yjeNe}Cay527bc5j~VujASRfs(JJU9?h z4mJY!?@yv`aRPpXTk9=>0!PtM0^VnN5+~Xhy091aeti9B-ah#6GUtC2s8gCR>kDyV zj%CTaiYF9()7CdWDRYcm(RD-znr~9l;*=3YTW|6-Kf-WPJ-8fHCpsyiZlL zVCN5Gu4)SIKN1FL`R%^J+G+o@H_syn-RYsgfFtUOUZR{FEyy`6IgyJCJM-`cl-5siWMH_B`; zBmd7e<5nyV zY<(-B-j(r;HhK`+%mh@#M0&wwQsKt=VmyZ!c!ns|X2DTGKjp%5FXR_Jo4QB2FRJqKJj9z9s4wV?%BTUo(Hyw z*7zNpFz_V(l5~5183Ja$GRAMMfOB46>ll9SJy8OgCiuKix}D+_Q|kn=?#9vMsFwx@ z=%3oUR|igoJ_Zx0x5{P^lsdaEgYop;lVPNj(2y1rnM@6By<=5*x9 zRH(>RaA$(%{eJ&Md=Izjg;{+)TM5r!$1+tgV*kjMf_cBTX|Pz|cb7aso%U{3VO2qBLahy{Sz|ZIW4|5>JPiQ&FgT`U|?4Lfh z_@B`I#B$0FxgI|#ti7eArXYD%ojdE=5abfOWE<|I@AG!+xVbF$XAen#SwDqb-#T6Y zcwO9+RqI?f;aGw61`|5f^;wY0uDkpBavO~GzIi-{x`+71fnU}}&Y)H!?$phP-0$+T z_-)Tl@H*oDm!vEU;`J|ICwIj2KFL_w_G=Y1M#%2Tpr3WZi?rZR_%ik~b{7OFje~h! zv6C=aI;*$5HKKDSNB-P^WJw{*4CWGNOGR_Z%OLqG zVOp0l`t&*6+PLi6p;1!x>3QU~i8|&fC1Jlbk%UQgu;o0&+ULeBd7y8}rRh+|D(b$O z2ScMJ`?$KBi?(MvHfAu?Hf3YKtVy5{jypSH~@c6m_{#>ksbMKZx^4`;zpUv>z zCz?NGLNx{tMK48LOD@6Ks&MR|tC+tb9JXjWz~`s6`-cKmM(#F7jT5u?wk_?40JH-%0x6sBs*z`Z)z-y9)<{!G}Nf6Oc` zI|m-8D`y*bkt3zem&&2g0k_RAuRikc13Fe7(zUbL>y=okwBOVTTQZTVEXKp2y|;8O z7V{@?FFV~eWC4U52im4}s$rkKgHHx?TecBF9sDZ8aOF7_Y3$8TFz6+c@K|aE0-xd! zS(2E0bNfl5Rht5a&!l*d$sylDso?nMsT^pf?l~XOFb%chISVxD1K`6}b2Lh_0ce*4 zDqO{8VCgm2y|wGeA56)^~T*mmihJm1E)dE4fN($W1d@TZupD=puh5i zQp&lvV-VIs`o!vB5?*m}dD(=m0ukN0m)FrxYEV9A!Giwwa=MX|{!v9h<`TQx-Pi?% z>=`i$$QAGUM3g6m`Hi5!N9+~-=rd$T4fPfB%h&BZLh_Io#zDTKa@Nz5n+c ze+-BgB}xT?`2NQy(hbpH|0lS31NY5sFZ-WfLJpHo=*IKBMfe&fw4f$h3;n0HDO1;x zC%I5d8!^!fuR@bv5(p#LpShB^0C`OMyV=8GUFd6%ol_*P$3C*2tDQdIdSF4QnJuWG z7xra#T)tv2pjQa@)1UO2;FiCxn17-ZDuwT4MZzo?#O0Cm;T(fkMAyb~{2tEGUXwV1 z_bnbj-+whjz{}+|9rPW2Y17;mSGaoMC2ea0^H=l<-1M!uq`nA4iT2<6ACJL4fmes_ z8uG2!j%2<-9;e`#a8jxQ@)!cH3QS|KWumLIt(8dzNEOx_+AdT9bAoI@5Z;>(9Vg<@ z4qE|Rnfj$a#!FDSf8o=;CEV-yD1Bce!2P6_ld0kr~eTqY}^VKRKC z@;}T$o;l-QK7~9TK^dzoKhzT*+_n9M2+kx;rZP~z`v zGUUJ8L=BKixW(Uhyd9VhPKnf@zbx6>w}#zo3aaX*?_~60{#2S+$nj+Xd}0uH_bb6Z z;8SCFPcK!0I`IQrzf9y5=`lSZ_`OQVegoKVrv0Z=_7r$Z=Trhg$m})*HQB0U@74^HOtt8{`+Ow zUJBGp@8722k*Na;^}VFDUrX>XcJ){#KDQH;%!^zPXW)atoat^b`V`JeJ>fH22J0F( z#z~D1pq`A;KlK_pQ1oXi1smq!W#-5p@MTb(d4fO_4I(G#KKaS%DhMzYL21AH##_C5Y%P`kEk$cVljXVS3kJc0%6 zJ9tVRhB;!BR$6jej(PYx+Y@`dv>OHjm6iS9kAl>PJw2m?pKxgN#;PXjh^}5dEiuS7 zNtwHEzKwgGU6Hk%YwKe`PtMQ%%3~P{^>6-pVTwH#0r3!hd;wODRDJk|zN`Vogj3Y3 zGZ1;(okRkCy0QPG=sX;;e%mN6DDNGP&G$S7oFZ%H;; z*?aH3_fA4l-s}Af((^pu`+HyKI_Gm9cPKo%i=5ZUBjrPd-5|v`QBNfN1>`lne)jxm zh06yyth#t#mu0%Be5(REsL4EBnE{~WNNFRaDzJu$??w z$JyAX;A+*p80mEk#i7Y$OjqE?PC7_=D#m2ADe+~eaec99{U~YdyeP{_QCnN zvtCko-}hGCiGE{O2Ik7sW+%^ALJ#Sc=jS<)cb?=EN-d0i@JAN59Tiq!z>!hGa7lO0qQxR7jSK ztwB)tbbG~r=sTRZT@SLso-tCvz^ag0D0lI?l244idhbtWlswLc=ii84{wSOQ6@fR0 z2|TiZguR33`1~@A^8ZvNEtrLS*|g#ssB1T|JU`m`ZVmKft3I6O8;8{3M}HsxYX>Iz z$|)(*HsE%c82P$|b1ZQ-gC9>0Y!ETix?GM!zx$f);xf*mtdo6*&m}@|RPGcj`pzd@ zE7)b)%AxJ}C)2)K?47ZYJlK@$grteK?92H6KgRmU_244r6{QSH`U2~q#&J`1ZXbQK z>_tp%I7bBQ#N2GKssx|k!butEHx6HK^%}uFY^q_?Lw%QT5UUIKo<0i!g5wnr%`A+; z+LKlIaq_7hfQ`J9nV1^)>DX_h&{=gfW*M##?Whr?bilQXGBy&}i>SUJUHC-| zdtF=n1wZvsQ~P6v8*@1osck*K&{wG0{5W#57PgtW)Eb|3LXS_cfGOUCHb+yUxv}5+^^4Xg z-MGKTbf&yF?t>}_9%Vkim<<$vFPuH1HH>?YKO@TFjd1%98BIFw`Cmp?&6c|1b3W(t z<5x&9%<=~uFF}5qP+CZwD)N=3Sf~mFeUf40y~Ruz-8$ra@VzD!Hvq4Wg=a_;VV+JW zbcwLE89qIjAe?JmgN4gKllB!cpGm>)_qK5rBDp7ABrNdz{voIo!4?nu@BI0aUSMC? z=o)hhX+Ib}mpJnf^T|VRg-$b{o&|G_gF&3n)IDjI{%;WT}5%wF&|k42)Vjmf-g0?$vod>`nYJ=9|AU0JG%BPrhnGzlFI9`^_Qjx9p77 zj=Eh1wsrAb4W(_s^w!Qo8u?>J^*`=Eh=!=1*oPu!!%sc7sb<{M3gxX zat!xu-6in;aeMaQxn?8~l-O@@-Ae#9GO^n)H&7ol^d8$nUk<$))vXan?6tBRkD4^~ z0J4RLQht2s)34qde8Y)8Y8J}E@#_=d$GDRnZZQwh^+R{`@Enf`rHWEDS%a`ncIrc< zeL%bB?NVOf31?}vy>{-F!G^{;{v#D{u;f>F!1r{_HKR#_^#Q%4|@&GEvm z>-fC;6^iAxU_VGSkIlO)-Efa^l0CVs0sgoz_Rv~YLy7BclydND8@`%ShcH&Sxd_rAabcm+o z5$dayxl7YO{`5hOsg#!#o>LndmQM_p(2s7R5=!|p5$b=w{G^U~N9r%$n##!A414`q zD5Go$@^!oRN5;xw!$g*u|g zKl<4F-OypTu=7a!JJA0Nw)#^(0;X@B9nu@-A@=UQwBg!Ls1y*%^kKr@gq1UGZwzE% znrN(AAZ!KN4VEhTvCqweo@d|{*&6Ccf_btDnAd{~b}HXWV0%0%;es4;Uaj@&hy<{o zoZEv%@8UXWlEilQFQMNh?e}V|KKeWt)m6syyCBxZF38F93p{S=5N!ZFhht+aJ^hxz z`oY!CIMogacUN}?Q|v|1>hT@K_m0uTlvO%&Y*SoOS@36YtPy9Y9Yp&Br z23G*RarJ@fks7F5-QRP~!o6pho7Ljur2*-3YLW2k8N;uLZE=I(A%3Ua3`no z=iQwdcy;DOI|1_12&N_tUkPf0EF%rc2I^b1Ukqlqm+>CueTzxsP%Dr>FJdsJodhBK z;BftiOTedincR@C2AIw*aA;y~s;!ork_fqamva9q7zVGxt+5?nVOq@9@$c@$FP6ip zz<(F3Mn-_+VZXf&>UxHoZb{47|Mh2`>$>b&{QXb|@6065fsdkF!CQPEoC{|bOi97L z7_|mZ`3ENu4Cr5{cbEhn=e)66^?o2{Ftc*gMjmb&d4vOg{!({mBb9!3z`Mp@twb*9 z?;)aE5*)-H^$#OX{oAN-8~Cyuvq1kcVP4{?<9H4%4PPvNi|?rz$<=h5N{A)(=uM6f z1D=@Lg+TPD2$a)PkiZ&nn0)>~nKKKn|4GT}Kb`?^PTn+&scujhk{U=VTZZjg`>&d! zeQ>{1g>yd_`QFR^TR%?KL!?4u_an^XOCKTS6C%Ri$8QFH=TPt7*UJ2OcD@bhqa?cL z7QaK(-|v!~M`xi!TEf-Ut{M5s<;CINv9KW*OeeI2{W!zS%uMdc$6O@5JBqp*&4r%i z$1U}+Ypd9A7Kr8ps>{z#R-msu-MG7%-w$Yux1TErR6?Grr9f+O3tYcBn)9M`4yr0; zNMC$JE^}ScvD>=ngHX^(H>IBhM&S~5Kh*hF%AUCOJRO4F=$t2gr;31AF{ETj8@ZY( z4hsJ;&(LBi_?ttc9&W$;&oy&k0`!=_nku_4LUN+vv3g&vBh6mJRcc&lOE%F>fe!%HPY4H~M>I*^2SYgm$Q~2XZ2!MfeiLRCAG{IswP0XTliyT^si`8Dpux` zuEW0Rds^4_ez3~A5K>6k1Bx@%DV$$Az(7((*2Ea~cRC9d8}t_w)a4yv6G;V^dOEJ3 z$St>D7tXffML!DLjZ}yC{h+&BfBP9tBph)`|M_eb&oSmy0dLX<7?K(iGdtY_vE!jE z1=QF-X_s#~gujzls;MLG0G^jVf zyDnU-una83({rWD{h*S^`qZOh5&JL|jr6O~M;YJAGTX2SfgEy7;(s&Hr!^|#hxcxi z3=-+%9pw-mVLetwH4A5tza~ACkP9ru`*P7`-7wLtm1Z1*oV{!{9?50owEqdW%ex;1 zYSVq{8hiM=)>K|sp~+e?@p`DsbsajRi{~;KMN!ov@{YCk-iPKHSHlENTr9(QC2TzXnb6PH z31;rM?9bd;1)sIkFUGIoo?mva@meeHLwJmcBt)yhc-m6K4!N&BU`WWkZOkhC;5E5yiN8PP^S87T zm1p3=Oq2DaQ+Qu`yMLSir6c+>n)oOq^PyzoF&(uM<}2>~bo(vU1$nf6d|qkDZ!F9< zS~bV~Bt@FXN1Sh)3jXfLYT$i|js6A4`+AU(kaFzAJlXN~&$4&X56$r^3%60r$WPH@ zPeY%Lt<@E}KTmNl6t++O6!pd;w0-YOHK~cz*a+O~ zzw|i>`y8H#25_??*M!>dEg8iL?5QPVx%Pmi0evmazlEoU;j+!iOB@~Z(8lx5K7t!_ zTw%3`=c&KKu;SKuvM%vxU#ulgz^sWlMw2jS|0I#EJ+li~q+i(9ps$*BcvisJJr#&}d`iY1 zqJG4pP5tysBUF5i@|m!7hxzzFdL)mg;DPca)4p8|aNdbASo*jI^#m$U{lBh(z*s(w z=)F$(!s<}pxikY!yq`;zcCkNV-aJ(n^}+|IQ+54)`@!CUeDl)PCV(y5TVKf{yfJ-!EwpD0Ee>*sm09xJUWAiE&>k)cthxc^IS} zE)_k)hWs=do*&aj1CVCFEb{_=6?`m2|H+E30B4X3Q5^QqjAhEi#~tAOzidPoHnt3j zC+K+o=^<~W@iHA@FZwBNeN*{<2>p-GG>&nMBL{7*nrfe`30!I%H6}}Kpz>klS$flT z7|-O#r+DSgehq9WMuE#>H@>R;n5@W?O-uhwbOzA z2a$p=0SnbDK-YRR{DA{<$5pOm-Y&*o4`!N_Aht&MzWj&iBAzQR`Necwk(U^2NiB4g zFB#0q6n&50!_Q-g%lrM$R`8p=pdgQau~da^hT^hmn8`o$@df7hNdH~`VvRYWk(!r^ z=P8j#sZkYrYIy;|%;YB3MtUIe+@(xC<`$f%6mzZcdE?YGt`jbu0O``KuV93F*y%v} z@tCMll3O@cuw~ zgM5JUVgm%y^gONzZU$|K>X#3Y4^A6PQGdK1Ih41K*@ylf1KM|G!m>tH5PLbB=b>5* z=CbCs64kOGs$2Um$A8P9xl+@zlsE{c+Fq9u@pGYe5n?%oen-w**Lvj0>%f13OVAtj zJ}Tcx5YI=SLzB)ylTR7UXudWhPQ*Rr^Oy^v8x7DV*4d>{hI}oFhjZrQrp=&NtkVcd#G&Z4$WR&CZSWbYlKHhhA7 z3wt7keW5OBYPMIGG4BVKm*Rc-IJc@jYRIs8h|dvW%dy=44mdOU*)#h61kmoyyw-{pK{e|iXBTlSp$+&%}3Hrj%Ek}HtmU8h95 zQw1J^kK*O#Tj3skFz`jwWBt zsGWn^%^=Qab4zgE=VOsN_OS_9Q}A~qpXq%q!xP2^)D0BJ>*9>}xHHthH8&@bqiOw6KLdLc`Do@hh+|8^V)yZL`rI}6_4^IIZ7P0V zbWAc9X@%G)Va0ZwEf+ezcn7}XDF$IZveexV6Ciqmv?!mT7%mxI$)b?Od_e#Hxd+nU zfGS}|Q+vE*Kvsg(O77@vB3qU;Oi)t3i# zwj7qA^-EQiIp$VwE*qL?H#9?HOQ}$j{U}taJc_gFLe7&3ml2;b^2uLc^BAr~-+8tk z+ee!f@bx6vZp7XjE8fToDw$LuOQ`#kDmn%&gGN@t$|ve4kRa2qIMGHa1j-;qQ=Q^##noITN+jfjaU> zk_HwENxI;mWSv^WKnjXF05Nq|;nQANJI#N`4W4%scT1RUb0# zg9@Vzx>tCAs~AWPr8te821c*o5toV;@|^H1V=q z6Ucm`yR_v#1u6yB`~RtB!o~+S_9dtW6@O8^Q(AElTruxyZnh2$YA(0+iWgv5yN65; z_xpDTk9{=5UMla4DvVS=dtvrJvMml)UYh=^nD1$CemhPYu6=}a+G@0)-&V*7e! z%;PF8$LYA3j>F2-$su#WX6$G8n0V}$4}ASnbu<~BP`>5=$f$K3j2+?*=DzlT|HFS& zq_|&FW_Bs+cs>n_5lY?rsQYPH7z)3`z2Ur>Paj_?_JWU-A8$X}2JSq|#}PjET4vmA?4IJK|R23p-FuR_fuAH z{@yzFUoLQ`z1eLY?1BoLLJ|(H_Ts zgzO$3+3)zCUs){>n_dSQeX_BepNP(|1F9nJ$!Pnz-({9J{JR)t%4x@tgI=M&keW(Blak>$TN z>jq`XG=VJM5l9(Q=FY!}eQC#DHO(*M`@5B0EOvJgB&f;$s`@R%o+V9eZz0})SZF%7 z@V#-RtJv@lKjw@0L@UFJdf?=GeRU#oh(5=BJliCK_lLL7@4Mca0af8?#b@YmxpSgO z&g1ziT(G9GEhwIaM;+cZ;`wHM<~jG_ zP~^vGGoAKu{{kBp^L~?_HT8a@3uIXsek#@f>p4YR3J3=R+MwxhUkhPTfyr zN4?&jWYb;NdJ4`H`4DfQu9P=RL3ZmA^6%%mBRMGBz@qXa>wxDla5H}-k*vdWg;+zO zW@G|L-OmL)$NBcIZjz40X}r&PAKFu5#NN%nF~5D#-{rlVa3(sp94y~&Ych}_H{E!p zIytfyrj$y%Z068MC%bY$^$`2B8Jv#w8>4UOd2ydi{22DM$(X&J!g>Ar#t8|`eVLH% zi7dRr{G09#{=JLtP;75H7k;7xRALY3jWwo%z2hkgI|A>LNJ{s@)az z<+Fzb>%E6z9qy}viPLcDqqu|t8TOw&4Ep3)(F7Ipdfxxg2O)Xpuf+vj5c{@-La{@`>#o~`z6Gs0G-S;*mM&E5Ii4ThnuuYKqHA(!#Y zSDKbd(EFB8)>gEN_fWSrr-&uks@_lI!hHbg6@J68plRTki`Z7c{q&fS0~yVw0TA_g z6h4ak&86o5p1)zo-}U!pH>($Y&?VM4`5gP>E-VoZzo$d)h4Yb}qHxR!IhJpzI4?j? zXhqD#Ebb$sw#5|%@%OxS?OqG=(*vlaOr6!%U{d+H%j5T{=3$rqygLQO5|pl+yRT#*S6;wkSrK{9MMU3JSiIMe|LZDbf4l=&ILwaD z{aJu>f5Q!JF&Aj~kwl-73wbv|?*EkKTOjVnAyZc5KabpLyTHQK0Lq3}3NzOSfKoVL zQvq|YyWAY?PVZ{Kq%Ep8q%H??%;ZJZQLh&CzIUEu0r!#v;Ztm#jW8J*d#$r;29y&o z8x7Jdz}80!Y2&RL7*5fWG)qT)t0iJj_ev3z2Q$N^QqYnIyTI0Z$& zk}1|qaE~Bt`po21Degx+m4p;);25E`!G{La$Dh3kmqfqI`WqY9*LlcoF*B1k>?=o3 zCYSAr;T80W%y*wpM$Q45I-$7QI`9!O^Eu~Y4y0w{mVUr69DY^?D&mXa&6FDv;er0m z@-H^VOX%loe0io2br5!sD3|rWYnVgeRZ7d~2YsvGk_VXE6ogte&cn3ld*|xE%TS_w^=y7D?mHKMA5y`5NGhSdc_2UfA?`OUMFkea z1EKE=6Dzo1UNDJV}_{GmFtKS7cl3$Xq?=RXb=^bs9WCcmO%=TO3VDaI0nb!0m z#0jY1kHLA?BiQF7L2)gp{C>k%fqB^e37YdUi*Qx9x$zaeo##`C|zRk*$DDx>R$Jyr6ox>AjiFvoPPXP06U;=Knp79Ng(OnyXR zIdV`ly{1(2V>>|Ns*?A3-wOE6uiJ=H{hxQAz4;w|fi{k*F2Q}PuysZ<;czLQleMO2 znr3E!&Vca;yC3Sy9ZPcMjve4aGB$bbUoeDMMX4~(tU~%FCtad1Xd2GDo1e+L1Zu*~ zr~70k!0Hc;AgM3%>vcsPej=Bdm09+sH1hx42`d^`$&stVRk~JR+yB?zPbhP%SKyHwWw6@h0c`9fmxoj;_Pl9r0C&RtP zPG~&Qv-o0b0pfTMkCx!pdwMbi@IGzYmUcNk- zc>|0^lNR`6kC$Mj8QJwNXl1dv>Gd0qiV?1YA; zH_(54D1p>HxCAsL_g-}?BbT(Uzk;g|`66{fer{Hcu*>UeCE8UDnrD?ZrNTzR{EwJ( zY3nK&R%?|ol=nf?dYX9(a!YJOezNgC=!2m53I$!b$1^^CYx>ZMArQ%>wW4*M2U}Yq zmt3<}2>BxFT0e{VgJP;7-Mj#BdiQziFLHu%CfBTfd>I0Hwaj^*hka0BaE&9pco38; zQZJ5FjKBwt>r06YxPSKeu4;4xISg@aOPy4hzbPAu&zCoY?X==szw@R+_4qAL$6vVL zbeDVk_CK6+Qx7(qHq&5Y>u+UhXg#q1`vQifV^Bnsx$84)1G`>=bd%PF6TkaVb99x5S(#__}$~bR^&URlDUIL+V0t1Wl zJy67zdg%9D31smo#Hvj!f+1xj_b5>_6jFASnFwLd=%Q2tJ6A0bU-+U@I#>()qvygS z>n7mtjFZ9*^yhsk^e8!CUWJRP0U|@_S1i4A{lwl|^tb4i?w_O^fI0Hv?4R@9z3PE5B0L3?9M`5BxGDA@%gwn9OWF)CN{2KufWUyofCYX_H$ z!Jh$rhXesigGwFYV3j_h>Bun#Dlr2;TFy;CL6hLuMD+crJP5cVi@Mm+nXw?j`B@Ox zZ8KdWYz9$HL08RVO<-+47P9ra3rv3cG5t5#1IlAX`MQd|@Y3i&I~sF8iK?}%!s7K{ zEbbL^ehqtjzE*bdl#hdl;y(!s=6cW?9tfz05?POp8xn&7Vn7Cl=GVjy;k|GT%3dneqNDOzW?yGY7+gLl13m zu28;oR_js$`Ug6E9&4gr=`EW4IGw8;b$hwJP3-sduI)IoX_N(`Y^N0N8DdWTYOlg16?(BU1Y#XLzd}%_Gm*Mz z&b|K)a)X<=J>#$s)6efjTwppJkSPU?VxFmoW?s}je;zhwpC`S-b92CkN$^F(DCCI0 znK6|agg+X*3wHhJSE6>-Is38+Uf0IHN90;)JI;Brn-pekLPem-f5A+$6#2y} zzgY@#zT6`5dKJpn4r}9|WP(nOz{v=2?nKlBOHb@d66vqQ{MuQc!-L3Oooo1FhrZp- zS7KJ9`2S;5eEmTWeRA>)m$_Yb*MYu)GtJ##3`iMh_HPf)KqHC5Cq}%F?ULtzPGii5 z?msM#WRZt->|Nv2*#9PBgSL9JF7^wI#HIDgyg{8Vk!>HkBB0?^+Ic4bAsD#zBdx3r z`;*V{`)_nt&Ofy`!<-VXU>S;Ylf$EeU6-%^ZlbC`mdR`4~i_+crBVc;oU05i0IHH9OiBE zV6Z~Hl+X*O!^2g%H>Ch3l zow$uTiBz_sr#t-v!2VFb);MMWQq3Z{iWu{ujXgj|Fc8nVTJ zRT`SokSoR;>7;|_7Qdc4wI}Li{Kt0BsT&OF*iGDv7D4cM)QDCH-p3@o=R{b; z!QOf4uh^XtFs>`NvfAhd{WB6f%A(6)_~1#`>y&0#J$8J?c^-R}n`nt~FVr!Ch6m46TM39a zIBxL>_kH$Pb=&4Jm&Ce$WOtUP1oIyg<+CMi$S<{6D0YkmE6qfkm+En#b@YtwzS_+bUywAkaO*CoFmqFNneR-PvLtsu`)MrD{2&D%Ud{tLa z=NU2}BRJXvT9)Tsb#Wi9a);z8jeaGh-*kV(hJ2ZsWXHkl`}IJ%Y&_MlUkw}79b8WY zvERsbHzi>AGt^r%1sC4Od96n$`K(DRj6_~~6kj_5_HS=pyLuOU4S5EmI#RlT!u!5! z+R1(>cbMa_of(0nR(+2)hE`x~yn!<|Xcbb1nKUmwT8FL=9Td}p>maI7dz%wEox8ME z^{?X5$G~T8-l9DK6J234-hoXJN3b+OA&+wgcOd62&T-fV+424F`EUKpYxHe~=~#r?&cMjMp0`uu{V=Xp zkO(Y$a2x$@UJ(wBGIkSi>a2PX33AxR3%)*f##}Tzqqxtbhih=;uRwg~nFSEAVb)^W zT?MjO7PU#tkCK07rj=8|@BeTo@h@}9FI#el_4|Pvu$!jq8R?+57;y>7p zK8nKx+=Tc%406x}ATKL$k2=`;&KIx}cAVo`!QM;vW)6>EmGF_kJ3he$`)i}mM$w7l z{m-&v?FgPTi5gGKKM(c+rO~J@zgZg;e-Eb(&;36Kom_7)9(&iEYlN+z3_@PC`%HXo z3v|TnePux&n7QT*WrgQ zWvz9x0Ky5o=oIjK*HU%$8Fob8S+_wI`!w>}SR5`Xp?|COGf6vrBF-Bg(~@#85+KC; ztZp}QtM)&CyHc4n4knyD)!H<@5ZL}R)AU&psHJ9F-KE8R>cOt4>pSG=TWrW%BNwGd zx>?os(i$*($*^1q#C*58MOJYFp4;_HCr?<;g3j~OnJZh%Fn;d-grEfai^wt+DNy(S zQsKK36F3i@Jy&%KNv2_}Fn48xco}5(DF;OV3aw+Yx(?QQEWL>|jR*!TOM)?mH5l&o#k z4Mf4@{mfRFo9cg88hN1>I&RXBKK|Ma1S4kIT?N{(L15L-K!`muFl7FgY6|RS(v%m* zzkyGSmdtm2&sv1I-hEAl9NeS>6YAhm`1?h^k{0JK6{p6_>ou*gC`Zvjjr)Y;Ji3@D zi7D8mt)k&Sj=dx1NrB3=3y@i<)gFbMq&Q)!c*_RtrJ?rVO|HQn%cI5hc2$Ysk?eAo zp<@*4&rtOK|M_?#X?xe$U=sKf?)tSDPQ!=Q7m^Zsc>d6gs`0oczyja5;#-H?fZ*`O zdt7u0$U&v6P%%e;VJ6plo_#HBPMB@&gd&gMAx)fXe;Try1vfY__n_LIWuCr;eTUiS zyLWJ&ph+#2Pr*Ewm~+?D3iM%)lv!y{ATP(G?umz33+9gf(tp24J`#aOw0pO%8QlMK z)}Yn{`x;MEeY&+h1XYavTyrLJAPON-4iL9ZsWP&=Nr@LqE-zY zV*#`Zn3p)4nr0n^9Dwh1fhRkV3q*7MgZ*ulMEGP?Blo}){VEYM%Q*|kqmaz{*dT*k z=bQ<$eqNjpUDEEj5)Omb^mn1R|C*uX1O=vJ4aULk`m9?NL3|ROF@v3hgM) zz#&eDx?tux81oslZ(14we*==`DCAGaPsk;WCrv@@9t-Dk2JTvZ{GuG5b2d&WhjNqGMH zzt9ZSKPQ|!!Ph7e1WsSgeh@wlZcghHEVz#(UOLNYh4Z2O#!C{LbHkvz`b7ZdQv-FCZ;SF}!X6)Sx_s{}aN1tnOz^-wl4r|}CfNyy2BsUtsy&cN z$(}ScGz+_J(qTt8(Wjihdx}@J074wEpAkl$f$#qQ$F6hueOsu~Mc*m_-SsZcdIjXr z3fI^Nnq))Hitl(ei9~k477) zy`6pa1pf+@ZCo?m#QXkao_(Mt?mZm^KOUc&LtV{alQh($76`PS`QP4uj2uXc9AV8x zsQ<4&TFht`1a+=o?#ag9**D(W#3ksX^iQ%ab-{DAOsQv4cMTHm4$-g*EI?CBL@k36 z=JkGp|37BrvI?tQGTFj@xi?vEzosxBHC3(jY-bHJEo*x(pl`aUMCPlwMhT>RILB?) zwGNfuwmeSHmf%%}PlS(8Kiprs7c$U_y=TJI?oJ%oUm)dulOFYT|5C@57`)#wS9soS z=9>ezmZJYcjRV1QinI&7va!F$^;|K?H}=CjLt;gXv;u4Rh#bwPz#*B zAXtq1h5MDvRJb>?UvQ3m(y$J-K~by{*sG#X`k4P5CFXy==JWo-+!MDIBfne(`b3FM zhKVe`!E~j#osXGSS^?ys3k#|?b!BSCaJp$-H?1 zA&t!*!2MUfiT(94d=D0-pA}N8MPG)z37ejej@?6mcc~MlPn`<`1b@ zt1%EdbZzY!`7p2)ewd+qKM3bfd&PQnO~V4!g57ZV5KNl}oq2y~4a9{1{G|JVI!#yb zf)eroEJciNyb{FT404r5g`i@PTfBH)7IXcKXRfCl;JLN*zP{eLas*y{c`{z@jrv*; zYbse6_Re+E>vN6wfp}4%Ii%zFl_g2}r2#o!# zS!899i%#YG^4jOAQCK*p^65}$A3Oxx8L}G_@JK+IMC<-EM4n{%@~;v1k&Bl}X}Eg9 z@wJY&q(cYx{nUOsC$kJb1`V_U<7+Sz$UKqHG6?Aox>LR-3(&xsFl+t{`?HTdI();m z7v!Qnu6Qm@K-M>pyMFhuKVCX^@&7!TQ%1?s@<)duemO1o%8`B$%Gz+2_C($FDfu^Y z_A1ngip4Y<`mj%&Gi2Kl`w3qR+I*Ur06I zWc9!Twb?6b0qkcP7VbD*h5RY1q7xgaBP?A%B{%PcoKnBshVh*yIP5h_spo^a#m+dV zs)-;NURK{C!Cdf*Z++V5NU_IbuX^#qZ|qBo-`sneSr24y^9sL~WN7DGCi>GaK!oB5^_wi+3|+%Tg+SjbxFx#t%cqu z<>$ZeOheG2_n(|F=dEHIDDZkD7A8YW472c_LuTA`DboXcu`AYF43rzeo%+U{g6|CG z^4MhKO>v%n`uC_E_C#cvv`a>MV^3t?uR{YLN@3=NaK%!68+??lpBZbxUI5l1I{mdO zcu-oBJ!|tFxYGYqN<>{&Jo>ni?t47vOjBsDU5SG$V*aMFoc&;}e715UZyu_7Hx558 zTnEE`a%JY-7GS+8CPUWq1^51z^v7_2B!BQN^z07mo~46MUsgwefb6WbE<+P&n26HO zQ6RU0{=6Gs(kM*MUb>`nfPAPK!%s5jb1)y8W}Fb@3umpPbS?xmfQm|G3gunZZC4HU%Jdo`7E!^-znCAHJ`yLpR54 zkP-GdiE;40@{yW>Y*hySTga2CKR%SN$T11dKP(+=jF8(irixmVj*f-Rvy- zW6ln2C)I}*U{CPv!QaR)DI%y9xhYf(6)6_m$?lQJXCjEYsWJz?$!4yzb+aH(8_~D? zt_jY`RI@IBT>&DIoX7TFGQE-y_Ha{>o~e+zoVkKh)>WIK2+;x0hsX@%!KJzfQ__xf*jt%b}B)n-eIz9&^la5DYGbb~Vf6 z{w;;&L=5(1sdHV5))bk75FWNOZXee{yfaYmyiPA%lAEeagn1bFBYyJKohq34eAl3L zr2|H8+`qpNunfe)H+fh_+o8taGvXd{Ie%Fz3QHBXIce8+MgSu)9BOsk<|HTB@4_&l9blXC*VqmRGB9BHh;Cz!zsPwbrykGeRtK{ocI+d6Y$Y+%iM>>* zGYjno(~uvlw0m}W73NmNG+vAKfhgDb55RfH-0I1#cHBSg_6R8VAg^6p;PaG0&J<8I z9P6z*g8rebRSEg= z)jKM_N>f1mwU$&E?|sB8-o9}*qtG4G&e)B9NM*(fac0!d=}AI!w{Bv8)p-t!K9&~n zex{sFpx6eS2E}rwm;1rf!m;Py+zJ%FBxPnNT7m2;*Vsu-^rw$Bn zglCq7)}!Ct_)wUFe$hJkD2sJ2&f~FtI9)Zt3@-M0$SWcp zv-LxNUs)t+=xPyc=e4?tpkA%kcY;@}8F?WC>WDATfU0vM68Bs2KD@2LzLt-Bo9yst zOVsgJ3cmU=pREDS##Nr>XXEg6Wi57;4(I2~%!z6u<6yJ*KDp=~>Qup+n)Gg^K>o#W zY-VmOL{JEt4YxR_c0*E|nOw=Lbv-=n^xO2u13HVIv)I>e}NbwX+q z$8kl6VtD^tHv30+C(ie3+03GA5HF>EU$Y&#etC(H?(?*Q)@Y6MmzxzJJkMSl9fllf zQT-v|lgMWpX3qI^It0X*M((B4H$vvpU-#^%>%h!An3FFs2_u}FW)qgE3!Jx{*XW&x zHyV|?!E5;bK02FNEQ`9n{!Rbt<1-*L86#>iun5~>WDiZzpQtTY!d`q9duEIy!w)&n z!M*Rx6B&)zpK?>VWzMn^ZvPf%{eZvoN}Gze8B{YMlBdq1uekyr#p!BK{lMJ+TdhWI z&I!D4zqT&3Ltj$U`Kuoex5L3eCha~M&bjVagYwz1Z(YK~bdq}xf*)03Tu zD$x%vwXffng}LedxORiUdE~8Bb-&G!LB5ZWf7z?9aoE)FUo%Ip=ES3e@Agxb$kqP2 z>GKHB)dKBn|D))0R0&`Ud6p&r#vIs^;P>+WmhnS*@;DcoO>&MPgQ> z4m5(Bxuvk99r~%bPv_e(OaseN{b^?7CD2^^c<X#vRLFg6_sSA z2w+aNb7S-Ia`_N2kT#gg&(;AW&(n=VIB%?04f)gSVt;B{{TO39>hhMKQ|i0appiVg zgB$f=>f5!F=TJeD)CiKf5%C)F#HDftl>ey?V?a7>aXIXHG%u z(Q7^Da2_-1Uzwaj?uo5%$~oq{u|RPlbFk9p*U@rvan6VH4 zBIrpngornyuKOj!SCg&)Y`NJ9I+l1oR75%&qdxG5U-i20Bg{)zUt}1x$9-~jvf3lY z0-&hrB*^YGLA|K*J>lgg7^iqFMuq;t2M-s{k{}OtxWq9uj(h_8U8*Xsh%A91ed7xK zw*}Blc$EEnrv);}iL%EYPC{>+!qYA6t+3V`s1%UsfSs2EE5;+phtPe0bOO0gmxj!h z*so&$OJNQP(cyV`oujDu1$8Ap86uAps298Q6eXJzl3;Xyr>WiHRQN%h!*7Z`OT4{G zIr`%`uk1t^WR@XM?S%cT{C>=d{h4u>3dVhq^1TUr?N%Tk3?;v5i+iRjTLz+1|=8Y~b9;B2ZI>G3yCp?~TVym|E~W6m@%e*`t5o zpUqZ27Uu#HOX}}*m~0lKVfaJ!9N!y5E($@PWiU91F&X43$8|GFMvXMX?w2=;>^XCA z%QS9O=PUM2Jjx%a8JUI7nik1d;@HE$81IIN2lTZthsA45!|V1W?PD%;fV3*jzoqC$ zY?sdXcMtiwxjCZ=qS#N&xlu@oeW@Gm@i`Ps3y^7l$H>8I8W@833AI%9pv70m^&kX$ zSss?FYgA-`;>9b!26)DyBcXwci3{Ib$s4&B1+Z5-IoBfS#}qUtHCKY#7(}?}jaV3C z{;3dg%}k$wRdBsOgKZK5sp?*sO)WyKN_vR^(J1(IDG4X$bwjuAzdmT9sCN#n!blh{GburHNJL>;lH~yMe{>HuE^*^^$ zCUAdxr|q}>OM9qWFNqk%=P^y#dfQbz4~}=+*Rf;%V@H&rz}&M0M(t}--mI7puae5V znwJeW;^%Z|Zegw{&WNJjYX}sH$*mb$F;^Ez6kSJ#=d#k)WBaV{Fh&0*vx|HPMhEEW z9P#~$7TJ0E`%o09Xf)4sRd>Oi3(Kn&g}9eF{9Wv2nF}P@c<=`JRl=O)Z~sSR15lnu zJipO^y#L%e?k?nHX2h3eWw&+0S@WzGIdaVNUTA&9_?`eJ0V<82JiWlUA>eg%1)sy; zb6Ly-!%$*EXWYp#1KkGEj4SfUukzawqsO^H&-!Y|W#lIC4b4-G9me@KJij?%4SQhI z%$VIpu!mG|{w8mJD{|{L8HN?G7tbwpVG4CrO6G~5Tw)VoKc{SZY+f#w5ZF9!Qc|dp> zoPN#MndA8(QOZzTdubAW#b0AhsGSC%^Mifa&!)gg>gT)l=6R6q3anhj?=lgsZ_H(v z05J7Q|LeX!0V(z`(xb3v(r)BN)f>FmD(|z(*oS+T9zs}5Do~{L;tq-gro<{4D<>cynf~~1?uHggE7dbSaE$j!OYwbA@u6|EU;(R z_4LK-=X-JPS-))a>HHGhwyj+-R=~a7QK_w>X#C#sdVlRVTL#K@o%_Ms9WZr8%A4cJ zBG{a-b4`gtF4!FZ$o_Ebhwdi6`rWt*BzDbyDR3{qQS;Rs8>Caf+0-+4@7N@KVtf4KZ9h>efk_dM6@6{dO`VcY$1>(2qPCc7|l}`-gi`QepcAHB1Ob6=wo~J|Cf>6I6 zbz2HHor1+!SNr+z)9@(Wg>o4Ep?Mnzn#N1>fL0|XG@!T+Y7LAjPBCl+aJ-LNOK8Z#1@sfqHww@+PC?htH@jRC)3B%D__6;Y z&QqU!u2b|QKPFb5P80JV?w$`CkE4I9$f|9fL8=>!8qOzjlO=%x4>B)|dMzN?{Gflg1<6c=O_k3-tzyv%B@=p?T9mk#~ zx!klY^h<`ze4f9DzJ;InD4EvKAH$o^eQ&T2`X3sM9mD(De&-mXCE6a4@Y^6hrGp&l zw)(QV(;2XPjpC=6=rHzp3SQII!MXhL>98Nqs~~vhJlkFqa>w#z{~B$!!KJJ-cSHJz zp=X6Y^MhQ8kYukY_ya>pMXRVDU9@$c~_<0j3q zEGV`8eSm8}_FTL^5!Tv`Jw23-*-DuE(Rt-IoaZ$I!+j43Uuk-Qc5YMUN^u#q$kkQv zc;WrdUvhz#2K`W7EP;Cu3Za2SRB{RZ4>N9?`>(53fyl;y(@ll>%71s57~$ z(+}dC)#)Gm3PC=l_wU_@n5#*gwyQ$Uvp8j{EHn%0<{@PQ? zVLl8un?yP3y~p8e^|`L6mDxn_%Ppe0A`*DIg|Mu2nfO1#zm`RsJ-X-z9dt zJ%^mXrxjl^Y~EBuxWYw~$iL+ zE6-f;InWszH4&D>`=+;q;Nd&{Fn!KHQMnemJ5Pi}2I;aOuk^4JU4OD z33|Vz(o9j6ftlKv{2J#R*fh59{BcLFBu$N*SmHQrz7=18Y>R&nHXjdMM-KnXrZ1Ek zMW|Ps*gqu0y@s*;&HLB&#^4@JQPS2)Cvv z55&?TEirH9_4`J!%f3O;yS4yV<8p&~-R9v|VwHul^%#uHlg<{bFGA`*x+kX|B5&TP zUZF({b*x?eWM%DHph%l{Vy@1DEdR8v#KC4@3)qbQ$GKIZl ze;;opEyB>iq(!I&_A}fdGm;$q337H@Ovd{MAdZe&I5@8sZf}VEp?raUJ8(eN zpzcGolchBZ(vBLt$9@(9OGmTM>!L|`u;6}7DNv}$_U=Co}z!Lk>qT7iDCXvVZOrP_tEB3EQ)HZxm zI5r2?jFeRQmGiK@)ao#V`s(fu1>?uFt&qX%x)fU711??9`KZXcKyB{>$Ks>!5FL}G zae8wO5>A_a?Rnh=%-iR*AI#JM{g&0kqc@P_cKTe$kq4L;eoVr=|IZj4xSHy2JTwn- zl#kEs#Iyik&Puz3=?HjVE_-3f+Yc>#I+ha~bI`iH^5{%&Gi3G8{~WoBIiJdd+5Z~* zfQt0^NE-T7cP$Q#(2tM6-9_2=fghHDG?qBPxug_+Md#mcj#vWY4`-gFqpm8xVEB>c zLk|4)ZF)34LV$&XzeiSg>p_m)S%c1{88S|J1PodYLifSfN9d1@09?^HWcZW-dgl_; z(xh;H`TI}H4Reg^ZywXqE;j(JUY6^HY+eZ*U&r4n7zcoB}fD%S@zR%P{riA=Q~X*jFw+ zZor5=SbBaNNrvbvG*An+W!fA8|E3!u&pVqzCXer5%1;8E<{cnAL5}+|7k;_;kD0LL zX}ueS&!ffFgNB@@IM>CGzTwQNh5D($N zh-_(Xa0#AeiR>KP=moz9+1QKO;~+0QA?C|E1EN=+vdlJ4LwIt|QAZ8r9h>}4twNuX zZR9QQ3FJIDd5N&)WBxqnK|`TL_#{l&DaJ_Pxxg-RBbtLFw~cryluP`1aVwy(T>$d())UIE&D)Lbh!^)$k_#;MKJ~yM zA+JHNKaM@$x2VnV+|HWqKRSiKj%|be$)n$!At(YtaOv&96S**^UY`k}(-M3I8uLIo zvUGv(F7`=G4$xE|>;h{cvsboO{otr|{zW97e@|uX-ihDKf|8byQ)*ocKs({i|D&uL z)ZB9gBqGo!AM&HgaCRAT59tS5;O{?uuVW%FVG&}i&kB<9VGgVyaz*tu=I}O+r&baP zU~2rwni_kPCfrsgyO9^$x<5#Z{t)sAFC{r!BS(9sUXntPtsH3Sx1U$j4MG~zaL-pe zc8BnIQ6azGMS?pj+bJ_GL;pL<7LR%;SG2I}H}%aSWR_qpGab9dJxKkmP)BAIQ8jjtKmM z_r7|oFEfhBA*G$XOSZog_H=3==<6MYwtK>b2 z`Mo0S8T2mQebyyrlvT z7Hu~ls>ZwsU!U{;d>SII3)I8kw6K@%X}nch5$b}s$;ysbAwQjLW$E282&^@&w(}2w z+x2;cBD`1Gp4_t26{!F+5!0uYm#2YD)$1xL>OG|gZ?Bqv3xQv)e8;SjyP>1fv z4(v7;PUo(mfB1zY^<+Q;?$vq8qW`5pL-Fa^e>0;nxGTo$Z9NR3=}n$l+yiiqr&En5 zqz94;=CxHvt3h(qEj;8Y_9yg(mbD$4g`TQ2bG4?ppO+lc2*o~3b}9kGaOA*z%eT3f zgFZ=@&X?&iR=a25=md3fS(Fma*6Q0C}YY`eB#$ zew=zY1v6!5MT8cc!9VK3^5!OI3ceS=dXfg_%K8lzchW%D zW@h9cM+q#|98-A8+l%M_Uk}B3yf<)>wGkKL_t|Wbf;n#t#9!?%&ODE~M8W%B5{5aj z%+yhkyG{T`+7rC?$B+Y5YS0qFF$yoQN2a<;jlzLNccC;j%LQ*hMZYc$LjnF6 zwD9fjDg3_r{Bl^MNB!rRnz{Hk&R<&=w}xdLLiGli3-RCk#g)+OVX)nFFp8-i{S4y`XA7b`g#|v42{Cd#{q1f|rT7 ze@nZNs^QWtR|yj}+w)+HiG9qJ+OUXy>gDSWFhEomZmsvMbo*<{WC@$xy z#e-H5l@O2YR>SYu{*k_l;%eyn&>=uPjGTmITdsq@o8Y#&$kvhz-aj*H68;`9#oW&@ zamT9$_^D5M=)5!btYu!y`VLj@*Ak7`uiUudn(hfsqA$%$$;np*ID_VV+X{ z#m~SwsQkc?{Fbo>&Tf9cm3XHWgwr2i*ZeRAl8@3mD867{X=-D34Dyf3`R^t)aM;)=uw7LKV%pSDQagLPxwR8VW zXD^IAw59oYcM@3Wo*xvtwgfan6Jl-gm}g?NE9Kz{2A`C?9M{85P|4s#DRj32Sc!@r z?hjf7RmESH&dA|oX!$c6VmbiSm3^UX-Z^l!f=aas=Vxxo`>UZirvwha^drObT=28& zn0Cl0^5`F^e;UBNG2dOPYwop>SMhbueiJ6 z-jbi{C+rmp@CsLtaz-7Sd1y`O2<}7gN{l)sg@CJ1S1Qds`sS14zuEaU0OvwX#FwCH z=(If=A73^N%WYLmhI+^!91;z^gnM(Hu1h~|{hERnKiQ+bcL7pco>q$-cOqmd5`R0z zjQuMF+s%=}ZXi80JLZ&(e?JV5C7n1Y!K8bcmK65@;p)|HlbB!nN@1uNhB}Ab8|M6K zarCbju&$6a<2?F;nRBv*0Q2o((cEX|AgZ8Vhyryw$y--+n2}${FmdN)*5zR+E*YIa z$%1-EL}h~=a@6NOTQ%yZjzi_g6M|GWIB$vZomOb@g>Bh9mJFP4qmPW&C~TB~-)B)p zI@EQgbSl!G%Hm#^gWUZ3jUG7ny>TyjZVJX$%BgPQzt3tK@qzWwaZrmfJN(ZXIkB&P zHF;dG1X8YY-4|g~@HyJevb=^Z41w~^2>B*JOM(Q|l4~URgA}hq4DOFwwohP`n zh(=c!rb2SgPEDHQEF_s^O1_UBggcQz=lzf`V%z=pf@ecK=*C>xx7;v@y->$JPRrvS z$Wn@1!rv7b{xpY&k|AHPc-JA`OM92xWI!x zj2|c2Ii#B)t=3s|-yZtVxaNO`&-G((MNzvQE9!H}6+AuI6E@m&<#_QxB5dlv7i(HT z4$!Nn!bm^l`8jM{L_b6Ryg^G$8Eh2Us-8NEz6L!#`-E#%;B`&d zK86c9s%J&Qj(WC0lS71~A$})C{TX>!pI|=xMAm$ga|LLg^%LJkPWzYZiywXzqEFz& zHRZ9;7KjncaNSCu2S%!8O(`LqcT6lkY|PHV>({l?Lf(5Jv-D(JOI1{HbE9RN6S&`FxO)K{Yk8Nk#kZP zFew;MrAp2~tH0Na4b*ewX}+|!>7ZY#wScpgcLCT_{`e4y;d`#OJ;yb;>mP^f!6knA)w5H*V5PvwcKgEwWcQz65lEVb>weo00uQZ_^)=K&- zVjBOv`X2m5zC5TKwI4gQU|0dO*9>njzxyPuGXl>(Qbi00W1r7(bwelm8MJrLGrs=b4nil{_sEfB zl(6^?kSOrlSo&7T>XYU!Ae}c zvW5A0mR+mQJp}BR%`K5MsDzI`()PPJ_elHSxVwh)+8L{qffcGHV5{f=19gCIniX8CXy62_+b^^vizo~c6V&0O_AFX6L53Lf$XXIUxA09sY zlAS*b9G>YAuNES|nc6Jh_3bQt2{LjkTS2ZT2kmj4+8IbcdQjpR=K{osUo>2-8H2Fo zzR#7{$AI~t^541Z*q_-%Wf`V039Jdpg|}YMgX-~v_k=TWZxeltt$lnM?pn<@Brjv` zb!J29fMzam#Ky%(UB;X^W8{~mI^-Zz%)V>K9t}auHqxjb^dFtbZoZV#4?op;yvF;N zL6#}_+cVtPDOp8~)L{-`<%BnDg9Pe8if$De{An;MxXrb|8V#~+ou5P-(KpjSN!|So zd1r!j86~AtU>zfQm(sf#Y=`}4=@w%l!Y%A^;Yk7{^idpK!+E)N(9$Iqb)LQg{+dIh z^I+vA@_Ka&{dhk0Cw4Cmg0<%ixxjDaCTK-zeKN=g=?RiLDY9Icyi!KS%rpUR9f}_+ zAD&B4crIH%Pd(7FU!^L)nAp(%j`ZhiGj+IYhGrB*T95 z$1kAH^(QZ_DGL1%>R+{VF(;9yp`Xj~7yZ@TIst^n98hrlc_V+V3Jj*7@eHDFxE)s{ zxcp)a1|;*iX@`)LcPhu?{08dbZ{*H>93KVdSkAIUI!``lT z;!lG%5_2Hq-ppRNHv)M&zLFd_e}cNM*pCb1_+7T&^n4nN^Zf?ze!CI$bu&AQeR|#n z`8U!xA}yyuchp~5`#?7cFneo?qEBSvj4;*r8+iZle|6q)xCPDzPA$AWJOIs(GW3;u zy&$$q(K&^@PG1-O#2`z|gG88x`Qkp@QcYV<$OdgAw3ttHxke*e1#S2N^t?y$`= z>~DlT^D}BD$UQE2e!Pb7{QzjPzEq<3Du>lDcd^d{1PDv}yK7uN4r0@Oo;H}5xzeWl z`4Y}CJaR-6!rkcmE;FNiAF>4I@_n)wP9RS!$@3pa>M|UEPhua8^Kq$+G*#TZH=Hg0 zz%p*R1U3qNzpldxBtsB~gZd|y+Aj62@bbsyCmmmERgRinqXZoGH8Ud*!1#a^s|VXVhnok^J{zPG=P!N9n~-e%)4&+zSdaBJTA*?<5yy3KqOwvlR?vjTz#vw zM;A+helUAou4fRei0ET%7E#~1_*%$>w+x>6R@|By?1p$*lFOI$mVlv9f}P7b1B8T5 zTH3{6E<3MYZ(U*-cFYDuI&XD>Ombdc2lA|n_C*GA*q|?lua<9=AM<>BEa9nZ1mLr7 z4ZhHeJ)S<%*IaLP!_}q_Z`Mi{q4)D8^NNr@;-n^IgdU?*XFZ%yR_gC#CAm`5gV7yIOa~dqA>{*pp&torVn%2*xd7zRZ@g+l_ ztqbA6BOlZaylLCEA7Ac=l$@8L{sGvNtar3D3jKGnMwU6(ym5}Bpqb|MsD}V&`if2c zL{OM~5c;Ai6I^l+Ovv>iSNvc!#cu906fupnRti_Ztu8tP9^p}tT;3$wU}^++!;m*Z zT@@h3`YHJEg>GojBQ6kAn}>JzLbjxl2VB(OareG`;?Y?UA2eC3(wO@6#5xr$JF+#Uhi)4boOFV@5G*IO#A$J^oA zp4~OB6I1YvnIT~<6VJI9@lp?tV-K5Sa85_dFmRbCMs+NpF0qQ1%_<#t*|$C((ubi`%uu=!OD~y7{1KG~`ux@a$IrxgZy$2|+?a=(Z zmJes;t`7ddeuEi}rl&WQ3cx6IvWWNR2MAA<_$bJi3yqF}cgye|xBWG4L_Vt@n4Wfd>0h$+@KokQm*~*B`?@=K2THyCK-`LhJ+9MdirT zJzjRFFbn!)21&BEd$7OgrUa4y07SXOMv|jX+Lp4L`%Y{TY#+KqsXvPQ##7SiUSrrV zSFAbtLSqCZBPq5S?AyWi!6qwQP66pF555(Izk@aQYk{{hH#sKfly9Zb4x}FIbc#a# zuoO)Cg$D*;lxvm2qqG#(@27h!s$(x%&_Dge>Uby|bTZx<#(%exn;JT}@2=;)m8yk% z;IiQE6$A8NOQj|CWbJl>C6Bz;5#??;x}}kq9*(|{yKjG7t{(w5R^K9pc>;VN`>GSZ zg}#1{u1d#5>_^G0V9};*09S&*@kgk0{G$9y2*!EPhO(ECjCwJTW_&<`XBSwm|HxWF zf2()kTq!>V=54+9%djCQ!TpBz<8)Qo$AedJPFT&Sz^>8g{&q$~oDm-eku z=4^1zEg<$}MxD5?r|9P}=7OjsvmTr%!@ghX%)e{XkdtELI)*x<>~~MjD%_iAMRQzc`Z5p7ELqO=Qv_H%Mlx(UiTBj8luc616=>4P z*rp=yebAM&OY%`K*lJOdTq~ah3R?~)K@apv@(6a88Ha#kO0#kChgtCOEKk!E#oi@l z)30`@Q?Y(q&J7{y2hETAI{yfzFk8dmU7L@+FhZ9Kn?xn1SlrI=Ga zP;O4Ti6K$oVi)eJz`S(6qR>DJ`utm1yRKBPEPr=m%+onqTM)n2Fm<%{4YxpAZ?12Bx11~4hQhOD#09N|CS_Y z2;PT_$2rt!k07_@N`SoVdF%lhrRg6wT!gKV>dwG^X^u+wDtzzn(9PT_z>XQ`eFZV57dLN{!k|Tn}+){rYUZbOVGPRcHhOP0xDzATw3F=2Sd_1nGXD} z^%{J(;9|kPA?Lt34SergJ!}8nxtI^(z5Ab##`S{q`F)p#N6LZvX7fFt?GniAxl4PS zG7ok{%qsVg4^XXn?gFXnBp8SIuiQgUYb&YJ&S|R!n01mJAx6$f_f!5am6#7JwdUG? zQ6mzJk7YfRMc-ALSK;~DZyD%+HAp(lf%&(1){3>m-Ov%Bb<$=J`<5I}doZ;u!qHlx zT%8k`Pl#DqNW%Tj+z6LNaWDG9-uI*JDi?jqD>q|(SiENTCfNBypRkyOtT!B z11_r`Q$|nxzHR;S=WHP1zJwx(mEE4^VYQsj}0`nCB7D`6T>8SfI9qr1D` zKxsXMUrDJPPM)TS_~C+kpdJ(Favs!87TPcCDqs$CuPW}1{sQVsFZkc(VQ)zDhk=CW z^viKyVY={3|HbCxpLTl6q zoF9x17;)Sv355EOyG!ShKa-Pk@2Mo`2*ly(`uGi==S|;b&trdFO0tocJnlCyReSpN z-NC$LChLXf={`7H8BFJ$ISeVxeoDe)!*GN()%Ty!3|xLbo!doAfRj8C78kCKK}$lM zl?tBg+s*s+Pv3D_qV!px_CxDO~fLyjc|48qtU zQCp|d9$+{{W7FJ+`EuXA>?d!KKmGl6p$+Eqr0QLXMfKZ3Z_inJ=@QPFyXSMx^Rz+q zwqnxhMC5}{ep=}mKwqi}^Ci0S9!M`rR9jP;hhM5^f}XA}p}*;wFso%5IOyEQ3)idCQ{&)b;d;hTb^A8wOz5m;k+skPv`%f z+mHH@+7+V0pO{Z>xSl}6h56bSI`*kObs&}0{mrbPABMZDdq4dg28sTO-iRd3O=onn zzkZ56?Y|@YtM<*o){|Lb>UEA&iaamod0s3OdH|ZcZm_gm%Oq6Z}IWp4TjCbiiX9MMTnao1; z+tZ1hJn~uu_d91vy#q9ngB0-S`P0uOa6-N6p*is=kX}*_|JsDUggf`nj-^Gz#t4Fl7?S>V&h?*c2kghKKhtz9OF%%=^vX zuQ+&M0rVYfS9RtVL43lPyCNkGq%79VN$rQhmh+MEus-sY6Z4E8;-2-_M7z(LD(*?D z++)3P|J-ZF6w@iw54WYb2N{&cVdvBB2yyJ6=X-qcLej-a@FDfik7u3+PZ0sykqZmx zt24<+sT%-0DPajM^jmf_dC(o5!9E>-+ndD~P`^^y*mJnj0xxNMCl+y^_eF2?3xRVQ zGzBHn6F>KZsGMu>@vs>b2vIQXb$rHu66EvR1UW7f%MwN zg;4H8Z=F-u0TvCs6)L#@c8KC^JAwLLz*xQFYs?$guTlKI+t&xYmI2*LundMhqv4)K zm>W*q_;`P;1y~)V#<@NZL+$ak47tlS@a6qXEZq?1-H+(bge=#=-y(HA`OmmVXA`C> zq>TsDRQsW#n=LTb{W4Agxk;}iORw^)6W~pQN6;PgDV<}uNIG8F1xIz;n0H@HK*ob< z_F&utJBhaEEu#OL(z{Zlg>MD|KF(<0Ia`Q(cZqv9&?iiO;n00~^plpK^iq4Vh`BG3 zDrz~JDdgWDIGSJHhy7Leg0G>U(|n|W`UH6OLaUNw5M{WVRIGvItZ^TRLX+j8z%q(w)gZf%#$$+bKN z-wd>8ZjcZ#*O0k-pQjQ04%usV*e^lC_}@<6qsWz9x)Oizd@4li^Hs8*SODKdafTl_ zKT@yUwH^w~gv1-aUd|0*{_*0s#FQ}1IT{kKyt;sTS75z>uQTRcyqL@mc%ZNJ-iKAo zo1vKN_fZyC#Ga0Idw&_sxh7Q3OmPOy16S9yHK|ntbX?aIlK6)2v0JSJgWV!{7dBnq zKa72zm*!}n!5rAu4?L9|=!IzSpUs7*vw(@ZFX0pIBy|4xqEW)z2kXNNR2S=q;ao-} zSMYEZsK|Q7{(9d9Kbh^q4ep|TJ+0Kp)^ZOXe$BaY=o@nC9`-MmWGur#N*)ap?gP1e zyrq2-#^ETjM_{xh=H&EeO;mDY!8|whz2Jpma6bOmL^XaCSX8UFjS2I>-K^bID%cM1 z^OBza#rw{=I$t9SW9 z(WsrUymYNOxygug&3MJ-OZ#Ww z%*%+|iH`zEpN{v4pzE&T+|`4~(SCnroG=X>6pxp=@Lnv*{)FH3G5VSU2 zy#xD-hCXOo%6UP@m!$1X)L{ zitYFZuq2_9@giOT`2mdw6@mRgdR%nE1NU!Co|_5R=yA>``N|+CM}TtiZ#pb*Fn7Gq zYTc$N1fKQOe3a0fgTB&@lCx@4AbWW5jTOf{+j=u@eC6@7DAAN8f}PlpVzA>Ytx@fk1e5^~Ys@VCmB z0r#~Q*`SlXu98|!LbUm+$TN`E4IRp(k1S<@5kX{-BkAK z5CJ~-GZ)w7qka@~&fSEl2y%0od3MiZ&OW6%FH2?$gm&oPJK`KfB+`+6+fxy^LI>8x z4z*$*3!}PSzqpMy{X{(b=P}UFA@Hir(3VX9P+sUE*2seM`Tu!tb|NuVAc@IDMX#-#=+s^p^>dn&s5AuK8yMG-B9-$pF!BM z7vy(D-iA?G;O50=!(jY`qTqP+0+^oq;X8`?;o5vw7An-?qkBhu9N2;&eZBDc=yL{}8=mnT~K zt0KQ(FGxl6OXa#j2xazmRlB^*A2y^AdujANxKaaxkH!m6_Q7==Y zOqk^%M}FeNH{|cl>fr6gbyvIXF;IA!D%RQF4abfoWo_pWfK&KU0`aF&P}yqeKN{N& z_JdyGiMT%CVCrvAaSHH8otyXO$~v;s~Td$>ek zo}cRReKHIEIVe5#%+~__FAcH1S5KiIN?XwPq*Ct~B;@h;>Z0BhT3toMe18BQmG-26 zW5qr?_x*;4CH!EQw`O_e$^vBVgg^WLJ#Sw(rmc=gu1?WmVFEq}3dRmr8CIw-osF}w zS}OuIzVk2YG1t;RazoM(&;3|(@mm|}(-39GyO4!`g>!CeHFqT{K-{;+vwC$NqP{CU zZzSM-LhgeCr!jI{+N$4*;QwE-P4iS)W(gWLG6L9t<2!NDwyPFEYI-G?(VKZFsZb&44b8w7v(1tv?&nve8J$0e;a*?%w~1LuE|_N4mz%Aj zUzRhjg^xTI#K{lvlHh%}J&*TkV)hbPs46gyVvgW!h2pc@sGFAye^%o|jzj4cU4ykJ zQ80=z%tK?}Vfg-WA>F2a_{BWyAc{P)fc zw=aTv3iGrQ`oOgcUgc$@uV!r}jd;3k7HnKZefXJYfX(w)`2o}mOCQZWe|r2Y@JESq zzQXsP)M26GyF(}Xv7#vB%-i7rxKpb$P9gUqqJ}36@4<3X-BsyJpr38+a5(|rmuu%M zQe^WWr#;YrJ9Gq+5`xm+O=JH5O~5`^p>z<@{*b1FI%)nqr{^B}=9+nheJ@H505+%o zSRBSZ`m_90-XFJNe7DPJ;?NxU`(E}_d(r^+S~?zUc_X)O!IWmprbiYWx9Q7C|J5r`;<&46^wgVib_@hjL zTz5T9546ftb2E%o!CUppuP5sLtBdz;y&oUj<M0F9_9U0mjT@dA{t2Fyhkr3L41ze*5#!ID zb0Eg4TIV%MfMc&$qhgR-UOIM-p1%y=!{sNRj9AJ+h=Xsvzc`Qk$^6c*GzPI1={-B2NKC1Rt3^LxYe9}<2|0Y$luoa`eWT~L^Jh><4?@BjvlW+D2%+>51waPlzYK4 z#3gYY`|592jbuC5=b<8+v0m1t2GV}Tm#3wm9#`MK*LvhLtVXJj`J%32sQQSp{e9#g z=!gzExMRPU?;B5963%<57CO(^&O$4>12=Wf0?_bY6S92QhFsC#ms^vOYdBdw)_E@t zZ2SjDqy~_)XQXA`8kzv}ZoI#b#ms{1F@A}G9z3oz)y$vz+k!f%R-ex*nCnb>G)@rv zFluwsB1>|EAhS=z;vvqvTSk?~y?N2EqgdS9r;WVbzt((*W$^cQ)}G6{8P_$g<_h2A z+97^YpnwPU=<-`NVS!lxOQ*KV*qeg+Q}^}0-aB6d!=ye;oIR+w$T~UJgLz81uecO% zge=3Hj+VhH=7v~|HYqAU8An}y-L#M-p6@~#yAs&G!JJWj=7DRAkY}9DD37`Yl9$ZB zRj2YH{phQEzf4PDA+Rg@1w%ckTs|+Yz%>hdxc6Atqfb3Sh>@G)X%i4tm^ODH-&Tz3 zoW*$=%sWjI0!W%qgCLC6(u<{Eh9Pcf3^ZOvW-qQAcXTDbAz+ zl;Q&g@<_G4D8iy2MuNEt;T^H9MesVj*Qxl?3_Rlc#n45CKK(A&@1^-mz{JsIYsfnf zpFVZ14`2=`^Fhh4M6Z@0fyZAtq-p}rj|9MlHROR2j!H=Rje+NWg=$H1%rlu|c=wRV z9ejv#t~!!6z}pMPejXAN5I7+)cIh7WJt+P6PfTkbmMVxD=o3&TpZ@lc0p-VX-@v>7(1tGd^IMM0ictqNLHT#*o1xyQ(@1D}5a%!pn#{fV$M3d7 zg4b__qNB(;ct?zpJJ=UKJ!c#Aunca{FeWY_$F7ExdxP#d>daa@J(rJSpPZ(gNx8fo zxSDnnSdV3a=*L%;hHZHKEjYVmv1bt+dkX#TM~}g*#}|!*Hx}Tb39P0fFG8rY>gt5^ zEKEDRqoE^Mgg}=|YbR7kAZefLdY>Tj_$d$ODorc_qt2a=FNtt}nA#wz{ZIjs?vkpP z$CrSxb(%q5e-X0Rik_2UE}eFo=9K)>dr;--bz4^$gU?R|jP$BUAin66r-RHCyde{V zUhGH7N9-~5S9kjd8Q|4o8s)C#E{_Po2&02Up(cU zCLMAT%NUF2YbLzWs>4H3V`4xe@kUbC7Mp&etqd1KPA38`?Iw&boct zJ3|8Nz(-@)P95%qww{;giKVe0M`5~h4f~fA#f;MfpV069DdhEXgg?Ak`Tn=+!x(I2 zR$413&A<=I>WtnAj9>c-GzXF#IZ;0> zI7DSLGu00@lQWVeZN*@4Jx!sk6mT0On~msB;)y zIaCTBy)%o=-eZtXJEWSmiu^#Dod#y!2}pDvVousS3&oW-)ZB@EaOoDuTQlKqSQP%1 zZFviGVyNQ3MLHsXHtm&}oHypen>$>|n;8QQza`3W2Ry!6sMA@=mqL)1u<(J{K1g#+ ztuXt5``^-m6IKSn$g!uXyXn;j>(P$1LMcsfK%&v_AOmu$XvhwSY>z|R+gD0kcwP~( zJDy!>mj!A!I86Cbr}H<9V{&yIbG>I^gGUHi66%L8rfUlP*dasCk=(MuoS}Q4?i!0!wd)?{CVfg z%g^8(v|^mkf$u-eHspEO6dd`Wt=b%h^;rI}hCQ9=*XS8L&4BAP$}s5AM&0*U%XSj# zlx8TAbL8MSI0t(|D=ojt4@1GE3$1<|u5+rQr6~8~dc7};oJ{0 z=Fcf@u+l4dn-z7GPwrE1xJjd~;-HQ?3k-r(o4YzE73w!G>+dwGq=AmryX9mG%wZSv zv^>#-9J0hPwepKuKvGoRl3R{G-7t|V(Jx%#jFH+aP++!m9R-bcCnH$vk5|Gtax z<%d82{$&5YXWxJBv7YewXREXu-lV(FCA+hG7ZCv^ZXO@3C8uZpP*?ww*pnyEbPY{) z%=MlVkmG0F{Tu`Y3)$vO|GwV6+TG~xOYRQr?qkVr?Ea02;2>^vce4_P zCMGI6CKh`CTw@3)iw+wJ84c01+2-A={Zni>LIyF<78HSHs? zp~FAnCG(#v0y6g9Q9zz04k(Vqe+Kl1;bTMH|L0KR6L#MU8N=?75#gptcAsEjYH0qP z;27SqJHESPYVgG3*>n5|S`VmqU-mzH+ila`f&S;??_Tc?)V_ZW6xZ%RDTqsmD~QX9 ziT^WD{J5pvfzs76*LkjI{$C@eYxr2t^ts^^Qv#CR`~TS{!@madKfjXyT)!vXeVu>a z)b90v_N9OCYXtw<>;7|_*XBa-e+`r!{qA%AF9&M(E$r@7y94$AeV-yAxK+jY*0!137o!x4)rlKP1q`ZfQA@q{x!8qnl zV9U(D)+IFnOS4Q_%Nc!8JUwRfw+%xUB=#$+1fqy4LexL5Gzpf&igRW$l%btBkc-I# zMefp^?|5`NA#%qg)WbUiUf!XpN|Fih6jSwLrG24-EJ-qn^v$jXg`Vq0A+_}s>G{lG&sp%JCU2&9(5=2Za`*7F#q zrDyX@5d6VuOfrotsTVpAyo}+=oPv*IYlU)Hls2{HOm;YriyF6h2_b|)4eDE$PnFLD z2d#*kqTMvm+87YX7h!m@MpJn_HlMsRPbWoaEI@*UQb;+%#WI)a4!U1J^H*9&K3!7- zjBr@bDENlJDSBt3Z?p^W+4(J>96|$F>vP`7qp0hqwn(`-`v@3xQf16!^+3|_H(gN_ z`7zpYiMt$F0HcYTySKkAgPT163;CTg$nkj<`onq_-XDu|i~YO=AFX!oFuq&{+1fIO zAZ$jJ1e>$!TnYsmM!A&BN1Gvi$*6XR3nzhh<0v@7S}`2vP1J6YkH@xU#O-DuHUY!? zSldQ{IdCs9N?|CXba;t(>#ivB_Q3jZ8U%YxcK2?e$&p7oMY;*0cb}Dnmr*2cb>hR} z)dT%NJZ?sL{roKObf}(N6KDsr2bm9^{Hlk+DgI8$4_Fjh=!kfYaLX4>!6G&z2%o!= z7ZG%R9CBzy)-2HsJ`&J)BttY1-dZfWtTMO5hVgp&K`atnveyz+_nC)BAx+Lg*z`U1 z`xQ^O>jK!Pl;0K!v;;*yF5|lxqDJ<-PBA071>sHJFJvZhad7-yj1(5h%a*ofLS9V4 z2~TYjViZezY8XZHzwUwg`=laC#$(XdD!slTkDYa{m0#D7<*@s+CC>>?F*J4EO0Ght_>R(uwL7@H~o|;B%Dk$+sU1da*<|Mlg zQyYe4(Q7u>3RJ-JA*w*k! z;xmNTbKTXSI(oGP^1^ovE0|irmHYLts}C_;(&nV&CW;>~T22iSUPD--bHuh`0fta( z39zv&PQZb>+k%^Z+a)9G z$N-Q%4p=Db?uVHlJh$x)n?bZyZql875&Cc5=v~^FhEC(0pYbtcAj9cLe&^o>Ed$*-BO54(DRY3~!eIBqlvXP;lZN*j*Nz)SnGKa4`k5BJ4q7~aEB zC&e?Mi4Yf^g!sIu5a8n5D$@L14JV3g?k8dxtM|#%i*r}zFf{0mcU%d6-+NCI+`ovB z?-DA(`vMElc({Pe2*a+@p+$f;rvltAD=Tz=YJ^}qfrvkk(ENGG;LiExN+^9qYvVkE zMcwGRTb^jf$s>NA&3+K~cfJXcA~YYEc!ZNwx>aED$9?LPX&#V`J*_r-Ita0U7UhUK z>tKXkmjC8qEGp+MtWe#Ghi(7s6*NaX;aMl?m$Yd#1B*#>=b?z=`%@2I{*WXT-O|;5 zHpkDGP=5WcUnYk4Nbeov8vurghxDGKQQ#(fP50Z|B`DQVv|1dWhPkSv9K_gUt~7uD zoJeQ{q#}fTg%FTZ-~1&S%_sR_cb_%48uXM1ZGilii(x;d`ladAcCQe50nAMje8;U>ey ztxA=_*FV>~fJ0R1cQ+e~byQ6sOJYb#=U?>^t(Rk_6eu1IG8-mpn5R`60^BkzX%TBDOs z(7Y+ydH+kMS_iPuT+&UCo`r}#)7EiRQ?SDHx@vZE0h>>q(*-|1gYbLCk3Ja)?-w|e zm~aHoD^KUv#5@uDV54elfzTD3wxqv{11PfiZBNOvEAsgwocVR60lZ>-M%__#)$bdc z*ioI_sg_hb8G`j zVW$BJj&fKg?^P*8D9DlGS9SAv-d}TA4aut<1?THNrpAw_;p5_2r5$G!J+X(=Z*g}6 ze~r|(7>3HrQ^U52zwio>Cx$ z?hW_-NHT;=<(o?lok6jroPs(miuJ$UfdQH0h}=;JKs+X#`9-dd!@`H+`xQS=H; ze0MXh3J@VA(6pOQY*G`&Wu*C{ELmN^a-T8380S-FAKhE(Ct|>gca3aHI|H5#6>4&F zV~F#itQ=7jH1Ca2e`8(pfpE@?C26r}UhsH*IJ9B{DEY{K^q^>xWV0hG_f-?zIir6{&6>4Yw-3!@QOOg&eB=iXFY7I3s^O1=ne1YNCC%MpSV^?An+HIFTTd||bsWyVVNJXtj&S%R zG_Z-ya(U;f-~R41KuB0C<%ms%filto+Ma6g>9!&wl+1+mAktn_G<7Fe9!t1vRRiR; z(&w*FHiCLfuk*nM6q6m$OChzW2jP)DJVpM4@GCTvb~$*nEm-WbbtCGZ z1cjtE-Pzmt`y=FVkAh5u4a;_1ajk^8+Y?2rY8dugaUN253V`br*;j+pWzZ1OBH?)l zp=(BL3EwZ)LW7Z;Xy)xf&|W9j)z6LshW9+rYFa|!jD)1{Yyd(CQ@(Ju9d7{T(c^NX z+RKpCtQeg63X7Ou+8&*}Q3FOsDiy=}vrwV_^;!`@Ei6bRD?7&2fmh>=^G|k0z-U~< zD~EO(^a_;{^{{yBuOZEnhx2Hz@ij!wqPd9g%9CpdV-BW))s4DVkWBhksbzpow0Cm( zhm4w_g!Mv4_vH@=j|`u)B3gh-_8WA>XllJ6RTK7j4~~bhz2@oM8IX{x`W%Yk(hI4@Dl^-m#f|`K8eE&gM{xRu-&KQ4FP! zb;E-DfS(<08@#3aLQ#038!|6e@#>;z^jCxOaC+M~d<~nTUS6n$vWgjj{NDOK-WG!N>PDzt{q!+`FipP^`WW;Va! z8Oe$!F=dHg->9qM`-Lj^o%k4NyFW?KA%ak43QrnA)mA9^W3VOVm;o#KQYit=E%4fN zFO>*3ZR~G+YCA{L1iCFB)$%YTVB~f7HLk8tDB^G=jUnuWwSA=5iP3DLw0`HvyK`tV zI>md|(j^qEk^*}e(d@$YHbkTA47Su2&ZUw#21AHY>@7hQ%Rcg(>M~Kra83Q>xA*oT zBwx+%#hU{IQ1O6I@S|r9&<9huex@FQzsxZk`Y2{mlMZ%vmO_(ityarS<^WLE5+C0} zvqVym?^|z#4@eMft#sX;f_*NQU)iS-s@Ps*Ij8gm%na^jx1lJ3qRBBa9HH67o0HK+a_QUN~I1Q)`SNirpPXQ5Y2=+)G?{dfI9beH$+aH(oPt zcb!3a{qBmAAMG-lE_b@`vbDg1hnc)+$}$w4EiD&iK(WR2S(~G(Xu=Kb-?5tNhKRfL z(r3^#@}fw^Iob`^k(11(Q>i6jS!S5%zwHS% zjX^&S8nuEap`9DUSQ$1eU1fvK(R?tfPjor79ZGBn<;QXUvi@erY>TK2(!Ym#ynHbL z?Hf-EOtMfUJuLqzS{7k`vPZTj@$+x?L>E^rV6#N)(~~eXKh+-jW}S=Uy!7ZcuVlvn zn4PSMBbWXLua^f;4x;(aj;Uiv6X(mZa7c(8L%10ljMg#^Amk!KqwN`rMxTZ|yqdt! zpb7VcC;77t@Ud6$8wHw;-f}h8*%S^!S;S5K(?s(?5z|Oh1!ptQC#fP7ukMSZv;|} z_iy@c3_@^Cp(AB2!oe>#|1I1>XhiV2$yS65IJ`eKH@J!G=W~~SnDC+qrB9EEZoLC~ z9u6+)|0x2prkBnhI(QtNXSt?{X2n*gts88s%P3-W@vi%w0M9~c1b_6QS=7YMvK`H? z_sI%wKHEKCy(5CypK~xxP;|27$_UK1Sn)XjnFZP2_7g{6j{ptp`Xya?G}m(cK2jp&1Lovv{D)m-G8 zZbQ20@z~9wV&Q~;DFj2Ez5r@r(^ys#w(6>nt%}t&zSKSS(6n~~D zPE|rqT*I(<)DRen_<9o*V~AF4^@H^E3V6>FcT0nB83cs(a}C}tfEFP=m1j;EUg|zS za6Eq)Ze$bIu%n1rUxamQ|GgnN&~B-oj8IrV@kMei-&rtu_SY|l=9}-F?loxa^5WB zOicVd=+tR@0A$rPWY8kD8uW*sqRZdzHs>iP@{c^KlbEGMZ4AgH95855X5+ zoyj}_gk`r_g+HdQg5=9RnGM#JIKSrSYR;Yj8ve=ODxH|6KbiQt z2WmbW;Bn-gzv|vJe9D-9z~K(IRFEi!4y)qYH?| z^XFhp{^JEo3_m&0BGs#%gdslk7a!(j1NM51I2xMJ1aEckL>NN#k3Q_E)yI%C{k>d5 zU7hgy$uo`QZ^Mwy=%n(;t`=-APJAqgorBbgor<8J2rcS2bqr$bf*Z$_2ZOMlH~N{r zvm8xB6z)TQe~b?kVW0t&=Xowc**zgjg@t z)^)i*%^3vueohn?W0-E_PAP5HO7&pQ6pEgGXg4Ww z{@Gh>$co3s^gC|RRui?L?Ly309RC?oAD|pYX$GOu_c~_LJRuxoCdL_53M10{U+FC3 z`Q7Fdf0tYi{1GC0q!hgfIXvRQwSs7pIh|mx&w#M2u49pWXgc@Rl6q)~5OdC2CA(u+ zTi{GYJl_O{ypW$A5gxb61D=LF-yeT5Y(U_!m?Oaw#PeHH5Oj{i7$^UhaP&M_>Gc+O z8x+D}6)NGcPcXd5b9}#sKsB(DmMw0}4S=+N$vV?M42!;Joj9p73f&to^;fBdo=^vHf+-%?Cv%tx2~YKN|sK-HsN2(^;6fs3JMfhmpV3 zlo9kR2qVnwIi}i|1DYMFegwm^g%-h5|>z*&QB134V{;Th8 zzhTn?Mf(+MkCn~CoT7*43ga@E9dUZo5uX7U_(MNvSk3{NU?4}CW+MnDualV*PXpE7 zXxn=yF${28q9q}%6!>fyMvHzUR}b&}%w!;O}q6 zk*}K^O)-f?`Hx1Di6_D^-hjxcTQ{)2p^=5P$gky=wUq>`Td&zau*Y zJrm3pqf6CrNh8&<=lLKAG@e_m`Q8quakj390*1hQkMKk{aR(guGWPMI;S}`wC53XT zqxi6{RAW6d0cx6tXS9!Cy}4>`rHr>3>?7}Y*4w5+<v5sNblEk89 zwJ8w%asPE$u2wKfih1X(R0(O`A`H(fQ8Yq!a(-4~0fNg(PdOL0plMC@0GGQ zEYSi9L3Qc#b2uUC29~# z72!4;hw$BJ!tLE3OQ0!q(qOtD=iOHGm-7y{LHl4Nq2b~*96!jMAICEe1Q|wC$}>5T ze%Et_^Bvab`>rgg*kK*xg5a86QxBQ|*M>B{pqVh_ZN2)}JSg~fkfTj$8HCm553Z4i z!Q9v-!DXUW_`Z6teNqtXQQXfm<~|I-%1F#O$80A; zfPD`HaR=}8VA#tg1L=?t`)A?M!5Pt*FN<)~Of_2vAyVJzd}%GDhG9_A$)k=N;r*Wu ztu&~mgVoi26Qu}GC$>3u*%d>Fl&X9aMbU&JIc;J@Q`(OGt`3Knd?<>vJlybusSe8P z4UR^3jlqxQYoh~4P$VRMbYA~KJ`8ADYm9f{asH|bQ`DC^m>_RUU9LrOc$uek+4VU* z-|MYNZz8OF@Jzy!$bN97Wth#G#J*Fbz|QpT3YbZfb*&>T!SKlQ%ytS0x9FeadqY?U zCM7{NHC{u|_xWoH9n~^;-}*Z9)~pZ1PSbzreenaE8)nP(Bn?0pZm&#vq6cQ~_{`sk zsDMk+$8MERVd(JLy5_mV-QX`FOFHyq5&Evi+C6og1rGniRE%@|Fz9j4_mLci`igSg z(c_qhtt@?APTonV)Zd6Z8H`~wi=rGP<&_}z_~ziK^*l@*j=Vl&IsnP}^2X8*2=N!n z(fa%YMO5)m2q^P${`0u!xHg9AvWG5Qd6kQ%u~ipgE7LacSNQviGI;`y*++dc7FmSj zZr4|DF3kb4V&Pm)PBRFVA7u%_IxvmD_vU&@Hl(|?vzdxLtL;Pmd>I?5n6C;OoC%6hK)rC^+lQFLcMW;*-w;Gq=1?NM# z^JreANRV-AebfVQ=P#aRdWz=5X@{)HGOSM?<0LAwRqOn#{xTj_(!Vof>TtTAvJ zVqO?p4JDh3M3lz<5D>3I`A)tET)19pYQ>I%{%JNZMTDKb%<272JUtFlouBJC z18{yIt@7>xn#w-XjC&uqoB%yWS=Y^`1#nzHD^$?e3+qI$Yk$S$K!THYqB)wSBMAOiM;{q-+y!0_b(r@>@|K0BGymHVCVfDQW>%FiMuK~wImrz>4Q zxJ9-v+jlp>YaO0#51LNU{oJ(vJfs40IE7!o*PVu@%!*6ly=XSow9P+b<_E=Ub740f zTOnm;j~f326kp4D`N-ex0=Y~nqpY)NB4~Uadp{VDPmf0)oZN@&*9Rx(wf!)xXKiTB zw%QqJvZxb$Duy6f&qOgMAEAKpB$phFdVybPTP5)J7?>ZNre+?*@M@vz?T8i(Ju1-e zdN5H2r=l&19*K@a_pm&br}jM18IbWz6pvvYik#jE&82%>Dg;_Tp*i8bnEQLBM5t?I z`Ec6{>ni)HZh2PLflBe1OQc~N$ov&$Oo*rj{7wlBBRU}D<|kbu#bwwM;kI;N9fww` z64RW=i{O;lm$l_l3j#+yXW0-sK44Xv_9ngtQe)X7TZ{W3+f=*e*=9SGUVe~1jAjpg zofzsZoIh#@Nonp;9tTDi-)|Ba7F6?8DP$Q<3I<9a1cRFqW=#{MX^SBc&y2s*5Cpb> z6FaF3#olE|&~!SRSXd3sGV0f_U73Or%d0B``2+Bq{F`|%p0~uPPEq)OLo;*YQMzU> zJZ~L)8hM8}1Kt`+i=FK3fZ<21$EwLELHcX>M@bWewA|`v@y~69Qm6IxDx5!P-?^US zO^0=Wb%*-Gci1mATUYh*@CWUa$K8^Xdw~2#@hhj?Vz?nlJ$)k(L#)%yqTZ(?49|+; z>#Ya49@|piRAie5VR;}rhkbw<=DUJz*=VLo>ORqmCd|k0yE2HQ5gw;=-RSSndW5lj zR3&r9bs;Oo&1Ka_IMguqvVe0GKIny$Y2x!F+6p&bNgyPAHlBPm25Cs$}c)#kf2Iy5_JPTvrTg=4Bf!QEL9kc`k#{KC}C&przi9f zj8O^|frYi!-o+~z4lB~6REK&QK~c?O^AUuLSzO@|*T-;#Q}fLm*ssqSa*5j?v;b$W z2)(SDn+JXZx>F0chY?cZQ>B+V3yBiq{6v3I7hn)}X5(81&`0j)I*zb@uS4Xcud%=8 zXBBAq)nF3W&jJ?*5$gRtIp&=KZ9kZNKb7|!kN2K~B>NQ+_D0&Hlpum(EOd2&j;h4N zu-zg5!*Lw@n^t)trKlrGPKtk~rP2ZAE;4t`@1Z!hO!6Hcic#H!<1{2AD&Zab$<@i% zqYynx@BKGv8XlZ*#@~1^kgfaBxUmca#kKRJVe1$=ni657{iXsaJnvk7&N>EpQoW(o z1sF_P7AsMYu=f=I#C+!z`5Kb<9sK;{1Hz^~7W|zAq(B zA?0q6Dtk2$GlC|-3lGDN;{I__q(UxZXaVFI{d>fYM+5PRwq=pLQLwsx{Dl|i80>JH zS{$mH0U8kxyXC`Ekbhcjl%5>TgaZ#hUwTrHA?}~;%H|j0`|0SzJ(>uc>S?TdadZi6 zT4Y6@=(+hwbxCXh^1fI;JIY;$re*m>S2P>F;L~U|$NGPpu#xqcDbBCw{mOWj zT4B@vC;YvQb&YGMNb<}uG|XT%dA`0Cf>K7pdJ*EIU-Zk@D;h(YCnlR>Q53UVOsBTUXTU&*Q?Gej8+>haVETx`H`X%+rkLErRE<%u#2lYLFZZbGoL`4Q{UVi7h!OQYN^s zH93L(oC8nyO`(~JAlY)lac>$J9GiYZey0yjB@fOWNAn1Q=wF#lnMANxx6raW>H=vz zeD-Z9l22dG6I@k~gzZ4PL#sRpCwsDU_$(o!g$C=Hxm!w}%G8ZVh-6h8<0o?ViU0t)FUfuAB6(m}WVw$-x(sE>MmkhPnH zqBcIFbu^DqzUWukSK9(It)XKRhZ|v?-9BgSaSjATa}U?^S3>yYFUEV)2&WNOJ$;{T z7(}THwAO5&E#yO$cNLond=>x3KJW=FxVnMh| zi-^DM<2exiGoH@=)DJ>BEL-P3p-Jk{!2&Lv2N0xQ{=tUppo-HyZZ1O=Akkh!xH8lZ zkrm@NcrWLHRsWMmcFDzH?`=1G#k~bse;3*rr(+$`Xd>Q*^&2F9V!rQm66NvkO+9N-1pw_h<}O4WOXg-FX``$v`pX<-RSaf@9_ zBVGXNg2U2I*cViKX=$~0xgQ!_UmE$o=mj0QzRU*fht{8ql@>^-B=*3^94gi9Ih95O*H`V*-r25V|G0a!#vbQ(lL=bIcUy; z-;BW>^C~nWt#^k7wjnIxi^+WI=XzLR5gw#S9R@A7b9~QGm#Hui%sGy59=Z8%BFyi5 zA#$#^HTz8jq^g{=ZZTMf;kQD=baS|l&DJFUBs&0}Y}Bk;5+$Hr9Z2Q9IS*O=1#3p9 zv0l_Aaz=2W6IgA;czLn@CP{MOiAHA;!u1dOPk+k=%3)f9eq8@<#;)FDVxEKB9MpA+ zVq*|rO-eI_eK6Ma7P;%?I8Pb0`jSc42a)|X>f-E!K=8Ox{|T!doYSOP5yXB(?H1jS zJmDEQ!PD#HTRi{)284qF*#8^RCNY$ae-EA?_wGL)-w(pKe|^<)U4jD~A0*NhIzc0s zh)iB-5W_X~uKfIz0yY6#@`P+vFcNR{A>nllyg9r#y%B%6G`@F~7dd($>IwCP#7Ue_ zydN@PR4<14P|37+&C_txT>nxlju**!VXF?Q2~haZB;kvCg5g%C%f?wa{v~N$v}j8I zwJ{!ma#x^j9+^tO(y0ztsWcgSLZS9@qyK>zEG5ex#K_&RkSiJ|u*Y&K9FN zO^G42$dq*$Y7>sEhxwqH$ZJMy2jR|pn`auSa2yJXea_1n_Ji|PC#77}nU%E946w@h zfVkl^N4pw?u^-_$=zn?$*y@#;oWCx?xz2ZSH{!E^_>7Z^JO{3C8otH6AT9&XCJ)wN zmUdv=^p&lBG!4cXt`nRHBjp-=DSY5uIhu%H4ojH#L-WfHE{kf^M_H>LJCNQ3O62>Q ziCt@UbQLnP;kOS zYwkRn4i`3)7wme#-sStO??HDM+G)L1jXJLE!%8gArduI(jV<^|R2$HINTQ)2!t>PL zu$l9hXP`LI+g^;W1GJwMNuBYF1)b7BG8Npfug7-^j24cf>4$avqzUQ=?9-gjh}HsS ziPDdUmuul(_2K6N=G~Ab-TP|a;Ym35)Zugw{W2uJ7Wi%H)(*DX2WKiga30qm)A87- z9d3jtI841oz2^<_aNCbr2tgEZ=|`wrS0WRcvFi}fJfb&QPiX{AXQumWnRr}(rt)pUtcRLf zg^~0_WW2GY3l~BZA7+qWFU5M%_wQ9g^3Cwop)D z-){%&AMY2)J+m*3fzoRVeaU-M@Tcj-(9w$s7f|r(56f)sT35hHIO+4xzJA7ZpuIbA0&qb;S@*(EomZ%$8;Z zLcdJqbt~`cFq$S6*OP$)I{eIUk3;0axjUQ%i=d*f$drJ(;^PVo^`t3ScX^pBb20~rYrK&RtO=g?*&xqRp#KArb(g*7ebj%O&IbbMCtog>mQ8$)ga$z|CjDd zI_ kVk;?xMGETS4+lmc+Po6zv(pApUd9$XjdT&ryII8>A%67{RDB97pE}nGC1uI z;V@K}6^?5m^o!t*oKhRs5!Qz}JK%7Zn8?AZUwQ|ywYO`ZFsQYY-t=Z4IycfdjdBQ68GZNiMZ-u3=5R!$nr#! z@MFu39E9nSoO(qSkTDHE3GR&u2P~o)o1Ehc_FKvCU%&NDwjH9+^d`9E&OuUPWA8;Y zy@l0z&54?!*?ZYftr+WzK|fnWtOoJ?Va~0ai2V)nV2K4r_C~03=$BDdoP~~+z#{=l z7y>f1GF$gE6YS1al|L03$NlV`b)MHG)Y^5u?Lk=aU*B|FGF@JziWU2!ZZCxE-`%Tf@@6u zt-)B=ON-Naw<;3v*~TEW|EXsQ?XPrD-@as2cN5pOgd53k zWm14(*`!|PvIEfH^ZCAoeLGXTdKm%_46oq)yH$bny9tu-<0bb5)&0U-!Ib43aJyJt(zVl&dy4>>F6nHKeE^u*H!aSAc zWk2s_7)m^lD1-A_nuqkIu@s#!VywtlqlEB<4dc2*kqLNd;iyJ2j4+bSip^q%85kf1 z1G1Pl>__Cwy$#L<`k20C{9WYI*0GKz|e%>Cv+NUmLml}sH4s|&w$E`1w+d@c#kL`MA0p$ zXZhG}IK`JjB{Q#5aQ6_{_`P=&xXk& zbm;3t3WSj_yA(F2aeH>0B2d~NYgSX~cF2-2YVM=8jQt!q6?-F;w6hb#s z`xEVcM&tS0l(5VaO~oCrL~Q&vyTGpLmca+Vah#V{A7vZpfJ0aL-b5{AeEF`r<*?+jyC&jnCW zO~O9<6>0T7ZJ?v^Jm)^+BG~Klo547)AIb^hjSpo&A0e;cG<6@4j0hMw1@}Vq+6$>k z_6|^4E_+q@z8lt!MDN=0e*^h~xR{r-2|#fD98I-F1_-y1QJHNy!M*GL@h0It@N`~* zZOaG0zkYwmOqM|qe0#=|9mlEe3qRjt@)-18q^=pqc}$4|Rii7yUx>@7sGX-!=hpl) z*|u~X!xc0`_hJ2I@x9FSOQ|v736PlTuUmw*cRjg!EUmzHrM8uBq#t2w3<9?d6Vo{}Gj_Vp(!)8y$4p3#w za0uwae$P0~Aw{ujc+dIaKt201tV)VWS;gS`QDIhg_{Avf`0ba_AD@HfCyH9FXv$`& z%T0cG3(e}B4(U!T0noTW-CRL{eKJydoxOS9U@viP@T4hF%Q9 z`&9uVE+>Q+?TZ%Mm;U5j^R{Vf4+o>7hQwLqEm`>+Til4y0tbPDncZUf)Cqp&I-a zHSXBI9kF<-_4$%N>>E5vr-*uv{lU##qyDI?4HBPHbRB_Yy0b@=iic6BHQ>uDF^J(H z8#}ECch|9$qJ89q`uF8Z5?h?dgh!Cgy>J=;M~mnn)%ytRmhpL4q(1;UV^N_6*l#kY z45bLqMo74D@ytyJgyl=-C-CCwuIUY6UAt_m#0XHNE2qb|qUFP`{F3+Ofoxapkj zhkieU$O44S?R{kBU>}Izr)P+hFwTz&j<Swn&cl>5}y890m;AmX?eY-;8pM);-gpxH!+LkbW>Tv{=}b&N$LSON^vOJ z_ty+;7V`a`wrT^P;L!N_a6CUMyx=@mI|6&T7OYML;5_)n<#uwtE*SV0(CvtRP;%Qd z6f?Ocpt60XX_>tb!3a;)# z3ctDPA1DSgx?d9#Th*}t#g4@*)JyGI?|AT-paZ6_Dl@P6;5_DLOihJeIk?x13Ubsf zfCu}FZ6SmkQR?zEdxXuv%NH#(N3t-CNA;>qQNsk7eh)fJiu+d&tDfO?)F;$eYtFpc zMA+!9lZ}&p_&cM!5Se0x>mQ{Tk#4QPnpi#PlJlT z5r+{a>aLkdK8MuSLCBEd1!?q~J)0li6C~URp)UpGdsgRxRKh@r<}>QVmyYMSb=1Mc z2*u)KMf7nzvL7qF)(ywI&YHDoAj~eG(EXS*{vPM1DZi&yzz3^KUDxnday za0!tKwO{!Jd4%E0%YrT7NirF}it~$=gG(ek2-7`Odm>K&^%GU8DNgF-i%{|O&vRL_ zcHom!WiS&$9hu>9DO*r4geNh)K2M79-w!4+x0dH1`t0M{!e0Y$EtPA`_#FP7_$zbw zN*2)A6_+!zjey8^64fURIFHJrb_2U=5PD_5$)qs}ac>D4Q!ijBO4<*a7mu(W;!zbX z&lC=iM_D)nK8=GJacJB8-#l<5;}KAJ)Clix+q-)FTE_5lQTcD@P~ZGJOJb(tBc$_( z-U@2ygNlk}MTUoml{ftYp1vW-%n7 z|1ihLMzC?>49fV{3daRg%+gTDeB)K+95)^x84`W=Mne)8`t+-=X{O> zE#G;BUS6f86$!=ibV`y+LUAl%{rJfJb4nGA>8;l->vuv8EwT9o>OXazrl)6ln&39& zR#Ff8mhWGi@sUJd__^Q5t*3~w{6;e5sbfzKv_Cv7b?w6(aPAxH#^4-LR~ca-%8&j` zPIfYx=A)up!2z9D3S$r=94C#$9^<`vshCec^K~L z|2CZbgpd>OySh58xBu_Iu^v*jTt)a=9AngnHc+DHZl+9J1~-C~CclrXuy&zPM&j`> z+}Kvnvc(dwgIBd;S?ps#exLitKZNad66U>r5<(_BQ z&{xBmu6Gv?_?E$f;`vCK=K}nknULJQgXgc>y2gJ8Sb7@z-@b8SG(7;Q`#K`#7GO8Zhyel5<-l>Ijem|E&gj$aj zgr%M4?*;;;bT_pyT`UD4k~zTZTA+rFlpNpxQwsC@S215c;#JO)f-s+dzd5e5Kf|(- znUaZ8%qIrM%2>T!?t^1i+t)>(BP@6~=hh3r=h_B&{|x2Ob+vPE@UB~JCIq_U0bX5&M4UwOM zbE_eT>S8LO!&W|mVF-1D*iG-=Gt1y0Q5XOB$2`Krq{fU0nt>`HqcqyE8$eUlu7wA4 z&2(uofhHlqA}wdT=2s1A#|_@RK3D{|?_%-SJ*J^5?tG>u`kWZahTDcRhoG>Rkmg_8 z3}owYAD=se`6E@#)sy!?e_bnKY3M9Sw|$eAHmU&kU0V?iyl$wrJE^h+%fZ?ftO zp)YFzmeSREQuBQH=o1ibl#dV|W64Enl{zrcKjamOzQ&c^?x6th z$g|gBt~dFItjPoPMR?A9B%(~-6c`l8!VWAuynbV`Z)yT zSrilu%_?C%OVju(`WBH4;56{98shnkZM9J#nac5cr!f>vwL(f{F&S<2PRPMddBzTHfvf^7(7eEF`fM$i-Uc z;j=85S^phf#fSL^gG9|K%`7-A^RN2P*K(lPJ?E7p(hC-&$4)-T#4>rg{(iNii|Dsf z{pqq819Zz8OCLDm@V?SEGX1jxJFgb9zM_vecc9kb_aQ8M5|i9iFv1+o4O-ovrC1GD&u(XC|Sgr2O5J<`Gk<6Gcz}}mHH2Lfn*fZETbQ^P3f(xHH4s8uU zt){`+YeIxvs>zt@kziSX+=OfoUiV$(Zy(D=H2`5Er7Jh?-w$4vl1bi#-CrN$%R`eKrGmtE9pBn@1x0-$S&7UX3 z`6cCXO+ViAF62u*fYc7e#vYpKqdIik!ge^ zAv`N6jdLvEZz-M4(Lktxgz>+^I&taYhDJS#%!--JR`A`z^(q)JK;n;ul6$5 zd(7fI-Ca`MajzK;`67Ky@ zaKDQ_2uF9ORjUhFiuXdr-}lQ8@UcjlBKm}Ld(uLRfLa$E*S(WSHGn!%M(uBVL*!Q6 zVXpa(d$gB+BonTG`$2B7>wVXiVaQ0h+g9N z6CUSqDjd)4HbdmMC=hnJW&P##nI*VkNa0ctjq{pvZnLHymNt3y&YqmYJp5?ZOYRDs zd)vEXVxGQ%I|{dh)bhGP{d}nJ{Zl<)FqPM1ke?6sH*<)7y{iEK$7yG&l+ceO(w?3? z@C~eKq;!@T3*q`r6CTbk^b6AQyLF;(?Yr`F_+#x==v%!^9sMN-h-R(4BY!T#-kQ7% zS7tYC2@+J_*UEvZlVU@wuaG~}GnQL`rMF!_lgU_dZjgBR@?rS91qjJ8vbKCZ2T8_} z>OuFb;D+WgEh@4>$laOo6WHs8Ig32=@Szg0iEXLX{|T@$Za2lgWa*H%I5(#jTGd}vCficwb+_j+<;Pa_gCI#^7uT&L^ ziXWEmoO~wU6M>M!UjbGh|3j_@uOw{({{33aRZ6Rq2_SEJ#qkP!ga1b<7qBeg^rhp3 zkJLM%iR}|j`DygiP%dBkbE_Zr+b-E}21yJ;y znbe}V5u|f&SZ3LxKRS#0s4h`Cq)tT52HZq=^1J^GTkyT5+&$C19XtSm;Xf*v{tUuq zTeq9*;v%f5&}vd#?FP~B16|>#F$cf<#j+6f3C3qCM4Lz3VNZIMAWeKk%OY1 z;TWDrlK85-o+3X<{X)ZS=ie=GKbhcJaQOfz^xrjf#4@MTjyCM1#lyflY-o6q6HC== znOKAZo1x9(w5iGfmdcTr(B9TYJ>!Ao)Wm!dXoeZ6(BBz{iLCLKD9lYB7CEV(g8Kkh z^o7bQ^@5IFrk&LNUSOS0{?5?63~2RiR(bG{H`5o{~D|{u(MDT7AFS2H!-_#}7Q{ zhH16hbU~aS@(xuKNEtQ**AP0>30^Yf2yi#o;QiyY>NwL5gjUJqg}ATyc$W3|p=#7Q-lBP+_pnF7an{Ts6%Izln=%Adk3%)p_$pQmnI$NbU+X`59h!k0fq9}W^6halRv01qtFS`@xa>VSUaik%Ge zi^`*r>%Xhws)YP4aku38ud9%+Wq3CUVV^rpDU~;-hhZo1`S-@;1#pu8)WLwy1&UO^ zzuak4pnE{a{;C}3@g#|7s`qg3yC)Isin+h5!tEYBf0jV~m$MtOe>D(@)g)*9nFODL zFEm5U%`nqlIP?L1giV_Lb`0oqm5LyL99oU}xA%Pt(6j*YyeGDtPoY18?N|!w2ZX$8 zOV8ZHy#76YF@YEY)XyV4+s?FOnbvGxbC$^j6uJNpJ%c4#?dkd~wUF`P&L3jZe4uKO>#x_F z0fR3GY}&!C@PaMibdWpxtyPo1y|72v?W+^jy`S)Ue8c}l@w-24J#`*E8dDG4-2qu) zuP`6WNqVGA$QyXe?EY$IqHlU*yIIF!9Ol|1n_v3l&-V@r5$o@PiW9D}bst6{Z9z78 zO9OS1!Ij_S`N*NcOW?nueh}hWJY!@xhqM~=I273yM@9=Y2(qq z@K5+;1N|iWF|}JCP@-PD%ttHou@Q#Wm0gcBltapNmggr$EK`|Wb;`cn3>1&6sa4}D zz}DlWg%J98ebt!Bn|&T!e~8gGo$3J2+*46Ul$1$`N)qd$88 z%{&LZc?&N$8elnil6?vT36`5Hv`HR#4#488xI4dZAoqmr{wa0oY518EHm!)~Wg5=O zw19;kh*6}78XD_@u?4I8Ek$3D9-vm_;m&~Z;6_h7C`|2=;gpKEkmkGBWLVX{-aUGOxPhu~&X} zLiFAHw@h%)Ca>d{{7I!8c{KZ0vW>;?j5zs^!Y<}STZB@-qtBd|KW>V)tQ_<*#nd#~ z`$3ES;bK%x4c=@=CuYA6!9FWX5zUJ+XytKuCg(a2-aOIrf$F2+ow1tJ;lBimS?q+n zn4=2!@Q6BPhGjyJ>XO;e-$YQj{beKmIcQaJlhYX@hv4s@>h>ty>$>BhwXB4C_U369 zoQIb5vnmX{C!qh3CvpDi2{>kL-mLN8D*S48V_Uh1c?37EMrQFRjHx%sOOVD-EOacpunW+Gl8L$YqPxmYI1B<1u#V=FbhdWoVJxAYgAi~{apHDyt ze@bT)`v2snzA9wgN8VG!sY4(5hT$sN%x@PNETR8mY&v1m2U|ALR*ogTK)Ap!$i;~M zhl_po(vo=pDo~V7#NmS;QAze{km@EgW^tRjpHQ9oCrK`Esnm65DukF9R-j%aAT6A z5`8b<7E%eYoa26TPW8A6<^yIQe$}Vsr{vgdG2ES&Ai} zwKKi6Q;k4($4w|&dja!yvG!cjc)jXt4yC*v0P!#ox_c=M2ttZ~1qeBV%t7my{U;NU z)}OTU8hyWlDOXKeg-1ay+}C$Pa|Dv|XU{zgC<5!V8DBO;I>7rs<9ptN^C0k5tC{%y z9ApUwS1frh!5YDEWPw5>{F3%rPOqDWOW`8Mg1Cn>`>U_1`VRSPiMAGc=%2Q~qGa44 z^%)Fusnvpm@!S@m*(gVXd(Dh%ckA3CnM(>1(-5&~juTLGm-^a~{2DC({{$mkrwfQ~$akaP#J+v#VI* zSNdaW@pC2wniTX&KIw)lCUv}H>0KZ%U`-Q4-3r=IX=a+ZXW>id%KXqe`nYmvD@0%h zB0_c-XD{>sN2;KLq;~+^aC%VU_X5jSe$T$1#2lR8?VfLWd+1+m&JO%H7SrOnMc@q9iuIHDjJw;+sjK{Rm7^ALT7ZKb1S(hsrZ=u*^YW*hxIH6V4Uf zYS>W5($|TEfb)ev;E`6k^+68uS^Xt?gAW=or?NVmha9$~u!FnnBHei2D&_ot=;Pm1&WS2o=uJ)z_z)2rLTJtEajO@If#1Df3(TR`mhfUIS9)PPtOBg zBiV>lU zHaN}`b=*@E`Jqu#ntE8qes<2T`o8D{lxP;nb|GgZC?@^y%cTOar$`lSdu9hoM6t>J zcs>w?kDJZUv7BR2`ntvMYM892uk$OJhakUe#ZjIuAbhB$UX!a6_Wq9awnk1vl6I)| z7HKm$t7!>K$}~a!+OvvbT^Ndo2^{Am~L@o5=b7!k#B9)!^aS2=|6m$VLF*@~Nk3D(ETn(TeRA2>$6rjdx}yOOy8^hMDy z6)CA4>qnl}L8e?w9Z>%vQ<*~_L~7{OkcuA_aQsVtWR?Kt_sE>GGb*uU?^Ph*H{1`a zO9%*6s8)g;d1{SVH0sNt)de#2m>W8lQBwi+U~4;GxKoUr-V;;0jBTi2P>Yx(KF3l7 zzIcUqIwc^yeB`M7g|Y``AGys!J_3-bBSlz8VJMXqhlPoaUg zN$3Z$3!x+uECr*VwM)i(^C0Av%rApFSk$#YjI?$=$Q^kl)w_=Ge-`^q4@2~k@ljBw zVtF0`eP9ij`FjY{a@R_h?f{jEFCyMpMicohC(|~58D{IpgNKF}K`J-+3L#k|*pD$b zj+He*k%fVbJx2%dd}=&wkc=f#B@TkN(pSdF>+`0U+2xSS*Tp6l;G8 z@9VfH{-kPEq4975e)&&b_>Q^jWvTz97L$;h#>^II$+`^RjtT~g+#ZI*k?hUiB5*%t zZ{u;8wh4TG79MTB5e+KZ2{LJ36Tql8UiP~|I9E>g8A%gk9StciFtjQ_oYn< zcyZH>Ur%3!8*`uRIu{y%)h}*8RkR7_C6ip$k<&7|l#?EK0!y9j*;tD17J}4Sa$%`! zc&`5Zcz=Zk%b4voRlWw#0YkF<=913d+$c0@kkZ^iZBkx;{LYm3b_N@YBs(Xgk=J#rf|PWX!P8E08WKV zjnq6|1=*6BV1fbUH!-QX{S`rf>B6mI5q$fx4=l!WF+g81VI$!l_ft_|P@KSX?C8VzdbN6&bzdoG9o;sIN;Q92n zXFxSk$T&z$j7>=0T!f&X=8U!T*+70hN00n{kb>7*&w^SsC{|&xv%Np1{)9x7Vb0QLij)Z5N6Ef@Sb$*E`~G;Qmq0U|-8F z1;*M}GQ70gf%VSY$75t8&{^IW(Ekz710px-OUfERpyeS8@vUi4xi0fc!lx7(CJeYp zaZmP=*MNTy`HdqS%Ms`Fv3ybMlS4S}M-_HoZ|C(-fvtLGwY)2q$=6)AD#jc`i>$NF z@x4xX%Sq|mG=-nP%A+qVo|aJ8sK|9ptpjtL4QQ8~2014-As6JcFY2h=y@ouMtex6V zB&IWvlsUa^`)U|C%AJNdlat^>zEOVx#SBE2Url_B-@ocoro6`z>O)N6B!@gBI)P(X zM131zxg#cs=;{>I-(vl{k9&`Khj8}<{RI%za6S-`>VY4_d)A`utFYA|f9VI#4O+Iw zM~{T1LiEeOF4uLI;k?+8>0P5m6)^PkubM6D{coA>@VDd7Efc)X%Me=xb-(YjX806Bm3Ciu+Zyuq zu4gIHJ*$Ur`tv)0Iq)o-vf+LH1&Da3{$lv#2xzM82r?f<-e`syf(koEXj0d2PT@)|;=jwgP#A0p&%j$lKBw{Ng3C0AJT>9NYS4A@F|ommhA( zCl_NrTk&*Ss8JRN7Y1=Ap6IP%Pc)0PZk}oW^A`X==xG%zVXC#%n&>BP>foX>Z|bYvS#s% z-0i~W&sXJT%n^5 z5&Vmose?z-Y{HvZ?$qΝ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

huc|*CEGQRU|5yf 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�UmO`U|zv}>CD%E&doTk8Tzd9`v*`a^m`{n^ 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

~mm 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 literal 0 HcmV?d00001 From dc41eed8bcd2dbf9485a5e7803e7a6341533c110 Mon Sep 17 00:00:00 2001 From: Kamlesh Date: Fri, 31 Jan 2025 14:08:04 +0530 Subject: [PATCH 6/9] Addressed review comments --- weather_mv/README.md | 4 +- weather_mv/loader_pipeline/ee.py | 68 +++++++++++++------------ weather_mv/loader_pipeline/ee_test.py | 8 +-- weather_mv/loader_pipeline/util.py | 18 ++++--- weather_mv/loader_pipeline/util_test.py | 2 - 5 files changed, 52 insertions(+), 48 deletions(-) diff --git a/weather_mv/README.md b/weather_mv/README.md index 06f13384..48149528 100644 --- a/weather_mv/README.md +++ b/weather_mv/README.md @@ -410,7 +410,7 @@ _Command options_: * `--use_monitoring_metrics`: A flag that allows you to to add Google Cloud Monitoring metrics to the pipeline. Default: False. * `--partition_dims`: If the dataset contains other dimensions apart from latitude and longitude, partition the dataset into multiple datasets based on these dimensions. A separate COG file will be created for each partition and ingested into Earth Engine. Any unspecified dimensions will be flattened in the resulting COG. * `--asset_name_format`: The asset name format for each partitioned COG file. This should contain the dimensions no other than partition_dims (along with init_time and valid_time). The dimension names should be enclosed in {} (e.g. a valid format is {init_time}_{valid_time}_{number}) -* `--dim_mapping`: A JSON string containing init_time and valid_time as keys and corresponding dimension names for each key. It is required if init_time or valid_time is used in asset_name_format. +* `--forecast_dim_mapping`: A JSON string containing init_time and valid_time as keys and corresponding dimension names for each key. It is required if init_time or valid_time is used in asset_name_format. * `--date_format`: A string containing datetime.strftime codes. It is used if the dimension mentioned in asset_name_format is a datetime. Default: %Y%m%d%H%M Invoke with `ee -h` or `earthengine --help` to see the full range of options. @@ -504,7 +504,7 @@ weather-mv ee --uris "gs://your-bucket/*.grib" \ --asset_location "gs://$BUCKET/assets" \ # Needed to store assets generated from *.grib --ee_asset "projects/$PROJECT/assets/test_dir" \ --partition_dims time step number \ # step is in timedelta - --dim_mapping '{"init_time": "time", "valid_time": "step"}' + --forecast_dim_mapping '{"init_time": "time", "valid_time": "step"}' --asset_name_format "{init_time}_{valid_time}_{number}" --date_format "%Y%m%D" ``` diff --git a/weather_mv/loader_pipeline/ee.py b/weather_mv/loader_pipeline/ee.py index 23f3f8ee..04d5dbfd 100644 --- a/weather_mv/loader_pipeline/ee.py +++ b/weather_mv/loader_pipeline/ee.py @@ -141,30 +141,30 @@ def ee_initialize(use_personal_account: bool = False, ee.Initialize(creds) -def construct_asset_name(attrs, asset_name_format): +def construct_asset_name(attrs: t.Dict, asset_name_format: str) -> str: """Generate asset_name based on the format by using dataset attributes.""" dims = get_dims_from_name_format(asset_name_format) - dim_values = {} + + # Get the init_time and valid_time from normal key and get other dimensions + # values from '_value' keys of attributes. for dim in dims: - # If the dim is init_time or valid_time - if dim in attrs: - dim_values[dim] = attrs[dim] - elif dim + '_value' in attrs: - dim_values[dim] = attrs[dim + '_value'] + dim_values[dim] = attrs[dim + '_value'] if dim + '_value' in attrs else attrs[dim] + asset_name = asset_name_format.format(**dim_values) return asset_name -def add_additional_attrs(ds, dim_mapping, date_format): +def add_additional_attrs(ds: xr.Dataset, forecast_dim_mapping: t.Dict, date_format: str) -> t.Dict: """ - Adds additional attributes (start_time, end_time, forecast_seconds) in the dataset if the dim_mapping is provided. + Adds additional attributes (start_time, end_time, forecast_seconds) in the dataset + if the forecast_dim_mapping is provided. """ attrs = {} - if (dim_mapping['init_time'] not in ds) or (dim_mapping['valid_time'] not in ds): + if (forecast_dim_mapping['init_time'] not in ds) or (forecast_dim_mapping['valid_time'] not in ds): raise ValueError('The dimension passed for init_time/valid_time is not present in dataset.') - init_time_da, valid_time_da = ds[dim_mapping['init_time']], ds[dim_mapping['valid_time']] + init_time_da, valid_time_da = ds[forecast_dim_mapping['init_time']], ds[forecast_dim_mapping['valid_time']] start_time = init_time_da.values if isinstance(valid_time_da.values, np.timedelta64): @@ -184,14 +184,18 @@ def add_additional_attrs(ds, dim_mapping, date_format): return attrs -def partition_dataset(ds, partition_dims, dim_mapping, asset_name_format, date_format): +def partition_dataset(ds: xr.Dataset, + partition_dims: t.List[str], + forecast_dim_mapping: t.Dict, + asset_name_format: str, + date_format: str) -> t.List[xr.Dataset]: """ Partitions a dataset based on the specified dimensions and flattens other dimensions into variable names. Args: ds (xr.Dataset): Input xarray dataset. partition_dims (list): List of dimensions to partition by (e.g., ['time', 'step']). - dim_mapping (dict): Dictionary containing init_time and valid_time as keys. This is used to add + forecast_dim_mapping (dict): Dictionary containing init_time and valid_time as keys. This is used to add start_time, end_time and forecast_seconds attributes in dataset. It also helps to calculate the valid_time if the step value is in timedelta format. asset_name_format (str): Specifies the format for the asset name of resulting COG, @@ -210,17 +214,16 @@ def partition_dataset(ds, partition_dims, dim_mapping, asset_name_format, date_f # Dimensions to flatten (all except latitude, longitude, and partition_dims) to_flatten = [dim for dim in all_dims if dim not in partition_dims + ['latitude', 'longitude']] - # Partition the dataset along the specified dimensions - indices = itertools.product(*[range(ds.sizes[dim]) for dim in partition_dims]) + partition_indices = itertools.product(*[range(ds.sizes[dim]) for dim in partition_dims]) partitioned_datasets = [] - for idx in indices: + for idx in partition_indices: # Partition the dataset based on the partition_dims selector = {dim: idx[i] for i, dim in enumerate(partition_dims)} sliced_ds = ds.isel(selector) # Add attribiutes (init_time, valid_time, forecast_seconds) in dataset - sliced_ds.attrs.update(**add_additional_attrs(sliced_ds, dim_mapping, date_format)) + sliced_ds.attrs.update(**add_additional_attrs(sliced_ds, forecast_dim_mapping, date_format)) # Flatten the remaining dimensions into variable names new_data_vars = {} @@ -395,7 +398,7 @@ class ToEarthEngine(ToDataSink): topic: str partition_dims: list asset_name_format: str - dim_mapping: dict + forecast_dim_mapping: dict date_format: str # Pipeline arguments. job_name: str @@ -458,9 +461,9 @@ def add_parser_arguments(cls, subparser: argparse.ArgumentParser): help='The asset name format for each partitioned COG file.' ' This should contain the dimensions no other than partition_dims' ' (Although you can add init_time and valid_time provided that' - ' you have given dim_mapping). The dimension names should be enclosed in {} ' - '(e.g. a valid format is {init_time}_{valid_time}_{number})') - subparser.add_argument('--dim_mapping', type=json.loads, default=None, + ' you have given forecast_dim_mapping). The dimension names should be' + ' enclosed in {} (e.g. a valid format is {init_time}_{valid_time}_{number})') + subparser.add_argument('--forecast_dim_mapping', type=json.loads, default=None, help='A JSON string containing init_time and valid_time as keys and ' 'corresponding dimension names for each key.' ' It is required if init_time or valid_time is used in asset_name_format.') @@ -525,18 +528,18 @@ def validate_arguments(cls, known_args: argparse.Namespace, pipeline_args: t.Lis if not known_args.partition_dims: if known_args.asset_name_format: raise RuntimeError("asset_name_format can only be specified when partition_dims are passed.") - if known_args.dim_mapping: - raise RuntimeError("dim_mapping can only be specified when partition_dims are passed.") + if known_args.forecast_dim_mapping: + raise RuntimeError("forecast_dim_mapping can only be specified when partition_dims are passed.") - # Check whether dim_mapping contains both init_time and valid_time + # Check whether forecast_dim_mapping contains both init_time and valid_time if ( - known_args.dim_mapping + known_args.forecast_dim_mapping and not ( - 'init_time' in known_args.dim_mapping - and 'valid_time' in known_args.dim_mapping + 'init_time' in known_args.forecast_dim_mapping + and 'valid_time' in known_args.forecast_dim_mapping ) ): - raise RuntimeError('dim_mapping should contain both init_time and valid_time as keys.') + raise RuntimeError('forecast_dim_mapping should contain both init_time and valid_time as keys.') # Perform the checks when partition_dims are specified. if known_args.partition_dims: @@ -553,8 +556,9 @@ def validate_arguments(cls, known_args: argparse.Namespace, pipeline_args: t.Lis raise RuntimeError('Only the dimensions used for partitioning can be used in the asset name.' f'{dim} is not used to partition dataset.') - if ('init_time' in dims or 'valid_time' in dims) and not known_args.dim_mapping: - raise RuntimeError('dim_mapping is required if asset_name_format contains init_time or valid_time.') + if ('init_time' in dims or 'valid_time' in dims) and not known_args.forecast_dim_mapping: + raise RuntimeError('forecast_dim_mapping is required if asset_name_format contains' + ' init_time or valid_time.') logger.info(f"Add metrics to pipeline: {known_args.use_metrics}") logger.info(f"Add Google Cloud Monitoring metrics to pipeline: {known_args.use_monitoring_metrics}") @@ -673,7 +677,7 @@ class ConvertToAsset(beam.DoFn, KwargsFactoryMixin): use_metrics: t.Optional[bool] = False partition_dims: t.Optional[list] = None asset_name_format: t.Optional[str] = None - dim_mapping: t.Optional[t.Dict] = None + forecast_dim_mapping: t.Optional[t.Dict] = None date_format: str = '%Y%m%d%H%M' def add_to_queue(self, queue: Queue, item: t.Any): @@ -706,7 +710,7 @@ def convert_to_asset(self, queue: Queue, uri: str): partitioned_datasets = partition_dataset( dataset, self.partition_dims, - self.dim_mapping, + self.forecast_dim_mapping, self.asset_name_format, self.date_format ) diff --git a/weather_mv/loader_pipeline/ee_test.py b/weather_mv/loader_pipeline/ee_test.py index 0a8758c0..36726e73 100644 --- a/weather_mv/loader_pipeline/ee_test.py +++ b/weather_mv/loader_pipeline/ee_test.py @@ -118,7 +118,7 @@ def test_convert_to_multi_image_asset(self): asset_location=self.tmpdir.name, partition_dims=['time', 'step'], asset_name_format='{init_time}_{valid_time}', - dim_mapping={ + forecast_dim_mapping={ 'init_time': 'time', 'valid_time': 'step' } @@ -135,7 +135,7 @@ class PartitionDatasetTests(TestDataBase): def setUp(self): super().setUp() - self.dim_mapping = { + self.forecast_dim_mapping = { 'init_time': 'time', 'valid_time': 'step' } @@ -145,7 +145,7 @@ def setUp(self): def test_add_additional_attrs(self): sliced_ds = self.ds.isel({'time': 0, 'step': 1}) - attrs = add_additional_attrs(sliced_ds, self.dim_mapping, self.date_format) + attrs = add_additional_attrs(sliced_ds, self.forecast_dim_mapping, self.date_format) attr_names = ['init_time', 'valid_time', 'start_time', 'end_time', 'forecast_seconds'] for name in attr_names: @@ -175,7 +175,7 @@ def test_partition_dataset(self): partition_dims = ['time', 'step'] asset_name_format = '{init_time}_{valid_time}' partition_datasets = partition_dataset( - self.ds, partition_dims, self.dim_mapping, asset_name_format, self.date_format + self.ds, partition_dims, self.forecast_dim_mapping, asset_name_format, self.date_format ) # As the ds partitioned on time(3) and step(3), there should be total 9 datasets diff --git a/weather_mv/loader_pipeline/util.py b/weather_mv/loader_pipeline/util.py index 9beb1d66..744e8a83 100644 --- a/weather_mv/loader_pipeline/util.py +++ b/weather_mv/loader_pipeline/util.py @@ -328,34 +328,36 @@ def validate_region(output_table: t.Optional[str] = None, signal.signal(signal.SIGINT, original_sigtstp_handler) -def get_dims_from_name_format(asset_name_format): +def get_dims_from_name_format(asset_name_format: str) -> t.List[str]: """Returns a list of dimension from the asset name format.""" return [field_name for _, field_name, _, _ in Formatter().parse(asset_name_format) if field_name] -def get_datetime_from(value: np.datetime64): +def get_datetime_from(value: np.datetime64) -> datetime.datetime: return datetime.datetime.fromtimestamp( (value - np.datetime64(0, 's')) // np.timedelta64(1, 's'), datetime.timezone.utc ) -def convert_to_string(value, date_format='%Y%m%d%H%M', make_ee_safe=False): +def convert_to_string(value: t.Any, date_format : str = '%Y%m%d%H%M', make_ee_safe : bool = False): """Converts a given value to string based on the type of value.""" + def _make_ee_safe(str_val: str) -> str: + return re.sub(r'[^a-zA-Z0-9-_]+', r'_', str_val) + str_val = '' if isinstance(value, np.ndarray) and value.size == 1: value = value.item() - if isinstance(value, float): - str_val = str(round(value, 2)) - else: - str_val = str(value) + + if isinstance(value, float): + str_val = str(round(value, 2)) elif isinstance(value, np.datetime64): dt = get_datetime_from(value) str_val = dt.strftime(date_format) else: str_val = str(value) - return re.sub(r'[^a-zA-Z0-9-_]+', r'_', str_val) if make_ee_safe else str_val + return _make_ee_safe(str_val) if make_ee_safe else str_val def _shard(elem, num_shards: int): diff --git a/weather_mv/loader_pipeline/util_test.py b/weather_mv/loader_pipeline/util_test.py index 37f2b578..956769cf 100644 --- a/weather_mv/loader_pipeline/util_test.py +++ b/weather_mv/loader_pipeline/util_test.py @@ -257,12 +257,10 @@ def test_to_json_serializable_type_datetime(self): class ConvertToStringTests(unittest.TestCase): def test_convert_scalar_to_string(self): - self.assertEqual(convert_to_string(np.array(5)), '5') self.assertEqual(convert_to_string(np.array(5.6789)), '5.68') def test_convert_datetime_to_string(self): - value = np.datetime64('2025-01-24T04:05:06') self.assertEqual(convert_to_string(value), '202501240405') self.assertEqual(convert_to_string(value, '%Y/%m/%dT%H:%M:%S'), '2025/01/24T04:05:06') From 51d25b672b0423c0003977823cac15def107b848 Mon Sep 17 00:00:00 2001 From: Kamlesh Date: Tue, 4 Feb 2025 12:36:43 +0530 Subject: [PATCH 7/9] Added review comment fixes --- weather_mv/loader_pipeline/ee.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/weather_mv/loader_pipeline/ee.py b/weather_mv/loader_pipeline/ee.py index 04d5dbfd..ef140e99 100644 --- a/weather_mv/loader_pipeline/ee.py +++ b/weather_mv/loader_pipeline/ee.py @@ -155,7 +155,7 @@ def construct_asset_name(attrs: t.Dict, asset_name_format: str) -> str: return asset_name -def add_additional_attrs(ds: xr.Dataset, forecast_dim_mapping: t.Dict, date_format: str) -> t.Dict: +def add_additional_attrs(ds: xr.Dataset, forecast_dim_mapping: t.Dict[str, str], date_format: str) -> t.Dict: """ Adds additional attributes (start_time, end_time, forecast_seconds) in the dataset if the forecast_dim_mapping is provided. @@ -186,7 +186,7 @@ def add_additional_attrs(ds: xr.Dataset, forecast_dim_mapping: t.Dict, date_form def partition_dataset(ds: xr.Dataset, partition_dims: t.List[str], - forecast_dim_mapping: t.Dict, + forecast_dim_mapping: t.Dict[str, str], asset_name_format: str, date_format: str) -> t.List[xr.Dataset]: """ @@ -396,9 +396,9 @@ class ToEarthEngine(ToDataSink): use_metrics: bool use_monitoring_metrics: bool topic: str - partition_dims: list + partition_dims: t.List[str] asset_name_format: str - forecast_dim_mapping: dict + forecast_dim_mapping: t.Dict[str, str] date_format: str # Pipeline arguments. job_name: str @@ -719,7 +719,7 @@ def convert_to_asset(self, queue: Queue, uri: str): for ds in partitioned_datasets: attrs = ds.attrs data = list(ds.values()) - asset_name = attrs['asset_name'] if 'asset_name' in attrs else get_ee_safe_name(uri) + asset_name = attrs.pop('asset_name') if 'asset_name' in attrs else get_ee_safe_name(uri) channel_names = [ self.band_names_dict.get(da.name, da.name) if self.band_names_dict else da.name for da in data From 62a1302f527e097d94f9befc5958edd519233af5 Mon Sep 17 00:00:00 2001 From: Kamlesh Date: Wed, 5 Feb 2025 17:10:55 +0530 Subject: [PATCH 8/9] Updated validation logic for partition --- weather_mv/loader_pipeline/ee.py | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/weather_mv/loader_pipeline/ee.py b/weather_mv/loader_pipeline/ee.py index ef140e99..809b7c52 100644 --- a/weather_mv/loader_pipeline/ee.py +++ b/weather_mv/loader_pipeline/ee.py @@ -525,11 +525,11 @@ def validate_arguments(cls, known_args: argparse.Namespace, pipeline_args: t.Lis if bool(known_args.initialization_time_regex) ^ bool(known_args.forecast_time_regex): raise RuntimeError("Both --initialization_time_regex & --forecast_time_regex flags need to be present") - if not known_args.partition_dims: - if known_args.asset_name_format: - raise RuntimeError("asset_name_format can only be specified when partition_dims are passed.") - if known_args.forecast_dim_mapping: - raise RuntimeError("forecast_dim_mapping can only be specified when partition_dims are passed.") + if bool(known_args.partition_dims) ^ bool(known_args.asset_name_format): + raise RuntimeError("Both --partition_dims & --asset_name_format flags need to be present") + + if not known_args.partition_dims and bool(known_args.forecast_dim_mapping): + raise RuntimeError("forecast_dim_mapping can only be specified when partition_dims are passed.") # Check whether forecast_dim_mapping contains both init_time and valid_time if ( @@ -542,11 +542,8 @@ def validate_arguments(cls, known_args: argparse.Namespace, pipeline_args: t.Lis raise RuntimeError('forecast_dim_mapping should contain both init_time and valid_time as keys.') # Perform the checks when partition_dims are specified. - if known_args.partition_dims: - if not known_args.asset_name_format: - raise RuntimeError('asset_name_format is required when specifying partition_dims.') - if known_args.ee_asset_type != "IMAGE": - raise RuntimeError('partition_dims should be specified for "IMAGE" asset_type only.') + if known_args.partition_dims and known_args.ee_asset_type != "IMAGE": + raise RuntimeError('partition_dims should be specified for "IMAGE" asset_type only.') # Check whether the asset name format contains valid dimensions. if known_args.asset_name_format: @@ -556,9 +553,10 @@ def validate_arguments(cls, known_args: argparse.Namespace, pipeline_args: t.Lis raise RuntimeError('Only the dimensions used for partitioning can be used in the asset name.' f'{dim} is not used to partition dataset.') - if ('init_time' in dims or 'valid_time' in dims) and not known_args.forecast_dim_mapping: - raise RuntimeError('forecast_dim_mapping is required if asset_name_format contains' - ' init_time or valid_time.') + if ('init_time' in dims or 'valid_time' in dims) ^ bool(known_args.forecast_dim_mapping): + raise RuntimeError('If asset_name_format contains init_time or valid_time, then forecast_dim_mapping' + 'is required. Conversely, if forecast_dim_mapping is provided, asset_name_format ' + 'must include either init_time or valid_time or both.') logger.info(f"Add metrics to pipeline: {known_args.use_metrics}") logger.info(f"Add Google Cloud Monitoring metrics to pipeline: {known_args.use_monitoring_metrics}") From 3f681da3a208275edbf1d55bb95d1ed7fba86400 Mon Sep 17 00:00:00 2001 From: Kamlesh Date: Mon, 10 Feb 2025 15:44:59 +0530 Subject: [PATCH 9/9] Fixed spelling mistake --- weather_mv/loader_pipeline/ee.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/weather_mv/loader_pipeline/ee.py b/weather_mv/loader_pipeline/ee.py index 809b7c52..a2b7c234 100644 --- a/weather_mv/loader_pipeline/ee.py +++ b/weather_mv/loader_pipeline/ee.py @@ -222,7 +222,7 @@ def partition_dataset(ds: xr.Dataset, selector = {dim: idx[i] for i, dim in enumerate(partition_dims)} sliced_ds = ds.isel(selector) - # Add attribiutes (init_time, valid_time, forecast_seconds) in dataset + # Add attributes (init_time, valid_time, forecast_seconds) in dataset sliced_ds.attrs.update(**add_additional_attrs(sliced_ds, forecast_dim_mapping, date_format)) # Flatten the remaining dimensions into variable names