From 00c8606ecf3786f9ac8f9b47d38d4290e9efc006 Mon Sep 17 00:00:00 2001 From: Nadia Yakimakha <32335935+nadiaya@users.noreply.github.com> Date: Thu, 12 Mar 2020 12:13:31 -0700 Subject: [PATCH 01/15] infra: refactor toolkit tests. --- test-toolkit/buildspec-toolkit.yml | 93 +++++++++++++++ test-toolkit/conftest.py | 112 +++++++++++------- test-toolkit/docker/1.4.0/Dockerfile.dlc.cpu | 10 ++ test-toolkit/docker/1.4.0/Dockerfile.dlc.gpu | 10 ++ test-toolkit/docker/1.4.0/Dockerfile.pytorch | 32 +++++ .../integration/local/test_serving.py | 23 ++-- .../integration/sagemaker/test_mnist.py | 16 +-- test-toolkit/resources/local_mode_lock | 0 test-toolkit/resources/mnist/mnist.py | 4 - .../resources/mnist/model_cpu/1d/model.pth | Bin 0 -> 88460 bytes .../resources/mnist/model_cpu/mnist.py | 2 +- .../resources/mnist/model_cpu/model.pth | Bin 0 -> 88353 bytes .../resources/mnist/model_gpu/mnist.py | 4 - test-toolkit/utils/__init__.py | 2 +- test-toolkit/utils/image_utils.py | 42 +++---- test-toolkit/utils/local_mode_utils.py | 2 +- 16 files changed, 257 insertions(+), 95 deletions(-) create mode 100644 test-toolkit/buildspec-toolkit.yml create mode 100644 test-toolkit/docker/1.4.0/Dockerfile.dlc.cpu create mode 100644 test-toolkit/docker/1.4.0/Dockerfile.dlc.gpu create mode 100644 test-toolkit/docker/1.4.0/Dockerfile.pytorch create mode 100644 test-toolkit/resources/local_mode_lock create mode 100644 test-toolkit/resources/mnist/model_cpu/1d/model.pth create mode 100644 test-toolkit/resources/mnist/model_cpu/model.pth diff --git a/test-toolkit/buildspec-toolkit.yml b/test-toolkit/buildspec-toolkit.yml new file mode 100644 index 00000000..f6cedff8 --- /dev/null +++ b/test-toolkit/buildspec-toolkit.yml @@ -0,0 +1,93 @@ +version: 0.2 + +env: + variables: + FRAMEWORK_VERSION: '1.4.0' + CPU_INSTANCE_TYPE: 'ml.c4.xlarge' + GPU_INSTANCE_TYPE: 'ml.p2.xlarge' + ECR_REPO: 'sagemaker-test' + GITHUB_REPO: 'sagemaker-pytorch-container' + DLC_ACCOUNT: '763104351884' + SETUP_FILE: 'setup_cmds.sh' + SETUP_CMDS: '#!/bin/bash\npip install --upgrade pip\npip install -U -e .\npip install -U -e .[test]' + +phases: + pre_build: + commands: + - start-dockerd + - ACCOUNT=$(aws --region $AWS_DEFAULT_REGION sts --endpoint-url https://sts.$AWS_DEFAULT_REGION.amazonaws.com get-caller-identity --query 'Account' --output text) + - PREPROD_IMAGE="$ACCOUNT.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$ECR_REPO" + - PR_NUM=$(echo $CODEBUILD_SOURCE_VERSION | grep -o '[0-9]\+') + - BUILD_ID="$(echo $CODEBUILD_BUILD_ID | sed -e 's/:/-/g')" + - echo 'Pull request number:' $PR_NUM '. No value means this build is not from pull request.' + + build: + commands: + - TOX_PARALLEL_NO_SPINNER=1 + - PY_COLORS=0 + + # install + - pip3 install -U -e .[test] + + # run linters + - tox -e flake8,twine + + # run unit tests + - tox -e py36,py27 test-toolkit/unit + + # define tags + - GENERIC_TAG="$FRAMEWORK_VERSION-pytorch-$BUILD_ID" + - DLC_CPU_TAG="$FRAMEWORK_VERSION-dlc-cpu-$BUILD_ID" + - DLC_GPU_TAG="$FRAMEWORK_VERSION-dlc-gpu-$BUILD_ID" + + # run local CPU integration tests (build and push the image to ECR repo) + - test_cmd="pytest test-toolkit/integration/local --build-image --push-image --dockerfile-type pytorch --region $AWS_DEFAULT_REGION --docker-base-name $ECR_REPO --aws-id $ACCOUNT --framework-version $FRAMEWORK_VERSION --processor cpu --tag $GENERIC_TAG" + - execute-command-if-has-matching-changes "$test_cmd" "test-toolkit/" "src/*.py" "setup.py" "setup.cfg" "buildspec-toolkit.yml" "docker/build_artifacts/*" + - test_cmd="pytest test-toolkit/integration/local --build-image --push-image --dockerfile-type dlc.cpu --region $AWS_DEFAULT_REGION --docker-base-name $ECR_REPO --aws-id $ACCOUNT --framework-version $FRAMEWORK_VERSION --processor cpu --tag $DLC_CPU_TAG" + - execute-command-if-has-matching-changes "$test_cmd" "test-toolkit/" "src/*.py" "setup.py" "setup.cfg" "buildspec-toolkit.yml" "docker/build_artifacts/*" + + # launch remote GPU instance + - prefix='ml.' + - instance_type=${GPU_INSTANCE_TYPE#"$prefix"} + - create-key-pair + - launch-ec2-instance --instance-type $instance_type --ami-name dlami-ubuntu-latest + + # build DLC GPU image because the base DLC image is too big and takes too long to build as part of the test + - python3 setup.py sdist + - build_dir="test-toolkit/docker/$FRAMEWORK_VERSION" + - $(aws ecr get-login --registry-ids $DLC_ACCOUNT --no-include-email --region $AWS_DEFAULT_REGION) + - docker build -f "$build_dir/Dockerfile.dlc.gpu" -t $PREPROD_IMAGE:$DLC_GPU_TAG --build-arg region=$AWS_DEFAULT_REGION . + # push DLC GPU image to ECR + - $(aws ecr get-login --registry-ids $ACCOUNT --no-include-email --region $AWS_DEFAULT_REGION) + - docker push $PREPROD_IMAGE:$DLC_GPU_TAG + + # run GPU local integration tests + - printf "$SETUP_CMDS" > $SETUP_FILE + # no reason to rebuild the image again since it was already built and pushed to ECR during CPU tests + - generic_cmd="pytest test-toolkit/integration/local --region $AWS_DEFAULT_REGION --docker-base-name $ECR_REPO --aws-id $ACCOUNT --framework-version $FRAMEWORK_VERSION --processor gpu --tag $GENERIC_TAG" + - test_cmd="remote-test --github-repo $GITHUB_REPO --test-cmd \"$generic_cmd\" --setup-file $SETUP_FILE --pr-number \"$PR_NUM\"" + - execute-command-if-has-matching-changes "$test_cmd" "test-toolkit/" "src/*.py" "setup.py" "setup.cfg" "buildspec-toolkit.yml" "docker/build_artifacts/*" + - dlc_cmd="pytest test-toolkit/integration/local --region $AWS_DEFAULT_REGION --docker-base-name $ECR_REPO --aws-id $ACCOUNT --framework-version $FRAMEWORK_VERSION --processor gpu --tag $DLC_GPU_TAG" + - test_cmd="remote-test --github-repo $GITHUB_REPO --test-cmd \"$dlc_cmd\" --setup-file $SETUP_FILE --pr-number \"$PR_NUM\" --skip-setup" + - execute-command-if-has-matching-changes "$test_cmd" "test-toolkit/" "src/*.py" "setup.py" "setup.cfg" "buildspec-toolkit.yml" "docker/build_artifacts/*" + + # run CPU sagemaker integration tests + - test_cmd="pytest test-toolkit/integration/sagemaker --region $AWS_DEFAULT_REGION --docker-base-name $ECR_REPO --aws-id $ACCOUNT --framework-version $FRAMEWORK_VERSION --processor cpu --instance-type $CPU_INSTANCE_TYPE --tag $GENERIC_TAG" + - execute-command-if-has-matching-changes "$test_cmd" "test-toolkit/" "src/*.py" "setup.py" "setup.cfg" "buildspec-toolkit.yml" "docker/build_artifacts/*" + - test_cmd="pytest test-toolkit/integration/sagemaker --region $AWS_DEFAULT_REGION --docker-base-name $ECR_REPO --aws-id $ACCOUNT --framework-version $FRAMEWORK_VERSION --processor cpu --instance-type $CPU_INSTANCE_TYPE --tag $DLC_CPU_TAG" + - execute-command-if-has-matching-changes "$test_cmd" "test-toolkit/" "src/*.py" "setup.py" "setup.cfg" "buildspec-toolkit.yml" "docker/build_artifacts/*" + + # run GPU sagemaker integration tests + - test_cmd="pytest test-toolkit/integration/sagemaker --region $AWS_DEFAULT_REGION --docker-base-name $ECR_REPO --aws-id $ACCOUNT --framework-version $FRAMEWORK_VERSION --processor gpu --instance-type $GPU_INSTANCE_TYPE --tag $GENERIC_TAG" + - execute-command-if-has-matching-changes "$test_cmd" "test-toolkit/" "src/*.py" "setup.py" "setup.cfg" "buildspec-toolkit.yml" "docker/build_artifacts/*" + - test_cmd="pytest test-toolkit/integration/sagemaker --region $AWS_DEFAULT_REGION --docker-base-name $ECR_REPO --aws-id $ACCOUNT --framework-version $FRAMEWORK_VERSION --processor gpu --instance-type $GPU_INSTANCE_TYPE --tag $DLC_GPU_TAG" + - execute-command-if-has-matching-changes "$test_cmd" "test-toolkit/" "src/*.py" "setup.py" "setup.cfg" "buildspec-toolkit.yml" "docker/build_artifacts/*" + finally: + # shut down remote GPU instance + - cleanup-gpu-instances + - cleanup-key-pairs + + # remove ECR image + - aws ecr batch-delete-image --repository-name $ECR_REPO --region $AWS_DEFAULT_REGION --image-ids imageTag=$GENERIC_TAG + - aws ecr batch-delete-image --repository-name $ECR_REPO --region $AWS_DEFAULT_REGION --image-ids imageTag=$DLC_CPU_TAG + - aws ecr batch-delete-image --repository-name $ECR_REPO --region $AWS_DEFAULT_REGION --image-ids imageTag=$DLC_GPU_TAG diff --git a/test-toolkit/conftest.py b/test-toolkit/conftest.py index 0fe0dcdc..13e28de3 100644 --- a/test-toolkit/conftest.py +++ b/test-toolkit/conftest.py @@ -1,4 +1,4 @@ -# Copyright 2019-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"). You # may not use this file except in compliance with the License. A copy of @@ -22,9 +22,8 @@ import tempfile from sagemaker import LocalSession, Session -from sagemaker.pytorch import PyTorch -from test.utils import image_utils +from utils import image_utils logger = logging.getLogger(__name__) logging.getLogger('boto').setLevel(logging.INFO) @@ -44,19 +43,33 @@ def pytest_addoption(parser): - parser.addoption('--build-image', '-D', action='store_true') - parser.addoption('--build-base-image', '-B', action='store_true') - parser.addoption('--aws-id') + parser.addoption('--build-image', '-B', action='store_true') + parser.addoption('--push-image', '-P', action='store_true') + parser.addoption('--dockerfile-type', '-T', choices=['dlc.cpu', 'dlc.gpu', 'pytorch'], + default='pytorch') + parser.addoption('--dockerfile', '-D', default=None) + parser.addoption('--aws-id', default=None) parser.addoption('--instance-type') - parser.addoption('--docker-base-name', default='pytorch') + parser.addoption('--docker-base-name', default='sagemaker-pytorch-training') parser.addoption('--region', default='us-west-2') - parser.addoption('--framework-version', default=PyTorch.LATEST_VERSION) + parser.addoption('--framework-version', default="1.4.0") parser.addoption('--py-version', choices=['2', '3'], default=str(sys.version_info.major)) parser.addoption('--processor', choices=['gpu', 'cpu'], default='cpu') # If not specified, will default to {framework-version}-{processor}-py{py-version} parser.addoption('--tag', default=None) +@pytest.fixture(scope='session', name='dockerfile_type') +def fixture_dockerfile_type(request): + return request.config.getoption('--dockerfile-type') + + +@pytest.fixture(scope='session', name='dockerfile') +def fixture_dockerfile(request, dockerfile_type): + dockerfile = request.config.getoption('--dockerfile') + return dockerfile if dockerfile else 'Dockerfile.{}'.format(dockerfile_type) + + @pytest.fixture(scope='session', name='docker_base_name') def fixture_docker_base_name(request): return request.config.getoption('--docker-base-name') @@ -89,11 +102,6 @@ def fixture_tag(request, framework_version, processor, py_version): return provided_tag if provided_tag else default_tag -@pytest.fixture(scope='session', name='docker_image') -def fixture_docker_image(docker_base_name, tag): - return '{}:{}'.format(docker_base_name, tag) - - @pytest.fixture def opt_ml(): tmp = tempfile.mkdtemp() @@ -112,32 +120,25 @@ def fixture_use_gpu(processor): return processor == 'gpu' -@pytest.fixture(scope='session', name='build_base_image', autouse=True) -def fixture_build_base_image(request, framework_version, py_version, processor, tag, docker_base_name): - build_base_image = request.config.getoption('--build-base-image') - if build_base_image: - return image_utils.build_base_image(framework_name=docker_base_name, - framework_version=framework_version, - py_version=py_version, - base_image_tag=tag, - processor=processor, - cwd=os.path.join(dir_path, '..')) - - return tag - - @pytest.fixture(scope='session', name='build_image', autouse=True) -def fixture_build_image(request, framework_version, py_version, processor, tag, docker_base_name): +def fixture_build_image(request, framework_version, dockerfile, image_uri, region): build_image = request.config.getoption('--build-image') if build_image: - return image_utils.build_image(framework_name=docker_base_name, - framework_version=framework_version, - py_version=py_version, - processor=processor, - tag=tag, + return image_utils.build_image(framework_version=framework_version, + dockerfile=dockerfile, + image_uri=image_uri, + region=region, cwd=os.path.join(dir_path, '..')) - return tag + return image_uri + + +@pytest.fixture(scope='session', name='push_image', autouse=True) +def fixture_push_image(request, image_uri, region, aws_id): + push_image = request.config.getoption('--push-image') + if push_image: + return image_utils.push_image(image_uri, region, aws_id) + return None @pytest.fixture(scope='session', name='sagemaker_session') @@ -164,12 +165,24 @@ def fixture_instance_type(request, processor): @pytest.fixture(name='docker_registry', scope='session') def fixture_docker_registry(aws_id, region): - return '{}.dkr.ecr.{}.amazonaws.com'.format(aws_id, region) + return '{}.dkr.ecr.{}.amazonaws.com'.format(aws_id, region) if aws_id else None -@pytest.fixture(name='ecr_image', scope='session') -def fixture_ecr_image(docker_registry, docker_base_name, tag): - return '{}/{}:{}'.format(docker_registry, docker_base_name, tag) +@pytest.fixture(name='image_uri', scope='session') +def fixture_image_uri(docker_registry, docker_base_name, tag): + if docker_registry: + return '{}/{}:{}'.format(docker_registry, docker_base_name, tag) + return '{}:{}'.format(docker_base_name, tag) + + +@pytest.fixture(scope='session', name='dist_cpu_backend', params=['gloo']) +def fixture_dist_cpu_backend(request): + return request.param + + +@pytest.fixture(scope='session', name='dist_gpu_backend', params=['gloo', 'nccl']) +def fixture_dist_gpu_backend(request): + return request.param @pytest.fixture(autouse=True) @@ -182,12 +195,31 @@ def skip_by_device_type(request, use_gpu, instance_type): @pytest.fixture(autouse=True) def skip_by_py_version(request, py_version): + """ + This will cause tests to be skipped w/ py3 containers if "py-version" flag is not set + and pytest is running from py2. We can rely on this when py2 is deprecated, but for now + we must use "skip_py2_containers" + """ if request.node.get_closest_marker('skip_py2') and py_version != 'py3': pytest.skip('Skipping the test because Python 2 is not supported.') +@pytest.fixture(autouse=True) +def skip_test_in_region(request, region): + if request.node.get_closest_marker('skip_test_in_region'): + if region == 'me-south-1': + pytest.skip('Skipping SageMaker test in region {}'.format(region)) + + @pytest.fixture(autouse=True) def skip_gpu_instance_restricted_regions(region, instance_type): - if (region in NO_P2_REGIONS and instance_type.startswith('ml.p2')) \ - or (region in NO_P3_REGIONS and instance_type.startswith('ml.p3')): + if ((region in NO_P2_REGIONS and instance_type.startswith('ml.p2')) + or (region in NO_P3_REGIONS and instance_type.startswith('ml.p3'))): pytest.skip('Skipping GPU test in region {}'.format(region)) + + +@pytest.fixture(autouse=True) +def skip_py2_containers(request, tag): + if request.node.get_closest_marker('skip_py2_containers'): + if 'py2' in tag: + pytest.skip('Skipping python2 container with tag {}'.format(tag)) diff --git a/test-toolkit/docker/1.4.0/Dockerfile.dlc.cpu b/test-toolkit/docker/1.4.0/Dockerfile.dlc.cpu new file mode 100644 index 00000000..6a8d5552 --- /dev/null +++ b/test-toolkit/docker/1.4.0/Dockerfile.dlc.cpu @@ -0,0 +1,10 @@ +ARG region +from 763104351884.dkr.ecr.$region.amazonaws.com/pytorch-inference:1.4.0-cpu-py3 + +COPY docker/build_artifacts/changehostname.c / +COPY docker/build_artifacts/start_with_right_hostname.sh /usr/local/bin/start_with_right_hostname.sh +RUN chmod +x /usr/local/bin/start_with_right_hostname.sh + +COPY dist/sagemaker_pytorch_inference-*.tar.gz /sagemaker_pytorch_inference.tar.gz +RUN pip install --upgrade --no-cache-dir /sagemaker_pytorch_inference.tar.gz && \ + rm /sagemaker_pytorch_inference.tar.gz diff --git a/test-toolkit/docker/1.4.0/Dockerfile.dlc.gpu b/test-toolkit/docker/1.4.0/Dockerfile.dlc.gpu new file mode 100644 index 00000000..9e3682ec --- /dev/null +++ b/test-toolkit/docker/1.4.0/Dockerfile.dlc.gpu @@ -0,0 +1,10 @@ +ARG region +from 763104351884.dkr.ecr.$region.amazonaws.com/pytorch-inference:1.4.0-gpu-py3 + +COPY docker/build_artifacts/changehostname.c / +COPY docker/build_artifacts/start_with_right_hostname.sh /usr/local/bin/start_with_right_hostname.sh +RUN chmod +x /usr/local/bin/start_with_right_hostname.sh + +COPY dist/sagemaker_pytorch_inference-*.tar.gz /sagemaker_pytorch_inference.tar.gz +RUN pip install --upgrade --no-cache-dir /sagemaker_pytorch_inference.tar.gz && \ + rm /sagemaker_pytorch_inference.tar.gz diff --git a/test-toolkit/docker/1.4.0/Dockerfile.pytorch b/test-toolkit/docker/1.4.0/Dockerfile.pytorch new file mode 100644 index 00000000..be522a36 --- /dev/null +++ b/test-toolkit/docker/1.4.0/Dockerfile.pytorch @@ -0,0 +1,32 @@ +from pytorch/pytorch:1.4-cuda10.1-cudnn7-runtime + +ARG MMS_VERSION=1.0.8 + +ENV SAGEMAKER_SERVING_MODULE sagemaker_pytorch_serving_container.serving:main +ENV TEMP=/home/model-server/tmp + +RUN apt-get update \ + && apt-get install -y --no-install-recommends jq openjdk-8-jdk-headless \ + && rm -rf /var/lib/apt/lists/* + +COPY docker/build_artifacts/changehostname.c / +COPY docker/build_artifacts/start_with_right_hostname.sh /usr/local/bin/start_with_right_hostname.sh +RUN chmod +x /usr/local/bin/start_with_right_hostname.sh + +COPY dist/sagemaker_pytorch_inference-*.tar.gz /sagemaker_pytorch_inference.tar.gz +RUN pip install --no-cache-dir mxnet-model-server==$MMS_VERSION \ + /sagemaker_pytorch_inference.tar.gz && \ + rm /sagemaker_pytorch_inference.tar.gz + +RUN useradd -m model-server \ + && mkdir -p /home/model-server/tmp \ + && chown -R model-server /home/model-server + +COPY mms-entrypoint.py /usr/local/bin/dockerd-entrypoint.py +COPY config.properties /home/model-server + +RUN chmod +x /usr/local/bin/dockerd-entrypoint.py + +EXPOSE 8080 8081 +ENTRYPOINT ["python", "/usr/local/bin/dockerd-entrypoint.py"] +CMD ["mxnet-model-server", "--start", "--mms-config", "/home/model-server/config.properties"] diff --git a/test-toolkit/integration/local/test_serving.py b/test-toolkit/integration/local/test_serving.py index 5c018958..10d221a9 100644 --- a/test-toolkit/integration/local/test_serving.py +++ b/test-toolkit/integration/local/test_serving.py @@ -25,9 +25,9 @@ from sagemaker_containers.beta.framework import content_types from torchvision import datasets, transforms -from test.integration import training_dir, mnist_script, mnist_1d_script, model_cpu_dir, \ +from integration import training_dir, mnist_script, mnist_1d_script, model_cpu_dir, \ model_gpu_dir, model_cpu_1d_dir, call_model_fn_once_script, ROLE -from test.utils import local_mode_utils +from utils import local_mode_utils CONTENT_TYPE_TO_SERIALIZER_MAP = { content_types.CSV: csv_serializer, @@ -48,31 +48,34 @@ def fixture_test_loader(): return _get_test_data_loader(batch_size=300) -def test_serve_json_npy(test_loader, use_gpu, docker_image, sagemaker_local_session, instance_type): +def test_serve_json_npy(test_loader, use_gpu, image_uri, sagemaker_local_session, instance_type): model_dir = model_gpu_dir if use_gpu else model_cpu_dir - with _predictor(model_dir, mnist_script, docker_image, sagemaker_local_session, + with _predictor(model_dir, mnist_script, image_uri, sagemaker_local_session, instance_type) as predictor: for content_type in (content_types.JSON, content_types.NPY): for accept in (content_types.JSON, content_types.CSV, content_types.NPY): + print("") + print("{}-{}/n".format(content_type, accept)) + print("") _assert_prediction_npy_json(predictor, test_loader, content_type, accept) -def test_serve_csv(test_loader, use_gpu, docker_image, sagemaker_local_session, instance_type): - with _predictor(model_cpu_1d_dir, mnist_1d_script, docker_image, sagemaker_local_session, +def test_serve_csv(test_loader, use_gpu, image_uri, sagemaker_local_session, instance_type): + with _predictor(model_cpu_1d_dir, mnist_1d_script, image_uri, sagemaker_local_session, instance_type) as predictor: for accept in (content_types.JSON, content_types.CSV, content_types.NPY): _assert_prediction_csv(predictor, test_loader, accept) @pytest.mark.skip_cpu -def test_serve_cpu_model_on_gpu(test_loader, docker_image, sagemaker_local_session, instance_type): - with _predictor(model_cpu_1d_dir, mnist_1d_script, docker_image, sagemaker_local_session, +def test_serve_cpu_model_on_gpu(test_loader, image_uri, sagemaker_local_session, instance_type): + with _predictor(model_cpu_1d_dir, mnist_1d_script, image_uri, sagemaker_local_session, instance_type) as predictor: _assert_prediction_npy_json(predictor, test_loader, content_types.NPY, content_types.JSON) -def test_serving_calls_model_fn_once(docker_image, sagemaker_local_session, instance_type): - with _predictor(model_cpu_dir, call_model_fn_once_script, docker_image, sagemaker_local_session, +def test_serving_calls_model_fn_once(image_uri, sagemaker_local_session, instance_type): + with _predictor(model_cpu_dir, call_model_fn_once_script, image_uri, sagemaker_local_session, instance_type, model_server_workers=2) as predictor: predictor.accept = None predictor.deserializer = BytesDeserializer() diff --git a/test-toolkit/integration/sagemaker/test_mnist.py b/test-toolkit/integration/sagemaker/test_mnist.py index 4bcc0638..d8339c72 100644 --- a/test-toolkit/integration/sagemaker/test_mnist.py +++ b/test-toolkit/integration/sagemaker/test_mnist.py @@ -19,23 +19,23 @@ import sagemaker from sagemaker.pytorch import PyTorchModel -from test.integration import mnist_script, model_cpu_dir -from test.integration.sagemaker.timeout import timeout_and_delete_endpoint +from integration import mnist_script, model_cpu_dir +from integration.sagemaker.timeout import timeout_and_delete_endpoint @pytest.mark.skip_gpu -def test_mnist_distributed_cpu(sagemaker_session, ecr_image, instance_type): +def test_mnist_distributed_cpu(sagemaker_session, image_uri, instance_type): instance_type = instance_type or 'ml.c4.xlarge' - _test_mnist_distributed(sagemaker_session, ecr_image, instance_type) + _test_mnist_distributed(sagemaker_session, image_uri, instance_type) @pytest.mark.skip_cpu -def test_mnist_distributed_gpu(sagemaker_session, ecr_image, instance_type): +def test_mnist_distributed_gpu(sagemaker_session, image_uri, instance_type): instance_type = instance_type or 'ml.p2.xlarge' - _test_mnist_distributed(sagemaker_session, ecr_image, instance_type) + _test_mnist_distributed(sagemaker_session, image_uri, instance_type) -def _test_mnist_distributed(sagemaker_session, ecr_image, instance_type): +def _test_mnist_distributed(sagemaker_session, image_uri, instance_type): model_dir = os.path.join(model_cpu_dir, 'model_mnist.tar.gz') endpoint_name = sagemaker.utils.unique_name_from_base("sagemaker-pytorch-serving") @@ -48,7 +48,7 @@ def _test_mnist_distributed(sagemaker_session, ecr_image, instance_type): pytorch = PyTorchModel(model_data, 'SageMakerRole', mnist_script, - image=ecr_image, + image=image_uri, sagemaker_session=sagemaker_session) with timeout_and_delete_endpoint(endpoint_name, sagemaker_session, minutes=30): diff --git a/test-toolkit/resources/local_mode_lock b/test-toolkit/resources/local_mode_lock new file mode 100644 index 00000000..e69de29b diff --git a/test-toolkit/resources/mnist/mnist.py b/test-toolkit/resources/mnist/mnist.py index 5d50b30a..6b1fc50e 100644 --- a/test-toolkit/resources/mnist/mnist.py +++ b/test-toolkit/resources/mnist/mnist.py @@ -16,7 +16,6 @@ import os import sys -import cv2 as cv import sagemaker_containers import torch import torch.distributed as dist @@ -191,9 +190,6 @@ def save_model(model, model_dir): if __name__ == '__main__': - # test opencv - print(cv.__version__) - parser = argparse.ArgumentParser() # Data and model checkpoints directories diff --git a/test-toolkit/resources/mnist/model_cpu/1d/model.pth b/test-toolkit/resources/mnist/model_cpu/1d/model.pth new file mode 100644 index 0000000000000000000000000000000000000000..126a0093c7e60878dac6b92eeaf9696248ca4ec3 GIT binary patch literal 88460 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 Trb(b_SO8qObe>7>ma+c$ literal 0 HcmV?d00001 diff --git a/test-toolkit/resources/mnist/model_cpu/mnist.py b/test-toolkit/resources/mnist/model_cpu/mnist.py index 5d50b30a..779c46ff 100644 --- a/test-toolkit/resources/mnist/model_cpu/mnist.py +++ b/test-toolkit/resources/mnist/model_cpu/mnist.py @@ -1,4 +1,4 @@ -# Copyright 2019-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"). You # may not use this file except in compliance with the License. A copy of diff --git a/test-toolkit/resources/mnist/model_cpu/model.pth b/test-toolkit/resources/mnist/model_cpu/model.pth new file mode 100644 index 0000000000000000000000000000000000000000..393ea140287b5ae0f37c75916c30b0a767cdacc3 GIT binary patch literal 88353 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 Rfv*}@!M#=f;yqcF Date: Thu, 12 Mar 2020 19:32:18 -0700 Subject: [PATCH 02/15] fix generic docker file. --- test-toolkit/docker/1.4.0/Dockerfile.pytorch | 25 +++++++++++++------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/test-toolkit/docker/1.4.0/Dockerfile.pytorch b/test-toolkit/docker/1.4.0/Dockerfile.pytorch index be522a36..62b2346d 100644 --- a/test-toolkit/docker/1.4.0/Dockerfile.pytorch +++ b/test-toolkit/docker/1.4.0/Dockerfile.pytorch @@ -1,29 +1,38 @@ from pytorch/pytorch:1.4-cuda10.1-cudnn7-runtime +LABEL com.amazonaws.sagemaker.capabilities.accept-bind-to-port=true +LABEL com.amazonaws.sagemaker.capabilities.multi-models=true + ARG MMS_VERSION=1.0.8 ENV SAGEMAKER_SERVING_MODULE sagemaker_pytorch_serving_container.serving:main ENV TEMP=/home/model-server/tmp RUN apt-get update \ - && apt-get install -y --no-install-recommends jq openjdk-8-jdk-headless \ + && apt-get install -y --no-install-recommends \ + libgl1-mesa-glx \ + libglib2.0-0 \ + libsm6 \ + libxext6 \ + libxrender-dev \ + openjdk-8-jdk-headless \ && rm -rf /var/lib/apt/lists/* -COPY docker/build_artifacts/changehostname.c / -COPY docker/build_artifacts/start_with_right_hostname.sh /usr/local/bin/start_with_right_hostname.sh -RUN chmod +x /usr/local/bin/start_with_right_hostname.sh +RUN conda install -c conda-forge opencv==4.0.1 \ + && ln -s /opt/conda/bin/pip /usr/local/bin/pip3 + +RUN pip install mxnet-model-server==$MMS_VERSION COPY dist/sagemaker_pytorch_inference-*.tar.gz /sagemaker_pytorch_inference.tar.gz -RUN pip install --no-cache-dir mxnet-model-server==$MMS_VERSION \ - /sagemaker_pytorch_inference.tar.gz && \ +RUN pip install --no-cache-dir /sagemaker_pytorch_inference.tar.gz && \ rm /sagemaker_pytorch_inference.tar.gz RUN useradd -m model-server \ && mkdir -p /home/model-server/tmp \ && chown -R model-server /home/model-server -COPY mms-entrypoint.py /usr/local/bin/dockerd-entrypoint.py -COPY config.properties /home/model-server +COPY docker/build_artifacts/mms-entrypoint.py /usr/local/bin/dockerd-entrypoint.py +COPY docker/build_artifacts/config.properties /home/model-server RUN chmod +x /usr/local/bin/dockerd-entrypoint.py From 9269730cb71da3708d0779917b7373fee149ba8e Mon Sep 17 00:00:00 2001 From: Nadia Yakimakha <32335935+nadiaya@users.noreply.github.com> Date: Thu, 12 Mar 2020 19:40:52 -0700 Subject: [PATCH 03/15] Move buildspec back. --- test-toolkit/buildspec-toolkit.yml => buildspec-toolkit.yml | 0 test-toolkit/docker/1.4.0/Dockerfile.pytorch | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename test-toolkit/buildspec-toolkit.yml => buildspec-toolkit.yml (100%) diff --git a/test-toolkit/buildspec-toolkit.yml b/buildspec-toolkit.yml similarity index 100% rename from test-toolkit/buildspec-toolkit.yml rename to buildspec-toolkit.yml diff --git a/test-toolkit/docker/1.4.0/Dockerfile.pytorch b/test-toolkit/docker/1.4.0/Dockerfile.pytorch index 62b2346d..843d515b 100644 --- a/test-toolkit/docker/1.4.0/Dockerfile.pytorch +++ b/test-toolkit/docker/1.4.0/Dockerfile.pytorch @@ -15,7 +15,7 @@ RUN apt-get update \ libsm6 \ libxext6 \ libxrender-dev \ - openjdk-8-jdk-headless \ + openjdk-8-jdk1-headless \ && rm -rf /var/lib/apt/lists/* RUN conda install -c conda-forge opencv==4.0.1 \ From 71ec190d94e6cc5d9e550cdff6874c81ae0738bc Mon Sep 17 00:00:00 2001 From: Nadia Yakimakha <32335935+nadiaya@users.noreply.github.com> Date: Thu, 12 Mar 2020 23:00:13 -0700 Subject: [PATCH 04/15] An attempt to fix flake8 error (couldn't repo locally). --- .flake8 | 3 +++ buildspec-toolkit.yml | 2 +- tox.ini | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 .flake8 diff --git a/.flake8 b/.flake8 new file mode 100644 index 00000000..2801db95 --- /dev/null +++ b/.flake8 @@ -0,0 +1,3 @@ +[flake8] +application_import_names = image_utils, integration, local_mode_utils, sagemaker_pytorch_container, test, test-toolkit, timeout, utils +import-order-style = google diff --git a/buildspec-toolkit.yml b/buildspec-toolkit.yml index f6cedff8..1ac7fa73 100644 --- a/buildspec-toolkit.yml +++ b/buildspec-toolkit.yml @@ -6,7 +6,7 @@ env: CPU_INSTANCE_TYPE: 'ml.c4.xlarge' GPU_INSTANCE_TYPE: 'ml.p2.xlarge' ECR_REPO: 'sagemaker-test' - GITHUB_REPO: 'sagemaker-pytorch-container' + GITHUB_REPO: 'sagemaker-pytorch-serving-container' DLC_ACCOUNT: '763104351884' SETUP_FILE: 'setup_cmds.sh' SETUP_CMDS: '#!/bin/bash\npip install --upgrade pip\npip install -U -e .\npip install -U -e .[test]' diff --git a/tox.ini b/tox.ini index 570c07ab..62ea7406 100644 --- a/tox.ini +++ b/tox.ini @@ -69,7 +69,7 @@ deps = future [testenv:flake8] -basepython = python +basepython = python3 deps = flake8 flake8-future-import From c820be1a32e2c1e7b77fd5189b7e1094d8cd7c8b Mon Sep 17 00:00:00 2001 From: Nadia Yakimakha <32335935+nadiaya@users.noreply.github.com> Date: Fri, 13 Mar 2020 00:05:44 -0700 Subject: [PATCH 05/15] Decrease required code coverage :(. --- tox.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tox.ini b/tox.ini index 62ea7406..17910885 100644 --- a/tox.ini +++ b/tox.ini @@ -51,7 +51,7 @@ passenv = AWS_DEFAULT_REGION commands = coverage run --source sagemaker_pytorch_serving_container -m pytest {posargs} - {env:IGNORE_COVERAGE:} coverage report --fail-under=90 --include *sagemaker_pytorch_serving_container* + {env:IGNORE_COVERAGE:} coverage report --fail-under=80 --include *sagemaker_pytorch_serving_container* deps = coverage pytest From 395ae28acad8ccd17fa5d5c11872eecb3edcece7 Mon Sep 17 00:00:00 2001 From: Nadia Yakimakha <32335935+nadiaya@users.noreply.github.com> Date: Fri, 13 Mar 2020 00:53:55 -0700 Subject: [PATCH 06/15] fix typo --- test-toolkit/docker/1.4.0/Dockerfile.pytorch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test-toolkit/docker/1.4.0/Dockerfile.pytorch b/test-toolkit/docker/1.4.0/Dockerfile.pytorch index 843d515b..62b2346d 100644 --- a/test-toolkit/docker/1.4.0/Dockerfile.pytorch +++ b/test-toolkit/docker/1.4.0/Dockerfile.pytorch @@ -15,7 +15,7 @@ RUN apt-get update \ libsm6 \ libxext6 \ libxrender-dev \ - openjdk-8-jdk1-headless \ + openjdk-8-jdk-headless \ && rm -rf /var/lib/apt/lists/* RUN conda install -c conda-forge opencv==4.0.1 \ From 855ca1e387ff77cbbe71798f7b6ae26076e3a817 Mon Sep 17 00:00:00 2001 From: Nadia Yakimakha <32335935+nadiaya@users.noreply.github.com> Date: Fri, 13 Mar 2020 01:19:57 -0700 Subject: [PATCH 07/15] remove print statements. --- test-toolkit/integration/local/test_serving.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/test-toolkit/integration/local/test_serving.py b/test-toolkit/integration/local/test_serving.py index 10d221a9..e118aefb 100644 --- a/test-toolkit/integration/local/test_serving.py +++ b/test-toolkit/integration/local/test_serving.py @@ -54,9 +54,6 @@ def test_serve_json_npy(test_loader, use_gpu, image_uri, sagemaker_local_session instance_type) as predictor: for content_type in (content_types.JSON, content_types.NPY): for accept in (content_types.JSON, content_types.CSV, content_types.NPY): - print("") - print("{}-{}/n".format(content_type, accept)) - print("") _assert_prediction_npy_json(predictor, test_loader, content_type, accept) From 45536f3e86f400317d623c087a911822a7d9eedb Mon Sep 17 00:00:00 2001 From: Nadia Yakimakha <32335935+nadiaya@users.noreply.github.com> Date: Fri, 13 Mar 2020 01:47:54 -0700 Subject: [PATCH 08/15] Add missing tests. --- buildspec-release.yml | 2 +- buildspec-toolkit.yml | 2 +- test-toolkit/conftest.py | 25 +++++++-- .../integration/sagemaker/test_mnist.py | 47 ++++++++++------ .../resources/mnist/model_eia/mnist.py | 13 +++++ .../resources/mnist/model_eia/model.tar.gz | Bin 0 -> 131418 bytes .../mnist/model_eia/model_mnist.tar.gz | Bin 0 -> 132582 bytes .../unit/test_default_inference_handler.py | 50 +++++++++++++++--- 8 files changed, 110 insertions(+), 29 deletions(-) create mode 100644 test-toolkit/resources/mnist/model_eia/mnist.py create mode 100644 test-toolkit/resources/mnist/model_eia/model.tar.gz create mode 100644 test-toolkit/resources/mnist/model_eia/model_mnist.tar.gz diff --git a/buildspec-release.yml b/buildspec-release.yml index b404bb8a..698c7945 100644 --- a/buildspec-release.yml +++ b/buildspec-release.yml @@ -12,7 +12,7 @@ phases: # run unit tests - AWS_ACCESS_KEY_ID= AWS_SECRET_ACCESS_KEY= AWS_SESSION_TOKEN= AWS_CONTAINER_CREDENTIALS_RELATIVE_URI= AWS_DEFAULT_REGION= - tox -e py27,py36 -- test/unit + tox -e py36 -- test/unit # run local integ tests #- $(aws ecr get-login --no-include-email --region us-west-2) diff --git a/buildspec-toolkit.yml b/buildspec-toolkit.yml index 1ac7fa73..bbc32055 100644 --- a/buildspec-toolkit.yml +++ b/buildspec-toolkit.yml @@ -33,7 +33,7 @@ phases: - tox -e flake8,twine # run unit tests - - tox -e py36,py27 test-toolkit/unit + - tox -e py36 test-toolkit/unit # define tags - GENERIC_TAG="$FRAMEWORK_VERSION-pytorch-$BUILD_ID" diff --git a/test-toolkit/conftest.py b/test-toolkit/conftest.py index 13e28de3..045ec84c 100644 --- a/test-toolkit/conftest.py +++ b/test-toolkit/conftest.py @@ -50,10 +50,12 @@ def pytest_addoption(parser): parser.addoption('--dockerfile', '-D', default=None) parser.addoption('--aws-id', default=None) parser.addoption('--instance-type') + parser.addoption('--accelerator-type') parser.addoption('--docker-base-name', default='sagemaker-pytorch-training') parser.addoption('--region', default='us-west-2') parser.addoption('--framework-version', default="1.4.0") parser.addoption('--py-version', choices=['2', '3'], default=str(sys.version_info.major)) + # Processor is still "cpu" for EIA tests parser.addoption('--processor', choices=['gpu', 'cpu'], default='cpu') # If not specified, will default to {framework-version}-{processor}-py{py-version} parser.addoption('--tag', default=None) @@ -163,6 +165,11 @@ def fixture_instance_type(request, processor): return provided_instance_type or default_instance_type +@pytest.fixture(name='accelerator_type', scope='session') +def fixture_accelerator_type(request): + return request.config.getoption('--accelerator-type') + + @pytest.fixture(name='docker_registry', scope='session') def fixture_docker_registry(aws_id, region): return '{}.dkr.ecr.{}.amazonaws.com'.format(aws_id, region) if aws_id else None @@ -186,10 +193,22 @@ def fixture_dist_gpu_backend(request): @pytest.fixture(autouse=True) -def skip_by_device_type(request, use_gpu, instance_type): +def skip_by_device_type(request, use_gpu, instance_type, accelerator_type): is_gpu = use_gpu or instance_type[3] in ['g', 'p'] - if (request.node.get_closest_marker('skip_gpu') and is_gpu) or \ - (request.node.get_closest_marker('skip_cpu') and not is_gpu): + is_eia = accelerator_type is not None + + # Separate out cases for clearer logic. + # When running GPU test, skip CPU test. When running CPU test, skip GPU test. + if (request.node.get_closest_marker('gpu_test') and not is_gpu) or \ + (request.node.get_closest_marker('cpu_test') and is_gpu): + pytest.skip('Skipping because running on \'{}\' instance'.format(instance_type)) + + # When running EIA test, skip the CPU and GPU functions + elif (request.node.get_closest_marker('gpu_test') or request.node.get_closest_marker('cpu_test')) and is_eia: + pytest.skip('Skipping because running on \'{}\' instance'.format(instance_type)) + + # When running CPU or GPU test, skip EIA test. + elif request.node.get_closest_marker('eia_test') and not is_eia: pytest.skip('Skipping because running on \'{}\' instance'.format(instance_type)) diff --git a/test-toolkit/integration/sagemaker/test_mnist.py b/test-toolkit/integration/sagemaker/test_mnist.py index d8339c72..cf2bb659 100644 --- a/test-toolkit/integration/sagemaker/test_mnist.py +++ b/test-toolkit/integration/sagemaker/test_mnist.py @@ -19,25 +19,36 @@ import sagemaker from sagemaker.pytorch import PyTorchModel -from integration import mnist_script, model_cpu_dir -from integration.sagemaker.timeout import timeout_and_delete_endpoint +from test.integration import model_cpu_dir, mnist_cpu_script, mnist_gpu_script, model_eia_dir, mnist_eia_script +from test.integration.sagemaker.timeout import timeout_and_delete_endpoint -@pytest.mark.skip_gpu -def test_mnist_distributed_cpu(sagemaker_session, image_uri, instance_type): +@pytest.mark.cpu_test +def test_mnist_cpu(sagemaker_session, image_uri, instance_type): instance_type = instance_type or 'ml.c4.xlarge' - _test_mnist_distributed(sagemaker_session, image_uri, instance_type) + model_dir = os.path.join(model_cpu_dir, 'model_mnist.tar.gz') + _test_mnist_distributed(sagemaker_session, image_uri, instance_type, model_dir, mnist_cpu_script) -@pytest.mark.skip_cpu -def test_mnist_distributed_gpu(sagemaker_session, image_uri, instance_type): +@pytest.mark.gpu_test +def test_mnist_gpu(sagemaker_session, image_uri, instance_type): instance_type = instance_type or 'ml.p2.xlarge' - _test_mnist_distributed(sagemaker_session, image_uri, instance_type) + model_dir = os.path.join(model_cpu_dir, 'model_mnist.tar.gz') + _test_mnist_distributed(sagemaker_session, image_uri, instance_type, model_dir, mnist_gpu_script) -def _test_mnist_distributed(sagemaker_session, image_uri, instance_type): - model_dir = os.path.join(model_cpu_dir, 'model_mnist.tar.gz') +@pytest.mark.eia_test +def test_mnist_eia(sagemaker_session, image_uri, instance_type, accelerator_type): + instance_type = instance_type or 'ml.c4.xlarge' + # Scripted model is serialized with torch.jit.save(). + # Inference test for EIA doesn't need to instantiate model definition then load state_dict + model_dir = os.path.join(model_eia_dir, 'model_mnist.tar.gz') + _test_mnist_distributed(sagemaker_session, image_uri, instance_type, model_dir, mnist_eia_script, + accelerator_type=accelerator_type) + +def _test_mnist_distributed(sagemaker_session, image_uri, instance_type, model_dir, mnist_script, + accelerator_type=None): endpoint_name = sagemaker.utils.unique_name_from_base("sagemaker-pytorch-serving") model_data = sagemaker_session.upload_data( @@ -45,15 +56,17 @@ def _test_mnist_distributed(sagemaker_session, image_uri, instance_type): key_prefix="sagemaker-pytorch-serving/models", ) - pytorch = PyTorchModel(model_data, - 'SageMakerRole', - mnist_script, - image=image_uri, - sagemaker_session=sagemaker_session) + pytorch = PyTorchModel(model_data=model_data, role='SageMakerRole', entry_point=mnist_script, + image=image_uri, sagemaker_session=sagemaker_session) with timeout_and_delete_endpoint(endpoint_name, sagemaker_session, minutes=30): - predictor = pytorch.deploy(initial_instance_count=1, instance_type=instance_type, - endpoint_name=endpoint_name) + # Use accelerator type to differentiate EI vs. CPU and GPU. Don't use processor value + if accelerator_type is not None: + predictor = pytorch.deploy(initial_instance_count=1, instance_type=instance_type, + accelerator_type=accelerator_type, endpoint_name=endpoint_name) + else: + predictor = pytorch.deploy(initial_instance_count=1, instance_type=instance_type, + endpoint_name=endpoint_name) batch_size = 100 data = np.random.rand(batch_size, 1, 28, 28).astype(np.float32) diff --git a/test-toolkit/resources/mnist/model_eia/mnist.py b/test-toolkit/resources/mnist/model_eia/mnist.py new file mode 100644 index 00000000..d151a3f3 --- /dev/null +++ b/test-toolkit/resources/mnist/model_eia/mnist.py @@ -0,0 +1,13 @@ +# Copyright 2019-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, 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. +# This file is intentionally left blank to utilize default_model_fn and default_predict_fn diff --git a/test-toolkit/resources/mnist/model_eia/model.tar.gz b/test-toolkit/resources/mnist/model_eia/model.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..a992cf5e070f8824c9e5c8114f6924b9303e98f7 GIT binary patch literal 131418 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

aoSrVY5#%&_k- zZ>iCNT{^xt-)m^k(puC7oMSRH^9uM_JqQ)TSNm0cm-yrOPasi9lGAanE+>;7Xy*Q) zXW@97B8DWQkj-tPi_Niq@iR-Z#ID}9e#_1cokGt?{7X#{nr>a=!V&cx)&|qed=Tj% z-rJA9KKZN>|0n^hH;!YHe!;HhqCr!yu^z&PN}vnJSBOzxCyH4TEyP%0l<#6~!KyxP zB3Ym;8(l^Fdgj zj9V@zL>NIF3lv&U1nAByIJ)rL%xMrx4A+1jS?_TMNf@U;MpVRME<+YAnqzv*YRMuO z>W!FRCS-^Dbu)aJ1b&+rw51Clytp5DC?Cglv-wxBf4+eHuFC7McmF;+W-(Zeu#gcOpwNxv4+zO6ZJ@8r(LK{>V1t zCy-rO$Udc6Vuf28PGYxY_jML8!bKlr)vYy`sQk1rHm^s0MJo`SUADaub~4$m8aZEd zz&eS;hP@|jIZ4gYBNCLenAYgMAQsr&{kE&nY^ANO)5(J~uRQO2iGyLV$x!TVWwu1t zDN;r06UL@>f%S^Tg`)I)Wj z<1^0FkAAAAIRpbB&>6U0iXRe@yLAC^Kzbo8F}bB~Kl)vne#sp~pLE=Lz~!9)LyM2lMzA^(LHW)2R_7)QF-n5viRwTs<@+yoDkuHe z-l>;3M)+&)4-We(3uY!&>c_V#t%|rwG?d;&liM&DCs-%%gR(iJ5Bs}Kr=GF51^V^` zKYAlkDYdh=+tf)Y)wMdS;;WId*ZV`-@mgt24?JjmT66Fwwc`9|Nu*O8q_2yL^RK#& zpoZ(*VtNjRUDf2xx~WCSsPpimYeT#+*4KFfZqpF3=4yKHI|E-D-oK2d^9A%y9#iyI zoDbo&)VIS$l}owWxq8X71P@_mbk^s^`%(uWT2Rcig&tStB2G#9e~p?;Z%^0Nit=qi z)PS{_a~62&3>pf=ef@m1LQGkvz3YWjgKQu&VNl}|IF!TkgvwSrjz%KpKaWn5Gjq4` zZFkxJZ{CLTpklF2&DM&qL%L0@h#;B`uoGPRxlL+16W-chXYZb}0({9Sm&tY@+06e} zgYAGCi1J~YI}dbcbKejGe^{_k!w3uGEfk1E27nmQTy&7q4|Byr3FPO>2+d`gnA_!A zl*bS@81y9r>DcbEqB|RG2#Zc{7Qhr>7$aIa?^pYho=Av8?aisknci zv}ulY%<`z0RB!PJTCkYHE|x7mTN2Gt2qk7dR7@bN`@WMMcr2wqGQ4P|#ye~w#*M!6 zfXcz>EvBj2AkQ4EL9pcS#4qc&Yb_K~_Nn8z>{xz7b)i$#9_mdr6E2el0DE(&AZMN^a<81wSUq7GSg7*%-2n4%$51(6y@#+G;&8Tjxe=fx!&99 z%xLTRA5R6WPit9HMO&4$WOCYePIx1Gt7nZ;=i8sCAE4ZU$6YZ%y5pXERzQ!$#QY0# zviuvtA8#!)tV$spSskURSS1N{8z0JwkFJSYTFFNFlSQ&K->@~7@BlmdesJ4n8f+Y{mkx)Z(5fCI8Y}2 zh(g+*E$u7X7p!SY64z@s5H`l~u;v2I@C-2}lF&yaSsth~DMw4CDVb#-1kE2)=Ep3l zeud=;9g5d_b-PK(@P3q%1l(jQi3nl|q$NI5YP?VTc7)pK#rl3-ZV!j@&6(&My@jIp zixiK6c>+^rd-kIrrlk$4zn;A#{@ccO7(JPz$q4~r)$-qMW0Qp7_&?sp_8&(kdwZsj zt8TVtE=;yo_GU)TA9wtZTkMSNEo{vUS(yLhmw#CPSAO~DKUedaW28|Sg z#yrb+ysW?|q@t7@J$%G>==Gxd8LIf|^hRc|@7u*QPZxae9PBPQ)J;o+sOHmuuiHw)NQd_M8gCqf?OfF?VCVvOL(HZOG$`^`~e*!jRKLQrPjbN zEc5y7qN*{N7388Lsd)#P`*QbJ?P=#v2pnO$sp72J*$VcIR_GJIlLh^+)o#bH(zy1%&YzR9&EP>4C?qAIYviez8<&gXN=M$ z;KLJ?L;hO2IAmzg=Ks3#lj(U2xA&Kt75vgYD$kZ1n zyL^IxV1@ecd_x%m<^Lw%_^mh%Sa;56d z`N8XQE8+6>%Eh>O+Ew<1Aiev0bu%A*o1>={QwCq3bS01($CnW|4vDc?ZTUyebx`>T zak)$r5rT%Dny}vuX;UP}Z!HsY_&xmC(Ish+vT}flX}fON)6zf|?1+nt3)qw@+IJeg zP(mV+1uKeRjhU$4@yr@z{5E#(OxlLJd}Gfbb4JYHsY= zdzult6-MYL%{IT3RpGhX^d!yjn|`i^*(D5r=|t3r%dA3CGbNob95sg9lwpK8;r9Lc zg^-w5z&hWu|~`vvKwetg*=K08GorR*RndfLS*d#ticRt$L3ZG|GA*? zu-#Zu_^Qn9I%d2pVl1J}csReDynjPnj1x_D6P@Nbc7k@kT@ID51tyn+n^2Gla3z|g zC752V{j<3P|19_C%}`_JSm)2g4$Z(6WG|Vk>kRKe0wkyFjQJ-o&iJdYz;d{E1kWNL z_uEV^xPpm$&EmiMf9P7SJ7%g5NsN zx;Wjv+0A(MC#V}T-dUNMx@Z>)-L|{FPV4mFx{NPhy1-NjFnDos;rHXoN6zcnytWIl zUABlhJutg&6nbgpt+`B?y5D#C<+w(YA5eQbdiy@Qd2!7F_V@i#)+ey+7qqf;aoSqB zZ}J>E@x!iR^=xZPsYeJUrr>Su70k0)TYc5skTtq|b6*UHvppDMub8vse&f^Bds)?n zZHQeFH)iNzveSxNi5q=8rP=x+dr<*%Pc7QS#dr8E(#>UM?u+qbFwrLbI{_7xOiy&v$?{_ z)1as3H-%cW_JF2MzaiEGDR0NKO_))l%!@k-(RzzsK%QM?*xR|EX)&hTGU(}#EdLsTi3nRA^YM0iLX>1wc!+gvU zNp^nN?vyK$aG0R%j4p0zS=Pf3TbJWEPi=f%bGeTvf}C&H4L_X zM_O%5arro5!nNe2HGi-Sf6`s@=;6JX-euqIb*L6>MQfn3!b`;~Z_ z<`G^IzcN0a%2(yhpKHEIn!v%~OW>-QVBjumU{RbI&L2JKnOE>Bd;&^)T80*^N5AFx z_c7GcvB-47=vW3M2ll-ryp@L`NH+8$NXT!%*`j^bGIMW#8Q0@0%Kj5o!pbq2&sfr9 za6fZ*DOSy)zZ-i3kcm&C>VhE1gD||I(JH?mNhK!YlCwf3F;X#qiaHY^KTcKNdkAab zti;uGM%Igl$@tk%CFA(1T#3|C2DzOQG6NVWN9H*8Nsr2W_Gd}(CypO#GsbEdxJXLq zHG)ZA(MZW`3FbgC86Yn+s0ej86$ligs5nJF2@mgNtuPuME0i#oAO8!tCj0TJS4B1a zV%m9O-SOnKsQ#TYtnufAr<{`o4r)Zr`8^G5DMr~r1>+sU3w?S3nZBwvKI;tqVkq;Z zV~mx`5aSU5bF@^WH`1iJqy}UuQdj+DCa^KA2YXnr#U2WSR*M%>C>avTsp*)2yd7>%vNmsXxSC&*zwHS5HwIUF!%vj0+&wlC zkKHBPdR(-*FFVY&s5!-HCDML_QsMgsHYg4a^60+ue zjw;{e_;6H%*xu+ASMasCW}B1lJWxxzE)lx_nY??}V^4>V6( zj(wUDoU0T@0eeW2^}*4@`4rvu*e|UzWrY?+vE|LPO*}{1=-%;5O7y|``yw;sN7}@< zAO9}xpKe;hDQGO~4QoI35Q_w^4tH`&=^9r9Q>mbt_#&ZoM#tmDBAfHmh-eVNay23D zGJ3<~6=G`B{i%c8D!+}MFflt58mXv}Ejy zGmy*}S}N+LLsdeN^+$?1vB?&gqR#VaXGJ{R?EUZotkexGf9YwGS;FGR=sGkCc&tNs zM!xCHVAL)0b_|lU^G(AD#hH)(!FH)vn=&H#!Y4pX;G&9*&Cft?)-NVZ3I5U^mx9(=PK#;3;?H zvXd>EipDJ!a;4I72LJm>=NdO$$W%bhz>-#x=IHXEhCXxhYU@zTu=LWR*L?j(2-Bcg zp1vgsT!*Wr;$?(><4R?OuFahX23lK&PLHF37Jc&H6PRztEb}z_B`;VMWazb&*c5Sd z>ewmbw8*54cZhxRoPx8MF_f^`>R2&JixH_95$U7(u_oAbhO!0@B@F4>OZPQW>)h^g z5|MH5^-sG=Kfls2W2^kUqe;Yl$O2!Gn@lLq16sn=K9ly;C>~lk9DaN#_JhXH|?WACVtatvU5aK{e!C{2P@hj zolg>un%?`W^)&{Q6fq2EYn*vE{7;i;j(Y###J>IEPA>8vrHoGNAJdFD-}CmmQ^@@1 zML5Ph2i>yIS*NQ*7$#jgq-5yW%{#J7VzKa{qzc+fzlR@$jR_NxL^mhT{!yrOOxQ?- z?2rDo6>B`^A6iCA2@7W?J}zp4YBeYe6P`4ZqnsT)C#AE0JZETW^M@vpLX&v>hM%GH$`gDNgl9Nhs8C5Bo{=#*^drzKt|CQK zVzF`tm)G$IYKUG{25HcUz!JT1EB$)~a-krivJ%uHGao8U#o;H+Z@VF%_ya{Hd^rQl z2R_$O1y@jYMl0TFml-5Reo9!jSX@$`b0N8;g8#inQ9;S3{%8Z0W?VMT9I0Mq*?^Lr zW%3dgsP&et_gN_hpkDBDe2RmLC81BAd*l5epKt2CUliX4<%BteR) z8%}gGU+@|234x4LWYhfTD(M%)7@}_$)HCJ$Tb8lm-@gH25=9gBTpX%R#@qN8@>Z>Bjy(LLZnAowy3`TCfDEENr91xNg+G>^g zz8Iu7B&t1+5&c6_qs0U0ftKuXP|o=9f(z{>Z)H@49M=XT~bZNMhS&VE`X==($-YjKtOqEYq62G`mF;h#VhD|=5?SI3LHWssrCf#)Y zMd$mRclKIG(+|q?nepiJ0dL;8EH`aEyw|m?pY^cXY)fpBdF4gx;J%;eq_zQU8k(o+ zlwK{O{E9VI>O5kwIrj`Jn`yfKu>Qb3BVa7#_sP@BnCQCB@_E-n27lcv@#i~o(NPJ~tC)n&TcO)Z00&LR`T z)~YoT^_zTLzCD3$404NvVs<@0=lSEPyRHmT0@u%Hpek+{@l6QLlak`CBO2T*DLCh~1>jU8`4Kgc zajnN9NnAZvHIv)alQ9xZ|^G_AH%Ip)B{1$cJu(A_BmhC_Jp;_ z7R)Q_CC=Vn*p_#cpy;!=P1uj3*Y1`9xXWTUBAsSs9Nb)m5h*{&CAF0$%AIGF3TD1-^_XAtn4EuYQ-n?IMg}Y8e~gLwirY? z_hgMtg+|$aUON*Ml_pmcUVwnRR%z3$56!X^qxdV$tQjSy{p@Wn`9310O}s;J46Zu^ zpIH#gI~I8aruOmFW2IZN(VQCaY#Z$CCCp0g%uS{h>3NDr%=ESi)mzf0nd$DbPsYK0 zIGtn_6;ksXBSz6`a*%Pl0MxIoX?!OFgK_lL*%r9-nTZ`xWmC%VOkbKfO7g$pgkzT< z9h(R8wq~0996by+aV+w^)1if86|_ZUBfG3D<_me4$F1wD-j(l+lE3_VuUC0n(%ZAF zd&^6+z{hc<7&N!Y=Iz**C%AN7OO}iEJxz%bSOG_#oJ7jsOmdYCrD8|q3H``zs+rd= z?zO5R8;PP2$rtKwZ7d!l+gma!x3`gvtrstM3ndtpZmI1yubVn%R=geAldxGPfAU`6 zz+a)dL*t}VJg=>2Q>XoE($*2TpkKS|I921=MOX)3&2bLaPU3l&A8>xXNGgJio3ZAv z+gD~ya4-RpthKYVfH;4#*OYU4Bs-aW$Zi8`TmI6_NW! z5KBS-M`K?3BvZxu?1!ehM9Vdjipnkzxd4v3W>1%sWVnrnfW3i0^1*|wWg~--9@9w$ zd&VxA5uy_pZY4fN^*~Zz05y_)or5f=o!3!Ml)sI+X7S;& z9xmDfBR5#Nwsfl7nE5mL0_(27T1qG?u+1Vp)f%T3=z0DaR+p8RuWvY&jwl4|jh)m~ zxy_(NAvNK>coACLRRIveC6l+&C9yT<=V^}BtYZPQa=+jf|k&^!h~oeO)qk=0E-B#avtA!d>N z8Q}#g2UY6ur=L|olN=4GYzI=4P$%{;tabNsINRQL?X|tm#`rijhYu5l)ZaH0m)%&v z-4WU@E*!+rY^)UKxNV4xejY`wdhA?!3!Q;YjmPB6OZV^Ycz&87rrI0WFw6_zmcd%1 zfa3AjIx0e}J4IdpI6lqZp(cICJ)fCA8SbfjlMTZQsl8-o+KcX2+=uN}5|g)_dy~oc zlULmLjAxeq)r9NA^U=_N75|sPU+)FyzgFLm`OXp!Uw3j7|3bP^5a*crViCNv-DkL= z2(}G8%2w7@A~RXNT@}k>-66HKa4??s_H>%t|5E9>VHkh+P`ez*uM(gsDfzy1@p5MP z$W&`%7BIX07Tu?UjDM=XHU3u7_bOo~&k|QVo@s}llgg5j5B_e_ndbO!}(lxNBB4peE&*{@W`@Z&BiCoUan1h;RmDPsGOy1&JMeG2?v+cgu zgcQ#47TNYRUIFc18N@T$K2J^TI@Fm>nv+ghfWljC!WP;)rI1+ZV>-Z3OU^T#ZZEZ? zQywq+Ad0P`)HM|BqU=nq-&oGsJ#YeJo?p{SPyG&bW(lEs>e= zbnl3I^1dvc0_L2-Ti?pqv7q}nyCtL2SgRoSa!~WtlF$4$4!<&9Y1v#@eqHaZtjb8T z@bl|9TU`D(vu;~_&CC&9>s3~5XDl$oxaR`<@~jI<%a+mN*E|IfsW(Za?zc4(q>ybp2!5coeX7O3P<(D4%xyriV!IE z0ZHNu{Kh#zv=z#P)dR1gHzQ)F_bC4CGW2@YsAtXZR@n-^DYod@rWo7&IoxanH~Cc! zjoK@n8#7yUj#l~v&vXX&N{ibkdj3z(Key`jJVUN{fHyC<5A%0GuE%4c@J;Er*sCd^ zuEe`G=ujd62kcYal=A|G7ZCiSDfBu8A^`Jfw@J`BI+&fYA{mzoXMwRL7jt5T?X%6e=AF$0cBCb4tXP$p4drT%nLg1`n!-AZ}+I*A)LxZNrY_ ze99nChuVZq?H-YWy+iHZl;(>r(=(H7tK#E6ForULZmj;hWL=w+T&=xX8q3l;oE(TB@IjshwvU44g8>`29Jq2XMyy1gdiu>YUKHnfU^_H1C+I2TsSW7}REuG(;)XFq_mN7c_=5&78A0q%FwbN)?}L;P)g|K-dgSpipzaKE#SJKZS;33Kc^VvEc7V_%KqnCay?6#a_(V>6)=a=aJLII16e|bh<;dSV!Ey zRJ=v&8k*!;d6)$AjS{>NdynVcO1lR`@=P$!OXjCh>8>M`rAWe!dMIWJt}X5gIrDA{_5CsQ@&h;@*}Wp<9qgt?${O= zT(^4SbT3CoKq4`TJTXCN2wi-BD5-dk#0;DnzXiTY>UFnOEXu%0j`R%W^w*zjrcs^< zV6`Yu9n`u8m$Zh}QU9Jpy<`!tT6%yS?_a3M3jP(^Hoy?6=pQmZ$^JI0UJrwwp^x~H-}wXxM9gsZHHXtGw1 z+3*#{^A+UFRl4=Dg4X{qspPL5fu-?QvPa+-v`WMClBi~q+m0f6?S-X0A^AjYB3bjT zEw*dz0NSM*rG0z)Hu$aW3n!A&HFYr?rvj$HTrNiSmukacyYs1~!-Ems6s)z2nSE^Tc*U!+YTK*=*v5)a@ZPyY1S|Tj%pf~?<`Il;G40HVa z#%WaV@8Wc6{Bb%Ggwf71%D&WS`r1~b@kKHBpSdY3oyQ}ohL^|sj}vbvY_-sF19W@ z;sm5o@QwT&G-1vqxZzEF zhH3nlEPL-J(%`qP=8JfRLnS3)k4gA5VWd6!&RJ71j=+K2twWmsu*d`&%m zrim#rwxrVzb~YH+eyJ9}`B)C)yh`&ot{#Fq3r$(pT_3O2>vK2jGuH*{DYw%Lto4?j zi|_V8`MQ>rfSxa9kMrsaVktHhy}-<41?Bi0mE2&1*2Ul5L3|SLXdo$xcNS2Oz^|_R zITv9KZt1s+r`*t zd!3e(l4Fqj$-$D4-z&&|eWjo!fKZ=kZ_Tm{=bj!(G|V*R9Fp zusptmd~j})FrLQs0my*%l)m^-c3OK9uFlvt;eMd<3RfV9@|gxukb1UF8lc)35c5KW z7ZCaqVZhz)|MSp7a=nv_|Lvav^3sg396IktMovYPl%|g*S`fWYBbg{K7j&g;PvdNC zJ6UVU72>~SiyJHwSSgfQAhcW@#f_d5jng7nv-_XLC5O*^zIrqWUua)eT`aWdVb#bSf$=8(x#lviMPwQv>*fB{#4qs`-t3Ge zE+W+_G{0ng)f9j9h)1!-3CEZ~z7I7YZ=4(36h#AVk#5g4@s)4C<4jb4RZFz@Of=Q) zKcJH!4Q+9Yc-}xj!RfW<_Ute>P%u1cqj&De20zPsRl?7e*$D{mr+hV5Xu;iblBTk} z<=+C@ke#6z*RsH`&l(xDUUk<7QGf&nP?7>fN?rV1`)P!6Xa;Pb5K!&uaEQP1NAr(R zdq@E(?7l0~IG_qf_~swY&=`_FeZV&*FWs0!`gH(JKz~{N157{+7FS7W0NN)nY!rDqh zbx;l{NZQ~^aY)-}OS#0%(+6ITJ*EKr#^QP8w#adlS`ov`dsu6B6_m`h%<>R}8+M*% zP4;qo)lPA0_Rf_ANwr4#lt08vVe-WX5BKvX-~o}%v``o`z7Brd)-%D+51#qvZI4!~ zJLXWbobur|uu{SMC@sLzP!bxUuiCj34=3eq;T}R)T00-wer@(A2PgXL1h9Mc9$_Xj zozV0JllRHq)>9jjKY1i?Gdw*c)~8?3Bs*M=ZePzf$!Yj!__nd$UV1)Vd+^_$?c^#^ zRrLU$DXU(ib@y|YUpX$9NxG#1#Me{uw?1&b|K|C077;LtKq4h5lAa@BFlQJckn>`{ z^D!*;D+ka<;#~$*E^&wlV)zghm*fNbhX~n`l(Y|(18iRgZwYsDOFq^TFU?cQUzh0o zh1?q~ipT7RJG>7LwhnRi_k(@;1EFA!Hc|j7utyuJfCbYROwjlT2UEXY{32YFvCt&_ zZ{6|!Qzik-kA>R8L+WX5nU)-?U0r}fTBHL(;OWA`#}r&lV}*IZOV-+lqdy9@bx=ry zo%;zI;p*KoACaivf>NLZ>KcM2I-kEv{Ub*F>hmewiuv~vz2Uy+!aR**1;n&coM4rm zQGin9n+#~7_>u!|!y=JCC}k97UdjT}Yo4@LD3sqU@kJ}mH})uj%8(zf>-3vTiu4c#U6yYN3Z+7t1tc@521;<5PPy#+6U;%*;4 z;JZgs?3I9eWk43$$|ZpFZO~ho7^7H>L{8A)5gH`ZsP`F6MaFw33-Sr8r|wg_T}j?% zdQwVpz|La;j*8vxxCg(a9(_c5om)TAem}8&ra%829g7);_QML|+2Q3i7#Puc1X4=; zhm;?NIi-v!{+lAJgn#&xEx0JQmKU>J6iL9Xh}Q?FgHO$(FZD%d?2Q++&+1PBZYtt# z&o4RrEZLQppZAXy_v=;8gbhSZHYpJKWFudNWaGu} ztI8ve#7BKTG7k_V^?Q5bToLv49*xxNG3^` zi#T)u9va`aG)mAv{?(cq1W*{a_)~hh)-2DElaTRJjJcTkvUJdCko>pECgrC*ofk+ZXcU;N(5ZFaPEt`9vtdG*pD-sY{3-+U7EN{?h{I zuv@NW6aDfTNFv=$GE#)~Xt86r+YhztMjQk@-<^ZxA|;OdjdpEGq*!86VTnXBQ@Fh7 z*}6J1;UF`Xf!G)1E73h|Oaz9y_O_{^2~c{p2cd|+i-8g(-l4%?=Xeyh=tL|w_&&W1 zKzprod2K`2l1Swz7T#fuMF1Y1fTi${Pj2&UavF>@1$lumJK4~w_NPZqPVu_M)}#d# zDpLx=6jwb1BxC`pbApmHWzg&{#EG*g$pMTns9+=Q3n@?m)tMnc44nf-0h%PY;_ky9 z=q>&*US&t7NeR;8Y-h3J&9@qq#UkyzXas%f`MlGWO5!0`-Qq7}JKw#r9jDD=e~_8@ z(5jGB5R8$eZ+y(8<{XgqqCWP@0a`J8`2=!6Z#eBMJ^W&FClfr%1#kCTM8*>JA~#fF zB`x1RcOlPOAjNg42jD|<9LXd-aAzfrjvvHkHp>lymyxz17f7jSVTGSEL81CkyDGX) zgkkYv8s)vy+ztNHJx!4WyJO^5j9o+^EWCr#mQ$pn4FtH5%v(1sQ3+Eps$2S&CPfMB z)f%KTS4m+gAWo8J16YavKw4Pw_m8+)+?Vz;LAI(dbgXIy|8xcB%M*tz$l7mGQE97y8SVz;%F^3tP0hCE-b z=;ayG8Tq6FoMfD+H&amMSIaQB^1{*w5GFgEVOnsW50Zc!w}mzWeyD?Ve*vM!tP93r zjVW|B?)uGFZY+bsL#nYiGms|LGs>7y`q@Kbz_-1b#OKo8zt(98N;zuc>v{S4m6lK! z1<^1&vud{8{kNe`irh=&s%}Fnz`07^-Apw-lN;4JI6cY`^CV5?+CR5?qP0kso|9WC z(J)5!?5V7f3xBOL!g+8?cdmu#koF_2tSZ{+Wd{pT?4`vBuI#KViME7i#H^%^Cy!V469XW+=I9Xz%rQXH+fDlaWTTg|FN#ODCI9n&7_ z$<9Dp+eu5EUgg}LDU8;8^~p$4T+K9^P89w17gL!&7FHT9njOcDUN)i;$Uq*hkJ3bz zpu5r+yGuq%bU=OM22+3Q5x_jJ75b7^O#_}82q1g6tLTQa#Pu9CdZIrO7nJve@j76x zEszj2&Ri~#7gTpGOERS2J4`m@lQ*2Ir!ZtZ-4gCK#>EeDzzdhUTtDi_bGb;(yddw> zHSV;))d@62>rHvlkGc~8Jwy~KEb@uLUZi}wpxa33b_+MC!2y591EqL7>%y%4h%hZo z<6?t~>*v8+WiL4z+avUW!4DZVE6imJ%8$xri$cR>Z5>9xQ3tL_U&sM6WG*~Xw&{4Q z$1YQ@bphMcvwR0cAfi}T5&>A&**72hkCDndc6!SW38um6))tgomw>(u&j5fh;??It z4io}pVivtaG#O$6!di!t@RCoSFOJP$W`35dHRl4&7IpXur^=PStoR(00F~eavVEIO zuQ|c@JKi>Dr0)uk+92#K5YCmnV}X3_c3QVj+48YSeo7_VG}R2o>l_eVd`ZfL_WB*f ziWfiyp2}+f+7*_+Zo0odb~!0-a&;olkG(B5qch!MSnM6>+aumWhJo~(FZ7Z^=(i=x z{EZiNHaDO7@hqQNkO$h<$MER}_RLBxM+zMWSwV=)rjA_nA7E`YN=m@j zj(7RDkK~&G%!9YhM!-)`&?T6g53n7|R-E}|+x#9sE@|Q@!pXU*SFiPf1n=UTvwX^GjY1vGyzg(K9Nlu|XC z@+lW&ZPA_-K^E@L1dx|J=}tMmB(t-;O(g!{%E*-{B{ijw4wjwwaI zeFfEvZ~IW{{*7M#sBT?=20Zf} z`A}P|QoM)&AK=k1pX5V?f5oPMd3CW+O1GM8F0c(KU5*GoFAjhO>leR!fJVjNoj^3s zvyfc^u(jPJ`-Lo?4#)w}GBcm1!St|k{Zh`#(>$^>EYm#GaEi>W7aiPK-oSwcI!yx? zQGcVl?t@T%PR&ji0EX#{7ARSdP_Ohhb)S3<#{1x)`1N62j~#|-Y3u3Dl7g`)&x&m{J`FO znF_5?w*Uf1MnL?4lGrO~_KhGlB7H~j_I65a!jW0v6;#MciBj7Q_Og6unEdz%Phj86 z60fe%f^*6J(1_ry{O|{{Ki#uFF@E68!EvzU>D=G9k`GJ~S2~=VMIeY9`3qmt@b<-< zFt^E>-GBIb){-5<0lzlHEBysLM|*2qa;RYa%8So1$jQea<^B@w8B4_QJLTMa4Bff> z3Lm8NjiIfi)~#CKphxMg`w9nO*m$aH#07?R_w)CYzQ|$fYo391$g96wPlN?dY)b;{ ziWf4v3u2XMNK)$SZ%oEUCps|zH2WoFp4NiI%6d*x%_9JNmmb@<2LojroBhI33ltSc`5eRJZlv{kl z4}QihoL$Js|1o{683^};L)zN#nfJg6h=JgGfiZ@N=z7sKMki4o-7Ps{DCMsdw8ip} zTyOL2}y0WDciKZpTXlSyfLr4G58njpRjQYu*<(H{39n!Ng}1~~ETeIQBqp3ck||$nhPQ<8aSGOB9MeQF zl<=Q`&RY%v63`sk-Eo1G!Y-*k5>!}#5XLJTa64ui1xSW*H;2cI=6fX$mLT#P`j7tL zKl(v&Vxrs06s&_3rbH}z%03wlEgAo&*nr%Zv=1?`1>VW%`V@QZ$nk^Ql!o@s6usS@ zrhU+t>_HDyRVdWO*AKZ@?kT_5l|-9~j*i*kYt#Ou0E1=nDflz^9g+<$j6u6H&MES} zvX4{1w&*uIphx7}ATR(YPihQBem-Jd1T-V@{y{$flMcOyy|l?#`kiY>VsE{LS;8SR z0F{)E;P-MPMcJW8v5RLhl$0P3DY40ee~J!qR-={xc|eB0i}DCGA-dgXBx+)voZ%!f zF{XAwf!y?bFa-Dz|2*nO-fz8bV8R}QV_gKx*T|x(CD1%a$q9$@j*fMIQXo@bYW_@n z!r8&kQ4by2_Qhk*^M%QvD;pK5g^j+-^ecoz>i?9YVtT}jmw%DMLSw~B{7$1F3GU~> zTgqHYnL~ZSFZGzeVLZ&ujFnBA!F)le7{z2y4O2=YX;7RS9rrB42vbDYVVCISWkS<~ z(&PGE+g@!tIi(8ZAQ5%I@a~%Bt8gl~YGL)xn}rRn!|4pdM;S|u0|towT{pdO|NHRy zSxKVn?04mSn-nnvzj>7bhlXYMEOb%SA}%?4`1+#rcjSM5ff4w{WuA=|0s4EMg*-fOM*dcU{5UuK+6XIQD3z8A;2kSucj)_!^5pi1Y&wD0-S zO1q<1C2wT#eI%>Bu;~`hIPFRi+`)e_PCM@4Z|Sj0^PPdThJm+9r%kBtHqM%vCA4RE zm###{j7yyEFS8n{9i3*HR+U0GK;yX1`uyOD%+(-QJI2BWg6T>)B*}Rrji{%X<+;vX_U1$6gD6(Wkw?q_c4h zdeHOTS=Dv>tuEXl;xqePU$=SOt9jj6*U#BTnuz`Eul~-6oPK%Nin(V0YHQXk|FP!D zG97DEY+*@LZF=UqrAkh8d5B}w3tPQM+CtHe^OPzVBOVvHdv`Xxo$4qPL!|##b-0Q>WueEMkaue&4202_?PtEOE+}JEaoI1RmVH0nwKSxN|zP1 zU*keS1q_!DxYPV*yyXmqhQmC)b}mW})XdF(@A3X5hwby0WF$V{V2yxqbY{lN$xZYZ#;md2jx{l#s8(G7{nq1zjCKdHf;=5rBF#=`*1=W{``(FMK`1)-$Eto-NqP9Kp#5&`Z=G#Zbwa}U4+?{9RngTAcm;5e~YaEj^ z`Ke(%rN2*LQsZRnsh%nY|mkq}@(!Uq2VA9uDk^ET)8s*^womj+v8O zQnq0{&hhZ+uaW#@8-wbfH|GYzuKUo^Wu^^8i#1TvsH%uZioL|-ZD*81SB!z8jYF(hoR5?;SG zbkm-wYfG*2tG3G?TAMd89`WCdRSf&|sKX`yJ6@M20jI+9g5pU`Lda@q0spk7(2C`_ zL6>z>lTfZPd#r*&VGQLr|HrEI%7P2sn@5W0^Q`$kbu4-nyKGph`0<)ZTzNL#+^8qk z?IQc-(6fl?a^Cuz&kw1&R9Aj;s^-*ruu{2s;BUW|_k3Bk`xDwZ{*UefAQAlk((nH{ zvY-BcIRab~d+q2iF}$hPndkDP#oT>r4rfSqMDto#8rRH ztbNYEbeksN%WJ~kL1VZ@b2uRE1a>CCdg+T2Chb_QT3GP8>+KBkkRz^`bI=o9Jgc8H zo1PJQzDrj8BcuKlZqdNlB$>Cg>0!Y_?j=h$?YAUq z0hG-5`V+XAd={VP9lLYKv2WI*FDSHYUGg?vQ>LekraMngQ+_{NGwZY55Y@=f&s*em z`C;`pv66SGd`Z+l$b_u=Zq8n8f8dkDeK0P>=tSTuehe}2voF6l`nEJ-i*6G`=>%FKP9x}U!kU_ zInLjCUuLE*`SF2Y+~nFqL&CC0^q-yRACvr9{i=gWMqb)i&@+GjT1?eMEX4*iujWJT0r1blF~t&iBMUjtRE|EvuKsrde7jx^@-C zVNHPc$?WZCz6-NHj-KnZwy#jo;?W5~r;)>cS7Vd{mc|2UTaB|mX{N3vyn5{|EnoDnGaOQ#Gmh zf7?H(`mg&2R=7Z_MV8s*ZI~lDK%`cv)eg;dRCV)p7Gm9AJuL&-O0GS=j^xcAnkB2p=h^5AF21yU(u0D6B|K`F>_=8XvK8GZ~qBbzkeZghGYwxQa!k`_a#3 z+x_-2-J5NDKQ}g9hrNAv)@_~b_x8q9rhhWXe&7APIP>{ST>NH<@u4^C?Q*Sm+(#UY^@^rj5_*_?Z1``9@;H7<=V(xnVL0~j*_9c8 zJMA-@7Da`5l`D7dQQ;*JzwXwXgO_b`zhh~_|L))WIXP$R*?2Kwo4u2-F?9=pK_Xy6S>pWNxN0&r8 zbTzj-<(?AWa7QB=OdS+Be~|gp4cEACrNzBwy# zez&MB#-8TnqbYQOhfa_)N1poBExfgD;Y^BR3iV%u;7we*{k3cUiIEpO&)@^@Ds%FM zg#P%Fn>ELJnDe-Ft_p3OV6ZRQk#H_VnD7bS^ zmDMnwjOpGM*+1R^_h0&efi#8fg{~R-RarsiYX_Bo3n@$Z_y1)U#L|j}Ib~MvDB}|q zpC9Dmpybj})xe7fG%e&f+zP*mA`tpm8w4Vgwl_IXmuw; z+iwxl%D7I!m=jY?or_cg2E%q*ZzXPJ*Kq2svEKLQ`K9-~cj#8Kb99fCYLD8j@c=hP zg*&wU=^}@1#l!A6A6lPXynAOY_Z)JK{wec)^B6w~G0gwfXMS;K+c$^PE{PQt7YZqE zm)^Y0q=sX0i<)gSN{A}(7d`#XRsG=gH<8o4NvsB0>35EHmnkQQ%CgGO-^}mipSyE- z;`MB)v}y{6<^z|L^?X;OlU^xzNIabhW+;=7`W8IMbU&eiF(SvD?d-7={%`bje9gQM z$j!Z*JiS;6yuHtZ#^A2@+Zh&=o+mop)sBLUz%0JpnH#&W{@pwH7kywv9E%F+v#{*e zeOxd;Pe&GJ^vuq=hObUdBP!UmM5AgBpa{OxbZ7; z#_9R4PcbOeOz8)SBON+pHWv= z?b%k~#-oLr4gn8kE?$144)*jw1^UN}{N~3`9_+c#&7w1$3ghj5r{zngnm^0?jZLVP zCE$eQt0(Oj2ky8&zALh>HpI5}vSMJeQbg+8?Uw`G$KTJ~ZSrBeHP2PF;?X6H+FS`5 zu?NbYs-3w>aZBXjtxJJ=PPl}B_YVF=AH-J|YPN|>7CyJI^=UgNL8>T{N-Nv@UVDD^ z)t!&3)f+ZcI2-29ele?e-Xd;SR9J7+a~CV_1?sj7@Idhg&NX=w=pUsMc?THIrt`l^|Dp%i zXd`&{(uQaw;wnNJX#N8|pfq&M=S{vD^$&WWeMRYV#D2N$*SLpg`1wz0#sB7~W%!F8 z#G7^XF^m**x<3i%EP3=7Jvf`3#V?e6!|yM8Q1cf(FnmU)WAsdb?k{>!K>Raylm}y zeRpQ!@%Ld(raId%9e>dS^M-#z4;))v(nmx!iUQBQwUbbhIx9Y1lb#>=4|*V#s~s|J z*?#fViGR?8b5HNZjQakA9(bCCd;c4Hz}xZvpa%vTf6;@^skux4h8}3JYi#}-dY~on zzef)u9tN4(pZOPh@bk&w)#-1Y7m?0C=)vj#Ko7$I7xVxMRWSU69wd_*JsACq9u#1kfrC9Qf+3?agWSd! z2RV*r{evDz^!|e$yn712vuq|aGKIy>7GK+7`->iE3po|^{zVVI$NWVP%>OfbK$H64 zL=RXrt>YO;Naq#*g&ri3{DU6QANWt`!K?Fs(E~cwqnbn(a_n2<{~0|n{s%pfI@a3H z`d^|4Dh3!6!S~4TFEs1MqL?fo%MCEcJCUHB*wUR-XTi9(-{5iynk} z@@}>NJ9<#}KcNRM|Arn2{DU4)9`fIKLUS)T;G*~N|A-zus`?jt;QPNv53;NNZ|DL1 zzn}-j|3VKa{4VOM_Y40&=t2Cy(1WFa&;wzQe@73pi~nDv2WS3;9?(W~O?;;R2R)D? z`->i&``@7laZ&#ZdT`(`dax_~7d`O(cl03SKhT4qsT@<|%XmqASjWGi2W0<-9&r9e z4-ymCvy!?x{{uZBQF>=MLq$R&{eMIca3mN0`&HO~zH%Y-->S#{`Ukp0b>&>ELA0L2 z85b{;&IMnjq>aBQKYZXg=K<1=kRP#^S#dZ{fk!tgOjWYk&uWwXP>E5~QM^>i#z1|U zj&X$UjJA@!V>kMcK6#}AI{)&hUnI=Tu#cy%$h|Ri9*UEAZ}fvc{&Q|l+>)b1ewFga zsN|lzkIVL)13{V7rDV-~WywjC@ajRy(k5GDbyY2!T03H^?s4t;X9CBnlk|rM8(ZyH zGQU-Kjpl|EC09&5imyt9J#|VdaYFB)Zw-GtGD2uI#-P_0?d!_0;zhkh>DxqbGMY ze7Vi?{iQE@?xt&>+j{MgTndX^N^$mfH4U?zBfV$nR-^c~^5jgW{IBD|UW2^^OfKap z(pNUfon8J>+txc{5jGP{S#%G z=lh&rJ<9UaTB*5buYcp?Cl#8BU->oNlTQ}nLm zMsw>HO(h+VY6|P$zWv2rMYXK^rzstgU3LtcA50d0&>3!HmNuYwFy`(w>Bvsi@=Z%g zx7z!|wxwq?>*ANy6gr1L+ua>1s8b9b`Kczf_BQ{xvC8-_O~gj|^Pn4O=wGA1{%RX-Pa zfD?8z(VBQhDI$N=sAl$2s#5TI7j>p4tn3k8v7Q+BdC9 z1S{FLM6}o+dukmLAs>{ibzX$;wP}iEyGyd3v~}^>sG(QV_juc{WPG@u*n9u7SM5mgNczn-zJ8mZ6K!~H z%d@3fj?S`?2R{>&n%HHS{7lz5X+_*Z)M zQ2WXHGnZ|0M9#(EfZKls1Z&+v7Oxw5clC_I^Pj%Daa-TgBgrXPAp6@#9>A}wUp6wr zGbBMcAyv+249kzYv|W!%PMXm8l^8W}D|6<7O!M2h`|k-J zRn+Xgss!!K!n!nxcYi^hOZvcYm+g2fw ze*IGFlagZ&%x$t(HRYRANo`B$rMSNfeHQC?Z~&v1Q3=wYq()3Xn1 zWFGGx`ijGjr{mEiv-#%?({I_Ni4 z1Md4t_73~aV4)!&k4K6`d3fIX7lFXUP}Fs|+M&w+QrqUBdx?ZRb=`UU5XU;gTfLh_ z$(KK$>N#6}F8k(0qetYCy{nABpW0l}Sjr-aEGp`Z?Yna5^N{Ulqv}lKW0MCAvWm;h zg)1i%jQcHm&9mN=W~oP%d>=RSqBi}dd{1xiYk+;oEO>SDZJ(IK7sd$EgLnCcdOnr3 z+@9Q-Pt9K_c}uOF>hfKPneATy!Vq6##{qTSjyLan$;C%6Djzj>JS^F>HkRO6<~gdD z@|gM8!&*or`;hR}wW=o~JOz83p3z01XDCo&VEIq}!7hAQowvvN{^Q!d3-e$9AZi5{ z&TyW1>t5+cj;HrO*9PUo_cmR{uGSq&SnD^@=U&9$EjAU=PJT_%ZD+Wo7vfzaw}lPf zr0(arL~fd(=%qhD2#j)xY_>Q>u}^rv8^w|rw%6DB%cut9r7Cj5zwK3T)?Q9p1I@T$0A!;UZ;)!+LRBC5?SFwc3 zI~~TUq|OTE@sh|%;u^JY$WoSQ&(^0A0rPSjalN*b!X@c@}5=#JfC`v`!u?ZS)6>=7`_$T7PkUcj@NLnhjnHtc!SXSIJGiVx>RS| zj=ff^6R&KWxPRSKI5~W}RH!@j$$$ zAvcx9(yWy?K+6A1H^;Ex&_J`Af1?Ru}%5TncY>)+?Qxr*&*%zhh3?j>C) zDmdv!8&P?zrX%~M@8mCh+A&roO{wDxo5yZPW|e$OC&uemveQQ$b!-=R&c*iAlJ8jj z#Saw!13zF`;aXm2c>8>UYxZCG!K-_n=?edjAGn?zxnQ8)`nWG!$;6Me(v#HPeK$dM zFk8hQdAu6RP_b|Ic(u2Hecd~_@>DL#9V9jQSqlEPrZ;hv44m&iO`Nd*`u1b$`t`B5 z)1%3j-9N!C;mncF4TY55hg$|lPR>5SNnDs7f5rWXhmEt3(XETVO3u4)D$aK3A2GSQ z7c^VWXCl01&~8GXSvEEDWY>2&zx#L6H-qI#(S;++zY;6E#CrrLc?P6adOg+}IYo9a z`f8bNX)Rfw95K;?Zb!Q*>PTqpa?OwN$6Rmgjr!S-4-qK{ruG)}$X%S9QW8y#82v0y zVWfgLVJY+ev71<_&f;6>lx_1syY1k)3LEw(GhAyPiY%Yi&4Wd^(%aNL^(uR9l`BFj zk+8^q=FY*i?a(PNiv^PeKOR|?ju=(1?Bp+}Zha4)yFAv&$Nf{Ym&B54afwx{^RQ&p zaPsiIrBy1cY_gJLcZ(;l@@m@t+3M{)FyD?*tGn!e$Rp`(e!BN_(JJpB#H)j4&qUj{ zhK~*%c1vxO?(KZH5_Siu?J?I%3Yb^M>_1NetIfx7_cCM(-FG_+CS{j5^ZaBs<@-&PeF?MUmwZ!dOjL-Kj0*&*{%R#< z-z4u+(FO4+sYIt{8~Y+_ifwpK>nE?DN}i|wk|4*n_iN1~`@t|yIPdO{qnh-VaKU{4 z5=$IWc2!`Rd7^S^iRjs&zAQqN{b9fC(K3@DOuHLArT=K}=ak!{9;2ysfysj$+x4C9 z+AM^tla7T;m7>N=uiM5i_nuz+m>1crZeA)%6p6aK3SZ(KMFW0D{(MqCrq#?Ncg|T( z!B=B?>>bVM2hHBkF{9&}^)%cZKSB#MbF80on4P++nJlW2s+=XNk=|w@XWvBXSy<6~ zy@XNi)j)^!2%FX%KdSCV9Tfffc8_{p8bZ*GAoXQy9 zK0Dc9^FXUj$>EexwJDpz1(hs`F-M@iCSi?Dg9!hK7xED zg3GqyCCW=Lul{IdG&%2mXj4s@@F+{7^TzvEL(J8+O4LaFrvPEyx%Rp_r$;YhkLm+Y3VZk_Swz`O_rFn zHuJ*DvFh59+fMoe)geCb1t(bs{`8q}THC-X){5^H4VYmb@t2flpnkVf`F8J55EtDR zo0_p$o9Pg~yj^$Ti_gId=R@xXdMY(6g>1~4Upot_=AZ2-|623B&|0L{_{c@ypHD>>E<~-}jcffebRr9X zx8M4*!PIVBz0z1^%{lEdDZxogzw*jaajX*9vl=8ViG$v{*9=+tGae-Z-%d+gfLg2=tQKPK){@ziJb zSe%IOy%UNp*n4(9btw|P|7mzepm${z7Dr~Nn>X8x7NnnwJk zS4R2NFI&`xT8D^gq=k%#pD(eB_%zRz5pV2ybAE@$@;}lz?(wK5ThaK_rR*W= zgp{s^lsJ8XR<*I~ZZCK?3_T5hOeUv(Z=X?BUtz3&Cr(4@7vP=wswr#djOC4(|)~^GUSlLPEz;+3$_LT;&Xzg3GKnemtAIr+&9!7xy@M zj8u9PIxDor{d7W-phxgY2Of|yY%MlqoaAo8GcLG9eBO{$xOr>i=JJYY%&!i=Yazeg z-#t$-y`h@EP&lDFPc}gRN!9KcFUR1KTltB(1KgRbfk zqvP^>>9dY}RL?oM^%=2_}zsm4mG->>sIe!e-s&h=~L<~&9GddgaB`x}?G z?vL)C_bsQeW!27#c&S5~OYT@wmdy__qrCJ>#=KgLXC3%#k|~=*cZ`+2IKcYZR?ogM zuH0rNqRs|x>Q~3T?0Am23ORnq5v3JZqZhab{adFxaBlruxl@6P{E?VEi(VeL4vStB z-v@E5BSY1wVrgaW%ecQGq!1$l;?SHKG=S0f%UUl=&;uxOc9`cP3^EXS~-u&GG)~ye4NaeP;O7hX(^* zGsl5V_GcW8C9b~sn*2^I!>2RJl+RJn^UwKL(v;X9yb#bB`ST^aGy{9y z3|-o8{?u8EHR1SX-fF)z@4%XIg*{7}ABHCVE1Jq)Sy@N_j$}MI_Ggxf&xc2S2*^qX z{YAQ(Pd9%L($$|{|5eQ6FhD;ue8KY1@O}ACAk+K0rn;RtNE>X*SNPvNfb+dcrIA{RhV%*N)$AAdibGXRD9uD_j8e`3{3Ty=Yn3_&q5~}&{bTg z!9qhZY;ry8T;~nO+kVC@IQ7XRmOpZ>%SE%qqI_1p6>I5G<*_QSR&)I}sRL^l8T}Pl z-jM#7Nt~$~ldYUMo&DjYO=jubP4%+vM7qBB?C6X2;V`*3)6QsUk9 z>gPTWF8ELFZgWo1t7=~7xFeIO_36ED=Ca|H-h-VtOj&y~+B}Es^QksZZ&FWi#QI$> znDlwj@Q`Wri ztEXoE3J4Uxhx}<~kFs-PiQd;tJR*5H`t>O?)v^ky&W4K^vFLGI)!DeelTG>ky0AE> zDBh>!&j@fa^od(^8qj%zUtxaf-Bu@W=KI(?>8+2%CcWr-)KrF&_0dhccY7q8^*+B_ z*m&e#UiQnIVfq{MlKuZgLzf-W%88vh8~QN(0sm`uOiw58YL0PTdo!Z-r+EoN-c*~z z7Xb}!Q~KWw1hw(O^br1u>eMX0JePBuE`zsnsm{7o@L$`zc7>?9p)y5bapFyfX6O5j zXy_={NWVZa)|~yGhMQ)g=r?^wf)al)EXjt4l<@kiMpF*`CThM3v*YT%r8Op3h?N}U zleyLrkvoE$dX}^6?psTM-P5(AcjWkx#pTGMR*&<#m?|8bn-NOs^Vn^|@Y%S+R?X^tmugOZoN+znhE9f@;0{LY!< zBKz?tGwf>k%b%>{HIKEt)6BQ_q%|wcDNdST(?O+R(I%A$AS#+@cf zw-*n*yd{^4iQh2R32G3c^W!qIu1+4jdSyis`+Nrm}nAZm`fXj zvp!f%{i!ehoEDclipk2gbDm>X*?-S-$9TfiG5t}saYNcMZZfEQIPZ5sQLX4RiYZer z+0}`u;ue+oqR`oi<&L7D*@~k0aqb6g3WYs{iYny>KG^hS89@!th-SiZ8se|6P7oAdA4i@nC{P5w?S%%?@3?vlHJ*;%UB zxfe3C@~(kxv*om0&o!5+6@}kFg!xSbe*WSyIr%8l?iA1z{S>uoulHx&`1ofemQ^R5 z{AJ`hW}dxXTz7?g@8OO@xVxJ`Po?#rqjdC5RxYCmsAmbYIn+1c%2~5a{?*AVP4rgn z3Tru)V%5Yk&${Z~nS*iU8!nvhXg`y4olPi=OmsEQ_ojXFdG)P%wq;Be$_9yi(!Y_H6$edYC>>H5prH=32kT{Y+ubKKqug%eGq;2ha*1GJI?uQr9?U(Wj z!PE@0VXT!clTTd!KCYnV-}6Q-uCvnL0K&wGbPZY1|*%8%1+otGF(IqkuOz zVb&n8Ld?+Q^cdaN^GH|DKd)Xo$@2ASpLyOr!`UNR8)pptTKk3N{eD&I1f7@{s<8`- zuFvROpu3f89mHOi(lfge`_NHe8EV37yGBsX>yeW_ZbHti-Wz-Q)Q4-!ine@8d7W~Z zS@5#A*zFU5@5jnz-WJ0@30ItSJ&`$Fn8ZGOkg#Jgh2vT3eh5}~0&kfpeH|ew%Uk`r zspMZDEg$2c^>pSJN3bJF(3SPe%d-MVP-Lp|`h6AC1^of%s|@Ew>y>l&{5%+lEERu> z3atibkASS&>joUbwtFf0i-#VTX>C}&IPZy%d`D<;SO$aN>7qVTg@y3*vN{e?N3}7L zC@aq=v0cfckCIdSd!44NH2+Ui7*}^BSRH>m#Qgb%z4HnS{Bq1ua==@u_rstqN1!7) zRkT0gSGQi}UTjcele~J?(|fY7$c2qEXyo;TCiSV=xpsW!SK3Q6(yt^jjW<|;x5eWu zFIErbKidPF*Zb3y@kXBr9gblGN2?QePAhNu&3bTBTfR6ud5se$pL75~v#M9;x|j0T zKTD!a`1+=FBIz&2J-*EkqA`B)98n5K3@6I~=WQ>ieqgFFcZwQk%_auRrXUm4&va<&;yyscP)M}3@T;tyA`~=GxcW5Lu=dEo)PFnL#x)QgY^B{9Nu|e$Mpi zj!%a7v)SPeCh8%t8OEsy#eKo$*Li+YoA>*hQ@ls634J)ZYM(;q8ryu1hmBiKh{s!g zFRiBe@|Y}L>0I_<&5L>LjpsbJ6&Vh@sVbV)o&=vi7Fp*-moRz!QaodGS&{2r$YS_Z z0?S=I&^fMU+jw36&v9E#)W-@ZOtABraGA$J_T@sv+|jW3mlVZ4P{2YviCN*w+OAJR#<#%Y)s^xCCQEWt-D{?8X#L2@#0 zbBh9e1X(UIniJ%Xgti=9#RRJT!gl_o!z)w5?LSO-{Zv2w;+BgK%A9xhBwEy1&&gy5 ziGES;5TJEPe(R<_XOk9*FN@EeP7(T*8o$log)8ikenYLU%ysXvxEfFI<+d8-ezEjh zSK^macg;j8gXA=n1t+st*(|fC&$#c@7jW)g;622W(!#K_nS&j&eDRziky)!lxo*mFUwb&r#=@iJ?KyJUgFk3T zW5O+NTui&y?AYd~I8VE0e+sjmzbV&#>JELs+*Mz_2R(7?nge3gY6odF2DZ4S4i41# zQf@AatE$DvB(4o~ln&g}(Nl=IqWqk%{EC9lGeOD%ip1SeS|(K!8g@e&TxP0|s)Fgy<;0bKpZ|@3A=nDk9&hxyP2Pqiy(lu>c(N$n*o0@4)4E zb()yuo$=O3cvD4meRqnYVAo?gndQco9?Rl}CFlEv)z!BbH-9~(Vj!pKd{KC`h(ExG zyZA&VSMlNHVJeRf-h(qmqf`teOltWuQ%R5Y7{Sn>r|dx`bDZe4J;K?8e64@u6}iL1 zn7$R6A>ZzcHg~23HbcG&EdFzmG=Iv+WLYGC>g1!TqroPZh?iH(xlM$&+!BPDGQB#+ z*$UQseoi@t?~P3T3fnVX)>PUTTdvEmH2kSt{lu-t`}{+=a>v6o+`I42rXh((P)#p) zwq&|e!|L1ExQO;s`C80|vaB>^maB=?y=>tn0Z==ygf)uvi&yZUw`skTon!s^PU4M! znKnW@e=pvRvMf6vU-MYbQSYX(2ne-MQ)1Z6Q7;brs|yuRNu+tYWn3{nyXCO#k>^Lh zc`ncI?B?Ax0e_>6aP6^XtGo*v-_(T`$UP;idZ*PH$eXjmAM~7Dg&p`2mY39Ru9Ebj zEi#_Ol#eEy%>vcyy`(hl@2VZIjNz};)9`a-1!vlk0iJ5wpJblPRoC`#;ArqmvFeH? zwOOYs%`-!tykGAxckzCexhef-EHRk$3!$K&ayjYodqGby%xax2u;q)Ed2DCu zMa?nh)ifM=%zjrJ=Wc}+)&28+9D(`@F_D)xf7P2`6W!qfaxs@W7KK-L)M_<83Vb`2 z8nrw=Y@bLK^MoIq*<(WB?%-c03iN^?=rd{dZHwaA`gD?Z1| zk<26PFrBmNR(DTo6AO32Zw9a>hCWYv@gYv`%+8r*Ym15x9pkY%fy*CwWCSKa za$vw0ol$Y?S(z^UjPo_x9dqjAKyF~===M(MVb&-G`-#b^{Dmp4f3}tXY}4`*l(NqK zywV}eQN(0*V3To@cCLGMRF>MZc|BU;(xOS5X)93dZT+!wc!)j0T|ZXt{L*u_(0Ai* z!5qB%H>RCZcLtmUJhq+KDE%^`Rf_M0E-gM_Ew7bLaATn<+gK8i%>;jP9F|SXmYG=n z=nvI5)QJ{wjP*l&Gv|)da*E=<$YF zkHoK>{>Ae%p~Ly~7uUONfZk%ta5I>Z-q{I1^vBjPvw@llN#jn7`i>5_PPIZd)jvQ;__aj_Dy;G^#{j0 z5}dVmWcir*VD)`1TEpasC_fh9JX|Eobm--CLtf9()xpYMO!-1~Wm!+s`tObpouhwy z!ufCh^mf-}xmSAGZMCLDfzI&*mbkvw*%~sd5EJFIHGS#a1168pQ&z7Xz30q8A*{sddm7RxC{QF%U(+M4F1oe5R%qY+te zET$Nz&hqDSy8qks6m9p34tb~MXw?4X6J-)yn zxX#3`$d28_zqpiz-E@fWC=Jq2=w4ax4YqGyM5M^;&q!fQ)Y|L-d}vrt@PQ|9o|DId0ZQMbm3-E;i<{>@-hZjW-+R z+-hWJ%Kkp*)Xhz8YE?Xs$pUqI`PbpD*_+uh++$2DT4MzN3^RI=@zMI|ka1E2bzFA) z8x8OHtZcroChdNV1nv_?h#i^>eSD_9P3Unzz!#OGi=KaS{mS0xGwlpMqK6z0WM%{eRO#t_<9lE1 zX%f!BdQM#V&gk{x?`-F!PY&Z53mSCa6?&E!SFq-u&#jgJJlLSU!ENJ{)c0DxoUSQ| z^@D1{e23%3FJ}vW-TGpE$WMatTNQrbiGw3+L-V5K!0OWj@*_v?3fCNzkUjDXyNbsN z*8C|=<-M-ur!0<%nsMa%1d~(#REgrW5q*f=sCVnVduqw=p9ji{Kg|q_{wMx`gyisH zlK@geD%^MChvSNMqjpWTrB{rs=@NK1nM zPkXd5ePAklL0Mk*|BoloSgC$uI=5WW)C+`U>4&gK@73_$YpdsG>S!;}Yzr)~%XD^rBOeeE2+ z)xnv_jdJC2RVMo*Z?(DMiOF3 zE)jokNfWc?Eb#ihqxd9}PJB6wBe1$@jbGe2LF}D-i7`27;zu_`@Q+60@F%s^iGK9v zM4BHFK##c$R%7h=UmiW!XlW|3l4wh;5MDvAb%Kbo^-AdG*GyP8VMH9{O(sShze!xl zD#yDY4g{gb%=oB|MM#fq;V)yJ=W{)r+5I)D@FT@-)smF&nF zM`EP+4Pw)hE^+C=5L$jAjejcMgFXs56WL?dF_F9$@Q9Wie~et5s3j*x;NGxB4uS#7_7|4Z8b+k2+yvKh zoQPwW-HC*jY2wPrYhw2FJ0gye9{=gIIq^YP7?CRjN6b^SB5J4x;q%1|@awwbc%=d< z{0J(+J98XqYLI=0$6wpWb7)WFIek4q+gcOW{%R9VfAhe%a~=k^?mT!ClL%y$RE%D; zv0{@Ph9e@TnV>_~EfObnxpXq7r>J{(_Gno>htu z-x1S;>X)5~MX_JORzm6Y*y)QAlOP%mt77mDhJcQiE-@_a9+0f&| zIpp_J33@REB7fgv_zm3!C!Xja7yDSmfxiu2M81Y_pc0K6oP&jmsi-VK5sh(t_@|w* zAG|;QZPK;>OPmw^pW7*>EPwvL8H>N|M1h;1X#r^i36aBG09q=9f=evFpr+7MOoW|^ zc^xgMj9Lk|f2FG*2? z*%oSg+lrRerGScL9CjxDJNA9A2&p*7Vb5x4@vg&`AR@Q`WMvLOE3a%&21)RzE}kLy z`9my-KL~u{BEn6{4yZJaM@_teK#|r6$wfBcI$l(O^$Qeu1NO(DzF-a7nA`*8na4p3 zj~y0%TNwnK*rHcqRdDDj4h0-6KrdalkfbyYT%XZH!EtXLNuSM|a7J_vs+ zUqNOJ8U(s_MmT&$9b?vzMr?(psM4(yK5^}WH+0Uy;`X=jNkTl*jAA7|DENf*{rmw{ zF&kzy8;+P>`=coiM&QJs2)m?1K#+ABz|&^{V7!i9x3~}9H~Ju|&2U_u-#n%)u@55p zePKk%Nun_{L)te>K<|yOkuHU|cv$-P$$R@)uuYfTuEaE&-T+k1Sc+=z65(2@> zOc>##ZYNCeaYhJ~L!0XEV-0VT3-TFK@?u}6EMxXwOiIrj*Z zWDr2a(F1rf^5>9I`WH|Lm;?QDBzUtNW)OvsK>mJyVCX|KHrF$VBiAcJ(ew||^o%hg zpZ4!4o{hiH&t`5F%2n*uG{BWQ?56QM{PECIae(TG1v|GL zWKzf@UIabuN=9@m+0cqF4QJb015{!u@UPsdVb-r9!hJSRz@=9UANWu}l5J%aUYCg7 z{?P;1JUSSb z((VUx;&MP89Vv>>xP(qLW+RfrW>_?P72$RDC_!+i5Nw|2LQJZ1U;v&%POenw@$M~f z`F$SJ+JyvLVNRmo4LRuGw17=svj-35Y0#oT1d1ObLaASe;ij!uQ;!2X(%#nrZx;wy z)b>GQOxzxDH=;1-*O_B>2oerq|S;aKeJ#P^wGfJ=P1sx^$_~?)fBn&MFQP96A)^| zgDn?3!E6gLB$VL|Z*df2uh+8?XeC1tiEH3kCmvu50q8R8eR#_93?>~0;PV@_=>2PB zRQdTU7GYEmbzUss-h?M23wL28`|TQ9mfu0&!*|g|EoJ0^DFB`;pAkpgHl5sXmnqcqWI|kQ z2Z$%Cj}etiU!q~UdL+hl3(0)ULQ&^}A@5Ud#Ec6Sk$)LA9AE?j zWxU|}P!ed3c?U1u%*C`O<_RCv5#dI{AoP;^4fIE?LDOmsCQk0#NT))ES}MYYpgZkqx@&a~e>5I!*9n;ebp{hmibjKQul%1rz(#v5jd`{F3W7 zSTG*I)POan=bnzueI>)618k`H-63MIN;&F0GzC-DJJH47YIJa82W@l_QIHuCl@`+h zjVhLKWeSoqxC7e2%gZS^2qq-mOag!ZS z;McR+=os}QLYovB;;VRu9V(VYL9W-)=>`FCZAlw_%{T+PzdXePH}0YZeo|!7+z(r) zlacV+VPK{InK1Zj8_u(}qXVM}fQ7pdqwX_9@ip;iAutAAlY5Lr0v)hb-T~M>Y6f)f z5y7C?BQUSm0TjPK0Y_G9LC8K1J9B{oGroKm@Fm26ns;8{S+Fqz2X_fuHbQ9Tr7AYq z!;5ZcUO^p7Ww_dxhp~#U+Mx5LK4iUe7g6QcfQFi9AZUpb+>cp7PQ|K7r*RHDqgDaG zbLOK-u0)g>{1oA4yD*~j1>99nf0SBPf!=)eKm%?=K=4Z#W}Xm(ekL!#8#pteS?9v3w&s zkb4~pjutcp=SD*wwiGnXUW~LoEU;+~IpBb%LB+++CdE%g%=n!*coumaq&y7+@z=j$ zUg_cB70+dy-6eOxej^Nq^Jjxs@8k^5k{-g5Gz4R@>%&;6uMeunRbjTQYPfYXU))gMPY`yS4}MR! z!U(UTP-gc%l$hHHkNWJwo`Z|nJ#t4B_sRzr(^VlW4OvtldjN#3kHRoGg({@_(U##0 zoYUSklKL%!L=@bh-N9mv+N*iKekqkjyh>Pmy;Xip)6ZYg$z{s&@H ztVhAh(biOe zx$qR~EBFaBFMJ{NY=nY3qirZ@PKL}5v!bp)F*s128O!N81Mhnlq8zWID9FPMtv)yo znrSV7sF607ktYf?yx#-!0(Rmw7J=N>^igifL1cD;4EPVdMNbn&iCZp5h_5u4Q0Aj+ zh;6$XopOGRY(oR!bbK1-uz3RBHx)y5+Xv7)BL>8-S|^K)uD}PE>M=vNbl}Gj4<_z? z2F-cru|kzybbp3`w6xuzKuQ&SZhIK1^-&N#hP+UE4jmFO>%kdy-v>Pc4d}(1D^kni zgvzdRNa%eifm`M`=9GE^SeFWcrS}lj)OcXOn-72jgG-<}aS!KYUj~bJ6JTLUO4IP2 z5GdF625n0F<9rwd2w~(FNa(vcX6Swk99epX!xu<{3+tyqEv+HU8JNQQCHcYg?`P0~ z(kaX#JqtKi#Dk_$E_l;95?qvQfM<3RK-8Niz{_5WnRZu!^h8r2_=*jw%WLBFW2@oy zLq{;*QwW?(34)|aKd~~+B)~a2jP&RZfIV+Yd=Bn2C{cccl^duas~kyST7Max!Ly;y zGQ#L%7Zai$egR%^JOroMI017u8$OyO8hv36#7q}^p!Iz^lycxKNN=V=*~~wY8NUMR zwTVO2?cO*Evv1NY{_g00IG$e( z*h2d)^r=J#DU~vT3inemn{E=S-)VvB{dX~C?mj}BOc-*P&qZe!4*;OsgWW3gfvygn zII_>D(Z~Z|%s}cGu?g}MCr5qJfX7F)?itmn9hiW`<_=*w3YEC)*Kr_NcN!}%dI1uh zG(f5BLA;0^Gk$V31}oSNBRnCjV-a2a_(!+qL4n~zkYN&l=+e!>ih~wbSfz#V-x7hA zwFa1D(73QByYs}4urCma zy>C4a>gR&N2|7_=>7)!k2WrBvUdd3`_!;KSc@G&>j-a%M;;2~L4AH#3i_#ku(1)wE z$d0lWZLm=yhYlO0@JRvd5U|4zHy?(&gHJHZ`Y15J-iNem4Ut`MJ3`@&==HZ`w8c9N zs#2PfveE(~zgLCu@l43SB^#s$UxNDFD&TGKL3~qwDu{hl0Xr0J(U74IKz@OsVdf;> z^Sv05O!dSGvUS3K2M+vYodK}rqX_qR6T#<$p&;i41ALz!NRUCvP#N9A)EwTybmtnh z$Z`Vha+JYqD>DdpstY}!DTC^-)DWM-8N|#Zg*{#uMTrqKsCG6AC%O`dk)kCK^hgu1 zDVxFa$Zc4DPy;=>D-T_A*s+r_x+uWt4OA;F!j5D;N6Nj6P%JS!~)a6o#2HgOhQ&SZx1y6f*S%1+Kh; z+OKB76|{nV`|=8jl6*yHPj8|GI$rRCjTsCYR5tl`H6vNKFX*(?2^6>I55W{WiW%#} zZs21ukF;wb{wD=Kx?>P?xflY3zHy*K8P71SbYTLIT~O_0H&gF_CFvzeHQvL{t>#f?Opqa6rXb&iEAll#?KAx0`~Len7H0Oz%)YxC{yRaEj~Ty+VT*Lwhm!2 z{5h!Dw+RdQyjg2OP3-}+ zaOFH`7{{U3v|f}TUW6##9HIFdB>o;C-fJg;a{?ziPg8(& z8Mu(asW^a7Pe3VaPtZ4iOR$JL287r@U^Fy0(CtgssL$#E(X0OuswO>%e|G{yF&sJQ z_hcbFS^E~eN(=-CAGV|MckM{CWgmJ*zXYr^GN8Pl8o39B%U)K}0W9+oz;F8zz@#^@ z{Y%$yKR#c@aZj@VsUNA(hHDK)a=k{^3bo-@NV@E&z?X2aEf&$72u7y^Y0;TZ0X*CD zR6_a^JAC0{g__liu*B_a;H&F-bjj>E5?8H<^fpvjb?Q4<+hG7L+V)^3-+Ayx%LP@< zhoVcrLjq7k1#$V~Hw@V1u@tpvZsLgs3KT0I*ox)FpWt$?3hN(lDWvrtXc037}C785-&goQA8VD_CPD4tXf;6zoh5*}?JKD+|s zbT)9WZ$u+bBL>jG@C3ovKXKPnl#o%I7`mf+mS{7EP|3GR$gq=vhVs6lH-^kaz2!<+ ztUL%EtyR%=lK~{td<;noumP(3dO$Of6-0WApe{X6%vzi0s7lRap`QMII<_t&@Vg#EEAq0 zc#uxx=$j4zoA=4+o5fs{#eGFk!xfL}TpyuqA~_Vjm4~eAKcNNZZj=Meu?vN-2pe+q zkl|o58k`)#a3>JN`2WnkB4H${kcAHV?c*+8LdZSY9qs1dMeZ?oP}lwdGW`n$ z%ltxAbgmXttKJ2UpS1y_(Osk?6O0C4PN0_zN1BA3u7D4OaHLB)&?IB2iWPrPfJyzC zurA31g~5X;q#zPW$DGHG9yWp0re!cU&=0y@3IsM8`QTUMPe`Bp0WJ^~2zp)~xT--@ zShO+>tt~!)`x6e}HVHH0c+C&;>Rw@4I$uEAtUA!w)j&E?76i*hZlwDu5>SQbpmOP4 z9LJ${@bq;lDEt(PzUO|&MQD>F&yH|RH2WufLVW_P^KM}0mD918E`i|bb|CzwT?~;S zDe9*ufFn6W!2GEyMj71!oz^QLS*#jHCpQ4Jj%)zwUn%I8$qYo;N$_}HAF?rA2g(LS zP%Fp*E{k`-@t{W_-t8npkPOdO6#}ZtkHJep<>>O4d33XzAG^b=fb2qQ(DP<0TsMXR z_qIUn{pLP=Z+8s)ax5NuZ97K5KB=HkV^R=LwuLUCuIeB)(e3!f%RJ|=+H=^ld2DsogJF%AYihEbT!DdhXo7un*8qn*Wgh`-kX=_aEQ)CFW;ALY7lsZ9j}8qD zVWO7hz%_#cJtU-||{3$ztKbS1A&Oc@)^7=*NkxGis!;f59XxdCEW*uL;qKH_p^Rl}H2Y>5{wQ*Wp;?*8Na!Gu>Kqpoda#CB za0{YEWhSsXn+PO=+re=*CQPEK51NlG0%6JPgf}E9z>hu^d&&?CG^#6s;tn0ASRsJL zL_b6i?>2$aq(AxWJqFbGSq{jAmBE9pn}C}~1WbC65;sGBpNE^9e#vM`mGq9UXXGVE`^ykH80=uZ2`k%Tl`_CFSJX#L9%$UF>t|wTDl?*0vej0n%u?5IxPGM21(x6tj28)bL z1Vl4)Jg8H^ezOZ>+Is1z%FPUgz^~{c;XVqQ%O%{Ddx+SK01~R*$70V@pyHb;&|cLV zCB?mhA2bA!YE&Q4xj6|RD80uBcSV8Q4L*FdRUweQJ_CqIla4{B&-)&2$({t|1|olIj&77^8ISD! zej($&c;xHKLZnljfx#(-=)2`CD!u#;_R$>%uIJUk*V~r>ZB;d*@fbmVY|`k506F;Z zItrs%qeRum#UNqwATs;f0sGk}VB%5^QhBU`Yn;<1kdLvWOA@xgpMwcA6_ZC|Qi+i1 zUL1;h@))pxs0Nob{gJS9C^}sA0~TA{1q(k9V|TxfL$8Dp*djy$5FZ&BNZleRm?fZ$ zha^N3y%3Q4`XV&SyNsK@U4iT;xlOYWCSK0mb>j@Ypvs`~?kG)qb_Dt;E&zR>{eoDYF73Lva+DuD~j4*`jGEYRL~PEa&6 zM*VYQApe5`u=-jHNG~PAc6UvntYZu1nH#YSb96}VZ8+hUNgSL!Ed$v!-pHOZlLl?4 zX5nIB3%E_!fwhiQgP7w8SX=M_KF>yw_*xCVezGQe@S6l$mN-a^{M?3_vlHMg<_dUF z)&iBq^AM>Toq$-%1)xV+2ODO{@l0Km=!4O3OhDBO>=2EBL#`_D#crS?p+}&q_yGR> zmk@A8hXGh}WP-N?I$YhOK}Pqza9N(wfSS7omd!@M(YAef`m!*5{HP1L%0EM* zU86WGj2F$kzk&<@_!GWvBLz=!e83r$0Nq$Rv}de<#@nCEbT?{)Y!@r+>_ZWRcyz#u zP7frDY=;zar!YbbLK?-jIL2jjL=?uO*t;j;1Oqutxh;flP^TjD$Mxvpr^hI*&BZmDuAp}6zbxoM>}dpKtp~2WE9OJkw{6XW0nfe>;t?OBP)L3QUv0`_rm)of_VF? zaiAKf2I@2G2@Neu=n~-}#A8PR>rD}KfjI)an`gir)<0n?hs3bpJLTwHTmZu5H^Do* zp`iGL8DWg%7IdD%JXNt;TTs02+rjUYII1<1E zmmuk8lIzIs{3i5sy-XCg(8Ai!p9F(puThjRBav@FglOU#j#`>nLH}8!Ce;JIIGU1t zg1l%e`tgJnM5n5OD~A3+N;?W9exyTrb9(Th%4=}tGb14Hy9>z9mm&$lXj#2915A}_ z370f~lvtY8NszS*YvML>Km)H+2+RVi@KnY&_EMyy>Br=2m^twX{nn*{@{3|X{q-Y| zEVl%n@^%2LtyHk15eU7h4}+#(jCg`*CMHGIih3&S!EX8jcC_R&Vx8tgyWzPA_th3$ zB7F{hN0Q*7wu9Jp%5_4KH3narlz`U}a)7^p7CL=#06vd+A(wp?XgyyHn3_*w!&C2J zsHFv>WpRV~#4GS?I|VUWwgGX7bi;GU&V$If3?wMTN#qU@BCg!kL(5U;!J!Aigex5m zKwI|{U=-p+-X3a*=3NPNakvlMxo&}TN_r?fItwO-`J;kuYP`1D0#=ndgUC=CaQ-kC+u`Xf<)YXd4}xsS^`s|P|4Ux8a!o}eRJ31~gW7uEUequoaa zu(T%*Mcrw}NgMbA;ky$seexo%{k;nKU?~iKi}Au1Cqv-c!w&9=E`pD%Z-Cz|f1n}J z(nN3X4s=FYfGN)bC_g2IjN((VFG}iQF4z!u)CVKB+vm}4TmljdIt9|6u)(%nZ}^S$ z8Fc>HgbLoi2N~0^K&OiZU^8+9HHSjs8Pa|DkX{_hr*}cwSqUOznKH7Kr6aOWY7w_Z zZxN5W(I9lj0*xGK#j;bg;CK=(c%raR5N)u>T4*)VXrByPUeyLc{&}*GG6E61kqp5? zjUNSK)Hv=$Dd3dLj!QCSM1Egf2~RJ^f`v*)T$jc?@>o7jBxOrQEXr1>)FTH`Uv9^) z#{XH*+=J0GlP{R|*E@iUmkW#U8o`d~k6@;^R|)T>&48|53$AS|xT!TH1U>gR2hJxR zp%+yCh`-IVN!UCKW!UII>e;uL2Qw9#9ArZ|%$I?ii3l(fN(Z4;&(ThO#h-kK6z#ET zqG*d&>`KpRWPHK}kgAg4VisILBk?654x522(lSist`qRNNC4l`6A82Pud$k!0G4dn zBiVP8*rv~Y%#*$naFoyhuaCNLm7WS*T5|)tygIUvIYSW(a~uq9Nkd1Rs*yv$YmgVV z(&V21m5}(p2q&l>A=`9L6(ln~!u{}10@?a8Sex!sxN{~C67iHM`JpS4t$BqsQqB;q zJ5$ju3Tc>kZUcqZP$N~P)5LvS3Hac`L-bnl3t}gO=v=oSdZ+7)!)-qWLpJ(QqdXoL zz!Q(-7nue@Gz8%3uLzF3$j1!B$FSs19pFOZ4PMf5;U!wz0d_P7J@xvAl;@V=$=3(K zXDc#dxzizH=gcSg(dsR{_wE&<382NM>|D?{#vo)j69b9TgUC3Z6q%3OpwDL_QAI)m z8q(-PEOOe2hms0;zdDG-LY9yg-71=1c1PKoZ<~HHNJGx*di06uFw$=d#zX?9F{dtw z%um#!&_*qk;=u>vr(_V$dQ;4%2|JQLt>JAj#i50Eb@f_e2NtmN=dX!&IeCgyjc zEQx6-dLbTtrYJ`@&>X?dYZqKluLIKEZLn5I39z(O1Cfb-pjaJ;36X@Odum4kX8|St zbIlVJpCJl+$*jR;BnEn;4)Z)LBAh|+ zQR6G@lK3(lFU>%vwt0|yOasMUv_+%#vZ$d<3|UNUKzS-<^cWVRjHpOtvlj`eO)f$g zvV%ye%&$pbl?;Bd=|M9NH*gybOdxxj1b(tF0_zc8fK=KTZ80aKkLEK-ncNEy8$3bM z$|{y`1lp;vLzx?VO}5`lv13wJz%qCM2_j`+;oSr}9_4_oz4j)- zFS9WIbuZfIQbF>x5}=6L9eeeV0sf$9Mh`?n(QlUscv1Kve9adLo{s%Q2i5>)B=HOs zgcf3|8d@lWKN?k&>mfFmDj*zw24(%pyM9sm%POn=#A&Ifpk?1lELk~#kZw-{=mjDO z0(rw&y;BFqypfH2oaYKx4pzg2etXdL-5L<~O%eTBHgM?_C%98`6&g~=q0(d*bhJI;9Wv1=4aQGM49e9WQ zGn$$fM_ws$XmFPelv2GwUJYUJe7!2h`;r@Dt20C&jPw5%9u0*UlZP7EH{R5IoH+*3NK!Ri(+44Y1d)!1mA(~Rj}jE z9g+lgi9M)Hu>lTkGS~b)8K5g2bz@n28HqESjoj0ILVa`CsLX*qoi1v z9HEWWx@6I_;L~tDP6XW2nt*zTUO*#qI>eWzjC==+QOK(zH2s|$Z5m#J-&`NScTxAi ztHvl~{;>*5TwowB*uH~^k?WhU5UDk$%s}2*XbQjU1g-G;zB?dW#9VXI>A4bz(3c+C$2B3H# zoY1Zp4wAWJ!R42vcvkl*V0NGgP}Qq7*AP%>tDOD9M()c)guYKL4G~ZoRG~Poz^AZ!$8=kxmDFhUE*j$n)LBhXEm57^B}8lax6hLM}wW1+&5;I7Ig97S6Ryj3X$cAxrz zA5xrn!w(Ty<6A$>O+p{FVe6Pj;sAJ;5knX$e2J!6Y?`7m4*bY)2~O^y0#U??7DY*& z2dA%i;4NQ~B2W~A-d_wucQ}p%afAEFnw=J1;SfUE&lqt(Y|KHWz6G`-Oo}eF=OU|( zpSS|2Nw8XV5)>4tV=_nckcA;XdhqTLKJ0EkkY(~g6}1T{`W^|ikUENgdyWbo7LNqx z{0x}mwIWOtD}fIgo50{MJ(LuFfXf<4gwpn*KyD=#L~y=^+=U--yH=gp`jP=s?+ym^ zn#aMW=uwpZA`Ly>%Lcq*@<6TS1dP`(Mf~Rjq1W$o;9-M3_&NZ9-On7vuCar2{;i2@ zyS^iX$K+7>`gg*)Xl9_`^%+)KnZZVaGU_qzLuM8Y$lXCRB zQo2fvcRWOtE~X=rk`*A5G&16aABTxt62EZb{F*Ykn_gn>^|5naJ;q+Q!8Tl+Q?y58XimlExehHWlv48D(Y>3Xp)5*74f<(X{z?=-?i z5=tUvPByd{jmOOBT>+$)1Uu(EkT#(X^P)(=M6`I2hSd{vK3N9d6>NuX+4Mj;?N9A` z=_@jD!=u8fByfYT73*aI*x3ME)IM|?u(=jsVIDP@daeZSHzz67R-eZ<(pZV3w^dLi zyCkI0KZQRVzl7?B8HhidNr+^(rBQzCMXYov4v~A=BTCK##0Z@*ly@wf@WSUbY6xgV z#z_~N!a{;TMV2q-66uZ@Dm$TJqZK%Qh7$`7(nD{QW|72iQNWno0jj+k3AR*IaEh9M z?!VwBqK|!qG9DH<-KvSqyEur|&-bAC<6fXe-v!1KA2#LM2cr{O_1OMlVZ8Bh7j}_% z5ZWE!Kt+*rU=EuCgp&=(Xp|j9szw37`7V%@IRl(G1F;kMyC|bB2;)$_2A*D~z)sDt zgCt2O@U74tI~;rfzbhhu|5g_csvj(3>IcX{2C@J>F+t$k1Ak;=e-kvD6+-A@isq#K zVRTLnyu>05eC~dLUKl5=v^qpQ$!moCl^y|4C0Y2x=opC27Yai{DJz{SY}y$?dfcA@Vu;Mf|-fiZyh zfGrB6-A0ctNdv;q_aKr{4oT36AfNMZQBK7)PQO41#B8dgT-touuJ7Y;vWgB}cBmuN ziJky8eGtZ6zKHq9oP*pvGw9pC0(hPA9xE!?gelsM;B5&nzAE(tc*JOdO`J)`CRC2# zDcUK~a;+sa`MnD-7EyyC!`ncI@*HNua}$K0kHnqK#9_p2!NAWrD z5xL?JWPKC_?AndM_LE8YXxRr5FLZ*$C@tWd8;I6K$Dtx^I3b1j5fdxLH?C__qtjY( zf9B+>Y~G*x@#Uf&AU<-zX+>)S-C9#bkbQ~?dF3@t@`>6Qy&jp{Ilzq|Rc7O#4@%t2Qm9`cuOgwFzMPxE1h?Jd5yR=mo0(orGw8 zpMk8E0dVJb8$8O<3Yjt^WI65UKt%09h}aH+V)0Aptf34l`H+Mf7?|O;=96gYEgRHs zj6~_KJ;>Az2ey)>P=`$huJ}R%sO}y|ea|Ow6`VoXLR=LtKx!2yst^rHr-U$e&RIlZ zDT1V;>_AS@IUszQ2~l-wqr-!7SjK`Bs(&Glu7;mP3Z+BnwY59i3CMyjap|bzi#+7W zZbe=aB;a({Mf6niDcs#)A!h6|AmVL)L8THMT8Cg3TPwZ5gMGN1GTsd;2Mq}ZbT`=GCvi>Ag_k$q^Ki~z5y7Q17Tyb7OwEN zCHCXyEOdQ<#|;ek!DrjtVDY30NECrxQ0UVhl<0f|%>O)s5xl&>@)ia5LMR5ARqSH~{nPLR`2!%VNeP!=JsJjSf5v73 z5~mbGVyeS9((WPj>U0qFdhUj7dsku6x*{ww1PDtKK`nNUxOSWvvK?(CJQqrXygl2v z!dx7PEh@(Xb!LoueLN1$re5KJdUAp9E~(xl6VF^6R^ zxp!TdtF#QFy~c@Xvr^&xeJ^k!>jRW9Q3I!a8A1Mm7TjH%ICQtJ98Lw*V1C~#qP@ZwCQi78(3u4-vnYJR&ETk;RV15{mDK0w5I#?o@}uvi?Vy zwG|JdRM!U|CiOw*JPH1#OatNlb|>NGP9gX@)e1yvao~5MJSa=91RPa|02}8Bw&pzu zUU@ozdRq<9AKd@~4^aT);q03~6^@DUg*CW7QeNn~m!2HX~QaFR?1z==glq`g}R zj(<)9J4Aa-U^o&6_8uY%CK{oZJNA(Ntv_;D7($B|TaopfP-3PBB}Vrn7d`uW1*dlI zHfW5dA;uCTK&bzpT4eVQNLarNS}jz7NHGCS$6O~|e4GZG(}RJN<99e6>4aXV@d3Kc zgDA(~3@H2}4#$6Ppw(*}#3d7D;#kE?MC(i-VBb$+%@?ha!J%b%D?$UFc&G}(4xfSk zaW5MN3;dCnzzQr1O$6#cOR+?W8SK?oIZBC=Mn^1?WH-*90yT^P@Q{1qVjibpQ`V!vj$AjkCV-ZCP=T@0$qF6idI?i#PgqMiJ#4X zqM8yeT=E+Z;<-9U6ruM3&C!*i&%ci2b#ratWKA(}(lh}S)kPrS#VI_sEgl_CpU0iK zsDfl|P7-QN52BwJ!qGjVCYE5z0(=q!q0R0=nEkj9)!Z;_vO{Sox1|Kd?%SZm(KXzo zG<8JY)Q3Fsn&D|_8sMxQi;?aIK+ozds2bykdP`-2!4@Z`6UK}6gwhKOpOqmnd+L44@!WRE?(s>ps=+&O|UOk35gWWNko@K_C!YsDS6CG=SBH z4O-{>0!2mCQ2n!BXx@+t(1+{j#`tM)O8W$&atcJCOBCr-TLAShrQr4A3P_|Lz%-0- z$m92W@Q~yrzLRMS7z>f%%f%S+ZA{#F9ft>?qKOx&W2WFpZV1p`ki@5?Pr=yFW0>KQ zQPAh{5V&t~qGwxU@Ib>$!s_=r!c8_~$hoKlo>`ZGNB5e+gFE}+#=(OiXu1iFtJ{*T+y|M}3 zO9p_k^@=Rr`8;$8rXlR*2v%-A2u+NR;6H7O;x9gY47TZ7(V_3YSmMAJEPHYn+jrDO zsqF&9O@(Kuk-8T7cy*$O-$@buOMdi5RSxPIwqpJVQh*!#C9r$oJ?{2IG;j{g#%`jk z;N4vj(8vD*D=(k}_p={i>bh;n*(w6x`Ak115H+F6s?xh?8G?+2g(n*Q07mWqCNnT@0UkWf?{V))#!-7x!7!2(3eVG0^ z1&}N|ip}TMgVn>Av6shgVdc&(1n-G(gr)t-@%WFUbEpa=B|OG#$nKzfJY|sQ)d6B` z$~YG7d$<{ zAB+`HM4h!u1g@P4o(1o7|i5$1~5!8r8 zLag#A{yHtu@#7n$bi4xz4yB=w&F>Ij>kn9%{0xmT|AZq4c94sT7nLdRaW zr=CMO!7_Afj}HIKAsA7x#~{C;6|6Yg z6bPyf0P58y@De``+08Z(B|QhR$!`?WJtf1lhVvj-p%>_o?o%XuJq_wUeg?RXY+-rz z_t1iQHekvu0Aw{3_}l4GAQh%V*K5gubpa0;^=&ZWoFVM$CLP)&qXiHB?t??3(crYF zACS8dfZkM3!PGQmQ2fjlT;S`0k5_M@tExgc_0!t0O|A=kjtYV0XIpT^-gB^`ObE(0 z@S%hGvEY?MKYYeXj*Kc>!MXUin1r+tC}*KZ>iH^|jUYeJd#{MjyuX1ty?lg{#PSh) zG7sYQ`ih!8ju2n-93nnSNJA@vR%lQn1UU%jp#0S-6ece64`mwFTxze=P-S5w;jE@1&^a4~ z9vMD_D*PkZxtIX-lr9c%Kg@%54^>eaX$yK?8-%!K#L)3}jwZ(jStKnMj>uxe(DiUf zR6t8hm^@wr2KI8$y`o2G?ruwy0$Jl0f!!lQ9Edk_osD90su?D(LL#bY$3;iZnC_&@O3G<7XZ#WV(O7>0BiZ@#QgUqV`oi z6f^S{@GCxRyw6dCCRHw?cAH?R#<&0#6oW8EO)mV(mD`|CBLT&PoFjy;QQ?E(C6ESf z2?v?aqvvaZ=-t*cR9$%j>9iE0W{wn)S`>rCBPu|bH7VFt)WKd{NQ7$oB*Yv-I`TF8 zf;K~>(d^bC#7Wf#KNrg(fq)Eb?4A;$d>Vkb7^cA7$a7$OM;yE&J&C%$(t~fM)Zn0F zDpa!y!=8Nc$4VW?q1F8*%(>gTdMoo0tH57;)ibqQ1LP*+R56imU0%m4hfs0}a z9KYUAkdiBfo=jor)ag7l5AbM+dla{`bOJfn31D|0;K9`qLqbG450Dr?g=%c+5XU?b z6+>glB3+GT)3Tv98UmWzr6o#!F~PNWc7pblcyyGi9etFZhrd6UgA$WG*nM6eQN58u zB}2@xWmW^eJl~Cdp$G+o61=#2nU9dinH`1YxPZdfW8n5THvE()DdIYo(J0{;4IR%# zfX6$uK=aW&U&^cDaIhdw!%+&0HaZ0!t#0B31ZOZM0~^S7V5ez1;U3_XHU^$a zo@jq32&F#U#8OX`Lej=L^sNUEPL1Wj4xuO5kO2lGTL)09|6^D+7lnM)y->O867DU> zIppS7*Hl))g_BVofctg{VA0PRe6KV<>k-&I3f)n(vdCL=Vvy$tV)h#?hub)3|zF7Rwr6TGmD1bjp?5Lvtg z7c>1qHSag5Y9b5eC(grwU}MBf5dga=vk{#?C5n-z15{(~nAms%P#rP?y!@81;pZrD z-Tw$B3>d-JBd_2Un=E+!cqKS9DTy+_#v}SCMF{_71fKP61k_9l;L^9+M<`E9Y~>?p7{CZChFLnLn*q|D5v&4ETAnw z_3_V;h0!5!Rrh(L)KD8rz2t|e8t=pH?qW1_=Nc|t{4Oek^oUIR8%Cp33Xfgr#=c6a z0kaGzxTqlpTsNW!HvE%7sO%G#z)p$uE_a|!?+>W2`!(#i9t||FhM?TX?I`P!5MT_I zY0@#U2LrE@(T7hVpgHa^UYAT6e3N_!5>8Now>4it)N6jwD7uJw?USL}p)2TgVFPZs z<~wXyql7evN-)8nC(xNIzpyrM4s`NR7;Iyb1^K8D?c{P`pYN1|uU~Z$TE z{}vB)ct=3W-IJh^Ed(9UyMr!hw*r>SjaUL@11S8_g&g#*B0|zp@a?Do5X+n)aQ`}w zlFj^)Ox7XrfrJEVK05$DNE5O2jU8xbPJr);Bm}2b0bn=8gCpzI$H^U_0{IX1Wolj( zfiu~Ykf$*X-N+J#kLE+L)leQltn&jR-?)%VzADlPy8?d7bzyRS=14tu38fx;Nxy{)Y=tM{|uohQ9#`ve+2u25r zwqW%5FsOMnj!BUEqpjgmv~P0?DJDJxEC=5MI%YAnxR8g_KfwY>Zu!HUmp|dHs$9s} zSBxH;9Yf`Hlti}U^8iLbxxeTW_Xc#gy#>0*Wbknclt3t&1!a0VArCHD?2w)hzN&r` z$lywFpIpO`KSedR0BrGRvI+t38*iXkX$k*-oV{r{R__=7EtxXUlDQBeLo(d^TBMYW zm7+;hO46ixBva;jmJCUTG88i0`&xHJAreWNOS7a&N=4ruzvt!u#q&Ro=f(YUANStt zTGx4=pX1njUBOo`kln{pNHQ1jXI?kCeIteLYQ4&BxX&ZQ-vw+0)(w#B{=Rrts2l&e zZpWnb?ZE%#9Tjq`$G-d*cg-1L$R!+H>4J^=415~3 zw`s4QOBcD0m1;yg*oLElo#f6L=o+d#>sr0T6OJ6F^ zf>v>5Sn((oc6Aq%83l^;_=7jZg<}Mgt{SZ9%c;D+ra9VNbXgHR8$O%f=_Puug?m{d-KC61PFdNCv%bEyB!dtLB7E^7)~-e0DQiPtU4l zBTuT4`VLBidwT+{zC6lp^}J1EWc;}su1)q{!Z~VkmqqY4qABwile%SR$e;Mjbeht6 z{JTX8lw4hiSN(OmRMH)J3XaGv+fJ{!CDC{7GqL=80|aUAtoY^h*0VS&J+cdpAJvn>Pn8&@EQLB5 zt1wsND>hDSqR!>hctHX^81{J;Hf?f4Jr4z#=Kr0?eH7?;o6#>W=b)vo z8q7>ylLz{WHZCi}as0C+ZhIHd$5`I@()m5RTU5^ zYGSBs3OKwwLc*Dw@J_HC#uN+iLcb@CJfDcs%cSva-zGdRb&)cq-E{G>EQqexXZPO} z1;r1_PDQAi190&DK9@K#K(-3~%vyP-P$BkK??i)nydn4q2cuKBsF`%yBY@x9(9a@ELAy2*nOvn~g zKkEg}Cm(}+)LGK;yPWPSTLAU3=ZKk{JICTf83`0u#9D(syy371{~TJxUNxFUE|_IP zn6MJ;P!gewa6c?e<&qoC4j|gG8QyvpQ&F8T^6AkzX6Q*4yhy)7A_8pidhj~DDKAIz zrtm|ibPO14E`W-z8b-XM0Sg8Suw%akZ}SdaDDk=mc86Rc?X)lM@KoX5Y|MwFHzzQ3 zvowyIRHMd(KQ@bp!Hc0{lwTslQ;ANcx4K?1Zd@Fr3O=)v*+qF2#7mlTB z$7qnX5-;WR0zB}Opqgn4RqUyt`M&b#slFW+wMS#Ua~hs2TY{IroyA#x!ISK!PujCz zP+kJXuB@BLEd4^TLIl14X5-n-?@>&22Cntz`_A)nDQc z>x+2abQ{`R)p1mL%W;RwHZ;DX$yOCi$5DenY;Hw8ymk$SKE4oK>llp3hf46+PBEL4 zJIi1@Hy)xMPNV7)`oK9l#b$rO4S4ab1(G-0)2BX5ps8d8oE)TVR91Y2*zt8})g@%} z%V3DTK(14R++^a_O+hfbj^tc?jg{_WxP65R?7W{vfm=&vC_kcpc_Ad>&>}R5PsiLSa#il&5tRjeRZvH`Xe7$XR6>% z=NnZ0@Eao4{E*)7K8-&zd#SC)KC=0)EnZ)$&s&}Soq2KpBz*P13sXk#p}^m1yc3Rs zHoD^g9sCn?X|+1#*1O@V@H5bm@rcxqK7q0QH4yhYf{8jAi0M!LajY*A zJP$1di5(7j>s%5JyQ%Pmrv+h-t(#5nBc$6ubYfq*22WAz3MhOcHZy1xNEe+)+xAD; zb|~U5RXPXl?Up3Z&V_QPO)vt% z9n{%vjATmZ(PPG2vDQMH^7Lhx=(;{a21`i!;5@o5$`Z<>L&NF2-fC>A|BY5PBD1@n&GOXA(6opHF0OsNg-lk3?(WFR`>8qW|a{5^R$TRpGwy zYfCq|68@SVVx7s#`O-GGjc%|#Z&ES8=nB}+eNA?z29Z+JSiE*~12zV$+E|UmK^Z>9 zO1O?^HCB_Rl&A2&d32LFcSzHXkMDoK|F3y;Gyl(dbmmJIs{dc+(KSx;WBjrZDB&w1 zno1+E6=wvuG)4V~GHM>CLsuDboSc^r^%;BDGGqtd{0gJVlp>@_;u=oB<$8yw3 zm$5aRueeTU*FU0``y$|b(m9XJ2^KjtWN{HU2Og~jEC6XUDqJqX$teay1nO6Xme)~YN{{%HuU4}*rRz4RjaIDCU#nVNQ8R_^Yh&O(! zVC#XUdymTeNC(S`9-8ib z5!DkmVb-B?jC}W+nraClzj7$m{O}Jmvn(*zaE#u1A4m6_F2`l7ZW8PJyXeT-omd_g zhu$*M;FfiZ9uD*%5{(#WfX;`_Iz!qCvXv^GZ_UmP1rESF*~MSHMB*614F=J$>+B|*98{PS4q6fCK{aweh_BQJ%kEGJ{k{Us9>}n|bGq4w z=Wm19+P{o2H<@kCFe0y}#&VSw%%dS&W`og#2VCX$Qrx%cJ{2^5M^1Si!XDiM+ET|M z4FQ?>WxX(}^iPG&ITzRy@gL~7S@YprM+toUBMjNMG>Gbd$<~h)gD`_X8Z`xjX`6*R z%>Db4);V^e#KBc~=iE(P$VgJA35r~8xm!r@yL-fE;nOSDWJ|(}rj)3U#KY|zz3^6% zeO47i<_DCLyGha39^zblp~z*Y@3~6!_GmCm{#(vjd;SI~lK4&~oI=@r4nnT@A{f5F zPtPfJu$J+Z?y)^W$z;zeD$Db7TDr+g_8I$N{SfZ35#zb*hQV9Er8Ke5j#r?_bd4{wLw>$Xd7=y$9+}erN0w1K?|n0Ep2AVD|U| z8p#P^sIWdZ6wRRXg;qjKUN3FmFdtO{6yXVtAv+D;Gt=Am<3V*}%(!%g(G1fk+I#W{ z3SUB#4Q@m*c^dpo5+QGQ9LJRU|Ipi@0=o~+g!6R|N!aonn195L{5eq$j;?ZGXFyQ5 z=Mi^enJk$eyAs1iqp7oQF8*D87o~{@Dl7Qn3;qP$b$bcEKgYr`*&v+h8_ix_caG}p zY=xyv6(_TrOH%kXh)??hsPWB(GjM~%+r|@dr! zy)P}{^FSsWKQ=@{4XnUyEQ0vBvFxem*I~&*ckpSlM|Ycge5&ypFF0jT{t-U%`r|S$$2o`*<~LUQ~!> zB7tc5K@J}8|4P32_=4m8c)FGIiHf$Qk(izY=qygLHqFn+y}fNT;W;q9o89PqxpU;- z=Zoxe@mOxvAP>v6dTIZGD9B!ah*%28bJI&tVa{kaAr)7x@w>?a)RI3-hJ-`O zndl`LdYnhc>B?cNhf+mwvyr;epCEmj+P zR6L+icQ=MVlP9_@up5krnB0UK*vEnAo(>_Db>|aKGi7OR)^_FTp zHGntu_u%TL{gCyc8(&=KM_@?(V`3W7)b5t{zT0JVJcXhG0)y5?j#(Z9zbp@e}~ zCr6fL>!X6b7_;| zW}M!%2GdHmQRDC`XuV(pAD?7q##@+r$KG8L(f%cfwqk ze~cbq7{vo;N$t@TcsKEa9g6VAhQlsocR(F|+53T-Dq6C|zjs5t`(mazLP=6NP4NF0ChBuBh@!<+Pb)KTYkM1*U z>Wz#cEHDl;t97tq?gIQVEAYDfdJ;`t8Yn?QR zd2B`TcSYDVYYn&zX2Cw8y>R1)3$FcTM%-O8NwB0mE`D5(OQYAKW1l5m`w+!P${z607O=^jOwD;Z8r#_zH{BEdDHh?Bb`6w!ss}?n36x*aljxT1|*Gm@lf*+1#Sh)e<=zc5IxjOb@wW|~8mK>ErtYP`vcUS1am zBC{&!+TBxm+NaJ@-FsQoLrNQC3?tFn^8v%hN}%7~CP@7Pc*A7@QGReAExDd3qe5_< zdm?>nkqb}zO6ZL_mGpM?HoW>Ekvh72z`B<}f<)wD*6K$jE;xkBM(v-YDM3IpN%$f{rLsDOLdH#5-O(7I1}eTm7vyMG9bjcOamUj zq;^JP`25CICbQ}+xqh#P4YqG2_6-tnKj|FGo?3)X2Xhf)g{gbUEUx~h)nK;i4Y_mj zJ>6?mK(24$z_jQT{7{;}J`ekkZGR_?UlcwP{;K&9u{#2m4cXx7U|n>3yc@3WL!!0V zgxJ5?OMC`fNYi{xlDl7XlFj#0hbJmvVE>MsebP=<57^_MtJ)ZTmPi zqfqcx5m|lOfqHtXp^dW&tRAW-y)KFXCBh(M_lgvMKS`=g@@X10(^`8DJ^1_yIW}vQ zl5Pnuq1by{vaspCt zwN)l^L^8qLr-bkonV{|IBKRz^8f|?p(q7r;#IC`cS}Kg=F-d>0@hc%VYVTp6btC&o zPVj&8J~8#cT*BQL%%+&RVUuPcwqBHhH!+gr!t~W-^^HSd6f~KCkBj26K}q<2WRT`; z$Y*_cUTCO4S%+15O$*MX5XY-a@c!*#(qk$K8`f0N3kDt3g|%_* zUJn#7^rIeIHSn5G3{9>whp@F>cwy2L29Kqay~Ap>Hck)!xUIsiMSJMW+!AyeSxg_P zPs0%@ZIV*24V`Jn;ZMsLv%$*%uJ5u0>zD&LwRDcxlqvjs zpLw~*mo+kpp`GE|$-pK#NbIfv&Z`S#8)pw%E)^z)5~}2dohx0oeMIdG4mU9xYY|hr#)rv?yV&n zPKt0aMFxLF3d6#gOBoe06Etp21#d?csxJ70`bK>xmzPJ<%SS}9uVN*skon1IjO3AG z(RjuxmLI>J(>5_CTKYs+5wKa2dGQZRMszjtSr&HB=ZaCV# znQnZM0utFL*!%_?SifW$)z9>X`qWG^$bYkGQ)oWij=V#TxF^#~k~2W*#&ddgy*HfS zAdM&VVj=75HDcep7DPRBaZE3Xs{dDoR~QK>I^jWcd(T6$!F8fF@{J9xm;qaU{s)Ht z<^fma66b?U1RQ*x3ac+JW`qtjlDX%S@$}wAJTAKsWtA?GqkW<9&87%G`9(6K7E?(5 zr@JKWY6LY{E)1dO-t@SqI(?TvLf*bGAl+%jq-bs$JvDcTzK`33NrM^W`!&h8bG?22_lC_qDj`4SGd&kJFW_%if4V}o}$u7Ks;k+6SE68n~)q|;k((8t%8 zK;bG~(vK(bfb|$%8mxgPKc)lo;|h_`Jc#^@r{KHX#iT?^ggm#9V1jH4==9Y$AV@_4 z>YpT$NQ;#iX?z^~%MIaIfDZkW^@@x}^AlR@g;FEqbhP##y>xstF4GVK*8w${NZv%w z&Ar2xqaIux&4RJ-(V+2kJv=ONC*JzDOuO8qRe(Wy=E6A>+rnxl$PY z#J1uyt!+?KD}@^O?NIC682g`mIisys%FG#>0V;uo)aPdglk`Uiyz90Qz4g&FmluNG zn&tTRbq<>LUL*?|c(^e$4!4#(MFls0oE^OmpTP{g-IIn@SsTe%&UL!1ISS=RUsKDs zZV+`>0Hbxqk%@gua+XBnz8_sA(YpZ#R@W0-;RF~{&cy0PfYVX}Xm_a`kxENK-lJPY zQ|dfE%+Da#w~CSzci%C*&$G$Gd*PtiKND`<7lfwPg?MHA8Sb{_gUrkK>*ywZaZJol zBhQZ-Va-oBTtAdWiw_8($d4WP;%gG@NpK-)7ee6E=2&=KHXSnMtboMtstI@0RDLazgOL=pms8@XzIXR=9*#d{@uBQ$3ZZns0 zH`xy#>z6>k+X+X?vbOUlK9(GB-Wsd#6O!yAlL1#}K8GB|5f5YP7W}rK@-7w6~ zn6r>HO)|4l4S@mI)9hJ=Zfbh_8Qxre5hYE6uq2+J=eA#g*OI}(oi~lC?($Bw^4X46 z0(aR}PkvJM5`O$+f0OvCU!amifNb-6$_6xx0xxJb6l5=f(UuC5uzmquWLnF1`NdN1 zsZ+RfnLH}U$a8P(RlsF@{A|vqAM`|r0!*K1BFd?o!RTZlSodwirhPA{{eQ)z`+ytH zQGLlO$WrF#xh%NXoItl^pCw@~WpsAbR9ZE1hpv*G4ILg!z`Vqie*f<)Ii4DU&U*`S zV|y{#ntz(``Rl_hlmFObmXbVSt!jKeYbC4*%Om#{8SuaOiOl{l7W5X}!%;j!My*50 z@7@n6RIvn2*FGdFWIp=)tRg0(9ju7FB`w(P0vf616bd9LJN$)i_~S_b`(=mn^bU3O z@L-*v?PSA5jHqx=5&W!uLQb3!K((ns*t|Ruo#Jnx{?Hoo_@OpC(HBPCkIJLxpgeY8 z?x(Y}*O8NEg~YW_g2)(V(0iHuHtH6^AX#pNU)pT2#(WL%uI>Yx_zK=cy5bVu6DTA# zh$V*7plr|rKPy9#zlz6!AI6|CUH~m-J7~_+V(!3%K8#fA!``m*L@Y6fIviEO z@)Hkfw_XLQr~33w>=so%Kku1%1m&d=%&Ui`LU5t2P6(WfD;AE=&-1azW(lnVw1WrVjW9Q z-8RJSZM&iMTOzDq(*wrV)?j+$6dv1smP*8{gYVOou+Qob_1v)+ckKN`Zk~BdDorG* z!=OF9cHM_+nyY9)4&5;$Q;*te?`@5sm#WK2{v3UHW0Hl=b}FEmKi4K|Mi)CWj1zu*&ntF@MLg89m%p z$kFmX2su9mE^4eH#(9n~acl>TvRKK;UMVFr{XUa#Q~2n1PczKjqrn(!PDSNdaa@9a zn6ms7>{(w2juo{a_A&t?bw$u8Sp>%wyzp+xR>Hyg7^ad&-}h)U?sqpr^W60i`h}0H zS{Fgx~&j#mAq)$@nKNT1C~v8!SS9T@;ytA#LOt?{<02&9vOxN z`j^toDN}3)cbtNJr>8U{eh%)l>m$D&)R1+}1MswFF$9fR!ijhDf#XpEmf~+&k-bJl z%t09EI%VJu_+>4XRJkapgL&(Fh}X2^O>?$PK024q?|)Ie1XIm~^2K z8n-GVwfaDkUvuEjiXrl-KovhNPJ(^1fy|7^9^#bXPrqa?gWo5eA=PC7{)NVa|8yRh z9Lk12VoPxEV?9bP)nfXkUHHsD9|f)yk`ludvPa?^ej81uVfSk2V&79>AQuYz)0Pv3 z`|&Wmsgr!#=*7NXbbx&{vUlP2U2p^F^Ji7CI)N#o#4`@ zJG3^<7b>GUP*~Xqht96W$c|0)`dk%^Q;&x*x&bVTEZAQIa=g8>?viVKo$T+h6Eyr; zB`!^^rh3^QiQj4`s0j0;=LRL=tOY@1kwMblkwI%NB-8cFp0T3yqTt`?d3JrkG7yM( z%yMj2!h_tu4L4KwqS|LWY?-+PYdohSuUndPW*`!)TF+rv*&Zrx@`Wk&pTxV&TJ~Ls zC=@-vMw@=6lbg>8Y>#T-j1NRo7r_#G<%2Ez{^eH^_~ijQr7uI3{jcD^^Vg|`Z3wJ= zvK06Sv#4$JBf8CU4r9~SNmXuMU_ze6kd*Ej5Ny^#&stx=cYYRls6h{2OIv~hGX-sj z{RvmKmAS&7H_2xmaPF5Yq#W6D3_u`LqJYFT|SPRk@RX-Duv_XnEwx{vz0u3`4c zT?MofBY7K($g2Zokau(oXPs;|iQ3P9^Sq6P_ zVO^^n=uVkH^W}l~vStBi>gDM+ug^u(UqRj|x*!|9MI4x|HS6fJz0qWb!c1JZ`zoC{ zdkQ?(h~nc5#h`WkAvq8!i~*r#xU*&|1YA-@wJtf9_sS8D9&RIL9!R=QZ=*{~B|%a+ z2s}QR;C#E^sID1hPAy!1z?4(4u9loFHG|jdJs|d#A1yq7 z8s}>dSmoD7vr&^;zpak`A zn1`pv=HkOI=b>d>hZ|y+2(F1!u(@wP{*yjOZ^pI)q&5EU+$eVGh#oymLLlOc67dhc z!Fi?GL@ctSS!&9XmBYiFtAZ?%6*zQokmHiGFm1geDZC?8S?~Nn1ih!xu95t9W$RZ%U?5@9l++Jf1w2S9h+2 z>aN~G2eWJNVW$Rek`l$U6;9;h!Zzlp-}Z67)cqun zm8Id~(LLxljR&)jnLtQe9HxDIj;D>Z@JFlw+^H_ds*HzZ|DQN=;mJ`vImI0mx0O-< zu0Uw}Bw=%H6F=rI6ylbjZ)c5k12O5&J1XJRis6Pj*!*4?vtDT7u+t+r&eX$%WhXrq zdxpB?19+>)wDPy&il8#$Cmv4um-6F_PbuWlH$(jVsGIrIRs`z`jG*E1 zT;!jB9-Zaau!q2iF{^n+#&sm{USkJ68WadYqn@$g)#CB;9m2`LyyZJ*ZJmj=$k!GM`j~ri~Fb?thLW%Es*0@o6{^7mu^e zez5fshImKMpU!z91x6uLaOK7}x;_3krX^QXGG{d#F>fn8d~_0*#eHXz%CFKlna%XC zTsW0>QiST!nJBre8O+EOUX}M=?Cj@)o~yeHDvkJ7$Pty8L#g0KeAl~*Ej2OO|!i6qSSUW&eAwPdpz!PJ3bX7-YJ$lZ~L|FXi- zH@tummgf*v<&Ah>@iYc+I?lYGZ%)pICa?kZ>eznf9NiTt4X5_s#SIn9nDu(!!P_Yb z0wu0vac?i%6Yzm}Tn?ibMC)+Y?SnMv)_geDo({|QX~XiLj&xnxe)jz12;{0yBc*m` z)Lk-<#1_R-R{?JrTG7QUZdn8`r3=UwsU*sID8jR>+e(8sYtq}L#q{A_4bmo|4c5ok z5rsv6She~zlv(+gR@$sWUTYOfKA4H3$9|9>TRE`Qej{c)ETKQeM8V823%6>f;}6jr zq$K7NzRsz})pHjTE6#nGx_v4JACSY5o!!{{$_(7M6yV}m5njQB74%=!gKcZRl2M~+ z)V4F1TzcaPHBB{)$iiRbfYT>t-q#TPWmHH`9p8Y{3ziaf6E!>>y^Ai}Ekt5fdYHSr zHp9~e8^CAm6s*papmEE$(i!98WX9cSEDoQ-uHE^MjHSOt*&ll$GiWbz-Lnz1)L_~q z=N$Q1M&4yFf{NeLc+1Y5`IGXIzK$-UO~)S5(@g?MQv|uqgsF$nT{7rm4ezm=lxEO2+Y+OR0nO*lVB}$q(r3`4RYKk1p?Fcp_QU zV8EnLoePmVis+Tt1QMtOGOo(hPbCs)Q3}gHHw1!*1!39jBpSK?2Xz?UNSNbB(7m@7 z<{H$K)`c2=AhgM%Feut0JQ-bTrl7Bx)s^J@U;h+cp={SLHQyZDk8#%CpmeUh;KeL<|7<}+Cn?Qe(94lSAcF7rRo_ZAxjFfEjC8v{>BWLhR?hZUWWzuU^ z9pF%SAp~`XK=j5ZjMMl6bO^je1r)fD%;Se?!}p1X`wr~dYkAKZi(U>|Ct)st>DfoP%T6Z=z@Q z7pA|DA$`v2@O(Ul3iT#pU3nRj&P{kFD~WvgFCV5q4j~b{{+rCnF`)lqE$9{`!%qu7 zo9g0ld{cRqArS-QoJSeV#D(ye-+`#G3$Q`Z4J#evSo4)>?C(Egj$Mcm?gR3$Oz?=J^W{_ z(v#?KdP`TYTZ-Rf+R@;`G3dSRgBp2@u&-w`hU|(XUMFVZnW%J3sQ%2IvgJFC>H0!s zo9(bP`!@Y*@f>(us(m z(jSOLs}~YA*%DZ~SrG3ZmKbENgpC7*^mEbxjkmJJkM%5!q)f*hi-dS?+ui73 zk{_-#P~{!pmyPsa5&YD>29eH5WJ>=k+SIC!v$Lbf;)Pq_nx77OKAwR|vLz_d>q%rb zG0sUiJSSED&6lS`T^_FX;m|ORyUnkIR@axJ*s#$CY($!T!))E!6dW7437SC z2hBr=U_e>WCd$8+Y$%JuGX5$U+3JdGkDBB7qc-MLcO*q$HiJbdq ziEaxUsJ6~kwrHC_oG+0@;mg-(Jd;cE9PH3>ypoXCv+|ZO3>ainotNivOiPau{%p zgjnV#O&60xh3`*@iPc=Vc~lpT<7M&V_LbPOVF~=as*L?lrr_Y+d=j*E3Iso=bR@Bq zCe2&PMwz66!{H~yOYk~rY?Q}_+AZX!AwRTVoMi9nS_~R?M&Z4?z_sZb`=ePHKiBnv zw8vB!za&p*Rlf(fx^JxhTq)SxZbGjg3&rD?pI|UQAAKmf5!9-7K-0YnMq3~rj=o#S z9Axg&?b9Q0-l|;Ov@)0ed65M2g`-6K;9OAda)X_m547;Wa#D8p5OUHNSY@ki$C)r{N*dwZps+$))7G81Th$0GO5Okwb8ubD&F?z;`Nh5Y_Po=EBXwf z%4#~KpLb%${d35%-Oc3kg+Vgj7fnw*sGwY)0(|_WhYme1fGNP%y48|YGZ!38ze=9` zXU2}JjgwzjgmBsB2GoxIOV-}6g!x*7bXU$H5;#`^<_akRG8=H_{Lf@obt^2KHJ2*7 zI1vB4lvMNLh)nTQjzx|Wu2DIR=>lP-P&bMk6EH>Y20?P4--EO)|3ixxd|=lv*XHdw zc?AEva)BuLv9R!N4gDy}M}^!Y;O0dU_-x?^H%qJOG3QFEyt05SI3Y_;UfYe$5eMk* z2t|5plO=|V^x)UQS2*vNAu9h=hnoBA@KCJ>2Durb-AD(+zdx1OM4yM-Mc?R?pq*I0 zxrNxN`NM)<3w&f_1A)QkiS6hP^k+usHZ58Dm&+lozW-=ol@0#>+gLAKxY8RhOm#_xVj!jY=h_7YaiEEGe65TO&Dzy=tUhCJFz3WH2*H z3Z#ENB!iHT#sP@4Ja+aXs1EF$c2}4pUKq(>QDFBK|TI;B{I3 zz%Rv`@aK93wU}oQTlhD@OHEz$U1^NRq84z&zc0t@oiZ2@5(}-ai-3GSOAB3oksLoU zsw6%O&)o=QTediInMQH^>1>V#nSx}eO(~B5^2AoNBpMKP5SGnXg{YF#FvqA2WVap1 zH^R43pehZ6Yo_qN+dM_n%08ObYt0T_6{h=cO##b&g4neqpJp!`1*;|nIAXCEP0r|} zhno?6-p_;bY5H(jQURW9*v}-0IDk_29eT^dmwrgCrFTyzlRM-FE9iZZ#yGuX3Mb~E z`@ZR*Z2pw|TQL=t9OsfL&+Ex9`w8-Hel|IOHyPFT?u42=Ybsp75DrQj)12^Yu;R#M zUQO|#YPlt>w4flyO1&T{rX`qK8G!Zbb@;*REYhEr*u3-}id!AQO|L^xdVdxiDBKHY z_%+$pZyH&Z=6U$Gek#09oP`A&*W-t@KP=zFaJq%=1x@L_WLRf1BR&g+J?pa2H})%4 zebWl-hqVBIFTqWqTz+^Z{( zg?1XCkgSDLv8!-Gb}l$%$I!5wsq6zU3DoM6gP6Hl+E%LCszlZGD7C~w^-=qhHx6z1s&UpQ+3b<9L zqw$y7n4$56O6hzdJ!=%GGM_7MyHm&pjM##k!vt8|Oh%E?T%vhtgj2$2jY}epnO-?1 z45;P7rg9OUZ_1yh4bKhXLWd46pL3Jp)8^4%ep7hi0vB+`-AR7*>_-9LxwzK+J!RCI zNYp?Qjnz8>c{>o8168M+4u3%q+fzcs)+wX4O9q*^ zH%zUSe8}CQ%_Mn-ATb`^398*Oz$ZEtEI<7w!Z9!K7@j8j7ps`f{k`N|!DZs{TM?~O zBM1*iiJ*%duUhUXs=Gzelnb>GakK{?M5llx*NXtk5kOhdOooxcg|Kb^ao8>00N(4@u+o~A zbd7Qfb3ac6u44$w1znPha6wclmSy~A zjW(S^hx12Bk+>$B9(Ycl*xG=r_GRcZE#SPUnT~7a)xp?4gSjd=k8|x>J@xSp!iti4 zn43{U)^NWPGA#p-=ijD{uOGqD)>yD!@&Wf5l+)r4H}HmFYV+FD-T3xzvoV!%w!+-BtYTzb@WR872LOSA7`dSFa44d1~VOJLggQ6vdgIh z=YkUxVRMVNZu)ZeIEpG&)6R`~|Cvht%Pa)(05;Pn9`h{+JyzQ-hiN)1j+F zi>jHgq|27Jq0%vaW>G;V8S~-8T47MB@4FL6px?9sRoRG6Q8TL?^=x zY@g>4ZFt36z0kq~`}4`nAOrH?v@tny^&NfuN0i3zoe2TzIz%p67OkRQkcBz2&|Q&B zA(|g0LdM`~aTIxf@h_Qn!yF$g%)&}JWyU<2MQ}lxDVE;YD7kMG z3S#~7^k4r`Xl=KpS-acl%-me6J9e5*+?YYzr2S~U@ecSdx&Y1mt*DvVe9+0COT+da zLbD$zdqS>oXw=N-<#-p5mopX zn2N6U^`w1%BOK4_!`-{r(lCwHG|^NZ{I@^E>VrXyA1?zwP3j{5kw6@HTtm}Sf79R9 zGEn)&01LODX>3+}MS8=1Ak|kEuQ|7~UZ1)l`to5|fA9sZ?~{U_KPlL^VsfwUbS1oH z)8J3VKWa%MSPMgKj1KukOI?1^B3eij_f%3(t5Ez~lt~voR;EYC6L6*d1a+k=>D{gG zVBD}B-H#*@SF8as(JAD}tTcur{sv#p+(QOdc!92O1|3+bLLP2^NCj17@J+8Nz4Fa~ z=>49@HEM4r?mniJ6n`P)J|8Uks(^VUh?X9INzzXVU{$ps+_8*Cfuk$&g`5x$%?L;H z@d-$%T0o|y8Q|8mnHc>j0S@?`BNHur*s>-FR5=k)t5yWA?SHB7Tp36UsX*&0L0p=A z5e8UEQ2%L${1;BslDbDtA|8Td%_)7X+#5-kojy-m-!PM!znt#>{)P6)4o>!XI*OaF zhlM9~;beY1nA{P!(fm@5vM$B2bw(puqpt(imuK-7F4}-{>U;6{#~Az_A;Y^ovkAs- z<#Q5z++ghSM|!SjALnrRd{*;@G;ELw!$@gsd=V)MAAFPG%KKUpaJY;!#cmPS3{W!q zTM4>No9N-ypO{^vMT9<6rOEzU;I~V`X4=V8xXibLm%RKBo(rMWy>EavIxgnbin%!LAT`qkuANIm-q7!+HOn6}t>2QdTsjt)Z>=O_qitmVfqIxT z@(Iljc+f@HH^SQQ(PWyJBE&g+(CPUVG;Mhx5jo#P^ZS+QE@1^2-VzT_U}l^$?qmscfJrV5;kEJNAmHrBAg7HppRFqz{@B}l<+!N&goq(ywb?J>(aopItAM-_bfyzV?xYa09elDPci#V}; zFHVo2^28$oa@5vR45sQ>(F2P_>8JOZM4@I0JauUz)Bb7^p_Byt{(doROtgZ6G86RF zxqywG&nSPv7S>~yKlx~+2e-cLg5ZF)_(T0X4n3WLZ_Q@fnEk4STIUa3!HJLfMr0rP z&wM@o&-o117rVxe=mb-pqV?S8dseVvzU!eqrJ=&xBnNU~&E6DnUH*-dBNa5_(;ykXCk>wGRl%mV4bLohC$W+S5a9cm{duLAtrt;a zpU$-+t|yY{=Dl2U;C&`2=3Io^&e7=kHHBtI+=H90omkgg#dHmC?7hlJsBakZxT3JbMFH5ZS}+>84$n7q;SQfKjOs=wJTpLG*ZE#HQSKa8-rt4# zD~>_R(Ii%UwE(;PxIKCHx}ES3Oowjs3aFn_!*uWB2iL$t9nh*fKDqTYhDK%eg(?e(!`jI3FHdG%4X!q@X6*@*>@zA%@ayU^wA2|T1=2^^&N+J zj5t+TJ#B}L6riQ7VboUwxqMOA*%4DqZVdZQ(@Ms6NUu+^d+8OAuql07(&!E*Z z!Z7n;GXc?Ja=q^=&RrFd8?Sm);hcNa#1;5rNNw}0B?7$Jw3){avViz`%H@-3!{`jHkTH*ECyNk6b{o5^9#sagVkDDRD!%yk!~P|0){x^L-(I^N~|j zaE=Q1E&-SJ{g4^?l(t{!$DYJm984OfXT_6no^%dQkqHNnd`+8iDJPJ~4kK|1-Q;F) z2N~X3Ov?6`V0}#$*(o-Qyen%bjVb~t`uYk}-SPl!jL$MRuB>I{Ym?Bh?lL<=e27jt z_X1_s?!%fCJIv`_h>akREV1F3y%)Cr(_Y0FBrfG0+T0P-!GlE3% z8WQ*17z__Zfe$AKJ}y)To0Em)xLY&%nl1y9iP_j}>w`}9TIlUrL)V_m#A=Zke3w0$ zZ8>uI=2!<=`+h5_y|9D^eN%@Dw{ZBh`#1?I9izV=&xe{*!yNPMQSwjhF!rCHjoYl` z$l9tD%s;mZ6&Gibp<`>HyFZuYHGiQ+Ul);cL=sv)>C^4%dKfKVk3aeMVne10-q73* z3u_laF((Q>>j@LfQ4QR8Ig9HbxfaYvU5L(6L9TnK1T8V_V~&5iOFP#j}pZC^u!e0_w0d)8A+rh^*%YEcaRR`gyNKxdGN5W z90zyK!#aTrWcFNtcor)GZ^X@siu5jW)lCd-N_WF(KqW1h7^Kb>i_v>Tge-oOj$d_< z_S|yAl=Hzbvf@7eXBEUF23VBC(eWNRc3Hn_&rk*eViOEI!8{04>owL?DYKb8KbOwk zGbe$@h)v^-xom=f)={>^jYHa>~EZ-9yrl_OpSwEbgOOU%epm-FB=nn}zp3NU%!( zS(EoS1h{$Q6EvVa)augKnK)}zKFM)BMK(SgCtvo4VW6W9E;w}r?$t}%XnBfKhsoaP zboR!VrPJ|iX%f}EdywwvS%J`Vj&po{B03!4!yV3_px3{j9`19-$XQmT*YpxDG~I|_ z7j0mF`=22`;cZkyKpe6~)}zdud^{ti4`ULSVEQ~h8-BlJYA2qHZ=W`hkQ>*z9jm-y zxJ7{}%96%?s!OTmf9t_JSd`vu^`Z|yYNNUFUykG5Mv{Dxz-t{#ytTg^@9h(2^G~kD z!8mnp*~}Co8UGY@=Eab6&biEo-C5}ECrNG+RcGHX&TS3-H4Mwzei4gp7wF!%+4K|1WjbGZVk2zB zG4lt^v?tQQA3F-%eNFWGoKRdhnFaU+ACPSWp%^9Kk6OpO*g0J<>B+oiDx+qNRTiRX z%*~x-Pe1aG?IW`sXX4S?)5Ib40(~+t4a{FRLGb23V3e{M7MO?O`UCYSu5Jjub4`g@ zk~V0yttI(B&q?=58C2!&gsV1o^tSX}&M&paI7+`TALh6*(hE`;=Z?2j;g}Lx-`z#K z15R_7b_m1nms_aRYfIw4tsVj{%)x`Ni|A#@Km~6n{4lTwHeKvQ1v@?_^PB{4o?s)a zjXMukhXrALek%Q?G@leVYhm$f8*(h>3c0@h0)6m7kO=dl!EIp`bJ($%?c0}tqU)ql zR3a2K#O0xC+n80!t9+vVM4T9Y<`JLMVNe>W3c_)3u&G&+$Q|O+C$Ge8u<;h2aWDZR z=@k5U`31?TEGI#4Ueee>3$m>4A-Plfn8?(KAosF39*p7Rofp1M)O9Lo-G*$8I_-mR zm2R^KyN}?aCPVt`(NC(n)f4XMzae}6?W6M|ufnZ{zc`ecicS6Y@Eh)c`rZzrn7@fe zq#dFEX1*ZWZW)t&vkG3w%_cwM6mf5`1Kg0}hpb;R#Hn*NQEn?h)x?#!BKH)C@o;31i6RJRnT*BO1sj0PSyY(^EUt;q{+(B9qob-)Fuh3ElemPgS1R@zoiJ51RmM zVL{s6p0aIQ&7s)9iw-sSQ>WDhIOK8#Z~W`BIxcS~Pc=wt@&Ow9 z^98*kqJW%(YnbXew}{03yJYc83vAf!Om`Y2!>2jRnOuYW_)qCC$8Aq2o;oUz+-G{2 z(te8RubU0$zfFhL0sLgjw-VZLE_oaE1h>N^-5j9nRiuAWH4>DDNPT z#Sl)|pLsCjq7YnhmY|#VZiPN;7iee>ZxWruqU@?Ddft41kvG$VqTLT+x|sgt75=dC z{xlMCVm4i3+DKD0Rq=J*1>DnHhn~p`$W7&8GN7cx;bk3SWy+Lr`MN_;RPIVulT1m7 z#A)*4z-!v*<_oj@HSw#!ZFv7shuv_qlN1ybQJed{^qJUls1N_g;_GsH&q5Zb%$|Yg zA{naE5s7gwkMOtcD*U+k4))~=5)`w;w=I{k!AbxO?44ooz+}eq5{H$kTOrBiA$j|{ zkP{%E00EOZq+^aX_HLZ?5R+|a|Ew1S9IxWd)j3$=6o##XbHV)PFJ|Fno-7=df%(5H ziPjS}Vm#1E-%cie&}?U9zTD={eyjow!y2${XAIbXLgKJ`8oZM$2b64w7u*JnUy%T{PyCoYcM8b6 zmDA`hA`A9AHWC5320GUt%}zultn_Syl`WA04n z`tHWS@>pm*)kI#FwXrXCi^!N=Jg!(I3;W_D;NYAB>S)%8dqk9x|797sAbt+sKD7$s z^RJP6qqj)<`%32ef}_xt7DE&}mw>9UIdSrpBTB3<6VPaY+poMQ=9Brz_iHCPw6-79 zN>}5bq+EE{e4W+QD}gly%CKQ)KW042!fj$J@L$0l((ti~Jn%Y(D~gcL9^b}PXP+do z%Bz@Z^8+EHLIIAx4#P!L-qIqza+KN;NuQ6-AT5s$kq1#6a1}H}*Sxor8Gk-0nKwY9 zXD=X|)2BkZ%K>8d#tGuymC=tOyUEGB(;@3;ILO%U05oXE`FV3uv+@K=`xTOyl6hpe zOZIyT|bLd7{2T zsI}esPu5c$#c&gEF7jgfXoIF8M%2%S56|*2A)%CUh~yB2Q`x$$E>S<2m_G_$VyDiKSQlxx1Wf>brm`qpP4ru$G7j-p1uGJL!9&14U4J6lW5ZbVV-rs+7nI-Ps`(sXS7xQ6i!F(;=l z8qtg21Z`5&_JFbEYnoag!<yS-i?0y>{{-l@ zm*ezvy&z-yFAbgUkC0N6TvDcX91rq|(Eej8$lg?^Hhl_I`kn%8IX+DDzt@4WstoT! z%MGqsj|)Do>>+oxjL>6K3!VO5mbX%6DW>9H=TY!6km8IVP%pbT28NkRa#oO*gl)?`LqC49HYTjW(5qJ zJz$TmSHKJ9ujq>7MfAe!@1*x%2z9Iwf`?ngZ5qz)BY_4C?741?k`i%bCCDQCYA*@# zI?KlHuOT=72{IO|mrxBeFYI#>Azx2c(zW#w^y|;FSy^*;pn zlt07Zv8m|!EgEHFDoEPBWcH+r2I^NBa+hW6LcQEQ=9Aez6z_~BPFK_Mgq$=Zf954S zG}9Uff_IaK6W_^M9Svydd_bQ4u7~)Ia=^J+#Cb3!isTJy!QF5LZfz)^&7;Bl?C0Iv zp}6cWQxXwIJ=K2Eba`ROzp$UXP*?~n7S2S&&27|VNiCYFi136^9*6%1Qr%}wWa;o} zFxqtwVn7qmJt#&;A4SHjek%CZT&Bu@4B(?Ji*L7gptf{84z6Abx^lWO|D-)YepOAnZ* z(n-_-ZS7bD+0_`N`W|1-;*wPdQb^J4tysJv1jcpMKq9>sPU;JTg@HGuy!}j8a!$dW z6E~TfgJ*Hx#vPDxOP3yYs3E@;gwShV2yGsm0|o-u=-Y3n(fZLPau7a|E9^buG*b@0 z&3wTKIUmL0umz}d;}bm-HIH71+)fT|-T+-&1!2=(F(~-;i>M3bv%xiC$mpjMXEkrk z+Cf1=a}U|GavuKH3FY==ms1VVr=*mwVZTQTg2IpE)N(8d1!`=;=3@gy%l;;5X7;dD zic-E~YIr;0Ds#$Fn%<91z-cRH;9io4ji+Wo#w;xylWAcKKbZmNXD^K331jCC3E=}@ zmW&L~LXF+gc)nMUCLgiJ@GX7#;!P_tY1m2@T`;aEI#kb8lBF!vDcc{L4Z^IgOh2I6ESW(WCP zrv=A^La6AYapwNhK#V;S0-rK+;MRtPbf>N}HgoSbr7!QnaMKae5m-V0`<#oj>fhsj z`D>UKf02yqza>i^nZUi;c5>gkoa?wG1X7-#C)MwFl2!{f-nRDXaNwgD=ZRw|idfX+ z{mpib(d=(16{>5%9y+dtQO~;f@5!hsO33k5SK^E%_ zTT7Q}Kw9KFINU1-C0C`1=ky6OqWY4gz21r64osoDHq5~VSi`@t5pB2gQ?R7b1Z_z=YK~G{KT1LLP z@1lk8{BgwIh?lWQ5@y|54D*k~ld8XQteL7PI3^^*$-#PB{jq^Gi}n(M{=*n`^cD%2 zQ%Y2iR*+1++W_>=EjlQB&eU{LEVS7{v`-be*dnEYVX>!W@FJbhL zk)7{9FjuQpFthF)9_Xc5Khp%>jEU2;--~hR?nBZ&X2PzO=D{J|6C~_hB4ob`hLon= zbn}`t?4`LV^iKh_^ki_F&LcW3GYj>m{w5kD5kT(OVZHS`d~*LdG~7^tA-RX_nu%2G zk&Ym%zczDxcCUpkHD+)y-jyB{aff3K(P%h4iUPxYFsj5bZykleS9~VB)KL^YZ?BnL zv$G(xJr%-dog#P41bBtH3Ha)SBR=t21PN|kOarS4(yhrfERh3|b%J!ZY!&^a>W>Wv zrxEt#atw8Hrm=4l5O?vzihGAil2;7&b2gx{?;?DC*qSsYxJSq4oGgb_5+o&tN`)`5a_|yO-@!%iW+5z{ zlg{pS{ldELA0bIOTw-vh9>(Sd)B2fd_!DinNUHHR8W*o;nf8D$ zG%!aF|A|J@X zpYfA*w0=!9G^4TO$a?hN{gWKY?V?fj3FOz>!_-y&Ai48MpFWwR0!O#cfTF@w>YF)0 zr?0();S2BJ9kom_Zp?%AyV^K^FF!)-Q=`nkm=>BYJQHRVT*2Rw>MXzCQ8-lRMMm8p zP&uc3?7#XNKg)^Z$dq1UeNzBrG!8=Z7r?nC6sIB6M5g6bi#}e*Isx;YA$ne zuiKW<)2`&fi*gN1%q5-47?HM=LytLgLpF@^Y7ja z%-uiC)TFSeI3x&G8)I0t7BLw6>5CsSg?O+3qp0Pd2oan>bo*O{ar|HD^Z%qVqI?=T ztYAv&@eARfu^aE2$l~^68K5t>A5I7gk&1=ocq?%)3Vy$W8QA9s(T}9BShwvT#L4U0Kk6r$@hvv=G*#4g-&dVD>;X!Gh zCZCW^OMM(15|3p2yP9c{)j8O`$OQ4}4))N;UOH=O0a;raMHG_E@Z!5l`o&ff)FXc} zB2tGa=f-JNt`a0W`!#Uh&BNqyyCB@Nx5Z(zM5zBc1>C1DU{8g%vL`NVA**GK$*KBK zSWy!O7Ih*hYu$%Lq8N=ki)qEW$hvK|dM(|OQWn}6OGVNtiG<9Dj{8T+bxxaEqQ|Lm}+#_bg9z9OiU?K!x zP{LLBPT}t$du&^`6Ql~JqS@$TBXdd-lviAzd?!GzOmYOtS+_OrKg6ZczEwX~OL>K_SWKO^Xuf)sqZNe7M}SRm+!=iarhF}cK7a%R0!YIG0JV{YOM(~UxT1Y;kZJ{hpUnGP&m3L^aTminE z(#!f7O*B3+Q-Ngt5GFW13L5eTh`gK?Vw)l;ENTIzUTqXOD+3PF(Zo9N8it2E(8@7e zdVYNfjZl&zQX_LK5l~1M<(}y2gLtrgr?Vm(6gu%?xtVDr zFs%7f*!XQ3e%beoa(F+O6^>4X`))Dl?HZ;Fcx9-hKNo&E=fjyhHnirm5ty?C?+hKl z->2iS^v@_Y8<`1ZD?g+7FCXfBF9&z6yh^X1XrXFSZFqFY9$b;zhret&>@!zUEcWAq z*LQuJrJGXlQ&<#!=dzU95I_fRRWrYOHxgQOgMK^RL1T|6pj758kP5G-b)64zJR=d) zR~{t=rcbz1^c}n%Er7qN-zPJiDHWYG!q-8-wP)$@`l+NvSrs=tNg;CL4b-DR7`qqV#UnRM zA)r1Qj59i6W8A(;_H4w?XBDWZ9gXGRgK&ECb-e5HjGcEq6kdIs!BgJujOIt8A<(av z{Tut82A&H*U4sPEKXj(vA||@wKWccZpS#}r7L%XQ zN43HQ@a@TGNUYCWU#SdZaf>;GIw4pFwb0$UnmjR;NMv&yL4wl=x13clqb(4?T`(Oa+C&Jeq!UfDsx_2TkPz7{&hr-oz9$``9=#s(qKsJfBPK4oO9P}T!&wP0!19sD1U|MT7nQi=x7;Qa?{8wtwG`WQSjj&)e14`iI z<`XdT>o8n09wGNePeFsKJ{m8|L=nD67<*L_8$MLSrc28}AUh2U3*OLqX~%IH{{xb` z>jb`-Erz^}mLM}Fj()tip7J@b#Wx#DaDR^)tth{O(wnPLbb1%VD=j99!&*3C>`%5Y z>4IHFKjE=*KdRC?bn9)VZ+-Hxso@U!v*ItA8hQp4cIOkdL$i6hw?lE}j_r7CNd(k= zaYqpiXR0JzNl%u`(OWIf`1Xh;YP^5JdU3o_ty_g=FP;WF`)A|EMg>^!Yf6momq3{O zPNIGIDEqDW01aF60UGp7;BP}FapAi|;ve$ymWBRd=e)6n=g+TTU*9VFY+4~5{4+t< zDj>T^R?g;@Yb@uQ#hbH#g@%=^|@6>f{( zJy+Pg+%Ht)l?@(V{RL&q`WQ~_LSkAMMjbCEu};hQ5%GWT`HXQa7CuM8&!g*Q0Vs+!(~SMO`2A2Ps-Mlm{dvh?c3>aW9Bv~~UJCfEXDycA52sd5 zs>G|z4)4XjCj-?>>GKb}Xx`FQL`Zc3vX>WNgJ=|9-Vue-+{0w7Kbr=BtD?e*# z&&I(c9@gokl6PASspw}_nrw3!Mepon0?Uly+{1p>;b1H^H7h3zFA6X>MAqU|lXULi z>~coWR{+Y2=3`5$6k8Rv6$9q*1Ls!(thvwIGkPZaKT4FYa4LG8V86yBi@8MO znC~_Eicgfs8B@nyt2dDu4^&a-R}5I$#DVqsJ2d?cpnsw@S)FAJCly!1I@M!jv*ji3 zGJ!<;aMwxfH?AOK%Y4w|Vi3BSwXpodY4qlx0?%)BCH@v`gQi=a)GMYE=Ra7AK?^V7 z&ip+n{$mT-lb1w3jm`zJef`kmdWkkDm*Vwn!aTv#@o>5I5DW_qW0!e0I-IOyC0_rf zC)^w9x;|O>9dv`7nQ;KyHs3*6OA%6hfX~J#tb_C7$Os)=7R%-yQY7xNf9S4TYa!|C z40x`S0}5GfWMc0MvWu?(mYm&5XJ6h-8#972r{EL)wl9n_` zFEe#!3O4div%8$&sVdXmb#jfJt|J{j!9$7 zd5;-;fh>AIPYk!s384ROA}ju|3TOU4h;>Pdz?{27v^iCDI7tL&X&Asrdu30oxeE%|(O8re?6yGnwvw|VitR@7u zx(ITPEc-|e73QOGq9oS*@5n!+Bhylhn%BmyLdHJPrXdEe`O+* z@|*^f0J!-h2$*fATNnJ?OLt}%Zc>IDS?%I7GCl(0dYCBu#n0_7Zp3uV&^?me<^%-dBeMl~UxWb;e z6@)kI-_Wg&y5KJqN=?1upy6{N^B_tVA4|&6X2(0MdAB~5%GnLN)9rBT+arV*yPpmf za!^Hb3TXXNhM!Ry_%7R?aP*GT`**^L%x^_hv!2R(D>}_)TH$IEZug$i^GU?-d2gX_ z&KAbpK#YhB@q>eE5itwXB_WM3sBn!OiHgj`?lr3TCQBbI6aAsD*bOCOqtIhh8)-eD z4LdJR`g`0hmfqY?e|Bu80$+b~uNMhmj-@(2s_3Ji?Skp^-AifUy((B3QUadg{aA50 z4Z53bnSzTWI@)`<7m=l)}gHkLkOoc_8^m3VZ)pKucLThl=UpGd7p5 zt80L}o5NwvR$1P&)#vclOG#XudxEuF_Xu}QdbMbTDtTJC65Ow(Q_YMFawa+*-p~F- zW>?)t8O{cLz0nMKYuoAjJ!vR?k8mV5%!eT{M_8BMk7lzspyetVQW%`UUB9{lonEd- z@3W5debX4Zu&I-^>(#LK7Q6-PO1j{_QV-~q%|YJzM50+TyyvcJw(bLK7 zv4WkrGd&!WZO`M}cq25hU4)BX9HBQ#kks9c1-pR#)C8`=Gn-xDQ)>-FuLvG84P>XN z@{!XIOi1yhN1hqd#_X7zWR`(DGcQVqUi{#P>lPQHpZs1rF{=z4-8<-VcL{v((;4?v zbrN^6P1vq2XJd7cL(1O#CXA{O-IEr}xfZ$tyW&+L!8wW!{2jr3na_AE&l$BgUBc`H z0p5=#({&(d5kKB|7>0Ki$ASCDdvJP{EQy)i zwSO9HN!$A#@+Bn%ozGaHp7Rpi5TJwh*ORcVZVkOVmqQy;CbjEQ4RyM?4BLRhSVzgBBKZW8E$lQ%?3F!<$@ zK3q~PpdLIaCU_THRDtbC~XdY`pm8De-U70`;jq554EnFSd0*UP+_*kfcE3)e)B`8>& zOtKW`l$yIESp9y>Kgis(NxNc7p+oZ&Be^M3PWbebq3{-$gk2MTG(x7*LM&s6d z-L%v?n(7BrXm^{-s;74{!XC2NH#83%o>ovvWj++&J&z9M`@-@ypV-&GoPfa=_7Fngs6 zGPl;^Kg$-nWjUo~PMg_9)7Ma0-*wb3%o{`*0m_j*0#Cm9z=+3dc)cc^S+A^)chaiq zvG!@GaP9)VwXBe?P?~~Yd?>_ZE(DiLo57&x598P!Lc6*zgS)dU9=w!*N0$`gytzBL zRkn%f_4O|5N{>>R>R$R#NC|$3$8&@wv{!o4T8alssTS!+dR z+BD$tE%Eew+l0!3fd=XmSVvY3iO~7AHZXiNmPQ}dgqdCXICEa)3-(3?*F zx|GwG8_m(kW(%hA@4%JkIdo!U5+`EQN9w0pNR3Qa!0u(rZ;iWMOCGMWm6UShdwbtG`F7TM&{f)*dMV8j1I(Rs)9^nY=@y^NA1O)3p( zNTKfgRAjbDl7vXh&R(IVz4x9<8BJ;2b3RgN*d!~mk{w?%vVMO5-hbYY$GzuuUeD(r z_ul_RnRD(q!L|EVBpt2mCj#l>I6KHYsQ}XNa#8Q)Pxe?N7shWMWX8plaPVRv z;HNowT=)cA9oN$+bh6E`z@Glae?RWCgN!;cP1dznCfukx1}DCU+Jmorvb+{+9Eua*6Psu5nUt<1EKY ztOWgMS&g!*h4G`xA+!ix#o6vq1>H~`<}H#&x5w6jT9^Ckyr5OocXld zIGuIP_M#1c*TV}*c{u-R1soJRhF@G)(_p3?f5_aHIwW=A-h!(jCMS+R@&wI>Ut?JO z(HIDO{ELl#=ESfIJKqQs3cC0b9y8U1qSXgS;!njeq*y`Yz~Z{ ze3?J{>ke!9l1Rn@t<3cC6xz}}3(6zwNxAR@S@4FW{p2mHwMl`Uan|ff-GBeOuoMkE zwt~vzrA+Zb8UFH-Ch_9yeCnny%$=0Syp9=Smij!FqLspmbo|(b5BsSxSsCu8TY#0N zE`_xohsQ#{uY`PJ08;fX_eIx8C6ta@J zB4M>kya_f3O=s%Ls?eUg36D38vFe<@m~B}5on0AVl-K*0g+5dym3x2ik;GiO7dsv@ zuFr&?wxeJ+EXk}Zwb-}W(R4GW9t(?_1{itDM-$Bbzd{YJgzie%&>16HetNW_0NRdl??7Ya{d z^#=wkXC~q3g&LIZdXj_=jRjG&42-lZqJ%3N&|#DX(Qc+-QK}7N?!~gvCzrs)3op6K zZ!c+=VK5~Z#aYfU^`pWw_sBa&K+j(uW|jeQFn42{S zINXrC1Txgb_HVYKP0j|iR@t2Ty+*O@=>oPwYD@Fix7XQs?kAJ8*2TtKZKyeRDO(hJ zo4txQ6=e9ukjsRbq*EKj7Gx;GE<=3^8F3CL|JMpx-WMTyeH!jV}4z8TxGo-ccI=|hV)g_ z_`1ppY`t-XiXWA;{c9gIz0x#?)s|z~?MX_|{WTewAQR_Fd*kY_qe%C>94ua3hTgu@ z!PGsQ(uWmr&VfrXvEwM{-^oSQbz>)>uO^fAxUzvlAaxoi!%MRALCgI}t8Khzv3CC~TWG_Bx!ilmfh|8Nr zt3#GB%iFqebB+;yd@e>SPc)N}?Yridne$-cykK~6k2s-PRl2I?NNLf7xQ9K&_hQ-9 z?dc1!E|@d@y#hCX=pn8v6593-GSRA$m>^}!PKLZe$n)h}oE=E}!zh||cmvsgt7fu% zE1nV5f&61J!TiSySesV|3;AouWMt#1Wpg=}?$8(9xz>&H_8J(xKAIx69&?-SMZ%Jb zVD{R61msJJfbEwE_FwFI_IK5B6k3|Y-#mAgZIGKzsmr|RNxlk8E8WV@J{aJl+Eppy zqCYHICCu;D0_x2Pgii@CxJ6yzOk8UL*w25<$&Tp6;()_&BI*)bc6l`O8qtg&hcYO! zvJr(V70`CSA_8=x;~Qs+_-IAOP4<*^P>#Ys&q8gL0}$(dzd3W;CvNV;!(^v7g~`8@ zg&n1Tna2S`+F96#2eXbaC0TDc@yv>rtXlyO1?ljj)dgVx9gt2bX4?*j$M{|J`L7U-B{RWCI5U9T*;@4bu%zGUK;Guxdsmy8q|O?Z_^{+cz&U zCGP3%1P??o2(r*6f6^0v=PQmU65zral$Eo*?Yu35; zgRkqqPP*MP&4*f&uu{5-)ST@Am=SQt1~7YPC`et3gnIX1|Cmhyd@lXQ)1p1-abhoS zeVz_$sw>&wY0)I1T+H3NbqkN)m!N~?{}{LXFK*LWXW9Mf0(w>YflOfw2&PzZK9`N5 zF{{+#@z>e(L)H>j|ImUHzkS%D1=DdFMlzrGCs~`WxM0xH5+YKwLC!>h4kWtMdZTQ< zaZe%bo@~cI&isZ>es`JEZ5?Wt5vCzuJD5JQhVAuNCYSzER>uxE;^rmh{FP_gY@O8< z=-I47i~cOcj48WN+EmDDXTc*}PeTu?)RZ#w51;;TEa)%?(06{>$zi>xCr~XKqCCi3j{MQB0`qYtZ zujR4)m1W>uX-p>P`f&BjH>fpbAKq(O#{Czd4RK3XfoiH1zTYJV!uLfXRILck8`MG8 zotx}$&0TUF?q$nH_ToafW$0a^PoMwG#o~X?d|%}$8#cr^4WJq!0brBmrq!!4N6+9Du}yFkUN_vPIj-ca$adZLCAT zG4V{ZTMIrGDYFS8b)>o{9K9CBK%}B8A9Z3j9xVFFu6YKsyOGWK>E(D3&Wxi3i$u1< z`T=bnUqrrD3!!MvxF-LpYuJCkn^@L6agcc2!7Ap=v@H7&2A*9=`)__Bqe*|zVQM1u zho(aMw4b1#%kWs)Z+twr2z5Kxvl(x1v9DW$dFO|FSy5^T?OSckjOzE(-wg)zqdo^J zYs;CFgb@vO9A4QJ4D2+BKa zxcN?Y*hvQ|$v&B{N$o+M2}k(^#|l){En(GP-Dr&5Fxz}126KKcfW|6!h8J?04ITt1Dx22ar1 z<08&(Hz&QLJasr#(G|8Ej8%k4yJG@({@;95&-nq@))dmdLuX-m`!Bp$=S~9@f~RIL z0Hvy2@-ot7UqYg==1wYnk&I#1qTku#3xC*~6P1`$;><}v96NqNm(?%+!d@0EVsbOK z;kVQ<%9*l(*55DV`Wh0Ly{`B_5wxOLl*jgkkA^XCud?GiYS`VO2zLM7BJfslr5mDw z&Bf4ZD4IR@NryAa^>83)A3a~u!IU)e&?)si z)|(d5%^%8CDjLpih^x@GGFiBF-H+|q)JQ>BBuTmss8+~?9?yQj_DwS)mu_<~F3_dD z&PCL)cLgQABOvq+4nbVX!_0!nqBt|??t3Av0uKl zJ4uoz-#bWOmK37jU=u~G79sXTm#UA9Cex?uQCwLa4ms4~H@R2Lbm>pa)5~QbdHO+M zr)0TM<+WJmEM;Zc>m?Ux;mqloJjXLT6{K>uB zsYnt18YJ~am)b4P^CqJf@?RH)qsfD>%%TtJ&gf6<%u5ZLt$l$uQYEYNsA6+l)VcL^0nQHMVlYDeCb2iz1JbQ7Pmo z9tjTRRmQZkKeyvhYFHYi>$NGUW*Hqme~RvKH8d*iJNl|EhN44y)KNH&F1#|e+7?&` zJIW5=^x~a(NK%KpB$q)GmhXf;zq45Q6AAvNeYxcwk22=-pzU8?PS9cb6fA2$2`}F# zqnq?Zsv0(Dix;n3QbI-ni4TC zFpuGMZ+lE${g#D%UIy#0wtGeBq z>)7#vIH_BdF>s3owap`St72e}rb5+JV-l(sCF`+nFyqGzfW8a}jg)}^_njn2*-4oH zt2wp2hKVFUz|56i6jWynP4Dz*RelIPvg)F7TN9xAcN~}w%L~44JWYpd^T~Qw68TEr z#j6(eY_4hrh)+p`UvIwRXl^l99KJ=Hx9owiTjSu(hjX;1F^uF(j46DR9^KpJOv@iL z_Vkb`Ofx@8_MsKH)qg&Sr#C}j>Jt(v&?AFOo9U0&EoS*jm~OetLzSEkxLLhnZk@46 zK}r-iLks#XOTeYvjPA9hK)1~oh!FMU2jg0(=td+x*FNQ~C!uPQWfTQx^;VFr)Jq)psU{uEM`W+xhL)>@ zEw0~o2H~ao_$VR>fJfrCpx?={6O&b9z$EvaU^;bORe3s2Ra0g|t7O{he z&EU=DRbU#o6W28Cu+)%p$LJp?pz4+cTbZ>MJ_m`im$#mAPmjcLXJ0?S(JeRGlFyy| zQ~RCl&!c~5pKyS89S)E!sfP`l)Jg2lH{Sl$R+h}pZMn&lhj!C+uslR~U0%@$6A zlJXkTOnbv#R#rfg$1Bokct_t~PJ$52)uebUys0hn9{bNd3&j)*(EM8?n_HiZKgwn? zA+3DcP!|U;YfadXTmCe5nGsYhuqO5YIBLCfg3c)WP;!wQRdSy=WrI;rT|WU*wc@~6 z|1l>iy&W4%Vz~H_ne^+#2&O)F1jV*$z(YkzXcfK!c3Igh^1di-@4ktunF5@8cnNpE zN(qOz$gyAl|0eU;Os28yKIZa?6jIsCow0w(a%QBmkW)FJ#&5TpyN2LQLO(_|zsG5F z_S2NLYeBF64-0H{!$g|}*t#u)Ef~1Te)&i8>*FTUj*|=VcegK$^K7H*gORM%S{9m~ znt|GipO$UAM!={v8w!}=$25DUGhye^Wc|5~ZL15Wo0IjS(~RxMGX|>syv{ zKaVXZ#YA%`|8|eAKA9-kn-oCe-QU@n1$(jVL^5ivf5I-8$2U*d)6bTw#Ic-dOWE%t zYj}Q68Mj0|W}ljCn3v)oZm@MLJr{e)Go;jq=LjsbvWC< zliALY0n1G$oa&W{P+;Xr%gue^+VEtUlhw)@_o$K@9iz`l0@M`t#%be>@v?ydh3&bE zR@*Wy<~JIH)^k~$ay}8x{(8$)f)d%!v^n&1h8Q1dYeV(5JcR~S^FLM#FP@t~y!1nKvcG~)4reeG+3`5|I0_BJgurCCJh_@^K;u$9cw<`wV$mze z7iy?**=@G}%^aq6vV@J=k;^8o52Nf|0qnrela{xaw%~(j=kZN@Cc~Sis3N+DGBYwE zzRS@nAmuB3DH7-9nx{c>X*#%dt$~al9hN4t1z+B_hpAo?OmoQ-?77Bq`>M;hKU3fG zKX3LEs63+WXxkeUsnB_;mu{X=w}=*a#lXtld7$c_3J%59;Q1pQ2A{rXf8*yf%Y`E$=~X1$R@eqw zZ*A!EYAtG?a)*m_y~w_om{Iq{shC!D0SZNR`N!p3X-i)=4fraeda40+soh7;^D$)0ALO`$vd3G83@0`Ckggr(U9 z;50iFYpUj=q}~|v3JIYP*Vn+EH80@$kTmSonL!6G$CJ~?5Qs9$!Z{blQG4VmT0VI* zUcIBj>B$7(xTF8!xXT~8=6N@{;jgW*RBnh{;#bR**Jgl_OC8-2yUW=m`_fJK{gim} z3k5`qAU9_}d!*+K7xOx}-9GkA!@U(7=09MP#(7YrB8OUz7VPusN?6i!ALS+(p!S%R zWacLUI!5s*&r-NmR`icl{hI zc&!@B(>yCWl$FWye$J;)yWWzef&m|B;Q>c9<6(1>Gy157b0!YSJC1-E9TIea%=K`V0Lm7+pVi2Ajh~z+hMx&K(GZ>QHs?Ss@C_ z(G%&v!EpYnt{Ui?6_Z5Ib*^}&Dqbm&q3luO0@)y3JctiiMLpJ5FVu%L3+s_l=~yY`WqD3hIuF9j!OXQ zTU61;tLij$cQN^_5rfOdR{yf$$7+Svz;xXWjc0sT!=hRZG@Y8vi<*yxcWsxUWrYw} zn+I}RUXG*kva`%$$ppwK8Rm90>(lNWeOaEo_^^3V_fZtRQzO z9LD`)0KShI&syS~VJPBXmnn>a?~je>@Q)OhCte6e`9lyOlh1i|#6W|Y9K5a-W3}8~ zrt&-$vaSxdVR<~?@YIaCInBhFWlFfhY7~hNj-tGO&QlPxoO<0uDRA9$%=;C> z?0h=N_L&JY^VtDgZ)w4^yfB#D&a*#5fB0?EI!q%no|tGXGkjeEf9*$;-KeYT1~zU*KG761vUvpnWTi>F94|tang_cfpHPg$o!0KHtqNcP?pE@szsrpiRYq2`2?6_THmbW@`f$znTlT& zelQ!O1hysZ99}$Tgheg2_|9nn8XG<}8AO_aqbO|Vl9=GW95~km(zWfj zSm2+DT6?F^{PuTD;@1TX>G;>J?}R~of4QYfq7=M&VzFgd>{`y>r&`c+-Y*ma)v{rmOx>L8x~LYBy+X(s4%yajryqxG0$aL z@#6_JGvgt6% z-x7O3>QxLH>#wF*ZHxCzp4IdDt@%{5 z&sT0Vaei(9YFk;Nyqc@O_RU6qt)pqM|2fJ9P=fT^UU#ofELK zL7EltwJg=b2De7)^S33FK}qQrR2EI34?U(Z>B@XIXmuS^6)ss;j(Nt$uNe(<_YAP5 z@4`s#^c~jj7l8NA@1e=5`*8B1<;{z3&cY*7()_n&0`6RvD3f>_#JXFZXkOcQ_UmjM zwOqSQ7ypV2lnp;JMYn(4xvz^9evd&v?U~?Rei0rAtb^uB9AHc-#~G}HX=m5KE)gGo znO`ri+r9(m+sdQFRRL_OSZV5%9-w8SEbwOcxw0NyXv}*JXDC_sp#26!UGM z=fW#0{dt~M&H2T2_dIV7cR$LCw~DZFgWna&fV zpL=__raBiUzDt!R498K4^*c;@zlNG3_G6X)K|1%}NI{xvEWJBZ3O#P^ENL6iH~tTm z&YTA`rm3-^o1IMaM=n}l-w8LkEHJaV4(k*m;p2&M^kb(r&9CNZMyY_#?TyF%vL0aU z_ZdzcvV@y=V{!c0I#5}892yF)GvByOcF=PorasqWGH*tZ%mz6SE<4Rkxl1th?KRlE z_!GX7Hz4cVgV-F>fD50W@x}X0-Zc^=EU(ai-5cmQJBB}O&$F+mbZ9%LjFSeXS@<7E^41+<_oE-- z*}dmTbyPOxhdyZvIH!kGbZlUOY6Jyk9)}`+9I2YE#KkTWw6kd>-925(Kh-beoFhW% zo@ou9Hj4#wm9?xYJ_7`oPJq*=An3V{?EBY~xJ5(;OUeTp;-ib1=lMU_W69{9noiWkXCZ`#tpkxVAA03? ziseuBq}0{NabVF$Y?--^J*kMI+{!)7^YcY^B;5lt0;fXWs#MOQ*o4h2E_Wz>{^i`2{!Q;C_(>zSbWHa-H?y zn3V-n5+h-C-gu}=jG)@nL%hX28@6w)DSQi^0E_!0spi2$dST!Rc5lsKm%&KERsT3L zvA)f|KT2fDV+XMD)KZ#QyA+3xM8MpLgY@b@OLBUB5E2Yta-$B$;d%KLwD5WnNO(;L z@sJI4`AimDe=v%PHRga*#}Jf%u7)pMIP-n|7$eq5(Y23T`J-39vO&L8+Ty9lDh}mR zgzixYYg2*f2w}Q9=MR-DN7257u~afgk$%_Mv0MG$xP_Ohu&U${8haMw;I{Qps9QtP z29-2(^mANqF$a|0gR%badA4`{8ge`PktB@==!=o=zXRw$eHG9ai~q1xyDz+ z!8y;!ENu;C?zlr6Qx~ux^=K;B87EMysl=Vxn_%mCJIHf#g6&eCu+Kh|Kk0mjU6>~h zSy`dvCiR*A^qhn-n?+Id!Z|Fsa)q{y<7kJWJf2cK4%v#{wm`P! zd2CjDg0ep6Av5YSs5uIOAjtw={yc^nqo1(ZYbJ6hs;{$)(T3RlpAz~8OVIIu*}p2j z7fu8|W-r8?kxZBKz5Z%!Wo9xAD=Y<#3XTpN1u>DHohZf>=={TQQVIRd`t<%rmT(4spHuHBz!>2Z+*^L}AS z90*~4KG*OpErVa$YoKn}nWF!Ezz(K}(=I<_p5Bd^aP&4_)fc5HU%sM|=|<*%(~H)x zdyJo6=uly*Fa;Tnr~HNMz#^g+q}v84Z&Wy_P4I#DUrX2(FHOO=!=nZ0nT_j`irAvf zBJi_Dh32Gfq6_`M+5GYi%-C%S)I16z)s6Gv`f4ZW6?qR~nise~W0UdRyocP+DeLG} zod&ji7*7w&g5lkbaS-x!0@Szd1=E#dAUMtkTUEYuf!`-%oa!Okc}+>6()<}U&i7dU zRNBV$Cx}zwktH;BtqrYvFdN4iOoCG{cY^F0Wp?1PK7o)oJlyQf7H`U=6)sM6DqjZ` zZA#dIBzNlG?#S-sC$UUD36Rw4#roSg3NF|q!iqk7vaKRlnVDBV=b-%-jnsa#Zu>8mH(u#NdSM}+3f%@};~F8g zUI$F;J5cL;H}#lKhMxbwBcT{Vd6xa$%auBmX>^{Adh~#=xF`+H9~@{PCIT*9xs4?e z1AM@3Im>frPQc+BO`6gDnEtE3$v#EIL43<|a&Hq6=v78gOl&Y8+XMXW@HI3fB?PHq z^3eU$oHdAQahscNle?!fMPzwjE>*$)SD!Fd+Zlpt9O1^3aQe~|gb{|}@Id7xXg61|rcrY( z4KK>m*~k%W%j;{bcd`g<`@IGR-patO)!De!jJ#paF)hT9!+94uTXSeSUT{DbfrkbUPK^^F)t``Oaaon4J{ zgp%=3*FtD>m8E6bljzX5aFD%z8C&)}WE-!ohU4eMs50yvx#?eFOI$Kp^EY|=)?|pq z**WY0+lzHtlVH+_3N%<7$I>?CF?CM^!R+w!H0Y5{ceBIrzlQVl_v9|PB(fjgtQ$>| zg9j;Cwu*Uft>Rk?yIB6-Ea-mYj}i|g*_SR`-nnTT-85~X+qt&%Ibt{5zSTgpTRYkP zQ+we;WSnK@r-fAIT#U`v-@)+Bkrv9>-mf7#8Qd2R?z zUzC~o!6!`W!CKs1D9^;E2mHI%#Eu<2NN2j#$p38zyVfqp?S0U`VAb7c=f6 z9lmNzWji-8C#e_~Uy@4+AB}Lwrw6oU>lJKs?``rH%%|-d;Z!lWkMc);!#2|b9Qu`l z@4u?xq?JcePF{zu`n<&Q(sGvc%#F>Byuv&yb0I>>igld&!rCgQ;Kire?5vR-8r_h< z#b^EK^2J1Q*?$2&bE5IFZwNE&nt(TVM$=2}PCR|N5Kd>^0BIpNdXxE;opsv}wWJHS zA;NT4Kb$<(q(JokbLP_;3|H@0(A_IS^t3MozL(5}`I6bljn{>NC8>o3ks&9_>KFB_tvXY;r9TV{HKa#tYudD)ziZHn3!a(M%nvK*fpQhwSYr!%g%)J{$e#{J z5$FV+f&DuaDf>$fO_= zo7bM#Am>I9zG)FA@5_Y3jLSmpzzH~ z2!$tL@pcMZ{au}YF1^fl4gB+yleY9%@QG$M)4-7^b* zre|?KvYznUCIr%v0~IvCu!9t@2C;+}dAz-&BOV{C24#Ix_!s{<(ZWl!V&C?1Q;hz3 z-P%&f%nhUR>=yd&{S~#V2C>l1jy;|^mTpdp0xmrUq=Q1)tGYd)*)IeuU*5tu1N+%Z z|7nmJo63B5C~?}Sw$j}}b83DlU_HCinzlcVgzfKZ(0IKtuC)PbbG(lx^@;T5X%!!! z-bH(qUok12m7tQV#J7BFZFV=*2ESus*mW<4-6+(gJ65Af=e!x1w~NqP?>xNxJq4z2 z`~zPs`nW%q#@INlM|1Q-NlMO{bzL*1>*>Gg+DR$FHeQZARnqCVznmbpJA^r|TgZ=F zwgGnOQ}gg{Wg6}C3$_a1Wh*0vVNmP?%B{G-=JbifEkB;A8a&~~ylJ4kSN&*M6hhnc z{qXG+V`?^)1(~t2z-idS@J}(&y*v|&mRI84&-Peh`A>sHCbGqm>a;oaCanq60J-zF zZ2zDqP119sYU4x@JNE`$+^@pM?l;J-I6(ETxhz@fG+SNqnzuK7PAlIKX=sH}P=O0u zc{Ub(9L}(NvC_08FO}7ASWU&{yWzdD7yI&64VQl_r>F5RV9e+BFgLb~atw?~tIr** zHFRLoMo}6q6iL7Tx$U7BZ&`updCR@F0t#+i!P=B&!Ru9B+{?;Ha$H;s3Cm|OHJ==c zon-~-Z)6~UVisMC%q98E8+2GD8^86YV&n!5_~Z2gJ7*su(>oXV%dd;shbhz8r(|RL zxGxMop5Mh1O^W`_s0#ZS#i549N@~p2qc-~|wAA@2b(rbVlmC(+xIPUp85z=>^ncy5 zs-9_Im;o;=pQDev0+-JZ)2D|&EpHy#NfPQKp!NG9Hn}vF`X<~!2g5A-J`@7^M#bF1 z{5;|;GpVF)E$D0J!Kt|WG&v49qdgDVfi**{s(v+=+J&>_KemJ2GdbFClubXM_R)7` zS-f^Q3f`nX#3~h0YJJm5!zLZH>4_!X)*Zpo^K1B7=|=Mu&CmG5wV&OLZ{RjZs=%&W zjqG=m8I(Ru;kO@+vGl+6j#acvz}ts5;5su0-)@;f^-um%`e73&FNz}nj0g-+lI7+H zjz!aMHMCgyh#Oz~3CfoTk*H@nT>g;6W-aSxOTO51(q4DjufbU)k@uc<2_1#;L*;CP z^Dr(`8ZRhyTS`moPSbE*AEn=y5Ufo(0$UF}W^&f=+1AfG^xnjbMrj|jm^@@e;?uuy z$M$`q%Z*9@cDXUM=LN!!3wPPtQ)Xmbm_x~L89k7;WXBt_x!;$s(tpOAA<(UZzTBBX z-3kg&w{Z&mI$l9ru8*gGJ_DO9V&J@;Bsoj$q8Y!81mhiklf-p%I0=!k^VtqKUGdrS zRbd~KJ#EVu|Bhgzo}|(1+A6A6F{SYveVG6E53H%ug6i65(Y54T7(Z$x9p3N*pNr_R za5E7C1uxijL>%^LzXgXwtKnMXCV1!ageh%M1Z8m%wtn<8bo^Y4<2DNzQ>bOfY@_Mb z#|ZjXEP?wJ>v5)~FD~**BYweL`1N`cTd%&GURGPe%c|cn`imkhYF$9luTxQR=TpiR zG*HvK)8sm#3YY%OK%q?=(B8Ecg;pg{xK|=)bi@l1+BU$m{Zp8N;t)y{)-eA^*5Kt* zK?|%@Nm99*k4*|=bGjm^TIL~pxx62WJ{57^VbAf_K2iE}_6`5wO*bp_mBM_zMU+2P z7WAxh8V`m_@cnIbSm#lsvrdOF;@f~n z=}J*HyDr6`>WzTIRp;sW@={WYbHx7W2uz5cP8#J$88ybRZIwE(*VP@0{Q8(mK{348 z84m9G`s`t(1DzbUA&=?;-u$OEeVQvmHrLLutB()RpHUpd76(zg$wHWTGYL1wiU~%n zDxy|~Orv|%@wemY!rs%g`0NTAuFtfb6B9z^EgXEStY-6v z9H2_`IzIWL4WisA_Q~g>WuyNgPRUP!y~r1bhZi!%0%#@?f~=Dn+#s3tZ6XrKX%Gv4p^)% z#KRRc$TM~=lPLaypCd~xqSlUshFvun{6d;i)5btumkvvjc47OL{bDVyQ88&{yLsx9eMbkXv+-MrD>2Jmp4gNf58QR=(VFn=inKhI1$bUhhw z1dL$o1y7iH50HH6RJ{J*G!TF52$dI>kVbPp{@V47jr^U#$?TP2IYOoEipTF}eNL9< zr>K)kRw+d3r`L}l zjh}Z=yEXwXY@dZ;Y4*>kY# z_j-8q!GMBq6_V7l@l3XE@6#T(mQRCpS2nUK#<*B%sRHfpZ$aE&ZQxg4f#zZBu&t48S1e#{StjE0_p zIyN)z5-IPfr@r^ADM?O=M$Vi9XIwSGZ+<9WFlPlnZqpTTK_h548Dwv2t=S9Xc;2!o zn#xnhgTcf+c4_8%TCyt)1HZ(xi#3h#e82*lY$nofJi$cgT_=wxS#;3cl{6>r0>^;` zv{%-Y?B33V1K;n!tJ{%`O*Iwd|FWVlXJ^1PgPYB##>PX2W-4V1lu7ef2=nNdhtiZ3 z-b;EXo>?7Da;v_f))7-!8dk)V8sgZc_2umRvJ32nh9vE3SPTB!=CR{j-?G?0^CAC* z8=dOEg!f)2!+-O&*|`mbi#yH8aHR>1o&A9CQ;?wCDPgEr3qee+qSVE2N>!uP+=3iiYcsIgh_N|K*|p@@LBePEp*eT zyfdTmnJ;lCTO_ciZaS=*v6z;A5yC~UoN?b`8xnJ`WP#x`flDR0aW$Q1+-0grok9NN zM?k&jTbMGvj_u3vq{mC*`Dyc}qeD*v^Lj4NCPnTb!%d4w5%powvnIATBAPq)x}W$} zQ)#!P2p^uv!n33;da;eVer@eZ?V&84U35BLOxUP^+xQwAkTp5U~ z3&>$lFGl%DLlujF|M*!TH_HQ0_&Pz*E(OT+Ddafyo7|??jaYB7njU+KS!&Qk?El)s z>9}5Do9my0NJb(osm!qa+&KehR!`z2Q%lHaD2H|oY{Y5^hmhczeD$R~erWD%cIuK4 zmFKReYyR4_2V$7vl@rjeypD7$9VvcX8h`Tl67ZEgOShb51vBO4sOZ?kX3JDz@QT~X ztH|b}zQ$2lckl#%)ZdM6tw^Ro@1OWAAPm2*oI{2Ve_7v2Su3|OZ=vVEa+Pd`5Ka`IjZLmg>0Wjg#4Bfz)rka}yQ35u)}&f`yjCXBB1?MFI*sODtHC!jPO_d* zS%KWcOj4P79yK-8;D~xEEXt^X9Vgpi&Q&4k(U|_v(Kis}sSCb;j;F7)+t|pCP9}EG zh8y{DA>*PoSY%@YjnmwNVGbR9`tND*azKQ*;3N$HNgJ#hKQX1wWw2t`OK`ZTX|?zJU1%K>B7$$Tp6qfd|6~i)-nY&qw?vCj(W6ksyDSXZydr zNBcDrWVOGPCL9XJ(6n7}%SMBWB~+;SaX=c}BP{{P>MZxLAQ^00JG#Cf|!K}HiAbq2Sf9YV& z_I(_U*I67tW>x_8KDurBfO*mTZxVQRiYabhvYduioP_P6Pnb^sV!DzRM?+WdU`0d& zj(H%#K1TP_*|@3v82JQvDE}1VK5MWeKQ42D+EqB=rzA|6HH7LmKk#YwHMI9%K(7}5 zqPd%TsqxS!)T>(te}A2!GW$|W?mCKzdDYO_CPSg-3)rFD1gcs-kzRL>LetBv~bx}gd@EIJE8R(E07{i$Fs8qNkX4^xHkNcwNy6~5r`M{4z;~-S11a%+IFL8mNv`}Kh5}C$}qKL$v^J-1lBo<{FIeT>5tJI5+3}4 ztt&%m>&GXk8asyU?rlhm8Pi9el`zBB- zP=sd_%h2@5Ej(^n#ak=^=D#)(uDb|<+BP-1BUFk@M!muEoJAC^wFCWM7ckGMGhuUX zKMX}D{M#Kx+?s>W@xu5={Gyk3(04JLlBKGc@18l-m{5aWi~h3U44{CsGpVDF+)0#j~~KF>IVC#T+H-Aup^G_8WPn@{=UOP9g? z8}IPy*b>e|SOgY~3xV}+uemuz3RJ$smtvjxEr(g& zO9y%9&3Jm^KAJs6hbDz>p{{h40*xU#Ga5XSY~!@kd-t(QvKWmg&0QTy+1Y28sMdwEd2-{2W2iZ$xp_FV09@s93VtS zD-4=twgl0P^A$|rScFZ@mIkNJLH3Ep(9Vtm(y1@Q$d~%0eRDS5KCg>ss^6 zS3uWw6`1qjJEz&KOXo!F;AoZ|i0McOE>)i(55H*aYfUEIgPCMt=ShWO)!d#>l@#8x zl>PX+3Lcs`LuiU3POPaTt#iVH&P&hP?J*B&)1mulE91zHsvAJXv{)u?U=NN#V+8SaXSF^KyUs=}bKBn~}6ED;#pq=haJ|W-*YrnbxwmO`q?^_k9 zw099?JZi=Dms;sFd%@I~F*42WW*xH{>2*pWTpBM5fBI$dXoDv_Flx7)G{pmR7G!a| z3&K!#=U?*RY-r&`6PzX;KCa^8*mS^%gj3PNH>D zPW0m+iOF$O`AT zZ$HL9IqK5Ri?R^2|pRS9T&KVoqmVW{WS#}+oO1?m6FS+J=u7=O9fEVg+A9XyfG4SrA{#i~v!(W}Aa zv>F=Il1fi~Z_w!P68I*fm?fVYNyYd6_O9!^I6RIKo&fI9xAys3=-}4L(oH(pT(!pLTA2xuQJDwg^@?CJJP#_mrV;&#BMq^&)EPFH+i>>> z38Y5B;T5`&{&p$65)*;x7wsve!3gg-$I&tO3{<)k4>QlivB)wF@S3;-CZEb6Ivb+m;LZ<;V){voYXXC0CQDNe9&Haqy7_6ny^3`mUzY*~c%j*He;4?_bW9 zPgaKwu1e&8?-=VnT8G-(7W3cCckputq$wtU70N7jhE&fc&Uk46yL8nWtW<*Wp}}!B zE8L#bvfj)5_vz9XS7Wlv3dUp!Mq+=SvS@uVtGOj!aC56SD?ByKjFf?b6JoeM3B%CZ3~C2{ovd3u>dop|yK*nHzZ=TJBxZxqr;AuBY0DOi7@}OdH^^L!g`vY+P%`ixD_P+Q zm77)hS%L-hPWpaRk5fEt+>y&^|8ZyQ{idMa9Tif@$e~{8?XW3sDoyfvx!MTlzbY^b~MHhNz5r&Y^Z z_@SZ0aB07n4i)5p|JD`z<2mXy+43?Yy z!Sc8U#fuiA`>pG2@vj`TT5$p&@RR7-mU!;AZZrt#NwAqq_2}FpZ}Q60fXiq_pPS3* z@N{o{9aV9bdfRr4Cd+N zq@(z8Wh^N#^`<2`mHhj11NK}dijAuYV0p{6sH!BD-5E(Jx5kv7%I%>3f}=R`f`9>) zKWf1JDG`BWvjd#NwFFpMzZ0*TXkgPRZPt=%3+uMbp?9akc-1Fk*x@^glsrolv_?6? zC)Hr^(JALFhrLjIdLaH1 z=BMEFq^lTk_7o;O6@oW&L&@4r4bK}Fv;4Gj_@<=Jwq@SL-&@o1#kuRSq{F{iA+rFr zWhQVfGp=z#>h4_fQGe#Y`XhdxKAZOc<4!k;1x&FuijsGBH^)zz!A+a0#dX~tP1}PP zk(T3Fh`m&eKCc$x^EdtwpdJP7E<-rVyO~=$y#YN_GN{Gu47F!(qNW$eNz^70GpG2{ z#n2r3@j;hvd|X2Z-({24@;E$E6v}Fg$HAIbdkXs=2D;z&v#no!+0S#%NW+_1dUhc* zy6J{mhPkx6s}%LGdE>mdl3cKf2!;4=V~;1#geW;>OpFX~sw?foaVD|cy`X%&H9?{A z>+of+d+A;HD;`JDVo_{;=si$O$z|Pgckp?7a&yO9XI$1{!@_S~;nOUNvGJKLv^8#I z6Z8@x`B@|^T3X3G)I%uqR0q0sPo}T)CUV1e)7jt@@efgO*CtZ*FaqVsebmVP#PK~wP*ZvzZe2*C2XLF(S9RcWy|GN< z&v*JF9!Ocm!HU;Hkp7Me#r{f?_v;G*Tp7I zoC~*kUA+9{01G+c#s`YLVzHBMaraGruq%cI@Muv7`>;iiwtDMR?ruq3d9sF_O4S8- z7evvdC0FMJv?3+RqNzCkFd+@@WT7GflCK$XH z03X`~DAhK|)*aF%pU30K?7TZIZkD3T>F>CLC{217@`SlBk7cIEOIY;fG`cU9jn@xa z;<AgyNTUbYboww7OtD$7`E0(&>HNoT0>Qr>z8oDHH$?VkvS~2ev zOq#R+G=kc>!0~tSaY75cy6nPAHyhE3?T_i!g-Do4=PXnUBAJ@LD`X!1#*W;Y0F9SL z$o*~+1PIrnbDkO#Yuv|;5Rs)X?<65`<6f|HT@PyvqR?;E1Blh`#`QZh(L=8r(-P-d zuDP`mr8b?UFLAO+u`%>*V=>;IBMN;o`H<4(LIEQcX|ks%_h9T{C~+yEiC?1O`u6!` z)m4k3-^Y;7@NCv2B9Hm<;!M8u6PeGRMYa2GuovnJK=M=q^U%x0Q3va(rE4#(j})e9 zLbKV#d)x5(Yf-4o455S9=h3D+4;XG#;O(BgfC}|&wm-@pn`-vsFV#GV@wsfN+Z9WJ zS_|mLxme6O`iWPM|H^#K!{PO>7S^=V3uc$3u#mR#I4Sf#tAN=wx$8ePE*wc&rJAtQ zGTu_6?m8|_l!S1X6SRFOon|HJ)AdXvy0=Zl>S+&yPSZH{bejrIh<8Vc3>7-Shm+Mm z7YcFjfbcE4FgvcQDcv#|y%V&cH>85Z_0y;zq#eE_ju+Tm_Jb?gUeN7E5Z*hEY9$QV z*|r$se=g_tR@OkLtT^QMU*l#^m`qX)IdC!K5gm$KO~?IJV8gQv$}x%L7U>0p)Z8`T z8Wzixtw)l~b9MG7e?C zfMVyJd`WZ{&0n{NyaN7!&-@Tbm5?IS&tpMiX>~6nd*%ne(tA=tw5bj4qB~|3*ei;5nmV(jSL8h_78Xr%n z18)(1xVXueWt9MJ-zo;ry4TWD5fRLNzmJ|s8u6OiKrZ8R@Koq6R5`a0y3gzKDI->( zqGSgKsMx{ya~AB#YAJU2bO*cQAY^qQbQaD%ca~H}*@JXSEKT`ZPU62?SeJVsSnlHR z>(Yl*U)_ki=dOYwvx)RDK#@LOD#pp?^FeCqLE08J7L+rHMqK^(EFP8d`}*Ta(ft&h z@@r>_vgM#*t&G;f=cw)1GK##JLN10bw5{wiw)-A~&jnv-x6UwhU(Ut_1rB7?HJkiw zMpN|tP?lSA29ibOY=+?2Sv3j>5r-T7soQ(`Z*?CeYy) z=y=%API#_Fos=MI9|~gOtAnX^!9|LHag5(Nzlx){c79Jq0ExFakZw^NNXpsKS$9Sb zYdz_|$?HjHZ7Yn)d5*2rPp8*2{KKDM^Mr!w+nXhLT`wAJUxff``46i?-je5jVZlI% zB30*{VK4ipfviY8n-JlNLg)8knB4q-%q&Vlx0AtC#T-q{4>GuMjvVgIfcW0!wEJ8s ze)#c#@{Oe+vd|Xd+LGCSwKJLQ$4gZBCk)K9V!$DM1bSElX1y-mz2d*-Wdo z8b6!J2zKAdp_^AvbF1ovt@Ln=;A4~}{1H`y^}Z!|+^hN@XPMBcp3$iF`w%_6v6+sw z%%Qf>S>S1U4Ls$$=;ybq>x|d?q{@ zYeH8H{o$O72V@6Ev13OR>6qbE*!gN5x-S1ljvqp)C|49Nf9hjpgRE}FgNH-^X!dLq}`KF-8oyp-g61=zc@@ErKD&HN2n%bM^iNHvG`LQ z`NaBwVE zP_-3kRpAA=o%#bWIZuaRRtH~SD^uXlNo>~ZyQn$Kh0`eg!qSAx;oQdr7L=(*Qbpku zDw)9o{|4cqb?-4OZ6tX=F`zSt-Ppj2G`#AqOQXN7hEwTD{EVCZxJcNSx7Iv^v%Aai zz<`?I(%o2E+iV4WDp8nm?F9JwyTPO1#~Xf$-DU6fT3M4~9c}VG$!a}EQRyd1j! zbKA74@${mx8Yj#tW*LcDI5Q&(7fM^f0{uSz)s4AOwd^y$Zd*7?jhG4B?vA28BHy^1 zxk{{VYZK^XK0t#sJDU1yHaErRAbq|d!tSOi(d>wMZ1F%cmdsTXn5x#0oWd#EvTrAa z9}=g;#XOeRD_PCmWl5bZgRUP^Vx5!EqJmWj1w1aN<@z1W`^hS9Pof5EH$IQC2H8~o zt_Jm0{b^gtQd0XRY;`?X$!h(EEUI6%9`=q{Lc3MA6FzDuM`2-l_vr%rUGI%f9=m~W zb0Tf$h2-WiiZU&<(f*tmS!y06v01PA_?&5U%8;>xSyG_-x}Pl+3WFhsbUK$MLz^&%u$71f0R9S8BA*cq`nH zh(@Ee31qeGKXgnh=iiLbg%jh$Nqzrl>Po4E!V%guq1S+t-iG4G-{WAO%mmV2H;>Fl zE}+k=7xAAA|INymiFAJB1aJxe$-*-{uw>*IJO_pFSGo)WZT~VcnI(MqUVlNQK40$qlUn9()58ifPf&_# zKOFsh1GcQc4r}JUXFg>|dHy7DvblBaW?bQPio3w)YeEQkQ609g= zn;$hc8&dI`T3Yth9dDmM$nW$0f!Fj5DSfRv#i>nU0aqr%E%Rvp8TZ(7=cymflYJGi zadkekSsRX1H2vs&$64evL)mFrQ_EK^+i2mt81}aB1Wm33(p2AqbN3UBd#DdC;=j?_ z?-plrxST&*@q>%Hnv15Q6Pe8NK$N&OioMbjf{kxO*y+);C}NigSoY^JE5}CI+}H!- z!xuHbl9J2m}sCwOV(ziZ0$Hu899tm1v_A0 zMK_ZeR-himx7^K%UHoY5hc&^;I9V&4P5nF@l6M8OY4Qs(-b#)97Io5r!G)xt^MyHC zo&>w=sSuc>0j=}{R8^<4c#nQO`Sy*)3jYVZzK=AV;}w|b@CWMNUD3S3FNm!&zJfOf z2GH?=44tl2r{{l+sea5;ixBd&9!HfN6mzR{U;cuTw<89qA7MBvcqSD zSw+Kb{A5R*avE?Vqa^9gSzY>1z7YErw?JLYGhe74erHH))J>tqyeXbFNMxs{-He=8hW7s;NK=U7~b*+8aEI&kTSDMTBNg%5wP zGkaHahz@9n-{VivZ5J_U(>~9su78B>#i>+L8A2hEf_)SV4` zt3R*}x-amgM=(y39|>t?esH|ak$Qb9XvEm#uy5})-XJrXQ`4zyuA4H*vT|ZrdU7ei z@dos@vEd(1+z-8N{p`$+9Gc)TwfTY41bCf&h40Kw$4s#VOs*)0?^^@F`FIx}J2V|7 zCzR0hgSSv&*C_V!bRU%-P$3EVY;x2sqauS|R&i3DCOi8z3;C^~+#gG6S(qwh#3n%R zk5SN)6i%A!)M(a)JXr534eQ)jkd*BL_TX6`KByUi$F}=pmW?hy&Y@E&UPR-CjtW&c;(rZ#bR(A^~BWVHQ z-9zuA{;6`BQN9i2p1vWw!cbah_Z!2@&f)zl+Hh*?cyEXf z3Fj}f->zRd?%Ouff2mGqWXH3k_1DqJU6H*A+sd81GLlktBk5Xg5>qe_Lbtjy_|hf` zx$i%~mnLfno9@BNcW8t36+2K@u%@{wB9t)y5A(cigaf75ns;YzfWDfu=pdK{F4K48 z{uK}SYnIA_u?=T9#QN=@ncUU$EAeQwLKp(M)Ek@&8?@} z;bt5V31{cdE~k@j&oFJ92WPADm2F%SgXgtA18^g)+$aCW#O>J>>z7AAn5aNOA&X-2 z?{T_28@ZwCoy@@K0?uE&jNP;V;^jghML8FvV!P?{3nl#9UB{%5P{exTBjb$Fp;JPqltL+Ha3A0bTLMiXM5)+wqoz2r&N_BdH)X-%K z-j%~_^lo!l6=}^Kt?Na_hjTFKLlZkBoWco(=~CX|pRDV7UsIOO9r_TSg)hT`X`Gq9 zVBb@1!Mn#lnn%=6qyur!C^zXA1v%8SVnut3eAS0cHk*67b19s8y^nvc`GuPo^_%(a z+(7;cXZd``R_5e?jNOyIgnqThS#SR%N}0}4Kzk1LUY|pP%RAu=8ZdpMGC1&JkbkCR z2z&Czz<05W^d|cW;AMOrHbFJi~R zQQabFb_<0nyD;K26hM^Cpi_!+g8Ggv5 zFJDF~W6rSIH@~y*zS)$oEJTx=N0QuvOlFv?2(A1$5H?l;qqb_aR@9^)pJW6&X^-ea za2v`w7ocll0^1N1$4tZG(KkC6XLx2?q=xFSnLCo2rOmg~<1GWQ5bi<3`j_bBcAttr z-KD6BA`~+98B^M@o|Haj!R*A>FsWG#?grV>fW=QJDG!0DmDkZMMNg2deVVo|3WnVi z9HDn*4E?%Tg3<AUAFSt9R_B3rYrbE%H6< z)4s@^?Q^iqUwoc?j z8qX`kgrjNf_t*q_I`1u+te8ZLUJP5zSrEWF5I9Mmk;hQ}@T?3dUQrXX>f9XqT+ zFS5)iVnGpYe=kANnTg!8ko92p5;5nEI2G+^VmA%ngVpu7%wnQ6c^k;EDEs5Q{;w7; zr9P8eAhRD@hc7T#K8K|1)S17e2K-3cL8JYf`OmSLY#{$T>u%0vH6PoV5vQ=DOPtTq=&i*0;Vi%`gG11sfT6?jCbFWP*y~H<@y4B`)gx%p&b43Jexr z;6BeO!BYDWmbdjSh7bK_hnTX}*;{(>O<#_%&7TS#H^R5hJ8(xmjp&MyTho#KaGt3o5!X-iiQWXi*fmrNSb%-0<=t$u}T}M%ZVN11Xi8S*wi&1!uPJ` zkC&_9h_|09QGPQ0HV9=JV#E(u%dx0WtLe7uC>%V{hROK?$n-IR9}{~KzRv`KMi9(A zbr6@fS8y}-+~gERzO$)*m!N_MvHDeF)4G*z@H*o<=eDAh#D)UsFjmPJ#6TR#?8_G@Y_U~7ANR}gzar+S-uw*=StGIHYIovrB9U(3n0cT5%r9Bgk*=auzev zfLzC4M788HnAbdy-*`t9Pszm7^R#_zR+I=;b<75(%j3C~k(gVZg=dkxk89K`> zW&^{wP@^y&&mL?e*$HVBQIZA0t2R;K-NmGRZ7+K^$^$ws$Do|(XBO>h3zv)%VCH5Q zU^V;MhL6USzg?7)dp)_Wq6@J6#c`I;jG)VM3X~rjWG0VA$k3ybQ#d;T2D9eVs5OzK z*1v@=Z`B6fPHX14;VQenZ7;LCc#&ctF+X?0 zRBtuGCyj4(Z_g%**5NtX{5+esf9z)lm%gCQE>*G+IKZ-WM=*RmgMNh$4 zxmX@;Ic^J&>I+#zk?=od8%x94Y7|-7$a+T}V?nlg%*3jXk329293IuO^-h^I@AZ6c z_Pn#~Rhu|}MCUty=~)z4S?+~fyrv8E!*j^Nx&tPj+X*M5W1*r@ft4w1lG%+d%=h3| z&SqpLN^JIIlQznLRhu40%`ax>Hl4+#!-dz@_dlrRM)Tu&qUE;|&&W8<{Y=vJs5wPx-5!mnB!tD#_ zVY0K6=uGKNc4mw#d=(Obrs-F?n>l50cZC!AW=68tW5rqZ#U*S*e+;#1Wl^z9Ic#;D zhRa)bQ>Et|T5K4}Mry@yg2+>tGj%_STUPS}+hnQjS|W3eTnU#yI)h(ODu}F8Z|<}w z))AIPd0C(7>*Gl@f5#D2Son?G|8cRU;PY|IoV(wdjCvI6N3EdDpVnadP7FOCcQeUv zN>H`Qg3R1L^E(r+b2FYx3Cf~oQtkBVAZ1k!qYiiQYkoe1OEdG41s%mWWx%(`N5imo z1M!zO!=lSEl(8wDR3`7HJJ~{1>TcU?pshd)c8jCsO@Ff4a-02_x)^f087MXD<8RB; z)OzG8wncqoTTE|b*SHS0)wO~`Z2r=hA7XS(`CoSjj${yblr7&_MkOFkmKTrEuaKFb zqn=Home-oc1};Jm|39oFSdsE?i-N}+J1AZ<8JZJ5FbkVLuEpvA8gPH{%9k?I>KD=KzbVttei*@hpYESgO=Y`DC2ixt(znh zlGO)Q-Dhm4wlTPNX|atfzBeVeuVT9nsnC+T>-7BYZZ#VP89?> z2CVk98%>A{qOFce^sCj6jlFjgtu_m=`erkGpk=@w_J4;Rm*L#9F+m*Gj3j z_bf$z3}V2}35+|@PuFc`<9LrrP#R>*zZhTByl7<$uWVS~baGG~4vQgduMTJQI~I12 zDaD9cS5Wj(I^TZHhNj-+o>K?{Z7|lmC2Y^W@!7HA@_JR)>S>luF7! zBSLXoRp7yJ8M@^NXkgh?e4{;yUf&yqj>+j5FEf+AF3h5=pIg`??_Qj6P6c!dTKJ1U z50KKCbUJ^l7`o;NV3TwxZJ$v^8jVv>N50B~U!Ql;(ai7FZn!x4c$bOq0H5 z)9UK4+?n}Oc;DEL|ov+Er3)7H@}FwO^VKg;E4-xsvq=OB1< zM}T4qlOQfT4LjvW&?Xfrj5bKZ{!gE|%=1Ak?)?BNI*y}9-a2SL!3L&DR4Jz8(@dCm0^FMm}ScR*%Ya~hdE2fLV2(w z{CEE}+*PRN!=#!ick*_)WLIkW2qtS!W@~=6Q_aY9Zo9oAZ4@k_){$qhJ+_W*`cj8W&%9?jJFl`C zWm`yN?sGa&VnE}D?yz|Q8F=WND`kEaga3*bP%GR)krknov9kp&HO*O>sVBWxE?}Am zk22ZBZ>;*xJP3TO4B-W9!9nLRKe8bV-xaNgw0s2?bWELcD*fOSM31MI9^N-A4^iZ@mjc$>4Djy=kWcQF1CZ8()4*{7IU9) zn;9Ec!k#T+mW?UbsMU6iVB{Wa_y}HP6f>DTPZq-1DIa0U!hR;ZBL^r{s&lvg;e42*-K4(E^Z*xN% z@|eSIe|)johS>Q5_Fn%AH`^nC4{yDSQ4>YcNiPbHxUPflCj+=M;U(X3$^e-20Xni= zoSa>6QRA6mW;fQ8{$3b`E0^jpr{jfCx8H%KSk1>j4{js7RRAH%&sY{tf&SU8%v4(y z<{Gv$hrMIzs6r}@8I{Z)89Zs8WBibt)ZEOh?0@6I$v;@~z078tm`0Giuf^^T|HmD; z5efqJI&ihR%e)S)po!0_plisAg;h7O(SHZol=XUa($9sKJ>uxe(PZk)%%j099)IkM zU=LM`S(pDZnjbRACgl~wwFwV!e*punx$ew*>j_vHw+M7zCd0dFJv3J;09SsPLfoYq zrY|cj_}UbOHEttd$AnkSi|kfXcZ?@Au1JFSM@P{f&la?CJrHYO{K#^a8Ra+Gm2Tw%zI0k4Psj0 z&bC_EYoE*)g@%CboKoC1Ymi1JOl6yk)#11YvInknVanG1z2C*OEuuxeaRvJ%3&s$>LJQHW`c~mhjJ%54;*QT>*e?zYK z;AN72e3x~`;Xna}dbD^iQzyVj|O<16r(1VjdNPutOSPHrH8{hAKMCZpI!%Gp;?BJPp zm>u24jx2BIt@TbdD=bz4!5?!NH9Z?MM!YAps2uiVmmA%%F=SqAGFk7feGofCpAO84 zV3G=t*iR8JN{JLE7ybvIcxyH#Pt~SCq0P9eOdDPtUdhduuE+9SyV&sB&L-CG@hi|bxSk;lve+O<9h(O!a<+38Z< z-UVcMw}4CA{E4P@N>b;z`?zSk9PIeB7V@@taPPk!ps89j;9Pzgc-LL!41}dgN+^Pr zOca9`;vczZ&rZ?G0|_+VvWkrFUZj@~f>?4^45X}_P9v&LF(LikbfC_G&!|;_%vw2k zE#po;3bNGxViNWEpMhs>()72_k>F+u%)S2~+f<+0; z=s$Mw?`1sX-bjM+Vqn>=4?+&pVNS9+O*3(!sn;jL=-N3{;%!CznNj$vdIL-8iKkD0 zFX5e>Ef~}s4hIKbv4J*MwsEy1>$$&@Eu40VJ!+R=o)$hRUL^s$qTI;)zyLSc)d5Fd zHNdlV;~?58f<;{vBE8=ckUTw{f93O>+_FW;xAZq|me>G(i^tHkwKMVa{9uZDb)B03 zD$tk0KqhQhhbFe=$YoA}@XM2Ut%XNHQqB^mkMZDdP0B*`Rz(=l?V|4=I4J5_NG@fD zU?xCR8JY=2D)N{ZP)E9Il4Lfz4KmVJ!hp#@cpGSxSS{@=lz-}wXhV8lx9G{ z?)O})(+x0L8HBEjXR&1idh}UA7@Uf9;m<5%%1r7(M`0!CdvOKNrNq&!Bq<17xR9kE z&!8u!lDO1sKDT}_ik`JyMbWkh9N@Q8vO^5i3?);7Zw(LAjV#Xm>#6nELn-r_9*)0b zg}MjoDH9O(RG_z#bK$+MvkH=+ex z(6a>VoAGS@e-o%{nhKP;J!M&Slejd~SlShpMd!qY$o}R&(sTI@DYwEw&fz9W)udw9 z`iroA@RDW92V{D3seI9aNWTBpV-_^Nmyfo8hH_cmkm;1c5*63Oq2_S3wAu_cb~iD3 zhkzH6odwA<0TdorL^U##$nVus=Hw3Q-d7YpOy>$>QeCG zad@SB1TFZoi|!;YW-!x?R>)P5_>M;Weaa4=NiBgi{m(4x$vC(hi!E*jex}mK?E>lLsH?cl8F3%f6zpbP{KRdDDpO<(?*zwL|)3N&MZ>FL8w|Vas zRZctaBtGm7hGkC+aH)PKZoYh$loS8gj^a>-vaz!sx=ewCNnSPAlu#kc2 zRhp=Wkn0vheI)Wdl=TX<)e%c&} z*6xX7Udt{rH|`psZ51Bq@yX8AeN;zXa9Yny5GKRfO*g5alHp7wt%s;?**&X z!%$aCT~z96jcO0sqeIWOP@9}GnThA?sW(65P^X$DCFZl|FdMl&P*VI>=Dxl?>eYn? z&Gxob^^;6^?Hz#@>ioe>jy0vc%B)bk2o02cGqvRK+}^0n8YrgkH72{=E5@5nW*&|; zM7HJ+nZQNaaInK1s6V|5>UVRIPvZ*IsrES4|HTAI7sN0p8#clqO)0oP3W1kL2o-*P z4|2(`N7XYcP-?>tAlEWW532)g)XFGbbvKjwaZVA_{Y4IYF1Y6w8JJrdXrsvwbQuWl z`!19|KN0|?c~w+_&lPm|hqDlH>KT(BA5Q5XW2iO8d!U=`E~@xwF}j-_fI5K%{OJ~h za`@e-py%a$(ve{}Gq~*7vw0(Mu`8EhOc1eM>>iNi+W(>5w)t6ReNTgfpizDE&zx{Ojgjkz<}8rL$ZFBlL5aZPAV>OS~G~>3qKUY#jCL z1tT=$KsNQTIT!j}?Oy7g>5MAtohbDkZ4swo7jvv(FSV(kHe)09L;L>RjgB^JV)|_l zvJdMs$Mb$-nt!Th46jr`@Np-UryYWx>P$n&zFW@hjxhz-dsWOG{hp}i&NWCkOmlms z9#0hr^O^lo?cv}`bu{YSaI|mbB9t|1FKl?UnmKv%N9x|wv!#ytPfPD)n8L(;KQrBy zwMWG#&ok3k`=ApS_n_^Ym!ph(1<3VqKUcFAT9i@tMQZOUQzpHv5MD=2V5S!*GWna9 z!Muc5Oue-RT#1IHTzjXX-F$U?@qQL?ORjm)Ej#tllFdXu{w`0G)_J;k4es)dJRkqG1PdQDgVxg+eD$ycekSQmew~*CNA$vp z{|H2c>zzm*6-ZoHPa(DIdJ?O$_b{_?Dvs}vf`_l@k0Z8C1n#btctP@A6yl9Z?!6A= z?9ARIA^Zg7WiB8MTeZo%Z6Wb)zn0`Au1EQvBe1u+2T5M6OA2>L@ctK0xGLZ~ zGF}{q58TQ^i?k;)X(oW^^%kVpB{QPq*qI1#_QRrGU5J}y24wM)v8eJkm>J~48<8cR z(0Mz=Hy(ftgAk0tgVbz3jY=le51dYqz}3T65G@NET)ZIx-Us@V+2h@D!_K8x$3}

VyXm&xg@V=8`AjiEyVpm?RZfQNh;3@Pra`JomB-7D!hSq2@Yb zvDXYgnjMJui}x`4#v^fMpB_ZqWI?2fVzOwa43D^Zj6dsC2@JV!Nz9veqVKn-;=s0T zAbmLp32I%5X2Nj}`!y5rKO@6=hcSL$ZB7!loMVzTMv{p;d*RdS!@(w42PZ-kvZ>t+ z-zUw-i%go}Oz02b9@-!8>ZV3=)4a*n%pUwpeJ+EobUN-ePKwKK1>t*38DyKg9XdVX z5yN4fNkLC-eDq)kB3|N&FAvuvm8OeG7qcY1*4mz|JmZGX;>GCc(e6yA-%_x5;fhjE zx3OfTQ#?GrI|kpr?uBPNS&=CPwm6};AKp1-G5j1<1`aO`N;kPA179S@>nlz{!}?Ul zAiN`4a?1b-$`_*%l5u#;!BN=Qe+W4cGlo!8WyIYt9#>a+!k(pDFu&f5cyD$lXC67? z+VoKnean~ZxOD=|9-ESb-fQ3&JvXvyt{5k%hvGfAhvB44lW_P@+ zyoL1-CScj45K>EgaO&6;F#c^Qi8yINV(yM3dVOAkYv)T)_bLTzI7ZZj3{Q?F z_0AH~=rR|p?_UcA8>4U(l>^U$49RH=E#lCLN8XQ|f^UzHAg7CW;Ol!_@ZoluSWvv3 znDL6p+Dv@H((JF6eRr{=B=t#DQ}MneORNLVowazl~atFC|&ym@0;u6zflByhuYUf&$5y z8T#N^luW$tjV42~FC)9c9;E9`cYLn93Gp-F;Y{IBQc>oGM=le>4CiV1U8w=t)bAa< zaJ9sj!^gw4;Wl{G-34T6(F4Y)*q2IJw~1sNOoOoH0eIDY3BDJ$o!PQ~CC(AL;nmU- zm|33;6z1cX=j-9=IUaCNRq-#(D1^yFwn4Co3Ayg8K}>brQDby3#^2o^7t6-riqpBU zeM4cXS+NBSn^X@4<&_ZRF2E)$N`L}eoI5BTL0cJqk}AeojltN(uLknE^e57pMp)|N zh)Jp@u3Mvr_e>s(F5o}l{p{xu@q9A2YUm4ol}8|}u?Mu8TcEcLxnV+B{(0v6(RN6g9DHhdg&gB&gmdXOa!(?b%h?CNt zMH<1nf7vQ3Om_*^W2a&hWN`^H!ACDf!R^>du|yCi3YAEN(Nemrg2|fwHD#Kcx738Gba%z9ym$_R@c7s`+Vt;=EVp3eaEG*9<)!}a zL#ah_>GB1PqkAY+izRWbCXRF*&LfA{ z8H(5viMoi4L|sM3A`_uVv3&g$T^JE&Ph0<;s%Wu97#hzV*>a(6zOG^b-JezAAWw@Y zPs>3`g>5SpPP84XVgZ($+bhg{2dT*{*`Loy4vPFWKDJDRFjSThFO<@bpIYYA)Bt&% zoIdDrpq>A-o-gWTZ}&-}%hx43)2^Zq&+EX?p4SiAy0wz%Li1UPFV*DcRLjFCUlWJV zD5yoC$Wf%oAG5=qC*M%7CK=S%v)hk+`1`1-%eT*uTk4qRfJpg-e01cr#$OxkbYZ-d zeNtQKhAdr2LFf8B+P_Ml!!Z$aIOa;!(Mt3%_Sg2)D%vV`T3+0&*6tdXRc#pO%+}`s zhhweeZc4}hg*#q2yOl-?*!Mtd$G(#{9Fwx^=)l(0OUZHHVSnRTakZ65Y(G@nwx!y( zUsn4oV#qa*CtKMWZ}xdtdUbI;NBp;9ep@kZy{Yaw+u4&QvhkFn)4u;Cx_lSARG;`?3HWWTrj4Sl`fPP|+1UX~p(~RAN$3xI`d7qBDyF=U zvb|HzzNfHqV=n%85x%WvZ_TZj(^xe<*m#c0eUtjn`{pZR^lH4zKQ<;(3cz3fuL68q z3uoxLNeyfly0R@`uiS+z|7lZvMak|f4RsD5dXBH;zH!69aNkk$|H;~@)petG%k`OsA{_fp*HX-+^=r9TQ_N{UO{k(r&9gN=g=f`yHfg_DzmgN20^f|-StlamF4l==Tbnf|xt z=HhDPOiBu2Ze(w2U~q=ImnSU@s|(1fla^8w-N694wsbi;4y0$1{-sV?@l45#j!)5y>E!{>z9a zA3c+yp{s+liKU?-lbyYliz}m}m!v4&|9*!5zD?=dIqbEgz4i8q0%%|Xc)K~Y48LBT z?Sddz=#)1iAVo+m?WkC$8}xPmDAXSXTqdI5af)g0n%956Ak-y~7{r@SOt?+-;omnL zzcKUR2WB)z3rd^~UhKQ_YpUdHj@}&b%&gpBJ~?Xj5w_JogBrI8Q4Gy7*Ygv~_iQ*+ z|MGf#Hi#Zv=$#ynjeg!NqMvR;EaudDF=}FB%s4u1)OlS>?|FSBgOn-X)$2~hTBV-p zr++|kY~jV}8oao|^otcFN$_bm#jqg}jU0t6A4 zKfPa8F@Dbbbd8t#t>mO5mUGyjM19oKWA)6itu*Q8m;_Dj8?uU%zxU_LrKd9cB#{_N zLmPDs!#zg^i_`l3i{p+eCiwPSgh6A?^XS)$Hs>zu&L0k!#3gIy`$C#reQAe#`v;7j zf6k_JR{WfLJ8FGkjnPq6GkiBl5)RKVCaT`FZQH6J8I9XK(E8j;IT(o^F3V$nnwf_l zju8RE-WT}3--ggl?T!)Wpx4+Dcj^c5WH6x$tb;aQwlX5r^R+oHidWS?yNK9Xq|)+= zIC2V&zm}fa6Dnog9e4X^zxS-_j|=tKjjMhhG;&+;?>S!FspWlkmdG|MRPcijA2~U9 zFT@Qn9ELF|AwoCzBt*%m;#S+dV(vk;W7_Zod|!Y0rQZ{@!uo6XDP65{Td|vS`Qie} zo3*aJf@{$IiL*Oqs8B+$&f?9#Kgn6ECkz3fuIg=;Q0rAs@M1!NgVtfQE?nWDCT6KD zK1-+{r^adc{O35&0tRm;G^~|Pp+rdp@i9ARTY?-Q`%irQ!#>7J51kpc<76C=cAmMkIyK55pyWWEY67Sq2 z7HpP=wN+{_;_x~=kM<}0*_;<+v3_+=Y*w(tuYI+A1Ho4L27A+Fkiw$mc>N0hHze-5C}fIK|NLuj6raLEKmMAS%{mZ((RV^GP8Ndeo0|ysY7E! z{)~DS{uiBvmJqsvd@YHdn4iP$9Xv}mO-*{&|I@5dL!ekv8mG0yh%NRg&EXmwM95^GjTDzuWq&(eORucr8vheUY0C}CFR43uyDIJBZhX7bXyx)K6m;)11aSa9cTKjB(! zlt}HA=s$XH?&+4^LN63Y(oX64)2m){)D?ObxQR3j+yio5v2GHI~Yq9Rsdbb zD^W@{bp1OI41J{*gciP%MTu)-6(1M0Z+>qw3Tp-mdq=43#?3S2(0a>QYBttL~s`d-asf;9Ce{)$OyAxx`$j?IthHp~3y z1AjY34AfucT4(H(-xMZ-(voW6x z3a(S;*u=)6wkj?pYv%zYBXen-0ZLWasirJsR-%}>VvdOst*>%8Kd3Ag<_JD5Bu`w~ z4m8u7%dx25WHX!JI<|=N95WN|GSi_jBo{@Y!fF|zBVv%zeWsH)GIFMlb*`fz!3^P* z>?D!e7j;@y8l(StOz}VpvOyGhDOqnA~^&h137bq!xkm{3X|W zV--^y9&~=8neEp#XTsd5LNnLd=-K`u$Jxfeg=XBA+K#iVgw68d^eeT$pb=HsL^5wY zMa>|bEJ~k)GVSv6@l$@3m$q~9u3B-YYU7`<6ElUIwc-!*nilnr5MrB4(~Eh+WHSy} z*rQfB@vQ z&J8jy45Hg!T=_3*``Q~Xf^zk^Yy+&G;s4BbmY89!8!FDUwZker)ORGM?Oeo0-^uoC zMLoM7W|v&pBW2ER=+}148Uw=3ck>=+<>^ht*_`4qro=myji+MF!*5N1>oe77mR@

f6cH*WyfvNEo-O?l5?n1mc$(gz9k$L*H+zeB`Z&1!dS?{ z;35g(s6?tE;UllS#)V^aTc^jbyo@(UX5D8mj=mF`-OSCZv42kenhk}2r6_0t@4rzj zYFS9%U%>!R7R)N|^y$y}4bN#2oxIHnR%Jtc(m9oGQ>eM_sEEe!j37Fisrt82aRO1| zWsboOEak5NJnmTZp>7z4DCSPdUgExOQyICwc(KQo^Yy7ua}DPJS2%C!RpmHjk!&mz zVpVz)`b@0B0OY?QR{1oe&OMWLBi1Rv!D1`Ci8;l(+_-sm?jSdc zGm8Ihg;}DHqp~#?kXV88^Ah!E6rmg=WW)uTM9ph4(Kzn4LaHRpy4hy1ryNZ4eljG= z59=FuO_+%auMR33mwTc=Yi@iniSwt1s)0J?IqPCylv7&wjhEf!9UENISy5JkCZjk> z%FaByANBaA)}l)GvTWu$o#^NdcZ>a^&0n#;UDF|3bs_BCk5kFa=rZAlTl7a* zJd1NAm(6!ggNiDQ6u^9#5WMRrgXdK$44iVKGA2!z6(d%n2f z&nKl?smO$|c-Uz$Dlt6NgN|b1Sz!ga8I}4Z_pjIw7*TfXw;MREHz91h^zhgR-zLBB z#71;fjjCiN{Irz_b3+Xh9FdY{w@vk5`{9h1?L19#`E@7UVxF5dQDS=Cj!JJ1v9~Vp z?Lr>Z$pNX`LT9TQIs#qx8`o`7ngNR}7L-|*>XNRwOP{QcoaS$#!&AWRZyv2VUAbog z*~a05qI_RSJgv>#MtCw`p5Z7s%=qxT5k8pbkUZB2In7V?tL7!dObuynpy#SPono%( zU`iJ1RB1*mgcYf0Fxr%ttfIPhp+F-TlW3alPoEAZ%@ue?gw2ODs|69$RK&A>TW<>k|N157 z@`m7fZ9P5F04*X$%Sv7!A9$_moalWBGs-o)D)HQ`Ho>sR6AoQThe zM48Fl=?Y=U@=-J#S1kk z%c@Ql>&(yLbl4}HRKbD8wbA7i!(swkC5!B%kcvN_iPOvj@m{g6q&4ph%oiG8MV7_--e!UC^W7{_}ko(hU_-<0e3+d7uA$T<)WA+QnuXyZU4#YbQC8)cv z;@GQR5-xbkpRuib(V2W9QM!{*gfBVAwJ*6(HrTBF9@Yq4sN6HYRI`wgSBbYwGoq*hW# zqOJ)$jVpfMJt$<3#WPp-Ug(m8GQRL>(>UobEV{#MB{8s@f_p3olP*P8!&Fl)+INSq z85!zCUdSy0il5%+lz9^s>A@n~|KhKpey>Oe+DvuVIL2-~lr7>M*t468@jh{&GH<72c z8I3)e+t?>#&=TB1VxC@A6QPZ_Xc<21?#-1>+R@i zo!x6tKILIaCLiFCq%<1o!O-5)D50n$SFivZIZ{%;*Sbw)x(URwGj_a^+YhpyQ(Gl= zz)?`+9yHIeUCp6C%KVeuHhI>No>p3FP0sjrUfGmeO-+QNCaSoM)0eEImx^KfNss7u zAz-)47(^2lBrW6glvfwHeLgA8@`5P(HLYbwcy?cgZd&@D+Fxt49Mjp|SEt6xpDrB$TE$!$|$eRl3gr=S2`Vw%TulW7n=>VQfw4p-?V`>qKpQECVib!jvPwPwnG^b)R2*^}BupVoVbX^F!36$lp zn^+H()W%EMP>%eekRo>?#8PUG7k)*iv|8M!zo?_ ztl+@RvShCAI+rn}M6sbT^5eg|>Y{^|vxj&xK0LZfKt^rPAjQu)Od zvY=ck+Q49m)+4Z&PA9kZLQAP+qrW3%XfzryN_fpO>H5iUaVkMBi?JjjJw^^J=SZ|8 z(P1+@>Xwv1H#GWuwD-30FgzM3PZBvb6MeuWzv(b8`shxNS^mK7Gkc{TlM-2%l@=7p zB=CKnFui#w%$R+_uJzqJ?bg_XSs7lZojWEW?EbSs2{j83gUp1ql0bF9f<#t~afL%U zHRRIHP?(Gk_tEV<2k!(uqxvR7It{}9H1q9eMwpOt<*I>+K;-Vkn-+hyI+kcFcsnPi-g@~sT9i*`ZO(Xwp}$i#uT&-urj*H9vqBK zxvoit05n5`4f*XGxf@Ztdld3qH)A*Sa|F(pI3$KUYzOLP^$ig#Sr;ZKBuYGf=cr>QAU*nJy?lTPN}r2OdFESxt(z_Bk!AYas<{`5*qm7c(?3;fWGI39&`l>_SPnIVCFp9GtoaQxBJ3eU zMG!xK`_elMXBEUcweuw+Bp$tqglas6jdmQ5OmkM(y8Sqv6qmZ(tY0|H%VNhR{K`Ng zcc}OQagsdACRo42InoC)q2%YRMQRwLUvWav46QK{7!*W}FonM|dAliPs->og85`2Rs4vw*sM{Xj zNgkc;SS^w51<(ZlOlFg;uy1fI1Wk69203yoUzhJ#2tUfaOO?D-ckbHW7nJUQXCa9p zUVbi{%gE`oT0jzWX%`O=i$}jXv3YntH>q*xtw_FLl;Lgq&0aETk;zro82PyCm}r4r zE)kS6krVUD$qw$SJGazJHjQ!#p5nDcLN3#|1(i6-yk#={9}c|oMsKm~481vT zVc*S4EQ?=@bY7OYz;J8rlvb{tvd&1~ z6ytvhqu`MIJR$ZAn?+yeCVHw!K~^J<*H1&$Q`RzS$9hg(rIGwkq^q{xa@Ev?S)9~{ z>tY8^x*_pRvA#%#m4e=6wQP;~j`A$~kF+}4qQP(J@&1A~ll6)1zBicK)sK=P8GLk2YMwk4C==ZGsF)#I6}zr^TDvIbsk<83zwoD0v77}U90dSY98 z&5@;YLA<_?jtsfS*j#~0Ow}qXcy$Vss2;g8I_Bt%)fJ{@_-XQ(TtAH&mL~`yyv%36 z6d_60z^ zghWAm!GRto*R_u4zIF^lhISD^A&{lmEPO}VRAHbwudbPFsgUL0imWYA+C--RVknPV zmPUVUL72TXcgx`yC4-8tsb>h+6KHqOLr(M`j)!I7Dr`ZCCil^gO1a%&9Q*ap()d6Ib`9}=s z?Qw!nE`sCr@QK?yt%wIT+t9pPUh6qaE@adl!DHrk2MafBQB zMJaBNXYkE|;8*PXI_%lT-Ly6hi$CjTq=jirrPhmKY(_V1{dM%$VUjDFt`jB$T6MIl zx|%Q0`+i+Q${0)_TLpoJCmg4V>g?l(;bXpC@r$y;pz^FY$J{qU_%^D1GPKsA63X1IA{XvM!|UEeTF!Hm&&xDh)nuQAcf;O@16xP_TAA*>I2hMP^c}YI&+i{Hxpdv# zbbzLPQ{5)UDix$k*^X)=CvA~!ii>ka0DCp;Y9QP1$(&`Y<9Xh%a^g?cqRAS}d@>V^ zjelfM_?n7c7Y(naG@g@&do@Jl+{QKA<3NSdwx7upM4@`Evu$?C;YqS-NtXeW*Y%;= zi44S&Wj3$u{?K0O7WNn?Sh95Jf3E-B{pdXTMl{8(7zE(R%cR0UtO;U$SN)56%-t~L zER8cZ;G_b~if!5D%Yd!6b|zQDx~8QHcA_lNt(LiGToGD6kMvrz9BjFLg3s-X?zM+y zRfGLe3dYH+SWk%MeFfAkB*Z?w0=O-NSl{FP7thBbmeM8zO6lBu*a{ULV3v=k0-t)u zn!QanAtdG#)u)Du#8%8Fs&$U|itiqdc`E0$rfAIK1SSP0djN-A8aMM2fDBFzrMh&o zfIu)c5T)TgBFVx0oryFc>Ge#sH)0|n_GNv<+8m4we%QD`0VpM|T0|L2cUwel&pM-@ z=I&;`3HxW8L|cz z<6jj2OeEPGD4v4bgA-*V!`?C!mu{)Fn@;U$X)iW$u62lvp2y(C6_uafj>B-;Fbxy? z*8z9kARf#Cd~UyVAPtClexm}3ogLZ$rP_U639mSvtbeSLJCML8-HXb7a2*qJ@-XpW zs`>{)Atop!~VB=vEJwj2k|#o)%Ht& z7={_=iSeomfwHEg9<{ zIs`?z)i{Ka{unv5Z0>kfAUVONb*PPApuNk3Zm4U_r{n%34~IE84|jde{6t(J{Dtr0 z*$F7*xIJTo-0kGD^gs>B;ndvsA)B#9788PC2+0E6vOL|W9icNeql2x_mhqcwBn<15Es3i8q;?^q+#9?d z(52|-l7^Tp!Et(*_H~y1sr04|WvpBZmpeVekyp&-zq@x3jvZ}1I;Ola~gf%I|~J-pgP z?w6~5rOr`sx31ihC<3TCy(-KVn58F(;-w;oJB2v=eSm>4sY@DDr#Lor9i6z@vtimd zemtT(xCDejf?J(H+M5p62VC}BUP?^Bpwk)OZBlOio!u6Hf z*NFD8|J-dux8FwqBCbt+X9wb)(O`Hv(YbY|kusURGXi0r4I_Qgo(*Gt;iLFW?#g90 zgm>-bHmsr)4(9AXhjbA$5d50!!c#52uoUctJClAWJ!}?#ot6|VX8=0M&FzXBt|VtJiWVrPKhJ^aqpIl}X3%XaR{iZkEGcCSf@>EV6==T z8|Hv4Fdg8bRh8zg9DvfSx?MJt)Mi=lIdT76w@veHoz!8)0IVczZzA-XNaF;y1+uMI zS3l7M!5bHZz|WMXpo8H1U(ie? z(hkBC3Y4bN2lnW!UQNU(8y~n#viv7dDJ zB@Z4bwujzG#NU{ox8q+v-#1}^oi45)00E}&G>Pw%Z+pC-9F}Fk4)NV)H0oR78*}jX z)8WNb)hX8h-r_@b=JGUJ#0e4;+%;@LCF3H3NhRY{j4A9Q2RIal;d2JT=@Zg`uzM52 zr#(O$a{xM6bz|ehRL-mQWI|&v9>9QK?+btuKDzgFUZ~4iZSZkqHyeCb1%UKJrP}Gt zDO?nMgZ(6N=`30n^zd2TS+jWaycl!IF>WAcNFo#6Rqecr766WihF>2lSYqR039#b4 zT`%QNk+B`?>tliYL}d9Vs-ZV3y-fyyIW_vv)NK5&1tt54H7=+roNeQPgbMaDg$nYIs z3;;zdujuF5D|A6QZ0Um? zg1Xf`rnM<97xclGG5krP@~W}aAExm7XNr`r!M}VOV z!J@HtULKF%^rF(MJ0AW8#-2Vzu)xN%Pm;r5&Xn*6(K?j6y~mJxVFMX*?;3UuaVbVkxDDLD z_eKXZQ0%r4C(f@Xq@(7F(T;*qAUym(!IT`kbz1W{ybjgcXIVQzcW= zJOtUiSlFh6?$Ny1mT2}l3W?!vRC>cQDvt8vAM_{a>^fL>p!BpX{>62j`#m2ww89{9 zk`T`k<)Cvy17H(|IEYoo@%Hum75sqa>^)-^GxN zEi#Va&b&-|uMinHWY;P74z6cMH>fO0>$Oy8gx8hsz+>Fil0cPzqq$%VeZs#Nb9@*$(!l z8-2nASx5sU-c|@7jey(CLeVd}_Vi^qS1>(lvq(u?A!6g0oMREeQX74v#xUsDnp$m_*1Jlxj7r?K_QzhCL@3{jSY^L|72+Z-R z4D!MR@8KT1H+Kt*Qajuye+cI1`FBfvLRah1?)F|O{y`sj>D2ukH36;Y>M*Q(2eVbi z^-c`$<%90LlPoJ*<`AwmApaOEHUWK~7UE0(1WHV-4AJ$eR_R0n^B#DR_Qm*IbAuRq zmgYRs!J3o*gBJ*mzm+^eBpjE#43W>Am3Z?*fC~l3-+ut(1;_j1eOaFif_?EbP)H4z zVO41@J7RTv3Bk_jthFv~BwE~tG3i)Z7F1F#2w>}YYb2+vUa$0jLB+VazQ~LOz5_bp zxLP#f{3FG_xk==@sLno(?)EXnaz_ECWGRUV#=R;@38uXIB+i%!-6UxyCVq{r{!r!Q zT{`muFV|gINC2Xa{V;D^%7-rao<#=^?VC43+%AUUmQ8FO?$l{c)&cKhegQaO|BGiX zK!VeDpM-zzM4L239n}wWXoeni(q-3X)8xdloSlE>P=h4wWU(9@;We3Ce}u-mh6eJ$ zf7^|Mcl67a`cU71-qCkphDlqU@Pza29V@)oL_p%lk|k^k&AQ@=N>_#d75E6nP(G*o zAWjAx@OLi8AN~p`XDNvHH776l1307tWyQU?ADkv`kG)-r`lCGmbDw7~1n^4K$r*p_ z3&H&dGPRuvjlgsV#X0;)L}~7KL=v4q&9Uwe^39CnViFZh)6ER`g~_NF^{+&dykTwD z>t|q+^2dVDTJBhenOHlWZA3q!As z^j-@nFn^yR4M-1_|8Yh`hQU&xJ0O4R`v(Q)0ad4WgjY%$&^+DXpLhjEW*BXle!%TV z!PWH*c>H#If|4%ys($%Qu5>oj_eCmyseq(~oMdc2CK2{&a7;Za{YOBgJDv_B6+)-W;!%3(XjoJBWKW0chKyFXr)&>2Hp4e%Yb&+ugszwm$fz`zcZL3x=PYV(|XG zE4qS?)X=a@qHQ}q!-{bpY%(d*FFN>n)B?-VKH9kU#g!4dxQ zeP&NY3wuX@ycwR_<6~;X zKeC_trkiJC`AcJOt_3OXlPP%;lPB(l^Nm~NGQO-{fNPsTK*mNnF6VUfR(FmA^lNy1 z=6wRo1Kw?CT#d}9z9IvoDcMqwU2=kK^U^%9V%fyi)8x5b(+H0rnFHlHyS`v;XJO1 zL-AVvpnr^d6%&J<;Xp8b6MnAPCxq%A9w)w9*6@2xs$%;7izDE)x7%~sq#l`%B2{><=FW+woEYAW<4)YE)EkIaK#2NWJHMy-_XS zQm)!$o;im@klJdftGV@x19VM^tbH$?v}xxkSaIME(P`NxSO!YYWw#*dILC3Bu3Gu@ zac?AFlCP#PIhdQ0^hO7ENSUu5-)ZyhjcImKtfwgJwfCu1tc}(;eJ6>g$orM&=5xj- zYhu)5!kHFbZA~+sNoSIw*)k(gc9@B$P8@gmogbm^o8YNJ$sIDKAmkv5DK2_#0?T2j z8YjE-{sQUJ!Ysz0$o7z2f`Q6>lbYUlB7|{{6(g zH28mvIC-aDq`T%g6;!9QS?rQVgy789zA1QFri^sRm7UM4*+4}~x|d8HP>-+@%@9*F zPZ^=Su_tVxmzJy*nL1^cm#i%S@#QkR3OAzD*Z=&Bs9FQJZZz;-F|B9}x;(q(i9&H4 z{_-Jw-3yjcia4V7Ci4U62g@{@3`X|p$)VUjozdK%y}mukQjl>8Iu%kyglA+st+3ymfTONkeqV`eF9aNKcYRiTDPhYeq zHv`iN=GLbufiN@#(f|b&;?~fPxN**A{){5Uu)`z=DZ@CnA}%|&{`ve+-?>62_>Ql# zvSs*VWPk|s0hcw~=2!_sL3C$=G@H4`_>Vh`ny4mWYn5D5m`DRyF!Dz(#3l%iPCfqJ zaRK%FBewQhvMi$?w9=-)R8Zd}&6r(C+835nK`kz4uzlvIIonTs_t-pze3(Q)+tKMz4rdXkm}`zSk%7w0H@db@Aui5an|!BhjIaBpI$FJxOj)OO&1PW3y^ zPV9{k_LUz*LUj2U1C&~QCjpcYjw>}odD6p!eH#ei!KuylRFf8UuSAYlDRai7yp{j-`3cz* zpAU{9q+uF0_IFSN90RomBrDf$M6vCoH|KVVdvgTtEI%0Qk(a`#|LA_Y@WC+ltST+7}=e)JBZ3X&sW@ zD%QV3iOx#mkeH~X@%m4#j3N`mVq{%?m<$uM>vkV1Z_5a;Qt`zDS5H2W2jq3RL4a|@ zmKt~?yQi3k*O8&N{4+t@pS;SA#sdO?V`roB-9IvU`4E!~f4{{f@%;(F1w-B&hWNfR zpQ>KQ8eH9NH4`j1@+}A$O@8? zTSCE;Za_!ejX6ua5Vw)!56jaaN0c{sS~Q^x*a9ci`X_Qk?3F&lGSdX7nC+TW^| z@P~SMlLT_PfTfc9m#m`wpg-2nXjRG%KtCzrHuTwKZb;t_$=}Y;lIYHtp#iahsUvchUY}2WIUwgD z<|xRJ=Da9P4H~6ChQ?qp8sXeTKd3{XviwQ}ukTni9Je(t4cJ7smH`l2Kiyd8SRwq<5)-?=(MwF| zpo1hL;?kKPq&-t}Uid(EC8V`YunbH^^@h>_eJtJtn3%i|R5Pxjn$$<9jyq^Z26aqs z0+4Q9uPxJ-k88f85=d2Ff?rDnCb?JwP{D&GU?&<7j^qv97$AY|ofw>O_6`jy_!F>! z`*&*Oiq8z78?UmDk;FGrQT?P0)HZnxGX+xo%SBgNenFEYq{C}jkdLOu@F$qeM@_IR zM1s+QI4(7ENrs}LuYYr(K4|aWWP$J-CD%PVNR#_WGpSEfwCr0i`A3dC%3wt8;6EUC zgQ(*_%uDkzsDc{jPdDSne)Jq9H+)kuXrv~x)X^v49_# z((cOxTC?R~j!86(Ofm>b$NE?Pp+;x*a`E9LZ0DPGrdjSl?AaW=-iq-R80`vbmt9~E zAOS~gBqSsTh>9{Q`IC{Qu+N!Ld{EtHe8hB46L1j@$lau0^Ba5?DJ|XvUpScuiw6Z0 zLAAF^jPJFU8#|+TZxlELKw|!$KpK$xdMVx;^Li%vhVk%d0qkph-%fm=e$$PI+Vai? zZNqqVIdxkQfK>MW9@w($G>%>miUarlz2g?Q7O|4(glP?1T1j@eFRv6wNW1*J9^eHZ zNXPt-=SPR?SqjY*IY_-h-sAy1oLruh0)86>M0Ov04(G(dZW(ujw$Z&#uYD;Zx|yD3 zgzYKFFtGkmns%BcQ%wS=Zm%7$EQ-yrm&a&6ShvI;S*>bpI(p6C5S%PaYuesYR3`!$ z|KeE($mO{G4|1P-;lW~h{wSb_(ZSh(!1M&>Wrtbk*iiYo7txPwRB@+>FD|_TUYW)l z(laKnkla47dk1<8*%eZ+z&j;T2A>aSTvX5)($$7iN3y8CloA;C%J9z?#Q*9)Qgfh3 z=yo)JNCw^6bppyof+wDraDU`0m`MV1ht!hJrO#e%gl;vR6f-7u6a|xS<)k060|~f) zHX8C$M(F0g75k!bA3y+dI}2a~jjq1$0Z@Ry9sT0dLpBC704Pp~G)V=!*l)tb97%?c zS#bPbrV7AqJ_?e4l{iYq6n5eR4uB2InuKLX zVyGUB5THmX^abr8CrM~zswdKyE20M$JTn;}@<#A16!n7n?2v}ot-xqOk(4m4UcQbC zG;v9LcLLA=zrBA3#H@aFa?$|yVPkaG&3|MCIJMNl+`dw5_IX)b=0k;bGhxlsah4tM zryH?o8^I0d<6-p!_RZZxJ^v7J<5?*&V5CPV@CA`E0N?ABpSxoX7*wiHEWVD&;3o~h zR6u~w>K>a63E@Iz2>CVrXwBqAAIh5i zpXdZ_WQJVu^Sl9K6MjdhJpbUa{@3f}9Ef81SU?*NTs){Om+3=ks-)2`FDhupO6iL* z`#rK(Bl!c+eG`j961ih~Ob1;UtAqDaVw%3(t-3ck5xoaet z+`b0g%drZ9H?;dBJ2kE$|45D7bUyH6g9i(FYSXd<_OynEY=QSdDJ*n`x|u)H zjd%c#cw|-ZZ>Es=8_UD%ziRV#fcP86GZ+tCuh+ZD{@1U(GU#K;=D;K&OUC>w3!46` zaO7G!{&k*9j&O6m<@CbuBainzVaK{;-(?MIiUg|z>UaG0VqSRBop+pt;In$YCeh6Y zEckQ`ei-s4^+opnD-gn-m*0f^J^szdav9rw>bf-n=XK($_)NxRb|Gs2>zx%yeBXx) zM!$DK14)%t6FW%0;XVftg0b)WV8Ih-?^r;eju#_fpHjqntEwf>6ob?h1hJTCnH&C8 zV3-R=^N>-VIU9FMeE0AdMP0Ov;~cU{8qxx8sNyM!7)4RWey03>rVz5eP;e=L>F~f_ z(w{EEj{u~Zbt&=2`@9|TqHzBaY&6dfQ9*;0rU)f-@?@suWi3>b&599Oj#qp|rEJT` zvLDkmXC+=mNy#zQEcj51&stCqahjCzs#uU02&9xF16?dY)nouDHuY_~r23)sOW}zo zO4D!VIPh6Ny*{H188ml?yBSD1JagBT0F-7zRq3s6 zv85s^i05-5W-rXK!u!=y7jgDd7A13~Gh+zy%{AI!)04WFn4x$-Cxj3ufM!M0-BZhwZQa}j<9!jI|5fe(L#2P- zZ9e1}X`&#ZX90JoAcDfdRbh&NE?_lwC;8>{J`vysWW?^)EPs&x0el~U(arpDu+be^ z=fF5mG`zv9wKtE1xEloJ^Zb?QN$j zd85G!hMi7B>j6BG)YJG7H)dW~fJ)5U1GR!m4oMXB&FN~hh7c%BXtMyEoKr8JpMa3@$NaXc#T_Hi^!fu%lY!#ETEhy6S10v-s zN?kaUa2f>f!(8JNzMm`}3Hd%(tV~b@T&^8^z<%>>StF;wofUu1-a+vR2|oaFzxog2 z%%kUl*v_f{F3vZ#unywYmGzaM*TkL`|5%+kmpNEJTrL>S*Gwk7uka3HZT3>o1!#)| zWUimmq#XZT#B=xh(suWdXr{Zoz1ey)-q*w+OaJwX+Uh1+)^^_Sr@_x|22k;nR(VWG z#r2b~PNmVk8oQX^-P5LIDcRdTN{pDW!zdGTaLetoPaNCPvYsM|I--xfMOwdbWz*v6 zO}Gt51REhTuk1Iu=95HRf@&_ZT6)|HRHp>a;5XrxnZufSAA#)08If$q;$xj2I@eBhI-_tI9#meHc+TcZ!;umnaXrg<0uQ ztJ`jt!%akUGCJ>!tZZSUc>8e(c)l-PwJa=_nd938r37*lA8EL_C!!j@h|4Lg3eBGy zwb6Pn^o-QSZMDMh1k~iqLq-*g;Wk$8t4zO-k?_{&%j?&03BJGtM_sde^OF->0C-VL zCEG`sUv#Rdr(GBrWMYJFm>MPmc86)L_Je-4ddhU`#|Cllq0`y9ags~Z=W|Tk=e-VV zObnkqk8i8%=4p85gz{#(i_T8(UfI6cI;rbRXm~rGfvW7iC$#k0Jk;nwnZ+Ssxu3

aoSrVY5#%&_k- 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 g*~w0JvXh$xe2%)Bg|p2Sf(hk^oo&04><0JOBUy literal 0 HcmV?d00001 diff --git a/test-toolkit/unit/test_default_inference_handler.py b/test-toolkit/unit/test_default_inference_handler.py index 818c6a40..e43e026e 100644 --- a/test-toolkit/unit/test_default_inference_handler.py +++ b/test-toolkit/unit/test_default_inference_handler.py @@ -15,6 +15,7 @@ import csv import json +import mock import numpy as np import pytest import torch @@ -40,7 +41,7 @@ def __call__(self, tensor): return 3 * tensor -@pytest.fixture(scope='session', name='tensor') +@pytest.fixture(scope="session", name="tensor") def fixture_tensor(): tensor = torch.rand(5, 10, 7, 9) return tensor.to(device) @@ -51,9 +52,14 @@ def inference_handler(): return default_inference_handler.DefaultPytorchInferenceHandler() +@pytest.fixture() +def eia_inference_handler(): + return default_inference_handler.DefaultPytorchInferenceHandler() + + def test_default_model_fn(inference_handler): with pytest.raises(NotImplementedError): - inference_handler.default_model_fn('model_dir') + inference_handler.default_model_fn("model_dir") def test_default_input_fn_json(inference_handler, tensor): @@ -67,7 +73,7 @@ def test_default_input_fn_json(inference_handler, tensor): def test_default_input_fn_csv(inference_handler): array = [[1, 2, 3], [4, 5, 6]] str_io = StringIO() - csv.writer(str_io, delimiter=',').writerows(array) + csv.writer(str_io, delimiter=",").writerows(array) deserialized_np_array = inference_handler.default_input_fn(str_io.getvalue(), content_types.CSV) @@ -78,7 +84,7 @@ def test_default_input_fn_csv(inference_handler): def test_default_input_fn_csv_bad_columns(inference_handler): str_io = StringIO() - csv_writer = csv.writer(str_io, delimiter=',') + csv_writer = csv.writer(str_io, delimiter=",") csv_writer.writerow([1, 2, 3]) csv_writer.writerow([1, 2, 3, 4]) @@ -97,7 +103,7 @@ def test_default_input_fn_npy(inference_handler, tensor): def test_default_input_fn_bad_content_type(inference_handler): with pytest.raises(errors.UnsupportedFormatError): - inference_handler.default_input_fn('', 'application/not_supported') + inference_handler.default_input_fn("", "application/not_supported") def test_default_predict_fn(inference_handler, tensor): @@ -162,7 +168,7 @@ def test_default_output_fn_csv_float(inference_handler): def test_default_output_fn_bad_accept(inference_handler): with pytest.raises(errors.UnsupportedFormatError): - inference_handler.default_output_fn('', 'application/not_supported') + inference_handler.default_output_fn("", "application/not_supported") @pytest.mark.skipif(not torch.cuda.is_available(), reason="cuda is not available") @@ -171,4 +177,34 @@ def test_default_output_fn_gpu(inference_handler): output = inference_handler.default_output_fn(tensor_gpu, content_types.CSV) - assert '1,2,3\n4,5,6\n'.encode("utf-8") == output + assert "1,2,3\n4,5,6\n".encode("utf-8") == output + + +def test_eia_default_model_fn(eia_inference_handler): + with mock.patch("sagemaker_pytorch_serving_container.default_inference_handler.os") as mock_os: + mock_os.getenv.return_value = "true" + mock_os.path.join.return_value = "model_dir" + mock_os.path.exists.return_value = True + with mock.patch("torch.jit.load") as mock_torch: + mock_torch.return_value = DummyModel() + model = eia_inference_handler.default_model_fn("model_dir") + assert model is not None + + +def test_eia_default_model_fn_error(eia_inference_handler): + with mock.patch("sagemaker_pytorch_serving_container.default_inference_handler.os") as mock_os: + mock_os.getenv.return_value = "true" + mock_os.path.join.return_value = "model_dir" + mock_os.path.exists.return_value = False + with pytest.raises(FileNotFoundError): + eia_inference_handler.default_model_fn("model_dir") + + +def test_eia_default_predict_fn(eia_inference_handler, tensor): + model = DummyModel() + with mock.patch("sagemaker_pytorch_serving_container.default_inference_handler.os") as mock_os: + mock_os.getenv.return_value = "true" + with mock.patch("torch.jit.optimized_execution") as mock_torch: + mock_torch.__enter__.return_value = "dummy" + eia_inference_handler.default_predict_fn(tensor, model) + mock_torch.assert_called_once() From cd5c22c221a586d957482592c2679029367e7ac5 Mon Sep 17 00:00:00 2001 From: Nadia Yakimakha <32335935+nadiaya@users.noreply.github.com> Date: Fri, 13 Mar 2020 01:50:54 -0700 Subject: [PATCH 09/15] Add test coverage back --- tox.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tox.ini b/tox.ini index 17910885..fba5050a 100644 --- a/tox.ini +++ b/tox.ini @@ -51,7 +51,7 @@ passenv = AWS_DEFAULT_REGION commands = coverage run --source sagemaker_pytorch_serving_container -m pytest {posargs} - {env:IGNORE_COVERAGE:} coverage report --fail-under=80 --include *sagemaker_pytorch_serving_container* + {env:IGNORE_COVERAGE:} coverage report --fail-under=95 --include *sagemaker_pytorch_serving_container* deps = coverage pytest From 04bd435a957ea7fefaea75317fe58721baeafaa9 Mon Sep 17 00:00:00 2001 From: Nadia Yakimakha <32335935+nadiaya@users.noreply.github.com> Date: Fri, 13 Mar 2020 08:47:33 -0700 Subject: [PATCH 10/15] fix test --- test-toolkit/integration/__init__.py | 11 +++++++++-- test-toolkit/integration/sagemaker/test_mnist.py | 4 ++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/test-toolkit/integration/__init__.py b/test-toolkit/integration/__init__.py index f8beb0d5..6500428d 100644 --- a/test-toolkit/integration/__init__.py +++ b/test-toolkit/integration/__init__.py @@ -19,12 +19,19 @@ mnist_script = os.path.join(mnist_path, 'mnist.py') data_dir = os.path.join(mnist_path, 'data') training_dir = os.path.join(data_dir, 'training') +cpu_sub_dir = 'model_cpu' +gpu_sub_dir = 'model_gpu' +eia_sub_dir = 'model_eia' -model_cpu_dir = os.path.join(mnist_path, 'model_cpu') +model_cpu_dir = os.path.join(mnist_path, cpu_sub_dir) +mnist_cpu_script = os.path.join(model_cpu_dir, 'mnist.py') model_cpu_1d_dir = os.path.join(model_cpu_dir, '1d') mnist_1d_script = os.path.join(model_cpu_1d_dir, 'mnist_1d.py') -model_gpu_dir = os.path.join(mnist_path, 'model_gpu') +model_gpu_dir = os.path.join(mnist_path, gpu_sub_dir) +mnist_gpu_script = os.path.join(model_gpu_dir, 'mnist.py') model_gpu_1d_dir = os.path.join(model_gpu_dir, '1d') +model_eia_dir = os.path.join(mnist_path, eia_sub_dir) +mnist_eia_script = os.path.join(model_eia_dir, 'mnist.py') call_model_fn_once_script = os.path.join(resources_path, 'call_model_fn_once.py') ROLE = 'dummy/unused-role' diff --git a/test-toolkit/integration/sagemaker/test_mnist.py b/test-toolkit/integration/sagemaker/test_mnist.py index cf2bb659..9efb28c8 100644 --- a/test-toolkit/integration/sagemaker/test_mnist.py +++ b/test-toolkit/integration/sagemaker/test_mnist.py @@ -19,8 +19,8 @@ import sagemaker from sagemaker.pytorch import PyTorchModel -from test.integration import model_cpu_dir, mnist_cpu_script, mnist_gpu_script, model_eia_dir, mnist_eia_script -from test.integration.sagemaker.timeout import timeout_and_delete_endpoint +from integration import model_cpu_dir, mnist_cpu_script, mnist_gpu_script, model_eia_dir, mnist_eia_script +from integration.sagemaker.timeout import timeout_and_delete_endpoint @pytest.mark.cpu_test From 26f6339dd76c71a6814891f40a8f715574a62bc4 Mon Sep 17 00:00:00 2001 From: Nadia Yakimakha <32335935+nadiaya@users.noreply.github.com> Date: Fri, 13 Mar 2020 09:43:21 -0700 Subject: [PATCH 11/15] Remove training related code from test scripts. --- test-toolkit/resources/mnist/mnist.py | 168 +---------------- .../resources/mnist/model_cpu/mnist.py | 172 +----------------- .../resources/mnist/model_gpu/mnist.py | 168 +---------------- 3 files changed, 3 insertions(+), 505 deletions(-) diff --git a/test-toolkit/resources/mnist/mnist.py b/test-toolkit/resources/mnist/mnist.py index 6b1fc50e..e0a1dfbe 100644 --- a/test-toolkit/resources/mnist/mnist.py +++ b/test-toolkit/resources/mnist/mnist.py @@ -11,20 +11,16 @@ # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License. from __future__ import absolute_import -import argparse + import logging import os import sys -import sagemaker_containers import torch -import torch.distributed as dist import torch.nn as nn import torch.nn.functional as F -import torch.optim as optim import torch.utils.data import torch.utils.data.distributed -from torchvision import datasets, transforms logger = logging.getLogger(__name__) logger.setLevel(logging.DEBUG) @@ -53,171 +49,9 @@ def forward(self, x): return F.log_softmax(x, dim=1) -def _get_train_data_loader(batch_size, training_dir, is_distributed, **kwargs): - logger.info("Get train data loader") - dataset = datasets.MNIST(training_dir, train=True, transform=transforms.Compose([ - transforms.ToTensor(), - transforms.Normalize((0.1307,), (0.3081,)) - ])) - train_sampler = torch.utils.data.distributed.DistributedSampler(dataset) if is_distributed else None - return torch.utils.data.DataLoader(dataset, batch_size=batch_size, shuffle=train_sampler is None, - sampler=train_sampler, **kwargs) - - -def _get_test_data_loader(test_batch_size, training_dir, **kwargs): - logger.info("Get test data loader") - return torch.utils.data.DataLoader( - datasets.MNIST(training_dir, train=False, transform=transforms.Compose([ - transforms.ToTensor(), - transforms.Normalize((0.1307,), (0.3081,)) - ])), - batch_size=test_batch_size, shuffle=True, **kwargs) - - -def _average_gradients(model): - # Gradient averaging. - size = float(dist.get_world_size()) - for param in model.parameters(): - dist.all_reduce(param.grad.data, op=dist.reduce_op.SUM) - param.grad.data /= size - - -def train(args): - is_distributed = len(args.hosts) > 1 and args.backend is not None - logger.debug("Distributed training - {}".format(is_distributed)) - use_cuda = (args.processor == 'gpu') or (args.num_gpus > 0) - logger.debug("Number of gpus available - {}".format(args.num_gpus)) - kwargs = {'num_workers': 1, 'pin_memory': True} if use_cuda else {} - device = torch.device("cuda" if use_cuda else "cpu") - - if is_distributed: - # Initialize the distributed environment. - world_size = len(args.hosts) - os.environ['WORLD_SIZE'] = str(world_size) - host_rank = args.hosts.index(args.current_host) - os.environ['RANK'] = str(host_rank) - dist.init_process_group(backend=args.backend, rank=host_rank, world_size=world_size) - logger.info('Initialized the distributed environment: \'{}\' backend on {} nodes. '.format( - args.backend, dist.get_world_size()) + 'Current host rank is {}. Number of gpus: {}'.format( - dist.get_rank(), args.num_gpus)) - - # set the seed for generating random numbers - torch.manual_seed(args.seed) - if use_cuda: - torch.cuda.manual_seed(args.seed) - - train_loader = _get_train_data_loader(args.batch_size, args.data_dir, is_distributed, **kwargs) - test_loader = _get_test_data_loader(args.test_batch_size, args.data_dir, **kwargs) - - # TODO: assert the logs when we move to the SDK local mode - logger.debug("Processes {}/{} ({:.0f}%) of train data".format( - len(train_loader.sampler), len(train_loader.dataset), - 100. * len(train_loader.sampler) / len(train_loader.dataset) - )) - - logger.debug("Processes {}/{} ({:.0f}%) of test data".format( - len(test_loader.sampler), len(test_loader.dataset), - 100. * len(test_loader.sampler) / len(test_loader.dataset) - )) - - model = Net().to(device) - if is_distributed and use_cuda: - # multi-machine multi-gpu case - logger.debug("Multi-machine multi-gpu: using DistributedDataParallel.") - model = torch.nn.parallel.DistributedDataParallel(model) - elif use_cuda: - # single-machine multi-gpu case - logger.debug("Single-machine multi-gpu: using DataParallel().cuda().") - model = torch.nn.DataParallel(model).to(device) - else: - # single-machine or multi-machine cpu case - logger.debug("Single-machine/multi-machine cpu: using DataParallel.") - model = torch.nn.DataParallel(model) - - optimizer = optim.SGD(model.parameters(), lr=args.lr, momentum=args.momentum) - - for epoch in range(1, args.epochs + 1): - model.train() - for batch_idx, (data, target) in enumerate(train_loader, 1): - data, target = data.to(device), target.to(device) - optimizer.zero_grad() - output = model(data) - loss = F.nll_loss(output, target) - loss.backward() - if is_distributed and not use_cuda: - # average gradients manually for multi-machine cpu case only - _average_gradients(model) - optimizer.step() - if batch_idx % args.log_interval == 0: - logger.debug('Train Epoch: {} [{}/{} ({:.0f}%)]\tLoss: {:.6f}'.format( - epoch, batch_idx * len(data), len(train_loader.sampler), - 100. * batch_idx / len(train_loader), loss.item())) - test(model, test_loader, device) - save_model(model, args.model_dir) - - -def test(model, test_loader, device): - model.eval() - test_loss = 0 - correct = 0 - with torch.no_grad(): - for data, target in test_loader: - data, target = data.to(device), target.to(device) - output = model(data) - test_loss += F.nll_loss(output, target, size_average=None).item() # sum up batch loss - pred = output.max(1, keepdim=True)[1] # get the index of the max log-probability - correct += pred.eq(target.view_as(pred)).sum().item() - - test_loss /= len(test_loader.dataset) - logger.debug('Test set: Average loss: {:.4f}, Accuracy: {}/{} ({:.0f}%)\n'.format( - test_loss, correct, len(test_loader.dataset), - 100. * correct / len(test_loader.dataset))) - - def model_fn(model_dir): logger.info('model_fn') model = torch.nn.DataParallel(Net()) with open(os.path.join(model_dir, 'model.pth'), 'rb') as f: model.load_state_dict(torch.load(f)) return model - - -def save_model(model, model_dir): - logger.info("Saving the model.") - path = os.path.join(model_dir, 'model.pth') - # recommended way from http://pytorch.org/docs/master/notes/serialization.html - torch.save(model.state_dict(), path) - - -if __name__ == '__main__': - parser = argparse.ArgumentParser() - - # Data and model checkpoints directories - parser.add_argument('--batch-size', type=int, default=64, metavar='N', - help='input batch size for training (default: 64)') - parser.add_argument('--test-batch-size', type=int, default=1000, metavar='N', - help='input batch size for testing (default: 1000)') - parser.add_argument('--epochs', type=int, default=1, metavar='N', - help='number of epochs to train (default: 10)') - parser.add_argument('--lr', type=float, default=0.01, metavar='LR', - help='learning rate (default: 0.01)') - parser.add_argument('--momentum', type=float, default=0.5, metavar='M', - help='SGD momentum (default: 0.5)') - parser.add_argument('--seed', type=int, default=1, metavar='S', - help='random seed (default: 1)') - parser.add_argument('--log-interval', type=int, default=100, metavar='N', - help='how many batches to wait before logging training status') - parser.add_argument('--backend', type=str, default=None, - help='backend for distributed training') - parser.add_argument('--processor', type=str, default='cpu', - help='backend for distributed training') - - # Container environment - env = sagemaker_containers.training_env() - parser.add_argument('--hosts', type=list, default=env.hosts) - parser.add_argument('--current-host', type=str, default=env.current_host) - parser.add_argument('--model-dir', type=str, default=env.model_dir) - parser.add_argument('--data-dir', type=str, default=env.channel_input_dirs['training']) - parser.add_argument('--num-gpus', type=int, default=env.num_gpus) - - train(parser.parse_args()) diff --git a/test-toolkit/resources/mnist/model_cpu/mnist.py b/test-toolkit/resources/mnist/model_cpu/mnist.py index 779c46ff..602d55d3 100644 --- a/test-toolkit/resources/mnist/model_cpu/mnist.py +++ b/test-toolkit/resources/mnist/model_cpu/mnist.py @@ -11,21 +11,16 @@ # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License. from __future__ import absolute_import -import argparse + import logging import os import sys -import cv2 as cv -import sagemaker_containers import torch -import torch.distributed as dist import torch.nn as nn import torch.nn.functional as F -import torch.optim as optim import torch.utils.data import torch.utils.data.distributed -from torchvision import datasets, transforms logger = logging.getLogger(__name__) logger.setLevel(logging.DEBUG) @@ -54,174 +49,9 @@ def forward(self, x): return F.log_softmax(x, dim=1) -def _get_train_data_loader(batch_size, training_dir, is_distributed, **kwargs): - logger.info("Get train data loader") - dataset = datasets.MNIST(training_dir, train=True, transform=transforms.Compose([ - transforms.ToTensor(), - transforms.Normalize((0.1307,), (0.3081,)) - ])) - train_sampler = torch.utils.data.distributed.DistributedSampler(dataset) if is_distributed else None - return torch.utils.data.DataLoader(dataset, batch_size=batch_size, shuffle=train_sampler is None, - sampler=train_sampler, **kwargs) - - -def _get_test_data_loader(test_batch_size, training_dir, **kwargs): - logger.info("Get test data loader") - return torch.utils.data.DataLoader( - datasets.MNIST(training_dir, train=False, transform=transforms.Compose([ - transforms.ToTensor(), - transforms.Normalize((0.1307,), (0.3081,)) - ])), - batch_size=test_batch_size, shuffle=True, **kwargs) - - -def _average_gradients(model): - # Gradient averaging. - size = float(dist.get_world_size()) - for param in model.parameters(): - dist.all_reduce(param.grad.data, op=dist.reduce_op.SUM) - param.grad.data /= size - - -def train(args): - is_distributed = len(args.hosts) > 1 and args.backend is not None - logger.debug("Distributed training - {}".format(is_distributed)) - use_cuda = (args.processor == 'gpu') or (args.num_gpus > 0) - logger.debug("Number of gpus available - {}".format(args.num_gpus)) - kwargs = {'num_workers': 1, 'pin_memory': True} if use_cuda else {} - device = torch.device("cuda" if use_cuda else "cpu") - - if is_distributed: - # Initialize the distributed environment. - world_size = len(args.hosts) - os.environ['WORLD_SIZE'] = str(world_size) - host_rank = args.hosts.index(args.current_host) - os.environ['RANK'] = str(host_rank) - dist.init_process_group(backend=args.backend, rank=host_rank, world_size=world_size) - logger.info('Initialized the distributed environment: \'{}\' backend on {} nodes. '.format( - args.backend, dist.get_world_size()) + 'Current host rank is {}. Number of gpus: {}'.format( - dist.get_rank(), args.num_gpus)) - - # set the seed for generating random numbers - torch.manual_seed(args.seed) - if use_cuda: - torch.cuda.manual_seed(args.seed) - - train_loader = _get_train_data_loader(args.batch_size, args.data_dir, is_distributed, **kwargs) - test_loader = _get_test_data_loader(args.test_batch_size, args.data_dir, **kwargs) - - # TODO: assert the logs when we move to the SDK local mode - logger.debug("Processes {}/{} ({:.0f}%) of train data".format( - len(train_loader.sampler), len(train_loader.dataset), - 100. * len(train_loader.sampler) / len(train_loader.dataset) - )) - - logger.debug("Processes {}/{} ({:.0f}%) of test data".format( - len(test_loader.sampler), len(test_loader.dataset), - 100. * len(test_loader.sampler) / len(test_loader.dataset) - )) - - model = Net().to(device) - if is_distributed and use_cuda: - # multi-machine multi-gpu case - logger.debug("Multi-machine multi-gpu: using DistributedDataParallel.") - model = torch.nn.parallel.DistributedDataParallel(model) - elif use_cuda: - # single-machine multi-gpu case - logger.debug("Single-machine multi-gpu: using DataParallel().cuda().") - model = torch.nn.DataParallel(model).to(device) - else: - # single-machine or multi-machine cpu case - logger.debug("Single-machine/multi-machine cpu: using DataParallel.") - model = torch.nn.DataParallel(model) - - optimizer = optim.SGD(model.parameters(), lr=args.lr, momentum=args.momentum) - - for epoch in range(1, args.epochs + 1): - model.train() - for batch_idx, (data, target) in enumerate(train_loader, 1): - data, target = data.to(device), target.to(device) - optimizer.zero_grad() - output = model(data) - loss = F.nll_loss(output, target) - loss.backward() - if is_distributed and not use_cuda: - # average gradients manually for multi-machine cpu case only - _average_gradients(model) - optimizer.step() - if batch_idx % args.log_interval == 0: - logger.debug('Train Epoch: {} [{}/{} ({:.0f}%)]\tLoss: {:.6f}'.format( - epoch, batch_idx * len(data), len(train_loader.sampler), - 100. * batch_idx / len(train_loader), loss.item())) - test(model, test_loader, device) - save_model(model, args.model_dir) - - -def test(model, test_loader, device): - model.eval() - test_loss = 0 - correct = 0 - with torch.no_grad(): - for data, target in test_loader: - data, target = data.to(device), target.to(device) - output = model(data) - test_loss += F.nll_loss(output, target, size_average=None).item() # sum up batch loss - pred = output.max(1, keepdim=True)[1] # get the index of the max log-probability - correct += pred.eq(target.view_as(pred)).sum().item() - - test_loss /= len(test_loader.dataset) - logger.debug('Test set: Average loss: {:.4f}, Accuracy: {}/{} ({:.0f}%)\n'.format( - test_loss, correct, len(test_loader.dataset), - 100. * correct / len(test_loader.dataset))) - - def model_fn(model_dir): logger.info('model_fn') model = torch.nn.DataParallel(Net()) with open(os.path.join(model_dir, 'model.pth'), 'rb') as f: model.load_state_dict(torch.load(f)) return model - - -def save_model(model, model_dir): - logger.info("Saving the model.") - path = os.path.join(model_dir, 'model.pth') - # recommended way from http://pytorch.org/docs/master/notes/serialization.html - torch.save(model.state_dict(), path) - - -if __name__ == '__main__': - # test opencv - print(cv.__version__) - - parser = argparse.ArgumentParser() - - # Data and model checkpoints directories - parser.add_argument('--batch-size', type=int, default=64, metavar='N', - help='input batch size for training (default: 64)') - parser.add_argument('--test-batch-size', type=int, default=1000, metavar='N', - help='input batch size for testing (default: 1000)') - parser.add_argument('--epochs', type=int, default=1, metavar='N', - help='number of epochs to train (default: 10)') - parser.add_argument('--lr', type=float, default=0.01, metavar='LR', - help='learning rate (default: 0.01)') - parser.add_argument('--momentum', type=float, default=0.5, metavar='M', - help='SGD momentum (default: 0.5)') - parser.add_argument('--seed', type=int, default=1, metavar='S', - help='random seed (default: 1)') - parser.add_argument('--log-interval', type=int, default=100, metavar='N', - help='how many batches to wait before logging training status') - parser.add_argument('--backend', type=str, default=None, - help='backend for distributed training') - parser.add_argument('--processor', type=str, default='cpu', - help='backend for distributed training') - - # Container environment - env = sagemaker_containers.training_env() - parser.add_argument('--hosts', type=list, default=env.hosts) - parser.add_argument('--current-host', type=str, default=env.current_host) - parser.add_argument('--model-dir', type=str, default=env.model_dir) - parser.add_argument('--data-dir', type=str, default=env.channel_input_dirs['training']) - parser.add_argument('--num-gpus', type=int, default=env.num_gpus) - - train(parser.parse_args()) diff --git a/test-toolkit/resources/mnist/model_gpu/mnist.py b/test-toolkit/resources/mnist/model_gpu/mnist.py index 6b1fc50e..e0a1dfbe 100644 --- a/test-toolkit/resources/mnist/model_gpu/mnist.py +++ b/test-toolkit/resources/mnist/model_gpu/mnist.py @@ -11,20 +11,16 @@ # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License. from __future__ import absolute_import -import argparse + import logging import os import sys -import sagemaker_containers import torch -import torch.distributed as dist import torch.nn as nn import torch.nn.functional as F -import torch.optim as optim import torch.utils.data import torch.utils.data.distributed -from torchvision import datasets, transforms logger = logging.getLogger(__name__) logger.setLevel(logging.DEBUG) @@ -53,171 +49,9 @@ def forward(self, x): return F.log_softmax(x, dim=1) -def _get_train_data_loader(batch_size, training_dir, is_distributed, **kwargs): - logger.info("Get train data loader") - dataset = datasets.MNIST(training_dir, train=True, transform=transforms.Compose([ - transforms.ToTensor(), - transforms.Normalize((0.1307,), (0.3081,)) - ])) - train_sampler = torch.utils.data.distributed.DistributedSampler(dataset) if is_distributed else None - return torch.utils.data.DataLoader(dataset, batch_size=batch_size, shuffle=train_sampler is None, - sampler=train_sampler, **kwargs) - - -def _get_test_data_loader(test_batch_size, training_dir, **kwargs): - logger.info("Get test data loader") - return torch.utils.data.DataLoader( - datasets.MNIST(training_dir, train=False, transform=transforms.Compose([ - transforms.ToTensor(), - transforms.Normalize((0.1307,), (0.3081,)) - ])), - batch_size=test_batch_size, shuffle=True, **kwargs) - - -def _average_gradients(model): - # Gradient averaging. - size = float(dist.get_world_size()) - for param in model.parameters(): - dist.all_reduce(param.grad.data, op=dist.reduce_op.SUM) - param.grad.data /= size - - -def train(args): - is_distributed = len(args.hosts) > 1 and args.backend is not None - logger.debug("Distributed training - {}".format(is_distributed)) - use_cuda = (args.processor == 'gpu') or (args.num_gpus > 0) - logger.debug("Number of gpus available - {}".format(args.num_gpus)) - kwargs = {'num_workers': 1, 'pin_memory': True} if use_cuda else {} - device = torch.device("cuda" if use_cuda else "cpu") - - if is_distributed: - # Initialize the distributed environment. - world_size = len(args.hosts) - os.environ['WORLD_SIZE'] = str(world_size) - host_rank = args.hosts.index(args.current_host) - os.environ['RANK'] = str(host_rank) - dist.init_process_group(backend=args.backend, rank=host_rank, world_size=world_size) - logger.info('Initialized the distributed environment: \'{}\' backend on {} nodes. '.format( - args.backend, dist.get_world_size()) + 'Current host rank is {}. Number of gpus: {}'.format( - dist.get_rank(), args.num_gpus)) - - # set the seed for generating random numbers - torch.manual_seed(args.seed) - if use_cuda: - torch.cuda.manual_seed(args.seed) - - train_loader = _get_train_data_loader(args.batch_size, args.data_dir, is_distributed, **kwargs) - test_loader = _get_test_data_loader(args.test_batch_size, args.data_dir, **kwargs) - - # TODO: assert the logs when we move to the SDK local mode - logger.debug("Processes {}/{} ({:.0f}%) of train data".format( - len(train_loader.sampler), len(train_loader.dataset), - 100. * len(train_loader.sampler) / len(train_loader.dataset) - )) - - logger.debug("Processes {}/{} ({:.0f}%) of test data".format( - len(test_loader.sampler), len(test_loader.dataset), - 100. * len(test_loader.sampler) / len(test_loader.dataset) - )) - - model = Net().to(device) - if is_distributed and use_cuda: - # multi-machine multi-gpu case - logger.debug("Multi-machine multi-gpu: using DistributedDataParallel.") - model = torch.nn.parallel.DistributedDataParallel(model) - elif use_cuda: - # single-machine multi-gpu case - logger.debug("Single-machine multi-gpu: using DataParallel().cuda().") - model = torch.nn.DataParallel(model).to(device) - else: - # single-machine or multi-machine cpu case - logger.debug("Single-machine/multi-machine cpu: using DataParallel.") - model = torch.nn.DataParallel(model) - - optimizer = optim.SGD(model.parameters(), lr=args.lr, momentum=args.momentum) - - for epoch in range(1, args.epochs + 1): - model.train() - for batch_idx, (data, target) in enumerate(train_loader, 1): - data, target = data.to(device), target.to(device) - optimizer.zero_grad() - output = model(data) - loss = F.nll_loss(output, target) - loss.backward() - if is_distributed and not use_cuda: - # average gradients manually for multi-machine cpu case only - _average_gradients(model) - optimizer.step() - if batch_idx % args.log_interval == 0: - logger.debug('Train Epoch: {} [{}/{} ({:.0f}%)]\tLoss: {:.6f}'.format( - epoch, batch_idx * len(data), len(train_loader.sampler), - 100. * batch_idx / len(train_loader), loss.item())) - test(model, test_loader, device) - save_model(model, args.model_dir) - - -def test(model, test_loader, device): - model.eval() - test_loss = 0 - correct = 0 - with torch.no_grad(): - for data, target in test_loader: - data, target = data.to(device), target.to(device) - output = model(data) - test_loss += F.nll_loss(output, target, size_average=None).item() # sum up batch loss - pred = output.max(1, keepdim=True)[1] # get the index of the max log-probability - correct += pred.eq(target.view_as(pred)).sum().item() - - test_loss /= len(test_loader.dataset) - logger.debug('Test set: Average loss: {:.4f}, Accuracy: {}/{} ({:.0f}%)\n'.format( - test_loss, correct, len(test_loader.dataset), - 100. * correct / len(test_loader.dataset))) - - def model_fn(model_dir): logger.info('model_fn') model = torch.nn.DataParallel(Net()) with open(os.path.join(model_dir, 'model.pth'), 'rb') as f: model.load_state_dict(torch.load(f)) return model - - -def save_model(model, model_dir): - logger.info("Saving the model.") - path = os.path.join(model_dir, 'model.pth') - # recommended way from http://pytorch.org/docs/master/notes/serialization.html - torch.save(model.state_dict(), path) - - -if __name__ == '__main__': - parser = argparse.ArgumentParser() - - # Data and model checkpoints directories - parser.add_argument('--batch-size', type=int, default=64, metavar='N', - help='input batch size for training (default: 64)') - parser.add_argument('--test-batch-size', type=int, default=1000, metavar='N', - help='input batch size for testing (default: 1000)') - parser.add_argument('--epochs', type=int, default=1, metavar='N', - help='number of epochs to train (default: 10)') - parser.add_argument('--lr', type=float, default=0.01, metavar='LR', - help='learning rate (default: 0.01)') - parser.add_argument('--momentum', type=float, default=0.5, metavar='M', - help='SGD momentum (default: 0.5)') - parser.add_argument('--seed', type=int, default=1, metavar='S', - help='random seed (default: 1)') - parser.add_argument('--log-interval', type=int, default=100, metavar='N', - help='how many batches to wait before logging training status') - parser.add_argument('--backend', type=str, default=None, - help='backend for distributed training') - parser.add_argument('--processor', type=str, default='cpu', - help='backend for distributed training') - - # Container environment - env = sagemaker_containers.training_env() - parser.add_argument('--hosts', type=list, default=env.hosts) - parser.add_argument('--current-host', type=str, default=env.current_host) - parser.add_argument('--model-dir', type=str, default=env.model_dir) - parser.add_argument('--data-dir', type=str, default=env.channel_input_dirs['training']) - parser.add_argument('--num-gpus', type=int, default=env.num_gpus) - - train(parser.parse_args()) From 9030bff884aeabaeb97e125f06705eda82f008c8 Mon Sep 17 00:00:00 2001 From: Nadia Yakimakha <32335935+nadiaya@users.noreply.github.com> Date: Fri, 13 Mar 2020 11:18:59 -0700 Subject: [PATCH 12/15] PR comments + adding an EIA test. --- buildspec-toolkit.yml | 11 +++++++++++ test-toolkit/conftest.py | 9 +++++---- test-toolkit/docker/1.3.1/Dockerfile.dlc.eia | 6 ++++++ test-toolkit/docker/1.4.0/Dockerfile.dlc.cpu | 6 +----- test-toolkit/docker/1.4.0/Dockerfile.dlc.gpu | 6 +----- test-toolkit/docker/1.4.0/Dockerfile.pytorch | 2 +- test-toolkit/utils/image_utils.py | 2 +- 7 files changed, 26 insertions(+), 16 deletions(-) create mode 100644 test-toolkit/docker/1.3.1/Dockerfile.dlc.eia diff --git a/buildspec-toolkit.yml b/buildspec-toolkit.yml index bbc32055..6ce44784 100644 --- a/buildspec-toolkit.yml +++ b/buildspec-toolkit.yml @@ -3,8 +3,10 @@ version: 0.2 env: variables: FRAMEWORK_VERSION: '1.4.0' + EIA_FRAMEWORK_VERSION: '1.3.1' CPU_INSTANCE_TYPE: 'ml.c4.xlarge' GPU_INSTANCE_TYPE: 'ml.p2.xlarge' + EIA_ACCELERATOR_TYPE: 'ml.eia2.medium' ECR_REPO: 'sagemaker-test' GITHUB_REPO: 'sagemaker-pytorch-serving-container' DLC_ACCOUNT: '763104351884' @@ -39,6 +41,7 @@ phases: - GENERIC_TAG="$FRAMEWORK_VERSION-pytorch-$BUILD_ID" - DLC_CPU_TAG="$FRAMEWORK_VERSION-dlc-cpu-$BUILD_ID" - DLC_GPU_TAG="$FRAMEWORK_VERSION-dlc-gpu-$BUILD_ID" + - DLC_EIA_TAG="$FRAMEWORK_VERSION-dlc-eia-$BUILD_ID" # run local CPU integration tests (build and push the image to ECR repo) - test_cmd="pytest test-toolkit/integration/local --build-image --push-image --dockerfile-type pytorch --region $AWS_DEFAULT_REGION --docker-base-name $ECR_REPO --aws-id $ACCOUNT --framework-version $FRAMEWORK_VERSION --processor cpu --tag $GENERIC_TAG" @@ -57,6 +60,8 @@ phases: - build_dir="test-toolkit/docker/$FRAMEWORK_VERSION" - $(aws ecr get-login --registry-ids $DLC_ACCOUNT --no-include-email --region $AWS_DEFAULT_REGION) - docker build -f "$build_dir/Dockerfile.dlc.gpu" -t $PREPROD_IMAGE:$DLC_GPU_TAG --build-arg region=$AWS_DEFAULT_REGION . + - eia_build_dir="test-toolkit/docker/$EIA_FRAMEWORK_VERSION" + - docker build -f "$build_dir/Dockerfile.dlc.eia" -t $PREPROD_IMAGE:$DLC_EIA_TAG --build-arg region=$AWS_DEFAULT_REGION . # push DLC GPU image to ECR - $(aws ecr get-login --registry-ids $ACCOUNT --no-include-email --region $AWS_DEFAULT_REGION) - docker push $PREPROD_IMAGE:$DLC_GPU_TAG @@ -82,6 +87,11 @@ phases: - execute-command-if-has-matching-changes "$test_cmd" "test-toolkit/" "src/*.py" "setup.py" "setup.cfg" "buildspec-toolkit.yml" "docker/build_artifacts/*" - test_cmd="pytest test-toolkit/integration/sagemaker --region $AWS_DEFAULT_REGION --docker-base-name $ECR_REPO --aws-id $ACCOUNT --framework-version $FRAMEWORK_VERSION --processor gpu --instance-type $GPU_INSTANCE_TYPE --tag $DLC_GPU_TAG" - execute-command-if-has-matching-changes "$test_cmd" "test-toolkit/" "src/*.py" "setup.py" "setup.cfg" "buildspec-toolkit.yml" "docker/build_artifacts/*" + + # run EIA sagemaker integration tests + - test_cmd="pytest test-toolkit/integration/sagemaker --build-image --push-image --dockerfile-type dlc.eia --region $AWS_DEFAULT_REGION --docker-base-name $ECR_REPO --aws-id $ACCOUNT --framework-version $EIA_FRAMEWORK_VERSION --processor cpu --instance-type $CPU_INSTANCE_TYPE --accelerator-type $EIA_ACCELERATOR_TYPE --tag $DLC_EIA_TAG" + - execute-command-if-has-matching-changes "$test_cmd" "test-toolkit/" "src/*.py" "setup.py" "setup.cfg" "buildspec-toolkit.yml" "docker/build_artifacts/*" + finally: # shut down remote GPU instance - cleanup-gpu-instances @@ -91,3 +101,4 @@ phases: - aws ecr batch-delete-image --repository-name $ECR_REPO --region $AWS_DEFAULT_REGION --image-ids imageTag=$GENERIC_TAG - aws ecr batch-delete-image --repository-name $ECR_REPO --region $AWS_DEFAULT_REGION --image-ids imageTag=$DLC_CPU_TAG - aws ecr batch-delete-image --repository-name $ECR_REPO --region $AWS_DEFAULT_REGION --image-ids imageTag=$DLC_GPU_TAG + - aws ecr batch-delete-image --repository-name $ECR_REPO --region $AWS_DEFAULT_REGION --image-ids imageTag=$DLC_EIA_TAG diff --git a/test-toolkit/conftest.py b/test-toolkit/conftest.py index 045ec84c..ff6e4a7f 100644 --- a/test-toolkit/conftest.py +++ b/test-toolkit/conftest.py @@ -1,4 +1,4 @@ -# Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# Copyright 2019-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"). You # may not use this file except in compliance with the License. A copy of @@ -45,16 +45,17 @@ def pytest_addoption(parser): parser.addoption('--build-image', '-B', action='store_true') parser.addoption('--push-image', '-P', action='store_true') - parser.addoption('--dockerfile-type', '-T', choices=['dlc.cpu', 'dlc.gpu', 'pytorch'], + parser.addoption('--dockerfile-type', '-T', + choices=['dlc.cpu', 'dlc.gpu', 'dlc.eia', 'pytorch'], default='pytorch') parser.addoption('--dockerfile', '-D', default=None) parser.addoption('--aws-id', default=None) parser.addoption('--instance-type') parser.addoption('--accelerator-type') - parser.addoption('--docker-base-name', default='sagemaker-pytorch-training') + parser.addoption('--docker-base-name', default='sagemaker-pytorch-inference') parser.addoption('--region', default='us-west-2') parser.addoption('--framework-version', default="1.4.0") - parser.addoption('--py-version', choices=['2', '3'], default=str(sys.version_info.major)) + parser.addoption('--py-version', choices=['2', '3'], default='3') # Processor is still "cpu" for EIA tests parser.addoption('--processor', choices=['gpu', 'cpu'], default='cpu') # If not specified, will default to {framework-version}-{processor}-py{py-version} diff --git a/test-toolkit/docker/1.3.1/Dockerfile.dlc.eia b/test-toolkit/docker/1.3.1/Dockerfile.dlc.eia new file mode 100644 index 00000000..ce2dbcb4 --- /dev/null +++ b/test-toolkit/docker/1.3.1/Dockerfile.dlc.eia @@ -0,0 +1,6 @@ +ARG region +FROM 763104351884.dkr.ecr.$region.amazonaws.com/pytorch-inference-eia:1.3.1-cpu-py3 + +COPY dist/sagemaker_pytorch_inference-*.tar.gz /sagemaker_pytorch_inference.tar.gz +RUN pip install --upgrade --no-cache-dir /sagemaker_pytorch_inference.tar.gz && \ + rm /sagemaker_pytorch_inference.tar.gz diff --git a/test-toolkit/docker/1.4.0/Dockerfile.dlc.cpu b/test-toolkit/docker/1.4.0/Dockerfile.dlc.cpu index 6a8d5552..22b2a139 100644 --- a/test-toolkit/docker/1.4.0/Dockerfile.dlc.cpu +++ b/test-toolkit/docker/1.4.0/Dockerfile.dlc.cpu @@ -1,9 +1,5 @@ ARG region -from 763104351884.dkr.ecr.$region.amazonaws.com/pytorch-inference:1.4.0-cpu-py3 - -COPY docker/build_artifacts/changehostname.c / -COPY docker/build_artifacts/start_with_right_hostname.sh /usr/local/bin/start_with_right_hostname.sh -RUN chmod +x /usr/local/bin/start_with_right_hostname.sh +FROM 763104351884.dkr.ecr.$region.amazonaws.com/pytorch-inference:1.4.0-cpu-py3 COPY dist/sagemaker_pytorch_inference-*.tar.gz /sagemaker_pytorch_inference.tar.gz RUN pip install --upgrade --no-cache-dir /sagemaker_pytorch_inference.tar.gz && \ diff --git a/test-toolkit/docker/1.4.0/Dockerfile.dlc.gpu b/test-toolkit/docker/1.4.0/Dockerfile.dlc.gpu index 9e3682ec..2189c646 100644 --- a/test-toolkit/docker/1.4.0/Dockerfile.dlc.gpu +++ b/test-toolkit/docker/1.4.0/Dockerfile.dlc.gpu @@ -1,9 +1,5 @@ ARG region -from 763104351884.dkr.ecr.$region.amazonaws.com/pytorch-inference:1.4.0-gpu-py3 - -COPY docker/build_artifacts/changehostname.c / -COPY docker/build_artifacts/start_with_right_hostname.sh /usr/local/bin/start_with_right_hostname.sh -RUN chmod +x /usr/local/bin/start_with_right_hostname.sh +FROM 763104351884.dkr.ecr.$region.amazonaws.com/pytorch-inference:1.4.0-gpu-py3 COPY dist/sagemaker_pytorch_inference-*.tar.gz /sagemaker_pytorch_inference.tar.gz RUN pip install --upgrade --no-cache-dir /sagemaker_pytorch_inference.tar.gz && \ diff --git a/test-toolkit/docker/1.4.0/Dockerfile.pytorch b/test-toolkit/docker/1.4.0/Dockerfile.pytorch index 62b2346d..a9da1ca3 100644 --- a/test-toolkit/docker/1.4.0/Dockerfile.pytorch +++ b/test-toolkit/docker/1.4.0/Dockerfile.pytorch @@ -1,4 +1,4 @@ -from pytorch/pytorch:1.4-cuda10.1-cudnn7-runtime +FROM pytorch/pytorch:1.4-cuda10.1-cudnn7-runtime LABEL com.amazonaws.sagemaker.capabilities.accept-bind-to-port=true LABEL com.amazonaws.sagemaker.capabilities.multi-models=true diff --git a/test-toolkit/utils/image_utils.py b/test-toolkit/utils/image_utils.py index bcc8bd86..2cb696ce 100644 --- a/test-toolkit/utils/image_utils.py +++ b/test-toolkit/utils/image_utils.py @@ -1,4 +1,4 @@ -# Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# Copyright 2019-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"). You # may not use this file except in compliance with the License. A copy of From f4966e2680e89a8b167b45931b34db49707e9a6c Mon Sep 17 00:00:00 2001 From: Nadia Yakimakha <32335935+nadiaya@users.noreply.github.com> Date: Fri, 13 Mar 2020 11:23:39 -0700 Subject: [PATCH 13/15] fix flake8. --- test-toolkit/conftest.py | 1 - 1 file changed, 1 deletion(-) diff --git a/test-toolkit/conftest.py b/test-toolkit/conftest.py index ff6e4a7f..d2f9fac8 100644 --- a/test-toolkit/conftest.py +++ b/test-toolkit/conftest.py @@ -18,7 +18,6 @@ import platform import pytest import shutil -import sys import tempfile from sagemaker import LocalSession, Session From c11a16b7c22d8fec49638b510d14ff940910ec5d Mon Sep 17 00:00:00 2001 From: Nadia Yakimakha <32335935+nadiaya@users.noreply.github.com> Date: Fri, 13 Mar 2020 13:34:35 -0700 Subject: [PATCH 14/15] Do not build EIA image outside of test. --- buildspec-toolkit.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/buildspec-toolkit.yml b/buildspec-toolkit.yml index 6ce44784..a1a2f8ed 100644 --- a/buildspec-toolkit.yml +++ b/buildspec-toolkit.yml @@ -60,8 +60,6 @@ phases: - build_dir="test-toolkit/docker/$FRAMEWORK_VERSION" - $(aws ecr get-login --registry-ids $DLC_ACCOUNT --no-include-email --region $AWS_DEFAULT_REGION) - docker build -f "$build_dir/Dockerfile.dlc.gpu" -t $PREPROD_IMAGE:$DLC_GPU_TAG --build-arg region=$AWS_DEFAULT_REGION . - - eia_build_dir="test-toolkit/docker/$EIA_FRAMEWORK_VERSION" - - docker build -f "$build_dir/Dockerfile.dlc.eia" -t $PREPROD_IMAGE:$DLC_EIA_TAG --build-arg region=$AWS_DEFAULT_REGION . # push DLC GPU image to ECR - $(aws ecr get-login --registry-ids $ACCOUNT --no-include-email --region $AWS_DEFAULT_REGION) - docker push $PREPROD_IMAGE:$DLC_GPU_TAG From dde94b9747dba365244ecceb58e23c823c1cc2c1 Mon Sep 17 00:00:00 2001 From: Nadia Yakimakha <32335935+nadiaya@users.noreply.github.com> Date: Mon, 16 Mar 2020 16:45:31 -0700 Subject: [PATCH 15/15] make sure we show that we use the scripts that we use. --- test-toolkit/integration/__init__.py | 3 +- .../integration/local/test_serving.py | 5 +- test-toolkit/resources/call_model_fn_once.py | 37 ------------ test-toolkit/resources/mnist/mnist.py | 57 ------------------- .../resources/mnist/model_cpu/mnist.py | 2 +- 5 files changed, 5 insertions(+), 99 deletions(-) delete mode 100644 test-toolkit/resources/call_model_fn_once.py delete mode 100644 test-toolkit/resources/mnist/mnist.py diff --git a/test-toolkit/integration/__init__.py b/test-toolkit/integration/__init__.py index 6500428d..7904d0fd 100644 --- a/test-toolkit/integration/__init__.py +++ b/test-toolkit/integration/__init__.py @@ -16,7 +16,6 @@ resources_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', 'resources')) mnist_path = os.path.join(resources_path, 'mnist') -mnist_script = os.path.join(mnist_path, 'mnist.py') data_dir = os.path.join(mnist_path, 'data') training_dir = os.path.join(data_dir, 'training') cpu_sub_dir = 'model_cpu' @@ -32,7 +31,7 @@ model_gpu_1d_dir = os.path.join(model_gpu_dir, '1d') model_eia_dir = os.path.join(mnist_path, eia_sub_dir) mnist_eia_script = os.path.join(model_eia_dir, 'mnist.py') -call_model_fn_once_script = os.path.join(resources_path, 'call_model_fn_once.py') +call_model_fn_once_script = os.path.join(model_cpu_dir, 'call_model_fn_once.py') ROLE = 'dummy/unused-role' DEFAULT_TIMEOUT = 20 diff --git a/test-toolkit/integration/local/test_serving.py b/test-toolkit/integration/local/test_serving.py index e118aefb..f54c675f 100644 --- a/test-toolkit/integration/local/test_serving.py +++ b/test-toolkit/integration/local/test_serving.py @@ -25,8 +25,8 @@ from sagemaker_containers.beta.framework import content_types from torchvision import datasets, transforms -from integration import training_dir, mnist_script, mnist_1d_script, model_cpu_dir, \ - model_gpu_dir, model_cpu_1d_dir, call_model_fn_once_script, ROLE +from integration import training_dir, mnist_1d_script, model_cpu_dir, mnist_cpu_script, \ + model_gpu_dir, mnist_gpu_script, model_cpu_1d_dir, call_model_fn_once_script, ROLE from utils import local_mode_utils CONTENT_TYPE_TO_SERIALIZER_MAP = { @@ -50,6 +50,7 @@ def fixture_test_loader(): def test_serve_json_npy(test_loader, use_gpu, image_uri, sagemaker_local_session, instance_type): model_dir = model_gpu_dir if use_gpu else model_cpu_dir + mnist_script = mnist_gpu_script if use_gpu else mnist_cpu_script with _predictor(model_dir, mnist_script, image_uri, sagemaker_local_session, instance_type) as predictor: for content_type in (content_types.JSON, content_types.NPY): diff --git a/test-toolkit/resources/call_model_fn_once.py b/test-toolkit/resources/call_model_fn_once.py deleted file mode 100644 index 1bbd3e27..00000000 --- a/test-toolkit/resources/call_model_fn_once.py +++ /dev/null @@ -1,37 +0,0 @@ -# Copyright 2019-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"). You -# may not use this file except in compliance with the License. A copy of -# the License is located at -# -# http://aws.amazon.com/apache2.0/ -# -# or in the "license" file accompanying this file. This file is -# distributed on an "AS IS" BASIS, 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. -from __future__ import absolute_import - -import os - - -def model_fn(model_dir): - lock_file = os.path.join(model_dir, 'model_fn.lock.{}'.format(os.getpid())) - if os.path.exists(lock_file): - raise RuntimeError('model_fn called more than once (lock: {})'.format(lock_file)) - - open(lock_file, 'a').close() - - return 'model' - - -def input_fn(data, content_type): - return data - - -def predict_fn(data, model): - return b'output' - - -def output_fn(prediction, accept): - return prediction diff --git a/test-toolkit/resources/mnist/mnist.py b/test-toolkit/resources/mnist/mnist.py deleted file mode 100644 index e0a1dfbe..00000000 --- a/test-toolkit/resources/mnist/mnist.py +++ /dev/null @@ -1,57 +0,0 @@ -# Copyright 2019-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"). You -# may not use this file except in compliance with the License. A copy of -# the License is located at -# -# http://aws.amazon.com/apache2.0/ -# -# or in the "license" file accompanying this file. This file is -# distributed on an "AS IS" BASIS, 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. -from __future__ import absolute_import - -import logging -import os -import sys - -import torch -import torch.nn as nn -import torch.nn.functional as F -import torch.utils.data -import torch.utils.data.distributed - -logger = logging.getLogger(__name__) -logger.setLevel(logging.DEBUG) -logger.addHandler(logging.StreamHandler(sys.stdout)) - - -# Based on https://github.com/pytorch/examples/blob/master/mnist/main.py -class Net(nn.Module): - def __init__(self): - logger.info("Create neural network module") - - super(Net, self).__init__() - self.conv1 = nn.Conv2d(1, 10, kernel_size=5) - self.conv2 = nn.Conv2d(10, 20, kernel_size=5) - self.conv2_drop = nn.Dropout2d() - self.fc1 = nn.Linear(320, 50) - self.fc2 = nn.Linear(50, 10) - - def forward(self, x): - x = F.relu(F.max_pool2d(self.conv1(x), 2)) - x = F.relu(F.max_pool2d(self.conv2_drop(self.conv2(x)), 2)) - x = x.view(-1, 320) - x = F.relu(self.fc1(x)) - x = F.dropout(x, training=self.training) - x = self.fc2(x) - return F.log_softmax(x, dim=1) - - -def model_fn(model_dir): - logger.info('model_fn') - model = torch.nn.DataParallel(Net()) - with open(os.path.join(model_dir, 'model.pth'), 'rb') as f: - model.load_state_dict(torch.load(f)) - return model diff --git a/test-toolkit/resources/mnist/model_cpu/mnist.py b/test-toolkit/resources/mnist/model_cpu/mnist.py index 602d55d3..e0a1dfbe 100644 --- a/test-toolkit/resources/mnist/model_cpu/mnist.py +++ b/test-toolkit/resources/mnist/model_cpu/mnist.py @@ -1,4 +1,4 @@ -# Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# Copyright 2019-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"). You # may not use this file except in compliance with the License. A copy of