From 4087681b38b0cb3baadba1fd40cafed3144c3ac8 Mon Sep 17 00:00:00 2001 From: YQisme <1398757912@qq.com> Date: Mon, 27 Nov 2023 20:01:40 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/CODE_OF_CONDUCT.md | 76 - .github/CONTRIBUTING.md | 1 - .github/ISSUE_TEMPLATE/config.yml | 9 - .github/ISSUE_TEMPLATE/error-report.md | 46 - .github/ISSUE_TEMPLATE/feature_request.md | 21 - .github/ISSUE_TEMPLATE/general_questions.md | 7 - .../reimplementation_questions.md | 67 - .github/pull_request_template.md | 25 - .github/workflows/ci.yml | 27 + .github/workflows/deploy.yml | 28 - README.md | 242 +-- .../advanced_guides/conventions.md | 0 .../advanced_guides/customize_dataset.md | 0 .../advanced_guides/customize_losses.md | 0 .../advanced_guides/customize_models.md | 0 .../advanced_guides/customize_runtime.md | 0 .../advanced_guides/customize_transforms.md | 0 docs/{zh_cn => }/advanced_guides/data_flow.md | 0 docs/{zh_cn => }/advanced_guides/datasets.md | 0 docs/{zh_cn => }/advanced_guides/engine.md | 0 .../{zh_cn => }/advanced_guides/evaluation.md | 0 docs/{zh_cn => }/advanced_guides/how_to.md | 0 docs/{zh_cn => }/advanced_guides/index.rst | 0 docs/{zh_cn => }/advanced_guides/models.md | 0 .../{zh_cn => }/advanced_guides/structures.md | 0 .../{zh_cn => }/advanced_guides/transforms.md | 0 docs/{zh_cn => }/article.md | 0 docs/assets/favicon.jpg | Bin 0 -> 715300 bytes docs/assets/logo.jpg | Bin 0 -> 715300 bytes docs/en/Makefile | 20 - docs/en/_static/css/readthedocs.css | 6 - docs/en/_static/image/mmdet-logo.png | Bin 32181 -> 0 bytes docs/en/advanced_guides/conventions.md | 111 -- docs/en/advanced_guides/customize_dataset.md | 433 ----- docs/en/advanced_guides/customize_losses.md | 126 -- docs/en/advanced_guides/customize_models.md | 412 ---- docs/en/advanced_guides/customize_runtime.md | 391 ---- .../advanced_guides/customize_transforms.md | 49 - docs/en/advanced_guides/data_flow.md | 1 - docs/en/advanced_guides/datasets.md | 1 - docs/en/advanced_guides/engine.md | 1 - docs/en/advanced_guides/evaluation.md | 1 - docs/en/advanced_guides/how_to.md | 222 --- docs/en/advanced_guides/index.rst | 34 - docs/en/advanced_guides/models.md | 1 - docs/en/advanced_guides/structures.md | 1 - docs/en/advanced_guides/transforms.md | 42 - docs/en/api.rst | 161 -- docs/en/conf.py | 116 -- docs/en/dataset_zoo.md | 1 - docs/en/get_started.md | 297 --- docs/en/index.rst | 63 - docs/en/make.bat | 35 - docs/en/migration.md | 1 - .../migration/api_and_registry_migration.md | 1 - docs/en/migration/config_migration.md | 819 -------- docs/en/migration/dataset_migration.md | 1 - docs/en/migration/migration.md | 12 - docs/en/migration/migration_faq.md | 1 - docs/en/migration/model_migration.md | 1 - docs/en/model_zoo.md | 358 ---- docs/en/notes/changelog.md | 603 ------ docs/en/notes/changelog_v2.x.md | 1681 ----------------- docs/en/notes/compatibility.md | 178 -- docs/en/notes/contribution_guide.md | 1 - docs/en/notes/faq.md | 240 --- docs/en/notes/projects.md | 57 - docs/en/overview.md | 54 - docs/en/stat.py | 64 - docs/en/switch_language.md | 3 - docs/en/user_guides/config.md | 612 ------ docs/en/user_guides/dataset_prepare.md | 310 --- docs/en/user_guides/deploy.md | 173 -- docs/en/user_guides/finetune.md | 96 - docs/en/user_guides/index.rst | 41 - docs/en/user_guides/inference.md | 440 ----- docs/en/user_guides/init_cfg.md | 161 -- docs/en/user_guides/label_studio.md | 256 --- docs/en/user_guides/new_model.md | 290 --- .../en/user_guides/robustness_benchmarking.md | 110 -- docs/en/user_guides/semi_det.md | 325 ---- docs/en/user_guides/single_stage_as_rpn.md | 176 -- docs/en/user_guides/test.md | 303 --- .../en/user_guides/test_results_submission.md | 182 -- .../en/user_guides/tracking_analysis_tools.md | 86 - docs/en/user_guides/tracking_config.md | 112 -- .../user_guides/tracking_dataset_prepare.md | 247 --- docs/en/user_guides/tracking_inference.md | 55 - docs/en/user_guides/tracking_train_test.md | 229 --- docs/en/user_guides/tracking_visualization.md | 47 - docs/en/user_guides/train.md | 456 ----- docs/en/user_guides/useful_hooks.md | 105 - docs/en/user_guides/useful_tools.md | 660 ------- docs/en/user_guides/visualization.md | 91 - docs/{zh_cn => }/get_started.md | 0 README_zh-CN.md => docs/index.md | 0 .../migration/api_and_registry_migration.md | 0 .../{zh_cn => }/migration/config_migration.md | 0 .../migration/dataset_migration.md | 0 docs/{zh_cn => }/migration/migration.md | 0 docs/{zh_cn => }/migration/migration_faq.md | 0 docs/{zh_cn => }/migration/model_migration.md | 0 docs/{zh_cn => }/model_zoo.md | 0 docs/{zh_cn => }/notes/compatibility.md | 0 docs/{zh_cn => }/notes/faq.md | 0 docs/{zh_cn => }/notes/projects.md | 0 docs/{zh_cn => }/overview.md | 0 docs/{zh_cn => }/user_guides/config.md | 0 .../user_guides/dataset_prepare.md | 0 docs/{zh_cn => }/user_guides/deploy.md | 0 docs/{zh_cn => }/user_guides/finetune.md | 0 docs/{zh_cn => }/user_guides/index.rst | 0 docs/{zh_cn => }/user_guides/inference.md | 0 docs/{zh_cn => }/user_guides/init_cfg.md | 0 docs/{zh_cn => }/user_guides/label_studio.md | 0 docs/{zh_cn => }/user_guides/new_model.md | 0 .../user_guides/robustness_benchmarking.md | 0 docs/{zh_cn => }/user_guides/semi_det.md | 0 .../user_guides/single_stage_as_rpn.md | 0 docs/{zh_cn => }/user_guides/test.md | 0 .../user_guides/test_results_submission.md | 0 .../user_guides/tracking_analysis_tools.md | 0 .../user_guides/tracking_config.md | 0 .../user_guides/tracking_dataset_prepare.md | 0 .../user_guides/tracking_interference.md | 0 .../user_guides/tracking_train_test_zh_cn.md | 0 .../user_guides/tracking_visualization.md | 0 docs/{zh_cn => }/user_guides/train.md | 0 docs/{zh_cn => }/user_guides/useful_hooks.md | 0 docs/{zh_cn => }/user_guides/useful_tools.md | 0 docs/{zh_cn => }/user_guides/visualization.md | 0 docs/zh_cn/Makefile | 20 - docs/zh_cn/_static/css/readthedocs.css | 6 - docs/zh_cn/_static/image/mmdet-logo.png | Bin 32181 -> 0 bytes docs/zh_cn/api.rst | 161 -- docs/zh_cn/conf.py | 118 -- docs/zh_cn/index.rst | 67 - docs/zh_cn/make.bat | 35 - docs/zh_cn/stat.py | 64 - docs/zh_cn/switch_language.md | 3 - mkdocs.yml | 106 ++ 141 files changed, 264 insertions(+), 13028 deletions(-) delete mode 100644 .github/CODE_OF_CONDUCT.md delete mode 100644 .github/CONTRIBUTING.md delete mode 100644 .github/ISSUE_TEMPLATE/config.yml delete mode 100644 .github/ISSUE_TEMPLATE/error-report.md delete mode 100644 .github/ISSUE_TEMPLATE/feature_request.md delete mode 100644 .github/ISSUE_TEMPLATE/general_questions.md delete mode 100644 .github/ISSUE_TEMPLATE/reimplementation_questions.md delete mode 100644 .github/pull_request_template.md create mode 100644 .github/workflows/ci.yml delete mode 100644 .github/workflows/deploy.yml rename docs/{zh_cn => }/advanced_guides/conventions.md (100%) rename docs/{zh_cn => }/advanced_guides/customize_dataset.md (100%) rename docs/{zh_cn => }/advanced_guides/customize_losses.md (100%) rename docs/{zh_cn => }/advanced_guides/customize_models.md (100%) rename docs/{zh_cn => }/advanced_guides/customize_runtime.md (100%) rename docs/{zh_cn => }/advanced_guides/customize_transforms.md (100%) rename docs/{zh_cn => }/advanced_guides/data_flow.md (100%) rename docs/{zh_cn => }/advanced_guides/datasets.md (100%) rename docs/{zh_cn => }/advanced_guides/engine.md (100%) rename docs/{zh_cn => }/advanced_guides/evaluation.md (100%) rename docs/{zh_cn => }/advanced_guides/how_to.md (100%) rename docs/{zh_cn => }/advanced_guides/index.rst (100%) rename docs/{zh_cn => }/advanced_guides/models.md (100%) rename docs/{zh_cn => }/advanced_guides/structures.md (100%) rename docs/{zh_cn => }/advanced_guides/transforms.md (100%) rename docs/{zh_cn => }/article.md (100%) create mode 100644 docs/assets/favicon.jpg create mode 100644 docs/assets/logo.jpg delete mode 100644 docs/en/Makefile delete mode 100644 docs/en/_static/css/readthedocs.css delete mode 100644 docs/en/_static/image/mmdet-logo.png delete mode 100644 docs/en/advanced_guides/conventions.md delete mode 100644 docs/en/advanced_guides/customize_dataset.md delete mode 100644 docs/en/advanced_guides/customize_losses.md delete mode 100644 docs/en/advanced_guides/customize_models.md delete mode 100644 docs/en/advanced_guides/customize_runtime.md delete mode 100644 docs/en/advanced_guides/customize_transforms.md delete mode 100644 docs/en/advanced_guides/data_flow.md delete mode 100644 docs/en/advanced_guides/datasets.md delete mode 100644 docs/en/advanced_guides/engine.md delete mode 100644 docs/en/advanced_guides/evaluation.md delete mode 100644 docs/en/advanced_guides/how_to.md delete mode 100644 docs/en/advanced_guides/index.rst delete mode 100644 docs/en/advanced_guides/models.md delete mode 100644 docs/en/advanced_guides/structures.md delete mode 100644 docs/en/advanced_guides/transforms.md delete mode 100644 docs/en/api.rst delete mode 100644 docs/en/conf.py delete mode 100644 docs/en/dataset_zoo.md delete mode 100644 docs/en/get_started.md delete mode 100644 docs/en/index.rst delete mode 100644 docs/en/make.bat delete mode 100644 docs/en/migration.md delete mode 100644 docs/en/migration/api_and_registry_migration.md delete mode 100644 docs/en/migration/config_migration.md delete mode 100644 docs/en/migration/dataset_migration.md delete mode 100644 docs/en/migration/migration.md delete mode 100644 docs/en/migration/migration_faq.md delete mode 100644 docs/en/migration/model_migration.md delete mode 100644 docs/en/model_zoo.md delete mode 100644 docs/en/notes/changelog.md delete mode 100644 docs/en/notes/changelog_v2.x.md delete mode 100644 docs/en/notes/compatibility.md delete mode 100644 docs/en/notes/contribution_guide.md delete mode 100644 docs/en/notes/faq.md delete mode 100644 docs/en/notes/projects.md delete mode 100644 docs/en/overview.md delete mode 100755 docs/en/stat.py delete mode 100644 docs/en/switch_language.md delete mode 100644 docs/en/user_guides/config.md delete mode 100644 docs/en/user_guides/dataset_prepare.md delete mode 100644 docs/en/user_guides/deploy.md delete mode 100644 docs/en/user_guides/finetune.md delete mode 100644 docs/en/user_guides/index.rst delete mode 100644 docs/en/user_guides/inference.md delete mode 100644 docs/en/user_guides/init_cfg.md delete mode 100644 docs/en/user_guides/label_studio.md delete mode 100644 docs/en/user_guides/new_model.md delete mode 100644 docs/en/user_guides/robustness_benchmarking.md delete mode 100644 docs/en/user_guides/semi_det.md delete mode 100644 docs/en/user_guides/single_stage_as_rpn.md delete mode 100644 docs/en/user_guides/test.md delete mode 100644 docs/en/user_guides/test_results_submission.md delete mode 100644 docs/en/user_guides/tracking_analysis_tools.md delete mode 100644 docs/en/user_guides/tracking_config.md delete mode 100644 docs/en/user_guides/tracking_dataset_prepare.md delete mode 100644 docs/en/user_guides/tracking_inference.md delete mode 100644 docs/en/user_guides/tracking_train_test.md delete mode 100644 docs/en/user_guides/tracking_visualization.md delete mode 100644 docs/en/user_guides/train.md delete mode 100644 docs/en/user_guides/useful_hooks.md delete mode 100644 docs/en/user_guides/useful_tools.md delete mode 100644 docs/en/user_guides/visualization.md rename docs/{zh_cn => }/get_started.md (100%) rename README_zh-CN.md => docs/index.md (100%) rename docs/{zh_cn => }/migration/api_and_registry_migration.md (100%) rename docs/{zh_cn => }/migration/config_migration.md (100%) rename docs/{zh_cn => }/migration/dataset_migration.md (100%) rename docs/{zh_cn => }/migration/migration.md (100%) rename docs/{zh_cn => }/migration/migration_faq.md (100%) rename docs/{zh_cn => }/migration/model_migration.md (100%) rename docs/{zh_cn => }/model_zoo.md (100%) rename docs/{zh_cn => }/notes/compatibility.md (100%) rename docs/{zh_cn => }/notes/faq.md (100%) rename docs/{zh_cn => }/notes/projects.md (100%) rename docs/{zh_cn => }/overview.md (100%) rename docs/{zh_cn => }/user_guides/config.md (100%) rename docs/{zh_cn => }/user_guides/dataset_prepare.md (100%) rename docs/{zh_cn => }/user_guides/deploy.md (100%) rename docs/{zh_cn => }/user_guides/finetune.md (100%) rename docs/{zh_cn => }/user_guides/index.rst (100%) rename docs/{zh_cn => }/user_guides/inference.md (100%) rename docs/{zh_cn => }/user_guides/init_cfg.md (100%) rename docs/{zh_cn => }/user_guides/label_studio.md (100%) rename docs/{zh_cn => }/user_guides/new_model.md (100%) rename docs/{zh_cn => }/user_guides/robustness_benchmarking.md (100%) rename docs/{zh_cn => }/user_guides/semi_det.md (100%) rename docs/{zh_cn => }/user_guides/single_stage_as_rpn.md (100%) rename docs/{zh_cn => }/user_guides/test.md (100%) rename docs/{zh_cn => }/user_guides/test_results_submission.md (100%) rename docs/{zh_cn => }/user_guides/tracking_analysis_tools.md (100%) rename docs/{zh_cn => }/user_guides/tracking_config.md (100%) rename docs/{zh_cn => }/user_guides/tracking_dataset_prepare.md (100%) rename docs/{zh_cn => }/user_guides/tracking_interference.md (100%) rename docs/{zh_cn => }/user_guides/tracking_train_test_zh_cn.md (100%) rename docs/{zh_cn => }/user_guides/tracking_visualization.md (100%) rename docs/{zh_cn => }/user_guides/train.md (100%) rename docs/{zh_cn => }/user_guides/useful_hooks.md (100%) rename docs/{zh_cn => }/user_guides/useful_tools.md (100%) rename docs/{zh_cn => }/user_guides/visualization.md (100%) delete mode 100644 docs/zh_cn/Makefile delete mode 100644 docs/zh_cn/_static/css/readthedocs.css delete mode 100644 docs/zh_cn/_static/image/mmdet-logo.png delete mode 100644 docs/zh_cn/api.rst delete mode 100644 docs/zh_cn/conf.py delete mode 100644 docs/zh_cn/index.rst delete mode 100644 docs/zh_cn/make.bat delete mode 100755 docs/zh_cn/stat.py delete mode 100644 docs/zh_cn/switch_language.md create mode 100644 mkdocs.yml diff --git a/.github/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md deleted file mode 100644 index 92afad1c5ab..00000000000 --- a/.github/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,76 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -In the interest of fostering an open and welcoming environment, we as -contributors and maintainers pledge to making participation in our project and -our community a harassment-free experience for everyone, regardless of age, body -size, disability, ethnicity, sex characteristics, gender identity and expression, -level of experience, education, socio-economic status, nationality, personal -appearance, race, religion, or sexual identity and orientation. - -## Our Standards - -Examples of behavior that contributes to creating a positive environment -include: - -- Using welcoming and inclusive language -- Being respectful of differing viewpoints and experiences -- Gracefully accepting constructive criticism -- Focusing on what is best for the community -- Showing empathy towards other community members - -Examples of unacceptable behavior by participants include: - -- The use of sexualized language or imagery and unwelcome sexual attention or - advances -- Trolling, insulting/derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or electronic - address, without explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Our Responsibilities - -Project maintainers are responsible for clarifying the standards of acceptable -behavior and are expected to take appropriate and fair corrective action in -response to any instances of unacceptable behavior. - -Project maintainers have the right and responsibility to remove, edit, or -reject comments, commits, code, wiki edits, issues, and other contributions -that are not aligned to this Code of Conduct, or to ban temporarily or -permanently any contributor for other behaviors that they deem inappropriate, -threatening, offensive, or harmful. - -## Scope - -This Code of Conduct applies both within project spaces and in public spaces -when an individual is representing the project or its community. Examples of -representing a project or community include using an official project e-mail -address, posting via an official social media account, or acting as an appointed -representative at an online or offline event. Representation of a project may be -further defined and clarified by project maintainers. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported by contacting the project team at chenkaidev@gmail.com. All -complaints will be reviewed and investigated and will result in a response that -is deemed necessary and appropriate to the circumstances. The project team is -obligated to maintain confidentiality with regard to the reporter of an incident. -Further details of specific enforcement policies may be posted separately. - -Project maintainers who do not follow or enforce the Code of Conduct in good -faith may face temporary or permanent repercussions as determined by other -members of the project's leadership. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, -available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html - -For answers to common questions about this code of conduct, see -https://www.contributor-covenant.org/faq - -[homepage]: https://www.contributor-covenant.org diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md deleted file mode 100644 index c6696262b4a..00000000000 --- a/.github/CONTRIBUTING.md +++ /dev/null @@ -1 +0,0 @@ -We appreciate all contributions to improve MMDetection. Please refer to [CONTRIBUTING.md](https://github.com/open-mmlab/mmcv/blob/master/CONTRIBUTING.md) in MMCV for more details about the contributing guideline. diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml deleted file mode 100644 index 56bbd88fddf..00000000000 --- a/.github/ISSUE_TEMPLATE/config.yml +++ /dev/null @@ -1,9 +0,0 @@ -blank_issues_enabled: false - -contact_links: - - name: Common Issues - url: https://mmdetection.readthedocs.io/en/latest/faq.html - about: Check if your issue already has solutions - - name: MMDetection Documentation - url: https://mmdetection.readthedocs.io/en/latest/ - about: Check if your question is answered in docs diff --git a/.github/ISSUE_TEMPLATE/error-report.md b/.github/ISSUE_TEMPLATE/error-report.md deleted file mode 100644 index 9dbd3ff165b..00000000000 --- a/.github/ISSUE_TEMPLATE/error-report.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -name: Error report -about: Create a report to help us improve -title: '' -labels: '' -assignees: '' ---- - -Thanks for your error report and we appreciate it a lot. - -**Checklist** - -1. I have searched related issues but cannot get the expected help. -2. I have read the [FAQ documentation](https://mmdetection.readthedocs.io/en/latest/faq.html) but cannot get the expected help. -3. The bug has not been fixed in the latest version. - -**Describe the bug** -A clear and concise description of what the bug is. - -**Reproduction** - -1. What command or script did you run? - -```none -A placeholder for the command. -``` - -2. Did you make any modifications on the code or config? Did you understand what you have modified? -3. What dataset did you use? - -**Environment** - -1. Please run `python mmdet/utils/collect_env.py` to collect necessary environment information and paste it here. -2. You may add addition that may be helpful for locating the problem, such as - - How you installed PyTorch \[e.g., pip, conda, source\] - - Other environment variables that may be related (such as `$PATH`, `$LD_LIBRARY_PATH`, `$PYTHONPATH`, etc.) - -**Error traceback** -If applicable, paste the error trackback here. - -```none -A placeholder for trackback. -``` - -**Bug fix** -If you have already identified the reason, you can provide the information here. If you are willing to create a PR to fix it, please also leave a comment here and that would be much appreciated! diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index 7bf92e8c912..00000000000 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -name: Feature request -about: Suggest an idea for this project -title: '' -labels: '' -assignees: '' ---- - -**Describe the feature** - -**Motivation** -A clear and concise description of the motivation of the feature. -Ex1. It is inconvenient when \[....\]. -Ex2. There is a recent paper \[....\], which is very helpful for \[....\]. - -**Related resources** -If there is an official code release or third-party implementations, please also provide the information here, which would be very helpful. - -**Additional context** -Add any other context or screenshots about the feature request here. -If you would like to implement the feature and create a PR, please leave a comment here and that would be much appreciated. diff --git a/.github/ISSUE_TEMPLATE/general_questions.md b/.github/ISSUE_TEMPLATE/general_questions.md deleted file mode 100644 index f02dd63a809..00000000000 --- a/.github/ISSUE_TEMPLATE/general_questions.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -name: General questions -about: Ask general questions to get help -title: '' -labels: '' -assignees: '' ---- diff --git a/.github/ISSUE_TEMPLATE/reimplementation_questions.md b/.github/ISSUE_TEMPLATE/reimplementation_questions.md deleted file mode 100644 index 83607ac3402..00000000000 --- a/.github/ISSUE_TEMPLATE/reimplementation_questions.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -name: Reimplementation Questions -about: Ask about questions during model reimplementation -title: '' -labels: reimplementation -assignees: '' ---- - -**Notice** - -There are several common situations in the reimplementation issues as below - -1. Reimplement a model in the model zoo using the provided configs -2. Reimplement a model in the model zoo on other dataset (e.g., custom datasets) -3. Reimplement a custom model but all the components are implemented in MMDetection -4. Reimplement a custom model with new modules implemented by yourself - -There are several things to do for different cases as below. - -- For case 1 & 3, please follow the steps in the following sections thus we could help to quick identify the issue. -- For case 2 & 4, please understand that we are not able to do much help here because we usually do not know the full code and the users should be responsible to the code they write. -- One suggestion for case 2 & 4 is that the users should first check whether the bug lies in the self-implemented code or the original code. For example, users can first make sure that the same model runs well on supported datasets. If you still need help, please describe what you have done and what you obtain in the issue, and follow the steps in the following sections and try as clear as possible so that we can better help you. - -**Checklist** - -1. I have searched related issues but cannot get the expected help. -2. The issue has not been fixed in the latest version. - -**Describe the issue** - -A clear and concise description of what the problem you meet and what have you done. - -**Reproduction** - -1. What command or script did you run? - -```none -A placeholder for the command. -``` - -2. What config dir you run? - -```none -A placeholder for the config. -``` - -3. Did you make any modifications on the code or config? Did you understand what you have modified? -4. What dataset did you use? - -**Environment** - -1. Please run `python mmdet/utils/collect_env.py` to collect necessary environment information and paste it here. -2. You may add addition that may be helpful for locating the problem, such as - 1. How you installed PyTorch \[e.g., pip, conda, source\] - 2. Other environment variables that may be related (such as `$PATH`, `$LD_LIBRARY_PATH`, `$PYTHONPATH`, etc.) - -**Results** - -If applicable, paste the related results here, e.g., what you expect and what you get. - -```none -A placeholder for results comparison -``` - -**Issue fix** - -If you have already identified the reason, you can provide the information here. If you are willing to create a PR to fix it, please also leave a comment here and that would be much appreciated! diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md deleted file mode 100644 index 7a9f0d901f4..00000000000 --- a/.github/pull_request_template.md +++ /dev/null @@ -1,25 +0,0 @@ -Thanks for your contribution and we appreciate it a lot. The following instructions would make your pull request more healthy and more easily get feedback. If you do not understand some items, don't worry, just make the pull request and seek help from maintainers. - -## Motivation - -Please describe the motivation of this PR and the goal you want to achieve through this PR. - -## Modification - -Please briefly describe what modification is made in this PR. - -## BC-breaking (Optional) - -Does the modification introduce changes that break the backward-compatibility of the downstream repos? -If so, please describe how it breaks the compatibility and how the downstream projects should modify their code to keep compatibility with this PR. - -## Use cases (Optional) - -If this PR introduces a new feature, it is better to list some use cases here, and update the documentation. - -## Checklist - -1. Pre-commit or other linting tools are used to fix the potential lint issues. -2. The modification is covered by complete unit tests. If not, please add more unit test to ensure the correctness. -3. If the modification has potential influence on downstream projects, this PR should be tested with downstream projects, like MMDet or MMPreTrain. -4. The documentation has been modified accordingly, like docstring or example tutorials. diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000000..ba88e56d9ab --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,27 @@ +name: ci +on: + push: + branches: + - master + - main +permissions: + contents: write +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-python@v4 + with: + python-version: 3.x + - uses: actions/cache@v3 + with: + key: mkdocs-material-${{ github.ref }} + path: .cache + restore-keys: | + mkdocs-material- + - run: pip install mkdocs-material + - run: pip install mkdocs-jupyter + - run: pip install jieba + - run: pip install mkdocs-git-revision-date-localized-plugin + - run: mkdocs gh-deploy --force \ No newline at end of file diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml deleted file mode 100644 index f575061468b..00000000000 --- a/.github/workflows/deploy.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: deploy - -on: push - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -jobs: - build-n-publish: - runs-on: ubuntu-latest - if: startsWith(github.event.ref, 'refs/tags') - steps: - - uses: actions/checkout@v2 - - name: Set up Python 3.7 - uses: actions/setup-python@v2 - with: - python-version: 3.7 - - name: Install torch - run: pip install torch - - name: Install wheel - run: pip install wheel - - name: Build MMDetection - run: python setup.py sdist bdist_wheel - - name: Publish distribution to PyPI - run: | - pip install twine - twine upload dist/* -u __token__ -p ${{ secrets.pypi_password }} diff --git a/README.md b/README.md index 09e20cf70fe..ccf1cbf0082 100644 --- a/README.md +++ b/README.md @@ -2,14 +2,14 @@
 
- OpenMMLab website + OpenMMLab 官网 HOT      - OpenMMLab platform + OpenMMLab 开放平台 TRY IT OUT @@ -27,18 +27,18 @@ [![issue resolution](https://isitmaintained.com/badge/resolution/open-mmlab/mmdetection.svg)](https://github.com/open-mmlab/mmdetection/issues) [![Open in OpenXLab](https://cdn-static.openxlab.org.cn/app-center/openxlab_demo.svg)](https://openxlab.org.cn/apps?search=mmdet) -[📘Documentation](https://mmdetection.readthedocs.io/en/latest/) | -[🛠️Installation](https://mmdetection.readthedocs.io/en/latest/get_started.html) | -[👀Model Zoo](https://mmdetection.readthedocs.io/en/latest/model_zoo.html) | -[🆕Update News](https://mmdetection.readthedocs.io/en/latest/notes/changelog.html) | -[🚀Ongoing Projects](https://github.com/open-mmlab/mmdetection/projects) | -[🤔Reporting Issues](https://github.com/open-mmlab/mmdetection/issues/new/choose) +[📘使用文档](https://mmdetection.readthedocs.io/zh_CN/latest/) | +[🛠️安装教程](https://mmdetection.readthedocs.io/zh_CN/latest/get_started.html) | +[👀模型库](https://mmdetection.readthedocs.io/zh_CN/latest/model_zoo.html) | +[🆕更新日志](https://mmdetection.readthedocs.io/en/latest/notes/changelog.html) | +[🚀进行中的项目](https://github.com/open-mmlab/mmdetection/projects) | +[🤔报告问题](https://github.com/open-mmlab/mmdetection/issues/new/choose)
-English | [简体中文](README_zh-CN.md) +[English](README.md) | 简体中文
@@ -66,60 +66,59 @@ English | [简体中文](README_zh-CN.md) -## Introduction +## 简介 -MMDetection is an open source object detection toolbox based on PyTorch. It is -a part of the [OpenMMLab](https://openmmlab.com/) project. +MMDetection 是一个基于 PyTorch 的目标检测开源工具箱。它是 [OpenMMLab](https://openmmlab.com/) 项目的一部分。 -The main branch works with **PyTorch 1.8+**. +主分支代码目前支持 PyTorch 1.8 及其以上的版本。
-Major features +主要特性 -- **Modular Design** +- **模块化设计** - We decompose the detection framework into different components and one can easily construct a customized object detection framework by combining different modules. + MMDetection 将检测框架解耦成不同的模块组件,通过组合不同的模块组件,用户可以便捷地构建自定义的检测模型 -- **Support of multiple tasks out of box** +- **支持多种检测任务** - The toolbox directly supports multiple detection tasks such as **object detection**, **instance segmentation**, **panoptic segmentation**, and **semi-supervised object detection**. + MMDetection 支持了各种不同的检测任务,包括**目标检测**,**实例分割**,**全景分割**,以及**半监督目标检测**。 -- **High efficiency** +- **速度快** - All basic bbox and mask operations run on GPUs. The training speed is faster than or comparable to other codebases, including [Detectron2](https://github.com/facebookresearch/detectron2), [maskrcnn-benchmark](https://github.com/facebookresearch/maskrcnn-benchmark) and [SimpleDet](https://github.com/TuSimple/simpledet). + 基本的框和 mask 操作都实现了 GPU 版本,训练速度比其他代码库更快或者相当,包括 [Detectron2](https://github.com/facebookresearch/detectron2), [maskrcnn-benchmark](https://github.com/facebookresearch/maskrcnn-benchmark) 和 [SimpleDet](https://github.com/TuSimple/simpledet)。 -- **State of the art** +- **性能高** - The toolbox stems from the codebase developed by the *MMDet* team, who won [COCO Detection Challenge](http://cocodataset.org/#detection-leaderboard) in 2018, and we keep pushing it forward. - The newly released [RTMDet](configs/rtmdet) also obtains new state-of-the-art results on real-time instance segmentation and rotated object detection tasks and the best parameter-accuracy trade-off on object detection. + MMDetection 这个算法库源自于 COCO 2018 目标检测竞赛的冠军团队 *MMDet* 团队开发的代码,我们在之后持续进行了改进和提升。 + 新发布的 [RTMDet](configs/rtmdet) 还在实时实例分割和旋转目标检测任务中取得了最先进的成果,同时也在目标检测模型中取得了最佳的的参数量和精度平衡。
-Apart from MMDetection, we also released [MMEngine](https://github.com/open-mmlab/mmengine) for model training and [MMCV](https://github.com/open-mmlab/mmcv) for computer vision research, which are heavily depended on by this toolbox. +除了 MMDetection 之外,我们还开源了深度学习训练库 [MMEngine](https://github.com/open-mmlab/mmengine) 和计算机视觉基础库 [MMCV](https://github.com/open-mmlab/mmcv),它们是 MMDetection 的主要依赖。 -## What's New +## 最新进展 -### Highlight +### 亮点 -**v3.2.0** was released in 12/10/2023: +**v3.2.0** 版本已经在 2023.10.12 发布: -**1. Detection Transformer SOTA Model Collection** -(1) Supported four updated and stronger SOTA Transformer models: [DDQ](configs/ddq/README.md), [CO-DETR](projects/CO-DETR/README.md), [AlignDETR](projects/AlignDETR/README.md), and [H-DINO](projects/HDINO/README.md). -(2) Based on CO-DETR, MMDet released a model with a COCO performance of 64.1 mAP. -(3) Algorithms such as DINO support `AMP/Checkpoint/FrozenBN`, which can effectively reduce memory usage. +**1. 检测 Transformer SOTA 模型大合集** +(1) 支持了 [DDQ](configs/ddq/README.md)、[CO-DETR](projects/CO-DETR/README.md)、[AlignDETR](projects/AlignDETR/README.md) 和 [H-DINO](projects/HDINO/README.md) 4 个更新更强的 SOTA Transformer 模型 +(2) 基于 CO-DETR, MMDet 中发布了 COCO 性能为 64.1 mAP 的模型 +(3) DINO 等算法支持 AMP/Checkpoint/FrozenBN,可以有效降低显存 -**2. [Comprehensive Performance Comparison between CNN and Transformer](<(projects/RF100-Benchmark/README.md)>)** -RF100 consists of a dataset collection of 100 real-world datasets, including 7 domains. It can be used to assess the performance differences of Transformer models like DINO and CNN-based algorithms under different scenarios and data volumes. Users can utilize this benchmark to quickly evaluate the robustness of their algorithms in various scenarios. +**2. [提供了全面的 CNN 和 Transformer 的性能对比](projects/RF100-Benchmark/README_zh-CN.md)** +RF100 是由 100 个现实收集的数据集组成,包括 7 个域,可以验证 DINO 等 Transformer 模型和 CNN 类算法在不同场景不同数据量下的性能差异。用户可以用这个 Benchmark 快速验证自己的算法在不同场景下的鲁棒性。
-**3. Support for [GLIP](configs/glip/README.md) and [Grounding DINO](configs/grounding_dino/README.md) fine-tuning, the only algorithm library that supports Grounding DINO fine-tuning** -The Grounding DINO algorithm in MMDet is the only library that supports fine-tuning. Its performance is one point higher than the official version, and of course, GLIP also outperforms the official version. -We also provide a detailed process for training and evaluating Grounding DINO on custom datasets. Everyone is welcome to give it a try. +**3. 支持了 [GLIP](configs/glip/README.md) 和 [Grounding DINO](configs/grounding_dino/README.md) 微调,全网唯一支持 Grounding DINO 微调** +MMDet 中的 Grounding DINO 是全网唯一支持微调的算法库,且性能高于官方 1 个点,当然 GLIP 也比官方高。 +我们还提供了详细的 Grounding DINO 在自定义数据集上训练评估的流程,欢迎大家试用。 | Model | Backbone | Style | COCO mAP | Official COCO mAP | | :----------------: | :------: | :-------: | :--------: | :---------------: | @@ -129,8 +128,9 @@ We also provide a detailed process for training and evaluating Grounding DINO on | Grounding DINO-B | Swin-B | Finetune | 59.7 | | | Grounding DINO-R50 | R50 | Scratch | 48.9(+0.8) | 48.1 | -**4. Support for the open-vocabulary detection algorithm [Detic](projects/Detic_new/README.md) and multi-dataset joint training.** -**5. Training detection models using [FSDP and DeepSpeed](<(projects/example_largemodel/README.md)>).** +**4. 支持开放词汇检测算法 [Detic](projects/Detic_new/README.md) 并提供多数据集联合训练可能** + +**5. 轻松使用 [FSDP 和 DeepSpeed 训练检测模型](projects/example_largemodel/README_zh-CN.md)** | ID | AMP | GC of Backbone | GC of Encoder | FSDP | Peak Mem (GB) | Iter Time (s) | | :-: | :-: | :------------: | :-----------: | :--: | :-----------: | :-----------: | @@ -143,13 +143,13 @@ We also provide a detailed process for training and evaluating Grounding DINO on | 7 | | √ | √ | √ | 14 | 2.9 | | 8 | √ | √ | √ | √ | 8.5 | 2.4 | -**6. Support for the [V3Det](configs/v3det/README.md) dataset, a large-scale detection dataset with over 13,000 categories.** +**6. 支持了 [V3Det](configs/v3det/README.md) 1.3w+ 类别的超大词汇检测数据集**
-We are excited to announce our latest work on real-time object recognition tasks, **RTMDet**, a family of fully convolutional single-stage detectors. RTMDet not only achieves the best parameter-accuracy trade-off on object detection from tiny to extra-large model sizes but also obtains new state-of-the-art performance on instance segmentation and rotated object detection tasks. Details can be found in the [technical report](https://arxiv.org/abs/2212.07784). Pre-trained models are [here](configs/rtmdet). +我们很高兴向大家介绍我们在实时目标识别任务方面的最新成果 RTMDet,包含了一系列的全卷积单阶段检测模型。 RTMDet 不仅在从 tiny 到 extra-large 尺寸的目标检测模型上实现了最佳的参数量和精度的平衡,而且在实时实例分割和旋转目标检测任务上取得了最先进的成果。 更多细节请参阅[技术报告](https://arxiv.org/abs/2212.07784)。 预训练模型可以在[这里](configs/rtmdet)找到。 [![PWC](https://img.shields.io/endpoint.svg?url=https://paperswithcode.com/badge/rtmdet-an-empirical-study-of-designing-real/real-time-instance-segmentation-on-mscoco)](https://paperswithcode.com/sota/real-time-instance-segmentation-on-mscoco?p=rtmdet-an-empirical-study-of-designing-real) [![PWC](https://img.shields.io/endpoint.svg?url=https://paperswithcode.com/badge/rtmdet-an-empirical-study-of-designing-real/object-detection-in-aerial-images-on-dota-1)](https://paperswithcode.com/sota/object-detection-in-aerial-images-on-dota-1?p=rtmdet-an-empirical-study-of-designing-real) @@ -165,57 +165,59 @@ We are excited to announce our latest work on real-time object recognition tasks -## Installation +## 安装 -Please refer to [Installation](https://mmdetection.readthedocs.io/en/latest/get_started.html) for installation instructions. +请参考[快速入门文档](https://mmdetection.readthedocs.io/zh_CN/latest/get_started.html)进行安装。 -## Getting Started +## 教程 -Please see [Overview](https://mmdetection.readthedocs.io/en/latest/get_started.html) for the general introduction of MMDetection. +请阅读[概述](https://mmdetection.readthedocs.io/zh_CN/latest/get_started.html)对 MMDetection 进行初步的了解。 -For detailed user guides and advanced guides, please refer to our [documentation](https://mmdetection.readthedocs.io/en/latest/): +为了帮助用户更进一步了解 MMDetection,我们准备了用户指南和进阶指南,请阅读我们的[文档](https://mmdetection.readthedocs.io/zh_CN/latest/): -- User Guides +- 用户指南
- - [Train & Test](https://mmdetection.readthedocs.io/en/latest/user_guides/index.html#train-test) - - [Learn about Configs](https://mmdetection.readthedocs.io/en/latest/user_guides/config.html) - - [Inference with existing models](https://mmdetection.readthedocs.io/en/latest/user_guides/inference.html) - - [Dataset Prepare](https://mmdetection.readthedocs.io/en/latest/user_guides/dataset_prepare.html) - - [Test existing models on standard datasets](https://mmdetection.readthedocs.io/en/latest/user_guides/test.html) - - [Train predefined models on standard datasets](https://mmdetection.readthedocs.io/en/latest/user_guides/train.html) - - [Train with customized datasets](https://mmdetection.readthedocs.io/en/latest/user_guides/train.html#train-with-customized-datasets) - - [Train with customized models and standard datasets](https://mmdetection.readthedocs.io/en/latest/user_guides/new_model.html) - - [Finetuning Models](https://mmdetection.readthedocs.io/en/latest/user_guides/finetune.html) - - [Test Results Submission](https://mmdetection.readthedocs.io/en/latest/user_guides/test_results_submission.html) - - [Weight initialization](https://mmdetection.readthedocs.io/en/latest/user_guides/init_cfg.html) - - [Use a single stage detector as RPN](https://mmdetection.readthedocs.io/en/latest/user_guides/single_stage_as_rpn.html) - - [Semi-supervised Object Detection](https://mmdetection.readthedocs.io/en/latest/user_guides/semi_det.html) - - [Useful Tools](https://mmdetection.readthedocs.io/en/latest/user_guides/index.html#useful-tools) + - [训练 & 测试](https://mmdetection.readthedocs.io/zh_CN/latest/user_guides/index.html#train-test) + - [学习配置文件](https://mmdetection.readthedocs.io/zh_CN/latest/user_guides/config.html) + - [使用已有模型在标准数据集上进行推理](https://mmdetection.readthedocs.io/en/latest/user_guides/inference.html) + - [数据集准备](https://mmdetection.readthedocs.io/zh_CN/latest/user_guides/dataset_prepare.html) + - [测试现有模型](https://mmdetection.readthedocs.io/zh_CN/latest/user_guides/test.html) + - [在标准数据集上训练预定义的模型](https://mmdetection.readthedocs.io/zh_CN/latest/user_guides/train.html) + - [在自定义数据集上进行训练](https://mmdetection.readthedocs.io/zh_CN/latest/user_guides/train.html#train-with-customized-datasets) + - [在标准数据集上训练自定义模型](https://mmdetection.readthedocs.io/zh_CN/latest/user_guides/new_model.html) + - [模型微调](https://mmdetection.readthedocs.io/zh_CN/latest/user_guides/finetune.html) + - [提交测试结果](https://mmdetection.readthedocs.io/zh_CN/latest/user_guides/test_results_submission.html) + - [权重初始化](https://mmdetection.readthedocs.io/zh_CN/latest/user_guides/init_cfg.html) + - [将单阶段检测器作为 RPN](https://mmdetection.readthedocs.io/zh_CN/latest/user_guides/single_stage_as_rpn.html) + - [半监督目标检测](https://mmdetection.readthedocs.io/zh_CN/latest/user_guides/semi_det.html) + - [实用工具](https://mmdetection.readthedocs.io/zh_CN/latest/user_guides/index.html#useful-tools)
-- Advanced Guides +- 进阶指南
- - [Basic Concepts](https://mmdetection.readthedocs.io/en/latest/advanced_guides/index.html#basic-concepts) - - [Component Customization](https://mmdetection.readthedocs.io/en/latest/advanced_guides/index.html#component-customization) - - [How to](https://mmdetection.readthedocs.io/en/latest/advanced_guides/index.html#how-to) + - [基础概念](https://mmdetection.readthedocs.io/zh_CN/latest/advanced_guides/index.html#basic-concepts) + - [组件定制](https://mmdetection.readthedocs.io/zh_CN/latest/advanced_guides/index.html#component-customization) + - [How to](https://mmdetection.readthedocs.io/zh_CN/latest/advanced_guides/index.html#how-to)
-We also provide object detection colab tutorial [![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](demo/MMDet_Tutorial.ipynb) and instance segmentation colab tutorial [![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](demo/MMDet_InstanceSeg_Tutorial.ipynb). +我们提供了检测的 colab 教程 [![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](demo/MMDet_Tutorial.ipynb) 和 实例分割的 colab 教程 [![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](demo/MMDet_Tutorial.ipynb) + +同时,我们还提供了 [MMDetection 中文解读文案汇总](docs/zh_cn/article.md) -To migrate from MMDetection 2.x, please refer to [migration](https://mmdetection.readthedocs.io/en/latest/migration.html). +若需要将2.x版本的代码迁移至新版,请参考[迁移文档](https://mmdetection.readthedocs.io/en/latest/migration.html)。 -## Overview of Benchmark and Model Zoo +## 基准测试和模型库 -Results and models are available in the [model zoo](docs/en/model_zoo.md). +测试结果和模型可以在[模型库](docs/zh_cn/model_zoo.md)中找到。
- Architectures + 算法架构
@@ -347,7 +349,7 @@ Results and models are available in the [model zoo](docs/en/model_zoo.md).
- Components + 模块组件
@@ -406,7 +408,7 @@ Results and models are available in the [model zoo](docs/en/model_zoo.md).
-Some other methods are also supported in [projects using MMDetection](./docs/en/notes/projects.md). +我们在[基于 MMDetection 的项目](./docs/zh_cn/notes/projects.md)中列举了一些其他的支持的算法。 -## FAQ +## 常见问题 -Please refer to [FAQ](docs/en/notes/faq.md) for frequently asked questions. +请参考 [FAQ](docs/zh_cn/notes/faq.md) 了解其他用户的常见问题。 -## Contributing +## 贡献指南 -We appreciate all contributions to improve MMDetection. Ongoing projects can be found in out [GitHub Projects](https://github.com/open-mmlab/mmdetection/projects). Welcome community users to participate in these projects. Please refer to [CONTRIBUTING.md](.github/CONTRIBUTING.md) for the contributing guideline. +我们感谢所有的贡献者为改进和提升 MMDetection 所作出的努力。我们将正在进行中的项目添加进了[GitHub Projects](https://github.com/open-mmlab/mmdetection/projects)页面,非常欢迎社区用户能参与进这些项目中来。请参考[贡献指南](.github/CONTRIBUTING.md)来了解参与项目贡献的相关指引。 -## Acknowledgement +## 致谢 -MMDetection is an open source project that is contributed by researchers and engineers from various colleges and companies. We appreciate all the contributors who implement their methods or add new features, as well as users who give valuable feedbacks. -We wish that the toolbox and benchmark could serve the growing research community by providing a flexible toolkit to reimplement existing methods and develop their own new detectors. +MMDetection 是一款由来自不同高校和企业的研发人员共同参与贡献的开源项目。我们感谢所有为项目提供算法复现和新功能支持的贡献者,以及提供宝贵反馈的用户。 我们希望这个工具箱和基准测试可以为社区提供灵活的代码工具,供用户复现已有算法并开发自己的新模型,从而不断为开源社区提供贡献。 -## Citation +## 引用 -If you use this toolbox or benchmark in your research, please cite this project. +如果你在研究中使用了本项目的代码或者性能基准,请参考如下 bibtex 引用 MMDetection。 ``` @article{mmdetection, @@ -455,33 +456,52 @@ If you use this toolbox or benchmark in your research, please cite this project. } ``` -## License - -This project is released under the [Apache 2.0 license](LICENSE). - -## Projects in OpenMMLab - -- [MMEngine](https://github.com/open-mmlab/mmengine): OpenMMLab foundational library for training deep learning models. -- [MMCV](https://github.com/open-mmlab/mmcv): OpenMMLab foundational library for computer vision. -- [MMPreTrain](https://github.com/open-mmlab/mmpretrain): OpenMMLab pre-training toolbox and benchmark. -- [MMagic](https://github.com/open-mmlab/mmagic): Open**MM**Lab **A**dvanced, **G**enerative and **I**ntelligent **C**reation toolbox. -- [MMDetection](https://github.com/open-mmlab/mmdetection): OpenMMLab detection toolbox and benchmark. -- [MMDetection3D](https://github.com/open-mmlab/mmdetection3d): OpenMMLab's next-generation platform for general 3D object detection. -- [MMRotate](https://github.com/open-mmlab/mmrotate): OpenMMLab rotated object detection toolbox and benchmark. -- [MMYOLO](https://github.com/open-mmlab/mmyolo): OpenMMLab YOLO series toolbox and benchmark. -- [MMSegmentation](https://github.com/open-mmlab/mmsegmentation): OpenMMLab semantic segmentation toolbox and benchmark. -- [MMOCR](https://github.com/open-mmlab/mmocr): OpenMMLab text detection, recognition, and understanding toolbox. -- [MMPose](https://github.com/open-mmlab/mmpose): OpenMMLab pose estimation toolbox and benchmark. -- [MMHuman3D](https://github.com/open-mmlab/mmhuman3d): OpenMMLab 3D human parametric model toolbox and benchmark. -- [MMSelfSup](https://github.com/open-mmlab/mmselfsup): OpenMMLab self-supervised learning toolbox and benchmark. -- [MMRazor](https://github.com/open-mmlab/mmrazor): OpenMMLab model compression toolbox and benchmark. -- [MMFewShot](https://github.com/open-mmlab/mmfewshot): OpenMMLab fewshot learning toolbox and benchmark. -- [MMAction2](https://github.com/open-mmlab/mmaction2): OpenMMLab's next-generation action understanding toolbox and benchmark. -- [MMTracking](https://github.com/open-mmlab/mmtracking): OpenMMLab video perception toolbox and benchmark. -- [MMFlow](https://github.com/open-mmlab/mmflow): OpenMMLab optical flow toolbox and benchmark. -- [MMEditing](https://github.com/open-mmlab/mmediting): OpenMMLab image and video editing toolbox. -- [MMGeneration](https://github.com/open-mmlab/mmgeneration): OpenMMLab image and video generative models toolbox. -- [MMDeploy](https://github.com/open-mmlab/mmdeploy): OpenMMLab model deployment framework. -- [MIM](https://github.com/open-mmlab/mim): MIM installs OpenMMLab packages. -- [MMEval](https://github.com/open-mmlab/mmeval): A unified evaluation library for multiple machine learning libraries. -- [Playground](https://github.com/open-mmlab/playground): A central hub for gathering and showcasing amazing projects built upon OpenMMLab. +## 开源许可证 + +该项目采用 [Apache 2.0 开源许可证](LICENSE)。 + +## OpenMMLab 的其他项目 + +- [MMEngine](https://github.com/open-mmlab/mmengine): OpenMMLab 深度学习模型训练基础库 +- [MMCV](https://github.com/open-mmlab/mmcv): OpenMMLab 计算机视觉基础库 +- [MMPreTrain](https://github.com/open-mmlab/mmpretrain): OpenMMLab 深度学习预训练工具箱 +- [MMagic](https://github.com/open-mmlab/mmagic): OpenMMLab 新一代人工智能内容生成(AIGC)工具箱 +- [MMDetection](https://github.com/open-mmlab/mmdetection): OpenMMLab 目标检测工具箱 +- [MMDetection3D](https://github.com/open-mmlab/mmdetection3d): OpenMMLab 新一代通用 3D 目标检测平台 +- [MMRotate](https://github.com/open-mmlab/mmrotate): OpenMMLab 旋转框检测工具箱与测试基准 +- [MMYOLO](https://github.com/open-mmlab/mmyolo): OpenMMLab YOLO 系列工具箱与测试基准 +- [MMSegmentation](https://github.com/open-mmlab/mmsegmentation): OpenMMLab 语义分割工具箱 +- [MMOCR](https://github.com/open-mmlab/mmocr): OpenMMLab 全流程文字检测识别理解工具包 +- [MMPose](https://github.com/open-mmlab/mmpose): OpenMMLab 姿态估计工具箱 +- [MMHuman3D](https://github.com/open-mmlab/mmhuman3d): OpenMMLab 人体参数化模型工具箱与测试基准 +- [MMSelfSup](https://github.com/open-mmlab/mmselfsup): OpenMMLab 自监督学习工具箱与测试基准 +- [MMRazor](https://github.com/open-mmlab/mmrazor): OpenMMLab 模型压缩工具箱与测试基准 +- [MMFewShot](https://github.com/open-mmlab/mmfewshot): OpenMMLab 少样本学习工具箱与测试基准 +- [MMAction2](https://github.com/open-mmlab/mmaction2): OpenMMLab 新一代视频理解工具箱 +- [MMTracking](https://github.com/open-mmlab/mmtracking): OpenMMLab 一体化视频目标感知平台 +- [MMFlow](https://github.com/open-mmlab/mmflow): OpenMMLab 光流估计工具箱与测试基准 +- [MMEditing](https://github.com/open-mmlab/mmediting): OpenMMLab 图像视频编辑工具箱 +- [MMGeneration](https://github.com/open-mmlab/mmgeneration): OpenMMLab 图片视频生成模型工具箱 +- [MMDeploy](https://github.com/open-mmlab/mmdeploy): OpenMMLab 模型部署框架 +- [MIM](https://github.com/open-mmlab/mim): OpenMMlab 项目、算法、模型的统一入口 +- [MMEval](https://github.com/open-mmlab/mmeval): 统一开放的跨框架算法评测库 +- [Playground](https://github.com/open-mmlab/playground): 收集和展示 OpenMMLab 相关的前沿、有趣的社区项目 + +## 欢迎加入 OpenMMLab 社区 + +扫描下方的二维码可关注 OpenMMLab 团队的 [知乎官方账号](https://www.zhihu.com/people/openmmlab),扫描下方微信二维码添加喵喵好友,进入 MMDectection 微信交流社群。【加好友申请格式:研究方向+地区+学校/公司+姓名】 + +
+ +
+ +我们会在 OpenMMLab 社区为大家 + +- 📢 分享 AI 框架的前沿核心技术 +- 💻 解读 PyTorch 常用模块源码 +- 📰 发布 OpenMMLab 的相关新闻 +- 🚀 介绍 OpenMMLab 开发的前沿算法 +- 🏃 获取更高效的问题答疑和意见反馈 +- 🔥 提供与各行各业开发者充分交流的平台 + +干货满满 📘,等你来撩 💗,OpenMMLab 社区期待您的加入 👬 diff --git a/docs/zh_cn/advanced_guides/conventions.md b/docs/advanced_guides/conventions.md similarity index 100% rename from docs/zh_cn/advanced_guides/conventions.md rename to docs/advanced_guides/conventions.md diff --git a/docs/zh_cn/advanced_guides/customize_dataset.md b/docs/advanced_guides/customize_dataset.md similarity index 100% rename from docs/zh_cn/advanced_guides/customize_dataset.md rename to docs/advanced_guides/customize_dataset.md diff --git a/docs/zh_cn/advanced_guides/customize_losses.md b/docs/advanced_guides/customize_losses.md similarity index 100% rename from docs/zh_cn/advanced_guides/customize_losses.md rename to docs/advanced_guides/customize_losses.md diff --git a/docs/zh_cn/advanced_guides/customize_models.md b/docs/advanced_guides/customize_models.md similarity index 100% rename from docs/zh_cn/advanced_guides/customize_models.md rename to docs/advanced_guides/customize_models.md diff --git a/docs/zh_cn/advanced_guides/customize_runtime.md b/docs/advanced_guides/customize_runtime.md similarity index 100% rename from docs/zh_cn/advanced_guides/customize_runtime.md rename to docs/advanced_guides/customize_runtime.md diff --git a/docs/zh_cn/advanced_guides/customize_transforms.md b/docs/advanced_guides/customize_transforms.md similarity index 100% rename from docs/zh_cn/advanced_guides/customize_transforms.md rename to docs/advanced_guides/customize_transforms.md diff --git a/docs/zh_cn/advanced_guides/data_flow.md b/docs/advanced_guides/data_flow.md similarity index 100% rename from docs/zh_cn/advanced_guides/data_flow.md rename to docs/advanced_guides/data_flow.md diff --git a/docs/zh_cn/advanced_guides/datasets.md b/docs/advanced_guides/datasets.md similarity index 100% rename from docs/zh_cn/advanced_guides/datasets.md rename to docs/advanced_guides/datasets.md diff --git a/docs/zh_cn/advanced_guides/engine.md b/docs/advanced_guides/engine.md similarity index 100% rename from docs/zh_cn/advanced_guides/engine.md rename to docs/advanced_guides/engine.md diff --git a/docs/zh_cn/advanced_guides/evaluation.md b/docs/advanced_guides/evaluation.md similarity index 100% rename from docs/zh_cn/advanced_guides/evaluation.md rename to docs/advanced_guides/evaluation.md diff --git a/docs/zh_cn/advanced_guides/how_to.md b/docs/advanced_guides/how_to.md similarity index 100% rename from docs/zh_cn/advanced_guides/how_to.md rename to docs/advanced_guides/how_to.md diff --git a/docs/zh_cn/advanced_guides/index.rst b/docs/advanced_guides/index.rst similarity index 100% rename from docs/zh_cn/advanced_guides/index.rst rename to docs/advanced_guides/index.rst diff --git a/docs/zh_cn/advanced_guides/models.md b/docs/advanced_guides/models.md similarity index 100% rename from docs/zh_cn/advanced_guides/models.md rename to docs/advanced_guides/models.md diff --git a/docs/zh_cn/advanced_guides/structures.md b/docs/advanced_guides/structures.md similarity index 100% rename from docs/zh_cn/advanced_guides/structures.md rename to docs/advanced_guides/structures.md diff --git a/docs/zh_cn/advanced_guides/transforms.md b/docs/advanced_guides/transforms.md similarity index 100% rename from docs/zh_cn/advanced_guides/transforms.md rename to docs/advanced_guides/transforms.md diff --git a/docs/zh_cn/article.md b/docs/article.md similarity index 100% rename from docs/zh_cn/article.md rename to docs/article.md diff --git a/docs/assets/favicon.jpg b/docs/assets/favicon.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0131458924a60213933b63aaaffbfe3c1fe5a1d8 GIT binary patch literal 715300 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
  • 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
  • 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

  • 7*X&^}OTCyiDIvhG-pR!nFM+e3BAb@LInMH4YF`lGHay*W zL4{A!o#UqiWqWSSCH4F@fcUKC14?Hrtd(jU^K&Nlzpy zjP`?r9v-V|%D}a%0|f({`XZcO=um7YKRG1^2to0dZr|~Dos#9kSK=1 z;L0alehAr^>$0he5W0b%vJMnFJZMQfp1HZRXP&(RofYNLIRhao_32%@JS%0Ixo_?I z5rE;YA|P$QFJ6D|=X;+djui@rhpw}C1EA73^UVmCf zwd5G_-v6xJFWd99GE+A2q+^&jCgI17>~!|Oz}cg@VwD2Jb+ByQ_F$f&qI=<`aHeXOH)H1dSgI@dWr_nQzr6 z4UwMmeEkIjAS06MXXN&+a*Z+F?}f|jq|=MAA0HVGht;9=?ih$8ZO^YYb6^A5;b zFBa~LnrWdy;Uf^qZUPswIWD~2P}W>NV~%d!=ZG;}rJuK(I5>yUR-2PuEDZw=zGpmN zq+g4Z!=w6jdZ!DbKH$>cUzJD(3Rs3GWeXUzt*t#1p0v2qn@%N6Ak(c$+PN<$gH%n| zPmzvy^~I>l%T#vW{50|Y!AUL}O?@S5N!*d%##OD1 z;9ySSucS@xs13KebpwLKXWgI=`M1DkYr63GrZ}(#?lC~k1pP}nTkaUV$j^Cfk6Ou{2=u2?+3orV#$8kX=`kaMQC4+MX2B0w3UUvb- z@W0#{t#>W3^Cu>+Dw^Xy5Q9>0|2$56pV(YF~oYbfVd^LJ>HD66B`m)@vt+XkufkHdhpZ zr~7>ww-`<%3 zkiNf(pcVR7G}IZSJ6=XNcnY4ul}3Rw}qMW+Uil6*~{ErJwg9xnVUx2wqr1`j0EeN>_|+xhkDtw~5~UB$)S)PI{V zsXcu9qs3#C6}8s@@au$GZ#sf3NTWEte3`OS!u`(>e{zH;OeUV?Q-CeU(}>=Qn?)6clh`{`y)5 zD-d>5&(_uQY)tA=w}r2qgW3ki>en^}> zhZ)B8H0Tn&OqjxVYIvS!sKlxJXbRn7lR|Jz)o>Q>YQJ$^ZZ)H1_1QB8|0Sqao}G92 zpE7&bdu-Wz!1&dl{LmyC7->ZO3iMm`Y|U6EP+Zfr8nijm%14#_@$P)5ElJdmW}ub= z5hv~RD|?@OQQvns*GHmr$f0D*nHS+#Eal(G4&;QioIT7GgTfo;TBT3SAr~i|ANJU3 zS|--?8^0^VSlBf;?uJ~V`u)Q*V4t&^4s2eC-eS0zFU#gh&-~$iw!!J0M(w!5dpzy_ z(o6;c)AC9(+FUX}6D1xczI<;(mdLBBmDJ3N3We~&oXHzn5?V&WWxfnMT<40r#Ec@ zt){!3xS7}+%6XJcvMXZeDj}*33Hemd4i}G42d??{5wk8h@RS$-8z6{k9(g~ln-Hch z=@|1>dAj94A{^(1j5U@8efRtv%j9_@Y+y?FuiAP3YjAkGw%CC*x%l0UVO1^;`ogw}C=2$G<;>q&Hja&}j$uD}v$P?%&T05AC$$1&GC93xew6`<2_Z42Ck3dATouP(qM#39roqFMZaIVwU7CVnyXE;YeoT;TfBk(x-%U zdmn1QB>I&6?5mm>!y9)H}bmewVz1C{sYFIz}7WT z+>+o$lEquT8|gj%FbaDlM95p+A0Uf1f<4 z9Gv>kJ1H)r$JVg_!?@1mrX&1Q>T6<5P^qmP5Vheoyt?x-2=Q%ck|fK2YWuXcT*%!Y zyfof9{!OP6;~O(8kso)b#zjD(Qp8{1PZqQ(fuvU+Zv}c9wjhz`@eXxuY~LH7-iaC0 zCDja~6e#pusj*82Jme$`85vKyrKU?FDrea-Yjs(@$g}YN%8UPu;j{av1UN*oR?tf4 z4W&`(MK55*F(Oi2fQ;YlBngeIx4?tJRlSCvKhb>^rIpv99F5#(QZ5dihOGSM{ej9r zT>QPH4tHmwlccc$KTGUb*}%o7QJZ@Q;%}K6;w-GT zdDfH~?1SAx=f~R;CW2{a+Xvl^r6?IYh-=p_e2wk;R>wQN5mMRc!6WtsR~h{JlMP?6^E3L!6U6|^Vo zR7RP`vB>%Y#M6i?>MV=#xWl;(*#%tKrQ0UC#Q|{(dGy4_6>~qSR|hcTuSNdB zffoQjMotrQ@=$3xC8Y8cDC_o*0#^sUB8>gRf&idST^5e3$7Eh;xWbBLzAK`L^=028 zT@lWi8gf8Z(8FS!DG$*%8V*b)zuf_hXVo1mJ%o7ojko=5xbP_Km#Pqk;S3P77n~|8 z(>$I>LY{;C0Nu`>KqVUVx1}HQ`k$GqqrEwIRLPqUFP&y63xXVE@2y_AE5Sl<7K>>6 zugQN6h>sOg1%>2VVp>^538oUKqH4PVIBnv4!k|xdflpP!|?N@V5L+|uyh8IL@B)^bNCD}38 zQO7JRq^Er4Q&ly5I6-^&tmcHpye)Zf7HlBCSf$>9_R`vIXdED-9)QSh5-NeC}?hB5Gjp~00 zJ~~DCH(|(hdd*l~@a@%%&s_rp`upQLmHNDNpaqZvp}OV-z&wzB%r2s5b?WoE<7VMU zatX2*e6v;;*8UTh=GFx@>>o1C zNoOR~fP}vuZcVo(B;o9)IXaGws&5DWWa2)d1cU}iUXZ#fpO*jJGI9rdQI9dt6bFR| zqL=72!eYJw-?g#(HY_GwpvJmzmRPcHXa>>+YrG!jb|CmgW_BJsVc>UGYJRX^$1!5x{3Ye8~;EG%%ck7_RC0e|ydO#f z;c-(k8n5EHv7H-FTL`S0KB)OR)3>HGGcTJ+{!i_6m~Z#!!aATdP)I4QaSd2&ef266 zVntqUcQd!1M!T_RI4S#YqUZT1C3Cmq;mrKG^bk*X&`7OwU*0ou%R$Qb;K>Y^{d2ag zrrG!S{#jjpBM9*?}Yg<1P3s{clsn0GUYqjq>NwgcE`Iyk#UzfO~DO2G!Lx zFsMpxcw-WUziDF}adA#iwkD3(pMw^NYlZ2Wy|wa+rNzHQJTf&=(!?1^S*F^a0YtiB z^t&3RGg!w)k~(|5KqLCWCa)8hdk`%lY{b_1c4W@;Rifrs1=L(qGvJ%Qev5;3O_)~s zSVm_%qs674HA_ycEKIDJfoXLl!Bd^kq9+d;sW2dTp`FdKbhY-$Osh|Wgw0h2zwqa+ zIewP^St@)Ds-Dlv#ap%c*FUk`z4;a|Q2)U8BJHq)%a?o3&aiWU#k#;SZhrWagPD_Rm5I^o~YmC*Bhh77KmKhrFH3U(9=wj-jv~MCz!r1K0CkeHD#2)kpS<4H7H* z>wac7t}}cJGOl&`y`4l}{vk-^PwJ<~<|$cX7u&c0Q3?yj5rClFcfYMx<-ZM)>p>ggRht%8(p3%hQm3@7qD=A`O= zt_s!49P7m4#SZ@wQIxN6phWQHT^U#Tfuf^1Hd%As!&xLDIu7i2#ssWwuehFR4v{`< zRqRz0F^H}_6O-f=(r($!JMrjYf7o7Yb-?=Lh3E+nXMx{RLB83~#YBc=!E-&-u5AI~ zFGG1M?@Dg5#l82w6rCDs6%bJ~@5dRT6_U^>MU-)B*_)g}z#W|a3`_%jiwc{lynG`# z$N7yZ_cO-rgb*b3_*;ffOiA8!yPj8kh&;t~8E&MYw+!0Em)UTW68Kn5M!u)+t@LKA zw5fGSVynskdsOGz@3yOPi-PzD#OOy490z9OGz2a{-Y(U# z5P*^>A!u;qR+`d3RZrmn7YrBRYON@d?}GjXtsj&moA)&GR{4&|7V>9b!+s)lGBq3G zIVKX!KRdKzw4ij#{x&t!)+r2y2g|EwZfle??P%MtpE9WG6A+T|1ah#~t1aI01I;G6 z2Umur!~6hoUiCzhA9B3nO)yt72|=|3ulTzTIrMfPAxbT^UaQ%bR(x6Eds^$$*h=8Z^JxNa0)a20w$s4hu*?zNmJ zn$2^weEd##DQ@}q%-V0&ydN)Z^t-l%^Q@vtIoUoj-ExjIkTS5FmuFEU;zJJYx3 zzEj0B+7CV=q{%<)GmK3!Tb%YC;mEV-tjSB1iMx<dl^{bf?anGamVttgK60wG4L3wd(y|0MfLDG6Zgx7vZqm&q)=#p#e6`m;`7xRf? zwR#EqWLZG@;`Ut3Ju(3$wD7_gkGPAnXsJXd66-^(`EP(j0 zo%oNGYsH%gwZ$;IUZ3zgTeh01W3hvAKWGoP00WS9MkV^ghadK(>^cnpRw890AK5ZC zBS*c!K)*k0i84?G_jmNEzl+C0QQDBM; z@4G1iwE7y6VX=uhDRqAP0=siXkp*mfY@ z^Tyckng*r)nI1D|@O$9Pi%Z_vu3$`DZB3pN(;1(VIFK}HJlxrL#Ws9Zi5KW-TQ!Or z8v7PkRAAIpALTpxvSaTCBKM**XRB5U5&i3J!$HQ!0m#oQ2+jb@F)d3e5A%7}wwxSK zxN&2Bp}h!la?)N@=OWQpt*jtbE|m5a^U}+y@&k4Qf`X&#;*QC3O?`y?h#xtcRrE>1 z>0dgxC^#uYYy7{N(||h*!IzQHOVqT4ar|7(X^QXS383#TxC_TX z=~Oa5m{?#lfGCv}MXMB!>VJ}n?j_n9)%gpKu^*<{{?wiR3hO&Zx5IxfjTHO<`Kv$A zB6+C=9M^D0T5%~2oE}A;fXH{Fo%|#{eyjoD{^Y5@p1Ab!oUW`el8J8E8POEr@o1a1vVSiP}gb5X5pt#`$~4+&vCBjF@~w$H>) z>Up!m2jS5-8 z*QYht8dcV7Z(Z;*zD2c z&x!&o4~}*ZfPy$=J%1?UOi&@%~DpyJV3~CswNoKA@XRs zWi_za*Nw4cz>ziUq|@K^$zuWeT9V@1S~uJHip52H@GCdfddUObw~c$#weQz6K0f?y z%CAzI`Wsj()GH@d9w~|}{Z(1KAfJS%!SjuL+45LBNDh!kQAAIjHkl&Hif%iRw&r@dUxpk@% zGPLttARFuGvdewNMyE-<4^DmRvB@s|tA&?K4Dv;UARvSG&-~=@GYI6=d{L#~WBVL; z{3tl{b{LNxYYA|1M%M8aba}H9EAN>rUE7X>^)Qa*rKu6;p^Ym5EMi#L-S-t5D6M`r zdSgzaXeY}7COh*ya!D;3NaLxEQ#5eqdy5w-_n5AJ;naX=`F?!{@HS2my`DM%RGSs8 zU;O@j2mNm6BE*b?GjM7fK`K%6A_^cT)tYT;ak72^NVD<%_qXa z!*W5oFvvX0*W50BqWgLN+9mNs+R>v}Mb-KrkiGcs>xBLG>ZL}UlLLev^eWV6UHAr4 za8pzhUmqyj*q}I++UI+%0+?>eTn#$0zZI%V@+J{q9*V-7^cm{~KgERI)I=w6y;7be zi(ltESs3S|j1SYFye(MaJpy!{2_-H`m=|9Tl)uI9M$KHl(C9j)OAvFcQj6du1r0X? zs0~|N;f*QK0EZq4$DdS2_bTdkxn?X61ASowMCzYpj)0LJ_ zjtp#c7_$iKuf0FdFRPa^aHekow6<)jgkA{08-|ivt2J*JUdnFoEv~qvP_*VB{^wuH zq$~K8+DKxc(U2W#Jlmk#Ok`VimDPcXKjxotG0~Qe#cILJXU4r-M23WvkY&>ibTgo|H$- zK)3Tj`MeU$ zVV0uq{%NM#h270K)q7K!h%Bi`w^lQy-RkSKczV+*U4D%*leqoduNW@jo5QRCRK@43 zK#7$LxLe)k{*lM>U28yrD~M87+RI7x#n0ef(2~R|(p&oQw;*D95dCs^>hv!meb1;! z{@p`)gPDr9O{9Nc2aF^&YMZa z>FlP|&J6RV!1KN!lZX4iZg$vam?dDMO3J;042W;n`~s+X56PM699MVpzyKfDa~j!1 z@h$7bMGYSildSix7}oTFWpj8j>Rsbnoz^Dbh>gdHKe``duG_g}PFpJj*$A3 zUcJvV7IY{D+^=}`a+vof-^`M|R!#WCpLti7Kff(EfaYF5QeSdOm1QELCNWB;J=~1t zQ7=xLu#&#@f?@g0uDn+3ly2s*H+&6~<(!z2i0kA_8_PKPlr`ppiI3)u+?-MfGaa0( zw(_>vf_ux|N}6%4ci^v2f87}`=Uwri6h^$!EmR;o=8FX+=@s)Pd8F=F+cVh{A%bsU z*DnxWFG^+os6#6%a8jTG-_(dARj3E6Td^Rg#Up&q^1ww9W+xkySmVnUho<1u;I~G0 z>urplAY#k}oLsuKh}EM_1iV9gR|o)^4g9BX;~M-!G}PiA&3HY0%48anFROZ}Cli$e zvF^fq%oyeGCGPJviR<`oae-4}5X^2)(f1-!3~Hvb*(1;oWB~;Q!)1&?@F-`#gfDjn z;QfNvQe{q58qb@BhA#%@N7f8BGZnD+Vhnsnd;6)#%kK2CCiK`4s>#yI&kNgg@jtXw z)~&!hG2kA}{{d4$tiG)(iSw&7>!V6k_B4Ot44vi^Sn6?3I)!i>@HsWncyCXYCfRhK zXPJA(FdOg{=8*VX#l9W7F9>^;UVqWS!4>Hq4e#H25^oU7u*tqgakV<0)t%$(JF86xPL5Ra zhm@yj$ULonsh75#SQc%D2hpF5YlR>G@aAAGF4jB8I~HSpG=&Be&FmEA6um zOjZ}#M|1IR4XZ4_F_sdhm(ck}{?(zIgMdF;uOhQ3$2F&`Vo8f9-KZl0)N#_j4E^@n zT*i_%Rz3YHc;XTi0ePuzqZ@eZNou4Klg&l!H63nrnhmnWAZPgxYTA-xxT_2X<8^1~ z@U)h}pOac%N<3}}$?PiN&i1|3j(poQUL0~aR`tEOSPG6^xD}gVq+A`xdfR4hNxZ8p5QkosHtABA#0I`Q3yfb=`PTT+=~wS`L^!~${HS4=6nwHU3=br&aOjoYn4D5H6% zk!|5olFZl~b>_Tt;$Q7$@b}@Jl%HwUR`%!&i0yGH$nAwc(!LJ;pucMm7JN+AE^Rcc z*)+WoSgLs}RhVZ7ka{1ddinBL);R^u#Ijw^PFdZue;WE+K2M@`S?WUylD$Li4;p{L zNVO~Vo-YsR?Gp5k;zc0(WT_SNe~NxSd`0o)#Mc^!h^4iO&V0B_Am_IRxM?+r)m01N z_7$C}YUm>&TX(H`%L__`ZlY9_Df}pH{GMggO?hldN_Y(t8+aPH=`)UCn770Mz;VU$81#zbeEf|b?;ud z-?PueO=`tuve0J^Mn{;8ztX1g_w1|jPU)nM^1|NQK7MAK2itlitlQ=`X88W z@c#f++E4a;!N;hoc77SvZtl&ovYT@H3jH&e!g^HMCe|Q&bf{tYccEL!=cS}Ux|6h5 zqaHksz3O`UoN?iNTXu5L_*cOn0(E~Dd59vC7hk)P*1L;;*;iSzU@rW?y>hGmBEG?e zw7VGywu&gq@xTJ4xYr<11;fIN{?v<~=UxUQjPcbfUW`4{(2obwlz)9$-1$b&_Gi57 z8_2%wzx`_2)4yk}ULbKW$o}vGzL1k#uv`f4-~;{jKh~Wdv1Z*aVb5Q@4RKG2^EqkD z_ziG=Umbn3`_G>v_#dnx1A1=h&}N>$1$CI@Jga^K{A=G=SGW5?%(0)wr%h2Aj>nC^ z8o}`vVY`6W2w*RNZ2t4Xzu{8q+gEZaBisJ~uTp=)t-mpqHn={!Yup!50zyxh@6A3< zK_oaHSR>q4KkEiJ`3=9-90&aUe|g{&d>xsXd6qt5J<8^wli)fuzGK^r9>8?3dY@WI z#u!JRsH#(ViWeC920g`fM?K6WuNac}UjZNade0Y!_J4uc779Iy#aX%io~+xQ*=%u! z$MvsHlf+SZ!{$tVMK!!cizen}+1rs-{jr(Jt;qiXS90jG%$uh@Px#k$b>a=u0<$O{#+xR*yFmLwB zVcnOLE7%Os-wAD&P02HUX1bQwqLM(LXkW}zf3+h<{{UYZAMXl(T*qHl!}~J;^hYi} z83mg@Yk7a?+OJxCJ&HWAkhihLbU)gQv=cmd^xP?fRS2bwv4Q^Z{{R{#jK#@r%8plp zTCdEYz74eU@ZodxsqMTErjPZAna}q{P5r%RBzbFy!C&@;LH_^=9hU4p+*tb7PNpfX z8#j&<2N%$?-w$+$%NS!L{n1rF;azDA*!wzT{n7pvX?#m!6ajY`Ppv(?O<+Fd)MNey zSVpcnJ6)PQE(X`Kxt~A7%^^+&v}FGPxXn&1!PNremoiM^+I@poC2cx8Wjf_B!^#pzl(NvNw zVQMpT=A>^Qcx8ZLs=_h;(f9)rZTcW7;70JKFuMS5h$JQZmf7=u<#Xk+i z#g|u)p4*rFYW;>jO3pGDE*GOmcD@|a{LSVC-SicuYYmOL%xJuE&{v#C@ngfA4s~e% z0Pm&$02)U4z2T_i+BGQtyNCGKEld_+Q%*@8RO(?NtBIY+QC0sV*F;(8L+n? zgZ|h509v$MHC=RPJh+kzvGkkxvf4ExDo?Sh^LX0YB_k>aUZTEp{{V%vVb05i_RCdP z_>F6F$1|=wb6s@!ZeM9L%&WyVT3GreynAi2nTRSq#b&?7%R6#ZWOnK+=ZU;&Y^Aeu zyIY{$RQ~|sBD7pFxs2}r0Bl#I9vh_Bym)musO-t0a2Vo-fo{z}^qgfA#8}_lWNqNqLIr@UAY;#n!EiPK-~zS-I5K=}F!;{c9D0 zRNk<$=3+CfWk@wD(!Z&8?^C&u7Z(H%t!B%tPK+}=jsEW)bRN4TCi-}YZow;=NsD}&b(^8C5M;rs#x~nnqm@3q|euw z@9ty4F|4WCl;)?8Ta8>J?up6%A%S0&-W~m@ymjIIq77ND6?nwCZ|hyfhwZWA4axnc zizpw(8i0SDcyr+D{{UuJM^E;pTVIg{;wxV+{{Tz0nOI<#iBI&epFSvl!9EA^)x5IlwxdkEBP%30RnJ~P z7404r_?e}6k|^P6{>yN9Fx(Irdt)`&ukIA=mwF%KUPW`z%rhLWYm#m@J&4B(ijCp; zAC!L-KVx5re++lartjBu==s|ku^=V_B+F6soS-k;+z=d80Yh^+>7CQ@#f}I(rnZr7IY0%G;LtBip3^%8GrTv~_n*wt6`&Qqv&wB$z4WA?9?qJtU(y15smvn!S=3e z;qQzsd}ZOQZBoi*l_ZTx!S9ZLTIkh}4~*CIRa$bRH%?1beGGe{vPLeTn$~m@MIx0U zhDRWe>tC9`ws*ki_nU#5G5e4~S0AIA@dHeVIK9_l(x z%KrPyEfkmpt8j8X_^)Ru%q4)t#%cSnaa4yg^FJVT*#farI6PvtqlNAN0C=M`?-zJ} zZw2^@<4d|$Np0jP+qgU&kJA-y#$h$FW7Dy(-)PiRry8+(NUR>Ok(PV`;+gy{;=5Ug z%AQ~?*mV{90j+7aUlTqS$Q2cY*1YZK=GqVEn*8OG-K4lO4ho!uUv2)$zB&HZ@XY!& z>>gN$0l7S!e<5EvpHbye#X)M1H#)&{MN~^u^Pj~UES?$HFZ7uK657nszU~hvKgf#b zrHo{^{{X7Ko&B^v6^{(~@@-ZhkuS3;UYTNWKS5tLM=)r%70J#I=UkrB6(FiErxi5n zQjC#DXy+!I!kBsmaB2HkVVWEj1nJLBOez!N~v;Dw}cvCmhily6(Z^ zq038(+8+M^`zPx*_I@}4_}mA}_=@&_+9`jvw4|9vHk^KE{{XFDGXBoDUQfhJMN@`m z3(3bkn)<`y&63IC3)15*8CV~nCc5x?w0>2@5p;7Jbytz`wxq_=;PH=}sjpe^Z;2$6 zOh`${$Mmlm@fE;p@~m((UB7_mlgbEAMlub2^=UdaXB2*sho>6wrzU!RzOZd(R^Og+ zUZde{Nv>hsc_001@dl8o0!~Indj9}`Zlh?@Jp7C+@-8Q)<@>~b$HQ$XxHGf6bd6QV zTxavHgWwO36G8Z;6`Y?WH^X6L(6Jy7(>0f=*{fKvi>Uxt8>8CY+W6DM*9br`U!yY< zgMpKZ_)HY7S}y0&=2U&A8c6*iQNSamMR^Fgx0WI@8E{9|nWV^O(=B9UmS~ip#0s^J z_4-75Nc@6JbkBgkA!$cV@iwOc8&8_ekE;?ZlUsB6*Ry`mdN{K2tnvlgvVr;m{x#+r zeX7fNfb`9Ng-*5Tsrerl95w6mcV=+YrDe!oGfjJ0BgYu7s%vtrKp!n+U9j^u^dh{N zVx>{D>?&onC_y*5kt`&}LF?AB%g~?MxR^q2mliT(g_(w^2wxg|qtA-xpejl`a>gfFIAA_bAVr2f*U+ z{>K=a`$*v~6K?9wldWxBMhiA;D&jq?O*u&QX~*3w98?o7rj;StM3q*=!#Rr3B?bVKF?r7LkxfPBDLLOAMZ%W)@4xeQ~2P{5-e^?nuN zx2AbmhoE_Q102#S;;e1_X}e8#MV>^x?F3cgyKjXaBA3H{Inr*UYzCQPfA?67{(`u! zwR=pM+uS6J!=cE(|kc=a)%8Z zp#Enc*0R}7d8u^rVz^f6wSoMOYo?@B;NtrcLVn7uDlUy5dFlamZwkt*^Lf_zA5yrl zjIZJ`Y8P=4k1l3U$dO-N{58HBw}G^oiQHNcTfeP*)$tod{>Jf!p#T^R{%8I4Nj3TY zK`&*At3m$&RzGd=B9GTHtR_A^E%>975%Ntu_NhFv>r1k}@cwd&)Ul-Awwrkc$UMZ` zzbg9!!?)4+hr=*Rr*M)jr}DwCjhT9SSJ9sUHS?%wa@ae3_U9dW=O(^Gh%o%rRb{+S z+I%z3KChTh11+j8Jy-k#=0A(tSWj4 z@~@=7Y3~lLr;H-LRLb2#BKo#THS^?*>34B!fQc{;IOOm~N8|jf(ZJSKaPX3P=zAH} zFRNpxPFr2Czf^MagSQ{&y;o%{r?p(3GaQbG_)b5aRAxMi^qW3@GS%3lDA}CjADvT? zzG4qbyLi7Ydm7G=VUABZtd6+Mr7|3z^__JY!&Lj6CoM( ztk3MY;oenwZc6t2t9n>+-t`T{3kvUcR37yD9*r8+BP&yTob%eMXMhD)bPB_^5A_v) zQNuoCJB4ODHsCgratD7}nOBW9X3wU>;p)}1vDe3LOq~5c{Z)OU47dY0uVAs&ydU6S z23*-&+e57Qi%_;G^GJb(uHbWn*o=;zmF1T9dm`I{M^9dr>QjuQpE9xS%M*U4She|% zMM$>3+*YF5mTsA=QCJo@#wkjb%zm@WyD`?(bjB!qehqYg*fKJb7N}lnQroF4ybg0* z6)4Io_B5r9rzvvW=cb3K{J5;Sq4|w%-LBmFb*#A;lU@~Q?vJOTJuYTV9@2k0sU&-c zsI6I|9Pw2eEU`7@)JL~Ye8{gHeEQX>SLV(+sMbDuRhZWuJ!_sjj;C_m9kMZ6w&N-> z_||j_(;~Gkm*xlYuV)Rp^Z1hBeUYBkm31LzBRLhLKL|x-&EFN*hOH-x zR?qdO?dLV&)IN#}L?Ba6$I^f)al!3evNU7@k+`WC4x*Wgl6D;m^fQX) zX&v^TYJ4x@G;%gibT}Oj-a)J=iC_nM(eW;XFAE#qgtgV_^Pyv!oI(yg8 zQg=?Ip67I>my^acvp7k#GPcepTmQ7t3?^X$RmYI_Jjb|vWh8n*&(+A+;mjc~Q8q}j=PcN9o6%yB{T4@1=c z3;0~>8me77{^~Qw;7)6*_}}6ry1au)h4PVd;Cmj2@HMUB8+g1Y;llp_cgs!W_uNNM z&b)_I)E`>aZttWdyv@7xAK^}Km0g}IldV$7gHE+;o4^ofoPI{VPeH!Y#tRSZ zsi$qtokPM}W~Uhz(kwEbLr2f`u5RPPTJD6#TUkEU67z!CKgy6<+FjxF&1s;1qB)iS z04}1ZgTx*s&>ckZeZCCfJXi<$*OSdV?{lhAE%<-N7uR=*YjLN{4sckj0rlx!%FY_? zRU=mK7cITNkQMb9SlV%s zoiBQ6A0c>?!=GsJew%RIi-`g2?~G&cs-GVxj^D|I{{RF^ql|U}x|_{DR@bzPrjU6) zV&Q!`Cb%!!BJC&f5?h0UBUAqXj*9&k2`g%G<7xX@Mm>+5wdQCp0aMrCHO}5Dlk;#- zHQZeIc3%)`(OKK87iPvqVfeqnH$D}(F3Yk_K9e7Q^e7QRfp#Hj!l5v zPg<`dbJL2NOzv~gXBA#z+lPAOXQ8~jsc3)jOKF#$%2G6iE%ky~R z>FnLl$-QdD)P+;DslgrUiaCcU%Uu_XEoHOuHlYlNQ)J8n{TPqwSTi7!Lfxz9szKA6 ziTf=Yilr#jT~S7918&+mrrWD|z;>rRTXTcoihZB&E((*k70uM?j_B<4{H>}e6kN;~ z%)!SLS;^(wpz1ME++s-BcWTvn9lO~O>2UduPH=kH)!(p>f@9bIC{3zLo0iTTsqMHh z=j&fDSimjDUEaBx2{Uz0vP@f6-C@fFqdspT1@XDgC=l6u$FWi*th z%+|-ZfS{CJR*qWgCTRj^54N12wlX3Zr?!1EpkKHs-RlV%X(L;{3ZBPs{CZ}G+GXa6AM-5;`0P5s^G8( z*BS5HzLnKchqQVmanq-5&P(CP!kv5KpNPK0q*+NU%yQDGB~vFECl&VR!w>i;ot>SH zz23Wg_j8_J9s+~xMSTOR<Nji0mjeQSD&eK|tVY*lzErH0 z&t+I-j^AVqu@Tedz^-q_ULCmAEg7xu-W!lI4&oI474ms1kU{{T3sbpHVOC`PQ%g_Z;@-{c4SSH<@mnL#80RGQ&q;TsM0uV)Pm z1y6QVk>ys)DM5RU-_-lw-}d@uk22c=-oOv(T>iWN00j`#ZKh;`#Y}$SAM0Nh!*wLT zD>)TE+2oN}vCkbyu9tz!qWP6G$es>S-c0w;6n@&?Cf1zGXK>bgkNmSFALm>Kx%)_X z<6LCVh;ISuk253n73R}gByoJl2hyr2iC-f>t#;G;tQDh89B&Sm=W#d2PZ(~=@g3%W z-Us?qf8lfZ#vBvkE5c9GxV_&nBw$f-aE#n2Bv*WWi?_Or`5_$=JB9e=<0Kgx{n5|Y z{Ax>okDfZUB(A-4j^8tXjd}XX`?2zhJmI^M$E911ALT||t7{&a5A7l2=-3t4=Ra0& z@vBMuPW(Yh2HkpMeVvE(uP2g4knp={6pi`lDMmPdkfY`$>4| zTR+>gl6_czg-XA)w~l?!+5 zc+r#x)Q&$2L;FE^xw1~8-{fYVUDLU{A-6V)Pss)xFtX%Bk543NBI$~aPaJR2jfSII3L^E~(W0Abh#C-*H zM!ZaAhNo*->EQ8|^8ifJF#6Iri?1Ya^|F3-hZ&KiEC9#lS0m+cPy_f@zSSJh4@q=1 zCh;xXV|229W{`M-<*=ejGyd_c{iB?YPfB{iHv$`)%2i)RN3f^ZvHh`kyA3>^`D6Yx z_SCMUUB*Vi{{U#!DJ}fYkAt3hr+IsT8}dgLpR^BS9*DL5r6YBAKaEoNI=A6n5}O7$_Z*dMKBK@6*gET{6T3#gde zYmw<(va8F~@@i93dLvFfa`C?X!zmp(t8i-<P70O~zK^j!j5pb&r3TSp8}_VRcb~kxL9dXAHq{*wKA7IHeWXy=i#M$t2diGnd=W zJDzJE#^Gb!j1>L?t)$UMCJs(|{M=QkuBQcBN$X>(u`#|FzCRkf4brTb5|BQ%&Tg|v zw=B#KGq-hDx74FDFb~hYUot#;m~MO79<8S82&$W8V&7Wo^xqIk8trx^ezoFye!TYW z!vk8;_?qc?Ss04vsX{e6A2*50r6zjpo*_>#?KmG=qj}O*3ab_s#S6mD2be)V^slOY zm5%S6*Ht=DhNrJbD~&dsQ5L&(HOAoTaqG=+_tCs;#ZE!~_e$xn^~Sp_yBi+Wg?BV_ zDaa~EtvZrN+hA!T9ixo*Cdn>4;yExVevt=|Z85wr9)%G_!XCP6;+!8(Zh zDimb(Hy2V^$!2_-t9^YOfRMn}6I>QJEkevyj!p;XS##fG(v2Gz{{Xb1jy4`%4@#%~ zwnCpTujf>*q~5vQ57M)@6`1_nd9Heu=M9vKhbCJQXX81?@PU{~J zZlGT{+*+x_M*Q)gdhlk9&cp+rXlq#@0f03ztg9|ck-BD+!qb}6{YLN)#}5SjWwqGP z{gL|*sdU%@nBW@tymt>&g)gjO^^f9@cLADvb;~``?m26DB#uQA#N!MYWOJJF zUy5I{kAwavT3t_VZyk=X*)ho)fzQ|L?OyL^99Nle>hWVcl!7{Dt6gcU=lPcIRr=$c zSI=Q_xQxD{l^M9R+LbuZb-DQ!@dM#zvGCVkxUkghSruHW$TC!~AP{la7_MdX)?66A zb;f!CYxT3@2f|$s;&zuMwy$o2eWWDV0fT*hxcsa0!{WEXyU&GwD4xnl8SNRrbu$ha zWb{6`75x#zd{s*`ilbLauf+Mxbs5pwXnAF=n@FK%TpFXQX+PZ<9@W!dOb043aZp*= z9Y_+qpGy4~+r?`3JP6j6IcjrI+o^=4oDo@<0b-x09jmU?bm=XX%fv^c0h+_OgiHe! z=~zlpns(UwJT-1)q?z_->?iTK+sXd`2%Y@75*)->`f-8yn)~`arW1}wUuyha_+{cl z;SU&Tx}&4ng44e5O?l4GkZdJ?rxm&_6!^0B(PUu=sz*LteLs z5MQZhZrjPg1Mn5|4~E(2j%W`dc@_GF`&N85{{V%F@S6BQo3E@@ri3WTECvAmO@3YJ z(aWRwiQtfJ!DVdvjz67#-NN{%iom*U>k|rc_Epp9Yei;q-j(a0vtNnh@ZXQ4hjtck zm-86@wdOa#LJ^arRDK)OrO|v*WqTI|WKo}~74-OuD-(s38TA;cB)^z>f{mhHSoAb{;ui2vd_=(w_Naj3W|>;hj8MNtanM%E84FGWtmirf+|KLGk`Nzb;!qk zKazVgfArj0Eukb z;a_j$EAu?&3Z*7~wUNt`qDRqCgAEj$tG?01Q^5<*1sl$XGMzi|l>%;Onoo_;XK_))oH%&_!+MgIu4(84SJ) z(;2?^mHs38S60>fRS9!aguIW%YsZ$PquBYY_L{NAuWL3qWIxOb@VN5~ftRg)C;LoU z?yaB>w_;i`_^H!|cV&_(AA=)Ae-8WV&nPw#NYeAHAROL~) z_Ne8IJ`{Qqtx~GA-iWN-4O6^~w0ZAW*?O9Coy?CvAgZA$atDKjN zr=0Uu|HPL=)R5H?>z_hi_*kb7MG~FEW23!Nk7uQe7(<^ z&3#ev{>RSnh`Gjmmfn8=f5yI9z9W8n9(q@qkW}Zvq~6*Y_=Sb~zIQ5#X*8Kllro>K zEDQU?idD|jL~3)6o$KhIQ{W=`k@ZjP->)_Ig=Vvm<*lUJzwUrPsjfrg#fXQ+2{;%M zukrv>KW2SX%GU2}%V0cUg+AuGZ`vD8CL24&952X!6aN6#ug{?sh0a>roAp0?#Y$PP z1YdU#(fTBe^de_R0Csi#iy9QrEhb4zjgEjYW#a|7d9(*;_bm;k#_SnXq@XWXe^CG?$ zv%5FiUA(R^@l6@!0(GT1bN7cPRq1B~#B8u14T{ip`ly zIR>QOI~6wkrz15|;w{)X_N)G)s?50@@!q26RC^h>3+2Ym(-}3>_%FeFKCh*XM_#*? z1;eyWyGBXQIK^|9k?x86j8%^ac%3x3ZR5Iyu2$A_EKB{;MhG6pyxe?iN{{Yd zr`qt{Og$_|HX&$sI={nRFT>s_u+!kSV`p@$G*ZmOw@j5LyZsa4{)HXFeWOo;SpNWs zG6U<#0%$-Wj#LCx?_sfZx2VR zTfA(!Y*wM>!Z{3@f?AG>s->7==nUuFog-JQZga;SE3&fCj4X`F zQ z(THOLs$0j+Xuz3aTBDvt%Vf_3zZkD#@b=FP_+dg2w=?p6aC!blyz9a`NWIjN(aH05=dF5|!S4u<5o=Kw8={ZqZv8nQ z%Dj#leqr9e%>AA`6xvUNBGe|27Z+Uf)Bth(tLC$8M6mctdp*wjFjAe^&x{@*9tiLa z^w8lYXxcbOp}->*@Wt)Z-CRj4u`eSQKZz&$*U+D}e~pFiy%vRUCStc6q`~7P5J%}> zIkR$W%i;VRqlEUeUi7s+IZE!sN4Hv$Ti&Dk^rtW0uc4Q6qb`NWPDrhdKHR$~#!hP{ z)k`vrb6wAcbe}ndj6PMZX~OR3eioChH3*}v@SdKwHsW?%9@U%UJzcJ(5oaT%YTaH7 zcs8lP0~N$-S4QgSw_5F#xnpF0fmJNK11WVYw0Q#+G%@4rO+&?4kJ`DB`5j5QNw?IR zH0fTC@VCRwb#^Zue{~-t>&0+-b)#L}#S)B`U_UYid+&#|==?vU#TGV@H#gT6QQuR_ z#$r93EVpD{Jk~zLr2UZ}225}dy?N!Gvu#j1o|PwxwU6y>V1RNLfm&V}UH2&R48M>z#!_tS%J8z6FEZ7e+IF#X;n-t|Q-5-C_~Nu8_>cR-lg7C8KmNM4{k5myE60=5 z?$vgaL%PdL54WX$c_~Kj>i0hG-8&Xz)qFjzaW%YQ&+#U6_3Ku&?+)16$k&iw%Q~Yd*^f9?;~ZAUhUK2tSf`1BWFsr>T(o@iSFCR*wUjh$!`BABmz72;D`Uj?uXE^K zF5zzNVw81Zn!6$SD~0%btTfP=WGB=E{HwbA%4_FwRQVfL+^F;!A9~TT=ChZftsOt^ z17ANF`{^6sOBa_l;-9q>82mq{$Od-4KQb%ZeQU)30BS}N_(BN?&e;?X&mex4?$XgO zk$8XNqvkDfS?{#GKGMV;zlC{M$E%?JGm;_6NYH0KiYw4BwQsd+`e-9zjaMpr@I`sY z#|0noooW(e1LaZw0DOx53k|FhjZfn0XM6^;T|>tTt^@qt#(SEZ_MXy3o~#rg1dRSz zsQ&?!QCiJA(fJ zIsxCULc?KQ+=|h;K^qVU2C6cRr;M8UsUN15c;=;wMQo}59%?rQSR7MZ4WHr7NoL=M zwaGj^uUKjk92llk#~sCfxOgX79}s>N={k~-#!EoW&wBiNFq0aN`N;gmewhBmJ}^yd z;cMvzUGmzem$x}101xY4mJV(+J`0L)e%^wpmdD7yv=@h4M)-%QgBV0$8;+dhpXXjW ztA;C{b6-&Y*_un~zAuVU4kc5c!vKFe`G#D^%t+_yTjSR)X4g~I$!dFCzLokb6{fe` zScC6T*x<|o89g&nO_3h%o2hj4KWG{0!LK^r^^c*B%Ew0=;xL2m(}M?XxyC9!u#9kN z*08g)w{iY8R?y$AjjbjXorDL6bA|kC^?UYS@X7H10K)Al88#M$SpF(GugiY~=|9?@ zA=4r%&AN3253PQ|{6Do@KMZNM=%zJ}(k0vUQC?Oh`_?L?tqUDm%vK}VbgavXJiPS) z_v~u(s1b~e`c-R>-eFmAn9oitmOG<`ZjX=u0Bx^`2T!rK(6hNEUoiR%5;0#0Ykpsx z0*tZe^RK5rY;9USTjF`N4mLtc`*l25%^IfFyKn}3X1>!cT(G}W>uE!m4x(Y)4Xgp+ zRU4-zu)Ql{NY#rHaw{U?R53m4=v0p~wwf8UNH!7F^sL!HW+2v$;)5SugV&*~&<5fM z&F@|wE~AvJc~v*CENaVv*V3A*-eQ5rIH?eP+*SQ9A3IQi6?eNf6@6Pg55~OuDavLt z*(26I68H}D#9GCcfu>uVonuzSeqxOMok-jq{cuMfwfdFtL*Ql0{iMH;z zxWL^boRUe$VoiCk>}UHsr^EjM1jXVVUKMW;YF{wVK3pdZfOpOb?O#sF5n*6B+AE74 zjddTggV7MuS|X*wt_PRIo!h_CymRB1?IGdMgF0-c;$^zkc9R{loSod@9(r``S^ogE z$L#@S@OQ$}G*T<-w?UE^@-jFWBz`sdZ{sf)YMwIHt~D)Q>Pwrc+jq>wh0kCK_U%=H z!79G|_7bNl=(an*il4N9j6N^wbIqvg4`-$Z{oSk*5CF*ooM)y#D)aq1=FJ(VoJl;n z$Y*1k~Ix%=BK_}yIr1eXkEXBxHa_fuL>4PXnK@m3_8Cp&e^yMR&s$3X5~T7?m}t-@$mZLp*MQ!1IcMJV1*XO`nf?w^k9^>drdSP2T2&mqFB%%T);< zEO#6lyKgi%NEwE~^s4ugK#If=dvjSzQhT$G{Y>ktu&uK>6%Od;;dp9}LM38Xky2aR zy5x_$S4y`lN10V!wshVP_;KPN97^BVntYdGdb)x|YwOTlRr#o9iHVRVogKhpH)f~%OlyLA zeQR}!vfSCxMZNqFnvtYDU}m99$RuK*b5ktQbm)GyOBLp4>{nnN&N-=LP3m$nP2rU7 zJE}I`sk^mr9726e-4fKB7Bv~iy+p-$0QIItaT{lNCZ$sou*X{Hjv+1C%ILm;t+lWQ zO+Ayh6Q_C-$9+g@}>Nw4MG_g^7T#sWe!fwM198}3RbCbTQ;LPIIUpQc%<=OV~!ulw$d*ooQ|}=XkIWeR9_%*%?QPCTcu(3sdQ$m4;Q(A&PM2Z zQ-r`^9%`0B>Aw2nS&sSgPr#_W2>$~K$|nmt=RPc_e;F@sL?e7sfv z0BKEiGWwJsL!&y|XK5Jsr8>G})84uN06TVadsElvP)Xvld93!hmR|?Z-A!B-Av#kV zR8`3*01Ov!-9ikF(tqcmA`I~yO{peQ-Y)T^xng1H3N1Z&j?N|n%HVX|v4 z?Mc1ZrI$l%9Rll;Mn3-l6$|)@oxmcn+aXWQlToTM%M)44Fqdqge@WWnMOXe$GQc}B$)=d3tP$50z(m>deM_tI|85~ zyY;T6ijzl~EV)NxsE+$<5$2M6)s?&6r0@M}j)L`=t_D4GQp>CuNlt>A#P=|k1-*{J zZ`wRz$^2?1)fHKZZKk;~t4YSzqwP;|jGXta6?f3f>OIcR4Q#^M-;tW%()?Nu5rEI( zUT*~DFk6+YBU6cGA2!ilQLfHvnS3f~W75C3gmRO-C_eQRx~lFBTRE>axz@t4+aonP ze-SmrK|#hn>t%^Bj#8rUW4Y9|LNM_#81$+utUEE1QZ|a?t@Vi?D9w;+JB?#&6d5C> zCtI7T+fM<@rH-EK#SsAF5Ebi`)V0f*8MhqgkCv%1Gcz{)dsGtMBq&t!O>@qxeNSeN z7BT2ixw(^eS+nils7QWdN#doNLnOq3k?U2Yky|T_8swCzV@$!uoAXi_})~g34%|`E2cH#pO_e z(^>m0{x2`Yvzp^we_`|+s_Q$h!`1e-$A)$y{tPa3aLVerTFzSP9EQ6{#2qGtw)6el zS3A_Q-~sqSc>-UUeMq#%)j@!7OlLE%4Z*0To)B4{A0z`6ph$t!2cC>?pD{I%t43K(Ll<{dmLH#?Nj#_|qo zsR}JYSVkbTz%kOf~I*Y*1$Z@DB29l+rs^cK1G7_9RkIm-~?1Oo~jya@1A79VW0 z39#JdiOh>mBorfdVC_ab3@FZevYDoT$k4N0Z-HVR9Yo_A*XPRph^Nch-2Y8pNfw?u z9_p`e7U(j0r>)o|I=Li?jZPxgqwCYGiE(wAy~$!;AAs+!iVB~`T-T&3t=S_8QO6MV zTi37SyJ2esP~JKoY>I!tiP{BN#gWI~5~{78F_YidoAYB2a>w zsCWoqjM}{lrQl00NP5uU712bRdf$@G*OP%X3IKsE1HmagUfjI2JhVaGH z?#i0bz=)mS*GjL#1+H$Uz%17Qk_ekVk4@rVKc;K9S+x7lX9airf0c91k<8_DSjf@GL7j3^Zb)T9i>=j)!Pe>jgB zB;+zSb==eSsVCEtG5TZ&olk$0{vl2RX*a-dXfQL=nf@>8A`kovjwtKx9bmW;_DCca z-@FxI7(2U{w-!c0rstev@SW%|cWq-s@2J4+*Y2Z%#73bFuz-jkp1FjQ=b|p?y*I0+ zra#ci7A(>gbe;vv>8C^)FsnjL{Osz8Z<+pWebC660-Qgru|;u1tb2kW$yf6O#F*Urf7>jJ7WoI1ES3&yv(ZRE0}xKR^M zdG4Aq5c(75{jjIHrO=WAOh1~lk&1|I=p(0Y3 zQIUDGvf1C*03f%h#ut<3KVv+#J}K;L1$GPV|ByOg8_>;)OB7GOwmDhJx=G0@+f+DA zNps82RULXcaWRR8a^Zn^R}14*0JMwR!VL9A>SuG>!pu>%EwFi9){?uoub(te0&Cl$ zj_;;G#bH`ss8W6Gw@`Bq09Pj^RSXsvh<7 zHt~xRBbacb`3&SlT*G`1Kn16-u*3U(SPR2;)O#0vU6gkr`6lQ($6n-f1?7qAAwtu^G_y4rI`UTfa}6&H&E=W z&$s>QYt9eap!1HOY$Mq)Uk7PQp;to3*?}-WIs&;qO{?~(M{rM+Fbt1_M@+Lr!;G`w zBNYT{Z7g1U+BV|fd7A}-mHS|K`a|wH5gwc^uNmwe`?s#(f5drpDstEN4LIcA{D<+2 zsa@?1Hn!lNA*Zok9yzuNJW}#myLav6W%cWm6^9G~P)}ZMG5kqx0m#nkyIr}+zv5%( zG6Us>zdb-c2V`N^rq03TL#Vf`X@F~ax%`QT8NG~9If;D>UWZRbOZ}!vI?lDbQ67ac z_;073Zz$te=#0IXE^V>_RVgCSV!B`GWf0%%z8i)nEdCT{n#2iJ@Ryb|RvnjOd0X^v zJpgdE_SaDVUa~vdL7$xnu{Yx7cx;ajA({J0SIrRd7Zw=-xUI%p_1CiUx<3>Sl*s&Fg(HQr)xg&1gdJw!c92ND@hvLN#k zAIBHKLE8bKk;8gu^YI0}x5wnmbfR$#mrv9lLhw5M+5pRsCHZ%$Wl3Ls0uwagQ?|s1 zBL-S4E&Qn-Ki@100zh0auEvAj9v99 z(SW)R`iCOWD1>w2BnwVFvfw z>?M-hHI=kaS%-i7rkY#8GX3WcqxjiFrmwahfF2*OyZ?^CjQ5c*a0m^wWgK8UFC>!b zJEZm|=m7dFvr;-{KxQyHcB1p8pFAq2F32%|VAnA)(Z@7>zqWoch{Tuxn61{17`7yD zb}q1SR1X-Pb0rWQ1zH>HECuQE!)kG+gCcG!bm@L=mdUGmTAXCQwOVB%W9`O1f3E%g z!Q>1*wx!$^d{Vsg7=XLhC0M)?EX@`?ySt6;M*jX}z)9^(xozv!UNqsfYA^bdhge0q zJsctMx=#9qYMcT$XxuAADM7g<{xwM%&~$1p9g)o2AcnmU5&IdPA#)Y;w$)ZbSxg=p zlFh9qofCUe^qkuCyeJf_1F$1DrgumBUVROvSx1hz)%2RfKpQeO(83e7pv}1hdHo%s zJ5B4FD?0hK^M)xX4CsgGAcq|)d_L=k39Nz)+s}9NGtg`_#iiL+mLVAz(`}#3xS% zl&7$medih7-VVl5p;@N7#*);=h=^BEdx30h6?v3DG>})$9vJ%@S^n{Q>RLd)> zJ^KT*c-XiHpQt)qWs}_j`86w2!I=RpzWob~H_J^u9gVcefKI4J3l<~H+*u41JyvKkRt$=dE?Yrzyq)wPi?hqz6o(pj=$K+0;-Ui4n?7D!^NR(QYV4~S&8&n5 zJ+YBKQgiH!x6ZxZRFZ(7@-um0LAOh^ldnYuCAPTv^%*z@dEJFfcy#ta|L#7dO_hHo z7d>9i{*H`A`^iB05f*q4(nXBd6}t-k37D3eI9&Yemw4skcy?Rlov#Cf#farzQ-U!Y>!tYrHGKncTl7bed&$pCXEc2pT!;N*rX!w+6{s-R ze;Bz~oP zGZh&^?3vnY-^@>dIIZ3`6m&JjpW8V+7~bw=fDO_Q18ucqY<;oW<8A`eM!e^aPQBRt zzOnW@U&Qks;d{{4hIXy!>hOC$A*lkN*`8EZt8gY91%Ol46TJ$5H1qkvy@7QDsyD7d z@&h|?Wt*c3pzFr(B&J)r3SfZn4QDcrbH)L3l09%?p8C9!&?^^<%K@tJ(ku=ZmK*V@Dq0n&%8ps z>=3me0AUf4$+f`2hqLou zmky!FXdN6dnUAhPz@ErVn(Z*d#T8A9s6WC7)`Gce*WS8OQxn!!1k&4H6-hAM^V6l! zwWy*njile-Uo(}Cx31S?P|zi*wKkJ(dN|jS@{8t}YMU_+Q#tFjb2KYB64841& z|Bf!YA=V!4?blOxSuiGqD26w60U2ZKGQCayKs^;Fa*u4;i>!XG1k0A)8=<68lNBG-I zes@k|u3|Ik<|TJ96&6FiKQQa|aPyS#Hl-)qBGi6o=}U{JeV>zxAe^On&Y^-q-0nhd zZP!F*<7?e%YOZE|@=mF_-oY$CEb>Q*ixj}2h~7l{)rdy=ow7AE%FLKR+BrQsaohA| zu3Q-}Vi!r5KXk7tF9d=X|!bUI9P1)QovgeLb5O-YC0dyjLuCD_*y6`t*8lvzYUFmF+|; zo}A$XGGq!YP~dZ}X^|AmNtF4GYb-whO58GZJIoS0@nunhW(?P7;S>jcG|b-LxgfAp z_)5z%{Zv1yi2_p+6NP0c9ez(_-Aw({J8qKk2&0(|MonLrRQjZojQZzZ_vF>%Q|dCAUcD zPC#iz+v5b8nkQAo*`sr`oikYL)Yecb z_E`4s(eZkF3V%wJ0=v*79?YiAD{$PCJNOrXoaXZj(1GRYQSrtIg?X#4@^xT!svPN` zb12Z&c3N8O-M4#VU-X)+JPm?L-0nTol_&)?2Sm)rRJz(wfsPbz0|lxU@NDN$x&o5} z^lv>&%RFAt?Q(t@z)E<*CtoMnMsVlVx&!x#e`>cJP6+_avy;TQ*`RV?RaC86W2~aH4<;`QzM!X)A8Ia47jy$qzK#<^W%*J!oot7x5cnf2#Wy_V#^PwgSm&Il#<^DjjDF2~rBT3S2 zWHzhR<1WDwPIMBZiR*~o)Dh)=JRdE z$h#IpoShs|S{A=mF6)z5$50rrw;d1)lT%+FbZhbixD_xs7Xh`7K9A^g~RNvAFpD77S7!t8N~i!AG_eOVw1`?u?94exaH0 zmAldCPlyv0#rnkY*7B^NuDevf#sfk~sI-BoHA*Ln(^1c7+5WzDQi)4*$i>QCvm&k4 zO7N1E@4fb9@mT6o6^%dZ+n1Ep9NWyN)N=s&>xJx4R{SvaH0c1!DBcK3b`YS&hUi_w z=+=$$+%4wtc`WaL2M1<(escmji(deAr^4bbe?`;E7-J7&`#4v<$+To@Q}}udF3~Mv zrIh^F1PU+r1GP@UzFf4=9yVZuPNxQJfx4;p^8OTEgQZJfImP-*F866EzB6x+vRw4o zEuf`2_cI2Hi1+HuFt^W1ilR*xiitMTh)-vBzhv_Phyphw(sPW4tZ#vh%kCAXa&6WO zM8eyZh&KJ2_*V{LSH=gcneK3-*fv{gr9V`7tEEA}D?W)~$m1@OWs}^^6b>@hW+j7L4 zugVxs|M=Iz#r5!RuE5(jS0r4pA08ZNvi1`Wn3CbUjrl~jD|8~Py&CDn6vL#F%Cp;% z+?c@jG=h-l))R|?D)kD=?ux(jQYQRK`(nmTA#`o;OQ(y_9u4p!yeFHc^=vJ|@raY2 ztF5-Y(V9D|Bq;LDsbBVE(D_-k=LESz z%1jDEGbRJmwk=ZK)pCSoMpfQ5=qnV6CNHji{||#$FPkI$SWm-T?t_!_-7I@sW(uWS zzl+Cu>}WIieFa~JiMa6rFDeewimnYIp^*!k>Vo83R^;+UFWbmAXxli${mk=h-ek(A zyrO9K%SQ+Dott5q>3+v}kzx01LEBm>;TBedt;VP7aRx%sAfq3@@A8hhG*kG@((cLr ztVT;pRke(6@d254(Jw=KO-z23TCJz+bP;6epeNt{(5`HrPK@xwZ^C_}pUcuO0vS#A zg#mj?mzGPNNX7|lDdsjW?c;>?j$3(gz?dtw?`|!G*Mr9i6Fl3tUd>6~Uk;|RW`TRD zs8%t!4B>JB?b>T{p+%~0CdEy^Cs6OtuDzM2++XFBb2l0J8t0sqaO4gVE!NuGOUJ=% zJyPe@Hu}($JNn`kvk;W_^}W=S<%~h%5dVW zDT~uGYFCuq*_$4b6<*+z@;%_qp;w8Aub)k~cM6>Q7hcg}&Kavm z_}y;>toM_R*U7w}{E^ja`kGafzGC8{X)^KOz2Ftk>4U)53h8uzq%-M6&_zShWW_%B z!`FLJuvxmZh*`x^(3BW2MD3sh&`xQSy!ox-EhDP6KIL5id3noNG=%UdkMLy`uBhxM zP3P=Pk8-VVT6vJB2f|2QyKhv3mVK)qX6qgm)U!F?8dNrheWLPklBM`d0Xj%_%Fm{$ zvntRTf5(O>dS@Kqz6&M+MLJU0=p`M8Y-hxRe9YD{4M|gYSF9=}8EU@~Nt*uSzMF%e zYsDnb?~Ixro&A!%fJY7AXb&r6{*ylgj@7>4ipPd|1`_{{2SzBgKks^!brv&irl{a%LB^SBzQ{7P@o++6Th1r;7 z94Y~lxyj&F8&DNC(Q~bWe+Y5BXXD9~X#mI{tBHL!ppN1Pvkp(p{0`NjP69Yc^Hkay zS0eTx@mmZ-EDTpZHq!~{`M^t=2cY2x8L0>v^jzg|GyqFx`$2dr5gGLG9WH$UJgy8p zIlBY{5P_{@GntOPR(_{1Y#88Z>SHlHiX&_xAAOUUZC|>LpiA4Jkx&7D@Kfc|4z#^8wCpYQBWroIZqk8TPVN>U$Nk1j z^cqGLla#|XM#Iv3(egWfSIb{H*v=+^Od6Y=4jcLZ>+x%+My3`pu7P)ir`htUK}A6L zgKg@Jy;56u3Hcu2a?s#%dg44W@5oj;^53wWR>^Ry=6;IxRcQiY;xtV~pE>&e8|6JP zVy#@KnTKfbA?jPbp?A0(c0Ec97zA{I>o7j^NZgvVLRH+M9OHLSsyS9-O zDvMu}nr&|YpNndG)l;(Ckum4Vk&oe%Ts!?Q>8<8VlGKxb4 zdJHcIHL%8^L&AGev-W9^X!X-a->=7}dk5AcIc9!DGhwi^r-?`hGmD>(WY1cuwq8OP zIb%Tlz#ol)ATjRm-~x2DyN0Rpn6{{(|33`+jV(xp0wvfQ$hoFt^a3%kV-~>F!QWLB zGRmxU%z5j2{V>6{6l$$~sJs>y9#rEZn+w?~1mn5N7VTcb$Awh7G~CChCbzkVqq8Nk zP?Y!JjqKdVs`W!2gtJap&R{#R&M^}cqV<5;&g756<=2BCeD$ z+EBL!SS%iT4Bb-(Lq%n|PZI%W6v21x);L+mPl`{u>vuVe)Xe$>SI)ctVet7elP;td z3oeZcUya>rc|zG275LIfQbH@|kBXWeY@TA%*eC4*%ca-?(d}>j^szDhM%n&!p6~t= zooM)m-K8g3JU>T$B>#S4A02;}5{$fB2vA=_X@krA0-WbMkQLEY4RJb)`BDwEbqNdEVStNi zrMP*e_7OrS?h*4tg=PW4F}m4uYuJ4gaUnrq7TFmp&WG@+&1p7P)XtwDCofNPAv@NV zR>K_)mT(tlUk?hCR%vtPsvsfU)6*K&4BCe%Q5doAc9&cpTClyvl?h*2CX2(4o`xFIqO|J=5C3? zVRCdMOKtM?y{XR{$7rv{ga{&trK8mOI!4HPA}oy(f)v)y;2%g>Pb0U8~srxiJp{V1SBn1f`}1u zFGNFZSPfN_8Dz&gHe`qT@WF6!G{-V@r@cr~y7UQP@!_AdYUvihWtEueSyZ~;tTr(D zsH$*@s;nT|o2ex&jh%h7A@+M7{#AJvp)x5~+H$~o<8FSs$*`Od2%%S0TZcY*dst~D zB&Y$iSsU%9OTCK2!u1qPv>aG6s=c?Tgs+O=tAGh-odhiC*SroJv3>Q-S;a|_pOMKW zn%?=U>a3Zw28AODpLB(=U)I^X%c+UQqZz7_x^dTKL@?l`h|~Pwyqr;DxxOymBq_+; zru^dzy;vbYM5xacT->{*dRgp+4|dncn**Qqv;^*MB=zM#X9N7|gcx4Pms{*lvE4=l zWG)yriac_M2jDE1+2WFJ^^uDFE%WKJ%|}_p?ngn3%_epcsrYN9N8K1Ox-1Axp02~T zdq~@ChTwIH{=KDo+wM#BvsPaQp1kh=gY!d)2cnzP(u&w8SY}u_piWzDqK7Dq#`S?c zeQ~;ooq{3i$$e~@Ve8RUd$>tn`QNqua_KeCtIl4>TV~~Z5_FJVRDxW@(`S9_s+8Yp z$eryg$L6rJcB^i&f6NMBF#*8)SIi##s$$Sa-I~^cRb@k(w5?1IW)r_GG`NR*IR^Mb zI2vlise=g^(k=F70Iz=3 zwRR_vR>?=v<=dxYhzPo08O=~C_3!D}2~5TQG__76gC$~WdZ+D8gpxw%21s&|euQOM z0~d0SQiQkK!d5MsiVp{8cNFd=`OLezg#VOW|HB~9k3aZ#@~?a9(2yyTzPoIB-DOe$ z35q*sogeWe!e(~F`u~CBZL{!sTusx?8i512>OuYb`z@xf{G&9m=C-#)$~SjEfxrx@ zWBP=J-i9lfR_Bfa-X+S57O6+k{f0q){_0;83%N4vc?xb{!eYL%sRWB6HcUn5@Qs!X zE+}|EOl>&1sw!9vCCo+5E-r){cPE$5ji)wv!f6%s>GattzAvR@s_P_uwHcrgjbVK` zVE1w46)})6%wj9b*>J7PUf~|t*ZhrvVOSLvX8?)UZ9kdP7pI7;T_drcd%i;|HMR@< za-~F}6$|2z9e0eXR`EO=-R}DP<;=l+3(YRe)(h=;P@=-dgFo6{N@}GOl066o3+CW| zXrGG7;)P&&9V+>Aesy|DnA#1NhC=}5CVmw%bQXu|NLC2z06i*`+Dv^Wa3W?ZPWM7~ zgdSUHnOkqRGN~@$@&8)2ycY3lFb>0%glXK(pYC5kUl#tGx!hV1L&^%cgfRe2=gDb=j_6BeGqf&lz>}^-tQ?DKFf~1TNUMo zlDU9W5kGvkIWGCV28^QC<~*l}3c#Pm#UC_we0)BqDWHiB-SczBRoXC=BiVDaq8Pn0fAiKe?YV%b%060lcCpZAObyLu$>Ba*}C(RIqP7 z9La7GUnc*A<`WzAQE1SHPE$X<>~QqM-kA5JS{Eaejpk>sYwp9i2B6~ZpWU*EDxEtS zE&ukl{W!lzf%^U&?b|Sj2lG0bEyY2=X&NnGRZO9VKjH8n9=?g&_HYDbNgwgmYig@) z@$=4Bwd%`p7Xcs_eTTlNd5PqoTTiw2v}-9xTgLpo7)*HI>5puhkj(}}o7OH$PhS^g z8{wN-?D5WD5D06DLyJ6BwX^s_WpIlOjdCf76VC!ZfKSU!5U3C|ui>qGqxj4#f)l1Mw z04^b2$B=Hlv7e&aoBp=4zW1`Kp_!~0s_$?<2SvG!$*%{1yf{Biv0px_4erD0XjJpP zYiF5na2i>iUJ7A16tKqa_!WVyT)Nf!r|hD5Tzqn11WPXHm(9i)1$Qcm=g4%T4mV5} zy-bMfXiUM+Z3j<|qZwcc<*d%O<_9eE@bSwsqi|6wfR zzj5G?B7P{_D=BPj&y?E}#$3<|LaCo{MzWUm_YjDirZ@adtg~ZC+{mjXnm$;g6*Vja z^4-<-$&C%lqg&#AO}F7NTOv&75<}VULW^&YwxnJ&mD10qdAiPX%_0)7U?oi&GrW+J ziSPxf1@T+ z7gYn_2`SKNs#l}R!_dJnTG7d>oiow0BsS0KxSDRa>VBPu8yhi)$A=SP7!8xw z5*h*?!P422J2YN|*hE{9s*wVet{#Qb1349aWMR(bsNzbOV2CdD0+77PTMvpYhX1)- zn;+{zD-uWAi|hj(SW9oWrz%}sb+6i9&gkjm3S43MyTl#~diwr>~ToZn+ zh-_9^b3{_540$mpM`rXtO!lQ`MRRUq`rT7}WY=n+0vFNzfL{%YllI?2qM&=$Q!BJl z)HcA*6@Xd#mNRCh>k@QgGGKfTrvk-XM6v>wYMm*hvj~=xd-^xx$Qk0^BK;O$_;6=W zT$KT(6_>&@^Jba2#)^Y2!wE^ns7ciywiRQ2LpG(moY)SP&6$*XH^srEOHxf+Yxw1$ z2=@Tmk^+tMz~JE#(WDUY&dkJ#JyvS`xUbA};(l?-xy)LL@}e&p?$x$FRJ09yo;^L& zi028`qyB}G(v??#nBv$_tzUT6nftZRMFyZu)+pTr`#qv-V zKgp3_*Nn#{G^TgL-f9%L^h5GgeZ1T%o_xG|Z}^ zd^K=r#HW8;5cXXR%%TL3)krs{wQ1iHJCUHzP4#&x}Qz=p%Gi5Nx9)$XJuVsf*DG(xFprL@03TsW`$s{Nw3mt^EVY)#Wce_XEDab^gQi znlwc?dn4}HFuqOq+3aAi2OGb#uo=sWz6>_*;$F0R#QvoWBHqj5f*+@fTTJlzblLA^ z{bD4&`5pAG?TI>{SahP+O6I+Ap!~+w3cEug_Xw#+rc=jkGuqxm@k1~M;3j*cXHu&t=_b2G~|r@pbzKaNu(qWV{^E)f3Y%1M0C|C7iBpT-3FPIPkop)@CaiWgg#f zzH}y(cAk_s+ex9zV&pmgbwg4^f!PDqxFdp&A|G19C^j1zmyL?1)T7K|A}nHuXzP?O zjyJzmZfmF-lzlv6NidK`VQkL=SOu@da5PfB4RIUmj^cl@@Nf=x{>rxDWvZ+j7bH@a zup~Am0szcUg&qBgnksC6%ONt$*1&AtZBmACLYe48I~;%el3(*#v^pnYKl`2j`G7yO zPSZAc#rm5Gyrrr{Qz)x~c0|gM_@hgH_Nzja?;Imis;4uk^SXph6YpoWOWmBj=#*?Y zhmOI%D6zMrtv6;;C6;ka(v^15`V>4@t>GL&yL>z*#^bBq4|9B`n5`_W%sbg|2`4t( z&tX$*WQc9GJ$B+wG~Pe*_A2g!l}hCpKp<9nif@TM3Z=KO|1V@FYPGbph$qJxBn0%@ z(DJl2clD3t+(cB^-23;L$6W|t!F}<`WL6V+3b5H16!aZyx!phEoAQaoKF@_of6xhK zgsW;MQ*cn@rvZk3w#m3Q^Bw;&_w~+R)i4i`veh4Ao5TiY&3xT=X!6gahws;jvU)}x zS47b;Pfr$z6*h?AQ<|I?jnu+z=BM94bb}un`!Sv4=NdHC+PAlqotIbF+sOdhg58B@5%=R|7BTpa+*?WJ9&)qi5A-o_`VYo%QI_LvPOqCoO46f1F`MNUlXq zmX29S&NlF_U6ZU@-B1O=3+$E4`+1vdm3&v%0;e^>MB!-#hMN*~1B*vVo5!N>yuu7w zKXFlzqc`ClH){5>_4Dzkq*&o3k}*@(l4BN$9FKsmyYsfQ)x4sbgzXND`|Y{uc&SQb z=&j5(?c7Lg3}-pkrbt`|-6wEg`(@IPc)&kfR82(jJ$0XleooQ19Us};_lw>XBueDT zld3TkvX3k&iUa(@vGQJMXgGnFXh71%`HkVk+;)K0gVuy{$hm2cR>(Vw3lVn=^uS=- zF~u&!dBhj{Sg0Tiyk$|i?aUV%K92bW*uMMm4bHnnH`(!<3nW%ZnQ$R9ztgN*wG=R_ zonv|%Q5Ey$=MZXLoB7^Y9@0ltZhMTv(uX|1=pZR47F_#CSBy4Ik3Lpx=?4P7$b4`K zYR+)$Q5|347QAiaCJ7n0P-sXr@+$;_JQS?p|NR>L@u8i-IP8W0)_(q1h z{ui&z!AmLUjX7R>I>J<~(2pe=9#Xho*Tp^2L5MZ*mZ}k7w$+!onx}K{Y>QAkiC6F| zf+Y`T_%i72!~1hy&WvmIOv@znlpb_x8C8SF=$S4wBvM!dZ2QUPJO{nQ`qBVZ`oPGF zlSsSLJQu#^g>5)x8e@BCA?vvnfL@v4)_1kG8^|~2YH^lAd+(f82o_7c>4dU1!sz)P zGn$*WA;j~MhlvBC>jCb2&208Gos6b0n@>p~pq-vVNb1S@&7r|#)CYs=OXfDeC%Y9n zArG+BKuIZIE-q#Do5?Z)C11Ku(E(EzsuRvz%5!hVd1;>*;IcU8(udg`*IMI*nLB5lY*uE!5wG@b=9m_-&uaCey=0 z#Fo{=7~UG^Bd;k63-SgMi0F=4DmzgDMBN5{{STvpBk+6*f`6b$dSDmm)82sj!0&g> za9do!BveYwuTos5#(y*;q}KwCAf_y14je6vYrfNX>)KyFcww$vie~ou7P3Bs%$6*h z(q0lKdPE8=xXb4MquK#S%WWRgaU2e-COOzZs|>gfia?V#*PH)ge2Musp!)d2S5VGX zqBn;%zoo2L6XvZe8Uvsk{Ba-lKG_*~bOgZ#YL9YxfX!{}S1X%++TZ*$hnl6bC3 zuH?azM6w`m-m64^we>7_DQZdv4_-wr%2ifbwKZGfW_MMVJd(a&#I7Pvi_j5lhliHTZ^*?kwAT++IER4Z$Uz zF!0ef`fQ$JUczo>HUCRis6T&>$2xU-Da}p12_3jNukga@)`;*#nTg9lQZXUiMhIjH z76$aLyQ_vdx*eZ<8+HA;doGDOkQL>qTF-xA!mt-zpVO81A%~4w;xSp;Uu98Pr{H?C z9r-?m;%|Yn^P$?u?QM*J86#>d$a9Pw^$`8b+L9Y(W@&EGPL9FuavJ! zXU1vu!7pyRXHK?zu7d$nxQzbr*IL&UNkZAj=lT*)i)UHm5^3}hP{40$9F)rePq75~ zx6Zqmx@*H}lZ)P|V)I@<_~s)`?TX$tej{oqz$_g_OV=YJA95uQ@1-u#)ZjidQbEd4 z&JerUSg4PD>4pPtWS?ABXJ^^18ypK)^;f<)oyk^*JniFwll(K76Uwc;j6VeL(iDjX zmvf_BA%IT{cG@%Or3}Pd>L)r$GphUkLM7m9(o@p;gQUVrkuG~yJDM_UdJ~JsZBWN8 zC}hu=vy%5P7F@d`Y{+CUqm=or_I?0HH}`SJ`HpZDj%;z>j_sZU%=?*5kadH}MKy6M z<{kCeB?J%56v0p8Fx1?;H9yk=fBe_?HmW&p-t+04gg;9ZQ2H`hn+n{v6^8GWBHkml zr|?H*w$l5SknX!J5b}lA_$34Tu2OH`Hg9I^eS@gTddby>nQ&v_&BU`oQak+EV)!Xa}`BRzTv z%rf#(_(Co0XeoH(*JXc2jihKOtoLjKngIOW95-MO-m$H-q%F{l#hB67WH%_t*?{qOSc}AlFc@S^_*bS zb0!$u4X}A}#gqDSJqU{YxwYTx;~4bd)J}FbvQv&_KDT9Oy8+bSRd3Ga1Bo4`J|q-t(nZ4?_{Y|l7PYqa?`3b&P8B@w3LA1107iDQi6scy*%aFu z^u5{9l9A&J-jKzQJJ!gj)l0IY*3|d?6N38}W{)cqNMs|2Arvd*aeZo}AInkRr6%Xf zvm0M!wWxSkyLFS}0T6HM1jkh{?QWbDdglvy2!W=(kZMr<#v^uRc39Y|7&;b`TA@y3 zyU^YF(N%0=Qw}+lN(Qocu~i^Nd3mZuTuB4e0;`$nO-vr?-R%>}Q0x|eE?E9ZoednX zrJ->vBNSJSAh&2b(AbVmV;h^vS7I7}cR%0j5;ekbA{y_i?GBT?|BQ+~W7#b0%bw0X z={t25ag#p%arJTv^lF(J=oCl`TsXGSg-y);lD6$!A2fzz!+gequf7#q%f3c!iKxJ- zwNqk@_ILz}h^u~_s6q$M3p$oWg#usyJLf`d=y|}BHvi1PW_SB^=FR2f_7@xX6|&=O zSJJ_P4sN%XZ9WI|;_kox!w{VlIcHtfeTeub@+@}WDEeGdg)~5T<{Q=!E(6i62|A`t zY<=opm=_lpyARP%p4pYXqqe7WmOV36^R57e>k>c$2@efBqTh`LAL;g?AK(md_S{duh8Y}sybz{M%ax3V+LCPKHG9v zZU0eL&9&QX?Z8kUkFJ@+an@AihmxX}hCW&x#?96w0>)I*?`pCVR17;ju_yoNGe%cq zgF4vrYQObw)-XnGZ<|h5C))7@HQ;|VX{52C$T+Ibi}_?ObVoUPq3}jzHXs+*PLP74 zIA+UN=e}jV84Zo`M9%jrLl?$}7 zacGUkUVLcFU(xhkzsf)0bP0!zbq;rs(HNOvMNxcpGIu;T^dH~+@T^*<@z$M|?^1+4 z=_es|{Z+CCGA(UZWgM6jVpF`3ihR6;ed?F99#WLS{k(YW{Vw{~@$F zcLw)x!Kz$76Eana8n^ffc?~*W5Z`GXVl-hV%r>1;)F3v*V4BW!Wvjil0+- zigq*&CI2T4hv%Mf;mOM^1+_+^`FR7wN(5KW$lTns+Von7YjGPGg*+^7<aztc@GEmB^4nO-)Hqy+zp?hE#;sObgzE$*#~N+izYW}YF!TE+&6psHOlpI0e1p#nMX?X zA869e`aWdol*oU@)GBb;Rpu_If_0xEIWg<%iY(e@Y^Z!QAlnolBRZdM{ z^z2F%TZ6|zr%w_OH#iI^aNRgN)ssWS2C{ndyuCp`dQe&1L>ZWU%W`fr_ZPhA6HsD* z-NyViST>u7H_V(BHdV|xmp5kBw8d|~3K{7K?loA~Y03u#Xgr~m)}0DeNZm%V10o+e)Fiqz)g)fwXn zBImYG6;sQSd3M4YS0@`|1oif<+l?hPC__VpudIJz&w~CR)}H43Re~Kt;hSm+S0!=> zBk`$Ga(t(Oi>|OVT~?2d7H5ZaPa7kz1UMl6ROu!XDCg#{tbc9qgE~LM-w@hg*jg>L z7k_)pPzFHBKT=J6i!^AnFiuyfY9;PHHZ;Q4Sh^~rLLJ42dV9yYdE%l>;Nbgaq+z$d zM_Ov3*6D;Yta%%-YOT~QI}$k^Y0aNX7H5sN^c4As<*^FL(J~|b(nosw6X3tX3onS8 zRO>zMv{G%#?v+6uJ7&BFWme?!Y1(G7s%SR>^y~So*zj5=$KhU{6B!yBGr}a)Q;*JGa0wiN&~aXEW8!Pw z3UMxc++b$ zMx^_k?WXJh0JL|3t?yPCbjVs9{q3p;KZSfTZ>cr8I5-tEYY|+=Vs*>)4bE$y+CGOn z%3$5wXTAJ%Zw>g;(Y0MN813DLSIfX3j}`Ow*M@H>wnEfrSiWQysWW+fmpoG=-m1lh zU%xeKq?)rmTrCf)!d-xMIi$N ztwtEf&S+`Tc|B`6R7AALtf5Fbt7~wwL~+)r3`nG}HD(Z~fpN*Jgs-_sjqVyYEE^O@ zc_S$sy7!{tQIv5}2wP|#=Ei|$B*!*ebKuZ6s>MrOlK7o zgn644w;ukLi-R9GLQga0;+y7fY;OMo%#k$GNaLsbhy}IW=Kz z_O?po(rqof1Ep&i^6pPD12U#b>rk}B^y%$WOB*ohiiua`JQK;5|wT1Dw{1WS15q-+P*oq4L*o z=~CL_Om5E!*Jy|MkM*yq z{tjt3YjtN7N&>M2=YiI~w;{vcZfzf*@n$K}qh!xj@b;UiI+-nCXqa_iFl$2o-%_!& zmF8)Bbj5mPcJ?-UOmWDq;w4u%cKmMxvo8m@~qv~3Li9~L47~`+4P|`dqw@N&i!tLlluco7(N7yQk zHf;Q_Fu_%!j-C??`I_u_eUHOg8r-Vec}(BLamH%3_rRO0m;)`!m-IFCRGtx@5Kjm6 ztSi`VZC!_wI;Qi{cYvg?OFYNySsYe^h9MSI`I{yHLavmc1 zed295Pn^#bcaX+7Rwq9}#eD}Si=?o;c%IJS0)F!&0sN~A#GX31MQEDQ9tj2;C^L%n zC|1N&m8_aQ45u}%?bK>$es}yz)dZKODQ#BTR6BlAj`ioeigJ0$uU`G3mJ5#-PHmzH zxjhCCIIkhPjiK_;aDV#MhBA|kwm+rv*{Ya$%eifwtRVKPO>^@B&{UDR+EnwJtYbT| z*1Rgm(9s5R>~L@@WIZv>N9BcMPuueG$E|Q`cOqgz0G?_o8>j;!jfVhcf#_>Qt{!7I z1A)@4z{9^vic4YDPc;;qk#MJ_Z%#a}=2CqNk~%I(dD&RVT59MC&4wI?x9(8K5jFmpD+_ura(+2)S0g;N@()yK|5_@yF#<{C(i-&jRY^(e8ZByzW!zYwfV|jO6LX z`^fpq9@0)xY~%G00$5u=E@H`gD^yFUo{ss^|Vd$q!xeAxA` zYtp_Wcy`X(HE3f(qdSfW{#D;vRVe6{&cEJ3`R>c$KZtb!fo-=Vj=$knE%IrQ(3tPLGJt+%+m4@&LE(FK)i09CPF_Q|o;vYcUM}&+_StuaEGr!Ry*V|BqTD5` z$9e~r>e=GHj*Tu@UG91jl;s;p`WwRk0JC1dC76+&1-y&7P6@_Fdgi9S{hxJBE>?MN z5XPe?Xdu?-f`4g5)AUGfWdcJQf%9jzORav?zh! zRyd3A2ioa+Ec+)fJ06D^;QcG?57-C9AMq`?(+TD?jA!U8;w!%yKBDr*7lz3guc-e3 zU>NQ{;V`-Rh(ZHx=Ny{xc#ad6RZ&&k>6JGaCoS%NgkLw9t^vTsW3|7Xqv~-tDA6|+ zu{>jG&1bL4X?&-EVsGSY`O2HMMAvfV@U(td->8qo7wW_QUS!Ap^lP^8ow~zsa@=lZ z`uDDH#F|-;Ues9*aXS!xq?+6C?A}X97VNZx2k_>7UQ09w4qN8GB*)HQoY#XBh^@Ht}`+OjF#_!{w@4YubTn%a!-Ld&7HLs7am zeHrY(vn~7Se;9Ovj#NqevO0BP{uTOicC>2UNnHMw`C;&K^ZPsEW`lCW1MLbwT>k({ z{YkZuOJ{8+cxcrAU>f{KjH#uIjMr3tv4VfQMt#Q)u{P}Krhv&cTg>KgW02dLD@g{#ZKjB^@dckKc+aJ=s@AlJ;)8d7r0mqWL{7E(Q z-Q=3-b-Q{RK<# zu4G>wSe76%wn6+2VE)lsu#?47d8Z(8p1zfqYa3Kk@;-Assd=cQ#%=Wd(U-|nUhVLo z;*`D>w~E;tAxGUfHR0Bi8>x(OoU3pLdh|~W{4>|5*>U7NXv1=n2nM|DA2Yj&`BxA| zl&GavRz2Qd+8XZGO~%?b`lvtBn|b?EOB#IkaH!~VgZwMXrtpTatBIn{IIdS-(dD(? zlZ*jfGrHBI<1n~fCL&5H-1UDF{7!$0Mhha5!wPb~T7~V-PvKcDYS#7_DjxzgC#HG| z^BoURYdgqN7r@D{U4}bruM1zw?#nvHNa>E9>Cvlu>9OeJFi^vLDsbB8i0ZR$xs=Jr zKh~qSXxcr?P1octaO%ScIHy^|i&X3le4aYD#D2S$Vfm#LNUP?_(+914@4!R}rpvHl zk0DTw)(cUtN^GYOMdw*+v^qxG-JG0&QB)csaI?j3p`dwevH%J6=kpkQpSwQHX6 zOg>MCERz@lG5o8d9V_hc?$lxEej$j~te=}O{ADMT;k`wVPa*#R^b=nS>Jo0aob(&d z^RKu*BTeM^KT~d>xo_la;j5$j=}%(E`PbFu{{X^ghh1K&S8+M0Wc$@S1I7hL-1g?X z#8q+EwLv1|rCN}1YO~a`%CdE;Q`PyGt!GHPNvSF%HPrZOZ?8Gs@$*_f*ACj2vGHY(*mY@F z93Fo>*DG+pd-Jbk@M+JQDn?wYaaGxS8o46#jB)K%FLMO>&mim`0lTNPcK3{5%~!+X|{dYpA)Z(4oo)r1|jk83C0t$0rZJ!{>f z^gcrw4Q@_4QmXq=A6!${@)gwARCzDVX%vx+H>Ew76v0{QMY%O#7n)9|p~~4f z$}h15pXXj__d(l&Cp*$|T7o$&9pw|WLFAE&jWx@^EL9B)gNt#Zac?Q z>iBMN2aQTwPeyr9i!9pDUcZElY?P1XSgZ2ackzPNZ2V<@5OD5W^EJZlHS6IjbI^pm zkI%DeDvma+7e>kL+Y$j@pYZnJ+p;h?+S&bU%i!gKJ!{Z>8#k7#+qHA%5$2@P*^
  • u%SL~w02vxIIiRzQf>za~b?T3oFQM5p4wX^Yis-fNKg*Cf92)25 z7|*SKnF(_xWBDGn7fP#)kpx&-MSTVPKI+Rhk9(&RgABf6k7o4zLHz6Ic5Fz#)#*P2 z^`_JOdus-Nb##pz55TZLr|Vv3ZAaT-W!-D{A78>a&!}fKWztWT{Qm&p*w6i}G;?F) ztp`=cQufA6L&xz(;f8*p&*fe$xoqd2ze@U__Nmdvq2OB!@G#aoglt>UTrv^)mHeyb z85F0>+pp5O@@k&b3l#TSA9KYNKChZoYiU{i{{ZkzKNB%)1WaTH&**E4nMULK*P!aw z=IYK=QQM9^0X4u)`@mRn-}%?IF2~N(lX^0a%E1f|zE9^| z^I9J67N*xV67ktb&4XGN6Tg@+O<_XE>T7pNjJpmi(xk4D+li~m7VdUh4easEts7v9 z^a(X-@9o0O+m12+0M@QQN3a(0CP&QN*IlP+?LGh%(d^*gGg_nbY{NFMX;V{tqb+ow zH1IM{YU%V%CR01pIB?x!`qab_*;%PQdFvy)BRbKx;Lgyo_+ zU1{gK)E?q*_07R-aqVANdXD zbl1q-IFf8|Kj1kB>P3AQuItvm572J48;py4bl%FnPoM+b*TiRdu6D3=zpo?q{{Rm% znPKBB^BbgW?S9=^r>lwiG;@uT#C9_J5ygIIi=f@-)gQah8*D{5uYzjn{{UV`O5bqzua>`Q zUxLUr3A|yaF4UC-ch=~*-PaNiewFnXnZV|%YE}^HmUCL%L?(h|DCol=gV#0XQma=B zQB{N6@jLN2b&92Ky${Pz6KQ{ExJN>yXYk`V7s9odO5RIA#hcQ&*xrCFwX|Qk@(@ImD1WxzcBfa>t8rbxFjA8 zde}O?(+vq+_Z)d@Nf9dbr>uLs(kl1wQ!4%+g=r&bh_UtJr;a>hwF;dDT8b{5U{);X zk6{unJ*vv_fGN9n)0e-kVO^$O~i>YaSDpgvE7;aD<#N#k1T{12c>uWOdp>N1;we@p^1T-Cf~mh#(wNGbFzN3U(nuZ!qxmYt6sLrBy#LZm1aM>DztrTQ%$jZ`>5kV zlE)RCo|j`fF9ql(`siIszqyR(o}Qw%ylty3t+=<1zIGTOb{(sBC}PlbU=9^ga((e$ zU#ed=rGF&HoSr{EE6;`NPnqnAB83km^WLq-n5ZFKDD|sxF7CCgq!C1_!Zpox-wf|Z z+b&=y8-`SUGEH&UEww_{&w}J@O=2lQ!0G)fma^ui(X4kpn$`FN`Bk~TXit7IR4m(e z2Z} zc&mOQgt0qD95pVJ3qfNrk#o3YdUUVQs5c(Fp9PGKlDWa(v9-Dg-!QFRHY6*%s5M7Z zht8RfFhgVYrG{f|j2>}a@VOI?h}O6W%e6)Tu73GPm_Qs=$#p}*mE+r*qj@s1%8n0O z&PGW-p#&ymn^0i*-V$p(mJ#kr@F2~kivX-eI{3G*NyqNiT z&*E#xziE3pH2(k|OSc6i%X;-c{c7nyX1z(Fzj&GUWmx0CLsz;>2thFCzdem{=6P*&tcW3{K>V_CAx!Jgs%84=ao|( zIA#O+S2N-N02gaoWH&a}8rAAWAj2n|;bo7ItuYo=G0On#(Vv zQjatw?wP|&4x*fIbMKG%C;tG5Eu#2eabnY`c;^2ASCO6o74?tWqmnbUWOT2C{{Uck z8LoBPSpogbjoPQ{GXN^J68Lv+V`~=T$ z3m@F0KgUee<-BQa}q2&A0w2LOI`z}w3v;;e9@y=TH+8Gncx<+g<%%Ph;*Whl3KN`)2~2>AJEp%gghTVj=V{0q*}U(?i?cSAPk>;(H8ei@?^PwBM#SAxV8B_ z%pv2}y+7dB#|>BEUaXf^%+lJ11jbtc^sh?SzhWI*!`>F3RF3L9yNFYJK%kS19P^(+ zUpL-awUxu$$_f=YDd}4|&YI>&JmXIl4oNGc-oI$y+FDPI+9jpAv{)Jr`2_R;_V%xv z-DUGePXKnSiw5Op4aHlIHZcW7$;K)p%_XU&3?y*z<)*YU)ftx{98=_MC><+BVQ6}c zW|{q(X35VjSLk$d%dwZ|fKNCS!#4boD^LCr)|q7a)pmk;U@IO$_HtC5_Mpa5w?YP) zw-Qb%KG~MTbf--sFvmvkQ2Al8j!jZ#EOV-iZ3jPEo(Vj)C|Hd1RreL*p0TqoGtX-2 zhc`nRdJ`~M@UIFP7|} zu*EpVkJO4^y~AXFwH9{~gMm+x4(b(0VNI(G&}*qx&g`0vS(UOm%{$3?Bp`IF*8WYY z4=~86+fvb5-eR(XP7Q3@1HWr2n1kN@B+3#=ARi^90nOZ zYrYZY)gwMs^YWhF+Y5kn+zAQs9lFU_Z$cRSnWCjy%ul39+yl6g3<(5-v+ z57Im@s6^Jc5?({Q_>l4X*Ae5-+2t&B%a^mX%R+?i34_2V`d6hxE2CZ<(VfrCYIuQ! z`pTf9^*%F?Nqx#0eXCv_2g*>yV0Eo?rnR1-BzF#H*(z$kk%Mzdd&okL90A-WXiIGgPb8 zw2z#v#5MWb!_(%1>V9a+Vp~;cX~=LkK#`b#X4kx zItC}Fui;)p@dNf`x06&b=_l+C{{V71u&Q&=WSZ;5aNCr5@YCii3&t2~)Am)DD?VPE zZvlE!WBG7<^sb}g7l3tdhdQXT)u7nK3_ASEK^zcq&2thi&YPM@kl9lgpdR~XLXi)G^*FA_+Mjj;MJ74(&`{?cE&c1QERWtP;XCnpopH2oJ> zw|0`(R4bF8m4Owd4ZnyLiMrLKX#Ewr#d7vqz|*BwS9ud1nAX?)Btlq82cEdkHR0C4 z^GlhuO}Io%33v{S$=6#FR9OOdG$R%Q1QjAF|&x;SLhH9O>wv0F4ZnB zi54$u5CDMqCA0X|%U=^%gjQgs{*{N~KM+Rq28^jK#}(w^uza;G$)WUFws%_@g;0f0 zf5_8qQ~O#I1n|Z|9b2_>I^TtDTEgPyORf_n4mOW!xh}B(0Ao)rl{5F4^{+Pgh2w)~ zpx?n9z>TLTzpoYaI7~f7Ki%k$Cksy%imMC9Rn+*q<8&)=-q3$7WKy^9rAN{Xdk`lqkXvq8lTK_U-zbg|0RO zj%qmM^8qJ{Pce4@M>X=5Y9C=vBjIAqS^oeGRiPkm1yxxT5Tg}5ZG+Pl#mscmObp8o*Kys4fhQdxI5tv1$p)qHcFy{yB%~$b9#qCqXmy$_)^GVYqkLy+Z zJ)<2#-HR&mpP1lqE1K1vgf%~~<;&RUMt z+dnm~E?VkqyMoygNKI~7!UffVQH+956K6%@i#FB#1*s?AFvM67r~d%1zI)K&Xy%ah+Hud+*U_w5v@K3Be*73Y`q$5P zD)8UjFHe~N09wX`oMSc8=6MvglupmWvL(NWG?{~Kl_gfkewF%};n@w>hxF%TjKaVA z2(QZx8b2>o)2Acm-lD%zd<$?c{3E8nU)?YGSLIw~AK}l`{euGi+ZL}Q4JI?*q~&7+ zIi}tySqH9aQoExBao)c%N3qcO1NP{dq4<$!wBY$E`h#CN-N;fC-#u&S&)d!&zYy%3 zI6hJj{C7XrzHFL9M(QVqKzMiY7dMpBn^$ZJ$;RFzZ)IyyiGW6 zS0}IGU5CS)b2p4F#~>AB`2$>k#$aLbg~A>{$o*;NzVbd-G^x#rj88h!8ZS8dl5;l%4tH|~G``5?qAoDYduGe#`9kNJ(bi)x|1sp`ECu8KZ zOs*M}RAlUZgRFRqO_3kUzlAp(kC<1C`14%1xH82Z!b*FxkZZ`!rFW1_(h>goKh}|F zmS$tS^XprEc2nIRMhk~2;O3^JcA6y6Jkb!@l~47rPm20jd_SoGyfi;v;=DgYmDf;! z6M?%QsIQ!shXdaC2A0KwBUjAJVGo zF{58QsKC!kxZ9Nwa7HWSF;{m#P0LlPFG2=UG&t&dd)L1F7q@79J1NEv-2VV7@RfuS zl^7$FUi0v#M~A`_GyJS~0o$Rkn8r(%n?9x<^;pFgZElNPzU9L1CpFyoMUriD%qxEy z{{TARY#5foIThb{3Kc#gwEz<4NWlEXeou*8v-LSg_croBLA)-zbX!6Gz^!`E(PQ#- z_!Il81!xn-E9`Lp0K$p*RbP#qXT^zpzXWP${+T!OuZiaXyXT*qKdpV6@uqJlz@ZqN@{U& z?sdNqEekcZ&>2}!9R3;pwddC<^H-?cFZSPnpr09gb}D^(fIpRa#pF9l^sk|Wl#*w{ zQ;#E*A43*p+SN*7jyqPI%ht2z&pws5=G`?bH_egKtIRQ)nZ90?6qs!0p`7z5NH9-& zNX{Cik#qH^SMN}_IOdIuSNTD$+jiWl!nxZ&yN;dfZpKWeE7`-y`OIZK4H)?P)S-IR zG4vj_Jbs3~Bj+Zqpo9ZSfl?LpsF``|%?%1RW$iBM?Db0-)wcOFE1rE0abH0A(%pPP z;J9wr=aS!R`k$Bz`O}KJjJ8r z(s@1V_2s);%<-`0P7Oe-Uqq#)(4k2^9_4+tV$MSps>9Z;!KbanWP^qRq5CUB#1Y<_ zsHLIbEEJ<2YaIj<`K+(&R_tz{Pt|Siq9s~32aY{6S(<4(2qLsqH^=B}j-+DKPpO<~ zIL%3Ji(e8h2Cc0}ayj!OQhui-*F3s8Yeti)9M;|REj7GSHzjz_(yr<8Eya|H+>Cye z!wLHuYBAX!7C!{5;-@+F)Z$}Zxvsmyb7PG6&2zU_rVEB&dfD*XZMpz@R<++fGsMDE zbZZ{%@Pkt}{vdb@VPsr>SvBo?#i+j0r-Y1`Lcf@=nfxoM9VcG0xXuRcr|}?vTKam@ zVRde<4poM0^6cK9vacGesr?bd6_z6hEIhYgsq+50Yvw(|HwHIl{D~jZxSPmI$jgqE z>i#~{f3ti+c7S0R?)=72^RGD7t@_9Y1%1{IuRS=v=ku0%fpl>dA=WLUnUn7}de-lQ zbpxk(r%AdEjgzT9yqq8BSeGN_BvM$;VYo&I1y~XIb6%B5slmmcKZTQ}UY%6_7N6XG zP4SydI`_g~5XTbkf3f|gKCzJF@%d}xg;Ojj?Z)NL<}2&rxwCBey@v<+K>Dd`IV(y zWC877f2~;khVp3k;dgFdq2yPfNT(cEGvfO%-NkY`{lomleO#88KRl-|c;ne>jpBjM zD?!wPYL=m&FC(Zm%Okcj*vxDk_B6&lMJskaDmL%ND>GNQR_;B@YaN#p1?iKI*0$zS zL99#f-O3M6bNbXzW4{Y8c|@KREOYD4b$%DK^QIXbDao#K7`HNo7(FY$@ZF0?7z(_% z9V^kJA9m(>wkcDmEl$Hi(~b1wXv(h@=~@+aiu8>eO)=rNjL|vr zrhYMs#7@0VSd-c5s;a7^kJhQ`b~hTPr)i|vuKUZU5u)}P>c`jsPvKomQ7xUElSnq4 za6hGXp9OpxE+(7A_mSpFa}}Ur_hSc_9^~=#9`)d2v5N~%RbNfLPo?4RAE};WsbLb+ z;+K?H`Sd*p!M+o;@Nb7Lbjxv+g+6!23%63o+?>~m{C4r7)wPAt?Bva@q1|(|rKLTs%-C`4QX40=D zF5o|%c{#ol>iCA&!!1vLgY#9LK zGI%8y;*O5tc15Ymw-K-$3yAPpM<2whr|~t-hs@=c%BCKF1e1R|4UHB6E-p)#+jf;9}nt}5+Q>Hh%htefn0Q(Z{t>CG=gO=``ZAWa-(Qc=4Guqc{5 zGYr(~G0;_ICZ~(o8Ax6 zUs={|?bKvvbA15>{*~!oE7m^Ma~7WhgtW3>DR%z=5d`!38pH5yviM^|n^tp+smGTR z_u9aMYA9qfHeBVKl557qRQ8hP=z4fsc6{v6x9B*nTXqV$>T5RKel=-+yjKL^k5IL_ zrG9!%=<(QMntJl&O zU^@;4Q*WB0oOy29=1FSV8q>4sM$ojlt<3CA3X_iJy({7FgSAcEtAqSC!uWqpeM6>Z2Yy!_#W%bv}jo5q0i=Psx4epm8EkU zvE`MS^Uv*Nr-?MHE0e|>1p4p>KU(o02qC!AE^YSZS$cjI^w;efq@7E_Ww1U*``(!% zzH9JlTYKbzPDXauRvK!ZXQ}pBKi=RH?07ehtzwT*ni$s(81wWso#EK!WeXwPoiWzC zABp-{webbpZNTgKKg4|8=Z7NCqO=ao6 zAH3G4+iZo;O7yQ4Y4BTLA1wohP;=X$u76FspGTTUwUor?j1HCE%=up~=RGAE^7HIo z(!LGqSFx+f2E&f*5A~w^;g9xuvdjSORu{)wm8m=CW(VK@0IgXXw~nrEB4EwCw_4>< z#7XM3J$T0kley38nlQ0uja*~Wx%n;rbGYQzh5n@_7Nd_d zujzQAZe$}R> z#~Uyk^8&h{?@q|^D@T_T86PO!6Kt}?IyG#6HJtZ7G>=30LmExvT@9JG z0Xm#^>tC*36?Qrukm@|8{{YZMenfmdVIHxk&JGGnJ-M&ezlZk*Zwl#-c`XY603lv3 zCF*hFJ`<(g$m2DO;)ulF8r8rV2HHXY0FIj6+qt^pv$Yt!?K<)y&iL7XLMxu0>70~Z zrjN$o6j>Wj7;5nz0!+gnLsHpBuVxxUw`&8>vCs6YUlgL64~f1Zg_mM2?0|j@f5MGE z816JzE}1HS#=hEyut)2Q;Z2czNw{r$MYCi+V#0xcA^!l^uOVe?R@=~=fVJyd(n#8T zQN+6<$3Fa512iJi{bVtT9UCD}P7Pl-y<^X-O-|0oMd3e!{wmeuOUr#Sa}0~-ZVUW4 z$UjU~e-7#MLE=eaxqJ&}#&hX|iu!B9zqN*qH-+K0ywj4)RJODGGWlpquv99foOQ37 zvL+Hb{;BuqkyC0O@xF_Hi|{A=lN+Y873BC+t^xuN~O zcCw1)zR$JE1p?q4=cgvVAdY9X)DrUEQxwp)<>wvqUGIuMKI>j3@I&cW>LuL1Uz*&W zgT5SaD& zmQq2w?s{xKGO}^aMWjAfeaq2PV3(jzAEyb7~)JQVK zW13Ew;}yR#1KL2uXRS*#A^65lIhmn$ogXn;usO(yGR+@?p3c z#dTUPixQ}l%;&BK4P{P~l&+1sYEkm$+EsyO#aht(F?p^-c3@!}M!T@wXOY0JqfLe= zI;wG)#(;%j*!mDWS^DZ%^=Mn3TMtIhtL(zo&T z^r|fbFU&?eSBp_Q>9KUx_Y;+TgHzkyO=}@&n4u#F9V)Ab3!eR|ceJ^N6p~1pQMxf4 zS0&}mp;C`=uRiuAhD}Er@^UHOTQxaiJabcNUr}sKgDZ?x>lYEe(lMH&8Zjpafmdy8 zr@C#*xeHx1)4DWXW|l_bgP)}}OOwh3|c29lAR#8|w- ztEAcV5Bw(DZPu71l2lgP{7fsyz9#thP17{_<%Z@t-TqRFaz;TF;+p5e4~X70yg%92 zliR|08>D0(sI9*Ye#E{#)MQ4~t~{tuE&h?e^v!&oIAHKK8z>nJ@ds<@cx{1E4zF5gv?`L!3g7noc@*f{*(J0>DD$09-%0n zZkxIEs@Gq#9f)Egl|mm?B!4R282rE5IrE=k^~`LkdnZZQ<9-zW+g92woxO&oXXVEb z3%Nnaz{g7U$v3#(Z7-87w8Hw7QHi(N<8c>F8QweJ{d zzB1Cy&E!c9#2+#;3>=PqD!ktYwVO+p5?O+$&>E+G@Y7k2+TkJ7%bmSOe@-jvFf?$u zYEg_Os_J~bYV~JT&a2g)SNluZ+xWxbowlUjTHIQ(L^%16A%CTOa|}-kfbE+48{=p8 zj*V_CuH%v=&)jT*UK2bkwBo*BJyD%i%6|32yzsy$CwsD(nO7O>Qu(2}9^BPQm@5Uw ze+qm|7bNwslZ?4tnf80?TM}(U>ru+(mxIkPx2H-24z;p(*@c;*rkpB)_w!wjmwJ|D z68!h{t|HO4<&^y@;>`QO&INr20>83nnT*4#@UuM%9d;$$&@|_85Fs-iN|ta+pih=bo^9Hd|blf zM{c7$0beZ5t4#`m?8JR)D12us?oiC5>t2kj!+9g*DsZ(rnxuVGckyX2t^WXa7CAA_ z4>bj!#`*M>C|Ec9+}F!1;>(z%K3g_^wQ?U4O*-a$ky*O*=DBQRE)$})lF<6QPx$c_ z^uZ>d%Fh|k717yzPO!C6G}oVL&tTXU@od_#`_YoWjWv8ra%0%jGLD0qFG^ZCnnQ*t z!p;#s&G8qT;iM-#3cGz7l(Xj~)@hB(kVSm1 zHm5t#{R0a{MJ))-j9370z3Mp_gTC%#1)dY;< zqLFsT?@rU~{?RE`>0H{IsOhRKMR>PEr+TY!zc~s>#cy1AckDLebR%bV?^I)sJBfxD z41H^8#oFzexb{UDkg}mC09RY#zY6L;CA@;(#vd|QH~{1i2w`@A%i# z;po)ow<_g6FA+saS3K?O#de+;{hItm@iS1GeJ(K?1G$-$o~ItQ zz2Scb+?%JGDHbVkSxay$u<&ok4-ohc=4*Rn8x?FY&jgQrdsm@X+QyrWC8>C9ZEDq8 ziaIX`{{X>0b%~ZKb!+0N++i{R_ch)}{{RHy(`9Xqt|s>9YahqbxXa(#&&G3F5gcg} z^xPPq>0GtX?Gxhr=^88=FFMS34aPL)Q!7x$i=-?D##JO^<#wxx9i z;ZCiQ#wz}WqkJatm)vM4i*@F~rmF7RRG=ksY_N~v}l2}d7GMKLoY(=V1 z^6|R8om`lz^F(apaufL#74rV5*>V*9EB3sOSHV+A_o(}{k~;5$HiGlT zp@{pDNPqFuUVZV(KQG1CN2xsiroCtOceiQv%h?%n5++c7t6pRA>e-?3gxMW`#Mb!N z&nYH+Ryw13gk$7+IgA{0gGnqZ-9{?QFHSk7VS;xG`TkRKjCSE$ILM{is>G3lR+-c& z$0DJfkdcv!j#Puln@?3+sE+N0PDkfoL}~X=KZ7O`e4(OIoO)uuYq~geXq%8SE9lP) z+%@-rcS^b29y9bG{c80vZt>%3 zUspy+MI-Pz{7mD1Cut{N@a+0}oHWWu^8Ww|_~*ph9J&UlJ)Fuz#@PP9*1p!%E*4Ed zp*a9o&R?_!k|6OUH!8SUVb5)sg4PTLS zRb*ObmODQI%C}k$rC{8hyOn-`n&EG)j7-6XNaDH=1Kt~5ct@X-RAnRT0RFXK#MYih zp*rIOclED#3oF4N8;z&z@eQu07jYk7O3k`a&~satQT6RvHxQ9s#~U)_>rj=?TDL0o zBvp3rL5!A{WmypBq7jVMxfgQgpi#Hpq~>wHvTDk%ew7<2Rz2%O3U6Bx ztYmBKKHl2sbm{t6Akp%9uBl@_T~A(>W~0c>%`U_;bmpd>0}ByXbahX&gWjXmMjZDQ=6grZ(d$bO z7fm~AG88lEvJSg>{b`yU+e0b(RjmgTG_W`EDI@YVL1Q*|PN$3TiQ?lZT2ZJ$ z;tNnD5-8yJ6q+7myF-pMT9=TEi&5P5s@iNjW&;%Y{mV1wDq!EYQi;(t=gUSNRh7RZ zn)+wJdYHfP-IIpN^1wfpe8K!BYudgD>q6s6lFgX;kg+)Q85sUm@|ndRdJ0RS`Uefy zbaAem`$(nng51Zd#U?nBN&JWv<#&i>01QF%zE_O<*R}j$weu`(?m)>_+xQYs^sgMe z8)o{7?aHciVPoWcmlWXCGb);CD?hy9?$gU>Qh6LzIGbdfvF}?t-M^J|PTYp(vKdHY z$9no$%b6dQ)x)|q98aXa18c)j@YC5lW=m(lAMBHnUKR06Oz--^@Ktv|E%ORIcgRzg>de5B-lhNwuTl=rM!=ys;`XvL9n zj^d$_eX&-q7Y%|j{!K#5kWO$b2cg)y6(n8R^sG%{HUJUp{cCy9`_^Ws8EDUc{{UTO zJyF+(cBq-VrD^_QS0g69OToH3ODtrsA4=tPoiIB^8jnxpE7`muqxmtR#d?&qrkU_r z_B)#KM_b|jKLHdBS9zxC?7(4i1!eel#Wt>b*K<5^=(<#w4l(lZKc#q>tVN`w9;Xgd zm#WZ}dAmj`?B_+Cz9R7rri%wj8xk=76d!p0T|LOJqAe|9(lpqig+y?|fl)^Q05Ol! zyvN{YhYMTYc!J?`CEKzz+^KCfwW#d1H!Tf9FmTj@Ora#8LhxS|5WKBy|v~qm8 zg0Kgsd(2vTzEb4-*MatTv?|ePX=YY*)MZa>dy8U`T(Dr+%O}?OG$H;kJ!@dPv z(`WlV(~a0y>N@<4w}9%)Y!3arl61I^l$Kk`Fu@{L2wdR)w0>{**==J{qfOI@C$6DfkBxoa2x6^MG15Kx2MRc5G@OH2tRVVVU%GzN)y0G-9?;-Oo z*n4Bvzb(!w%B3e8>W{y})KXEBJn!P>lDdb0^;FrCke2+jj@9|G;&{ZGl+BDfvnlo9 zoLB0Xh^&6yqTk!F$d=jH^HX1zJ|u;q*EKXhc`jsJeHhp1oEul04_2G#*W`J4#rymB zMiWQxlh>sxrWkQnc8;F)a&0@vhjBS>{{W4B)TLt;Em9!2OrD(8wot3jT4XDLJ!$f{ zPAX4AnF~~GY3)&xIjrPvCQTWmuhN}am!S3My-2jh2BcB)o-k@|KOvR1qFa@YOQ$#r zFuz*JiX$}18jO}WaMt+Or(3d@Ntp(*DZRU$_@7%An&YS2BejXM4Z7_foryo4 zM{WUeS@5xTEXO6eHK%I5E6PgCUC(w9+t9csKQioI(dTi&pjnXQY~ zQ1mCIX|6W$RiaTGW7e!j-z|ByC3j<%eM+}W-l>u4R_`0ODy}NyvB56FW3?*Bo|FO7 zwY)v0KB=ig3XF{8{$iY^%9~_9=Y88hBGXH4t=U7=C?FE9mr>YxV+aTNpi)uY@>FOVPO!&v4Mk(nsUSQ06C>b z-zzt6m1;ELvEX&D0(Cj$dbHunv^Kmd-)6o8INe>_dsm$4?$KODFG08u*1aA!^CL#} z8LjE+aAIR=T;u*LSpC1jH<5vp!ThpM@~@6`DB91&M4n?=Gm~F(c$(PVXgBczmS|f8 z-)Y5sPRwD{Zjg*g9IU7CIHt6zbLsLo?I_Nf$^2^3Qfq;62*;SYKZSVClW!o@_Q}8< z2XoDR3Gs3ro)opbQMlwOKT?0fyhlq|?lnl|VgUyLeJk|Lx~DZbpFNsW(W9dAeY{cF z!6{v?(d7Od3i6kc*5UcjHSL}>(dM|)Z7yGkvA5fjYsdA7QX8VNup+&!$A74(Q8`QJCd$YAcIys>OQNvqG`47|H8Y zuOMjw!N9ELEd?E3#eWFu0>i}?PJZxl{OjvKi5Bgt_&y0^>d>kDlvl@=>SER)lyFhA zUtC@52UhrdY(ngBCkOBt{*`!ssPi%2PY`ZRV6Jj=*0wwx+0+7qlFGyL7^*t$ ztFEmij50T3toUA2ZL37sz|KEWTuIt`pFvG?MH6avrrS`J2VK~zzF}Fm5zTA(i}#w8 zuZ#k7`qp48BNfLYs;2inRUHw%pz0sl_ZHIU{#pT##8>NQ!97rFz5vo>Jf9?2k3Xe)XYFaGwZF#Q zO%L4&j0e;bf1P=H$^QTn)^3DxUu}eZ)RRA3i{_&T2aKQpLZ= zD+pY3CA^LKDE|N&{UDHj=0zhbvcEKcX6cQe?H8geJ~vs+KD?+O&c970QmLF|6~%m3 zaU0f5{Kq_8xQ|ojKik^WTz<~?Y{M#-aGzd`PxPN<1YfH zyq7{7iKFu)g@Gp=@P8`#^Ww+Cy?^0WsC4~m)<|8B6^h_CInU)^Nq7tP<<~wR_$X+f zVHYf`wIpUBuN?rzeEacp;&!d^Yg{_6sUc?^D&qhSfPPiM?I(8{i$mmV)2|wuFLd*D zjO-Z6H7&Z8Qdx8Lt$i0y%yT@0JY{Ip^rL&yHHf7%=oT&=@2lOIZn-Fv9Q zRvT{^X)<^Qt;DBsz~Z4)9Am9mg_%YNN+S_@B4(3tAd00kF5&>k6=;&UV0wF0HxZc^ zdgDF$0<>|^UQExD65FyeI_9fw+Qc3OYR4e9$z|L>I^59wD+h}$WlJOepBnG-*!|!- zfIVwHp5#efp9M+MFj_l3(5w7Gy zDy-8!-MQkmptpwMf|kQmE<8Unw&=ihAMFqEtme74W|58eFhg&uQKp6S8f*d6uS)7XJ2kvM_X^#LI>~7>;Yxl}9+7 zb6V(Pt;d$k1bac?)Dv^t6)ds&b9BnmO$)1_10k!zo$k@KKQa1TYWjo%RNlL}Ugo-g z9cvcR2&}E+7*tYt#xeoLXLxtXwbVT6K*W5F-7*bkYLYe8XSIq*ij{vW@Fa4?x1*SJaX zi|qP%U{%2b?%*2zdxtAw;X?A<{L6`GV(V5)mdA0fYd5e+Oe(P_`Sz{v37Pyz(A(Io zmv@YDw`su7sr;+Yz8%`@Ul}jVcE9M>aS`Usz~db-J?ra_1nGVr_(P=|*!IUHaqg1h zQZju`eJkkkS;D0k?2-9qK9Z+u6&>dK8h!!&o-XE8yVveg(G+g`It&w^aBJ9XQ^8&b zw`C$I-9~rJ!H?H9@Xy8n0Nbxpy1tsv!>(0h`AngYIOC3M=T8;>&>k`IHsg1yOgC^; zH?QGen`1L6R-N$`K1ljJzlN*Inw2_9H`Sl28prK5;Qs&*?utEL*DL%iPxx02tA5;` zAF*N~)gZv*L$Dm>lU_1;Z!LlcFTij~i#r^491>SAr^ zkI?@B5r4r!tf7Z;%2U!GE0*{ZSQ^s4dPS*jS=h0hfc#KJ2|b~juaD&l_(tyBy{4xGfrbFi4Sq<;<%a?(wv6ZHt6$pMjk!T@eIjG9YUqYKl4(gZ z%*AlrWvpfQqv&7S>%|rxB-SRkwRp?K+1|f_BEDIl?(li(T?NF~SMmvFm8FyTnT~T= z*Y>$mLgKnB;#MPA?0p^w4zP4%NxhD0X4@_?nshE3Aky7iv{D`k6&~L&2NmH~eNpT| ztr=tcpc;1Hl+|^UcR^2CO7$F86e~N~v!YSHsJRAX#(5^K89G%LF3%jdPvQ@`w_3d+2xAI*WsXa5rc-M)qJiCT5w(*{#wyg?u zmo!<97oN40;!fJaslnsgm9_#!jrnd9OC{%I5>0VsnIUTW}qB}j0CaznzlggYLuCS26AFWU1 z4mszhD>Y6_p{s(icl$zThiks!{o3!o7W@hEf5f}RlS#1#9=>FXO8$nqKMwdp=T@B> zCQujVAeuQ*ra1X68nFJA!fE+@2ZLiQboIG>aAW}0FCBbso5$A+BHE+}rqoae9D3KgO0T_Sv^rQv)&S}(YZM}&3z5~J?Xv})HLR}*KQ#~N6i~! zJ-DntjoLqiqiJN()5wue%dh|&->qp1(e}=rzGt- zMJ(-&xy?xoYZ=%utb13pL*RWrI6)f;VZjUyayr+6;ftlNV9(R_^Fd}mCnfAjTxb06z&Jwp_1VF z$2jz;UiDc1?BLWp%)$Qvy-_ZQM{Ad)lWZZBiu>>O2#K4*ms4W_n13T*p5ABfQCQ&T zn*AUBgzUsW4@`)1t%Lek!*O)Ea`wE=OiX>$eG_?ymnV*Kit<0&X}phw`iMOaa65g| zUcsn*%YnhK4*jgJ4UfWWka;hW{{W7f{C6ggHa?Q`JX}O?O{3ua`6eNaz5f6)U4D~v zu-TwJaa@$rEQ=W<2OrY3?Cyw!W19Y#wUS5Y82lTl6Qb00FZ4ncv7Rf;@9{PJh2ZY4 zhWh!Lah@xZxZn21aCpsgRCY}UO_#bea*?$*1&LJUv0r+A$M@1n@Y)!qTnN`_`~a_k zCnfAd#&FBYufG2PWHyfD;ksjkoFCG^IO31@O?#i9QH8Bz-6W7Q40NIyFv=KlL$JmG zrZi$rpm1yQBzirMhCkq-mZ;t^&|G!$9RC30;D1W_9_fg3q~P|iufK2PVdAX_bt`Ve z{{SC9;a?zMMtsq@UZ(*y$m@n1pwGWaK;_=inPsjmM3d)1eN^c`!>rw?g+y$$g=g@%tbwLWl< zPMY7O?}Pbzk>cAv3qkINh3MH`9?Zdq~3fxw9_=b z(Z>rE9TqSTBZ1Pgsq87qC)Dv)XI5>vM?`*EohEC0vmEeAZ!BCg$Ot?hmGlRLu9N;1 z!wlo)Vf^bq_JGo1)BI0#=G-Y^y@CKblh(8R6{vaN4<%5z!N=#C^r_QSX4H0Q!!xP% ztUVf?d6C8Vf=}GVj(Pr-MmgMoulGo;omRo7w1|PoIX{(T&4V#sg%-X)8}PRJv-DiI z-m2eZYIt>)ElM4y8=IQOZQy8&%MfNsbZ63bl6@SaM>e{)%1_-r>2{oVta-e3C2&U0={~+WA-r~Ip9~= zKeE4ve#7C{ym5w^gAd48=D4|X$}7zJ{MQhvU}`@4A3?-6sP&>o+N7SCrBPLNSxh#h zFWzi{UhHanmp>X&=9P{<>QZ$FbDR^8*0>LjdN1~ehhn@{%fxVa?a8l1)nW4FM#ebJ zQSlC*n%{-5ZHUWxX9M!Ba^7q;b=CZ$YWV)25LxWW$ zUc6S6%a!R=WLy(kM4}x&b7`tuO`HJWAI`eZ7+I`>E0pKVUVkkA09xX%fmJ1VBavP7 zN_Afdq@7+qKQ2F|dRSTV=+B(ZDP6{B^P9V7ErC@n^n1NdVGX=&?bD@hT;WOet)BsE z*7`oDBV6DloNgd`S8aOIrAf*P?DOzcVP3RhRoOEVPlP&@)}~K27EEL=;rVo~2T{}J z({7##$IgcbxUZviuNY}|cJCt2u5pl}zJAxPj-{zhIp8yA^{+QC#bPVTx~jbu&tA2D-?ennmZz7BiLYlS-Jqgpa-|)x3ro5<$UJnynAr z9<^Z0ZLH{O$l_83XCuZ@R=X}C-OpO>J{D^O zN%0v3;yIKl^y4S_n#u5!!2d#6`A>Gotd#uT8G-K00m0(P#c7F=`dTz-4 z*B^sYnvz8R5xzQSiS+w`+jh(WJ-Orh*LU&TZQbUJdcX6{;w|*U59?lP6vrT8!Bdg= z8uU*bu+{tzWpsIXW>zQIsR#A0I?Mf{onMjNf{TUHn&fmHG}}QC+k>=p z`U>wfdwhY$N#Iv}9jV!$k7iPpYR}a49|h@$P`UtgUQgjxJZb0an)aRHt0H{Kqzc7( z+Pzr*03Xu24+hwc1H<BWysI>MtS^d{{X@N01mbGrGMgUwcR9)VS{k!x%rRd z)9|l|#N!ky)UVPSFIWCY>)9?vJWd-6mfF&+`RaK=bori}rr5!v={EMTC`c{i5u%Sk zF<&M8ZSk@3e~YJBpMIZWOc0QA8ME`S?bnZ@*U%ptJZgL&;QNCMV*2m>9^3=SW(O_! z44=SP$P;0HQP6SEHO-LWT;(iPMd|vp-SIa&jT%()Tr;w@<>~fOR0Gd?dbi8R)|I~L zqysqPBmV%`UvQ7+`4Hd9Ahl(Q3(o%lBxs{0nT`|z>PZ#pehq~DJMlh=1d|51v?J|O zuOPgO^N*k;WBt)s{{Rm3c;wb**6$c=jm0SIyQm4^x^FD?XSzZ>7FKUiTQS@DYXV_9=XjJ1WMn`@K{{ZXOPNfNsKyiS} z>F7;Y@IJBqx#2B3=(gu*!auIz!Tm*E)|87hanv?HJlEzkrs>sieuws4tJBOf$l_tD zlvI%}k1&!Fx%;NCNzm3dg(euOIn8Xh-aV`HeDa60sVJ_eyOLJ+*jV3mRF!ut1M>ng z`Pb#2#ETZw{D0!Ra=7w!In)e)wn**hYxO=w`MDfszcfE+8(-}2jQ%sX+psn3NC*4C zFh7oK*Wi}p?V$XQoOFMC2kZJCbiK|h^p`Dh7~R0eJ}*LG+g6o+QBb0cgH{xDuD?KJ(5N69y$bEcSA}tky8@EK z@~T4eIu8lxZ?0<4TPXQ6mp!qb_1yToQHaeImA(WpC|{SRKmh*$Dv!d}Kk$lpVqH#h z7UJMyG2fsfxq))m7YyujSm*OKwyW}r zEq#wlF}}sPSLOn=?Bn^f+NxQ{yS7bh#DOC`b6j=3)XJ23V|G1$@TuebzV!rW^QZZN zbIuKT@@E%93xk#;IjCvQ+nAaH^sb2Lk>^Wrje1wA{5Q~6+SK02xMt;Z>5B9J01oL- zt7>sXqa!&#L0+%oZBj1_=w3`D2{!Ff-=|vQ#L3AjaXII$k~rUpejz%Q*|bCZnEwD@ zU*%kK1it8Os0YCb9?%8J(Hw$L@j z!p5T{n(JmkXJ(em*Z8qjd^KPeHoA~t4oBrql5e$6>^f%^Z5PK{ovKHO+5EtJ z@<}!J{{Vc~%73(_o9SLQvAvCR9P6>LIN$&?_?o;#TwG+2SBL6b5h`!0IKL8U?X7%1 zl^kS5HxB23f5yIGj^Js!ql3#Uarv71%SV_^q25}s-U|KN`ESKmaNFziN)&)L&f^%MgV@s_b;Nx%0!v0mk$so0m zmpo?}udk-kS3VgnTI@>(oby6my5ov~v5B@GD?%MfA&3UyPkNV2_*3H#9$qVGwlhg; z&Hle>+CLmuL#VlKOr^`YjU;<=#BuFaZXg_BoV9x1srxv1&qC46_i=|YjF1jb@~G$~H=e4809w&CITt>C}v!x}40GEG~h54tV_Q=-&y>`lo@B8Fs2J%>6;H2-Gay zW-O;8t$TOE+kCmOINI2*$Htm$Ls*$vc>CX)3Ci@qBT@ROdn|K8j zpTt%Yua_$oJIB(x{{R?U8Lcel8;113$6f#x$uuo)zbh6`dMZlmL)xb9kuxz0g-%H4 z@~_k1*w0py^WjdI3EpFcLH6T6*1s?T3UZxsU!i}nKDuu_6LV@vA|IC>#xN_!#P>Pz zD)2tIjf=ua9MKAfb*Cx$a4<7b1~FV9JPx(X7I>Wx&ClC@2{hk~Qp{t@PK$>6C?D3m zS{TflTaq$5*U}&GP;EX~JY}R@DrPw#a$D#|KasDUw1!iqI>Z;6{G@!q96jfpIb%j?M}`qr|Gjd?!jTZ4mW`cL*n_#5C~8hAfY z)x1d(-|Db9@~w9O0`1AjBh-4=Pw^wb9u0*SFAM33V>~A}imCwGco@LzkzXC?J|@@v z8#>+S+LX4^9=k}#<5!0!EsrwgL2t)D z(!W#fWD;209;09%psq~LFP(EAEyNVuYbJTm?GbLehruruN7rqXhaZK0Hp3ipMS7ud z(K#JG&-hpEr^F2H*0-S4A`}ZQ=Q64UOD>VAWIZ&oaDpJo{R{xWB%VN#ye#n{i{;p0!E7_CVvMYA&Dl zi6nB^1D<)RHxccS0iCrDo{miMCW`#3CH(DF!^n{vU>Ygggz>?)8SY~ zjcX(0249#H@7AY9yCTxw#tp^h)%<#NsNQSZ5}?BUeL-#A{2BlnyD4I`flEZ0;vG9+btyHB72KkRoVre7-`1 z+MJh#oUuDcv8Yv5csv?p!^>>rBC+R^dK*SdsczllxR{A0Dz&J(Hl1-7{C{lq;D3#C z4mPkpwKRHsmlFu#Mv>e2MQ)_zt!ta}d7Bei>6THIj_^v~On+K-ldfA>NJ7LNzr4T^ z{HrE^49#yciJ>Una7Q&|Y*IMeEsoW-B^&CDWhb@Hntu~oPXSSG7DgSg2jy6c9Bm`E z@0ju`gb_1L0Kqu*r!vUX0no4IT{Ssvp@}ub4;&26xCf;!pBS1lWI5Z=RF@YGl?K9CxT>k8$UvEV6DH$27%axz8rJt8c|(O(^=*YBm#w24|f7>P$=k-x9> zuWbFKz9}Dv{ux~=-PCF~tMmG*^ds^$@Rp&d3+t!c*(}*DUiM{+_Hp)5J_m*}SBk3h z3{t!3HD;P=2v5AnmOS%T9>hYwzLPK4gH$BA^6(<+e>#FosW%zQgApGkEh#Q>JlnJ3(C#Y%LM*)?>`Fv0A$}3{7SPIQ+axI zxj6mwfieeveXG&K)2mfpnzB61W-|+cT-D}yZN{SOmJ#e;nW8(W?iZWIM*itxn){1D z{eXNWXuxY4)JAXO*>ni~8od)u{gQqU>3(0^Z>{7=$4|5XcpQ>*UX*Z`U%jdKA1Pal zu#wV@HzV_h>~hH-;r5BgZzVSq_)|}Z^;sleFGWJckF+m6=`6I zKwFU|s4Txyb6y$o3-*8U4~0?X)8TDK%|>@1%X{zzTyVANYq~n=XP7KyqX)|_%=xbS zddgLX59w6OnFlAD?6oZ-RuTt<$0D3E$TqcdcTtNOu*+PSx=t$gKAQ_un#qu?S<3gO z`DQm!)K!I%T0ra5(x)+`k_SC{W3_zzWoKjEjC8vZSIht?!KsyYum_Pw7kA6WAyPTb zdX#ZIx?G7y`xA)6XN>z)Y@k!2U;)YJ6pX`=4r}PJ^^~lU%_#W|RBhm>B-WL!{mrz2 zRoOn3nfBJV=NbH|kEt`UW7oG8>q7g-b2kMgW^G<-_mX8dGb!uMXG!xRS6u%9I*D}y zv=hrxdF*mY%_^Mo_@ofSr1l>iC^L>Jk^{Q{(;2=~&osnWY%w?#Mpn@tglVpz+m1oz zog5@%y-2I=ihDO48P$65YW}jExN430AP2m?JCDl+Rr%!@yF#{ zYio-lY&8SmXKB*LuC}<-n45 zXNYmmO=MWvyu*0}8t9?(1-eE+BaGL4WpmfUW%S_FjCC_LCXV4jMBDmRD`~E+PWWYI z0Q#Eh=g|^GLcMX)v+uP303||n0=4FS8T4?Y%Cti?{{R{4i8zeR#Cqh`=lmrT++8V| z%khflVYO6U-5aG&7t37rHM*0r(Hd!Pj-7P^&AnTmxTi^}8G+9xxw}_o$#x>GM>$h~ zd97n7ZB0E5n>&*voc{nizr4q|j+K#T8z}^ln$?AOf(Xt9T$!!9lSr|=N^^ss>tCk7 zu`Q3;eid53P|6P!4Cnb*(7KM*+m5yK$L*9_KLFbW89re@ps&pG5BV6;zjMc_ z8>WwjFVB?mnR@*Uh( zD*ph-({quU(YTxC3f(Ir7Ta=LJY?})bsgDsu)fb^ZWdp%I6QZ+zQ1G}Z!h6|P2Hq# z<}35|b~0HzV+S02*XbAR*Q7R+@XJn(*K0EF{J=H&*A_`f45Qtilxgz9=c&xQVgz-f z77DAnpEt`AahhznXxEHaYI$yY882el7@9-Z)m_b|&T<7v*?Tuko403oRkH@Wgv7>{R%d(6Sg3F)MxZB`lxhJUWUm2Ktu!`z_iIr<9%<8@$>Bi&4)?r5ByEX5c z@s4Zh26CuyE6V-~+629l@@VpiqzwHIE6^`)jQ3KIKJmz}>8_(LYMcX}JFI*3s?F z)%*~k$YxRbn*09%;VzE4KZEr6LhU|S&3t$8Kf;oDi^NvJ*CAVTdT>FnyL5{|YiATH zFcoq63jF@Oy`^}?80YwlQ;i$>nu<8|tgTXD*YLxh`TY%RFWvU8T1$gBi5wGoP0Ht{4N|zr<5wHy%~iO@D^v!2%eWfs zJ|EBatv33}j&L#u&=XvfuUyu*fbLDNiIEAyNQ}RUz!ld{TAp?`pFJn!W@?G#+(?Il zrxlSjhXey%Ka8yY$*oS9z$bA0Nv>MpXCl2=%IP!bZEsUL;hUy-{VOtFTbk0iQ<|YK z-mTK=VNy-%*-mBls_n-Htw_B^SCLQSO`HDg1CNsPSc=*|jIY!avME9M_#`mj>GEIYGwO z&3gX52-SQyZFqw$tCHB{@F_-Il~a2&SgvH!^*N6Z+gRORY`&DmAFoQET!zNh>?MSz zSn>C`HH*P+y!~oqZU$?$(tgw0b9|3Zl~wGyId$$>R>yi!{Y6FEj+J&g>CVKA-!3b@ zvm;ROq8w$DkES^OmFKz0HQaa#6=%g)l3iQHxDXeBaqnJJgII?pvF1^&7{}Sk>RIs5iodd*l1Ba0 z3>xKiE1@=_Gp=?sWK}kkZh5GSZs)yi8d0YwCDit6SCv|7oVG@UHqUq@SoVXrKQX}I z9P?Ng5rxmO$K{&PGJfUHIjS-p#PMA*Zs!$mWjH9?QmZFkE40y9`&+?!g`<4MBHX`K zIUmZo23qSr9oz=KxU_CoNXY#2n##Pr&ThvII!V=0==3-Vp*-Yc{F;Ny9Z0R6V$|B- zPZ1c}>^~xFHHJ?$=*E1>Gv=yOaFdHOudRj6obaARh{{LQ8u8tRGV!p(BNab^HSO&m z1lN%Gj?eo)#20an1D`N{IsUZe+|Ha|HH?{4a-Uw+nKG5g$2F|nspAKwRGQrKdv(oa zCUrtR47X9we_D-`b1&3?I<+iBXO4eLi(yiy85#byjn1e=-5*lfTNP9UV~kgS;QbA+ z?``4$oyYX*8PW?OcT$s#DqeZp5J|8K|7Ganu z&*4t*(9!XOGp&w^Y6kg=rqT89>?_jreL5`%NrKWLh~Q1VI^cD#1L5o^#U3QS*58|Z zcJiUm_p!ho<7h zd~Ipi0}4$|mFIApGY&fY0--YgJU^ZoLjH9S4Y= z-@_eS?2T<($k22<9Rl6=yaUd*J!&;)k(uOT?&PyGa!DkT zY2SC6!i^thtoM7I*^W9`>YUcJR*7~<_g{h9vi|^O-09Bix;OJxbIuQ3el_SiyN0oT z<8q(K*Mj^byp(vE!W?aZ*}V$%$LEUn+v}y9Ny?qUjxstN6JHIP(B#G4b+P?R!1cmHFQhQA%-<`bP^^a;GRh zjE+J3&U#npckN|nEq*+BgB%$nx0CaUNA$1J83$4L*TMe)wtkNAd}K?YxLd6@7y9ii zr2c}qxNG+~xh1nl)?*jI&jMBSt1+*yG$bWhf;!Z}Ml;hj`e!xFAs(b|zSRVZI`^wD z=qkLOPpu=WD2e-2XNr02QJi^vJ%uA{*^6YHA1QDZSF+{d>B8s?#l$iYC#Zq@6a8?{de zcw$@GIJuE_s-C=pGet+s2Fiqa|-O{cQi z!-3Yj<4r|fpG{8=qZHXBc8hMINaxoyti8KZD;XG*PJfp*;A5q! z8O1)@A2EqN1zj=i#dvrzO&q&wj12NCGBz!YSD^SeMDn5gOrr#h zkEL_Ye5tXdJ5~#&>8T2xq>N&+>|{~^9co_^TpR1{iT4tpqUmzX!0p1<&Q_@9CeK=w zRA8GnwEIQc8>Kq(P0kfZ0-bRu*<%sM_lE=4lFmT*4!LT^KI+x#X}iBcEfda=F52p} zwieE-&>GIQwnQ6%0QKos)%LJHm5oe8pwyE&D_U!n9RnO@yg&Au&<*#6*77yO!s<&7 zy>r*_uWW)(Iv{h+b3YO^5wG}8`qQa+*bm760F8UtkKa({kEw=VTk80zN%uZQ@GRy_ zfRjJS>z;k<$-XaWY2m$Tn2g0MWH;mg0N1Zg(qWTIy89_jl3UEtob}oc0j^8-g45@` zjs{rwMYnqPJR0_Ln#xv4`+U-mGUrDn;r%WxQpQGCB!TT*4~#T6wZ1Wh+PUENuH)f- z_)DX0BIhF;YfIvFjB&ypZS%BXw;AtWpip;(x}TNeZ%-3$=b89_PLJ)7ML67y-%($o z9|H9qHa`bi+1p19MOSV@s3iK6k9znMO}L61XJ%e|Gj$x-sQfATg?VEjvKK6iClRqc z4#JA+Ql$BJGN}nk-5+24K-Dc^({AlrWRm2k0CeY|ug-6Znne0vj4x*La;+|XyMKj! zIM+IqbIEmkd-j!Xe(*m*(z11bhPM9z67-!yk?le>ZG{x$PdF_WP;3BAatg-WNj zZ24MgjM45NDd1PP{1s)m@b%mTZhpU@734a-lzL-LZbsu9mCw+TUX}0`>vWeW8w z{6&3s9$&nRL&nFNjH1qa;-o)g)Dm8sv-)vfb@q=k=xyNluUh!IY9vH<9IIpVHRCr< z5^|_Htnt6bXGU2h@X?CsboZK*UTN_}=Q}w3>k35*xaukP3foE(p8o)qOL2{-fu6O) zDQtU`A_$S|q1RBPxrIx@d7%$bo`qlBoN+$W2f(?7G?4ROQ@Snx2 z2<2=g<`j|BfJpsKbJmYEZaRyaEd5P{lh05%r%8zz2N(mK)E2UCR>8>XIrgb%QGmyT z>6-H*^*kQ7K3x5~ygDv?8)c|0d)X&gx8tBWC;3;y7Pp&8jaMU;{J5{vpW0)?58{u6 zTD%a)=G?^#OB(kq2N?Y8^9x6{o;_>qvo6;Uw2yq?kIue>DxWj4`W8=J)WazDGqkNs z{t>?t8<|zSt=o$8&q|--Mdq8X-N$)i+ZmO2DbHXt`qr<+FAlbwawH=Ju5fFJxU)$k zS8c?43i@iE_q}aTtCzfx{TD&iHO3IxBTXxCv8c&D!nA*|^$ia(>QG4ps&TeOAoE)v z3%(+M!mjbAkFPDa+99);JI2F?7(IVF_FvkA<9~#HG-x_J-XDYP+KRH7$CMKsf_d-K zxuJ-hDk$4SnbpKbylE(Vuc_sJ4A$2}@ivjDBzTq?)T#PrzgfI1c-Q_P)2CyS@T+m| zqQ4?+TlaB97cPz)cj7DcOW?+$+KUBT zOmUObn))U1pFTY*vFE?9l$=CYB=QY9%vMJh5b z25YO;CK7l}Im3CNeuURCHc*1yIR16Ne8K!Gf;HUBCgb^5F_!5ZRUyq5&SGhr1#!0= zed@|)EtV%att+Wamf>7{`Tn&@p$iEgjVW_IE`02*u*hODsdLCYRZGPi$X~r$F)8~a zDBL^M3mZqh)*yvOS)EjVCWuqMp~)uW71Ytteje-IDq@;$k#T=0=Mk<4=4z*iycMZ< zZbKHOV=a}!@?wy4`PbO1@k3qxpLFdi*4sse?BqphBvmD`o^!{hYVNn<&jtR|HZ5S* z-(uH-GesefZ_Ea9ockZnwVf!WyPssZdKD?kFn;n!!}?qT>ng4TsLtP|Z)x5xy%uk! z-8Y|a(G~vygV!L;ig}hf6!12)07vCqhsQlL`#0iuh~Y#r#4n}t*BAkJw%mJS zy8i%&G0&v<%R|*Im@2HxCho%rKhnJW;*W}_@qdl=OX)z|(z5)c1BN3ty*T^4#~y2i z`mJeGdvrMoBLe{Rr`xM;+tgx~7|g$WrAnm64;dW|Z3Us=J6NrDq;L;41Zvy8D&^El z0=RsG+M0*u`?(&qr!P|*k;xw6f!3I*Ai}UDbQtSXD-LtPsUy1im2xsYgxpwjfIjv>XZSB|;hz4Gaxy?tVL2;!ZnY1y zOnDIiz~J`cy=r(GwWIsAc)5meh05X2iJgxRyVgG62_-Q7Gg#9rZ9Rw9zKrpQ?4>`3 z^qDR!uO4}0T(S~R0B6(dUq0SOV0TC1(XhkmTvc$ju=><5EY2{wnr{y)*r^O{7~h)M z)GS0Ad^aJ6WL*38#b?QtjAN%-8uNPjY{aPGFHkF&p6bWHBAk**G=9|B)J4$qMauNp zaaGqjIj=6Xtjdct5rF_T5;EX{P{!Mo1~{PMbL(7=T*VHL9ZdzY*y&93J7SR-=bi_> zN=15-vW>%=8t)>$nmJJ;i>7_!mo$ z!rmXY47(wngScDu~Uwf>fax{S0{r0AIym_mvec#Ff)U+ zVAtq*Wfg|Py0YD$i)Xdvnr0Eg(|RormVP{ZLYv1PFT1&SFA}j>{QwvoepTgTXl>c% zroPk~>f%OYoyRpnoaY0je1bMLnaMU4AD`MIv=EyiS`QiCTeA6Lta5@^k zsCJz2I%c`4tF(HxJ=omV@SL}{l7VK*r1QA-AC7D2KM4FlO+LjfHGdxe0A>tlXPF=a zj)wxiVv_jU#v_fJ(A7BY=bLlonEThU3{s4FA$EN3CohgEUagV!)PE9u3u|#A-uU?4 zBOYEUNGIu)r#Hl}f-Jz_YI?4ro(o6izJF0)DcJZ@Tg*u|5I11C{VSl-d>^)81139f zkBaP!s<`P(@jQo-;Wkp&$od{XAAZcR?iU(ft#DhZXg|Tl7oQYAW_a}Xj?+ffW0SLa zG7tTpydLYr7ZKbBlkD*z=l(sz57MX9d@mifx6x*JJHZ z6MoJ<3;3;Xa<<^;{v=$pMz{nq>7F`g-o6(2)9_zf_+PKjW2)PWei*rOvNp1%VOjAm1a3ND6IJ7+A@08$UA3`de_@0snHnqEURtmGnxY(-FT@1odsA5L%{%V#OlI6EU$L?pt(VEgPJU&@LKACr=B9)mD|%|> z2i*e#qme^(sU|x*b*Q;5k~prNG#!N6HxEj)5!#@RwHF!9S%(=N>q>oqSvN9+oDWK_ z;HwTvtFkDJ44jIOYQG}~6|0Fnqy>i3JJA~!P&xrm*|hZLpB!RF0PrYDnK+^G*_UF+ zfNI=P$pa&+XC1#9e0Jp{&UYHK3}#NF09RCF%c?3kbtbNQ7lCyPOU6-kwN!CkrnRHk zNf?sJg9GSm#H~!W=j3b-yjK2?;!C?(FwWb3E21y0?0Zyj@rt?EZF_br)C#3}I!sEi z=cP8^UK1f{4hwduq`ZZ)af4k{<*Cx*P?{HtL&jE|WF>KqY4T6Kv!9lt^B11Sv99RY z=9tEl<^wntW*%E`$+cX@m?Tvlp_(ItT-}7|* z0I#C1NGw!!uatjmeNmP>J4NSrKgzxVdSMPDDuBWw64!JcdN~A9KJXUqS$s~Tpv~Q+Zqda6{vEg0J8F(yz ztxq-Xa8#%7TE|1Ash?1@wPoHWlW*oL^*`b5fUxjxn+mSdAYX6c75TUDTf=|wlzc|f z?FigfP)PLP*Xk~nYPNPTzy<y^I!oF=YZIRrZ zwrkaXE^CLxUO3ini6?Z7ir+>!uP(ULWPwu)x!Jl`?pb{`M-3SH9_KGCYt1bF%|>-R z&(E<7n=wf8y&mL8bsI6-0k62e2Ka+XPYCJkjEg#e8`rt?uY~4|#=x)L&2+jSj&)5A zB};3TiY4deHR8t8gM(&x>QkGGg4q2cpTySlLen+;QAVTY+)g;J1NhDRLs;n1O$M1P zcNaq|=PBTQE9I?E;x@5-vIo>AD#MYuis0|HTZ^ZY&30hl-XzwP6+Aw-x#r6OEJI$< z-0_!)rq`#I>Um7}5;jXQ$>j8@d?yRfZya3%$&=~Qxu|4R*dONIz^_pFeWQ&_YZTiQ zXC=S-^|l^zuZZTB$FEY1X<@ybdJplH(%aj`97q(Z;GFvk;TC^7P&yu!)cEG%f3+SY zV89H1Sgvcs_OExU#+!Elb6+`{ROYWP$onj|lZ^^+TeI7|0c>>N4(3iIlacG*x(iVE z7YQ1Smi+mwZ9eRIDG>XrxUW+9JK(u|UE(Wv<3iDf1&`9dDa|Wenr!`756MQ7zLq|h z{hNFj{gc>u;oJc{}P-y23N13}T^(X`upSVq*1agLR{7u^-{xJ%Bfl#kD` z)!rhkrpc}+5W>yvTx3^1UbND%;kf>FzpLEkL}1r1d<<*~=QX8VZ?w!HqV$1yI%}2R zsjI5avPL&rBSJ9bHM)qFnIRjzFF}ViLunKVquN0f1Q0M8fn2F4N^R{ z985M{%4&??c>7j^50upzmy=yBjwq`qHC}Ei!*>+~iZFd@P0Dg~H3XkBnwCyar9w_Y zt6PCl*PnV#KIGZzmeUS4xX~sSa5g_c4xfS+lQRD_Tr* zS+@(+bgx1ulU3Q7(kZAU18McEk`I^Osm#4I@E&0n!@O?tGXcopNLM?nj2QQEC9N~3DuDB`b2_eFXzXUbwD%O-_v z@M=ZqDUZ-ombbZr*s}@h4SQe1+1FU`Y}U+j@$S!a-yh1nMmE~Qy*uEw@sC%yvt#ni zq~o^({{XL9)c9_?6;52W5sPyPx4f1k#@59-M@ri9-kNmZ5Wg5%K5x%8iYwTJx!|O_ zo{cqa812-BiTYAC1p0KUJ7Oxg%g0*i`~!Gx_27(fvMVp=fGe9*j=gHumvGj)gflM% zTR*LHVj<5;Q9EeL)gsy0c#7NX_tK^?TaoWrw(@Pt8tS}6g7Vtl@kU7>H{?IYxe1%g zoY$2>^HcN|CLFbzM^WJ0=Czvb0qUdqn(8m1mh(xK$oUjxS0&(hlIvVCxxi)5uxJZadW`>UjL>;40}{vy1(LGv0gwK=KVvE}A8IV-z$)Qi@<^WsH^mvd=$1~&$b{s$vJnXg1~w;!Ez zzBaHo+6=@lS}aH~Jvcw1uG{E&F^4RVGDyR7+v!7F?otTBsVwmE=iaB0eo}wWdd^Qn zz7+M?$DZ5{-1^mLh-7i!`qqr!F*&O39vObW*16j{qXl#9{{RB`aNp{YvyYX2WAp~Q zuN&&kr0I#KT61%7c7e26U;@z|dB$iIcyS6V?64tN0tk>ETZc+1arMR87-A z_nh*_^RJ%1Jb2`Io5crBf%9Xg5`?MY=OYY%;3MVFscQD$i(WQg0{BMi>Na1t%ZM#e zzlv5I9-RQoA7!tPnnS?e&U%(^OB0ew_avXrxw2e4uU1&9pVK{$5%Z{JxGGr|5!&f< ze}!zmdxLV>$26OFA6ilL=B;VAGGARJ5h-Vpum|Ic`*}4LchLT4aC4U|Rogm`hn@`@ z{;d?Vu5BVapFJ4zK>Bp3{B^D;iM&lKTjTpa%=s`X{nAGa!|~(ruFu6cQT#vf7_zi& zx|QhiBO~u_Z@k}tB>q+9_OOU!L>vVe{VT`AxngR(M7G&}tor=hmny)+Er-W1dViuV z#+Y87)Y*9YdsM1EUrLHW$^QTf_EGRQ)gz|(SEvgg8e6NdRJlfg=iFp}EPgfZ(n;m% zaYhCK(ovZ;I3}*-H-!=LD@w>z8;g5?xC$L4?7uvk|hA;xi zp}-%RudB&1)oRq08qWPtR-qVK!1MQBy{fFB}WtK>UvT#?WGEHO5j_yjLj;j$tQ~0zGAx}2MZX*RM8^x*v{*fjAVZ*mEyvW2c@NYG`N z;8jHd*L*qf`PMaoB!dt|^A?dX5bYesMQqWm(JtAx9_ z87HB^!Tv_LJBf=i9erz>v*vb3O$hS7W;zmCfa_hSh4lT=ha;NhbXzvPx=7J?HhnW* zqo(OEr`o6}LC2*{8hp~x9{vW8w4XC9+r}dvhOb)2*AfLBilUj4WsOEy@rv&JKjHrX zv%<2-K5n($QXH|=`f8S^3&^0lVTvH_R9-#uA4=ZWCII_81k9;QcIV_F`vWnTBgokY3NZhF7(Dwdy^V?AkF`*JB>f zOMAJ45$?vi259u#Qg|2@Y6zo-K7e~xeyyj;e-YazCkGRyOPQqhIq|AIw~YOH zuBOEj;uUsG8t1hA2Id=pB~CM(@m*!SVmQKqisw>tb~LLblI0}GjYcSqi*r#sZfsQX zuGOyx5mVb#X>5*Xq;J&H(`M>~;;mdq=S0eR$i-sAHHMwo`+Z~Lju0?xzIXX4DQTMn^LdIb%_gWqy@cM7C zcz~nxC}YX`n(TfhUm5L6fI4T6YmlBu^p6%4Wb*enUY-8{`t{oDk=ou^tA^fokA7?P z>>RGOKRL~5xX+uh;umvFtWb<5dQ|psUBxh#IT-*SDN;pf>h^K0&y%+YHC=C;$_N`O zIIidJnZnbGXH}y7M7`5tHunzGpy2K~HM?W+-s45nZmew~!p;cE!Nzg^73EV*LpC@j zp;l5DKO+_8&kIg-=aSUdlIqNUp>#DimO|e%65pAwm*EZM`gX8Nj6`@pt#OhFqDo^{+ydtt4~Tk2D%P?}~CqCY;&fv!CZ)32_^=&cO3t^YIc9E|yrX zPg?PbqYFMUfzq|de0MoAmi?1Vc7h8`h};(7){VlZ=T75}m7f4;f_q)~D=e!@m_Uy2$m zUKaSDbEkqLk~^*3;C&1S4e%sy#9vb+CZ?A0q#ple-IKu(}AEB>n zE&bh3Q|U4a$yJpn)bp*0E_}quVXT)bWH~c+LsQIQFdRKV(lH_shyo})2=TGhZq^+mLdkI3|Pi|ymk5 zdRDdFmze%=7-ryqDs6{_^_^oWZDlm0`^vc$_7wgFbML9)+if$9xVKpHigz5KX!?}HVU^x6Mm6J=KPRO1nNfh9Q1RU2%;G3w^QeU(jMCw$J zz~lABa>;V)k3G|A^0SG)Zz^SM?q2@@oim9EVA)SfzpUwpP1GlbT;MhUIq%J5w5Apy zt_Q7Xz2&j<)o609i~3@ju0GDAb3Y5~p2DEDSu}qU!8DPu@?{Osfx+ZcZDxB(;=6$2 zNZWAFPAlrq5qurdz9@Vri^bj*cv^c%a<;FhjWVc6~_=EO` znY?SK>T}yiePM1?8#$v4thpH&BfdQ=(;@h&;ID`tF43?2J>l2z-TIIv+UOCu0N^T) zy#96b*NB%%)K=LdwDNA#<#omZZhCW9^f>NxIoA3`7AXpnnc%Zyj1Q<3>hd>qeePFM zb!s}T`@KtlwFL3p{7%$f00CK!{CbQE^2Ly};jx}SrD<#0mFI}{Yu!ffP4nDHWNh=+ zv*K1+0)voi7anGj@fe80rY=*4*F87GcT%4R$#V$W@cf~NQGhx9Ysu~wNi_#-T_P(rTvpb_-A%!;z`p9+vYg_mE!kIe$ZJ4Mt_;DlI4#oD~aNxT9kV7qQ9BsvnjwQ zigQ|Tw`NMMbsIE+`tx5`{>(oDd_VCU!}H$j6Cr%;@=rZM!2=c9gTl`hHxzz%j>W?R zOWI8N5tX-K=lRu(R(6e-sIO!FqCOYt{{RepStYidt@ca;Hvl^4Bl%a9>Dp}Cweniq z1ro`^?l>QvX5?**Rl(|LjsqHy;Cg1f$wj1nij~ntWN=PKO(xRs#|N!X zB8|rbicO`lfyl2avTd3qF_+Vm?NR*LCp=Yw^5-If9{irwiixU;0)oV2txBp@Mn*+B zW81*yoExYo6yiGsY6do()|Z8}nRP94D3U)na}2Lu^_4SijBMfm0G)jW`zH7qHSZD~ zLgjN5JmrTS4R>IuyhV7y9!_V7SUfE1x6t~7;ckl_i{V=fXd?0+MN;dGdW_f1-?dM~ zW8!ZWJ&bLedqr5+9XA1k`ilD7$C}!BTf#b?pbDUZ7Fe-?(+7(D-SHN!CaIgv)FhW5{0p#a7Yb z3kqd<9cy;p#Im`KusY-a0Igo-Dzefn^r>aE?W!rqq-qn`i6fDWMC04}R5u?EuCE~v z3OAeAa_9M1eWSw^wrhlBDf}lmJ+q4GG?`_!Ws_==jBUn0O7tZ|+AYmKqZqp+e81wY z9`{aSmp)+&#(5n*tB$J_5%xWF^UIsH?Jb16dpJTk*p^!1- z(!PHY2~w7fau`?~1hTN;lZ{@~J=W?gWp>SLuRlOXBYa*lUsD&c%}>+;shG?6Mq0 zX8oL*_(vUOuM1i@+G@%EXTg89H-b|`@wTAwz*Yxs%EVwCjGTTZybd_TAZN9GC|&Q6RzMzEflDyozjxIQ}ZIiqWkK4(yt+syNRzbp9)#TM%vC z%X(9GbB@(&NWtmpO!Ci6abHn|i;_*8lD9U5JPrnNP7-wjn8-sDjGAM0^sh!q*y)PU zxeVKI2hyx8#P_V|{#6|0)bZxJX}6*@ibbM8rXM907o@EFyxH%u9$}9c8)^3fXz*B z32+D*YPi4L+r??w*`bd(Ir>)cgT28+nW7sDcbS5*z^w_bL~2!g_o?jd!UEXAs}f<9 zoO4~uHb)HtH!BqeWx_n$Rc&=O%`kRWLf!6qam*fn9Nt%PaH+k8uPX8r8H? z6aiGDj2z;$tcb``FnZJG>TgD!^)@u<@h%9-uAap{UB9JsdTD34BRqQ7OQph9i6=G7 zQb(;Ce(uBc8(%ZV+C%|&875!rU$4FcxBDN3bhv`;0^N8&?uz`q_%Gqb@h8Qd4HiA( zIe{an=xg;_&K9?|f))98#0TU6ugf^fs&y&TN6uys-cb>;<~~JyPy1KvLi@(hTIb}2 zNI#A%?7c!`V-wEr!Y*_8SLcVu-E8aLI@E4ava2RK`wHUWT0HotQS?Uz2=i32=9;Dr z*&FZ)s?MtmKGTuw_*1oP$f1;c-77LSk#{Q`_OI9?uC9CW+mvppC+-G0CaK!n?uA%4 zAmr!kRxX=#$b{r$`c(e_V;)dN7-ryNvy|01IWx?hedFoR*uTLs>l*FOxgaC#pang+ zBv;&s>@mj#V>RO+vmby{!JiH+mEiL4EJA)7EYY%|=t&^-uU@`lA|o~N2ko)(0rd?^%fnVO zhA@vdLaoPfig`^5Vlh#QM)*p8(x;*F=Dl|I@427Nc4EZ!>T~^TuJ}{o@#2kk-dW?{ zXBz_CWc9Bxk~_w%j6LomfGEiY#s+3VGI zi)N0e;rmSn&D6(;S#lfGj`i}7#!IM1rzwfIDafyP_?hu1_Y>HoD|vhpJ*(x<7hZpA zUNbZCoYxmDqk{LhXXomSs^%Q&XpzhL{$iYPgPNx$z-1sdGsSEeVvaHgJXb#?L8ahh zn)2fgT@PkBUuf<}zC~k!k(yI#*8t#VuEv{{fnUm`SQS7E$u!kBBGwud^<`TA7`0x|H2~L}@LL9`OdD_RT_B3CPLmTYe0K$OdL#o%$a52C?n*zqed~+$QXOYq-)Z z8d;#Vf+mtj`BW!9fLFp}swa8e{TBm8L8-o*9gl`=X4J2(;fY#ClOJ?vsjtv4+4td$ zeiHEfS98aUxrTWhj^p{)mVV4Xv&@!uaBDj38)f06jmJHRKhD0hw}CC=NYHIn7!~eMGVZg@&O(nzB;%`+En zO;Ng!dNKSe(CJaX%^Lw(cC47s6W<8ui6I?0|U$~gk5+$qVe2^S1%oyz>A*P(MI(V1=cswqbXtVxlYf=-yn zG$U(uGo<^*qgDB_Qp~$p)N!BRC!yl5JBh6sQbF??fPi>4cKQXz_ z%fWYRHHGeT844qw;5w4^=p=tp@bkY7sX;-zofYRD4knm#Iic3g0*9 zU37G8@$nSw?qEN9sc@q;ZTr<}m%Vy1cRUL5Gv*xCNtYni$;NY4*>hVXgrqu=O>9)N zE;$@jc-@a$xR}V6-M(yAg|lsOS*!B6$2E2a`Gs{s>Us5})aWf6Aahz#ecH#hJv$oL zg|ec(Dss^uCyb`=dlOK-s9e&H4Rxn;%kmy8rtl7?bl()&Nt_04hv-NZ%kJi_X}1Oo z=q2wPhWw3R#F`?0@4Sz4_`#>2v)NxD$S0HSjz67w%x$?r?_Sm73qj%!hhfJpH)>0&xnUH_*c_VBx6$5g7WqX(rLNnhEI6*FOeyJsPZL^H z+EG4}FTz5)=9z~u{^IAk+8@@VzuMFA1&JW{(UaZ>Jof`!?Mit{R92|p!Ij-AG)I8f5$T=Wj{uMQ- z#%(j_^9n6mq*Ifx}IUd!OBKdL=Sx-wBg_kl(jqOaG2bK>~ zIH?)FQ&FpY*gTG(&a+Qr&~d)yQpcS0iWvh&!@pXRNW$i$Qfq7Jp&XXb^y^sv0Jr`f z%AH*y+&yW=n;>boTcgI#{(_Rb)7G&M+$6Ccv*NVzp9cnui8Gd3q(+qox=hynxsUa-h z)Olxe@!q+l%_ALE&%6A6;%PMfDKy(KO~uC5RbHgA00H=s`PZj>JMg4_4)DdjsUXfr znLMA~bICu`@~%~6prDf+5pecllfP#c=N<7;eQHh8jl;Hi1})I z7d$BZNdmqn8!vVkYJGKnuVd)=Uk<&tFFnP*BY4BgG2O3LeBbfo#f{=`8cSxan=LOe zqXUrAoEZ;J*bDd?^IqqkD#gP#<}BNtiDqNTEJ-Ava!LH^1I2y54vNFkj2A=slRC_& zoMsiVl|IwD@?96)J~hd&PxwvYu_eTsl*{s{+a7;Y{(b9!(DdnbE6AfJn@#j z{{RVRif(RIx7k`|-rvyU@38ujkHA)1uON4(Swgn<>k^Cw82oAoy_HW zkfge5e#gNWR}3~I9WJ(t{NLzM5)mLI=Dib6T-ibX?teP-NL$RfMD=R)-8^lzh-V)t zuZ+&2%}GI@xbS?hR;0ZN6lQ62&?oh%WL?!d93+k1n;(`0e=eS~$uQ$Fx;;LEKf@ z`68ip&%JLJSxJ+x6tTitfCDGmr)cW#nQC_%gThD7ed?tyRdL00I}Vd|tSbh2;g91{ z?ljT~cVco_=k=!pSS8ie{YT#*;OdPl=Q4enVryQB+eYslZm z;t1*a*B9a47HxY}g3=YqW*fiV&nCSa;s&=Clc!sFdc)+35&Py};%s1#%u~NAZ>ZxQ zW^+Cu*JamrX>KHLGqqPd05}-@D za}u5hZl@LQVW>uu=b83+YCgt3)_N$1h5Q))YQtD=BolgtvCcZb2RRuRe8EX|#DT#(jGc%Gt?AKG}3xhDK^VUDZKE998=` zR^C5W>seZZZjkZTz9%%Zsbp_mDN4&@HaN>>twSCF9qG}>jB!$_uO3o7-a&TZPpw(zKzm!Qa1EAunnsYYhC%L4o@6?%g8C(7p z(oOB!xfxaFvF+hA%&G=S;=Mz|x?1VhD$FpQr`y2B`Xv^`pnHW7m?@X1psmEGdc+4?{?NGCMvSSz&VygQ(Y1`grF;{*= zpg(%J!>6m)s)6LhI`g|ZYAOC zrrwOsv^k<*ytZ4IUN;$57&-S9@^8hj2Fu|801{8ATQ`+yH_Yfb2RYB<(!RR@GUu&% z_r;$FMdB?AUCFtSXWzAcfl~2ttqz}&wpWVw6?q=gJ^}cZr;CkUZqQ&3LHwz7wU%u> z7bJiycj5(y+3zkbjBJ87z%8HBtN3q9mg3j}$^l=bW%ZRxQJh)Nn^Jd@XBDhz{&bGp zIQmyFEIvapBNgjf)}FDcLIQzabE;aqOu-X!=la*SrOdTHdk-sU%o(9+GDkGiYGZ_u zaC&oBq-f)iCNSMGMApJ+!03BcGW9(x=wQmFBx8_IPinE@Tko=KaWirAbnVuxO{FY( zCG!52nQQ)!s774l4aetMb6U+A$z2}L;^k}o6grHJn~iwSh#5TO3m=w!vtG*9w;Gp+ z5wJp(#(Q+HB=H4{q~IQz>-g7BDc_a(9#&fv(E zg;T{xB!+0nBPZ6p+v#KIA+3m8_k9jSRH}uxl^=Gig*yo+9jZ%f!5()IK&-l+oEJmf z{{Up)9VdeRE@{gvn4-QuQ}c!35;OSXzfbHggv%QM!;GIpo@?=oN7fCFqiJ&to?Ma0 zt+;ga;Wd{>VC z)?W*w_?7Us@sd5)wj=E^Z5d)z5*P8!dn|E}m6Z0+=}vT6p=f77$m0c1AlFSf$}Ka@ zp;}ZbMxiuY*DM4wlx6|g=e2v+#_xlN!5kUhVh#fyTc4?~ANYyjeM?V)H8uU^w4AF9`eweKonP$bKhZ4SYhkvzf5Bq(;7+ z5>N6Kl~{99c0La|hqS}Y{Uh?$Y_ME5GhQS6Uif7^N$_7)aTlFEsu?5WCvhMWKLTsq z5>5s=Qn>uZVR*+!k6Q4)si(@j)>v2odFl`U09w9D=_Jq0Fg1OKCKK$>#s^e*b`G&I z{SAAM!hhO(PVf$eE}f}q7WZwisyU2q>5jOsDc8I!H-&sltLc|NGuuwl=LB`<`qu}l z+Lx;nD_J-{smXq3}P%uMv0> z8>lpWNuaj6z@8QXmGPW$_?q=Eh#wC8JFeTqH-m0P+>$St*8G-CjNtLwyh~EiuQZ7n zC4|K)ouyb{)yefZu@q|IT4s)+<0&q60eaC!w;<;`M%?=27_5C;#n-yT#7`#fa02kZ zfay_3r?klCRl)0;M6-;r1xP&u3e86D>`}&IXC6lMC5`te&r&dIT|UI#YH=!a&N2Aa zkL>>dC087VuD`;1B59g*+O5dI1NUm(PZ#T(CxT8X;5W#89os2_!L8eB43`FC+0uOA`1)^C!^#hayV zSluJS5nE`+4Q=hGIrGWtDs*8+m$Hh`_YVzz*d8VDu8NjOQc#PvS(hYs>zeW3i2nc+ z^?!*Pp}o{!%#`GJ@e*Iw$9h(u?I63}R(^DB(BBQygC)_sk*EHvi z6+s58Gh`AEG^+mqD9vVBI;d47b*k*y?NiAhF@O#YQS+H{TkhwIO^K4mrs92_bH#nx z`!)D=d^_OCWpu=oa!xttIR16^YOVDjJOKC9DeDaL*f~SM|SH_Iw zN=fc>UX}5~#nO1A#+TCXFBEbzC(sfFdAmeJdz*~cK5dBh)t_X27D0hnEEFScUaW>g z=1cPYz;&roJ*sopwM7bi{B)}^t4$zKGJ02lePm)@(=AAi<|BmWsNUQ(*8m=s(cfF0 zGfzu%#I83H^#F>@)3h6%Lg8FS%^q=_aa+q&qKS+zE3$nDN;h)?%Yj~rYigFNkp&xm zl}Ad_qqQoVNF({zd7=1pUn(@ImF-72CdaErmX}2|3>vPhK)g`IO=~@e<$rQ0DUtAj8 zT@KnSvkk&w3CLkxR9Xp}Y1l`n9M-@5AeS1IsdZK*Mn_!Ns|-&@%)PW8?D6jwcw|cp zm24vNx#OjL_v48F0MZ#52n)t*>wg&N_i3fNJ+s7P;I=-s^Dm98!Fgg~mT$~g1|nSU z=;W^BC86V2F~6AGa(^176l~7Hj}^ClYWDXIfL31P9GtFw@x^&hMtKtKifrCR$IHhx z_s{Hi?bS-!2Kj zJwX0-=w;Z4LlGGtBgGg9<{52DcGYTqapUg`OX6bhgc=1z#kRP*xyas2D^f5e)5 z>H3A-E}I@X8Z-3-gZhg7UcZEYZrq_5Nxtu)&lUOe`%QQ+{t>SoT*j%fByTWr$IZ$8 zO?|fzQB~+hvfTW?!|ZReolFFunc^uS3&_EzDKb;vJDC_@^rcwFa60v`%p|q3`=SCn zb)(ZX{{SqmO*50!@mfQ3PK1g&bHzM27^t^&0-wlJn)=Ki!jC>*5Xn06P?*LK88tg| zj>40Q^k=<}sBA(bIUH4p<2dh{Rb|h;PMq}XT@+$;5v)Y@;-*M?W|!t>$Q)FPr-NR_ z8!H9128?#%kt6Hr?^CQ{sY3P70=)%dxk;_yrDfZ|88nvih51J{BYdyBsH^u1%}AtgCw45DIwdruVETU*&?>% zjS?~!t}C3hzgSxXrE5cctfcqFc0x+Vu!$^lZDOZ^QnaVHN~gPW6Z~1?q>YNMI-h#i znDn6?F3a13s37x0ZD0vG;;F9b8z+jitFwd1s#n<7!*U2X>rPf^$vwNC^yN^ag~{zn z<+kDq=C9DsNF!r2ADb0!-ZDu9=BuPVO0ErQSlg1zkp#-5)DU8kjVma;9pEZFUu!?1*~80(tSzark#uP2Jh zyR*_zy0bol{fYGN?XQUD=&nR3AmfgtSLpUz>Wypf9Gll#*UY zCcf7Ft~^=&mEgbZ3WjJV@J%Dt1|4}e$VH;*hK zdvhg?l#3xs!2n4%M&7HIuvQa9rm+U9Uyq{{Ri@H`gt-V~L2*`=|UX@~7h8j2}?( zRraXU`L8^zQztlHNCVow!Tq$pHCyO@9~u>n%A1L}kRx-9kVoWe;OKOp?c1-mUpJR# zgN&X|I*eE8IR+LudM^=EOP@)W;oPF-wa(+=UWVGm((5;>u|kYKXX)$5jKbLnx_&@!6y{6t9!mRmEUbWv3XNauoOH-#A zhvvgdbk@VXO?qXxo@Qf-4o!IXh$Nfs%wRj$HR@g^w0S;Q8+x7%aras|w`>UVPbRM! zQc`h>*!esSB$Jce5A%yf+bQFMn`TdrqFyb6^urCxGP;UwHV!*Dm5!T ztc#uwu!BR>M3cJ3ITJ1{R<|0%AMoBpIBEDZ4jauE=9TYJ1=+BvMbN03}UQcalr$P3+mVKKe$zjJ_ z3j3?}Uj3Eh&@AHCyh8|VZ{B<7HPu5L88u6r5JdiGxSJlb!XDVg&pZq-ss(YRb;^iW7$;Lk+RZDfKFC-=~39g8on2k|EzVWE!P0D>~+3QX`t#{IA z&tfCg%$h!&Rd$bVYW&O1R$dYj_ap_jA{^&jG z4WgyDKQ=2^vkH;siLq+jDXpt%GL?gD$8IZ5&O^}kuG&)7Bj>Rc`J&%rRbL>ADmdDo zy1Sy!oVL1y98|XLyLV$%*c|l8sjb^<3f?j%alBdd*TVfpb-w~hZpU-1Y`uMmuOGO! zHadmHy9^lIujO5Tz&%jKHQk#wLv$a3&-1L$h!%fh@kPl40zS;i5L%Ew%*N~gr`U-0ec*mav}vw$1}`Ha_Z@e0f|&|RSUBv5}${{UL^jiq@V zM>XnlxAymeBAjyY{J)nU(!9)4_H|)X^5 zt6EMD0!TCT&JXBowfLoL_MI-q@p^H*d^7zt*sks*1WlMScwU zT|6`3T{IV_*b3&(Vi^xu5C03NFp*WX2I?<5PviISF!3kjlYI` zJ1yMIBZAs3>~qioUmN&?UZ2ET)$XZtyUn_g$+Vt>qOafw>0c$4;oc_@>&s>Nn(^js z9GfSGSB7?-P5%JH*Y7jm=3;58GQ*70=XYLBYIt`=n_SgkwS;85bH@O8Kb3vdpR|&>sh+}y^=cnR*E6Ock@>C!k4x=BCuP+A|UQZP+ zx<}Lg3HCfgS~*@0o=;14?@!KMzD2mk7oJWkbw0gnC|8bi>r$M6b6(Al%A30f?^R`P z-Kxeir13_Vq|L5s*48k8tewK{?5ow7{Qy6uOr)T>n>`#oIoF&h!D}aEdQZX~5LxMW zTFk(2x+W+I?HZq${w<%t3h1w{14u_+)oiRfWrQ}C$`an)0wVXo7!{2p?tgx@@-A+* zNmhMN=y=hNU4x~8r}kF9Z?EEN=r+G;)FK3AXFsKSM1L$t900hkH^MfYna}&9`qyNC z)b-_#E9Em%Af#9$)@f64^BM=Osm$uU+o{P zQ_?9J`hzH9&G%Gi{QkB1#qk?b{@n4$h;NV1ZZD=_-LM#ejy(XczWya^$>IM12`O$FCBL;7o*^4pia!DlqX12-cxmB%OGh2F;e`K?Q(Qq39pYa&Q zGefWv+!>qhN6+QRq`rT&Ts(y5apJO+xulXhsmGQsOwU-t_Mv0>xfM3rRbFdEA*!`B zDY${&lWlbV1n}6`wW!io*>4x`BxBQnPCrU(yBAv{wD66*UIg&8+RehLzq%W3(DeX< z3H%7I7W(2#>xPlvK70(-b=kv{BqWr-16^x~GZ-rQO zwZ3o&$tJyP;g5xu-#4-@4{X;D;awc+m(ihIjo7bnWsgMCQYgj_G5S}24v(~z`X5J> z;eD+6*#@h0_m>H67a*J(?tC%jX*Ti3!vm`y*11m%>8#9eCLFgbT?cCYd4}N(V+s#G{MVE9NYK2IDGn}J;1#JduCHH@{;ss>F&osg_= zct=S$SBoPLm3j8BN0G+WiAPQ=Bg57!r`U!gk}E<#mn>_Jr1ZB_9oZzRLSP(zwFGgv zf06Qi>R_uk-EL_f##Q;0XX#!gZfQHkTr5)g=yB(yQCZKnp7V zb#Ye!6t4OJ8$sm05sgUuM72g09i4_rC-C>D#~4){b4+D2K1ji-S%RnnysSjEbC|j$ zh}`~E+F#O_HS*OZ?IhbY=pu@8V-n!hsQt-qEB^oiw0ouPisCiD2Hp9Qn3o?mdVANj{{U$tZ&`UvS1qbuM$>?U za0ddS$t_5YNu^_A&sG-R7q+u)qE$>EUV^;0#L=?I*cnXbyLY(5ZDh#WKb3PD)M+G4 z%g7X*`RsD#v3}O8X9FVnvJeLXrniG~zD_aPwieztA%bAk`gWEzE0Y{!Z`ZwHCX#IW zc<7E=>dsiums}2`y=F4?uSoGuj|`#|M{b|ey|xw+=N(O68oV(S`Qm&=D-Ap?S5Bfl-{b!P!youq{t2Gm1XRC^5=SRP zmC43^2?D-A(c!kTAMlQNreO?_wlLT}*&mgDhsaA~10$iYmHz;1AKChE6I(ZkG#C%t z;TxJb$1Q>X0M|9^Vd|=W?2o6&GcRFN*iG3p=3j{)3G8%nHm9Rc9JblRC}EyPLB@Tn z&UBB5lX$~bwz9U7R^n#B1mpVD)A*}X(&T+I@#KzRcD!$q(~gy$Hmi51&lUBQl3QIu z;gU%B=s~Y@o88d;el=gQYWFq#ckt&__+zYpWomI4?wxm_&O@(Ej(usq3f3FLzAn&p z8Gm%KTzwBX&-1PC6?{y(__1}R-D_&Cs#sfjB4SSI21&{7oSwtAb2Hf)8Qyha<^0j$ zaqC-Blal3U&(@_nlzD3I&(=>2>d|Zd8L_{%ebLPtm2RT6ZX*{ARGfmiKb3el>}}(} z_)0z;MWB|pZQS(1DziclB%i%wY z*Hf${Lw}jW0mnQ6`d7}^+E|dgHwCz_)4$sT;X8QS!Qa|;u=$s^K)w`Yumh*-U!R(< zhF|R9lrcJQJ?% z@hHHu@l-Ek3ft9p0y0H?297D7rAj{Xv7v9{>&+KSxVBBDCHCpl{40_1ABZmeU1Du+ zOHU+Ya_5{V|&OClnL zKQ=10)x!oJQ)AaPk1Vu0`KJ|WE2Fd2J|4p}N%ni#OiRL(B7%PkuWRu3U$Pkk!r?}L z)-HdYak5-Y%1@j5RcLRnP!;o7Cqgq-&X+=cwiceQ8lA(-c5NQ5Z_=N!}Sv$*UzADvs!<4Eq(S<`YW0!QOr6yB*b=PD$VJ5LAv74dGpq|1M4 zq{}U)KJZp27(9+EmDW5naiv{67pde+8)1=#4<6O`N5fCr%fns~@b#vhHIyrEv2AUt zpy#GZ$JV}2{h~Z)rg*o-_j;a_50?bTI2i6pC#SuA5{)R*x$#u7mFr@iHw_Oxx6@

    _sk9zr@e%};o_UvOcH8yZEiY|#bY;$@2zf(sXT^L&gNoz{Y`IA z9fzkceOwkti&3;{*`H<0`!D=G)e%+%w!@65iL!s4dB4PO*yhH<+FA5Fk1kYF#x}sn z13YtH6=U&_#g-Dr*7}yxyo{+o*0&`6qC9NU6E*V6Htjzt9Y@x>r;N+$M$HpXEX}a; zQdO>bmaV4EquxttDBC1$wZ5aZM65Oe+P3v;=J5sOw|4(hkf+%`Vygr&%o_bM|EK*6fayK}`_WgL;kR*|vCQC>AjDDHLqh?xA;ypRV$NW*gi zI27%m_2RH7Pr42dCZW70DDn5Z{VH|}%%i0{$Tu@=9OsG>a%m$OOP1~IeFgg-_+;N| z(&~~X5+Q|RJqZ=`7sqcG%iynu^Rz9t=KJJdU8E3eH}-GvBY1bfHmAwNmj$FPkKxEC z^sgEHsJ|ddUpYMjy*VoBuJ!_=QNo9=$SN*swU!=qAh+PC~EWA@EPBeN)nB#OX= zj@%wA)V>nv?Qw9B#RE@0(|K`)8T2)jb$cBWnv7d}8(t0gQ>%PT@kDUgz|!P|JRD$g zo}Gnz{{Y2rfx0Kb{{V)z=_ygG$hl_YJF(Dn?de|k@QcCvXTjeG%dB6-kz9FxW5~b^ zU=xAIdif9Icg5@9jo%O?irIyn&rIcY1WMidwdQ>eX zxdIRmO2&1ZbVmfSQkPTDbl-;1?t$c71?oQ<>i+=Y6^~7e&9#VQr%LH9bopUpxp>D) zw{Ga_VPS#Zv6X4`XCKxjea|!TmxOKgeGYKYt2-wr9@Y8j@oU2kqj-YiCR_l-{uwp; zopECtM! zFL55;ypC(qwYwPQ-yU<0ao)VwQdhQ>ke)Nebn|mZnH1l=(=%@{pkQRx?+NQN=$<07 zyMeILO0AK{LNisieXF76MQ1K8?hZ~Eo+-idwJyeTimL}1Y|qs{5BQlpS>Rn8U4g`s zsxO;^lbmFO`PYSh*xnzC`p(N$jxEpS;g}BR0B7>1e#ky9mr?ND?u~IKLM~7-_XCf> zSFL37)ntgBp=f)8fGG%|eqj)1faUa(Sk0E7a4A4u^wA0dHE`HzkjWhst^i*s)#2oMd9N zE#dRnC>RyfTHC7IfCdeA)9!WAr+r387-i?R0}CfB#aLMJz&I5ocHpj0HP(+xG19?q zp~1kZmMysBIje9)k)b%|p9=3J1+IwdXsMBVpRW76vimqUcY+ScdAtxCXqvWTSn+6Uly|g}3 zf(}JmiFUS6&FxVstW=XRyp?o*L5>_d!3FIRG-qnpRv^)d|c$Zv-1o?=dUN`e0}?5YsqoqEjr6`kgCLw zrYq%p=1FcOa5)Ex^*`D(#2@gHd``ZRf7L>KwfsQ;01ERowO=KhcIIx2U$|v7Ru=ZRfRUXtAmCCH+Bf5cr^3Gq&doBL`IiyK7-VD&AJ)3Ri(eHq&xSr8 zxzsNuQ*f$GaFR2{eoy>#_|2+(Rq-{=_1ughSHy8-;3y;m`C`2+zXa<^PHRKI4~KGI z(pwq+HTZ>f<6Umz?*3MmSA2lPoM*LH)ip^!v*3?AV#h)B6~^1!`PTwglMLMR>s?H` ze78371_Y)$*T0IZCn(ceBi_Q)a(s(pI>%0)^6EKb>}%FEHFdW{cyrKaABAxmPLC`L z7TGqgdFh(;O#)|*6kZs972AhyosvGw4@MK9>9cy@!l`!~0zfV@Dky#*+s35a$&;UB z-nC)W3Xn1vj8=8lsPatFGvpoyE3xy>;%AR6ri>+fSrRXXY$MtsAhz3t!k@4x+yQ0Qg7nKSB6kVxr2~Ug?MLE?5ohag38)=8NI`O&-x8w}LnkKmk!e z9V=B-4wd!H;I?YJuX3Xz*?^rmhIyznYGPnT_0TmN|boMlXcUKinbVo<2PDslW-m9{0Vhw4P>S~3@-aWam z4y6R2H&b{?y$TnK3L4|}ILb2~g1bwF%Hp|QaW=8Q?O#=w&uE==-iIr3_sw)38lQ9} z4@$te`^K(#e(TG-+IkxL{3~&qXP1~qo|`zoirQb1ekWDHZ}G1{Ym2t!K=0xv!TMUHFaB|uDW}kMQG^Jw;$c7 z)q7{$pwz*+uTCe)REvz79(i6VVf)6A5J#moPS)bKh`f&X;dZQa?-g5o*hvP{_>e2O z__b@dQn$DR<#on?5B|M*4u^JaH9JYOjjj%V8uu?9!~Lbn&`d zjc`*Yvh`TfDacj8uQnL2dGaKCj}7dgrzT_V?Ov7e#$kP?-s!G$xmd5{O?m66^sa~D z{-$)_5Wso|`A_44Sz}`7McbfLvyw9PD;Cr5CbnVBZMX8OXt+GrY4IaZ`!2X>9JhS&2y8S9Zw+KMU&-JbvH6v>d)z)ZpnKn0i z%Cga(E@MNL#b7LB!t8794>#}*&k9}MBTQJHKc zSpn~~ovc2XKc#rI@)T|cE6c-FbB4V%J=xP%jF(iIax=)?(w1oPlhjpMW+ZjRTvO&k zPj#+>d34aK-Oek~eBt6B0NtTGrG-4q4!KjG<(l)h;PNZ4_;aZ$Y7*GWe|2*iOm^sh zrfV9}_j#8?DslJuUsHsV63e)AP<@Haeqcr^({>IkX7=uSUM?=0if zVDROeff`5UgqXMYxz2t60Q%Jxu}+drE0u)HmL_tHove9f<&WDmd&o%TqG8k6;=GO= z`DzbdpVGa)TZH>$sDm+XA$>8EUM+nIved4jVSya1KT=2OUD0k)yFA=gA7d_2yLt4Z zZgKVgw1K}GdYlp1XZqB$mOT%!{{U#;85OY8d_M%3`${d%&JXYd@~_aa{{Y8p!h=?y zjkUM&FN`&9LEAC;%>*Oru!w@|`;6#2^$C%W0YDWc6d2i&8Plj-G@K{>e_ABA1qoK>Bls&sN)<|=)8=7D)wOo2&l(oep`*jRK?Ym zYL4=gyZMN#jCQ1dm-DGTc&ONQ?^b!SjqP!)-zgvGy?Qsp9SqvrNvcekmSM6lWX~t@ zBlNBtMABPX)nK(8BOJSWFMsg-YuYWLOIvh`HQO9(w0dwcUM6E&(e_c@pQmtMUF|Us z8&PQuy?@{kYEtq*=Ca0F@H_A-#q^t`AbR84tmrmo?)iAirziSXklLk9wtkb#EM6^B zU0K`ccB0zK81c?Bey6Q%DBUV2W%-R%vyWtBio0%wnV-Miug|enIi%!&KxNovMwBU} zSXKOc)7gY^l76%wm2uzLRZGc&#>JQ_D9I;*z&R$oD%CxlTRy&=ZhZd$`&f9OS$Iwz z9VEp1gq*7N^3>#$>`p7>W`}zp_C|fX*Q0!T@zL?O#7o&>Y}ncV0HVR%9i;AI^*Q{j z&xrElZgN}t=Dw>f!@NEcDqFo@%)+#}s%TSuoYh&EEJsST-A^3Vc^Bq2*pLwQ>S;E7 zz;`@!sW$QHS~@M5xVjG_<}~Efl(|*ea9q+zw()(BO-O;nl6=khX0x4pRr~qA(QzY> zyPhhGEoV<_oimonbR*h2_ok8UQ!?YdH}$Q&jQP8bRV!YHWseJZHH(dxx5o?Eg$MeB zT;GJWmDIIF^GEtTXLP=sdUIAhO{~eR>TeQN|Mu5y1dSj9Osk-a!NwG>xV(7qe!V%FST%DnXz(>xEW zU#bpKPEYAlnA1(QND}~ojw??{fo*M!hlg%!>Zrrm(^lO5Cl5_wX)aZ%qZ+NeYZ~wr zVxwm)$I_YRZtt2}xUQ_hM_awgqkMI%5vuJZim1JP>Pv_6ZOQIa|M`C*QG~Axm=iTm2tgI|(S;jf8 z!@?Q~y0{WDk2E57CYVx(m2=pyAh~&j48`Cu{t<;dV*?M%W_~D*B zoRVsFxRW7dT#lUAj8qijSRi;!!L2zZtdJ>nuU~u>rY*oBXHePmFN#O^H}IkPSaKz(^9YUr){Ua zWqIvF<2={R%9~Q3r9GMQ zmw|8MxUn!6+Us2l+O^V1?s>)sPU5*J{6Br*?QQMup>#X3(BrSIcJ?f{3X9QOt$npD zL~5ldvxgOiw3|np>(=vG-g$8;!Q{7IwVk?bfW^A!p|59O4%%NaEL56_{10r>5(4e@ zuK3heJoQbZ#qO={8BW$_-Sw=swYs&`LNYXwze@It&j`b6u2iml>z}&QQKtb=ZeBsB zDv9VhM@@>S!)Yd-tWylj*YK}6@g9dQsg+`Eo|W%5u^+IABvI2j>t0jiMG)Oh90iQ0 zh02^~G`YDgbDJ!*>Paom8EhKf1$P|u{7rRU6VOUY=eq6OG6hTF&k5h^jE{6bcB~kU zxaf0TeyrB|JOqpltB=aO`nZ)R%MHv|N`>*zW@EXaZrSysO_2=Ai{Ojbe0r(!~ z=Tv}sWT`%t`akfm!)v7YO4>cUPQjktK(C78EKf8e2t7{UYxR15Z1E2sw7w1T5!7sC zG0Pm8Dl^V7f2Dm@@bAO}#GVwe)EMSQLAyMh8WX8;mf`Lu(?* z7?B%>994yL!98pAI&~vbJjtJ!>lS?H@#FSJ(mp06x`vpmVXF03PyjzspIZ2z#or0M zOYr7*)Ag$<9Tkq*qf)?(@Nz#2{b)tn`05Q}c#FasUx}b-Z>=M^R^aa$u9|gfQrYNz zmRZDAu$HG^-ii4cEs3|9Ib!)vFnH#=Wxh+TIU#7lbHg?Ude_+B6n|q~BUp|}{68aU zw?BAC5~x-_{2KYM#9smYW#Gx2UTMv75}XMj1&RDIUHE)gziDWGg@w#8c=-P6c72)A ze#$;Le+K+OxUg2mtk^#{sXyQ=^ean{Tw0{aaU;+gU|kxX*=)|&P_>Uxv6|V`Fp)~&*XHlX z{{RWe;4d5BSv(tUC1UY09CqpWlV7C}=4D1er}$UU(~OexKU(%U)r*{G73|i`sIXEmI2S;-o!2F5uY_pgdRJIAAVlf>_=czPcyE0g9)3ITvg z{{Ra5>&9QPU534*E!T%G0k~z{zc&YtnI^ti_=)hRUifJsgHpF;Wo^0Yt%2CrEh@A> zhaJz4o*yVtlEE#16USD~wiY7|(-mE<%DF7L_O0orK_eCzKgy}kvuGgX*F>qU&jO|r zI_PuK5Ug{@<5g}O`?aThsL~u7&6+U0=D6h@PnpHhj0im0Gmg}OviKmHcJGuNVAOHl zGDuF`ip!Mw*~hVN7sFtT3W{sSf?~>WI2501R#Bb}R+=sCo!J!Og-tkslLeG`Hg+-Zd zu^SJXtnCx9b{hq5>3$Es@uUpeUYU0Dj(0V?0r}$8saGtPt89o;v3a0!LPZcze<}P}kwNYek&5@B_ZX!#es+RW^Wc(^l zxisCQ9XY4NmTY5+=3UCZgf}~*!5oV2J`4Cwyl3M}3oV7!VULw{XT-GPLl;!4q&CYt))&BstSHz(*!{Ml#3m?rU5AgyB{&n%^ z4L*A9uUk39E@eh9M0p%1gKG})br-!a$dc&oj{>MD^B8BPT)2=h#%d2F#5Z;|@^?Q( zQ4%Wld$@#=HhCoUJkiV4>WkR?qxiYt z>3kdFtC$@bBW5Lffz;x>XT{e3ONIl3-oHZs0BkRX{{Y&WIn?dp#PH>g(aGR{_3PlB zT_e7+l~`fp<7w+&jvjo=m7TKplA1W}G_LdO(x~b-{{ZPg^f}FFS;Dc%#~cbZ1X*J; z5B|MujPI?FQ~jNMTPBO+3w25Gl6;K0IPd*Ued}Xtny#O5r^-M}l;nLzEArRDy41QJ zwFK#q%OE4ut$veyCGi4ytHbshn0{3Nai7H3=sY)FPL)hNkHh%;2Iyj_<}lLQGvP0d zz7-xD@s6cx@$!z%?i7+o>0VbHh1e!=Gt$1x{j@vU@7^x%9 z?A2wHp{q)IbAevnE?v>t8DC=LcNW{a7|H3H)M4+GVa@+wdkp6bwd5i3;I(Z zB#};xX9S#6u%oHXSE+)tJ-`k!x9B+7d;}x!_Y+_EUzy#Fl zS~J%*U0WYok}}NM>eZxV_BvEajD=T$%{npXHV*@>HaN>Um@1^ z{I1{et!UL*f@hkiXA-Lu(EgQnFs4*d)~ZFumCKN!jD;s6wQTI!@y2t~pJiehQCkP6 zdg!$K7~_x}Za$UID7kEURH*1fVWxR8nOtLScYg=GD!x4UouOHXLH+kF+kj6$m1QQA zB+(I!4$IvB74~oJqwr=w3h4{t4MGJM*Br#GIYsISKH%4bn`5JZ!%1J>XBJ_Jjv9-* z)cQ+LwT{P6irEGPNUO(A0IYu=>O)2FmHpmuQX)s!70^PzyCn5B&-lB;gT>aTPMO*} zLxSaaCy~eLUyM?cja4~!x%sk}y>@1DZkb%kd$EAHW@Q?OF zwA12>{{UZ;&zAuCJdA&w*U`Qn@Sc<5do{JOwMc@FSPT~TKJ~TtZ~)`AeKtRcu{gM@ zRK3`vT9~QLTcMGl_*YHv-Ks%hYa9wcxS)PKR>Lq=IX=|XJ6M)EHB$2Qat9{9RmxL$ zZtUdTe3uIfkOwuwd`kG4r~Ez8r@g(IR#2y6F~QCbKc!aqi}627_rEd~wx2D0qtW z+)l#PN!Wq7uK>T1rkmv*>#M%9Huej3a@!1t03N+Fn&sxWg;W^E@=t%QeQYfhly*mE zCbCUaj>vU_vs@q}IIm2wx1Mbb5-OUFJhpypOO}it7wUczg2_S=A{{V(;{Iydl8yMtP&WG?PSCaVssxXXs zJ5EQfb}jIVOM6!ac0dL)*dL8$97>M2KCU^|8jARjJk_3CJHf#b=YvV6T?f2k$)8Nu zyvOigOkD!fOQ~}zt1vsaXMlMbubX^%uSemXX66`q3nn<@@vEtd_N(0Jc(|#i;%`DY_1cR1p@TYWzA*MFS*(T{B6 zzPk%GI3|BGXCGLniJWS;bJ#u+>lz-C!WLs|IpfR(^IuA68l;fghqcsWxsAEQ0#Ea= zh2U0>K+14Mc77T0#;>9<@}^@SOl0D`?87UDHS=Fn!@%d*yq--bc%No3iKbQo;>q<~ zVys8vXm*h2Vf61_3*oPdlU=eb&4bY9y7_g8Z*c22N%yaa#PH1*KY3fw`^-NdRh>J= zDZf1q{k%+d3!!Zn$}@u1)Y-ygg-2d1!(-N-&QQ^}%sH;x!=Dj@;wzkIrg*O>9m4#O zQp4(cS#KWE#8mcJzjgixqvNGVH$zpd^{Z>h!z6>6dtSvMz+exhd_E@uh@o{T?0%Jo z$6@gaN)t}w3iFzJ@U&pHFY>Pi#jD*Oz3xWebkU)2ib3IUT)fjne$hS`Eckx?RhfE_WjyW$RQf6NB7Voa@v9RODUCMLp4I#g%zD z>0Kv=oNBr?_LCvY7b*M=l0AK?LR_*;DnU*bDKt$R zGC0F2!Tb&?Iqb}khaEGD=sZj72hs9+@L2^);Ccz}vKBSG^y3CXbq_D>oKn zGzEC=PM*P*5g_DstIY^(`qldw#nr2)QaG- zT{D8J>S@`($_9C>i}O}(t8Hq~g#H!i)0UQJ&SGi%+{J`nlu~WMJ?K_E_oHd9xSRyg zw$eKq_x}J2-2VW=L-6)U*oJtNpU5BZub-pNd9P#mE2)Nt=E2Vnqzw1t{{XK_s`ojU zO-@;^TCtzY?>WWFsZu!{RjWC^&mu^98Rn$c?Ee6>^_!@Oz}`sw%~#~FUMtpZPB-p) zv}DzvW2bFq*UAM?HI037_L++gl~o7IGs&j{dRG)M@TV?lp1iTuYo!@%I8?T>n_HNr zUKv|Itwt7s)`@J<)lKbl)4XXA)%+=Ae!RNy$G-py^A}#ewduYZW2<;7>d^Ah@;^NP z07~Qtm3pti zy>LH>CAH7`$Vbcc@wNWd!dxFYe-Y2>4Sf9@)5Ok`+3H;%e+dTnjnTxQ zIqQnQYTH=np{({hdV(rgBxaBf)!t8HdxgUvN_L%m+I{>t3&D-Id(&<{?t0Zy+2)Um zEipzq-?7tpp#y7wXhHkCsMbNpQ;ZtPzG*z2pq-s@o;dca@=5mZ57|rBOIK*y*Jj%;lwD05izjPeIsm45Q)*ZR}Nxz8gs<$&&9-2VVtrg(8Z z8DqkhKgG}I%`cWf9Dkl_e=oLkitK(F_$~Zh;s|4O&8#Fm&D&@>#(hpJ(w$h)q~|S> z{OeBzS09Ux8j8H8?f9OT@T0@<_!q&q8vdX>x#o<_LvU6wK2`dk>t0c=Yg2fOTDsI{ zIg)224@Kk!9>8L~2jf4Bgx3k-`zG52KkI_@J*lwzFTl@0UHoj!)^w<5A3_oS#FgjTu&)X+w5*{{Rp4U$N=p?p4J1KQQ)D(0`v= z>@J(gfcoN_3<(mds_j)61JeT-s=B1Ra5I8btGrQPoo)JN*Fub?X|1@>$0$k}yc4Qq0Z300K!qzytYLz<(LOA-}{=9$xB8 zCi@6~(d?J7jY-R6)s9Ynm4;u2cT zP0M=YIUmle_)kSQGn=`FE#di&dLM7ro2%a&>&YZM4vXo5z^*qxZBvpvEzY<{*~gjn zDM;CGK~bO1oPFt}S7o#?<|AR()`;URAOK{ZDcgS&TmBW&(s!2n9YP!sKQUa+GwyoTtw!;+3)h_R82qEqXMs`231jPA zZQoOUv@F=$nWO*=_OEgHd*Sh<>4x@I+E`?MRl$5a@T+RtiWXmyPEVzK2Z$z18(6HM zKXhXQ`B$ldq0coZvGmzK70!I^73^buTK@n&S2?Y_rxCxDy%&nLq3H)h(BAHGhhdSC z>(aUVTjO^#yBwA^?{j-eX|g`QnN@F>WNO6UHCbA(Zyw?}&0bikHgn0LZQ0^AB}M`%4BlK zl1^*p>rV2q<3c?1b9)TQr$?4xDW1LSU&C5k>e_-vppXttb4j~98c8Uo+1q?Q@b4n# zRpY3xlf-w+B%;+%3(5Sd@gkK z#UH)ga(4SvmhvG#dlhy+E>0NruPYF}q&Z;qI-xFCsa821e(~ID^nbiuGI8rk_7qdO zPJ7g`hR6qjUpnPlFP3_m%1Qhvb-X@YfUn)Du4cj=y=XEdN^`-e__$w`{MGK@>-#4f zbmi)EHGg@S%`2;x+(UKiQA6T(x4IEra=FIpyQteVS$q&HlGK-WTy+)p5~D*GOH^i? zyGNzNB3wWn8*;ZwW80o_S^gVGO(r7z6V4CNR-l&$75UyGjX2Mhy$QREvMI8ZIL8#; zrmvM*2Tarw+V16eK9%Ow!pbi3cSee9sb6(iwZxKgI#p>E;m+kasq9#`<`nQZjwUKg zVyE!jvcM}4DW~a8cQqd7&T(Hr@v2g3Bbi6J$#~1*rkUcn-Q|Hq_~G%*c;>h8uJgm0 zF{zd;@s3aOucTGqcTOq`%T&HXu9^HR)xzT^OM|lA2L-Vd8--9Fqgu4jMFm% zxrwSGHQq@a*QrDBhT>ogJ1F=60QFQ?Uj}ZuFwLI*hxD$`uTpwNk;<&oJofVJT9j;I zcJoZ|zk*=#rRce3+!fAv&qG%{ci??fP19XOWU`K{ll?1e_Gy|$j_xaz#F=0Nj2`vr zVx=mWWjbe-gQpBNc{`cE5f;b5dQ7VrRA%YhwS3{?Ul=~2y;PD-eINTlcrQ`$1=>Sw zjOxccel_PlAN`+hW@Kx$BcaDRuOACiKF^*@Q|x6ZIHz;Td?Devwf$N&^2rRMUBisyn)C6Qh1a@rdu0jV zq2)gh{uL#=M1IZ#cVa8(tr``FOAvv8st4u8Q`7XXvch(arnEHZ%D~D_PHW{cPIHpK zQ!3bpTV98b{BVJ7tzo-m{o1x4>4RCHvpas?@Vvpee01CgS z>WQdANckLfUiB4}sdH@`e+-HkR&K1LL$#jn--cD(LFT^44~nUWN%TJ_blj!O)ae#Z znW;E#hP?j(!=Dqh-w*=}PO)4oVU(O64m~TZj`>wa$v5}l0*7 zmeP%uMtWjt{*_y+{ljiu9C}wK0p7UE=I{PmjN5-wAl* ze3DuHj_JAkMYsyziN#=iJn(+8@K)gIVpi02nV%8AC6Hqrn)i*uMarC-t9_@%eGpj` z6V|VqR{H1!c*34du$RC`MMp4&$Em?ORl2kvQGPE9s*PrEaI%$DWRh zU$X_UT?k{vS-pTiU7rH#dcwfX8ppXlHp_njMkHj?s&75tj7@%+3V^~=i7n#M*_IWVP;2;!q?c_n(*tk9~n zamTGzA~nygCrtUt#iKdXZZpL-hh3(xOBy)HZfdEBD{yO>(~;)XQtC&!)jnamppm!s z#am^<^{Vd~AB{zs$5B4STXuoP4BJ}*oXk~8Jt>Qc2|a0R(B-oYy?(WB350Ah%~Z$d zPAj%D$E8}iRy!{U=zs8)-wPyQubh%{dYby2zNjT46 zPAlazHo^Mj*L#=N zGVXe--afA*QlXeSbY|QwvCDHBklY@W$a~cHK(lA2>Wx>+Z|7ehHOzjjJY#k$dw8~G z&jO&&d}LLXRgw^-;Pt3+wUJ2P@K1+j@h6GwY~e!hG>W@aWb#0-(+>^!b`ORB01o2> zszqsTC6l+zR16=)SIPeXv4_K-?QamtuUw{Lvl)!A$R_}b_kY^s;sEg9!+-49r9iR8psRd2C)Hzp|$7 zx$S?k$H6;KhrSmcB-R4OFO}voagCz`n)yTa+W6>xCV0*C`#DQlTDgrvo;V;AUr7Gh zA0Dj!9%ygjEehdQU8Xs_v(thIuYfddCVv$8ksl2!O8bfH)PwzNqNQc_PaiG8)T>eA zE3Hpb{hNLtMXG9$%``j1u;h&5zd<}D;d^}!I6Q^g6c6Mp&Oc{AhA`-QOjj2$sj zOlNHz$nxYLVU2LaayjW;E{?&F5zlJIzT^$Ode)YMx$rTH&Pw{6lHBPdUzF}OldFE` z?(v%3jxpsC)cV#=p&Mj|!qn@ArdYH-6nz7$S-Zt)jbYEJ@VRIt5$Zr1tTF+n# zlrMo@r;4<9wTZW>^H+|2jw^&|3-4TEg?g9j2{^klu1t4b#`OW)PcqP0u@k3KZj3g5uHF1Cr;!hujE9X$_6@AtGm5&x=*27 zk-Kyq>G6Z!m7~cVQ`9eN(v+nM9Mh({il=DlnvgqV1Da~%j`bs8VDzt|!{R5Pp&e|8 zLfCF<;>Z91ilrQjybRTy!I!T!^%QFJC3DcH652>Mni;`i=};_yU{u?K0gjc|d!6xG zY7E3=jN+j(9($U#v?#!%?BQE*6{0QepFrX-jE=`OFtiPh)n?kvbv)Mbf_spn zj5$#FVD`gYYj27ddi*lTd zj)2wpZB5K^@w*^ZD&uW{>5$xliN|qGD1p}I~Yi}H~ zW>b&GuHB6kJcfuvD9YpMS~fNc*mK9$r2W%jQyJ}AR(2(Z>9B}7tmN#qX0eOhvuc1U z1X53}Y+Kwlkyi@R%1#wmueDt8PlL5z7+*(gqu5Jw8L(YckUpms_E*7Q*&Zz>;tf~C z2hEX2<+or69C!Z!^;gZ~^ST%$;+@&UjLhj_BV_K*7xsPl8>)ET;?r5y?R<+Q!zz^{ zJcIr<_ST=KC6&BTsmes5RCWLi571QFew%NmTPzmwEJ&jPQ~)Z*-K+@WzbMD%6*1LZ z=Ffn{;-`wAG}yavxCW7MxdW{=Tx9don>@z2LE4fsCZR+|1Nm4Ab9&(jsXI#a6c6l)4jqqJ4eOq%JWB%@-ycjG_D?Gxdy zpDZHjCe+w)iolWY{Hy10iJ!G+j678g+HZrj$s)I5hP;e1U_UQ!*1l{0&(}Or;z`c0 zbn@LtmXJu<^dwiahrp^{{ceZ7hs#_&`ucerKN7wwYkv{7ON)u6k>D+bRwRMR{{R~0 zbWaHz%b+9~E%SSQD_-ix80HZ$Bb;{wgI9IkQa=XxYHRsdY^@nsm%k%}`d6VEj#5#k zv^1?%C1|T8d0&q%zR{_@t`%d1YyfoQiml<#1k0*hmWno$ZzpIbv*wabQdYT;e9|`T z{Z4ifu!ZL%W%%pd( zq(5dD{?V;88`Qs-oxOR;6_4>^eHK|RVAIw)V?%|QbDwce{hF?q!@ef-rsd@MQ2rqQ z07~VlB-Pm;T6HNkW9h5=6|IKtaa5tBB(E?>Q>S9y&ua~Uh0Z7s;S*|yyT?& zptdNpqJ&;IBMUG-X7MrQZqcCXtQ3><1zj9Q<-q^kKb-J-GV#7uh0|MNt!UdUBQ-yp zt*l7ZgKzjmOsu!X^KXJStL6NFT^+kd#s}DoatX#8m`9J|MPoc(954e zSXhuP7NQf{UB}t0b!g`m`Lu)l9^-OwB7F;yU#PvCoCoupzE}Y>%wkiA#VmhN^PehY z%6ZSagq3rv$)+&huQGs%uEl-7c{|>23a)U0ey@j)n!rDXYCsjIT>~L5O2^g{HJ=45 z0UML1Twk}p##d?ekTNDZ;kNj{HrZNcb<7QXz_h*VIu+HPyK>!`ot7AB=;x#jL~jYe zG3V1%bbGmwXy=RF*;<^%8({vmX*m$0ZUIl~(kf9}aPW5yT@5c?dmnq!+JI0VJ^$%t zhu_PG>J5TyGzA)p{pm_6hszza4kruLs3~9T#YPUAo0tN%W(J@!tq&alM-(6&W0pgn%2+-rKo8VJ;GbEWI~2>Z%2SZMFQMxU~quC@f3q+0zf1#T)I z9|WZ(ZD1Ysn*3F&86ajoPs0GsA5lkj|nEC;1pg}&0Lm6j5JeKTI! zZG9~gX}~oJ{i&8JgO^#@$QbWeYjxRf^MH3Xr={2T9n;u zL!%9|T87}SaL)6M)IS0@TAR^1DdWfA?(DzRmu0z8CqIpf$Q_(S@~*Ow8H{SlF^glk zZ3+j{43P(9T*Nl>2vaWV8k6DRoIuMC8#&qyq@({nJIlRH1M!?X9nnqzpy;WSbeWY{ z#QFy-oPL5g`MAYm);Ujt=hZyDJ? zt}%BS0169l>y@P;eY9d%r$PmI3+jtR{I#E^$4m%RY&0=5_asVv8$)_8JwxJKVxIW^ zaVEvcxl#AL)vXIXBreY;Pw63nz`}*xEST*w5jfw)iI-^kctBhs;}4vxLQO=HRQZgQ zT;Z;4<*k3h+lU8Qy?{+f=3APrj=|K#%&q-`Ly&V`pQXJRkz&!TAQfu}u^(Tj=-%p> z#(KDww`Im31{}U5qSiahHo}fsKO;u!BZ1|%8ThUe6?t99c^!b&)plQx)|#BE+(@hL zf#$fO1gQ!*w@p_A)nf}be9WGKh#M1X%Y&4(;Ul=7geA7Ib5Fdx3;JhXu{ekZ7dKMr z@-9Ix$tMKX_+D_|;sy}vg3mc#A?H8UhYrcyrhmi1 zjTAPGO}am~RM*#SWKEaV8Jl$y&ItMM;TK)OM0fHD4+*1FhAPi zal?vkSc=Y3^Z7V^jE~=eqRV*+1Xy4G55el`_H{Qig>kqMOuyaH+eIc&{&Jb{-G1NZ zIeJsy?bUp)*W;Evn{qgc&RWfxG<#du&-n84@0@(5RaNVR&N<3|Jy+O_@RoqPH?7V% z>EML!GeI3zm#>5GaTpBacA1^+|b|)E(4YMsW&v>1Omod04J9az224lrUmf=f|gp zliz)N;;TEbMAynW)xw2t2;R`CXtZR*TGl5V6|LFs`h%fbnv3o84w)|=F*p;S*)f9b zO<6ywO=DK}QNH1^epV^+p!1Z)yoS-CXWVK*lwKxcrpYO`7Fr%SjuIwdjfRe2G=Wun zMJS5O^Ou5!{^8X)F!(?FP8X=|cbMQAP09YN)a==GVBGl2H%3{?J3=?c{0S$1eAuZz z8~qpuxCwj)3wgL@{<^GWBHpO$wI+d7YfZIcMUf3IL#Osy4{(g%a}E3E>7Svck)U9Y zcfLMHKtxakI>v_A@#-{z6>~^*)_nE$<&J^(FK{@}e|YAG%6cCs+I&vp6Tg$SwBoWa zR0Ciege*+1lrfnpWoBVZ&v|cQn85{`twi5e#hiU|%eUI31*ahN9IB4JC2*49Sq0RK z1Od~^ENxh`;~R{7q`-WRl4l!8cl#)`6b*T8PD>gmJxl^o=nP`4pF+rRVVK-eF`_v3 zInk=#Puol3tE*gR@T*-D>wkFR`x0+0@3QirHAa`Q2Z;^`LOQ!KR&5^Ars_wMG#|~# zYe`=^yx8{M&YMZ+I%ejBSz;sBeVi`~iE)APCUe}qEaQVF`i5NJxi4+J*fwrME!Qve zms8{E8%Ov1woO!1_+B|W=8g0I{tDne_!HEey4(DIRjD%aeH6!unvFI7hI!^cJlT&> z8_=ldm6y!BI0*??S?c=dEv~p~#qP8u%Xq#0ppT;6?(SP_!?0i$yRuSu&OJMQ zQwi((ea*RLgb-E6&r86mSX7R()Xw;BPWgJ%+t?@uH{Ih6_uoaGR60Fx96I|i?Apbj^82_#`X`$Yu@AU8wSejUHlYVIt6Jd zxsSh3y8OG)V;PT7gYd3){N6Zbk$=d&o|MHJHF@xc@LIQv_sFP3Y)}vJy;r+{TB{2v zaH$}678oOL=V`v8YxUAB3?JM>gu&%h9=VvM26!S{37(v z?b1R-B{{Jq_4@`s;$o-IVxujy5 z_FW#>;LK}Erydd88;Qz9IlA%uRZ*$xG9Yty{BP^Ehcdm!)`@9UDp0|D!4F&=!AUzQFZpP@vXn;uaABcP^Y0N zQfb}EDeuRS!Mvy{TrR3zDK7V9sa*KwngRiB>GBxb*cD zJEYv+FH~S5928h4?PyiNMi(H0Z;dS4PqwaH9BFRU4xT3)E#;2_*Wt62O0_lhnbHP|PdnOT{G(C*a$^5|;tmZ#51MHA!%O;iuX>MP z0#BXg@M^xTIo_>fO1FJ3T`Qrv+>2csE#h9lzZ1$^CzTR{GWiv{wmZ&g2!mm1WRuc2 zj~Zc!vFWpK<5QajooEVda10Nhfwfs<=`=&9D8k`rs#`s*@k7{kNV1EYo#+x>_fL5K z?3w*WtfBV&m9hG>$^5&1b}XZ&Z+5+;ed%ujytQ)#=V*|)tZ;V=4%uz9ToD|0uQRD1 zAoCaGt1Eht%IUWsOLULikp;+mU&2$$k}((H4#_Q9u^(Yo`uN6lUfCXI_~L@6OzS~zP8O=r>D3i z{7CtS=Oc=Ukzxw!H>o)O#dONalx)INu$E<8jnPd)g4=a3lnZDL1;BY0DBD0hA}1DR#s$P2%40=6 z_*PmFG#L#6X8H)=su~VGZ&?|tGdHobi-Y;1ip|zV}4Y4tRf_ zyeTUV<*24#*juI(H!1wUC{)6xP4f`8oYh8Bep)3d^J2~k=OiWSYW#=y)e}o09bDfg zySur0Rc7o#6sSgoWA(tEg86wpt(M7RcMUYLK1F(euJv}f+m6&=PaZu0Jw3#dao#7A zFCD36Jr&qDk>3g;g5~K=ZA%rvwE*&l`9b=sE0dp;aU&fx2!<$23zi^BU&J^q9LrW0 zY6XioXp;ViXFOVD0&9Qc`S#1tTLsV1MRHvG$IK}AI$g6&=^V_@@>gHX{Ef9FUcRZF zU>7q`px!*Qd1`Ah?;qZOwc%fGz!AB|jF```V;wm7_T{Bkgf$_?({uY&28Jz0P37PJ zMX}>xIcT%JCI0W$mDgHEGO1$vB}HbJ!9ic^ZeL=~bGh$dMZvE(mhVFnVarJ;8SBlm zUjs$p+gkfYh#Jd*rmW1}eC5&)dGGeWa*?@kXy!cf(_5;`I#QvR{jU=vFJVjVa#ZfO zdrt_*K=jS}CMV`ZY2mnVT2;M*QR%_S%`V{|sN4lsRFhMpn*36kBP5fz_4vJA@^E*K zNe+0R^;iA>KmO~*kKsNpA~&NC{^3x^p-zh%k;x^-mxD z(~~Esr;@YbMAqfA_|)H6OrA&fo_S-Xa^)cuUMUY7m6R{9^b@5-PB z%)hYFHvuNtG^IG;TYZn$iQKtyg6UCuJ=Z;XQcV~_9Q%z-FsYr2E)Lg2WAwuPAgkEq z-#I@goE61pKa*q~ajk;jGszgUQ2lQ9Z->sx$F0w^vJ5rLP?S$vh&tD6Dh^YlG;L!| z-Vb#GM~jDud@xN-=wJrXN{i%7zyuS)%|I?pyf1A95yotp!Ei;;?A6X`Bs-#=U#B2O z+!0?hDuM7SG%}KjLNf;wJmRv<}B_0+|I zu?=-`0TE$=H&V!ahOF8Ws+Jd<8=$;z9m91zd+>6w4P&Ug9V4;luF~u0#`9eLZ1PW5 z>81vjYLjCK!X=>BfjI|tl{#|mtFCw=yJjxXot?v#y3Q6AjS%V&gM|8VqW!EPq)2^_JMQR zpy*ZQ$G&`n+W3fTbUUoVtc&rv!PV(DpR-$RJ$${}*&ckPW=1y;8A;n!uQu4+j7?^y z-kll)9Xm@jRbOOUTXsl2yk#A4Wq~%1_KeQt!=a~ioE_zU@#lzfbpWU51@#3HKcFE5g;PEX!54fGe?8R!uF>m#i`(s+zD|{O z9R(hA9Q0|#{wZD8Qq#7mI4Et%^$qQUQ7i?>9p8ZDAorY}pXW zAp;`m?E_%fJvr9c!Ea4fz{P37?-J2=PXkq3Qbxw;L=HTFt^&T7pEc~sr{*VxmKt^v zXQq+AaDBMCeyvjmqGJ4c1OzJ$<#MO{=}weFHUaxumZ%c%nHJmUpT18y<@Vmx&(g_0zp=9!i6VC>z&w8Fve5i{?o9s0_)5yy z>^wf>!zz#gg%}}wL<>G6H$!4_i9Fj{#p9|dANmVU#SLpb(xgHYqiRJ(DuxMX$$?)l zy46PZA6!q&&Lw(0-Wca*{pp2ip6W_<)Dwx9W*X8g=bvlwL#`5+=en8tV~8bF-3O;Y zJoH%GqN`q9Aj%V{LYL3m=Vi@lDJ1;!FvF{)kN=@-d=O(xvr{W!$KcM%@!z3=-Br#O zIqXrmX_!;B8#O!L4bwr~^kwQ+HV^mAf~L3$xj{LN6rdPu?wQ`>XH#_{$<-x<OQYXXo%vv?v6`ijem@5dx5D)GuU>M)K=n@XvC}}I_TaNn%L}@BY!tE$%81wh` zJag%=kbs&R1tsW45EO(pKlL?##p&-X!Yr)tG)`Xf4`SAqHRg{9;81>Zd0tTKhL4s? zdlZF;J$_irHa{Ps^}4SsqA4(6vN3^uQ|p_-q2qB3@PztSRq&cuICbNF)QT&Y{+dSA z1VvpIGrrJNjLs$jGg1yCg$p=AR(^{p9eXnO--O9n-;!%;isPo&DGlY^?lkK*Uy8f&bT<64Qj#zmq< z_q`rOWEVCbV=<~yi;JfD!?HO1FOEm7b7ukccCmgnS(~T-$T4CnW>PW5fJDJ?F#cn_ z`ae7aa{;(!vu=K9q3JHk>*_J~jQ$>g$DPAHQWaR8&nah;%6}N^YwBQ!VGp4Kjc&F5 zC&da)+5uNWwX`D$#g*3R+l*K9{E|X%2yV?L*OZ>=UL1+A4<|!NJDohnQEx^JQ2=fo zQ64L3q)h2M;yQYW{Os^6DwnsP&Oqmxp|~P|I_CXVDV2wTSCS3py5+!siJ^Q9`EJPs zRjNNtEpo=K`IvDaP8?3zyQsMQhc`to@}3+rV;&h8 z{fD=l*+$AeP22B$05?nW`3NIA%ObuXU?jd3j}1GsuAg<6`ir~{0(44ob@r~Prl^bM zF$Npo_8g%*mnfi{n)+ugkCzoPS*<>iwz`?=1aRMldYP#7H63&R!?XSN)m)e5PJr|b zQ7?obwx=QIq{uRV^qb?)^IwJ&#AcvqjIlhcsFrcz$uTv`uOx}6Z?*Z+QT02le||3{ zZ$^RPFZ@j*x7&`JN$Qs#af_eRk`7{g%-uWmOcU65xJlR-i?x5%WRnn2fAiNhnGZH+r z=a=8$lJ_cUW93tr$0?m29J_jveY6xRF`eCbx@r2b{K@U9nGkjr0}Bfrn@qIGGT<_wSxn-s_Cql2tWMG%HJW<*$0| z6A1(YClazlawn*!*UD%_MeA2`AdD7R+Lil^{9E>>ah^DS0fjG#ct>wjv1x|KBZWUHW#zO3jR~9UyQhrzEdi{=rCPgaq2{BM#dKjjB6`e6yjwMZNa5l{G93Is^c7q>^LL zG%Hk(u|u)=4T^>TO|*v&U?}C8yAr~3RVg*IqdqnOjYQJCp+`Z3evNMMcpNiX~nnmEBHM7`ee-_EtLLq z?}{6it3{GePTv;2%s`NICVgi3!C#Z6jS`?QZ_=BnHfEoj4=-9Q4W% z`}+YkjCVcggaP~_^{S}Fp(nX`-frsef??m^flx6mcwu=lRkGa7p8I5OG4q}Q&+Ym^ zT-o@W<$JHZ9PC#k&i^Q*8>POgNhS!E}+-C^ryZDda^Nt zuPb;QNVAFv&I^Nc$D-u(`M8RUH4@>~HDwNi2H%BV0*`kDwfb%T)?!<=rT{0Gp%PAB zIRgxY`lOboW6N0)KOFp-TD+ps@`&gjYpvgDUz^p(Pck`jq7v+o|=M@A{Cv697 zms<``C+t?4z5?IPbp}#Fr$wD*dGz8I^`#8-P>}^KK~6D!+d9cL*#~`h)ja6pk%$oH zMR-s_7Gy@imQGiYZN2hZ}O|6KC=z}T~xQpJ$P%C=0a!7zp9Jvu_S zE`!CCT1{cas8vuS(AK`N@MZwehDQL7HvfPe+m4Mk>Y()QvQbn!KR*W#G#+`0IT-Ar z!2$(n<=yPg$DK3~;Wz#fl!^V@iWBFA)7XMSl*}@kW;5N*AX?9ve82bx3TgwPLESRj zgmnH16Cx(1{g!Ylv@(%N?(I>Qgh3+MD{cA{dqVmBgH8IG4BE5%sDjlWl14U8eGu2XJl zz8UH|AfFZIvh^j&1_|-lYm2;N*0$s#HJouIYiQ!{rGt{EEiX-uZUGMt18zpa8&_QQ z%Icz96$1yroQATMUhpkw8GEYeddC4{mkWy*XK*A>%M6RWZ~6*+o)u+HLMtDFgAAdD zyYYL_3ifYY?V(id2-Rjc1oV}002;5i&D_+U(QogTpwKyHQ{5vmR{sl@%v2tjCpU6t ze>iYq%e;PmRxn$a>>64Nk-zAgL2)~Z=@xVRQkFt4uA^zo^WD-StGAq#tgL_5)A>5K zwuB?pt6laHpX*#VJ?3O~{L^#Rf^_e)3-*9WOgF9Pw*9U zYM*eyjDx%|7V+t1F-P`^zM9?g>h?W~C-&sXX5w+DZn^bzvT zJ%7z&9L!o`%F^Lde1%X*CpeI6Ap6$-;(`zOnE+HN95?7dPw8Rx5M1Uy{9CPe#M~8R ztDeEkqHsz&jARZx{xSt$*TB7)!e$Rben5bYH%6^9OedZR>86$WH8O5bI5i@4mXlHQC-DK$oygQDPdVVw{?iKs+ z0wci-{-Su()6A(~$#SC3l35_Rvl)i8_bSuGZ0PbdR22Jj-24h+oGj{SODVr4ArW;j zJh%j>*5^nSrCVev;|^?9xURy7k|lufp<%SPHx(xD452WB)jn_F*z(sFP->UND_}TF z!qNHlMhs<#s_HfNchpyIi#-inV*2EDa&zcs=5F7NypLBZQEo1`{Pqve20Yp#R#6BO z9~$+vyJ)Z1<{R$N>E@h1zL}{eeg{$N1kVNnefQapUpK>Vy7l<4!mvE zx?m@BqQ`H~$~}4(xhs!iB7KW@e4aX4ItH)B#)wiclWIa&C)-53^_&eIX6{J8blh-o zB-{qBqTaSMFg8vg#gd*$Niwixe$ai%+yNVHdqqFN1$2L( zvLO*ab#h)H?R|3uMmH2YcHQ}Fo2Tg4`CVo<3X(U`l0x-xZ2QJ9Q3roe*1jk$(h(yr8> zAJ=5N`1RD)asAl@Z~7P|q}M zUlhpgpO?IF#k=E5Y`pz7F&%WytK~fdQ?K&h{rOvNe#i}n!vA(OoW&T@EET&-Ca~V( ziyyIkPk}WX>d6rgh`baWn*!(gH0G}V_%ij2@fX4cKh#i7VcMFCM>4nXR`Pd0#^pH^ zc*oKSwcY->>5u{PGh z;0wg+Y<`Hq5c#t>H`OToh{dCrR4;l%P>+VMRQd~3zv#VKFV;ay_K`C_e7kR|V_l{7 zu|0ksvqjMIqXp9^Uk38L1Qod*?@gajF(v_nTj$5B8C2*tnz(xUwG@Wi8{<79k|-ua#BbQ5UxW-)WSIX7 zMeiz6+r>z~&RUz79mwcNw0RUU@SV|cHSzaZK(&iUym3 zSgB+}87eqq1Tkud8`!sA_R|Rq3JNLePV960%4KBIed%c!p&!aw2x`EcXNQK|>VD+~ zf5z!z8**ak*YHHWS8|>;Ed}C_q~4Giz0y7s zRCUy<9kX&tm@43EuJC!qqpTUY`e9D9;!t&3HNd#QSHz>z@pbQL?(>+R8yPQeJ3)f} zdWaCW0upaq9+R*nA~P0}bK(7kDtq09G^BB{T5G~Y-<(^-uWW!`zl}S8#CXU!$42I& zaX>BJ<)1R!&zY~ebUZ7$3V0(mX;s`y&<{%iCwIHzr>51&KKoU(E>pk0S*Xjx5o!?DyZKQ&{iq_2JdZ0Qb7K~A97A)(h zlx_mfw)pfek+DsAa_;?TO!`1U58TA++JUT60qu2D@$3`>+goHLtfE9Fc{ z5C~m(qxqLp-q0Q)D(@M4W|O~SGGuCU)~`a;KLS@(DYaFig*zr+R4Hx{^Fp_tAnK(k zw@X_AU*9divm6%p-Zgt0F_{O4qq*FB_GjkzJWWU@_H=l8R)4H+INGH69~~;R>H%%( zRA=R=z=lmLGZJYckDA--fB4}bo5zYMGQjFAj?bB+jQlUR9F5w+05uD*tk6so5-%`j z#PbrfY`;gl=C9n}FeU@O_}s`CLm5{07CFawMOTMIgsrdFh%WPuD|iKs3u2ln3!rIg z@u=Du@18dU#P){K0W_O=JfsSwk)0T}?8xBT$*9#D^;xZUQzjiKQoSl_)$tGKZFqTW zFD5h;#PnW#p#(N3hdxClNcbEH%GEcga_rv^{lh!!dvFKrL$neuZF?wQ&_s8T7UJZg z;TYG&cqyc7E#>osLT%(t)^7+VTFM^mQ#6ch$G}9}YVJ+VRkB|Li{BP2)r?~Pu3}hyPT@~7> zPj(K{1k>E+rD5v2i6wEpyYHDYi&4d}JO$Ey)?-tYH+vXh;2&NP05n-##6#UH^}Ji_ z#_rAtQY3s-OgbL%#l_lqUHi_k4T#>CK2E97(nm7imAKu5G&e8OvE$3}#j|g4+n9%> z_rZohseHzrR<^hOj3s8ySuA^S#={6p2Qr*qa{Ekg&1-63>=>7`t^>T^Sh<4;>|W$! zI|yz=okw8Rugb&5G0(&8&pW8dYwSY8tn z;Jnt-)78Cc|9q{tww6^_*RB30DRUg*ILGTidDjxeiTc5cWW4C4zD+IIIX$pCssbCr zY7*6!_2GH)jo&`>t`mWYZj*5kmNRT_q5Kx%KRj3XU1|>eo`~>RoPn-qDUx(oVPZpJ zV#)G6P6=Qps_B20Uye>mW&IQw9P|;^*?G@gF8lubygeQ%6Vt@Yu(tK zkCKsFL5S@su&wUgV}e?)y*dHKU!^u}9Le`Y;8o}aK2huyj>v^9fc(RI#C`0@?pW*l z5AQQ>qR-4ykosf1zww>oiHRN$#j@|VV(km?&_!kJmNwaK$tlCsJ&_ZJeyB=+b8MY) zMGL1UJ_1e2{_xxYUk-D8Oq~vvQOUkm^PSz!s>us&S zF~UQ{m#fHst&7YGt;qmU09Bs)vzYpE0Ini&SN`bPF|wm_=qPi+%`_0BK4*mCZFr^A z7RTcJ(;1fNoY1J~LQ;@>uCPau=dv=G<{7C=5%-70yYEad5r3136+5hx?tM?*&Evc zi4hCy`(5`@i7H zu#P4+jL{B+(3iHDKSGieh!Nx*?9q*;v7h~^a2v65H=;F+bc1EJ?t9|X#k0WNQTjn=m z>bML~Ujd^GA(5wv|9O~5#lHUJfz~iKX&K=bJ^_07ESH82Kml<6&2f{Me|YLv=KUM_ z^~PQtkd}d$wkKw2$~xeT`C}k7{K8h z38VQ@~3TnQqXWsLB(!=E6O7mV3PM zmGd~;9GmrlAQ%qHLR+}gZaVPzr!5sc{z}v6mho6P+m%9+Ya5+E3eE^b;F|Eqq3w)E z6(ArVxx#-ZDla4D8gEM2FoAx{GHp&`c9P9q>;}y_W~3u+@qmDmx(|>249`sJiTqhv!pX-3zWpgf)A)@mJQ}55Ig!=ql?j83^1dT&*0d z|4Iw(+m0e?vn>;RNNr(u@ddE0fv&9AUR6Bevhod7jws11y2>bmwev{W7Mu3F-8KHm zg*Q1=9L^<{q1f*U6`+6Nb=c@ZpV{aC@TARtPtnwrFuv?jxaqug;5bZm+|VJoTe%0V zp=nK32Tas|1!n`O%HYACOITLZWXkJ1KRw2C6s!lif;;o-V$G*6Q%j?-a0^)Lbj(U( z+vGzjqy;eF^0Rd5JyN^eb{g9{bx)|Xtb-d44fO223!j0NIpNfm|LU-&KZ=!nN^YAo zl1mBJYg?NHl?|``EA<@$l9EmGXD`{IV3HN2K!3vXHm%usggMg|moR%As&y%k- ze_h21;(_0iWvv93P`;@t^{@JZFdqZxQqzG8u)}QKN@#G+x7qQ7fK`H9 zvdxt!m>=rrrldY>Z=#HJPw=RRRr>Dd5aoTU2zIIo29f?2PR{5}9$CaLn)vQ|g4>4u zDn;U)l+tXvZY9B;S191i-3Gz6&c$8KJ+&)rg}x4U8H+1Srj-{f%rL}9DI`bZGAxe` zyht7hd3itfh$|F#`>$_#V&?Ie@A%UiAYSZOT2mJqSgi^mluVKRX2}-Ex+p;YUHFH` z$iKSK4RmiM~}BFL+??#ukL;ZQMJE< zHZxmOh(DSqI7PgpX~uz$`rhH59IPktJkpe4&IwmV17Oj7P7yoPhk8w-*!xG=mkZtn zA&$ofzy9Iz8(x5kZ+Y@LP9(quy|_id_QO52tZiR~)%dRQC2a9Ad|%~Zipa?7-41HJ zOOn|mc0i}pfKp5 z3>N?UX}7IH+x=F%Mtf=A@AbTVO+R0(fSj-O(*A?x!H-Jg8u#CEPDytLrn{mVT98e3 z@PXtLrikr=WD5sLCbV*h9K3uqnEjIB6trz6u}6q?&8iw1QMHi@vOr(U>TNwjj!GWsVRf&5U~-K{#) zXKi6w3?MMMI!{YBG+PUvu3BQkCcijo_> z%zkdhoTJ1Wv-mP_9FxC(C&PNR5hpudPem4VKB*JX1LxbUpSoxAAnn9dm+Pnz>8p)d zAFHETs7|m1ZN^jMu*znbb!(CmC3K;^w?)+@D6R6!luPe>s#NS>%e(?mDi)F)yOYTmx8CqrW~m6Y z@V&^suq9<>W2DAqy1{Lw$qBzxm8CMY-m4EiGL<33g-ZXF2^kN76#J$U%56t^ULb@6 zi*qF1%vuzJ~Zv$tZS67`9Mb-JP-!Jp|;Z_x(d zT?Z6!M0BlI>h7kM;W+i%>w>MXtuXq7etMe49?*F`#prW>^jYa3N=e9xU`Odk|wrA?3)?ru$cYU*jOUUT~!;jp_`TtFD>HrwXb^7sHONgD~4Z{$xWZl zrtbo`Vmf#z>V_!s#uv@oT~^K;H8E$S|HHv+N5Q00Oh(ue)pwiL^Ohtj)YtIQR@)gv zLy`uMl?8cVA=TFcR)0o^y-tff8B+z2A6JcfDX)HGx~F7`_>^{7lxKK@faMg4tpQ{^s*HDWiR-KwLBQTh=h*dL9N){jkV%pL*6dWl%$R01V%w&63 zDu`Xpljz1qEH^V33C9LFSzE3ty62uekZcn)4W;#qHB%2o>}LlRV5n=2xLcb-XSU?N zHjiIisxrK>_YMcsg#Wg7{9+Osw$Ezs;4-}%6;*8Xuu)Z{i=saScmA+V14 zOT=OG)8m(ivdv1b6ZZeJR_a5f^;&-{P2aXdm-V0SU@409F0-!~4UO$r-Jt#QyZZ)p z*OJJSFA_#(_kJAx#hHZ1cUcika`piBUM@wzWWPfdA6*1iLXJ|+IMK4`<}tzZ;%?mz zwCpev_6YS%-pB*D1@b93&#}`l;r!1H4cId>e9T;o+dY>;b(i#_7vC_aQLjdvI%v2} zvQMsf@VdBHo@T{p-SL~ZAt=Lu<>~d_9ARzBT)>rmF17}p8@r6*?-NpOb)p$ z6#GP;`b{)X_;+*viuh0Srr1Nr#^ldLhm@AijQf+q*jztqt#Y8ppSrhRvJSn3uF=$I zYnIoOI$Z&bhLH-*!s5APB*n}3HQBrdY!O8aP|>Q^mi!EM-6o{OllkClTf9kMHSsBz zV}T*idHL^eYxU96VCneV-Kb##WS|%IX}jR*PQ_Z9oKnt$j+(rjsWVbn`jlonyi>!A z0#)0`$;aGjrTv5NFnO|c=S9%I8o%iRty=8W0k2xj+wtx=DQsbLo1@NXi}bFB)2qtK z1}^!bYa#%jMKiDt1bQS~dG;HeCc3NiNM&&?tc_Dhe)@HK4q{hz4p|w)Wwm$Usc|_b zAH~i^>QED{U6!@pZ5(wRaaiy+XP`^N&FS$D)FC=#l6-xKf3z_HF0Qd4Sa9V0%MoeE zGW>Wi2)UIB{H`LT#etDy90aZT1%!wJzO)m7cK4aaZ^2GXYlV23cfk&M_H6K{&ojg$ z6jzhi&=S`=Kj%dzBX_-(!tmF34aF&gL8`8mRY+f%b0)Xj5~cAdN}&vR(XUNI{*QW& z2r?%Co1B;K(o@hzbgJTNqzk*p1LLz<+&Il4d2^!ZuCZI!-@<)D=BXIU7v$;7BR{O? z@KeV}oKw*sV>H?c7|XP)Rm^P;Zw6zGUL%$gfPMQR#K7viJ4Z%UQZv2l@-?X>kQFUd(Y z=BI#xg(eV6Rmrt|iQG+Y=Viqa@Jxl z+9pGOEQ;2PkdA2Yo@%SrvwCNgG+s(uYzx*5D_Ai$$`jR z3pCm{I*OY_QF!mxQhns0$K^BKULu$o!`4EpV-8QivMT{dO!1w=?@P-%#O=d*$?ZB# zbFg8M@Y)3JcI}$a9b}W47HN4wJ$~WYS2HIv0n%SF!#Kvz(WCsM$^js0aTI*Kvddvo|g!+&gQeMBW>j+UV_ z{;VB=R-biQjmjbmu;+#64XK9+rO+^GRMqJbDcWA@Fnz&|Ox5iZt`d5-JvOs5^crX{ z-=#P)nq9BZ1~?6oT7G_a3A(BSG#L~kr?vLhdT$e<*eB>J*lhQovxLfM3rCS zrb4=i(B+qZGV zntT3%$#Aj@m)aH)u)UVVslnXE>M8ICGQK>I!kjN1|q(Epm*?g%J+(5HlW5F%dSOlfvFaisk>7Nszd6CaI?e#CEg3 z6D)QM{Bl$tbDf_}!?mu!)&kM4hs%zRl4Inls4z{gHHUt2f0^5Rb!OB3QW_^qS=(N` z8dB-jYC8HmVHTvG@ly?MKmzpSW*1FeobnE9%vIc#6>u-CW)SJ2q~vT-%#&**H+4 z-4}IM$Wyt1uC1$$O@`C~(>*lytS=Ds6D7(=Wwbe}43+p#dtl8RJqJWqcO0j5J_QP% z{ZUa7%B>7$WafvS??-yqzfNOH6j#!J2yopfZOVQ7Qy7q7O28Nl3BO#S5n5_$NVhIq z)3oa(*+`;*{vQA$LEXMi6ySPQi7mUSrukUUJlB~Tbs;OqMvb|yNVh?N4xIYanm`xj z6<7hglbV@EaoV5PYFXQIIZ`9%cfDxD7C1p}PgI=G%>(hCgRnoxu5 zQY2-&Rmg1f%T`!?9b81c$cj@@+@_GRmf_u8$#pBZVSRRg|7d0&Y>Ia*uqOHsJ=1XqxF zo8o4ntw`IaWkcIF&4|wM)FbThal1WiK2uh!y;o#=e~G>`SZQUF2NE#!uP@g=HENoJ zI>ReOp2obc>r`nNmVMc(Qfi8-M(i5-YWR#!DgO3ac1P0Dz~QKDuKdoj_r=%uj9Ocl za((M6T~VYYw1l6nb8~A09eJ$Vone^^%y*x0?0F; zn;F6VD|-6YE2owhjblj^H629{7mp|hL5YV$1WwAi4lxrpZ@?=b6RbjdVlWq8%ByII9DKmbJGVE=-}rjmCv?S zsZ~kb;=EDd8TFkC=K2L@R9x|0uk54YnI`cdp5iau#*7Z(-v+&hz3;8=)5e02(!t zBK_RcFkac`{{XFAQF!6h23G>TQ}&CoYkwT+`iv>&6_+jm>%sn}ypO~R&}vAW#!F|O zopVb8?@~}cqYEWUf|QP?9b6mhJ8N~pBo-^zn)_4Xj;W~0po=DAA&x!|L(@F-Ul)8W zx3-(a&vAOnEp11b?8k=AKm*@6uc|&7{6T_iTjI;)qc85ua5`Wb;LPHqG@^X|F-s91 zcCLGmfbJbqXk=~t@w=Y&*`V40ZU?n_hr>NZuO|8aVC+b5p|4JD(rzb(UIlttC2z3$ z9|M@flB-1MK~OP~P)TlEB{)B&Pan*jb*8p)>0fI&sl}#v@ph7Di+ohG5XkN2?QDJF z{x#y45*6JWag%~;=?{t;b6nZ-ySw|>&U(})-bPZnImLcgjD)FIlvc;=IR$@dMJw!M z>K3p`8H@pj-ZjSR%OsGLE6-}yihWu7E*?!I&-_89 z+s_zi!td|Jad$dIR`M}*7(CZ;s#~?Um|K(ST#Upqa#ufE_we#-OP-XuB&{T4-3xV( z3IMFxCyqRA=i05`BFN<6fIkY&dtK)Wt@xVs<0stnt5br}B9+9+=90sMSvSHp-LP&4 z*R^b2TAjs8pK8szvtJ64Q)8Fx{~xG>2AqLL`)V9Cd=TQ=pCQ?5ha#()zNGTAI%r#|Y}HvU z*Cg~Jv~FYhJxHp89nF$>tBjvh8C;^#@>`&&+D4C%Ijsqy@o3#J>5-7D1o80f#fN!SDPXV$q74ESZH(#6H+?uwnFHc}hE_*bWR zO|A5p!bWfi&ooK)J$yYUYqWg>;XAmag&~aXBx1YU3%|3weyMREGj5zUoM zkaJv>TeXj02EF5`(O6rsb@`Nx8qo14hwXf6;hjfIofVAHvM%5cP)GHwT^3(5&N2=O zJdX9!Y4iDVXQ8fWNyTV-68Bxt$Uls}5Ag@V{{V=0kU=cgF0vMiSlN{A$-x94N=pyg zo8pd-YL@>1@R7>lcvB%}KZ)I6e16;C0bk-bg4@J8OiFbdHQd2QS(E{s@z?`jmk;vH z_SXrvc-ss+f;(5QhOZedQJYFyq_!-n|cP8|xFYog1ZedlG)ye-w9Y8qC=CkpBQ$mf!Z;_?d3RHmNL) z)8=pfwRsdaaVXB-X`f|`Oj~YhC0d)_CjQ1B%6nvAw^zjF#xENm?`Qu2WvTxF;kv#k zvt@Mvzg1KHE5zisg_LXJ|?*U>bM{5Lf39Le-4QH$t%Y~Qu_#VMG9;(N&bF(Ll|3asC? zcf|&5pBCPp$L3N$^cwN@K*|nzsjcEv8DWuIM%|6$LZ4Wkt^WWGLGdO{#k@^$!`vzU zl?wjRpAarv=kW!>AC-CB2^%XY?^i6~TYeofE3%v-`XjQP8h^@n?eXWvtfM;p&_C?E z59?2d@x`HnB+g0Y|QC?X)QqVWY@BE7qe%F3rUC=;3KSc@DlG zjs7=IKjA0T0UbYn-{V$W<5!Lw2mTU`Kp*<-O>#b5TgloFdb1Nkcq_-fdT^x$_D@!x z7LQmRXZ$Wd96VsRif_pGlRwg!pA@`fD;?e>ygybS;auEmk}3Icy*+D6(g@lxFg^~K`Io8d-l6``mE-{OqrG6~%yhyLS|eqy7CfsTleeuw z_O*m&Jd^d!X3cbDI0rQQcPvMGU02&9&*-n5cdKv-aPts8sM8B#ImYc>(OJc2;R zDqCfZ0~S12B)gt=BD7(lpW{n|ac?Uj+!cCyab5$cvrVWo1j8xs_}8>}vh8EGo62p! zFM9GBCP^-ckbK1d01wu@TGg#9Bl4{K7^L}AC9%!K7-6-WkF9-0`zXd?g|~16x6Sz1 z%y-fGCLbgaYwFM04%Ke7rxN9uNXPXx+fH26WPCiIG#Tq39wdMGM{S610{wfFUnT0= znytiv#?CM+>7Uv=RvK(pwt__khurVpzEIVzrqnfIjz)S{$;nz;omh3tNg%$}C0iB| zeApd3*P7jGuWNSFHxq9AxHzwP(0mq?@iOEQUh(kT;Xj4HvLT-1N``x}oXEo@@^Qsf zDk^eJ`OM#$L9^oxb5d)+4#Bx_U9tLCA#*Rx2X2+?U$n&5*8cz!8p6sYg4z`aVgLqm zM@sSb#FGzBmG{t>Jt(vBTpZ;kDfzPShs?G?#z_P975c02=44-n`by&`?5aN?1%6db z;t0@=ftUG;{Wkb9fA;T%+60@ky5A@BBl=f~n5B5w_2U3{HVnDrB!V+veR#g+J8N5sSl~vC-rNFf@^|BBiI0lDB5L=7P3UGJPhP|P zE6SYh27NY7PRex|z(_L2qHOl5iqvc?$ZYl;Mhpr7kLwBX-hlrKc@aiAZQ) zYH3m5txflFO<*|ns42wg{vY_VPYmkFtmo{qovgXzo&m3*t*(~p6p;>5#z*5{D>Cud z2eo?N!k-y6{qjwvy(iGb|0QR@kgfJF69{Efyh5f?R+b# z8~YHlHf4{4p1gOiBX;g8=8LF*X6g#$kd4Dv*x{>tDW}n&p67XY*Rah+d&^_fBL}MU zQw7|kBNbZKWRfuG*-|rB7EUqRzL%Lbbbcc!N-}YljR_^Xx}L_X?J$wtRfc2DKxW5U ziEVP}w|g>pXYZT}(zd*K@Kn|l72t!#O>c4K^fiw$+w4(Y zVluj_r6;FV(EHPBOrVS~ZgW*+fuUl`GBaL9@VDZ^pDxEzlOXW26a4GiVv#PP4;u$Y z83b47*qk)*v*nu5{euCIqnXlGDL;Fv>~a1)@NKt^G+7}k7Ufqc-8rw6{6(PMcyCaa z&h9pi)v@e-!LPO2+^c1Ht{>uu!&p3Rr86Q0zKmrg$3D3JRp+>WFH`97xVb^7RM`0` zWZTxC{;@gcpQ~v1IxeL(o!S`YjN=W#>%pq&Aw%s@eFAB#t%~dlu?C@Uo7h$Pp$@x+ zRFjS?ITsR*(tNoUk02`{^{#?N46HiVE#x~J(y{Y4UT0l>AlCd04_R$n@#KO0g?aln z<@Bz{!FM7@y0MVvIiq8a*#Q3lQ(UF>sk6G86Z{R2%D#&OQt+|zIh7t-mrHW70E5j$ z=r?grIot&}C^*e}agpIpH&z;}wnc1Kjr3vdK^?iO{$BtN)p)O&W<`6r8FMES^W6TE zr&1MB&o|x`9KS0AinTO&H3KH)&+A29&b%y~k|T7=gHY`#bKbA4VW9*Ll>~`gE~T_R z`gmtkQ6oEtH6)Snt&goX7010>X!kDMcC0E@x;tp#+#SfF1UU4q6^vsegH<4esOPO| z+uO9uz{$m2F$yU*%<&j0)PCwJo^jfqi_qta^-qRB0%!P*r^|eAQrZY#YeqrbKqH~g z9c$Hmeem=HYM@u&A%gMBN$n#dkxw+wK1gSJ{&e5Dyej(H0`DBP}4l}o| zDyN2SJe@#ifWvA2Rj;i_<*<+M0B|dsrQ=yN_dMAr7_*nPk?e0Hd}nJ09=(5+d!NEv zt1W9$)nJUWsug2w;AiFs<_8@!kzOrv3hvx^{{TI!rTAy8zKi2+GH^(adfZ`PFb*rl&1tC4GDz*n>&kre5!d? z4-XeAbEf>6$;`jJ$F)6rbfR^{haZI^*V1%9lJPNo?T`1T@Bt@EH8apjtq0?Gg zrK~Z;i-e6rfsewh+*~EBF79@!sba@~00f--3{#bQk~r&LEBjD?f!o%#&=G~uT7?tTQd5xwU*_;evGH_#wv?r zBq+e|-kQ>V+>DBEm^lNcde%D~agDV?f%AHbP{nhF&w65!&qGQ`{45>}38FD|gLu)TPeu5mq`KKO1+R39We8Z5-D(V|dtA&P8q8 z&ASv+k1mNBP3x(m8}S_}@$hp{D}1@DdQF_VrSw+NjL9Qy9r~K-jCq}glWin-{{Ra7 zB--w%E@w>I!gn7-&Ofbt^khPTQ~-)F2TqlP;U5pDhIAM$7nw-iBYTiCKQUX7!zK09 zR`98Jk+$*g-oApIRTy39euI}#jvkHWr*m7vIw;k(CcB%9Yj2yLgp7hK8^^vVZEsLE z@U|_X`9L3qb^b2APX+jHEjAIh=3(<=+yZOKS28|vl1^*SqyEuR)t1X+zXJz~s_}DL zEhGMBhL>(+VyW{#TDUhZLE!W?wcxu5nn#g`%ti<6PQTNUZzf&5Zmy4NoZNdI6){nD zoGfFj5yd}o^{qA2>u#*h1d(^` z+L;zW#Di(AD{>^a0;^8mUPdy$mCJ~VgZ7;n&k22!yvxTN`%?hhj0_qi!wjbf`?S=M zuT`&-#@6Smp*{3)JWr%}aYRaA>& zR@s8cPHGvO8TF}n!6%A?nWX;!3geXK<7?_^6|KdBCfm5woc=WadUh2gFcv$HO0G_6 zDm2M*>c>XDOhu1cr2hcDkg=I%whRVx6F@k8IR6-8)5yy~V;NIppBipZJ60wx6f&OF*)| zF`WMZ_3P(tU&Y#nts}j~%#Keu+(7N!^ds)*P}ka!x9&lXb5p;pbWNRc*7?kF%t$1!DC2 zgEmg=n$Nht+tssGE-v=u4t*;k=IrG2TgL^`)*rSsE;TFzgNn+y)LF^F#Z;Q>t!CX` zY*IkU>0R{jv5v^e)P2oXygX#p3#;(C!)B?;s4825kKP`&nyuL50;);iS1IBT6WeK{%M2uxj)VHwvqqOaqXcnEqK>j>w)_zNqGk9) ztt1z+dAc>j;zjCH)c!)g_wb*Nv~L^faOyf`)Hg9Y?igT5$mm6WEMIEV-%QOUgs)}o zU5CS8js7S2UvwWv)Fh4^<)Gb#KVCky>Q5_|FEk#fn^L7ZuT%A7#r_wAR=2&>FKv;h zkNrl~1GvV2Gh9x+@b>S-S}ZU2m5{PTa2L?*ZHR#^b|!ot2~k z9wN#a@(uyxAC+o+6~2dC(sdYoKtvjpR{}4ef_Tpr(0D)Nw}GXaZ!cGY4C852fIIj6 zYk~3f)>qDP1OdMfB2l2&xh2l>R z>fR0UL)hx)4-0K41Ofr=$*zo=YDu4G8~su-o7C&H`^K8q-onMQS%H~{1o8^0b?f_&mY#N(RJ6=wWJQ-WyRE( zcItTIOe}kr!IIVkA-T?!toWqpJN~ky|L5qubup9rKPJpjyAq? ziu#7)-C8%u<%M{U#H|Fq#Ej|kfskwAbE;0AMNs>m9>x1QoQ<9xbqAdsjCv37t~XH6 zn8&DImEK&!8D)qcnQ}eriqudh_0C$n{5!tq?HF3gqlnd`6RU?9bNSaBeWw_l-4Nyg!b)?*%jUD`cq5`M7s&D zTJp{9dG<^DLxhwC0UOgkq`92Iga))zcHjuTe5^Y_ja!pz>aWfX*XHlQRl1N(wFBPQGg1N>GMdgn4$+1ae+PH4D8+@NixgZPB zWYv9wM#FGxNRwg-qcQ*j@l7_T%R5&m=~@xT(yVzKm;gAfqjR27G8)aAAUwU!+$w>| z&3(iBB!0oVcZoFHFBACM*__CH$Sl}lc8~}xG0=nhSBU=2UkcyikHxJb!Iw5RvaGXr z`9lImKN|gy(Da*qFHVBi+BJ#`c-Ax+#{dD-=qoC`#l#KZ8P!XF0sF3m0U z?GD!26ksfIfNIZ)d@tdRFG|1E^-DW+w2l^L5-0z?(`Tj~z8V1N`Hb*%WC`!+EIUns^InBZ4OpJ`1haZx(SHH1|IARd(zekKs93fVcXBIfQw$L1hZ5y;+P`H8JLjH*=W zW7TxO7dMy=?0X9IZwdJ8$zi$q`q$33R}bc6b^xxEOxC5hnKrgXTwU6^2`Y-sA8B|$ z$4_+{1(T1hdL^!*_Pj7)Ul`4Nap4~t8+jKFK?kLK&x5>RZy^M@1p1oka8g%CkBPzc zN3mGy&18JH9Jc`XuH(bLDjHk`q?bN|yp|h@E>(ksc1F@szVwW|hm^Nob`7_NCe8)v13r!Hlor=#2=;O8c{tZo^n!sOQl zXQ+8B2sl&In(MqTefEo@81r08SJ3aN7u6k;Y4P7_?{7cP6v|bQ@;MmC>tB_hwlBb6 z_*Op=F7<0j88q!eLg|6PVo4x-U{~tQEbFt7JN~uh{{Xe0!x%m#d?VCQTO{}Pv9yrB zGC{z}AAmGMr?Q&!GN#mBkH_I^zE~rJjM7IDTx8@_kz3BUmvG9Z3@%r1(w`hfxhSvYPk+(G8vT_I*HFNC$05R)M zSlL*26(Z&Aif?XvjGnaQxAQO$Bk5YvS{W46n#;>!#!YD#uB57WdZLVWYTJ3q995BS ztAUKv>uyzt7^z`To7%geZ5nH_1a=B~ji6NV+4dZYzLA2bJ!)G^eauf&U9pYLRW;bD z4vs!o9CxjVZN!Wf`Shz6w(P?g$Q5~P3gDH+dbDY+&d5^OqYj+0$(1-YaiZFw4oz8( z*zv|iKkUJqk&IWdPAML>IBBUyNPc0FgYD9!TXvHj2jNzkb~e(v9D}9V+yA;A4u~Cv-jCQznPyQIVQ#?0IGRe_B><2o%_3 zEXOAzrd`iMoczaI%aM$n`_;I&4CjDqtV+9&YP2LiUtHE_Y-$z~V;b@FsTSzB%EKb4 zNg;e-VxmczSmvd(wiS(!w<@q)aZ>%PDJ4%QrDH)Mc?N3xC}tSriZ9&ijw3?rULPrP zGut&9%vFm6j`*sog`5CRI@O_WTc;+ok-TwSsFE4pW-3>T)6-%ItaDXuRHqwxt&14d z)F|icT$Lql$d)?An;BVh4IRR_8h6Yo(UjKwoQ~1$oLSieb3tp0%~AYM~N=PKZSTzC3#-w z<@tso)t5EROS^@YpbOW%eTn-V+3e76q+yaAez~uUBA+tEGn3N3<^7OtQilD+c=|B_iY^a?MHC3c*@olke3lD+x5+PPLHR^*MX!^M_$#|e$d*mxcI2i zlam}MKlCcV(PrP49M{a$e)BzQT2n~tG{fY>E3v>)$LC(L@Sj#|%V>i(Q=t6o#qX|L z>?Se5#%s}j1>H2zgl(Z>I0roaNc?M&^s(UPwA`pkbv|AFq=Q58ZvOyx832#Raj!F2 zOq}%Rt$Szfk)wZQd`6D&E)sauZtcS4{-(SkE}w1_k=nmNp;=0VY$Y=RlIKuuMpX*X*2lLGe$Sor_-;b({G}vs!A8Ixe*6$U|U?`U~Mt#dB(7vD9SW0pVG@ zSIL@Qs3K*_;=7F(SlY_LvMZkzg@!5|vPT{l6^P2~s?^!{oxJhg!ji+ z@Lz^s6rWF6?Qa~tw?M@7uXM4#gH(lPw{apc&&yw&;_$UFljWAj?m1>@M>M3T2k&)9 zm;7Y-RUeA1pHQ-lE}Ph-OnocmtC%LUxRMFuXyuKzvbO|dwSD@^8Av>e@xP28 z24V38GU|F`>u#xSnJ2doTcs(kO;s?kzaGk4E<~xraD>tFEO4@bNu)m5`IKlq4 zYsHqkZ<6Ik5@p@^<0hzFF4oBF*0(Od;%(uyAa0i2{y5-&O76l`<(;0#o0w7dl=-_H zi=f?_HuLFL84dv>nrM%j_td(dCCl7$t`vIKhMuP39eui0G#p~Id^kgDCKu!|IIi42 zDmZrMH)MF(mRD0Trm0e1^~?*%OmevQs$?Cey&C7hlHW}uMlh$PahmRjaiQKACS9kk zVMjN@<7VSZcVx>T#%1w~tqT=lQ}%P~RSzW9>rs_(YJ`opLMhjkwmpmu9V|Ua&1+~j z>vyYKMEs*VgZYfsA#Q6&!}mttSGJS;t`FozdD5F{quY%eS)G53v>0?9PECuHVYyeg zJ*yJeSP}3d1M6LK>yE0>La^8h+}*E-$-)GcCpBrxq!o+VO$EZ2iZr9NjG z^VIfnJp75_;BEMC;x@72*ky}Lyn8t27rKVB;$`&zrbW;YYOrH)SHSZSDMDV*Tq zt@)eBy?wqKohZdh2>hEetB93H8j^M-R?mKF{)=(;JyHoXfDb>NX0Ku1twGm4#d`GT z%F*)Jh;vhvPopg@M!Demh#4xm{WJY5%*0z%XM^cpnecY-YFY!r+~rFCV2b2CNu_^h zYgZ6~@+)y!soJFA&di_Q!@-#88LJB(&@TGqL^(p+_9=A8Akk3P1E*vh&f zx#z#9)}3a}3kf4_vLgmY9YX`0kHk_knGlo7{b{y;>j&2(wNpu}Gs2Xm87U*`p9<=K z+PV#u-%~V7$Jw!hKLel2zJK_Yqpp+V9abbc0f_GpJ}Y+crqH zmuTJZ$;Dy(dC`JgY5Iz?i$}Q~f}%pCpgw^slTw zEoo;{@E)%kfL=Jf_4=U={DJ)I0Vcn`fa%t$YZgSSk*1km_>bB{N9a&ms z$3&HQbU%&{<6M5wROc#x!!_s|PQBsF%_M)v%x(7DJpTaCMF)BgKZ$>paBU};p^rxA z)7G7BedJCCPASrs@%*|K*$QVIkMq)+ST7uo)gye_=L4oHw7ed^^~EFIj>O@IBfs;b zBiA)l$r%~BOP2C%eCD^TX56B=*n3u` zgoH2@M8c$WH@w1E12yX(1bi|tFPl=8a**)3^}sdeI!>P2h14)7CD;$liu$L)o*s`v z@b$H%X@}YioN`Y!>|m)Ud9-%rv^~9K-pJHxK4N>C@B9m-rkAI_uXZ+_xn12r{{SMn z?+o~V`(so^Bll7A$G05+07}yMjp7wjx=o{PjYb=9;xSyf>h7$T9-qwmyi}edQNhyr z`W$DAb%)ord1c*{2MeB@aanNNg~mrUX>G?GaZ(8O*F`>Ba8XCoQ&6K#Q-?yuh2z<` z$Z%^%`%K8$JhpkPl|$DRG--}=%}ktk>TymK+j4uFLh!e-rZmj$fx$Hle<&o?y*3{< z;IZT_a#zGEP;xkGa=|$oR?zt{f`0X9YZ{QVg@8GB;;w2Ji*FfYz!k;cUYp6wlgB_S z^898Y%1&22XfJ6lWdvISly)(7 zE9TTM9%eif^8G5dN8?T6iq3soW)aaOg{@r<5jDukz+QhLSwgq;c)Xi;m$~Ef2E6Lh zQBF+NYOHNTscev_A0Xnbw9#Cr%6Y719$X-vrkJkC*;c`?8dYb@%RQO5uu^x4b=Bi; zdVML&BMxzzhC9dSaNqT*(&iTGxHaKQn^N~=Y0B1(4_V0m5Gh*e>32oJ86upm3vtu% z#Z>Uvx!Te*)2bs|qt1HMS&L?)xboSC#?3d(+kw`xbZXOFwTp~Zu8|_h(UMf+rAZc@+lrRk;b~EYN|h}QS)EQ= zaTea$rEHvlYVd?A6oCE1v18e0H{nA{g?2AMmah#2*{=OT}b?yrEuWHPJaG zz3PP5L!NV3JXR*AlAApmcnm!~V-r_b@kREjA$yyLlRV>b$K{&9lHjrH#YHvOTvax@ z_s7z=r9sbLrt)e!BwcASoSalGakm`RH@F<+)oCue;Mc8B3YD&N^Sw)wTpaRhmBrTt zXBARg&QCR)b9@GHa%->IsO)A~y1X8^tecCV3Fe`?yd31#RM(kobtixYYZ`YYmTs>& zJm#qVtLExS^sQ|-!TPSYq2h(2gQ=2E7aqB(wGBhVUIXUpRn)Inks6$+KTvIz+UfvrmsZ!I#XuBhVrYo078rt`buJsmWNAjZn>enef!$`!lWS_>Q zxIEQaG3#GRN{lHappPdUsxrstZUPq`NN1&Qs7)ukn7TqffsW_MamyWGa=x3WVjvXuF~^IxN1 z3UnL&d*E(>vTQfez@*J4a!wC9{A=?b*HUY3LfMq(EDkfrQD3KD2TkvYJ{DeBP@9kZ$+iIRB zDFh#9F|K^VFk6$&dK8w|8vg*rh%N5GisfY5RE|$0n)3eu+ZxIpAI8GXNfHZK+n&7V z{42xArSI~eS6XRMQg2%yKWf+0YO)|M#n*w3I#*Zl^5R`K_)R$Zmzc|QgX{TMo>|^W zYklTP%BlOc*xKvD=G+)p51!Tc_=NDQH7wgi;;^6o0(!|{N_QigH z{2B2iSGI-`CQv9T&rH|nN5j2J*=*9{a0Ix*`tx5{d<*eXX)%LwI3c;lK_GP;SLe8e z^?ItLQS4^))+&cF_2S8r6-NYSrG)L^*Dv885k;*bcwfwja2WNjnO9_ivz*u6Wq8Gi zjgvnrtxdt%i*m!bu0zFITHV^nU4HPuIIhk>rzDKlUaMkS#m0Ac6?vrvR)cA5ZG)`o zR81cw`13<;2T*x)wPgIi&lTpgTfEXp>;L#Ke>>z|_c z^skA-%Ud6~<(RK)N-eXI)GW%~BRRs>J>((p3I-VZ*GZ~c$#DrsB_&gkJJ&Z3pCps8 zVnf%r9*4N))QW2~Y$J1yYt6i3(u*l{u;Q}b&G_8+7&JHHVa@J z0q#hz%}@9zKZu~v{C%xQJb?t(fUh{@xc-8f`&xWx*S;)xs`EyHnjHeowuOz4&PEPM z_8|AJEJXPk=TgEt_4U~t*X>#RTzH4$#;rb!qs=y#;e{ncXxK6?NXfzJgXvxqq1wcb zE#Vne8E5y#e_FA5ZyuLnBO_u{!iEDqyBfKnX!jPne3v&ESCf@q{SP&SV<)-v5Q>WA zg0eAhzvJbJ;~Z5fE>8Rol{TRheW8msGtE(%glq*%~U6*IUQ<2&JHVB$l9Dvqe;{lTn61I*9Cp~yIW?=z7etU8(T@8Z(}DeJ zdw&yJMxl(OdH1i7o8n#CfPBW|-j+X#S8T^KFdtgyy6AF$W~1!I_@xDmC4A00b*^7p z_{gZlB-kB(^?ap$@h0wWJmx=*a~j8vE~I0LSRbupFD5mYL2i9xdGX5H7|!W{bH`q5 zHqYX;I+V;B=OFawiulg!#22?ye9|!9W`4~PMhDI+~kIIoTTC*#Ix6h24Ry~n{mD*H#1wp{$fApL6)!%pXy43TeiBg$_le_TovCd zK0>`YLV6#QKeUI1Ep0C8S*3~RRw)bn3Re%^3d%kdrwZFZS< z<+0bPubu5<+WBFFkLh0h3XW9MXQ_p9k!Bpmqdc0lj#*9z<59-|Wyw5L(ZqLQMn!KW zdmhERkhEmCOwh4_<07;nvvy(f)XSx?=N!~%2@%`E3h=n8jBC56Jvvp3YgPn;YQVB3 zhIt)pqA^CXhf^*{y|YUlxW@w(sx8%A{J9k5wLFk8E3%wUh{nYjt;snev~BG~dw9i1 zwf6v{rCxn;&1Xra_#?jEI>e1th zXO?|1YW#=_?i9%54%zKpF_GIDSgRemk$@wL(T2}rfUA?+y(E8h?c~+VW@y-Ex;eWY zF_}f}O7$Gk9A#TA(zX^b=chGRYhtc*z^;hM=#4_OaqfOPQ~aMVIQfaEh8Z9ZDr^sCCdc*hkDb~adxZY*(tryYH2)r4MQ zZ)$;lRVSb|Vja=Oamh7|x|vHA*@#$2I9{OfT^5@Xi*QtP{Hq?u5h}A0mIk-%?bz(w z!6T)4m6^j+6#I)arL1mA=DdUAjDl>{cH3W_CJH{o&&v6&iPfpA&=`{1o&=rS(GB-qyTm zSIM6oAIb4`>xRm=KadslhwQ_v3(to(=ni(s!>^zMw5#t*#M6t89x^`)pquuZWsuws^O;arwBfoeg+Zw3|oO;UDfIGLZY!l*3qcI>?*9 ztueb)jZ8S^scK~*2VvfYQ}|FAay!!QrX}PtjV5@Z%`v#CCR>irtuJ0GKQktz9<>4+ z9M5YyN`!|~kZa$*ANYZF%^e)JWlSp$_23fnE2HoSh~GihP&48Q4%S@p&wBK*SdU>e zp3LIKQueTEZha3j?vEX@TRscbzQ-fk%Gh41^zjva95)LU6VsW08&iH#;O;XKYcg@k4zZ_QC zlN>K1zKKanDXovi>S5(Vqop;fHf(gcH3cOOI|_ZqlJ;^K<@>^^*=mwofED(E%}mwpT;lWI@qD^kMR+&UO1JSXE@y$0zW9JC~W%bqLU{6FGb zZxC9nkjSO+^DcSKdCT^V`NCzaMr*7|*fd zzFF}%g!LZ_-o35-Eg4htwlEvqSKd8-mC5+uz;+%k)7}fHl#|hb!5@uz&MJC!KAMg$ zcxJDxPlnz?GCNgSBm+I`(f%WRCe*wgG?K>~Pi53P@<-HHnzHruu1Q73+DFq+#8bpa znwz- zka1a)TfMsw;|9GCO}CEf;4m2t&0O)9gH+fXh?5SZC-UaKd?jgBO+JUkJZ8f2sr%BH_0f+igaM-BaUlo(e{+(4(DbXUdp6qdq#}HYiOIU;num2 zirN{vvP-zrFCPuZspS5Zq2Sx&Hj;xsIvjr?T_&LlYFcdYu*i`y`d8$Xr!2o2b)}j5 zMQBGELeE>H=Lk;MVbZDGFYg%E*0ExA>*>(+RwL8BWk|b*;mv-!>ngB}mdyPAo*h!0 zkxiQwCA_8?Rl9?lWP+G`5nQs7-R$&dp=+9il6Y>~;umCe<8q#R3gjf$FXrLyq$8&- zTl!>esCZsj^OGMx%-145=+6eZDq-U)ob3@tw3HkZ*treUd4T6NwQBqE&2vk`3fr)d zl@;`OIodp@#%EY`*R)8}Rr!Tng)y3{oR50D3}uuMIIl;V-A|8HRFhAs>mLJkZzk?r zV%Q`6Kl=64{7KWydW3f>K3O>awdG$9Z;qSds6jXqE@201n#R=m)RfS!&=*Zd$>rOc16{}~`^xS3#J*qZdxTzZ) z(l9uxGkr?9Et1S%B< z56{;Xt$i3T+46!<^KSH=Rc-v=kE+^-`Kt)({H%~8JBiHx=9Q_B5Ue< z%XsxoCRm8w9MKg%;Hj^c%wz0vF{+QzGC6%?13C|-{{R!@StHtTX))HPyoKSKSfm(u z+^c;-ApZa=gnD+be)=Cj%c!_Nhtj*BggU48Z;otKoJVr4Zr=GBAF7YexRqbZuIV?e zrs`IgX~SF0vXA%+1N{wg;v>%qBYINybz?rv`p;6dj{3%Hc?MEg+BP1<5PzL~V|8x! zw=>(n4-2$SpH(Cu(vua!P0X}{TiI@V*x7D>G2{{Vpif0;Gr z>K*m)pR}+m)=bFYi};y zS&td#^{V$;m)_biDwXxyD=zSe?U8v{(URFwTwd=B8&wXt_R`Wi}^BY6Z18}$jIalqx1g&3h$#o zg)Bo?Xi@RfBn+DijyPyYye?bvCxiZEqY=uGB@^qv$bEYTA{) zlc!wXT}-z2w(+#G%-jT31d@J$AJVTg0Hk!ye8>A_>tqO{vvql{{UQ+vd3`#U94pB6}o~WTzZl7 zA98Dpx^2-(fu8=|>G8fM40-4LY8?LntX`)${&n}1=|+?kBhcfM=65k>CAVXd%~WR# zGJDTk9JX@#7WvB_@Oj%#A z+9AN_G?cs`#SfbJkwQ zq-!rn^Ei1vRy^bUnyn|y#PzFk0Lz}o@v6?a&N=3|UC(9>Sc7j)PPBbj(nU`)3&y^tATBVYOYWnO}vjN8pEqm&1M!isDqnvyI0*9`)#Y4UhK5tk)8q zwzi{pvFb5iysG;;cTYrpCSL`Ipz5<)H;=)-7~aeU-N4VkIsX6}^J%1OtB0CHx!C0A zt!#L^T5V%fJ6rb=e5kdC8wcLJ`Z2ZYOLlv>96YH-)v57Fu!^FFP~A8+5|dJ)^{w2s zJ7oHfjdu0xQYabC1%(~54QI{V!M?11OArTI)q@t0WbjWln`IxFCgad^NvmG@F_D~h zubRy<7ETE9@l`J_L}zQ7k(tUV;<6MIflZN&k`^a5V%|N++P)Tk^D~O&L!yMYy=rN? zd){3nNHddB+rk^QdIy5^VQU$@m2gPH=jl^Umo%(lUb?3S`kL^nczZ_*FdQv%lT6dd z&fJzc&0N>DLw|HpTlZ0)!_u?CuGu^3(H<0T+mqdkj+E*YW}X+Nb56#{R9(blt#q!R zXR(Sg!ES$A#?x*5>x5i)t?Qxwm=uhJ;=HU!z}I~Z;JxICrfw8=#W87Q`Iz7kDHLM7 zI`X`&(H?{rh>=A|tGR%tFX>XnBBK^#iu2(9cvDL2LzPpW?GJ`s*aNLubv-JSYvo`LwP_glg(*9E$otu4@A{M9>);JE|oS+ZW48?97mxoT;CrQ4g|LyFIm@bk@9mQx}1 z6%2xX*l5X)c2M)mi5Guqvdo93NWs=*2~7bIBHGzauqHTedwaEsr4q zRh;_*YjZ*H4!7btf?8QggZxaTN9T-I)2SMI$(XxGR?c>7hEdk4MQ?L`CdgrVT<`*d zYu&Ve+2mRx+-tY7z>CREz<#-_dgqS59{e!0DFQ`xc7quhCnMh#=gS`(^3jWvIc15B z?FDnn^gn{0AlDUUomR@*sc9Gk`4L?Pt#9C;g*IXD9z8{6hVwHH~=7 zZ>5uIYsgJDlX#sfNn&xW=W4mn3^F&PtW^-1I+)e;oBM z5;T_De%(I9qO2e({7Ck%D7d?l;zH6pJ07gWlljs~)aROon{I3FaJVWsSfx!KT}rZ+ z>}<`*8Rn_nFd4^MvnL0hYNf_D=Rf^=^sS-F*-}O$=~W-*_NnAxeX0isuWFPc7W>}R z$2rfTr?-DfjlS{puBehRzFLA#2*Be!)Qr^wH$6S;WIcB}djSgDiCuE*%9{Nj{g3`7 zHmUG-+REY}x}0|sM-gx0QM3=!HTkjOh)%6Ivw1d|4%IyeJuB>Qg6*pKPr?>cExd*+ z31pB;fRNe1Bd0wp=X2P8;Yl61TRAk&yW@rIei8V^YvLH+Wy-!xJqJ<#74oOXZ-|WOzS7hxV57vg%hWP9kh4l(P^d~xyL!;RrTh}w;k zL{Vauf{bIi!ThV{@))IF%=#Qvc>4uSd{#W$P(cODo};C7o)Ly5w=>H4MajirGNkXB z7%4w`m9=4R;s_4pZlHTt=yfB_9#nXAXUQ&k9){j0FvkJ41fAR>{{V%3QQ#?u!~XyS z{{U}zhIL796A;^z^Bjy0KM`Lc{5!g`u+~!M{42%|QZwsb!Qs2>&x@Wch6{_VSU{vK zaxe&r0R3<{ua(8%{j~Xh%07;bPiarzd!KQB%KkY%CDSF5)s!<~eL4#IEoSS^0@uu6 z0PZx;3tCHKYa*40fWsJLkTcf4j<&oPHmLpBXV$#Dw-HYTRl@o84K1l%N)NtG~$e@lfR(AQEo<)9y?N%1Dr*XH%%^?XB2{WBxQ zK17cS)n=OOQF&2zp!UbDWlbYVzDR~2rFWX-I%{ci&u==rju}+**A>IGW;<44)w#ub z6zV3Ex%w1m%^R4S)}ZRKq^p1UHjR!`xKHgFftpS)yMd@+`|DN zWU0nQdUR*d%6lGLeQqLG2k#U8YKnzb9OR18)f>u~s{(UbTU9~H!St_Y8y-b%0h{kH zTBkIMsz*7iMOrdXQB-awQzLx2HL^TvwFDR43ILYHY zQ&Av|I~Eue_F=bliMZ$3EcE1VyT|b2URb_V!tr1g)+DOR37(a=w zlj26Pdj_?3wvGzQ+4B@+9E_8Z^{*z5Mz@h!csRy;*JGjh!W+#tO)~gybvcS=>Hr^i z@g}*dQ|Ell%7f*dpHjV*k(Nc4?Y!gHYjQrdy4O!P-V8t(3OZC;eY{dh^1er3YOmsr zVYJ8uc8UzFFk7`<(n%i7oGC+@oQH|EWwn)oLW~dbarCZp{t|c_i5YX!scVu=b#U@d zS(yF<@~jyx{Os|A`Bs)z(D{n^*-BQ5Jr2fuYlt_;ASe5|6=E_^1YlR0B$L>%@}yyo zdYaqO{7)>B2yPn(u{91NrCCoyy9?7DDn%S-vaK~D*awxZcw|`+5mC0Mt43PtG8u}q zbBeUL-d=ugYJ}KQcsZyf&jotdL}Yg<7r(VXdI>!$`f5dpu6ZLZ_qv*~=6P|Raz$&+ z(AG6On=Pp_gSh;(`+Z3yQdAuNHH{Hzz{n!Bt#tVsK)Aqe^(J$ux)EJpU9tHW1M{dF z*6Ly&M!>B*yPI7mHZw?t#~7|&`^So}wE~qH=O&TCIqR!6ri?)uBjz;?zMx?T4})BF z*N$hAqzJs8D<}RE3yX$4VZNrSCVyFkc0H#-@i18cc>u>1?B5OiP`}y{gD1(6-o8K6 zZf>*Y1~@0yy@SBo)y;&;LCE0qRm;tD(4kw}M$G*r@IQ#e`cfjeWyh~-(A7LoZKm4X zyUVj=Y)Q@s0G_q;$HUKv%WtN|8@5=0I6XR7HSyEpq`G#GC8e~Pmg9qi&JIETb>?C) z?s7>Ub|Vg*qJ=QD~tnLMyp$$5v|$$`qV8a=h{!uCZ?NrLfz58UkCea_%}mxo zqZ>vIdX#HyU$io9<7j!$6=6!U;l~v;*5_{Ab5Om!ihvQvUX|-psm-aRY6QxF6;sVJ zAC*Y!Lqb|j;N*G=vl^<#8yOYV6QVUb5yv1^IpU`C95U=6ifW=v&9{o0IJPp3X10l{ zsAyY~stYbj6zjmUMouy5Rhn(Cqda1kU*4$a0=gplmm0-Xhsyw(w7Yf;9GYXW5r76o zK^8eV!K#f-PN>%NEXgOza5<|We1fUSGRcDb%M@P z>w?20@~@orYol>-GH3Iz8ne{-d}Uj^8TQgETn1Ib_pM7MhI``>KX_mRSTWx%x)sJ- zrAwyHF0}*!wm)vw&D8PbK8Wu=9O;tYNb*dDLP>?)++^mzLw*t5N2B~3)b2!qBwK%# zdUqe=UjY0$mf~AggkU+713Vr{ud;k4t}U;_Jwr~Fvnt!?udYABy}VAiL@88SA2s-s zQ-)1)?s++tosNGKSkw5BM-xVler~nNc%xc)FRoeN0U3)QPHU09@ztHYBW=YxYY?_?8JlbNe--$vNr5(Ip(~|Plz_NLQ*p$$OcZ_AIhua2#5Na9;@&(xD&J~6Zn3RCoVoy;Utu?7w z{#3(KOrJneQX%b4AEh{AqT)cpp=K&_I6Z1^*r?=RmX}hjdq={*75@NgSer>-_tEe@ zf6fJWm#OANYvz9r>r&`Cv^Now2JA5QCkOPeqIAtkb!|Q=k+O`r$MmnS%duSa{hYT) zgN?)T%~Xj7m#j&nUjhyyV}t2lk)~?Nc@SkFgVMaOScG|Rjt@~%_&3CoTihFYTa4gW zvqKuG)KsSQXUFF`7uP9$YKr%k=dZk{0E1Q9L%WmtRamaP$kc>7H#}mhUMTa4UX_<`Gb`sc&{*27++mL_`C z{43?Z4fwKc2K8iCB{RzQuXpg@iLLePG?FJ9vB(Cv>rqopHG7_I>gDwm;{6%){{V!1 zYi;5?Vet8HdY8P5{z__%Lqm_B%r{iA3@bBW4zPO^w^}LJJo zIQz|RqXX37V>z#<(UwI8PDL_U7DXX|KU(qmllNqgvZkd%Uec4){N28`n#SSao;HeA zIAvkT{3;Y;r}eL}zAt|7t`T{s8JIV0nEmJjz;J0Cu4RwmO>xQL8xatG#XI3ZTWcmDtq zG=;I(9m3&c0E75s{{TAS<&SKD_ODV=XJ!_noj9|o@Gaqv=)zCR)#y;2oObD6O`_Zz zTjk+=t|QpQR67X8Y1~2^o|RFf zuTDl0I!^;!muc-u;zc9$$MvpzP_{O=lgEs0az9$u@N9zLT8lge^Ww8o8#*8sG!KuDUYikz?P)b_ zP57H~j`h2v#%?2UIU>2pZUQkF>09~^pd-2?95DWsy=vU6P0t4jm$}I~qV<~_Jz~yW z;E4eA?_WV^a;~-E+o-d-f`gBzHS>urC9QrHG36Wuqx=G5n{3IHwP~D??wkHafiVk$}y(el?%`JXffnGEAL@;BKM4 zsjbh~){}Q?vU$2#d#}mGSHSK$s~^L`sCM#u*0E$%S4N!D39Vq9jjZXlxaZ|0exntd z(E);ZInVQ}mh5EHpN>{ckD&)OT4n3UU(3BH=-J>_{viV%7_ad3{EdA@@b6mw)bOsH z(j3d=F6{dZ6Z%)nepxwQgz@^G)$V@@Z_Hj5({>!~k)eM70K`cCb>wEW{iPJwMtv6# zVjVn0;PziExJ)cU+kRx>QqbiX6!x5|>goi%>&?a%eA5?eB{VlXNw)AxYm zBRu|f_MNPLYNVT2=y&?1z=@(7tvd%4CfxdQ(miQZnn1R8Vo9~(fA7D{vYX^ z+H3g-IVhR^Px7wem@Y>_-o7I?#CuA<%{>?9e*XZ%7zaZM^_q*`pXJc!{Cndo9|8DR zQP(vCn`=0?ZBvGk&kBp~%s{WsUlw?h`^BCh)HRJpPd5JgR+>ZEbHGvTpaJ+-w*J=N z6u;pk@lyCw!ffffGjF1EBnMjXUXiPVn~go&PPp|k zwoGhz=nhBYTpWXLc&>Tq%fh!Rc6+S|qz8{qp489fQnKz+agOxG`@^xUS?NG>j2~LF z7^>qLIR5}V)rfs6Bx+2fk&aDzFTtM%OXDvXS=xonD*L23;0}MNuRe?b0k5(D0A+s% z$E5g1U3PQ=d5bEs>wtLu4G`Scl{ZpJ9<8i-dR?40R^yPOHC6gztZLWG;hznqoMZhe zayw=T-#fX!1m(?xnB}$kE-fY%umP;6? zsVLFu9bd0PhT_alXkWcir%q~Q<*Kh`W89Nn2QGN@sWa(F7Zkg5)2&01grqr5Nw|)c z8uRt3?O`)YG0;~nTB;FkoV91m7TI>)L^j2nf@_)8Z#?UQfaD6^)vg3EkPZM9$!;wx zvFl$8imB~n+h@-~xyj9sMax#DoF$Z18+i9Rir=%h3ykqza*0(Z%91oR4JhB=Bv|=# zmafCZnxg4;X=w?=k&ZidHB&`M^jjG&MtSa@aWcndkdUM*WMx(!4g>lENS&dF>o@S9XbXdb&2FKm27ZV1% zk%u&COXa}L+|*3Ck%{WYylhmj6=SxPb-NA1mYe01ikjZeNjVF}coOH6v{BgHW7Itj z7gp^wJ5(H+ur1qoTvg~}5vb!Pyw!P4tJuO-d38rU9*ZV<&0n?B#5|r&Y;bxCk{ef$ z^uVm&HA!+oxe+{6q_r~s!?^G;YUQqxxq)IuX|1wbuIUPZIXU9Fj}&}L(tI}?D@?B_ zA9YAI=uyidNqbCOtd3~Zt6B0=S2{AV*r8`Cp?S&TyyM5;7%g;IUf$K#NlzayBD}xG z{{R{9^|zKgXE4Bc8+bpRd4=AgCDeuFa?E+jG-5Gc(R(~P<%i~bxLmC!r-;?|HT*^5 zyS;kx<(^Xex(dT-Gm=jg51WkVnvBiYo-54dOGuwYqN1#{v03yGPV z3(Z5d*p4$=MxM8081giP5UApzc-e>6y6p?W zdXI>11U8n>AwJw!t9WnziZ8JSo2`g zBNkTez+gyfe7K7K?HHbPu~lj>adNKg_RD{Uz6$trZT5{?_6a3XlfAMy=cX&qym|Xq z=zbVUEc`QQk~)kD7aM(ze7WK;8fzXPo#emNCY_k)=59HzW=xjcPET6x!|?wAw341C zZTTFs<@l!gncaBf3k7Ja@0L z!r-W3l2oFRjH*7G6y@U_)me`)d9oU0iOAC>X~F6+%WiHF6+{unEYhpX-`?e8l#sWNxSMsX#{~b^PkPwp995 ztWQ3bT1LntrFBPQeMU3@OPWWh~1tmbuABVY@$teplMY*AobV#_lWhANDQyt*UAoW!HwabN0J2x29Y`g)+Pac@Xe3ScKYSx}9 z_=$UQWfXDBc8sS}fB~5qa6rf9UlV@N+In~|;;yK-Wu0S{ zfn1(5fCej$>+tnr@5_O7d&QQ-e`G>Jn7ia%b5801o~s zX!c$OOBgQK`)(7Kk+YM~4DsxH*VCU5{x4cv_$Jd()Ta#Y>l*XdAoE|E-UZWq&3-q# zeBz|bb*QD9Gq;W_!~PKbVA4EGp;^N<%y3*Pg%P^}&|rR*>#eDe zEp|3hx-jH^b?;?4+$yC?Z&TngcuCNki$+h5yu+c~2$OvKcprs)+o))>O=j^kv{y0= zl{NJ}#lN3y?!$lo0IIyd#hwm!xHs{q%DnCVmCu||l&9^XvFqgcl}>z;XUj0?^XcDf zwYWwkw&2~mlUUltiMF>%1e~|<{uS+>B3(UXcE4n`z`)(cYtC*wI}WiW#FnzGkw^0n z&b-~N^ZfhR#S~kk_nzyK4Du4jRQ1hAC9OY|xpFLWo%B-z3 zs*{6J-deT3Hk_WddTV&{rC$dXMrh@T{{V;+(=|MJOt7e8jrZaB6=hUJn_rN9Xf%o=GY>FxinNibj2wbZ zRg&Lx0=$}ZaqQZp@@Ph?D6mwHl<1)>Gm5nhso>)xtQ&kV1A$s19Fj9Gml5X~tcHzd zW08YhB#?&6o|Qu4%_GNS){b7N&QnGe#48kMaLGL@I|~k2_3K-=(1C-yK9z-e#DtNN zM?=r3`l9Zg;wj-JOMJhTTboo{#mhf6%S|VjlDrzF{h=ykXFa&Ar3B0tB39**Hor17 z#Z#KdQ@9-T=~7Ai=PX;AVkSmARi$NPnoT#L#f4@iPu7wxH_MxLGAh&&g>IbH_~Qk6 zqWuYsZ0?I%Y~ErR*x;{2TedP7*97F(H4J56a`YV5t) ziURx6h7PpGkyjYzoOU}spf)ps#TNGMETDB2516I7Y*pJC0LcxS)PBclZXY5b|A!N~_qy@i9^Un(C`j?9} zcoj<$&5nm1YwVAQ{{RTrNzEdbpX);x5ssHN2LC5Ub4 z&JycQTXr$JVSQ?^_BzPlyId`HcbZs|LS!5on#VvaLj}r@O2(x->WwMlb+cy@nkZQ? zMrvo$BvHbAwdgT;Ys~q)ydPR*+B>3@36orQwv6;)h&<8sq-^DI)tz zyef>ZTIsH|wn##i$@i*ID#pwiHn8Ho%2m@lV_QwkYOZ#1- zNebkzEEHB`w$dvu6oKBleW9PX>2kD@n89LmQ^u;+;FE((JRV>QI6dkqBLXd`-#s;1 zf~@a$%<3pf|QQ&N4M zVq(N()8JK_Kv(4yw@~fQ3BamVub}V1)a~32U@njEMzwoPtDu&0g@`s zy~9q2Dn09(q_j2miKC;YsBPT}cW_X>)QAkI4N^sIjl+pg7+GDVp z(7acbQfCcnhnajz)*j+Fjsb#$2E0D{;Z>MF`orm6_lPy=WS;BIT$jinm3f`=m1!A> zE!0<^Ezg**Q<_F|BYC9fnz?5pL3JDB_lwWzRaAhXiRP+X+%%ej&r0W)k-;j5qxctH zcy)V48-Zz+N8)aG+!Hud{UV zYvF$$!ji6Un@>h(`a}*7=U$IDHXoIo{MVJPe2x1-Y2(9wD7>+S@sQh>@vji_gLUS; zFXQI4`sc*$R^Yy45;Cq27|nUjeDtEDqA#7xsU?H0tdh9{ESMjiRA3p&$2rYSoQjO_ z)i(=?w`~A?)bG7Xj%d&e_L%!T!#shX*A?#HvQLNxo8#tzo8+3_L63c)59eMRrR|bC zlp`!t1M{xi;69+%KN2*erygX2Kg^HtuADRd^iA;*Qo+h6xBl6>TP>c2sD=4iysh6w zB=h*!%Izmw`-k?j(*FRo{trWNtCzE#q|bkwXch3r?Bg}tkAsC~&oe5k?J&u99lJTC z&L~q$*WSF-*-NOLV-*v9>Xp5zzlCVFCPrUpH-8re$WoO3kdi2kP{wxv5+HK634gRku^B<6}Hgz3) z)3p1?)Aa~0BRDA4)kdqOG|`;kszt@0N#9!e%13(TE-huVx-O>%x=#=4tE}lTT#w>h zpRHQD($e8c?_T{#I>}BaokpUf+$3M{pNJar1%_TEUMs7Q_m~;Qc~0qcOTi${0k1^R zHAU1d(ok{@eKuQ&_K;AM)gPJh7GL#xp5B`GWNRSU*zH?dJ@AHLt{Tl1-7UL%@wXGWGp0(*Fnz`^5qbfBVUqXe& zi2yQ=D<4#_455%<_r-OG?%?;V`-@=2;C1a>wP|x|k4FoSbed8)NtQ@h=cROh4e@l^ z9omrR%FoQTTU67|TZ{_lq*u0(;Ah&r$9TIl>!T=Qsq)DBm&5)bk5qy=BVfvTKb2}+ zkR%gA+a+E@F9-9loqQAHS#)WFvt}d1DK+d`M~R@n2++tJH@#;nN_(CKMN==8*2lPf zIrzuqNV;yc+dD^acvI|o>(leEYqz_K?i7+Y4vaDg>0cg5sc{+Sp1$?ecmv|C{{Vw- zmd^Wi&X`Zi#O08G`m5zJ*(^UsQ(33UGeh#G5r zs}1T5$1+~NIS@?>@E^OvmQHFYqkEpE%Zng6EY1yBoQ>c}v27C*tcz00n z4~Y$yp%X?o5UE1lCDLhIpQ<&w)AdW{q znZpAcN=_sYPYV}60Mcq8x?r6}@Lx-rbB_1q&*;zdu37Gg^qJCW5%Q}~bt zd2Pk6<@f7e*W;^Sw|I7C1MVL)^2x6xTs&hVn)hSxM#qzs*5;<-`We>iw2xZ!uMFRd ztu+vlzCJ%LmFH3c6A%X#qv8EwtnR=ko|91sy^>8#5#2q-i+-$V4iP> z?oul5o`SU+9H}_stH}w^wS5yj=&~DE7PnB!INI5+tHz2iv>R)%GFOH_kQK^H z8R$k$bh<6#>e?O6grnzC$KVMVt!Uaw!1A%l!cfF6oBAGmCRMZR%}s3~MhCuXOUpL5 zVvI6WkZKs)10Cr`O&!iW%gLM3$XV68ZsxUgxi;Je{3{mF`Ig9Y^C`t@*}mBqHC48` zG-IRC*VWg~)93DX{{ULu_z|v{b*qbF*vpU5Rzm?aEDuH%f$;lLIzNuelZ9zE`gO%} zQmE-v^(z^JjyDN9ZECeg)E+&x;?nRAALKuP&-JcQcl7OEfqibe$AwNgWE+(JU(&c4 z6s|L0O@^qY3wA#`tp^ENkx9_@sH#_7=e0yZ&$V`=mR-Ox`ccZs*EytK^t($i<23JW zK^FACo9!{4iUWRmrMia)jz&MpsPwiAtj3MX&aD~zi65w~7~(e;uDJc|OhbMd=9f3T zc=hS~?Xw|Kw+_dk{cF>{6WyQqMen1>&kfqL_WQ(h{Oiv=f*g~``d4A_&SMK|un~a4 zTk^eyVZ~p*}f&D9w z9sMf`F7)EhQnr<5yx1?}OZ;5^Gy&;LwAO}t*<9?t7HY>!@xGo|;wzHY&**m#m;V4B z3;EZ+>zaCMT27^MSWjqbefi%Z*w0p z%^JwRLNY7oaq;A-8KdfQnR`kzqR)>fS>uqwFvG&eHeYolAJkB($Q?QUwbcAf(aw|O zJy8@8lRw%Q{sc0AT-P%imtpn(we|Gms#1)R`E_W#J$X}o7>j1wrnvG+^8qV2w+wJA zxw42ZIKZskI>looh2^>ZYj)ZkbKbfu*1m}RcMFGboTb&aTZMS(S8Z(G{^lE4P9>GL zj^KKqpcPs*$JV=l0qHwZT|zhFjKnNGCo}X8AIn~8jD{ZG>egO| zTc_H`r`g2>Luy7gjPt&{XVtuU+p3BGyWDAkEi=IzHW`B?zFMSaM(DKQSQt?B^B{lN-q;y@8*9_S~O{> zL0KcpE~j~>k>!=AmDtH7tVu4+NoGFelTepCj~F!@H&LAT_WDzN&ZqFl^{=g#i6zkH zTb31$;&a7VZ=N2!0TUj>gYK>+o~<4refl^(@5JdSzkP9G}+jGpw?WNZ*{Gx$??{`+ryWPZFmNuZM~h&~u;_7?M^T}D_* z9zZ=n&*A~EgjbAn&366+@phx(o1r$JboTOeJ5Dp|4<412`J%5K&a6E7B#*u?wD}uL z7FJ1w95Kiw{cDw*!q<5@jOXcIW#M0l8s@R3%X_D4QVY1o>21z1dU80c7JsxRt}>HH z9Hn?UY#u)f;*K^~w^Qh7;wJ^}HL2KLY4g~z62{0q#YG?MP-x#67sROW`B4jn8QC@z zAE6`bTUPpoh5RCE;cH>jdh)-XD|q9nH)i!c2;&l8y!;9voyMG}t!hW4+TEyoOZenJ z-S1UywCkHjB1oHW_q%;-r`ktNO%-Z$c1*5LI(4l}c*V88NWtq=blCpYbX0-@bJDJA zQf*M6;=DYUIKkc0tSZ(|vIU^%<0l@qcHSb)1~E`ag#h(6VPrdV(AOnN zD5hx`-J8+FvJtfK1y}MzNtQfjp|NQsP#FBRd?+}tn8o82?G$yV%c2OORp>KT704JI z3SzF&Qp0a0!vLd-@*X0!Nhs6b$j(h}#^i&LGHT7eoU`ELXstV4Eh11~lUY6{@y?gw zSXr(mQ2608GhW3Uo0cBiA3j+2Ienz6K1xx!sJ3z2uIC^Qr#&m1@h8M>E5mWHX;t6* zs(G&)@wdl2-CKM%N9^$Q$UN7TYC6@$^o8Y>osT@4!meRXpYHH5vhI6We5uOP#6OYg z-ZuEzeX8$<(b@>QWljz&%5@D|d&wE)k({1MCaK9QG08coA1&Uzx6M`aRCj05Ql$zj zmJzVBNL#%|&G^vc)0%E7xlOg)VI=pavTg)tns|-4z|Lya8hny4G`Uvn*Ugkt+_Cw2 zHFDogX2wQOrFEVj@GbVOB8Y97$>TdtE7!a!@HRMAZnakki^*O9{7r954^p$V5$EDD zl&E}9Q^tHh;7vzfoJDPJ&O5LiSFd{jQDA;J9X&{%3TbbkE51IcyqIIn};iSM2`_{ZT7 zgx03lPL3I_agDI^&O4m?*UKLgKWJ|ec+%ojTc)K-!qbq0;%c%*{bZ84;SXe5J@ z0mtWFCT}Mi7Kz`3jA~EbJ5Sl3=!+P%_LhsKIws)? z>@%<##!2h=*XNlXNYlqFy$2JnvTE90#-%1iR^$crB%B)P{9O!sKAmZC zBFA$qiJ0S7&e4;>9=R2R;vH%9eLmYw(U_&YLo;>xn1D||T-IgQw2h>!(n;psF~X-^ zyk{rczg?BSX@_Z(LnpZGV(>kDy@T=H+pVF^*Z^U!kFPvp;b{$913h}F9x!~20ppGpSsf?}n-U zK)3!sFkyKea%b86wR!adRXEN*wS{?Lo@Uu1+PirGdsm`(gH7Fd#aqh@#@6815W4bO-rR}d z^G+~0BybIT_;r;q!@zR#!)J1SqcH*O+L(rTW?u<{G zsV#LY-E!CmnvF`UZ7rIXMem=Qt1L=b9<5u(Co}F&sv2w#7M&t0vBxHzZmg_0%~)ne zV5M-?xF1wu!mkoYHy&eN59B*^!de=C^sHUEEg3*;X~lQO`Xo%7R4;#wtBW%w6kEAm%>;54L*A@g-ZV>|l}N}38>tMRF9(WN z5~$Xw+=oi0@(S<|TFg{^z+*YB zT|N@b19h#`LRHX*qPsF^o6O6c_{Rbv1QoK{LM*#Tw16unM4RMO>f zVIBcdfk_>T?j(*YtH=1YNv$!J*jwt;q=&GX>}Dl zMZO7Q-`xY&v{7qRWgJ4-!21^EV~?dr94tuZirT)@bqzOAmcsVhOB=Y(8YveHKBL~P zH-mMndvv^;Png+B(quwMO!9GBM%_)7c*@S^BI&++WS%-#Vc|ak%XramkK~huY*z1q zd;tC?)~#*fWpvyNat9e1ub^~40oz;ZNo8!fXk^+lJvhy5)s~2Is~D}#AA-LNZ8VjJ zMu}vdPDV$qeI;X{jI5K5y9QN7W%zr;F=;k&7}GM~5`Ud_5s4TEQO8Q*a_D&VYB@bf zZ}hROD#XYT59wKx=qqM%tGtTYB|@6oF8hL=nVW4U*vFVL#YyGc&71+6Tf1>TE5WL3 z3qrsTS|t?qHjQSUoTPZ49! zR@7yK^z^1lX0k?6Mk}Ga)BKr=h0ncYUt7;>nF3{VQ6zRoznR4NgF}~V6jS(BEjHEQ zjA6cd^wqUVti+6=fgIO2HiqA5W{-sGDx(u`taLKw-*E_6Uz~BAQ|)w=yR~&?#Dnv# zTUcXUq=O}U*HdGs+TU20g92shwb=(^U1Q4i?+Uy&i6Vpb{41FL$5|AdWTXty32w0BTrmC`)Z!?mUPm^Mjz?I~KNes-gVb>$IbaC26Ge4WUG1H|anrt@l zhCz}$){3Jxjc2gy7Pn|YClBpa=a5LufaalSWLX0s`6~6Tn=B>CQd`%pX&GBlx}Iey zN0%Qf)Y2P)8-cfqxwLFMhZ(3hMI#V7tv#cAkgGk0Ov=a(aB7=PBT13S6?LObg=2wI zTj}Vt5*sRNd9T!JqrL7oO_^@hl<-FteXQCz^BK$b6qdGW17!#$jdT`PY|N6X=WpX! zRGQfIY0s-A&>rp>!MaZ@e|NoRe0|m+(R4d6?ETCfWzI3l0H4;ocZON*VrPsavB}_c z^u>9P#^z7#^tK~+8U9t`&Zji2dAO?m6Fh!vw$wE9aUtiea5|jQ{j=_nmDBy9;k0Oh z`D+q+W4MfrWwVUZ^*joa?9A4a_hcW!tH*02&6EV^(zGrt*UK2|ircllveRr~fXDum z-LcPF6fSehS|eBCOfO^OT^8cv9q~hOt@92z74+xCxf<8Smm2(2E5>XZGOOD$V18Bd z{@W+Tor(qPz!z6Mm z*ummlS0g!VQ0MoNtKutWk^;ywM>Si)I`e7wX5K@H*!TYcKJ~e4EO$sz&&~bX~^z>6mkgbQnAJ>i|}5&bsI&E+Y-mYAEkB) zAen3Hsnk^>q?!1>GYc#wX9;vPw0rYuZ~-|}UA>&EBJgwGyv(_eBh#AfJR_&16bsjn+OQ#HYRNPB26Q=%Dev>0-IYIXy)Matxp#dYp{e=FF}yoFszVa;;dg|f#X z%JE%&!v@bahpF3c83!h~t5fFHA48Yo92$&{PHaOaSBmMpE3QdzB7|~38s{(L+RP7M zN{>&tHuC}+xD(}RA5&5htxDFp?K&@vib!L)Y#y~Xsp8d_K3nn9xGg^IZrLR2>sN18 zZoy^BKc{Nl!An$pv}vj{*P-ZM1^BV3_&)h$wVA%mPtOi;r~LC@R(wDBt)=+t#abzr zE4AU_VgdSro|&)D^_oj>l%Dynqr(0qy3y|AxwV<1m3jF|8OLK@9y2MYU2{i9eVzk6 zt$|81e9=Ecyun=Gj64}<;+t^JzFo?4lBnjq)8TK&D0Q_<9a)4IDljB$0N;gsJ-yU- z5r>V#qjCtZjIV~NhnFnT`c4xaM;Qe=PjlzLA47BDy(aqJ`F`wewoc43UKMAqt0Btq zo;p|D9y0KKhm5p&>~A7hNf&5rWUhPtYvOMlcrNeZ*10u>*vut~hC|VmoPqcPD(O^| zV`I|6P@@@2Jy{LK(_AibfNC3AU1Z4}DjQp<#2tSQjv%YB;b8RJg?N#QuHAOZMHz=jIB#yOXOu0I3;E-?|tqiNzy*1+!9P~AD_hh7rsTDXl z%c$QJS%~fgigJ?;!|Hh=xztjuMRfAV=39hwkU15NHMm@nR`e)U1uY)QQs# zimCfM>mP0K$%LGk{{XH{be=7@G2aFQ?^mOj*1P3C8$QAN3A-(hQgl5#)E~q<){WFV zTZ5BP!4P0km!7$=qEgdS<&`%khT7Y!M%fu^WR|-+j8|Qu+uB1Kw1X$!v$fTRONKEF zE-RH{FH@4oyDYz!f}PG?&)M!Em;QOkt@`7d>9qAl)}{f(QMwi7U{{V@ljJUvSbzjKW3V3hE zy#vR}F0|b;a56^a{Q<5G(*%*tV?+3B$nV8U)uj7`XFp1J>rGYZ=~90X2DPyfmDPtL z?ieDzi}**We` zd>+#U%UaHopIm2Y{TjZ1w}iCFF^+$&cja{*Of|b7E5x)OA27Q6R%d3m;ajC$iFU6{ zQZiwWALlhROZit+pL6nO3rX8@=AUBPh1^#0@X|KlVeekEX=;{svBZOFM!QGgE0^#d zkQHUUk$FENe^dT_>!;Q=8*Lv=y1l%aZLIBLX=a(YR8<6)KY;#K@mZCBZCBYxq5T8F zxl6%eKCxAM)juwWl77-3632nO7bS(H-d?k<2DY~-QHOiRF*Et`_OHD}8I$z~TO{MR#Z1 zRF&mrv7aMgEvD)Og_4t^1)Q3}DuLY(AB0-ayf~Jf6SK zx!JNrvi|xK3GI>V>MH{4?v^7y-M*EwvSS0@voE6&%_A-49x_g}`SJGRQytmwej~--sWj#9J8ppZ{(fDS%Gm+VX zd(tZMc)-m)N6HBp^{EwdJw;&8MkIb-)u$qy)Qq_p1Bz7`6pI!$K9#Aax0ffqXUBkj zO<%KLoEn*IYX_=52f)5Am%}==7YcI|97w&0=zpDe9}v7TZ4+DTx>Ih`uUB@}{{WV3 zPB4EX+PsPph{F!6&3fO%9a=p?%1svWvu$<4mgi#;fJfn)`OH*ZIeSI1-+NleB_8!) zz~zTKyVs=rJoukBlW>}LvRd;=ljLChn8EHpTH%^9~ma^zNso!mIzq)2Q+SoWBi6XHz%?51;QhQbe1wSixKH|72R;Z-u$?R_$ zyvvq)p82Kgns&LRz0?YkIQz?x4?do?&g&PWEsEj1GjR5Ck+^`}Yg+d7%YmHM*qWT} z5g7Z;knS@~Pf?obbbAvcC{dDnio(-i4b3&YxbMxtC`d+}afN%EvsN|r=Ag_B!G zpsqXCd~lXw#dX)V>2U}dSAVT!Et{iYujN*xta*{0?{c-hzTc%?NWjHQ4XHg;in5lw zyJEAH;T>BqRzQp26+BDctVd_-#Y&c{3Ba#5rZSy9Zd!{WSodR!w+*kEk4lm_LB<7J zg*K2Y!o*|wm%4ODHXjUO00OKk`U*(E&M{hcHYP?4+zRn2(W#24qaL9-C@Zo%Jw2`% z6T;TBc~&r%`BhYMO(fGtX9;E@5k^m8ULo;Q;LbNEt)$UW*c z%P;_En$fqhEC(5_EH&Jv<+FCH5ZN?@05jUUO&`M7I;6=QFte89fNR*i8}L1133aNS zk&bqB{OajYtB98^C3Bv(DxMu)Z1OJ+{5{k)`ITUSvHju*ADw$ohJFdzX)vY6t165P zkjwxdj%x3Vz9@KS;ib8P&1073Mm9x^^zUCcd_?&9ulTxIB97s$EgO$6GDjYUy-%xQ z@c#hB_vPE6<@;<_FW~ngeGTGIjJ^{1cW(CfYaPYPi~$}GKU(?s;s@;^ulS(L4XnRn zwQeyV4UecbPo=H7SmH@8b@Q2 z%yM&BSCZ}|Rk`LIn#sDC=Hj%c8*Gi_^dXmyf~&nseNS43R_k7kIGmG_T5rAURc3D0 zVrIZ1v*wc-CcOxwmQ0RmFy7TtX$~+t)8&(PeQKS=gK0I{6A2aPo3W~MOcy4knn8nE z(@FCh-55!PlNUbqS>)#wNiU(QvPg1HYU3uKk&}G{xRYorgWq>x_)X zzkbydVMco5p4^a6N`?OS6=X?`k%9jJ3W<(zGf(T9jqt;c2(8pexeFeny;YaJSd*Ry z6;=A0(kQFkicX%@R$pqdGh>d`S^8F}mMx9LTi-=0oHT8?eg`7IOh00ei29erdsVm9 z;aRQhEWXULGK_Tx1ou4G<|NIrNgaCE>L=`1abu+X7qY#wfdtYFO&}k6f{f()^sf&( zmnId+@4%-jmPbkZEyES3#LpSoD{!*2tY3>B1yKJ0f{R^VH^UtwJ9z|6G{sq0Ad|41 zeJi2(Q{gA@zs6}bc-~o{)uEB*8!(Zuz)%mqPg-~F$>2Rh#r_J@MT!?T^0ck!2Fz#q z*W?&nL}Q4I*K^#h3t}waL-R+)T6xlZ3t@Y+bIfrhp8K!{Yk!pxX+aDbe{>yb*ImG@s)}d z&g^46WMKXkmu+%wMDly!G;o5l#mA-Ow$6DyO125XDC1Qs^ua~I=0^cBTkLTs)D#EL;~Re#TF zy{LH7>hd_DU);i=FP53d0~s}yXgZPPiM=^Sn^T^rt$2&#g~igHGfN3+r|rNBFwfg0 z{&l0^NuY;Rw$*NBcQ)sQVhJZ0;=DpRr#A?9F;G76=e>GY{3h0L$7q)J-aK9>d&LWV&z(=Jx64IjQkMsMv3AZJ88-VxDk&r8yWm-+dM7dyMGKv zf2iqfc3dk+@wWqvo<5}4!auWb#cvDg+RRINBUvra%Bv%i8M^)h0=~KM?~bnZb3MNJ z;ITYJz=OCP^TDsj@fbN_u`W@KnbnwJo+)@8t~!2o%lOM&yYOd-EoO@68g!p44#l}A`d5A7w*LTxi%Ihy7K&fI zG6qk$_O0VLE#9V7pzw6}(E0D;$A@(d2UjwPi$NjCb>uHoULuzTH5uAtxOD><;=a}R zy=Oe08@5|pf3(OO5-tvZ&THo{82AoEoVC5Ll_Ze6DkwS6Ok?X`MS!lN(vkESTu-&8 zxwkwsSZObw>EjzwPXoVNmmx2~916}~-!UhpYwFPMM%)U%cn9lQD<_x19F8m1 zhR4g-_=YwC+unw^T#OEBvP-%01zoemigGbsF*w^6+!*k9Bc(a5)6NclwI|t3if~S8 zL@ulq&OWudJjBf^a4IXHvMx>us|>0X0y9Xq``4yBQ)NYzZEau7EI0zMD>Gqs{xu{v zZlr*4DrL89S7}L9w1|DMwuinlNni_PgXR z4QT%WVFittoG|9PSghfG%7NAG$TG@>}oPO;4JFQF0 zoM8_ct5o@(hcxHPwP#2BJ^W^u;Sa=1OX(n6jXLC;d7+SeyIGT!mJ}>b6F~}o;s*G+@I^=Y(LN+&l6}|;TBx5c2hh}ES zB<#RIKb<;$?cmON+A>uZ%$LX7v>z6{BNvIGNaEIPRb#jjfV+l1@dMB=>sWsa{y1KE zV-`2|%c<#Xet0EN$DX*)(z$;J>#=xeRtYcfwCklX&l%)k;AbAAns11_F5Vm0-4Qcq za0IZ(I&Ex_GwK1QE9oRSq^}0gpr^mkb&Uq&#C{Hqw7o_?WwYD~!32^39lxzz_!Z-8 z{a40T@n5UR?AhHXB=C6aUT^Rw34h@z@StSh0fo zKQ1#X2$@s`WjPCjk3v5>?d4Oa%yBx7Eyc6z{VisW+!q^s!P2xNh(@I|$68B8X`qjH z-Nr>Pl3`*PtuEibL1v%`Gl z{_w6x#2O8unXfI`PI)O;bo4S>xon5)SsH@P#?B6T9jm^cy-D_tCo8RK>#M|eAc|PI z9lCS%l1e>q) zq;jO3GUVc~-1si{N+#+dz9t`BezoY+czP{15ccdH8ws**AsoH#L=Cnt8-R#Zx0<}WQaP2?sLyd*Ppr9 z8FjhONdSrsv0?uJolr}80~cb$9jm?7ye67Bb&Ru->J4(2P&KYzUX8{pcu$*SMKt=D z^4VQW8Pu}SzHNu;wx(&Hf=Zm4^dAlBGD!q;IN1)OyT}*U>Oh_*Hb9_rZzJdUixqM*Pp||)}Ud9!PB#$R<02~pD@xOrLNp5Ae zYjG+}-1W}{oY!0XNNW&j9vw|0+3s5CR*c9t$ z+cJaP{{ULnJE8Pv=+D9(NZv^BW5_^+u9U^1(IWS{F_U6_0LC`kCcrF$%WSa<&bGtQLL zvrSx4UnGyUBwBjZAdyldR*0?iAGbXzFnV^UD}GeGb?a7Airi=NrNtvrx}*lSX)~Hl z*`y|w%CRQyf{fr(0|86abfiNXYAFVKQ_Bt5??}LPG+0GR5c8VrJ{|ak*k65?R{h+E z3-#?>%dYIy3nN>|vPN*~aw<8TT4=8$=u>oKD9Uh0HK`@UTD6|m{{UK}^{xxT`smfP z*vUC{7(az=LwL|g92^nNeI5@P?ApG^n~TCK(bIG-z4W>ss3cwneqq|ZM@7|=@&u7i zLk!oOYLKR-W@eB5YVt>VcY=IGZEil#A;RYz_OGF#ij6t)-`!`$=DB0WQRhqFiR#ln z?3!IWQt6vY{~(^>rs8A?jZE79B-;Q6ugWbPeKx|<>dFMw7&|)F(kLm>E60b$1XF$s0FLp z%x1T2p6gtbq_2A(ojg@X2OH{Ek3pKni^cOT4JnaG&dCLI7CNLiic!@bbt16W_E2AQ7f#wyIVY+6lS7M?E!TJX`M^rJ-Atu@;i?rkPnVqu?@kI3NH zGx2lbg_p#i4a;uGsd|HSGXa7aWPndzPCM7g{{RU7I^B3DP)KK$rPG|@qht4ZRgI## zjQp*P23(K``s3D;JBeLKJXhPF89ohZ{{R#;cfu?hq+>ALC>h8c0)0QmzAx6iJ*oIN zR-a1M;An1PV!OJl>Lp4+59T{6q9XSEy)rJ&GB`xn@=r_mFBf!gybLp09`j+wez&;KpFXK zny13gTMW5s#hsVz%dGi#)7mp&FvuT4kLzCP;_Fb>X($}4XZlyk{{RMcqonxC)MpCK zu>K@h*P5^wnp==E3g`6Aa^Na*)H33XBEK?QqlTV6+~eMORZ!^X@C9ZK>g78k}x+R_t!H<(ogf z#@6-71XVq|TR8SVtyu8uiKM!OpOC1LbL?<`oih3pZ*b$FQ=XlVHI4OgJh^+(jLVv& zpKkE2yY(^2&+0#*u0W;<&sypGwgjY;`<-%KMiV@+jki)oB{8&X(+}aRjm;b~5Q?a8G*%_(iD_|)zkR;G`9Y&9!swr|?&^7iE5 z{{TA8jEwr8wIC}uty#Db}g-j#CH{KGvcmdvQVP3tz? zF^&yucymya%JX8r)>g>J2kTh&ExQ#p&UH5NjRO#S|i?dC?fH< zgi`%RH9Jfz4TeFqiuQIn%LPFr*wpDQ@qW@uSi4joQG?lE4o5-*JWCl$~k^&26H2Uc|$ z0RCjxmPZK~$gaoXzO5#Y;t0++!ze20*zj@snu^}&H_pd;a#l5P;zLm}RYgDxe zBb5Rk%mr^vX(ZWrm`IM+M_Xk_amizjB87mzNY&Q+D0%qsbW%bp0xFkb_Hoz*y9Ysw53L-Dz7Xy6sDlA z#jw-MVV{9ocNY<9_U$B$5;Ykl@G(`dH7GQ@W|n4DMH%Oc@NbFV6eZP}?JXRoxH#Mi z1lPY-wG67CBsH5k=;7+)YH9G7J}7)xYtJ&nPLphX8bv*Qze@3&iJsw$F(mcPMR9lL zIV^Mf)oCt|Zk6*gl8Bage6-_sV^XXstI3{m zr+8)FKmz2SYV_X+{2{v48D3>DLDaJhepTr@e}i-%1lo&@Mr3JJXXeN0UVr27+7>HS zdo2|e0LuB8{*~!06e!wwsejw6bIo|lxQEGxT6aALTkj0~GO_vEFFgi(Zai0sd`=cn2Kq46I7;e#-(=ZPZd?obVeo;V_B-K(gvqY#YeqUd3x7%IQKbZ#hJLx zX52PSS(sPq#L7X}J*vEfj+HAh=e1XM>+4-s(Gk>+LPC??s>sAt(mv7e zRoU~L&{fE!Zlk?ck-sXlB~*~(HMBvHvhO4w{z%|8>s53zx0=GQmJyXV1@G6Xt)GdW4U@;;4X*UP z;T}m8?l}Gy2l`jx^l3PAS#>>(T-UaQnfVp*1L2XL2Wl1YIN8Y1TNBHBbwP*!hv2(_?}3>TBARo$Qu}G(F#WnA(->w~{oE!EQhORQo$*WdMxvRn`2% z^KeBZH-~uy@SOhu^{S(xce__N;MER~ZpdL-Ji&~x1cBEgt9`WHkV|0~p1+l5-(MT` z1MZa=9`(>@9vXYC8f)q0NMMZMDPS1zNWk>2d9JT>ww*~ob}q=jrO7m{70XCe$HMvy zbU&?qP5Ux<>sgz|mfB^`p)J*ujm2amYJq|2?rY>dKU`Z#@zF1-9#;P($%f@TxkA!~{yj9>mQY|mVcOa~QZux@|k&(_%JlCe& z`13~7{9KLpu<**+^4YRqo`a8W_4&Pg45`lXN2x47G+m!D>)tQco56Y|r1zn2M7*vK zs03&8uRGPXU+t^QYxIN2+IDTmK*`Chj~42e-ZquYleNB?0Z%3}dFO+VZUt@l3OOz> zE;Q+a+(4&>|^d&+Z(|VpG@w36YwvBr}t+i)@RbRNhGx+=0&pMHk8|fvC z5JAq`{S5fQpv7_EdzJFW@VH;Var~>`eQ>ASrnY4W@%*d@CpqT6(o-Zmmer!laSKSF~1zLgNSCtSUP*0@)sw)fAD!*s!r|uscOZER4;`$mvd%2^&w# zQ)%{R4WF1)w)zbcTG~k>f==&B+qSmyV#~*oOw*w;w=2h`Y0WVylAuE7V^2@?;EvV1Yx8!&tlcKr7Yxh=X?cqt zKyE6zOlKw3TcFR74n6Cc)Fv>qVfUVx>smUM@!C-vC#7?(AdQPL$@i*JW-eZ16RX^=n0V=1Cm8?~a9F6ObEo1w@8pGADw#Gm?;{%$bb#zrjJCc1X zBIi`x!3J3LsyW=BQW=Yg+>`HFGhJ;5BQ<{ZLXnbwUiHo2UgIECNRDCmlLz3QYOd4C z2BPy+sdwh9wx9zLha#|Vv74#fTZz7KGegO`JQKxLd74JtMg=2Hj1IL1GLSUNRE9WF zRh$VJ2-dG!>ECXYZa5u%D&)&)WAc-dD6yQiGZr%n{Pe1KVxM_^3ju+VO}8Fq8yrR4xtzWg6x6BStrDH`gX2xqy z#Cd0MM%Nw-u*&haIq6+L!VeragRI@@vNqd2O+2Yo z^v@)Irn)bUmX`h^@b;ap+bW56eC)XAsmb^0UN2+1DUx8=bYQ{0hcu@7W|-;z@|~@! zJ1-G5Pu@xQKS6vC;wbg)F49GAHiA~V z3#Ae#$;i!o!|+Gq1L<})%W)z5G>2|aQNZH9ke#A7|gUgIqqfp`^?tMcT{BHS1Q14Z@UT zxK}x@X)U?@sPeTpvpSVSfV8(`gdCogQ&qKVbuJg{TWk)v^qc(`SIaXPvys-lS5&uadt&5ay9`${Rz}@4+yTX9%;a`LuR`{? z&|Yay?T<8!``4K2w(oElvTar1S9Ls*+(J&`0@pLDZ@G-13KV@aT{PumPJ1(v@>SDr z-@8sQ$FL|EH8k;l0}g#xVQR zPBBt=v&2y7w(|ydFDS?(lU#CI=qE0xJMnkLvq=oG!21hvg|7v;o9%EN@43^GKU&?^ zyihf3$IE3Dk@I!*t~*e;D>Ec#8;&b@t1BEl+|As9rZ*YfxC4yVHQR?`0m&V!O8V>U zYOv#$_ z$FqDBxK;5qQQMueklb}0Ju9F6q2`smO?Hz$=E?qMruZFpH2(k+8=KW=Sy8s`>C(AR zj9S8)N9JBBycG}39uttKe|+G}OMZdPa?Z_RAz}k2*FzLIbcitQEqBJOy zK6`UrbUKt*Bjj*v!EA31o=9_noC@glzYxnG%^bXaYu3Z&6NGIokCnz`w5vBL=+95N zk+)?|2&-CGiZ8UbA31dX={3dJc&TQ>&TxHea^7UTP|>hIm3wqCk(RJ_K3fx&xUNdj zx;-OH@$^?fEUXdwb6qXIsTIs%s{%c%!{)a;k5xXRt=MathLiVL%ATEg{OjAJj&@3C z#bY>boUc4Hv+R2>+IHlI$fw7sGPfNo&orMM$9J|lGLO>+x=1xtnQ|B!^y5}DUh6(H z5tr4WJ5-IC(|O4=0#4TT98~Ri%NdQ|aIRr*Nbgd8y_tDDQ?lIW`n!^|C)G5VucIUk zH&ET{pO)03v^O0(D^~nB!(jyERcpjcfP0Fgglm9b3b?kAw9IbnQyrp`JD&S%(Y(;EsJiooC2h^PUBLpYc!Ojfcb?CC`?z>Jf~^ zFyQB|53wLu$lf9F{r84%)=_!(t&;(Qi|ok$E}htFSw& z^R9DHv}16tdmfjO1ZlgiNwg`=Ik3GbUz@E(#G}=Y<(JTkb-XP!fdRuBd`prBI`LQZ zn^M}8Jbx8()u`#g$!?C^H5FE@VEURGZi9M^3Sbk*y=k_WCB6}XF4gFIPK=2dC30$e z-3-p4ssO;`abKU$h_Nw~vHFB^JPJxOM;WC2Kfb(B`!E}ky0tF86y3F~#zw;IZk+T6 zy?4U4VCk_e$^);s6|*|QHN3GYT$LlYrEt{FG1V$3&!ar&PY;Kigel&~!8&}BXnrb? zXANs{kIKH+@b&WQniaf&b<048Gh>CW;}>g zk_gA8E|S}Iq>CT%@e3#Y@^U{CGgc%)mKe?rQIY=3t7-EAfU~G$=%*mpRDI=RmaMNE zGpf-h`z_K)P8C>&82%D4N9sQ+-0?-JOCdNI>`(GPm0?F1j_OtD4oBgWit83X?Qah> zL}kM5{6|mHy!wxpN=7uIr3q6pJS5BJT*ul#r}=~Y>muqC8x$b?jLLrlQ|Qwh8q7 zZa!iN&oqH>+@7@L`DFH}msE7b`VZl5q4xg(2HL4Pdv|CL;CTHAuQ&LeVfJ4aUSWPo zlg%7@t`F)fp!g-IZIe^5cFyHV*Ym@FN|WOjo)+fT^QPz?B7TP>`I_)Buh`?I7uNp( z=6x<%G2aKD!n|xMwaGhX=RbQ zEbK`n{Yk3QN!Jzh770ot?-Pij&1E&9#nxywooK{Qk7v#k=B>r=f4m z-p8n?tbwAGcl|qxsH{UCb5k!2!>D1A=}?N?rzbZ1Pa9Z{pIWXuoC>hR=5_7Xpl+OT z{HT_;WmAo`9G`pArQL(+Q7ZcKYCxlt-=$?^p%X97p5~mG@6>TofK`54P}t9NP+25~ znlZ;Xp^kA#G2WGnCy%i0Rv_wXqBlX>twZ;z0yp%$F&?$4s#^xJP)0#DnWCX*9Plfs zmdnnukq2CEQ}pE5k5)=GEpyPPwT#aQ>T+4g*5u*T<$ntLW8v<(ZR5WV$)et4&QeA`5C=HS6)~H+U(`FUtdF|+BDLzRZ*Wxm~FL$lfY4&n()ty-aaxj z*;~nl95&Nl^-M%^$~=_*IULksEL~1jvN8T9d`^>8xqEwO*#hyw>t0EDs65P0PpvZg z>F1P^Ni|&|X&6_96y+~zQQfob=+liDC_p!}b*nb^rcOfD?Jq@|@ zBhLEWTt=99>D``-Vc|awcrM@0y||89my@}N^38JoF8!l4?H(B|G?)Q!FdSeH%N6rx zz3~H4)~0u!>PHN7f^%H8)~NC^B;?ky#MFd&C@w|#gm7_hnzQC-d*aWD`k#qrcDcD? zr2WuHAC_y2xWDrlmTaG`W663;Rd%|pBMZB|S>Cz=t41eYI`X0*k#%`v7t z^INF-5zJVgZ09vbN8OrNknQy~S)}CEa*LQ`gqo=@J?dE`+n#u;%>7S#=!^`dA{iGQ z>ZFowt1`$r=BP~|=ee$k#KugoaW55_G}t^G8nt&YRpYH?$u3FtuGmHCbCygcnDy^e znryMpH0h?!YO6m{(z|0Gr#zU+r1`QsRV%5FKyg+jlr3l6uxBJ5I@XKG#!QY$0J>s&Dn{;m)G{8R^sOR78q5NpN`ad+vbIJl9R4-X ziIFsIoQ{+;a79L~&{Ah;IpkLGGGa51MOS9VdE%sF(yGeYZcS=Q9FLxRRA&^d-<30U zBq6dk6pE`Sda)%|lD9*-3;ek?_LuwH4fP%44;-`B{fvK>&U^HRI<=ycE<=S1d|cgqiw3@Miv9dQC@Imn9@}v6Itp2a5F4 z#^e}USB@;_yaxyop&J&+~al$Bl%a&`lrK~WcUzu=XmX|)@8zUExDMJ`d8`)$3KU9 zXT`4$Hj952=Tgj!+z@fpepUIK@zcWp0Pur^(d5>=_E|QIG|teuBPX8UPWARYH<>}T zh3bxcZ5Jwj(VhXP%wtjulHIBzh@{Hhn z*Xh>keB5>2okfkjGD7mW;}{>EP?FtaV5p4yk8GOhrts~>r-vZF@|*0=#53aqj8{H9 zK(>41x7)S2FW>O2uDTjY+RU>Thtp4tT-{2iaLU9FJvb(^q|`1|Hu;Pq&)v@-fU4J* z%_M}g7A@S=DI;A%h~IlSp+~rtSF#-(Zr4D?$YYFlb z);^q%e2+@=Ii$6-)6yu$>H4#S`2kr_yUjM`e!Lyr)-@@6O&-TxI?9UEbKO1|_{&o9 zM~dg3=HaEvw67$GC*=i=bvmbvE@#zE*WUs6MpcRW6J9Iey=qMlSBc}w#NWGYcLZRM z#Adx?Qn!mvw?cu8w_h?U{{RY}K>F9u;xMpP8 z6$L;fbpzA3Yur2u@e<#|_P3hto(x5k5+Z!(t~H)8rO}N#~v74$mCcp zSY*U`V}fym_*cdLGPOqWwb+IxKwEdsgWkL3@o@0Bhu>uRbzj}Y#{;4MwS{8QYnC%= z*Gr4pI17$C_5EwJ0YS%BWjJ!^k>?uxe`;5C3QF;h!npf=E#!AR2hMBMH7yEgEasVF z-@hbRBdOaZy{;V^8NU(MzPAr9jh;3tpHyTlzc5AsmExpk7!RCwsA1U*Ow#E#;@oSLMKB5g#kyLNCX@=3e- zRebK?J}Nn+`#2<=)`-`ep$*Jon`;xdy(QKBR_cilBcZGnRH&I%~ zJiODbM>=#@uTQYmuCvtzlnyk&bpg8oFZ?b4sH+eM`lO zXCuTpX5%%Onz)&R7d+QBYcal&<(S|vIW#oIr1=g|dQxpI5zo$b7uu9!F}6&$D<)k@ zl};PxtXr#zB#>?SK&tI{%G&|S^`xv%F|{_J@+b`Xq_oGK=Ml%fMQ361hn?`9YM!mH zENIs70kfcLB_wAlbr)XMJmx!2cJYemWMeFQo8>)mNVg9pj0wwCm$iSgncIN1&wH8P zjF| zVjON6=~oag7|UdXRsix>cYj){@@)riHDcC7I_+*f>q9AQcitKC5!F01K8rJMax)%z zJu!;mKeOeA;#Dj_1pK`_(%aojrrs>k92DtSB-N7cLnAI5y=n1A%*HE~=xO*zTzx*{ z$#6_eaLdjyU7fb1%Q0A61E{Y$MjM3DaHo&Tx}OQ&EZT$~Y576HKaEvA3~Fn!vEoa+ z<@+VVF%m0aH>L*_?RvyIkHrsz>8S=;bv-6Mtk}zK!D4#*3i4kTv{Ozk)0l#W1bd9u z$HBjd&*5EOeKz)dY1fKkbtE334xdV?Sv?MWJDeZy{6PDT$nKb>}3(YEnthhe{u z=6MF-M^VRm=!|)zW{w)v`De`@r`MW4k1Vx|Sf{nPLl;wmGtG6ncZe*nqdO*2eMukV zU!D4Ajyyr&IlQ+?8rDy`%nk*0R=*xEe6+;=QN}R6{{SlISYCH_CsD;)bMC!DIMy*B zWhws8HO=2_b_Om9J!{B54g6_7AdFkzI~8M$$aCJkuHri_M`zik13ZnUx$07Ic0ir? z+^J)9ZSDe=$u-f!%^33u%Jr@q zfZ)_H%wur5$?s2%CVQe$a~IO9-AEz0!BV9CX>)FganRL;mVQ%`DY9I&3{{6Fvu#@9 z9mj4I_r+dp%%PZM^`##(9#&ej4w-d1Z%W-q7goDp0lHQ!GZ^DpF@cJ+4ZxG;Cjy6U z&7+}4_R`}|xmS(1Avraz9mF$QxnY*uk9w_fdfWW1nN!ATmTbF2!N|?PMFq zPfu!#PqT@>V%tq>>Aq4<71t=d=DFoN-06F^c70K!vOp^l|pO+b~+WSyk z0O>#$zZH#gItu5nrz+%ulZ;fxUCkBx9AuHl3?>u94l4?6G|0{aU{^t?SiE-zSvd}P ztlOyB6z$G?S4>}1Zf@rvb*2=#E7Vm3YL;?j@^f37mBZSrv!^wKZ#lk^i;NDntf$bp zOI=NM*)ppRDV`*TRkDac*~rfoR7|4_oMNnA-86c6k|VuPWxZ>bZ)R_Mn0_DBv3Qn} zFZxu?u}STdkLy{V9JHIy0~k%*hDjw&%Dm&8@z>g`!z`MHth3mr`9E|&#SJfFxdLJ#@>JrU+F7vRlCl#d~ymAm`IW>=O zC!7q$Ky22EUjZ272CgpqncJ!(*DO}!3lSsUv*WQaL$|43YV^}L55GKgsxiqUOu(Fm z{{R}Nwuq}0Z>DZG@#|DCB$_WGX!&$(iq^hZnOP9!t1fLm>RWVpL3}m{>)xg}Z4ma< z`WwP}=Z7_ahm&1h#pG)-N40j4pyVEUdg8u#*Q7FBTsBE8=c&o-UW;>WXJgZ8hbcV=Ip(7nM(KEoIfgQqoo3iWQ*8!sVcrttvi1sCaaj! zn3|g1s8dSSYfuq;({|IkQi@Fh5l}d$mFvY#_r0m5YbO&nF;vr!YC2Hes^W>vBEb>#gKQXw=`@SP6+0p-ZJHBo|t4T#+d9^9A>d} zEo5Fo5zZxF*0$Dc<07_K-1RJ{6w#5cGpr%hVzOb?X13%u1$26ZV&WG;!6S<0r_yc} zh#dVXxjm0MtvNCwz5 z9VB^Gvf5R3j)%KRrL%nLgZ|Jw(!+IkV%gkC_ciAlC&UYga3pfeU8RqV?C+Nn5RL1` zE7zl#rtY1O8op7brygW=mR>6#c0q$$BV1V*hT!|x8zVz=%uJ+Jb1aaa7>f64W=*7- z^A-4ZjHS&D4*oq*o->NQZFRhL&3WCvu<;x*;<_C>SV#KxwVK64$D&V+fA zxz;NK*V3xrSVeNAjt(lMH@or8N^T1CoYz#6l0ISzr5cJ+(W98Uh3uv(z=8el)jhS+ zwgYoodW3P_LcxYkIIdUi4X50Ba&mPc^NGfAg80IL#q^T`L(rFcz@!^sS%D_StlQGo}Fxk5Ff<0N@_ntMH(KTrHS;=65o zO^WK;Rgx(eAcLCbekXi6vGLxX&E=|J#xoqi4D{e<{PnMsz6ktepTYNuWpy(?p6ovH z`<=M<>tAANJ|crwv5Ml}RgyUuA(VsEX1+%if|eS0j>oNl&8EG{yGb7y_?t<+@V>1z zhNBBZDx513fZpP>1e=temGzgzpNIAz5G+ba7Av(Gj$k?bYvrAD!rHHfbqQ^6E!kCD z3nx&+JRi#y=TxK0u8-03%+{VZJd$>r{7m-F?DnZ68O1ayI2ghDQ{(why?L@elXPFT z8=MN*vsJaZjzjC7ezl8kO1hfbx`4f+xaz!qb;DLX$*0umqc3MT%dzP;emAhRwO=v8 zU^yM?4M*bzoG`k>XwLY+ZZYh7*OjD$@ zH82=t)uFMq49c|EHI}|chN&^W)UGCWF3!Z3Jx)(r^uK{xx7c-A?HJ)?`G?>!{cFsX zgSPB)Yozd1@zeZ4YcM;0ZKv@yrTJR7L1HKMiZX<{pGa$w5Q!+~n$5g~FjfPK+GYOG z(svGWpy%)gsz(o-X1<_T-(V_pQb+UdZ$-wlX&9bKEGovKYn6^qZ}F?kW(Oy&PjPGK zSg^)Q@;!Lwy%{}IK5`R(3Cp}Yv&Ic&YA}b4?i{JeJ^I&0<@}_cwU2)p+;TDB`PW4^ zt%<1g)Y|ht(yMSd4xs*((0Eqxi5fQLTalk?<@6T&Mw2=oS`&fvIjxNqjB1UZLC@-I zmaKP1Fq4ebi2PS#bldr4L5So#*N!>KBl*<2%X!weR~Q*+_MgJH{7qmrZx8v%Gb|%` z$5Oq=;n(o283&!=*f2L3+xih%)1NX;?v15Sl5>jL>SKReMqSJAPGCoD8d1nRS9e2| z5J6wZbPfLi0vR8uTJ(>K)_-d7 zobrK}hb%uL5A*#i#&nyfvAl+K`|z^Lzwi>vQt9cHUwxd1t^1quj9-`Nghkv+EkA)$P;oxVVv}cFulgB%kN{SDS*P z&sUx7kEnv>i%5gb=hl&=Jk$#LV~#~ONj9nUucR}u_LFu-d8>L}TIXrxHwV+bWh9?I zIttXY20Snv^``U*=!{)v)Y$4%!bSi&UON%SD?PE#t##fzwBK*1>L@ZKQxoH+Mz zBa_cSYnoa!s*Jg#aw$9U$>yTyNX9$;DrWhy*#4CZ9(r+Ev#^uXCkC9deB7SjhvQKz z0n{2^o#bKKUy=u&tH0G@0T4przjy$r|C;#tS)JNJ!z}!Pf_z!v5$>^I%EZF@}r=73TUa$Jy@?_Rlry7AhJPa55NXzHcy#gt?DGgSxTI>lSNo zsWf=nvhqDSuAjkntigkD2OpnGi^Mu;xYN?$CSD_){*`k_)Dp_YHZSj7;0p6G6`bg% zjaK$&p?D+4cRn4O?#0x-qc6-4L6g_?u4_`f7njpc1_Lo5dQ-1&40iFxG3LlJ=f5K$ zR95!>VE_&*hJ`rA`&GLze-lWXPqs2h8oU1h4(aNuCy-z-BQ=Mh>3(E`Bjv7-P`g`L zL^1KjaAInEN%Et3=(QQCU;Uy(kGeP&THkcjBx*8P;8i`_o9kV7f;3+`=v_>tM;{|K zagVc&%qmLJI&G<-=xC#f9Ax_P1#_ZeT(^F;Ys6Zo+iuFK$}bg~kDBVF@2fcCw7J;m zm!D{dV;uJ8w(KMF1LJ{QhJ_(nN2f~cqX)_@&|qd|mD9+?lE*yPW$`1$58@9HOB_dZNOpnSwMXH90Nv|TCfJy%84(F@3BuOFH=wb=<(9+x@5CREnm>c>-rCXDNt9r1?Rd37_ME_I(K868fS;U5q97Sv5S zj5>^#d}sMrp8Q1pr7ZMxlG95nSaG-?!?k?t~l$klXV%Yvs`V+=~2rrGILbqn>}kpVJ|V# z+#DR5t0aW4S|*WMNa%jGS*8OcyNA>!n*$yD(;5D5w9Van*JM$X8z;&$ z(y7YFwOE<@fNHB6-7QJKLMAT%UR&w=+qxe)nI?n%X3c#~{+STa(g;1zQKG z;*&jVc$tis?)0iI+li~vH(utm+c`C}B#K7o6e#(|t7uJwT1+V(D;oFR!2mb(GxT(h@(!0Nd@V24iOKSwjnR4M5 zcTAiL%MleSQcq*A3nv<}vp-rtXFYIh-wO1J$lCFsjQ;?@R0{RTmvm&Fwc}s2-jLoM z@N61$w&zx6J9=}2Uds;^3rZ;F$__s}$uw1Q=2-RYGhKdpXs z{?Y#c3hmoQ*8Ea$b9}Qffpg15S0}fvedYU3cz;y!Cx+uqGxv89oS8adax?m7z8?6g z;hkz78p}xXroWc>c?lrNUP0vb=ZfjbQie6kGPb96c&T7qn%y5F+}{g$;f#Ip&QD%( zntbrhbu?2iC$1}?_<`{H_u>88L#jl{GxAk|d?aGx z{o~vIEBs~BbuR$vUJ}u*5-6?XQ#Hmg&g3a0@F4fEpPCmOgTmA9k=t|Rlbq9ooui&l zT2$f6wPLA1X)Ok{u6Fk|V%|f~II67VHZhu#1?qd%^%9kdRu=P%Z}}?RXk!Or<(jkF z;o)EpPPMb7>K5>;$vFA3g<5hh5=&NDv%Gb5j~{V^7O$Z!{9m9$@bzyVWuIF`+Nya2 zfCqnb+P-D`V3O(9GE_Grwsd<*t|Ty*A#uB}91Pc=UV^E)>EUrwi?mLn+g!WzoX+M} zpCpXuX*>a4e}Z)exMrGn0Kvj%k5SURwhQSjF4(!xIj)<-`m$V1a&|}8^5^;2B}gt_ zRF7W|QL2}dJFo32wM*xY>ULeH3z9%J=w1c9G06V_Y9ZiNAY-Qh*NN(0B#P?c6XjQ4 zH!oWCFNZ58wQBIikX1_(cpMC#YoFOFP`T^Uuk9*Y`yI`ev1KyL1dajS@&jC#jI`Tl zvuR9T04%UdF5k(xZJk{D`5v(xgJ?m z1A$j>bde;5h{t?%szroy1jgF+qb_84b)m~9i%Dv3q(wh;b*s`?$7TnV+3so!Ws)^% zI*;d6=em)Yl6H=@(6l-AEzPPlE06#K^R8=9@nJ4guWF^QYZ6<&6|#C_u&qm8+~Prk z$0D?egy!}}?wt#37lbzmdRFD;k~EuVaVADHQs|-$J`BhJZ`QE9UE%?7trS@c(zi0! zD(u9*zgYwG&q~g<3epn%3aK;sQSL3CYNYqYV>@^zpEoXtGpXF$yw#!!erE zay2!rai>ozHuBI6aCxjoxh#Mv$@QwN=4lR3KAEJAon+hF+M}B04o1C*R*@Nxxvf1~ z>M>>l@;yHa!}Gkj{$8~dcV(5tha=LZ_YQ3eO)xA-8KT|Gu^k03ma{R~FexEjnG}p} zI$RbD)B4l4uG7X%MyuvXNjy}dJom_^A|6?=c&Va`%fP7Q$ZU#<3&|LM_~(8GPcYMUPOml~r(R*5omqb*hPP^I(s{r?-Up%AJoDq9fFCn5wPH%KRW4j685*K9Y77mb6RY>u&kVl*^c49)R}w{Rn4}B zZZA`#)-M(rim`3mbGw{$t|2uI*W+xtJF}ekt*;Ymo_)KGxGcEc-+_wr*j3`VIVaYf zrM0&v5WUg#hlhMyABwyed!=e$y_ygj7Cm?bk@^bgJ_hUd$}Y5>MlH(6_ax&W^yBab zykEhSNgRoA4#@f+e_HfNWNS%a)GP)aTP=abX$qR$=cxtov($Aahg8(t!}^R$5wc=; z>OC>~SDt)8_)B}>wo9dnp3*~=mj@obYp&Hb;o^-t4Ms2p{i@-aKpi>$g0%cM@mkZx zT0GhYx3!&y)ZL7aOdNYxQmf=}`!^SKa-I^^8%@(x+nkl;;NaJ<{6F}qHR}kZa-Lru zPtv|{*5khLPl%?8n>J40AssR4*XvrEe~FEP`S$Ea?oCXsEo>gn?&+UPc&Eh@>bu^` zOv<4q0ce)%}qdC#p+u{fsYp2yf)FOM{R zb&@+~K;YoU%mMy&zo=WnyBQk+hIr{;8EHC!nWvt{`^(e-%Eqig>t2=c^W(JIZRA>K zh+=7j9jh~A13V0z)-t8l4iy&6_ePL_%A^xit?m+O&zQwrAEj5C{cYtsip-|gMFc9I zFnWJFuW@poa!nfVM&~1%=aOeqeT~cehj`DHGB)D5chlByFqFxzfK0_h1;Vh+Q)XD^ zJNOMo%R{O!O-?%E5gQPnC|(U<-f2?a%w$qXuESKYRGTP%R_F7o(%AVZ&Zh&?x+7Cd zG49M=3Ko&fQj7)fTXO`8ACPi5`qcsZl`cA;N@OxgC}2;uC*0T`?WG$C!RgYo@4wOD zm5JQLky;vq3p;S^27POuyu4|YmE;<0a^m_K_P1wKE{-v`rfVYVX8Ul6kRG(82W*T! zLyzfP%*!mAf=C;22d#9*RG*Wo6^7VaIMFP)7uHuG?Ok1&K#j#c;Zf`dXxo z)K=}Lv?`yOTTr`CI0R+SPCC~O;}04g5nesa5R4FV1xr4?6}{ulhH$)|;^tj&H%g7_`k6)?2iP*fX{@dtWKOExk8IaJbQPJ-FjuV&s~A~5QJ(>8Wee0(r<@Ks z2BWx>b0JfK)YMNQ+*tJKN-o8s<*O_01mhj)Uuw+TTO$>h_Jg?g#X8)Ra~iW@S%y#I zGh1_AS&qY5TukS6Z1_EyyiH*N<_RTLZ1Oo^Kdn*L*52Ou#S8h0+=43Cfo<+CJY}cZ zo)%ex#r0KRcAwQ)vdceGaOrcchkcfNrUgEiExXahMl{2B=J-xM=?7iMfs>gOaR*SH?iD?TOXg`fDRnT(=?^=`ZeJVY<6y&U!00WvsOGr&z zK#i%DC*e$LiHKt_%jrciUXrEzQbC15=>#a@TRmyz{5zdE+g#fXHy zBy`WGhalrL$uxMRU!6Iuh4EaeNibllHZ6D{_ueJ7@sBPHW3F8Kx*HS&5Is7c;67Fku7(7;`p1fB9 zn1fa>v|!mPLk_%FP1cxW$;J&kkm*V%XQudqSU@Q*N7lMq9~7+07G4c_>^GCyHyOoj z>Du&jkdAgY^{$$Ar%&N$H0Z*jw3er>tRa7Gsjacbzq6caq(l9CB+O{Zi^Pk;tan>XF_c!P@lqw`B#o_pfHkYU^X< zsi|SAa?3`Fnr@`l5_wK?ht|4_ONE(64n=YImi~5l!4#TKwDwa7A09bgYegOtjY{*>wuaKiaPm_z&?~ zOU3@e)aA=B`k5H@&jEh{Ugaj`Qb#@OosTwf1knT@U^P2hGRSrkZ z6ZR~FHI_1(rBmWYEJvpm(b|J?WLK#x{{ZT)e%&`<_N~ntU9yC3mEzP_KE7INXNYjb zW1f{cgm61_t2dVBJE;H|2a)*mNW*kv1CiFVhg+KSb0o}NTE{l*K*_FZNJ>5jAlH8+ zA?;XWCb@k=#np=i#bZ(@vxBYnSytUjsLg3wv5l3K;Hk)}G3SqJw+43s+Pun<-p92W zA5Q!{)jzeoJ8tCU?b_dm0=7gxOs^g=r;%Q1@HbZZZmeCo3<|H|ll<$}H3(QLxEUbk zzLPAg`?QbA^Xxw@X;{o;+cw&_1YTrrnEwDg)K?Lm$oS%{>Fu`ZPJUM7ABPq6QuuCu zcgmwu%;j!k^4eAOIQ>mx-mc2! zGX7J0!?KC|+c)GMN6_#^W87(DPD`ss8AOnQ{^=Q0`qqw+Je^YBLF=^sHL>GeGi8~) zjC{)bH6pR{^T93)pr5!;zKTW}}ZFeiXVhrZU>(_U*Nl_UT^x;M>8d zctXUn%OpNaf539T(!2&dowe&93iTiK8@p0-<+qv#)N}m5TJf>;`JkoP`aGt$v#ZGV zX!-Z{y7+bGy^ zNi?4?qN4n$pn3%Z^{lfHjY;qN(TAh#<74g8ve$M)3W$*8<+D&tCP^J>^2#~&sLv%~D}-p+b~y&T-&Ce*)^*H@2o~LnP-K64EVmbc+ zBBO7Y+MSPViffV2dcgH#u-*YZ#W?)U$-(JNZil@yJuot9dYVL?zV;6t=~+i^w8a_i zPusP5;*mkOZ#}5pw$QRCYtpyl!yt<1{5x;u+&q)=kn#t(r=R^{rcd3fE6uMwvY-#>I_&>zfk=QVugQjY~@L9j4kX zoEt|bxgUyJ)9Ly_{z-zeMHwRQ1GIul&(zv1}xO+q_~PT?Oay{qK2NH>S}G`&7Y zP996!bJRT7!G8-{=VjIK#_mWxYt$|#()=5xnLbFwYn+^Cflrd@Y;8$DC{bTBe0}(# zEZgj@r8pcM8sMW+mK7>=Rpxs%=~Tzm*Wn=e!TUr_do0M=ZO*C#bw?MF1$n74Y~G3;Y047iY-jPX=vkl>D{tWMo~)hV2Gt+m+7 zK4KFsU$TQe@<&@D-&=uh~86&?ha^Unogk5yoO7tMir7^epxyEdXZH*$n-U% zY_Z+hOK#^9C(R$!^&gdIWQHQPh&7#kwaZJmTV#;P7#hW!u4-*QLX)8! z9MY1!S~aHaB+uC&+4k@IQ^GbE8@HJv1fRfWy|UIZRmqYW~vQd*vj!VBTBA{eupozC-iNNhf(#pzuXEdtAAY+Q_v+8paaJ@$~ zjW?Imr9FscBz5Ukq$H3#Qe@qWBeaS*$?HMOAj!e$NUUQACYq#@Jtxo0q}BQ;%xJx?;Cs-E$wU zMducnfY})&)9$Vs;xL48ILNMwQasAhyKK1HiaKpmg~w{j)Gn1GCpi^j2-RaJ99B-T zGDjH-K^^PRiRR1QIjhTslHisY=M`?xV#pX^h2&N})X~TroZ_a_^PZH`CCGedsp(G=5V`M7IE_D@MIK9J^rj^HmSJ}+cXaJa%e@$M%{nzL?N)8z z+^t5X^eWlHLX`(3(#>vTLyk>MkunljlkHO&T5EO+zcpzXvUyDPh{qm!nz3%ByHPz7-hyMU-m~X&F^{-XZ{3~H#utX70m&rekb3Pl@p^3-L0sJew(dUm) zxWclL-OX>~G{HPG-Y-8x1k;#^YcmhI*Z>&WX~!6(9PQBZ`oW7zO>RN(kM zs>^ec3q}WQWBOBZUCwz!TQh@?NjDb=6moi3VWaqc?c_l5WP1wlJUj4iYl5QXe794P z_*bj=bHaLVn+S&L-DGv+bws5Yt;lq*vE|mD1G&GlFBPUq9C7VX>Hh!^q_tOy@(ga{ z7_Xyr+lxCAv7~9`qlIZu!SVE!Kz6bbLe$@}yv*o`Od@hSm**p;JTx5(_E2(%r z?bUAZ%08S|*7~)Mk*HaOe!pM-wQ=4g@SU~BmSTb($=RsqPhz7?`7=_D(7AqtrE_-c z=3X48Mt`k(kBq!0aTUbzh_OMesJ$0226Gg774!lfQ)p5)IqgM8{n%L(`o z&~wIX%=|@lE|0F8m>+H%a^t>F6v(j=U-o=||hqatZ2q{{R}~;k-67J*=z3oPULLT1LGlmwbdvw{IIq z0=0E(g}%9t>>LBjZTu-ZkCw(>$CgHumW@uv$9j)V@on~!#a2cso#p_bBVh5CApZarUC{hkRzQWz5^ITVT2+Lm-B zb==suT{Rej`Emj>af}brz1QF$#cSre zk3iN~mRu@3XD7Gi*08BhOQIp}*)!?CnPWmZTyQHdSXNv%a(dRbn;)G4c5KJ|HJjoH zOo&Pxk;kQZyw-MSWK719W!aKFDfhPVtT+dj6-GEpD0ek2#mFo()82&kIwHH7M%AG# zI)hO}h8*Npjl+hFu<9!%u8TPga0PG7YBJ;-s9HB14n=d5%q`|f$in9pwW!@~Kv#iW z?xx;e+1%x6?j_t^NXAvd{H2HVuRpujV$<)L-n$hQ08&qJ|m}_^iN2v)U zIbwR&v0(K!H62_ITx6aGYYyVhTjeZ+D&4DV>{i-^sJPwGWOl9}#J(mv95aX}0n}t? zo}AZ0eT@`fLqElqQ0V$}%jDstT$VY_c{DyHztUos8!6fmBYfLi9S&*@W8#*juU$M> z1w>ss0bKmoqvv7C>MI#rb535Y*wi(tZzK`p*|&VEc_Ojkxte>Syd8tR zXtMGO@_JOMXi=Xug?8hHsdx>&N^E8scGMvB;;t71(?R zhD(o$noLYGJoO{<6}=m|7*+UBPW_{9qSZWPkVvI|RUP}+hxpS-I!>e^BWkF?^*;6L zUmCTsb@4c0?ui~W_sBT@b;-OWk3Z5b5;^HZl671KyPNs@sb9r!2?4S2uDksXaYSLXz&|rAnOrYP12=pL&*%(_$KZxTZBc9<>`D zeXBMr2}!zz`Mt#{QOF%=MF>7%MK1vH%_iJag&ja%bJCs{){%c&Qr`U1CghuGg-2fW zs>d1YNXPT3xCqO~twv7XM+dbypPHKOj%le4J8E3B)#tb1xn=Yyr64Ay+!9dvJ(uc)k;H5sj2;|pH3?5ngadhKn-6vRBi0LYEiM*C$n%Q zK4Mo(Yjtg@AThW}dTp*|<4k4g!TjqcV?B(U(V19%K(4Adsnb0A_!w2z+MbH5J)D54 z!R_f?2A8Y(*p6-*yxT?b!4f1F<0Jdk+gmE$MzTQRhfq}WUt568Ih~XF9|fD_{L%NL zuXCcB0VgZcu{8}nlKb{Cvy68YYeCl@+D{^5mG!JBRFw&PI-46~u+YX+ z_SAPf{Wki2KISWk9Hgm-VO0Zwa9(2Gi{N3V?6O)xZE@1cToKLWsz_}=Zg3m(dLU!bM&mHzt!u) zq#lROcKmT#mj3`NBMuEksaTyqRGuPm17v=Asbd@rb6+!3JguLz#!7Kdxxaa8CAV3C z$;K*`y}y``#}&1t{{W?F?1!Ezos2tPRU_{I0F7hIW@kovG~UGvXiLK2^&C|jt3_zs zW188G40Ag6&T75IzUDP9H_+{kPFX1<=|OXKQ41>rd3-`!)2djB;s^D0s)# zyt<29A5~6#(M<1t73xOE#Ww6)3n18k5(RxR<%#Wq9PyvhzDDrv*Vy$KB^(rRe=7Rd z!?yzKOShA*)tAqfPAA1@@Vu1z6&fAT5PH-KnT#HXIIU?T`J@1Q)fR}TBeQe) zSJzXQGO_t?E}tsqMrVm34H`_ms*Dr$&MT6H1d@G-5mk>IOZ# z*7tyJjCWTygz!e?_v>ACqs>o4k~Ka3PTt?;ju#jm{{SlQZmm~V(BzL95=Y0bK*;@T zf{*1JM@;mtVkx?HWf#$wt@#e0jS2Tptw9Xl zT*^q}p{p^e-0O@H#Z;BGDwM9QO&H);UEp0vY5Kx*g_R6#{Xbgd)k=X@^x3vwTb$sD z7x~vcNP9@Qv(cwf)0&b#IPyeG$jPcVEsToLy_2ZzSho{kpGwL)MI-e!(Usi$;#HEx zt|i=K_g9fDfrm_if+}lv!OdRrO{eykg6-}{%_WTc8`o=e&*NE5XxW^7+KNY^EM$xwfU{Glh%k`-n4S`XE+x72G z>7MzdX<@_e^f;y4yPQz8^@a zI=v#?GcI|qy*9%Vpuw(NM_z>2LkKLxy?B-Nm5bRI*PyLm3+Yd*>u^K{P#m95m6sPJ z4z=pP3$#D8$0gj0^EV6l8c~VKR$Qr_wwI#AX&UZONEM~E20l@bpr8$)3IcT`)l-G` zN18|#IN$+L&2+JhFD9v7Y63DqJbi1A@pp}egKE;_aj!oSiS}vO?!(~cUP>#e*Ufp< zlU3UBdFM6r?y2$0?U{m&qv~rM{C2yIvc|r8rFzvJ;(atSI*Dq1EH1+y4k}fbcLd~D z%~t;av=IyhgZ%zg)M&pREG}3ql59Tp$;~CC(G_x<&{s(Io4qbQLK2K{7-GCb;y>)q z{{RUCz0Hi|NKSUP2lcN&(Y_^V_t@KVg#Bx;)BHtkasgSC=iZkl8gH3VBL2?)Dezd5Lul79FY!hTAIJ*Uj$saNO3Rh`owui3T2i^>rsHYrNY`6? z)Hjxw7LHbEWQm6aI+Z`lsI;uVPkQ%al-1L@%`3&(ntyB*eW+%#e$mv?_O5eP$Y;!J zi=o@CJI?P|#^`$B)QNS|nrfLm-e!~BagNm+PC2S=IBe5eVe3`NkA?8tH~w8wFwZo3|pO`r3oZ}q9= zw#4%m-s5&hYO2qYYBrFOOf8C$GJVnQ!wS!v8@TCHGkft>-LicJbi~3$GI5-As7S?4 zCIR-S*}eF!qO~z(EPpzQk7}13(?nsE{NFe8uS$$erKY83{HdFAdFG^WIjGw;a*m{? zFt4W~j-Oh81!^`G1r1pYGb{I{xC`bMUX9H~BX*{&pDqn+5E4PRp4C!sy_&SlAFWoI zL2eHf+X&xr+d``^G}Ym$@5X8^!#Jaqk?m1Q_i;~V$l{}FsG+sguQy6q-Oa_gVkUJJXjcF2ZR7#)7;Ki0n8eUaOcyw~Q}{1a!y4R7KNLrpD# zD(~8Q9ssY>S!4eIM*wu|U!7xP%UWq8(X9R%GtInw*^W|pEWB67U$k|I)qFQ{Z$V$P z<&lRO^dF$Fv_2*2^GRpEJ_g^Qub93yXmR+H;r;!*nM;TrOEQd-q~wptSHMtCo?@Hs zeZC6Sa1JYT^B(Hx++N)oR1MrOx6-NG+sQP7Ffv%+etm1O@%D=rlj1KbG$Jjz1Otw} z3H7diX=7YGV`FspujpJnxuG6Y^87_7PNPy~9ZC^pDTg^_>s4|S>sBR<%^`AfM?CeY z56hNe&2@U5w$xQ`l+;mlrCZgGpNF355 z(2_S80QEf8wU9*_CaPP;WH>x`sU(nR2d7G-Si2J}tjbFBSFGeJp_;OUp%?+ux3rsA z)FUdZkUP}9&Wdu@Jh+m9z*NUdl{huhu1XB{^`G9{7XDIYLsnoN% z>iQ12ki?CYLA;0hiiD2vj9$OZ|zFa?gJ&dQ5tq;&RodP`PE7u1#&(om&deHFE2cZx@~iu+Lk{9mBL$7H7p-1~{b9BMeeRWnvNDpuV48eUyDK*Ddh17# z%sWuOc5DNM>S`FSRfZ2HsYuNvj0na$(gq3+DkS?pJUFk6LVGGXv72g+$Hi zSD}M!ZR=1a?+~=99y*@ZL;9|5=!J7mx6?WfD4#2lw*{vf@zJ;jV%8mlW04nvp ztK)9o4QZPckLKx9$23r{Y}V?UTbst8avLobahKwx@?p1fI-k;^yw{_RO0Nf{Va=;a zaUlTUQ|F9yM)8bdZoTwS^dM6t)}wKNd9G?e?8S-5`qU0sV1t8L%C+`1zhipiQr*C8 zel;9=#L=l;=NPPoc0GBgvoisXm4`D9V^SXw-CMuQBM-*9jR)cd=9?fZD}HstDls|7 zN_m*T!1n7-GU#g=cRq&jzs20k65PI5zD;|NhW;REvs$BxqYm6{B!7*384je+Ck(*; zRj+H}i_2UDnSdQRty8wfys?q`A!XtX9(c355_5O~{4(QY`njQt3%3&cMc;j_!YLx%5= zMSRD3;w?i^j2R_z!1~o$HA|M-ts^&jj#l>vPMkD7%TW0Hb89+?_Tc(){c6si@#^Ev z4I-%>`9I@dKQ+;2+}xUwUloszD!ErtUMJJ`e;KWB7`%gEJ-^AW*4M_C7xqX^(ttV_A-=HH6gwb{DrV-mrQPys`3vxs+X2hHr7$a zThqUG2w|F!Qx_dHF>a%p5J_x-#Zwm&ZW!n*Zt+q@elTmAx^{rEnCSIw$1oh=TxNxn;I?c`-3$H_eNf-BnFQd^B0!^Ap6?7FjW z-ze%-5AikNEp%g$DaPDmHQM|?@l)xtT-i7eX)@riZ0A4WT~VoY(dJg7?3zCK_-Esj z;_nOEPLiw0stk&}V;zY6E47)$#lG?mNWuEo$KSI@juS%hO!`IC#UZ$C#;iaGpdZZF z*7w)3!XgUW$6h*eE6J@6S!hKkrJm<4aeX)2B#&+rI2CdxNh4Kp^Jc1Q?H}6_!{8oq z-mb&3p&L$3Vdiy3gvyD>YQwr;-nIq>Yt77qCl!UMO(NW#pK`58=uFSlt(xJ22gez% zb5y?#w$f9CUj6H4{{U1-SgIV&iu3JTR)%drhHN%)e;U>gxRkE!S=AP6b`iig+Y^#| zel^GIR`K64@{=u)J!`(3Q@6A5hMIGN7RuI= zb{dxH9G{6i4|8WTyd;%lkShuuI$Jj)Vn=^bUZbvRa!Q#SN_6d-=k?22rn3_u`LWX+ z)=oFrxXYt3ELtg4rT{%@^GK@L3xl4un+4+9+yK#)IrgnP+la(#Ai>QgYuTDyr>k2e z*1}EMVcN2mGSGkzHEw2UBq}%unq{01Z*WVE$y2_?CW}__MID)D8Dqs|OKh+L`*3>K zO0Y#WyOMA^iov^;JnfxMaawZdE^FveR)3lHa24K|=4ZbNg5>upvB)h!~Bgj;6a=y(KIMHQ{tl}DwGe~nvg{v=0t2w7s5XxUXx zc_bcx6I_4AokDB}kmO^fQ*2<4^@O(pVaD2#f7S|(S8Dpyk^S+_IPQjhpZgNOm*M?+kFJ05&?|xc zucQoY0RHu40+ ztFbV}RE2WgD?&8@4h4LSPpBKX^Vm`vk(6W7qpNW#F_f9_Qh8&Hb50N+PAfh}Sr+OC zH9Fhm`c$818%KJp6Jo6*##*N^h0Qi4!}`!m9~>ZkYGqxboEN1B@~x7vSYZa5-TPFH z=~1%ffuVyNlj}@o&U=b;RCufrw+xtww3Y6ZEF%wII-IeL16d0CuHsV~S&Z zzV)nMLZjGH3CC)QmmJjG5GZBrITREvuAx1gfuWI<_T<-b;h%|3ZbVnn+Gk_lM|KD<|^cx&Qf zU2KB?0D^emRHS#)#6o&K${N0hEDTQEii<<>MdycZR07Qga#Wrx(poEBQXSDU$fSE` z@~%t7UKPrhjd5DVweLqp6{#sFb#!_Ti>z7rqRdNf;U?-=q2uwb-7fjRL2-8t!D-WS&g zm@Vcw9kX4UAdx`_j>yHHYHC}gIQr~IKO2tk%n)9gwn-Q z`JY;T&%QJou8;kdbv9?V;X@uu@=5$SuTj-5BaD?pleZ_@zBu@C;&b7@8Q9#ko?K4C zHysBgbNLGTPTRx-P}L{c+oCF^Temr{p3Jb0HM!!nX4x($mJWp8yRSoy@!hC{QdyL7 zCqJ!Y+Wf;52Gi7ZlOA2Ofuu0FxHD6fdb)8(5#cFSvfY&2cYqr)fWmNV&^vm`!E z^Neug{{XL4d_O0bsK&hf{{Ss+YLFP@jsE}&<>kCiiA$EQolF_>w?os~l4bd-d#Lu! zocF~-&6X7wJ7X)YP8Y=NV$}f0EHnDmTT_J`R-cTcA8d)h?TXB_V9}1oyqez=N7P~E zdP$e8P9NBljmEybYb%^;0{G!aq|1rF|U_AM;sQx{HyBeOGEPd@lsr-J8cWQ z8P7k?xeZn?Ch}!o6Lx<(>#r4|6CgY*5&2gwtu9EDu0}sB*RxOJy4d-8lI5o2_eVQ< z^Jg4`&-0}4{nyy_>uCwXZraDT4;3uY?o;boLn&~3oY#Kql;L->k?ZS~lhpODgTj|y zP3FVVxUN?~yBemK1;P95xNoT7*4CLRx41{fFmql7XlUZkTM1K=v?iF(i&i_~wY^cw zgByNikLzAw>(5Rr+%6{{XZP>r7la zf;so6#=km!f30M@9*myH#<#N_&By6kG7{PBD*f|(?cTE_Cz|8vkJuv}h}evt;*Va` zd(!Q}$>~zdu`D2G^sDf;-aAzk8$iz$W;Wz^q-P~_QU?4hqtO7qv(z-k`?ruVT=VlN zB}n(;xodYk4uh?1X;)2Wdj-PqV{qQw9)C*CTQp@TyB>WivhG$GWjH^9BB9&Y(z<^f zY3rx>itoxFxS71z&$Dts`W)9fpmI7M=DCkXo4jsAw{K2q+-=8tb4CC-`kHS%)U%-t z!Q&kMl;s3_P^T(zGv1!7xk1J$8VZUVuV2!pRSE__`qac+dybVV=hKRdmWGA-s!+Ui z{V8^m4;eYD5yQt&MmyBD79nNtidEz5Qb-2_sKqr`+ll~^KHjx*728l-!;_l59DO}0 z4S5!!18+`h^|~B`RpDHy7_BQv`V-Qzmd1;*a@~3k=DM8{9N_k@dd?E^3=S)+(wA-k z72@Kaj>hp@9bTCq$}wBEs}%9p3tcqgnml^a=9P$kwNmo%Di97mYHO)B zsmB%1-dq;Q>s;81p3XdxG{e&8X|j%`f92%o2E5b8m!nXH;wLrJ_=f41BP3UyYZIN% zo@?i8O6tt}Ocf4RrjIw)G|junI5p?`(@73+*fr?hAegH)d8ddb&i?>jYbr5qpIc5( zmh9%Pwa2$SoYh0(&9B3iHI=MfVUMkHx7S5;&JBCCaL}IU^Xp<9Ha$Ya;sxca0}ayx zJ?pQ~zi2IENnouxkZ1Uh{{ULPZEa#`8-_J3J|+#HFyQ*u)iSzuH;Lv;6B%gH_V$**GYzsKz-SXBn)K|ZFxF;~PL51El$8efgBZ2o9xVUK$9s$^WZl?gP? z8OIM(Nh9^6OYwf4si-mB#>D%Iy>(+}t6P+nW0@O_HVuAZ_-Etpr=`fME?8~<0BXIL z!T$iYZQMH+d3O$+n(?dPv6R)SL!BJ2E#`dGCVSV!57~pmJ~WO-HmhwjavC)N{{Sla zOX6qjY2rT)G_&ag?UumjZV7CDRrN=Me`y^nSlJ!Sij3S>tLgggov*+e8Kae0bjUU1 z#&W|;_cCyOp2jsEFAt?y-5-x0BJjSc;d_RIP_&ZS#|L_mSZy}mroUc1ckn;MK0dUP zJN-T~>@ns>st@Oi`3K^s>?5dYa$H_`a#L{!Q3GY0*8t|ej|rOdd$^ce&1_<;!h2|Z zg(Uq5Ii*{|xXoPgSA=zM2kMg8>ef=(%^PD940QCxU`WUCucfESQYuh)K;>guZv%0j zDn`0q05yf?8daG3)}GB1?G1LA9`#yTPZe2a^)&X7KW=Kd3FaFln~g-xPH&c>Z2c;| zn63={YBJO}bK0VBTFP|Capn8wn$M9;-I`6+&Z+BRxejKiWcI08jAEmgXy>(cs#Zo0 zL=MBDsN8_V9R)sSQ;nkrpk~~CD@dy|J@p4aF(ai#kTISIT6~SUed;+_@OqDG?WegC z*p5zEuD~eAv4;L_oUrTKJ}TQUPdb1^GyU`_ov99`_yalX0(X{ z8iGNz`c;p;lU43MZfmkTBURm%q&;&`)Q{8Nqo!isqt9;D8|I!l6xOOny$EC0hug4Yue{O~2B<7Z$IKntNFumM8dB+Bwe~S$(HKxC(w`T#ESL#(MC& zZCgcPV7Zw}MUVM4 zLL^Y|$Z*9o$ph(Mq+b;LL8bgv_#vdx_NC4av1<5BJKsEWd@e29%j}l&A z$+Q`pa>pJvr~nKP#D2B*O&ZAryY7!Et1*l zPfC_okZoL^C|h#Nl^GP~&m$SB?OR|tKZOXJ75R*0@H$m#R7u~OwRI~N!5madgBrQ^oMNX1^A4Pt0qT{MywWAhqda;u)T zM($>21%Dc3b2~N(z^KyZoc)b^YldU!1#H@C?HUDBfn3aU9@SxF=yQs`RL+>zYeTQK zz84Y#TL!xuDMMSQ%nmEewAlb*hQZBudUWJlC)NF#&9dK zY~a#{uIblu@zq8Lal%?+LtwjBJ5=t;B$(-5=KBB4PZrd$i}QD zq$A{>Ye>y4%+p6iyJJ!_QN8j;I5;(n{j{Y{Tc2FjIWL2@Lvj4;Pi&UPsz}?PS^-Er z)vXsr^IYw+iOU>* zG{(m2g|5Lk28Eb0slKL>l6#gFe;Sl1?@>nMj%rn4)keI?mM{oB;8b%UZnP_f`ca=V z=~QT}L}LosQAfUTmVxu?UbZ%-$Z-X$&$u#-V zJfweR0fu-LJZcaSDQ<2M<7wuprN_*9??*8MME|r;MIEz$t~vLjt5HAxs7k6z!_szn@g5B&KGy{tXz3bBQ+##2~Fj$Ys#McGX6Ot->ZAwU3G*7o5<5`zC4GdVuMO0hh zvMA~6=}t0tB2iL3cSY5w`$n6qS~>Hr*aq8>eR&o4?}Rl|t$04l_Kw-3PzvUwD4c`mxpgJtPJ9M;{?`>N8hWb5puJnvvw4(Y@jc zNYoZp`;58U_}12&=1mF^FglvS@d-Bfl6hx&UN)Y+YVD4y%N%OMXBFpLsvLJl)xvzo zJl8*}M#j!oQ-;n5t!*^G;k#n8HAD=JHhxd;_M$xwhHw*J3tdBF<=wc+t~bQ`8MxHf zlNn>%KDF5D(C)r6sO3gS>s(8Cxi36HC7sUHk$6o071ap!M8`*Qy7X5XMvWiu3q%ji z->|Pa*0ry-+^LBE@1d@b$G$TVcz*WO47PE*)0*(zH(i&_aLiaS;=7~n?o_?!q1WDB zFO@iu?j(G*#Vypa%2kdRJXYt+bqkhati0A5$sN_fN8wkiQ+AQ0bS716$0`XSd8CqG zv#5$rn9WeQx%&$_hFprqxYQ=NkjTxIJW`F8g0T-PM`<3eTUT9>#}++(qJxNo4@0?WIpn zNUn>d?T`sZqt#VJavB-#V`BwDo)`oKP zCbNorT^f6c*oQn8@5nq?p6fnj*)kGNb6wV-t2{a{*(CXzSwTL%F~wwflSOE(OyMxS zYaB$4se8MeChpX=8+9kOJzMdwImqlJ3r=I4`qC-mrxZ0S=pLkRP%>`o(xx(qZyzBO~Y~I+8ydV7v zyT91>ZMqJw2M2Hd&Hn(_t{e8UT-{k5dw!R8%2DiPo@#GoStcwGbhW(T7p1Vlf_(}wJ8!tz%^TqGlN-(=WsQt56q*zLY2ql zNweCT$~ODdn@uBD+8T5!$U4+3{;*YB+e~tE+P6e@%}2|o@?XqYu;ZH{Z5YR z-^*rK7_7+VZ8r5MjN=C;x~r=*bcY=JS2w6w$q_2+#eG$JcK4C+m@Go5y`0gxsB2Gk z5?sN+WzJW#cCVqn1^A|2d&BWdESsl8<+e{hDZu_!@}8Y=)^qt!^FYV)uVeTFtTvb8 z`Sh}J6zS$io}3JvekP)=MP8e4b1L{ng|mX&Rq5FJb6SMnX>zVIO5}ZO&n!mW!@9OV zTJ*T&^C1d(1Y*4I>H}%1PZ1a!iTwGm&$9?w^B<{j{cdV*n`WMyA&&AF2OC>8-0D`o zZL%Kx8sMzk5-%O|UYQJkXtRLh_;FrcKB)IGQnaHZioRUP+3nV|T2QhdO4imF$h(zs z&tKNL=^rv5t#j?8J!*QS%s&}_tAYOj+Q;cx7EQHId-Gb}EN#~D1IYyc07}TV?de`- zA$!+8iwyq&bdhcr{q1`nz|BNKt2_*FBpLofyl&qOFyorU*UYvIM+~|A#Wk(Wnrh%-l=b}U>8Z&4 zs;qtEobdvft|tS9Z<~*Bb6mEhhDZv5lhl40Kgznl8AjIkc8&ZpL!ZfrKg?G(7Fy^b z85#ay*U(|*dTK|c8Bej2{M&p2NeNRlflPa)q+ns z89&O6p!MUhsq;F~2>Dd^r>h)s$)z#%=ZbQ}ftp^W4vn#pK*nli=Yh!UQO2B+jGWbo zV;Sy69)^Uls6BdBr9i9GH4pFjwr zA3;;9@w7_VHnw^(Bd8iYZ>1A$)|h{sB_oM~)SrlF@(%5=YhtscX1bOG)cKhHJS z>0b#nt2S14l0rHA#~+p}utg%3?v^#{&2T8+S+kl|XDtx>OFL~Q+(QESXgT7exV}-) z)^*;Xc^Rzfu35X*lEiYZScN=0ma;VEy;f2Qtb3UTi3Abk^ptx+e9V^YPS<6;> zv}ndV7#i)H+!9n|*Pd&de6fcmabBj=4ntOb^^6zMm0$_48dWdU_h?mgv}es;D3PNt z+lunta^$gZTKY4`zYk<&mRn`W#&KUdc&ksi)8~>oP@(C~cj2U@?0p?Nk*N#Co`0)K zcQ#FOI-J{cis`j>E4sNYLo7(`Ur~pS$CZleWZg_iJo8!dOn+Lnb@JA1tW~|M+KhHS zVyv2aldZ#mKw?c0>N3Y51msi;C`HKR)mf%(#OIpmP+g28QJUY|AHLb0rmw@|Ni8H8 zX8h}rX)@XBd(+zKq~xA@Q7SQ(jSW_mc4w^kf8rdF$fwRIezoo24}Ll7T0D`MZ(OLs z+qmG@$4hkC9N^a8jpAF4GF4@emGrL%8Iw`PMW(eqN;!j#qfuQSsQ&;D{{U%7wH1mh z@&P<<&;I~ky~{`O9frMb9topx!=^#6$(i{6_(=i`9Ec>do!x80}YIiJqKwYT>M1%FX7LKmQuy2*hJDuFeOz1x$lu*6?|U( zgY{hoE1UlS4a@ep*DdyTz&PaK9OtEdQQ&`%5b6q%UoZ!z?f|b^)Ad^|ZrnT)tf9U0 zUVRLFsLs^iBkj=eD$vAW-Ks02@h@KR)~DgSr?=E>rnQ+)8Dv5S=ZeVR(AVr=#SefU z7xP?q&{Dj zk2w_yZzdl0gfPuBa5NSQPkLz}ka`;G zdk9uw4iDCv&DS23*89hrX70YVj-WNZxTqgHy75x8ZKzwVY=$>+jgER#S+`<`ZgJGn zAIx!E$8-g0S7{@ms5%o`S1|=l_pI3uUdFa-shqUba{ALB+Lc?6YHblJG9x1+)}Ujx z#ZM>Js<}C;ADQ&m>@hO0#%(m721n=(e#2i)wIXoqeHw;oWaZ@z$xXS->UI zAYU$fbN5R+oF1J=HPPt53;a9#L}=qk()7D~E4x45UtBbsU#8M zmS>0d(B*E;ADxlR@?>KNJo;6wyMPQi>0a0SNPHCV@4=hsH2ou7T~_K$`G}x=gb~Jb z?_M1KWJDfw)0+JTokda#aq4_EN^X7&V+n52?tv=?DE!Lv)RAA>6NXUFq zw?4EsQy?B{c$rtJ=9xTYes9L88thhOX2wr6s~^k>r7UtW$)_@%ymg?Pbsp>$f#^S- zBPut}qn?!((~fDI_VL=P<=ab)GM&U!*6Y2pcokokkky!u-lnjQRPugoVAn<2s%D+J2Ly0ywD9Y0j|_RP3Mct~Q_pJZJT-V$P#oZNt2*ga z)a+!qW`vE^gQ>U3Pg7cVlOiVvKT5{A{p4iklw;KNxw)gM$7;ataz{0f1Z9h}boZ{i zShQH|%P`5VSD+)Itq&rsY|72McmUMdVA$_NN8h2T?O`%7W6ep(qppR>P_zTqoUyY2 zM>T2)@P?y}N}K_aSAK^4qZ&P`PkNywY|MDAu?S!Z;*qV@umJpO9B#qIvz&Nao+~=) z-ay>+uIu|gGN&UZvTwBV%5b<9Je^3DH@Z0qBxO5kvD`3X39Uym6-HY!t&O;> zbvc}50^#|m$0K5r8&lq`M`&A))jFENNUqGx52Z%2GdBc*TM=pf4mhcfn!7mbO3c@i zQtETE!y>W4G)3ly&u@C@8pLCf%~$&dcmp)jWA<`JdtEXdRfzQrD9>83+HZ2Ws*_p# z-zcgNe3>-?)vHDesN_tJD*|g-7mRUESzZ{zfrCd=Sk0%Y(8q9_hEFwNr9+HYEVnLj zSmLERi3{8xtu^Fys>ej~E;1=2xeMO8zwIdr#%WseLcAOrWvc6{I?uF*$2Csk?O|?B zVcXnX_0B~$;z?w|Clt~NR$HWBn^Y0W_p&IDS^2m%mX>cfBy*a-YoolQ0yZP)Y4VwS zX-i~SO?0!6PDMF&t*l0KS1ddmcY4^0-bNqpn$^?(80r@?ylHPCljvyWmqb$Lk%qeI zUNM?__>trLs(Shw?XCU^YaUMFY{mKoBbw8(_!X{PNRd60D>qM2hHEGDgN=1h8WBFwlrDMyh++H)L2_ChrXW*OLsX$2B zkD<+Xei8UXbE-|Tt=m2LtrsziPpdqZ9Xj$xB}0+;*5;kz+m>~gYY)!8nDGAq?EdW# z%wJwA_2inh+-ZuxVkcKiGapB zbQQxxau(t7!k@caJIcaM-&1Pp`6IU{b{&V^{40@@P?K}08%e9JzDdf+c!Q)?h*K2f~r30 zPhC)-V>dBizS5^Y^{Te<$EPt8WaAjkXO;UpZg0BX>rTerIqY45$gbEJJKs~Dm~2*c z>-DM--ZU=eL!6!}&aMP;l|p!|ul0zk1}iFwnnm21mMJ7M9!)wsff_N}kmY0 zwC!|Do2z~3nTYjng1LR4Lq_x}+00$HBH>q(Ypl4vdtEdLj^g8=TFNm+r(3P0U_7n& zo2cpQ_*B89^4I0u7q5I*RXT1c!Ov5#weVSOA5PRH7~O^|)3$2Ajhfz14U-ye*a*i@ z^U}IaKg6HfUKO*l^1yhX8@L=}09QBSt8*uZFK~HLpU~9SisZjiAy!hTmqWvuhQsMg zZVu3U)Jc}$jEJu4-@)*r2EM^o#s*#cm?PNuo%AJm%V{{U)l-c4xTw||MPpV!1t<`2b|F@hBiEI8LeAyyPlPqZo8OqTJW#P4NWqlNOQ$T)h>Exfl;(o17v&XMf%8RS)XS+q9C1sxG%q-(k($`65I53|wKm_%o8{0xQU+eN z6E1zK(-*=;%`; z+B1qasAPhZ>>gGCyJev({}A{X>ycRZTQkF^ z{QnBsu3Qf9~cfZ{VI>bePMM!3)spVI9;coKr45~ zkQTFw;B`~C`I`Am#-5JHv%|HTtIGWhYZl7^@BM4mv~=C4+xqR#>s~vj%lpOkuWHd( z{v|dne~AFEo~OG$+Zm)&XBFc}e2q-;fXWZ)Tx5(y$Gv(t#H&9hNGHb(G5P^sXLTkg z_O3dbGuXm=^pi6DOu>X}o_f|*u6k9Sc5K}!?TUiOY0ow1)YZG6MMp>?-KYG00ou9^ zE@NwavIByrBDw2kKWZI?ZN}SY2Dtj%y1J_~>`w}63#<5c(&Y|ACO;vM=~}VFy40>e zi2nd8^RIz=vA*!EmW8tRt{2~sN&a=|k!S4f-wpa2_vy;$MUaE@r9?E;hBhByfQ3{-=QG>gx8(OysKj&h6fez;N^N& z?0iOVPm>jX=|9lG)S}yX`4|VEOy;xkvSY>ub6c9U8>CjpwPZ-Up1r7R6UX~SG5(D+ zvWy+u*VBW|dcKo5ywh#wUP}&Z%dZ#aLI<&~@4$CPZ8hOMv`wCU>ys55!ATq8-z{es zvpOp|3^Qk@4r(um7T;{q65tKS7RmMpkLQXcQyiy`I{yGV(wY&eXtyvoJELGepb`(} z1$h_coN6B3C(lZBUt`AP;2&C{b@xkmQ;}LTDH+J;Ju5z7cM)Gn6XYsh*JjSJ-eT$Z ztHQ{ePx<`n{+@ip9yvK5&a+hgufk|C^IOZe_2c=}x(&f+iCF&t7CyY!9j=|a9n!06 zk$uu<$=?vXBYWVV6klmK@fhWeyu@q}9yiM)1L#2?k*-;k?(2&CWA@eX3>Urw(!5gw zDqQI-mb0)Ny}YCV3I70P@&5pQ8u+1w0Is}zEpKZJz0ck}fJROaf7Yg0#@vzK zn;v*0{{XF4F`Q?i{OhnpdpqMFTCo@kzJ{Z9+DPgJ3;ioFw^Dt^jo%?7uc4^D0jH|5 z&1S}D>MU}gb?a3OM+NbKqx|t&7nbe3WMlQOpg(4hg!+8e_g*^jIx1*dSZQKQg#jdF z1eYTn7x~vEX~vv6q*p&Ad5@j-Zx8DF9Cq)i=~tR)xlb}5wZdcb7yHT&YRwrZo@=}K zz40pV;-8K0^{L&3fnybguR##P z816Z%Dx>LF(C8vq$EFQRtB#yg)qbX=RO1-@>0GhMojJ{1g-+4yims95kHW1*_m3RZ zF?o=x{NA-{H352Nnqk^bDrncONl0=nScP!F)M~w|#43F%8AZEQ-2VX9z329I@T_{K ztoM?jVFyh5;1OOOZo6ALr{#UyC|!;v^XV06$vri~Urt;#->Lbq#&K zd@%>>S}0Vg_c|V3LOR&`k$xcPcY}+Khw%RZ8m}jbETnDF-XR}R{x$Lq$BSjRCo&xU zYMA(macRumt zT*A)}P|7&3A=ItfHf*j4HS8Au0JNpVXYAVjn%u$BopQ(Piqe}#@OQ+EBXgzRM+EFL zV|EJJ`e)X?YIQ5&e~%qIo61qdEgq-Mw~BIjtl7EFYt%ep@Sj!Dq<4ut__~6m8uP6~ zPPn!tNed$mIRsbIVeu5|q~gy95r>=}sLGMBKN_zjm10QP1DdZV9jnrdx#qQE6Wmj2 z%}pm2W-NZ;$E_~zDiJ2;$4Y%5xjZ)w69Ntmc77Z9fqA34hH~-!d9D+GwK-(l?OD{P z3bEyy(B7SC(|plq)ZPvFv2S*$1p6QRq~g8Lz+V^cw0RYleaLy*PDOrr+Uio;$R0Oj zVcZ;7pm)y|&D4cRRpK;8cUoqS$p!?3KJsUJf_GKEO{JVLqp#o&L7x_^k_Nac}Z znBZWMUA@Ju7ttJTk~SR<2(QgQ2mDwYqmm1rMh^zQmiS})MC@3t^$9%K`fevD`PahK zqhAEvE5`9Tu^DV7``jz}8s8j0WUmc;PPUrjD^#)6*kxvgLXMng0>3;yGk(uLCHOaa zA-}h2bnVznwNe-P=e2&n=w2qU@fE5`Z7R57oMcvajJye@_{U9_$5OP8<_QJ}bqBAZ zuIwH^VX1h8E37yPmvLSnU+e z_32pVWUT$V(;2afV@NpfQL`Ufn|1;0#+ka9&(qeFV1dpLOd4u8Gn9j#X*s7BSlgaW zHbxt=I2EI(rOa>8Z&U9~ZuG20K<|v>kyx$uC_=}YO~ruiO=&lAj2ddUso+;!WgUnl zX#;WmsWDMAXOYs8WZRt9kx}S7kCWyE^s3CqntalRTmw*+s*>3uTx&5_=7n-Hd($Lu znA1GZ%7vg4G=<|i>r|%u)n_}Z851Wpqty;ttq50+DR)vj?WS()QymUHlFf9IN?&{yaA)L+*$?0QfA-aezX1;lK9tL1--S4|&?rHy~(p~txDYwF!W zKX$;^$^QTr8C%7Uq=4bFzPS{SV@oi0t%;nhQ%<@q2Ly$C!bezI{h}^<7Hh9ZL}gXeESszIydd zr>L$s!k##r;9rk*Ta9@Z{{T(bAxQ1yUzoWhmd*!I7-qf9vQAN&x4h3+FoJezA0vEh zx;Ne-)ODpsK`qLQb#J`uj5B=!2D0@H64v9xS|(i*`s#NM+2k$(1o{q5d+&Xl_Zx# z;4$=FI*q=f_=8M+A5xygIFv%$OpC}o1CW0j%91il`o0-wB$g<~Xvdsd~SL1P1@W827l?gj;H*+@5KjU$>1T}!czy?CiMj-XO- z_~xC@IHb;=QXwG>LF81B;hWN)ux=pYtj7>u)J1@p930ZMsF6;26*}AbgnCt#x7r7B zT^6|PVojxi^B$Fvd8el0K<2v%quhFCsNC2qE^&&=Q5P-uITLOZ98=OU+O+Pi2JQzH zU13#h^c5Vao>ZQIi}GMp=??y!3UA66j%v-T00`^#s^vz?BoaY@Na@~|J2ArnlU6br zh{gpX$*^E`G`UTbI#^_u`_znLp^r`tl0X%H95Z41)%dJPT=u8RiuPt9(bbnFb4`!K zf^7VluFA_#R>nZZYTN0^*<5i~?5;mzp68s82&}*;UTQ}8c+#n59M`I8x;!f|3^=b! z@TY*Sbr^TD@K0K=VvCg+LN{m0m);7yvTXTmN7Aar;oGU0B1T!;+nW2f;4t}lynPtPYw8qZlMv%yI-L- zQKuOBo?q7IDBdXNbU)eOMzFkz;I@se@q(p6Jv-M*-vRWS9Yro-wT)st{Ht9}zOfyw zXK~7pPHIap6e~8|k_qVDD!G!?Bc4_2&r6v)@56r&Mz;46LIcP5lqkXH>s-%>JSC?y zCDoW{9eRy}73mXeRw^Y)ijqcpS37m8SYGA@DmL?4s*Px7qbI4v>KcZTeWfk7rvkju zj4P@De;zBubxt;j`t5 zHVlKD(&dSAuHL7FYW@MXhhPh^H$2rA__tX)Nx+nrTit+G?K5d2T{u4W2JVQ zc8)ap5fxMc#}#t@MX=mPb6Web*!jBH>DP8gF7`HhYy}o13Vnua&3+(REX132QoVW% zithYLA(S1YisT#yVvaZGk6PxPN3v#=?yTA38rGQdZ^~`_D~^*#o;G)Jl+$Zn?#I#<`@MHFRukVOhpq&rY31Ee|uAAPJ3z2d#4&(neDn~qzTKX%&J{h%&YiE)yZNX7qS>gSfJYrJ03CXW| z@D8=4_=?9)iZ}lNPLfP*TzY1dm663#T+hhvw0$i+&?PK}Oa;bAO4DVVLcF;Tm$%!w zS-HnOE3S{jX=|s)btwQuxzFLB>0E}T;>{meyq?Zkb_mmx#ygDlu0C#NW46XKYe{)+ za_}%C1Y^^KUNPgXVp;V0trdsbItA`)tI@7uwR^y~JL6)-Mn@fb^Iju)u1gQa3rJ>@ z&5nDGpmiH^Yj{S^_AAKD_>!{QTj|ltS!eRtka+GZ&a5>l^!xMWu~&XK3ihAc#jNc- zS!W%B;w6U>I^3Mr)W^Hk$Xwjbl5ZE}*Yo;y92W?2T&$h{H1h-1Wu*hc5JoU|U z^Tj(&3xS1RNUv7-iDGU1Go)I&Y`BIzIq&z0uQ|TB`#PvkoQ1(3g>P-HIO@hsOpWF$ z;Bi#72_%sMp&)lPEH`q?Z08srl?A24UPxowKpjph^g1F#<^h;lvT6}-C7BtzFEusg zxam8l*jia@Nzr9PO@`>BDVzuKl>F!Pt*KO77|JGm`gw0Naop#eb*wwc1V41;g?0B9^4P~M$Q#v%*S&I$Aeu)A zH!-fMK4qa1_gPldz3k|iS1})%ob~Bjamj6^$8m1tG`PSA z>0Xe29LI0rc&;raXqyK(|aaf<1cqZ_t)@spgajh!Om zD_s}Ol!ScekHWdX75M%av!2e?cb6DvJqH-#xlL1Cmhxvv0vpexUKRpZs_K z0IyH|sB+eJ?~Xji{$Kri%l(mOE3V%l=woC00b9Sd6gko0VZh$U`3m}sGrn0gcy*Pr z(Pzx|@38f&t1{z`YdSUnf!eP^ipnuxFAJYSyu~e?nyl-&k9^g}k7}PdD&E}!H2CHLqf~~jR zs^xjjb4oTbC0;R4W&CO|+zN8FY*G|1DGy;%Zl=*<$cpu-*-mP9`?V8$(tXh^iK;b> zG=o00`7!jSN5re1d8|yl$uFZmNx-b$xUK1-^AwJsFZ8TK5mqZmn6b2s+2a_g1ZJAc z-@Ot=Fpa)p%~`iUG4!gRcBQv$NDXGR1ZeFU6yms|H3f2M&)3?wPeO|BHvK6$^r;Hx z9+eYhXB8%Tjb;m>|G0 z1BzYR$V3%+j&GmflRp?Hdk31oii?TKI3{<+_B|jH=R&Sh%z6J)#&4PyVJ(Rl5xHT=t=3_IGt|Ppwe+ zRpUhQHkxcN9~V)K4c$l|{b5}mxoFYFk;-%)ze@cB2a0uQ-2B5Em#jW1wWZHy{hW1! zE{83v{{YJuC-Wr#07~{H$BZVknR(e(_t z{c9Xz=7X{3;3MpDt$CcDp5MPk@4FwZd)AK${=u?6)Z_H81+k3(0BA%92h0QYucWlw z6Ca0QK8g?Wua<;f=i6ozNhEW>5p?5o;oab6qagkrPx7x0y!*tCYw7)KOa9Q%Zs5nv z(Gou{E9M%0hwwPBKDxB7dbv!w>GGVWsV4iQlgCPRlWkh9btdV_Jc^Rd zy4RZ{>tmv^scrLI1Jbsm=4JKkShm0G0X4C1!KRFKtRjM@$FTeY*2R~JE^J)kE+gJQ z-rx%Q7jD>GduR2pk^B>UbiWj7*E_a_lmwk21GH* zBA!ow%-6q7^gdpumXS(j-Jj3ix(@-}HNLFybQ2~y^&HkCFQCE2Skh)TdZnb}qR0XK zcr|q*rw0-vE?KD_k#MJOd*>B*N1LjiooX9|4Q}i?A9zzVxi(xN=noa(HF&gp(R`Jc zW_izutqqQ`c>&-DC4Ir3&rL}A ztaN>yNz&}iFAp)E&r!7MSv=MJ4?ohQ(wN6}4`H|;)}rw3$JzC$GH{X~ExkDy{&=g> z*_&IYOk-=2`te4Qn~UmVrO!$d?V;X&)04+Hz+V&x0D)+YgY6;^e>(i|M%{u32b}ls z{(lPlpZ1v62mC0_eKVgr+6ckz%!&RL@XUFQLXHZIX1+fy_!~c>++E3)a-;$6{OU+l zqXUfp058Up5;uAg`Bj+4;#7`v_*b$k5Xp(8KQ7TuNJ#)=f%(;hwmY+o6IK$>cTNpR zZJ|s>xEh)mM$&Uu4Zg-B9R8Ie#q#$#~vuK(d@zVZlns$jD%jS$Buw! z@~>U}sl0t@;a?8ed?xVpfLmHdjjBl>1cA!JPjXMpe+s|wWvxCH{5#ivBWeo2XjEu4 z^l_5!&;UKykI2`|TIQ*Du4Gyy{(`)UpT4VavmeYO4ryJP z&6fIfrH(z_ushVNA7C;%b5o>ybB<1PT?e5a$Vk-j#}zzr=NVpU@yENc#ag$A<{2Dj zq}Of8zR$E|4EN11mPUBRU-Eujo+-Xx%snUqylQjP^s7+EyBXv8)Y03Hed=f;+`wZM zErA0@L!RQMjywQy_*LJqg5#buQp;|u@~GWeId&`1sL?B6jw(o37!@-?w*we7_@eb6 ztwWKbCXcmupA7s}ap8Sx3z!cX!!Kj?t|B<|j8{|Oy%K#}Shlx;S)NA69R78~T}D*j zF|<3g?jH>5vFqAA7m@HCa!0>>^%nB)4H!UvE}Z6YWas1C2ofc zlIOZPyQ_aC6dJ(Pqurbe>h;hOz#MU0mF(SX!^J^G@}Eb8Zc$P=?RpTgzpg9Gd_k3F z&sz08a%E(HTJs+h5y{1P{JNiIg>Keoo$C{Q;tw9x#OjwtT#VOMuFMd2^EjzKgKjk^^A98%mfyqy zm_>4Ohk)HrHHCY1`@%(LO>j>na~pp?jkb8Jj8C8=D2%>)I2|O zX0?_}c>%~ONUi-3#!_hWBy%4&*qjwTzLnVBSZUrSv1zReup^b=9-ftyo1*zpfHUakRZtC8U6%#A9+G(S4>dsm)#H{+j+JQl$ryf-i}@K2XNnKkYH2mP(|{YAtcAhr8AJQ+9( z^~G??mOl-wUouBbXNANsdqcszLExQBL6EJ*w2BAuZR7LBbJ9XrAd36hBk-TZjXX(d zHNDzMJ92t`E66?}e$ETJN%XO>_1Xpp@~)gVW~J`dR%BMoRk^7h8VAIGgGsRJUW!6P5a1$&D);zt1!>4GDRv5dQ=;T z$*nnTbCpVMqs)uz0{IN^RKNw8T@zB z{9kVz7gH_0-%K&<^smT&4|v+^O_5ccnElTpy<Cs!+y8)ija%;?c!<2?uPEu>1~d=D*q-_BqggCtA;crb4=QvH@k5H3NCaLU4Wm z06O!}fZpDXA?Cld9i zEAALP)nMKGQ`Ne2LTwOC!zyaKFJ5}on~gQG&#fEkNfQp06Lmb)rL$49dh#llks}zD z;+o89&N@>YE84oENdxDtMA8w^)Qk&MOsBOlV|>qQHws}Gpkk3JvSnb{&q`SU=M@^B zJt|(Jw~4CkRdxJoyM5w2Rj1D)tGf5^Q6;I*EyNWJncQk%I3}yecCoEvv9ww0f3wRK z_>H3+{{YK$ANcUE+#d$zyfb5-zFPkPAzz380JFMzpAs|?>vV(luiS44Cf^TOt}*+i z{{YZMd^U9#^{Bri)R+6beMz-7#BGmC_;2=%)}KM~WtHK{i_Ku*ao2(T>+YRRe{}wv zYv51X$`d4e*OIa~^RJP^&{M`GEt&7+&DwVCSN_q4-Z?MX1lE@pr|ytGQh)l@Q{q>H zwEqAWd@QiNoyE28pK_+jo1=M-0R&^P0=)kKz*>a3jNS&|HUty7BC5cWJ*!cX;f``4m z&o=VT;zt6Rv@*62AoQyDr-=(eQFT9l=>Q2@$u&-FD{<8GP^_%E3~Fu{ zMEO>J4NB5%zy_+v8DE>VJnoT!998oYXM=)bpDD@3WHT8sbKb2Rb6-LOZRDvSWSXAVGBLZQ zT#nVGx5+%vuoWVgpmOV>YTa|&nxF2m7~-349a#~Kj%rPXhA)&7D#w;M;+-0Rqn?#F z-&2axB?Y{FMrv@sDfOmCyE^r$21(+#GwMg>9m6M@WRPyp6(o#fAdyGfcLFh4vt_B9 zb7lz#8LCog=1h>d_N~pKxdSyccFV~;9<`Omk~wjw?Hut@7)r6OissZlNaC{YA=`$< zK4WO4SJ}52rIIvUU}V!|jK8%kd}lo=a~*Mw?8l^F;O7;sYalS-o@+H2DvTa#MVsa0 ztvJZ(RJo3h#!!A-*1U6hdvHC?a+Wt9TXK1=du>Q>0lDp4scdT+J<-%@>*q`#c1NXp z--7SVHmIcGbNwsGA(=d&(3~-@ufzJJw!2G`Re7VB%MnMK7DuyN-@h)58M+U~vo*=v zas+K>BX^TA9k`}kc$~_mCFT8T^Ipf9PYUjJ-f(Mm@|!Ye>GiEWKU8~F37o%E zTof9x@^Y<)tJ;33(>LDB^rv^S6C58d96}as`_^UGjwG>^0U+C)^{!)V*9^E)PfjyU z{{VzyYwN(XZVA_SIHeTL79N`29YlUMd+p9!B-FNgk-27&HXj)4&0#i^2Ad&B-#bP! zc@-v?JXXGIxzE#%)wjc`gsCO6I%`>^+IJnyeXB;+SB^wJ2*H55Z zwbK$wBi^H#95at9)V{4P;}GkS)2B79W1z=*7!nK)wPFh>?N~QcPq@_9-ZQk|j+E6z zj~2cm>lhbpwEJy7T$Egafl=RTf-JHw2TJFp*V)vDerhGWX=EU_<@ToQ9!#k^n#rAJ zpLG?^3E}Ggt85s`Kse>WLoL5 zunNh8p0&|6v$ThC$Te2-A0?0uD+}&+#yt#uQ%PB(B0K|(SCaVK!*fQ@!E@ANy~^GJ zHZy~Y%hxnCy7L`?1Dpz|$#pi1GboqnWl>q+$I`i=HZcgU*w&$m4 zRt-Og^^I=bjF$1MDO}_(S2?dK(RAh1ymxIh?c}6qc#*gqgN#z>{{Rv%^flDHKaI8* zjfeKg13f(}n$)~WCYN~4oypNzde^D!oH}(hc%AIqGYllJ%pUw&q?bs5qI$=xg}f##)B2 zaXhlg!*URE2e9I~%`;Fp3rvb@$ihZB$?s9N%W@hqma5gARN{_`#08PL9$j10 zuVI;`g&^Ah0Nx;aS2<^UwqRr=gW9yNH3-#rAoBkJ+MwuK^<50GSoQe#>pQ#kU;e_gMb`$Ax$Q0JMnT;h8wj8GoI7*g0PVIG%lY z{{Xc`pDMy~-^#RM%77~}-G>LMty_5mV~p3$!1jv^7;a4x6_4vvM!aN>DjTFYCc0%G zcHly@<*`~3x5_IXE+jdt(aC}BT<~^!n#8zU(wNP(b*MbUNJu|g(o^hdC)9tL)KpB_ z%^~MMl|v&H&ozXbFy<%oF~vO`eifdwvoP;g5<X7s0WTU`b}N=UKhDfgmEWK2B3G2Wof>TT`ZPkuk8VQt$p@!q$<&q~5>CzCyL zf1Nkb&OJnB%~zR%w+A(A8LHF6-=$2pH1Z?r1wH_G53M#h&UvX(b~q!N$JC^0N7EfC zSn-b45;ke<-zcq1^%~xl1dKxw+NEZwU4;bt73S@lY<#diD3iZ>WKFlNOt&(UE~&@T zoXvnmLb48d$)TH?yM>2&n_X(ikyU!;sIz2`N@!xHl9h&w{%6hYMt>Trw+QDM#Z0n| zy>cq9gP2#z$fVo1spgH_v&JdAg0^#-t9Bj8*n-)rbROFV-@bf$}uS=ONQSP4z=Qh43DV%Nx z`U?75#_?9%`O*C3C>rF|YD{_e-bP^Ha`a(+ht z0EcbO_lT_F?$a;h&3#8>W1S$x2Pyy`ffe%?!)cDC!@}`TX;v7nHdCPzGC>PrT+kBYxk%I10DYWo=ts8ZolZ@9;?Bx4gH|> zgBwG7tAN7|`T<^cAzn8y2@vYT8?$p3dXURsR5HKo1_-2lKB>4EION=5+5B zBiZbmX5{D<&*XU@u4{?$-kxLBUS;Vj?$2SyKRzq6j^oR^KPxbkp7wuMb5y z88J9H$FBywshDR6r%LxtR>%8G!*_6FC6TuA+yY1IUJWp1k3H1%{Bd5MT`p)iK8KH< zN0O{+e=-`ZVRVpjwX^ve?X@V@a~!HO<|uAG>xz*}TjX=pS689j{ku=JCz7LS{0Se+ z713TTH8goRN{Z5@F1Bdme`sxR-h3998QUYY}jcCA}@isLoy-?@t?j@t@OGCEbL;TyVQmN@=U2THdLCwR!?rDG`&P?`X(lg(Mt zv^$-DShCaYm5jGitV@M0jGScg+nTdAzg{>T*P-|ZLGatbx86UvRr^oPZKcH`@bZy> z;A5cY@~kUX_Her0i>;B*{?Z;Ig5LiCPw)_-8Lk$&%?rc$$PLTe~3F3vwApYa2J@R8|UPNK}&=N;>?)SvAVzH6A&tq(ZqUo(rm zq}o2WFSH_}&Kp>hYQH>lUT@+_H*V(@>H7Vt+QV-Z<^Cdo<+3qeZ(AQ}hP0K@<=W$B zMy@wh`9bV!xYnU6&Bs3V!)rtDdRMcDTO@T>j)xzsKT(?HZzKzx*GsCCT!x^;G4EeX zLN3Vpd{lL@O5#w=YbNr1bTu{9r=Dvv;q#oF*Qpqu6-ZlBwZz-9b5rR4CcDvY13@DN z&PwFq{GtTIKv%;NK^EDq!^- zaBIzNbqOrzNn>_LQ<07<)qEr4=r!2Z$5J3n-zv%2{Y`O7l<51^&bU@p7c9>%y0vH> zm4*m7sw5R-#d?>GJQ~p!nkC5VmE?YP=J!w-nUstXUDRr-k@Gp~QgCJ85BSSh@U_Ct zr`^dG)19G-AC-L-@W=M9Ng68;62+BolukMP#w+FK`@WR}S1uz7O1f>U8&SnoqowYT z(OLAr4g5f{^KBj*fa{O}8RS=n{6_tsS~im7Pg0|<-lDt*!T$gewZ8=4M?Hn)h>CJz z&H?s3SJa;le`*aU#F58m;t1B-X5-A{kHnK+L!(~^`KjuUS~aNRW6M1m^6!W|H+Q7W z@l6vUQ;(Qpx%N_r9Ol0B@rT0w3*si0_ZoDuOSolZjDy$lua*8G{3F!-BXr_O8KBP+ zD9`6!rW+d?-t6>eor%FZe)Kjx!*QTCDqD+pg|Nb-+v#4Pq2#sPc4=v=>q}Ar)7rH3 zjZv+n2N-N{Uzqw*E8;*STmld|@~{?(_-H%B56aqMx> z=hxD_yjBK|CN7<5-7~J9B2n{4>nFjV+6P1Uucf2f+#=oq^T1ec9Xow%(Y0+d%fuEk z+TKGQ#1bi1R{-?{e_H%g@K3~TXTW;IH`-;~mh#5g+8E&Du^Ik#`XT!{{?}S(#7juD z?P5i;)sO}Gm;ompM;}W3+cL@VIbZK^{`Eh_3RK}y^Hb5DWBW_~!EbRL=D*;jQdcrb zWJpnu_Ic}*>Ds;r*0c-n58g{@e`_tJ!Zy;AAydJ}85R4*Z+RWuA(7S5hIr>WuL=F3 zKV=UMd}h+;nk#thb)`~cxs5<2x`0jz#&P*qc2%BpB~H6D*WsE!AS5^g)|jovE5G=$ z@N2|B2=%#i{c6%klra&^RE2Ol5Pq2a>wrHmUMub(<5E1)cSaIUBbB!ODf_whsG9^* zs|jSn4^upw9Yu}DonY$F&d+0+s9gbj0Z}Iy=jj?&rbA>A#Svd zo|N3yv5`0KBQIKsml>%84aYQ&0pxV8o~r0&XIhS|vh@a{WeZt|F_FbehN53?l)JXK zwRJ#fNf(ovuF7ijuxQ3Q)mF$;#W_b?naL4t`Atx`KRK-fout-$;D#oG;n5zm`!@XF z6TCVJ>vq4UYxgh0tBn%V)5=l*0FH|MH2s=J?}|Pf9e>h+{SAKT_;x=pN3EZ_w+Q{8LU+G@}e$W?1{{Xax zcrx+%8u{EMJL1vwc?$Pt-(%;G4eQhRZ&LeI3|F%b#Al^?v^uqo+-Y+hn64Wt-uNJsoqMKvl2{f2xiP-Esuc-Q0wTi*2@18rJ-#4>Xdmh)K_>%9y^G9~k`Px>c zBU-xS{aEZl^vNA7=dX<440S(;{w2ARJ2{PnlI12NgS(!;kLh0Nq4=T?7-?fchWR5{ z;#rnCHi5hV#DnXQD<{NX8X{{rv|kiht^KScX_ZEK1oU7%53O@$-qQ;?ILA}N#=gYOY?bf#-r;oE|DB z1!TxM9jVvs&2U@{208SoR5Q(k(x;S3lSwDcDmETx)`B*%=OUvL?PEw@Macf(6pVd1 zro`VbJ?co*2Irb(Y0z|gq`=P=YR+SB{G1Afm_|6L4EtmNioL+rzq%8q6kydm8+jy? z2a!`mzIHM=tFXG;o+{C_dzRx-7zy5$qXl@TL;L9g916GO6~GjYkrXSibJI02kbX4Q zQZgzX+gScp3|id19D%qzRqJ^EQQTH^Y17uUA-FKE2*|66rlZ*W-1O~FW41lRlT65y zk-((M+(&Fyyu{c}C0=+nUTw?3>sA!!o|HZbB-U~?MR-dtLFTPS%)*)F?F99u4gepW zW@?dR%lGE1U0IHM)bYvJo+S(tyr?mMqwzC~}=DIl)EM!(q)CVJg1wSLM zoVqhC$W=`uTzsRGQrttaNCPISWX3R86kQ&jDMY;u#^)GpX0`03JHb4Pz_-SC5rJDa zGa|B-tAWb4r@jYNk_^~0Op9>sg$iQheq1O z%YvsFrna#r;7Q5-YY^&ac~%0cuAmx5B>pwBrsWW1rc?`a<8vP+6!z0b#&ul0S$to$+lMJmh10! zniXYrGX52us#`>1IL0R6@g%pGTU#I#irKYi+ye5X*EX};TgHscyZ-CZV=A~L z@-d3f+IgOBYKd%m2Av!t=?kzN16_}Y^$3K*i91(aqU%ya68!j= z)}hI>#jKpqUA)wUF}P!c&{hTBs3M4}w(Z`v&&R60;vYUOXgKP^Y2mlWk%z`>(;7Y%w|vlz^vZoD2|PQ z`IWI%C%$Q!kevEeOWUDu21DYx+wT)3DCJH_8PC#%(d$;ih;{{Ysk#l8Z>Y&aOGEp?Bw#=;fjt9#c^E{?$o+jH#S5qw6{ z{w#bez0#wde%&3p4Hp3Crhi)abHvv7F={r+D;<{dH(tCE{uMr#JsW!<&a3& zW#|ul8h?wm-8aM@A6xr*fxc$TN9mGtisq$3(w8#W=#_40CDi71olWjFDP4FC(Ec^g z-c5BZgqGZ^$qmg|w{s>;=Yh|?Rgt2bdXjysvqPRzdJ$XRGfDFesa9r^Il6qNs{Ngp z8%9M+K2-pWA9|LJV%CEskr_e*$fy!A8!=|c>+ML;qLSsg%||4wxDJCAiQgM;Tv?-T zcJoUlo?!vT6TMZ5{dgT|XSnkt3Mu&;dK2D9XxQ@CCm&jZXu_ZfawtUzs&kQ6;kQ|% zARHQxBI0MkVzFEa5OQiuwOHm3I{yGFvl{JGxYL2%N{KpcA3Ol^_ftc^I@bH;P@uE*g{i6@D?Ph|r}&i-yX9(vb5 z6`M_UX&gg*lDJ)~*OQ9-YvBI?!W}=u_O=?r#fycFT;zWd9RC11B~z6ojAgFo7ss6_ z3mZ!-h;}44#Hd_nfIqE#OQ~&LLVOMbkUu*6v*UD|tZ(ioIdp}9WAv|s^%(s(!4r%gEfq(kP#Ilkzmjkj^$rP>G-Shg{Fr|m65s2;|j+Mh3&5bfrpkw7&wR4>Ui zt=JI@4tT9k4#FQ%O#N#%xBMRolTara3Jz-NuXz(u+6=qm;6|A?I0RtVp0611UWwyH z#fyPnd;DNln4gIpv_2c2zxz1d8($iAz-0sVCcSs#^hW2xcP-SZ2lO@KKLcj+d}(ja z19ABSUjG2`THM}vLjM3fm5iUn175ZUU+mL~&5B>Wi#|4tZLND1+y|v+s*f;&I1P`; z)~%=;Mh+{*hs1hsV?ks2Mk>A1oDo(KkiBqf2?^YL*G%8Lpc(BR4r%K9dex>;w>3&m zr?qfDbghdj;Nq65M#T54D8#NPPWy%WFgfO-oqk@mI~;ea^GVk|C}1QjQiT-~H_9pE zLEO<1qFfK9CfZ|6KfOukD)lvYLmYdGOdncdn07RI!`6$UM>cSI%|#o2@pJ1^ZXUG| zIF){*`O^!XB!9vy3y-u($A9ZvaPq3e_RV56gUo-eTj*mRphZI=&t647NdO#FJI3sj zQz;{4J8vV>oV~p$R?j`D8$4pOxkZ(bD52kscB<(h@5MRXb~&Q`fPe7jnEVfVV!7^e zDeS|)N~Ne3WF#73$Kz7SyPMQfEDX#rDj6a!b5iriYO`-^fym~iYjD}f#cdcnT%{8` znrn2clG>i2aaCkf9&#%wMWS3v?HNAQ_(Mj+CnK#sKi+%O+dKj(MLoojrgFaGpSZH* z4k{A7ezf?>$Px92G13crsLnMQP){#C$ zu^i&MFAPY~>Jdn%46Hw$bI_33#cya}t>j&P@cwnZABi+X^-Uj7Xm`7tPM5ie0)C{| ze`l+1+5yS0C(@-b+uD$SfLCLsUKWHtd9S3cTbedLOAm)psN{W3`#Sh_?zK7fi5KJx z<*7eh@n25qY5TxCbgw1&8)Nn#0qMUk9$+Lsyn$Z1r~IzD;8&MZ;XLZkn-bU?e=bST z4s*J^!{cU`_TLEHI9$AJ59N}7m3rO65q1wnagWNmPaSE(>p{PSjE0S|`5NSs=7UE? z8G9T=WV@dU--5DqsG&SombY$UySRvt^=`xRIIP(6xE0~P$LaBDq|KWa-5qV)e9(bd zI$7PgS4CpKyTwM#nLdWx3+6%q>x%CF2r{L{b^W2G+uQ-fh!|G1LuezR&P956<$50%O>?H7Rb$AZQ|0Hs{{UK> zBw+E1)YPm-pQv8jnEch~6_2p0 z?4xnx-`chAt-{<(+!2xaR&0s1lU=cu?93NtYWP;;?Ap91I1lol$EWLE#l$6?oM4*s zs}?cNj=fap^{+~|Z?s#agPqHo^KoA6)RFDrz3OfZxupEjlsu10@NW`n=T6pj8%$tF zD+T&wk@^u{^{4*sVeiFxkHyV2TKI?UO1~}4LA|m#KhyK4msI7hhqj%g$FL_KrF}W@{{UWJ7kC!J?OSxQ zskf94p^%m5>Hx10_@AS;nd6zIQG~or{C|0PKaWq&za+{k@>F!+Q~Lh^6HdOjF~yBUjc<+1Du{OiOdws|Bc zJJ^!U-PwsGlkQ11#-;5i&CwduhPN|P4D|X{h%Ek5k;k=YMW)CXC2$Q}TSim>4X4(( zb2^OWw98-&lULx=Nay&MlkLS>Si<0*TcudHnn-8!6b$tFhDRe6n~)TvgYRHxH9U69 z$>@4js4dhJ>Hc`FuMhZnHS3$0#mrWcMGH==F~E~($xwZ9S-O@Vk%RVA!5j*`9jdLk zmOaL7;HwTX^{WxXu$(U)fvZZtDI{R^^saeSW|2mwn{lB-qv}!WRx&*88nvvJ;0H-L z$UekYTiCU$I<%`G+8I%KATY?!9dSyL^y5E3RNan0~U&5`Z zYu1+dC0a!%@FO+VN2Pg-f-) zXR_lY^{m_I_h$nYr*z*oD>mvtsB6clm8^R-Z*R znk=@P!^THA99Ps~tHM@Eo>nTA^+%dsWESHBvZg(2b5ww#ZZTMMcdu$J`KqeTqKuVN zW7e(B`BfP{@vRRopvL>8(nB*tARv%>(-?&m%CAEM*1Qk#CL4uaCtSlo{{SjZ+~dFHduq~iJDc2lj)xh8OP#L=Q$8Bf-Bj68vJ~_(HSf?bN0&z`40X_ z_vmY{@yEk`AIDl_>mDDG44B-}Dd(Pgeiel}l`!v?uHDZ@RB7U)&qsd8%qBDVP!k_o z+SW8Hog(Sso;F8Qjz%jqfI8Q!87V8Lq2fxLi)oeovq2u%tJaalG=U|^Q^tGMtz*N| zSwNFS!dRP;j!h0pTT*#hjK54*Yv6Aie`X=l@6P=;V}h;GJqYy1Ym3^-GDSqw1?G>5 zS&;A0@4RW@R?_4bR^Pp{lx{~}MYn;+jj8_R45h9UH{+=c31O z$3DY9rG2xb_^!`cwn^=-W0p1<46F$Lb@*v*sL5+ErUtaY?b;P@m~p=@VauABLeLI0F?A8;$u?LsI@;zeklAa@bAVC4%}&a#iVi>7YQPK_4#@GLw?J8{{X>VN?Ck~FLYL7Bf5=A0Cne|LEgUP@UQJLrQbtqF}PnU zQJk|34xMY)7g_M{#Lo`RV|Cpz+>?^336g0>}@(aUM&1ck~WO{ zQ$u{i*1pL7raxibN5ac_;y(r_+jO8yy_)^y&Pm#!bI|v%j_xhq(qk3GQd>;CG*YQn z9>iDQ(63Jw4r*-kK_01_K@Tze+dX8y75z?E+M>N(wsl9m3E>R9A zlj%{go}R&l`m0^?YpS|jX1SeOJ;AH#Y3`Zo;$wKUa;vLe zSk4+5-YFN2$Z&b>R<%ubeM?FLcT!_HZ&SuI^{l((Xr^xG*0Zi|8Li$kz+qmDVH@7s zpCeLoSBXkF^({VQb!{_5>&moz8tJ?%;(bR|ntQwU^Zb#y-a<({gyS~-{f_Tq9)x4`wroHVCE_CWiU2J(| zjUJ_SaVZHG&C@vRQMZQfB(*mn#$jGQ@CT1-_CJjuvd*FKXTuO{7q^P*aO)gvf(g!f z>+N0%Hl=eKm=>p_~FURi*)4k=C@e z$n9WA8rE&)lP(Cx52a@)SH^ncl(!{$5Vji?1d$eRYPhkk?`m|BdU7i(70N*yZC$lu zH6e3RMuRnD+qEH}ko>-;mfj&GxnYW8<*Mcccs&hhhFgtQae+%CBCn~Ae(CpbnjYeahUO%=f2e(c>v_rg{{)EsOoAgX&D#1&D>HSnTM#TCXu6I zg~+GFF7CWkvreVh(Df&^T95Afimt2*@MvF^K+hDBXulf+!0Au&fyvJ`S~&w^rjkvn zHuF`?QbMZd8Q@c%G25@TL>nuUQYYQdTAP|!jz;Z7ad$jZnlj8zF;aPFXy%Z}`1InC zFdX)&7BHl9RptA{3a(JNvdj)M(yLE!Bw^?%xI1y4ohu^d?`*^=bJ)8#mm-tb z-m@izBys`4shNr>=R3KoQwQC+98~g^^@kEiw`lf^+`P6bqTK%P4U_6=(B?+U zaw?Qrv~iM4b6Pv23Z8RO{{U+fkXr_`ZmwD$JJwyr;q~XO3{M>{=K0o{SdTO1sbJQd zaa`9o3z>#ZPS-*l0oJEp=6_z1uY0OGFvDbZsIB!zkl?WujrQ*_o-%36F&V(Yrmx(G zj+b+KJxHvCXEm#&>IKd^8st@^Tt8~nwYn=F^$*(t$UVk9ruzF^e&r@ZM&BbREo(y?z_9MWCO7W#pVjPg3xoI08|GAo{qe4K)6Ww=#bo+vZ1(od?PjDm1Y zV%}YERw(%5vfB4_#OEv0puV^TlqulU*j6gdsmr;el;m`-1H{^qv@f-|>G{`TsZNT! zSCib=lKet57+k>HO>YhCbJV&=3$J))En`+|nDUNJdgOJgw>oT^UAcEV&rUxog4bEN zvt|=Hcd9quEOiAW92)FO`W{r}V;@z#k~su}hR+$Q@#<2(13vTDj@4r0QiDZJU}q_!z)q%ho1 zdXiYdV8q~oO@v8xEKw|b-bUIn&r^!RT51QV{0Q*WI@gH~r*NC#wfU7u<8Z+h_ZE*M zTj+2>umFB;-S9xK4EQVX{Aju@rMs&6_W@*+0~pA`2EE~v%7su21zZnK1}lnBnU8(X z4*jGrzQy5N*2W8~FTYCoTH;O9IXy|ueUbZDUwJ+k5tEZ6kbfgz8cFw!EA~2}q(?&E zJ}TBtRJZ>CSUc6;1qcSNbInQARAU)6BJ=H65b_wq9Mo<&sn~ur&JSL+F%?Swb=PRp@Ul%6pS#r1-;Mbbx=FNJ4jB)li z9kE_tj+F6V5;^eC-PG^C6i@bl7Ff1%&ObgY>Hh#3!ft#!c^6XAk@{E49tF4-dgYX- zppi%BMSXLqIKI;hV~G<#n6B&#{oJBui}<3?i*BLvZ>L;iY>YAZnzw4fN4cpr>v0af zc$mNvG5t+ei;Qz#OVPU?r$lHhnO=FO{{Rb|+Fj)Hk;^KaxAr`6CrPq};F1T2(p4N@E=e;+MFo18sz#YQWvSiTAC^zFTwaioje`li3kW ze$vWwQ8qJHKZc=Y>ze0i*pXNj$67~z)RC@6XnNAZ&~K?7XjaB)IqYdU-I|StOB8{! zJJg&ua5<`*_OT049P>Rfjx2}`%~ zq*nZ?*{*}2X;D$M2;7mHnvtqmC10{2B#sSLy@ixy4l7F($56^aMDm#FowYhH z22D!V>Wp!mQzScakEKFZGGkbkBaDhw;+lIN{V3cy?@R@3l25fmjmHF3>wu+?(wMks zz^BSc`*b2jBc*hDD`N5=_t*J~#DxGgwV|%ZoUkhixqXe|HBZIMj zm31B!n9n?L;~}I1xoMOvHtXCX{{SIfH^cbM-XXG1yQWcIyyL0!w59Ic{T=WPn6vP{ zkr)`;Zy)}GE4j6Am{&33g#Q4EO^S9{BOmzau8P^da64Btwz2c_mFis9ywBO=amiEs z>pxnx7dEajki!+Gqt3H+>Uz~!<1<;XKX?pRJa)0yCGV>r4E#vb8%^;=>@2t&w{-Q% zu0}Qa{{Ra1ui6_#8h?m|*4?62{y+-xq6R|_E61x2Su^xp6;EqIGA-#X`{o_1rL({| zu47Mdw*dC8j@7x(V_0-LW^L*3i-^x`*Hft3rlDmlEH^ zhUUcc$QfV4wxrK96SdD{_yeytx!@~ND<3||+R}dKavXkmApSM!W4=GnTJRs)_W88` z02p|aNiB%3aqMy)G`DDVC@wR+GTEh_@XlQy^IjB@g>~_$u)(4@kXX56c_P-9n zc8iv`lL!6N!ToVvRGbWohg`G%)bQ=?zA|1SN7M|D)K`;6r?aaG_Gi%IsC#@ZNu&!5yixks-c(-g(fGC*{`E!o zJa_hQ*M*j)cce^zadY!yI2*w@BkC)q`0e4=Z9Q+IOueL=&IdbALFXQr{Hw^kD|0S^ ztVMGf+ayjKKSRi`s5M)7JYC^+xIw-BdLTgsVcCg6DYWu!rB%11YRyS?q{n+#Zx*rDU zV_MXfNd|2#&gb3G;1kcV$LUy6jKTu*o-3yDCGhZvf@9NR`7iI+8<(h4%M<*o&%{dB zis~*~oF|XGLjErCE6lEb!)usrlc3<7wmnH7mMcEi+?EOkT;O7eZFb;ex8Yha+m*w8 z*6KS{*+x95+V)l~T*mLUWThJtGg5<1Jv<~&})fjP$hO_`cguLl&&&Q9`&8y zQKF0KrB3XrQN}vbt*XYr^(T>AEea}yQIdL^YS^TW$=XML)f~o=Gh>e+Zd@NgKDA+B z`G6+}*0dwC^74NQKFD_h1}irsOAxGQj12ba#S%t&$=WL7!dI_e-j#bvxc<$!l2K~~ z$#f_d;Y$U{>IbjZuyX8Lv5yR4m*hFety$Q39XQ9eT5D2RvD=n8`9=p*z!d)gvcDv+ z2cr?iP0bNmV{QRCHGal33vbR1HalWi0ywM520C=C+v;e$BYQyBoo5lu*;ByHdpCvS zNNv_q6b`w_uLFiMvMK0CBDbXRW~i2bXNqE}jAR~_x<5}^sw~>L96(5YeMYc%>>>g{yd{yEn+(2v`)->o|`d_(pvi=2a+syyP}3 z&90*;NHz8Lvu&jK%S|r?k$9a?vkU&t5b2uP9dO zU0;KIWj}}RL~h&dWZ{tVIpg_evy^(HvYgbHB+P4wS{5LUq*Y?aiuB(WcvcNc#A@16 z4-|tf8uCHLPxG%dnl^>VVS`Q*zUDP4xG~7%jMK}GaoVeH+w`N%>spvz#Qt&M=DPm? z0{lzVyceh>mh&-#KRj9aNbj2A%hP!G|{CxvZW;`v+9ZD@Ylv2G(EYF(^lJ( zyaG-=&(^$O#r_Gt@Xh3rTtdNA;5H5qzHwZBi?3a1w~29UGsP;LXp5o;a&f>JoqfazgeeBl51t#~%&u zG#Osv*m?Gi%DVD7=C}vSvCkE}WTvip^&u)w%-w5P^=LOmgqU?&=Wi`u7G+_E9je`} z+uO()4iDC~?v@Q^&u|+qN91cuTUD{oElxMgXxI>NM>XnR1MzC=)`LsGV9kspH}bDD zytiniAdRM(V|gWw(oBSgQ;}M&bvdMZ4~)D9U}JY?nO>zwO5%4*YQ!+dVh?KfUj*uq zc)v#n)$y401CkIr^E3YyznLuUuvlNkr{Mn52E<0_SQ2J&gz{plloVtd^`B{ z;vWOuAcE!PgE`p5pX**z9*;826=Pz0U{`hEABQ@Ri?zr!=%ezdlkWMM1M6Hk$YFh( zmLVjL$~^LwpnZw(@AlBNypQbK#lF~>VZ#tXM3ja!eWO8IZ%2A$%+hCU#dO4YpUN#kN8U`PaKf(|_~Un_)` zU5Tm7f~#h_8`Ykk^3?hhRsDf9iQ_Y9o-ns~y9r&1{Px$Lc#rlc@h*<8_PVv5>W!8hkU?ybU25ovS2y$Cv@f=ZfUl<@c|&el|%awcuOWuOUM` zapX1zbHMBP*T$C-c~TW42c>joIdi~DF}>3{FnHMGVCNNPhH>AmF_cqxbH_C9dSbk| zu8i*yslK9~%aQ3#`?=#aqlaL)a95g23vr4?thss*)C%{`DXa}YZxkPwt!WaF#S}L* z;&DmUNv-1g46QFyS@&b*B=CCHl(_Y(SCNk>=8m9xuk5=pkK(q3Nx<{aeryNzuiZ^K z!&$^fLbvB|n(2jm@;gC**q7Ki#3~ z%)2 z{89!0U=CD|a%+jYjiZs#h8a!|;a!HKBU`@YVywJ_T;1b+shynu^ZVYl-%d?4BXv0(aZUaM3^A^vNEgz2o8k0PO<)AJwCl%HAL(eXQJ!bAgV1>*bl3YjQd3 z=~~_q*PBbeNnB+Wv$eVJO12gi6Pf2izbCmQeeLl(z`ED%6X82a8tzwy+8;6)7X>#0 zNEyeuuZO&C@V4*4X7BClQfS|3R^vG&abKoiv7f~4H^sgcHj_Z9EL?OQ00R~B=k4wG zIXp`|T340>I+jo}cq2G9^H@AxXyR2Bq(ZbKB-M|NrjA={QpIuyKKQE9H=MwZoolSr zJSVDYx?C4Gk+Q*ZI4nC6ob|46$xBsqA2am_`Pb+%YDqKz6hZ60coMpHDNe=aU^)&C zD!YFqZlb~hVBZ6~0rlS#WI91fI%`+vxI6iELPf=PR z*p68D#(BZ4iJ}W3J!?wtL$qw^RraGP4cFGS(8^4x?ya{xRZHuD7x#T>mu!5~gMccg zTyfP%G$#3E9TCmECfxQ^O38|31znKN}0K`tY_j4|S2&$Vi4dVAflnj^W>-nVRi8{DR)_IV<} zlkSn4I6sk4nlaiLlKs5Kcj5-{O$<`y5(;zn#__fEegsT&eZfdpG zq?d7$K_{(AiBiVk{{SBY-n1iyFFsUY4^Fkp>e_*~Qb!p4D~*%l6t*ntA7d%N=8api zgO@I+q4=Z2%?+=a9m?+Rpp4gu_`34q)<#EGk#mlO*GVVEi%WSCZ<0w%b=t!e>AZd6 zEkfF1Bp^!Pcg(>fitLPCm5vIPH%E+X5+uy5K1M%Bvk`^B+t4WD=hUc|3x?CgJ zqid$@Q6PVOR2LTv@(_9s1!`Qf!x;-$rFU*DeZ@N+P}G)3U8G|^r>$nRZ6tta3!1Xh z9zf_SBOz7*b3xS@lE-eWrzaIwW@uOi8D5nu6VEsl)MRGE9GZzsp=v!zp$uYE-mI*Q zss?Z>A2(?j7!>a_eljYeXrs`-Zo817Jk>j>n%+Q9H7s&`z~>ca@sXkoc{r-|AHro{ zT^5XX6<#SrrZbvtDa1>-#FK~>znhF&YjzvQx%2b3HJt*IW!5sV4ET?`m z?^b9eyQ5G~IjL;oF|cmNophU`QPz>9Ra8*i)^gBg#)U2%E^tp3=>Gr-{23L-q_;CL ze=V|$!RM}jF3bh2Qa^WL~>%c3?(9>L&!G2wt* z%5coM0~qu*(B4ak*bk*L+zWeTh;US6imiC(Zzm?X$hq?O?P+jEpJ^L6CCUE)$7|&2 zcx-g9rN3*9SV^l{+5?tRxc)0&G{4>^lRDSJI^1GG&oyL-q-XT6 zIGi6j7adMNTJGS^pL0GZ2IPYB_#Q06WjW5G>-hZWY zvEzeWRWzGNZ8vzP$8IBMBTEbjjb8#2@)Z@A(?Q?4FztLamSTVLh?rU#QZ}c~;C{EQK#T7RdHcDR^?@=_Q z=Z-1NK@}LzdhuAB7Nc*HqLc3o8j?I<8j4@M2;|n?EI=-Pv^UM(m3!oKOSf}lr9&9P z20G@Pm{aRRN3#R13Id)vp=eK;D!0rk)H9Bq1yxXb~CY>F_U<~nAs&_O}?rN)d&lK#6r47(*1J}~5Z_hP%zNI1T+*EDSoLEyCs9?z5 zx{mc$K~l(aY8E+fYKF{N8T~03)T{s;)J@mclM!cX`6Je%jemK8O!FHU=}))jLB(vk z5@mCWz z6K+`$u;b7l@vn$4kj1$>slob#iu3U+srA`4OVgD%(647E**UJF$+H@fT!Q?pPI(p5 zXw!L-;GS#GK89;Uq_c0kUV-8G_gfBlVg5Deb`84&y?Pgh{%cY{yVLSDtvAagdANn{ zllW@+ygTs&!`gs5W0F^}m(vm{Di8b!SJW1*=Et7ISITBIX5?@y8?ZIj>$i)8;-i6CPUk=+2Oj-IOCChCN3$<@Xli z&TFfD>etbNs(r?ZHaYaeYsp&fuj+6&C6K zW?$YMbIvNQ{kHf>@7AtF4>U}_As*H2McJPs*D|{>N(^z$O=|lj9jT1FcLUpsWNbr@ z-_Ey|sEECp=z2}(+N{Romr;ZMHLqjyL!5hh*AwCU!yVG8JU0frTR)aEqt`XzSC6x2 z*kG!AXse$$_|H!|SBbSNZpks*^d}?viibg%t@XEm-Y@g6yW?J$_HPnJbc=+#gc5sh zQbGMOTwaO~+aNi?-oMVi=MPicVPh{N@$79Uh0LW-Ye?{&V#oV8S0IclayY=`SGRl( z))!as{r;69%(kuOC;N?%Nc?}DdDo3})YQB;rRtEMl1P{LgV+&|%vFzqI@{?UJ+w)F zSf>UF2WD2t2k;;o{1xjH`&y^H2V$4Ry%gzQGP?k5NxyhIdV+s3QE7T?+MS){>?*q~ z;}0^ZC4!C%0gj*JUXStXKy~{Tq9ehDnkhK!Njd3UH-Po2yfv+xi*Sytts6xmhDjBH z1z2OD2ENAuQB==r+Wj8@~poRY7+R9TAunrwHxJ* zKFEWh71C>$T1~u{`euP+C6$!Ytde<+xa16!Q~l6M{Hqk$%B(Pjm#$P~R(EwJ%*OQS zWv#x^oMNmh{_OhIqiQ;y59LxVpU6(-JX2!xDG1wXRlXKoWU zn~|Xu7GrP(@@qkDHmOn8k~q(pIIRJ-*kv$!eR|e1m5Pa4-%OU~;UU7Qb_yOtwQ_o7 z*2b~myRQzZH_aG);3RFh^PC@{6`d@NBw{BlVpc4uc>tcI55QA|(#f6DGmKzvY~vo4 z%PBXpvNW|VCM%0py@{@~j(G2yPD4v#lyT>r zRi%e=f;crQ#y3^8g->3Un~|y@hB3FMNTgxuR#5KR;gpk;vFFx)_JlHgpw>n1ernp4ep8yq zzh1S^QE790J6AcKQck_A&HPt+<%hw=dKR>Hs~(+e$b4yXV_7n5=j%&bA8&w#+B}=a zm*wVua4W~WNp{UK8P9t3KNnq@BypT~uP)bQ-61*VyKt!b8k$DOE2&*8bp#sY^;wHM z4Dnqatsuq?a(aUu$DS+dD4r#0GaBohn#s8P+}5Sb^%a{sgP&UKJUW}54}<<9YQ7P; zUm|vUeDf0?E8X-T8fkwJG`5Y|QsWqC+W_?K&3v@qD-ly^y4A*ycC%Z|(Yl=cq>93( z9y5H)Mnx=Bruk*FJwwNy4{bi-o)yYwyyE)RqsSu$y<5Y+J+$#vh_%#8rOq%JvCU%m ztHLjDxzTqaY-V$a-gvk6qh|ck1dij(-mG=`c~c5qeR3q)^w5cj8|@q@*GV4 zn_Cp)(*mZFDut4#RADyedh<;(&cnfeFq1{N`#k5&vy+0Y$mhLo_{+j^ zTtWS#r;zYC+(Pq;^I^s-w(u{ETT77HULP{bUzCRED>+8bnH_MFsJSF@vqaIc1Y)9Y zmFV6v@J`tN-C%s%X$J3?kSot8h2vrf!4+_qHm4OzZkw|p-AyKx(@kuSW-jWpX?*t5 zt1A#!nxw{)b_k(_WaFwm$KmJ22(A=qdbkq7C(0SQBe(Ud-w-|%M>VO`^i~r@!*NCA z`uf*|TiuvgFvwxg(!FcpkHx99nUd1_PcqTC!yYheilr$<^T75f*Ns^FI)|M}8`{j# z$faFQ3Z4y14atpxQ-jvMr{Y(`+dmaqjcY*)B-^>;kH32G$1m|4*EEHiJ*<*0e=%PmvXIBMdgsF*h#zOO zZ9ei`BK^{PR@OM>snuzA_WmF7G&9c<$qxLoumo4t{ut79FBxdC+-aUorn7H}Aauf# z%g9sfoDROV@pp?nO$@BzBnKTDto%Fp*?Hl6=#*Ttg<-X~d)JegU?YvD;?Bx5W{*oAAiDKq?=tqR^MB+{oT|#A9!#`_Rpnxf9-GkHQ9V<@NDy0BHQcszr2cIKJu?6 zNCTGawDhg|91^R1cqmEvy?Y915TE;PMP-L3ARVyvt%csS4L zT~ESaiC3Qwb>)^R7+Xv>$eF&){iLzSOGd_?gMr+KE`Uc+?L zX}3}2DLD(02^~I_^YqRx3o$u4uR-u9ik9<7z0vN^nH$IZz1@h(JpKZ__GI#8U%S>931YxgRciQ+FSrr#3<9fkzni73DS68;QD)T5dl9OIHvY zau2l`^rblUrnj|QD0WC3(;7|)q-ObQEylAAi8p)F)EPAJ)udP{bP`Ifa5qLl;;c#Y zVyjK^`_+!;SMZMD*?8wfn0i8m53YXK;Qc0F?_0)yH3$0F;5UM9TGw8) zkadnlZ^+l~&%m8fYTpd>Il;;MIw|}VSIK7){p@ArdiLhRr{-vUPIDiHH74i;E&QwU z`^D3Fx~=15KfZ7M2-oS?#p%4C1M2VT10T}AE<8zbyHL3Q0IsZm@#9`T0zbTyKC>lh zP=2Nb);6C?=kGrM02R4(-zmYYJEMYY=puU69*n`&qu-w6+PQm}_OY(M`9mo+%wI-B z6I~HLV;3E6WKa9fqXbnZ-5c@Kyi1?tO{-K72{jJ{5dFZBA+9 zGt0SEH+zdc$q#Y>l)Uht|KnjGQ-?p0&sq(72xZ2dXbHiNhC^hvvDdv3h6vK z;&z`~f*GazJQFxcPe2sl6OW~E%P)i^>qB#BVm4AYJbmJcFKtXkF>4%3kzjB!#y=|a zoi-^ZS!LP^50sYo9XYR~JYn#6O4n|*TQ3f4w)b+~4b2(cKqWyvy=#K_h45FzzYZ>L zbm{CQmMr<6bYN{^(<7Sg!(w2UD|Tl!dJ>emk>pp_iv_@Fhv86(3~}yZky@I^hIMT| zbc$im!I(ZU;(DHYbup=~kEte=^&y)fgtJrdzKkwP@dI&m$d!HA+}aI34PmxoFkX zzGd0ou5NF-qZHi=+s%Z#{Gyq4Fpgpr(~`Noe9N}70Ks~i(GnHFQ-N5}$PyskO=wzN z249=4Wn*ZU66CL5l{(yQ!4*Wv9FPq@8N8`5c@)vIHK3EsP)%5Fmv4;;x)0 zC#_IiZqvc&X<7E*W}D{>9^#>xmu!x-SP7&dmj{zo7!G*H6s*juPI;Z@|fy*gFhLJ=NFRo@P_` zXc{Oo`CyaHX52}+h|ViwW!)Jktzyi-IXy)(WID~Z%hQ2dw)cTlDB#vSY7!88)tFyu z2T?B@aTRuQKnmk@iWx5*7wzn$4vh!Nnb+qj!GxF0lj^))=R}vM;u8+c#OJ{s0 zjBPmt0oRJ5rs&gOTr6D&t#tM}46DRL4;@L-(^KmI0ERl{kBqe2B$`1D{iqpi4sbEo zJ$bF~9cobBNU_?vZJ#OQ1GRW>!uGn;<`PO8H|TN3Ytkl~S!6GatrBM}*<#K!Zp!16 z)S80hQjhHf9xBLVu}4kZRZHz9CUJv<>ruJRTZF}Mr*In^)~mB6tcAkwkEKGk;tWM3 zyG3Q|mlA2wlagTU!NVv#mw z{w>11>%=}Fw`q{{C!7u|(4|MKN1Ix*PR9-633WSJOoBFa&IZs=)3sKPOZ$kGjB+8y ze&HX|x+yimGnG;pXFE?dM^*8K#AL)`RYEbq#dWH2*z;vp`V=9(xdY25kX^bz_*0GN+h{o<)m!ohLk}xXui!A;6R&!o%vI(>1^{o#N&m3+< zqXVrjU2bdAzq;;C*U85MHm^7{}7GzqBM9dkUFK$3-}jv@%=dvBJ~5 zyeM(WKJ_HiCDphY735R5r55DJkVZ3D zv!O({3#zCM$>~z702@6!Rcm<5NP3Z1e2~34HLP|X+K@Yl<19MWS#G6u89Y<(GNaIS zszzhZdR1y+CvoyHW#_FVb1L9tnrE5jdr+h)>62M?1W%I9*A*)$Tb$QP<9qhiJWZ)wG0ACIXFle+{{SwF9lk_yF4hONS!!aaTvVA9bkIO4 zcA7=NYLPN&6g5H5rC3$@Nj)iJMcdC)OCpe@4wZK57AeApZBhgSBX)mU^?NUt)dB1= zUT@*MZ?tNl_1j*G8_S0k>R{uelRUgr*2v`iVJO)u^ai}3*B=hhXK_|x`ruc{dQ*JBXSQqVzuE5W-FQy^ z5`WdYe7u~N^{i5vt&*J!`#srZA`jcK) zA8}EMk1bYjhkVqc$&hucKn*m169<^kHix6RFI(AL6+?@lZ}wF&9g zfYl&K-rQ1AyEK`qC5>_N`c(_51AM(b>hm78MU#1NN{M+G`iUPPbCFZpW9>+Lb*gc1 zjff`#uGrzG9P>^f_B3@?+h%)Y)*_AtYU_{wjDtL8vQfs-Q$5Lu@8v?_yJnZ~06?i@ zhvpuY2^LEV{G%g^Y|(|r1zHh+00NhD8d*=OULgj>SIc)AIr6G>qRZW{I0<8@Q>Xn6?4y zPup}0lDDljv5!i6kU>3aHa&B|tt0PhK*l*DkyNt*>qn+4dsz2LyR!3|);hZl>_s@+ zARVepU-g5vHgDcY$F)A)aUeCSTG-C|7k`LXb?~|}`jqdCg()LL=_F|{ zcz7}~QTQ6~!|PETIJT7*cJ}MK;AXz9{g||+x6yAew&CT>d%lbfe6w#0G{I11<yl zO8cMTkA?pL;SumooovGr$bxqD`IH=2T}wGw@nfYk*ZdB=U4 zsb)0|Hs;)ni4$#n4dPoFEOm?cWKxA@lL~m?vB&9Optfzh0P<_(585k38c&Zdol|U6 z0L%CRpVZeab$Bz|$|`c!v+8*Q#q)F0wlt;@zAH8+-Ph???3gUW(!8yYwSA7CPLM3a zJuA?BFCp@| zXn}%>1eWiPo0Z7NPWct?P?t3~7JP%&>yw4pH`>p&#R2 z12+EvaZqa3$57F4Ex`H8Wq;lrkJhxKFK0B*8x=)YrBa`Dr>Z>q54)4iK2B4mM{38* z85uaK*>?@|@4cix0GDc9$Sz!!FW& zn16^B&JJ*E z%D-fv7Y#4s1u)xOc;yZtU> zk#6iZp32$59@z%CZyM?ghIaDGBP>0B1aB(z2nq42r{(kMqSUuI6uF>s`x332V6hMPqG3r5;A(Y1J~kViqy30w^ES8U?}vDDNKy(;~RjxsAL8WtAR;~-+B z+GD})KT5M31btk4O+`4(y)&YSp+!x0y-?l#h{*@bYty zdWn1ItytVPoDOR?%dtsUnzXo83MnFt79@;SnBgqkR&ACsBk9~%ZQ!p5e`&hiTrchv z@T6lkk>ULm>Y9{Lk(AC`^RH~vwD|1pqlPuwiZPGEx#~@&XpvHCD$8<9J9V{0R8We% z0649yU*0G+QaDk0eov)bhT#){Fe)h1Ygrz2oylg8)N~UtvguyN{d60)edqEa=Mmz z7~;B(NlOw>0=b<)a(ma((L4&s!JEH&&$v5Uv@X6@HJfqs4|?r9I=3pzilZlAdbu_> z9_FdGezi#RBu#B|C9I0*#4__B*@L8)7fKT;!iMPto*4&q0>EH@1dft2BgN>YlF z^Eabi(tXkF-X`!^WohlPByG zQ*ma>+2;bLomo?SvO8)~g=Ni8bH?R_u0W_7F16BYIxMzwFe-6aG9g^#V!Z_=Em7ji zE-j{3F^@`a+#hO~ijBWoc1Vlr0~9M`9jPfQOGlu12gcuH&YgaI%SkxPa#y!n(DB!R zOmK_q5#~W4+&1&qn)4KGy!Wq8_;cgo9yFazyvs>ALfqp&@kkG&JN5{*^KGt2HR z+7~Lr2faW>E7(3Dd^-uc_Q-FEzHBXdEycUS?5+qo#xYvcsmyt`sk&{ZRcc{0?^;G$ z+sx)-2B##ZHUu0Vyi{~hJL_}Pz8w5jxbXeLLvY4RZiQQ(E4%UUgS7tu9B8es=zDzS zT+0$;Jvli14Sepcw1d#sW8hzi7oHQk1teyHxOnry9-o$Lnx!py;iEkoScNt0>lkkv z+q)}`th^OG8lKNkFt$3YaBI-KU7*DHIC{Zt2t;YvF$ox;~USTq|yoDSUW#ED< zSWlU2xzAdRsLRN|d1j@Ak@BalM-{ZH3&p|fQ|Q;IC0OO=HaIoYNu;Xb;pGoLwb2;! zXmC_k)Z;GirGJ%}=b^0cJ(0l;&2RXNN@$DMze!gdLOR3Zlz`7jTRfrSr&Usn8N}N zMi>G?{0)A1{@h=)Z~P*9oSrbz;8fEtT$_l|a1oA9dUU`aop;}|AICxAy+SVv>o-hn z?g{%lImlKgr*7m|*b-p9PFWe2XwLO&-yMo}^d7H`klk zusoBK`PYe;#_CeG=g{TU-5PEzZN#4`=CQ8i=B>*yY=hFXuAgz{y@;c}q_inrAC%Sx zp^c`s?xYKmShtP4HM%@JL%OkpaNAoIRzt;Ey!+;(t_H^@d#3(r!=hnP@eJ3k&EsswJB)^Er{w3XbmP=dhQtsVixn@O+_h162 zh9G0oyk)K~q+-%G5qTY}?TNe_d+|F?vhe<)Ah6V}<6_&mVy6e5y@;<8_`&-&c$2_) zmN6xa*Or$L@?6G*smSS^cH{G@%W=^D9Ynhk=XHgbop+qu$bWP3fBYu2h#X^PO5K zT_6m0af+t9n2<#}Nl%zaITbQ(bp&;;X=)a*)f;enniLl&wJ&lhV*A<8H6SX+SFJyR zifn+MGeV}`wW1p%nM|B0t&JYktY?fG&A0ymTss{|6=dC`aBYxCL4VcNm^s3)1(&U=8G=Rd1oSX`%kQ9)1 ztr|8&`>}=XR+3eZ0Gg*G2%Dd+CQIP;6`v`hHSL>pp4qF*60;6#KFzkOgVwa;3)Zbf z*+{tzfkpx1r)!Thf;(e1o#!s>3YlbHDY%cAu~Iv{O6jES-iC&denfdYJGZDIT*<2o&{(`q-9-9-eKG`P(-3n;j5PlB#;bZoR;NR zILP`{MkhNN8g}VPw5uGRJ?hC=(mmV0Z%WU))PkW=)}o|&Or-l6x`n}xQV&Y08iqT7 z$f+(fESYX$}PH&gqmn+UH30aFA997!L(dZ2?n4}InRa=Na zIQ(edSCDEMBxY=ylQ{^%mO5D2?iFJKOLOZ^x3}EDY z+lmp9ns$u}$ucKZV~qM%>gnwb$COhchYejS8eGqtR!ODlaZhekrcP?K+Hdwv!Sf>_ zTc;J+_%hnwIo{syix|{7HGZEOkh~~MC zdh#0`HPzLWqOHODVGyFhf^UZhH8lH#ZZ8Zm*YZJE{i-X(iU6G4g^f)C_`X+pj;yb0d%!w8moBG!| zbrRh&GcQldy_4eCgd))Hh0HTYCA$orq#pfon)0J}6Uf3AMud!Hj1gYND5n#|t0twX zR?EZo-)dR>N)LLSJN`xl-@wjGBPntXD$qC<+0CP)mbKU zMZ4-?bK2`W;H$4G3-(vW~zG#-&@u zx05|V;8p`~GJM$_)uo*qmTp#{*2aaS_jPT&s*wK6-VkxK(nw1s92Mr%1o zsnt#BScQtKXQ|?mL#f(%sbq2Gh8PtBw&?-RO>@i0^eOq4_88QDbkw)=GSwuKD+K`L z)Ry^H3PuNdNnfGR5r>bUrx#@)^`|@Yz|BQ791)M!wb%&m5v~;Gs7nY%KDDC@azj-M z&%Q_)6%sLhiq`l9^|01cflw)5zO!JJdF+A%zqQm4;*)=}={U;<3tC74cJ0{>|_nuRd^69E0^BS7jq^ z$Q>)jKWYyUjUVC6*1+Oh!ebu15NkHgY3n26Yv~NvQ%HH-?0+(9qjB`9WaH~mH%bo4 zcNkldNEkIWxW{^8oDs)*MrDZbTC7GY82H6lR6J8fB52SM38?O*+ZpXsE^+$RJw?7l zkELzUr?I!-SPS`=2m9Ery81yBC5gv+#qgcF+v#xu)xK}itN5!|YjrUp<+wHJ!TTy# zJjwg>Igb!sHQnTd9H&adk#aVXR%K$@B=zQ?1PM9jyvaMZ&WNj77c}xji|xgIDf>0w z?oCDlcszmhQ~ovcO_O5auWq&Of3vOehs2Y^&^nR&3aT=-Sh8zJnv*8|s4TYKX}2I_ zcgguL{{UXRIyKro>*(Lwde_X*^yzl;lDQ{7paEYw^Y~XrHGcW|nBZl4DRw1{_03GJ z>(Z;GPy9UB3O!hn9=YvR?mLRG%6|&2Fy!|&EY3u5Wr9-qcr;l{{TtFMp$q^{VW?TMp)|Mf0dV z4OBp~y}OzU?gzCC(0bCIDwvU0Sv=&Pm`<6z3zQbL-TmBrH}z#~mu( z?0Z#oUzi+J{qlNNksxb*;%EaD=H*RC&wA0J*i7?GnZ8_8>M4#GQswSY+D2T8a*@I9 zPT=)4xlw+lR$g)6H0|4I>;~ge@w*3_&C~28Iynydv%_YfNWfrfby5lRts@s5#5Zrv zfIH%@G7Ecijtf+F(fP9h)4e71hs_DtS7kW+yvB0fA~aq->Q(u0dr~5fC~`jA(KUFtWQo2Enw zg>Kt}5Am<1q)^d-Mh$d)Qn}?l)Jy&zo9y?IH}K~My$TPT2l1~s)7K0u(e$zBTE^bo z)-^XdE5}_4OKo5~R^>v(L6G65wr+8raiYb-(Fcv)br*eH)7)v&zVQxUUBNskbj+TMOs>(ZYjA_XGt=ajKT-+Hn92;k`Ll*YfWFZ z+Rr7p#DP}&7T_P9Hn991Pv=>85&1XHSmZGc^}#>kTAmS;dR)NAA7_$lM)eBCWsSa^ zpVqw^4$|fBeAYHR)UMBJ@a~|x#*1fmrz$a>~b%Me{{AdF9oyv(zqO!2u*-2exuQLMat+)v@Bce9jipt0MSGP`F@J#r+)V-ByL(I?A7P908Th}$Ss7JYSI@Uay-JE8<3VR-9 zMQLg|M?>1WpA5~lSbjCjFEzj6#tR`Ig>&K+;Ll41E?TLht<<3VR-17bQ6x;im^I)L z+nalUq+qLK@+Q86g||cj^dh`d#C9gjSGinZE3qG$HCa6QT;R@bD5T`5)?Ms=QFuFC zo5R|!ovT7fp3X?;9lq(w2kJBV*XYEnZR0%#&ryLx!Khm-vA0k%x#Q`d(!VqzoA)XJ z!P|lPcdxns0As%tKa0K>uA1$>??{>L%AQC}?oxiBpUS^A&8glBw0a-WI9XfWX2-+5 zN>2~?idB~(H~BNKINC`7{s$G={8Q3J)sjw}$!_>04#%PVv0T@Uw3DOwwpWN@E|Yh* z>|le${hl`ix2N;1i$4nL z8lIDRt6E#{wzZK`WmA`3z>vXl_jvyRJ!>}BA0#vfh3T5;yaVwD=fJvyqsFgobt0=g zgCTl?Nc6!!m3y(1dZWjw?wsAkEgWS2HC`OGde6r13)yJ?EQ$2xMTY9pZY5a$?(#_7 z2fhV)fQQRx&mFxf-ujal%tkjhN8?v5K3<$vWl|5lDmyC-jMTGVBTP(lv~$PjNx8od zTB8-iJiz0pTGEY?qXtG*9g7evo~D}{#djkokb6|oRFt7NEw;J~~lPwa&zbMaN)~E8vIXsGmepdGSRNK3sO39Xm^2Z0D zt8jq0z{OUN=Er){)9qSm6>-$!vypph&qMfgr3mfb@rNvMr2Q+rR@=`?%<%n~v(jzi z00I}EtzVh8uNCJ`rJc?P@5q&<3c2r9+W0B!Rc3Z<`c+qET3=XiM0V4|t6iFldAJ&i zNi&+FjzFsjcMfV?xs83AhQ({B_XF1z%WGC^Dz_ZhUn=Em2Udp)#<;3R>g@FJwJju% z4e{575<4oe`-jZt0%Pnx%(|Eq-FL&yJtu zS0Ao;dF|wEFC9a6u2#=dmexSXb%;F|kv@ zs7UdwCgLV2&!gE-TnRA$&jb zrr&wij^UupI}5 z{8w|~`=Kl>cIW1d@(A=IyN!QD)4Xk@om)o&JJnpzYu`Od10I;KDPFyCTKXQnb)sFQ z_VQqZlD&_ytSVD)-j3&^LlBbobv22fD0^8-kWtj&uY7}DcZK!f>L8V}I&)Wb>svn= z+Kc-oST9w7c@IF?9Fg^|4|KYH$;f1NJd9$hjce%lGQ?5jdTNhTxUoyxA4ZaFX7lu917Ca^q6&vM~#3IrcRZ&aM`y9)g?6{Sbshup zRNfQUAi7_k4cMA9$YswtAC+S2dVHFF)59RcDXP)2Q^j&E3qFSNPM(^5?WU=r-50dD z0(*IskWxTFApZcszmS!d?oQ2yoO&7 zU69etcRnw~V!Kg}yen)$I30acv-3QzQpaNXg^e*T(T4PaMjNoL9WI zJMh&xm$Q-g@9jzZKiK?h@J#S3`C7HO^DXC4H)Le(&N>s1%D*D~XW<<~!5$*I(zQ4m z3#c5cD-34@fJd>#e%bsh_=%=`RPdFit6?IOA_F9O8CJ(aKgPal{kOkmVdKp%PZVfS z0jt`s=_5gpF+lY712yoRGoDKaS>Q1b-TaxIT3nJpGL?_6Y0X8&ytXsEGse+N8QRFe zf<1_)?iKp>k5pzyAgIM;c9YIjh|E5d`@H&S4lZ`yLTPU>PoIrrj@ zQ(4ryDqc=9Ya-@ssUwqCZl)}!*VeOUZaR#dq8s+@~f-M4X7q+V;HJF7+_hP2ICO+(*+QzG>lq+AfyI zrS+fO+DD6gc(&A`_?LBWs-RH(^yyz&7w)9bo_6MJqVR>l?r6bW0mVtQtAcqHN%E;~)UHIk zk*M7Gt1-d1p4DC)vjd8{t@6`|h}lNr#YW$Fj@4n;<;XQsNjBu3wV=f1PZcMbwlkN> z>q!dlLfuVNkd$H=VwlBCy`+wy@m8$WWPS!JgifI3jMjyuimXcVYe;TfO(^3?$S0b7 zkt_4kq5DAKu&89b-JPS3mDS6kV#&3eY3CIst*bHisO;0vkdu>JP^ga>7!*bqA28KL ziC4MlSEAdrWYc4X9AwmTwj=;>D_%}eQzm5Dk~yf@wgwI;^9wd9ufL$?v6M|zv>gli zd@;$*SW~@D(~73Qcmg@8e9)`M(x=ophcs?8xwxnr0?UwbLrn5#kVQ=z{_LFdR*c+= zjcuNKns}HbMLX2-q2zTG=U{6}=wJkkZ40f!f zv`M59j=89v7WXCUjEh~;Nro96D?wpYUO263w6xRX40@58&7FqsoL3a7@@^=ii#N=D zDi>4EDrqCj;CHE`vT@1gvgK@VQ#41sdKy->d}kb1)HX|oEIFxG1lfSO?MEq}sfMt! z^yybL@wtj0;^MUb0J7Rx4#9)^)mSX$hC)K}r!`A-%;n^1>1x(8`D{L3p{uOZ^++!n zBgo#TKK0Jbe$#H8VoYPxwNtmXxU{-QQrolJIIZv4%FC(jO$D~8VHD9W*<<5yk8Rv```Nj~ii!vs`hPn0tLu1mZ9XaBMMJlC!PFddtmLg`wk1mX9E*5n zI9a4n6yv39>AFabA^CTX^Xc~{@snQf_W!3gDO4QPU`SS8wTs`&3XR-h`d2z zb>_h-AfU$}k811uK?n9txMMQA?fbmfkZX2#I`OzBCW{&Qlza8As!`@RF%>yZQ&#Y- z`mB;Yj|sc`zb@=@w&9C*~nr4 z0M@T!ojojh60c*0@eheF?jv|^B$0xy6fwxI1MO47#BC@un)J^UG&ixn6Uvl!ZUg!xVLAAV~d=@?|EDNeD!xUrBt zM2~K?^lwxtd%Fguqw01tGX!Y^cO3r!O3hz6q%q4GR_<^`bQj(*x{ClVKfDc1r0P~0 z#Of}9L)`II$=D$_wK+@JO}+pb9dqkdBY?ARZUL^##uk=o7&a%&9XnSk7;T%J;10B< z8(E!EnvpacSnN@NJJatKVMnx9zRW>56r#Euw}il16KP!WwIMlU7I(HjUYDpy&EmEVnn0c6!%@bbqq=cS_TvIF{ws zNqFamI0x`G^iPCzxb*9As<|KmyZTp>_!mq5(D5=luG?#PvJd-QV!g*rjI3M^I^wbG za;;@!QCKcG#VnG1-n>`5+jUoHOF+Od1xD^CrTOujwJiu#f@+`xCQ zivIv=jbvZ^NtW48MZ9W1H5CTbmbW}b$=q{MNZIzO2$eKuKF-}=?*3Bl)@#<_B`l6fMg zZ?P}2==x&$I($TMHva%h<+bH$u9=C?>sq?ir2UW)POTs_XBHUxLLC9NpCq4h9?7oUbXN~P+LD4*|9iT90Go) z{{XFCIU84R03ku%zTmwHh#|@Egnr+;k)HBQ^4x zoxmFVGvXbf*FG8CmKpuZ$@wWY@qzg;r?(a8<2~mYc^+;HNXkBB@#FESbCt(huC4e} z^Im!D#DDObr*V_gtg+zLNgL)Pr9_FA_8kZM#WlE}aAL7xz>s3LqHL(AOuBtW$=a!0 zMp{f&_wQ8aTsB2qiB;M)87kiq6Q(V!xNSIOJ0#1Y@;M!^_X5 zF~(FL)s=$fb}hIra%s#;sRx5f{4$>O=I82aJm5Rm#*x0q|Q>IFjFcFCpGrLrTCWq}5t3vC?pM$mKXLayF|j=BuD z8OWuR?%;Dwg#4h>i&d>fVlnT?ra#M`IH^y1h1d{ienK4+Zd!5A;Zdi`xam#}*AyTZ zap_73s9sXJ;-P7Zk7|6#b}cgjP{_fu2U>^BY;tb9kwC__oeE?){p5;+sHlX-r6A|++*dZ=dCe*P%v{&RARt-@lVL2<*)8xX-`sc zDy#nTV%098Ce=t+fTNm%6Suz=zcrUCGJD*dU}mF{dUvOm9lBImKU!~V3(W7n5@|nb z)}D455sZ({y~E2bfI8Qod>ztSJuU7E;IYR~abBaRKxWk}?Ui@5(yU>AroC!0_H^#g zoWxZ2mF&77Ui<;@;Lv;lZI#5g4rODGc>sZ4mojG^t2@HB15NP$oo*LtNDvY4v}U#2 z48oK)xytpKEu456uKUAsd6obktAHzrw;OR?Z-pd3Jb#U6Q&bgWv8{YI?KPvMpWT)3 zRP_|ZAorQzy9nG;BGDcVPsjkQGGC0jm3EdVt z@ma2n+559-{QU7&lO~(4UcloFvbXc%t6AH!s32!;dN;8x;F zG01OkT-Gs;%@rrP-xd31iZB>>!Y zy#^UKGM+Gat`6QIBrd1s7{~LjuR*voS|Dy2ep8=r0j;Y0%ID9~e6r;k;|pIiO<6}+ zoDzMH2lX||u1bN@yWL9P?b>a`BdehU>x$tc2g_1;;=1s1yg5%NGpEa0Pr4$zT*LZS z6v$PG{*}X?a;k<@(aC ztXed~-ZM>|wW-W1ee2DBB3k)+yp4~%x&15A>`ra}09xceBH4p;3z3lUpV0pR_3O>c z>U%s*k5@UT?XXGqX#7OCx&f6BC#PEai}nxkLur2!^_?BQNUvZiF@0OQ{c`d7*d zHnvFQpX*+)`#1QyKL`A7@Rp@;!|bx%eTHJ(0JDDYCys%N{#Ek0%6`)gIIhR-RAtK~ z+4>RjXF-*;b-ji?=H0_&b=pn{&OVjLXww^b%7KKFoPBd%?WtMCscAQMaz~Ky?NEJj zULcX1A#-agVptz&Y-88jzEdu%tESIhdcb?BG9Gc)>))+zX!=Y|0 zEhstYJw`v3V=C?eloC7l{A$ge+glgG!EQ&s4^ORqZ5eB0!o)?}L!i5#aZj~f$vUKK z6m4+CuvG*o9>7*UthTooY;42%1Ax*D6M@Ocp*4+paV5pWmSRu;0Isz3%Xuy>$yFpT z2D)Fmb4D*l#?5aM#+XoDzl(N#dsKg8+`JH5s2x8F(S1Ck0($5C_NFvoC>X5$4v3>J zI~i=B_sByxJ9s1WuD?U^jkbZ{txrgYNRH=HzIGpPxZ1)v*kb@=IT$#{bM&kYP;Rw} zf&08w1l*u^9Xi%h=IUz&&8sY^5rtLZM-^r^JH1U+T%Mx?txpLA^sYH}IuUvU`^;oj z$ka0x!8K0bJB4T>fgs}|vM$1{y9U4+t5I3*<@owiqT)gM)|7FXKh7%_%{3#nvP=Vv zn&`YYrkl-57}b03JbDmoHXCBB4R@ao^w#sFxOL+gABe75PRWXX>{~k+<1wgEG6xjL zh_TIRvaD!Htc#6O7}$d2t$4Mn#t!q9j#@C3{uOdhE3QRVxVJq(q-}EFpmnIfw=Mb0 zt!A-QZSfw2X;qHAq-+Y);*)JbCaG-M{owrSFSkR~I+69Ju~hmqtJ%s+RB1U3IIN9Q zGRSzV*7wmj0fDDoLMB6wmDkN0k)cD7gYuR7PP zd1H#;m%8kIo(8Iwj~ekMj^%%sHRN6@(N*`IweFrJwP^R8an`)UTetHWvNK)yY1+rH zQlBzB2VBzpxmXp&a+j8+bI0jk$>L2EI~G;uyz5xgj7;_Pv}$uJA1#WY<0f#ocKvh5 zYRR}wwbI{1w2|Jh?-#9fzazn^4(4emr&>Bv9uK7(w-ZvO(B_IleJOGn$rE zhZE>&>nlb^Dk?b?%+7;L@dUP^RnF+TVAj0QL8?RMLUMn)D~VYRUDNd`EhNge2c=T- zH0HYHkv-MBLm^TzRhfA7u7i9!qyUa2tedNI6Kx{8BP;04Wfvbpi!O1RF;8Xdnu(Y$ zbDFb0Z8aRPw2t*^&hkrHmPpvEDahuii3ir4vQjjRwz2Jg6Y=Ca<%-y9M0tQ=WIv#+ zFCF+K9n-?OJe-d8=azSkZz8%r2sy7y@Xw4R)UCy(;mO7UYUZac(j?@m_av3qr+M5PDa2I*Lg0Cr!n&4YUmOrNIZTX!q}0 zGXcxip1d_P`O}pA-t-RU=8JhHoPtQs2(67vOpC=9Z*c-D-!COst5-Xw?fHo~s}SoC zrrZf(en%MXT$Lc(=8orm8n#@OJ{D$ax`f(Y<~deVhF+EEdS102p$g@&{{UL^-BLx= zCVQYZO2;G)1sYzbCA`3A2D>QKcUL%P6q{WR-^BV%dbO)aqZd*4_3vJHByAHFVTKtP zuRyic1;k+I2C}?Cq6?4on{o4h5|8Iw&NqC>!anYYKc(suY4=gwK;kV5 z!#Mnnemmz{{YPN=~Y#uX>N`?_VE3fr10JK$BlFwOxa4z_i@C$FH&3i zcdv-nPi$B3*1zHHJH@&j_Lp$Sd1rGT(yRk11br*<`}VZ`pKksP`10lL;cx6~rfDH? zI9!p&ex&|Y>+s%d^@=MERr|~GGUdJ8QQ<+oYBr|;an~k>TKklYS{uOWQfG>Y_3KI- z99FS?2)O3?xv2Twfzp+ZN2MoDlt}>Id8cH0(|h%%=abylEdeHToQ^1LaqCSS=N%|! z=@_(jE!}yMWTIHyZMvT40jri_> zPzNMD$wY}KjQWZ?5vByM==P@;KNrE&=e@~B($sad%`l?!6JVvj0hPCYrO`{NZO zAI^nb*75Q&IxRBZRq$=i$@!pLf~=#H!sj^ju7AXLamfr`S7D5PRI+Ll+t|x)j#e24 z8FR`%n)SY6M{+lkzR9acQvsp8GsdKZk}fO&OxlXBAb=92U79nM_HkV)huqU8O5ke}?tjq$QDl-XU6B#vO=0(m9O>X#SOiAN=$;Kj& zoSM-_`vNcxvsuPVaaCqRQImVQ4rX|@%7;Jt!>J& z^VX`Wav1cfC16vIm9%4Ja&OSF4C=$LA6ic`Hf-lUm73B8QWuj+3uUp$HH78Rq-ih9 zCmE|ucBsc%q`xWyo@rs3&P#Nxy+fFkM#mMn>EbQ(kRVIQ%Lrc-m}ZqSmmdt&yL!?#UzeTAAS?K^z*euk zjFs z8K9AsS+WlVkIRbSif-uJn%c9`EN`CbF$}U~8ZNZ=vyI$Ixlbd%6h~_m$|i}jtIk)U zsv5+%Uu2WYemjHBXKie2DcUzUj~!p!+*_(!oy@#-=kl)>)jVb5JquEi78YnRll#2( z`d6iE8rSw)&nNoV1E*igxpeWpo%+bPP#`@I0Clfp4^GPM9tI+%<+;FJc=}CNKqeby z&I02frYjEX$9L9q9njzdjob?8JVB)C*OzZ`YO4`nm}3IG_gcO4rx7#Y^!;nrrnOoe z6Ze&oXJ6G@Twyjg5GI6S1hB8nAGL{tDT17)>hteoYwDz_uOhr8m{t9T6QOuEl}&vGf$W-t&}|D zuUgHL)U<__vlCZE;*$x~(itPc0|)Y@({u)D8KU{q8QN=0b8cttIdwRjq}z7BS;BN8 zx3rBWORq819jG#C^V`K|cTG8AcGR5(<8CMmQsq{KwTIV>A_Isi+o`0=$ zYy0StuoZEdH6(%Ex3{VY|!1 zckXINU)_uzDhsI;SD0Zt8K*)p+hV=<=kGHQE$vMGFg;;mS!-&>?-f~(C` zZSa>1$mv--?u&!I#k+f1FPjL;HjJ@j+uFS=;cb+bK5fv9Zg5pw>A}T$=Y@31wQG}a z5F$qylI*MsR=8?p{?X;DLCy%+SI*%j zjGxGXUl-oT<=@=L(`1alk;Q$R@MVs%@aEdvsaX7+cjqVi*T>!{fZ6zyREdT*+{iyC zBE34^^(aX5u>S37#Gs^8_jRb1hBHpd=D1H$4_51*l>~q`Nb6FD`F&}Q0*<(;kun_* z7|&YPwPEFhn#obXImoM)vk-QkD2|0i+3Hi!*l-@X` zlm0#!np%t8q%@DpfN#8StqnFmI#T$^QJ=_F9tK8hQaJv_r1`+%rr>@#6{nbb8JADz zTsw5;n7xG<@7FZ7Mr6u!ik8*`b$1jhGS1kjR=Tf-`YF~tQEV}ljD~McwXHbwNh1of z_Hc4%zIa1PT`xhmj4lq)Pvk4pehp|VuKYyP71t?mBFx``u0}Y7R_KGU#y*0*qxNIa z<(pL0HAYX7N0zPIf(?6khNBe}e5M(?l653~GaP|3Z* zLElqi5x}m4!c{pwrIQM*V7J zZ?tLo&T_S0+afSKgNo*k%^VZ{BxH>%rQCq^H2XiAGfDU129m{yW*w^zmO3SFbkCoE zX-xrQ*EH+(U%wkGA9BMV%DiegcFlv9@{Xh&`g)(ru$Tpzn;lS(Ue&FpIr~kqZg(M8 zC#FFoKj-OOQC5>(&q{j6=b(5-K_u63bn;}}-kV%xW7r(lq@;P+=$YC-TIakn{!YBy z;9Og@NB!j`l%K#F=_YU-06y@~>0SD`So!+4jZag!@cqY~rrWvu+jh6rNeB5?L8ROp zd#oS1Cmz}CYmV@J#`tcbZVI@Nf53pwKN0%ZQyPa-y*CaIzfgZMS08#dJPMxWQ?QM< zEpb-B3L;BVyi6Zj#0@&feZ_AJAPYn5La+u@o zQjBM9jCNkVt1{_6W5z2{%~85uLC3MLUN2MUXB+HNSoa<~)~=Us1dY4=^{TPPKdoJ} zlgpTAq2iTCbnH5D<&tMhVx&cb$7;;+&7ayVEnEzh45!zp{{ULG;aqh3)3qo?)u2wp z{{XLE9Xaw=Qb*8MqwO%xo9cc8G-sB6x#q1{vwX!Etf)iA%fVI$AdhfyTK+K5rO>sj z+X)v91dP9_ApJ3l#Iti8faBZK*0^J7MEyN!x%%nwcgAb+8{vnBJVUrN_jYP7KzAH)ecTtRd&c;j#eyvzOx`{M(scsInJ7?JlrpK!O(E^~GtRV``I0hz<71xS=M`#2 zRr8UCRmTUoZ16|xT;7{_RpXc(q|t^A*!tH-%qE2xaxq^?&C4Xw%{b|EEE65kj!sD9 z{69MDye`A+GXgSm`1h_~QX6gqW0pbBPC&T^ctp5xHl zxQ8J3teKb$j;6OR7;QVa{{SYiXTXt%Z(2%06ji=Et#Q;2YMe@PndiM+oNtBHdS6~iNV#8~6Q0647(*BI-X ztr~p5in$t|IILNxDRMk+2d!&cc0H>e6*&VO*1f6Pq;)mVJrPYBF(XLe4oNt#TJW`x z*!0+e>cb|y+rzfMYSbcA&pEGOjvp!&1A&ZJ4M}NZixDlNWcZ6w7Phh-+jflC&3_WU zH(7XINft|m57TaW{&niV8@yE?h5R>rcOz^FgoB@BUzHycejwfWyTlh)Eh`v{or{x< zX1*Wlbu)})skdlE`)s0(EH)SG6&2gq`eRr9tYV4SM=2lfHu;i5KiOa_P5_BCDP zKT7l?kl^Fc;GSbWlu`C>m-}&uW?wovRdd&H$MdgN@PF;6qv}N#TiC%oZFc6rHayIA z8K$g_AIy?6H~S>kpV+il@Z{0QEO#^gzZp4H_V_KeZ9khSQ(9QdK4c*ye)>2%`%FNMW$+MS_X@n1z3%&w1%#8Gi<0N3 zxU5Tt>ZwzslgoAd*R;_E!08@&PFlKE4b=~ zD5))XJkm&7849rEaZSZ{{wVOG$W6_#$UK!5!^>{bu>@g<71>UF=-`xW?8rtFAd?sdw(MsOx3z5<^1C)uL-k!GOnk`4 zKGlqnv@#rw5!6>&vJIeA7g}sr9G{iCW{0aGHjOU>>&D6%Ae=O|E`IKQ;U}p5E2FuJ zOG)Fofyy$S=_30afGxmR*D`tb7ejTV-AeWfanmO~ zO=VIladDEm4~9xnKSMubzuHPa7ikgrV_di&+Lr6KCU)jU90Av^0Y8m;$L#^|XG!?k z;9K1;>LvSL!q(GZ60QNqKAEq|ttVL2d>^kve_=aYTtfTRmm@gm2iVu?kL=y?>eu4e zh3(SfMNMWD3vnLd)=7`!J`)PYu4mqeiK%*{9Vv|^K+Zy%V@Pq$Q(cbbQp-@1P0dxLZ7jtH#vCLOsM zAEjQAgDyH%8-yWAs(Kkux*W|LHsip>H6%uCFF#6emFGvnro#w_Em3njmb{gdka?(@ zFdS#CH6}5uW0OvRn~8uU2AoOqEyT;TRBa~W_&BECe(wNq)dVv#ec_&KNR73y{{Sqr z0>_NhcT81TlaY#9u8)`#W;b*_DU7bOh3cLA*3o*9OX0m9O;YOzAP!HZbUOC49gVoK zw-`kjBzHBAx{1?Nqz+K9=N)T4WP7;-vCla*)6HdMPpH|Oa}071H9Qu7C}YJ)ksx8~ z-mDh@a7HO;TN2Y*GUqRPc@r7ryO;rs}_$9#cv6AA45WYK_(~Gh;ZEYs#f;< z$T`JZ+GAe6)w-8)OUSyrS~5wfeC6e8ypt?(kWV#HCTC(r5~71fuvoMa9@m1Z^C zxg(l&t-kAUtv9oQTSNp)jvNjFJ=oSL-_yM-C#(Qd08WRsKDqWgO*8hUj(Cq9VO ziZH9Z@M(=E_3M-AQQMhr_+A04D{3KAxMbFgxzEkehC6qjKspN3hTK}lKp8a1SZ&IT z3VgDSzbVPCs&PwD<{0wrQ?;^awISGU88uO4FE#+pY1rDf?ZjfXzPg<;^DWxh`LFVf zj`Uu`ADF18Ax}7~mlum?9@y6`M>U1^?T8?v7Lyja@Pgw~c*L_R`J3^Q z4n2Pw^M8c5YQ7+j-gff9jm%{BY#d|p#dFj%djeG|;!@nDAI&w2z zcynBdgiRRSs?0zHk>~-aKWD!ZGp~xgAtZ`7!o~%Y7&ulZ1J|W*d>HtVZ{n>(QSeuZ zWe+OM(c4@~c^v=%{Q<5^<2Qj@;g5OMIa+3~ z?8oEiz83sq{>;_pFj(BlGUS6NIOCp9Pw8H{@k7Pq<9EPq8(59hYg!ptXPXCvWSYd)!)W@0y*e$UFNNNqTS?x2T2s1_T*Q}y0r6n z=fJi)<)-!3G~?yU%b%H405U$L*P(nT__CVrn+=uwVbpnSPg=UTboGJB^_TF-;=E_A zOKGlMLQYkVK>Cwd`fQfh8`5&AA>?G@x_^tBJ-iy)T|(YsH$N{b*Z{9nO!(eikcgvVpt3d8d~o zELRvKwR^17eX`YJau{P7z^^*-uZ3SvVRrx}I-Rx8Q7z5z^&i0_j=8sKRb*Ac92)Js z38wsp?LJu)WLGC^IPy;6-@ST2!|2xP2^C1gar)H9Q=+uF5zA^&HRh($OV@TkT7CAQ z+C)2|W(OYi*y|n{iq_!H$AQgpekFKhjg<f9cu8&FD8!^2^7W@ z9ixiO(=Hm`;R2niPc_?kn@RILKW}!u4}SdxXRBvsk$y)VV+!0y=)$c>H`&-J=hlUd zEp2y!md#a$@63>g7_4O*8^T=LT$166$-B3uY-n+$z`Jljtar?k0iG7Lba>iH90R}^ z{VSj0JC{NoYUj<7mpR83k%rnqHEU5}CCevHahiYF#A*OJHOniu&Z=_ha)1R})~`Wt zxl%|?gO6Vt$hpN^fvdlY6c5`jbzs&#gxYJ8Dagn4&fLK<`pZJfrrP*1xd+7+zrE?g&Ny0KSH6 z;ik)DJ!|TZ+ech5>AEJAr|X8AWQw*#qYhRrO`u1}bY;**EP4T?tkaX|cqjqs;D3RRGn1RiQWxuc-ZN(5LF9{idbLA3WZ zRliDh><>{>saGGrECnNx>(Yf~@56qTAJ>yv$%&GyV;CK2CT>8-y*p@C&S+&40Dn3J z7Gw8}okv=glrK?L?H|dw+)jH{yN{MbfsowQAv8h!K-H@kE9M@YWA&=1BRo|0?Y1-P zNHyA>zNN>OB^6%_pH|X70{H_6N13wrAn%BbImT!xfQ69MU<{7 z@wr|zR<? zZLT7*LzTB(haRB+0QKp<5r8e!*OD*E5;ih8$p;medvMoRQq0|CY}GA=F2p^>Jx3n& z#pKY^3ZpUGxjc+lw0sBAkCAhzFa)vk*YF_MiKp)*3OUKeeP8g`NKHS&)=H_dnL{7Q zSEYiFHB0t9jLN4aE>+asn{uJR$vh9nzQ6b*;gR9r0@*7rCAb21JrB$W74t8Jv~jI? zn@q9`xU|Yxf3g^6zSq;N*3Qxx5Mg6LpnW*5y3d-mmdNpGdz5bajuG|Zn~X3OXKzY@ z<0`=Rt3)Pf+T~OcS~le3s9JLv@5O0buWH6ep&LpzJ1-5*_KPBilDt%`zFQI7HJ9Oe zjCY1U%s;Jd-AA@V#}&=Ata+38ZcT36qsLloOkG~bTl>S`FD9ACeZ^-lf>#JGJ$s26R>5tF7an|kg z1wDEn*0=QQmh#6^2N?Pa@22jo&kq!~k=S@fV-BgXjlOCX=h)c}}}co6oh4^OKAp!mlcZARe4nCx+$U z4AJx|Ll4J;{HuN;^DiC$0Ihg+Bg-~@1sQX}Gx5XrgYd|*@r)Nh0Tt{DyT95{N9r+N zDRF9TZeBJRJ!|X_jouM&5qK_1V_o+)W6u~FI2p(vg?yi?L%YkAjGXdo%fV0DQ}aJj zs}5Nn>H83P$oOyLww-G-2*1-Yr8(yRejQNfD!A*Mc$q zYw_R0I^>=h@lK7cLfa(M?;*JizKGzF`2+da>-LGLL#*jmnuWV=g7OreGuJA>5&9bW zyy}aESk*}D!?(+0<(6qQ5r3xKDOvQ}rh}f#o(bcj1RCl*EvYV{W>B1!Bxb4p(K=83 zBi=ZNPy-g4wZ0_Bc@SWqt}*$V;(itQqjslrV6BHEPSs;R zT9MQoe>z_Z-3u*4b98@|hd_Gbt=&d0qa(2y{SP&e6v9S$Bfn2t>8Crzrg_tawL7__ z4UyZo>sYgAabx~^)Ydo6b83Z-9B_E&zcmEJGZCB~wW*X>L5w%T{f;yI>ZP;ow*VXr z{{T}{i8vf%J!*_OQo|Vv)iZb4>5O&I)U|GStp({>&`2An2d_%MZpUsi*PJDIHB zqGxB|7<}DTPhdZ#daUPUC$)LE!zlOO%HD$?rFuo*`jcK&d0OwG<<+{NC^Pful8~zFjsR_Jir&{NQiH<+uLcThf{Kl&#qZrVYMfRIM z_HD-tN*+W^xy?l52Byvds2PQQG@MM%U2}lIo_%?&J$u7xaI8SZd?Ddq9%~*Dyh*g{$sya$z{CUWYw1shzqHksxe8h9 z;cc#X9&Ub9^(5DUQvq8H`KjuUtHS2gu^#O7WBgU&Hd6lpCl%!WAkf+de6B0%o2cxy z%Q10m=`<`d8Au|$)5V?+5=QK)k=LbqxLjqu*$WkijYW0T`JYgaV$8oWuS)Sp zhnm%#mBnxu(0Ob{dz{K@>7OB5m$Q>h%9HP6qbF@kBK*dnZYvgf(unW9Nk|PiezfAq z8q~(m;ZJI5t?k&&fS_b|rk3eRyPQ)Iqo?W(Yaj&trnRo1Tew7tf@_;o`PP=7e9$mf zIYY%ebwww2W!ah{#BjI9vZD$ z-8H;{l#ptcXx;D435w^UXg(qr5s0NA_U5X1mq1Ar+(0<$aa?_^>%kx)utj$I9<-NG zh^0Bt2ApKz?zSdLOLK*iGK7LLRf-tm z8;hw^%}Z@?VUPwm^r$J1mOXi?maMNMr?j};j(Pglim#ZsCyM0s`{q^({1IIRtyNu*Wp+4RcuRAdzY*S3Uje%#~TQ*mGR7ACS$v zaYHZ|#RY(-F;kkx#d#oBEyYNuYjedxkSXi;xj7WPnNelTj&WHrusuII zu?vyLc%hw;lQlfd=bDY=_o$V!pwjN+uQi$1&2%xJr7*BG*?#pU3O+|9<*k6XKGYW7 zib63>-P*N`UC6lay`1%^rEips`%{TON`hilhB+0nn~@7i)qB(vG4jamQZf0BSCVXD zPfXM^DGY&~Pq%usV`fvHl_Hpy+^`vb)m5$^XwO1%QDYnQ9@|um@#|8>fY}^XS+{Ql z^sCoN8rh*k^Pae^5EI8^CHk@1kfS*s)$4x;{sY_iw@;T_*R=@roe~~eNwOKRc?*Hp zk<@puCeig5)8lQj6$Nm5SFreZ!g}|NJR@_i>-x*+-WauyY%vT5nTG^z5O zvQcJ{N@oS}mixm$+fQ%dSQuGagBY4Z34Vtl`gN~8x43Z#-^o4d)~S6B)}bJ@R`N;4 z<^&(EDx7Ls;T2mUPHSi`UCB#P*9>AgJ!v7C@L9T3Z`;qjm9cp3!bG16s8_?NBV-n= zs#N9oQM!@0d2!}Rlr>GEEy+3bt1;QTY${GVnskx~*rqbwD-LG#7d?qI>v-Y@R~a;1 zF}h-Zg?aX;d7EJJ*OxV3`uaO9E=ZLA^@eLsWfiFoqrHqzvz=2?5XKK&e7x6V2^tN$ zM<>cLo@<`?d2aGu8-`$8IUW5f&yFq}Io{mXJlb46rnVWbYf;>*x;6k99`(;Pw za%&*nJ1ePf1y7^M*HZaokzDR>S{HpT&X-HNWVb~lo~EuuL(RzJJ*v9f{hmF@2pGYr zv|EO_ylBbE2NhmK^DbMnp;T#6#@(Rtx}AGwu-L}ib0%}2#-HM=lcH$wGAGX5=eJ6l z`Wfc%jh3N|q`c?1QY*TRBhRf@mfeqk_zNfeEDwkNB=GaF4z|Rg&p&t$KLBgzdwc10 z&ln)djqUC>ka+0W{*~$f0J9H?4vXV>qcUuYb=vvpct6&>{{Z7W5$OK_6E&j>?TIJg z4hJ9~>s`2r`;nSQk%g72PMa-Jbh^HSr(P3-uttC2AOZaAwEdR+bUYK|=%Txm{w3Og`!vy$ z!B!w2&{q#LjM`^TCZ9DGIPQ)|#~N(@9o7=&BEr(;LHT$Ah{;ktvMW=-dd8z;W2;zM zGf8W83p>SqTl@ubw4fabDU!&Z(W^ohEgK=ZrMA=f5Nh z;gww*%vIUXTK69e&2N37Nv2OCmtmDT=b`@q8uCvQX!Gg1l(4o;d${!LUTt{$Ma+@) z7&?-JbmVO5`lHKan%R#r?6R$gj!Uf-8mao5N>#QsCk_IOpGr>aDeP(RDzX z{luL=opH%~sP9o~O!LnYXwRcul`E8Ek?CDO!ubN;Dwf(CwQhL(Pmfm91h6P927X`1 z(!8%m)~<97Q5mwKTl&^lt8}x>y~~j z@Y!`B$P?xj;Jz}oHdj&<oTIL!`Gndj90@pmSp9+pH6XJ zX{TH~Z5xbdJ^I&ab$a(!s7`nSvW~9k+J5WQ$db*Z1~NDmg>e2&!BN|eE2h6g1(}sw z99J7KEjI3Rp0%Au_BNxrsbr>Uc;_{-rpzqko1dF$AEB&^RyL}PdbMA(b(&8ob!_DK zt~b7?r5zEP%-(os87;`Ip&G+$y}31B@u7z46C1XQisJChz+(tF#bqRsq;(LIu8Ts;NL)4V5)66_82wmJ{Pz9M~JPWT;eGApU${%1HvJOOSc@c zVn15-FNZd)?{j|3^FQv?{{XYWtg1_*Hi~v_owBdWeJVWd%}Ck&Dmggfxxj)?dPv)9 zk~yM5$6-)29jreZX=-Pw@vrS+tsPV1ELP#Nmg$YYnF733vd!o#yZG&?eY@hOvcT?G z-*5gpD}`LPF;gwh_-Pb5e(9+07><=Ibk2FGq*Cfzinx^`n@C9XG+|tOuFRANM zaC>5(k)NSDzG+4S9%?ilPH-ut?RuX<6BErvA;=<;nDI<}?KG@W)_7Ou&}Ad|UmvA& z_Y7L%Oq}yw7lP0HNUs3vl7E$RbMZT$f9qPy;YMq5k(^Gv)S8FPq-Tnac#s~Vq`c|J zrDVGr^f3-bYD-dl<;5~gZaAqe*KB~)KIETCe#-ivlj1AL8L+ZKtJlzz{VQ+w#IX`t z_RmKmkc}K1yj@{^gx<)APPLuBDwXz!+w1c6@rKfG< z6j%s~^rUs|Qo8NrQMY$E!J)+mkqWNi)|UsLY6r^L?^AruoPk)%C@er`J?VVy=s@C} z(C%FIG}ecFV;m7#c?fR*0F%(w{{T15vqSttilrL-q#BYO$DZP!kPly*6(&mLQx&>) zsW*JJE67ECr*%yndq~X$`gNmm>rZWlJydf}rswdaX5y_dUShKW#W!ebM&}-s*wn8> zfk&vA;Jb1^N^m@56&}`HlG&$jJ?e$%2R^jrBppV4wrNwItZ5_IKWDE5 zoBse4PpwVNR_J3v+i}4LzLhtH zsG!v~(1nv2q>+A6R<`%1$sfy_>9)ruI@;<@r>=O%6`>lH#ZlA8=US-0C^)PtD@gTe z%iXbSNtnTX6K4ZBHQ8M+nF_G38b6i693HjY*hnrcP@cH1N$IJRk1}YjYn8agOK`t1 z_3cga%G~F*ODD|0*EL=4gAX2PIFs2n=*T?wublod=x0mug!6^OcRxD*7$4HUiL>HD zJ6D+edeXOA+FtF>-<0F=H56xQ+qvo}+9{tq%==|w(AFNGFWB|{L?62{Bl~V0>w5JJ zcVpl2?Of)lJgr%rbTQzb-4FGyiqW!79<3c!yPk_?#z|36-gVFOt?fJgWU=;E$L2F! zwvjVW9h8{oYV-Mz>0K?cWw@Py!bnxRcL0M|P1{y^n22*L8y4;5sve^_uT$`y*V{B( zc{-K(58!zHE6ibxJ-OpP{{V${{{Rc_{OvaO-HuFh1Nnpg6;WwPo;7&M!85U8)Z?DD zwPJkxHbclOkIWHS80lIXOqh_TwK|%_=EHllv)P<%k(lIkBLz+m;A%6@D@$I3$kiqo zz+=1f6`Pv$;Vx*Vc(aEj+ePw=kJH2H_u`q!ST z7-mUVsy5;H9M_^+NVgEhDCo)?^RF`%8%ap?un$KDet%A(E`&0s>uHCU>fJtINA<6d zek6ECPYL*&Q_`JCNaZFRj;Ki^x21ilt7+e8fzuc`&Uz7!L9Y+}r93+NhL->ULI1v| zc$O&lOK<**ceHfL`B?jBKbWtRz|{72IeIhpYLMpE$IQO5AL1Avk+0J)*x$xS#vcWA zl$K92=S?kRAnHcLh0o!N{L{LGq?~=z-}%?pzwl2V85>U)_>aP~J|nz*NzJUt zUq-|%%jOTL>J5H|_>LsHw|L!mql^_JAdZ+nQD2_F5Hu$6hm5t2C5FLmappn)09@OZ z$F>RltHa6a^C?hge6^;UK9=ytsG7!?1;X;KxyF9Heibd$I3v*UUU%?6UN@F=*)ir8 z3>P25bI<2qrGIa>)tC-LWH0ls*B(ib%AoFCS+WZaSt zD&?k0CbhYoVbr(6^N?ilIsT)Z^V_sum)c**NfnF(MHN3~={ues^J3fMG~`u_m+tI+RGA!_oUhBuy0spXS^ z+F-9XT4XGjw{|gv8;D3 zQMw$FR`+(Q*8_HOTSu{!iUi`DxF2eCsy`Zvx!Tmoe(cj3ao(IM3D44~b|E90M)s$b z=9+ztQG+32`O)ST!32Yz+!}us8!0)Vl6oh@zl@rH=oy&W0q;j|lhMeiXNuG`=MzlHNeElNrCpA`1yjI2axsAvovSw4eHR;Q`K59!+KjENe zo4E5v?B=u7#D4BEO>a)Lqoozq8FV7dZ6TqLG_|0t0;N|K5XO1wPG7y(ieQZ^JHnqM z^0c=Qj!5Wgmg=!@aky-AP+M0Zb=plc`P9>?R`#fS)<$~?NNL^usjPUUAu8pS+uO*b z8l|3;?3@B9A)bMyYRRcvn|V%7G4!k*V@-Q2h8X!zDr+}Sx_frst%~U-ypL9~0l1Y# zYf4vSoOyjozruUM|e+JO{1_Z0c3l~U0Sygv)uQrBBEoDiRkmz%o@BaX|zqGW-rf0*T!S&;VQoY$5tGh{T zc{Q!%x^3ZQ$~qh}^!zL6-`UUhlD_aBs|*s(&!@BD;v}48@<9IpJuAjMW8w9@jA}L{ z5ZtgI;aq)<+_rOv8Ansds+?75ap@2A|>o0NNkn{I;ReQ#5;_n}W*3 zah`bVUznd0ejVyR4m?S7rryHHs>CCZa91Y;AEqnYe`jxx68Kk8hSuh0Ybgj;Qg~l~ z(!PoK(eTGe`0L>Tb!oI}v8MQ>ToT-89X*A89uJonhxStVk@?hdRd|0K;fQyqGxKje zQ`ge9JXzse{{RN-GwHg7Ee!ECFvA`3pVG0_@%67ZaCF}+k@`(Kv8fd}JElne^Ht<+ zy*R0JyFQf+tDg9-DaWbNat4>%nqx36NaJbdo4X%M;f4d&h@-MHx*}}#>S@7t zk5fw2-P|13@sCrQV;P4a)OpGFq>+JagHe;7^&L#qiH2wMgTlaPBDAeSeT~`2?>kj(pr~Q<1?yIL z^7jq}G>pnpZ;+o#xg0;Z1e}_wG^Jz!bg3bmIRx=lYZQ*J!P-`tHm7ZMtg|MW9DvLf zuviYDeje4=c+kl9-?(xF*`qj-3 zSC>K(T|jX$Mnyiv5Njz$`mN2QCGey-#+qCj7PUT~Z0jk9<&l@B;CaWjVB3PKSR5Xd zt#K{Y)RJ=YNZDd}Ca<=eC9Ei43S4f-ehqIF?WsGEMH;Wn-8$D%;XeY+<143cF)VCj zUD8}k!Bhds0G={Ne=4D%X|dcp-fBn4)1l>?INjTU^~X}UvePZS9ti#ypi^Omv zV75E4923{5?^ev@TJcVkqG|WS9Wwq~YrgpHYssP7{hkr?sKIK_ zhs0lJwseP?4;!)VT+X4Wz1+q&8DeW%m3dZ%DlO{vEXJ~Hmv12_8Rs>n9-38@MlwZD z4w~9Fi44v#^9+ICnzN>}+gq6*o!s+Wn%?Zo+FxyplUxg1Sd)$5bM>rSi@!SOa2)zo zORZmZ`Q6IZodyA`Y9ch?HE5OeB2wkmmSI_T$vEh|*D-f+*Ahx(Y#x}dv&F1@KM8>! zCAd8+jq~=lU2LnN{s0DJxw&U{e3RMrGY#~$B>dKZM`g4e^* zGK@3wamQg^Q{&5}n_g|JoxF3;r55)Irza_0m{Fl*Vcn}wMUAZQIO&R`XY);*gWCeO zZLL{vcP}{{3g(Wj9g}(;jgVQiY2=fDqdEMmnehC|x|F3)-fHWvBZAYxlZ=5ZgYoJs z&pbNE`$!GP8>?p(c_DxzslhB$r3j3@+qFC(2j1`Qo~-6L>~VQWv?6GKZgU zTJ!nzx$JKP;~eI_UqSeT1ll@SOB$IvbM2Z@p7CT?z0}}&Rkn*VUwI`?L9WU)iqB1G zr5Jw4(vx4f5X$qys~P_QX1OcfTH@ipX$h?tx~_uqs`WH)CW)-d2g%RjS#Vi-%H;;* zR_$RETaZpktsNG}$(7l-7|%7$QQu>to`*YeF-8#)g0%fQ6*FdmLA3@Q+8h)-?@6TQjm-7<}#C znK-PQPFfnqF2=UBZJ_bRy{t;2-qtk>w-_(9XZ5bvT!sG2Y>L^vz8NaLKqEN)D}eA0 zgD#`3Np*JqVnodB&^i+?OG0+x?YzA0AZCtZ|h!n@V`rKLhZFFW6UEWJ=~6af%O&YwZ$#&bW5TU zl#x)$#aQfW8ESMR$g4AawNC0~x3##HxCs+CB>i#2=FaweRxKY$<7sH*~ij%tJw8FJ5(Smf2kAx9l6p8ZcvM@tL8 zu4zddLB}*N7^cX=(#*Txat&gF0=RUgLKayWm|ud+9G? zh~ai+zf)MZNMpE_NzcuSsXuf{YE^9cgRrX?9IEk9I}O90YF5iB6^b-njERt|6OJ=U z8y(*DYVkmfam`hYO2~PlM0GtA;Lf0JJb9-vI0TXT;1B0tRsPVBwa>x3@E1N?89yP9 z>t7yxJDbb#hLqhu(jy<63j1f`{37q+9=^Zy?YVyz1Nm3AfsZ~OqC8Av=qYyN|8w0iibI+ zT=DBuYi>=4GUAUW7Gap>mzC%Qg#Ah8V z(Y!BWG+ztcY7(x}SAu=|e>&l`9X<6uQr_GQhGCxd-h4{9I$oD)rbc##T)K~72&#(R znn$_k7ZWtoJdMd?lTgwYJH2VFO)^C$tGCSH4o-1WNZfU;Uk7NfuIsk;=(~pCTks;P zF}q0_PD&}s^gZ|BuZBjO;ncZw#ItBERv#7eBg$m8+Nseo-@a&tc_WE&LrU%xx{5d&U zT{~ADMR@3UMqd4mxfAEkDc)Y?r#C-ZdJYA7^&W?zhlZ^TjW#ens}tg8mNjn&->%%e zah6}@{cEGyxO>yD?FHtWJSULxk@{B>smoDZ?)GfibTz}t>2q7bmqz19fP<3^ zts9?lk_Y5#s)klb&pW$*xvn?B#6@eZTjK}JhUq^XqXGEi^RB)I^D;XO{{Sk&9Z0UM z+c)ek46zi?`Nec!4Yd!m>Q@k+JkOV(VsTuimc#8)rf?gIyJva*jpGPF;T}af?a-6j zwc64=S-m9&dwX>Eschsi-68kwO(XYU{y&(giQ3_ZTHAEd@!pA#?IG-xI6kNn0z!nt)`Jq>hW-|p?$!xtalHoEFJw@N)}?VqhNf&43{ zp~JA&UzGQ*zrweIZ9OADdNZ{D05M#NBht0}Cw1gq$r(H_$o%V@5e{e?;c9z2%gp&T zvw#8TAJVYAN8#AKN8#O9N0Bg>kg_kcV3i}>FcrQd48)G2o{?dJ!LQHN>Y4f7 zs9MWyaV@pNl$zbzITY|iDIoUs71w+b@yq-+_^;uw5a$ru-K=+Afq~A+0s1M=;47j1 zq@#}qh;7ODAP>&9J~DVP_{ZVixu!&__X{7|E%@X}nP3OhXY;RtqW-6h zzfF$%e)Me5kiHM=M@jKzs=E}1W8}&2pS$@SSJX17)eckvx0V_Fy4O5)5{YA+91QW3QL_%`11IJk>0v*36UH;|^rlR! z<*v3I;{VQUudfdM3bJt`RUgZy5#4fZY}hEFgIM3eAZ!I}o@?B! z?gizFI5`ZU{+090lKEs2^{-&?2Cy%*bW(E5!S$~@6ARi#HQ{y4kCOiY;Gtd@mQ~Sp zB#fBL6lMdC6rO(*UjyC7RoD@N4SvFY(f$LA#~%#!3v!$8AwuySX9thyEAn5(nlzeD zsXQ{FQmu>;j+Mof)%I0tVWr;d(Vtz1n#JX?l3K$@`W(M4oYh&r^=L^R(tRqF*yg^$ zYe@n*DbN1^TD{{# z@$J8kbVi2Ys$MGLl=tJUeCS3iOGDNs(k~KN+Za67Gp46!)a;>%l|Oa84!6XbTU%Yo zxWLJ-R^}WruSB}Ii^N)Zx{H^`%qxw*wK3--nz+3z%BveYt(niryJ|j}^{Z3I)~l7N z^f;KRb51y@@)z2bTC|AJyL$Gfk=mcSn_D1gIq%k-GAW0Qnn59|enxjD-RVu;j{MYn zzs_l;xvVZyzf(#n1j-cs?^=pj%C-+$sIrwHjtyUqL2#HqfBDn+f>G>2{500ZIf0Fe zw+5qTqQ(zFwC8V>0mV1cn)`tslvvK?%XMeMsjcX2?k!^y5O(7|IIe!yZ!C{m?))dL zLwMq}KG}m`6=n%H1*CPfqn&oOU=B*7)nfQ}}-1NUOfqPF3;6am|B~(zT4b z7|J@5`JFOqMZpzSdE%#yhkDS$QS3>8dr`B}l~^~@rA!*rMrKrH`Kcq1%-tCSJwdAy zMlg8hs>>TL7Y%QQgItG{D}!X(R?iUrLqMvl((^~*H$uGOz}#Lj;9Q)FnHkA zeY|w9mvQLN)zj=zl~3VN?a$J$%^p{Qil)j#8swZ!6B)GhrB&@g`Eio~(?Ok0B zWUf$W1wj-mW}9&zlEikV#>W-SEg8qNC#A+n6xB4oy~Rb%*K?-PbQ?`m!TN;kGj|Qf z@1$WzJvwC9ooY`aUOZ8pfyWi;pA2>3r|TD*Y{5;otq0j;-@s9w*&h5?8R8uz==!ws z6v}QO4x_IXq;@%;s&Qx6A2OX1*7ICISw;RMygYkd-P(G5^tu-`{WNmnFMU7`O%B7-QpRcucejV^^dek%Px~J|mOHLh|k1*pQN4XiR zegW`|zB}<%hKpu4+r~FYSEdwYkKzHXf7%PiRu;@W8K8W+Zk79%br>=*B;@`F)}d7Q z`A(Tf-8^f?-Xu+O_{VPwTWQdpu)!Y#jyDnNKoyT?Ze)=g``mphF>KQ@Cm~n8bs8Ow zyF!ym_ao)2sT_7A)NNAE-4{4!8T~5-SjOig6{V?aAKDj1fWof>@T~cy3=TN$Qz=|t zWJ*gmb5>NHzz#)MMLbmM+gku+)ka;0TYH6x06l4~c3v{Mz^d$~SqC)Rj7NaKjcv@t z*&CMK?0Bw|!qW>YfiHC#u61P`XRTg}>&t}T|Q~RGAjk|YF^0FSmU;Zf434K2x$wusXU0A%wzp);vCmITS2YE|n#Nc+jH$*rC(^y&;6H|< z@cc9QhV8^j98A&f>=eTap)lOMz|YrgOvi!a4*i<*|9d6{hO-KS=5M$%XSE6hG7UM&7D)RF)M5y`eZ zbl?G7${dR9^61UYs2FQ2+}|ojGD)vz@E3&=%TIkyaA0&#nZM<~P_|}x-lzEwTDsxYj9!28~K{Z`kQ@7++CqJ03YT{OD zkShGOERr&*F4<-|r>gEDy9(i{E@^0b6r;-%xA5MsWR5#b-~pQ8{8@(9C(rk*sPM59 z&ct!GPx3X%YsF^Nr`&z>TDdMw1qEp&Q_5`6|tf9Opgi7PvQ84&}0QQ%O0s zhu3vz_0-BMm2#azL;bCx-X5d{_#g_=n z7Z`fte%kAJPI7aB`PWS6Z3v@JsonTPd^WSABNQj!9qTVr#k*XEIL|+=c3uy-w>m3D zDyW%jd6^+|V)C}O@#&hpp$ENDBc#BQ5y8bj6&wel~Of>AdOfj^T)Z$_M zMA30-ZW*z(41|9Mf30U;U%XZx9z672 z&!qkqYE#{5s{+b)1;<+Ez9U-?wmK_({c9uPuBS9A0zLuh%}3)+LT~NBu1VZ0-G(7L zDKq5dgXG0IBbtiFS-wCx%||7)*6dM+MQU5z8)*q)f!3?GtsKl$jFNb+3X+NK(S)VY zbW(X5e59PV-|(z0-eiICQ|cEI4alQ|P(r(+B=A&bu87?IwI>}yIk zx;3;pR^sR&9M+z#bh>K=&I?mK2d1Ugq_Z~&qbJj)SMkJ=&8@P+enjK-HO((}H)lmS z^G?Xfz0aJj)moxhog^d-DHUcJ1hIu~O82Q*iz=uY#d!4}Gr9CMA=FeK#GM$28v8H>zNaB+(DFM^kc!uk)4FJ_3cTw0_tzir-N&JWVO zw8jM6fx-Pvdh+?YKf@gxPGs9Ap?4u~QoEFjsNFWp=vI#B`wzqNh;ow7`?KF+&QIrE ze}uHd{gY*ueJ5N}KVP7gi)4ooBI`uz;It-eQr7o!~ z8zYQ)QJ!(~<#_z6YD&hG)||}tFAnK(=^AVn(Js`Da0lyK6v*QXfm2{(isfuq*5qEb z1i9VqRyN^Ic&KK_<49#2mJ7+R8U3X-0c-Hy^BfnE7xN@nuwTiF`P25X)kIzqwzAL9 zG^*Qs;4#e&*)pl?Bjm{NyGKLbtSp@46E?kQ?PKH=^vx2AdYt8z9*M_R0YT;%gzF?|eL>I%i1+N5j@5zRsvE=Z?t z^*r>eZo(!}#(UGdbmo~G4ZNJvjFujlsBMhx{u;lK+M6B+l7I9PYmjLKlSoO=HP-k7 zGSTX8c>)&y0MJcwjUZVYj`e*JQR{KL2bq&rcHw=hJ;1Oyr^wv}M^cKn19u%qTC7vA zV^>^mY~rGL$2jJgc^cja{ojhTrs<1>Klt#kxc(x)oAAFpU(!q8SuICwaXS9 z6`4=uYwlkh^YE_cxi(0D@z87E%Iu*ueEwk@)uzvY*>fWv+mG|9*8_^H3vK|O{Qk9Z zKw(}P?eqmUU(GDPdyGg*g?Tx74D-)5qN>wL!S6bJCY_$Y2Fcb;b>^SAGM>h(uVYUQNdT-zKD875-+ET=N#cSG{}*@M(tC^%-ON*p0io@;S%lUN7OD9!+~+wzNegGi2A< z9u?6e()6eyRmR1~O7(L3KGJ;8q4T-6E7-%4Jz3XyH$rV&ShciO$aYYFI{TwR(__(e zi%U3=B1D@)jy=tM@B2J>L~0tLzmam0^!;n;sTT|fLDIe(i*elenBn5|kLG*)F@@#B zy7F4f@*~uctgHU${#9FV=T~pPcvSV{ACRibyN!Lu0$kWyZ^-yO(j2(Di_BQpflg)l zO*ut4u2k1;&o`x!QVtl_gdHlPN41HoP?{yFohfp%%JWwAxy`-W9@)iIK~GY3ZdcSa9h^(wDQr>Dv0+eT{ouH1T8k5hXeOGCLNYo5Jo%qQi?T81^L&;@K) zk6YqQ^kRJ7@q0%ae~Yyi3xjsPdf<8xr}@{E>M^I5Imc|^`&M1#zgJ9Ykb&fZ)7p7MD5 zVU9l&n%axyl%io@-i&4PAU*ojY`>LEeQGy7ax1AElG{=l7v~f_ZwZ5awBdz+HGLENk1dMy< z74R0G46vwShf}ov8Lw+Dmoz0F##OaRv+FV}(hZ+~lT zcWElmV|fzXTgs<~jfUkT@FKovIHKWK+C^@3P=4X?N5@YF$>1-Fnyr$?$z`a2rrNeJ zyIVVyeH%ZWdiU(ptAA>EUgE{uEo&xM*JZg{Ykqa(zq3z?*GutZMBKx98C5-t4r|n-Q`_M=x}v3X===RWTYxf1#dB8?7-j=F zD%h_3QvU!+giR1qah?YpS0~~qHnLnO!ahD>&phN}qMI;HnNhf20Kv^gGkKX(PS*6~ zccMmBl21hQ$Xu=r=IeVb5gc5EwjACRs_?>~+z9WPRSH&TXha1`X$Rb$Ny zA<8__vGi5kDS2lkEH@;Jw2q^ZUz>lmufkK|-xS?XZw}aIV(7qe^!+RJTSe5DP_c?t zY=&I%^shAipne;}?p_Aek9`+q`{FN#Ch-2ZaRjJUm5Aw%^}<{YxyY}+p;c9;sz+vaVre>4ab|Rb zZha~u)iZ+3dvltJmu+v%dD;waMO2zPxz`mGi=6t=euPP1VvBdC<37TskvjIMijh;) z#BS}qDXrd=`qERmEHg}QX=#m`LSi*Q)iWQ$qB!T)sOG5kBX63J3UL%SPfDUuvEknk zNu*7*wqR}b+Ah5IEFzJ&MBIHUWge*PrB_Z#lHNnM zLNShOHbpzVtE1E*ONhj=5JBd!=8TNzt!9X+5~e8*Y1G=I1=u%I?%-#NPPwGbJB{2K zyHhs-?@nrss=16q&~`*7q8nv?K@SsiBag0u5FIq+Zq25|oWbL2(Ii zK5_i2iyxbwwKc8Bmg7A-Rg3E|R81MmH|bk^L{2x@p`J!*WXBk$w-^)#sX5s790OC^ z+`KX?D-c$o29O*a)uE%-JS*bJd`YIZjj7-8jIOCtjxIYkR^60vhw(dSaa;@0s zp1(@VwYqy*mPBo=ry$p1{h+=n)BLGUZlfP7XPyWD09vU%ZiAPZ9ErgL92!3DNpTF8 zvlyIUtu&0Td)DhyosWsgs8s|ET_}0X51-t80xi*yQ6h0oejRBw1Q6twV}A= z05cnQu0GCVBwI8#9`|q_^64*lvE&2>si2_N?t<6C#O6QQo?g zlwCs0!3--G?D&=KsAMjyegg= z)g0TB_L3Z=oxYWn(8;7-2Sc%xtQ$g_Td}2Y*(#9uhy{s%6}5r z`RqhKqhH%Y;Cuf7nZbB}#W#8l^fxxrv~tGT3=T7c(!S&P74fRm$J#Pk-ZG2SU9v{l z`MM0_>t6!u+HCqRr7fkxl#({bKcTI^1o-0j!P?Xpwz9IcZI&6pVeeXC@lwN1(s~|d zd6Lu3sC!C!R9_1|k^QJYXY&|u66hBDqHLMsjAyTKKRWp$WoTHdF4i0oU!~s%ekEz2 z6Eq0Wgq>tvlfeGt2O~a}^Kb1_`#8zq{YHI%M1Z!LG2ZBdAqnL1>Bz49ZV^p;T00&; z4(D@U@Sl#-ann=f{lJQ+E;kynBxGdw9jd&|f-B}~Ei8VLh}++q7Lz%pUZ%MDO%fzt zF-}k#nmbgBLh~#(U}lkWr!?){5llQVr((?rX7dztiks8DXTvVm9ffEkZo#c1vDFuK zsU6HBNYD3&HJYTaQG;6|s$JU;yu1o3McU}fq%^uJt~X+&s8^DE)SI_pS1A#Fz%$0; zNXb`TLkG?jXXaTF$p8pVO_HMj0ljNkW^!)G1jA}rd@q{L8r|_VvgZ3&maRVSAJ$jBPK_Rc2sV0m!KuQe)fNnH*c2G>plV@$X8wT(LaT?b(6e zt2S0(F~w+ryAR77Ir<8!&AE+9G=)H1aZveyVzumu-uER~%Y4}4mPx;M7o|C68*n=M zQ&~5ARYlui7Trfv)}@l;EsBLk)jf?!v6fQZOq9pK$7`&-49mYL6;CJ*y9@BaWBwMhIU;oD6b%!r+~uGQm?bNuVc zeh=vlCygSzljV*T-JE+KYVX9oQsc#65N$2h%)4L99OP#?uXhJcMm)^MBwiVQ?D+kv3xVIkHNkbd)wIdPSJ6@ zgVTfh*M#`HUVV35o!#;oxUWL^$?*aHZ8FwHL`4bm@z4QYD{CB{VR;TuT++o$*`)}Z zVJY*sITkJpEW$7{F;@&eUY=a=Pc=~_GTfj(xctp&_^Kwbv5i3c!#|yQ@x8f^SE`9? z!gCvYdx;6a+D3l^isE$(my-HY!-i_=EuvVT z+ONt&a1Ct2#v5>__=amQO9D(LGEHgfU+C84gUAAuUr=jgQH6rs92}ELe>*-DH#w-Z z$-K#lVS|j)OhVj~)Du*t?j%nyzHBAXk539uII5aG%dVpy!-1NPE=;p%3s5Et+2ELZs`XSK)tRO{qPV>eQfoOP+%R)n zzAc;1wT@LeJ92rg;XmD+@}!+)>@ltu;@mzxjbzEXQf5Wxq7loi8e&IKQ(UnKTt8qQbWUZ=CW>~U$Xg~z^wfa?VnOi z5&&w}olaS!n-fc#m6t=*CRt-*z>y&b&o)A-DmK zSG9XHm6gw$r%kz7ZLEei^GV1D6~7Lf2BoLG@q*HNej>7LZGP3Jx~cj90Q%J?kF8JP z_$7?smf(JMjHei@v#;2>{5zfAn`;+`^cgND!br=7QNiRI^Sh~}xw>gbIXN|Q=Utyz zw<38D9kaz}rs(j!d)Jd*zc!IQOg%zVgczAe=#Hk{#+bui>&t`B)BlWMPE#ui5fyZj% zsV!`4EfR@k7xAa<28H{ecc*r&nFMlx7t*NQHs1AaMkoAhGWtM=lf@Sik*Qp5&QBHc zU+rV6o2_$5woL7g7A^k(eb>{vrRMnx^cC_K?HhP*JZ6YnA~?tc@ue>3MIG*WAj+{l zYDHq*YCY8S$z1oYec9Mqje{My#Yb`IK9tpCpGtN!n&^sF^AQ1Eq-LwR4BQWDw;~O= zJ!%6PRrIKq_dwATe9eqtQ%KKxa0jUCO;*~&BO;!!a}sC(+H+E?R0`pJiKnY=Z09t= z9nXPe+otNoaD0~M{sUY~e9n3AU3Y_7mrd1J9z2#mpsr7abDo+0wS5swt$;^>PhU!y zE>|a$NTh8doWFEqrAcvP8Gc;%sGHDK(i|;CyQigBpceEt+p1e1_VZtG_}XLt01B?) z9=~B<(mMEyLtXl{sK*pV*~|V4hlQAHQkn3Ly8i6}^s7ow zVnC>4U9w{w4l2tpPSxZ0J#k9pQ(KIB()`rYer|cIMUl3D3Vz|R4u*zM%5h98Lgy3< zP~150QA_hS0OFOHH%=)z&T1K?L(2q$Y0DVhpUQ9l8Fs^bxBJ1{zgn?PYWG`mvs6jg2_#c70XwkHT?ieigL{ zn36%cyB>M2zUmfRfV~DYR&9|Myc+4EZORW?@@ubp=hR^5%?mz-$a%-FN}C@wLvPxqW3{WtuCzUv z>}2?>MjjyW?xUxZgET}T>xLYu{J^i8V~nDPBMjX}IUb{@t$kRz>^ZNV{AZzmWO$!b zwo&`PILe*ASNVV+O#YSMmDTvEvyT-WqII&kD?2PntJ5c&5tt z13&(%>Mkuru`)QwVUN()72#$!+NP&!;DZ#qTPGf*AH-t4ImecFE}Xrk7P}pMj9GmT zT1`_g;rrdAFB>eY{{R7XC%147Ifxi1`?VC3Z?n6LypXd009xygv1s#ZM`m_kv(}&_ z(!58f_O{dv>O1X~cMroL*Qqub9M^_?0=!s!VX4~#kF{y(Cg1j>a;Nla_durvS3NzE z+{z8NqsBCn$?4hJ-yV6j-SLpuh9<(fZ7ebVYe0Bx#~LS(!MJA`Jy&~@xNP-X4tPb z&mR~Ea`XCwU0HmbYRWyxtE?~B^Xte&Zo!Ah%ZB`pEAH>uhvF;v!{L0s9lVovr{TBq z;|7;&;c$Z6qTGDSc`=ki^QVl{g zYjEIk<}WHw9ZH|lzHcq4>CRN8w2u3y8+ARqz}_N<#JUBo(l%As4eWWysP)MFyE&rS zxTAT9-LQBgr?q&m?DOKrR=LtAmu^Ry3iRomkIVU2x?S$oESd;YbeQ40@t!e?^d%o< zQN+SZ+MIOkL}|uGFnFeLIL1$0)r~?uv7(F;y>|4^HCiCjFJau%^BhO9Wh!&}arCEP ziL=!E((ODBgCFG7(b~Mg9N>e~q5LTpnP%1?#AhVuxALuveY@0SKHcj&D3TBf<-NG| z$Kh9@Qtgq!>+AZ~auv;T14ano)tgQuVnzVzRBg%fz&wFn6xtlArX}ns#?nrbF$Cwh z$KpRa<&(1|*=}ad^DghgvuEQxb6UH9cYh6_-|0RXk;OV2(Q}D7kFmV#u_cfl;|BMLcHMh75QiTLHr@U_;cdRsHA~~ ztd3eaF~$ib4E`dXNsE;x@RdGCwy_HpNppNi@W~gRDh3^U){M}Y@(97IjUErReV;?m zkyV!!8w`(nu)yc0DmPMdMa=n%vMxnebv1F2_o&)BcQcbHw^~Y_tWvTN`+dz63be&MzxQ;`Z zO={lRiKFvl<$Y_IVaYYGqUzsgaSX?FZNSY$qtzQzsrF=4kxG&X!Km@lxAjddGWoG` zr<%iIw>(kMQe3QU8+|yZEiTbgH7<;Wl&@YzBMOz5(xPq+QdcHRu*MYJQ~v;+H>FaE z$1TMa?v%{akF{7tky^AYu7J#M${s5(am_wA!&L0fh1r)cEqs|hRPqf~+m5`}lrsy6 z#7)WUYOAM~N|DWMts^-`#57WqO>Xrs$jn-?V|?~E3nCm5RQGT(M(@Uu(cNBK#jk1W zcK`x)A26 ze@gbN(T#d*6G!HF7+TZ9Rd_o80QT$hAMiWk#n;1M6hU>on;-^RE!O zU92@$ zlTh^3*&;a~2A6hfv%cm$(@}|#cdR|8wi_=;S8e16{H6_TppEOShfvLt)35B>F9KCp_y?Bh0h#y6;?_7w#GR2t$U>p86E2uVTC)ZlB8_T zX)afEA7}@sudOlM_NdrK*kO<Smr?efK1v z#MOHko)#?p)b-SR>|=cPeGfV5R-;y$7GiKcDr@LfpCDw^av!tBu#y<_ilOu>$L6yU z)7Gcmx-)}@=}Qu`mB`L|d(vG;b^Bgr!69@ zd53pB>jPZz46|Cn8lT;ff>yalU8;oDn_wonTu6#hoOhMj2M%c1hPiV}3&TgZpw zCyATJUNVN#1i*`G1s=cy{HxHkd+T2W_)Q~={y!Zu-H%R{hJR)VsZ89 z{HsgE+SHOv?VJO^tSL+0bs5<@T(sj!bU9sjQhifXmT3tmc7IxGw&>T=phXuGHgFGG zdlM3E#c|Yp^3?CA1x_j`xn*tUTp=BsH7AHJCDbpXhdEJ!P1B@k)SiF}r)1A2w5-lp zXEfisk|G+(woBqd_HoA#L5x-u3<{Cnx*ruXTwN$U8o;-=KWtU)T=gB~bkkOez2Un9 zCBVSRs@@`%p_$@tnXa$HR(@M=QNR_(_^MwsQgAsLq3HoFWI?6ESzW=&0;Tc{xMS;5 z=`o1y9gp!*xGq5JM??#D#Qxg~Sbekp2y@glU3IB=tnz*m^Y&Gt~;TDQI=>qh$K zJA7cM1M&b@D`zuDF^P^%YgTE@#+5!;XmlD)puS`*IqGXqSb@B=8R?8uydu$!?BkBL zZ&19qlHtQP06w+Xep+@oTwk;~NLbp)6?mV|Vr$F}d95gM)dw z)%dKtn{#iY}+sm3V zgROJ7QL^0}a443RXv$vlX!Ly_?E00986OU-$4^S)^@eA-Wh<3d;NrD337p!WEwh1D zwM8unIOnPLuV!*?jn4|5HSKL;JqGYca#e@Ocr@K=-*kpVZh}2Qd*fG zY+GAbL(4YXPDwnUrbSJAbM})Z%-`x2 zLdKs%jQ%`VrhE(VJer1~{l9w-6Q#Pi`=H?DejwHpm6^0-%N}bUt?;kGYvDf*TSUV* z4m`R>nUQQ_{yxKO=!v!Q|vrk@OVbz0NUGFBs2CQIAu8qP{x!rfxl{%yXKB zv$!7Aq~AfiO%GULFg%7IsIFC;a}kdDt*;NvV$wAb3ByN^ z)K(g|^Q!2IMTO{3TAf#Fucbf;*;DS_8e*C$5X|3|N5(zqk+Rr1rguD29;Ua3L2Yi# zb@|18f#ZvVAHvI^ct2;yAMTM~BzPtRb>eFXz{zJH&c3Pmr8%?sXL^S@5f%Lnd$Ce3(O!eze``GPE$3kl+Bt}$mM+?V#aRPuTSYaQ^dFHQMz|$&VXK}|h zO?w)-=NNVr;}xWQ%a55~P_#C;vc^C=PAQA>tx0hyotfL0W1Q4XO7TaSO5FrG+s#Jj z=Juzt8)>->OU!||7&#RgUA?%cvwk9#S3LFhqo#mECjz5kyB&p2${Re?dnyHD5ryNS z%{*hZ8+!52wK*5lr4|@ucjAU_DBx#2ieol~BHy2Svqb$q^ z=0$ftDZ3ULbQ*HDJhl114_fBDD+(>sUCGMCGCsJ-sI|>Wudbw&obEk6D`@D8kGh$j z?YW8SeW{E>s5Ftj=EgHjxRF;iMo+mE((TQA-@u;+n;ki|N!RzYaJl~P1RC*=1n4i~ zj}uzj07`BQ{l)=&d_ns1b>Zu)#1G%wT)8R)fXm41E;C4ySxYC*t|dC%S%|-8&OMr zNExr5;>=Qp9bx0Vzaj9x6PmQK5?dWa0Am=bS}@$xA{Av+8vLC{OCO}U6fAXaBC*=6CKIpgUx=4!kCLHlpFItD~RaxLKTwo7@6r(tb2z{Q)BDJSWkNU z=Ff!XE3|(-0yD)<(fq*D1v$rRzGIqH$srXf914m)qNP2mA5&Q9hd|pLS5IRm=v3yp zVOzRPgUbVxTvgVWJ&X*kE?(y3E!w1z^gSx1a(u$AvVxhXAcummSfCcB8;x$-*v$e^t6o1F$E1ZANL^vln^dh|y`p4!Y@b~Xrmy7IA*nGkF z;%&hG2P5+SRrS@9lrDKVdW}z&?8ZZV=0>EpTe$q{RgetiDAV{8u1;V!oDdynTAt$`IZiC&c`w zMSWt7vqqARM2HxBsq6ktyRyIE{SHxQB-7)DsnTPef!kXNJ}3|kIX8^7|ncIKXK@; zcb*C7K}H}C-Z1yz*UcZcUXro+i$K>Af7T(lm9fTGC3(lDYv}I;Nh0Wz$08IdJ7Ax6 z1b;g6pW2&5{@D0wb1+=VXClfQ)0}@=#}6({N-j&>X&*Q(zuPRCP-L>4W9VznJtBFsc=qBI1er5PG#8T+`ora+sFgt-f5NyO3Y^i<$}Od5xm{JEV8iAedU5o{T3?leXC#`9 zcC>~qxjlRF?^o^Z)pNM-AYc*GC;HIYubAalDS)|bbH!VYS$5=dc&9^ZqA);V#x{eF zxvN4SDmGyF@6$frYbi^hlUoy5Fx);;Mt?7Q?DP#|?0PNjjma*J^F+AL(oa9gS1WI8 zBwBd6JZ^o1)Zk>Ep7ml2g=GO)k?YgFV#t(KzC_y!lf_oMhrM6hxj`J%HxZUok(!Qf zgV~sOG2;$6BD(DtQf9M__j0^`Rm@DkDHyE}4#;*%87Cb_^{gwwPBv)hT@OXj{7_Yv zIgS&iO;Gr)@P9@4z2VtyFC$+&Zep20ET=Jb9y+ zvCk;?DYRsCsN`Ca4vDLjQ<(1cyASdpg z4QUB#Th&-&H8XWfsHc-4bmbeGtQ&R@deNNYTi$})Qo8X>`qWqn75(|H=fPU~%Nf(I zn<)G#Kgzf-=T@y}Xk=GIhEtr?q*P^RKFHCl|No<3AYT6mD%a~v|b|8 z#4})AMld<&kMb*<)U5}*t1iKExXGv_P~R}) zwK*%C{-m(n`EAz%ud4|VVzC+d#apwyDe{q#(xN&ODBQCr%1V(`uws$FxmPB`HsEu` zK`U;@990>o$}B1wP7Zmi8YR?PR;1I)2`V_-?g*-@n50%-5cQ||{#z7e-@Bu9G?tB6 z)-t|~){gzAnps19>~d?T((eYLW?(%!epSZX{J0@-O>1fQPp8hZ3>eQ1Tf=>JGn9LD zHMM1UEn$`~lIqy-!=nM}ezoX74!lKa;|(r<4eKRLH%t4sZm7TcLOQLvB{+I627rS8fjx^?IDI;b)zW!K_t1J|(j=z9M)A_rN|Rn#SP? zh@8bIRb|P+2k@*bJIO5WBbp~EENmHBcp!`re>(bpIBdQ+cpdC6O0K!5ruZE4&M*K2 z@XdVFtmxMoE~722#APLouvNG`S8aMq9{hG^1{S=kQ*^5@d2W7!e#u`OBJtOU*GJT5 z+p1cPqjBZbU<3H`RljS`fT`n;56i9T(0|0v*>@eQ%P7e|$XCR_4g7U|;6D;t>UL5x zJWdNPa0=(A>TC4};a`vRzl)v`w!DGTQt{$gP6<*+Adm6&uKYDv)sM50`F3fAt&(F_ zGY#;!{Uh<(`r2C?$zYvIOB)qsJw^@)sFjNSE9(#2U*H+=hlme|bjxD4R~*O`a2u&V zi8b zeit}2{9X@9LTe?Hz>US0QIXcP`vw9!2n{cTt>qtGxGEzy%O8ut&W%Qz5GwAJ0<1Q zs@cN8e8_hOZ@_`m)~due(DU0;Rz1Z1(N$TRNl848w6_y^Dv>WB_Y_B-gkbckCsCeW z*#YWkl47KaBpzFH*R3`@Hc6=@NWhhcbMI2#wm=K?r&>TaJ5yK<#Gci%(Gtp~n`YjW zkix^0Qtl5S^s7pvXG|IyRx5?|r46?%z{Y;gx6Ju}yVT~wbUaye?QcA{am!`w`% zpO(7YiPB9GEnzs64E}<-EhgQX=W}v9S5a$YBSp(f27?sg?VF|=yk17H||xk7mCNVwrM5|!zeke<2|s;Nvx$wD5Y4wQBn4G~QU?bf}>lq}%vZtx8Kvks_90dsd#45;gLJj-4ti zh2X^q!$>p!e>&BU+4P?Vxqpz#K2iA^s(%)} z0&Co|IBins-d{;Oo_GHMT2CkaDmfRD*s7PCrdBEIT{nSjMyYs_NHSNGSx4THT)eP4 z1+ZN=MH1%{H$R?hjMQ!wNyd7L<#ktPz6?HX&7A%<)jFy)R8C5CuT{viV;Zjw#VzE<81Olux0ep=b4czC zAh_bZ$;(7{^6PTulICYS#s=KgNB!G5W6o=9L$z6~?&Z!3sK@76SKEw^y+tmA-J0GH z@crM3wTNx3SIwE5J4c}8pU4{RymPFy+Ok-(D#fOuw;M(YB!i#Ur~RBndVZy=-$?4S zLk`%tW2-9yMRWSbnKYWSDoN+c?U!NBO>eXkMDqLBWd0SlWPc<<}7*+rn@9# zt6Zgxpv|;r=9B4AYHM@hy&fwx*d@3MTWJLL>-pBMkEWd`LN_h`xTx8?<*Ra~I&@s}uDs5xGf-qyirJ~ZLn1&=)}waXDaE#_s?#}d zY6MZ#B*L&Y$!anwVxzBG-qmIxk)CUnn=(jw%^{*Q^2mhoj%(r1iPytY@z$*%IRa)} z{TPb-Z&$hd9gNbRJhUdh3)dz$8s?)ba$4d;`LQ&YbEclnl?Dbm;+}g9@lb~5rRS|X znu^^sOf9&2RJiF;wl{xD8ZV&3*cysJI2p}P+mV`yhs=8l#Swnv6+>`&r{fr=D)l3! zDD9f)iFZsHaJ3$J#Z4n_UOLo!ay<KxbfsndD{$!^siw3pr$bR5ywL8!}JyOIA3=O zDIYb8_py|R*8~=<#yW!&u}WFLvsx9D@RaOT{U>;J!>*H+m6DQQ$?|UJ`@b*p4~kv z7|6)QNZg9QAhQ%VG_CZgy*(;Ho}EQz(125idTtM4nsVnfBv9q!tw_z&(xc>@nqB=p zDU4Hr$*APX_Nj|x4)q)JiU5bI=dCf9tw?%f6o=*Z6&(rGh~-C2P`M-8rDYsvijN!| za%z!X0X}kbPAE90D(+%=6)LaG)}(?jEP_v3X6=He89C2NjhB8v7!@I@U8LR6VALmf z7~s^*q&K0a?k(Gz2haqa2YQ(SW(qkZ;+n94Gt}0{hirb)aPzptP>h`P?kbSiV*SKp zOVd&Se|Y09isq(}w1j7h($%hw#E#j<$^o zdAwKR3wv~2#I3p8umI;2mG5L@DJZ7jL)pFpcs*=%*3{;U_w$^gBch-FxUXuBO5jxu zA5Di#vx?dU+Z=1Pe+u2x?HcOg5k^^?1MxVoprHjup1L0siK_8cbUlCeb?}Uu*NBqs zmoY)}aya0M`x4#}94fsqFOgf5G%*_XQL_DuOvH=)@G!et;1uKIQ;8- zZw9Dd!U8bHRk;5E>({H5*ZQ6=GwAd@+-)zdVdYN7BxiOpRuO+Xs~FoMQ^q)}Nnfvd zqw@KCt;LdUq}o3kdW_TdRFP|us^XWLTo0xxjVHZP9z%s{X)lHXvlG^@Y3;T_is!1m z+a1_v%TY6+jQql{^^AIAvm;~0X+(c?JCk2MiTF>cqq!>m!H#M>m<7$O(6Hh}Wj}}_ zq*H|=o}+hcR}`NsO&h-5&j-}4%yLMie9FXQ=t!wPj?`KJ$a%$ z!(|ejWDFlprkY3Y{pyshW4_w7XZVBWwVa^&)s|HJ4r}SZhWgOgyb-2c6S_oCExmF$ z=kUdR$*B_1Fg)c*HSE8$uB+y07kYa(e7~3j`5)<7&*Hhmi-w9vtobZ+#}#73_j3qctJECAZxSQh~~xAI7=X71`cIF03S8ry2Z3akD90j`gJp zX=l)!Yn_w z9n|#6&=t9Xqvw&(kbeRy9|qlCUTPPx&o~f45r#coRo};Cqz+0MKj4%y9nFpE_Ej(WgB* zd!Cp3bod>mwea_hZQ;qcW2N3Qj*7&*M4v!+ui`7^{{RZ=M@`kkt8G@`{=8S|AH^>U z+j#H5`o@EC!e2mDB*u0~K4{ToQ_cHlOH#~pr|tCsSGaJx$r&N?1DpK6}w$LzBhB}~h;SOw@e zC}4jgKRR;RvVvm;*|=f{BOO5YrrPLiTl2Rnkh@C^<2f{2%F0R32|tJ6Dm9JQ0h6E7 zl;k$jIsI!cprh2(yt-zyw2RBxfX-i>Hc7$h*bmm547+eoQ}|Uft&n;T(x*?C9=&Nb zpx0x1%Qj`li*y0LY^+%h}XTsCAkBDJBn34`9bD`26BR(dk|mF|3P@vHVlp4LhA z4FqmZTgn(7{8!4F?}l%*E2$v7wvq`D;OQ z?L1eCUTHH~xk(VI9CKeqg~!pwM(}3tntH|D#boPHvhA%2Ezdk+s!bUJy&h}ob4s1M z8S-)OQMY5#tVtQ>pk>84wsXl0VlZkZIW;LzY9{Mj^K>wg6oWMjRfhSO-l1$#^D=r2 zsM@4&%9+CoNr|NQAZ6=OveeQpGf}p2T5}xDTS6*T!t>sWV|S^Pi8O8Qyv6d|=hBiz z#ZXo%M{2tqzGC40>dCvBsdFn0&f0pm?9^wertZPwoJqZzBdcKAx>n`cnE(j)i^8(a0vZ zF+U@y_N>-shC-*MPOMadI5g|U6QE@uH%i%RtY=YmLqiD{BB6Hlro_c^DRI_=K5L;> z{dlR8O}_O8(@q(!5+y$7uAhG;oWaqsf1PxmV(NC~l;w!$*0{Bht!Qa_i(1Su*g^*Vr7~>3I}zU%A?A~B z2RsU}MT-f9xK{h?>sOD=rAe%0%yI`EYeosg;4+?jinzYx@;0Yk+%_a6PeJLwcuBzjp^0BhNN_u+Ljay8((lrU}?xSeuiHfqY z!QjwLUoyKaSnO6wv)OZ6u>bl{1?^1b#I2@YQ6&VsbZeT&drU_kGf@w^Lp5~a%$GtYn z<|b(bv6OCVgprkE2+00bIyYSLOU5uxMMKoZyP590WCU|kB$#eFsV0MCZwKWy1AgxW z@(oX^HtJ8i83&P3%_iA4gT*(?R~<;E$sf+fzc+F9rHhB#ZmQ8TpSM-t|^V z3dRRYeY)?7m~&6e()|&+;B6T-ZxGtrPB9#fmOZdJKcKGHiP-}*|nA}gkUzoAUr+v{fDM1;T$!}gi zI+jI$IDyf4t(MZGg4#Ay^S3NMy()~U_C<2T1Fs=pfts-L7KpNS zsBK{^q?3b6D_uldWh-hnj(VD;@}0OHO=`=ZAyjZ`gmw&MC5CHxc?!X24?B-qmf-C; z6=ALZ&j@EbN$FKs=3coK1F;_9*!8AvJBh~?G;xK?Fs4j5^1KR{E`lqwJ4gv$D^kK0 zpCs@XpK77yv$)4jm9ZVK*zC*oGI9AUU8`qxirqZGH1 zb4RpxQ~^jW$gYb208@`mu@>?3D|J2VQtHm%MY9uexGofS`qu{{$#tka?oQLl^sb3F z6p_rM%-b$Z#9QQ?J9AX6;SL<*=Az=@$tKZKM#3--aBH4YyRov5D%Wxur1C)ocf}-f zDME9DQ`{_f5T1GKSzb%-t+5IQtPEtCM^W0kb+_LNp!D>vKTfzY&Np&1U0~D{ zAZ+7`wIocU+g2;GM`Ih3erk_PxM^+Ym$2Y|RYv%|<-o&yz3MydNLbtX5%3RMo^5Vl zE4HOmCi|w`c+P6$Y6}E=2SdeV+Oc+KC*GpDVtdqcb-7%dE`_)KoHNXn>CGD)vN@SUW3Et}p;!?NI44{DpF zM?4Qo>GdsHTGl&dJO%!htsONcrQV3e*Q9IxL8eoYoYq9rZj=MprD}N+NAvXtp=(7s zbJmoKg3`q+hN87ChGS~(>+&xh zD>gj$C}X>s=Dj5gw+FpRP-5Z6&xR5xA={ zsyc>lPBU3y5@^r2O0f#OZx9DNxUP9h_Ds?-w#DZC^d)i4LblH#*bYT&J-+=mX^?%* zp#C+Prp(JB$jw79b#r3L&9#)VV+F7?S(gx&kn@9GCxz^WsWi&tJ4SZ?6`ikJ`Fg6u z8sK9DesycGTd8-#H_xL@D?~|GLWiCXK?9G*x_=Jo<~ZfMmG-_eo3q!7Xt^R2pK_PnbD_i@w6YN*;y^P)@*9%=ac;f`_ZbuyjdQOj`pAl>J z)~JPS?HDr*a8DqLt>IfpJU`+1rBvN_IKW(F!#YLnxR<1)#WbD+qGk~WqHkLY7!P>o<&iU8wt%pM>pdqF?erLl(sg) zPJb%+TJeKkTpqcVv;P2n8vA?VRmYLwU2;yFE%W)X74YPTbgp{kiTuqwY;@DudXdFF zc_S4Xsq5OMUMR6+jxcl9o3(nHZZ~(uJ-PO(G~A5f`%`2eFTFVN#&c21c7ka&)fmW( z@$Nk-7#=vtr1LU!(w@wAWOS;DF&aD4GYVb1fajWtmuWt$+S>$MQ_UHQ6TCd5T z)un9T@gtOHox}RpYPJ^!lPGRZ;5$^zc^Ekr2_rP`;uS+9o2@meWo(*e;z6lkdmrr5 zzwuZ}C--4-`GH=K`$$dy02FPw^^w1&dH3wnRQQ^4kNIT7^Tl^Rw3dJ27l8rjTek@Gdb-{O46KJm>>8)BnjwtcT(b{NdocI@lM<^O~>a*TOUeg zj}6bYC}7yn6<$d;bmUcUwI5ns)?}Jnx%Q^9=AnjhBK4^<7*zn~`@r-R-WU;#=9Ot# zzbcR-ZP*-f(wl*}ag$P(`Ej0Us@#l@XaN-VBNXNi`!Pn1o^0kvTaONH;fHKHwPZRE9~*a5*P|T}Gf6OVRD@(}^GFkoV^Y6-&Z8 zYF=tl$uP_io$_ar=^rR4ydk*c~Vl z7cw^01(@&$Q(sGb6Yw*5e?}K~DT}H3_XC`MhP=Drw}8)zHNkm06K8677RLnV1b(&k zJ&li+i5e~d7y`XKB@G=}?0oiPh-%cKxUk3gSJD3fv**EA)ufAB)u2CRUz#Y`edE+0 zz>2HzFZO+x#FIm-Yj84HA>5F*L4SXzBEGq?(&N+Z(g-71qCtgK01hkVv#i~;@c4J9 zR(d&BSfl&u>t2OL(UWSVe;@+^K*lP>dOVS?H*@u^1dN6Tttw})74b1j+9T@SNiL;J z8+VH#&T8)5bm>Z8ito923|jydhiZMd?=ed2%Zs&WEjz zTwHHSpJAx^dFx85b4<0ATv|mk@+4Jn%x0zc2D95k!rdlZvwjMmM@r^(h#D)G;{cr2 z^ewf4s=DR3ofnt~D^*SM&(w9-w58^bW}OiI;ve?Ets|*i_B88$Buw%*59eLyht(e$ zY2lfI6T3Wgsqdlt9Pb>Ragnrx*FUXhTirI&7lp@Op0!_aX&AF@KK*;w%|<$0{iQt; zI z010)5^C!0_0!1NynI!)JFVekS4NJwvo^~>uaZ>DfFOIxBH->yks%dkKOJ{KLeN-H& z9>fv()PD{9T|a?5b)jqa>{ayprIq&eF_VW=>{OcdkJ@`gU-(Hh&3YsPJyOkLnQ@F< zKmxXS>QiC-4R{9Q9K;R>L;BZLl9F*Xr8~h){f5)^sCCUA()I`4ZFLIE6L5Z30FThu z#ox6Tf`8#1_=zsFZksIigc3g-36uqK)3^ZsCcSI+L-E7-v*8uBq>^vB(PcJH3CRdX z=*jjVk)LB-56ABVpBa2TzlsRA-rA3}TXB=QPDme64Sby+_DoH-=z0*BGvz)mx0#k8 zs>LKjnA~txfyf~Gf>+5Z4$KORk|_`>hP^UIApR*&sg@f>6AktiU8j;w(GL(;u$WEUqg zTN2{=l0K%^u-de@5dyKYEMqv&%ArSYxB{Vu)5(lJ@0qy)dF!6FVpcb>8MchL&ei@N zPDVbts3DNDkVieM$cxb0+9Zix2a}vAWj~3}VNfi2U`IXu>V3m#BoM^o+oe5XR^)CJ zuG=Yls6xG{QTxCT>r#{*I``>JSkIZjp@LmaO*Cy`&MRe?a*D{b0a#YlYq~tw9Y?4> z=2hfBFgVRgrNS0KJ7%rT7T`P5+ri|>t;rp0H!G_YXnAF3$lwu=$Wx4Y#~C!>+p&Sg zOp)%#YR=sepIfphVb3_pt7wG#RFOl|6=7knnsE+fK(W<}JjWpPsTLn1W6iwMlVhHCt$j^lCu3S(SY_vt zUJfHIPF~WJ<(H9!F?A?QN1^!>iT^ztN_)k(Nl=2=y4R+OH9K z4@vPfESHw3<+$8NO?W@VFWAdR@eFdyr-h1B$QS^BI>w$q9fW+iihR-TzsUBfW2seM z_Kf_sxV2%N3a2C`LCEI5t@w%i9Qc>Ra!U5r#&ljr-hZWdCy2fu>iQIpmzEPkSC5$+ zAD%1du-TmqMv-=YX7Z=ZxuWiHO~W458+!`TxU*>3f;p-(AyZzgWpj#Aae9^8BiPh! zQ%USI?@%zS@@G7TH8Zzbkp7g$?Np4}3pOdOPhcuGJ*vG7q(s#jsUH;|YQ|lRgffzj0ZSzxkTA~xS zqvT8yM@ogNRggA8sOC+-O42eZ>P72IkEJq&Z(7#<&UU+xUbO0Gp{3nbWL#Z`Zre(- zZTF_NHLlo-hphU@7`MmYATC>Z0VY@U||*l=w9 zX_3pd>8{&P9Vx6v?kh4SD>RMmBUU!D1t%!ot5a6f(&ituL^JD(rpr5TUyqeV(IOi1>ojXY%l26Ihdi^SC6saS)t<&ZYQPw5wbs=*TV6fWZ zhCv5|$I~^gz8{YAgdWz{g!%OnYUcf zWzerc^I;pHk-D4=<3Ca>%e8GPO+M;a*kPkMKc8Ce^o>XRQZVtImr?RPPCANriL|xW zEdJPwiPMP}zo+=uvmf6>%^x{ZFAG<1b^d21;a?J5=^BI=HqscbAz;YEgTVw3(!WSQ zXCIBWe-ykZwwH1!)os_ynkGDz7y+@K_%->5bsK5dV0L4WYtnuZ{7Ad-Cy6aJJ6Q-# z%Cj#(S2)T1&2NRR?B&ZN=6HuHSjt}7lK11cpONZ+w-@aGnl7q*Risuf`X4j*Kl`+2ek3$VoX8a?Zduo4Et)!#3`5t1coM2Mz>_;^C8C8C6qMtHuAg@aJ*+$3dWGX&h zdeOKHWM+c9dem?F)N@!aI!Q5%Q+&hPqLAQZ@@h6?fr?z+Lj8+=b1z&R{Z1+k;TRkPj%ezGt%k+F%fs?NTDPOg6ncaUAk1a{ zZ%U{3fL!tN)b_h(&Nw5Gd(~Jv+}H7zxca@&SpGZ4<33sS0OK_kyfXNhTWNN& z2f1d-^vU4lXXp)E@qVc-)HYTHkCkSHR3CB){c8rs>T4T?xVJ4FsmNj1k&2C8q&-Mx zwQFe_2jSGqG|t4Hr#|&=7Px3cFrjkXa5K`cMXLo82_)R# zKN#Yc84sC}$Q;xD&hZkmu2~Kkcg-xAV4(&FdY*2@a`k0f*_!x;2LWm*<2%%2mFrWr zt1O=(=e=lLXtU|Iaa_xQCi}miH7;DC7`LgNcAEH4>68r|?dnvzInV}$BWa_twK>4Sq?@@k*iI&YN` z+anBQR`l(DX&FlPv17*`B#P=)w2SV?$6rn>pZih!C|p)tF-duT9ghCw)`iq!6)T!K zo4lBkQP6B}xwD!{XZf%>6vkzaHRGCuD>ENT%H{4^jzi8*6sAzPML8y+X5b8SP_nRK z)jYtpFF+3BNaC+dOpyGojkT7u9lY^Q^B-y0at|1#&D1Pdvz`3n4@Ksy-bgN;&!t{P z`!1UEILo&l{N}OI`nPJnZ7dIQ(Xn0yHU45UIjJM%sz%zsT9T3@PhRyTa}eEXHsww! zk%POQ1vJ4LYc}-&^HHRKF*)PXqmA%A4M`h(+zPhJwTUE$p*(R^ZVqyzfm%+P1m?4D z6p07crr^$gd`R_xJ;#IBXrnpVGO@Mv2v#k2$Ss zOJZWTWOBl0${)kdD>ri!x1##f_XZT?i+qEca+8+ja@%5SI91_tdsW{L+R1yZT3Z3Q zNcaQrCaOjj9m)?i)qFKo{{V!t%0>W)Nq=v;M>R3rq_k$%yJu~n_+L|q0M2KKeqfVa zm5sU!Q85?>x=$Es_g5YnyT5#dxV?-==td9tR$iZC?We|!GAmaQO4=P?!u>zY`)$EL zBB=vEO2qL31=b{DG62u>uAjqfbiE=~Q?S4IS3RmmUP)N;8@&oTTwCab(ryuCMO55+ zgI(W-te;T4GEKO~gD3C@fn48(>|uLy!9kN473jCS^Q&Q?a#ZTpD|Q+O3Ex+FS9U-g3Yz46#N(Q-e&ZAAN1)F$`1z}UX8bqQP#iVD^8WxP2EII1&t9Et z=}+2v_^*bnt%3XUF+Z5Eo4)N=OPj}G$|zy@QVgDHeKIjrjRaiu9MHg?l;z_m6xMC0 z+KXRekj#F5wAlzb9qHN4Ln92FP-gtd*?&5CQ@5=%l6d;mgP|sbh*#FYxD+rQ=;LYi zp_iw6ribckLf`QvkPq(<ICf0QEo$zcV$TQjjsj3YUTbs9WY> zdsM2!00B)DMj=A2VA_dTjY`rxfgQQ8Rqx_o)?* zGDd6W+3)ov`=Dl`nYLpCig%bAp_}Hx6*`)t!eNFDA&YOlEx6zsnTNJ(L|PedJeIB< zPa?F=pKY#2tr-zrcV2+jVv*2~#+5S*??Z+hj%t*;F>;a3WhI=(Iag~B%kVVi`9*D8 z>lWA1h&4F!-4<@7Qfi(ZlG5B=TQ}ORTb;?tA6llav|-B3etk1aI8jNTN*LB-4Dp_Z zqi%CfG{*eRSZG5wLW~NjwD+s8_i%btJ37`U;GpI;Rcbc>(_oF)ux56V;)tV zw4HYl2yA1q2D&K0)RmGjtx-~glV*2@{680fbQ^6JD1uDCyqU4dW&sl6M?jDtuO^xX9si|hz%6F|>HTj6FSX&bw)vsdz05GpF5g&20 z-NR4bNt!W|Gf(%Z*B<7ayft{Sm9%HBH*VnSdK&TH8R_Q2`sO{jT;+a;CcT-L9FDcX z{7}=p%Q)`Paz0i)x)L+`*G3AXr(c(&Iq?xvrhMmo0JxkH$YcD^6_F-9%<>0H+|?V) zyqFL&PHQS?#E4t~2mb)BzLw@{_C{sL-fv2R#D%;7^k7Hmar)JZg~-U_v*d3sK*Ojx zr2L7g9%R!#zW8sbe{6UkOSva=d3#&xynjmQ7-6$sZTmgypKI`a#j_lkXKXKU4>jp+ z`c`fG$IdwN#>^M5sm)0ui6dp}kx^6QZM|vvlOEj;cJ9>1=QRW|{`o)NAI`cRO3+Ig zb*z}-+adx#i~84PIrAgUtxJ+;z%E2VN zEO!Pf0Kw!D$MXJF4u6S~I5JQ-E6_f-{bUSH~Vx_%Fw|+I-9+TYH8;IRFAnDb76z?O$75 z$!gKb8B2$amp?c?^T_`IK9%zC$ITJ!yj2#au{uFH^1pbvJCtxq$5IIVs_<>bOsdrR zqSG|KCFw2V&j4PO8?G(gF5pl(%7#`0j_Sv!ps$v1t;}+gS7)l-PX?v;DXQ6(@zYr6` zpA@0d?_~1ypAbj(2{#-CpO%6D0PnC@{s&)rNUJn$xL|{Vy>LN15%m@ME2PgYo#IOr zjTF&3yizVfMpgw#KA?g5SLx5gFCItZuLkHoAyNzKR++g`{5Me@v!_nE!+jW6%x1JD zbyAt%N%HE?j=nH>H24?d7m4&#Q{+c5zO>+v+{^@u2OYOE{{X;ihtV}FjU&Vsca~1k z-CE4I7Vq3Loa6E5^ELHX?PK9lbz|Y*7D9ogvv$%inOC1CLS%v4*gp0D0D%hmHsM~+ zRKfevwgKtugI$<w!FG0$V z=dbvFmE~KJ@|()(-E3#7hQ@wg!H?roEGLdY6iB6H+6Nsoj-7w{)ii0lEBA-DUiA{t zwYA1=JAmj99V$hO3~Jih?~y>^dLLh|D{E5GY;0ju1>f2mILF1mn|A%#T-6xk3UP|J56kq$a!uT)u=V`v zr@83Rr%|=a&y&62ZoZVl-D$RSih9#CMrnAYDH}DX)<{Sie^k*+iCu1n7Hpy=Zb2{ zv9dZ^VXn_PtKfMBp#JfmGwhjM^~rbCZTF!ko@??V&7Y}tc;{_ z^s3f(Eeyed!LF%oQ(m#$hxf`lde+;kj!T(patzqdYDI2o*KobO%^QLlO+%AVakEAp zuDl!?cI~_#MN_t$YgDsJHv`mGm(Xan9EWfns^l>JsaXR6>&W-4xZiVeRw0#=K)~Ss zRFfZ?B!=X~%z*SYw{J4uLyZ3Sy>r(M^A=7w9G|UCWq8RTAmEDDGPc5!=G7ZmDoE&P z2j;~+WLxON$Ha@vFZHJ5k9z6zGG1l#;vGEo@8vJB=MYoD*W`(^;VrkWz2KNa;y#x zN494%M zQ}ffr8V%ov^-GHjv}kT&ZLF*aJRDUR=3(Bx=>4+4XXy1C7V&P2Z~OEgzevYWJN{(; zRq(uuRfxt9LtibJVICTzw$Eer%%3!;n&D$w8};=c=5AabwGrl(6rAUZf0S38*M`q& zkiH*0;M6V0Y?_u-Jd?nt>^uR_;YX0{MhV@`N~h)Gm?Lg`RH+$Jj-sBRIy{Et+eoaL(-VYq{8>>)~YyG&tX>PT;OBgtNA5! zox`if&1oGlphC?#~GCqeD z=Mm}eb*L|r8b@ZrqVxC)`e}R_b$xZ=&jv*r3s_)lyXgY}c8#yd_5{}@dX7HoIw@1< zXUw{`qa#Z^jsTwFxdX60$F~)qYb2cR`@Jiu_>k839yit@vPBlQvbDSzzy(#fIjY_g z(SNirNuTAmhbBzj`8bqzuF z2j9-Yz{x!a9V@=^mYDH)P7OiIrM<+h6|{W_+5yS>gI<3eK251c93FR3A9>xED@Ag| zfHDd(j(O2uG-s)V~rKLV_TyRQY}6ej^0<1eT7m~Nga-G0j{rJ zhT7LjiBW)(PCItSYmrs**BQyJJdmWUi+1O1fM<@hmrLi%>IXGVuQn<5=}2y$uVYo@ zj4g6_KXS!~By&`CJw)DMjtY!%R%E(Z;v=DI%(jF{a;$kw^HqH;PnoNtN3l1s<*B-k zT6O^Dw4|EeJ8+SV5m3|1|ckut;F(`3g= zmw)cTsWZVvKage_F)~Ffmsz zF1+U;ebKwzg_zT$V#htH+zFYA(o zeDJ)=Tyf>|P{Va1$+|_{ed*DcXb2}1t1`4?V<)9;exM^xWMXs0EcXDaAmXL9vkZlS z!0S}*u^gNX;-Xtzk0d%b5^hhzpB=b~^4)4E09W16o@z^(zHUzxCQ>iSt2DNYZhq*h zTR@L$993Q$3_8__nF1=Zvvti$BW5=vijwWrhk5hdbrsflEq=@PtB`Q} zRafyO8s%Y($jWhpUA~QE^BX&84ot2A{79`S#_WA8dLP6HU~h%K9*!^ruGW9ej!)-a zb#HkmlMz+CWcE%Nx%TRg@Rm)8+?zK1oUBhtxVyBy-M@8Vh1~s^} zSr-BEUgM$JqAL|#0e~^b7_T|-#f!GG6s|n6#(tz%u4#7LAyvmUjOEc2CEV20nqyRJ=YUq}}NzV>{r}kqYIw2_a(9EP1=5fqS}xOqnb^)BA2hVA9RY-ZHE!tX$u}l zYF6z@x90Vv#>??2T@~2%GGp|tw)Gt=US-*$AjWq#e@e(bDKgbha;rl~ECh(lB z2i;{qkTvtyz`KEO@fS_Wz$|}}ucf{^!RB~2@Z%v@Kae%_7(aUnGN^3SvY)_!WcEU|EaLV0ckcA`Ib6Gc5 zcNQ`fxQU}axH$a!Q{}M^EfF^~+*0SKdN6tPsU?jgaP+41;-tamnn3A{&?Z8_^Miv? zu;@wSH9HQJ#!|qHVxY_xPm~UnNg-7uJkxfSJawiOJf5bQ5l6Y0_BCs9+B3y6D2m~+ z%}ca}B=SWF5e$w?D&xIajANkYpoH#}k~3D3cQHK$G*S?$X30EO{+gps(&f2f^U3lj z(2l>QWkVMr<2=>d$-L!6QMD9cEmC7M-V(%-)bmiayKs6|glp?oV6_)b<@)hSUArw= zHz{cvOuB{YVHu)RmSM=RMbmZ7Pr}!h_gYQd)-%G}mtzn(^%<+471C|&?N&5gw^lt* zHMy>MKK2^~yL&fVSNpQ<<2cQIh7SzzRMlBOd7n3l#d~?WR=iQ`{t5lACDbeqmE#*U zzXd=`f`G6fan3mB9qRb;1UmiGO%~AsI6=ow)$@EdYvusUk=DCU59-osy9QflVcNZV z9?eUd+Oy{I^c`w^kb87Jdh12=zId<=bUp>~=DG0qP>y>$i54|EX!3TS!!^zLZ^YL3 zP=%HDzaL8KTFxuTLr3#>;=1t|dRUr#vsX;`+E}bcUs))-GwjcV{{SDfpB>so1;mSO zsAC2>bW7z#`DdGs?txCRZ_5_PGq7^>fuMJV}?r9Y)HzH0h|<>Z8q?+U+d zox-T6QCBVg@cPtD){f?kN_@)Kv*D{IGC1|ED>(v?4RF<5(6T*BPnJm3UV@|@jYdA` zBau$@uLF_m-1je{CtsO;>zwg@x7xfte-<))wqQH)l0TJn2-Q~l0W=e#84irUm^BpJ zg;>Z{7d1AIk~~2fHwz{(9do#K9pZ0oJP2vdIWGdVUrDW%z}WmKYg52Os@vaeWOWt*bqw z_G{I=omW-UnB&ZiW>KF*gOAKtzp~>eueE%c@QYBBMEH%Q7RpC)x)Zo#?*qr?1$}dm z-GVw|iF9o6szo`;BBA5?QTWrOUz^g9)m-!WZ0ty_^5Fd{jMlqmLZkSH^Q(*4)0IQ8 z&#(2T8FI1CJn3Bg!0_y>%m^EgPPoU^S4SL@GY|r=UQa)*a=JqzTp3XOt@>n~f-&n| zD#)9Ecv~H|@H^Kd*JJd0YeZex%V{-$S|>6{1-QZK~fX#zPV4dshv3-5pflymqoB z#F9qBRb|`%04-uAx^_6PJNU)mlj1K5>S&lVtYYE@$0k(CAaUGh^A+e8>axaj43{H0 zEuIgsJ;&oy+*(L&^0ty7E1#K556czD892M6v&o+y{2kU_8>yjwB4*m^e}tTXYoPdt z;jyh~_jZ8+xr7&tn8+t$knn6ZpzozxYVJ9@3VT zQ~PqkN#SIS1h_yy+Kj7zz)gJr0P#ygO$WqRK3eUzxc>l1i_;C%bnJ2}Ux5BTm*MBd zpAL9|If~ZlR^d+}pm0(}BhaHC$X0bCrA?!%Hk$WOzdUWBLE`TT>e@8C!KgsdhHv2{ zW;g!;fW8mlYv7Gm)_Zmfc8wL>4$xdi!wj-U#aJK2AJV@?=F_3_9b-Oh7|b#bj~N83 z1CE%-<@tP9`$A~n*#7_(HMQC0#eA{fMyjU=dI0CA_muv1^Vm5!)s%0eJ0lhB?bRI5 zhWtTwpnqp;R)=KzE%bBl=PewB240;G2tV&v-~JZ5g6_x8v`}sDV@rq`x&?LJ`h)sc z=XQdrBTr=@W)~LnuGIwn)!Yf=v0D3U_HNaVv+$R~cPw)xR&8qESly6*fLBf?7LPh5 zO8)8S7Z&WUSYzeu>DRaU?@}$XU8iXb!;E@oyVCD%?YVlZ6_rbN=Bz;(X2n`t zKa^l#`qZ#n>~WEr$@!JcEw!)j0qQG7BML?b<4F$H=rL9o<~3F`zN6z)kyl}a9C1;@ z9{|2#1jEvOl7{KC{ zN~$R5a_mu#&z#kik8f(59O9Gi_2Rs0__Y+^{1PC*h zIPG5){C)kbCDqn_FT?K8+n<%^Q_FVX{x#-b8vg)jZCm0^^Mi2ESSk4-Mj(Dakgp8X zuU=1>wn?v3D&fv)tX4l+bVt?FrAr4J?=Q$t5o@wtO(fDux!B~h9#1vJ-fB%F6PnP} zWGts9xyz>H;O4(ckGm9?L&?NqB{^M*CF5?+X^VP#6UA4Pp0!<@8L4-BoC>9#+cjgn z0|PjwYEmrL`R+NarjVXdXsMTfHW8-Sn?<=2iBB~^roKG(4tQ;eJOm*brhVhYBk~w!}PIFfg-Srn7(qK|PbLmOD z@iZ_So!lOj&$vgWOHE<9K&BUB^QU=Xr#P=SrgU>YYFnt9>yKXzuZr%i~FYJdUIOIeWXmHV1E}JQ;XzNPpG7C z%CpqOm0Yhwijq0^4tmvG(yJBbpD>Z4uem^Dfzvd@nA_0QF;AQ+=~K!BC?MvyTIyU& z7Pswg!N&%=7-o+8-_DDIIApF#*kE&tv8P`(q=D4u)OJ4Aah;uslI(P-!J8fHO2mdG zd)8Dx=@AQ<%9LZuj;r9&<8fJxww#=h71h2T9a;~#+TG~0zoX`;*% zaCVY7Ami&^t5mG5QLHq}|JKDDn?dZOZxW?@-Am);wmJxNSH&H6G>|1CdOUNtDUA4YcErN_=t% zS8RtQ)NLoqJx3K3o1H<%YQv$m;Vn|zP4NZ1*O9ESM*EphL+w@dtEhENN?9OXp_r9l zZ15{3A(PA*b@m9jqG@_upV^G!;XXx*A?knF0VY^ z4e`Ik6uM{v$^DyexSm!>*m3^=e2Rj`J5PmQ2UAa#0o8m(@(=IrC0Jm4=Cb}T_<|1t zd@0a;6KJgz^Tqb7_}OrL#byIO_#^YL3RNXiwUO&nq@homO!?l@IrU58qcTq;W7LvP zE7mkWhZmZby{33J)^Y^+Jt&utTjZBbavw#SY$IcK*zWy zz4OC*CC|eD0EIf|#9c;4i(Byq>w6WDlEybccaMCpYV|8imNqzPMaiB+@t;wJyiB@H zq=D@;)fT|1%Cn#<&GjT#3vnPwRWXy&tiuax9&N+9X&Oe6nTaH`5=s2cE!+sGrOr0@ z^{b;ERFLMc?-hrasCZ(@f`PWzz{54%9^_laLQyDf1{-D~yVATKSAHYQUN~ z4&BG4F|f!@GG%!3gN$)VxiOA#YGnHqCp&oJr;SS}H6G2Y&pg$;af}X?hzwG5gVLPL zyG>0rV{QS#sG1Ly(*{;h8HhhhRfwhg_n(X)M^NCK}*Z9%{+m?6>J#`Hs&K7Q^YyLFF59y-hg7P?Q1K4GaI)I(i$ae zM|fUjT*jjffyX0?#c2#fjzvbMVr0SkQEwUZ4ti3MtVpMJGH@uJe9ru0p3#N+Q4)zb6wo1v zp#T(%AIwSTwOW$b<<4paK_63^k=UCd7*(dskpd0{QDz*PvlN&?&P7rkv>;x7Q_1a3 zHsndWy;+Vu*>0HTmK%1SZaPyjAZGc-di17EF>Ronim`bLthnfErpz}7G@jN3iv~T) znEKPC1r#A4dZn>LB#NYQn$U|+eM?q?+5|50NU^9Moc>f_sat4{TTk$9)YA-nhz8**JF6`?37h@#4#mtO2-H*uEs%iG& zK;p2poi#0H41f%%&*jZ^7Kl_1Yn_tK2owM~tIEG1;;F;ND(q@XicHOts^cG>PK$yu z*QG=UPg0dV{=9`A?-W&fW(!k+)i**w)lOT^bY9oPL6^-K%R@%IVh1PY0jSRxF*d(zEU-*o^ee zI4{YXZ(s1K0Qp501jY`B>qz}Lr!tdG#UMIwh4(_o#`;{xf#wDL@IS46dGVQk)8MT{ zsL1k|iulLEvKV|rr#Rym5tIJ_eG2<);uWjkd_9@hq?Xyw*A?$&?(}C9=JOTHTAYuD zpFU&%0K7-*M)JK47eL2xD(Cpf{Y^J_%U?YAJ>mPZxjkuH?&H6uMej{{2+7SLxaMQp zl0Uo&HC>#s9MhGLC#a=y+}Di!rlXQh2nL`_)!G*v(#i8+=LV@7#(l{=&8jogr6%QN zIHr-geriS_0nZeP=Dy>Vw`QhZ#C50!7je#Nb;i+yioZa(-5~%+XxJ z$`_=VJ5RVZLvfBk%5cM+jtR?VE$UmLEcDw3dw5-Jhw?xGKPQrjgGb zYo^saHj+Rubg7o+*|}&&cgO3K{vMUj5%r|v;$bA?xen2uM>N-5XV6spO);0$WEzru z$aX7t=9#wyCOzugL|H}v#Wj>FgVgk*-G%5tyi|7pq5@A|YQu#Kfy;HOvp(hkoch$U zl3FI!85k{BxQ%cZB-M3Y>Z3R!u0o$MIp9?;!zEB7QI4jOsmyWjQJFHswE`wZK9#ql z*`6GZde&8(ess#9XOUgije^5&xg6uty_~j!onCotjtpg9NLd|!!pJPHJY}Q7sWOWf zxIs4W?(P{MmTUBv#9BXr8^NhzZ)<8a-zOch_eVL;UIl(!+OdXJU`mxa3^+B~NAVY3 zeLPsUqcOI|F};cUb+2n5hpCE`IVEI|o~JcMIW?;$@!yAZ`#%wC38lX4MUeStjAO5_ zt#g*QM%9A2&uY_ahGZW$;p^0zt8rv56p_PMqfQPfYI#zclX~uGTI!`RV|*I!ycgrC zH2b7U&zToO4S5flC6wD9w(M^=V1vzc#;Vx!@mM(4kG;9|m5+zC{{S3Xq}p_WXCM!5BQPckBb^V_GYCN zaNO;{V}N>f$*(T8XGh{!i~J8W4~Km25_Xc?voL-Te$dyR51Jc0`5NNGrq(&yJ*(^g z01EiqO7V7|9o3c0ZWw27;gRi(*TG*9J{_)ss>-$!d9Za-4t;peYcIn7G}n9^a1E`* zih%N&IR16=d5%F#8ojm|*`H;X=kvn;=M$2}#aLjI4X3?v&jlr_X7R;FPSRF7QoI_cb7myZ9MpEY<*muUm2>VutAA*XhC?a* zMR6rkgp`)&QgNuP_AqV~!;st>hB-H6Reup`u|;&KtU2SYMQc9pdspeXb$4G68BcTJ zGYmSVRj92E1kUQYZrufE$0y7)#axNHV!atH4>BI?u4FX^)TwDsp@Y}5h{91V{9%t zq-D-WK~*8X2LaAIXSG~X7-SreYVzt(oOeB1bs=l3sl~SlW%E>Hvt;M> z{VUI8jORb+y?qVw!^3THrNyeknP|UtG4HgTt9}PRop=SpZO`RiohIBB%pkd6BIsgX zDf5W-q>{;_hj-n6p|R7iwP@Sgn~TlIl}=CesdY&9#uN+#`1{voIDMu?N}l&BA=B@I z-Dz5eGWNGfT(2F#C#SuAi(xRH(ld}w-|1fv!Eo090Bg4+mc)zc$2Il`!);Y{p9txf zAnq*)R_C}FKgyj?hUc47HmP%ZWx=SbdAZ4`O=ZyJoNXaT=TDE9UtIqHT4Mb@>GA&n ztWU4?qzj?>gQ#gu;r{>-#Q~N%ZLgtQt8*A50g1|=a7XGZRLAm#Z0Y|Fe`t^hU0oOkSwDoS83#X1S0tY*N8Zu9L~uwq1ptBi zcdoC&Y^&l()yPpLyvxe&Ckja89-^~!y$j4B%YnCyo=1Ob-?g}hL%7p!t?ie1xbhxW zJmN(w!N(k$=BZIhSnP_`9h@jxg8365+mj@`1IH(B4mx+GTZ>rLqisfUjAP4>E%eUM z=T_mjyP08;zRv_(b0L{`H+}&$$eK$Tiz7!l>9!05gPam}^dDN{wa&!Pp8o)8y(R4R zFAVs$z(^;tpX~EZA`o^ES};c5hYmj)`QO8SHo3FauC1MzTFoJKT=1+(#y=0~Uv&IX z@J;88yaBE0Qrp4y*`o98)-#q8#!H1fbzza$oQnMGxsFSF#}1}9jj+l_2q2t;^fl_y ze&xEHvs>tTx5Nb=B=DWR$X(Y~xjVbE9;2she>(DAH~k*y2IHJ@#d=qTwKJ(`^4rRC z@s1b$laPN8@fF2t`fv7i`+&GW*-xfV9XnT4bw?~??3;@}L4RjI8Xp{dEz;I^-FKuH z(gFqe+jMP>l`|Tex*!;XGTTHt)dTeR;3BJ^=V_{3-CG!X#pbx z@~f8i;K|6(T13QyAYgROTeeOyj%x?xT&_#xuHGsgxMPa26w`c@yV`*-F|n!5TZKAQ zN`Q2$FroC#X%%6z%wW~Xeo>zFUNs~RIjd1Z#11P*Rxs7G87_s0-mXFma%u=I{YGls zYqzHr=GM%q)6p}UqFo8oflvF?!GTdraLH+3q?&{_{FAuWRriP*K+71w>0ePAeNQTNS5`Y%xhw>_#y=~0?FPJ6M9`qXXKq+$<2O{0`Veza}v zPHqPk9^;zNmr@%Qly>P!^rR;=(rb8_H>l=g%{MfR-KgV=-okR|J3gk9cQn>Lx>37| zT%-=krQ6%BN0Y@rbxfmT?mjl^jnb28Q-k`{WS*m~P8dvsKX_JdB_=S6iPWnW2M4W6 zJq;Ubb}OLdVJh*#rnWyCk0v%Oze-kp*}%cAH!^Y;cg;rc#-r;_2lA*SWZA~y#X%g0 zc6wFg7-+|Ot2Msgm~^9+tx01hVsZJ>FU^dc3PbY@Q&o!aYRMj}hN%zBiif`(RfyOg z8m&bLjhOxv)lx^LURzal+y_dITVk0br7l)JTa~wVCY4XjJJ4f4T6WOAI?%M#oeNg? z4FrLgg1sxy^qcs6L8O>w!Iefm`f*-rr)UPP>H3tqeCs4^SJZZ`<0Q0WdX}|~Hcd9+ zl&{I24l0j3LFy~I-4BSg(%=Hv!+Td7saeUV%wu7J+Ov|j#56;U(@K6+#gOKu+<4C- zq=6MkJawt!kgo@!;L{m+1aV384Azl-iuD~Q-UFznESp%0GFzuwMgZXVs|0N5da1RT zqo3V32fcME8IBM$nB?VKt$Fgc#>nEje-G;3d~0VrWPi&xJ-w^CjJh+PtS@$r=w#Z! zHy_rmEZbWk;8g}z5)@&H7MILBfIJHCN1Hg@*VL`oSFj+QOoJ+W@!Gja)NL_NFmr%= zgIyi9!Bzxx6;H&PaA?KcBjj(rkLUW;JEiR+bH#tlrdGG#3oZ^Bc~V; z(k=Gsw`VdcE&{RSll3OK^DG*vA8SnF;QZ=z-_$WZHuda$y%fisny{zk>&0h=`Ms*d zY)?)r<9wO>B6n9TD{ukgoN&$RDmC@TG{41CP`T}l3Vz{HGi>eeM)2J^q)(XHoWC8Z zzjOhNidjBhRA!ZO%YwM~pph8^HgSRJO#7_Z>rKIFFa|)RCu?#kfTey=TZ)kZWhy#R z<%iqpQ!I&Vl^;DamtyCI^ns~sP(n}3o=0w#vEvJSOMO}GV})Zd{JH0zhc!dPGBv)a zmk}MT25?WcH^f?z)HO$vKs?rLlDMOr$UMrCK+7-#fn6nqyq8xNi3~n_#(&k0r=0Ov zeqx|Qo^f3#!=D&M;Qs&^S!y?NdGW;I#BInpJ?kossQafyJ0`AsKA)#ud`Q=z@eZKB zXYluj?UiNRakfQFC?1D$j@9A+01!M;bK@TtYC4_7-f!9@COqc>a5w|gitYSK*IrGwt2<9~9A~Z^vV-)=uQarUCc$ONR{3j>4^73nHL<-)j!{rYUGT@larm3W z8a9mKMZA}BnF;>sa9E#UGhVyrS`P zd?BZ5R&tcoBn^ICDo#e!Wf!cxgX^~2|YRw)~H8rlQ77?J6QuIAKsIjzj>&L72^ZJ&lTh%|)?brl|E)2Rmx4nPO!YnM${ zdmAQ#-M{1KiG9@IzG7sNx#OOP@T%6~8e$maFCT#ES}iv+mD?+7 zU+V}9hB&I*8Z08Zl4W61J zXt8kou|0+{Ski2ffE-mLA(6%zv(#0%Ay`kCdVACjg&|g*G>6OD4_;_&L{}20oX4^D zs1=o@$j)ivJ=i9eICnWCpsd>%01SY3srLn8+|+G_&$t z80$?*4?$Q+#IURvfGH$VfO}FaZRGW%%-n<%P9+g4s*{77a-Ot{7*-@yiylR6m5NA~ zFk2Ni(YGLE)H}9-F-o!(kCV+&rsa!RR%ZEzJJszj++J!)48!*s{4vc?Hw$kb)rn$i-EWag24KNX;*`Jbc+b1tc;xUZ?P>*X57Wpl0Kaf|e-^j1{;BrIO!5 zSlPDVbv3DP85YE-v9AJVQd>d4jJ#&3$XDST1lOS{QVL(Iijrx`dD`-qIu z!itz?8274rXYa3uMn>X)TJJnH;aRn9ZYlALWNhM&S1rwshv9~SHi=<9#PMg$7z)GO z@;?Jw7aBZzmC=+Ei62lq*F&yqA7`-(8mc5|j<`KB{VSNayJgd|n~e7jfx*B8XEfy0 zbS5jB?9I5h{?yf@v4HN3eeXeDv*BGObo)4=w&CNoW80sY3f8xN-A_u)$iE5XXNu5;zECQJLv}k=*xPP6 z;*&FFmFwwNV~^z=)p+o6$2E0+@3trq#`LN;hp!cRm<9c7GVV{9@x>+x&A4J%)j1AU ztW4XpgNmsm2IIXJERJuQGoH1HsANXKR;AR1QynW8P@DHn&Q2&aiq#y=^eb?rI_?<8 zE9Q@iz73PZ`s-am7Hp^Ifx@5uxhB4w^(=9k<~&=X!K_%x45}D)UOg*YE~jrNGP2zH zWH2gm!KmBbzM$~O!XFBJLeu{Mv-X`gT7_}uZ#!SGIQ$K8{{RrbW*-vxF&=o+?bf4^ z@vc9ucYRW$f}Ax+h5e&O6?7Ytqe)V2l^&KkZ<*b(TJaQpNQ-Z88c&f+H*Cnl^ zJw9b30=TA(^HVa0Iip}Ian_K?hI8#nBjvc_m4WCfHl91u4>UXPV>EQl6o)4?#nzNBdvYu@UHXwbK#|lBYxOgKgmF^TP=FdEcxu&J3>pj@W!tnk*i)tMheJ9RAvj0 zTHpAIYyF$!ZDs;7vUVSqE1b^mYr~SXnmw4lXr?PaT4&zQXyvdNXG*Lq{i-frv2_Q zj%Y(eVPled)s6W8bTty7OyE=agV^y+Ro#qn->q~_9k+<>yx2m)exolM@E;tKKhJvS zpbw((jH6et8{ ztIS61frSI5A?`9CnYv@OXe#Yo4wX*PPT+BxzmHm^G8V$|Oi`LyKJfyjv9*@+@(XxZ ze6vWgs*iF9^`~uYiES-UMfh*v8;xg6yVa%r-LxYhusq-cfm+ROBVwR@y(`u4G?nl_ z!#y)XDi-nMR=D-f2q4#-O$lZ=7_YU#(o|`vz0Z}zR+VWso`ItHR{sFRmqOc5gv&2p zhZNmIK)ulJp4#p`lCM$CeHZ&P={9Sl-d(yWy4+VSjt2(3yW+Lt>OL>MkpK(39C6zf z&xNm35sI7^i5|v32S*E*Q>@>=BZ0TPXvvCB4{Fu7VA$reFJTP195Cl1rqb??P6;{fMfHl_##nIUrCg(ZQN>FT z)VU|ILK%x-^sU_w#5YG97Dira>EzWc(m87*aPop$8c&SrUP#YdhRNcFOe+E^(nHNF$=DJHjNCFG3<`%DM* zu5VD6L0gQ^eG)%R2Nm)6jlMT)x`e_QXOb1@a7eE^zVT+Ia7>ck%+J?5tL7=?bzYOu z`^n>}SxPSHpQ5&Y8`Jd!5?Wm;AMCbhx$uspv7fVD6Y18z6Yx*%1+Vx*bOK{>3iVfF zKc#&!@Za{g(KX*L-%&qgobkvw{OgMmm(HKX8>6a@CKI~#q; z>>24&d1_P@HI}l5QO`9zcLjUmp{}W&5uY=&EVfs#BApf6zeER99z7Y&gS&&IH>QTEhY!1 zf5xm?Fk2Xxp#vxJ$*AO$G8~>d{{TAdjg(MpDYnjEShH(+7HnoL?a22BkIue={hYOP zapAk2J=-sDCRgZt*NfWYQn%FXHg0B5HU{sNIUs#U^{%_%Ubb}K6eYPhOO$0knHeMb zRx^#_(h8dIx;~a{ZXnfJ2Es*J>w}MahUswm>_%&ib~&mm>POz67y8Be{{UKI^r<5M z09e0Y>rBM_HMzVqTZLo8D9=9C^gqGfY4z`ix@$<;p3R!ZQ~v;5@wEObR=!{pw$uln zKc#zb?9Zzir11uoEA5O3?-4yuD95L=*BsZlef>S`eFLV(@vH3m?rxn9X}aukf5IiL zIe=HXyJbiqaqs$9 znR{x^==VD<7jCJf>DSMPOUM@C0UbeJbH_k)`qrY_`HZoJ{{UnR06EVePHWHp0BZLd zr+~$k%gFcIO~jUxD=q@2OC~tzMt>t-kLD^&jUm`c8Q}0b413hKXJceT4ZFhxZn6U` z4Yfuyj1qC2SHmB)@58u!Bk?m+n$j;S!&FbVM7ZD<&h;F2Y}en77>-#Nwyj8{1}pX9Tm@}I=r2RZNb{#EK$R&w~i;qIq2cJfHj z>Hh#YjAWT08zm=?KpXL|dWD>wigG1j=&$x*VBG5 z_%C_lsdUXk#z-wRyXlyRY?eiDn6@#_L9RShp$hTlE|3eoyBO87u@Cl~jDB_ZzM8ExetAI}vC6MN2SI`9+Pt6PpN4dg3jL=`(jy`W3JGL> zURf}AGal#pSFc*X?t+1XURGf~YMhIqR1#~M7vli(e@>NUP;MM#)kx8c5AdyPTQ+Pq zIIk)8JH1J*Biq-dSdZm=4wNJ%cmp8Ss4UrzaZMPxE$$-axyKZ&q~nUXwr9Osi%;%) zR7#{`uFUz-ogKMm99E6BlW|vLw@CYB)T@PGO7SrnoGISJ=5J&&8&zCxyUCLd4(>bK1Or;;-!$p?D77Xych~Z&YAL zryzZK;=EW_t%{$sq_1mlK|O;=e?r zhm9DhQ&vdB5sIB(i(&T~kco&K)^*mYB%A|*P+Uqk9^$FVC*xgwr;|FD*^)iOHzd?7 z+p=k{{{W3gyw%v`aut~1nu(g7<_c>%)pC$Wo!x1t9rzS69jZ2ywKF+N#El6mN^(D1 zgOQ(Vk!CUS4h<@_bL2P3{f}x~x7ar!Zj{=ROLvbvZXTnhLR;Skv*p)P7}mx>=}kXc zcizaPBNavx^BCPvG-KtZBk`sB*F<(GXKGRJP2E5_%~2zVZ%TG)i|N2jf2a(Rij2lYs4PGpw4CuyJ&d1m*!-yJ z?@GLi7?t`}xb+fb(4Lhfk^H1%imM#EONXMU79v>sk&)|MP*b03==?LP7+hP(-y?7;yqOH;?jvX>c-UaA3gwh!^Id0&v@vp~ zXh09w>s)r@8x?LFr9;rnw6bR#s$Ljyc&duul}M~NaA~GB=1YyIich*}to=F7JBA!} zt4v}ZY4FI=$S_DFkZGenm^5uHK^4&r?uEJAXu6W>mSPD`+m+>C*By;oF|%Yh4mc}Z zMV-UjO0KPkQ=0DV?iX6J6GS%89}d2_?_RAp&a8R$sq*TF!Ij2%tMJSWZ3LXfCmz+G z9EXhcs{r)PYZuF*=gKAyqh|Vb=}>UJRjU1!(V1}EoM6?hR@~lL1k6)!=+fLB1 zJr6^gDa(=AnaA2kQ|Uk1Z{nPu9Pt?N-Q)iNq1`z0OCAGo0Qz7W`n$)T6R`M=;Tz2^ zur!|_AFw|@_OVW{ahF)|2bVHsd>$_@b) z%tJ9a&j!Be{jxqD!{ZGaJ$}j+H}>NaZ5)*YjQ%FR6fv|i5W@r3dbWg1{1M@YN2&l&9m8wc@Bdqvq;8{F%;>%4o-Cbg1=3L1b z$wUMKPq#JK>)O(I^T$u&+jzdmpy=?lZ0nGPqf$2?b}BzQ^c_Den~m+lS-XWX*VlqRHMrtQ;YLj zcy6y8u4I$TLG>NIxT?2SF~ei#?!(AO-RyEbHz?S$#;#kI^r?LBEeeO5O2S zf%Sg|$883sY|u#}ZeK7EaB==MrrVi4PA=>HD&g3^Ni_pnuu?}_n&L9DalsvGKRXSE z>C&d=cGPm(;?&8Lnx*Ct#1WBK=9^*&$4MB_*g?m)$xKoZQSoHHVWlk5Z z62s-j+~kTa+&XGik1VH-l-6D`Qzy#3F->Oqhou%5FH*RLiRYyX_-(ySTF(CfVbY>& zQyT{B%{vOj@nuIek`1Rc^+L!glAYNeoL0+WkuvYe0*Kdd)}I*Lf%wueIRtT8NS1_b z)7C$fQh~;M)QG<=5gPL%QS(%RmW`cxrfn;qTHP8FBK+AWihObT>_8YDY6fCD@F~#T zeV=xD4bqY+4R#W4M>xk6vt1Z%k^nP~bM>n6ZJOY2IOi3ru*9U7!!AFk6fWXg+@_2c z+jmDb2j2OJ$>~Go6Xh0-DfQ z>MiDDKPkYfrbgoioiJjclb>phWY5Y+dWRugwGSgBt|{dk1df!k#-VfH(wcJ27dRE7 zdK5<{JhC&*MGSAe0n@H&^2S)wyx@xGwXI;^O!1)Mj{~+UZA$lj?W-qJdm zWIJPCbJsboJqn81vqQpGB4snkK5i6$D)p}n+q5vMCQ+Q@BxH2Xb6oz1;gv;#9lluZ zSKqyKnx?dLt8t`QIiBuLImTB#{{TZuQc*(IMt-Ey>l&1HYTKfS=1CWTa6tmLt@NKV zc;Y|?co^&|Z3Dx<*|sCh<=f_wnz|1TY2mJ(yLm;ziy!sl{w>UME8=f&*7LIZ~Y7ne!K-nU%Me__Aqiv6=tq9a@ z2fYStw{D-ES|ba^R)i3_=~9+%Gtz~9bM*DBO-+KXGg}i#2eothl-s5`8Kub_yM1K*)z5$IrhtqCs2y^)!I3uJA*F-`&ZMS41Ob8c-u!v zu1ZS#cF7ZS+P-GGh&JGVol@}s0E#Yr53MECF2WW#b;-qgI80NaJ2#>8nbuVd!i#az zYh%_wXfN4<%UiXZTk!Nt4aPS#NH{!X{{UL}lUCC1bc@-oE~03rjO}G$LE^toejWJw z+r?T+vdFKvVU(QquLu3CJ_p4$qxhFex66I$mNEF}^CG=`P8JpE`&wI{7nSCfu$BI$ zi}`sU7qQ0_g|qBxTbPV;6+98gG&0i&q*&I#=xJ4f zWgV$mdUvSGk%QA5(hjFVt1_v#8O9U*E1kIcq$E{~%lR%RbFbcLs7}amUvty&S$)t7FT|PfFDU!`zXk1a_Zv>KHtv>Se0 z^!B4Y2TFD`p47smA6mnd=;%ux2sz@Pz+815X{+~X$&I{>RNBO`e)5V{0dv-uprdx) zPf7_Ba9WA}W9TYSLvxyIe9AG+NkS_OaYG)MG=t^#ps3*0b6a3GA34Q86$OPIDL}<3`f)-TJ&oj+cL^+Hhg0}{E2_D-gTz{U zURw>fQIFonJNtp|b6kGhcg<;NTEv<~@=BbcICbnnMkCbhj_X;*;s@}P+PQ_0dgg|lUZieF(gBmyimW+f&U@43ZsMXwC4i-I+QyZf zUoLvo()_*or`xXBM{eer{{S-@)oe)vbsekI{s8z;>z*=(?o`dSpU%vBWMGQ(Ev1|& z>(aiS_*tO;0KyaS@9lF9mv`Ly9CAOxy)3?mx2<=wJe6D zD6ByI&2zEo{%!~rXJNd$C$By0YAZ1eVB;KD)m_SW=y(%~qd`Xcl6WWL1;>EzCy7^l z6D~G4LD!n(HBCXaE6MH{{LaMwb!Ws@#bnQRu6-nHcEROqT5*jQ`BvvPBN0;*N->kV zi0ApT4<@R~8B98!SJJd3k9HY*(;6(U(m6G|*F<@+sb{HYO}iHnjGQ+^TF}4cT&k9{ zmyS8EgHE^?3N!VnjJ2_jFAt}*j>OuImM)?5V>or@soBZ7e7QJrTQRX-J62|;W>!x% zIPY6qTceVVZguRZxc#_nRfuXk23xqu=_1v{i*HebQ7sv)TTzN==N_G_ z(L6u#3M<7B+#Qe8C#Gx6V^j2`k~UMlPS&j4P*$M|(X-K>v8;J_PLoD*qpm)+*7$eA zI(EILmR3^u=y96y9UsMWSdkRxe0@2tmrC)Z+6DA?wr{=$KfI4Td;b7B=9M*jv~%AR zPM@-lwj1KF56z(JlElD;2aY(bC7I)J!LUa|Uc=%G%MTuDD|u{J&fAi_WPNMN^$Rz& znWJ?egNnt|QqiN?z~gF5%f<}KD^UoE2 z&r!NOx?H>ah2Rh8Uk`Xs$J*D0?v<>sWsE7#(#Ic`Yv_-LzqQr&pEPi5F&l`w7F-X< zt$f`~Eqpuobw{yIq-$x_n0_qqCZ*x)mKPSXAyfC2Ngv9e;a`Z_zlE+8MLWD}#>XW7 z7|nfK;r{?1_&4H)o)gWtndBHSzbrHOR}1kA_H(qnhD*%|taEkpxB&O`rArjz?K4M4 zHnh=m!2bXrbiH^-1^Ru0=<&(Q{s+>%QrA+7?lB}%EU~vCl!7bay=zIm@UEoRx~;6* zeavT=>dIH?;1}5jibcn%9eEYBWo^!ROH|SGV%!^f zytW)NfhSl z2e5M6o*mG)`~;9cLMyYI8&4S+#c<0;ak$_4MdE&bacphuzht(a+34U^l`*R5;#cHwO`iz4L4JkKnhx$BXf zVzXmOAh>wkS8}LcxEVf`$^1yNn&09+nR5chhf}m!B9Xcl z*ujD0u>JPYi{wd-q%ZyxmRb%U#Ma zNCz1Db+1|dpQMgo9!a9yNenXT781gi>xEL!8CG0lspImi-?f*3VDQ?-;vWy#CX;15 z8+(&)@|I#rRy=e#JuBtiH&ngRwOf1pd#PZ(wv}ayWpWu=PC*COzLx`9HKWdsOl1`% zV_xFUOBuB-He?GVQ@l;Ps3^=ZefY1mJ__rS_^aVPlCy8R)6t^mletvjW9S8ZPjRR= zt*A|XAum0|jU?Fa>`5#>q}RHB%zqWFycgnY?Jrc2$EV!@-fjy7kOP819SHvbJl0s~ zxuq_s;&Jy{K7jZ&d^HQ5Mac|gZ!tjjBp>E0+idN#jxqeJ!oD1fO(VyeoyL!{=fm2Q zG|A<-CdS~gFBus7i~%Fx74#j9(a8#wAd}OkYstk~Niy)i!?$Bb#=vk}kZYv3u#Py8 z<1E~T>PNY(oh~^W050i&yVzG-rs-ZxW#w$SL#TZeYo563(HSzxd#BbYbd&Zj6 z!_avV{ogsrB>Rf_)5M<@HJ=k)JKtYRaLjXtVnF&=+hx2djKx}}Biv8#Jr#kcO(|EM zyq4$F-x|MbhrLOxbQ9!3(97KYI#`)+?x-V!qnrhb1JyS2>UuJ(JtLy79^9J%$n>B^Ht}$C+SpVkhXcRpixNk9ac$k zdDISTI%|U2q?Nt-sHEFvHqTlNo!FbQDZ8lM zjPp$_KN?z*%=(i@aPjaCN53^Am~L^AvHg2~RZn-l1^J*k$z-=^{l~2{ueA$s%kC;= z5lzAQTBNI~kP*geHtC*~VrzGgBkvDhwOOjrHEjltr`C^tl#NCyvmyC3qop>0+2W;; z$IyLY9g=Z|^@MIi>_q|@1hFCA(wI#LgprD&f) zh|GAYA-UU-b5OC(HK=+rlQjbgqZsC?vh89B!KJmh^4Jd5X5v3JH;=}jnYQZXG29Ww zM$rw~9Ez2jnpMZ+NtxL_%KLWXH2B!BBZ_p1nu{i~zNKtw!#|j~G|885Bc)ME3a~k= zYcP>;de)JbKw_!QNl>ZU$I_$?pK7a_jt6hno#!&JAmH`-Q!*&pDum9zN7P02xK<#t zj2g-DCx^=B<^{;=MQ3TZZDVj49y5bot&PIn!OzTuawz5IGd#?*FHz5Wl^b_j-0?1k zY-TgYzq)QuwP7#QijGnk{OvxqBDOJ5x66$5q*gf2c&l0xS`rMJa9}!BQ6_%0^^+V{ zk&$S&vIC5d*0r=9QS`gSl}=NmFK%lATaliXVmS(t&mHT!l~)#-PAW;JdQPEkHYM%9 z&229}yH8viY%jS$HJjkQU`ZUd6SiWIe7n1SKPtC6wT;n@_+H1>y*b)T+C=fHQ*f6g zi>Sp~ur+I6vrJid4b5&N@t)NNp$gqX$VbhLuh+Flj%i-O|@B1H3XYgxEaqL)clRO@5!dJlB13(Yy|PB@^@zjqqt|< zFn>x_jCow2dXC_gP4;wWC{j@wD?<-fx!t433m}jWmQR;+Pkg zak>nodR5IfLt}j%!Ck;OBrmb%s9URS9ow}{4x{#BL-XlMUh=WLeN8_UYYXBnV(w&C zNTiU21muC~SM)tf)6UH4^2E7~hB##z2lE2CXS@r!vyI$}g5GJiu-}EwXym+kQLnVt z=BBUWJNvC#>hfuxS>`!sW0TgSI_#RJ-#z!NDncnd4E4ojT-+Gs$vGyVx6TeYIifVw zY-jBrrpA*XidkL8bI7Qp*wQvmGHP2@UIF7YU0Ik}N$A{)(mFF2ex?5a4(sE>n$@1C z604Xb464H;j=3L0U8lxBib?S=RvL;ajTJ(w^aFvM52&v(n$4N8+^<@iJ8+OP@wcrv z6}uL@5is)@kTc$^v?4{|@;R&4cATGS-9E!IrL2?*# zRaV)uNa@ytD;5OL3?z>APwfotgV5BI5^%i*Gs*b|I?@x|w;Vf{HCo_plO1tSg`3M@ zdiAQtLRGgOY3w&4k1<{W;;z9VXn^W!ly>2WWBF9xXOc!eYN9KaRzR80T82gWvJEcN zCQfO;b2+NNL7?*wN{~gsB=b?Sji9OLtxpRa42m}kcODR9r!+SJVxRY$j+C21=Br}J znX!_3R1G&w)rl~`0ad0@pnBB$3($K=9}GtoJGOsyt-!Q4=*hR!Nhk8TO%=A@1y**NLVD-tMA61%uu@r;`2_*Itd z&3n%8WL2}Vn&$DR+(^$qjd~x3JUxrP-Lc~0b?^V*{JcV@ej>IHPw7V$5ce*XaKf}G>FPvh%beh~0@u?>54zHRKB zvo|1TkO$Kyv^+oIgt3$D7i3L(+_N5b`wwm_qqvYmZrer&PkO>m;GLDCbN9+`Cl-+o zSmCisoe-Re?31Zli)Yt!q{FsjxoArK;x~R*Li$M%8hTO1{0QGAy9u(v{fl!KR=% z9MI?S#RL@YWZJx%$hdQo2TIYrY~*yTxyW9fDvDc`BwVrjRau+m8RD%;ftsN_!Bppy z)}JzzYcA>$CPCC|O~+ix@b^BQ@|<^0u3)KGTnzBOF)NUjzJ5b#D&F z3+70;_345AE8EJkPo2?``QH|0tJ$n=C92%`&*JxlW$=fNbsHCtWI{qy=x}R@#yZ#3 z-?m?e;$1^c)uK!pBiigeOCRVf<%vO7J;ib3Df=qYiSFe%udQJz)qB`SY@V2=9-^G5 zJ!m9$t}i3lzd^Yoko?)Fao(Jy6+X0d0-V8yJt`hg^sARc zU!J%;wNX8!VN9go|&c7Pw!ZEBCDw# z5s@ZVayny*`b+jl)fzoRP_!q88}NOXAJ)EZy&hfT=ZN0-2JZf-zUWuH>$W2#;f@$Ki0e+H9hO;@7mi>YmEy?y-|{~FemAN zE9NNJsmVE`6u)}O!T$gPBC;L`;+^H^tv#~CBZ^fR9M>hzvOT+d)3)@Xmpy1;ago!# zK|<~0nopM?QOd0WM<=~YBvX&2HG9*4gy(`OH)FnOUqX;JLvzxd#@;G6IVUGHD`PbP z*HPRzY+{e%#Uj4k=7n%r^NK`|QPfft@6b~9G~(T{lU9coGjGl9M$_7tb~D)1Xk~K; zA$=)%=M;xH{V3=$(x=d*b{-75O-oL^(kJ=Lu4B()a47t$xX^J_ZDXBj2TL-!v`_S?F`6^G=KJa58gIj8w6%7&l({s2VoR ziS~3w``^V;xe4DEbm3=ef%b?Ri zV;2zGre znyrf0X#Qig`#q;|6{9`^@F`;gG~%L}w+<`PiR0p`IXfdOR<`>>?jt7^%U#)%o-tj+ zCg}Z5VQO}JSdsOvi*qB*jafoTJ&ZUBg9zgyr#AbT5y+)$Qzu?3#hRGg4bN&dT8^ZX z+j54XVY)raIqOvP`eXD9dIq6*x_pEu?ieAoFMn}(Qak)+iu7=J?@1g{K{Bv3Qg}8Oz zIjWX-O=lo0$j>64kNPbS^C807v{=TT}4 zaR~Z#uDihh01~gfA$=HUGTUbbdgGeqsJ+kK?qI7_a#5Pl={_WU2LAwrS8R~n`H;vm zq~HpY2Xa@ z#OIEJw0s-lLkkF*zC*zosFwV;J1Rj`ip5ZRmZpi3h$93XR7v- zhi*37+#!jMX0V$+Ounq6_*>jp)ZP{G&XwZrG|gnu%1FhN!=3G5y&SgWr&A)jk{k(b|WHWQxmMR@F4a^6zi;(d6|9xE}TE zUlqS*JvYVPZT|p<=Z{CeY_YYGe{mys!2{$c@~@aYP2de{z`Bpv_02w8Df*+4nB*R) z_`&1Q*L5nq`aKS5Qim(h`)|YkDAN2@r6u;0dmYugcTzVg{_76M>sLP1@#pz>uZ8?G z;%!sGx{$rnuO7~RH!oC^{gz(hzKHNg$DKFC%N4e!7fjUp6=VCUJ=MRVuH_jm&oZQA z(Hg%REQIzJ`iw*Oi~F}es(NSWYsVG3?&#bRUeWOq@;ko{zn1Fg$0HcQuMoO(3kF`@ ztED{>H^XexEQzwE4^`ve+N^1Fhqt}6Co3xMU-yQ3R$Iz9EQ|MB{{XMW5Y6OW#~?Tx zx%wJvUCyW2`V;nD*UiqCs%f&Eyi$39eMtxT3ioCkmmO>5pMd)C(EcKub~_@yQlWZs z2_n9@Ofru{T(xa`qX|crO%x+(B@^ei;@~>y==`^%V>w_hSPTNB8h>bI0?pYae?Z(f9R@`|1(fUX0@M z6r61we98#N=UPm&wsRR9d-cy=)yn)T)YDY>dEx7cCRdRymK zILRPq@vci)(|@%-73%iF0`F}y$q?(+fzM9d*P{4N>90IHVQ|m8&5R$&5Pwlz6*YD` zdB1j-VIkAyOm2;U!93vpRKMB3FmEiWAH$EYJu6weHb5N?X^$b`8L^X(mmh%XTymxy z%<_Maz5}}PU&1YWOtiFHtF=$GLd-zhu$CvMTnhZqm^nW%+WEm9JLA&7Uhboc;zhT( zgY9DJ=;nskV<&2uIdgn*J5jBpRJuDjumw{hZK zMoW7pGEA$NUaJb^jl}zrU5D)q2-1{p*u}vn`e8$}_GR)m- z)z#xo(CuE;oVPwn+l~|VR#eP|f&a2|1DiM6KUx~D6+uo5OkoC{wQ8SkJsP8VK zv$vMw;zWYpF}bCYf~tYk=cX&>uZW+vPLZSe*18lz_I3G0*~*Vsp(yb#x$34o*7NYrRBnAvmn*?isU_#d|6!^Cd3sy~FQ-vjU!ln)`WeT3fQ3>;5!l>K)jXvB z^KvUgfS@z&Ub|Nmo^*ZB6nu&0OLkZO#)J&XCiDK!Pu7*JEtPipVEz?kPKO|KP)jge z`Jw6T$Wql1=+;Cfb6ntZBH%aL0*dc;=w84PO{>sppVc6_7ttBv~{v*jvH8%Ee8 z6%!NQmP@G}vd1Q&XD!LC4tt?@(r%{ao4c-fqQ-Y)sTr_1=94>WHtK1W%s&e!v8Y-W zUYyc19O9KGDnKV9lO@^cM$AFyiYm|U=Iw(~y|G?LB9b$4BI|>kQ`NTfQSB?*jnoia zitw)ok?3fWIOpawhV-gy^EEFkj2cC%oft@k4hY3G8k|TR6>*&LQM6nV4neGr2a01t1vIp)-kL{IQ(<)-w9wfY$69U=6y@nnL{<^G z#~7wDJvvj%ZuX{;_|}%VyoLekLk_f3sm^oOkk?@swO_Q9aEy5ARFry(l~^kd#+Q+# zTNdgw9E5f})L~h9tI`2+7zghG#Z^#ODo0KzkmcNucJ8#t{EbhrFV>pqKN`uQ+^#9Z z<>+a~KAowgepHfRPK+6S>P6?+)pTv5pXP1FX>O)+?u!f3mZFYA+#U@{x8A7>U4Wiz zOG(xm&OnTQL+e?skH(>4k}E{}6V&u9$En$rVi+*4BU01a!s*bA4x+SlJz1k7HaH!t zTUWChg}(4Ub>vlUu7zWaWj|VGIK^l*J5C6}=~2lVs>U8CXI$V zkJq(xbJ@9&h8S>g4{FPsp`>+IJAZ^;I&Ta3fLL4~^c&BR`UX4?)Yqr#8iMKiv&E4t z1@^M_82h6BO09y6$idG|4&~2}X&BedTpJGWr$XAe& zwX5dqLy~PDVL|g#izHu{1fE4WNEuGvy=jZ-jwv?qam8~pQgve4$I_AVxB%dHsAF7X z2L_$Hb}%^ zn8O*~Fn^sTywYTq=-#v$?XhwRS)Zl_CFGAT8+LJ3+Gbp?Ii*)TE;;KW$si^fEg3@)!9`!~Ur;~9f zifs2`munB2vyJbmFR;n7&JR&Z8}7o2m1apJ01Td#k)Vepj%!PjHh6}4s8vqj2O_1F zjDY8X>rqCw5Jk(=iHDhru&jl2O=DK4ZcyHt-#Xi&^I zP#fks%}*c_5wu`>(?Jv)g6Hz495Z0^NXU3SeQIde=jV!iy-JLA7^7(e6#oF7PfjYr zLO3*Bk1jllvqu6GAY2UdL6dg?)n`A%dQ_0M{{Uf3EJ!|HDXkc6@y$=Pb?;4F4!qDV zQoon6vrCP@`qYyA%5hclSBgR|M=_2vJM^gAoHazuO5&xA{Gm-Ex(ccalh&MO+kx7W zMJdyYi+8q7B+Q2+24V|f)UKrzU}ly$<6*dtdseoUq?_ji@fTNP&lmXR-CJ#yvFIaziPQaPSonh z+r4UQkij$|U~HlcXX#N-9D04aq8!YA_kY5ut;QIs=+zIfx75#7e*F4YmAaxwoxe6J zI3sqDw%iQjhkcVAjwrESL1z%SxY~GTY*$^T>GDshL2eO(D9^V}O=M|ysd4+o7|QtyK~@!lLk?4@%IQKQXu%u{Doc3x9G;YzTd8u@K5E*ukD)y)I^9EZIIUZLfF1=R zWN5>~3befAwN;A>!zYTj8Ry!kshMMiQO!X#l&r(oimPzpn~t3+*pjWpg_{*Z;fL0& zTuJ!V8A;qv;YQ_=O57aQUC-|@0l=%53>P^yn9Lq*4wM?iZNi@~(y}gzAbVDo$=&ky zth>ThNCPyEh!~elcM^STB35Q%e+t!^8b&*~6;k2_Rp9;hE4_h-lKC!&4tH9QZSK=Fck*Q271)1^JJQAnO;vd9d#P+ zJ+NZ~8Ktme_Phb@OfQtc(=h+0+-1Ins@JpTYn<8|f#07wS3eji>n zhl{kifx%gU{S9eOT(uK1sJW@MeOdcPShk_?&D;!|c~p=16J-AYD){z1@t(E!C&W8( zt9&`XfTl}AvUSfzBv-@?o=n9Ua;G1acVnYzsV=7mUoL8GK7@)m!KMBxRmWO5HRYb5 zyLWRy==0xRX40Gg04+~b;L=s{{WYh%__J!??XlcVDfs@OP$`;C0hEHy3>2{O;*no@Iufu zx*9$oUE0O4@4Gd%@k?j+otROB<>dZ#o#5+sxbY3J10ZDnLa+Qu{r89>9YV#A*0zq6 z+a_NUIQ_oWwV?QRU2D%V%N$8>ADHbXae#4;uQis7xroJUY5Ih^eZ27?`Dafpy?HtQ zl%i?VLc0L2KsgJ?9XR7O)!fV#M&@IHJJPCwU4O!z4K=SGX=^g?wuVje4%or#_}0{5 z>eP%EQwow$gOlicW|OCXV`zGHf(1k6`HVBpNC%(Jw5?TqpmL?hUPl!Mr7|_#@{_`k zEeGL&kIJ*}ygz-XtW(-d&*mU@Oq0nOBEH_LlAp7ru97|mrYe>m9@7ynUS@B3nD(e9 zm)`=g?Dh3&jlI|IC+UXcKT6i~mB9y*Q5u(adzCtBQB#AuV#js!Z9Qpj;1Vbxf@+1& z%HXNvtxauppOublzA`+@w7ItEQ=Sl{{J5w*vBnS5wJxJpj{xNMto4frlg)3-qOrp7 z7Dwk8+iB!dUfZqBx$bIzviXLe9jiu2AmX9>w@h5ioi(F57#XcDcAhz|qSj$FK=rPB zUyNJb23|8)v|F9Z1!qoHc1-l^!`eYJZKLxLt}+d0J(EWv^sQ(H?3$KqaUci1b$nZ% zJZ9+1$jq^09H24a^{$rBPg|7)b69d(`(W1Bhwr?pLOm`-VTzMc_K+VXt6Itw@y%#j zu^7p%o1Hd2LIEJaa5$`p;%jy);{;I$?^xrjQ`=Hk+~3puyT}^ea2Xh5oL8Utr^E7i zdiAEZ<`y}wrEh$mM+U0uSIMYC(7!ntsjp9)R8C!to*I0TUh5aaJ|&9!5orES$pJt9Gstnr#nI1RbhdKG@BAR)wiStXm6dj#fc{-NtK%F?BBW_VPf5CTky#rODax?xRJCnBT^{kElzffKw{OmwZ!v|zu4}aI)gFaTOhqp7 zXVzZ|{6`OnG&Q%Jshvg&whnt%Kg2%(#M2wwSXE{m^x?jv{42?P3*xDCThy5!9P&S% zeI=pl5cum$kL>KNFG4!==zkjPja`3uuDYL_V(@?2v*)2EpG$s6g06>cGpRpl)2?%$ z-LB>1JdgghZ+LIVny-RyMcg+De;hnWUV%05YtI{UPku#s zFYOuOnf?~q+ekGeywtw*5mv6KUA|dc$o6uMDa`6ujvEn6N7VYe z;V_mQw+2-s3X^d*!zQD zjJF>X*Hpe2nx>l8`ow1uYZ_ylYq-eI3{+vq*1nGTANy+SUKnUByh(Nc00|C`PSw0P zTd08UNAVA@y?oVdz0R>`gyc6hVB8WpJoTQ!TunSzcNe zIXLwP(xtn+kj6$>9Chev%T0$HOLNdPonlQpQnJ)zKfJea*aw^fb6<4$S6zq1ULCO1 zU~uVi60zIZ;{<+n`GpUNu5|g1=4MmZCywI2vHgyIEL(Vj&i??z7dHYeO4+>lE!nu1 zGo8hK!Txp2J+(EQIg*k-pqJ(q&iIpAO%BzkVUjw2b-dDizLn#D6ueC(-Nd%G<1xp< zKhB*M%_O=WJ}Oa$uXFLaBR)#;&MFAO^GF?f;;r%{!5m{1m2oGPCnN!%$GvmM%=>zG zZ69d<%-V!nm%~<#VqZGe?V@pvo>UNed!Nd^b}N6~oB&k!<2CWO?C0@{KZl+qn@-iG z+2QR_s?9btu8ke^kJ}tnQhf(p(znx| zl#QHYt#k5>uRr?enD%P?(EX~ce#h~r#h@_MRDc)pe&f$TLE%2o@?^=!z^v}OQ+ZXk6{bjoaZ(4 zu7huJ;_rsKc8ha7X3A^psS@3laO(Fa;nL`S1sl2BoUL}82VM+FI0*pA7*w*e~Zi~C$301?OEV(l(0A@ zhL2VGol>hB)fXkK~-yd!U*TWbFR@R8}!=`%;>$8|l*pk>BKQ`fdS@N33CApYB4 z7SR@KPYBt`;$1`Tt<-^|wFlQY+~9N253PJ51;w0GGszOq&Owl5bDZIQXua`L!nlnR z6$iNIq3OkZB|a9z#-xlxZa>xO_WuC8w@$nS z9e$+e-nb9Ca_{bQSXUk_##SXH{{VaQ_N?jkspcHEE9somjPN!DOO&pSR7#^mjiryI18J|4o1DeH~Se3JirzW8*^lE&q zoc`7*>8919wo<5eC%0PX^(|m5xsRI9W@kBblTgVCZb2FMs!&FAtmLe;EJ>}qE;<^e zCZ#jy=O9!~32ywMHHza&t?oCS6+MKf2`8Ce?0d1Q`e()mfB-j+D<&N_Hj5 z_Y}5!=9{{Mib@Q?uN1<)Do$xf%qfPXSf=8pDnA-Vjk@jPf=cb0jJH~ym)4_Y{HYN1 zBKOW|wDzVq%kNSvg0WtPti?9&4OOFfT1K&#a`wcLagJ)d)}=B>BAT}aa7PBLM{pQn zhgvQS^kGQX1TD<4e|zW}5&5LHxc|%Exivck4mvNPW#T zu;3n*ro@PTZ>1gh=8ePGia6|RHrGI~zr{{1wwtu$-kQgeSh+HhG&7jk9OkZ0p^!*F z8qTZMa&L^G=~kJd+RTsAn%|`?ieqvQ08m{dtRdgQs3ey(#^R(ApUR~cZ8GI*y$5TR7GjbH zQ_Xc6Ua96p6^}g)a}z+&3^3xQvAXi#t}3GJOI;0pP7SjcQV2ZpRQ$h}IO4B)qG<4W zs#0YM2d7%o&^c|n6sQ?^;;FKgHEc*SLF-UWo#LU8MxvfE_*8Ac^fe;UgU|JDm$qU0X+cNgMak^1i;m;Z3!=Xe2PX!4=BsH_c;slLq;7 zgZTBXpH^M|RpcY(ZcpX^0N1Z>GWOJYx}(gi4`)9nY{xeB9MWA`t;{ZWn7|!?CaBq6 zd65I2YgXNZE(pl1<7pi7PCA@)*3v4I$?x-3j|^%pYkX~;wnrzgPCD0Rs9advS+SNB zE04XjWPK~o^_dqU=H4e%Q^RqJ%1u&tMv?vJy3WH^)S;5j;t3n~WpFZmy4RUpKnQTX zj|cImUTXIjxDMnBiaA*uYmRGzyuG95Nc3pOl02n&+i3*!sTD&pB;Zr$grf!nBBI_{ zob;|keY6pw*!fujn!&P^;b6=U30FEVf3w8~DyjHNnjrSkl;GeK|Ng;w{dgGps1 zoCY}+Ge6pyl#gLew}i&nZbc?fTM`kujtSzYjg@duT8nT-7Wt1_eYo>31TJtWNv*`y_8DVu-M+NxX7dTp@bOl!{HVx|7Tgz%)@W8$Z+b37 zyAscn5|PrNRw_BE^ZTrIH6GpA&lJdLiDNQ0;&3|Dau(l!GAit9tfW){ag{xDS8WO* z*h%S;QuBbLf$LVSExgG-ZUrs%u#Q8t|g<8xX84GFWj=3$zfU0;lDUN#>Vn6i3W2EL z8s%6HwJzOBC1=lCh_B6&(wuR-)~1dVw6-!TqDw?k$lJE|?ONa3Q(M`HQ{@fUAIR2k zmN{iSiWQzl%XAgez1@Y%NRl!K$>*(VX;Q+r?JJ+(bYJnR`gOc_OiP>vS#Q*NQMCKSu;Y@ zu=4uVxYd5OEOzI1NfVaG1|5YM7j4YIRc&Dq&U8a&DK!qS~}_0%BFjU`@nJ(jz1nNwfKACkL;Z( z9mXV+mNm|4mT#)+$vlg+GjX3m>0YaEAD0TMfES>t^JPojjk=O7YaauyGfFz=8DUE! zD&P;jNTevhIVZ2R1_+SJxNakwMCqP_qLN^$M|!FD)0`eFHd01|OtAq_J;6BuU{hj2b*k&_Qmlnnu4+*vj>87Ct|TF_yj1hZaC>I6u4L<$ssuwc zpY2sUnGW8x=@>ERrB=9cwBw~wNP^-(xGmScQY^htb5FRCZX2pUFe%gD*^ zSo)I{Vg+k6@OjGCE%Oq^iOB6!)Yc^!*DLc?dxaZ_QIS@ek2PJFucb3<_c5=Ll}jEg z8tuMQ&TDs3Z{Zy)3gLGXo<%X-aXTSY516VcC5JI z*DK-qjC%c(kKvh5<;^(g(_4j4dJZqDKJ$`4?JWj)KJv{082mF|oE|vS8%psurE2Sg z9K>Vm&-Jg;KL)Y5(=AzsLqZSczx{gnXZDrQ&X4gkQvKe=nc7AD2lTJ6%qja!G-`E6 zAnjz}E zjPXpEb;UhfcX~%t*R@Hdip!oydXmJSwnivr>T%EWrrEJuxbw#}mgyNwv8k>cT8~WC zYag1-W2kDg;uYIwo|zR}N5e)_uYcC5{6gqESpNW8GuIiYbUBT_r38ccWK;Upjd=d~ zap_ssjj}~<`?LDf>Lsew`_9I1?T-b;A^C*%gb&Dy_@BfO{hwaGhZx%{0sjDf5no~a zFT6K@4>V`{$H)u$l56E(iI(4D@vZWafX-VVQcZhU)a6POJe(K1ImG8zJW}n)PL!xY z0Me6QCC^{Tjl0ry=e-T`(k6FQGD!_Irh4)z^Z2cpzGtcD6ztzpZZkEwl}Fbu;iHg`4sju1fYnaj9NQ)I6+5 z(>1@?Ng3}ekV2SloK&sLV057{6#7xcLKqKzmFnLEELuy;>%8L<^D7HR_+$I)@+x~)2YxoMVbdm76T-U!GdtayvSaQLf7mfBdsmu^w9&OpfhYtzJGVL0={;y)_L_>#U~ zh**3^wBC;W4;?8TWAoE$WM$xgs#Z!@QJQu10KX&ZY0t5 z2ri=9CXKfZ!y_Pr$ownNrrTCLEOce;+^KGRZ^Hio**8$}GR1ePJKI9s?ZD6FUqk6% zvM+^gEJ96h=E;w|au4&Y&w#%jtaa$%)AbfhYtg{y0s3)YNkelL#CcW>G25E?ylyJJ zIr8jq(;8*L{ z$CuJ%@Ft^es5E3t839|V>0gwdDAHonbt{F3gx*Su^)RxPYD#S#n0dnwUU&yP^6I>k z=xOQGiIfn1t715JDD|!*N7Q_afP~>|tzA)8FaZ_a8E9T2i{?!ePi{7m(A5TJhCs{I z8cDS#kenKUCM?(|CaN;j&)EC6ms7g%?yP2vBXW9F+TvkL0fX13E11ydlHT$*$IGAV zUZruNoo7cE5vL$?iq}T&&zQy2`n5&NsywP|;;cq;YR;FWT%vz8ct3cpjH&6t&3G1*ttO$iD~9r}SAg9!>}$O6-mSJohEs#kdK$)@p(SY? z*}e*=CDJ{6<448c9BSSfoM^hB(QRFJ$t{FnP5}pi`1yXISIGVr*RFgg;u&vbyu5j2 zVz)P*VR_gRa>b8Q4i6``E9r8^>rZ=j8=;YQk-_Q>eE$IB&k9MTYEqS4BW0J47<2m8 z*7j@NS{xZ2YBGedvR0Gp)%?$0(>ybyd`q^D<50EJb-0*eH3%U{rx@(zK*=8CHN|-I z_F%fPj!WMTOvm_yexsfU#d(K@{86cRFH&orF6FJ6kMC{RlN6&p7<&7P`a|LW0LKe& z7Tbs}9c?cF!GVY;>JM>KB|^Him6^UK8J1J~+7sr7^}0TO@Grzq82lsgAU4-`S~j5@ zW2p-!I)+?egYGNz1NM9Uv^2jS$p(qya}JNMHxbLbY!@fkpSs7;o@>KAZQy+u$99aj z&@8M*5@Y~6^}z@F8t`8cd_C7Z10u(FY}eW|H~KyD4DC727~_NWuL~8IbKj8mGW_a> zHqKt{MfWrIV%}?e%VK0G&=t#P1Qo&0;fnZk<3EA?EqklqUCW~C+CgcXZRM@0G4(iR zIOuWu*M|Ht{i^(F@Y+AJNp|}7ilZN6zLAR{$;QX(K8K3y{B`?ec(cYz^n4UEdOu+NsnewFifrKsH`u0-xZ=M2P*^V+BI{{V_^EN;?EX^o}QoU1S0 zKEzj{DmGf3@NRM6Q|NtL!FLiu>ap#YrW=9y8sapqQ(f>si7mAoCznjtEM)T`xKY;x z{$P*iUBAP>jJDn&SoGa`HMYGR2|BC$gX>+diM%bR>Xr;ttecl~b1x)y#(k@nbk&Qe zh?FJCGw82^AGFqy@q0m*()`Dx_^R4GPiD=8n~Zsp=dmO1_NcGy9^&p@{Dxw8eM#oN z8@nzS)NJGuLhS;t%1+kWyG*^*W_W2eXEbR(&JSdiyE=^SXZlY{(Y-A?`YBK zuXj|>ZMFTbymuXT9hX06X&1~H&uaXulHdj)9OLq-G~Hh6#_29?E+w~~ zGm!APRv(RE@bG&V?HAfVURGt1fX@cL0{yg9f5Pn4$mbTYoc{p8Fh}WG9s~WTJYnG# zXr|N~QH8k+cuTPB(EHXG$B!B>kGx?HyKV@A<4=Ui&PbDM22;mlpVG078A4Y^71iT( zd4`4-C2~~ePD?jl3I6~Z^m}iM+K+>D`)fTF)+^YhX;x+dif@c7;1SmXyv=0$JZEnN zfA#9WoLWNp<+(rBz1U0lc4joC$eTJXM^^K)!;!ZjcRfiY_vW!1T6B}E7wi1-`Bb** zCSNJe3k)uJ=bFyChs$S79l+xsOxGPv$c&{OQMVt6E*XG%Q3HP$`5md3TBK~}e2ppf z?Of!ZYKG3$9e5vFgv@@U^{oCz-r8Nxfwe^~*8}O+lYD3}s){M83#8XT;S(s!a zy)mV3MsO;5tfsf(NZEe1RjJ&OtlXUSq#!jTccz?DyCip(eze|4wHu1}p=I?M6kG(P z-Njmt3wiOi{H7zF#F})vT=C?f^H;9r=}2}dvwQPWMR@Ua+DD=0p?{Yk@M<~Yk zk=@(P#IfM|t_4_49@g05=}g5)DGn*yQznGu z{VBz11w2-WL6c6VMLWy%=~koEV>%CNOlPG%myC3zRjn*721(Nu z2dS$MP_p%`X1bvfI~sg!O*d|OigNK-Ez2a$F}e4p$@)@I{D6A<^{1;eYzX3_T#s>6 z3`m_YMO;RiH1e#<81QPid{bDJ;+wjtcOSS@OAeiBjq@?2^3Sa^%DGebAal@!&F zIrXOjv{fc63|!}$mwQKoI?=deifK8i3mOo~=B|1gyQjDBFyBhXhEp2@`c}QU+{q&H zJJm;}jU&?Ky;96cZb%&0Ff$Z~JP}>2pS*|ES2L_x`BE2J(p}M|NcAjPT?bG*)c0d_ zM2@4H#i9$fSb2*KQiOvYxv$DvUx~IlVaB}S}zA26aIOpDMy!5V+M1&gfT&I;0%$`LE}GKqb0-1KKJ|GJ*w^W zCOMA>9dc@m51XZVGP-RZge9W0G%a7wLJuaY%?XW<98+PGqYQ8>K*#ooc;uSr~by*k|89gbF5{3jW1xU&UPgChl;O8d>mV~kiVcNU_imQfJJYui1{Jfqz z)klm1N}P%=BnahOEzh-D5-UOm-9Ve;m#-!j}_D(v|{ z^*nd1sLL}9WSrxQyshQV6pWm7KTc~%_h!hcBxM+5<)BO!QInC1y>S|{pOXiu^{m!V z&75@NlMVGm>{dV+4k?RuwT?Ia$u5ejsOg+^s9OsmIp(@LBmyjr7$9}1B%Pd)-Fj2oC5be_ z^AJeIX2s|*L;)D}sl2o4#VRJ_(xlt+nh{DQA$G9i6(X)0hWUU!=~V~-^%XC3REd1N z^G4oB6!c*0fyF3Lt<7n=8nFv0J*ll3t6O+Jl#INLbgI~{g;i3cnp&Pk;C^($9`B_~ zWEJG+ie}8?6=|Ua(ySdZ$@Q$*xk~E~%~m6f?INTR9D`FT4Zeo9hoJdN-b$}hN8w6s z!>H#2rCRdGUZ$6B1!`9*S{ri;l~&@XhBs#%=9Rc!I@Hj7s!v**iNz(Lc`9TiuN3bs zSA|?uo4u%w42*p!@*xQtg>2)Rp4K@faHukA>kmK%O?7@6(8=2)E?9F-YF95(?}zkR zVTB}aB|pl&3q{agNfJo`W%|^5PLJlQ7G0~wcJ{Ev3`rUvlnhp#1t+mChotSgStJ+> z(MJNhnJy7mYVvwk5?&-q6?rs$ys5@H&1Wr6c_$`o$#4SlaB90*hBjIfz4iq)}*M!CifQMHF|8UFQZ z!ZxTqs56u3PCa|mtsyUPv{cbstlL2TW9=;%Bov5sn9Xe4#{OV{M41Ta zD<1J$Ja;vzsWCGVoOP_0{vuBUo@$Y2DdNdL(Mj*kaoSYIE5vivPHVF9X& zH}09e`6j;G{hvHA+E0LVhn0VMBsnMW;=DKh3O}VqC&PU<a%N&nn$MvtT_MG@% zX4gaTS{H{9EKFYVx5=NG@_ej8=~1>@2OM;%B>6tZNg08)$-np58$DoaE^!U5pZW5V4h85yU@qt_J@<~dWpG`$7n zYIu|WJYpl){A#aP>(3BeA#KsR^dqRj{6%^!PB!7XexkR$KceaWGLqj+)!z(cRfckK zMo&V1xcsZ96;Inn>vV8nt9@2ld@RoRN%3ku7DThverP&wx?*vyC@}$s7 z-AE*R8u+u~HiG^Y@ulvT7iom$5BHRlf<1^8qwweAW#5DKC5~ws>?Am7$>Doseznhs zuO%fJvx7Y0ni#rL#o^)m&HYb${h_`aonKE)dreK|K4l6y#y`Z@&psX1r_gl(&6628 zWj!nGzX@xWzA4c{#UjsbGGMP!$mw4@d}8=#FNF1JE+B~gj#k_V91m~Oy(*Mk8mSFW zFNgC^dT#?=S)-ze+UlBIQ`(hc+^`+Etb3;WD}p)2aef!^EZQvISviTg!RcMoO9rC| zky|^tt>axvDRn(sxOrjf^QZ2z-izX?Z01QLVv?cCvYZ|(-aHTcT5Ea@u(iI3T?JjK zBQek8#eCNsDIBDS7_CcrqLFs9RMdq!sdJ;AtRpEoQ+%!UN75IXuDS7I`DfH-WVBL^-y4X)-IHBkj&#wk>Nj_xK53bo^CZ^=3{q*=UR!$Nv#TFxE2H&nHD!sW zukjrvxiT2k@0JnpRhCe+V~Q1Uqy+%JkP+rzgOcZsrPTq(yLxu+HO zj!M-gq@e|Kowd5#7(MIL{up@KZ)1HTOnHZapY!crDw?7y5DtARJtxFd=z7Fgu(1rS z{(qfsDJvM_Fiy2OLi(P^@e@S3v5?3k!X9@4)A6fc34Cj1;hTqjLHxw%RgOnrLtA#* z;&|)9@{!EOK0R}a`R`JO?@QDsis2bX;s$=ExoTdlTqI+XO3lH)dMDS~=Z!oU;wu+x zXjNv$eq3kySBUt!JAFzy;f_2)+zi(v;O$~PChZzT%x}Rb`PZP{Lj~%IBLJ%m@mw_U z%8%N1XVKTh^G!-owYr`uX(YNG``Ssu6NS%u>NH!VW+SS%1!^ydS_4T5o*+b#jDjnl z@UEyX(4(D`A;J7Brj({vUG)7JPtoaPX3h*`6cxZf~;w?4o@25vozA{Hl zcQu=9G?vqc3{phsSAspkuX6ak;I)o6)FM_c;D!o1<0KQscn$5v#jU|vVaDE=Iq9Ej z%ChCvA8&!g!x=$NI`=)3!M_;pwADy;OwVpO^H=WxJw_sYd9CbV_!-uG1FFGFNzXR92 zZ}8R&A2#nxQqc8ibCSJtgXvy>8~u_&l;ueqPaed7pGxmMGx35Mp>@^MDZt+3Q#)+|g@Mde(l8<(N=;<@cYGix(CjIv~b*w-A|vG({`H!evR zt?#cM5h1pe2)Hr@J9y7ij=zn1FN1zKUifdywz_Y$+H^6=&OO1esJ;*Qi^D$@{s!q0 z>3VIPaoNZAJL_L9OG7e@Ht~*2ec(-eoBKliFg^>_4x^;R!%CU4^5m+vPeYEC$6k_z zdE#jrk*QhGnzKF6`)f?`1)MkbB~fJ?hItwE`q!)e&Hn%pQ^VTkr{TNYi!DJOOLiR= zV5E_cLIM1Ret&#D_>Dh@??tqX&u=qfq38bk9^$^B_)Fpl?z~N9Fpw}-+>PImNA)%5 zS~6<;9Tl+Bin{20l^@F*sT^baRtw3uSd~|tbnjgi*bzp@INCohE0DFD{w7k(*Dd&W zt{MBN`Z_P(Ox|frFB}@qy^=+2WR>gx0M@H*BDP2zR1+X`Y7HhC23%9ysiQKjylzAi*p`uIjV9JI`LIwJG5QAxJeguZNql&_|y>G5x4_^ z*N2f3wz->`bMptkOuzSezb!_4lotHru3?BQiEiG3PuUpXa@1 zY4TXzs+74>-8{KCVft3|(_86!WbG_MXJjiIZsAy-xbNPTnOv=_wsQ9p4=IT}=la!k zVyrMZJbu0Dk}zzJ&FTE;Ty9;Xf&J=kPh@f3^Bo?EVs3S4p^eS-VUo(nJ@cCLD@*3Llgw6SBcbR=t#n#Pj4o|S+Hy0_c^&CJPezQR6=@>%{{VsX z^imc{fjn(u53jXh&EQx!9hVG0-u!ykUoNzolqK+`$1Q=3b>kJCb$xD_-6Ejx-`1nh z+0&;bbCT3NA1%COM<8*Wo_l^(jV6;cW0C!9yl)g}HnA0wW|m%?Re0;pPAew!#M(0q z#;gyfLH?BW>~gq6qd6A0an_o!zH%2exBaoEOviW1J@HoT{{XY@SP18j>7Hn}kqR;H zQ_=)%;U^nMt#m^{w3%}pqx}9ATl+pGagD4!s^9i`WhN#d`gEg}9SSWYKKDTu>PU5A z*0Q6xx3`yToO4%oOIxVapO}xvxm%6GL%Xdf6k$1X^gSC$yR(r-*%Tkbx)`K|R{*Oo z;a(uO62jR>W%?2-?Z1exZSjfNkEx&|S!~Z)y0x{s>l&ZHRu%7rZ0>gy`Au?Ac+%=J zHyz)dYgzc>7r>MiH7u`b8E9wfz7e>!Vq+WE+OTddWr48hMS4tLAhfy|SrqZ@QnihZ z`uxbJH2Fo!o~ZJsAC)()dL8G(_-?Y$NwE53{{XLC?y2B?M@|KVeqs*m%{zB9acJlB z>r+8_ExU$|$Ugj!%B#s7k+E46sUDz;ZfP0Z)t69;_nU}@@9!@krAH=`lgGN*_aE+> zp}Q32nWJo}!KZ%XxeS)FK-hJ`%}3I-zqA>!BvByuqDy;gr3NP0{{Y=Q56+8qMBB47 zdF@U{C_x7Xq?*=9Tal6KITa4!(DkXY8k<^Yh$Xf8BtBw$*70jyS_81DIO)>3ZQ`f5 zypq;H@wO_tP2pLs9>x33G+W9>IIfSw{s)Irvh(B_&0v3PCE|e~!}`~A;GY!QSn0A` zTrdtfU(&IZUg+tk%PDGdJ|gg2Y591DN2PMj3rCQ{2EA8Y@eQTQuneSE0jha&ERMY? zLA&aV>qb9h#!_1#@kKYSD&!jIM*#8pQ?X6WJ#mgJMzqkDEh~1U9cXT~C_zfJ+=@3< z-=QP(M&9&MS|B5F?~_os6=AX0y++GZA)*7#FWvX0Zr2*?(wB8f zq6!v5t&nj?Jo?jE9^9JKQCixPz8{grGm1ncaA7xT}^|LM94N6-&7Fqj1koDD)Q0>Q?Y=033t()OXN} zi*t^(o2K1?gki;Og)%Nj0<>QCh4WnH3}zV$o(){HnU%*pRQk<{5&5b)9M*lToio<5 z_+5<6OQ!Rq+&ChrtcA0hwj>SosLFz>jQq+6YI5WZVt}zHC)%QKt_?}R`t_#n?rK>ia!LEM z$M{qdV5k_YEIwaqi(zIU40}+DiA|$BhB!1c82B8TS+^@3w;xJo;CSagv{yqPBIW^DhgNoysuBuK)_xCcP|m8m@}7Xm*#7 zt_u!NZketwNDMN%F~Ry*rFc$BwNDD0c`)f46285Kah@d8GQ`!Z#WBoRX$-s&c%{;05nm&f$XGSH{BrH~D|rp(TgoMZu4Eu`{h4ikADjWXcxStV=&$2({u+7-;s znOtObG@eixar|AXSYr}$cwg40SVq=t;a8rZou)}AltJ|7OKpDXba2Fi&Rb6(G+z!~TnRK}Mdyq2j z=ZX=si3gRp8RS#d z2Hu=ik1ORIaZTHf)Y=~@8pagxIHwVuQ_9iP8Krv)%wSXaQu%cz(lJZ7Aoeuxar%*k z4UyWL<(>fIrt3r^SuI7TUlb)4g-;x04s6+RFts7+D1#7^Z4)vF78Qc$i*0s8o_o*^vfu5&~RB|wCm78kSN!Tbq%9;^M>Q1=&RSBD7 zlkHPnOr?nF>sk7Rz>YF;fmBhOsNHqJ=k%;zWRQ;CNvGV*(?~~ZSaHo!WvF5iuN2u^ z%)*1mdPb1#z~+`XTgu5lHA^WKZU~bheo#27a}wA9W!!c@t?Nm%}2MSWjw z7n5lmKwv6?`3zUd{{Zk%E2UqB<}ReZKQb%oWAI6NABEDo#!;VnBl7l7m4NR|W$9DN zi1Jx^>M9W+KGpLw-2KWVMRuIhE_aiRQ`?@DDC?fJlQb7@++#kp?c8Iv5uCB(nqIxJ zP-;NT7!gtK+cJ)$H6+WmfvA7wsQS|CN2#~s2Hm1WNBQEiygtQml-91Vme5dRKK}rf zWoV?W>K@%H`l1=F;zN*~kN*H#x&Hq3(Rif~?pSmq`d2&Nl$k4I=-=6b_^pnu26zak zA6EYW>s4>sdJwW{GYk^Z9)I9R{3?&^(<^^yY7wsiqg?(OHE;Hq-S%xD=PDB)sWt4U z{>FJ}TNQJ{5<<#qWd|O$3_kT?cm}*idgv27h&?IX?gOBu+undPiV77^C(@k9-W6~D}&9%%@d{#p!jwPH2eqa1gnjurH$?c{c< zBmg7d-imX6l-fWkqaM6bLmXgI0y&%IBB>Q%a1C0OhDbF7_C2dI(ECOCfbU(mhji0* zeQORfUDW=fxa~Cz*J!x!UeWNUK{}U-pe(tLBrJV6!4V7u7Amt+c*!19<<93>J)tRk^0h-+Kd;(7pS(YCnNUYiEfI&5n zvpofF=z4w9S<9$H8yMqnEtn1lMtP@AHuPH#O(fHMpF&4Bny)A$V;`5(9jcwiS&1Ci zoOpl764=cJwc8iB>U-lOiu8MXh_9d$!rRdDFmqpThs4ILQjX~S=N*Bb9;1`lkt_Vb zbTwsUcs9Imwbzv^*V?H~8*a$rtXbQ%qs%1Wa0Pc$itE3H?;dz%;~Qs+MaoDpdX5fj;9V`1 zW)R#A#N2&7{{Ra5tM+yAbe8NqKXosg4l@I>&&qfM@)g~NoT9lUvGDvwm-07`!)YbI z`JNl&uLWFqTUnL{LL=RkZ^oOUO(I4jk;p^FYwHh-9}J=K2A=aQf4otUz;nkqubkxY z#JXM4hGfA971Q;8Xizj3A|<+&YrtZGM@Sm39MmKL`&*z(;D@Y*+)$DWw0y0&hV@xd6T_=`o8O}J-4 zf!3h3y!%8YTklsiboW{HS5>WAn>lT=+1@mA9HxF+v|Dvu)U5pM zJ`=vSdpoHhkxDu?3iKkne+T%4wruVWNANfFHR^x0$HJlD-w-~pV{fv`>9R_$0B%YC zV!nCObrWxNta|3Up;9%esl@f68A*F7?s|pwym#@u5&?!71lNf8qQZX&>w-lEVq={2 z9c$UFu0GLfvM(d9YXir+B5Qg({JEJ%LGRwUs@ib6-5nTNyfuGiEn>_KCsJF;l5}i> zGJmaF@m8GPB-1?DHk;^IE1%;45=Yd5{HxD=Evz<|s5O-53!Du7YtpUqtdc3pbp(Gp z=%G{F(zEDtVyVk5#q-5z_B`^(P}_yiUdO2G!Tf9Aehv8R{u2vh;hX6cYc^4tEF_Tg za|p?3$^P==k8h=Te~zqU)9<9ewoE~B%+as#N!@_-KjU29lj2FN^-EjJJEyh1wUK4F zxQ~La2_WXUr6*2yZ1%A@dRdkl>#yL?v$c&aHLWg4nSXcz8(4Fk9u0iA-2z;S|=i^E6TZ@mD8| z`t|qCcgh~pl9}+iektX6$zkfP9_PuEFP8iaQb%&|xL|RL+Sjz1EN&#;F@ugqJ$<5=t>EAn<2XpeQJB_?=^RWlh-xOUP&wr%6f7!`PE1@ zXN`nza-9e3T#}l-j`-3}(nq0uF!-~q{2%dX*7P|)bw1R-)1)WJyo?-`aoF|44n}<| z=%0um8ay@ei$DpY*|mf-M~QU%f*IkERxd*G5d_Q@6X_ro6-T6o{#euH(VqQP$^x9?(1U`R3;boI~YUoZaB zR%1)?H`>{72>={_v@j_~F?9K5qenN_D%7py&zbeTOLS#a{LRH++T~;&yVJbSGdXOU zk9OSGhbHA?>tL;BZ7iQJN^qG~)Utvz)A6bnw;QAP=}wwMw4R?@Nu8I{=I@9tBDIt{ z3_#;5-Fl4Txycn^Af< z?grK#n5yi|Z~@J0U1=982`lE0So!{ymn>x)4U|6oRM^5%>Omroc-m>ulaZHYABm>2 zp7h=RUQYz|1GO~TF}p^R;d(yf{&=SbBc}&GpUS9BediL%8pogEU+GbOqD5oLsU|(n zw@A`jlUQ6cWX}mEA?>#u4Ej@dwufygLiUj^t>N8YOS6>e(KM{fhE`rjT#;U3 zeQ&DAEB&fDqZvPWNcFF%^u0>UQnp#3yN+nc&&oj_+~T6v^jkev1Ls-B;~#xM&*@Pc zqo#CKPlcZ;wp1MTs2Wa~>t4sN{3^4N+DlT=H}?)m?_PDScsBb>kmeRC{opvQyv`|6 zlswLO$b0pnE*V%AVyEkhNh4_3f-rm28l>ge)wR~{V8K~f`ec$nopm}djTKle$j5EN zfm|A~80}Ik)SAY$qI-6qdu^#hl-n|%)lXCK3>v0h+xJqQcH;uP!%NmKG}(j0As@=U z55r#&<1DFm+Z+4csU1q9siclWUhs|niy;$2#XB$uADwgZDH$Cr=$Q439bOX~d3Olh zVSpyNO?%>jp^K zTLfU#oU)6LLPfZE`9>;!wWFu_p7O<)=iWW*B&neKo+^C_Qfp>XB_rlmzj$h_9ZNw)d-6vrV`NU4wtJNTo~ z_O0;7;ud$cee2XKU{-FE;>~AC!iQ&HNiyHox}7iLWO7ci>JT(z`}_gv<1+bGaQTac52U;F}VYp36R{8-}0sNoqvdrrfIv6rYVeb zKq)n_=`JL1<8RE;EyJ?mjz^^?-&!{G6`z?meOObM-i4=as^$ReN~(U8iy8H)l{l?A z#Kuwdr?95exQNR0?Mt{GDdloK>Nbq7d(<~`KBJYYMd?s3cVn$iy$7vaSitj5VNcKJ zO={Pm71?)m;+wM^RIO2wipo&xF~81^nDwP)z|UGtbTy5vYM8r)7{@r`ldfsqhoxLc zpx?boPr%#nO~q7%B97GTbfjOs(-h@7sq`nP<;Qv(+LNBblX1_rQA2a+Yiy z!bf5;T#UfmTsj^rq|&tkbqAKsmK`fUUDL}bokt_BDQd2Y=u@}2D!?8^T5L$WPfE#+ zzY|w&?l#~N!S6~hp&~N*ZM5_0L$KSmxHTom-P|gSj$54I)|atd#M$Z2X;hB23@y0h zy-v}cpo)(%c`@7*=|c_&(xUSU^)#y>Z_cz*0>me=t!*~wMJJXHH-43jvUblkJQEd= z9Q)TrDY(fQR9wlc8@G@dqu#ta^GRoQ=R^aX741^NFp?3DxUA_jZ*UvP|5gWKKj%uEAHKYU?^Q9^*1Xob9nsq8u?r8Nt7_R?15~5s zYQ$_*b>g!+V=jzISE=hz8nuvDZC7mOz>}irPY=hR8 z$cb(wOm>srjBa3Bg<`AkO=sgh=tPrAAYwL+wH&e?xbON@VUH|N(wXKR$GD@+1Yf() zHDNwndQ=hPoc(G^{8Y!j(QqgmTpHBe-|~a%{Lf{^W!$%(1)ksyO_N|LMLNL@XGG3d7t-BT(>suCZxF?fV%z!Tg29^65 z%3Tnuy>Z1#8)!b2638~>(#bIBDlc;^N+P2^*6pcG^^8;G8;~3+L%C#Gswe5RQbIYlxXs3gYD^@N!?OE2O zg~eaVRiw;G9mnBW_mX_1d)0|s3)dBsc{fgI8Yx^z6`LnDg{)l`U4Y(-ViNgYFswl6W7wS zE=vYE=xPnok9?z$I2D0-!ZJrwTi4B;@xZQYQEjq&RUxyK@kPg&%NY8f&c3Gofqovz zHnXVsj(ERy8mh$1JMs<1z$4*GEw6z`A%easH11=cn`)%~wt0Z}{!|?oKn}nCrBpwM zw1eNzZ_$7H_3P8u1kXBO?4lSR7x!?37UCf$}f9qQ~!^5hH(NJR0ULsByU zxvKlNspgbsMaMzXuH=fhF|a2*3VN_^LCsYAC|vqeqrzkZQ*ylvRUE|aAa$gTj&OR? z$fT*qCWc8%%x^Od&uV;jqnS8%Pf(~n{o|=kJq2T)M(bP3- z%Y)CED-eGZS@`v*43INLMY@Q&qUlrXI)ql1%f49-6?%2AqjVpI_r4JLJK~u2TXjp5 zx>$(AbWjIBTKUsMzP!_Q7^kt3;<#VB(euWn9B6-&cc7R#wc4yYPiP2Vud&2%f%sJR6<97Pw-u6yJk19M)5C*2~sy>m?$Lv}uDc#3@Sx;k>qLZdr3xyh=A$E|kW3DvJG z?xHsH7%ri0(LXr)9(^-ddTy1zKp1mgmEm88nufkq*xR$X=j8;~pHG_hOJml?;xO=! z@1(5Hs{R-F+S|t(9BFbCU8?PtGmPgQN8wzT#UF;t42^RPc|*t`SDooL{vh~Us6~5o z1d&D#A0U9kxasX*PIy;Rv-pAG)sYIw9dN^ggN}b%^dnMq{pYdyMn05qb-lI`-Vge* z@=VrE0~KL{IHq}C)$6|yJ{rlT-OBMMQ>}U2x=X~xSYX$w2}W_|Oo}+T)%7s`&Np=C zn%1Cu8rW+xI`L7puNmuCWO{L_ZEj^4O7!bjY;FoTR^U{o*V`2vT9L@>SV|{Er5dWz zGdxkJi-^ksyVAVo;@sI>6M_bPE7##sD(sh@)x&tpOIvxFz`*NV6=P%7%ImmI(R&zX z*X@+neJO0j7t%spysrS8bWwKq~XTc4$R_K&4}Z1{T6 zKG}TucO!5}Vgc**#eRJF^WnYcfpy!hI^s4D3y>SLW4N!Re`P<3Z)tFvHQd>azUJfW z+xb_je$oE`1yjb_1M1p*S-*u#9it_>oPK7!PkRGbk^C(6u$2}n9Pi_fjQDrLx~GzU z%|AxqeQR#wGaRK{W+tv*P}6QSokii5S~+8EGM*0xx_vI_YL=or=0zWkcKxqX>%-jk zi*v@lD0o%$yWxFqxQauZfzu!TdffP1;w9G zo}j7Ee1D#6$u4b0waW!RAvsh1E9h+xRfFPZf?f-iQ!HzS;BH32!3P~H!@NPH&81&Y zZ8G9W+Z{UfC2x)_+4y_$3iH6eAcIhhnPMZ#xsNy!#(IP9 zI**{QuXLSC%fy;Jz2&^3ds~Fx6DY=1HIr!Hs}I0 z_R4>UoU)H@bNSN1*7v=f_GdQ|W!~0@)~PRgJNkdXC-}MGxomYKa~yl1kY|CAI`BuW zc*dn-(8x#_9>37n*jn@{sY4`gppQe(t$4SNJ|4+#uXk-9nFm)uGDluO{{TOwcH%Iy zTBFCwvxQQcr&mU_JYAb=^TDfDH%zhs8v>uLX^mqq$}&3V^Q_M}u1Gnr1>Ow%$jMZK zYg2mq#V_OCz<=}BxjjP3t>k5O+H0oKwFP$apQ~^yS5nYdQGlr&!2Tc9u6!wbDK=M)=h|-LWSt!W^dkrGHQj#Ins@ewlW%tz$yrpkJqrr>t47u? zG@JW-%V}CGi+L7AWjG;$$gi+%{ACZtZ-#Nq2z$j)V5dl?Yb+7TMVbT_XKu1ub<_<$KBJEQ(VhKvV+2KTf$gI#rov2Bk&cO zscC*vo-hdKk4p3p4*0`L@#3wu_u2GKea<^2t=k?lr=)IA@bs!4BJl0Sh1B-*z|l() z!y^nIuh7<4v$H+*LY+un8y;2mi7f6OEbR@*Zk;+B*0PLh*78el#-$JX>v7U${`&il zSw={{K-k?JiAP0TQV0xLsLT|36sMpw!GAdo{Z1bq!wwbZ7!Vyp>XhBg@ot!-HN!ski1l)))`Wf^-}Nhor0j8?wy zLm5gE@;DaUS+Y6jpuqeoj>UU(T{MyDy4;TO$Sh}LyJPr5<3$vLT-0x}N`=td1Okf}NAM=xV5G+EPiYuzGYC7sNc zvVYSyARnmdUW?(Mj+&O6wjD|Yy@$M!;a~9;<^+Cp#^XM;KFrb;Wern4n$rAr;olQR ztrglsIpfKgZD2|5+O#e-`&pN4%9BLj#5u2(W4MwB4;z$W(`g{rQK0-u)wF348NB$1 zRg*3Gb6M-MXKXQ1dQBdm;!lP;UZAffu@Mu`Vftpg!(I4&d!)$NUokr7y#mMLwwI|O zN#kp0ZoGg$m2?K`+g631)>XWZA9tzgO+Jj?P@`AjXU{WP%L`$Ytwyn);=M=28cnXL ztwC!9Dvy9)X!bp74NKwtamGw1C#_Yx98V7KWO>s2Q-(pUo8JyiX2&bVWZXt#z#xP4 zrDkH{;#|}9i>*DwLn|R3mDy;26eop*cgQ4*rtV4ntIt98rvp)`QL8AP?Wg#oNY#`n zb#Q-%Ob_c&>z@wvpAbT3v?~<2<7vqLb>dOX@U~HkpK9ndKN;#eLk+XDr}tQrD6!KT z@s^W9c#FV#hKsqHGbCT$QJUpsjIKfadsnvTzY;9Q^!o4qNK zT#Vr{gZR?r2~v!e;Lj52Pm1D8c>|*mM>)-0)wFB99_8Y?fukyMy9XbgXOcdmrpF^z z(VYgL;srPtBPaXSy&MqUMjcgMPeb0gFn(IOr|Q#KxGLvw_j-yD)U0+t*z%{(1GI0{ zV4B_0d`YTltRlQYJY6%#_*O=V;#*thRAc48PI^~Y9jeV4!sp-Cwq4CHeT$b~7STL) zY);j-x*v6v?fmP^JWJp`OT%+M==}HxNfdF4^qYM&TF8M9;1 z#(J85>sNb=l<+o?u6|OqEzcFV;=8RrZ9+z|Od&bsfA#C1W-Z#Xenu}%1#5zH#Ym-Y z1`iB6RcZmj2Bip;#=@6o(Tr0~!*DpMEmiKN5unQ+)k4&1j{`K_zlCi}q00@n_8j_F zTV-+x_NquW(U7ZcrP@m#DZxPPN3VLBF2WT@tw_BpC2mKpN(ijpg!K@qC)825@TDe< z`teh!3yMxT6cbF`O>GiH^2In&?cR_Y*46=O59LUE(i(i-0BduOF-UzePbWO}ruHQD zpe`|i;+cw-r1?)36=qr!J&gwkic^pBDBDJb0^7{WIqnxxlK@yD)M6aN4$6n-_#v`udzjm8S`P=q-fD}zu=A0!Ty zB{`HbT@nub4nI>E$Q-ZU5AGpR-LRcg3Q6Eb^aWXD-}=K?v=;g&o#AUI&U$M zQ+FYU^{$Ff?6M^tnTxB!e%#CvVj0ff59?LKM;f1zN&F37)*;<>v7MOuttF0*v&tg} z8RzEfT+*j`H4|vNC3a>=RhuC|`f*C1GLT0#(rX%RovxOAq+@ctvoOH?KN{zue4x)- z!f2VQh(l9-jbPEyzU5ZRw<9#2{i2pEwuVl?jMQbp_ArrxTFo*qWuUb2j$2ap?mt8ViWYIJ{J{8V_A20;;A<*c&q$v z=}=D=03)SUx|b3a1A~lWt;w*$2wr>DaJ{jP^&sF3oDS7dG)GzRw)#6C6=uMs`T8`4DUC7KrNJ7PPrhkt9lZ_WeHbZ=BTRf#}(ClMAOZWh^5NlHzV{F%*UO;4wdqFh;mhw zS@skvdrEPVE~;&V9SuPzEIsPO{m^QQH}5&=n&*;MHhyEz%kN1h)gFhfHJA^rLed?_ zxU9&y{n*B7?T;@btykT+`qb9raVmOMEp#Aig2Jpv4&}};YBi5+g-PPAL-R3EFexba zHHawbo|NWL2*+BODBvD~k1a?iyx{?TT_KUi7SJhcDeVBq~*M z$BJsFdUqp|c=W2+w8>SM(;}S7>C&QHHU=?LC_Ay9Xua7?j#U60aZOLVlfkJOeq-Fy zD92O9F1iBjAlwuZb5GhEsKDz&u0Y4FF4NDYT5S%&f!dLV?$oNdJn>Hp(yHZhk%-Cd zgHBkjj?b=12X<$2?^NE;sYNoES3^q*)Wy-2xBuQvx3S?;=ywOUKApmnHx!?<&rf|Prf z{NqmZGr%=Z&K)vo@i9Em1=w4f)3Y3pO3QbC*{LZ8LRZDjHK^-b~&I!#1Bon^u7HgV zK%`dPCnqM8C#fW4s*rfi5-Ds9WYp{J+M$w6F{$%FinmMydivElq&))WtW4XRrUgMM z3_T4=q)gcWKYOUG%c8j?aBD*ACq0E_%%ta>;*q*CFPl5D#d12m!BR$RtiC@h^I2XS z@O|%(d{JwoStB&}4ivEd703ks8LNzL>}OV@rxz(bk5>JReh*}kP)i&U`qQ>4<#-kO^W6T1K&lx}6pFoQ&e4HRQS(-2tIT%5 z*c6VKTn@DD$8e=?#MGgpyDMj=YP^b96`{9`jnm+qCGv&#iN`O3ilbZ2QRDYONfjo}%{{S$aMMoSg?UFzg`F>6m z=9i!lnKx&5CYY;g-k_*bg5gGiNgX19Mdi)G2ky# zP0l&#P_u4tn~_w(5i=6UJermPhQSpZ6=@F`tJ*cAUSGu$jm4W3E$oJSr@-G2Zj4^K zV3UFQnxpaKUi)Uax_TTe95y;+6JC|!nBwq{gpBM07@{rs;E`WB_=8rHT-L7dWH~a( zSbiqD-iae8zJ_|Y<3f$bj8)Ah#q|r38Vrv0Dm=|35|x$TL%jHZ;A_d24MiFW12Dv9 zMcubJITfYi8*>Hp;SR&*9IBo=^r|`(cN$A6j#i16fKcMJF1OrBUC!oXlE--K6smE=Qiz{kG=zS{Ur@Xp`E z`YpOFE9Py>HU@fn*N!^LWHzBT|-Z|@g|-fcDQBFuUhe67I-jOUPw0Jdsdc@@p{|AT2fkSZbi&rE)H;U zz~-{GZ;IBQCX>yH208*dS7jF}a%-XHPYo_rE?;?dIV+tDVf(d4O)UQacDm2E3zgl4 z0R1VxTyhT8==)CQaIE8_IOfxN>56amTO43!yJ)m=anNR*+DhBE&BZTjuVa6#w2ngG z!>u+r!L0uP7kE8q(q!Dfy-|@~fFy<0WhfA-9lrAlI8Ob)Tuwtqg4yIJ0W< z)boLn)~Z{s**fC2ZDw1zc_TlqK|P>S2;!Gi(J}XZ)^%PB)+N$!A)Xg0ENmHAA48m1 z=r6#pi81*1!^v-QRj%SqvMXbrgFl^qZRwW=834~p_HTtB6t4UOd~YDjZW~#993DSf z!xc;0(rVhHI&I;x3aWZN&p`dFehA5>+{@xEE)2lOGOG5^e0?)tE$RB3X}60i91QY5 z`ql5>5&k#$&&F1gqs#VN83r~+Nda0qE1IS$?0Bj)1omTV0u@c+oLt)d(`C&T^rj*eY5?c71S}!1Mh-l5=S89GLevf z5J%@x+sq`8#_AY*jDy!AycfW~786bI{jQ&OS&hD9jqp#&l0u$4WY*@Z@ws90rM9um zkhXTa{IV#{K{)O!>Z#)C&YE&(<&`oVR4YytqkT>9h#w19{@#15CEFqSwqxtiSI?T3 znLeL8$1*ZHoM4Q4*Vo<|@imW&^a!;(2{Q|PvPRe~6XTR`asCy>{6zR^4!s-PTcAnt zoc29UbK4&RbCSrveVG{m1Z%pBjs+j=^g{uqt&yg++a_FQ2zjX)O~A+ z*0fo4o2hN?5TvNsiKyH9tnJPB^*`m#)XC_`|^q zs#>&=j9kVtr`OomkKJ0yYcs_v6qQa0rt)Ah0yidbNL$Zd98Eprv*|rdos$m$N=C{hWzV8Uhwt* z0EKm{-4|7~n#WPGkjE?&DGk@9SG_x(!3w> zd2MXs(Y#r0CazY6mW-9~9QpTd-)nzK4-R-Gq!v)H_A z;I+8X&Z(o^$E@j6u2$mLkTMSpzrudL_2Kg?MKdD|5OIp$(0os+_+IJmG`qL8X5vH~ zqmJQ}@Im(#i>chT_5Ak^6<$W%!3Gy6t!D^IJM3wSts2oyZd>sG0ElipJE*P9Up!6n z%?Up&shp5~2<&UwH0!AEtm3`0n45WqW9WOFgYFK0D)3X^v96oI{xok3+%>JxGU+!B zx<$rX7REfp{W87rS17i$Cku$>e3RJp{Yt{iQjCkM2+QX`Xouu~$NvDXD~s2>BGKDi zKAkVxRDqaSVpYK>1K04b>+KQULL`brmL?ethbq912&xwrfw@Dm$4V)k)hNZiQRBb7 zftguZ7;sgF58^7-p0{&iNsdNQo>#HwBS$eHahsD@7BEczH+QFixqaYRk6%*U6Os0Ly5&J^B9t_0ujqA2gAfwE33q z4xljszMU$zr{VkkC5qhI$r%3d1h3#~y`9|FubAAa{Au%BOB^lAI!zRAtY)@ivc}Q3 zqYQpVs6Y z>IUNAdFA*ldiUx1*QM#+BGdJx%yNWt)lU`Sh{R&7Tir=+;iF=WO*=YBBo4aR|V%@6Nwo0VncbIo(U zW5(G=Do3Xky{CB6`UO~So9!@k+Suc_rCyTUw^N(qIa8I$=}EZPTQ-AluB?;Uy2knc z09M2g>s;0Tn?9Q{j%C61?NKPSNeptbuw`PW@~+pyzYrf!WP6s-8#}R^D)K^0dgi@`J+4$M$@~RUAWJ!G42YP_o32mV+zRDJImT-e%0SWW>V4|c{G^e^cScrx$i?<#m$wgbF<@|hmAByE6J2<3 zRa=NH;kl8N$F^vMgPaV2M_T8@?r(aU-s*dKm95Un^YXCkRZdPb=1hskGLI~ePVok# zdE$*OST3}SXPyzQfr<^9S2I3xggFG_vZ55 z4hGN;I&|i#wmHRGv(46??fu%K%t0TOc~ac>7s7-m9D`M-lXtf?`6kB|19DAaC(xfE zGoJM5*X9}NQT52}Qbc}icBw{Xh5rB|i8;?bsaNigN=C;uNRmEy=OU6%m|}z51Bz9T z%wRemwW>8D+lD!%Vs?Q}k=Jnpp4AgEUbRK0OOl~TKK1o?!W~F!o&!WI8RN>Hc^v@$ zRq}G<*EQ~cvu}tRJKNnhL-I(uQTQC!(B!qfo+U-~K3|BaI@mWj?;T8^jha`Jbp-gp z#tFx%CcM5AyN>y zg~lOQY3o#`jBdy{HK8i3k>y4XD>mXinLTU5l0KKAAKpIo9zJe*Qtl@h>rx2GT=dOg zWXF7geK@GMAEijJoaenf#(rMrv?rkT%P2VZt5L?tqde3$>RCuURiWrlHAc}6;~gqY z1@BShao(K0PZcLZ@*b`8ZKs7FT1D;JoU85LsxPA`O!V}n$Y#KyvA7lKN~%k6Dp{%@ z9^JU_Qjio5Ij9%!4l(OiGt+k?)~Y240nUACyKsG~PK)bE0VgA+0qP6hgBcHRoefgC12Ib+WwLsTdZ*3mD$FqFpsOW|ZwEn&)P@Ww$K^$}xBzFZXhRQt zQRoq5ai-jHT6Q-3`8_JUac;+@Y1+rLr!*IS#-^Vds}3+La^6)%$4bPvV7NUh;!T`( z6(>8?*jd-Pr~RZ3I@V90@`0Li&CW+!n+ufFH#>UqOlzIp4;7m87AKrjM2Bx3Xt3;G zYk|)-8r%?1IjWvx9Or{iLzWb*7A{35=H{=%#s_+#20G&=uEO7eqQpNVLL34Pc&#gT z;11Q13vvfq*0%Y81L;YaOxd#mly@Mi zXDIQmgzWM$k(E#<<&0{N22+f_%YIIp+AW&Z$xkoX5hk6hIwS#^uW z--ZDBSr{OGLcIR~_G$P8nxwIKn_Gu4Db2hrI^dp9>0e(*7>xp|;YR>=uR@JGd(8NJ z<1zM<`n@fd{Qv z-krwZdSZk4Q-%gl;aM}H;&%u1r{i+-O;9uQW4%bs7=lJAua$3FRufklx90Q|*(2O@nvt5L`_#hS1X0E_ zkxL@&QO+pHT;hkzCp7JFwST@EcV7zySBAa%evKhC@rm<)4W7sPK8w~4$_ zcW@5qRkp{^7~}faH*XoayoTIxWMHfHBmw;ESMNI`9+zXcWC7Z`PY0_)&nOw)$Lm$3 z@a+0_xp${Zo@}+Q@Wj={A2uyPnAg+|kJXt+IDf312)leA!ptu>I{%HzJj9~~-Ex;(eS zelWi9j--=Y$irzHkembcudDtZd`y$YI$&!!yz7-*yeX1+>TzE+_|w5{3Y*(R%zaw} zIQ6Q(4t#y6{5$alwxeYy&l`Nvw<^n#!5Qz0^Xb*AgO{_D(DiXxOfGFl+H&4Y`my$% zuZ%T;fgXu+&FveX=~}u@q2hbX^q=e!S_S8GsZ;uj?mi9tYSR87XfR$wYYcY^F)UyJ zLjVCkOy;_;6L^SS!ohH>?OvQ*^p`c$KRCryrAf+)pp!=~-Zs@rt-Zy=2gWj_kLy|* zB-2eWGfL8iKg3D?b;aMxf>)871FtpEcrV5lmbY;iPdr9&%hY{qbycUzk>b?BsL^#I zti$7n!MQw9;YYvH?f(GN<6YZSa(Ey8diiI0c{;)t>;SvYGr-qg&(*wDHD25^?!gBCY$w=`#39;r)$mQ|fSj9q}}8 zD%;$?(BF1L)1Jn?3dc$_VCNu=`&ZAJP4Jr7E4JBJk9?2*y?Y13-yKKtY1)y&`?1K~ z{ApA9r^nW}MLoN#SHS$l4ye`@`{FoR*ax3j^OH!KtCx%AKbOO9v z;wOWDv}2H}bJSNm=9FzM&#TID@x#}$_*wI{mD52W8NjXe*>MuE>scDsn)+SC$0FdV z#V(V40|jHnVa>~EYE zriYtST+!8RduPGBoi^_A^j%&!AQczS*=t7(O2~5~7V(-7q_ofN}ZYS1hFI$xETZP1>c_==dMR zb`5PbgB8s+)Uoag`%W-1Ub*oX!uJ|Q^~Jr^TPBR)j(ZyNJwn~%nBY~_R##f1>@ans zRvMDWbr!j%$!91FD)7pBj<_S()^CBYqwt@Lq5FD=vEQ~;BZ9g9RZ8tH9SJ=g4+JtJ^F^842l$Fx_=V>L-en1wHkPe3Z!>F2QS1|%5y1U ztG{vS{!ICs;dF3cYLe-*MI5Ph8w@xZ%7T7gI+35swmf<8?X;UWywkkd?LP6`q!12y z>Dd1OD&XUiZ6-l;1GEyUlx=G&`RwVC6QN-~@kJQ0F;HTI~uS#VK-L)yGg<5$DAQzo}#77@SK z#=gJa0=jc78kg_jdAvEBNjfJlTi zOfnm&>0dnU+IsLmKK1IK4}3-T?KIiSa$(?Sla7B%^RQTl8`GA@yPaS;lEg!Gx#xa7 zvxiUd1ixn+Qcs_6p*hYyvzq4SUza_5*K6@g%)_iKfMHp2k?eX`3eIcC#e216k@eYp z{iYV2o4c|0m&UJ!_P-F|6Kxjy&9r`9z2ET_2O%8yUcGu|zDL&dYwr%~GT7=??QL}# z!B!X@Pb1VHZngKWts(PXH~C0Bai4I1D)X<1UIEj5X<#GNVA(2+L3thn#(NK^P7m|1 z&u}@1BvdD{`$lDx#5S(rxLxty*mfw_tE-&EeVOOpa+}pv&HT|W9Mawq=xla%44W`@#Cowk! zSE~4Atd~(r4o6YxTg7u6^7nN|llY6n_gW3nig?)vP*1&Nu50Q40Ek`_xA7*1jHse` z*E@zY(!OfcY~N43mIoMQIIQi_l^4veK)q^J>rp7F2i?tS%b}_?G@IAc@1mJb25@kD zcdtj9MAWQE>as3t%M|g7?R+VzdDdnoIc4Ie{S71UXmPrQxwpEKGC2mTg~e`o!r#l( z1gpZgTEpE=$2^sthl)@^rmJV#mlT@pK&P!MQ+E%P;p>z0F!eaAG zlN)%a^`;Tm(xyO&`OiGliNzc*9qFaMYK0<$CY`k7Ii{+!XB^Y8c?9CCm;)b)p^wY& zN%-?XUPUQ+m2CuGnLLU%j(Zw&DCjt*{eN1`*hFkL6pC?V^9JF^V@`AO)FDYZ z?N9r;?^^)iNWlV}K5XNyGw);4oTF<2RS}^I(r`~XsT;8AO;rlSlf^c*0m{I298;OG zgH75FX|gftny!Ehz~{O2q*fywbfi)F&`&|quw^4^(&2RrQ*R+AQTJ;iWHGxT;H^3q zD8ZGm!;x0+BNvw9;y=E;I{yG#Nt)2SV9jLcS0tZHcSk5Nf*0ep^>*x2^zLNYXL0`P6j|8mFUkJ z_|xHew<;Ru*>$Ind1zX0wh zCy$`6$}P#by_x3XIZ{n-k2moClRP5s&RCc_IW_Y~h+}AVtCVgI;(t?IHR=034^IzORgKY{&60Sg=ZZ5+f%UIE=;%h>zpYOh z3JpfePC2DqXt zODXIsw8^&=nMi8OwDZMwzYBHaqWHSXa@a;~hw&g+3Nf0!rreubh~-wpD*`_X=)=@> zszz&}h9Z)!N>t_4`%}gi5$jqV!l>Mm$CdBbn)we*tS)S`YR=iY8?kj$^ogD*D{&pS7b5LOu_MYkM3;OdO6VF;ye6s`H(| zike6HanMy}V8@(zpt$GHOq|oEnXDQf9csMlVQ@0rA zt6hy^IeYO_B5nY5q(vRYN~$yMS8n9UY9LdNf}{hk1}WQk=~5!@9dTC@QzHZAp;Wdi zPcMvpr?l2 zftmzPB+q<`nHYBIRaYDeoj?Hdnrwn~Z(5Q*qZJac+vsWP+i}knyu#(^ST7Y}PEAo+ z4{EUlg_z{j-o(D#ZQsXC(zumR$-2Yx9wse1KzVV z=*JlxR^(&l7^yjAOu6mAs`pGXMND$5oZwXpwmjmQ1uMo3r=CS&T(<`t8qm799Iko# z);!EqKV5oyRt1q?~+DRK~sL4GB zE5!aKc-mcZ=;`(@MY5bbDf``s{VUtT;oc@{D`WEP*D;1$MbwwX_C^Pbd|5Y&b%_F# z_GCCwT{pv@4t=WdTsnM<&2qX1h}Ux@NV#@6uX)gPi1aNUG$BJ{EPnxB-ZrdgQ&ef6 z36S6_W;m&1E9|xToVUeIQa=v(CjQ`%hhbIi)EfBeHvZbNmE<`xF+ZJp*X?QJz}7Hn z7II`3%)3u;Pal!58}R(Qbk!g1{{Twu%V@fE?)sjtWr&Sh+|YV050?J`XfFXBA5v{b z-aJJi%V2R{EUa<|<6mZcX46KgqBLX!yDP}gV_zR?b~0)Al1A!NYY;Lq-o8ILp&D3* z;lP!)P7r=Na~D`x18);yI+j$TYd>o@!a3 zxa*o^iZ+qnp4?#58{3+e2-nkCe`d(1)BG!+{{WWF>6+it)SE{cz(0*)pO#1Z){mnX zktOfVYwuWXTeJMu{{V$yx89`4k?UWxzE6rJ9Y)do&3cFJ3=4Ql91Q;Pf310E?DBEq z!ZZ9o(ATVf&^iAAghfB!{y^8ahhOZnJerUFr5`gV+&#@r7(P;xDzdS`8L1LRSn-^W zwc+}n(Qq>D#xqbz1994!lH-y^AHsRXB8D@LbHJo720-U6;9jb0oBV_YJ zj`Zk%dGx6adt2JIQR*T!T%MSxNTY$8ByG3~YBk)<2T@c=uA^b%qT7ywtVtOdC#5FN zDHMoRO1Hg8tC8=Tdd7Gd=Ct%}7JWwYIMz1W&5YpVtuD4jD{juS;Xi`p@fNidk|7Ww z&m)f2?LQbiRR@CnAT+C9FD?`)+IlF)bNE!g57X@a9{6GJ?>5C0OSzcwoMWYY@#C)= zTzJo4xV?5JE!$&XKsX2T71Ea?xy4cQ%gDdQBZ?e+ZbGhA-C zjk<2ee=e1);%^dK>V7D=Ygp14GB6|Pc;xh|fSKy6@-6%WbDlaNpHrP6e9 zBqnU+x8v5m>M@jBgm*j~QiT5ic`Xix2?X%&Q<2lwrdZ1;Bdu~xs7>M9u^gu`NPhQf z>U8_Xoe`0;tTHRqr%_Gvz0u&-qUo-6v7-*j6f1DzrbGx&b5&%FvgJ+eUM85|n6k@UmPFXQ4iqXA^F;xj^tpG4l>G zYs>y5cntV=P-&n-ZJgu~I2Gw$ak)eDZDlzJ=xe5rPPXxegw~UVGAixK>z`WYuZE5y z4i9y))k_^yFQ}_u-FvUp@!y1h6YqW=>d7ol-a{R)A2|B{we?1m@iOPdkR-5>B4Lr- z^Isl#qr(&UV^x;kR4M_=p5CIpN8m4v64zOSPP=d+k+!QIpXZA5aN12#nds-3c;Ybs z0AItawXdo^gZmxD=iV%LeQTxgo`!7Z$wP+V=DW`g_-4-X2%S+#VVwRI*QbNvSaOlz z;=SKxPLBJZjnvJtIJW7l)LIwg7dVVCD;B?#Z<}WxsL9fz(i9Zi)z9V>6>rJ|iNs)d>z$6?T5Pur{ zG#V2BOP-Idpt%@goCb6Z%gvBwBG3bGa${QQY#Nt>T=#0zmDbwM?X5( zUtuZ<0k17lHjj7@AZEL57W?fA4^Vloc**rXqZNj-=85QOBD5<0gX>*q!+#q;hV{rU z5%CFavM*zj266PwaoR@7t;&<0Dw|FHn|Xux4+ga5QdVcoRi@=0X#7a_{{Y%A;l00# zJU<_a^rQ|QH%O_^q5fvREY@^G9L}XaZiBb$UvB&r@xt9g`Uar>eVpKg^En*#1N5&c z{h&S$zl61Cy|saxOSoEF;0PjE$zuAPv#xhU7{!IB+?@jW- z&nKb!)(q@4xtZ~ZoZ?ST_&KasD3 z^!rq3?sSXX`MquD>9-jpJajef{{XWG#0e~}C-8Qp#ZKpz*Ky+`C6IkUC-5}zmEAde zDeTWLJ-|FoC5ol-L-PLsfO)U&3E)=nPmd=^BiW{35477iVV}I6I)nV{E8zEykAwU` z@k-=aUg2f*Rv8Na0ET}f>?`W8ja~zT;x~h4wTvm$Ex&zdCvdQd2e&0 z>N8s0#L(PA+g%u7@J|%+ah(Y&(K|A%RXp1S@b!Kqtp5N;eMj*R!uH-e@ZH6fpb6LJ zhC$U^k_bMP@=ev9*N62fZ0=E_o);>^p~xqZUrhWV@n`%bIyza-`MR}Tpq`~LKquT| z^cBqh&|UyHSl8_#{pv2s_Ku)%4^G0CGL&&NRwAC}89iy`*oj~(Jvx70W{1KbihtUc z@##8*pXo8KBbC354#(dW>ryOQm8-!b2_lh7vYtT)wR}gW-pOZm9Fe;uirbZk1Q2*N z^yk9gA1{gQj1v%-kuUEP*S6v9T^VjW+DF(_dYpOgQ0UL=xOM7y&%}=i&EVe?O93C~ zlOHk(I)bM;U#R~83eWK7sM<~Nl}jnB*|+pF%6< z8@T1MouipqB}T&nFnXHv@swqTsm&daqssA7%&^?GJ|&|&j~QCYuW7MdLX9a?kQ8L| zo-54mE#4U!Bt}MF3a}uKa6uL6Ul06E65Wdn#@Q64802n>!?)wbX?#`iy2$5Hw~S|J z?>74$zg%PTtg2IvDn8aPQP9M^x~jrdj*n(`o&x=&lI|$ZUR<_h_)_Ykay|k15T0+5>>GiLN)zp^K zE-W`sVbrPR;`ImA3iiJT{7TdOYiv|)@trA87 z7&O4RQEFb!)vYSDw!1OL@rJcAgziRbkv8LMpl1R!08UnQD6`o3B}4fL=a5 zc-#Qs;k>oC&jn$~PjUxu!n&;=#1bP1 zg5{!=dNBj?&34hR%B;>=(~V75=XK%_gfKSdi9XLKUYHfYYJLUPG|3owD=Ky%l7E$U z+E2voR>6W_1iiNCaG*Em&2GozZ5LNyGvpTIYn=Z8O3}JiHL#Tz9;b;-r28ZKY-5rAYtt5ZlB$`(@jb7)Xc$-V}k>pgvb@Z+h zXY$;s>s=@OEPHFKGrla#j)(sM*IZ52<6T@lxWHqOD#s~xMfGHEq-LyJTp_^Sip5tf zJt;SpY=cN~sB7w)YF2v`i7haO_&l-2s2 ze$u3aN$Xm3TJ2&8#X$BYl(6aPSV}f#JglTMpGxk$1LDQ8yN=fI{^__^^gjOpm2oV) zc%wbVRAtMt5?5NEQGacuI$Oyjk0>rfcIa#8Zx-H1sB2de#yBn4@vCQioT*kt9sM-3Xd73{c6Jf2byW5SLX(TeJeS37{GpF2Z@zspwD~wm6`jxS?0lj04o?6t8g&{vyVXINT_} z?b4SUdWu%K{DD(~v~AjXsX~CGJ!!0<`-*&|k^IVVF-y0h#wtytjwucY7~?f8kd1ow z_Nb=D;Zt=}fsb=hG6w6`qf|i#;tek?*ON->4hZI#?tprl*=wO=dFj%h`25t(+@D%{ zkl$L~E3v8+le80zQXHP0I?}QEa68gR_n2a<$U>`e$fRz4skrB_N`BHte+r%SAQ$G( zYElPrnr9&6JX4mU*4(5gBLr0N+#7e?4+nxhY5|W=dKlzXTd`hauOq{Gi}xC!jm&u< zW~AJ9?L8@lMsfL2v?I)V{M?FFC0{)|(jx8YPUoLW(G?S_)2@x>h&>8_PyYZ_SJj~x zmSxm@%gs~JE;d|wN276Cdx}hAW7d&Kfk(KsgVv;A4<;n)E5p-Bw4LR-e3mBdA;bs?U1;*Id`j-xIX6r}&B3 zt^;?krF;vi9bdw>5;x3NFdO;TlKg+t{I!DVQve(j^&kqoWO<;ZiNH^mZks$&zG5*> zQHnU?m-$zRW7|V})0KJVgZWaZ{OUTBuEW9Pam6WI8W*AUpqgfHL9Dy5NT&89-k-Q< z6x<$7Tt^YAah#qhmjiI(o__J9+s$cXRotRhoEvL<)Urf*H4$EY>N<^|ResL;*V}v^ z_U>}fvmU;u1Nl{7k6s@$=@Duv9!zbtpKeL6KlW|ag6elxO!yAFw*3J$?w&TWk5=$b zs~fK3u$Eu0K(Ej!+ZB~K^+)9OMgQ{zdq%|sVCt9OxwxRD6P*2m;(B~f3U z$yuMSZbrMg6)L9g4-}tHwKRK5x>E!bI*EsZp2h_+(3iZrAg=oGaWeTPLGeR9zz}c z>Q(Jb=e<5W=h~_zFET;v(wv~uqWYdHMM2oswmK6WtJDgTG0;?NoSxM*W7JiU$uWWY zQ`LHN%`|a=Pem-*0-6#;flnM%iy6rDr>uQ5RxRP&dT~sohR1GLjMk(!-zWfdsV!|# zD8 zSnWaRyi=ORPi|^@gOV_;Jaws;3I}?wzol7?Xd+%jiaL7K>e%9; zUutr&7^Y`p%96hHyMbZFHEF;c15(6FwQkf7olQ~=`PJ(j7XZ|^Q%_Q8Mzo0KwpM!*awqWp?#~C9M*h9G=N4jJ!<@FFjj<& znK5n4fx)Py`9buj777nE+dEsGTKX$HNLqV|4%LkYOqhR^m7{uM(zt-4&}3#AJOB>0L*`-`Vcl!|NWau12%!2Mm$0$dCU3 zuaG*|yewig01N@Z1A$$%=%l%%e6}|==YGnL-N@~sj@Ag_iB%$uZB2u;6E)0+#?T6Gfk5T(n%ElgWCqU8yg+OagtA7w2`17{w`W{{RD{@DGO;+A(=5{NKZxz3~&pQRo^J(ldbjaJ=)+O6aZ{D;sjC z0wNBbE9cLMy0qRf*M^&JOU9=yx1NL=@-Xz?GPksr$oqV4Xk@q_tJ3(Mhk<-ex|da$ zT+B;6l5XeeRrCY?hmX><{w~>#H&TMs3>E(X16jTwPxMwjtL!N+cIf!^e_-P57#ULo0a^T_1y$Srtlb&xxqYo*OK_} zP1EkYFD=EbrNk2{!wF|*9r*y)gPBnFkdten`i~3Z9Xe2r`ky#QYRboq4Atmt3Bd$n zrDY(Ij2z;nf=-HmO8nWaPuSx8h-I^uF~a0kZh9UMy>3L#rw5T$=KDEz5=H^`q}O81 zyz+VCn%sRV^V-`;z((wi?|>+1(Mp;wYfj^ZiYBI)>`)ydBde%&z>mTb^tuC6@ z7DkMN@5NDbxrw95USs6TLyE+2ylZ8j_hfrwvZPWZBdMu-5hKXD6Zhu2w zv-?0}{t)ng+9ZBe>mBaY(}R%n$Bk2edsS>ZaKv) zYGh%@6&WU{g!)kw1(n1ro~Elb%_|eodsT&u%nGR7*v}Qx_($Q+sp5#_l_6_;W#G*q z!tOc12h^J0F>=`%%5jdeXCu1}oMxm{W+Q5o^ckyK){j1is$5x4yJUs7pH4f9`YYgW zli{}bb8~$5kX-8UlCms^=fTbjjPfzaMjZhY$vt4zW^gz=j7tqr?#M;OR0+b8Nh zYtQ3sQhzFXMtCB*n{sz&YK@hVZX3CyP@+}|obB9k`B$Xqo;H(K@bo$m((KYGon(7~ z2of_XILia*Yt18s$io%d_-@qM+PsA0cO&wyyewR&eupk1N--zCjLjsmsKGqduLx?- z9FJ#ka8%)bl}}1$xV)L1a83u{O-ZQOJ(bekL^#fC*M-yei1O-k$$J@Y&94<{f7%** z;ADZ2YmxAuiJwQjHg}|i&H+8E&@`EbrD6#=7{RU^$Nm;*TkW>Vz~z9gF%gtnuT0~@ z&MiDOQ_}427Ijuu1sjk@HFis2aC3v!yu;zoiZD{n<^EoZ%y}Nw>e0q#Uzg^uPYqdD zf@^cY$541$jXjH+Y|B0(lZWUHXh(0d>NR2VX9lxl)14P_`A_Rw-XFSKr)x`&C11GJ z>OxlcWPGMB+^%%l9=)TTBJw#9f1}JY4{qF5j}P8Gjp%X0w+6cDG_kAbvRSyyi^?~C z0mX54=m1Ry)1j}ZyelxeK#$1iMR|wDkB6;ecy&uiw!r@YduZ?9^)=^XaQ14n4_hJ3 zxjC}>?)|^W`k(e|_^)r`ofZoz(;tyxZ+^0^*&EF$?+H*RI1?P%^7s;eMREQ z6V44A1N5r8P2{o2lBvU~&3V_u-x@cJtp3$3nJxT1abA;SYCr`>Yo=7xVaoMBW;3Z8 zkJ>9q9^K%t5J#+8A~zDK!!2-sv`4`Ee~F$Mo$aGhslvOWlN|KUGw+In!}n8Zw+S>^ z2R!;$vuKym>h>zx$;JrpUmJ_3EGq=lY>^{ zwH*k_uLbxI@i{jomBgRAlYzMOHS{crxkQP|w>8ry*2m>ItQ@fNYHL(v>RMl!3lO=l zD)AM(ntj<|G0l5g$Qm%LIIcg&-XBYwR+cr%t*F%2(md%cr4yIYW?f3$1Ig+5)^~|K zHkUEFI%F`%N`u4q4W(*39DJnX>CJjI)|R@3n2{GeXEmisay8iM!d+BuoA;6NZ^Tat zoj&4F69YL1@vc)rylZwbvE!wEEAcZ08LnB!Tch?Yw-~W_ zbf>xKz8cgENT^Q+wsp%ycz3T_;WQiUGB7pV3B}c!Q_e*-x@VP(rs&n?TNV5}u3TyN z2x60Lk+$Sv!Qk|-s(cONOD~I_2fMMqfo>i(5M4&t&f*RjejxPp>t7sRE7;Ardgi?s z;U|md@Xv^>^@N*dnIo;HqYiL3$Z)bBbzna;MBt>Zx9EA5qh;+Na(@=S7u|SAUY6V| zOKQh3&9|!a!S@yBmmVFFn6H+{*aCfeabKYRHt=nyi?r8{R1&r_ha85-P;1RJKZ7=j zr(EAkzv-6u3ZF2_?KuaJT>k(n#ue$!d&0wK5~l|mk@utcpAz`1;ohNdrb(>FX&|?^ zDjGmIT$6%Nrg8MHEA7+S>Tq9L%x$mj-DHYo;D#K7{XaVU^H1>orQ|*<@WsSPVz{?p z7mVS7!w<(5`R}YnCY`HZSj-5P+Gd4^e5(=tD-2{Ky3wC)kY-TK=}B(ayZ;;kOy#_3jDYpBXFJmeAE-~0u7G-k25e`PJv^H_>< z$a6(jAH$dB)qIbLJ|1|oPX~C8-u#`>A=xZ_nl{K`)2RNH^yU*FU4HTw?5Fsb@F(&jvb;Ou zYrhQY_PT|u5b&R#Jn-szsrDkipZI~{TR$4;H+pr!#JJsWFzXzHI6qJEuaqw=?ljB! ztZviFytjRlDfaF->0DU4FArDRQ`q(LoMOx{-paScw0?eP*M1wRS&qEv3&RcSMj3WPL~UuIpO3 zeR>(p#hZT%yYcDz*L3j_#nH64JZd;PnPxS(d_SS!2H~NQVBo39#~tg`{2$`<@fDcT z?|y07e5GdoERX^E*PZyINo^}qmJ%>N@cJ6h(X|OQ-A>wcBpBpY&(MQj1ZO%EX!|;} zX=33SwXZ_DzD8+xR5ARjIi=hy%sqIr)wR^Nw-L__jTG^n$m(!Zj^Nj|cpu^-c&6Lz zSKDLNBVG?dGXDU04^in}7rLa1;o*^FM`U$5R#Soxs5OmRF|4&(o~{oaQwc2|ol)(6 zF}O=xIf)Cu85!yL*NNOIX&u>dxaS{IYf|gP7rL_Tyt#SL`$rl2)e{+W!sOLZr0FXQ z8;V$o^DPR5dt#fhnTQLY@@q=pNw~Ous+jGT>01_l9cwufR~w{LxqUd~ab3}+DLb{H z=lT zis=`Pv1S9%^OgR!?S29AAA$UBsX?b)-!_6KR*~*6z__*ys?4g$bC7t58CRB=W0GVedt=hK?aW{yq@;MU~!0_ryhhX8@;-npsK zt=Xetf~OzOyvoscy^h*#TGu6#*Nl#pU6qvJim`8TxfM?Xr9MSjLEF>mT&^azDXTKD zz^yA;1;$qgf6}Nj?QeQ@yzg%ykq!v_szGU?pwY6DG0h`qjw?cCTf0$p3T%t+$U5y~ zo<4^k(y6d2az`C0-sYqvb5Dw9Tnv&Z>%i$wR6LQ_r?2HqY1oeG1cz{{dv>uMt4-9Z z5X0X%sxy4Y)YQvTyvmbXtNT=c+5Z5$B~D1~Re{PeTht6+>8 zb~kWqQt}Ay5J-c|ll!07=~>N~^Oec(TH9L)hz@WCA9VUu;4U-JQb`!+zk1fl2#-v6 zsLN-qPRaln=e0%Uj9~Syc^M4H9cfoA-0@1PI%A*Gj19)KxUMcfV}p@Or{$zo1NgY7 zZ5iv4OiXPi-1nz#>FG|}kEL98AdjcLCVvWFV@S)~Ryy|(jqCiW17S(;PTP+89ceb7 z!k1eVhVI>t#+9k-2SkXu)Hoce!KCtt!2Cs9(yYz>{CaYbCc8dd zS?Rk3g+Anrej<+{nd*HG1xp-zuse6CqE?bMAY<$EP$BM$5%U%lXvYw-~1F_QfF;nQ$;U?@j2Z)}@j%xIHQ+??WjFPTU-ENrA>V zqnBKc1t#siYfF`J$K}sB6q~wJcNXhT;EdHr$e~p9^{0`5aCxTS@JQl-I-a7mNSB~? zrQMIMCVjZ02X_=dF?o*X@uY73=~6FY)~dw6 zA$A2m)D<-5Tu?arRSqMqrZ7&A&;yfO*Apwc&YW%>*F3{@YS_7&)TTyOw5KMWfs$%S zE+GVU>s;iKmB>6E)zWgHD|Gj)+v{JHupacP#?I)M(8phuv(VGjo!_XYOP)a(q*f!Z zO3vgOFiIp`H(XQKsRN}_jk;jfg>2)sUG6?x8oEBHbi3q`1uMWilp6OPHVG~?7miEF zWQyT8AixB1)32$opV7Wy>s^P3^!-NqHM+OE5nEgG`;G@3fH?1p@59#R_iTB%syz0R zXSRGDyZ-<~ztd#l?cAJuWC2Y0)uI0YYIss|gDn{i@5V{~RnL4f)Fg+-p-IZ##uq(_ z8Df7*^_^=^8itv311>|O56lr={JzqQRy^3t*;i6b_=u@e2jNay)A1#V({-!6c3rz9 zU_Ud8%v$-ztnB(9Nqg#tryUH){$2jy=h$Zr}~cd8+Pt$S)7FaRJh|k zsW3Rfr(|OSsvv~^bZ|bjcl4#lRp4BvQ?dFRW9^#^t)~{K{HjX*XR8=Pf zw_4D%9R_LK(^Fp7Ka^GFj|`%#+Not8p4FusCDdSK)h1*<7{f3Xe%{P6J?YlAq^LN- zt$jYk0kX zKs<4dYJ{=v?V4tVITUk_4OeC4j@5D0^XpaQkMO5rkqVES8K(s26k`Y8rHpRRYDSl^ zv8DkTsZeb+h`8&`O0DZuX2si_cBc$4eA26R=9u2Jn2FK%bJC=!BW!ixRO;CkB!?%Z zY1n6uIjrR4JXWTjrHJF2MsnEbboFnPo`$+x7=U0;0uEiKHSkicEqVsfRq*IjUU)xC2@@()_19S1o;b1dluBxcQG&_rx9#%2`q z`h3%V_e5Ut@5DoN&ta!NBIxojf2DcasdgtMl5%}&jBL^{B;@+nQQ@Bt+-p|>RS1jt zo3(v3DbvD3PKW1HuZYcSURt&q4udwYaHxuQe-n1EWzclkbbA$!B-(M!L!sz!X%_1g zY60%u>gDy^dVQsi_9+QJ%B0G)JuG>d z`<(On)pk-F0<AR$L)~_)%xbEU894ZYeGM}?@-T%TvFvU zG2UiY>r%t0Jbf60MZ`gK#Z+KLX3<(3&}vX!N9A27C!>sJqq@;qRLKGJqU)9C^Q?6w zRoy>Un#xeh*&p3*N99KQf+BRnkK+U_sIM4AP*A?U+0A^J2bDiAzc>Kt(Px$?G4}&qB z9l(BMSFb}%Gdy~${h=Q-usIcS7uz3RYNq433X;5Dr?818B-W9SGqN*psc%WKGfs!1=O;DR-xallgy3V3 zO0A{a#cyr{E*q~k9;tNGZG>{YJ?qzkRB7qCjMk>XxG*@!HR@20xn_8Hncl6@OF_7OHvR2f;Tw=Y&(^wIt5m+Xc-Ukx`qw?F zS{apYqZpDtPxCdmrQUh==-v7n+8SODV~)JJtyVjpRpKoUUk_>p;|wEXkVn?NJKCI-H>Hb^0DfDze-;bXz}Y7EQEa6;F|J?-s8i1z`-c!*&Vyr3|qm~=3fgtWTTp4 zojH6*({sot1(aZR6-B>tM96U>9M%_vyimI3nh^g0I3F_it+_KcP;@o*k#VgBIG>tS zr92&HPG_KaOIuw^1arf$-V}Jx!}}y%R@HJa1d6|wf1PnY6ugs4)CxDt37S3Cxlr<8W%q$*xvTB5o~Lr1d^a@yCQN`~%{NZ6%F_S!yTBbl4rQ8Ny9*UeP5RO2J+ zu>9CL#-%wPsJ>REX_5n@jAI!b_OFKj0BqmcondLbW8wQ3h}R!CQ~q;aHTzh8&9i(n)@9c;SXk*3xn@zw zjfu(pGJQK&nfxdCg)fJ7NM!Ri6+H8d`&ZLZsH(vq6`WulYI13N$ouL@m^Y~Qs4gu{ z)P7buZYjP8)uZuNj|JRp9a%=Sv?3w;aO!jKTO;SF+gejTs`w4#BdTa`qUzJD>N;5v zGqL7aFg&>d@5jo1g1PUF-?T=B@Q+uu(rqlRwdu78npgWM2^=So13BQFXOC*~{{RE) zjcFyeqOG#x$$Yt0bD1DxgOQKnIQ)flUm0|V@wb3)*4csT9}{Kay* z5ca;(+w|#k$bzK|Qlp6YKNG}t&)QQ{ZxyDsVWq=qG->6PnnLR9&kO(_qw=o<@m2BG z^{f3#P`-8K&ok^8UCc=!4?$YGlyXHOX_b%zhFlOwT!Z@lRf%+~BNq#{K7o3k{cDpE zIZsJ+KTpc?{2l`D3l3YAEN%ihR{9^;2ELT|3-JW&RuXAfl5f7W<8kWo=K;Q>y?nqRZ>T0ZGetphH$sMwO+sQ zPjdaN{07?RhwQvhXCIkyVhnd77bL_^Lv-k;KbfzX`~~9Mj|TXn*HVFwz;;U?XN>T` z`{Vgn-x^k-Z?0+hA#QChBgZ%@%12M32EH8lz2GG)R| zTblZ7UGjBRo;lHHf^WQy$RpGBuM6?Fg5>bs&z*0&TL}-!-AZTpO=XM0dlaWnRCVBS zins3Pxyx(Yx}mDE4ejB*$!;wP$?roP}2hs<6#x=dL-WR@y<&S}$jGL+sAm zO7RpN38C`W)i81RS50pizmLqdWx7tECnSAG_}7!A!Ct5G>)x-}>XO>bvfIqiN~ecb zAlGd?Q%=&@;;DsG_;)=5dv;kE1!$#S2w{WyR50I7V8_d5N9Y^to@tgp5aharZMCat z?-QV%R4k*e4&XnXJ5XpQ9&Ni9fbto+KSS?clxG>M#hz@a&OYqb(YxZW8rxiW14hv; zB$(g*u1m}Ib;58;#ENss##^US1$oueG?P0KjohD3b64&pRcw^r$BZ1}s5m>0-Uq)v zwaZrTR&9mDLkkW{YjOai`?$q2L>VXgRNh%^p8b8P$pMqG$9m=0WRFHI+fs~?e~+z2 zwn3aBBk5gcm*M2PVY#*s>0M2)g><;rGY>HI>yO5}A%m$=Ugk2yLN3Rc+34-6%ws}< zx`87FC(sXiuc~-z^GUdp8KY>XPFg7e3_T7#FSel@JEKV zl@{8K<-`rQ_cxojZS+>-psl~Nr6p+YN7rJvN6u0sM%;{hQUjcEiuAvUe+qAW646XZ zyRekvJIJ|4;~-}paqC`lCAmg97_TO^3DK7<(bZ0@Dz0cdj0FDxd;BVUd#AUNWQp20 zQ;^G$e>#Btq>hxh&T-e)xcQu2(>jsa*m%-A$i=?13e1?mom3Vc=9gCRUA^t8ywfD} zQ1UjM{vThhaeS#hm3K|nZuFVF%UPNu-Fm6|it3IdnR3)bxUJJWj|1vL^3C)czujHI zx$Rl_+&L{D)N)7TTGHEcK^Xr4J?oIZy^F*aFC*Hg6HBSeR3kw$XM?_EZht|q-^ zlPJZ?j83E1kQjYyx}96DR&q+8E9OI5+iMmBk;P=|S_|Ji26PWH|&7a7RzW6yG_9dB=L~{6nCop&7V|cFs8~*}wYr#7!BE zwvn`sHutYCq+B17)fsauj}v7^PJf*y;ZQbxDZ@M(#^qet(sd@Wm~R{4Zs)+q+@5Qr@ZPj-&)FvC2@eIkA6h)o(G7HDU)j^{7)C$m>06o} zoRF)usIJ6gYYc&$)ys*}#ut5=3(3bmyw+@*sjb7TaH{4=}z^}(xX*j&u`4si^fSA2cJrJB2ilEh z{JK)NL(?3dl&z9D0QdB!bYa-zfl%7$O@=xSGt(T?HmTyKY+wv=)|du+b6GX5$a(^( zYz$yjyGIxv)gLF0hpjzx*y67GXff)&PH-t&Jd^rUkk0e0CkER`S>${d4J4&1OF%ZLP$L**xPb{uN)#-h^X4jY|Z9;|{!i zX|phi!95%L=DH;LmCEJN=e0{S1lb&^=XY%j-&OiYiW&{ zTa0m^#MeBPj&`g&X-tvysg-vwLCr!wYo7m5DL>bAGdZ8E6KqZQ+D^uRdhxUX%zjIF~2<~9n--9ZEb2tPtUI{DMYULsvf zL%Gu)Xk~`!8d)vvmkYg-wqRrL4EFS|ZTNZOBjRrb=-0DGvCHIrnq*v%vPJv0=g{p9 z_}9|Xlx0z*e631yjWs5G^YPEa@1yv;d0ne>ADE;A&N}nz4SCQ)I*)4lZ}x}q*ws89 zx{Pt}y3*wHHz>(5G1}v&ZV%vV=A8W9Gm82AT{ljvUC*P!RQ9x!>_)Mi`cwJzsY32P zo#_gWGH`2%>$g%hUODIS_@*bfsnK`O}VZoN<~^qrXnQYLMc_ zvh={CZZpM5-h+`&9+jb@B3yb>x821{&m$N#r9$`5`RP^UjY^Hj9qZ`t*}Gdww2AcQ zZ=FeDQ+SI*Mlx2g87%i$l1kA=K#VRY@b+D7sw>^8B+e*=%oy$rgyu*Ai;qdaWa z3h|gp!EUujLGj|nt^8pmgkU(&>;C}OuQfa`O8Qsh*MaUlQKRYF?w1dpJ*u>K5XJ^w zNzULql_36g^MixPBO|X&5$)2WG^HwdsW!A`nLSw4!BgdWtr)}|Ff&#*2T*Z}iBw~! zKb1^}<{i28&3RErwuszqZ+dB7gw*pc=Hs69n|qOvIH;1`)Q6!M=}s%ThI&(kVX^?{ z8K)|3UPnDD5bQ}9?b@YZx_G84g1`(Zal3R4$OIi{8O z$JVakhi?4pbX8^MpinXgC%sIncMKn5D&r!FQ`5ChzMU!+Q_!{#N|_XA8Oi-CRU)of zRU2w(qv`2UD*U8pkJhGx+~>7e$>NWXYL#*L(nhBQj-5R!XyebY^{8dX%p+b26?V-| zQ?1P#HY~u-J66T29xy8=&Oekf;B*zxY4N0r2p2s|m z8yG(BMQz%{v;YPwwVWUU+>UEjI7v{-F`7p!cN1Lvkvtke+ZdDf1g6 zJIi2moYTSEfl~;_dTB$SYDEGz)jjFi%{Lfabf&73YJ^F<9`u5VM{*uD0MV z(hmZ;`{f0QQTWv%#hmn!o!km|ho(5IQ^&Qv>2%v0t!D9UEMR+?$;Q~hKb>nBH?kD! zMhfzFNQAJ29PwR8fcyup`1rZEz;TqTn(xL;CD6MM-1hx&xXwSj-4yg!u!(v4>$N*@CQfmdqsJ7 z8tNLV^XEtb+w}Z>YuQu?R4Cwd08_2){JbhIN%pM^eLW*>@|@RiyA2WXX<{*w_LW`P zTGq|(j#zC60>a9x$OHGf@6mc1zBJWu+@P~vhHHi`AU65xy_pfKs^q4f8 zQ4A@xclV{!>|(KnBZ&g4jB!`j&{xUg@p7*1vOiPGvbtCpCvSK&w|{n2! zsgv5YqeZubB8&wX73JR@d`vVS1!{7a!?Zs~a}ZZb$|*aP%qT}8jk9x;Jjo`Ak=`|s*PwDdSn ziWcVUOIUdXo#P#NIW^$kFK3fY3fFSVpy5@UJ9zD0{qZU}ZWh`o9a2S7;IRO3bC1Tn z6XFb#NenG~l&;>rD!j|qqqDsWnC3Yhnx~Tu_fFwisV1yZ zpExCX990<*gT-lFahj~kI@B;lP2YtbN2N$m7RD+`BVD|8sVuJ*!@|IWz^zF2^CV&^ zhnl{PSx&ubyW}^$JA+51d^cMNd`)k412RsnpDYd!JqgWvC&poGt$1Y&QxuyZw0(vT zui;)#@U=|dAVtm}j33Ure~9x*94d>vBOLt4AmG=b33B1x&o-=oevc|>e7Oib;Nq23 z8nGg9SmYY6atP;&^3O+MUok7`|@)4a071BxsII#XAgo6G#FNa0!n*C1HHsTFxOVPa99b4j&NP7P3Uk!=I7 zT5Ds0QyPjv+;yOd62oj{U~_?6nr*p`WMR>39@h9Xc}%-N{w~$j>2V381Rg88gkyUx z&KlBb7i3};oB4ezmYk+*#$qxBS-fv11D?GqZ4TU|WzQv!e_He!=9*0N9KD@4F6OA0S$vz->HLT?~)~oXM zU_YH`{5A0-Mym_9R2&sOs&Eyhho7*iv94`}hCYYZX?#faZAt?ii#&gLSE2YLR5zAk zM@(Rfrh7_hHGcSpYbcdDEvm;SJJB|bbeWhe%6zxFNq!6*+Z>ECZBKvGjkIj z$J_7~r{EhqjVAG}Cya+iz^wf{WY6aNxa(Zi6OOjf@~PBL z9>wl@Pls&&(_yw$%CNx)y?k-|UHlP$4r*WUkm=U#_DPOq+71-wujDK2?*!eO=z_7s zFB^W9x8sik*?8l_H+oI#DUNh2yB#tykzYGHt~0cc(K5*LK~|>E&Ch~9I&CKUD|>^O z8MgD!divJEpp8=g*zHys481GkkBDCmZ@v-u;^$4d+#=py84np!Nf`QMSJEG|p0K_& z(_2Qno99&lTRA<2d(^7)Q?uxN?t7P|Q|mOeQa!&#_>9rUBXyCD%3L z-ahc1_k-?(E3;d-@pk@I%O<-rFW+z0lc7p!N+-`#tzHk6$oeMp;&rO9+Tb|ob6%V9 z*W$&NxfZ_qF##`R!-w*+TLdtMU)KykvKa&goEm=-rO1N#QkjX zadaSEN^zUunv9X%Zy@ECD?y(1n;)xv1|{k67vJwKiyjz>QKXr;c^vQ)uhka06kspU z2ER+TuN-pgQtoCvPfN|${e8%&6P0*&)+b=)Z*=HS!=FX8BO^X+?bCfz`K=2@)3}SI z&3b0rL!+SyTvPX#xY)$bZHr{NNkqNNi`W(ExG1H&%vamrrWD)@&-8uzLaXXO;B7F| zc9QEYG^Oe?C@?2|<~vH3H@Rq3maqp@+~VL(P7uwylCGW!9NIIT;bAGQ%-ZpPC$Lv^%Da1 zVd-I83VuuzXUy?U@)#E5cJr6w2Ry=B@hqcv#;QO6;gJ)ua7u8bZlKg>Y}Lu|r;GK6 zPi$+^W((HY3PjGVKtyyID}O%sn%qOH1Us43#UV=3Y!XT6VM2FYXQ|JI@(@5bO?4u- z;fvARqV>4nd|N6k_l~)8##=Q;3~Qq<7XB1<9V~sk4cwx*{r2XxxJ?EzlFu|wl@cRpLzBdiX_X6RdDC# zg{pQ|?jL4-wgX_SPbVg+nl(TP8)*-T$EBZxEAs87DT%0epF6mSn+EpUV9zxxUlKg! zLn|^Dt}sUFx5`@Ef_?QSpZEvh4AI7(7Q{UsXFI z_I$BZj);j=P_-?aN#t12l)1Tbiqa=i+@ze;A%h(7p7+1)S8vXIrU;$}@lu4^kR0Eq zB2^}t^0|Uz=Qs!THQ7wjUuX9Jk#V#K?&pLns7pr%zi};o?KP%o;!9H$e(x9{NmNVs zlb3fl>mD$lEBY1&t?-EtIm$RU#$>bPbSR2U_y#6N*QbPY8Y+}ry5v7A^7Rp41rUt!}sw+<@;w*Gizzy?>NR@ z%F6V0$Pk7C9bpXCI>FF={MG`q^ZU=@f0Ourv2gnWit0D5g-NP+yl6&Xq`blUzu~LY zrn1kvZIz=_qkhKY#CskFOL?}f)Y(5o(-`)T6)L|9?6A89l#Bo`ubbwFVh!oqm11K9A4fl#^oi zn<3kfWiCfQYa9W#7GJ(vJ;|FjT&q`cDbdru);2p*O)2uPvX;B;Qxmdw(m^mKuvml} zf;F9T`kRwnT2(1$V+UIIYYXtzDIf9`Qjy56*dvFx=3PYRl{{C?wZF-{WUDvH-y1f~ z>Nyx1zL@+8p0t{$Uo!zqUh!_1%2mh*9hc9O zvZEvjZC;6FWg52@n2@F;0vl1Bi0DeYch6vNZq>*XBa6Svi2KzbiwDKoZ%wrBT64Qs zHbU?~4NEb1;0Aq>rav%0mPMNGv%ObnRKvhFMZ#CE>7uMwSM}c(Nx0mU*GrIDTw|&F z#94Yi;3*?h z8xL|X_Y!eVGs=BvDhoU#*>44(@-pheJsY)YNjHnG8H(iD(4wcuutz}^wFqd0k;G;qVCu4&*@>50ea2?-y7~R6}%rEBdLi3rfU-4@-!(Gh9fX@|HfG|d3?z4aw?zJDsOR2k(oi0t8=1(JV}W? zF4<#pgoBx9;82+F1&MAD_)w6@dw@lA#=T;N`WN|N+1rvKH3t!kp0LrW5 ze24Q&g!7yi^mK?e_57Qt-C}((#EfequAyTX{I;P`eToywu9(GV^iQ=PyseewX|aTm zgAq%@?iahkZ7XMs@H&KZFZ%lS!!m))AP#NWt5T`A^LM2~{l2%qVcM4`H6G$shUZ~s zX&<`qh5~&I0W+}I(jqmUhk`Nf111J z>KCU);sP;tvfQxD3AauU*^%>YJ-%I?Am2?*i6Cs>Ve@oCx{!AE{*&~k>&((Hd znUgswVAU2&|Bp;Dx!h^c*jZ7poMh*m|Hnnpc@vD7S0(kA0ZY}%1VqGZR{gJd%K$bT z5q)@c=rM8HqVp>gDbgWZ?7{8c5k!BK5#$d*7n#L^zq4HUmcDpc#(aQ8Z|dPcih1$2 znGS=W=g){hFi=@&GPje*l4#})o9=1fi0tu=LBt)z6GVCm<*+P%JS{;<>M-zha|Ehl zLB1KAGh4zjF`k!+bop7s8#w-q%L~*LNL)`asbIN8=D0i)K-#fTI>xLgN-!uy(E zqWK5mG9!2`K4Ttcl7~Ae_{UQZ@m|ofYJwE&)t0i%1+kDo+^8jA!^;x%E5Gx^r5uVP zj@LH;^%Z;-_-6JvEml8*K{_OXXa1CN&i*pwl?*=n!(MiHl1jEiGw;V>9|yz_F!ytWkdfLx$BW1? zqM@pwNQ*>KKbK`ycGdsLOhzjv;f_t2xcOE!+4X!)ni9OfhWafdzRp=J?)%|>t5;}Y zZu%o+GQM4#&t$reYO9448aXYk6venU>@$HCngX&em-E8POfl}kuzLIa9cxZqWbZk-Y}^Ul`$wdLZy);J{_YRl)95UZ1%svF zD)P8;@d)hIdaK=^j1ZvSvgW9ZrJQP7QCgJ&;D@u#~@-6QL}dbi{7e5A5sH{L-kXj znZ`q$8tOHWb1W;HU50Mvtsan>p+y9yR-Ga!0HXme0=Dvj1_Xcgk{-{_up*g$sR?tOn1s+C2aDk|MQ&c40ONvDcwx$| zwmXwK;7RxF8EsARPntf$Ah9}ml0a`QiX3nX_cy~dp8OSpC`rbpCYhrT#p;eJBQbT( zZE9OSB-#?v%*N5G41Oq&L}{~n++ur}agbd!;f;!tun8AO;Ncv+={;{)j+tJLd(DgX zK*v@Q%(o$#p|xqky3P}Zoni#bq9ahGsbv}Qm?Tj%hrr}Ag=N?>@*VMzCuOuPdJHuW zu+==t_JOw9`H;f##9M7F9Tp8F`NJ)vc-T1$cMh&fzYv9{ zY5N&B$TkEmrIKjeJ~{EAY)vqi9nI?}1WU=R_LQ2qe2#&sR!X2c>*Hn^pi7@AG>6-BYh26O+Am@ot#y3CK4A zv-8H-Lss$3gp6O6aNj;6##RROWj+A~Jm8Ci`<6jBF<_<0z1D`}K;D zEZtjd1`m3FmCQ8aUzAB58N6tzr5VQDXS1mm-MJl>7#fb^{|9&At_^y$#c=QN)`c-J zD1@oOG2`{uy{k_cYg?=4CF{TSJ^ztCP-y&JdG z6iT~)U)7Hmc{2Pf=jhSIr-Tloa?b?k8%v!Zi`}_PE7dMCzLOxR^_2daXEdmKFZKqY zb%!vS7ZB7rbQDsgqxa$)tnvXD$ut!hgDzE|+;{4{p{iE%{pu;D+c`H9<#sBI;mm?2 z{yTU~%PW>JEFN}l*!}{be^`p_r9KAqfz|Ss55B=2f$gqBCMPNsPv3U-$s@7IKWOt! z_&~ZyMAd1TmRI^8GHnP}a`>!z<#F2b{on;nw0Gxfq_#;;fm@0OGWFGAqt~=aQ;Jp0 zzji;ThqBb5mO10hv#Ax|$K|*T-=Bd^;==P*t^bi-Om1-Sou!qY{Z!$wt*-g^%!=wF zV=Z)QT8e&!r22QR^$TZIl%KnG#_*U4r80SA+V#Q4le@x2{)ul78HNM9?P|m{7s^9x z3ko;=pXPu1Upo8!hZyLwFwL15tLY=>w4r!!F)?wgnr$U|c5r6y=Q4O!+QR!Y>EBU! zhoOFVs~^&w1<<;j_oU%(TzK^i$zmm-b*Vi?hnL;HskG z)eY*#-+iYf1c8!slZBjetoiR;Jy8T7Ix?8oZkd){z-{zDGN|b{+Hp~G0r2wirdc9K z1j-iC6XIe~a~%Gcy^#)lou)k5rRaj4Y#&97v*+V)w^>|Qw7h;F4Ib-sPu=`tIIONa zaV@@Wt+Vw%^OV7LJp(`j zyDb02oldPHoI3XzMOx)5qU!+!nrYI$@*8TKEaG6HZ-r_oF0!Xc;Nu8aZT;3X*KKV%nn`p_#-FW6v#H}15<#uIJoO1xMaU~E-g|f2jwfKOUf7)iZyv=;9caMLN{?ncR z0RSkWMUC{IiVgV>h*u@kZqX73>x(GK+@8RdulM!nobQs(lZ+I^je`P134knv+289t zu6?bKX39C!gtw_fKG3(j$xfeW{ca&f zR}U}Ut5~R0NGqpp$eWX4xto7@nD0w?=Xn1WlYLi!jAF_tQqDY&Z}^R??`Zw4MoxWm z+>SiNM6NdPfRA^s1-X4;ND$g4JjjnIGBxy|~Ozlcjj<=ePA9&=cutf|70!t&|kP)+81^!^m z|9N-?8HdFd4K^l__IQ%mv|lCF3e_hyXK$V$6`o#1W|D15*+Hw|kMa^h&#alRcn@m# zI!P2HbIrB95393$nTRYE#o7xb#G~G5kAZfqVMf(M^?AD@%mo>7sz`odkkOjY?OY$% z%qK(Rtql`>N2#BtwB`DiIo6Y2_rpk)yLQe2sN>flwMMmS{2W6jEG~Et557ONY^h;x z`eb$3u(jEUXD8<%>GCBZ7!)G>8urF^DqAq#N*|SIYvUd671S(nKR~*LEf{m2% zcOH0_+%k3oq zu)&h}`|Y&bQWq)7pP7eEec*>wH-@LkKgbwdw%q;|19vIby|W^)myB~t@_a0B_Fa&N zQ{+3sn2F0-Q`>kN%y^3KY2wCRE(61i~0H_C;#hU>_HXuQ~E_xl3OJ z^d5nuZp3i4rq8iYj5B5)bHU2pZUWK4m*-?*n^I&d(E9mJ; zi`Koy>Ug`C4W*ohVWC6W+W(O?x=mRwU3>M3U{`~wRP5$pF+O2L&i+O%ZE?CKXl#U5 zN`3-$rKz2J??49ysbpsQbo;GjNp@pMvLT+bRg5>yi^dB|9gfwz8Lu|wnm+bA5rV*mJ<`J^9FMivy60_loi_}XSH)g^hkt=>GWsQHBhbjgRY!2-B_S}QI zTylOH{wV$MhSTR&s}@N;%0ZME;al~Q3U5vZ?0a&c>UxyaXR_9AQ%PFPeHco~H4P!b zykj?^m&~QQWwhzWjzq~_P<0NXtrG%@7Rp~nX1NUp{72@jdVJ;DRhNaSht?KZTR3M# zwi3#A8tNg>r5j{BP9%ya1E8fp#Rf$ngCgU(f(r{p=uq4O-BEjWi@qnFh~kL%K;K>^ zl2bQhA4YMO0i!<49?&7-{mX(yfYb?5lt<`Fd_(0~<^F zYX+Al6;V1jJskO>-a8r?z{6Q!Jw zF8jbH+!vj21zS!dA#WF@fgLwC4xUo`xVbaQhX_ z($T?6w#6NtZ(hBC-lpoH+?R~UmtfBHDY8vT#^Y?)4cSbE^iv;_$Z96uP=6pH_R9Qg zNIs-V;Uhc5Os9`_CCQU3jSZiBrR>#Fmz0#rxn^YBDB8!Vr zF^XtUF`AGtkz{&qaO+Y{<~h1hmitqCflR`vFR|!V3BQCL;l&f*VFsQ3)}ie6H|yP4 zFA^=|fAKXQN<#b-Cyy`ukIS$1JL{UlQ~$2@U9WKt8s{hon{Y%5_-jOGLG_>?Q6Z{I z-@!hO>fk*(We2gNZ3_><4`Z7pCH&oUV6a)Er#Dmdx3>3q=FN-PA~;MA`cdZhPdUao z#&3_j#W%M=Psi&grEMJtZehNWa4i=|+%H1}P!*+7#RNDi(}VbHMl+tu72Lr;;u&Ef zHGzEXz2Hl$F1-pIUnvJgKz!cXmC1)o$o)gL{1rr5$?!Mj9HIvyHY@J zXH)I$(XE8>k}855hn8=md703-xT(L9z~>a}G!(?3XrNRY-kd(^sXf7s-K9v#mJ>Ts z{4x2_+WMwdJcZD0pOx{U+1h8U+>fF)(jjIo2!WrT99c#yj{B)%H|}WL*+u=|Tm3~W zUkv?9RWyvoA4_iPmkq)L-FnxnZ$`a7GfeACqVE+Z6=A%}hY#7r@R7Us@U0(ARL0dC zyh!>#-}d7nzc@uTZk87TBObL?MFa-16i+Aabi7!Po#URNeV<#xo+VvtzPhasx3|!E zEARrxs(QnOd37v5k(`1ZE#jKbo-WzpdC>UfTwMlu6U{h<^zag&`FVJe>0>&b{)C%U z85y6+v~eX{Y)W-P$P5WGY&N zV?lby2e88w|8}b!L~{FrP^J#o3-c|+8{eVa_=Ns2WLMBcKY+`Agc7~21)1gORG63z zwN9hp0D__K(aZoe8b9RI_wkj>DVMz=O7Wk0Z=cA^8E~rhbr3SQbYo4iwWP(4;^5j< z1d5yxG{dd-sDSNe*^Y9Q3R5Ea$wCy1@>v!2_DEpcIx~5O~vo1+4NSW&??t zsX^px03g}dzeF|W+yA5(;CT=W$@A?}-jwG+*Eje6PK$|;XdslyIkH6O3t*G-dRr-?)LHq^aAL&UG*lHXGmL9~BXMxrZJ~ue!u( zw=Y&h@0Rh-6v3b3YTzyzA>GC60qr65XwHDp=T+b3)vpv&UTUhGCokDt^Ny(*A`b*b zjf-S}pljbezD|Xcm6ChEsyy82WJcPTl`2<-DN#npz@spIk*$6)kX%0eJ8Q%4i#E^k zq*M<&RWqYo-&wW!l;Kk9%mBo1{m~$}q2-U$!lsA`Ctx&Q8{na`7>qqh%%fxDC(+|%PMpPYO`|ElGXo)e`p zS83WRo*~-s@C?i7(SfOzvGtNaF6Fip?xzd6FbsUMzh^8(WMWI$l`VL+sFz@lRiH26 zQ(tS~*BA@ykSTPZ9rgy9jX3$5NnCYs+aR=5Zn8F0tL~heye~}3JiXo2SP}JROYVL0 z6$*R|2-9*PuKE=lzr=&S&Z3wxZ*XbY*ns=>g)ZfqF&D)n8gdZQ*3a!+ohX}|whlnE zoc;)lT@>Xh(nv6YX}rx#q~b_k)PqWc&D?Op4cC{VN#P+b0il~R%MGQCR<~9s#^kO# zW%n>jy8oOZL(?30Lu=nJcnZe+llSR1G^Ak5Rv+fwT9l%f!7t8y?n_J8H$l3O0hMSM zQq-C0=vl6|-x*kr=4CgMp67O|VQeD`sQXdqHW%J`Bw}HQHuI;HSxFaT zZzRtc#=Szw4v1PdG68PEPmhb4{P$%xYQd)gfI434&U@W#u|`B7ui^>p+E1;xA`j0b z@C5^i7?Kh_MD%0^{0rPP1B8C&c4#7{BV109MOjJ);V*RXA5DbWs7rqfQ7sWGHkNN< zXlt61zlJ3}MWp|h1rSjssu^mlXkGmX$N3rBF_p4EnNIbgEyi{vD6*PELrrkf;kVf$ zpz4N2Rw-+oiOhdw#;hJZa0rRuUopI3kZ>#RQ|Oi)M+2rcMBAFhazb_JeF3GGenu0J zRq24uKi1CiFh_^my&hsTlSE-!PrheJL+TwXuY; zt6RZDw~Z8ZNeU+2m0Hb1*Sd#u{do`Pgp3Tg$D)a7VWxP!(#HMWk$vD```2yTnF1tI zY?m}M4G-pQoQ!e19e5K!GKio53$+`m4e~^^JD{ADj?lr<&n9<1@$|i?=$DltZv(dS z_jr_VU^jw-in;5usEiPXd;?Qla6fcR*OKcpH{OV6^P55^Eiyct!^Jvh=;3+LcOZC` zuUGH)BhfPh-JaRk7e#bGGy^)Q@6J2EHvpTMs&X_n|Q`vugUWN?4dqQcTL zArUvwiLV?>q64t(nvDAtu2{H@e+l6Hm(=vfI%{e;VaX!>G zg|uYEpQR1VZr30VqS1oLU_l@|X#{G8>gn>^*e{G}_a5YvI=n|1uR#Iuh4gJ827_mC zC;0|oh+=J#9d(^XCfo*c6OgCJ?K-VA2lwANSa0H&=#QeIv{F4T*8)=Z(<#witFmlb z(opBV^JT`9BaVknd#l~41gOXuuB^UY@rMqJRMEWZ+dK0w|IP*pOFG99;6brj-`GR` zBcngMc9nw9N*Ibh`XqmJ?IHz7MBIXXZHLw<8og$Kl4=R<777yQMDGNU3V^mt#2dfi z_J(EmNUuwuJdR9`mmRs?bhnT`{)(9Uzexj;xVj}(YZ7s1J%S9r>W{+I_XOZ;4H6&x zrLfOv(^uB%`7i=Qy*=1n65ce!niJVC9DkU5F|RtN2lqfe-Lwy9{yIt&lQYUpwS`PW z4Ycm*1ZCHxTXcg2?jAGZEa#kVCvL4h8#aA&fyY(P8W|y*mLMu&;jM`9d;W z6`2#IF1*vZ6}w}|I14q~?JH)dlAQg=G`)W+RMB>yrOqy0GLt(mMJ>=_wz z)`}m|hotx@mYD+Y)_SXb3mfFRu=L4Dl~m7HK=i$%|38X3X0Do zC1`F}5-lD1`Hh>~vfKzya=tBP1{pKp>A#r4B6VuUuj_R|ADRBq14GI>uJl)~oqDEJ z-u0#1jto%m=b@Q4m-od=%EmZF5yO-6e=?e{6k)5-CkRE5Wam4l<$rMX)6j`|Fv&S) zWh|5%SZoO#Jd`*U>`Q#Be#I98>fC#Ip9U%n-8#;pLep}MTuL4@ZjN`B{qHQ6SjpVC zK++!)hE1mD7V4yGqK_-4l=iJeUyJ}`F&n>`#+>D-RU;7!p-eN*94u>AOSVBgu%3o8 zJfla#woO&vgma%o|7eRC_LGq)<9!0sYzK8bO|WA%mf2fCcT+1d>ok!6AQ%b>NhKwP zS}U0->_C<;&YTqQ9TD_r9@jlAbAMAY=# zyuiOsC0EQU8q2OUr+#34&;Bl`JbO;@IquEc^a+`t-7#Cn@xI9u%ODNJsCo5!G#!_-*rCR}4#u>OHyTY6zv4_BA!0~s=Zf5nKY`c~4^GAx+hX{q&@p!Z}OGoEn; zR(;mH7UjtvcUm?8+dY4tId_|q$;2rKW!iYI&VDheBF~t4G4=gU<*{Lbvxhe)WANLi zmr=W{Zi8@!Lxr2#eNFh3@l;adJU6yk6mzMHW+F;sJQ-NlCIQHA5|>7l*g(pQgmdE| zIfq>H4__acvnY7`B)aY%Zdnb-V)YN_LWO5nN)7(iSeF$1oZXv&gjw3Zt7Z!>ZO5Bt z2n6M?sZg?u@Ecvcv2*qDdp64mA?0Ss$P)vOnYNESeLB4T__%`?4<4tX8hv&he)sF90FWgW6m#S@=w{wX}t z^r+_gEjx6W2k|0%ef(JEO`@?~!b7%YwJrIl2ktIg?+A_;D}j##^BYnYly!2a8wbcJ zm8Qb1A7%`d-XE&I07P#VPdbMr$8S3dW?>+kSkU8>d0mRljatIxM9 z-=;fqTv!v~pUb$eSFUPBWTlHHZS%Hq0?F^#x|q1_*K5L&qRAm4O-5!tPi(iu&n|Jv z{NrFdB3|NY-X?My-#NDR*h*lM-PeeIwG}Oy0VCcS)hUo=*ERcvCvro2R8@009qw*&!6##)cY8p0PteRQG{iTfs=Nh~S`2I;BF zOVy;@>jdzC@aFz$x9_vCBs+OL$yT;;Zuq_U?CT;6r@oQj2YXWFov**S<##W%gzdKL zc#)9F2d`lTZ1Z&ek3X7G#JnI2x|bQ7eJOCq^;5&xBdnw^@}z zwv!H3psm8|Rjcof{ZpioPyC!mxt0qKoT}E4`f{PXg@cbc&+>+shjQX?)M3cW)qw|d zTi!ayfQBn&e-h6^E~Ul)LES%lc6vkL#AU=ae?(1+-#g}tDmr z2{-N($@sAy4KoKJU?X6a%yU7HqKMc|z60mr56Bg#hy_C}ZJfdg{Q|~_Bsx7U$oc3Pt^! zAY*#Sf&AO5UkKF(XAh|(kJxun#|kjBRU+(5y)k^z!7xl7lC(I}^3T@AV0`AOMtgN) zqLCA}jrHJ89qQKf@236E(Tk^pX9c9&0{ARp>GGOmS8{MH1!1EYFv}(aN(sg<)5n-0 zqlu}ldJeHl=_^2tLfAG^#@$v+<=9FmAD)Fi;f+-^Vv4*SNR@GJC z``n#%0^o4AJDYX#hViT)uhk@GZZ)HxoE|VI%ZG>CAk8iYmaH*lFt#(V4^R94H%a06 zQm;#(|E{!fBYPR@x>WIQ=K+JVyLJzgrQ?`-T=Z3~RRMU-n%u-{A;8+C^E`D*M^Uub z!3NA!AQ#(jNe_M)S@c~GlA2;W2{RX8ywX~l&0_6&GNUQ_PQkooAn;?RgnMEOzL*WN zX(=6fbI(O?p{H5@1KdlR4pXvenf6;acE-4CNWgifwT8zM+p}MF>+-Ba#!qI8PMox@ zTiE%~6+_nB@ummJKX#G;519zI5~|=6^W_sVW+yZs$)G8(Sg{IBWzSpUiZ_phu#K;0 z=BYNZ&#Qw2m*hQfpP_7IZ@MO)K&y}$QXMR(9UYqst@_}^mzB2SrInmQyDd%`OQHM$ zF*7EtJC(wq4!bHh&4#Ol0@OTYpHkx zqjnXeulXZAt5LL?!7wLSp8 z_f5EcAFRn~N=VfCkE|+id&_leBntK*@8DwuBl5Dj;a5`kHIBT#HsGv9BKL(E<;0q7 zbd~qOfiSp=bh#v)qYr|XQG0*(IIaJkii$)BCgL<7yogCOh}e?jgl^tE2xzSN+8y~_ zwDR{BWzjLZ3gkQzQ5mea4;(Q6Uy*6`^>zNYjybu)|6kd8r=a}8DtC2=RY}0Tb~1|k z7xx1dxp4jpsSIBy}k|^;V-{l+rEpoJTYF2h=>c4Bjk$=-9g|`&e5KY`5v^;-nw_(8fuo)HUPTXVf4ZRR$NtFeaFM~8z=rs3?^oe6lp)(e z8sSE)y!&VxyYxT>YKLpQUncwP{em@n8P&^L)$!4_HC;JDN}cCk|EH-4AFbD?I$DIw z>{$i62Aos_UY&;xD@HY;z&fr*M!x(lcjX&;RA33kpDSimn9BvQ>#?Jw*_Q+7K4HkC zp{KAf4x@hW+%*`|pSe{X&o!=c77y7L{z!vw!J8}NLD{_3Z~I$veWu!>Jt!-!;R_j6 zy&QqD-8RtJP8(N%(A!T6Pab};4J|OCi6By5O!Z{c!kgT8a7VeOcJIsS*~Lfj)~dlT z4*r;T`v0&})W5Sl7s&2?C(yHJ=%qaD!Tkm@UXhMjESv-}0P@QrXOyyegv_-AsH^@A zEYEYevvN0O&h05U=!3tKipjEVBzVP}|$UWcG&hsRB z6~=ebueQ@B7%b^l{QQu%zg0tq;^B@G_3^(KF`fON>&-cz#d!)1^5Sjx2h=$^gQX7y zNT@V+6b`~csG{ozQ-rFtp$<{#T){`>ss7GUBfvKpm$OsT@%1skci&m2?Dy5ivPA;8 z9owSL$X7a6EFWv}tsRB9Vt^X3`}9BX`xR_W)p@#O*_eVHTP7FX9=-Wc)e+Fc7Ji<{ zV8ddQCPwA>nqV6y?s$@#PM-;pX?`ZBY`i1^t9LC}DqUCN`p{&a!cV{j_?*F@exXRKtUCrL_YdGBQld zd2@{+j>BUxjqg1a3Uu#uXYXc)Q?VX2bO~G=|s*f_9Ml=h?r;$)6BZhW-gT^RX6+aU`5gvOHm=m2l25NB z)8_yp2pvCt@sg!{DbC~mUlmqdrQ>4wYf3uwL;^;v_?X@|5{PK^mhq)FO|^DuXUYXq zT5xNDC41=I=ObHCS7yRgF`BQCLub}*E-yCH@b5S3fZio+%g~P`b#8(58Gq!SKGpdr zQr#5qOmt1uH>`B%2Ye=nbGeudDJHY4+nOIxx88NHf^vq?b&(gO{Lvbg4NH4skbdLDJ4zvwW zK=0$XhedB7CKsrVmPUcs2vE!>ij&V#MncRdmALIliwwTPE-nV(X}x{Jw0mJ6_U(74cLRwbd{V*Mlg;`x1fR^=6slUUzo~Eay|PR=Z(`+<-lcjith2nKvm z2y9!9Zv-5yAe|;O3g8O#--H1bq@mW^qHt|W@P?W6$7Ye=HW&V-_IKbkcY!|Gqhd%M zd`4`2A}rnyQ%O2Fjh4#(F3A9HnZ$i!bCTsuk<7dEMFD~YW0|BXQN0@V9`vM`RY_qT z^&`wa3ps*l^Kyqc412Su>9AIh=Dca6XLq4~?m$xzeXsR0=YP7{h{G!ue$Y{HUc}1l~JLT0crDAR(}5VKKKi% zqb30G56l^-F_!X*2=GiMlk=mz`oLlXy@d_a{_t0wwu86>Jua+g>BHb^DpP-YdDHXM zpXqCpe9v?_*U->WG4S^9tK#9EaCMHni^+Qt>nybWqz8md?ssS;dHuuz>5HwR(Lhq< zhD9DBBCh{FukuACetNE3&I!tvussz!J|&PBwdq0F7Zi#j9vkh_<4v01eZ=7EY63wu zHI2t4J=iRNzyo|5<=q}rQYp4;FLFN?C@udkP)cGJVDq zmi_e%)!BPlm}tht?v4N>}>$when}dR&6K;P2C}qO0+J7JJ;wcN>ohBoqnYRrE z*XQy@hRovXZ4fEtmfa;!iaSc~-5+*tJ<6oEbHajFC#Qwfn>|3nF8YYy8&}7Lcekj> zj%OFLFytTaiff!aULmj|?gBTfga%hv{fY!W{o+9^UPDb4ZCWQ31L*>eh4nV7GPj9;l(>+S3c>j~J?fo2UrvCYHQaRC|tmkEEY3b16FF?Hl$@P&;25GmB7hg{dvh8<5wg4XKT4%QBtOcA4fbEym~KI zeRnB0ttgv^-@ab*C0M@+pzNxLJyHPpIF#RzCO}xmw}fhX0h!<4q7!63$3p?I7zx>6 z`ErZt{x}AejSn8`7K!v=jVV^%bX}}1@ht6p3SOYC+LSW zpftWkyIXS9uDqTFR^5rF(|skDot}@@R&82*H%ib}K_)epQv9!?9&t~zhEsL)@yt!h zF0s?PFUuvD9Z3%`@4-1BH&COtTA#IwKi>9=CM;WEt9jSa0uB=&bDz#`gOe0lhB5lF zWdStTYV{*g40+MExtGV=don=2xNm9+I^?yltpXINC+lXVslPWHPc4@;`Hm}kx14Xu zXFN96EISI{0b_BsxV1cz#bXyAi;0~Ii&`&N>5-L6YRD#~MviS}=8iU;1?j@a-!m(i z|41u-r6!4W<`8MERM_X5f=eLkY;L%L~q>I z`b2eye2@8_&6598?09hPPrR-rhr0mKg8RCVBk!w1UJtB#p?bObi~ZQNs}b`Yn&q}- z%f9gxVj*Sy$ZXDe{96TTtp?KbH@-yXBKG1Zt;@-Rqo0>4a*iJp8of_2ADavC>FyWw zo4s#ZV4Y&NsTv&qraQO-@Vr2JNX6(-af7~Frd;7sxBiAD?msff!La%;o&0fcNpSTD z1_WyH-oXuaB}_w2gPYA>neyPbxyYZ-o9IN9WqQs`<E)&qC$v*2{d`Wx50iEF4UXgv56Rc2VY`h_k&loO7c= zsE#$A%_NPwe2!!HruAk~*_zs%YycFC@Hugv$hk=|bRR8E2FCwS0hsdY+ZO0m!l!)d zcu5pn>8xb!eV`Uh#FZmFCtNGOaTVh6PTA;(m1%5%O*m@#$7baYqk;Iy3OC}qXW*Cz z_IagY<2OqlI#^1kY~$h!RvH508?ReaA8?=y;Rxt^^+r=UckLA)#ojHX+;#dZFLRr} z_(T|4h-5+dTb6)p9x=qNk)mi%<97VWS5(+m^AgL6*`Z0n-?rAODZ@qs2Rl-@#f(8# z-D^zg54&gK_kWQorcrm%*C<|A**ig=MCHs9{Q+{7t<_n;$;*Sy8sTm9X>&fzoarm2 zarDwZ$880Q<0#NfU|`K{=DY)s1a>lsaL>xJL`Kf zumn(oEu%s87E+lM3!C9#*EeRlD3hQB2BD_Pp_p=EZxgDijs|K%uibKB`w2m)f=BNJ zdgX_HB%NCP%}}b_p!s{tk#dv!lLiCpS;;*w^9HVGHPMePM}RxWm5h59CPV#`+yz*D6bLwJa`CPyLngeJKR0QYVvl_|GsBTdCa>AV==k#z^&Y$PT zMq(h@rAP+DnXon8gDyYRR$Fks?>$+ix+ENP7|>%Hn2%9=@^ydU-ML6BMuIPXW%KQHr$ z$i@GtmSrnT7`?Q9GH8LEj~wLX{XV4{!0j~~Ytq4ukbQ)UMMuvibY1||B+9=4km5!q(il)}!oe;J zT@HI?l*G=@=3Mq{YExqS5e^y7W{_* zf?TGFGncP%4^yH&KeGX2|1l#p9<~>1T9(RwTNgE#$)+G#HU6lxE0V8K_DErVFL^pPwb153wws}cA9VB>=DVd@hS#9b z6u>7Ha6jL&+4<{Q7k;u)4|b#(T6`AX9bYa(LXh@on^djBl`*i^aEs;)^?^)>T5DIg zXXiQh8f;jq+7mZ@t<^-eH52G!jLpsSt-n;EmS|{>Pmw$g)_yhAM=ZE)&7hXQil4N`A#Ife^IDk7Pj6k=s-s->f_0PsN^!edrJG)BaR-`mZ zIC_0aDMh&@v@bdIHg%Tq9h6X~-|iSv)?0&?o}HH)engrzo*o?DAYsN2m)mVDxNRTE zzj<4>af#_9kIANQx7_BbveoNDZr^1|U98DzlTgaNs&gEX7TXlqu*(V;n?Z^08L~;3 zgkY$PIiSQ63(2G|Dz6bOKDzwaa3Df{Uyi|cGC}U{&l_VLmw-UTtr=r~;-bVY+;WNh zbEN?6`3%{;Uh_5;HsW|p#%zMyHLOQ>D};M`#%R-TK>DmK*mQtG6D^YGe%R{58?sRM zJs~%L)&H3J7__5~VRuso9X?F(oP)6w+Z_N}5^watACch}=kPxCxAH(#kGyA5Pvf-v zQ~j(1`*(_{LeI4|=jtZ3^>VDMuPp;v6A|e6a>o8Qx}d5yq0cSK+}`sRAGw%H@NLk( z6|7Vy%_4GVa#yM~c9@1I5&Rlc7+}MA)=0ALws!2A&u*RnBFYq3u*qv*n`3G#S#9b` z_w$%ijT?rm7HyG>KsW8@c4rVB4)TX$T^FjT{b(+_ap&Wbn^-oo;01UQrlCag+sZc% z`(jVnrN~Ub&Nd!Bl@hv$NdIK;0^5pr!m$zi!0a27WNIz=^@Sma=S%)7L%D#Dx2a73joZz)Q+mC|{ z+}%IpOq``$YaKZPaKs9t!&}OTEK-iG{vHT2UsfIINy83Pz@JUG4Lf+vo?N6;c`6Z1 z$SDRledaR~&O`k6x5HB2_1&rz`^CZ{>_Dw>SNieWk3IMrRg=C;%4Pe2>RVD4M)ugt()jx4TcmE;ho0HdIP!@R~FvvP4Z*(}3wh6n86tw`i(McXYv zZ~)%ojc%2{BO3;Z&KQV2r+d!EifXfr?6*ro!#ze@7`FzMWJVZMFsxYo`IP$;0%NsQ zSTZkXCuH9rZvgT4K|yDqttJOqRAv7h_HEPN+3})7#U5jUv&})GCf5DkpRWQd-;>b8 z22hF3Kr9?@N#b0auDu-TImoVN*a&AN$N5cMnFO8nw+W%Pe8V2hW@;tvq$#?*S1{R& zCJR@fePw1V*r;q}HU2GBhSuy`=}1%z-r|*ZqskEJoI0A@7hKZiCO zgiUhaS1@kK)N3|1c$Xuc;vNl~*g;jhd+&FpAWrRz{^N`9MpE~)D7q+l`)Q0CW)p+cUL!W5 ze`+Ey!$F(rA8ATtcfuYV-26c&X|>W~)k1e3_=mC`I|j5m_3fN(CvOz)EMs$Us@&7E z>Nh86HQ_vNRLF7?H4HAWSe1kJJZ6Z=KF+hsxD*w z2y*$fFM?mL?yr#G?kAcv(_u`F-_U>?L*d{VG_Xl1#$C$NU%@44ZB}G}TcVHll&l`2 ze_7_%C$b_;v_lN&cF{%h~?mU0#PbvIm8-VHfz#;SPyk{c^Cz!QpxcKq6 zn$7&ZC^ZQ-`q#V%R~off^dVYlT}sCWd+%$LPJQ}rcMGcI{%KP(&<{aEI^?@5x@oJ- z!oRuU<}OAB3mV^QyYE`T<7&fsLkGne&pnWeh>p81CL~1GgN4RKK_;o+8}~F`AoT8; zA@X4+LqijCY za0^14yGQk+_H6}4)Krqr1W|qwvXuHyh_f(%j#S}Jjb}1iYyWrQ*xfGJfc8Ch+XgFQ ztC){Gc4ZGn?+W)M;!haY1s9~s=;a~E*}7IvOzE+5Ph6p@z6zo9w6Yj=#aDMIAMNgD zFSPpv60flBa~0~6lgc@nwD~vZ{)o_;^Q2k&#YFHaXyod_;hhiASVIjhrG~X*S$s|4 zSLb<`&yfTr>d~oD&}6HyY5m1r^zy=@1Q}{-xJJpQXMUGvg=E=v&=KH;K1beT$(PcM zV1*1x1bx1rpyjA9?o;@WeY4ZMO>m!O&T;u`pPd3{rls==x2ZLy9ou9cJ8>aSznY8pAB-fM+=00 zIB7_XW>;%qZz1BWO}~qF)TvMxTF;krsy+O$@kYv;={^IRd$6W%&NLt^P@xMGOE8lQ z7%S|?s#QNK^frHPs9mL#KQ#4+AM;gi5bdJnlG;Mz z>$(3`6pwFp2x6?jZtCrtM^nL;-6V?{0m#Hcq*00Jjts?JN63C*X%iWt= zzO^7?(2){Ud*AMD&&OfuD9%IMYk}X5G7Vs6?lY5H^7ernH!Kvd@sx6Y<+;-6fD}ag z2m7EWJCwpbJR-f$#MfiF1gc_R6b9x!GEZTlO`G`0#{-GO*Il)gtKL|rtwW}*V*{Ey zHiDXFZNYd(EhVC=ar#4pTU~}@NN5b3CLhIt8%yWA|8R`}N9EMz%He}c#ttM=1SDEu zuXcjqds2mPzx>b08n_IRRET ze8$q7#zl9io>T7LtIzH_@Hbz84k*5<+e9IePcWZf8+!>K<1o2>xfltJAynP>Djjj* zO67{>;+|{pYv{iK_Gr7Ui!xWfy}ZocVUJQ=jr~k6$LzCwct1(n0<`D^cW~(jJ9h4K zWRCFb(JyI!vm3IM4);7VJphh2A!Ak9UEH*H8H*n3xMN^o;f3;N>j!0_`bX(BA~l>M zGAF617)^n!rhh^msX*?+*VVU~sM%x$rlQmFww?-pz9mU6|2L~HW-R8j=HeA1sFyU?krO@mSKwo4 znb}{A6+I2s27?HBJVAW2%PMD>^YV{Ghgy5C7Ga-}EIk_nWFOo3-tu&8A93|o=?J8M zMxpEup1Xwr7ED1c5o5mt@#@;C);Ur1xn}b#Ve#TunPwx zPEZQHWLt#&Wg~BEYNzC+3NdP z7a(P;bv_?KV*}Qebm!&+@|;v!)H)e0_)O$~Md*RbR0hT?HM|Ae+u{P6)1ureQ;M#= zGn{F@wx8u&ao4abU{;7vokikz|A&6(qhgIWjy2#`A#v&4h1rb7V53Qkf!mLh;aHsn zhUGq*mni1QjKzP}6RHViOCO-gruB(Iri_=foo~Hw327)^=Zb2()2-ACYjQX1ItiY6 z$0cU25k$w3M@0m{T!!b63arfG-K32S`jVRT)a}3Rmfy|UQXF)!*I_Scu1lzxstX+z z5$9rRLkoNtk6RX=vnHRXO*?XKH}~D6_&&Ci4I;kgb)t_JjOr5=D~c585Q(w3Z*V}O zIKti)c+f9DFKAUbMgh~9_j^lPz}yzAC63w;2%QBZ@`nn+ z6a5mv$SR7_niyE|!o)8QblwXItX~#2)X{u=jdE)!s`=i&c)GU)v4YJKp~!Ry{*q%6w-&5D=qKpTHn*ZAi*^o!r!3 zLW?5}>9Y-@VEO5=;1fCHzHrhE264x-U%!tw%hYi7GI*!qj)!pAE}Z5!aLsDke*N5D z#DUv|{=*)0rs199lRCc=w>sqAu`Pc0weyq|pK+p!Z?8RWhd-8a#0?jFut-JI{~wj` zhCQ<)O+z7cTV!HJFAO?;z-*;Dz^+&!sghy*+mS`npk0&L& z+Pf(#;O3hYD-Ls$VC_WgU?zBk+Y!Y0=(pi_#dA@OJsQNzlMqjkZ1wCpFHlhBg7U4& z0~{yBiu1cogN&b4-?TzFh^2J4;vG{lDQjcrTd5MpUwL75zu?|hEzEokDjSXhc+za> zOmV8Fjd!Tx{(Qryn?xROWuyC+sf(&7AiSZFv$ie@oUdn?^$aACgP}kNdDJi-oT?p> zPP)#HJ z0t5$7AEo}VPIgl*@Ec?1i1EIuaMezH_d2tYnrrcqi-x=-D_0h_P&q*6n{__mc_$vP z-wGKzhtZsdD^*Qxa=_Yi>eymqvG8{;Y@pKWIWvNfD@FP5lN?D3E&pEYgh7?;?2!292!2FFe2`^kY`=fn9%i4c`9%KptwO~<{w!+0$S+i zJ1J0e_$+5!iwII4Wzcg!_GIA%>HSA#tROzf;k|eG2~Y5M*$};rsmwd5uD$Y*C?^!_A`fG zPj9fi`>{JEKy$Omuo3D{(aTMZY`(;gG`(NGsj(P*k&!k^?BooqjcqZ_O>bZ&9aE@+ zOb}jVN1fg?l>1{48z%rdU6pWj%2uMbYjp*r^tP~80_TZXTuk)OHf`GSPs&#>+XNl% z#6qT_!7w5Iboai={G!nF-57(p0lUwnFqua^LG#Ad5|XgF{eksg^YZuTea1N8g*10Z zCCR07-e6C~Ug@`n{Q^l-D{zbKj$j&~;EwWX33JrM7!GA<@FX^iaCUKAI^CyTYUAhN zD$hqp`4!DZIxP{$yE!X`)_zO5nR{4j5`_t;P&QnA-4j$ioBbD_aK}%P1H)E?d{G;W z?UXQ__bzjy7As1|~TjeTICBNTJEUdBA&&pJP(w$)p(kNvkDEG5II zr5@M}osO4VZsb)wAsH9H8+$%Q)-0zm%BSisw9~mZ(}r53WN+x`NL|BJ(yTtOOu{^b zb8cqmbhtdYRUBu(6uTwIMpOLGWu*2Jtl-vj|0OoAAa3ynA7cVa4*?zflWl?NdqkPF zh?Xt2OH~d8{e7SQF{HYOiJD`TacT-@lgg!4V9gc+qf?h>6PoxJIArCnL$4RMl`b`? zr*CnkauACCNPZar5%Iob9RHQy>!Z;|$*3YvxKKAip;N_=gl76ld1k}XH8p)+CBaLI z=>jOjId{)}aR!gsn^yfQhWM>61y^r&?&?z$d^^h}I_UV>ctZ`afBU zF=yS_)#oV*oB3k93yqJ9diByD#OpQIFpJza)%JKG@5ccRsL&PC(d290OQ;TIus9Jc z6q*cdK{Tt4li~_8Y*h_S5Y>b%r2^oxnbE} z={~9TnWF4robbuEj?Qp)ncRCa{uwz-0{Q~%e83hDKM48|c{6o5oLYiX&X#L|^eU45 z!<=B;h1;F|rFD^GB1{8%ST}L1x?Ix;v%kRyd*vSKsjlhw6Q@+`nl|rHINv}s{LPYN z+Iz)zxF18N=CPLB-}UE3AZE=$l?)!8=&Cc|Npkgc`ilySfkG>KdGCn^8y}c3%=ZU@ zHMW5z@^rN+?KHgq7+`r4eCAW>;nXVbzyv4j_g%Xbj+_m*>xh2zF`z!`s5dj=B={3e z*vFXTUGY9SXo20XJ0=?d@%%raVO<{DYof7I(=KWG*$_k4`oYQ#C(zbdhM(S?yc(Q; ztVd~sn!|B0K7eSkwFi91dxu-NPySmiR@&)bcSk<$h15b%DjqHaA4H-maPo@u2T51s z)aPi9-^of-s%Z>8e+$#Zg!iisTEhC8hegyozPmbb)i@mq?xPvr1UeYPRi@=FWg zKib|_Pg%~zjLhYe(~qK=s_A2d((pCLs`!uujqoMNmF$oR|APwGV41UMmE3L<@eTN= z=pFd_#79|ccJ#hBrEGELYq&i{%+>fA{^8#SmOIQg{6u(f>`aY^(@i>euW5`x!FYao z^7z!PfaVf&B|Ap6Vw%Wq7%rrWnGBaLO9dGx)WjpvzgHP!)F+dnwhUku}ebsYj!P;+fF?b8qel zRX+WZt&HMJ90T$~)_-M{t3~|2bE+o3n#CPRp?nKOt&fd*s{S;dlW}1UJA58KZ+9h| z)V&5l#65J%p1$z1B3#j;Njc`V@BLjFhwV$bEIl>CGWFM51dm#U3K3G^Rj;RtD=VXFv%?Xj|zo|M5N;`NQ6pN^&LCtlVg9!)!&eii)8qE{JM!T#tQjLUeN~#2WR@#- zpG4=OaE2*HD)GXDd+mbSJWrOG81|ti%vhL5Wlb}ddIC&?vjp8Su#7Q}q;**`b*#1C zJ~0u}LDOcF2v#R~hff9ii|{tUuT`fL2rajlj-E5?aSodzXXR$GLj) z5$6cD=dK#TGxjS>alaxNf8Pb?o?bgC6MdPVF&f3@F#3YJ&9-4`rS!_UgYR**%78J# zdfB_NJ>X|Az+D1rzg}#u93a|%Qhsl)tl`c%!C)iukq=K~4&)HmImuzav`vOKT;|xao~bm!s`beR)34(A%VG zf~Ad%JePe-=D2^a2afB8JRL%QQ0aK9rr$pkI|cId`aDhH>v~;z!#Y5;thd6fENwn4Wy2UDNY)_@^V2h#Hdn|( zu7RLQAGX74bFV5>GAjc=b$8cG+1M^t+yhNlZIGw{dUcRn&9Dhm0By=+4N4X)QHCw* zHqOQYvl9Cd`e?|hsCjASc(Ju0G)SO{D+QaQayAvZ{_<(vXZE}D#rge!vA50)(LfqX z0J-Mr$V8IPxY@>{)VgM05aZ`L%JcU8grsC1D#8J%mn6eS4zpf-8!o%l7K~fiwws$f zi(c=DQ62m6=xB!^GwC=Op{Y`ZqMi#gCUSRke`&VuZn+1st=smdTeN+h9~@qte`XZ! zYx-i1`z9{z&g8GDCQ9%E}%su(wN(cKStG3bV`t#6wK3lx<+EsvthQXR7E& z;XBRs@_sBY2Ra|jQEs?-D0^9e93P$8HyNEZFK{ahi-@V$WFxhxc;TNatfr@Lk8nB*~Yz<{%& zPheFP5KuX^hW9mGIKuqpMV%a(K$n;_;IOG;(LxF}tkv}I>Uv&utSw~SD@74MYV$t3 z!d_m74*fO6Va8q7<7=A9xJBkaUr~84Uj;_pCuu{R#b<`Btot^*tVbtFr$+ZzKJvG# zqGe0{g!h>OGx!@>l9t_J%D$pl-iHR!cgCOO6uiYSr}A5s3Ad<5NBwI~!J3|%t{;;t zy~AYO1Zx4Rq;9=5-If{q_#v(r5x-(Tr}uS&Mz7j#czI$41U~F|q1e_NR6OT(pomr| zAS%D8Q#4?R{#RGJ)(-d$m0aGNMl$|?_n8>8hq7Xcq+{fWk5T_h@VgOg`Ov@J6TWWmH5?(dTXAb?~!MIWP=RO9lq#K^9R(_{t zRSm-ovaWVbG`tiJ@oYgv0J9OL1|g@;Npj;o)+Ki}>sX6HDHTU^#C}!$*r6226w`ypr%Mg$jk` z9J$(YM}OJcfTK=pr;b4wjtuu*6pW$m4zIXP@Y@;rcc49+TU1xMTHi2>_>@lKh(i4y zh4e=T8!XLV({$(^_l? zjaXo$uBvJlCH@PJ1W)P-sF)P_Z)-EzRTpf)ZHQu%1@>F6^G%)Wak*e(Re|lCd4Jy(dN;m$_o(|V z+|vt9cHxp!->9FM62M!|ht)Z8Wz1VO%O)d5uI!bP^Ll$i?2>)zk|P!a5WG#vb>nb@ z4Awbympd=rawT~a8YKGnyi99ZeV)(-=cv}j@kKcWBqfZ83Kt%bZFzxfWPGWMa5~VR z4sMm8JNI0{xJxz%5e=v@k-bR}F9cpyN*kZ7{k{RROymACH&v{_lLG*%rc791ol~(K z;gQ}ZI}?LH)}Y*4xShH32QUU4&L)T37&6dX?(Ce<em* z)ctJF`Hp3NzVr8I*SmP;w}CAyN9B^_Cf2^-X_ncd4;@?3 zx#_Hn?i!r*P)19+ZHQ<0XDjY6bqP=I2!bC0GgMB9l++wLz?~^^xmlO@U~M_OQ>0r>(>EFYS^y!k8!faO=9VyDQG%auRGE z5nTC?fEW|WK@>#kMov=_PCUy8kd z=jQN%GW&JKF)Pr6oDV{*Hcqt)N2ZhEVT)hz*`LuXh2G(Ge&x9jtgY%Ur>t#<1I{NI z6G2EWN)L+n&J7D0tWxfsi!p|8(lM;(hGxe5y<}_Axy}EmT*s)yzpE&-eBI?;3Mh`% zGV-3d?+x|m3#&T>G!HmR_IKUv03$2F#l<#ri`|XYGH&cg5-+X?e*&f>KdB0z-6pfI zYiHVPNVxOMp;-A2LVNwda;AC^^ja$vsk| z&HoyCZgwBTPvJt8Nt?FjxL6&@ z%9GQ9u>dVwa4Fji8hm~=_N3K56mxDWUJ|yorE@r@!-%)kemoz9DSU@_HXe>n)BveW zCT@nHdG81)YTaecAolI5f|Yz)I$n-x5z3>SSXmSm1P&?*1|D*=Z^86a@J=r)-5!Bs z1eH3a{lH`_p1}>}IANyt)uA1!4+v z^8L%YIWM`)uaeBED2!%4`d~uqU;e&X_u%ZvVyzs(wxi#x zclW7*06r&r-A%aH#K|vzrK{Akzvc5nBjl3;ri5JnC)|DP_Dkf|Saad|yu0uBmf(N% ziv8iDA5Vm^N6ZH)4PS|zs(MnhC+oA|U)n(#{9LQ06l%?jL-AhdEQ~~foy5q-X$(X? zn%yR8Lh$3ID#x5I1hN2iYX>`>F)c}bc@_}!w?~pGi^I)l&^=xRHn-4%Y_KRUxjN$W z!%cIKqqV)R2ha|#QqN(MW}AZHOSK6Jos{f+Tv&?bQj7{M_=tj4oB~Bqruy*ctNUY4 z9w&Gge0i{XmPkTfccg()e0Re1Mwl^1Zlqovxa4|Ohd!sR1~uA?Js$&rU96ZE9fx5d zp|VOLiT(h?UeozI=G$`hla`ChVly9%q^cA*IDC=0exVBUixLYci{oc$j8UtO|4|{W zu;23N^8TFmZU5^7Er`7jI(Pd$>8a;)M}4|zqK-YdpS7S$Znb;vShcUM+h*F0?6oEt z%-U0th4g!?0m72;e;5O?8Msz~_1iKnC3%qM+nfPno=UK=y6&hFoIFd7vb4yfUhf%L z;0-@+{^|?Nf=%^PW z0B=_ABj=f%LXHlRT;ANyN5>Lp+jF73!j-7FbO%f??1!Ow%Ph` zK87iqfUDN3N_kZv_aVH$frXB?w{P3{&KBEPX3Z3((7i%F7-_)r9uyL2z)^^8CAZPc z$L6aazA7xfpdxN?7z3qC=8IQ2E`@s&o&F;9nu;(6LizzO8v$itmgRih0PD#*z;fTJq?M#T`N!w!mTzqPb|Z}$~-7>(eBrnRSAk}x;pTa zUww?=QsKS0DrxV*n}IY_cr)ncadYyreFb~07!@`A?XzCvFL}QNXw)i%2%1ZN1Yy~c z!mD>}ac>hEA3Qq`XPh?V1}TMnhKkG{h0bm>jL)#Kz%3}X6NOc(wxk9Bi}42DZ2-e$ z>sP&0nn8860P2 zgZwp6Joub_qNc8e`>L_nA}Z@(&R3EpY!oW}>&y{@S-bms!MaBEd!YX!Dt3qGUNz-z zOVXF(fg5VH%?a_HBt~0a_l5W%u3v5NRbMJZh4L*04xVNB{h|wwzc#x-e5yb$>x=r z^~bZs+KVp(E@q{NlPp`M>GoL1X4`X2UY|K@8Kfd#4*QL0U<_M-d=J9|pTN?w$Ts&t zp+1+?(6!cNY}P92no0ga7PpJo=pR{kqbq^WF*r99g@gDK*wcT%TAO9CyP*X?_SO&I z#L;MFNU7+q8BMzu2ER5IGja&NiFy;bPsWdIHDuhKu+n&!0H*!D)i!yL?FA>)6u54C z$8vknOl*J@ZPNj-bNk+P;jwJ6h#B$;FYj>p3Jp+!J4HqyM#Kmsy3xpx|EQGSm;SVJ zYDu*3eJ+;9f^E?8h!YZ@M~y)%Ex3c>j-{ z0dG@UJernz)@K|=i)LRRyW5^Ane+6ro8waHP^(Q8P@o=(bliFG&&?3>Moi9Z)SE&J z=^^w5BHz@-j<5>%bEObC5yPnjVP2*L@Jo6n(W(%;?dSXS}{5&5?98zpt z+$he7D_TDMs<)&`prfNdXI?VNnS6az9c$Qia;;S=O@odmF3G1 zE^__&+1E`G*KDx{71tm11rrRuR!hg`q+ivZKOfGRtM}=`n@?KE?a;*sDp2NnULRm# z`Hf{YmNYh>5wA)K&Mx5c?`R11&=S|My)VjeIemQB%KkudpNL>XXr(H4Lm~KGeGzq| z1I>S-%4nw2#$#oS%*;f_L`oO$|L3O0VK`rp(koyN$_Z*WCtyk>DDk9hmz#!~wy(-d z)*>ZGCE^I3hoTuYS&;$V+*_jL&Gm-KCFDDlFu`?>)y4bmFgqilfDE#U3zi`Yb5+s~8+uvSN$d zo{-!6pp%R(KEeCt|1(c2CBIEgtb(=zed9(Lrft3X_TYON$gHHONiAn)%iY#c>jCBLwikST9ojvLTaD$()pn^0%z7Xs(JS= zWxQZU&x%opjcp$sOP6cGyQRgL&#~&IU#qSO94%f8c8pQIVgRpPHBa`Hlnp`@u>#0K zaICpcT*n&z^#ttW1wntKJYgErpw(DTEpWx9pxTjZpN$8+%bVF{28F=l+NBP=e0ez_I@&ZCNis{jfPRAtjTS zphylZ%xU9>T?#3jxZRQ7Eugr+znoxi_lZpSD2b|b98`6v5tn0)_XJDhX7e3rZ)$|k za}Va5++a}H@5gp<$0_@pCNg-quIL{I+YdQvX{TTV;aHX>i(q(h~ z;Pm@$<=SkmD0otEGj-;*iz25y>r&{=TZ;;Vxrm@z?A!WbjvQc*`oqC{?W+>q7~{)IYrNoWRoXR<1Z}W@Kxmx$`I9N~UhA9uBu1Y@r-q zgS0iePUwUo@WDo5QNvvp^`9@V-}%!A)|<`>kgYixV5R6_ssF#uJ=N@%BI{1 z8<{~C|2y*GeU(n07)qwfg?3#Hosh?-*r!@IRz$%asiWs4)2A+ym@KHtQrv_s zbXg4h-I8v$WIR;fL&%F@Ng_t-83t$Z+vQ=6Z#Dz@ zmZ{9IoPS^NpjRvFz9Z|_<_F+HN{M5*E=`Y8vEsD*SIYT&OW!f9|~KXat_jl>KmjW`dm#tF35ZDjV5<;@{f* zUa{pzd-Wr4E1kbfGSOGpo!f(_(qwj8XjEF#AdL=qUhXr-Qv24l4}YZvNf~*Ke)*%N zn{siEoI`O4>%LorMa*Ts5f&|G{#9B|wJ6`!CntrAWh%q@P8GQIq{+r*;TscN>gCxC zL)D1N4<2l#o^09Xi#~;-AI3rYF%#y#QYq$AWw=UcI}OgT*N!7_j6bFF4p&p@F2p73 zPi%(V%nyRxjy9e1FtedRo$n(X7^{1N|Ak>~HWSZ%O*F#&SL7P#e~sHlxCc{tFL!lZ z<%C+Ps3;Q)(<_dw)WlLdLtfwYTDv-SZ&Ut82XX1SV!cfJ_jlANSLhqFwHLB^%q0qZ z5ax%a&{PTT{S*DOX+cF*vy8zkCsfXRxrPu?2xFfV76#1rIf1IAO|c|l1#&HB8)_0s z5Z+@*Vo$gb&eiv9?V3KIA)pfZp`>qMo8ktTrb;<`&kaupM zsu}VWnqLsH7OiOT&mte|8ghlji)H5`})H zzGDU%EHWUxi~WN+VuW_Sl4$L}s1+`KdbUAHiE;6tr4)V;n)rhc@R@QA1wM#5VqiSO zn;r7?a{0e*7Gd;M9OD$8?RKauzZg^B3V}KH%;~gUD5wUVfC|nU*6Uy}zEAy^MVp{E z^fa!%NS5hJm6wOSX0KD8b~HgQ$^$hXN@xzKex8X7Xuo|XUKW_6-Z*_aXYMz|klp^d zJ`}$kBEH%t{Kw?Uf^NN8P23Te_2nGe_b}bH&YR+UEgpW@3~G2FYshv{259a`pvZFc z;f|J~{AP9B_r7$ra7)b-BLPy91a2hr?!iKZR{5hZ>a5qEQ%7`i&B&)d%nI9Ap*;@) z3snkP&2WxQSGVThNuD%1IBdu@-R_egq`xVc`EfL`0^re?s-(?&8bk>93nGtb{@nI< zKIw2yQ2E^xY177Fg$7nKm9D89Q4V|?=x|Z{& zwxBudENv-eE)tI}G-z*)8JrFNX6foB_%7^Y#*a)2eQ`)tA@Db@S^UJhC5(hmT|j@> zJI>@yW8?Z+H3*Q^U~);PJ_E4+T}q{qES8DU}f5?)%Z5`^D zE?p*s=Z6g65StxSL{X)EUGGzQ{a;LX?pLX)8uWTIfE$5J{e;5@9*oQjM4;|knUG@0 zwrp#gf5Ul>9)^7(bD!DS+gkf>&o=&A;;lcAk0y-b^FVAgbq?LrhaZ98xh-ItIoqJd zgw}!g?-O!a=`{Hoz#AE6xsV5AoTMwibDJktlr)s|X_gEi``OECnf-h@5^IWe+GytB z!sRLp-|>#FPns0xFhx9}U7?sazSdGq1l4h!#DT_ptyzLL02+ihLC!4EJ1o~C%e3X` zjS1em0G{-{F>fG=Xrh-zPkFDyhib5DSaJTXJoKa3i zY7V>j78eN`wi?fv2f?2$9E*&&?}Lb)U7q#+9WMsjV%6V`BV(o;8cyu zJ~b*)WF^7s==Xl8H1LwW417M_!p=6Qz4N{*+v*1xb+gqX1dRg_v1}9B9ZjI(s?p7PR;!H&wg)+ z{;B3D2x~-}{Elj$SV8_ul&6T~kp}_aMC$6MT>Ye-hfPp#zGzc#nrm$Ce|kZR09(J` z(^f7wbNo1euUTg{BdN-~5@a${fck#Cz&V`h)8RBfzm0L7x-(bT)7)xn1oOpCyPbJ;o9 zBLqGD|0)$QKV>KMn&LpeKq}qRugzBXWHLcN(7a5WhKa9vu&PVAE>Jpy-jTC@KsDdB z_Lt+1T*PT7@;uF39||Zlp812X1sRc%K6lg#iG z<@iE>Q+gk~aI`-Pdj8DyH{DGN1ZWaKSJ?DUQNEOT8UCpD=Z*7rgCH!)B*g3Z@o%Wn z_on2mJ;AP1u3rr?3Rru`MfZm3&bu3<^#4|>@E={qRRk+Re0Hv~k5o=Z3~L<1b#l3O#Bp zH~9g`zxDWM11Yoq$w88(WwcvMWiaVKyAn`!NtFs7OF2;wY4WEnu)DWY8L+t&V13j! zY}&;DeaFo?08`|{6#>@o&k=s@(bRXK7tX7b8y>jcr0G0U`HbE8pgHDePjieLkEas4GZk7??k-@eH{L&(16`gZ`&wb516 za54VGPbc}#Fd%$hEIib#b#&DGPEMo%mB4-aMeM+TL{$o%*410|d*-Tfujinybe4e5 z5UurA8i|iJDh|RZ7dC&w!XjK58$cezJ99icC9U4u_rF=BhYYDV`%N$iQaj=9Rm$tmi z47=nA=Xn`9IzeLbssAhtNbwM(I@eXJ}s==iN8oVl`!M%sjLfD=3t-RI3io+vm zQODv^cRlOU;YrdaH9KIAL@hn=7KG$}Au1 zC()6EBLSW)SFa@)C~2Wl&bnu7^d#gP#g2m$buW$=Z>!x`QSj%?Dk;8lBh70Gi^qiw z*$;qi>!h5A{d&^{MuYXv~G`yrNyc0B1@P%C;DncU|1+hrW9 zOU5B#*)jXTv)abjLg1Pev%+o&!N~P@Gu?L1P|<5j zH$!P}YTM0s{%nJe6=Za~{2}vo#&YVq+mQ0SP5Iu)r84AL?zh?DYE_&04)b}&jX`r0 zB`EBE3BvzreY!a+MRN^j&E`=8+4$8vxHV`yC#-#Bpvj^LOkFMD02Zced(cy>2UO1} z{YUgh{p^qK@VMTSR$rQFmCTAM(OYhhTlwma^{GLqUgSH6-dO%%sf2{$9%eRm+eFNP z!}!V*#cS~iyNFLI9O>9xPENV(UgUFzi1fBkR*~A#Xx6e#q%=xNV8@f?gzUi8nHxQg zAKfkS=@21;WfWSkaFnj<^z!$vcajQo`FpbkDtj*1zrgLl>U+HzVl4_iTuLd`8uh{0HSTkV1;YTAFOvv)D46bz*Cr+&~W@(Zgqg4EN?*cM) znb9g}x-kYC@j(bUAml!rEx~cXsE%c&J)3bT5xWBc^fbDMPQ2IE%+PE03#S|}!`a2a z>>Brx-8?FCcQ}WqccdF;A0G=H(|wxi_=l=>Tdb6#k5U^OMi-R^gkxHQ zHL{_h%O_H@loFmAhOu^Y+upSjXCx@;K7yN_?5HHJiv^(X$QC=Z!t8l^4cgF=kS^`c zn*Vm$&iiGfkp$xELqceVSnf~#QU7gc&3_NWwBf7FopQ>r;&97Cy{c%*ovBPn$UmRf zi+G2^6xrp2Z>GrNo1PFdu1o>ap{`N_=OQ-FvFbVU4r`)LZ}>T9qX_|Dq!wrXhA&t^ zOQCn^yp{Yw{Q)#@LuFX!NP>Oy{fw^z{-|*5kp&w}%vZOkI@`p$QbMGrM|grf0WDYbW8e)fElQ9j~njT zi7MUNfqQM2nkf1CYhh;cU6t5B<7Wh)E8ub95^n{A&T-0w1^i_i$&d~i$IYU2Oi8xx zNSE4Zdp| z_v6|;0J9bsuHt&t!98Lz+P02Qkxm=MDcHHlU!Kij3gvRTOi@9NBpUn^y?DU}|!~0Z=)UIb&?`Kz?A%)Bc`^4C_&6_c}}xYvQz zDVW+DzYJ_^c_k$>(tTO+YFQ-7jR8u`{@^aPJRoM!#x7OGNS}{?3AZ9FD!R$tE=7Aj zcKhf*qNlPhf`IKU_^k2o;mZndXUWge3mJrh&XV@NC)v=VQm%e^S(0@bKyvBtwsHMJ z3AlTJIbsx{4ui1*?$+FB;GQRjx{~8-YfU;TbE-Q5Nx;%(FB7&=)m$9S5}l*TwOb~p zKJAyD?hBZ>#X&KLYIn88HeX#n;UnajKnYv40JZ7SXhEM-?HaQ**Gw#x4*);<+s@6Y%A8)@e}i*v$e zc2tz?IOo>jYG!pkIOl|;@+UBV+rBQw1(N}88-l-Hyl?Aq!(RC6#*YwDk*b>}9TcKi z7-#C%1IZ6x(PqHEFvLrsen$&PzeNGx4ty8w2J@%ain0(QD)Mj+;0qjA?&4Yl;$2VQg%Gmz7KjCt=1oDm9;x-S zqF7mi{)KD>hsKA3=-0BkkKcU?iZ>%1eb~79oT-u1JOQ&B$nmq-^&bAQHAY4JK1u18 zMui8CX?!pJ-pmbT?3oMHEaYOmpUpKofjd^7ngIEZiRRa3;BS|3$xKTPjX#{TV@GAB zke3FG|GwajCC)&_oHLD;Q7Nt^|J4IBhO66tKY3%agtW;vjvhF=cRZ{ynmy}zb^1F| zhiD&>ap*S4TDlmhj4+nXFASkrVV>*}*Gi_UU&~-fl;&TCbND_%N}i4^>!-m8?;hky zfrji`BUts55;`l`!VvPOUtJr=Va}f(VrMEcW}BPOo zN}{Ky-%%ifcs>(0P!Qcq6^_m(__cI3AKi>?-9ogjc+#EcAe!M4e$52PKWCJ&3dMIa z)`Exrq0>aU-&m^q^aX;V3MZ3OUDWcc5COP z2oOfSG5~S+d={5e4}}S2 z)K-pW*{6533)q61>W#I6uo2;ux%I@L2W9taD4!t4veT)rT#qX zp-QU1Eo98Q#8J)v`%MKW8{ZdkMAIot!UV(YzZFD}W?m@)+gw2K+U@4lG}WXIZHid0 z)HXzA$Iz?Y=kmGxct}pa=F7$B2apyKoCd!|dWU+q5LS$9=&-=+2 z7EBX$*-|Nmo}>7|#zx@Tmt6D5b){1;|pWe2DD>ywgDV0V5tP)A?dFB76gZA3wh z*M3=d5#}vvdn`z8G?D%^ccAdm2ff;6X&aV~V)?cc`U1a%z{YODx9pMqjdE{gwzSe* zTZa9LiX|yE6|SG;V{$U zC4lX;tKXq3OvElGeXQLoCR#cj*l#&JJ}NmZj9|00n>U~U8YFk<%V9eYa? zzZ#AW^^w(rSL3Pk7GrcMyT|nvoxqt$Bu&9$MZ(?~p?zL&2S-Tbc@!hinZk&kogaVZ z+BIE_RWrtvv&(MmVnUZErR>wcRljjc<&TD<^PZ<;CE!xIy#BBv=eCm^%34W&?HvY# z?7P`7CDTfAdQyWxH<%d4iX>;O@|n^(c>rO7+fLVSbxS%J_;5smDL-^RWbxIcB^TXN zw|+k;#~RclSr`q9kwCLqMMkUvx6~~uBq?3f1BvWJ&A)`!IEEOYkC>b0^hOl$ zPGF*)D_VgujG$}Rzm6Pi1d5HR`1I11q^XbUP7yM73E=8V#en4%Oh$8xz2l(Ec+ntI zb|m}5&?zvKBAtp%?Vk1Y##MQ@LFL$Wliv@P6BK0x?jc&uyHqS!4c#hBwfe2!WhxX$ zSM<*y5j}uDF4{M6*vVW~t*g_2mcM#)&$&N4u0pbIv@qWAkP9F%^*)a_KY#- z0_JVfn&G}MHM$`DRh-mq51g3l(ENMRj9?%;L0RZ%npi#C*XmIMD3<*JlNy8Q>hsmh9IDgRG6C>}yGal$u#Jm8K=P zpa<05#z2(?=6v6ca1Tc901yGu)@}N%+QDF6IK$y3A!zO5A*~g8Tz26Ax$H9l2&K5l zlf6BA$xF~6%FpAL<&(0qU&pJy#@QYcN^5>ey*Ay_j5lDoFD@^BdYtbE*zfF`2gQ7g zB&{e52$=G`uPLeHk|>>oX5HxUl zmgD^>yNgLRw>gRfYuqaA9r)w+`FT>$(>Iyl9K`zSMMOeu%mN$gW&?|()fQbA^ zcy)L?<2%3X5_h68vtM#yCdbULxSdakCb4k8D~&jF`nuwOtKLB$pmo(#kG~$hx&Ki% z4}=uFdpZ96`7iQVHOZ~$12Q;I)yR7IU{W4!)1|wWK@L2p3zu)UG$>+`-!k!{A}S|V zPR>MyzpYf_;CUD4+uC+ZzkJBM<_BACrzIBp2lp_=-AF$U4Z3w{@_|VD(mdGfn2f2K z!cr|n!tUqxp47F1k!!5raN%;RNBBSK<}?%Lv9AZT#XPt#fsqE(;(8L9rRUf(!)de? zx!jZODAEa&CaQ#_rMDF5rNMU}iA0|GjY)e-g-ixU+0Xh#O6U53niOg>vMZ#DfCB+p zvIr!a=Rcy}Quiebj^EvGXG!l}Htl4!>JFEp5kxctRckhaTgG&@e*N3Sd|kP`+D7#a z`sP0ROWKy1ZP?+|&OzK;rYFz(=;L1>w}EhzRWJUzo+<4kw+0nsR5?{gA*A@H+dNwUDB$YzF}o`BZjT>qGhMlUc6@L*5V zr^$cGn8z$}Z4@)@J5y&))Y8K!P|xg4jW>B&jBU!RyM~^D^Jf%8x;|i^J(JcOgs+2rcZOrLb^_M zUFM9G)?^C6Q)r@wP!+O!F+?sINVx6(frl|jyBI#}`bOZC4no~`v-=;BU_YBiwT@0r z(07-hw&R>I5t}=|t*pd9z+{GHw33I16x(hAf5-X%o*up_YS*0wt;^u51FVojQ&&t% z9s_@l*aFPFf6FkGjL=z#GK(|a>V&YaCWpl7?Uk@>t{Ip*UQjJRGjl@(=ht{W5(VHR zd#dU;MHzfpbEYV<9`XZ+h|Z1cLZ9bF0aCNyep~KA0}1}#e{4=c=@cxPNhom_jhJ?c zE3I$sn$iqW0~XE~jl`eg2NY+%@6D%o+NB?92<&JCyIr0YOmze+4KEEVTaW#nu1?u; z7XbGqq<*#D6SD{=rxIh4<{Hct@8up}t9{Gk=zhb{s}5wet4my_JBk*45zCK#fnjV& zY#&CJnksJ>*E`UDf|M6+PyI*qEr%N>2EZge2>LEa$ns~UIoZSBm#C@*ODrkJ#KEe9 zg>+aDc#dX@InlnY>+@U_D$gS*Rl0ViR5s)4EfYYiTbAnMu1g$NvfCh(q*ukU7e51= zU~|6k&CnydbCD993`w;ME2K*=@R1y9lc}e>2^)v$&+h(vN6b~Y8vh#+Wc*O4e6ae2EQ6k z3|&Y!v!tRfQPrWJRip!|>{sFB z*%1O|zuEI}iQ#4uuE1UBzPg&J$>OY$dwlP6i~dWmyT)CK`5{!>YaUBkKSKR z;xi`gq9fk&Ali);Jy?^*^_n;+FO zLB{!^#FM8dIX-G*1UiQDalNOMqu~^M+E{T9o~vZr6^Bs7+w6Uw`pd4zOwQzcWAk^7 zoqo~RWeY4vuWV{rmuoobi9}QH2|@t`b0Qe^)N&C)5bE@RX8mf;_dFEp@#BsdHdWd) z-2{i@a|Yj}RSnOOHqou)!iM3nYDt#&ge&WGFV0z)$ZA~yGC5k3Q#oOehkjj70Z<6= z(OEuTm$wm8r!hJ2P?gz*l71Y2HAh+3F~b#A7y|wN{)XF_CJvO%71ii2;O?*NPj%tM zx+cu%2;A-`)YwMutsul3Jrbo;IY|{z&Kf18)Zoc~j;S58bOY11AW@uTsFD916=eT( zfG`nh1_~vhnYanIBXW=SC$I0G(RN;qN z9^5o4Gb2X|D!83z>)@FRH!GK`-egzN&DM;s8{iNHb}QrNcS1Xd4*ZgrTxsE$3=gWJ|bF- zML^%mQsu2jIUm;U@ANTm0kkVJRqGB*SiKFx7MT@6lHH#89-fE%wQ@&+O|!7uiGlOr zL%c!VmE3I9o4U3y{NDw?OBP*Xa>ZQo;*D1VMD6+Ipst&x!SU!A3! zDq}LE4wx$T`CP>CYsi`ov{=x4Em}h3T{X;}%i>)pSXXB}0GqSp+EjlS|RjvcxnNbjG3@)pn646s%ET}ce_jA%5*lTAC6x%m?RzA7^RyG{y*pQ2=kB)TuqZ3%=1oBYYb{TDj*5Qt||grIryHH$O^%H(9ScprR5bdYd6olpBXu6 z#HeqcD5v?Y#yF}jC|04w4bwExl}YL3p2D7_Chb&Z;@nin>_fNndB!$Lc+tnTf+cxV zOg9%EQL>XuQSqn~0lMCbY0%QO?b1Sm;T^lMdjh8J3$U)o?){tBk{XZEOwuZl)e-dfeVIHY+XAyo9!}2V=-bG<;9uZS)r^u zw=A6h{v#^lV8S%R!%oPO(QXgH_cmY2HXfpsnjZSIecfS;TnY5rtqn+!sHo{FQF0vm z#JQ#XiVK2kHfR~!b-#e>eO7YfII}bgP`KvGe#^$f&Eb)ywD4sIbzO7#;6=O@C>wQ`Csn+o42Zw2r0E9sT8eKkDhG=Ke;EdYAGTS-!J;JZ!OdQkn(jODXn2 z#7T?mL-8S-z9Lusl47Oj6z86s3zksfDpiC|5KEH|ZGT)$d%5ztp>w^}Ww)QU^h8DBW~5d@l5R5xC`?0$W_7270fYv< zDH-KzUZDWm+tGE{1=G{CcLpM;Q8sEtu(Xu%KZV@e{g*YVr-!j*BLJqgQat=9aWX5CVoCSCKo#^X8a{z9rK;3U@h(6(Z|e4sUhpjvG!Zu ziUUtrEe84U>}y0Bm>oSQjZ?!^-EF#ArVxW4EMf;+NDmSget3LstP#(0N?fL1igD{j z=kM&9s;+}~YJa}@QePRZ;>5bbLQs2lsR5z>RDdT%3Wa!3Qiro%d7sTo z1v+44s1vidgr0AaHNQy_liv*-Z=`dYep(?Qkic4~gn|{nf_Udo?OM&tV^!+N2OM5k zy7F;5czu`za&KsbDex zo))QRkDVvvwhu*U)>bV1XAHH?RdBrNOU2GJWeC6@4OVf|;hKXF~(TCRF(*wA->XoYOTTl#}P zcbkwuyQeQdQLMV#H!$BgHE>TJk7Lb7VN@QoszC)gF!E{!tvJa0yHCZfO@i_M8 ztHeYQ2C@iEDti7+>LVJJo)#vqKeufCENp1dvCv6%Hp7UH`S^9xE3|eSHqkWVAMzYw zE|fWtdE2a!IDXy92-ha<00TIaIYg&Ne$SYm zBAQh5e%m@%?nIhE0vdp_S9mb3CKW&Rk}Vy^jg*Hug{FtjW!rNp0QYwx7+*vGLoxtf z2xB^#Ai*o{DyAzwy*;GBEJ?Ox^3~RJ{FLv+C$>KFw6$qymcn8Nb^?gife+l$)M1n# zS+1O-v7^~nkLLr_M9)e%l-_xYa?f_h62le)PYR2`2O}7qL1x+u;>bvqKrTMT-i=)@ zZ6^6bPtlDmZiE2;#@=V4y03j?bObjnW+hR<`jvia0UJRhVQz4l&*aT(x`FyQ>=P81 z;navYI+E30@mrz1gQzazxUF%oeD+!piQs{y)$cm7*2VR7yFbZKD14ZXZ#@|0L3Hgyw*JT$kI@k0qTzfTVX&t);QFYFdzuv$1+nJV&`0tY!#;UIlsx#8_@gEU~EF2UXhe>;BL2p3WLE`}B_fk%_ z&IFOC5@1NI(YA9rrcbqCs_ad4+5W1mBZC2IuCA0)F)h=Tn^m{C-pl*HnY?^cG&1%=Uqx_kXlj3wG zIo*3f%$E$|ZoK@2+o?^EV+a|F?~jpR-ITD)I`wF|b;L(tvRhotHvh2D>#uFoa}cT% zjVx=Uu)BbPg97s}vc&Du3C}H`lnAdl2TF_$gm#3$F7jLUMd_r*p)>j0%aQ&NE*Xx4%W*?x{8imv zU)FESzcWGYeLY@Y*U< zC(8bQ_pLvlT=O|zd^3-CzNf=JYIpf9cB~nHvm+B!pnO@E4{nekQ6V z<@;34(P)q{v5>~uTd05#7^23MEyW~-w4=BUf6uZ|LR|9UlIZ%})rzA&0*86=O|oMK zH}Cw{nD1nW1Q+vf=J5DSm|fwMmi*O%JzibUMBBL6-Ky+}dcw6eV|34C;=A7^{-`7s zbNq?Wja$PbNu5@z=DzCQ?~s?^m;z9aaxiB6?qYoRHNBE_0;PSi3v}WzechN?P~M%~b^I*s1dyHWzv5jL-X_3anE zvPSjtV3Fiw$L}|brkz5+TPSQu{RlnJPcWy3o@941-6hSHj1hE%iI^{w5Z8q1Lmq`i zQThtUXVhQUN@VwM-!9j4+)Ug_#CARIL#ITJhimEfusw4<1Filnoh=0f*+0FPsvxbQ z2i$K-qvEGkzxt%AbV{fzdH!szo^G{B$^TG3=NIk|iO z!Pg3vnlElR{uJQTxcK*H7H&gx(7X1GUQkmmuLIoY+-WnW?$Y*GOeRUMx@Of$aqN^WXc)zTCB>M@lwO#}ZSzpqXtmu;M*`vu2Fs~n2^sUdYQ z_Tk%Cd6R#Wz$>lOwIngr+>b6{{}Dx8b64o_(YuZr1aO3^!5!KZGutgSe$EBY8)Y~_I&YcDt$H(m$qVay6{6LQjt!uln zVtcd7P}X3!NH)61J&oGF#F1sAZ!F?WMWBO4%gvL%<FU6F?cGz8pR_{o zP$Q}kCaTvqcP6+|;MdR2B>l<8u}_x)k-7|8be%VU9D`W#`y4bYW7(RORT`(D^iIkU zxRBB-i^kLq3r!_L%YbZ`>7%L}fNRR#3PKy4nyQaU>%l{9%){4d+tCPNGeTS(EEf=TABzVJ7rUv1^SFM3ZOy4-=`U&DH{W8kn+5q>`@q2ZX zY7i_Pa8PPLa@;+3yw3VCxMo{l zEcNd1`kfc1^%l7tnM1s8Jr2*h8V`#6^v8QeBl|Sx6gQ&lr3-|PcTPIM?JlnP2jtH! zj_+d8)5Zg~sfoyfzP_gVSk(nxkkC|o$Dy0VE=SS8eJ$f%_nL$2oMqI^?cpZfrBx<& zL$&(zzr};k#%lK2tqt=uJc}`%7Qi1CnWHT!KAFUx#YtK#hWU;X=F8G_eUuYb456n* zr};d2L`rVt@6vu)k!2<*(5$uamxrOZ_ufGDy&w2)d!UmBn4*)3FTXt)dSy?2v63;2Oc!cL_EeoBwf|-KQq5fu4 zXP^FUQor?;*hti=?o5TKU78QANF3d#B{!_3I!*H5!Sod>bxCen{lqH;I}7+;Y8j5Z+WISeiRhWn_>ZV3Ei;J@e|T+c!1tZP694Wm%XbUuq|qPT z)DmTE%$?F+7ut0KOV8;Y>zTar>@ULjH-=5ZkBg?kt*4O^K)-*t2dq<#KA+Y2;qQGt ziy~V>-wMp87K`Ze$udfWy}ExDP5@R@iRm!s^zB_@!cYagxk62m(b*TKO^4?CVcUp0 zle%s#lk+XGE+H{EDZ9i}*bdRskLhvQfn(AI$E_~L3_%=Ogm$4D%Ae={oi85u*s8zj z$tqI_@V$x*@1Gk#8*Wx-DASlFhMV^1ach#vk=H!9%XB79*kVAZs~@h`euu`&;SveJ ze#d9C-AWI)5CrIk@n?Bg;;{E(OgCf@XQ=zM%SrAFZnGFDp=@3m;?Bk}JG2~1F-7hS z>K1DGL;yR21I3-GIY$3{WBl%@ANVNmctkPMhxu8sKp;4O@W|@=3^hllT+v#WaT1Xe z{15oe0O*{X>;}b+NrOA%29DUQW$%lKB(;{zrduu0#K+C1ZJFzlD{+MAW!v>RXqhAQ zE!YYVwIPc-py$3cBph|u1R7w2IQ3)o+>N#VNBPtX-$;TXIM~T&+on1WeE4>^7a;U`6id4?16T9K zM4QIL5~cv5OmP@1zA4=oCuB4{e}eePkg}I!j@SW&8fZ`jS+YTVI$Ui5i0nBESe+_~ zh7ySdG;db%nm1WM(@F0-3*0A&3I9S}wJi{t`02`B;Nji_W*4|4QfRXqjD|ljS>IZY z8=P!2BT&~wb7B;=w#G0;HWh;47oy^7lAx^{+phW;H7Qf@u|>mQ!{P+CtH9sHjM(2}O%?YhNWbV|gd% z9%PfxDmSrAWIuH5p(4i5*RRdO*wx4n_3{)%Y3dyW1{o^$sR^G3Qg`}|MzdDnox_Ut z3ME2;P#{&bse4u zu)SpHKcZOU(24Ks{4m1sHO&2?zw+Vc?#J7qisXnp^1p?*A0GyTdT$d}G2PWtIwYI8 z#F31*4qOqezKr?XyR;mB{dn?_MCnimJ28_YU-MtS#EeYWXKK#^jBQt&Q6=fZ(;uG& z4$HT@?W!6*Rbu^`37oHt_nEdzJ6Ru5d$;U2c+l96z4VMuh0Yt6+*J4&bl^ew(WVca z)QJktb~~*A>xawI@ zNEBN+bvMwm7lB--1xU?U_gl7rxOkk67CtL7Y8g9g176pQv*od&Y>J!RodiZaEPsLf zO|vd$+U8*OIm%Sa`#7JFHvI*_^tXGCL#D zGAzFjOiaX}HUo3w-cIijRw4M}o8yxkO7(jS{z!GiAdKRPlhM&(?PsYU0o7UgA1tHd zp{FIX?X~j?5vTEJP)|aTsEUz{+)tCH9RC5^-Xy{nm}_x zHZb{$UY5GUzg`~hk!9f#l7Ss%ZsWHsCpe6%YMyV|Sr$ES&aW4`^z_VxNSMi^XtuZ# z8N38_2f?cNBUFivDzKNPeu)u&ydkp~KfGlkB_Q%=Sc{a9?SER8iXDn7Ys`@p>;;6n zh|M+5^s$240ZHR}e>QewEyauN#w(+VuI+%!BB#=)9|dMiW(FapwF42g{95U8Xc;4Y zNNj^bHaK;na=@`=U$Q~hs9DwaQ+v=hH*WwNaK2f|-i5VM#AIT!??0j!s+@4|^2<~l z)6M4g4A0WwYaGx~n$?zYiF+z~03hc+&6PTy$G@|}1{tFfVw;2C#=f~Yc8|XIJ4knE z@6SZj3@IJP>7G2Wypol#{4ok6UG>|r zOM<>U>{^X`q{=kR^OkEgcf3i`_o0zo=hW`K<{)MToXK;fZS0gl{0d1ri_9r-v{U(i=Y)WTXmA~Om0ttj=}^JT-dsD?5BtjXBg{@=5>b4U^=_qgnaR=G!W~4BLc2I z+}n{j?xB@i8o3OaIVk1BN&)7k$&%CqYiB%W+7kSK?nSN^$aGq?&}i4ruGB(23V?BI z1TV76M`}0Q(F;}n<0Yo0Fk?RwIm5`ZFFR-jsD8U@&kfVt%^1^M0Hmo+$qu7FL#S2 z18+P~Ip?+xGM%inrUOXG@t>8{1QCnD0_6-vF&&)yrQo{ygY(o*bPZcKS&}E&9uL8W zk^owl{-iyP4est}`lM^Zr(HsRf@m%EvWrLFwA_h^;E%4I!3lYfkUxmlr$ zMIvmvkEg_8(YJ($?_?=z)Z5Y^E5?hv^hHSTyCldbh94i9NH$4Ty{S7EA{1m}>`U3+=JigV z@Ri@b+)2Hp!o1%PSJ1rQ`?Z}+BA7ah3EQghsHg}v{P$pztKPv7?FhwrNK-5re(i2l z0(_H6KiTG@B*9J?C{}GXyr1`cPFy3evof+MM z_(q-$7{Yn^)}0mqBN8orb51DRzCOh)cy}gBYx2WKtBd5*pEvl>^V&gCk*7MQ0)avJ zn#+Qy|5yGXoeHQFi5NQcl|*MEEAJ%OyVDK2aJ(wNq=>hSloA_>)2@B~+3YW=K2=^* z>So_!bo%3yt@-BhnG_%hf1yW-15n26)-e?Pn~!0$EH4$#R0;lcqFW%G z^!%s3Y3sF;5c@;k-58aBmMnAda+ZXX{wba=5!yJerZ>4>&N985lmQUlFP_k2r=FI^ zn{=s{(oqsp?uIkL9>)CIq!w{+UPKrBqsi4ruvrOTbgMWHrJhF#BraEe5 zW8e8y`Cjm>nl`v1%T3hmSQIazPZVf&q(t`5F>jjIm%IP^l@@G82ejfbO{pr*`WbbS zA`-pS`RzD(LNOXtcql5vOwAQeY+rIIbQ$sGO}WY1zGJg zlydyJYZ@bJV1N6CPc)xUWzfmFeUD(@nG!HEvJVqZfbai_^}W(PP1{cbkB>`4-^4!s zm)CZ(W6<-&>7&;G-~-f2*M`N5IpUk-ZGr^E4>n1zkIR$3oY-NI?oi?8V^~e~GEp}_ zzSR4GU>PeOT6bXmkWI8hf4SED+WhNRH@u64!UyUzmE?=U-L75dEtm^IYY14t(?q%D zg+*J$TwE?U$1Sf#(KKQ7_M`F~{wY)P7z(xa7$^qyjz%L{I>)ZP+TL6~GC#?D~3mrKF?5^E=!S}Sv|^PpIsXeMN|{#E!k zaiBPg4C?HH1dhf!*zsr9Gx`Yu8dw-bYJBpQH!XmG$J z?=&*#4xX7(jzd%M)}PzSkXgUI_#<)=1S8 ztnU^O_iIk59gB6((mH1y8^UEesfIrjsjP^|W|TPew~6}hf1rtIbDPd`N@!J1k@}%1 ztLk_ge`1`?p3;L0+B2w8_P?LW?5vIwidI9~thnF!jv*<(zaN&yeGdED%VfD$KU+Os z6g9gQALHt;4;e%EQv-0ye=X@;;-FT|6rtWsw^h*9S;$gDIv{|v7#ZtBP?ttm+$BaU z@8noP1Jfst9x22oZ@X;7XztLlG{tRPj7w_6Za5D_R~3M>ZhMhwF>4@s9X0`^=v?uk(YX6jyL@;~QeK)tvk}frurHpBCP=vK+_FO{2=}losR_?_ z^-nn|hk+%K%L9eakUPE>99wGEr{CQcvbIiyOc`B$Om17MP-bkJO_qF;d}1!@2BH$a z2knJBFOAI1te8f_DM&@p`2UDDk$+WB-Z%nFMVTREjH_Rs9YR>f2WP$$nQ6zA2p-~2 zP6}t=&X$ZmA|kEvhCWdMaBd-SB; zjNoMcRb__IHsp`<%{8MOhCKDnQC6`5kmNRYpI)Y(j8(T2&rHzK{_~6jjQ;?EsGOa^ zk@Vw_r8|e2p>L>5YbNYul_Mtvaxg*T(AQbueS1T*YrpMux`-@$t>d!V6tE}dIUNYk z=4*pi$pG}HBNZc@{{TALomWlW6DY=N(nqISd_=XDOMyMJTd8cqRks9Do*R!!^b1QH z<7RHItZr>AJdr=!t{`NDs}Gch$3w?H;=XqCw*nn?Q4sT zCTm}@J(b%Tq4IzLC|3Kp!0C$gsbi%di1RDpBQ^WI4`+>vlnwG0861KSxIUGyY9?6T zWc}o8!x6|C^{)-mekHz-q+97}q}$DB1noK@c1ag-A(dnUJ4wOXcm!8-55*4-TgP)g zmwSD0Ftua$EmAc;e24f%h%teag2T0Xv~lo~S9Uyl*?n02D(9xfb-72FxbM$ey=x#= z%u-~YHva(is~5u;kK&ys;vFhvzk5q~?(UY+)>ny1AgJeYInUh(7(SKLU0PUAHmg0V z`4;fpw~-CZyJtvt60GBB=OFYRfLF0g5zKt%BAlT4WQ+D%i!aL}ky{q?#~}lD4N&lO zX{p>DK4S&T$7l_}H?J4MNmh!4&CfB+V33NQ5aWNGeV~_Z=(L zr%_2OA2D80jY(5$RB9|>`-+uq!5FAx(&k0PQsj=!$nW}8s?);Qni4KT3DlgLPW6svDu^q~vtu zP{?zaa+7JR)p-0WNbO!W$Yuk*TvA7BlkaxL2#;-1ZbuTZ>g`)PY?k|%%*n?*)?%nV zs%Y15BaZc4s#+YiDmks}dM1-|W=i1{8tQE(k7(JzuO7F%c#q1&R@IM)r?^# z!?&^I$x06Gp1EquaaW^1m3ii!;}tj(J`bx`Pp9k2HVZPJrFr!*^NzMUDPkkDb~<1_ zUX%iW z70z6Evq#g^wEB!HNBdx!#J%{{;axX7ul)8O!y1x*l|*p$B>l)XZ7g;kpYbXs^E>pn zc`#h&t;Y&RIThjBx9ulxH!hi_%{l0;A=*3k#c_Ja#m^V(?C6s%ge}LH3gGwZYr2+I ziL1J|speJUECwIoe9!vseKD(evr5n-XS}V-5y0)W_+zUv$?vP-fy*RHyWq3?7Qp8T|@nyt0 zmO1-86(+CQU-8(jtb9uG7m3-HS-#B!f6F+sJ$jmX%@7Is# zUe)2>f|_lH*1VDKTy;_MkHpudX&N1-lL(H^(ko=?@+buRlU&uaY8YhWhKbjN;aq-W zHB&IC(tS67q_(DXg6_F;1({{YKLfIo;8)yEID zS;#?OFNn;sIF03Gew~(Z&Rdt-QKxx#maKFztV#j}MH~R50~H~VDw?5js4OZ;I3JL% zL&P5tZLC$}gZJ}vAKew_)1gwcv{CeUjCLOf3(eT6vL9=gpkQ#noX<`d7ZG!h~#*@N=zO6+6k@vD$W@HS~b($oJ{^*GCPiSx2=wZtYVAOL&BF zj1HeINo#KNHZl3v1xlRWhowgjp=G;dR`!h~nIk0EqWCw#;zdilw8VW;5AkEU_NMqh z!Xk2)S4oI^s$-V-KGo=J9?$?AMlp^t#eC*B8~*?<;Lp%9Y?o^F*P#d&JYzNHTK=Z3G}BDsAdGHi zW5*Tk;ApwYJ0BOEV$@>bnU}5WQE2*nx3ioKe1p040=y?$)~-B3sz^yMB(KxzZ~(1u z9C*4<5nZs1l(dZEH2!4!nz!(e!v6rt7GNI=&vzA&jmiVY#!{kzHwTkkl~8^8G)?re(sM^ItJme$q})srpVH zila?aj>zEtGHajM9}e|tl+KQd3{UQMLQy54EX;Ij|QHTC&jK1@CPpO*0*UulbQUuMhoI?X*d;FE>V z_}4q*%foBne;3G{ve-_kv}A%%t}*I!T^^d|J9Wtgw(j@j6N>WBjv9kmd@=DQ$hliU z!4;(=I1MtXBw+R@^{-0$N%lvJg{SQ?6e+&4OYuH*UoI^kG}J`eYpuFk$@YtLHbGL# z$cux>1Co2!CF6$Md1nMudFdUp?UTzZ@|=(`N56XNJa2F&*00Dg$r8#VNg~Nos)0cV z9sdBWa=tG8-mHCYoPaqnLZik~(fUa0<@!9griOR>c2h5piW_lW7=rBPrP zsQT3Ut-zA{VxtHS0Q!5?Mt(3xPuKd_$W7{fbavEh{J{0iLoZ?1y*fr29eQ`DnnKJn zG0)@mHG?(u7vBldxetr@(ETcY@zd1mHD|~ryO;`KY*;L z)UyS~PBZI@>2y0EE5q~ZE2T|x(p)vTowpcBDnVWc1QHM9T@*E+p%U22xsPms{_KYN zh+Z+A@Ms zr88pVpP==r8)Gmz^#1@oDnP1627i?vKvl?Wj{T|Y*9tN}TGA+nBC03_SO5-se>$-X zm0W@cUcG8Rx~;ea{V3XY?mQ{r8rnK^Gm$u9<^cR2xIBt;#_Gi)9%~-S&tF=JBu=|> z`1{>)*NSG@Bn6_(b2DRVoD=$Ys^&6w+>%J1DLlDUqc3hj`coPSJCeEEl*K<2`%Ml%u$ue0YO&5>yl4TO2D*|-YZ*?BrPoL0ESK23(q93 zImo5T?Q(gQ^d^S-^77Wo#5xN&Umr56gxq;%Y-II4PeEPJiL?z4*ThzBqP4u%Rxyb# zE+)D2R_Ws<$N=>WFuO&0{;RKGlBBQqJWJ(qc6^$^gW3*ngh2tvPb^FsUAE zU6&-(A=Yj#Zg1V8xtdQibTFumcM?blF@OQ!4@zyjN9HodOQ<*!Fu^0&6$`X-+)sytGAHulX&m>cdF1S zLP_b+7&mBp|Wcpb4bD#2S&F$wlI@B@) zgt1DW#O1u@lPon(b*~q}hKjB{=d}i?c zejoA8+QZGg(DP7^olZyKYff*B-XocSI)RBBvZ&AEaag`E*C+8_nv>nId)s#0uZ$K_ zFhQxQO*rm-4poE1<@kjuwP&Hj$OyH|zemqf! zpDVHY1C*l%;(M>dpB;Z>TnMCWMBIHd-|1e*Z{q7&)Hj+4`q#*|*X+FHgZWnFpNei` zP^&8e(;2U(rHqd%jL*q)t{HiSS6+;{Tip7S{u1jba$Z#(@JI)}e6{hXRJ51Inw zDwQsp+Qv*equR`u2!43qc>05%>0aGua4xLkm<+6_9DXAs`Pa{LIbHq7>E6Ag;qCC$ zd>3OQa`2b8Z}#|wT+5dqL3IcP(JV=j{Svk)}{NOd#Tk+ z75m#kY;hW;!dIkNYKCa7F0P}Be_E$y`Lh|^!%cz3}z+82g2TX_I$hjVo_#fVcp+kR(Y813i)tSQk@rle_G z7ka$1JT;~gDH!IcTyW>$V%(s6TVd0`Hr6M|0Fa#fQ!=L8&a-nc8S z9javXx;p5|R9wibAv;fg_1nYqcu!0xuy5vTg=3t9*1L;0-QimW9Pr=F)#3gt5sUZ{ zRjI6c(iZtfa1AlK3|DFA1=6!=Qn8XCzHnWeKzx8sLGft~s8a74DVvy-I5vg}Jtop?(+`mciZyPY>vvYOIJo8|M6sC6eQ%f}#$boHvRKG1)NR~&0j9)|LQ*{dCwiGCc- zXKrtF<@PRAx z8CU*T%0MUF8lcwiYTIUo;eMM~5GyAZw6RJ_>WqzmADMD1Uq$gH{{V;gi&;dr(sJ-f zH!prbJrB~OXx2u?&<#Z;tE**tcH*Ts9ZfVk_`FWql81>^SNM@eaaWRMHV_OmbpQ)^!}mmCmF1GD}E zR;oEkDQt7ia>nr0l>BMnKej~$$CS}YBzx9C23b!+MR|syq}=HAX4-Ma_Yv*%OMtpYTs zMe{-GdET|)IXpjdL$35E+f08S<4t1TnhF-Iy~X(WZ}5jwhL^C#myiinLiYJyu9uVl&D&Y;#&a4*Y3%;9nJ3YgUDcf$=nB{#wM` zI({Sd0=+Zh7lOaHG7;$ApjqS}=VW0)C>ti@vcswVaSNT)Obxhg=`RzRH}I zFAk))KM1czrw?Xsl)eY}qsrRFTcD>yqnm<3j|h64V!G>347IyrZLYrF*{iLl1;VuE?0CDsYhP92Rx5(agU{Z{{Z4`0^`HF zl-83bHXoI{GMwO#Y=2twF)C4)H$(Kk9j_TsbX(PaMP<1Sw>*6b2kJfRsnoA7HD-?L z=4QCLl`|yL9J7!}1e|riAC+*($9GEWG?|R{Xc%NKAI$Mf4Li!r_p!9nike!Yy~JgB z#~nUil~P!S4`b4`t|Kka-4#Muj~=4CB#ufo9?Z#j@y0Me{dEkGh6LlB{xzX-AD4ri z8m7z(g&ZIM09|s)9<*nou|`NoJ$-5>gc7`DV;pd5{K(3sm;k*GrB!C+{J95_`ukLR z9TA)EQ<~guKb=#O6+w_W=zm(+jRee~hH_37KsjvZfHBsWQqxVlG+|f~$lSO-;PKlS zrOUfCjb2%D-&2&kwN_FB;B@~0BDwqP9jtm|_3vGU#05_yp0$mAZaZ`Q>z1u0G%`>I(eWtAz&QxXApen*d@D-Nt=QWa*?W%7F+_Gtc?yPhrzJ zJZCj2PuNfoTJpDn?_Xi z&VQ{wJgSkjpIWrBhKU%DnZKrKtqEMs%@=oDRXm=CX{{Wm( z%E@FelYn^xpRF}Ar167NNJ@+_A6hnir?AK4S(9PQBPS!LT9PSCVB~h=9Mx4jurtmn z%E59&d-S0@8J9RcI{s9Qq-5kC-7-H4g=8CtY!1KudY|QG$4b>me8eokWHw3aamVFR z$h&i%Jw3brbvp*zoO9EqMIa+24EGg9+^s5>`Map&jDJdM1GJoA{{WtqB!KQcg&+MY| z^575;Y>b+GKfFw+{{X(b_0B2&QQR|v4<9e|`ci&oo`ek^7X`9Af1gTklotW84Ox;d z4hBD$1GOg8yPi%v{{T8x4pI`UCO{Z&-jy4uR>|OF@T)#sGM+Kp+L+Pj8STd5N0}s1 z!(yW_LBQ(M``x;ej z=B-GpmTl)S$+&Z-u-cAekVG#J*IKB-)AtY)ITwAOny=#u#Fg z;r{@Lz9o3;#F~!3XLk+E@!rE7^pV|L{{Us#LgazE-CGE|LFl}98Wu&#kH)^-$`$@+%2n#Ok0B$3zlbh; zRN9S%K0ehO#6Bw2?cutT+BSvWGVIbxFY!46o8?oEa0Pu8EYVKfwts>7?l*<~ijNfoBJpOky5X22vmf2Q z(Vr}nz&_x5s}{MrUWdlV1&EzDR-UOl9E6%|v6J#2=Sa4*E`C$_SI}1e8Pe~V`PR|C z-Zx_$fTH$S^WT>*_i<9HzBylRmG4q~7qgjx zOsM|=c>DWON$@_{afuJOYJXg%+~3(^rL1Wl6tTBlew8w*$31J=B={mZ^4>sxqNz{t zPWf}NGyWpBjxLv0bIzV2Z%Lj}g1q*p2`kZVz7Xn>MsaT=A8Z=u?*1L?HmpIhnZAmD z!nz}fr7fg#Nl)#;uT*oZaNfP@hr8@rqjz7UB;udvRE6;N4BJno z{{V$=tKK%$u$2D*z)$#AGWxXsI~PukXusXu>XYNPoVYSuN)P)y(w~pITI4N+&F)wa z>0G>j0sKRJ!)=*N^e=!vm2BAl%lh@h0X5aFviHd>YmQONWARJzJsNZ~8k#{rxR&GN z?YjfzY2WwLRT;iJ+?@F~5tIJbPxP*`$M#9;Znex0`ehbtrqh3Aj||%2++SbZx3j7a z{{ZaQB(ZsAJ(d3Rz8OAoSFOHi@td!V`t-rPxUJ&P93dvCuf$Ih%%q#Wx##5odiz(? zRzI`<0D~;T{{Y0cNw)L*$(ZNsTh_k|d@X1GuR*gv@22nOO_<~2S# zseIY-+}<$p6~i3r7Ym-s#Cp{xlUl!#jJFq)533scjxPh~QDCl*Vx)B2ZiD(&mGJJH z2>CSob^1o2e=5)Wc9QsM75=4HpT%GBJ{FHbyO`wKT*!K5m5pgx_#*D+LAJs|eF_@; zXZsGz{(T`IL>Q;8jRNwJM!)b71t-KUd@#4nBfy&b)$j5?P161r>eoan+4)2Lr9a_b zf#LrEfbE5n@>WsTYK$89MAJ-i0s?{GiqKnB$0If8*UvFE6{75W7(NNW(U(0>dHI|k zh4A-J(L$K5RLD5<7y^HnABA+WSe@A1GwoUz5$)h`Dh0SzQ;YyQpX**6t5mG-Cv)v6 z;V5BZp#-9k<+e!1dYYMAZ(7N{@g;?bK5fbZJ7g1Fwx#hx7}=w9G7bf79=SAxUOSd@%4_HtT(K(bPA*&&b+r@@xATV;c;{2ss8|$ zYH(|czVRxi;DdYr0C~Dst%u5b)IMVw#M76%L0ixM0q8pa0FP(X_Xd9=F1uH$`qvGr zc&TG7u$;H|x}VOud(Bd7hC82w!2^n=^F4hH94slMl0GjHi>ruj%033xO}sdIL?i>O|O zzxvf5g1j1L*>`lfi#b*4pZ>S=uSHnGr~`mF1E&@9IP7Nh;Lp)=Y@X>?uDu2%VL%En z2LN;epVOKMq|Y_;`@K)PNkwQiyVYr=+NPzEk0P>lTfuJ&lG{KTB=iEer3Wb_dHAZz zlpAd3yj`q|Xj`0|?N#+BpcUXh5UA@vf`KUNSNnuVX*C zjf^&<`_6j5;6J5!#njB~PbWN*c|N(X(ek_(Bvj;&!t<=j;wLCWXZaDsZ7!j69kfbX zSzBVL>&dU9d>7%w@aBsJq5vNoq;FOulU{T1kHX^O;OdjELLISZ*SQ}`_PArf1dLM5 z@fVk}k3+kMur4ronXO*lgt09;LNU)l%_{e*TFv}AUYT`yIm9r=(lPc>PxP;zisq6_ zsrM3UoE)CXA2R%A*1xsdatctHRa94 z#Gf>`Qnaky{$fe(SM*r-sxAotn#Ef{+`af;}E5s9elR+U%0o&NKolHe`Wj0V7| zfWJi|ypQ8{v;CXkkgOqhy3{SxWat?gRm-xK$8e+c_ODO8n8s!uFfsY&yaV=_)C_ue zhpht*@=ra$QabHLQJ<#sSz;yZ@YN;cdigCctY)})HMFnyE1oVjB-J$oYOyjFxZAnD z>1HPw80nAJvV3uHWAP@WfMi0-qBGYoIhGT)#j(;3en3iw` zeSP{&6XA%1a&q2emNcfZTS?avO|g`E$~n z#_vN~T7HXtsxvK}q}ObtEU_VMbv*Ixe=33-5X7RhEV;vplWxLE;ChZfTE16hCbSEc zc;n{5=m&H3qC!&&SLW%Soom{^XCH>X5cr+_v!r;NPQ8;@hHR@_%+Z+OAORwPIU$Md z>0TLeZRP43g}ThsMQ=QjM%ck+S0EmpNEOvmgsDO^do!I@Qk#NX7LsLFA&4ER)^|Qr zyG#D5c>@{G;Z#<}CLpo~J#)#eOIrrK3{}7@{3nCorE^8ey$2%Atd{zwpd)GGv4E*N zqyz(iPC9ipRh3rbF+Si9RQKSV9Mf9aEpD0_&O-GukWa53^!a0m4c7i)Md7@{0na_X zD%)mBTd6$P*LsEYa!TK9yPbq)YlbXSB!CCEH8+U#G|+FBB%DgjGSTfJqd7k*(kTMinzDe5ZX-umPlcnX_6FtESSk%!@e?U2ccrmP=D;(s{kO0W@Udhp$1QvKPY@; z0uOINTT$L=vG`w9)9oXTuV2fMT--*xim5x14mi$73>#~8(2xr@wwR^~o&eYp7y&Id@Ra#{szq1K8%LWzQJM zs`hGQ+zB0V@{E2pbB5$rk!K|Lx-jRpI%UXZ<_SsXux@xYYBTcS@OsvT#k$>FJZ;g3 z;xW+vb&m@?Y+#UK)1mbo^ZtFQt?WPIE4|GGC0HE$9>%7O1?YI|?N!ycDLoBLhk$9B zTe)d5(DEuqA21z9=~dT&Ju1Sk;CSTo{OJr*2hanM$NW88xIUQ1GA;%Hb(habeJBl8*j z>!Gr`S)z_aI1U33#B?=^#AiKEl`9$=M}0sYg;{{S=jR`Hi}p0pgHb-CF= zbX0Z06@&3h#Ja|h;dHsvq-dgPL{|>Hlu`~4;(wT{u}O|I?N7Q?zO$anb@OfKLmY^D z5JCNaz*S4$TiElk^%femYRO$Az$Vrtoylisex;b?pRGo2$?ucat$3TlR~{AA3=$pi zN%KP|T&_sL_Z5)2`t_~}Mp1S@RHa&-ct)f)W%%TIBnqLOiQp*7`T<>^hddFjYfL|J zm`vrSRt7$zh5};Zbvso@V8kl6n)+4{G*3Ifu(!RclH<=@qBSv`5Q2_Ma|^ zt6kYjrDTFuLy?Z0gO6}URk6A9?g2Q%e5cc%mFSPXN@+JSHI+$SSj*X@%xkVBBd7T_>0br!yzMtz(^%xi zBzH;lU{SI7s{VE78iMVUBc*iz00{35zl?++;co3^i2X(!f9NK-Ff~1%HVyUD?>RFX zUegCrbxQvLaq9O_tdP8JK1l;aevAsA=U+bUXhS4}1z4{=ILQ8DzJ|UB%Qy!;e%f!Fk>E`|ETnOjjOat0*JpP)Nt8 zAFXR@KN+ud`JURt!u}t>)cHfHYnBUn_EqF;f-{6dKfF|$=RO79EIuNh1CnNerBVLU z5KsO(PvutpPv9%-U3*oED7K_GPOG@!6>pt+$8}*|Q;M%j7wCwu3=Zd=I=z4O6Hj~`a@jkzQ zu3SLZ?F5Z$Y%HJ_@CcD(49o^O=Opzx;<&rzG00WA^sb8Og}_Hsoc=zwiLEZ%fKPEz zQXH|eIP9Nf^zHc9p?Gz_;+eEQs^84fh4{l6 z{4{4@$@|=or}L^!;tA~3M$lW&$>vD%d-u&re8kC&cR$v#@0*nE$*zi$Yh#j>RJSbM zYjSEHV0dAOV;{Ow4l;NrHJLN~q+_itP5a5dpW{`o8|7~Q07~VQn_8ZvBBHcD;qtNER&pi zk&5K>zZYCu>Ti8*BSSkgG31bPNx>e6HRwJN`0a7weOhf#dPP3nq7{#FusO)b`1%UY z9I~fpx%&-FR!N&-l{(Q-l3FvuZmsS#+oJ{C6532T+aeVwB;bxZ93FkDNbj09$*VonD@w(RuFzYP$Gu&PRc5zHrf)VNauxXl>6+%G z6I;kqXxR@=b5lh#E(kdkl;2a2m2@}c(%`rS;BAMl-rf2h)mYfe3vDMK%Akhnut@1z zmimNJs7rykblu!l=^|axK*OBmW74f!-A`wRjDya6xfC*=sPwCn>2j;ubUbWbGi@_4v+P0~sl)2McuoYZ0 zu6?~T>s-`#jT;q`K6+t>5Av+12}RnXH=|k=Bh5*ew;mlau`x&_AMFepthSO{u@0=g zy=$$Fp_?Br(s}f$S4cM*Aw0qAFfmzs6)%L{R%_xpt8*eU?K#IxSEqPC#@8~1vAG*v zSLJ5tc>Z;TruY`?Q@pj)4;Kphtw=Sb<_RmVS93@nP*Xc}7O2#I+;QM__HkQdY$lRE4 z2jyOOsA&>e$ihh3NI2wU^si)C*?9*arB&4JZLc6dXoY8!`}hF&u3Ff2Jyz$ZgvQD* zl6xK{c^b_DjnHSaes#}XSeQx2Bd@)BKDFVJvpd7e9(MY3+PQ1X21aFN!5+2ZR;J?p z~Dcz6%)tWDYLziS6Z`BBvZkWdI<-& z_53U3S**J8wAJ4Y>$lz&*6lSr85$d_cHFEwFz%#x1a_;!;w6Wj`ZLYUvif<22MK&# z8Tt$5myChetw5?(^V7FAgYehKmY)zjJr1F2cFI0Uq0UTl0m`3a`qx^}2FrJ^x1&*1 zij+^n@fd00>dKW((I44MN9J+q?^TRvaqU+EGhiN-cHc`k7z!A%;3(vuY*$9>Q-hk$ z<^+}{iyfdZ`Sz^MbHZAMt%$pl&S>Ccg^|#JbI^_}=#K$>Ew{Cj3*QhJ;e76j&O!(*;Qf@XdK=jXWlr)|)IcCQdS~ z=tg-J!-}KrVW#KkSxz_EO-Vm?N6%V5sXc}CGeqqT#4aR?MK~dW$T{`RebMk|;)TD& zFAhY~6^B)~8!lqc-Z(!v9*6vE;k`>oeJbimB~nVBy*+Siv-n%%i=PJgh7Cg6P7v*y zFYm@q2tNM+;47am#XLOuC$Z{r22Tv%4S0NU+5Vq1?py0~8y5hT&rbBn?VfA}T#|ZX zqtX0FX{uI_}A7+rjv>I zg)BV%ud$PnB(=2*e|k7#rx8Sb8M~3_E6*=AOO0A`*K;(ds2vn@&<{#& z((EMw3ak7hk6MBpmpzY4^JghZ?tQ)+2TKnX%C7sJcZ9WhETtCmzUx=#=I3eW2kBk6 z5`4?ZuQak#w1LU4>%+HAG(J?BGOy}C`qbeqQfH5u;iG3-JDMI!^J z$1)Y@G6?ml?ff@$q{JhWYj@neIn84T^U!J!_=4&~;sDzj3EcDL=!o zfH^#qis^K}f;x_;A{|QUY>|#UwHugv)k;Z@c&Zq6db3FK8`mk3(4LD|v_A&xJ|S#a zX|qnP{Cfyd_~O2p(7pxe8c0GcjqKgzxa4#^;=L=wJ`WK2Oy)aleBokM0h|ov4{GO? ztmV-jRemO=O>)qKZ=v$Gm-{;Fmy4UyU_x?L22Xyby3IHCZPQ1|H1ba{>ZgD@_r-l) zx_!OAPT;6IE&w0Oya(derL6cT;woKeHiNYJx=;DnrKj)dg?HQ4y7ORpVkDXVKw3tXgP6^7Cw1PXxUC_s4}_cf1uXCIQ` zQ9=>-Q~(F%UEaaT^w=MW|bqW5!QGio>{v41G`IU8c2YVYqe1N9l~3 z=I$fpoCEyphEcWA`mP?QJQSBx2IABtuc>Fy&3IP}G2UfYtO zuTX!_70on{R+PD3=4@&CkN&+qquSqIMN7n4AY=UXsC>{E@9FDY&c|;s*)TJb03Ov{ z$lOWcdS|smaeowf8}|c;j%<}J6(#dmSeGt_ZWvXuio z52kx}_NV;J7?1%`o|*l9X5ode4Y@`c9QDEJP^W!~Wp#%c z?msG19x=fJuCzEHV*{R_jX7=icESGuJ$R~jdmS$<3DOpF@wSM?^ff0w1o)gIK@?qD#A?XX$SH= z*5cc*n68-_`G@8FtE!zoW0s`(N+Q>6n_GdLXRTAdvnEDdbo>u`=$a6`ggf(|pU$b? zTK@4|51Sl}eR}&=v!kIft$SRk;m8Crt)|s zj2!w`G-IW#Y~^-mEMsp%J7STbBoH|7R%Bl;PeIn5v#u#}jHM(2#tPu{s*a`{rZewa z?FnKt$9|Or_M${#{9UU#Q|dePW^vl_jE$$QL^4>8qp0GiRocZ{A1@yC=`G5x?u+aF z1#;Pn#c+3LBL}CoN~B{X_o&A?$id`u#XT6VKojy}Jg45PPP=dCYH zag0)J+;}-3{<@$cZn$n(@$2i&G2=UzJaf;bOwpCb1`n^+m2#&HxC4)yl6uj8gST=A zQafk*{b_^ud=7i&th8aX@}FNriepA&UbzHw#(xT{3CFP#%vYX+sTE{gD@MO52Y0Pg zV}eF_&lvWnCKov*1Ix>G)K>NLC~syo}WtW)ZLif}MY#QCb%Aq=e(I zxZyx&1~JovO%ba`cMYef9eehv84df-RAZ{u$6!$gZSQsp=o_aM~x07paP|8?iZF)3ul7qbUJerw& z8nq|O*GnIzdVSZ#&jk2xNpv3z-duQc-qc*ls%qMevk2mbAS97QY&M1qyOK%I0=*|q z_`9m<*V=quA<_Q;uW#az;4S1?A8{TLWEL(NG8XFt?D>NM|&T7A#}&Y=B4JL2bvEN~j{%^&R!e>&x!RQ}A5Qigk4KNT;;`u_lQE!2Zf zSYUjD6pzBbV72)1t408k7GH31Yhu^-g_S__ZCHLeu1RH;*2i!5hcnBuaQ3lkoPL^FI8wcF%+ zaMI!3or-GZt(;L~2%!BdhqL&pqg-Pb(Ebb!Y})wqNtldZLJwY8S0zdnx}(;kjls#M z87rM?#-|)p)+JutS3JHh)3)SZ!;klcD|pLIP=C{6Kky-3p2nwR*I2wi^Dn&U)j-BL zr|uq{R~x!Ed_*zM-2W%XY|Kell3>U&R_`Of^8^isFT_Kid0rR?harH;-c$I7H0{qb1x_?J@D6bPPU5$hy`s6BcP^~PE1R%?b> zL2>=^Sk#)9y(_2)c8~u6U39|@26#X58I>oo2~1Gjr4RuIN!qbCu1#m5a9;gUrlW=RT(%~KY z$FIFux3+0m1zguvk~x~{#7Npq`c|f!qsw_92&~c z5->6C&2iSmsA(O|>Ckl_y`nNSKMAFpi6-Ux?f(E8=sd8iwO0ay%_C>ET+{U1olfCl zw~WZ=jtA;%#;H}i%1rhs(A86>uF5NJ&e$0yy#v9X1!=Zj-yv9sD;eOox%U2bx8aY6 z@adapy$dzRP@lrT;%l#OVS!&ci_9;0Q$InDd%tFUtg8r zT$+2s>N_mDQQ(brTJwLRMGv?i!oH2WnvRV^cZdJpAY zmYv{~iVh20F z`ux}4^gkPt_meGNN%OexpYZ@fLA}1Oo4;u-MXtO-rP-o3Z0wptF5HANKLqj92s{3D z^iHJSUz$iDo<{G-{{XLFD12VL`*+11b1Ks%xQ5#bKvA|K!5>yXt$EplOAO=Q$Jub5 z7d*|+`BQ&>pQ(r8yH#7OT}3X|2GgOql1cod%HWUg@-jzX(!9d*NhL4lH!?O$FB!=v zJvi%Lr7oo!_OiomB{{ZWz5xc18t}Ex?k@QH2jm&$2{{Yva zj@+DqpZ>i#;jl+v*YT!s8M3+d{{R|-#`a)91oQHY4l_(|l}{X=Fe*&_(bJ6bbL&y( zcHVpOp1++*pwg?8kEc#(3Io}<&h>qp(=xZ;{7@P{&pQgZN zzP`AS0SXmt5V+jTcAkQ}4Hv+=4z{;mDe(=;X|H6O!26kBMz)y1v(YZxvU%V%(Zbs)~x zJa)S^KN>-#E?LT6d3PNWv6N$~auQmWYYC3o9i;L%W#_|@||`{+4*Ee$5H|O&2b{* zcV10aE%K#D`AMR$dcDs;@PCW7KL+Yhc$Y@GhSvVsOfMwG7!AOHr5o>zfxsMKSD)Mm zYl)gdrQ~*IV4w}el1>1}Q&UE}$Yam>?NSeyAb?L?^{gdT$_fu;S1MC-Tanw1sxm%q zne9^nD=ye0XPJ%wjAZlJ3QxSi^y4&r?g__y^fij|E1^2*w@Ihm-$@H3R?;j}s{$Pv z_iZE*(3K*iytjgBA~ulCBypx)pBXLR2OhO0=AnIc8YHvHBskl(j|UmXeR}t*!s2UO zAZ?*ealszlt6em)lD|`5#MO z9zt4XXH|sAZKS)qoms`aYq^L}Sdqt|Jv}MKy^uJq*$kHw z$ql?FSxUkgVp8OY)rl+=XMjmPJxyG&)UKCJxzZz!5p8umQ@a=gO05`RHoh{dLmYwE z6zx+-mqXFC_I*aq;(OyMmd+U6ZY-G}Zpn8j!C-U2;|D!!KTXtcY|`%58;N3y={&jP zLPE%)gJHe02jy0-o}_6dp=--%!wtC~b$R`2OEo@V$o8m}M0xqQA6mC+510?(Ln&P9 zH2B-e80Y+&w$Zk6nr@%>K+glO`TVN+k9K&*c+YQUJq79sn^7LRI=PL$af4spQ8 z=T~JwtG66gDVuH^7#%CM9FdnXVije<91L?-AeipjMmKluQNtN%!Ot}#KyjRN`qt3y zb5v=&GFWn#L^$P>Amg46G5Xcer>Go%o@$CnWq25Z3bBuOT;yl@fm#Z=13Vh*j>nx< zS=?3mWFGu`aaI>Sae-B*EUE}zJ$esXni(2MgJ<;OtH{Pte7Cti)9HcJrBKwZcVbX5 z@tlv>Bk5N>#^iSTQ)PY1Msg1wDz`IQSkI03?QG;9%i68Og1+5(a^XIl#m!_%!zyO#9mDvgYS zNJE2=c^!u%HE(x+>02)|$EgcmEapBT>0jC&8fmavTS2hg0q_8-`gYukXAm;|NsGDh@Q^VDlBg4z4sOUTk ztqnT%C6MAKI6sd=Uhk$~MA4%O6pHzePn&CCb6rKYy?G2^M{yz#MPrKPtA$myy^pe; z6;d`^oww~dZkHY&@QwNq%^lsvxxpF1L}B=38t{&UWnS_UbC+gtr|HWLwGQ%&m?qUC!VN@;lblrF{;| za}_0H(DeN(yYtUp^2;|8lR&(^AJj#7>GN(0=~{tvzye~UD0hB!sKMRVJ09jEka zj_rSRGsjw@zbj-PnRy?FApT;!I+Jv2DXxy>`#)(H2iHUB`=6DWNaS!wzD;<~#K;18 zfJzr=k`??)8-~U! zZDYk=7}K>ijbpir>S?Z}NfRndBr&%*1HF8UqUsN(>Q>iL97%67%%}aOAdlr;6~(%V zo_I(6d~Te#uHs2K`jcNRg>F%CO!x7aSX8X1H)GR$RjGJJ%v=pS#g_WL!y_sC4~On! zh-49f^D=Y)00FNYweoyBKbdaraChZlm3FS&o)`nr{d?89nt!-Mk=<}{{HmSZjI60M zLeWME`J@=%+kr%sqVz6}I73U^zjdlErEvEPVQ*rM(korTM^aBDl26vMwZEB>k06de zDzhIkucsob>tk$i_Za?Es$Ih8p+?GfMh(XdasGPOf1tkK2-=@UW&KTX7e_hzS9PJj zd>a7jcQO4=Yb-CuJa6#QGOvy<7!i;1Ya;9BWFF*Jo}}2mVVsO-^sLK+``E``bNbek z+|G*8G8OyNpXK<~Nt-dAGgg;_b&p(rrm4xmIId}RJq5A71|Bsi-Ks^9s}R7STB6pn zD>fS(@j~5PTjV@`YIQx2dgodXn@bwd%vXeyBd*pRD?-xy%5S@a?O3+6+FmeJo5`5} z01SfzyPD(?<=`kt%%MkAKdy z?liM&ATd7m#&({g+ofm7imXIah{O9FKf@eJK({ z8v-$r&#iQk`5LvjhUgP07>aOk$=8GGD+X^ROm}*a1!J+dFbQrp1g|JSmCkEaK7+4&su?QC1{!{kDCztfw?R04N8{i zk(Y`01bBByQ`+u@%ipAKC6CU|2hxw&R?W zo@;TpatOs%p4ZIF1>AqnH8mjQmCWf&m9e%r10XOV^NgOAzh`vN0#7~qRwPy{DuCHO zzPYV?cuK?9abM20r_B{&YPiVTwbY3@VYk1vZ^Lf}p$NcI{{XFV2sy~>*0r>I`EBIh z22-Ogc1PaPo=tjfd(_RtVlBxBiW=9c{A*ebnx(jPKR!P{V^!MSqhbib&q{V^sVaykwQ1#K@2|xlRV-y#E{?xV-4Nz zih3i-sX{VVZvOx?o$>aDHA^PDRm`d|-u-#}E5$FYe|YFu+P;tS#L>Di+!$bv-RsIc zW8t^b?+a}C80A~H(y*6f?Xp}~x$I>1N6eoWJPz={b!&L{MyC?0j+w~MPMNP8!`a*i zP6#}E`x^Ugw8%9GCbhbVNd(GK)Q$)sf-B`uh`tM(!agLs(#RiqZUDy~s7~G}_)uxWMW^TE@4x+Q*E0SEl%*NEcgO21pp-de;qcX3)xW z!3XiKs*$t0JnRj1TAELDOGnd$#BDh^b^kzmgk) z+lrRiO~Vz4HN&1U8kRl%tC>meg0xhVgX(rS7wY!OBqc#%oRN`&IILFJZtYwNr3gI` z40q%lR=Ar~|Gu7&N)HDU+3bg@EhFPL;@5d`SNQgnwE~IIQjMi%GU-Wd)Z6f(IQ% zeKfNaVv!<42RV32)-08i8!nKq+i+RH1@ z#Lw#0BWvxc?;19}B$;6^nHSwFhD83d1|e7*38 z#-mm6%sbn3mdDC}QI0|Uzmcz1(0(Xtei?g(w70jpw7HMUp4RI-CSGxpIZ_Ec=eewE zMal`%-1(~cY^maB39S!h@=gAMeJ!H-l3T+hg;yi)f^aZ8oOZ7okH?zUn{{ceM=IYK z_X#X!%Bse5l~Ig?S(;yrHP~alx0hSJv(v6iH`sLM3Zo?9OR(No1P-;2aJ!ozlk1*O zUgy@XjVBAK^){zYG}>}nqtUg`jn@|tv{n{ASz(bZ&7HXifB@$n{*~ogrR4gB)VDV> zwDZVv(mBaK-%6fLfIwUhwMt?JNgmbFPMtbm1Z;0koFe(w?4>Vrip{zMX&t)stM?7m zk%3uPQia`CdKBY!ay}x3PGrCbq5g)r+o;#(ILRX?wRiW*CRbC)>C(9EQrF6r!CVf$ z_2$-E-5;Rk6`v=vmgweYkLM)y?fTUj$I3=Vaa$Kr4d)!=@-;$eKqO<^+PIqPeN0)+ zYBLL1$#IX=eqOcBU1}1{ulxfz9<|$EX~}a5M^1W%@7}N*!sC8f@;dM_>t0SGm0SC} z9TBOenais)F+X_c?^dRpZy=D!!)V4i9DQqMJrW2=D!ZI<@BFHBZO{e5>7UNIA%&8B z(q@s7OvZ3QJaim?PfB!%Mn`OQt8EKy+=kcf( z77WXdyjHtI_eR`8tG3bYVlk2b z0PC%zPsrq{Jv9|=gGI>p>Hh%Ms#?C6x))F~>&V;BPH=w;+gQfXGxQWo0NTWkz5f6{ zYG+TPI6b50TAqF7?PpRk?T@W(=`pRvs;M|-;GW!c{{TMKR{F`KV*OQ{8@(H!YO$eA zE$@*Xa2V}Ao$!A;bfV)cGg{A@7m2RcEuH9nx_+mMsV%wtLFjSDKMLv=-*azO0Cyd` z)>fed#dvVPBMkfZ_OD7*`E1W3o+Fv^z0Osw%y)x4b;;|VO*-lyE%FBBYSW(IY>MP` zZn)1{ovhY)iWR{hclE9(M@M7P_UbKM=4FfJCmAbIMJDLM$G7vXJBwo*9xxBJP*}XS zWX~DSYl)_vk4Z}E=uR6rrnFvL0yF9<`+3J)ccnS>;+LsiE@f&EkitbAclGbqi*h7W zl07{|U$|A022RJJtm|@Da^t;m$#TfjI-)y^eWbAH4t-Dm0IH!G#!mwr;GJx_3X_NIw8l5y%i>cd0|XVTi^tj2_vk*jp_|?>ue=iR1qO zuTv>qq#jQqt8%N?kII;hjPrndRQeHO*6*AWPo_IkGi8V!`}Xfl&U^7f$+Tm)H10ch zB+Vv&#zK>Yeth^?G;r5?2T zHe(ney8BdHeri?%>=BuxB}PjAbk&fnj>n}#Zz+mELBan3Ijh&!n^asz35EXvL)>PV ztW9RpO){yGM&rxLk^uETO6WW};tQVx>u~B?Yg*l1#Q9dbwppQJo>a!;45!fhS2GpI zm&)OZ?!)w_NpxgvlY`TW-ZOD`iG-=Ct4R7c!apCZto7|fTGMQo!CoP|hDVjH6y9kU zvL1Z7tfT}+joFd@UrPEL;eU@8$CeRTc!R@tT4#uw2fKSadpQ|rw^qTP*q@n@Wq)=u z%h&GYkIwYFY=C<7?IKd&_R8-j;q9(e=pE<4n{u1k1iMRFK0YWDih59Qqv8(|jw` z-~K%&wYoia`KC5L*dzMaJMgno)qFjwKZkr@Yo=*_AeVK__I9_h$ni|<#kVTA1->qs<1n?-i{{WfcN~5MfI#V2N)fD~$w!B5)`~Lt9-I%9P@%4^q z$Ygcr1y85>#bO+eqZR0>^CcwDNk%VAAcobMfqw}Y(eJP5j zq*eU-Qzeow-l^gP)0%}>q0L)Z*8{Z-#oJqwMKeW^I(yS@E}BlK2c-r+xTxAP+2fv+ zk&TyPyKZd%0FzFR5^#If`zd$?LbZ5~&z&4_y(=>G}-!%r-6t zdY+ZrX+9W-Pf+YP$=4^E(}LA4z*x{I9A_A-*729%4tiGwO3qzujUi86t}J=-@QaGG zZ*3#vBc7hMwc+mu-s@&}{S@aUHZ+Z{m>h$Lm^Q0;=XkF)pTw(r#a5tDD>!m#=ZXfUoPFxwRk^{EzS14r1ajoKaG3Y zTy0UwpBcneTB4%6o?Ngp-Z&#CX!iB1$i^7UFC=rv9CxhCJBPj1HH)_8TJlKH4x3cq zVzgQR0CIT8(!RZ;^NBl3#8(qF#DPd>EI9Af9xLRp7urdE<8Kwp?8z(YQb!x$fC%FU z@B+S})inpvqMqb!9!yNoTZrUaI-1E(1`$&Ha>rq9gNoTA5uG%D@=MZL6E*E&o-bk=v0i0&Jb0;(QKIO*?N!j$T3 z6e&qZ;%0A#{4=TeyIZx=G;29E4Nme;E(>Vz8JL1_2{_;boSw$J-wAvvi%j^DZ{g2~ zH*4Wo;kfdzW|7iwA(RwD%Aj z!mQ_~F2;Yu{ZKc2<&1((f?o=DeR$-1>1hRV;Ba!Qxoh6uX-$kYV~pHHc-PHTf9 z3`uj)vE=ifw8moD+;jZ?wHa=_XZcqo>q>6&H&o*Ult3}uPgC6g07`$E&ju?OApzJkGf7>0Jky_BK}s$Yu_zxnqHy*#sZLx+%w* z9MgQPrnd6A8zW*mdiASPXgZa&qB*Ua66YJF<8E`w9ja@VRb`glo;KPT^#xdZAFWZ6 zX=k`;rItx$W0sNFu|0VvuF*u^T?Xn_lj-+gW}IQV@NzlsD^^V>M7OY>Ta8WSxm3(? z+kx}B&m4||vgEkj`=94MK5k7wSZ*)h=}k0=l58O=h<7IE>~crewerI#^d_l8-OTjY}5KY-7Do$Zu`Qbt^dZ z`}>fXk7bA8|`#B#}%eisDO2)0CbTWMFVd3=an!aB3^dOPxO9 z?e5@`+IaYAtni%QHI1si@+0q%PmuDXKRSe*RIH*kL})b{@Xd3g7#p^Gl= z-D=gV9l!z24}AyR?6ll8L60ZBX~vuk^sLP+6@gbDr#sB?vDx`HCYklKBSz*_|>s;N`g_)1wE3Vc?6#E-GY4amo@Ot{zpOd?`NB;n> zv2-^lZ*oWB-nuZoJNB((eutl1-I1ApZ2tgfc8`ZooF8y9p-XL;nERtvt+9zJ`LZZZY~)cM0;998`;tz_7<}=hl{7WcKg$ zsxa$gHtHs5!5?`}bNuQ!$p>)bJ$)+srsU~^RCf7tI{qW^>OVTrwX;RY`sX|zYRWL& zInQdV3kFa>FIsqSn}dV;RyHwlG~sQ_j>C`t09{yKfcEd}R4wEj_dlgyjk|TAIZG-) z@1N48T$+V)y?F2KPk9*t1L^+&*Qo(zb&O@310UxCt6XomjK-_691*#PJo*pusUuy3 za2bB&^`&Be3PnfVX`;`D=iO$A-DCLQr*|GOga==KNI0&M zTY;VpZo8g-Dn9+mRgWX|t`p*hmSwVr^$-&o+U<^TdLO|506OjWejVzzv1YoKmvaLy z;OId7jt}QVwM`ELQQ@n`q2U&CZIFZXt+kLWVTr)#J${wX$qbenlff_{(YBx0n)Ywm z*Fmz^^$W@GEmr#QNMeCX?$|I+RDXDr*Bz=UN-}nnvHSl34`h!##i}ZNsYS`ZBzev3 zEhU`mkC~%kj{Jk$@UB+fOpt@zabITmui?Irb#Ha0Tv$gIvviEnI9y1i1CN*wQPB0l zubciJ_y#`^c$)V@x-SLQ#4<-}-2z+=P%y_rL0`tXF%B_Ol%9y};yxL#l~kqdAGCz_ zdmeuy801evK>ctlsguJx&X;}mY3)im<rC zZ}>MpXSxAdf}Ox}t%|0{c6r0?z7dSHR@td5NAn5X62Jm+=C}%+jZPV`7OqdN2pKp*0`D+pMpM zG~zjQhV?$E#x}>`>-kq-u4$`%VM`l-iu#%|`o>jx<5Skhs%kz%v(u9u`l zl5g`b^@V3_AL9)saDTc5c~6R?wU1KN58JILxp#LFS?+kobMmWW00EAkm1FmI{{VI< z@;Thd3Hh`$S_L zj(<9{dH2c9RFwY!q{WZcw38Jm*&-D`Eyufd`qf#uL&aNRg`9u2{c5zTN|B6LKXb6` zS51#qQ9Z1o*RaPUjzJ#Z=hB$EOuL;*=Wiyme#3d9+yiSXL_YTJs#J`CeXwhPN%3{H z(>ywaZErITs>#BhyymW);MJMSB{=GgTdf?k0AeUlBP)a7rxj;T)U`bk3< z$m10^*zvpO-aeQkuUe1Gc){*E`_=EDkr9jx(yE;C$)^lAetXo3x6_I`7Tf4tvz_hS zGPgC;S>IY}_U6X*1{?0bbv~fiFApF9Ggcu57&7u}L~~Svn(RAT@cqVva1w8t+E4XY zNIq8d2hi1M*@BU`{41~0b%c0Y&rpn9+CL19+dapWMVHLQOtkM=IZWf3McNF#>9KqFB#3?fq+tNH=G2#cgOBlj&1=Z_G{k5B{}u zL8tDs$i>i=y|pdTW=lp=RE!b-0N1G6+j9Nfis|OHivA%iU3!o|rDn@+W6lN*MB?MQ zjvo}OD?J&{&t|Tpj1SknbNZEuVU-xi71_-P%5Xc@UDcs(+Q;<=I_edx6 z`d8k64ZL@!{7CS{uC-u73G%Z+kXi{r!y|ixkEkNO%oZ)qKF(XC@{TCU)d{>+HSWvs zX7o0DSEo3oc*K3V{cAu*cH^n2z_*1xPfAfyB(v~wPVS38puF9he5Q1S#zt}`ks~_4PTlyDMho(zQ^Uvz^(}6>0Wv9 ztHC40UL2DCDED4ik1-02mQkI{`E&SJz4(JcA1v{q8~I_5dFX!{=B})RM)A62Fu@0r z&PFSqqV|!o_844TsMn26nmz&5tjd7+$NA#A&x8Ipe+c-BHj#+5nE7(A)ZjKfjct5N z@LBNRh_CFz{^5_C0}=cTNdxdX{Hx4Ln=8y75x6{kaDO`R<0(+6q_;=va)m5)4q0m% zFUQp^q(H5o44-~sioJ@_Nz@3dO3pK&MeRd%LN zCmHAR{#EPRO}u)Ki!|w`P+^8ekgIe!IsFInudh|3T9TZ4pN?WMl`_0c>CI@9x1VFt zejNVKHqC2kt@!@n{j%@|v+(>Rf(K9^9ZoU8>Gk5ifzf^x+F03v6_i?awlE=vFuZfr z;;{TP;vF^*+EUj=xnDZt`y0%Ie#Ly`gaQp54DoFlwRRU|`|bPPW(weMhSI`mcdS|2N! zVU`OJ)OLEKO=ReQ3d`|-hi&{};ayWjxdUa~B?EOT!<1p}7!SiWZZ-s{2M6?_rDc$S zcm#^Fp}F3y>;#A>ELEQTo&~vP8WBKHY1*A2hEfRk-{~1 zqoaV7ZFO?(#PS}e9lxDoU&2{Q&&}7Ke*$Wq*Tg*zCL-F}^7;P&y&w@U`TQ#)ZyY`3 zsD{=XSee4^!!a2+#!uJMyy@a0vpw8C9;_s#%VK+o&&)^i;q^Q)lF#3 zf3xs%Fmak^*+*X9mACdFSCy%u(^RM=ah!Y9dkdE9sF;ms`?hrl1N@#UA!>QYBiFB5 z=`OVW(fptRj(GIQs*&1t1a|r#%9EjIswOyu(T>)*B%XV8=j%^fVYH5?{P9~WVhZOO z?U7FV2@C3ad(!qc=s&D3=3H?6{CzrNtw#Y?WyUzqPAb>f_OKYiJo|kyQlvPLk~u$> zXYBeI&bKld93y~NI5_v{deyJ9q>Af~2*Lb~Ot5t0j=tmGr1DB(h6(k@=}{^@Pd-!g zIbBl3$pz$PFk#xufyUFE6UThlGSIX#ZsZZkKgidhYn#o*v#e^7Y-G4*=PGhk^ym+N zdgL!5^5?-BQ_y$EHH_nbQ+ib$wL4D_+zm?2By0!9AB+G-bN+s{TUv!tNdqG|4W4`c zm7Cz3gC3;zaxV06Tn>QX6O7`z%}FDY$-*EZhCc2{>(h$uhwmxe@+!sA#Cn`X)H~r_ zyq(zMtk}j~NFyaq397Rx63EAwNJeT`uq&qAthH!EvaJELb& zw{JM_T)g};zA=s~(Jr9fxOEuMBaW59YLJ+39x^a9{x!p1pDeD9{1sk!II<}eF!nst zHiiS!wK_Hp8k5v<`BR;Hjs|*lu1Ox6B53|zl|t%2EbXkH()QdzG=rABACJ-lY#P@(wZY)|{&H zU=CFA?VqhdB9-gG&2leCop?avvgEp9BTda9Qkl?oW`$0u!miTo?pH7^ipdVQCOba}ip zu3cHZ{5Cg|11z@6;XKW~SCT$c?0swU_rU%*vG{M|4HH$lU*op zEU+IlA`%WVGmm=pzYYG;UM|)=c`uJO?O`sp>t@{6=?f~Yxy~Vt6k%h@=sI!ruc*Re zqstgMSp4gVvMJ^%xUIJT03-B<>%({OuISh8Bm1$b4f$3~k+5bAtd6`DVS+xQyAJ^P zuy~h2vArW?vqG-xf&gMNK>AkJv!TJP##%%PJ~)*|8}aoYTJ)oeaF;Dbq4>OVMLJHU zDf`Rpv&ruw6UOm6hmF7Gn+%V`-|1YQso@yhmw*&KcJ=&?dOoS)>x(&Li0x-ipm+2m z>sXHqM#M7XwR=#MWgDZ+r&_fKXQhuVywT>h&QRm0xALkj3olV#vn7;Q8Qh~iD>~!C za7+#t2kFIK&t9Hke~9ySQ&tf=bDHZeJQuel1M5{^!!I91WB7e)PUzz)%S)J%^}wl- zMn`kjv`&s=&jcDlr?z-rdevLGva1Tg@e^ESAvjK(tDn2NZKN+Hzs_mWVihFw-nsp2#8$dZw3in$h|qNP zKEQW1^mu$ax{ML|?l&D$r@dBICDt`abXyrGnZk@`aX7D>e0Ab0pA~A2E4D4;;wbxj zoO+tt@yCrWJW+7UGXE>xbRmnVmIlH$+Q`4=)5TfI-tIU2=>t7pMqp3G0ew~A+sZoqkUB20Z06x0tMP$3b2*@e+Ts+v;=UA~+oI zIUgbZroN9YUiFWF;wfGylK52~<3xsSyv*`Se-|~eEPEMok~8>l4OH;WxwgHR#_THJ>|PdjxNi&eWG| z{{R$+I6k~Bd92m0D?kK8y%2&rYNQ{HXA@-Vz@boaU!hvkm-hMg_mpkdNvoJ#t9itz~-7#}0$3X}cT zt}0eLhyx(;)6%qc$bQePUc|mu=o`v&2@Jc{Kx{A{FemtjUMn+iOrHFD*TZ5a>Qr)P z>eM2kO(ZjJ=E25C8OQUaWyWwb_~-nJns*#P(FDarZcAXVA#q!_ z-w*W-OTqE@g3997?ERsjeKHp}>d>#MfRT)Tg_gs=U}GSN)a1B;%<7Rv~@Z8OiE1 zLuIp*O;zj8JJ**v%5rjVR(C=%ib^YCt)6qqG~6CJz{N|qzA`9fL^(EFC#zBr6y+C2Htt*k-skd)rlch3xm%}ftR0Jq=>n<;ky=^R-XWf z`5T5oz$EACTiS%_CAp0<%Gf_R#tuo~dS?|YUlQq=a6AHG6=J~ZtM*ER6a;J z1A|);*=P?O2IBtuJ`_n3!lbGGBCJm%>MC{US&r;q=4RgAc_g3Cp>56z<$||Sk_R55 zw!BeeqFL(YJUM@LsOh^DiLYT1NLY`UZ3OTSy;ag>wz9iho9k0|Z5}~^TWMlJ!Ol7Z zj@_x-UBjVT&J#Vv5pBXq!92#uQIZBv9RW3SR?#0v)vj!0mI_1F6P&2h$ZL z_Om{vYiVyS#FD{h8%1og1qBeXV!RJhdem0;PaUk$0UM;uuG`}Uw=Q#Sc5 zp=)q@o}bRQ)lYGX_HgUmN6cd1?;1oc8QQ?`J!_V_g!zu3ak~}QvhD+nkN*H&bGn>+ zZ)99x6P)9YovW?wW15V$u_lPyST94L{{UTd@h((nkzAFF2yxh+GhJnm?;}&~{!LVS z9Qc*?ivfCZ$LCo03@!DjiN?!>F`h6tFC#yNZf)9e*Zi8q@fD-VYO=+|kvEvQ89Rng zO4VHCr1j-*a^m5M$4XX*&Qgbf!};_-okwdg+964B0Cf+?1D<+SjsE~Q3Qy@>T@2s5 zD-N||Bp{Q5IBw@7f+|PLAsxE=kJ6!8lG=9j8C4`3fIJM2y{bbnkyyquKPneuWgTvi z+?E+92mb)qRc@DRtbl#ff_;rl+3U~)>4E&HE4(r?;4uD%tea{wAC&V|tMNXYibBlWF&JCC(m$0tq0k?uGn^A&M0tsASCLmqQa5@ATF6}aTm zt5uvIw;^zoFFl6gUV-~2c$z&o;)T2u6%o!E(Do84k&nb5(z1RhX=6~( zt|r@;w;o`}vBB-{URB`_5=)?J_Sev{N$uavjlbF%;QJrzUQQ#KHj(?s0_KsSRuv}g z9b+#>t@t0JzAn3sJbkh4!`R$M9Fmnxzuh2^!=dS4CS2a12>ea6yCI=5-ZD61bHt1e zcR@l#RoP2Kc%u}3Yv!)91qV=SP6z~h61`U>X4Q>gOzCjIE?_a1f&6Nbq1 z7-DL>Q?DDh+nZm(p11o%Y4E<2Wq*ZMwwwnmjO}t1{uv^?0&+LxbRxPh7JN?BJXvcc zy~3@_ z?@xNt@FmjQYL_v}>l{+SxHOCa+z8_*z6t!ROXCKfE&N4ka;wDF_$}_Fk55cjC#57; z6Bs4sWE)R^a!0=v;bIrC#L6jb&!M9JwT6tlqq)>I3wT(QbqVKmH}*_%F4jo^rG+vh*$xvKIL_K305rAu_*yd8#pDy*(n z@jWv{q&iX13H|KjsNGRY3nv|FLytOqblv@Ft;b%U{d&)4=Z_1-WZ>Y>&YD zRqKmb-1&iapW$@i{cFCQ+;xjNYEx3uO3du$kL>$YkG;=B`BZGnl07RAOYu>$L1V0| zPiV(0GK{kO=NyXNZz1Cn+sd=sH!C8X!)0-I>=RK)Z?P7aWvEM=`vl9%U!{?FHH2__V0l+_y~`P`B>7%8 zH*@g>fMD+F@(t;4{>D#N%V(zJY4;d@PL)=huI@uX1aH#%~2 z$+#18T%K>S8j~t?Zy>(&wom`tJDF2c{NhpZ2&MTM;JU2*R5V3FzL=S z#cYCly$PcX2qa{EKT}p#9jq9P5A(%G3Wq_A;0#r$RGfwx9R*r3wyhJ#5N_W7^=362 zv5tDwHva&BVLbKxD(rFk@O^6TV+*w*Ku8r z(e+6*`2SP#o+z#ZAV65)GhqEFuaP(xK6xw&!ul(G-V6pcmp6WTFShPzE0c^^Tlz?-Dj*YVDj%k*C4_2V^X;D^Q+_(S6o zw`N7rZrn$I2GU9qkh3WDUUQD1n)DfLQsCzp;}zu}68s}Ayp4MTeCx@;>b~{EDt^vh z(g&mMVU48l_4=Qp+I8GIy^J?jvZT>Wf=JyM6<|g|2hf5k^GLRKw-+-EEGSs7bB=&< z)SP~G@!#y7@!9mdh`b@H&6`GV^fr;XLy}Bj`V-K0ud%h;h{lGRim#g$tnl1iM!&@p z$ffcU*MFMzD=u(W1zuc$$R1$cDqm51_%+^^fG0BYZdv-t8zF*h$ubr7!iT>djAw8>Fz!0!8u-HC8+(I+ zfZY4{uT=OUvE8|N@+T!y?kPDc>{pH1}434AKf-(GseKDi>tHB!GieA|Gg2n74V&K$z5vCT@N*zIj(K3epv zIUA2Y^+!quNI*Y_dgOd}@uR|j4`iC&{{616wg65Mv$~aoJ z<;g}jI{yF=Xf|Fb(5|$r&S0E&##MpJusG@saau2i{{Z0()8(<6Y^-j~lSsoGPDnN5 z`p4}Z;$IUqi{bqmJtohfxW01I9=wGE6~K6c)5O~2HSVXb-CyJHMYyVg&q3*4WU(su zrmlUS4<^L&dn)r$i|M)VULg3b;mrqlxYUwqSN>VTcN6ViZ?1mO?=f`JwEqAuKGHTz zejI;F^C)~j5p0O^dhR^`06OS24FcUY8);{ZJS!rz#zzdGaV6ZugdKR!IX=R@J4E!}q#;7IxN+G%Xx*M-qapLBY;D99PS8cy{AWyPDGS(UR&mDI#n+$nVpTf31CW zDwTzsa8v2jp1rG#@mGa(?RX^jkj!U~DXXByoR(*A?>F1|taB@aC0^`wtX zb{Hdr#{#=1(PJ26x&68de41j$r)mtIF^((H_D3tn$7r02=%aAlF^_NOQw=pDLIT%C z_9M8iFlm<-KmvN7(~79UEsS0z$=S1#yRqFKHst3ume#!B40FlsE3lH>Z8;euHJ5W} zs@WVC=lp7A9;a;@)>bj&vm1vQ+v(F4VJ&c^mE-cOiwdfff=x)V;YlMto|KeJsacuw zTkb+J!ThT*TZNg_jz3=Y(aR1aAm9_z@vM2H+QG4toM%5=)J`I!QM-v9xa4gldWuOP z+aX+Y`Tli%Biq#RjPX%QzcDz)M5Cp~sy6IXmfY)iY$URq6EpbkT#?mZ?<_QU3tf#Z8EE?o_+9Gh56E&gCoZ z&;I~lAC+;}kd=gai{d`v~;yW|tnPN-@ZOn1bF@w!= z)r*h3i>EaG)0|7k)2`vVPnF|rpQj*$^&if?BHRh>$4wypd0 zW?pfRmycd+XI_LfQ56_v`Hz3EZoF0+Iav#5cRLk9#hLD%ErgQ{+z#N`2T#t&Z zijWSShM?8oT=X&WOo@Nim>L1I9iUKOB@6&H!wU7->pxL zp!#}MY1G9yz{@XObjD6RJ-nG+d*U^afvW7x1%H0oIk5usb z`Au_Ta;?da{41@~((y2}>R=Lg01q8;P*1xc53i+2`-3nbhF%CG1XM34W6g8RYYF)T za$~5?StI4+r%zg_Hon~aqc}d5VO5q)9#h-frAEe)?8(+W@nZmy&U@5tX04tu{c2c< z-UbL>^)X%E#;=t~)0D|;a-`%R}bk+x4cIr!(qI&AEThX+H4j`cgN{Ipk9q73Vc(QdiWIgTOq}bDlc%rYxM` zeGMpM&*w;u2j{W;s480k^FuDtk~2hPXBo`_VcuC$$3N1Vd+|~aYHRn%=BPw_c+N6u z*cj=L)`sKQQgs>XDv}RTPp&B&JcHBLjo#T5>{SnOn@>6E>rt}%RM{SxG=&QiR3A<; zNOmfDVVL&fg;BT`{CLew@ql3Tr&4aWz6*Q5Fqc6L2_4Tb*x)ZUns_C{~9MrAuG&|(itrj$Y?FP3X zd5pPaF)+%MVn$C~X0UIyD~&={lHz$MB=XWRC-SJ0M~%shv~Qohq=p}etM^)^#q@BS z)?2oTe6(ql6SQ;$#rZ zT=XAG(wvkX%<4i?T4;Uu@OR@Uhkh9NyTY0-h2x3*U*SpZ;)htiy9^TE^|Cia3WgDe zD!l%@8vEYHc=aoFmI)Qm{{Rx4j{WQL1K{ILKg3N6!rxN2(wge-I7Q{+?t(WhnBB%c z=y19GYxS4*cKES#;c7@_;QGv#v}o}}Bv(OUIg&m_Fi%H^W@g7o#OD-7^4 z$jI~}y8EjstYtCGg;;w306M2NznU|Q*S{LKUD5G#!^Tffb*_dY&Aa7g$Kh5M-WfPM zbBuPW+Qe?@ichc;oK00*w7J?8yT$=8z z{3~~M*oxiXp3B8_nt#JPxv*{>U|&wAyxQ4>A-s=Q4U^+>Uj!NEQE1{dz)TONTes0= zm4ZhbIrLGJ`2k+dVet1&w8xmOaDUo3AC+&~>2|g%76=kC{>p%B$g7)0d&Yeeo={8S6`(3E3&j9?(8eAkgzGOax?W9)F8 zH<#h9Cmv?IlRqXlF?Jo-_ZZcQe8 z)_lc}G~9Qj%^_+Brs9+BS-Q5d9-AIM{HLP-08>!v+S=Nwjv^XPpGxKBcA3k$$vl%@ zjvo!r?@wdrvkb{nUdoHSzaf`XOMNp-GZ$mX^d8u#q#`vrz@)prhRP!HI>w91X5d$s zc+28D%JN%j&9ORp?fnP%*U{nd(yY{Av_Cz?;^9R(P2NVgjJ_a2q!xld-p$i*r(RFB zc;>yYTx#?Aw-Ol`WGK%IpFvPxT|BbL?#%K(EbMYkX35W9mGzV`@S>7ipBq}d@e<~q z#Bw&{&T1Y3IH$ZrS&3gxf^wn7t0~>yC%D6uX>3(d{ zk}wA+^{-;^?TEL9oD2pyA3(JD3{{X8%Ju&)L7mu}p;r{>x>)MZ)(Y?K^6kw$M$K_t$roM_# zm0k2cN-=e@9?5RqzVqbo9C);9n#YLlt*B3+uY@$nHES(W zJ4sojmPyiDwd(RE7s~6d&p7O{`2iaec&V^XA769c}JX56?QfVTmE=b&E)}P@I z5!%nHX?nZ(diF2hOQm0*i|0FL}tCb6sDYuAG2`tobp6&56t;N^m@ za5{UR&X-oaifiXsE%f-Jh_op+ji`ZUP{$5NGm`^9%5>a^%H7kGOXQw7&0c~9Z*h*bWLt&D81Gi8++5Z& zL`RMf(-h%vyE$B*zvNcGlA|YpdU5>e41X~LgIDau?FvxXZpp^NJ9Vjk#;T#V^U$gO zeJaYX)xger=f8S(S+^6($3N%Rw~Zy(#mT#wSGIdsdJa2`eR-_KQtni8YoWYMDd6WH z=QW24?V0n?9DhI3vZ)0bXj~<9?sd@E$EWEwQ!bJ(46(CIEV0btm=Xdm#uzxqT+_9U zG4!2E=EcklXq;HI1F6$Skv5-6E*KJP-~+h~6TbW@pqnOyP z_|D~Q5;6~={c1N*TXPJWoly4)CX)I_l!XPk!l(o22WoGZw>y&tw5)Y_ENp(y9-nGl zl3L-nG^8GYbF=~MGgWmRL8l4jB19B(v~qs5thyAgRom2%K=tkU)1wL_ie`_^i+NU$ zI6QUy^HH_rn?k#1Cxyo!mO9kZNh-F-h(N${yGT6uBi9uD25oqWd?yx_Xmn5QH`L^O z%l56JDAydQ806>Pv2EExzVzS5dXe9?L$|Rx#Z4OlxE0C8JL_@s_B1V+&2G)Y?HD-Y z*BGZn$9jX$Zj~LXgBx-OdXhi94?)w~sfg~pE~Tx(&mBLVbU{x-IIefXvJbMJKZ_O9 zXXWYbUgjV8X!$%}@mU_z=~&vNU|nT~OD;oujEdV}Hl9HL04B4wh*&H#e+stJexuVB z)cYKC?xbd0C?Mz89@Ww4cozF|at=SjxyU$Y1Fm!JTRIH;u4Rn(8;2f;28GZn`_X3Z zIRtZ1$b*7M83*;N7#S4SUfrv7d8>05OI8akFVYzrG3$UyAEjPp8OLAJt4yXnU=T2q zMca>=PdWO7`Wm%?!SB|$U5zKJxl>Suo)mTa(XemmMOsa}P^#_RIuHK zjYDqRQR62DHrxF{{Hm7s6K%%Gn2(#*oZUh0J5zY=*RQ2CKH=9t<5XjA}Mr?7gKde!6KZk_|z+tPafkr zt!{D3B~5Yxb!BxC8Chdx$KZdheA9Ia)Ab4BldN(w{zUVN`fB?vY~&1;Q~Zzgub%!O zSsOnQPQYO&K`1`t5Pwi>&&DeyBz=z#*5s7wGMsk}#t9W7%v2u0{yw#vV>ik-91fMO z4x4jvAXJ7!k&%TbJZB>Uu%{_4nf8;Z(oEEw#u}X77=u80_i48G0^&HCK`7%mD&0Wj z@t*aOB#j{?wog*kqYs94JD^NfQ#*9~gbw_2D#V@#*CDl*;!74tp-t|^mmx<}jMk2I zIc%1OburGOj4D*Uv{!vQ7`ut7W0PwPR=v z2Dojzn%(1<-|q!KqgREpjpuO56lT!n#NW8`TAcVayEcxp>S1ukRZs)+F~?uRv*nG| zg8_=Or?=WI!RdjDE(tslUOU|PGmkV$E*Y?!fd0MeyqNoN`qYJ>QvA0HdIN)3CMd4L zuQwBpyyx{aNy?t*6si9JACr&A^)%Lgxa~^iTcOCahUcm4P3!DwpLlu>O)la);=Ge+ zjt#d2@NN1sxT?k7;n(SUKqT7okqWs@ZOW14~)W50!3Hw8~1j^4(! z?X9HR%a8&tTeWY@o~Yt;ww5E30V0CQy?Syzs~+;g?%6@NK6GkwP>-7)fY()GVv^P* zZn%57M>vcUK}69A#!;*vscyhh7z1YiFvQcNKkpY-5r7 zQpsim2idkm_hnIo`1+5nLeBQA7GR+Ek}-vDy|KZeN0+IqY2C!KfRE)`dL8`QZSqYN zzF7z69hiC%=~=PJ9CgosYL!@~2^`k3(C4WIQZ6z_W2^Xlc#_6lTTi#ya;^KwS06q* zf$Ln1Y*QhXmH8W35Jm|E5suZ+_;+5K#&IIZVr+&UhaEHTT`!5WXnbI@>ei91p0|Ky zwg3pOa0trr!;$z_+S^0PjHQNt&acDK{{Wf6+p!n~5Pu<86mC!e&wTn-RYyq*x-vSp z*GB{uBRK?m)%cqWgUa>vJ?SZQXGEiYx|UQIQTKO_r$ZY$EVVxiBw~bdsWEPGLi-lTya_^bGwXKzEib# zkTQF5OlU#lcgWq%TiOvzV1tkGsJy|BR|h%4t&yKwFtLf@xCmt38*l@5&TB_h)0#C_ zUz~TxCbH5`F5ylID_ihiERmdmbJSwF>tC5PDBhcPM?BGW^u-Hr@_|~nmLg2a69T@T zp1gWhb8bcsG25kQ%-P=`ds4E)_*0!wQHZq+J4$TQS7j?PvhmX8Fd*FW&2_W8z zt>(ib@z9gO^#>L9XYAea(0Jd&F1gpxnjAmeF2FaVDA*;@EUJr4M-v~3-> zNipP==RF5vGHc_14fui|7U*$&(cM~1s{307Sal2!Vh^De*g^4A;unQ1#5#7h9<5;* z{oTH?8JXh)I08(DU_aVDtH{LRnwyn1qdGF&(Z-jt#Je^9edpF*AlEei014=~TIQiA zm0@EMmD#Wl8Nx5AVs_)+zdt-pZhy8OzW&-+A^T(64kMdG`t!@A+U@D3}h2ZVHG?Ps~3VTz}S zUd3vTk{v~Fpc3y{Lk-I7`0PVhzv4Ub(!KR+vE^sTR8qj!Q;G1-scO*5>dUrB*sCvbf^$^u=4hl0 z4${1jTJ}%c1L64a_PDyWiekd}e(_XfEP!+Q<3F8v>qWPb&3LsS>B#*f2Z)X)jB3Yb zeR1$}#{U5Dn0QVjBj)S_{ z07aKP0L1)^euw#*`r0_#1zVCo$**G#S=5c5=jR#L1z|BRQ21r4GE6&U47_*Ge)Qc# zTGG5PV%Pe`>~>wtWUSCX|1qnjBYTQ``(>-{43{=7kFn}*L+!bd92F! zvqr`kyF`(xAwn-<$K&GIpygCHIqf+vB&0{BkjdxE`}v!el1@%}&-pdk={^=qRLqH%_81?QD{c)mM%*tI z$f-_p=Bn<`tWu|jf~AL#EKFMsAIktT>2kgfv^V;@@7wzBmceJc9cjx)t} zDtcKQQmF5Ho=eHR{1f8qt6fshPH8vWT}$QdZb)Jd z2;-%C~N6{l+oTuKScxA$^Dtp>1-?c`NdiIsO_2a|)rHA>4y#VXN*Sc#v;+rH z#&KM-(E7?<4E0>80B8CB6(YyALpNT4cc!t%ae>(X09t%_*g!u%YGTdmUcyfqXu%^G zIrsWjOyF#FBa(RhGg{N*$-y{1ef#rSS7UAlGBbh4T2mbsEvp%0PGpQSavnf_HI zSdb8S$2qQ3d2OL8M!CW1kFQE_R#HGX$okTN7;ri1=}+m5{syJ!VS5a1*axW}=M|fM z6Uz*dW8`%s>ygv*tzrOE{!eKmnYl~6BO&N7wKJxN&$EIm@%U`qIOw2H3`SJD5WN7mnJz~;8a0HuA(1JStRmUH7 zrh092!K1Xg%drdB-|_uF!m#As6OefMx>n`HdswS*#ANmy6Z-M`R&C<$ke#4$-}=_| z7gL7}?R3o@CA{dE0u*)rbo+?GBy{XQ#-Pyw^RUa2jC96&;}xMiA+i9=XN+_B3a#R0 zFLq~|c#6>5>I_QYHy~q<{?(ruFtHi=8wpLLJ{Y89n%` z0lF{;4b3czxD_L)tfa22Z@MxvpywDpJq0TPxMQbESpilc@s*!PtoCeUo;{7zp8a_Sy7*M_&ox(4x{pwXTX|RJjO`87_vW{pVs+-X%c#}LtCGixvk2Otq8#6>r^IHXxSK%(=-VaJhweKsrUec$f(-f zbpxNLH6)B_H~hH3Kb<}iu|`kzr1Ey;^)&8R8Q@hRldetx6vktb>)$jipEn2bq?557 zdQor=8#(VlTrL2}^`@Vj9AMEK7{&(zv`*n`j%3@;ar#mZZfaJ;sOT|F+qb75%CDfg zL@n*lwG2yb$jGOv?O;mr{OVSKuq*~U^~Fz_qAULZcrfF&Ln4u!9O9?)&jUSZ!muiM zZkavlYD>1o7RkZy`c(Gv72`bSnd9dL*EyAJt3jcQ$J zHX3c6q}Q6VNpm{+hR((@Ge(3GH@-rKK7gENv*D3$Bl6Ef#(UHzHi(rB0O`}3y*Fr| znLe|1Xf+9cvn?dFw9oE^!-*wcFiS81WSsOJ>WA?Heq;5`Tl*=KJLK9s_cdbf%F|ES z(A_QX86{Mx9e6x-9@PB6ZjS}j7uMH62+|o9q-Gf#ayN1G&3$pBe$x`@`i7TrqhDBD z&!v}&-&q#UZyw!;%Wpdq``E$t86MU043`ZgWlLc?Z5)1e(|9YxTCa#M*3U?SX>TMW z$%5Q&ncJKNTyjtN*QJE7Dr?!nUgwLL;Bff3UlFoDay|k4QndKT@YhH24Y)|>o-&s( z1I%+FD4w z3gmDYa7W`@wfDk^+>>i?Q2zjSL6P~_qloF-YZ`dEwEhVlSd5Paiq^F?e)}`V?>-so zkY{X5F#iB#jQ&-W-V4=WW4gj(JwlQ{I`^HR(^@}j?v80$Z)3r$!WcO_!g618JRN*9 zeg6PHQ-l8iT+jGbyI%_5vwz2&!26*e(!ICK$69xmJwHlsHmTUgJRwH+bzj_%Cb#fr zqbK~kGXDU*fm;?o53b++X;_EmYta=z_NQ_5J!_U(m04_h^f+G!PR>oUl(hJNX&wyD z@*nnoQCoJtAJgpd<=VziOt8tV9p8;6eYmeac$%~Lq<^nGiQ$-U1-S~?yU18!F=N{3+dPI$YE;t~)sA@ubZqCrXls9P>&1 zsHoaFHn+o9XRTd{yHsZx6yk;#-yjeh9sT&2y^ZuySm>M62FTbAH|`s%!cB%a-UyVumyry6NSDET)jPF&K}k<7ul z=z3L2T(fcbVy9(1)J8n8$3N1w6CvBVk01SNyf>B>ub0Kt=be%E zS!N&E)8>1z%Dr+usT+}jPvL4jgVXC?aqhmv6E@X7>WYlzkJhYSux=_Hy#;kgV}fnB zV>?y<08t|j4nM}edHCHY?=;wez-jj%z+=yxpYX!!INM`h+{Fgw0E`AKamOEY zSEA^w8D*33IqBd0{uSY0wMM8TvC#D78@$VjE(~CBLaqmH#jDfD)b?0flk)!nfO$Cu z1&YqF^xu2^%ID3RwBP9y%2W)DZBc>9AYfy;HR`@PlFLQ-S{lp5=G$9%t+c&M!@p`` zSxjU1s}9UA-ZFQ3{cFmkxJfljVIbKPOuL(cQwJpD813A4uIu8Tjcoi;rP$hyD%RIm zhW<(JFJTH^SW010n{MOC+%kCPzcHaxmNh5V$MnTmIZl*%9(E%u3Lsoyf1L4Auq)T| z>r=K)bJDBM@gW?RnD)9D+Wq#*TztZ=? z9pu<7kbnY4PB|kT&tXt%-Wk8}Xwt85?W}bMx`XWxX0jPgusGNz0AMi(J5S@!6_KlI zk?R+YJXY4WtAM^utP2V$1D};gTIh^tMlSBx=tEGf)7*re?0fgAP;sBfH57j^J^R$^ zybc9(9dSXlbMn*SjaxgHBc~MaD3;@=UTMgU8)Mgx{=HOp4y4him-k1@Q*H~6bKaxc z6b$p8Xk2HWYpBGT7t9Cx(@G9Uew8YyRp8|Ql*Uuk@t@AA5F)S3>S=cK%Ae&{D?Be7qh7N8*dkKUBK8)HIzl z`yWl7>Q5rX$Yd}s0rJb^oDz9Hz3N&?JxuP~)fu{e=2;ds%d+5mdYY>weoT)W5O$xu zxgh)0_6-``5j_6@W{YEHO{KZPz{jB=eswzk0A$Bw5ovBFyOK<@MuAcl1mtArabb=? z;-c3|!`ZiDkCCM)GhG|wADf^t-^T>JV}eJ;*jV)i>rW%F(%I79>~ zC!XZvA5&HJ3u!E_rGj0d<0Vek3^*hl5P9TwG-|!%g}#inq4r)ZktwxV!JB;%(Zl+$f$4JE2JE%Y5e9VbwqRGxcV zxTD<-u)>)M&JQDz^sGB^`@Ho%J?a@1q?m4yN>_zD%XB9g_TsHu<*=ud^!n3w*#uKX zt3_3gO!9M&%pPgcusF~E0A8boTm2wluG}Bgig5W)r9Oon?}S-e&A8+@Uj6#rl+4qhY}QT`RAt=Iv%+hyCMYr(e&tThV3^>sIBC5yL4xdV)ad>MD$C-fZCT2Ltjv z^!EK|X{5LNG^lpSvSc3IWb?%xE^edD?00HJj0ohP{=Fl2<0q{$34Fy?9D~k#RNH$V z5B~tJw>++`8Mo{EkuY4eY#TnD;P&)1_4(I1{{TIz#H+d%Qonc*M`P4g3r1yA6Mg8; z)7zor^sQpbTE^tfmHt&nQOdMLHq?_bvG3C=bM>p+v&B}pgY6KqG38h=?a<^O(x`BD zdXBVXC93Zjb@>}TaxxF}sS1TYf}w)x?q-$Q79huV(e*h!Dt7wS64SVzxEMdCD=OAM zvD`}uA13X~^d#~48rH_s?^JaNoIG==$Ww;@0CfKV_5T2!9%GMUT#j+lr;b1y2hys? zg*%TY^r;#_xB<^>P{J#rrEM<^o4WEVMkzNa?0WIiup^d6RgkF%b}{*klZw2%nKuGS z&Nk-**j866Q8mMVlTDIOm-MXreX*ugV949HvlD~Rf$halD_{jYe?Mwm#!`<&J>NML ziStH7a!A1gr$bS!iNFuI`gK2zDzWE|eLs~unA?=t)8=U{z<<8KD`Te}58^RaTj^N( zY|RzZDI7|;+y2nx9-f)4Qz6GpA9`t+$~{o*?otmO)w2=CIcS##>wwT7!bsHEQ z1IMU6``4{+>z`kxa~>+wf3++xEdc>;5Uy|z7#ykT*n!PsUOe>LJFpdA9}yX!Kg51q z9`)^h1=WAyBk-?~peCVX7>r1qGbjgdZsU*2yhcpJBP$P`4iDf+BD*hzn)7J>D1#>u zP5Zewa4>U&_#9W4LZ>XXKIa`t)uh~aTAtme!X&kg#z0}7_~$hx#4F`IZ}%Naw;AAq z59w1w8IEZY6DnJBjDR`LMsd?MB-)j&i=%3G8iU(^6WA)s$FCiF{cG3ey3qKCDM_Yz zCx=sm z-;DBbPvlKw*-QTbA4!fp%>H7!UliM!E@B}4;KTH;Le6iNR>luPK7@+%aSG`A95uOB zi&q@4`S-4m;jQnJtzX-J4aK22?UZ$3e*vG)xv7Z?K^X1tRy-qf_J0`Z1E88;v!37U z0a5yqUVRz+D)Ex;j;uvLYeH~+Q$2%TxBk%ZzNHD|8(Dq&DPVeffnEVA4B5vG&*m%L zZg0H3J>x5x9d@;y2dE7#5KQlw;$6C|eS(3D?uXGfQ6lG{`#=6y{aQJ;cmJODRmAB}Bk`I5+|UZeTe zDEV)d4^r6m^*`3Nv^Fv=0-gs}5}C?h{F;Z>SXorl-@)Yk3(mm$VJQ(5v!wU6UbeKjh_KeWQl8x5rn z+ZgPBr3jl?^zB?)oqGz-j6qc(cl!GZ zmNy{t^~wHKTcJ4^?Mm5E!6cva#TO1^e#=#ReTv61`gK44s@jI)DTm6~2ajsw7H^jX zel=>+`QdD?NX~0$RMy1GDq5qpS?+Y*ve`&rb>!{j9=s7N-R~ZZx}t@ivh|r0rRLG7>9M0s{yo(jDITJ(RFE}RgOn4 zMhwe z`=)vZsi(o>h~9Q}i&NU7DU{(ZF~-*a0B8(+-qp%HGT7Y9ZF3ohbU0|-VEYm6Q(In` zNEtZm>Dc7f)WRPW+eZb%h&34ag5|ge(Hq*XQB@Z-cRZyTV4o}2oBRxzzV136{{XFA zg+k!BBmDHLJ8mp)UJJO4GspLpy*+c>dSbL~Wb+j686A3a*S8gvWp%1MB$SobsG2;C}Pt)nBJQC8fxst!XO4xH6_p;b|gl6!xi z)b;t7oP*c-)73o1BOK@HT?pfsx=>^}+zt=xQigGYN%YT3o5}L=#zE$#TYbs_9QCa< zHRiIvQEb`O!wj(KNAs;+KF(cAQwnj$eRv*~Qq2)mt1cdbJD|m(q7SMZhyio>$hkm_wQGs@Oha*ZU^gI{vW=FT+`k}D;?Z_>uvM%EtkW^%jz2%jzIEa%b6Q;wqm~*9IwOg?@W``JK*8vJDfV_|KXLslxthpa!bac5 zu^Ufln~)D`>7`xGTKb-CYCg^0#d}+Qq!2JiO8MvZl=yGjP>PZW?6qS_Vjw5>Eo{q`S$VNTaA~H zHsxXbL!7BTm4#z@9<8UH%ZbqKb;b_i{(nmECccYNuqPmbIqqxCJV6t9cUKyOD$g8) zZ1FE~{o(FErFKSbZg>!;>QixBqmc0hyIS5zK*7#OYU+GFsefr{cCG&aEh8+4*Mt5T zsC+?Z7NKgBz(b^qxmbQb{eRZ5JTrXSee{;na2w_xox!fyJ3FHqvHHaeKZzX&jI@|M zOQ7A@+>E5F!*wddBrx{}`q#=D=7&Cms$6OJE4EnQ8SF<;!`O^h*3w)okJlZ=d1uA% z2c2HU^*dDEb8Mux(aR{#Mm@Qy#8c;7$m_{*KUbTfJ*D}c0XA*rDtI}_BZ3Iz5np2b z74f(HCteJKY2W@PHh;Le9oc~4@#w?(8u=<~U$$HB0}s@C_u{%QgFg`4z#cV)?p%#J z=>3}Qdn%LizCBdq@FuvZPubM7K8H8K{cjBr0xStegX4h27Ke?EB zh~J@K!2bX`?crr*3=UC-at=pK=RTEJ#9C>-(wrd7v7PDl0OWomz4*%7^gk`bRrXbq zdLC-lC0T|*Jw2*;Y)Ywa*~aeQojtCa5yVPdoB+W4@<+F&O%=t&lZg!5Way<-1>>j7 zj9`5$dv#~f%BLx#rRZ~CNCYu&8Rhyf=l&Je>Ao4Vgp+*|-EoDFb1Lq^#z^c9J4M%@ zR<|iKMwe0j<%vRqzup7T)tMc)6V!IAitc>YBNJ82k?3hu4!=bFwjAi2UbXjKKBC z;L^!?EQ&)+?7!X5>rt};J%61NVr;Pn++}qhkTG)o^i)0Q5e_Eq&AxSzh+;T=p zJZGHx=B~aMARK=_^;+sMzdGP{^ga4gxwK%dX0$yw;m5{JPs6uKX{ubk{+!<`Jlwoo zo(b+h&TH52uPimYN#bI%Y4>PDD8VBj@;-+jrF@+nrF!x)^!&|seiQhCK9d_kG2H`T zF7IrP53Va{Pg^tPGhCTTdwe3ak;-_ZMU%t&)%Kr0Nr|%?bPS~AH{)FUo(Mb-&)4#< z{{Z4u)LPV*+JsCQqaIuB;FLKa^z46~dHjvLB#eQ_`89<{X;}IkzH+TXGMcoym7JZx z6~OCAq$?AQlm7tMrIh~w7IFI2O(83h)1l)7y<>e(N>R|UDFhNRw00vkk#O5sjP4!r z{VPX1;@_MB!3V8p-Ezd^9A~GddsRrrnzLz?44y>EAU}1n_#A_tD`^)f`Q@?xO=C!b zl=H)9`i^T$O_UfKb6zEgItg)u)8Cx+u2b&J81PlHHuU2r zyG?pFlTUn(e)i$hgIsjWvB5h*Zr!oXa#f9)>0#xinb@?#c;L7T)MO65LF@i|RcoMQ zUM_SZl|??N zy1mSeYSu|D-3iY-w|3(=t}Ub6l1DAi1CIF>>6g%~usF``*!CY^rEnUAW*fx`=m`}gTuf5n0^?M#w9^f*0#ontC| z$4q2m!zqnQvB>`bKGi-$Mltt$diUa+eQIHtNTX`E-s*5_zT=*l1Y@VAaWvxW&Zx^m zJEhtS4!{1sYPyaSh8IhUfHy*clLTgzi9`>yC^zY>CG8lFms%H(Wk@YU0hop zUN*=cp#Bx0)}lpr3Q%+e;~!c%S1F`?$`S38j+o%mm~osOg{qLV`Objnlb${C#b1SY zD8b{Wy<-_)L3JxKg~sv6UTQnG-3iz^>OWewGKOQ3$4-@6Xxq!+V088TsFZG*S1HHy zN1eZoNwl^HYK}3rm=lmV{{ZU%J3++0)rH3(41w0UEXiXD+N2SY>)w#A?10= z)x@-(;wDP~2X1NXi~K|JrF(xZc^vd3H5vIwtsKUjy~&iSfV~DPW-0(V!RjiORkFvY zOlF-Np+Vf-e+li*c&SqC9H^Q8VmQI5rMD*}b*FGwmi#H^LH9}b>59{v$j_I#PG#L0 zIKdnrTBhB=tyWNa4l0erJ9D?KA0iqdjhZGL@!yKklHAP~nGwnB{{ZT&-g(c`uIblC z7AV7VdQ~DwM1R&|L<&J+{C`Up3A2EMAR<4Ao>NKt1h2xU+q$&NMVjg0R7-T_g?<> z`p5ep{B6JScf%bf+s2ns!Qu}q%#Y4rE$%JzgqIi@Bzk*SS_@`K#%+uok07V*Ank-R8YoEA-9AknB z^sjO9RD@M&YV`Cz6BkPv97nal(XxfxzMR@@kK5>Vdnvx<)F-#!6=h^eIaUYgL9dnk zG4TO4D_AF4^AxDAj89b{5Pu>oxzoH(&4U%oDfVJ2>g3Xf(mWh58Ah_asaW?7qt=bN zuQIdoef)hccaF-y8q|Zwv&Y1+Bacy$UTpIE(b)ItaUKq*#+vzmk=!!kkoT@qKOft- z`pb4v>}u3LIMZfrrP?F@()6xrVC%J;5Lx3e0PUeB|WS zTdUNzjI@jZ9M_{q2N=II!Nz9OtgW&vO*Y<7O5uE4&duu`@pSc|u{A(Y^Ul1g? z-)Um|6QjsFpJ85iadb&JZhPjwp9_N8RT1zw%*o2|qxX{PT9mg^ypl=1*yNVxvL%o) zIXOA&PPveIXCA+gdZ^8wyz^f{6rz$xf|cH)yY9|DoK#M|JqI+bM`~#KvyZ2>YH4Au z81%@b*|)X{sZu@dk4*bifp;MhuG7KVKie;%h%QEQf2po!&JE0< z4*vjJ^`D12Uzcw!%daiM`u-Kmh^g%9x76DUMc1tuos2Mu)m26YG5J-Y^8WxzjTaf? znvnGN^{qc;=v96fx zalYnGw}!W2oC1H9eChGQfY!A2&QF$41Kiip`m1kJpkr_6Upahfkhh4f)B%-;{{Ut+ z^tnp?;qe*Wq>}S6G!^pgcZ3XX&lrN}&bwP~J9lLI?-Yx6qzCX1<@sWtG$ zzti}R^Ax9(`=eKCWRRq{YeET zWhyv0I6mgNj}GY2c!R{cC5EYbx@C>!iY)Ouo|f zFB&h7+fB8C*4tK&aWZ|JDP)aUe7QhKI6XnH&0)8ABN-X)I|}9P zbGdb~7N4n4XR5;fY?jgP2_f5@D=<<>BcLa^?Nrq7xsiw@7WnfC=_2<1jz{{QM_qi3&+UW8_ZY7yn109N8 zNZrBU990`TSCtw~m`%hIc>@IT^{sg=qh~*~z1rBJ9is&YX5-xR&t5uJuk6s#fX%bN z%%q(2z^zy#jxs(~9Csv+{Nk;BoJ14o%qQH7gTuWb!e_ zMgoD)e!s1A-!ies2X1}8&$V^lC;>FM*=3E%lWC1}xNvzqS1)d$%*~7(e~oa~N;5qi zJe;ZBoyLRVo2&Z^d)7s^StH%^NXmAMg5|N$;PINt@f6DlMUK`OiIPNl?b(cTk&l=z zHi8En3bMX3)bw38*G9UQY4m$}&D!a2Auv0-fJ-Pmr2y~Xrs4H%wV^- zU9m?S07y~mpHteD?QIO9&CTx|y5+KrH}36>pKMd3hYUa*^u{V{dD_xso;+`jw=O^< zj(HxHb6D|qp{`qq?&b+*uee7HN~#-?o(Es4u6+)@dK4r^UNMnTU}xrB)`WU)p4u$; z$*ifmSrsAE{?6s*2Roa18&obk^~kK%Svdu8dghRM8W&nS+Gz1=H*m{oX?Pf0TozLq zDsVvn{401;~0H0o!EHK);FuF!^N6N_|TzlgkD)ybCzO=JLW^G}( zw~3}%CYxuNsz53ScEJaaLsc8eD1@yad5pLFT=sX)-)9P_r*x=-PrN?i>zsNTj@C|q zC@gs={{XL6b>9oipvR}&9bZk=VZ4uc{?C<};$hV!Mo?6OeKEnR)~bBL^85Fprk$9g z(^o}{ebQZBGq*c(N6_@7ldgMosc@@#KHiMD{zjvahKnPEL8N<~SAyNvMpYRMGJgVp z#=D)PccpNi5^pYOm<;8=n8kVq-T<#-3-DO^jK}!IOf%E1Hbo(L9FbEp{HKq~nIe@? z2R;7){Z-x6@?>D#rG)QTrlFp|d94qM9^{4-i##Cw|1^Q50M7}>z| z9<`k`!rpTH0N^jD&72JVMQFLeJXT(zZZ7TFHY@i~-7-2Jm0H_ChLW=+W+eJAN@Hi7 zjDM3vb1lNA9x*Ix7Fdk zQ=;tz^*ulRRa0`U)27{^uI$yQ*;Na2PjA+Tv3`YwW95)fAO5;x zxd)HuQV!ky>n2Yq{{XgZVyrNuqh}+Wo@pkS&4M}O_<8S8NLVplx$1M;mNqPw>Qzok`x6OFv{>GkXRRqdro3;_OBE%Z4m3az!n z4jD*c_*R$OBPue$9^(TLcw z9C61|GgsVx@DtmgYOi%}lV!Hyf|brGN#8?GSe_B%D_^pBisK2fCs8VlcR36?dXLt# zw0om(aIQIJJZGhL-xM^`u~^?K5@VRe#B>3HBRqP8Tn^C%!-eP@kH@8WwO1uZkI=An zm1+=^K8*0Ej2BSTY>e)pte!;289PYIzvZ0$E2r@Wq5l8~mZY)jSHIb|dx1?tH7uNr zjocnSgQa*6gY{O1@ng>tF2WDckWG6wnX1dJSlcz)iKLD{AejIls+=jtJu&%Lt4eo* zk@J|`9B9<$TQf7_jpFKdns%XYsM+f9DcCNoW%B?nk^_9B2aNRp01C(OW#az;W9qhr zu#w0nMb95FAda4(es$D%i${-C&@OG`g;(X=zFGyt1D?aNuO-lRk*4ZbFx>Cow5e6c zT>UE4|sU!`YKNv#i44;e>BO6*!N*~sc@qfBk4is3%|5+tLxcCc!*3huK^ za53NU%~Y3-%0_#8SCdg&RC=-1YI>%pCi$h6Un?o|6nh*n{5h{H)EE6KUzMUjSL*_Ti!v}^UyQ|ezX~stm4x5UUN|vp* zKsp@ew5DLWT;%71Ijq&SStc8ulyy6Cnz0m<<1zN zs5N&(lWfzDt&HRGBl^_^4Gf7pFwcL(I2A6EOn1zF=y=%k&v1HHvG}ZEIPM-GQy!(9 zV{-ohjZ?7y09zpFLjF~w;shUPiMQ`QSSJG?g=g3gnsPt8{c3iZQNJa^Ml6IM^VXR+ z-jDs-R%4t|H{MKj#SFNiA#JTQ9tPh^&70;29+h>N?VGo1rpedRu$N<4$E!VOPw^l2 zgkn4NQ8DAqUOQu&(ehS6K>^V9t}DqQFb>nxJ!?-%)~3@KEZe5H>9q1kUPXJ<>T@nx zA1^vKSA*3MYu^iP^*e{Sf<}f}KJR4*ws`4YYpr-*>qEMd()KpDxl@!s!64_5abEcx zo8b~f-eeLCj{N$4Yd2Zat@Vo|ZF-x~f2)(JU!kr#_$4oT2WA@_m7!Gm_CnFfP>x4W z!j!N*MnBI=*zq@pu5=ljDAHR7;y^hb$BM^GhK(9MiLv=tBPYK@UL8odyEE8!YU$iu zW2yfD8Wv}bzFvF#A7e;H?nfS@{3!D_%B4<6rYcZJLq^L|^B*|!o1tFcg>+ULv&L}E zzCYA|^{bd>S#ZcPo(STmOM?I$UJ8Onl7Vh8%u9_7a-&iQI{Ns8O}v|PlP@( zL#oFPpQ~6&X?n=3=cDd|X2~RgMq@tNHS`oQa7&V|jQA|a16qsrxIJUrs{a6hZQ5z` zX&0{r$i#U*OxPi089alIqPHFug>uRW>Uv|p6qAOTL6h!3DZ7#1och%E;zeDNuII*7 zFbAe^e*^t%*MqmbkDIHAbrNqwi}iJbC~%#Cys|AyAO<7l-kFRzTI(a4X@iQ;#M&rRr4cFkA=rmfPWg{VBE4x z8=?^-Z2LwCJZAv$z|DB|rzbnKeYRT#94r;@r{;D`GVQ@5ImUaBWBz~o*KFlsAm<~m z9Qyv1$JpSR{NXO?{*ZNI|h32_y{R-<@ zdx*jdwmw-H2ZiJ1Ja_cPb38=}%iW%*pHByjp>^!<6ABjGr*Pw@f6q#IR#UgB$5TsX zXm5nGX@&0LPnn=NGe_4UhB*V+Q{iQsl{q~tp>BkqHT1Bt%opWyR4-3jv?C7~U`}zL z@Tk1CKF8M_@l)HKt%ex~kN*Hwb-|pKEoMj~+`CB!{P(GZA$TC3Fh9nK*KRrY!Ry|v z2+K_nBRj@1-;R~nXxir``j<3qDC*aZY>SB*cPqAX7y>~06a4C({3zH^aYpX2WWL9c0N#99@bCHYO)_DhYkU|`6LjvLq3ygW?Z z8maVW(BSGubnN#>iD|mE_K$xR<($R~n7TGH2;>!E+!4n;MSBm2btpVjroHuqVk?-2 zZ#4Ynq960oJ!3zmc@@R9EgzW)Cy$v}9I5UI{{T3vejU|sG<`}7+dG!CzJ%r}6l5HX z6=B>Fo(*$VqN}YpK7ti}nq1o+$sB6R8BRr2yR;>WK4JZR^7UJF{p5MTl}8)ayW816v=EjX zho(O&`Om~(27FcETgBFN7hC4FK4v4~_Kf5e?g+0`_;=&T{9~acz2LHz3*P*1h#`yBrOq(%tiso?eFzALt$yQ4gZ?@dlWGL62e=3!a6 z?NfcL%~w{#4u`+sMRSnLwld|F2fyReuUp-4Imh`m)WuSY_?GDMKO6XL_-9_sYl|zQ z&l&7JSMVqGuRqqU{F}nSVI<(!(tak;cgS01lFuxXy=MW**rY5 zp%DdkOb5)X$oh|J;p356FsE_u zdwnSy;h|$7W{j^!UI;w&HMcf|)T0`jOLME9_{SjxasBG$?=<-AZ#=lveTL(6Kt~2P z87&#(rzEe|soZ#y@+D=H%bnMq#EW>Wu9;TkGO-3W8N&gN$NJQBxaxG# z!&ZZ`*ytgJazh;U>Gh;#2zG)8{{UL3==!nLtqg=JO$&K*1^c0}NFaJJ{@TA3?@@R8ucG=s&|fDa&0(jMI=8PQj2Ne@ZwRryb zdc~8fDc>k-cieWI9Ot3n@&136akmNzw;Q_wk4*HgzU9Ai!MPdyy=#}eh=wJGO5`p- z9!+CWTl z1o7=wG~12y81sTYZhGRBB$Ek8ng-jtG(}l?#t-FOFNqK>;oBb6W$)LHGt<3xQZOn{ zQblsUA&B{bk3dN4$2rI*uCBwwOO@EkxA~J9!N;K|nl7#W(E*Hd>+>Ub&oo*ta#x)3 zQ!pfu02t@|n&EN2=cuJ;bYwFb7tB9+M|w4a9Sf{)VxyWAd(v9D~mT zj`hb@H`MBjAPNeCpp*UI@+sRwF-;M{iYH{*`{?#-%mu%$fc945#{Pe2&q$&NIIAkVV>s70RBrwY&M5MHB9_aueZUko->+fAL)iWB0C8CiXCID=4!g?n*3@qyl#k&F&HbNWy*l13DIQ(LxAzqitX+qjwRdQx=GMtgLoyZiUe zA~xLi&#ykTiIuKD1##=^RxL>xTwwnIPHM3sfE*-XiE@Dl`ZrlKWT8c&LItq5} zydF(N({2n02dCDoi`=OxSlou=xHS81QYdCZTP~*~XwOdFDOo;mofbiy{KNF8ow3~+ zA&pT#ySLksLb*Oe+VPdn0R;OG@TTFXVr6~5?{zh4q>W_^2HyQM>&Hr(*HwM>b?*=ODaHP&;q>tq ztQ$7)U%LxP$mq3CORCeirzTK=?D^JF~69CC`heclu zPUR)C2?Ld89+>*8!agQX9C&9>*F+6vCDO2()$_U;Rf@VEI}x6p2(QsH{71H?y{E)} zEuLjG=+|{H)a?({^$joLh1@t3rs2~oU7nBeBF^j$@38*>wO$~~K|SgdbtF8dMR(M~ z(y7q-&t*|-32J>iXW|=6#RN*GuI`F%jI2Kj`JYemWVTEJXG8i|XQKQ>VSv&CJ?qV$ z1;`8@*)2KWr(gLPw~_@3IjF|>02=CQCuh?^IS5+ z$!R2YLm5r{4#!U)i*-wU1-y~FeAqwIre7awsrRK;9)$<^S26aW%be%EMI@n@ipT1- zrMywm{iBJG!%_Y0?P2(ldz>;t{{Vsi02;PFAzZNk0FQWq$G`a3oUEH$(zKzQvNyPC7?V)S`?_*X9CA%W%h#O!E6_;e zL{c!x^rkoDf0Zd*lh%|VJOlGqrprPwKMHcfS%3$cRgAU);OC0D3<5lp)~l$cE{Kn4 zjY&O!S`l!)Flp_Er^dM>*QGm|#y8cPIz_3LMNm0oiuUae(QLHnqfw44%)Aq){jXGy zf>nNF_-4Io6$+!U>0TZ_rR@ZL4pU2djFK)F%cn4@-TayE>6SBB50ioWDc$9k_b zb`?8u$>ys_$0Uxmq)C|zHZxG%%p;8FjP$8rsLx8yzn61k831RB>!z;J!CHK=DBZbb zBi+;k>Uahh##N~IQT*C6d^M(dj^!6^Tl!k>2o7G-Kka&5l}KiDPh3lim9wyta|34v1!uj5Uj1`*j#ej!d`vt?@ZKqI{6nJu0HiwE!m>#eYzl5DM=Ekxf!?@Xb5y_A_3dj_ z)uw6nE6d3zxsiYb%FauiWBbJMU!Gpn{aO2Tb*$~!&uISug_|AokJg)YX7gBGwTOG4 zv&H60ae}H&-NV!ZM@k*lSnm0Up!{kTv(zr5cDB>!p4hshO&nyRu_UUqV*s2Ur?qCi z=B%#H&$D}-7mBr?4?x};*Zebe9-Xa2ZwI2 z{H}K6r@8*MRxoyg2j^Xp(#IsOoynnJx(;*y0PEtq9|+s5_mVS=1UpobkVwg6)35{c z70$2U9eU=q^gT$}i;`5}B!)gX-rz1ebin;9vV%%jXC5b-RG%p>xg+WqFuE%NG>#)u zQD2k z+I*JsTfEl#T$b`l^G3IhA7IGzwohkEKl` zGKo?C&`PORj|EQ|?0%I4NESGv&A#!H%^1TL@6LOFN?U{b(yK~cT=lw^ zkmHhg^!2Ycv-kBqdMo#KJ3j=);pu+ascWkDmwI`Ptn~fI%DLo%vJf|506H42;!OF` zG*&}Qv~to#X0tr260;M4&CloPDmC#X^J&&PPm^yl+4+Lg{T)Q9yq15RM&<lH^1rx3!GMyGPle5d-c(9G|ULE?KY>CAh!@pTfFr zAK~r(v7p{-l4^Qhlcrmwht9v5vhItK8mg%~nX}e_QiD0<=GtC~Tl8ljcc;fR%O}vt%pQUw|zYev{55hK{Bf3j#Ygy-5V~9?z zKg{gN+lj32AZ_V2yOeN7a6$SLNY~fE$uzP^?K75kk%`{K zl3Be@N$cxX2TxvQs6Kw15Y8E9a$hf;7VGuN$F*3sXHds+8T{(zyK!fId2E(CP1cgo z+bF;LUBQ&ea0v|}jf=5J$IH)ps}6Z2 z!|FO3*47hsl(`uz^AEuKRz!r9iPVMv0PFft`kF_jjlU1LI(@lpkCzzkIW@3k+mO79 zz|dQ6o`dfNW?#sf*(^PO3bbWXHk%ym$34%bM#?shF;elgo}!pOZ2DD1=W??%t?lEt zn&ahN?IC7tbI2IU`U-x~xxvVy@j~4|`M_rK+tZMC{=d$oAnqWJ+4rp%V^?QsF@buF za5<(&h}n~;IUkKl>&LxAD>6u|IvSO%H@jW=Z<<2 z)3q1q4muNz^lqI${Z%Tq6am2XsQBH}oO4ddIKaT^^!KR*fxz96c^rQ_bTEz&R_I9l zc*QU(Z(;Kf@@mbyVOtA>nvpl9k!CzBK|sRv{{ZWgQk4W_sH*71sPE6=R*`o{k@T$D z$19QTJRX2k!5Pm=dCuQP{OUecy$7u{LR|+L31V@9oN?ERhT)t@Fn&|P^yq3v#YT9L zlhYsLPUi4QCfUgN%EanE9MmCI+~}Ta8+kmT(tH>w6O4kcfG~&-k84hTsKT+|w zh;42qw->hI0V}jys4MN9R|zu6*Uxn!4=(JtZn@2M`o)Qw_V!|a@`(cUIRgX_sTF{c z%?`<;w@Kty-XWZ2Tm6!0R8IbdQc;0$!dQNFi|ILooxzuq{hvbL1!p8o)WH4lpv$F8H}0!R_R zOdRp;Sjn|dLBaA>aqePCb1GaFR>Lnt5-)DS(zVMg0+TL+N9gY+QQt#Z!CHX@v<&BjY( zXT%W&k~|J}V~=W~rpNocjyyW z`MR&tqTQZz#XdvxuhO%*qFpBdF?X-k*6boTU~sBu&9z&!-inX5y^&F{?>WRk@+4 zX~}mRhfwjb!B*r~nRu7LvT1&8#h^3VHzpipuY7}Exdfu+K?5V9Q`CKFvuXKq2PoZg zGCSwBVOtLx+Vv)mCUkUrA3I2|2n2HKnL3)3ea+|`-<+dGDeNR~~f z^!n06YLj5JzF7Y81pff~s(ZL)SqzDpM@;=Y^sYW_bv5QCjjXO=X=9YZaI6Q}*$EBT zBsW2idbJFjc$Gu#JTU4%8px5uHuX@FcU*9N#}xIvXkCso+Z9S(gPP}kq3cZ7F~KaQ z;NvXZkOg%5m5=s<8SO^r{{UouSRd#4SCiV`6(FH1PXu(Xx5NG_n!&;}o8uh;9FDww zE7GG`HOn*3twvYpr@8393HYG;UBhX*z>;V`=dV&bXYl@&>+#(@OB1A_;BX!pSDdNj z5PSaspGx`OSS@ucueQav%-fGFo*A*!)xQP&L%r~6Hkyk*p`q@?)}Ws@*pv6;m_dp3)yMXG5w7uHt`bD~@lAeTQfFvw(c*})wT)1@bg zz8*)f*|U+layLbEgP6$a$8dkZ{XJUL6-eGE%;570U}x-c3eo(J6lXB9M#l#@Qp2Wm zk(%lJ58`c0!agXr*Yt^!4NlowCo(8#ZX#iZhE?d%xZs2AdkVtV^eMF2UdI0bFx)Ti z6RRxC>ZYL5Z<$-m!TCmdbM*fJ_1BR&Zy6tT3W`xui_rTEM831R(%{uC1H+`)E<%n(T6->`~3-{+(D>YLwjN*lT4VOBH)38gZCH?RmT|z@a${mu~>g$ z`^0?~2CAsk8RI@W_x$b2nnr)Rszzaxu2)uyIMEqbWOXsfy;X(?_NPYMa7fSiRee8D zl4;vbzTCI*kKLI@9n@za@yQiw<2+-h9M{%Tw32B2^AQJ5O-Qh^E-*4F#%+om0;O0G zYLPn|INA&rf>w4*~pFl1Bc{yl|I_2a_{! zBm?+QzB|{DD+Wvv$^QU9g#aE1IA!D!!4;iKFsiv^Yfhtv$EW!F!?0f5O|0o@Gk!W2>7Bu5-EyU*4tLb=7D%ifzDb#L)@?BUpU9BJPZP`b^ayjM_TFhy?QoOW_I~V zDC$ULJ#r6Y{uRwu6!9?Sp69t~;om$@bk-Mk(u@Ns3>(mjY zBI-;(cQ*kphi{|%bU$9V`GmA?IRt~A2;}f<$>p61dpV+}<5_dSv?blV9!n1O&+1Ad zkdw-{6{R$rK>+9Z)m^Y%Odz^DV36!GbSa(#eg?fNH8ipF*qUlGxs5a`RN!^58u7P> zrTBBLKZ*2+@uS_iT~5_F5ji+nlzI|*{43h8w7c&QUmF|!v&MOb@-TMDy|d_RJ5$r+ zzP6s)c-CkpMn^{EGLUi)`R!eDrlh%+=QTRgqb^x&&O*afiu&3qp>>iOlrl)Y4`1{7 z)Hjj&tbC?bC#!Wo%DB6DXZUa82GOtN{{V?a!QW+Y{{X?0f`{?_abATQ&E%9+RgWEp zN&InB7tFl}RxXR@j>ntoU+7m-M%)bLcMhYTpN%#P!-dJmAB}Bz%SUqx-o`TUWto4x zhp77h0EKdK-6>$ocO!B*;<^*i)}2LKJj-*fvAo?8Ryn}q->rG)#BUEXMm1YS*(`Yy zV0QQ8y>)tZ*e|r4{{SwvqckftZjvB)+-+rUoch%@?IX$*YD*1OO>BJ4s3^6)Sz`o6 zBJUaJu5v#*^?%v_0OBz4pNPhdc_z&pSdc2a9w4~jBj>O@Df~Svnem^5f3fbQx8<#* z-6gvo0`(yKYb_1nKI zTG6D1f{@FO*#vYW^sjOiIpU;`$#E3rmtt)#k2<%Is;Xd|pP9RNqHmdBjmkLs^{C{A zO*ZOlc}o+G$=i-WALrJaCR#AS?esXw@BV)Z()UNJD5qw&W=5#53kL+cput>o&U5)z zOt_SmRp+tkkJ7j9mnuo*eL4RC>;C}ts{-*>*q2^o=zXg_dY+CRUSVgbO{C0jV+E5N zCWv%o&T-SIJc{b=?vmo&WQn)KAl!|PanA?be@f*bw|nFw2-;)*!jt_f{*!Bcr7V!# z!z58icOx*s-OzwN#y=|Fl-=ync$Eo7HvQvT>GxzFzp3k4R}z4@&Uo#d)yZ5RymS1! z^sM{Mjh-+E9*4g*)MrXv8B%vs3FqGjq3g#=qVt7A^I&)N`cmCUsz}C9<}v;?MVl;7 zVm|5X?NaP@rah+T3^~UK`qNrrw*>NfWAW?7SN<%Xe;zyWOe|H2?0EWrg=YJjrisLv zQ`l!6DTRj|XTPEEOxg!I$wX{WI(FkFzh?d?%XAmf~m)}fMZiU=7! zYBrxGa7IYYMa>DCMJLdHVxw-OZ#}&YS9jgls6RnY3?yQ!!1wSfo;DSa^9s5;tbRooRux@}U>yE#N zN{U9vAPgSg(vg1eJb#l=%^+O!&+FgXmGmygt*pjqK;(hI+2a(eFVS(aA} zCSVWC$vrXOryXkaa&L&Ye_oZMmC?;8^2+06VjCo2boQtjw`T)ye08U@22~*7etpmB zQ7|gRj=c}`u6Y|Rkk^=u4Cf!8ezh809j(|acg8)tQzdSLq3P54(<48;kq-fvcjcay zmyo3qvaw)6=XXEOu{9XlJAu2DBd_OM5`EGLBx9dnddk$-b|eQ2)1StoL#C|C+Itk5 z8CgOIsRxh!& zMRjq~aJVW!_5QV98H6(|jlmy>9Q5O@O)~``cR!HpRAe7@x}4*lYC4e}taJ-7Wehk3 z{VImB519kxa=iZlK55o+6A0%lryPEjHP$4J%P!?37$3-2XT<}SKJ3m*ZX^uH3)9oC zc&XJv=z4MKOqw&w9sno*0IgOn#`w!9$zBiZ&r0+4)gHTgT!!M^?kuGM@}D}KbR#_e zHI7(5Bze4-<;G4o4t+b0mCxKpZSN+FuRE6>hx{uVi(8|rgtT!IOl=_koohb& zFwy6s2bTQ!=~wt=0B0D-zk024yJgs?+THq*5sP zWK8}%)Ls+0X)ms-h6lJm&x_EE%w?SYQJ%DSHf-~FG(nl!DsJlFEdoCAgg55l-uGaO_{2t57nM}C!Z#`)pZbjyR5 z^6nIao;vid`g3+xFs&6*Egx4R?Hf#)JqNGhQQc^;YL@pl7sEE!Q8W&%*9-^;80*OV zg-2&_MYK$C3k)1`d8-lKDz04M_btgid)AXps~;aaZA$%7@;0fX+}L^6*AcXLcJj0m zZWuX2RODl)1M{p&BXv+2x$U;SqvPI}CZDUp;tNDsZ1n~5ZioqQILYlyZ=8A@=8eI#lkL)&?l?Z;GtcQy^ZsH~<2^+~ z(4OLr!*+Uh9+V5zouu3e3z`+eDI^|hHEb^fC$CyfnI!l9DUZyPJAom%_55nIjOfQ0 z^s5oC%h!zlG&Et9fV_Lv6LF$V$~uG6j23KU4nGQw5JqzO+0z|OOm<|HB#y@v4lh#Y z_IZ0Zo9z&UiFY|;j`+YBXF4Neckj&OjgHd-kXz-Q>7vH$taz zVh>y#4C0?}FYZ8R+`R2x%aU>c_pKvg?pt5%D=8;ciu+TSZX#z30&eFds3ozVdZTeY z+`lTEB0g#|_l6NjM5PIRqXv-yJJ-oYj$oN-pfe z5)+(~Ph9mh^}Ln@D;)Af8>*ua57xTPN5j4!ipJhsJ#nSIlRj;mS+cAc&jt5<*}&*K z))mH|r`z)+*AkydRaABLC#4*ck5J}P*yuhUd{^-Y!@J3+(WSH#N}gGg>r0CD*PMcd z)wYrC>0elUBk>&G1<*Ag5`0tfJ84&X)zmY?r)mWwxtDU469^P!7Rc-X3*6Vo8Xt-4RU4c}-w*1awEqduht$X+5?BDhJieq?8n)PP2M ze}#IuOhllSrLW+4c>D!CLU&eAdvE^$0R14kwF=MW$Q^nH9S@-%#D6-@V8bK5bAJcC zT^EXcHj%|~CE&A2)ovcu;4d34P?chN01?6LE3Ud+vBx9wuh8jM_K~_j8?T3+9;Bem z$rSE5sCT?fN|L6oNV{{6wN^zvde*lwe63na5c{t=%_TWnqTR zVJdNF45`(pvF$P6ESSKpOIf!l#d&_8ueQOt@N06*#Lo@^JI72{1xi<14xM*R`^fLN ze7^qx%8{f2K<`+#TFAQOoF7WkG6u#g&XinTne0NMsJWuVnE9B=$g1)vP;vFCkIljQ z)HD6kI#onmy-Kq%3!a9vFD3y<>M@$Vb&b5|A4ru?3VyGA+u74WUc@88&Pvh%O z18z9YFQCWcQbiu)oOaGBn(RIZ@q&8#RM!pif!(?HsUbiCW5DfDwpv5nboTrylWt}) z7q5D=YPp>UT>k*|>NSs_L07c9V>QBs8;)>4T9+*~HF41+(Yynv`BrZ`51IHJdJ|os z>LNHMwuywD*o!dM#8-Vd zo<1g8*%hXcd2%u6zSZ-^>wUAtI)ula(vm+iE8jJV{?De|J~6ck{S9~>lx9o0PeRR{ z_Udcsa53dlk@0zyxuqEOB>wu zwxtmgK&qgYZ0*M<1oYy+HT+2b0BqManV0uzCET(qV~%8F>0T!h&-XOa>fh*n=Kxb` zz9GJfKbh5hEL-30crWzd8C!flnqAh{8nx8(BxO46D-tnb$m%$*OHhV8d;8b~qUc z8oQS(khx$9{vv9)W4EXzcgHo)Qe4t(=%*BtNfzM&s5@80$lJz!t3{W~$G0_~ZVB2k zlULcYypBaU^(@kb!&;CR1pfdR)|rBX<>2QZ{dy2>L<1mg&**ALjrNU-Sf5Jlr`YGL zx}pUIag&a5SMBlSf>+E6`Pw)gI6X1=nw@24w=25@bLm|)+SKQ$ovdt`3fikM zz<0{$um?D)mBe>40!*r>gAYA@YKNclukn=th8%&B$i+TMBbkh)$C-|Nwj=Wu(WBVn zlwQU5Xue!+4B6wqKD7nGg_)6teTG2YiliDGhfu2h@y_nQtt^bP=O><{j`dN{T&8}v zGku*CE3`InqaMEB=ZeXjOb zj~Brj(bOl>>~Bbgpmm!dm0&?2)@e5XDJL zNJLPE+5>D*I8wm$80Mcd<+CT1bGOuflX)ekm8pjFB3p$JHr6Voa#*SL91gyf3bw^D z=K*-fZZpMoei8Vk;@=49_nIz+d1t0tP3Aq#(`m6ua21BuQ6qv^Aa)&1aggu=^zGj# z-!%@_New5=+eD9c&|6Duysf;hBr%in?f`(;^}#=#HMsB3elc6xFO4;S3hBD7hLv#* zl)9P-X1(%Nt|Nr2E5{p=n8OC-uRK-+Fv)o`TG?C8a@fMGQI~eWB%A@B06ItIGk z4vm>u@^RA{;-1g8-cK{kbCoF)oCf6QKSA670IyXRW$fF&gZWmrhpDEIs%hGa#bc-# zC1z_&#b#B)kQlFW2@E;M0+e^N9lIG~^eVWI0P-=(E7y-|8Kjv+C4AXka1?gVdHUA3 zjXYoo8ycDK)j4TQuQVktBgY4EQ+79fe_eQbQxF@cqX_&-JG5eF1r! z7ptsau)5VQZZ2hb)ly5TjEq%s00+PM0+M;iT>a2RjEJ8^-*sCMokk&Y@zer@1&EA{%(x2}7Cg=;N>JF|a9eYUCG z?c?+7`d6Sqi4ZqJz#nc!dFG4q#~&Fu{-(RVGELSIo`-HfD(}L+htK8_y1928V;s>a zIL}HIyLX|zPyYZ~y&LpAE@jxGcD`l2tJiXnG42g>mW*YwkBl$?W3NM9Q6IYmkMo-4 zqlDWu(f!dJtUppm=~C`%7w(!`4;G^!f30qR5^HxO*ENNs58b~Q+cPNRjz)9S-nN@5 z+a{_zB5G?U$8H$MQfO8yj2wE?cMqY>IdRFwYGKRNgHTU0(n30ck&jWx{#3&zQ6yo9 zWd~>ko<&>ZZzCh8;aPfgW(#+S=P4tp?oJqy&(MksiuZLV^9vD$#(%wm>rqGxA;AQU zkf0uMnwx0uIHdcmaqF68-DpL*o;4xy#zxWW>S?PU8zl4Bp1u3g9#<*TYhZEsj&bi& zwmmR3U;myN2j5V;&hbdSow-N0g-|~IDLGP zQn*{AG?!swqmKTktt$*?y3$1$+FU-}+#chB+MM4md-_rhI}8U4)BI{^+n-E+BBSH0 zXF2}>8j>a(&e8dF??`XZw;L7Zx_v6tdvZdY{{Xwd?^K7ULHgA2%oe3Fh9>V6W{}$Dbg@j=s@ghq|BaYSF_y*`K(!x$pC)=h+^{y3jxcBc}AA~MU zULcMpJjuZPjc`zxEku0%jtzB5HtWZM-N?^%nX z%&}{BO2_4sd}r}dkJMG)7%2N?jF`Z0-Ld*(9liemO2oF9CZ}aKIF8{7Z>a$P06O3C z)P7tsNsN(j-^-^;f6Z_=CnE@;=E7hwzY&l~_-X$omYF`0D0I?Nz6Xe;Hcds^M

    MFZ@nmnhV`h9BFpxBPX)9i7N(x~bUw@NFFZft(Js*hIBo#l2$ zC!jqk?s5qO+N17i!!40qN!^qaedPLPtH`;}dY30^Z za2s;uw>3@~q|>l49YO1ij{Ff?vPKIMIR>lCZmdXd2d`TCiAR}ed>uNDF3pgym2o)o zp;WhZ%P{I2xasRwA&<#z(ehW3n#nOuXDc#tzoF~Wv~BM^@a!7oY)Sz)_kio{c&{t*7lvok z2u0w@y7P&T+Bb%+SVJ}0xFkB~Q10N~>0BCYJ?O#P`o+X0oMYg@srGM;;gSlXshG67Z~! zRi)$--0t-Tw){7(YQGOJ8tT(GT4l-1_KXQu9;49p85Qs0@eZ5vK2J2t;h4qAD^&c? zqr6GsYd;=nGUh>TeG6`eWdM-)U53MN2R@`>?v^*4mS+#Bx4}skHWnglw(Z-LvEknk zX%;hF#jV}j+ga`Tyw<}bazO(b?buhue-C~m>b@P-mr&5JCD8BPJh>X(zDd;e+=OAj z8tQMg%bj9(y1JXrxRHyzgaNpml6d34YWc|Iyp!ir(E4fT>)CQj8lH>sFIn)23VFtaG?*z9W|Z+7Q*YT|rF@si)eej>Gs z*;4XrNkd#GV7(bWxb&~0p)X+3@U^2nY^BPzJwj;9#z-4+$m6X7Gl7x%8ol=2KUlE0 z)-<_%-7@iaM&09M)fjdlnsJ6NEC9`%bgzH2K6WycWY=RoqbNcCR2-v@J?g}fg*fBT zfA#7a6Kso8%TJkHv1N5No#IOid2$2859CLsb_;yIB+#x_7}VTCpT0sed*OieKmBUq zH}j68J!*RmN_`&iU0c4_#@1fU4^V0+6)4%A)MVn5>T?>Fmgmp8wnLodg`^Usw^6w>&s>G1NBkVHaV_CRMT@YXN*SO*bkKT=Da$TWf?gn zeTEMju@F$6=(neMfWmf`${s<_UvPULPw8Hz;ZKN>>gF3AT2L;V<+i?J0?XJ(A^z|k z82&!q7}l+3?x;6JPe3^9+tRMvUdHP1N;ji$eSiAL{PpPn0EoFKvC}9h>l5h7qEBaf$+bKq_?+AT|(ifg#cKmW0yhMThw}2W{hqSIN%;f z?;U%|Scjg~Dk*H=i^Mfuv|AXF&HB%ehC`BnW>;1<26s~rPh z)4W(BIC!B`41=!-PEpVN2p$D<8V`tN(c~zMc1eYiSB$Q6kH?z#KMVN$l(d%L%a=pW z$5_yAi1a16>Nu{4RmL}sy)1YV=EGIxtE?W+vGOm)?*!aydOVib7R?3iyE80uDOOeh zf~4d8;=KFemyNG3CZ9;vPHyA*S0I9MkVn@Tuh377-v({`MPPMpJtUUpfHK1m%p_7W z93IE&YxBqAwvPT4*Pl|cba8Jc8dy$2Z?0Qh{zE zWh=Na#@h02Z%dm+ylA#M!dSF>mmP9(_!@zJJzql!OM820rD203uJ&HMf=7R)ak{68 zuXT&ZxVpTOSsdi^Dm3EN_byQ;g#W->)_0 zwpx>95`U-bT~?E-d6?$}aqm|bXLDN6aZf{M#o7Y+gGrj$U`z)181aW0AZO7309yIG zS+|f~NMwk|DmKp zjnGVRHaeWEe@gbRgMK-Z@@VW?n9LNbu5tH4A@S}%l{_VGUvfle*&CUL?QpAZ$8*NO9FJUJ{#EKbCX?9w{*ET9qUj~?$8SSU zPlNjNMyYbJTS|Jt=Bqz`pmaY|SUQJ+?YupCt9x3QB?)o-J@Al;|}MIUr$ zk%5mwDu%eqs#_QxIp@}{br;z>u=#y8H7UuqYRM>(qj1<(=OdBNBCAc4^04N!vi0GnlmnA3VBvI{0|wbMMpg3{{Z^x z_0tW+cj;O4zifVAjZ0?B$VTHl^Xfj7)&w~DaysGE{{ZMU63AF_ z$MUC5o=!IN{xuHmy*VS=vO1Qen~JgYrw2t~Fx@{IgtqQ_4CmU7;ODUHX!9z==5kyG z106s5=BmiplLY6u#~!q@u*ez7Jk$)`k3ZzpTvjCC!C|#__0LZHRe7Y~0m8K_H%@r! zan$wiRVH$+_m>&R^ZcpYsG?|O9&jgt`ubLymC5Wo4!Pp6Qed(v=g{Nvt#os^kUH`0 zR|aKLI;L1z4#GZAI}CB(tujX4oOH&0DTR)DWOT*={An5YbJHAu`syS?B9Xphk^t_# z&;J0fqgEbp$=Wf=?@2T6YRX~A`8Kg%>MJ$2 zqh;56@6R8P0M(lb3wev(T!IhdSRFF>Zd;j%;~CI)^$>q%)os{kT#yu-lhwnEY2jyK9-i9?} z%PXAzp&KRKg!Bg>pq^_-REKi25&Ssa&65uSYq=}v@#ip2b+eBHCx{{XK< z$fdK44*mZC3gBm|w=v{WvNEs(oNnz*Z@tea*R@%=LFN*2PhLN*MS$5j1NE*Mb~|IW z#>2QV{#^bBuSb;x^PKk_epNwoj1NxP?^odjsUh-uliHkn2$5LsJAfOx^dJ7J+0kSz z6!G=yao?d8j5lMb2c~NFnJ1Sa1CoC}{{W?JPU=V>!pfc`gtn6e_$A|zt9pQQjMf&L zA-B}wpExMlC$>2UwRU=qpqoXxg@+|r`|*?gD~d%^Zyd#VJQepDAJU4kw60+pX=ZhI z?DtVL;F(;EF#uslJ$U+btQ|C)eNtruD&IB_1HW3>v6<$xR(1hdakO#J5sYH6rf()- zw@q;*XlG=!|BCVqP=4_f8*`*OFT)HG|;pT`x`%EhEc10{xfaskh^ zWoytDv3JG_^Pc=?KZRXL^F(X0j+raHR|Ng`#(4Du@}~#$G7A8GarNs>x6j$e1_A#7 z>-D2^3=h*Em2j|WY+tsKf`A5p&wpx?HFnCC!4J7dV}qVQDy1CG#{_K$gWK^HBh2v= zlb`Z>R*{{pV?I;fX85J2>9$}Cd8W832>EcJ?fyWDN^@@leC_L=}uPmrqM#TPPD9|n!V}#F$46dC#c5b-?c8)+ClkEKg;XfP^;LCkMq)+ zT9f8Aq2v#4zgj%6n;miZkHW1q8?Z>g>FfFX&|x09Z1w*DBDGN}<#mjXagaLu&?6(K z0Q1SKO%Uk0G;Ll6Jw|_}ONff$KvEkcy+3H^4o6>Vl!a1ow8rJKydIRp)MwfLUF2nR zjCZJ{UO`?5_kTLHakLJHt|}%{Gmb}EB($4M$>Z4d#ajC+mkJvPuRSWG zW6llN2R_wd-N`3#_1Y=L+jJvL+Uas>WWC#3U&eF$#VnGqJPZy9$9k)MHNxAb`_`0g z$|^Bs+sHXM>MD$$Vxc=c(oO;ckHqm$w^vk%;4)`EQ*`Ud`X6fE61YDt$VJnRGm4Z- zWyVHN(z;*mPYv#y&G55Eta83h`?lV>190!|YPP?vcz$^o`y)e}Oo>x#39dZS&CkpZ zIIX1x6@FtLXM0%Zt`*iI=^jY!l0KE`&#Zhj(tIIo+CGh}-FUz3sOM0;xJ7~st_dp` z2Xd*-Gmh2fUuoP)A4+PuBmi+rokvgMLa9nM5>h^*{h$6L_>;sE>NkfPrT&)7bE?ZF z(>46sYZI9SAORvm`P@`)K;VJ5n)<5R>McUpOBq&HQ0i2IFh)TKxFZ$$;qbQW#l9Kw zBpxpCOp_;wJU&I*2w^ijD`g!_V0`hilCHhgj%)94hCU?Iyno?XyhWyIr$QG~JUWJe zcMt5lvGXz}NBWmjy$5WO+P=Rj#Lmt#KRx0c6k`3YExMQGPM~_^)mcV6Vz%xre6qtC z$Kg~iAp; zXkPVQ^H(scoI2+8NAc+HK|!#E)156Zj$01xV3T!;b4fBwC2SEtObhe}SI zmG)KcsjZiC;;o?7Qpca=R_)h}kMq`;vGn6V=e1ZY zA&+Pr^`~<89VRibamO_fUzp~RM(lScq-6_|MhN1Innz7We-Ir{O6$BMrHL<*h~ONb zYUV6qGfa()j=#?p>AnxK+Y?C3gZ}{Q;<)h@IbwEU>HA8FGFwNC=3T*QWSvGG2M(s$I@4WhNFl zR$nc+#?#w9yI1Djqdl6mu%9Hc$`#~{WaFpwubARDXi>MH=zg8RS8o#Kz2o|x-QZso zczaLyTYKUCJ3+P9JYlFK$1IxFj9V?E!OKBAzuo{2F`SWJ8qKjvV*q@lb?K3c^*ux3 z{(zqYZM;`6iFfPwR~}O6aog@YcQ7u`)L>h>FT zT!Ke3F!Vhu<30IW=j!y8ILcCw%)@WqWkqd&!ou-Azk}Dp7Mk4l-X2+`xN9gvseK1>Z*KQ?=Mo!Rgq;RPa2-ig*Red+*nCl<-1sJ48XXYZ z>(4)#Hma;8HxYxBj42Wru%DD&dtDBFOeSiA(R^76_G5$?hR{6N= z^sOR2O+-72dhPo9*8EExHmmY(J92*_YnoXLNVw;>=UbCVVzvYQpXuvfl?Q9Hp0s(A zFlODk$rvQ$erBVNK#U3N(;ey3F>Tq&IsX6}ho=Bz+ZC1CcO8>OzqLGa76gp{0C(}B z86(SOgPwM%$US+g%5ZYr9QtuiINiHAJ#$*~J;-od7JTACU{n?3YXT2`l-9UBdP|8WYj`1&d-hgkXq35C3QG{Ut1>9Ss}y^}YX@moNV7h|89ij0zSd-_&Pn#Ir9Cbp7sJPzwF>xjd; zGLk_@BXZ{_r=@MpO>A>YH5)ol68J_R3ted@O-e0h+VbDem8=obt(ZAiiM+)hIKk=1 zBD$Nu8EBppy1GvUYL^xkcy&wfEu+3F$jZ^P4hT6tF#m$^CqRdT(v-lcoXZA~p}2bS#zn9^~bs=4RX z;9{h*gef^JUp#K-^QXfS$f`)e9FNYlEur5gNXhQj+Qw6qPa<9&A=q!9yX2-dWe13`e&cU zv?PQfJdEQ5x%$;Tyq+=sO*t(riiECe=)-gn5z`p`O?Mhc%csOh$5Hy4;`B(5*<&Z5 zALCu6gC8LQ7#&CJUAT03c=w}4u7iwS>^s!OFr7Uo~BbMacasDOWd04+zRf9CSGu{0&a35d5ow z?NV=|NwIm~l5_m3rQ--`;i!~Hpr*YdQoxpOuiUx z1a#@`P7Vfga6S4|QLx5)dU}0oIh_Yjm%b19P()L?D@njT^MEQy*>_~*9CWP5obL8s zo|PZligI(Fp8o)yNxv?ZIxYJc9)s7dTD4#@#WF`3tQc<#+lJhr=kA`lt1;hsXs!+q z*FLlv%Ab+Yd4q0NqIT`tszY|NFHxT2tsj|l+Oy_I9HD1orN%^rk52tN^s2KdDtX7R zHF?vFk&*PO@}8j4b9mWXLmpdk%aRV^)DT8-T~){3U^@Q*`s)tn zGa|SHJ^ujDwP82Rnd@Qdd+DBgCAzBQC zdv&bXe|09|>z*se_+))z);_1DYL}jN@P~Qs-G@Cob*@WNwI)Y!K2|%2;xcP&+?n)s zeDce?80W1**5Ye*iMysV-=6jCR9w(UlS=SzBzArZvemRJxh`HiIfM^!9n_3LS5+kt zk488jh^|V_nqh3ryAPJHx6!f4{0Xj_NnKmY)Y+|c_+wq|8kT#E9uWtr1G(a{wGBc& zL&SG?$rqDtG{#8aTw*mN0eAzTAE~b{q~9`48dK)gHfq>_+I948g@{iKn842C8?Rh? z3c}Qv=2s)CfCtc!b6XY+%?;3X^3j?mMZn1_TocpK)^52L*wX_6Uj+R|aa+{)sdE}a zJhcopj}XdFEUXB@$9(?)O6ojd=1m^jV18zoe@-w|k=xq2wHu@(95DQQ*6yj9yc=sN z>KRk=3_AW5$4zrZozm!YR|-G1qCTK@^#;Ay_E@+UzAW)j&Npcrx#{xAzvEsRAm6Af zV}OJ773d!Yweg_%n^~F4fci|UwVQ6@9Y_HB@Obv9!s%HbNt0Ai#Z%^XN2LDHr0O0L zvyctK-%w$nO~`-3zIK!SW_`bcB??vBe*Kj^x5a&062MzXa@i$xrLvy=MPjq3)6!>|^y zkJ7QPnB)V`^y^&CR!7TpDihbeNp8EC4)qe}nwsBov2ZdMllWIWR;WyhWBbSKcYbvl zJ#k9kGZK29X}pZozO3DBdfwf{@y9fboj@6UeUog4IAKgBq+PT$Z9^yDF zz^%JU43Us}VzTLDQ*G1*rmOB^q!YAcp4C%Nk(xF_auAR+*NoM%^T;DT59dxjj3nG! zCEK)|bLsy8)~N1u+ih9~hT(pH;coru=jCv{u~5jza6Jt&_Z zm|@DuqXEaE`d1?@yFz~M)&mC|dh?3+ol+FN)0oV=%8ZX{@_lmJIOLsFaHAvjuNx7D zQ1`BT_#9)zLepBKmmroWr+z<5cg}Ed8`%EH93JXVTJ~QH-%F`zcDFL%Ng^v9 zy*Vd6YW?V6vE9J&q}I1cVz{=ILq{r+(U2dLEl`<}NeH&AHRT`bnir1*;J!WLr$0Ze<&SY&k1rFrp6?k}PBn3+k_Qjb$^^GiCGmvwGtYd4lQ zNbXg4Y$O~uJ*&k}!M_seI(66Dw8MWFo#w@4l14son)@sF~eq)pqw02JiEajI=}Ee!$y()qfC_I>do`Dy~p=hSGwtX z)t0+rw|ab@WDV6%-cyc;`B$3!T=30=J`kJ4(8O)^G?q1E5!#aHyDxL@F|wJ$cD((Jy_D6_(fG^uqVdO$G&%GuXl#5bpvt~f{{UikmhRy@ zsgV7}IOHe?9A^ZI@$F%fYdIj=9T|4vhC#?YV;w4{iE|{{gz!6VjUCWra(12x_o*&9 znU}S7Lk~`zZ3UspR;5K%Yq8*3=94aks?TcUB%RPm+zAw(2Tr5~`(y zbM5V3gYi30icJ!0oMLDdq(&I(KmB#*8ZG3LB9nmF`^q`5GN-vKBkbtQ+tF1zoejOa zTeHU}4y;wV$QbG>{+p;ZuB50=B9nl}``y1k>r@o&l~c9}{&d@~mJ;KJUPW5i{2nDtdG|AB|*avplx3I~=iG*2HXCPJf7VPss9I9XWF& z#QamCzLzoE%x#j5jC3Spr%_ox9q|O(4!LcpLCny&C3*vbepBp5Yu5Z}ra^V!-CE*B z{q?CyB4L4oTWKFcE5cQZTy7mpVEgs2F0ypzbbVGHqQp@5{%6p7uzdkg4= z&AWBV6NW?n(zZw8T~@6$rf4r=Y~0x}k~|z1OysCOqx@^<{{V*imBVRwaF@(>lBLWb zkGRFQFdob~Be@mrT2<7N+D2KjSE2f5z1%ftR+8pFGtIDY!Qy$LxA~sYqxhr#5^W|M z+nJu~Syw93J2B%ta(E*jr{P>b#L1vt8v5EeqY~Xf@rED}t<*P8#CG*H&gmNE-i4`N z+1fI#yvQdg%bl;>uccvlyH>is1I?2=jt>>r9ap-KI}er4jwwzP_jh09X6g4$b#5-@ zC9ZB1G_2f`z+<1vscV^QHyjQ+_4VLX+IP!q7#%bHO;*&H$!{)ubp2}<_dd2UwM340 z!upW4zhq;!DTkJG-z4DvX1bEwU@@>hYLYSEf<<|}60~zGDZy93{2IIa>Do!7nBY99 zuGr(BYN$)0y=W-OGNsMHVn?qvMn~L8CkNi9z2kLeOyv$oUwWp-qjKhVah#e%mSM*q z;ptTbj6pf%Q=@Y3GJ4X#K{C@ZIXUCjn9dXs2XFD_nUl!(BAQs0C%6?TrLhIm5g9#y z$*OrIp5s4_U70~z&XLaC^#1@RrL%f_5-~jbif-e_VTz5|mT-Fmifa?Jb4c8CNI5yE zWMR8KO(AdHlkZG+K4I;T{=GwBIZENV!R!3^s&l^O;Ai@OpZ>i)nC}DEny(=*AyRnG zD87ZoYD8Gz5W9Qy{{ZV&)H4=UIKju)uY6VvnOM#bLyFV0k-UZHsOE}t)sa>=S1!uO zJbcI7@$XQyn|tJ+PsjZJG}dFbF`RDX)J-8fvyV^bN>5W5q4GbS1{v_+7AA{{VNVuUh5gV;#xe*E!>X-y@}UE%OW>jm2`h zmKOPd80R0(vaGtB;dMY+fZO79jj^F1LlVL$z5PJUrI&JpvXT>y`S$++_0&a)&f+~rKN_=iyJk2z_w{MvB0D4t+`?>cOEI%vYbk0AWL|&$)qw=mt2RQYs7G%dTBxn7ep17*t!v57I zvHjpZb6f20D`<3*$|SdZCS33bKz*x;mLIXnECn({unUjJo;p`wYx5`s>a?2MBy)nBP1A~swmIQ$HH7firiq8Bh!;oW97gHKmNK~l?u}kFnrb&)MJRwe)nJ2 zxIBc#R%BpvgPa<(c^QeOjYl&_xiT_(=OUqQRlT}Y*BO%D(qhEOzaT!VIV$Xh|TkD{cG20pp0yR;0)JpTZbTg~$#ELDhV#T!xGJoZ!DJbkT&1rPf$j-eN@T%Wpm!FZpO4^6!3J*h5NP}*1 zT?(DipEaF~53$M4QN3wJx!gFxu8s?M*?C^oEZTev{6DYOtx@wYnC3Q|^yZH(qYcJ= zD`{6A1NIM-Q7L$Sjy{QQc@Rw&@y=GNxOGJ>;6qKzVG3lpIT<(qafC0 z6SEZn;~%M}HXn|i=x#mvr2EQ$I(8kd2R(DgN=E2DY@W0L3X_g%NWg65bgJboqKt#N z=B~pGUtwd6O5AQe2VMZjdWLlyI#Vpzyo3{wql!>`veeD1lH2Kbnuu5}qw_9|m{>u> zK0(F>Lv*w0w-Q?1#@6={osS#f6(guV^=jdK$iotMb=*4lsPyZP?6$d;A%bS|ih*$w z$OcbP2v@_?$@1$~wNM>TS|D+orXZcFL!x(2#$T zsuz%^NCOAGXZRadx$y^sydkUJznOh`VH?dL7~I5QoPHJ3>JhJ(oufGa02=)YoUW1h zJ$io5q@emUladt-a4}2^^8f~Zm2Tli^ZC_8`^L99u1&`rVt{^O+)@r$gHkGvl|Df& zkt}(wC`k#@sK$Zt4QbmT+C@V=%GW~e8%G#DD{n)%+adyRLBOn>bgQ~y+b|-qmZ(Zx z@mD=VPrCa=V=dd7o@NW292&^bd4-$3XztwEHRMfl%EzfnZg9B9B;@p}vncDvYTTXb zo!844rx8fXy!lw;r%KDXV%g6%r8@51PdKV~v50NUFH(A%?T*I-(&j{~<~ZX3RC{+m z0OF+k*&V3`beA1RLZ30n>E4mPW*Oko{{SqM_cTZI0#B|gOG{Esp;Vk;`u6EjGkJ^@ zbGwQrC76PGQd*7jGajISjRp2MygOjiTnENN@I4P&^<5U!+F7D7!=IS`HOY87);*|k z{5!uI?;~BS#dw&imzOE-;3?TTk5RXd)h;SEH7tC#E6r!PiK9`pob&lpByXG4Q<=VB z!mG%B^-A2AofNt%2A^zt*sHbsJpw$Mdgx9_<*T z_ z5{@^Hq>-Om>9rphc!ycFhfLIbL8@vxWwBqg*UhS`}G}M|a8(Y;9$7m%jyv7Lm zNhF`fy6Ey#gPfJ_6TMG$bTEGK4mb_-dY*a5>rV4FvkkP^;|Xr0b>LI6j(gXhcSmDF z-a^r@JpTat>eP8=0GxZ(OIF)&k=Cuk0mmI{XzVMNW65+Sus36lzsk1no0eVMiY_{1 z>DsbkjBbecG6DM5wxGsIW+$#l;8%Sena@*m4nTSL{HcwF<92)W{#$+>z{HV#1R-mPs1wM4ZKuyq)y0}TBQ z9^;ywV+4v}<22F}BW3ocY{vuX?^9zSQHTYXYa~TYAkBMweZ-a+ z1D{Hfqf8tENAjscj1k(QW3-Yhx0Lc0q%)^M(~7FFjGT;+F3O+ z?wLh|0n@o8{{Sl7b=n3$&swK87U1B22>!Kk2+Nh(74*nn4?l9@e8NYsBD9uiHf>m# zub5_CaRpc0rzMtb$zJ*8L)eMcdAnYj{zeYZ>8Jr(%oPL$%z99ICuj)~-pHPs+$nulqLHG<; zBhpoewf3ChB-XvUc3;!{)VA#OTt<{OuyP%?5n^`t*j^0 zJzpP6^4pC{;_Zle2h9$dY^HM&(wZKU^wc3oq9aUpF0|MlZ)t3xRV{pCyLI=`TL%f z+lkzQbKa^+GvM>yvXkg~u%MDm=5^(G^;TA0yVG_*F`kv0$~ig3YWS0jn|II5!GSfH zdK2EfijDIhLq=DMIv)?o_KiMx+~u*gd;Kd%PgYxGkc^{zr|`()x$PEajzSdR5tI7Y zUmPnPoJcm1h-c+I*B9d}c(nfj5?ZCd5lv{4 zmD_+A5(waWit8=%*J_#Ln&fcB^x_aCfdkbDY*)y~E8Q+^dsVBi^^f(cat;kP+_x@Ll(mu7%*X83U-j&r zy{i`azkCP#HLT2hn}7P^gZ}^>tV@%dhd%YR$wHnM3F+?c7F4>Ckd%^!(I7EON@8?MOM`#D{?7lL zcYAlX^FGggZr{(ni`7(Dz{94(1^@tfN{W!z008p%^XC>!^yha9si~#s8>)?rnhXF? zmyGjZfd&9z3)#uZX}Z5wkY!MkmlNa@5ftR&=jHs2+t3c)QjAX(oXh)ImMF~>l{Jq4gR z01z$>4YFi6P~=SHfQ1ByOyV2z&Nh68+xwR@QVBhPzxkh94MBVW&5VTI^P5FuO7an5 z3H==KvUVEjPMg$*ILg;V$uJnU4@c`dS-!(1XMLXJ&0!$8( zG}|Ae$IW>FarIrE_<^o;Z2_jQ`!_gkI4YNyja88H?O*Who!sT)2g{iSz+ZQ*oNQb8 zTznKx_282;6>_rnD~0qAPi(l{;_l=}-_T<`dD4*qADFvhcs|KPMoU#0RMVQ?3=_wo zWy(fL-{fcA5cEBLS!_*ub(By!cG@me8`9UYFBUL>&}b@4eY$ z_n>M6;K?-?XxS3ok@{gU@nV(s7<~gepf#9l2xBHikoSz7@(a^*hc&}KyPyOR9!F^O zr6Yg_*ixZozz{;9Xi+>bkgOLfo8rTa1!S!JK=cLKPI~DB-52`SIK`B*;Ws4c^74F| zs-JLv(33`P6r~mF6$%ztXklpPmP^j+&a%J9{sUBl+82#aP3!?YI7KOQw1=*9d zdkuTQOW`|G^zcH<1imDSU{xAc(gx%P$_DD0B#}tU!32xaI)f_FIhw;byaBgwZyor) zWBU{O6ZxZwB?X2vZFsnR7dA5%SC8T7*F_k)u({~F5Vufv5UmoPBoGW-oQ|HoyMYD} z1Yt@g1eoCUpG0X1p(pbx< zG)5n+bE#uol~HR@=mT+8Jo`#yI-(d`-LGX-qEqalvmZ6x$gjHy710rq^KEd8KS$eE zAmJQ{*^pb;ietZLw_&%`iKx(cr`)c)Kl_bosBsXV*%6FR&4 z_0??P?96QQSMRTDGtzb$b`kbl?~kU0E6+Ue9g{|Bj&o8)qIZ|)A_T_4OkjQ6;~ARC zoVn?_^O+yh71N@{e{`~Iei!CebjsaFTz$dU9a2*$Xpr0eGGQ5o-S;tNqTK3|uhc`p z^U;%~?N3{H+bh38KP|sVzu$h>msoe4kIav>cb#|I=%VP1=xFHG=*@U%QJj4weI`+l zQMHK)iEk4GDLg49`1M}l^G*mk33S=Z3c3mzT2Gt1jgwgZ;8%OK;^?=CE7%~U!dJ;h z%^y8ZJBGH?J|4|ANv2LF8;>4Otx7cWF|*I%U6Ro>S2!0AS376EA*I2<8^?x&<~v(Q z=Uk^1+rXiyx5T#EwlkI&mDQPC^WO)rmW|=X%SE`HEC~iSAs^E%q251uWc>lb5Pwsl<;K z`wm{*Tu|*MwjQ*)86TRIIN>%!nme6ddz*MC`G?=55CjtBDSRA?DEn$tu`2_&F`Y97 z)#BIAJJ?()U%hbd{{?UF_n(a3Al}yg?Y^cD7g}uo>HPz~>KwWDBDgX5!(YL_)JR51 z%ON`z7(Lz{FEUG8xNE3kzjODG#|eD(0+lpi?iz;88#U*`MdDCH=!>r zGLSwAivXtLq0>Fh7>KU z-|7#V#?8bK_j?XmZWeE5ZO)r$b7bRLWW$j=7JC^Dvw-oKsJJ@a$?Zx3Yd_lTh|jTg?;C+{k;K za;^g-)4|CryDOV3=~Bm0`;~w7LV~qZ0wp~q!&OHSSc-Me-}LH&Ke}P8A+F)eXioZX zV?h>dB7t{ui}CgC1K>sYY)C((-jqLUGfn&B1*?$gwPK!I9*BfEDBF49MYn0F zQIE;gn}RprzMFfL?EbjZovbLS^wU4AvO|-=zr1Gce-O(DvTthi=`iRXjX`UYV}G(X~^p`N_Cn_uT|~aa3Gj zMxe+&ogh@`DtP>^tyQV`YvX=j(0b5*Xbei=c+&VdR~Fa1YM06{p6BMhJ)>(r!80p^ z4wcSj&FOT=(ah0w!Pz&z|Mba3`zL=(Y7DfwF>%CbD*i%zV7w~w^Yb*z@1#RINh+Vl z=An|ZP5;r8Yx)@pJ$K`6pGB{6XZ#zRwhSnTP|PSVL=6(829v|=(Ol!(KOL*JYputlzBn{ z8*%raXY@O3^V-Q=eoqfSq^uum%{#9uwlH>%wBPRO-Bs^4yF0;`4c*BDo44|&JLB%N zuBn5-k98&o3=)zD5~8Q(J>g=O%XMs0@BUr}b?hQE7DKVetl#;;V9tya2#~IRGG<0RWJ@h$hlp7&h4?Ofqe9~?7xn|L*hipd*>G)97k&Z4Yi6kGJ=GYdymXAc?LFQbvA zCNIapxm1U0&XLMwF6{@!?~s=nMT%O?FkWVUUI6;5j2-|nAzSx#+sUGox~}JTP0ewT z#ZG`!zSu?EU1^)i$)8&FT>qp^eFCEOoU~J$MEbCn4q5IEivXfDZj6(Q zLkiy`fFybVMFx5o{xVJgsWA2!t`$iN!u<>}1y?~Od^AJtKppCQO7J-FUHd9G*|mb7 zbboZ;CyhEdWZ_1X#Wd+4%ku1CR_zM$stpQhr|b`LdMGu+5`4Cg?zGp>E>l!Amkjr2{1AbE&xxosDI3tE#wEmqPR)hB}DpvmY^=R(;#-cw{3N%kFL$A8Dw3X9!Y zd+LawT!tF>UO>8@q|hG1+SC2IzFV08o#Vk`46b0@cb`3Au2AIDoCxDeYRW4_rEsV3b6R z$AHOsG{pH){(rh)K{2>&UgRsxDf5^XO!SA#6x=*Baw<+`v3UW*+z<@wrag0pZ2gHj zLSjXh31k{32+5IOX3SZRKYgd8nJ-(t^uI;)!K_&raIsJgfU|6|!Pt-h85qwyBkmq6 zViRVDFbMVjMHtL+GtcNo4az1ojQEDX)fDr<&}%n)_aFcsxPFX5owG@&ocy1%F}|Wl zTan#nMfht?bFxDQvMqRhrZ^y_(HL#med0jLk{p(nSk+}>&xRN!l{4MB<2C!D+T>n@{djnPDNF)w+)FwwDs9N!>J!)NhEhF zVBn0#G>BYAItVExHzt@K6pR~?qTZNyclxx_rU(IoW1yQ99k%~8wvU3JHS41=*lPLLlwUwv9%A^I$1LCWKUPliPE{?VJ}_jBJCoyZWUnnx+mc}E z%WR>7h6ooEhMmk=T-?kplasRkN1ml#%aZ&B)FXVYxp?uR=8Dkmr>nXIXrdFlTCdBw zZg`Y|fT^A~1x4oW_bc4qB~D~ZOV+G^lFlHl(VGguqY^!K0w*kIwdPJB_lh)e!^g_a zyL@EKb}xudxge|2!(1^AurtiZIBQ@Ne>Qc)KPnsgf3ju`g|3uqKAD>TT~@aVU8hmi z=o#~1$b$C{WBQoQZg8He3k{2T6>7%&r+doC~BJ=b+y;2%R13^(2b$3McN zL-UbM#fIDsGla{!Mpr9sxx7Xc-SO8ySYv!zff>y@7Uw1UTy63TO&*qoT7z?-GtvKc zb|rNch}m&{c42T7p|LY#GVVn597(j=t|Gl1uXoK`@i4iVZXBL=!bLP1^wRg^mRGN> z#V)Tcg{YeSfi9>%s6J6iK4fD`{r_2OjZY2wR0rM-+HCM*-tKjrJFh4*oG!eCTY)R z*SMP-m>xO=^pzU6?*A=a-TafLSbla@tRvZ#?-U7)yFL!HM$nv+&XS_c3T(bAAMoXP znRg=Hpj0Dg8F+%UnqZUzFW{zG1K=Y^hg`^sq5RJte;mc^K;;JJ2i$oj`QAu=WfE=% zl1fA3RCwV#gyiw=G_1IpZK!bCpO!p%be~ip)IPW=GcgX*TcRKC%QuP`rThL^?sHp` ztZZHX?)i)H_9Qa4%0Ze#Q7P~iL?eb>mKVLF*xb+3 zIf+b%;*HvZVnq)c{mPt$wj6`K+p}uFg4=;XI#vt!{fmZp5m&v=gRvco_=7$>-GS3W zw*Y+TAn(LK!99>jiaV40kGg}+$DD+J*4y{)3gVs-)Oya^*ku?$JeMS#lxS$RpM?5H zw|^KD0j9k=V>*4n$}s+74;I$X5sX#9od$<2tY4?)p*8|I;`_^DDWDChJ*e zubb?)?*K7S9S!z|B1S2yh0&-PSI}hPo58Qdr$?>^9X^_K+x_gevLBgzGUu`>TfbLk zs|z>x7-ZJUn6P!x-*AJ!7y}(=@9y8zZ_;A@$Onu97YUZp-8kOInuf0mFH?QWm#&`c z#tWdrv$Xlo{SS&;cyW!d_T4sov!ayyzL$jj#>Gj&1M;>)_?1Uq#)NB77g3}K#e}1S zv5CNRnD2*OPB)5_i3HR(KzBr&?*k5E04dS=zn!7^V_hY_UJ<(#-wZdAqc;avKQE)y$rZ*V z*_DE7Q#oW5qjz^$4%_$*DlfDmHe;4Uu7wI-H0ASDaUnA`dD;_`7SSW!5`t=bT6I6~ ze%0HMapz;V(G1?NMG6iZHUhI=UKfVl-iP9pyL5?1`2LG^Q%ns!S@MWpkql$pL{_;o zXD?2S<`;IHY5l=Uf43KUBI2PN@_L$WvjnMGtYa#AhXYz0xcye)nf&aX0)}xR*G_7};z6ajEwS3O$I(ve zoYk;VS{97(4hyts#7#Xe^CpiR#oxtA#oFD>qEU?eVpj2%Z^p$Yz7VsMqvBhi*9P6ct zkmNMIw}drxsuoD%2Z-ewJqc5d-maAY{CEBYU)XZ&P9`M<5!mWA)MrDcfE>Gw^7QW)nHE`W7t zzq9;SAtcedLHXbq{eA2sCdj#Gw7Nw)AS&PH%g5}=)206SC(iMrrl5rS@mLf_iiPGT zW;>KuBXR#ZKZ`K|_q{xz^)_`&@P)EDv1tzLQ{{#wjmp;gTQVgjJte1?oUhyV_lVEl zf6WcEDDCZ!>hs+rSb5)bW#V!G7Qd$9G@OPfPADPX!2G4JnCc}Mv*gVK8sE?hp*SP0 z#@~2vqNK;~S=tuVNQHo5zNcyubJD@wraMEE%q)F<&Ed8zTy7p`n7NC1Vl?^xd?D$x zh;Uz0`K=x4CVitbs1B;i4VRwl&Gr*JD;iE@s!bgIYP>^W^2r=6s#}R)UH6)BcQ)60 zk>8-pmObG^5zLB<|+^Bc_1*i=ck7u7{=MHZii85Z~ z97gJm?RdZSY}8G7!2dH76nA^OysX#j{QUgvb;4nB-$o#@oq7!&LX1k=#2~0%)@WN(Ej#daPEl;bR%Wo-o1>_H>={q@fLsimH|KBr1*=J-GEFuL<( z*^~mNh8`c|V?V>33L3C@iGK9=yT&zUOps311r-U})x80I8L7%0HBU@$yJJT+!c z_a?qdp?ZAlO}Yw+o%o2dxH44Mmi(5wOy0#eo7ZXeO8aVOATiK#y+$1LvC$9eTGmMl2G434d-;EnjKEJOw9SnRbdv_=$e#|a{flItoNWdz!MEP!mwgNe<9EmljpG3MQO`u^b&mPp!W zV6kTE8>bK1p?^^W+Pus*e(HapI+6qbK&NRB8NljERi80o&N5L(9SSVemV!E-n|_fH zJNMAelkzYyOy$8)7aTJ>@u^*;xjvf8r}r&a2PdWjeX*^um&ai|8;?dF7iJD!<&$^= zt{&ol+*53mu8E<)FpKRPP1y5(`FLkQiwQW~3x2#wOaEUn06B=+`3cK~c_X&D&4H)9 zNm7M1pSc6Z)LF%hcpNaAi8J;*sEDk><>G88V)q+KMOGE6>c1>S3YCsQoux2A}a5HE{R%oZ-WLEefX)iJQcxQ5GXpb|~;E@7PIpY&>&{eaKi%f^8dwAI+*M8Abx zj5(&N61_VMEmx8|@cd7z2}kGx#I2Mve_JB{?EHl@|dlrN9ki0Jso&k=ZafWj5 zlmWZS^sJM;dBXewEepT=Fy$}(T;N<6e#Ti*L;&ev`y~7nOcJ9&ChSLIZ4^rJ+>86Lsg8OUDvZBN>9pY9qaCIxt>BtAll{0+8)!3Q zCeGbJcwvFhxlr>0?33wruZ3`{_N1VlVFxi4yBvQuUD5duw(2tge2U!xnlrgjpN7LQ zK%+L(YCa@t&K;yTui>v^`c=$iE%`GJA?Gf8zp}nR>|k!n=5J>>d$c8u0{c6$_xp{| zdCns|Odzwp;{0R=veB^Hi(&t@@cY>^#DXgYeeLX6Y!14wUOyIyn;KY*H+{sNdjBGZ z;T(B_wk*kiYOkE^#50gOvB&7*f3-XLR;+cjQL;0VB>wpdW<1e}>{3`8)q<+U!~u7s zjSehfR^6qZ+DbxpNQgn-ekW${!%MP#NW;m-D_q3$z_vdr+-Wa98pi=+ZmSigw#xyBilO}3=Fip#=>X$nIA*-=z zf;TKyZCbn22yZPt2}&2cM5Me5*qc%PA*xCkm9*tQ30$%m?1t{ak3#sr5Z%|0m$hI0o*lZsL@DBvTcTo|CeLb;4Kt7|4Yr zSf<}&n=+<+pe8>t1SICd$uk=r==eQ8-@jW{w9IM4B}KlC_0ce$dT%D2_POGB|7>KE z7nVtxky9o5)Bqy}a1%BYIicd(q+D6x3t^?*z8n%FQf9gm)hdhps2wAYK1QO(D@PH( zC?M_D=+%JLMT>cW6m|RRKO?Z5pumb4{}qxy;ELh9$fG=vjG{pN$8MD%AjuTcAcqG1 zv|epf*ep9_E#B;ym+qO;?Y>NvJFlVGdyqHdYxF^%XiCHqUj4Z~bQQCcI?!*@1Z>uo z&~fZ#E4nQKW`rK`NY) z9hzoS#YK&d+JAT63Fb@HKHa75{qwmPL0V=|bEOhD!Tv)&kUdX2*BGUqyqu=I zd8V_L+O+`d2%|>cmU)*n-;4cAue;J`)qp*Ndsz#zEBX_T>#g&9WoMFv)syL!BYrGn z0*4Bn_Mc%~ZxBoNe|FzvzIT)iW0>$aricY~a4(q-)L*|}#7mB5c@$mg+RM0k(JvJ~ zJn&;mkc=mCWMD)?WtxR%HuC|A>gE1s?-8L@!R zS$t6Z;6uOB@V5TP1FcZ#8~G{sQyoxue@3iOk-~nF5YpF+aaAtGPwOm#Zo2VrTk`gY zuGazFd=SUGd3!u_6c?0JfJU0{?STwPSy zJ(WNA2dC(^vI)&yT5TNWd=I%+?CmwhNnS-=L3&_WfxIdgc4!vsZC$$IDJZ&aFV+fG z7ldVK@Z08dvl{h%a8Ht^84@HI+$H_H*h-lr6*fHcd1o)jD7muc>$BP5zMA0;RI+>r z|2Ty4zl3!H6LcSX#$F`1q{ev1a|K-;6n(UyJf(Ur7Aim6tkbk`C%0cv$}OPOGmF)Z zF>Jpb0tWv*k@nhX$uq{vDTepa^ONmMmyoyd>{cHZ^y{uE2`<@Ebk7&nwdC)w7U6N| z*=FY9_ttxElOim@Ol!=j++)8dXSw;NXu6Ve-`EB^6=*0_#O{nL9@^!I8NCYwI2io; zl^8>inhS=8-Rjeg{6j!|p(rUVF$pAADlU;bE2rxR#Wf^* zLP17;qYg$+-D$~@#fvt~2hvkcP~y2{!wTCFyU4Eb+Ck3k*3ZM%S=q@LqOej$vo~LV zmZ%JKH8VK3YNJ^Sgf7Y!*N7ANq~9BER~Kt^B|YSEnD{@ZH|QzaF^aw>wP_o4av}=U z$mCp8*|CQAd;g*w1(+#6%%2(B&BLjWfH1 zSFm~Evair>YQ{EP4Bd@_)Qy(I-FT8skhFA_!!-ZMXWb8~=6-PX5%DE>{U`np;cqy9 zLV3K~UDapapDdN|NL`SBv#tMOz=M)p1QcVbw`qTLHC7#D6QU zP_#rEyN)BAG~*ZvF?XO5bi(3Xkl?lzPUg+}U#|`)6$oKo-^-rLwd2cuU5Lep#gIMK z&mLW=CUbe_*=&ny$O;q*v8?)LD63k=p;TWq*NH2haLTE*yvkeCU^PEDuo{1zU6+xL zwZGt}M>_o(>sOknoA)6D$;f?3qK@lSMo$0AU%)YrS^3KhnLZLp%nrH?z${`J--N4| zXbqDhD)}Op1;;E}N*htJz8sIpT>{imXwU?~4v zUbqns-^%AzV{+#cK-%+CIsi4#{IEmu*C*qILeOGYfGaVxj*Y`hyW9-nXkp|qL<=Sj zs%g*m80(Z-DB<|Z16ld{mgqnhIo6#d*T+XkWL&JD8=g9(rYP{yjm|z zFXS(?l=^SHK*BsRGes&y&^cQ#RCifOv<6hRDL;{>VsAd z{ubEFW9^Io6cyL9hxc{Y2oIFG)SYvBxhLAkzEvqxb zW{Z*62Hi@JzwcQEd7dfk<0YeEqP0jP8nF8Tv3u>2%;Y9PHCWSbdsPG^Gu~FSWIO~e zqVuQL+L|bH4n5TOxu%wJ!k@*!A^3xi6xf8pLJWojOy@tPDS%ApOBj?A@F#+duM!%^j3)#+yjE4A~zeJzV5JL%T3DhCFs3b*Az)7|s>?hZLOXKP zS1FJE2taQkNFmEBy~;KEcv)+6=`~pkzo+G1klwL;Wa$sg%Q!B>{qzV6 zRTk)DW=rR}-Wd7?wG8N%UX9$ANMz>{th0X|rt|9sqlvLP)4B1wnz2248u!dm@V3Pc zRr#MlHd>*yw;LDLM$h__V9`L(LeNqvyK)#(3vi}CNJ#Ki8Y(l?ybh_jV||b$kPDGn z=JCa~BKY>{$BU*5!Aa73q86ng{AK#KJ4m!FcnEJmgy5LDx3ePE?Jh+pd#`15PQ||_ zVn2sC2z9^9on6h$^m8b7tx37dQ~W_+yixAZV8yIcVJ4CWikPPUhl2b9gsbouuBpQ$ zG4wjT&=0X0g{qrb(K4po0lj3_V29@Y`lor+i;lD!Z}v0lueagtyNG;bZ-Q^5FA(A` zg6up+`Md5izAyD&I*>d!EGb@&hQf<#D0B@`A6~d{oNn>5z8lkcON}(s)qKWli)MD| z+LQYp-3_qJil|e5wXdd8g^nN6VvA4dI1_&Q^VAIv5-*hmh?Gthd450#)Hql3kaRkGU%k@Hm#cO#>fMx7p48GV)AGK@^%!uOve_i%Sl}k zO&u*OEj?*PTtqh5-d6~@ywSW)sF9@k@jyH-XD-fO**0rm?AqFm6hL}&0-Nc}&3XpP zqs(Nlr!IfIMhJy^<9Y}VcCeNrrjIfB(x1~RMq$$}Z)#_@BRMO%cilUaY)$^I4B0Ys zY!H{XM=kMkXoVm*x)ioh6+c+JgOu-YBDOr^kG2L%x@UF1pKoN+bG0=}9%k*op)Kfr zwXQ^~)LWOj?5O~e=p@j~%S~<*Uz;V>}b zU}qf{=8hY&Gk3tByXw|ZO)mlwWaHLZ<>53 zpnpLP!~$tu_7j&U`*P#E6iQ#!jR$Au&&U`2HiO-B*OhX#_d6&!gWB@Vdxm~B8Jipd zo`9!-_kmBCt;yEUT8-ZOCUhY1>g)+=tj~Y}%s;nU9ncvUI ze!mFEsephHW1>g034iRAVwl|L2*>66OpX|BwvRRWbx?g^=i{f)2CNkkalV8JlxI0> zZh6pDWye>I*8MrJ`}-@k9_las3{g`Wak-6_#D9B-;joJTssu}o=4Hk_kwhVT@#t>A zAH%G6S23#9{h-VE@#nBIc|;*iKTl9VU>V9w6v($*8iBt@R&3~YD00d7Bl-EBZ4FcUz^I8i@rq|eNlxCKiDdc-lsKrB!;#nQV=HLk zfm*73{naFVRT>=gy2jhmR)}Ap-=gTt8cGoQim~mpTrq1h*#aqWBBa6T%xA+YI3`&F zyjtEIFLT=CcMdE@1Pf9`!V2G7?!?^}UBm^oVIJF=w^hPa;dOBgiS1@Byz5bJCXe7CNB8pggX}3_y$$aPG^BLL7UQ~x2YHgo^O)Z zy7S6K$u+bD0d_Ho-;+;SqPiK?N;bGhC{!O~GP+KBuitLs zVji!1?UmV$oql-Ebz|*sOfhA8scRhy`32m1aVn-))_3CPt16#1VKber$|N6Lkz$RJ zvFCU@KkW~|Z^aKjb@k1?YeC18m=_qQU+udQKEGvLzW=8aH~f5HskO79_8n zS#u+(LGrk4xkRn^M3iKjMQyWH>CU8K{Tp^mCOeZQ7Km3gZrOu40qmbS!#7*os)9mJ zJaD$f+9NOx9Aj`pK1tr_Bw>}z%$nX}-Bx-H1$Glyq3BkPF`~c)+;#b}9)PEo?h?S~ zR6_i^&~@v6y&*g!rjA#WZ8akDRpCNCsBD;uwv#PabXa)U3!Jykuz>9FBS|T#F;0!w zPfB~A=9B_7^j21sRrmtpU6t?jCqCxQmkZ8O`CYBGS#euEKy9Hvr>Q(Dx5{-j3#yBj$mP}-f343H?>91`&>@*0NrffB;}rb$}-;1DmyfpXZ` zg1mPwB2q-7zijst*@xV89wzZv=p;KKw@8Y}hAjBxp%Qa{`iv;|+AvC%SdDf?1)U{P zUCRWMPNCSAgpCo)B|=0^))iMVJE@7n_I}hSnA4~2L-*B;_BVTiDno)-C0bj03iE~6 zT>M{0aeh4bzIG`&{RP9=@gs_|;Iw_xK$s_bk%wyF`fv}5m!;IfN+Zjjc=4Wihm|1K z=hg5RXG^}$T%h~ON%VarQ5H9Uc1~iS#mM2(e#qwLJ5=`_@#)Wb@+*MXyIS&N{ir@~ zxh3NALF>jDH&&~dyCpEwiW`CGDq}1rCfxx93s}y$$rg*~Mo=N&-`a#=>OH-Ub=1c6 z>-A-)bVmaZn4U|hStof%OHJ2^yilq8#iGdzaLC_;$N+xaVo7b-%HGFu)1?5R@UvJ! zGQz|vQh{&=)y-|pygmkU;$v#Nb?g^Yy?zlWK9sf0oN=SfpkIWBOC~W^6AXmg{l835 zeMz=jl{c7~`rY0Nq$kpLzld4pS4O|6yPf0uZSI7!hJgtK=~Pu6iiTkdNB=#Iwzzd8 zE%_;o)S=l_&nm&VGsEeczw;au(!9Qjd@Jt{EWQ{;-MHR-bPEK?c|MBez}Mf~08j1E zcag0r27eA=Av|Hh)tc9K;8b`%fxGPB1M{g}DNK|K%Zwlg#W#+(L%Bok3-*Srk*rAz z_Ch@G)Qa1iikEtY$cYh}i8#}}LB*|*aiBV*c+AbmTP2fe9&J#w?Kr65H51w{9pyfK z!%vfgsBi@2F=IgFGV49y$u27~9eah_h^uAO^P6Advtf`_IflUUoiD{#n>}bp?i^VOiCa1heG@j{_dNHYQE2AyT+w;nwiiU`+|&!!kU@#eHZr$p z{lJ<&cnF{l>=QF025UrpoRKno%;`HrsGJ|8;;CY^pcWGR~}L} zG%j}S^o+@#AU!$Zt9+3U{J{_LDwO@&4v%zq*{?TpuN-g)$~2XCw;H&fv<-=2I0l1; zZ0|SP>odtzRms#{r zy9zMw=D}v%ZL#B}2Ad!Bmgy}97?=m~`I`Dhwtj6J^Bzb>dLNKBVetaw4>U|Cq%GkF zTEzZYb6pq4ITs!tMf=ED&)^l%FbWr%;@<6uOG=kW<;gVK=Ev+6!SYzf759+}yIH|J zBusqLGqSe+(AgE&%A5*%xq9PtAyO0C`8!!)LDH54i16*l8 zhy>C5gdG8rdY$qv<_MahirEwKZJ4-LuMqPt z1)RYR6FJzLVgGIFvG9!VflGiSK9z58D@=_kXc!G+TDwNYhlvO-yP#nf>q#yRJv~Cd zVtC@vQMz>9FT&nC=!i4Q=0PFu1oy{B&A22geDLxmNy?l>hjHQ?B)j{=G~TnymPNOB~RgvW9y+<*7-SJUZ3K&kwu3%Bb(uvQeQ-4UA_ur zazXJ+be0#|jb2L$vlb1&4{Reh{beS_a?SxESCUbq?H z2`cGpuW=l}m%pQkD2*`|%Jz|pa#sNQ=5_FVS0pb*Et&)fqS)_AXtc{&ah!d4of^3jI;l|z1op^EMPQCWVK`CRsk7P1Ar zpakXagq7ak?}U?|rlnLeQlBG4_Z|YvWml!s#>Sd(jk~?aHl!+Y(6m3%o4*1z8)=kK z0pu5@)o&9b7Sb*Iad&o`7*<=L@xuBe9!w$hL|#b3t38_v=Z9PU{FN_Q;v`r`?#*ZG z!J}|9WJwX&)A!d;IA^$bRu+?-{Y~^_wMbnUJ_Ii-DkdRlS4Q=&@O-2vT$AMPvTmLd zaCiSh%hR!fkkEDSx0-G7!AXcZJ=&^78rMVgp&qk&dut$#gTUDg={tX-uko|KV4K@r3Dv*|c>@qg@B$2>DAI zD0?+pp55~^sk)ON>4Ee8p9eKW8)I@a@r{1D<}I3e!0@I?HFz>(@_At2i=t38y*TV) z-#md-j>6KQgTRO6hHcOHQib@25257^?`i(5>#!Bq(Nc~RS=Z%Ml)alL|3#Pc4mtIN zNA`KTka}1xDn&?=p$hsusve*EmS19s`)z~eNFWK1#zx7?2!4hfsmw3KbZnMYPQLu3 zEN|N8^l7yLJ@!JE1h$KqB2}O0oAH~g#G9+PO|xmARLE1r)?$tpkhEuR?en+a%}NyO zllo%$496PJ*-{Ne?(?207pA<&TXjZ~nl?ZmC6uuyV`3CNj`}i> zUSY*==ha7B+bK9N&3uL@YUd=Fb0Yb0bTU)%TtWg-y=1^mrIUKJ9l0@1X?`BX?gWG-FB#+55XUtg5Fq^ zw{8s6Gc`Wyec$INuL_x<~Za3K+&${6jCIuDxGd9H2B4cS^yPN=Ry6G~cYo`7SxFN!sm-4D{ zwH>?rJG^`!A1ri=2iBSmSpN;1A8~q3%i6thEOOJgAD);*_>!n@9bN}=Lr!6eQG^~T zKSa0OkPuQn&)dj%MJc7P86TyO^U=Dro$=R=WC%}|62)sLDZZyU{l8`id&cKmrjGl4B#dq^#B%eZd%hGV%w<_Y!B zyPi2yU#T|yUp96froLS7v5q8uO#K|EpmJ)U_imJFz-b}y=`+?~M&uV2GTUUYxn0w! zE{lUxH!8wHX6B#M1d5dXFSe@lEV|4j^w}{W!Y@PdaX1IZ5UU~`)h|Qv*~A@p`h#Q> znX0W=cvv03`~I~4opn+E7Wqp5*DuSc2PAK6Fp2!D#qMR(6My;yb94pb{U$5fo|dnSh7pmFMuZuvgz2?ZyBB>c0T>-Q%8E`pm{j}2A0elHvH#fY*duDa(BNI-2Tmf7*5L$XJ$qRb$m{u+*@OKd$E11wjwaEg|#T50d zIj%VQ76e-Y`h*i6yQmzn?dbULNavnoHwfo6>FxC@DxWqN zC6ec0ro424WG8!AdK&m8#1gJwpq~K9(CCcewhNk?;0mxn*l|GOpc~BpY-u&Iz*5e| z(&ma+tz-Wjy+{9cH%_(Avm5wZqgIO2rpvdD;G#u3YyXRau)tI<&6n)L%%Pd0PiB-w z214uS5b@}T4s5-p`ijWz$-el3-VJ;Apu9No%9V4HT-{I`|~%aJ?s>$EyslGHh4n3KTCYn=|{JRH6Rv5Zdv4?gY$o{G*-1t~BJW zvwUBZt%|JW_d#{AiP|5@D}4Q!7b=to!dF7fe}rv-N3PCwsB=&&yV)C12%xwih%TaD zu*qxxGpN8Pz~fchl~#2EZu0Ecj&`WG+}FcKyil2lr_zWfwaAy5DUfG;^UF;9udcep zK0ORdn0K5FI!~l{k$FiHv+*?6x);60Dd@~Zc<{vkVtc=)-z zk8J{kD^C~x_1sXU5W%~!yfoP9Lt+sHZW-PIGVMXpkQh6}=f@Y$QFz`3i+uX)sz_q$ zE{Z!XF{yRPZysgbJAY%;IFC#S(sifVF5>TFv{69FN2&T=&Ri@4fH(v?(UH@!Qq>-x zCdq9+mR-CYZ5K-zMW-SyD#eoiy_(r9G=ZiIR@$TIJ0S_^IL4)6pzx|l-gx4m3?G4k1f5j{$wu#t`=i2TIZX!sZAVv{zO&9Z>)Yd zt{m+QBhwdKmzcBe^WFh~OQCI}Tgu`+knQLwcb^DlZI9W_$$ZDt)Lz!1Mr&wVh@g`GIux zHhg|&Kc(pX;u-14Rq@=_J_uq3i)Cv}6ax{X?oK`rLcd&{-PudCA2lvWHakH>TrtH^ z_I}<^Pvi&V<;m8@)9eJqG?*M`5Hwixxv#~OJlACNMODQc%QIz0>t%Ex1r_WKn-{iG z9>*Mzi!Ofn(cGG*m?xObrkbVJ-TcMdf8SLoXuCk=q3n390K=3yc+9~{$w}Ex5Il=Eb}=o zOIvlm!k4hHhY*dAG$|N2Rv_M5`wf=&vR^jD1m^yp>s-LkX)+BQ+XMT`@mE|c2)fJc z#oM-Zc&k9X=hT3jLm8B59z6aDm_XxR)5>0tqeo9lMf%z6t0Kdo?#Nba^eFpxhXN|> zFU?!o5AZtSP!u=1OtZ66`NOf6nVjWC|ZWS@8&&WaRaK&fY#XGf6e}rj$ZOsnV?g>y^-^A4a z;r@XKVLuc|o?y&}EybsW=1Fg8R3IHxCYhWzzRBN~Tz4=LPS{ybD+U7!7k7hL&$qs9 zs)Ffx4mF|@H9mk~J3NQh8_9ujZ6BV*)ylM-1;;%l*f+K_WHe*>i%b6#>^U>N5NaQfYX1g zg@SjWO(OD8(XfXXEIp0R*7}=7L*Dj948h1vQNp2$EQ#by5q&ZKzLMeDJA;G=#LFOQ zJbF5JdE}u+%deJ}F-5qQZ6oG`g2s&-6%@za8PC{&AdDtWjO(v2w6_Ws2|h1Os4Pd( z)m<{ohm5EUW%$?DnoMY6wFPR5LABd&{Ovm~g!U0tw9~Z+n=$QQ=J%;RK>H?lGb6m0 z^7GgFkamnGOG>Agp&~uhf1t#(T*;!Jw>JQDg)h7#!8KHe^T!X0S80J?=)5ol!>bP| zqi$OQ??0aI|_%mH{{G^x5hEjFQgyzT$ZG1rVcOBIk!})D)=9=sEp!u_s4ejw}my@X> zEBI09@ANsgEag+3$Is}u9j_JpnqaT4$Llu_Fjo*^AetDOSfakDzZKbI67-Z+`toX} z%3Z_%X`82}YW7)Cq6j;zxFY}VfXxgXhd8)@!$-*ARg%)_Le_D8`&;-I3wj zVsNm!C>S*2UKQ*IQ0(clO}<+tNmZor_l67f+{Zc2O}cQ#-5kZAv8S%A zk!W^7#;HuH*>U&4)svc1n=irH2oDEf<1e}zpNi{U&fjT~)#|z+-|?G}L%&PJdv#rI zm8B71S$xeM{a)9!)bpBG#-%*kBWoo5%{TIWylm>8w#?N}oMd&5$%gGN@J^+uhx9A5 z<@C7$z(B9~MPp*nJ!+LBFcmyal*(ij{4fclLX|!7n#n-1HUcm8i>_AU z%|Xa}fn0nxD+IsnA4qkJG0Vn7&Tu{w-xq!d+mxB-hErckPcqTcD>*>qiH19IaJ6L6 z7B8ZJQY%kTK1ZR)Ewc!x%4Pk}sRaaQ$l19Tz9(^A^Qe4xjZ-kx(a>by50&tc?vic= zosOc3o07%xY^}}`xyq<|@$dDM)8I=}&a_WCX|$J5j%I5p_Ho-Vk=q{&XTru-^DdVn zW9^o_4`i$D5=)O9-@h(_rI{C*(YD@2ip`LAf%zS=?cl1FW}P71CiaIt2G^!5wc`rZk)bDdl` zPUB)a4Rw@B*JLpo6p-G*26_)k2FFV9s4S=4n#R!Ax|dZDia)oi&rc!I_+#m%R`lR4M~v!fiyR=&6o$$E6`(O;shU%&qQlTSqPOiEF)2{mnANC&WbX!^7SpjE&tkCFcpS%sJQ!TQAFzuJscE-QpvIuM7a2x0n&)*0>1Br&RFRz|FY`>GdsqnO>PY%2Ku-*N*TSpb)+-}3W zGO#^(O|Uu&Y%Ss9ccR1)}qMBS2cU)KQp@*Eaba zF-^mJB>x0Y5OdTDh5dtuR8V1M!+UDCnCZpj_%B_6iV*%y`0v5s(JTepe+(r$K%vF0 zpy#N}m&qwRuH3r9Mg%hs8uWmc31*3Zv_*ewr4bUHp@ia}+r9;9)#j6m-`F*MuO>}m zBQ>?p?1x|EGf*mOD+UD_Yn0P1a;4rDqe)cHpGgGd>+op>CeLYNg8@sY{?v8Y@md=y zakFOT4krJ&9&CsWf$$ar^IhHIeA9XV9y27o~E5Wm!i7-qRM6N-}p)hTkZX1tTQ6&loO5&`hDz zanwsEjZ2HHN)Gq%iIw_{tug5qp*g~u9>yd+1Wi;I@YD>vyB{5l^h49kmYd_w1J>bADCGZmB&WWT!C9+T5^+Bl5Js(79SV0a#rI z*gP1jGFY7d3h*z&nri&gs55Ap*P8JI1)y`Od$_xrz7Lk*V)t6RYauUFKORe9PN@aI_pv{xz zLBo`0YV6qPQAQ`$W7E}_;E2Q$7)bdB1i%(lc;}FYVyRpbEBNgFM)?ahDXN0sGb=Nd zx-4az`(#zdclD|L%$1|nL|#iD*-_ed_VTa|K?N;4HZV2bnH+v2!r`O6dE_wEiEj;G zJn*pRBBDRFE%!6>+JPU8RLP&!i}IC+G>2v$>qH@JHFkA2)IF*vYp~baOt|^LFK7N` z8vDo#(y^%W-*W8u1{fcG32ueonFPbQj#+49$VMr``2_O&+yl=@p4h2zoL3hw_^N&yVDgX8fEK$TVo@y^kFw}bM~ium#Qb*6aac?ZAmmi z2Vx9+@~!P(ILOVqtnNNd1`vRo@4HI<5aad4ZMn?Qa)nez6I8_qt&J*Pb0#d_KHDTs z#loJ~dhrid*?xOP_t{Sbn@Io7C{yn*1w2_K?0eGI@lR8pgreK;Oe)40hW_9XF&S(t z{e;^00ov0~ko$7D_1GGU&%J4*W<==EgO^e4`O+KV44?aDwYvMt5nO8~8Dz(Br! zzD{T-21hK`QBYD0)mqE8a`x;X?S>IwxBN)VBlmGl(!UJhFgbEHkHjC&8~mBhI{i~y zzFmuw*lfxG#BU=CQ>Zj8WVqlrR|T+_EX#a($CzsYXI?~kwP;n@jEfr%qlK6n{vm{-}V9+|l_!1D&753}g>6Fl4=VR~o`Cb2Uz|QQ$3A z&9*Gj;#~@F7nNKgv;wpw`=qr2(A~CT<^#CrP)~*ji&-kNNJOS0iWp%YqJKxUYU_lW zI!6L!6<-@sqPpd)Fvdq~`h*dV%N-=H(@4?6|cF zXuWCY3{4$efjisI+lXp7;Agi}1sylT~BP)ANmi_+m&UQ(I_ z`Nv+t8ROV(7)>zVD#~1QpoToiOvf-!${WpZ(JEa81;W1ljNL43hz#}$va=hW|7u%4 z9Dw?&qiwyE#!hmHpa^qQ;_Xx;QM(LOjM~!9RbvBd@Zxunw3?WXP8+#0dA@}Dbrav@ z1=W{sPhFKReLTX06rUpzwgY>NJ!rL^B%u`18~Os~{-87C_v5!((ksH~V~$Xf@RW$1 za+=JJ=-uU3-_*fFtAq~e_8_%a2nzeue)#)lV7m-GTti};>7aAKZY{34J^^(nK~j%w zb^pdxSqqSH3g)3`anM|iqRr;F@C{hXk|%-f_}^(S{8KPV=!yvmbFLJ%(Vaeb-a*h) zLgraQ0YG!3%*j`mY69XD*?fPun4bVYmmWB|VB6@i-AJ^VUW?{IaFhMf&~Buo8Q!j{05X~M3*KYs8fr^MfA6S zj!B&2R!S#vLsym!)2yYyUX43nxLpjBWN;GG;IH977x%Q(<}Y?n-rUs?zZFg{!JZ^9 z9+FXKW~l#>WRaLf9XWER)-boLk}Ot?sIPBFISK=j4=%0eKaa+yB(-3Fv@qd-i;(<7 zJ$-!RP!jcC7w>p6#8C-3B#In{yIgO!DpP{4-~d6!?Z``kQ3iPdFu2w*6TX?M(r{VD zZ6-l+&*$)3(l=UGY#BDot2+K9Kdfn={ncb$NgHKz(7o1Fy`xv+^3@o5DKt@!RyYRa z^s%1D?g!;WL%)oqHPTWIfJ5erX{{~j2rJj(6lDE!KWc*Q0-Z5?X5oY=L-IvQ7s_h9 zUc4S(u!gr(q7FN|QLAR!<_^~wY30}9Ti7F#xamrjb-^Pi>}uj>-HJbbz-HmG_Sr}% z9v!Kj9yrN(OKW5Qwl<#-72LHR-a!6AJqz~5KfUPbP`&7H4R+I@LO*{-DaB!|kHy-< zTB|SDRR1I_?rKhE&RDPLYB*d^jyqC6u9cvKlWdaE$3+0AL51c9CBYgVj`iI4Wffmv zp2be5a-+qiWNM7EwBzIPFX<@Vn(E4{=(tdt>T0>@5`8&XE1eRR{fb(u#+@FsPnG@* z8o}nJb1~KZ{n+;6x~DYQIhYzYN^M38$N z8`3JtyI=Hk&%V@7{Rd2c0w+2gbgbds^tu|{Btx}+3QD&3N*<~2wmO}-=UPSRXMARl z&xOwT#aLmaS=+y>CHCc~9zQ9_t%wuIv66UB($^}2LOprb*9Kd5k85^X7o4q+@LB1J z8xfd#DNPOOEcQj-RA?k>Hnr2Ctkiu_{rc|GYaqY2t@@Q;*y${5*x>!fXQp$(j+wb9 zIUW}*;nCerW@FL6=S2JvM}=$PUExzjXL744k6#s)``H(3hNoDPI=Hh+vpVY*l}ROE zB#P##e4Yayan7zT7Eblq$8n}gGtKU?LGg{?3ya-v)LHvd4eQ9ZJ)DE3g4kp9@SWl) z4}yE~3@VP*NDM?yyPYG=^q3GX%!P5)E>7VopPH-e(M>A3c)ptFl?NE%0|Z50z<$qS znE`#jOm55U_EoM8LeKr>&u?elc{xoO!bv3=_nVu?Ob0jCromsmOzi!s=&L@gIBi&* zYVvCu|B!jRrqwYhe+x=fbZ$yvr`~v(KnpA+e~Rt!LK3$K!882uix^EV=Sjd z&5nCXn!akSB=(p^tt*c6ltGR403WeEn4{gl*qJw;wQ!XFWm+OwO*~MumL6>?D`xlg zE^Yo|)ey;l#xMeZyJuRYyAGzupy*w6{sFxU$wvdspR4z}YVfzbl=QbSQh>_1#ntce z99~eOAFiv@xW%Wv3qHq(CvDk!bfglK$$Hh0Z(#~*q6x==Wi{44kK@2mvLsbm)#a1D zUVt86J0nL(8cv=iq(x2+fc?cOs>bR??nlv~Cev^M#5@-CEOJzz^>d-X4?6X{T|dDQ zo9MOx7f6gwii3jYxAGk{R2(@PUv{1obMlz^Bc_o|Z+0&Aj+ys)f-mo$zw|5eCTZ&7 zo>xVOb;#3daDAU|&@Ty66@s4oVRH1fH&(5GHGceGwK5GXgWJKODVHdj22J8K2cMf^ zB?_kHQHOwV>iY_T_zQ@tqFS~YMob6lqFUHNEA5!n9}xQ~jsT$XPvRLvk1AV6?C73%oZPojY}O1WozUi~wPEOIJ6_0xEN2Ah(2f{4_}0Hie81@Ah>=&19$0 z7em!prjv_mq83`iJN_|q*!c)`sjk_o`?1m0YZ~z#_p+J(<;fd;HK0Kv%eyYS^?@kp zY$urC(OdK~*$HECPKeTJ`8=oBK%Y!D7vqwY7nSf*;Bwz9vhgnCS#n5H&g{5jt!!!} z)RDrHdOsIC$HI>rM-5rSOr3c`1Cht`?!8R$AQnqW$xC9!V`haq<>$vuL$^Tnk=Tlo zw+PZKrlQ#rOb{y_A6pE|!=7pzLQ*Bxk+wY##egl;Kv1AVBj~WLLy;Fz;=WPGkRAB< z`e>P#4*;%)R|}TTOa9T{f0Opn?8V#-8{75=sk6;n3&|pFeluDY>K-PQ{*M2He(CqE zLf1667tTI(%EFhecODnQ`6X#j{B3B0Cmx;XOs+H>>Ey+o3d?iEm=PgS&1M+|`~528 zv|R_SC4KT>?Q7Dt*)VQ`?(wg3uyFr(i^Zuw}A z3gN!{^v#cYn;O}%XRSbY?0+U#6>V|Um(CL{ckyhu4`P{Yn^L@M-|wth;a2@_lv#sL zlm~0O=%XK92b!U+!JSQAJ9yVcy|pkcrhw85eaOuj9tLcl{qjBia+4EDWp~`iG0PCn zS#V`_s3T+8F2@Z~4#)S{9>@sOL*cVw^95N%X*M8XU9j;k5gM}qUQKwG9s_?-w>Cv{ z7G7)iq^0hE#x9DaUxOXIhp5ppfB(JkfcVX9H1&bB!bd*mx-W7C-xsbr} zshBFh>6g!mQ};?WM)q_(lAYUR@<#5SPuzb7m>gm~<;eTeDIT)hQjm{s1$oXnjs#0S zVcCr1m42FO5BHbJ2vP2^#nVe~IuykyJOu}1DY&J(xc9_n_xRU0>EZhs{p}ak#5;g4 zgcSL~GP6V*sPE=tn{=#a^PFfD&p)l>2OP9u(r$~ejzgdwA0Dcg37`DASQhf2reK0m zUM(^sgqS5mgXQiy6pX|a8_|rRC}SqK7zj-h&$e*8&Y{HP^!EP=U;as*YRPzPihKzX z*DZX*G8n-$!BSKDDfiE6VHOk3hpvQKc91?Fy1J?GVZVNz!hIF|Gi# z$NnFIjt166Hou~K5XOO$tZ~+>M`kIEHt_UqwaYlrKd`ei$z@A|%-i1>E+=-67O@1L z`m_mV@H#o*1M#cQ`jx(;Gm)qy;}~crUqPx%r5ERYf-)Z1CGHS_leP5g16V@P?wd94 z4viIhzaCCApMg3n`ACFRepoZg{B8=b#IeR4CkG7^=$SUyTfaoN7EK1a4KuF;mnmX{ zqobpRPW$1ex^(f9m|-qE>NsYFm){q~dhYL+Uvvx(A!LfbMB_FTgPhRL=NQotS35+zCxB6rpGgk=VI%A zF9$~+;bsR*-JDi%IV{ihHKsaW4^`=RsE>m?aH@;f#yudWDG zRbS-eZ({?@rBstOu?pZ%P}$3FZVL@)!+Qw;LO=3OiYjySeCMz@?&0O4cLuX*^Lx`Q z#~>61sLM|i+)teM@C3m)?1TKzooKjBThY-i44s0^CLf)4k0$6ZD~ccD(_%(*|A+o1 zy6qD)X&<_-;chU(D|dDvHUYth(cLdb|M%CRutDvW<+S9ss@Q;Cm$u?CQ4hPkEC_Xk zXVCj4A}|HXPAPg{l7INv%R4r2BW;5yWuZC@bayOium8!-P~e+YQ6Oj2J^P#% zO~6f|AW08iC+6Hzv@L-uA(T$OpYxj=klb5n=EC{Dt5S1qTe&uqc^Z}7vS{LV5}AJ|ABYG7MNjTNgkSqetnK6zb13s z>_!vW)Xo0nL{Ug<5;{Lu(CVX%XmLKYd-BZ9zJ~5L>6iT45F<%Tp#-IOY?>WpCbx2h zt4|}kZM>yNlxC#pNXvdbQi@`_^|!4hrRVzeq&S(1L6b)1=XvY@C(@vSo)R7S)9+}I z)L3$gCJ1INrHP_5ZJ+<#k-)q0jk4gm3E*(%Pq4V!PBt8nE!r56a@NE@Wm=<>45k>h z#{C}d$@KZt1EtZ#84A^=ug@TC(C99@=;l7Obvqi}{XaBtzR){W3*GArS*9d>2!1C;FI6`9iw9{)j! zJa;on&{;etOwXoyFzFETcI~tX$)A;8|7D8B1Fp-Z5UDJY1h&50q~Aq`mu%1H?9GH? zVb_m}j68*$OUAK593FdEDYW^RVFm`A{VAxo{h3cPGrGSYtK*t{5~e^Iq_TP&t>aeF z)g9w>USsP-bO2U5*p$C{quziT(gnsY8K`UprdlX=X~9Jw-JIS7zEkOfqyBX}g4w<{ z1#EAqQfM_Imm7E$22%)V8F--Aq#|0h?>A7%9)oY}Vh`t2q*@WMAb~`vS z8-80RX-~0LewWuX)$lg33(Y_})@2&@-1EZt4z*9h=!bkS(700f+;s#t-r!vuMuK2$ z6DjBXECL7OEUym1WY{K1WK)&mA|Ej?WtI=ULd}^!cIMDIeI@cuC(v6HJ`GP zy1P{FENu=hJizpfED}yKayq=&0Q{-e!ZmtL2F*b(O``ydZA9DD-JlU}bZ4VykJg>N z0H_67)wlb3wxY6sul22g6?iXFJt4;sRnhp0nnV@5KB6yysUYnmV)27nz6$M@8NR3> z{sb1o=7ggq-E6prA9%J`c^X(y4T+={7YWso%O^o~>Z?6;I#X01Ysz^baASB7`N9Tbjs=e^CEK3J;CuwElf|_Bt-9<)UxMwSQ|xY9V4@W ze70C@^iwr&37f?C!2-7H0!LQ<)YM+QT!T1g6p3pSWS#%K3hbG^NZ>ef;#G zcc0PBO02gO!>)-R2N)^Q)7oyIOm_Ld*cTZV@0CBy!mP3XL!r@GN?6KPX`k)9W#w-q zlM85=qnsM#&SlShuKkgzvXF(YqA>|24%?XuM)&r>WLOoikG2@SfoG*SQEudfTsgQ9 zKzc}jE}#q9Xo-D`_}yXCh}fW{2m3D6T4(?fZ%KkWv*(<+HyQtixG2Zk9 zUF?qAmgh!Y1UR4y~C>QBIn*9TYB>~-gku}rM8f4oj*Odm_^UaaifZ9%r&rF zb6!)0et^q>{S1BrYgMK=o(m4$+6-UFNi)~vkJ-!!J&mMKyWO;IWG?)QOG?0M85+U& zjCw4Sh(l;X6mX2p8$UBF&?N3~sBurZ+DJdYbPLs>TiKYm)E8mxuQ%VNGAsFmwq&RY zOpO_c!elccx@1k@Me_4g6QDaZ`ku0P*2;yqQr9w(C3I^w{N}<^ERufRSDf?#xI^0; z??}Ekm`eY7$ST}8^dO7F5z;DNmMd|GeTu;#rp@|g9B7qfT5ri2s$6O5MNi~`rCut8GVrFGQ|DzCU!|#-!qg;;-MBu0r9di!cu3&0n0b4 zOI+erMD`lV=t~T{CC`^L?CU1TO=9ylrEPk}e%bPD*R-4}rztf>XEz=pO8!*v%OS1QS2EO*JRs zy^`Plio~}4A{#bTJBNO!v<}=-+}fZVs*3hpu2NF`zZ%*#)&b#5?6S~$c=3HVjsVur zz+R|j{3hgj)r65EcO?HmH(IPLI{<#$Q(yk;8*i377f$}`#vmO3!fR?%cpnSRn!cJd zZ__1Eiv105s^J0k_Q`V7t4M0NP2(f&gq(I-vJ+;wwO+J}cc@9P7kv-hK9ybU<@{{P zAz4HrNcqeMmp0*~<3c)3`4$X&*iFy>zh zky4YJ6{F+lU9rYrrV6pUy1Y_JVE=_Gx(A#h^c9AzL_7 zgl2UoG`Sxf$P#QRhVf~h3b9_Pt=k_u0i5o!nz>8se~|?@tibApX*jCvwBjyyqbpm` z9Nm0GY~LLJLTaDi%fJvkf|l3hk6#c5RVZ6vMzVO1VJLx~0I!j2{g2dHA@psVo%;dZ zi_1UK7=0gkJ1gJebIUq?sGftXTf_Ir(Ao^FawfPeI{xUXTC1>@?UlfTX_2e4w)Ufz zYs56H4&~CUo76tRAF6I7dR7)E<<`={uu4A2t{d*KRp7Q>1@i2?b$pqXcS9%=oE5Ud zEc9qaFnJ*#{TIL8!Vgs2I;$R4D?%>IV+?Abm4Qb6J#m=`ibx$1;@u#6C0uDeH0q26+i$?<|{^-6n!8YZDso)F?3O`kf!ch z^-<=|$4V#?ONBPpPmrw}-btF1uakRYL&nuS1ppB24?(H(;go)E_W{4Lbsy(o#Ubth*ZHVhXVc&=1HJVj*B43sMU22wM$ zR9YNtn4BN+-P~u{JzYUM{6DHw33MEpbJ>0TvShj(%NlP{cU(TA@h)^I(_TbP9w@*BTNN3!E1;-grz6;PV#XojDoyJJIi8o7w0 z5PJ91n*?KJK=2*FBpsRIpMonyhw5rv1ld;~rssdVol3CGwVee0@V)+gfD(qQ3v~|& ztAWyh-q{U~;U637k=>oTg1U6II>`l1AMxU`_zsE4c9p!P^O^8@pATvkmN~a8u@0xk z=VCwca?o}!nVc9!>1Fy?1q&3#a{hbU*w<1&XCmS3@Tt#h&5D8e(gDbXZ3*-L$8;NF zPv8yr?2*7F)E`vc)|4;`Q0kgqp8&$Sv;)F+F2}+680r=cc+c>vB1La9c5`Y1B(c#x z_&{Q?RqPdlynMS~UdojBA~`ONyqS(C@>Zmm zv?>LXH3`Acb9m(g%;^6up-PIRaHKQL_D*So-A!MOhti1gIKcj|>lym#TlgH%) z%J_9gBBIV2vdQLL8@>?L6zs4w?uBX`6`5iF9#F)%Jr!hY%xh#s*UIJpwZ?9ZkNV_; z=xF+j=s!M#R^(=~4`#{&$QD5LqsRc*TDTe*_RpS_b71|_ke3h}`#d}1kEG*$@d$}1 z;|4#fig+cXMTStXQNeggf=V8DBWB2V!9==G?8{ zIT1@$Z^o6|lAE|N*=W>foAbQ z0zsL$=~`zP9~^1wbx`YqS2*b+gmgy~Pt{yZt!wfU%3ekZgBO%yH&ME$r33L23edR- zI!5^$T2bp#W0Q59Bb*|2U`z&`D-McKzCu@_5tgEOV+`+6W*iq-ZfT1fh{d$NXn_+4{Ayz;?sE z8@+G67iJl|&N80p5Q5k;8WK`nzK7&&0b{Hk^P2C@L>Wcw%w;DaF#f}g-#3WLqD=l2YwuDa#HFT3TqvDk>_l~6_Az89bp|q{lo{#gmVKuqd4d5 zglSF_vB)bFWy1HMNfN?bs}q&K2?%Krk`T5si+z^&q^w-|pE{k5YU6^rYznW*nnUZp z9`BCa*%_wz6kf^n#w_k+oCe<<4|h+;0&la$j;T;25dFGJWXzzIE00m-nB<6P%qSU* zcuxiTDU^k^oA4hX7}j>1ly71typ@tYh(*xh_!N>%F{5))*)%B>1sH0?G&@n8WQA2! z+*BS?KpiY%8t2hp!rXv_cchG}{2gaHGJy<%@A!riUVS*(%*Q0pEB^n}ffe57ijVu= zVYDb6A$oqahLgC|M=pJ?+2adJ2%74E;JPv=Ts$G@+YY66byFCT$ZNb=2`M!oLfI|$ zQDHKL9A=IO^=az_L;GWRlk#a@d}>NLm$mod(=fac%ezj2K)p&YKv{63R!GIECh@h>I&HK znlH;zzatY~Y?oyjj3RGcXC;2a7Vw<-u|c14_S^?9qt9hOmFvwQ{$vHikkO`m=On}a zGiu0#lOzK4jNokGtQ3ir%TpCz28U5`^RswDd>P!;bFzW!Y7FOn`nk-?uI?p%f&Zy& z)}$9Um@hh9-$1=%0>`jfukH&?GM%GQbZ-srpDMgiWyJQkn7(kEbf~HPXF8gM1cWGz z2_Xec^k*d4Uu&|zN@+yXZ;^@)NuC-_PY(JT9H;Rc|y z^_V0_dU@dbxxJo#QTIpTqHB9){gyOkD3e20VHV~z zZDTlo|A`{vxv?<*cnLZd+A&P#7zg*nD4?ruomzA75 z?+Rmhi!o%%PJEnJhxlKYIX!mne({*1Kw`u%DK;0w$>Cxbaf<$u?WcD7UmO*e!#atdUS=HvB(OcZ$2y{ZqaeBGLyJ6+5+Tk{&YhFT)B^3vDW4g~NY4oHd#A9lxIS`b z_YmG+L~3XOL4Gl7j8m=u2|sus_Fy*Xciv2ul?3NCX>Y|brz~^ThR_i|_DB0w(9c60 z>2&{ZwwUN0Q66A6+Edz%&}eJoeDW8&MTpoJ%A_(|%Aeg&;trJP&m{LW-U)S)ir)?` zqm;F=hy~FR)jXm}>v&HvO$jc{HO&OVHA=T1LCv3B)e3R{lkD8gQ`Q+nHh=;Cq$x2{ zEkX!JrBz4Xc{hI8vbg@!6K6cX~@f(IB$sM1BV1jK(J3I3MY}F*|ScT{y z`ZN`NCRY-xggCNFsRYNhFU5zAGPP9`Aj;q1Avyk}sSLyx@MF)eqOyQrK^20@%@h9f zj`c8Fv`zMWoi=c6pWODJd|ah8eE1-L5ybUx?!t!#p#W$OnIjm{Y#u<^$669*vW0U? zrfJBXP$p21tXw7L{xZZ!*9asW53aNPj+CSP2_2^QQyPJ(-uAoztw>-pP!p_0TVrDt z)y@ah#%?MjAxBp8#zD^2I1{Vx=W%YhXR{0dXe!$Cpykg+UhPg#{?8BkhFeI?{?D&asQCNL7$%q|kt#z^K_$X`)a;>Mi7NoR>*FCyg??(Y%*b$D zvT|u9b0t7I0FX-oG+pq;y$eP%TNpi?8c7H)Cs!|Np=yj-3e<*VegeWgEX2X8pyHOW z3Ogn#s0!2d^GM>Ftj0dH>jx5zB#e%OgN|6g|G&*Qevn3oR)$T4`pB%H@`i9+4MUIl z(&?Y|vpY}@QyJKxSrKk;mmEb738YO*QDrF_ksLVM(HP>x8-Z4my(GulZs!ql(U_|7 z{7Bz0`lt($?5&*v5?{Fr9n|t|!TA4A=$t|c!FR|-*Kn6~u7q`{KG?3bm)CMYN;r0S z_H<7s!jPT+8V0GfBz_q zz>%3I#ktcOGlUz2^~iew8wh_{QD%s7D&@&B-Iy|)>fc}W)N`I+7aqTEJU7-WxUuR2Z z9kfUX-C}rC+e)&06sPSHh1*8@Fue^JtVZW0+2uR*F`VRx$_%6k(B2 z%&Ld&9tk{jwhsXX#XzMq|CaTCFHxvib=q!z5dU-b8Pf;8!Uf71p{CzZz)zsGTKAig z>8|hHZ@t|AqB|dvpI3#x4x9+*aeoAL@e+EV*29nYSaS%laQ|?0LOra**ZMSh&s_fR gGwhXrj7lQ4qrDo-8;trGgb5`ttqiP@G!6Uz0K=#MIsgCw diff --git a/docs/en/advanced_guides/conventions.md b/docs/en/advanced_guides/conventions.md deleted file mode 100644 index da159ac699f..00000000000 --- a/docs/en/advanced_guides/conventions.md +++ /dev/null @@ -1,111 +0,0 @@ -# Conventions - -Please check the following conventions if you would like to modify MMDetection as your own project. - -## About the order of image shape - -In OpenMMLab 2.0, to be consistent with the input argument of OpenCV, the argument about image shape in the data transformation pipeline is always in the `(width, height)` order. On the contrary, for computation convenience, the order of the field going through the data pipeline and the model is `(height, width)`. Specifically, in the results processed by each data transform pipeline, the fields and their value meaning is as below: - -- img_shape: (height, width) -- ori_shape: (height, width) -- pad_shape: (height, width) -- batch_input_shape: (height, width) - -As an example, the initialization arguments of `Mosaic` are as below: - -```python -@TRANSFORMS.register_module() -class Mosaic(BaseTransform): - def __init__(self, - img_scale: Tuple[int, int] = (640, 640), - center_ratio_range: Tuple[float, float] = (0.5, 1.5), - bbox_clip_border: bool = True, - pad_val: float = 114.0, - prob: float = 1.0) -> None: - ... - - # img_scale order should be (width, height) - self.img_scale = img_scale - - def transform(self, results: dict) -> dict: - ... - - results['img'] = mosaic_img - # (height, width) - results['img_shape'] = mosaic_img.shape[:2] -``` - -## Loss - -In MMDetection, a `dict` containing losses and metrics will be returned by `model(**data)`. - -For example, in bbox head, - -```python -class BBoxHead(nn.Module): - ... - def loss(self, ...): - losses = dict() - # classification loss - losses['loss_cls'] = self.loss_cls(...) - # classification accuracy - losses['acc'] = accuracy(...) - # bbox regression loss - losses['loss_bbox'] = self.loss_bbox(...) - return losses -``` - -`bbox_head.loss()` will be called during model forward. -The returned dict contains `'loss_bbox'`, `'loss_cls'`, `'acc'` . -Only `'loss_bbox'`, `'loss_cls'` will be used during back propagation, -`'acc'` will only be used as a metric to monitor training process. - -By default, only values whose keys contain `'loss'` will be back propagated. -This behavior could be changed by modifying `BaseDetector.train_step()`. - -## Empty Proposals - -In MMDetection, We have added special handling and unit test for empty proposals of two-stage. We need to deal with the empty proposals of the entire batch and single image at the same time. For example, in CascadeRoIHead, - -```python -# simple_test method -... -# There is no proposal in the whole batch -if rois.shape[0] == 0: - bbox_results = [[ - np.zeros((0, 5), dtype=np.float32) - for _ in range(self.bbox_head[-1].num_classes) - ]] * num_imgs - if self.with_mask: - mask_classes = self.mask_head[-1].num_classes - segm_results = [[[] for _ in range(mask_classes)] - for _ in range(num_imgs)] - results = list(zip(bbox_results, segm_results)) - else: - results = bbox_results - return results -... - -# There is no proposal in the single image -for i in range(self.num_stages): - ... - if i < self.num_stages - 1: - for j in range(num_imgs): - # Handle empty proposal - if rois[j].shape[0] > 0: - bbox_label = cls_score[j][:, :-1].argmax(dim=1) - refine_roi = self.bbox_head[i].regress_by_class( - rois[j], bbox_label, bbox_pred[j], img_metas[j]) - refine_roi_list.append(refine_roi) -``` - -If you have customized `RoIHead`, you can refer to the above method to deal with empty proposals. - -## Coco Panoptic Dataset - -In MMDetection, we have supported COCO Panoptic dataset. We clarify a few conventions about the implementation of `CocoPanopticDataset` here. - -1. For mmdet\<=2.16.0, the range of foreground and background labels in semantic segmentation are different from the default setting of MMDetection. The label `0` stands for `VOID` label and the category labels start from `1`. - Since mmdet=2.17.0, the category labels of semantic segmentation start from `0` and label `255` stands for `VOID` for consistency with labels of bounding boxes. - To achieve that, the `Pad` pipeline supports setting the padding value for `seg`. -2. In the evaluation, the panoptic result is a map with the same shape as the original image. Each value in the result map has the format of `instance_id * INSTANCE_OFFSET + category_id`. diff --git a/docs/en/advanced_guides/customize_dataset.md b/docs/en/advanced_guides/customize_dataset.md deleted file mode 100644 index 3d63d12c61a..00000000000 --- a/docs/en/advanced_guides/customize_dataset.md +++ /dev/null @@ -1,433 +0,0 @@ -# Customize Datasets - -## Support new data format - -To support a new data format, you can either convert them to existing formats (COCO format or PASCAL format) or directly convert them to the middle format. You could also choose to convert them offline (before training by a script) or online (implement a new dataset and do the conversion at training). In MMDetection, we recommend to convert the data into COCO formats and do the conversion offline, thus you only need to modify the config's data annotation paths and classes after the conversion of your data. - -### Reorganize new data formats to existing format - -The simplest way is to convert your dataset to existing dataset formats (COCO or PASCAL VOC). - -The annotation JSON files in COCO format has the following necessary keys: - -```python -'images': [ - { - 'file_name': 'COCO_val2014_000000001268.jpg', - 'height': 427, - 'width': 640, - 'id': 1268 - }, - ... -], - -'annotations': [ - { - 'segmentation': [[192.81, - 247.09, - ... - 219.03, - 249.06]], # If you have mask labels, and it is in polygon XY point coordinate format, you need to ensure that at least 3 point coordinates are included. Otherwise, it is an invalid polygon. - 'area': 1035.749, - 'iscrowd': 0, - 'image_id': 1268, - 'bbox': [192.81, 224.8, 74.73, 33.43], - 'category_id': 16, - 'id': 42986 - }, - ... -], - -'categories': [ - {'id': 0, 'name': 'car'}, - ] -``` - -There are three necessary keys in the JSON file: - -- `images`: contains a list of images with their information like `file_name`, `height`, `width`, and `id`. -- `annotations`: contains the list of instance annotations. -- `categories`: contains the list of categories names and their ID. - -After the data pre-processing, there are two steps for users to train the customized new dataset with existing format (e.g. COCO format): - -1. Modify the config file for using the customized dataset. -2. Check the annotations of the customized dataset. - -Here we give an example to show the above two steps, which uses a customized dataset of 5 classes with COCO format to train an existing Cascade Mask R-CNN R50-FPN detector. - -#### 1. Modify the config file for using the customized dataset - -There are two aspects involved in the modification of config file: - -1. The `data` field. Specifically, you need to explicitly add the `metainfo=dict(classes=classes)` fields in `train_dataloader.dataset`, `val_dataloader.dataset` and `test_dataloader.dataset` and `classes` must be a tuple type. -2. The `num_classes` field in the `model` part. Explicitly over-write all the `num_classes` from default value (e.g. 80 in COCO) to your classes number. - -In `configs/my_custom_config.py`: - -```python - -# the new config inherits the base configs to highlight the necessary modification -_base_ = './cascade_mask_rcnn_r50_fpn_1x_coco.py' - -# 1. dataset settings -dataset_type = 'CocoDataset' -classes = ('a', 'b', 'c', 'd', 'e') -data_root='path/to/your/' - -train_dataloader = dict( - batch_size=2, - num_workers=2, - dataset=dict( - type=dataset_type, - # explicitly add your class names to the field `metainfo` - metainfo=dict(classes=classes), - data_root=data_root, - ann_file='train/annotation_data', - data_prefix=dict(img='train/image_data') - ) - ) - -val_dataloader = dict( - batch_size=1, - num_workers=2, - dataset=dict( - type=dataset_type, - test_mode=True, - # explicitly add your class names to the field `metainfo` - metainfo=dict(classes=classes), - data_root=data_root, - ann_file='val/annotation_data', - data_prefix=dict(img='val/image_data') - ) - ) - -test_dataloader = dict( - batch_size=1, - num_workers=2, - dataset=dict( - type=dataset_type, - test_mode=True, - # explicitly add your class names to the field `metainfo` - metainfo=dict(classes=classes), - data_root=data_root, - ann_file='test/annotation_data', - data_prefix=dict(img='test/image_data') - ) - ) - -# 2. model settings - -# explicitly over-write all the `num_classes` field from default 80 to 5. -model = dict( - roi_head=dict( - bbox_head=[ - dict( - type='Shared2FCBBoxHead', - # explicitly over-write all the `num_classes` field from default 80 to 5. - num_classes=5), - dict( - type='Shared2FCBBoxHead', - # explicitly over-write all the `num_classes` field from default 80 to 5. - num_classes=5), - dict( - type='Shared2FCBBoxHead', - # explicitly over-write all the `num_classes` field from default 80 to 5. - num_classes=5)], - # explicitly over-write all the `num_classes` field from default 80 to 5. - mask_head=dict(num_classes=5))) -``` - -#### 2. Check the annotations of the customized dataset - -Assuming your customized dataset is COCO format, make sure you have the correct annotations in the customized dataset: - -1. The length for `categories` field in annotations should exactly equal the tuple length of `classes` fields in your config, meaning the number of classes (e.g. 5 in this example). -2. The `classes` fields in your config file should have exactly the same elements and the same order with the `name` in `categories` of annotations. MMDetection automatically maps the uncontinuous `id` in `categories` to the continuous label indices, so the string order of `name` in `categories` field affects the order of label indices. Meanwhile, the string order of `classes` in config affects the label text during visualization of predicted bounding boxes. -3. The `category_id` in `annotations` field should be valid, i.e., all values in `category_id` should belong to `id` in `categories`. - -Here is a valid example of annotations: - -```python - -'annotations': [ - { - 'segmentation': [[192.81, - 247.09, - ... - 219.03, - 249.06]], # if you have mask labels - 'area': 1035.749, - 'iscrowd': 0, - 'image_id': 1268, - 'bbox': [192.81, 224.8, 74.73, 33.43], - 'category_id': 16, - 'id': 42986 - }, - ... -], - -# MMDetection automatically maps the uncontinuous `id` to the continuous label indices. -'categories': [ - {'id': 1, 'name': 'a'}, {'id': 3, 'name': 'b'}, {'id': 4, 'name': 'c'}, {'id': 16, 'name': 'd'}, {'id': 17, 'name': 'e'}, - ] -``` - -We use this way to support CityScapes dataset. The script is in [cityscapes.py](../../../tools/dataset_converters/cityscapes.py) and we also provide the finetuning [configs](../../../configs/cityscapes). - -**Note** - -1. For instance segmentation datasets, **MMDetection only supports evaluating mask AP of dataset in COCO format for now**. -2. It is recommended to convert the data offline before training, thus you can still use `CocoDataset` and only need to modify the path of annotations and the training classes. - -### Reorganize new data format to middle format - -It is also fine if you do not want to convert the annotation format to COCO or PASCAL format. -Actually, we define a simple annotation format in MMEninge's [BaseDataset](https://github.com/open-mmlab/mmengine/blob/main/mmengine/dataset/base_dataset.py#L116) and all existing datasets are -processed to be compatible with it, either online or offline. - -The annotation of the dataset must be in `json` or `yaml`, `yml` or `pickle`, `pkl` format; the dictionary stored in the annotation file must contain two fields `metainfo` and `data_list`. The `metainfo` is a dictionary, which contains the metadata of the dataset, such as class information; `data_list` is a list, each element in the list is a dictionary, the dictionary defines the raw data of one image, and each raw data contains a or several training/testing samples. - -Here is an example. - -```python -{ - 'metainfo': - { - 'classes': ('person', 'bicycle', 'car', 'motorcycle'), - ... - }, - 'data_list': - [ - { - "img_path": "xxx/xxx_1.jpg", - "height": 604, - "width": 640, - "instances": - [ - { - "bbox": [0, 0, 10, 20], - "bbox_label": 1, - "ignore_flag": 0 - }, - { - "bbox": [10, 10, 110, 120], - "bbox_label": 2, - "ignore_flag": 0 - } - ] - }, - { - "img_path": "xxx/xxx_2.jpg", - "height": 320, - "width": 460, - "instances": - [ - { - "bbox": [10, 0, 20, 20], - "bbox_label": 3, - "ignore_flag": 1, - } - ] - }, - ... - ] -} -``` - -Some datasets may provide annotations like crowd/difficult/ignored bboxes, we use `ignore_flag`to cover them. - -After obtaining the above standard data annotation format, you can directly use [BaseDetDataset](../../../mmdet/datasets/base_det_dataset.py#L13) of MMDetection in the configuration , without conversion. - -### An example of customized dataset - -Assume the annotation is in a new format in text files. -The bounding boxes annotations are stored in text file `annotation.txt` as the following - -``` -# -000001.jpg -1280 720 -2 -10 20 40 60 1 -20 40 50 60 2 -# -000002.jpg -1280 720 -3 -50 20 40 60 2 -20 40 30 45 2 -30 40 50 60 3 -``` - -We can create a new dataset in `mmdet/datasets/my_dataset.py` to load the data. - -```python -import mmengine - -from mmdet.base_det_dataset import BaseDetDataset -from mmdet.registry import DATASETS - - -@DATASETS.register_module() -class MyDataset(BaseDetDataset): - - METAINFO = { - 'classes': ('person', 'bicycle', 'car', 'motorcycle'), - 'palette': [(220, 20, 60), (119, 11, 32), (0, 0, 142), (0, 0, 230)] - } - - def load_data_list(self, ann_file): - ann_list = mmengine.list_from_file(ann_file) - - data_infos = [] - for i, ann_line in enumerate(ann_list): - if ann_line != '#': - continue - - img_shape = ann_list[i + 2].split(' ') - width = int(img_shape[0]) - height = int(img_shape[1]) - bbox_number = int(ann_list[i + 3]) - - instances = [] - for anns in ann_list[i + 4:i + 4 + bbox_number]: - instance = {} - instance['bbox'] = [float(ann) for ann in anns.split(' ')[:4]] - instance['bbox_label']=int(anns[4]) - instances.append(instance) - - data_infos.append( - dict( - img_path=ann_list[i + 1], - img_id=i, - width=width, - height=height, - instances=instances - )) - - return data_infos -``` - -Then in the config, to use `MyDataset` you can modify the config as the following - -```python -dataset_A_train = dict( - type='MyDataset', - ann_file = 'image_list.txt', - pipeline=train_pipeline -) -``` - -## Customize datasets by dataset wrappers - -MMEngine also supports many dataset wrappers to mix the dataset or modify the dataset distribution for training. -Currently it supports to three dataset wrappers as below: - -- `RepeatDataset`: simply repeat the whole dataset. -- `ClassBalancedDataset`: repeat dataset in a class balanced manner. -- `ConcatDataset`: concat datasets. - -For detailed usage, see [MMEngine Dataset Wrapper](#TODO). - -## Modify Dataset Classes - -With existing dataset types, we can modify the metainfo of them to train subset of the annotations. -For example, if you want to train only three classes of the current dataset, -you can modify the classes of dataset. -The dataset will filter out the ground truth boxes of other classes automatically. - -```python -classes = ('person', 'bicycle', 'car') -train_dataloader = dict( - dataset=dict( - metainfo=dict(classes=classes)) - ) -val_dataloader = dict( - dataset=dict( - metainfo=dict(classes=classes)) - ) -test_dataloader = dict( - dataset=dict( - metainfo=dict(classes=classes)) - ) -``` - -**Note**: - -- Before MMDetection v2.5.0, the dataset will filter out the empty GT images automatically if the classes are set and there is no way to disable that through config. This is an undesirable behavior and introduces confusion because if the classes are not set, the dataset only filter the empty GT images when `filter_empty_gt=True` and `test_mode=False`. After MMDetection v2.5.0, we decouple the image filtering process and the classes modification, i.e., the dataset will only filter empty GT images when `filter_cfg=dict(filter_empty_gt=True)` and `test_mode=False`, no matter whether the classes are set. Thus, setting the classes only influences the annotations of classes used for training and users could decide whether to filter empty GT images by themselves. -- When directly using `BaseDataset` in MMEngine or `BaseDetDataset` in MMDetection, users cannot filter images without GT by modifying the configuration, but it can be solved in an offline way. -- Please remember to modify the `num_classes` in the head when specifying `classes` in dataset. We implemented [NumClassCheckHook](../../../mmdet/engine/hooks/num_class_check_hook.py) to check whether the numbers are consistent since v2.9.0(after PR#4508). - -## COCO Panoptic Dataset - -Now we support COCO Panoptic Dataset, the format of panoptic annotations is different from COCO format. -Both the foreground and the background will exist in the annotation file. -The annotation json files in COCO Panoptic format has the following necessary keys: - -```python -'images': [ - { - 'file_name': '000000001268.jpg', - 'height': 427, - 'width': 640, - 'id': 1268 - }, - ... -] - -'annotations': [ - { - 'filename': '000000001268.jpg', - 'image_id': 1268, - 'segments_info': [ - { - 'id':8345037, # One-to-one correspondence with the id in the annotation map. - 'category_id': 51, - 'iscrowd': 0, - 'bbox': (x1, y1, w, h), # The bbox of the background is the outer rectangle of its mask. - 'area': 24315 - }, - ... - ] - }, - ... -] - -'categories': [ # including both foreground categories and background categories - {'id': 0, 'name': 'person'}, - ... - ] -``` - -Moreover, the `seg` must be set to the path of the panoptic annotation images. - -```python -dataset_type = 'CocoPanopticDataset' -data_root='path/to/your/' - -train_dataloader = dict( - dataset=dict( - type=dataset_type, - data_root=data_root, - data_prefix=dict( - img='train/image_data/', seg='train/panoptic/image_annotation_data/') - ) -) -val_dataloader = dict( - dataset=dict( - type=dataset_type, - data_root=data_root, - data_prefix=dict( - img='val/image_data/', seg='val/panoptic/image_annotation_data/') - ) -) -test_dataloader = dict( - dataset=dict( - type=dataset_type, - data_root=data_root, - data_prefix=dict( - img='test/image_data/', seg='test/panoptic/image_annotation_data/') - ) -) -``` diff --git a/docs/en/advanced_guides/customize_losses.md b/docs/en/advanced_guides/customize_losses.md deleted file mode 100644 index 3120dc01ffe..00000000000 --- a/docs/en/advanced_guides/customize_losses.md +++ /dev/null @@ -1,126 +0,0 @@ -# Customize Losses - -MMDetection provides users with different loss functions. But the default configuration may be not applicable for different datasets or models, so users may want to modify a specific loss to adapt the new situation. - -This tutorial first elaborate the computation pipeline of losses, then give some instructions about how to modify each step. The modification can be categorized as tweaking and weighting. - -## Computation pipeline of a loss - -Given the input prediction and target, as well as the weights, a loss function maps the input tensor to the final loss scalar. The mapping can be divided into five steps: - -1. Set the sampling method to sample positive and negative samples. - -2. Get **element-wise** or **sample-wise** loss by the loss kernel function. - -3. Weighting the loss with a weight tensor **element-wisely**. - -4. Reduce the loss tensor to a **scalar**. - -5. Weighting the loss with a **scalar**. - -## Set sampling method (step 1) - -For some loss functions, sampling strategies are needed to avoid imbalance between positive and negative samples. - -For example, when using `CrossEntropyLoss` in RPN head, we need to set `RandomSampler` in `train_cfg` - -```python -train_cfg=dict( - rpn=dict( - sampler=dict( - type='RandomSampler', - num=256, - pos_fraction=0.5, - neg_pos_ub=-1, - add_gt_as_proposals=False)) -``` - -For some other losses which have positive and negative sample balance mechanism such as Focal Loss, GHMC, and QualityFocalLoss, the sampler is no more necessary. - -## Tweaking loss - -Tweaking a loss is more related with step 2, 4, 5, and most modifications can be specified in the config. -Here we take [Focal Loss (FL)](../../../mmdet/models/losses/focal_loss.py) as an example. -The following code sniper are the construction method and config of FL respectively, they are actually one to one correspondence. - -```python -@LOSSES.register_module() -class FocalLoss(nn.Module): - - def __init__(self, - use_sigmoid=True, - gamma=2.0, - alpha=0.25, - reduction='mean', - loss_weight=1.0): -``` - -```python -loss_cls=dict( - type='FocalLoss', - use_sigmoid=True, - gamma=2.0, - alpha=0.25, - loss_weight=1.0) -``` - -### Tweaking hyper-parameters (step 2) - -`gamma` and `beta` are two hyper-parameters in the Focal Loss. Say if we want to change the value of `gamma` to be 1.5 and `alpha` to be 0.5, then we can specify them in the config as follows: - -```python -loss_cls=dict( - type='FocalLoss', - use_sigmoid=True, - gamma=1.5, - alpha=0.5, - loss_weight=1.0) -``` - -### Tweaking the way of reduction (step 3) - -The default way of reduction is `mean` for FL. Say if we want to change the reduction from `mean` to `sum`, we can specify it in the config as follows: - -```python -loss_cls=dict( - type='FocalLoss', - use_sigmoid=True, - gamma=2.0, - alpha=0.25, - loss_weight=1.0, - reduction='sum') -``` - -### Tweaking loss weight (step 5) - -The loss weight here is a scalar which controls the weight of different losses in multi-task learning, e.g. classification loss and regression loss. Say if we want to change to loss weight of classification loss to be 0.5, we can specify it in the config as follows: - -```python -loss_cls=dict( - type='FocalLoss', - use_sigmoid=True, - gamma=2.0, - alpha=0.25, - loss_weight=0.5) -``` - -## Weighting loss (step 3) - -Weighting loss means we re-weight the loss element-wisely. To be more specific, we multiply the loss tensor with a weight tensor which has the same shape. As a result, different entries of the loss can be scaled differently, and so called element-wisely. -The loss weight varies across different models and highly context related, but overall there are two kinds of loss weights, `label_weights` for classification loss and `bbox_weights` for bbox regression loss. You can find them in the `get_target` method of the corresponding head. Here we take [ATSSHead](../../../mmdet/models/dense_heads/atss_head.py#L322) as an example, which inherit [AnchorHead](../../../mmdet/models/dense_heads/anchor_head.py) but overwrite its `get_targets` method which yields different `label_weights` and `bbox_weights`. - -``` -class ATSSHead(AnchorHead): - - ... - - def get_targets(self, - anchor_list, - valid_flag_list, - gt_bboxes_list, - img_metas, - gt_bboxes_ignore_list=None, - gt_labels_list=None, - label_channels=1, - unmap_outputs=True): -``` diff --git a/docs/en/advanced_guides/customize_models.md b/docs/en/advanced_guides/customize_models.md deleted file mode 100644 index 1779aeb1aa1..00000000000 --- a/docs/en/advanced_guides/customize_models.md +++ /dev/null @@ -1,412 +0,0 @@ -# Customize Models - -We basically categorize model components into 5 types. - -- backbone: usually an FCN network to extract feature maps, e.g., ResNet, MobileNet. -- neck: the component between backbones and heads, e.g., FPN, PAFPN. -- head: the component for specific tasks, e.g., bbox prediction and mask prediction. -- roi extractor: the part for extracting RoI features from feature maps, e.g., RoI Align. -- loss: the component in head for calculating losses, e.g., FocalLoss, L1Loss, and GHMLoss. - -## Develop new components - -### Add a new backbone - -Here we show how to develop new components with an example of MobileNet. - -#### 1. Define a new backbone (e.g. MobileNet) - -Create a new file `mmdet/models/backbones/mobilenet.py`. - -```python -import torch.nn as nn - -from mmdet.registry import MODELS - - -@MODELS.register_module() -class MobileNet(nn.Module): - - def __init__(self, arg1, arg2): - pass - - def forward(self, x): # should return a tuple - pass -``` - -#### 2. Import the module - -You can either add the following line to `mmdet/models/backbones/__init__.py` - -```python -from .mobilenet import MobileNet -``` - -or alternatively add - -```python -custom_imports = dict( - imports=['mmdet.models.backbones.mobilenet'], - allow_failed_imports=False) -``` - -to the config file to avoid modifying the original code. - -#### 3. Use the backbone in your config file - -```python -model = dict( - ... - backbone=dict( - type='MobileNet', - arg1=xxx, - arg2=xxx), - ... -``` - -### Add new necks - -#### 1. Define a neck (e.g. PAFPN) - -Create a new file `mmdet/models/necks/pafpn.py`. - -```python -import torch.nn as nn - -from mmdet.registry import MODELS - -@MODELS.register_module() -class PAFPN(nn.Module): - - def __init__(self, - in_channels, - out_channels, - num_outs, - start_level=0, - end_level=-1, - add_extra_convs=False): - pass - - def forward(self, inputs): - # implementation is ignored - pass -``` - -#### 2. Import the module - -You can either add the following line to `mmdet/models/necks/__init__.py`, - -```python -from .pafpn import PAFPN -``` - -or alternatively add - -```python -custom_imports = dict( - imports=['mmdet.models.necks.pafpn'], - allow_failed_imports=False) -``` - -to the config file and avoid modifying the original code. - -#### 3. Modify the config file - -```python -neck=dict( - type='PAFPN', - in_channels=[256, 512, 1024, 2048], - out_channels=256, - num_outs=5) -``` - -### Add new heads - -Here we show how to develop a new head with the example of [Double Head R-CNN](https://arxiv.org/abs/1904.06493) as the following. - -First, add a new bbox head in `mmdet/models/roi_heads/bbox_heads/double_bbox_head.py`. -Double Head R-CNN implements a new bbox head for object detection. -To implement a bbox head, basically we need to implement three functions of the new module as the following. - -```python -from typing import Tuple - -import torch.nn as nn -from mmcv.cnn import ConvModule -from mmengine.model import BaseModule, ModuleList -from torch import Tensor - -from mmdet.models.backbones.resnet import Bottleneck -from mmdet.registry import MODELS -from mmdet.utils import ConfigType, MultiConfig, OptConfigType, OptMultiConfig -from .bbox_head import BBoxHead - -@MODELS.register_module() -class DoubleConvFCBBoxHead(BBoxHead): - r"""Bbox head used in Double-Head R-CNN - - .. code-block:: none - - /-> cls - /-> shared convs -> - \-> reg - roi features - /-> cls - \-> shared fc -> - \-> reg - """ # noqa: W605 - - def __init__(self, - num_convs: int = 0, - num_fcs: int = 0, - conv_out_channels: int = 1024, - fc_out_channels: int = 1024, - conv_cfg: OptConfigType = None, - norm_cfg: ConfigType = dict(type='BN'), - init_cfg: MultiConfig = dict( - type='Normal', - override=[ - dict(type='Normal', name='fc_cls', std=0.01), - dict(type='Normal', name='fc_reg', std=0.001), - dict( - type='Xavier', - name='fc_branch', - distribution='uniform') - ]), - **kwargs) -> None: - kwargs.setdefault('with_avg_pool', True) - super().__init__(init_cfg=init_cfg, **kwargs) - - def forward(self, x_cls: Tensor, x_reg: Tensor) -> Tuple[Tensor]: - -``` - -Second, implement a new RoI Head if it is necessary. We plan to inherit the new `DoubleHeadRoIHead` from `StandardRoIHead`. We can find that a `StandardRoIHead` already implements the following functions. - -```python -from typing import List, Optional, Tuple - -import torch -from torch import Tensor - -from mmdet.registry import MODELS, TASK_UTILS -from mmdet.structures import DetDataSample -from mmdet.structures.bbox import bbox2roi -from mmdet.utils import ConfigType, InstanceList -from ..task_modules.samplers import SamplingResult -from ..utils import empty_instances, unpack_gt_instances -from .base_roi_head import BaseRoIHead - - -@MODELS.register_module() -class StandardRoIHead(BaseRoIHead): - """Simplest base roi head including one bbox head and one mask head.""" - - def init_assigner_sampler(self) -> None: - - def init_bbox_head(self, bbox_roi_extractor: ConfigType, - bbox_head: ConfigType) -> None: - - def init_mask_head(self, mask_roi_extractor: ConfigType, - mask_head: ConfigType) -> None: - - def forward(self, x: Tuple[Tensor], - rpn_results_list: InstanceList) -> tuple: - - def loss(self, x: Tuple[Tensor], rpn_results_list: InstanceList, - batch_data_samples: List[DetDataSample]) -> dict: - - def _bbox_forward(self, x: Tuple[Tensor], rois: Tensor) -> dict: - - def bbox_loss(self, x: Tuple[Tensor], - sampling_results: List[SamplingResult]) -> dict: - - def mask_loss(self, x: Tuple[Tensor], - sampling_results: List[SamplingResult], bbox_feats: Tensor, - batch_gt_instances: InstanceList) -> dict: - - def _mask_forward(self, - x: Tuple[Tensor], - rois: Tensor = None, - pos_inds: Optional[Tensor] = None, - bbox_feats: Optional[Tensor] = None) -> dict: - - def predict_bbox(self, - x: Tuple[Tensor], - batch_img_metas: List[dict], - rpn_results_list: InstanceList, - rcnn_test_cfg: ConfigType, - rescale: bool = False) -> InstanceList: - - def predict_mask(self, - x: Tuple[Tensor], - batch_img_metas: List[dict], - results_list: InstanceList, - rescale: bool = False) -> InstanceList: - -``` - -Double Head's modification is mainly in the `bbox_forward` logic, and it inherits other logics from the `StandardRoIHead`. In the `mmdet/models/roi_heads/double_roi_head.py`, we implement the new RoI Head as the following: - -```python -from typing import Tuple - -from torch import Tensor - -from mmdet.registry import MODELS -from .standard_roi_head import StandardRoIHead - - -@MODELS.register_module() -class DoubleHeadRoIHead(StandardRoIHead): - """RoI head for `Double Head RCNN `_. - - Args: - reg_roi_scale_factor (float): The scale factor to extend the rois - used to extract the regression features. - """ - - def __init__(self, reg_roi_scale_factor: float, **kwargs): - super().__init__(**kwargs) - self.reg_roi_scale_factor = reg_roi_scale_factor - - def _bbox_forward(self, x: Tuple[Tensor], rois: Tensor) -> dict: - """Box head forward function used in both training and testing. - - Args: - x (tuple[Tensor]): List of multi-level img features. - rois (Tensor): RoIs with the shape (n, 5) where the first - column indicates batch id of each RoI. - - Returns: - dict[str, Tensor]: Usually returns a dictionary with keys: - - - `cls_score` (Tensor): Classification scores. - - `bbox_pred` (Tensor): Box energies / deltas. - - `bbox_feats` (Tensor): Extract bbox RoI features. - """ - bbox_cls_feats = self.bbox_roi_extractor( - x[:self.bbox_roi_extractor.num_inputs], rois) - bbox_reg_feats = self.bbox_roi_extractor( - x[:self.bbox_roi_extractor.num_inputs], - rois, - roi_scale_factor=self.reg_roi_scale_factor) - if self.with_shared_head: - bbox_cls_feats = self.shared_head(bbox_cls_feats) - bbox_reg_feats = self.shared_head(bbox_reg_feats) - cls_score, bbox_pred = self.bbox_head(bbox_cls_feats, bbox_reg_feats) - - bbox_results = dict( - cls_score=cls_score, - bbox_pred=bbox_pred, - bbox_feats=bbox_cls_feats) - return bbox_results -``` - -Last, the users need to add the module in -`mmdet/models/bbox_heads/__init__.py` and `mmdet/models/roi_heads/__init__.py` thus the corresponding registry could find and load them. - -Alternatively, the users can add - -```python -custom_imports=dict( - imports=['mmdet.models.roi_heads.double_roi_head', 'mmdet.models.roi_heads.bbox_heads.double_bbox_head']) -``` - -to the config file and achieve the same goal. - -The config file of Double Head R-CNN is as the following - -```python -_base_ = '../faster_rcnn/faster-rcnn_r50_fpn_1x_coco.py' -model = dict( - roi_head=dict( - type='DoubleHeadRoIHead', - reg_roi_scale_factor=1.3, - bbox_head=dict( - _delete_=True, - type='DoubleConvFCBBoxHead', - num_convs=4, - num_fcs=2, - in_channels=256, - conv_out_channels=1024, - fc_out_channels=1024, - roi_feat_size=7, - num_classes=80, - bbox_coder=dict( - type='DeltaXYWHBBoxCoder', - target_means=[0., 0., 0., 0.], - target_stds=[0.1, 0.1, 0.2, 0.2]), - reg_class_agnostic=False, - loss_cls=dict( - type='CrossEntropyLoss', use_sigmoid=False, loss_weight=2.0), - loss_bbox=dict(type='SmoothL1Loss', beta=1.0, loss_weight=2.0)))) - -``` - -Since MMDetection 2.0, the config system supports to inherit configs such that the users can focus on the modification. -The Double Head R-CNN mainly uses a new `DoubleHeadRoIHead` and a new `DoubleConvFCBBoxHead `, the arguments are set according to the `__init__` function of each module. - -### Add new loss - -Assume you want to add a new loss as `MyLoss`, for bounding box regression. -To add a new loss function, the users need implement it in `mmdet/models/losses/my_loss.py`. -The decorator `weighted_loss` enable the loss to be weighted for each element. - -```python -import torch -import torch.nn as nn - -from mmdet.registry import MODELS -from .utils import weighted_loss - -@weighted_loss -def my_loss(pred, target): - assert pred.size() == target.size() and target.numel() > 0 - loss = torch.abs(pred - target) - return loss - -@MODELS.register_module() -class MyLoss(nn.Module): - - def __init__(self, reduction='mean', loss_weight=1.0): - super(MyLoss, self).__init__() - self.reduction = reduction - self.loss_weight = loss_weight - - def forward(self, - pred, - target, - weight=None, - avg_factor=None, - reduction_override=None): - assert reduction_override in (None, 'none', 'mean', 'sum') - reduction = ( - reduction_override if reduction_override else self.reduction) - loss_bbox = self.loss_weight * my_loss( - pred, target, weight, reduction=reduction, avg_factor=avg_factor) - return loss_bbox -``` - -Then the users need to add it in the `mmdet/models/losses/__init__.py`. - -```python -from .my_loss import MyLoss, my_loss - -``` - -Alternatively, you can add - -```python -custom_imports=dict( - imports=['mmdet.models.losses.my_loss']) -``` - -to the config file and achieve the same goal. - -To use it, modify the `loss_xxx` field. -Since MyLoss is for regression, you need to modify the `loss_bbox` field in the head. - -```python -loss_bbox=dict(type='MyLoss', loss_weight=1.0)) -``` diff --git a/docs/en/advanced_guides/customize_runtime.md b/docs/en/advanced_guides/customize_runtime.md deleted file mode 100644 index e6ce740a492..00000000000 --- a/docs/en/advanced_guides/customize_runtime.md +++ /dev/null @@ -1,391 +0,0 @@ -# Customize Runtime Settings - -## Customize optimization settings - -Optimization related configuration is now all managed by `optim_wrapper` which usually has three fields: `optimizer`, `paramwise_cfg`, `clip_grad`, refer to [OptimWrapper](https://mmengine.readthedocs.io/en/latest/tutorials/optim_wrapper.md) for more detail. See the example below, where `Adamw` is used as an `optimizer`, the learning rate of the backbone is reduced by a factor of 10, and gradient clipping is added. - -```python -optim_wrapper = dict( - type='OptimWrapper', - # optimizer - optimizer=dict( - type='AdamW', - lr=0.0001, - weight_decay=0.05, - eps=1e-8, - betas=(0.9, 0.999)), - - # Parameter-level learning rate and weight decay settings - paramwise_cfg=dict( - custom_keys={ - 'backbone': dict(lr_mult=0.1, decay_mult=1.0), - }, - norm_decay_mult=0.0), - - # gradient clipping - clip_grad=dict(max_norm=0.01, norm_type=2)) -``` - -### Customize optimizer supported by Pytorch - -We already support to use all the optimizers implemented by PyTorch, and the only modification is to change the `optimizer` field in `optim_wrapper` field of config files. For example, if you want to use `ADAM` (note that the performance could drop a lot), the modification could be as the following. - -```python -optim_wrapper = dict( - type='OptimWrapper', - optimizer=dict(type='Adam', lr=0.0003, weight_decay=0.0001)) -``` - -To modify the learning rate of the model, the users only need to modify the `lr` in `optimizer`. The users can directly set arguments following the [API doc](https://pytorch.org/docs/stable/optim.html?highlight=optim#module-torch.optim) of PyTorch. - -### Customize self-implemented optimizer - -#### 1. Define a new optimizer - -A customized optimizer could be defined as following. - -Assume you want to add a optimizer named `MyOptimizer`, which has arguments `a`, `b`, and `c`. -You need to create a new directory named `mmdet/engine/optimizers`. And then implement the new optimizer in a file, e.g., in `mmdet/engine/optimizers/my_optimizer.py`: - -```python -from mmdet.registry import OPTIMIZERS -from torch.optim import Optimizer - - -@OPTIMIZERS.register_module() -class MyOptimizer(Optimizer): - - def __init__(self, a, b, c) - -``` - -#### 2. Add the optimizer to registry - -To find the above module defined above, this module should be imported into the main namespace at first. There are two options to achieve it. - -- Modify `mmdet/engine/optimizers/__init__.py` to import it. - - The newly defined module should be imported in `mmdet/engine/optimizers/__init__.py` so that the registry will find the new module and add it: - -```python -from .my_optimizer import MyOptimizer -``` - -- Use `custom_imports` in the config to manually import it - -```python -custom_imports = dict(imports=['mmdet.engine.optimizers.my_optimizer'], allow_failed_imports=False) -``` - -The module `mmdet.engine.optimizers.my_optimizer` will be imported at the beginning of the program and the class `MyOptimizer` is then automatically registered. -Note that only the package containing the class `MyOptimizer` should be imported. -`mmdet.engine.optimizers.my_optimizer.MyOptimizer` **cannot** be imported directly. - -Actually users can use a totally different file directory structure using this importing method, as long as the module root can be located in `PYTHONPATH`. - -#### 3. Specify the optimizer in the config file - -Then you can use `MyOptimizer` in `optimizer` field in `optim_wrapper` field of config files. In the configs, the optimizers are defined by the field `optimizer` like the following: - -```python -optim_wrapper = dict( - type='OptimWrapper', - optimizer=dict(type='SGD', lr=0.02, momentum=0.9, weight_decay=0.0001)) -``` - -To use your own optimizer, the field can be changed to - -```python -optim_wrapper = dict( - type='OptimWrapper', - optimizer=dict(type='MyOptimizer', a=a_value, b=b_value, c=c_value)) -``` - -### Customize optimizer wrapper constructor - -Some models may have some parameter-specific settings for optimization, e.g. weight decay for BatchNorm layers. -The users can do those fine-grained parameter tuning through customizing optimizer wrapper constructor. - -```python -from mmengine.optim import DefaultOptiWrapperConstructor - -from mmdet.registry import OPTIM_WRAPPER_CONSTRUCTORS -from .my_optimizer import MyOptimizer - - -@OPTIM_WRAPPER_CONSTRUCTORS.register_module() -class MyOptimizerWrapperConstructor(DefaultOptimWrapperConstructor): - - def __init__(self, - optim_wrapper_cfg: dict, - paramwise_cfg: Optional[dict] = None): - - def __call__(self, model: nn.Module) -> OptimWrapper: - - return optim_wrapper - -``` - -The default optimizer wrapper constructor is implemented [here](https://github.com/open-mmlab/mmengine/blob/main/mmengine/optim/optimizer/default_constructor.py#L18), which could also serve as a template for the new optimizer wrapper constructor. - -### Additional settings - -Tricks not implemented by the optimizer should be implemented through optimizer wrapper constructor (e.g., set parameter-wise learning rates) or hooks. We list some common settings that could stabilize the training or accelerate the training. Feel free to create PR, issue for more settings. - -- __Use gradient clip to stabilize training__: - Some models need gradient clip to clip the gradients to stabilize the training process. An example is as below: - - ```python - optim_wrapper = dict( - _delete_=True, clip_grad=dict(max_norm=35, norm_type=2)) - ``` - - If your config inherits the base config which already sets the `optim_wrapper`, you might need `_delete_=True` to override the unnecessary settings. See the [config documentation](../user_guides/config.md) for more details. - -- __Use momentum schedule to accelerate model convergence__: - We support momentum scheduler to modify model's momentum according to learning rate, which could make the model converge in a faster way. - Momentum scheduler is usually used with LR scheduler, for example, the following config is used in [3D detection](https://github.com/open-mmlab/mmdetection3d/blob/dev-1.x/configs/_base_/schedules/cyclic-20e.py) to accelerate convergence. - For more details, please refer to the implementation of [CosineAnnealingLR](https://github.com/open-mmlab/mmengine/blob/main/mmengine/optim/scheduler/lr_scheduler.py#L43) and [CosineAnnealingMomentum](https://github.com/open-mmlab/mmengine/blob/main/mmengine/optim/scheduler/momentum_scheduler.py#L71). - - ```python - param_scheduler = [ - # learning rate scheduler - # During the first 8 epochs, learning rate increases from 0 to lr * 10 - # during the next 12 epochs, learning rate decreases from lr * 10 to lr * 1e-4 - dict( - type='CosineAnnealingLR', - T_max=8, - eta_min=lr * 10, - begin=0, - end=8, - by_epoch=True, - convert_to_iter_based=True), - dict( - type='CosineAnnealingLR', - T_max=12, - eta_min=lr * 1e-4, - begin=8, - end=20, - by_epoch=True, - convert_to_iter_based=True), - # momentum scheduler - # During the first 8 epochs, momentum increases from 0 to 0.85 / 0.95 - # during the next 12 epochs, momentum increases from 0.85 / 0.95 to 1 - dict( - type='CosineAnnealingMomentum', - T_max=8, - eta_min=0.85 / 0.95, - begin=0, - end=8, - by_epoch=True, - convert_to_iter_based=True), - dict( - type='CosineAnnealingMomentum', - T_max=12, - eta_min=1, - begin=8, - end=20, - by_epoch=True, - convert_to_iter_based=True) - ] - ``` - -## Customize training schedules - -By default we use step learning rate with 1x schedule, this calls [MultiStepLR](https://github.com/open-mmlab/mmengine/blob/main/mmengine/optim/scheduler/lr_scheduler.py#L139) in MMEngine. -We support many other learning rate schedule [here](https://github.com/open-mmlab/mmengine/blob/main/mmengine/optim/scheduler/lr_scheduler.py), such as `CosineAnnealingLR` and `PolyLR` schedule. Here are some examples - -- Poly schedule: - - ```python - param_scheduler = [ - dict( - type='PolyLR', - power=0.9, - eta_min=1e-4, - begin=0, - end=8, - by_epoch=True)] - ``` - -- ConsineAnnealing schedule: - - ```python - param_scheduler = [ - dict( - type='CosineAnnealingLR', - T_max=8, - eta_min=lr * 1e-5, - begin=0, - end=8, - by_epoch=True)] - - ``` - -## Customize train loop - -By default, `EpochBasedTrainLoop` is used in `train_cfg` and validation is done after every train epoch, as follows. - -```python -train_cfg = dict(type='EpochBasedTrainLoop', max_epochs=12, val_begin=1, val_interval=1) -``` - -Actually, both [`IterBasedTrainLoop`](https://github.com/open-mmlab/mmengine/blob/main/mmengine/runner/loops.py#L183%5D) and [`EpochBasedTrainLoop`](https://github.com/open-mmlab/mmengine/blob/main/mmengine/runner/loops.py#L18) support dynamical interval, see the following example. - -```python -# Before 365001th iteration, we do evaluation every 5000 iterations. -# After 365000th iteration, we do evaluation every 368750 iterations, -# which means that we do evaluation at the end of training. - -interval = 5000 -max_iters = 368750 -dynamic_intervals = [(max_iters // interval * interval + 1, max_iters)] -train_cfg = dict( - type='IterBasedTrainLoop', - max_iters=max_iters, - val_interval=interval, - dynamic_intervals=dynamic_intervals) -``` - -## Customize hooks - -### Customize self-implemented hooks - -#### 1. Implement a new hook - -MMEngine provides many useful [hooks](https://mmengine.readthedocs.io/en/latest/tutorials/hooks.html), but there are some occasions when the users might need to implement a new hook. MMDetection supports customized hooks in training in v3.0 . Thus the users could implement a hook directly in mmdet or their mmdet-based codebases and use the hook by only modifying the config in training. -Here we give an example of creating a new hook in mmdet and using it in training. - -```python -from mmengine.hooks import Hook -from mmdet.registry import HOOKS - - -@HOOKS.register_module() -class MyHook(Hook): - - def __init__(self, a, b): - - def before_run(self, runner) -> None: - - def after_run(self, runner) -> None: - - def before_train(self, runner) -> None: - - def after_train(self, runner) -> None: - - def before_train_epoch(self, runner) -> None: - - def after_train_epoch(self, runner) -> None: - - def before_train_iter(self, - runner, - batch_idx: int, - data_batch: DATA_BATCH = None) -> None: - - def after_train_iter(self, - runner, - batch_idx: int, - data_batch: DATA_BATCH = None, - outputs: Optional[dict] = None) -> None: -``` - -Depending on the functionality of the hook, the users need to specify what the hook will do at each stage of the training in `before_run`, `after_run`, `before_train`, `after_train` , `before_train_epoch`, `after_train_epoch`, `before_train_iter`, and `after_train_iter`. There are more points where hooks can be inserted, refer to [base hook class](https://github.com/open-mmlab/mmengine/blob/main/mmengine/hooks/hook.py#L9) for more detail. - -#### 2. Register the new hook - -Then we need to make `MyHook` imported. Assuming the file is in `mmdet/engine/hooks/my_hook.py` there are two ways to do that: - -- Modify `mmdet/engine/hooks/__init__.py` to import it. - - The newly defined module should be imported in `mmdet/engine/hooks/__init__.py` so that the registry will find the new module and add it: - -```python -from .my_hook import MyHook -``` - -- Use `custom_imports` in the config to manually import it - -```python -custom_imports = dict(imports=['mmdet.engine.hooks.my_hook'], allow_failed_imports=False) -``` - -#### 3. Modify the config - -```python -custom_hooks = [ - dict(type='MyHook', a=a_value, b=b_value) -] -``` - -You can also set the priority of the hook by adding key `priority` to `'NORMAL'` or `'HIGHEST'` as below - -```python -custom_hooks = [ - dict(type='MyHook', a=a_value, b=b_value, priority='NORMAL') -] -``` - -By default the hook's priority is set as `NORMAL` during registration. - -### Use hooks implemented in MMDetection - -If the hook is already implemented in MMDectection, you can directly modify the config to use the hook as below - -#### Example: `NumClassCheckHook` - -We implement a customized hook named [NumClassCheckHook](../../../mmdet/engine/hooks/num_class_check_hook.py) to check whether the `num_classes` in head matches the length of `classes` in the metainfo of `dataset`. - -We set it in [default_runtime.py](../../../configs/_base_/default_runtime.py). - -```python -custom_hooks = [dict(type='NumClassCheckHook')] -``` - -### Modify default runtime hooks - -There are some common hooks that are registered through `default_hooks`, they are - -- `IterTimerHook`: A hook that logs 'data_time' for loading data and 'time' for a model train step. -- `LoggerHook`: A hook that Collect logs from different components of `Runner` and write them to terminal, JSON file, tensorboard and wandb .etc. -- `ParamSchedulerHook`: A hook to update some hyper-parameters in optimizer, e.g., learning rate and momentum. -- `CheckpointHook`: A hook that saves checkpoints periodically. -- `DistSamplerSeedHook`: A hook that sets the seed for sampler and batch_sampler. -- `DetVisualizationHook`: A hook used to visualize validation and testing process prediction results. - -`IterTimerHook`, `ParamSchedulerHook` and `DistSamplerSeedHook` are simple and no need to be modified usually, so here we reveals how what we can do with `LoggerHook`, `CheckpointHook` and `DetVisualizationHook`. - -#### CheckpointHook - -Except saving checkpoints periodically, [`CheckpointHook`](https://github.com/open-mmlab/mmengine/blob/main/mmengine/hooks/checkpoint_hook.py#L19) provides other options such as `max_keep_ckpts`, `save_optimizer` and etc. The users could set `max_keep_ckpts` to only save small number of checkpoints or decide whether to store state dict of optimizer by `save_optimizer`. More details of the arguments are [here](https://github.com/open-mmlab/mmengine/blob/main/mmengine/hooks/checkpoint_hook.py#L19) - -```python -default_hooks = dict( - checkpoint=dict( - type='CheckpointHook', - interval=1, - max_keep_ckpts=3, - save_optimizer=True)) -``` - -#### LoggerHook - -The `LoggerHook` enables to set intervals. And the detail usages can be found in the [docstring](https://github.com/open-mmlab/mmengine/blob/main/mmengine/hooks/logger_hook.py#L18). - -```python -default_hooks = dict(logger=dict(type='LoggerHook', interval=50)) -``` - -#### DetVisualizationHook - -`DetVisualizationHook` use `DetLocalVisualizer` to visualize prediction results, and `DetLocalVisualizer` current supports different backends, e.g., `TensorboardVisBackend` and `WandbVisBackend` (see [docstring](https://github.com/open-mmlab/mmengine/blob/main/mmengine/visualization/vis_backend.py) for more detail). The users could add multi backbends to do visualization, as follows. - -```python -default_hooks = dict( - visualization=dict(type='DetVisualizationHook', draw=True)) - -vis_backends = [dict(type='LocalVisBackend'), - dict(type='TensorboardVisBackend')] -visualizer = dict( - type='DetLocalVisualizer', vis_backends=vis_backends, name='visualizer') -``` diff --git a/docs/en/advanced_guides/customize_transforms.md b/docs/en/advanced_guides/customize_transforms.md deleted file mode 100644 index 5fe84e9f7c9..00000000000 --- a/docs/en/advanced_guides/customize_transforms.md +++ /dev/null @@ -1,49 +0,0 @@ -# Customize Data Pipelines - -1. Write a new transform in a file, e.g., in `my_pipeline.py`. It takes a dict as input and returns a dict. - - ```python - import random - from mmcv.transforms import BaseTransform - from mmdet.registry import TRANSFORMS - - - @TRANSFORMS.register_module() - class MyTransform(BaseTransform): - """Add your transform - - Args: - p (float): Probability of shifts. Default 0.5. - """ - - def __init__(self, prob=0.5): - self.prob = prob - - def transform(self, results): - if random.random() > self.prob: - results['dummy'] = True - return results - ``` - -2. Import and use the pipeline in your config file. - Make sure the import is relative to where your train script is located. - - ```python - custom_imports = dict(imports=['path.to.my_pipeline'], allow_failed_imports=False) - - train_pipeline = [ - dict(type='LoadImageFromFile'), - dict(type='LoadAnnotations', with_bbox=True), - dict(type='Resize', scale=(1333, 800), keep_ratio=True), - dict(type='RandomFlip', prob=0.5), - dict(type='MyTransform', prob=0.2), - dict(type='PackDetInputs') - ] - ``` - -3. Visualize the output of your transforms pipeline - - To visualize the output of your transforms pipeline, `tools/misc/browse_dataset.py` - can help the user to browse a detection dataset (both images and bounding box annotations) - visually, or save the image to a designated directory. More details can refer to - [visualization documentation](../user_guides/visualization.md) diff --git a/docs/en/advanced_guides/data_flow.md b/docs/en/advanced_guides/data_flow.md deleted file mode 100644 index 59e7ca32942..00000000000 --- a/docs/en/advanced_guides/data_flow.md +++ /dev/null @@ -1 +0,0 @@ -# Data Flow diff --git a/docs/en/advanced_guides/datasets.md b/docs/en/advanced_guides/datasets.md deleted file mode 100644 index 157ea3aad83..00000000000 --- a/docs/en/advanced_guides/datasets.md +++ /dev/null @@ -1 +0,0 @@ -# Datasets diff --git a/docs/en/advanced_guides/engine.md b/docs/en/advanced_guides/engine.md deleted file mode 100644 index eaa55b0c8c4..00000000000 --- a/docs/en/advanced_guides/engine.md +++ /dev/null @@ -1 +0,0 @@ -# Engine diff --git a/docs/en/advanced_guides/evaluation.md b/docs/en/advanced_guides/evaluation.md deleted file mode 100644 index b394c7690c4..00000000000 --- a/docs/en/advanced_guides/evaluation.md +++ /dev/null @@ -1 +0,0 @@ -# Evaluation diff --git a/docs/en/advanced_guides/how_to.md b/docs/en/advanced_guides/how_to.md deleted file mode 100644 index 7eb41ceeb7a..00000000000 --- a/docs/en/advanced_guides/how_to.md +++ /dev/null @@ -1,222 +0,0 @@ -This tutorial collects answers to any `How to xxx with MMDetection`. Feel free to update this doc if you meet new questions about `How to` and find the answers! - -# Use backbone network through MMPretrain - -The model registry in MMDet, MMPreTrain, MMSeg all inherit from the root registry in MMEngine. This allows these repositories to directly use the modules already implemented by each other. Therefore, users can use backbone networks from MMPretrain in MMDetection without implementing a network that already exists in MMPretrain. - -## Use backbone network implemented in MMPretrain - -Suppose you want to use `MobileNetV3-small` as the backbone network of `RetinaNet`, the example config is as the following. - -```python -_base_ = [ - '../_base_/models/retinanet_r50_fpn.py', - '../_base_/datasets/coco_detection.py', - '../_base_/schedules/schedule_1x.py', '../_base_/default_runtime.py' -] -# please install mmpretrain -# import mmpretrain.models to trigger register_module in mmpretrain -custom_imports = dict(imports=['mmpretrain.models'], allow_failed_imports=False) -pretrained = 'https://download.openmmlab.com/mmclassification/v0/mobilenet_v3/convert/mobilenet_v3_small-8427ecf0.pth' -model = dict( - backbone=dict( - _delete_=True, # Delete the backbone field in _base_ - type='mmpretrain.MobileNetV3', # Using MobileNetV3 from mmpretrain - arch='small', - out_indices=(3, 8, 11), # Modify out_indices - init_cfg=dict( - type='Pretrained', - checkpoint=pretrained, - prefix='backbone.')), # The pre-trained weights of backbone network in mmpretrain have prefix='backbone.'. The prefix in the keys will be removed so that these weights can be normally loaded. - # Modify in_channels - neck=dict(in_channels=[24, 48, 96], start_level=0)) -``` - -## Use backbone network in TIMM through MMPretrain - -MMPretrain also provides a wrapper for the PyTorch Image Models (timm) backbone network, users can directly use the backbone network in timm through MMPretrain. Suppose you want to use [EfficientNet-B1](../../../configs/timm_example/retinanet_timm-efficientnet-b1_fpn_1x_coco.py) as the backbone network of RetinaNet, the example config is as the following. - -```python -# https://github.com/open-mmlab/mmdetection/blob/main/configs/timm_example/retinanet_timm-efficientnet-b1_fpn_1x_coco.py - -_base_ = [ - '../_base_/models/retinanet_r50_fpn.py', - '../_base_/datasets/coco_detection.py', - '../_base_/schedules/schedule_1x.py', '../_base_/default_runtime.py' -] - -# please install mmpretrain -# import mmpretrain.models to trigger register_module in mmpretrain -custom_imports = dict(imports=['mmpretrain.models'], allow_failed_imports=False) -model = dict( - backbone=dict( - _delete_=True, # Delete the backbone field in _base_ - type='mmpretrain.TIMMBackbone', # Using timm from mmpretrain - model_name='efficientnet_b1', - features_only=True, - pretrained=True, - out_indices=(1, 2, 3, 4)), # Modify out_indices - neck=dict(in_channels=[24, 40, 112, 320])) # Modify in_channels - -optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0001) -``` - -`type='mmpretrain.TIMMBackbone'` means use the `TIMMBackbone` class from MMPretrain in MMDetection, and the model used is `EfficientNet-B1`, where `mmpretrain` means the MMPretrain repo and `TIMMBackbone` means the TIMMBackbone wrapper implemented in MMPretrain. - -For the principle of the Hierarchy Registry, please refer to the [MMEngine document](https://github.com/open-mmlab/mmengine/blob/main/docs/en/tutorials/config.md). For how to use other backbones in MMPretrain, you can refer to the [MMPretrain document](https://mmpretrain.readthedocs.io/en/latest/user_guides/config.html). - -# Use Mosaic augmentation - -If you want to use `Mosaic` in training, please make sure that you use `MultiImageMixDataset` at the same time. Taking the 'Faster R-CNN' algorithm as an example, you should modify the values of `train_pipeline` and `train_dataset` in the config as below: - -```python -# Open configs/faster_rcnn/faster-rcnn_r50_fpn_1x_coco.py directly and add the following fields -data_root = 'data/coco/' -dataset_type = 'CocoDataset' -img_scale=(1333, 800) - -train_pipeline = [ - dict(type='Mosaic', img_scale=img_scale, pad_val=114.0), - dict( - type='RandomAffine', - scaling_ratio_range=(0.1, 2), - border=(-img_scale[0] // 2, -img_scale[1] // 2)), # The image will be enlarged by 4 times after Mosaic processing,so we use affine transformation to restore the image size. - dict(type='RandomFlip', prob=0.5), - dict(type='PackDetInputs') -] - -train_dataset = dict( - _delete_ = True, # remove unnecessary Settings - type='MultiImageMixDataset', - dataset=dict( - type=dataset_type, - ann_file=data_root + 'annotations/instances_train2017.json', - img_prefix=data_root + 'train2017/', - pipeline=[ - dict(type='LoadImageFromFile'), - dict(type='LoadAnnotations', with_bbox=True) - ], - filter_empty_gt=False, - ), - pipeline=train_pipeline - ) - -data = dict( - train=train_dataset - ) -``` - -# Unfreeze backbone network after freezing the backbone in the config - -If you have freezed the backbone network in the config and want to unfreeze it after some epoches, you can write a hook function to do it. Taking the Faster R-CNN with the resnet backbone as an example, you can freeze one stage of the backbone network and add a `custom_hooks` in the config as below: - -```python -_base_ = [ - '../_base_/models/faster-rcnn_r50_fpn.py', - '../_base_/datasets/coco_detection.py', - '../_base_/schedules/schedule_1x.py', '../_base_/default_runtime.py' -] -model = dict( - # freeze one stage of the backbone network. - backbone=dict(frozen_stages=1), -) -custom_hooks = [dict(type="UnfreezeBackboneEpochBasedHook", unfreeze_epoch=1)] -``` - -Meanwhile write the hook class `UnfreezeBackboneEpochBasedHook` in `mmdet/core/hook/unfreeze_backbone_epoch_based_hook.py` - -```python -from mmengine.model import is_model_wrapper -from mmengine.hooks import Hook -from mmdet.registry import HOOKS - - -@HOOKS.register_module() -class UnfreezeBackboneEpochBasedHook(Hook): - """Unfreeze backbone network Hook. - - Args: - unfreeze_epoch (int): The epoch unfreezing the backbone network. - """ - - def __init__(self, unfreeze_epoch=1): - self.unfreeze_epoch = unfreeze_epoch - - def before_train_epoch(self, runner): - # Unfreeze the backbone network. - # Only valid for resnet. - if runner.epoch == self.unfreeze_epoch: - model = runner.model - if is_model_wrapper(model): - model = model.module - backbone = model.backbone - if backbone.frozen_stages >= 0: - if backbone.deep_stem: - backbone.stem.train() - for param in backbone.stem.parameters(): - param.requires_grad = True - else: - backbone.norm1.train() - for m in [backbone.conv1, backbone.norm1]: - for param in m.parameters(): - param.requires_grad = True - - for i in range(1, backbone.frozen_stages + 1): - m = getattr(backbone, f'layer{i}') - m.train() - for param in m.parameters(): - param.requires_grad = True -``` - -# Get the channels of a new backbone - -If you want to get the channels of a new backbone, you can build this backbone alone and input a pseudo image to get each stage output. - -Take `ResNet` as an example: - -```python -from mmdet.models import ResNet -import torch -self = ResNet(depth=18) -self.eval() -inputs = torch.rand(1, 3, 32, 32) -level_outputs = self.forward(inputs) -for level_out in level_outputs: - print(tuple(level_out.shape)) - -``` - -Output of the above script is as below: - -```python -(1, 64, 8, 8) -(1, 128, 4, 4) -(1, 256, 2, 2) -(1, 512, 1, 1) -``` - -Users can get the channels of the new backbone by Replacing the `ResNet(depth=18)` in this script with their customized backbone. - -# Use Detectron2 Model in MMDetection - -Users can use Detectron2Wrapper to run Detectron2's model in MMDetection. We provide examples of [Faster R-CNN](../../../configs/misc/d2_faster-rcnn_r50-caffe_fpn_ms-90k_coco.py), -[Mask R-CNN](../../../configs/misc/d2_mask-rcnn_r50-caffe_fpn_ms-90k_coco.py), and [RetinaNet](../../../configs/misc/d2_retinanet_r50-caffe_fpn_ms-90k_coco.py) in MMDetection. - -The algorithm components in config file should be the same as those of in Detectron2. During setup, we will first initialize the default settings, which can be found in [Detectron2](https://github.com/facebookresearch/detectron2/blob/main/detectron2/config/defaults.py). -Then, the settings in config file will overwrite the default settings and the model will be built with these settings. -The input data will first convert to Detectron2's type and feed into Detectron2's model. -During inference the results calculate from Detectron2's model will reconvert back to the MMDetection's type. - -## Use Detectron2's pre-trained weights - -The weight initialization in `Detectron2Wrapper` will not use the logic of MMDetection. Users can set `model.d2_detector.weights=xxx` to load pre-trained weights. -For example, we can use `model.d2_detector.weights='detectron2://ImageNetPretrained/MSRA/R-50.pkl'` to load the pre-trained ResNet-50 or use -`model.d2_detector.weights='detectron2://COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_1x/137260431/model_final_a54504.pkl'` to load the pre-trained Mask R-CNN weights proposed in Detectron2. - -**Note:** Detectron2's pretrained model cannot be loaded directly by using `load_from`, it should be first converted via `tools/model_converters/detectron2_to_mmdet.py` - -For inference of released detectron2 checkpoints, users should first use `tools/model_converters/detectron2_to_mmdet.py` to convert Detectron2 checkpoint to MMDetection. - -```shell -python tools/model_converters/detectron2_to_mmdet.py ${Detectron2 ckpt path} ${MMDetectron ckpt path} -``` diff --git a/docs/en/advanced_guides/index.rst b/docs/en/advanced_guides/index.rst deleted file mode 100644 index 20d81774982..00000000000 --- a/docs/en/advanced_guides/index.rst +++ /dev/null @@ -1,34 +0,0 @@ -Basic Concepts -*************** - -.. toctree:: - :maxdepth: 1 - - data_flow.md - structures.md - models.md - datasets.md - transforms.md - evaluation.md - engine.md - conventions.md - -Component Customization -************************ - -.. toctree:: - :maxdepth: 1 - - customize_models.md - customize_losses.md - customize_dataset.md - customize_transforms.md - customize_runtime.md - -How to -************************ - -.. toctree:: - :maxdepth: 1 - - how_to.md diff --git a/docs/en/advanced_guides/models.md b/docs/en/advanced_guides/models.md deleted file mode 100644 index 91361720ebf..00000000000 --- a/docs/en/advanced_guides/models.md +++ /dev/null @@ -1 +0,0 @@ -# Models diff --git a/docs/en/advanced_guides/structures.md b/docs/en/advanced_guides/structures.md deleted file mode 100644 index 985286177db..00000000000 --- a/docs/en/advanced_guides/structures.md +++ /dev/null @@ -1 +0,0 @@ -# Structures diff --git a/docs/en/advanced_guides/transforms.md b/docs/en/advanced_guides/transforms.md deleted file mode 100644 index 4db036ae5c2..00000000000 --- a/docs/en/advanced_guides/transforms.md +++ /dev/null @@ -1,42 +0,0 @@ -# Data Transforms (Need to update) - -## Design of Data transforms pipeline - -Following typical conventions, we use `Dataset` and `DataLoader` for data loading -with multiple workers. `Dataset` returns a dict of data items corresponding -the arguments of models' forward method. - -The data transforms pipeline and the dataset is decomposed. Usually a dataset -defines how to process the annotations and a data transforms pipeline defines all the steps to prepare a data dict. -A pipeline consists of a sequence of data transforms. Each operation takes a dict as input and also output a dict for the next transform. - -We present a classical pipeline in the following figure. The blue blocks are pipeline operations. With the pipeline going on, each operator can add new keys (marked as green) to the result dict or update the existing keys (marked as orange). -![pipeline figure](../../../resources/data_pipeline.png) - -Here is a pipeline example for Faster R-CNN. - -```python -train_pipeline = [ # Training data processing pipeline - dict(type='LoadImageFromFile', backend_args=backend_args), # First pipeline to load images from file path - dict( - type='LoadAnnotations', # Second pipeline to load annotations for current image - with_bbox=True), # Whether to use bounding box, True for detection - dict( - type='Resize', # Pipeline that resize the images and their annotations - scale=(1333, 800), # The largest scale of image - keep_ratio=True # Whether to keep the ratio between height and width - ), - dict( - type='RandomFlip', # Augmentation pipeline that flip the images and their annotations - prob=0.5), # The probability to flip - dict(type='PackDetInputs') # Pipeline that formats the annotation data and decides which keys in the data should be packed into data_samples -] -test_pipeline = [ # Testing data processing pipeline - dict(type='LoadImageFromFile', backend_args=backend_args), # First pipeline to load images from file path - dict(type='Resize', scale=(1333, 800), keep_ratio=True), # Pipeline that resize the images - dict( - type='PackDetInputs', # Pipeline that formats the annotation data and decides which keys in the data should be packed into data_samples - meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape', - 'scale_factor')) -] -``` diff --git a/docs/en/api.rst b/docs/en/api.rst deleted file mode 100644 index 1b1273219e8..00000000000 --- a/docs/en/api.rst +++ /dev/null @@ -1,161 +0,0 @@ -mmdet.apis --------------- -.. automodule:: mmdet.apis - :members: - -mmdet.datasets --------------- - -datasets -^^^^^^^^^^ -.. automodule:: mmdet.datasets - :members: - -api_wrappers -^^^^^^^^^^^^^^^^^ -.. automodule:: mmdet.datasets.api_wrappers - :members: - -samplers -^^^^^^^^^^ -.. automodule:: mmdet.datasets.samplers - :members: - -transforms -^^^^^^^^^^^^ -.. automodule:: mmdet.datasets.transforms - :members: - -mmdet.engine --------------- - -hooks -^^^^^^^^^^ -.. automodule:: mmdet.engine.hooks - :members: - -optimizers -^^^^^^^^^^^^^^^ -.. automodule:: mmdet.engine.optimizers - :members: - -runner -^^^^^^^^^^ -.. automodule:: mmdet.engine.runner - :members: - -schedulers -^^^^^^^^^^^^^^^^^ -.. automodule:: mmdet.engine.schedulers - :members: - -mmdet.evaluation --------------------- - -functional -^^^^^^^^^^^^^^^^^ -.. automodule:: mmdet.evaluation.functional - :members: - -metrics -^^^^^^^^^^ -.. automodule:: mmdet.evaluation.metrics - :members: - - -mmdet.models --------------- - -backbones -^^^^^^^^^^^^^^^^^^ -.. automodule:: mmdet.models.backbones - :members: - -data_preprocessors -^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. automodule:: mmdet.models.data_preprocessors - :members: - -dense_heads -^^^^^^^^^^^^^^^ -.. automodule:: mmdet.models.dense_heads - :members: - -detectors -^^^^^^^^^^ -.. automodule:: mmdet.models.detectors - :members: - -layers -^^^^^^^^^^ -.. automodule:: mmdet.models.layers - :members: - -losses -^^^^^^^^^^ -.. automodule:: mmdet.models.losses - :members: - -necks -^^^^^^^^^^^^ -.. automodule:: mmdet.models.necks - :members: - -roi_heads -^^^^^^^^^^^^^ -.. automodule:: mmdet.models.roi_heads - :members: - -seg_heads -^^^^^^^^^^^^^ -.. automodule:: mmdet.models.seg_heads - :members: - -task_modules -^^^^^^^^^^^^^ -.. automodule:: mmdet.models.task_modules - :members: - -test_time_augs -^^^^^^^^^^^^^^^^^^^^ -.. automodule:: mmdet.models.test_time_augs - :members: - -utils -^^^^^^^^^^ -.. automodule:: mmdet.models.utils - :members: - - -mmdet.structures --------------------- - -structures -^^^^^^^^^^^^^^^^^ -.. automodule:: mmdet.structures - :members: - -bbox -^^^^^^^^^^ -.. automodule:: mmdet.structures.bbox - :members: - -mask -^^^^^^^^^^ -.. automodule:: mmdet.structures.mask - :members: - -mmdet.testing ----------------- -.. automodule:: mmdet.testing - :members: - -mmdet.visualization --------------------- -.. automodule:: mmdet.visualization - :members: - -mmdet.utils --------------- -.. automodule:: mmdet.utils - :members: diff --git a/docs/en/conf.py b/docs/en/conf.py deleted file mode 100644 index d2beaf1e5c1..00000000000 --- a/docs/en/conf.py +++ /dev/null @@ -1,116 +0,0 @@ -# Configuration file for the Sphinx documentation builder. -# -# This file only contains a selection of the most common options. For a full -# list see the documentation: -# https://www.sphinx-doc.org/en/main/usage/configuration.html - -# -- Path setup -------------------------------------------------------------- - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -# -import os -import subprocess -import sys - -import pytorch_sphinx_theme - -sys.path.insert(0, os.path.abspath('../..')) - -# -- Project information ----------------------------------------------------- - -project = 'MMDetection' -copyright = '2018-2021, OpenMMLab' -author = 'MMDetection Authors' -version_file = '../../mmdet/version.py' - - -def get_version(): - with open(version_file, 'r') as f: - exec(compile(f.read(), version_file, 'exec')) - return locals()['__version__'] - - -# The full version, including alpha/beta/rc tags -release = get_version() - -# -- General configuration --------------------------------------------------- - -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom -# ones. -extensions = [ - 'sphinx.ext.autodoc', - 'sphinx.ext.napoleon', - 'sphinx.ext.viewcode', - 'myst_parser', - 'sphinx_markdown_tables', - 'sphinx_copybutton', -] - -myst_enable_extensions = ['colon_fence'] -myst_heading_anchors = 3 - -autodoc_mock_imports = [ - 'matplotlib', 'pycocotools', 'terminaltables', 'mmdet.version', 'mmcv.ops' -] - -# Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] - -# The suffix(es) of source filenames. -# You can specify multiple suffix as a list of string: -# -source_suffix = { - '.rst': 'restructuredtext', - '.md': 'markdown', -} - -# The main toctree document. -master_doc = 'index' - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -# This pattern also affects html_static_path and html_extra_path. -exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] - -# -- Options for HTML output ------------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -# -# html_theme = 'sphinx_rtd_theme' -html_theme = 'pytorch_sphinx_theme' -html_theme_path = [pytorch_sphinx_theme.get_html_theme_path()] - -html_theme_options = { - 'menu': [ - { - 'name': 'GitHub', - 'url': 'https://github.com/open-mmlab/mmdetection' - }, - ], - # Specify the language of shared menu - 'menu_lang': - 'en' -} - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] -html_css_files = ['css/readthedocs.css'] - -# -- Extension configuration ------------------------------------------------- -# Ignore >>> when copying code -copybutton_prompt_text = r'>>> |\.\.\. ' -copybutton_prompt_is_regexp = True - - -def builder_inited_handler(app): - subprocess.run(['./stat.py']) - - -def setup(app): - app.connect('builder-inited', builder_inited_handler) diff --git a/docs/en/dataset_zoo.md b/docs/en/dataset_zoo.md deleted file mode 100644 index c35cc220bc0..00000000000 --- a/docs/en/dataset_zoo.md +++ /dev/null @@ -1 +0,0 @@ -# Dataset Zoo diff --git a/docs/en/get_started.md b/docs/en/get_started.md deleted file mode 100644 index f65878b610b..00000000000 --- a/docs/en/get_started.md +++ /dev/null @@ -1,297 +0,0 @@ -# GET STARTED - -## Prerequisites - -In this section, we demonstrate how to prepare an environment with PyTorch. - -MMDetection works on Linux, Windows, and macOS. It requires Python 3.7+, CUDA 9.2+, and PyTorch 1.8+. - -```{note} -If you are experienced with PyTorch and have already installed it, just skip this part and jump to the [next section](#installation). Otherwise, you can follow these steps for the preparation. -``` - -**Step 0.** Download and install Miniconda from the [official website](https://docs.conda.io/en/latest/miniconda.html). - -**Step 1.** Create a conda environment and activate it. - -```shell -conda create --name openmmlab python=3.8 -y -conda activate openmmlab -``` - -**Step 2.** Install PyTorch following [official instructions](https://pytorch.org/get-started/locally/), e.g. - -On GPU platforms: - -```shell -conda install pytorch torchvision -c pytorch -``` - -On CPU platforms: - -```shell -conda install pytorch torchvision cpuonly -c pytorch -``` - -## Installation - -We recommend that users follow our best practices to install MMDetection. However, the whole process is highly customizable. See [Customize Installation](#customize-installation) section for more information. - -### Best Practices - -**Step 0.** Install [MMEngine](https://github.com/open-mmlab/mmengine) and [MMCV](https://github.com/open-mmlab/mmcv) using [MIM](https://github.com/open-mmlab/mim). - -```shell -pip install -U openmim -mim install mmengine -mim install "mmcv>=2.0.0" -``` - -**Note:** In MMCV-v2.x, `mmcv-full` is rename to `mmcv`, if you want to install `mmcv` without CUDA ops, you can use `mim install "mmcv-lite>=2.0.0rc1"` to install the lite version. - -**Step 1.** Install MMDetection. - -Case a: If you develop and run mmdet directly, install it from source: - -```shell -git clone https://github.com/open-mmlab/mmdetection.git -cd mmdetection -pip install -v -e . -# "-v" means verbose, or more output -# "-e" means installing a project in editable mode, -# thus any local modifications made to the code will take effect without reinstallation. -``` - -Case b: If you use mmdet as a dependency or third-party package, install it with MIM: - -```shell -mim install mmdet -``` - -## Verify the installation - -To verify whether MMDetection is installed correctly, we provide some sample codes to run an inference demo. - -**Step 1.** We need to download config and checkpoint files. - -```shell -mim download mmdet --config rtmdet_tiny_8xb32-300e_coco --dest . -``` - -The downloading will take several seconds or more, depending on your network environment. When it is done, you will find two files `rtmdet_tiny_8xb32-300e_coco.py` and `rtmdet_tiny_8xb32-300e_coco_20220902_112414-78e30dcc.pth` in your current folder. - -**Step 2.** Verify the inference demo. - -Case a: If you install MMDetection from source, just run the following command. - -```shell -python demo/image_demo.py demo/demo.jpg rtmdet_tiny_8xb32-300e_coco.py --weights rtmdet_tiny_8xb32-300e_coco_20220902_112414-78e30dcc.pth --device cpu -``` - -You will see a new image `demo.jpg` on your `./outputs/vis` folder, where bounding boxes are plotted on cars, benches, etc. - -Case b: If you install MMDetection with MIM, open your python interpreter and copy&paste the following codes. - -```python -from mmdet.apis import init_detector, inference_detector - -config_file = 'rtmdet_tiny_8xb32-300e_coco.py' -checkpoint_file = 'rtmdet_tiny_8xb32-300e_coco_20220902_112414-78e30dcc.pth' -model = init_detector(config_file, checkpoint_file, device='cpu') # or device='cuda:0' -inference_detector(model, 'demo/demo.jpg') -``` - -You will see a list of `DetDataSample`, and the predictions are in the `pred_instance`, indicating the detected bounding boxes, labels, and scores. - -## Tracking Installation - -We recommend that users follow our best practices to install MMDetection for tracking task. - -### Best Practices - -**Step 0.** Install [MMEngine](https://github.com/open-mmlab/mmengine) and [MMCV](https://github.com/open-mmlab/mmcv) using [MIM](https://github.com/open-mmlab/mim). - -```shell -pip install -U openmim -mim install mmengine -mim install "mmcv>=2.0.0" -``` - -**Step 1.** Install MMDetection. - -Case a: If you develop and run mmdet directly, install it from source: - -```shell -git clone https://github.com/open-mmlab/mmdetection.git -cd mmdetection -pip install -v -e . -r requirements/tracking.txt -# "-v" means verbose, or more output -# "-e" means installing a project in editable mode, -# thus any local modifications made to the code will take effect without reinstallation. -``` - -Case b: If you use mmdet as a dependency or third-party package, install it with MIM: - -```shell -mim install mmdet[tracking] -``` - -**Step 2.** Install TrackEval. - -```shell -pip install git+https://github.com/JonathonLuiten/TrackEval.git -``` - -## Verify the installation - -To verify whether MMDetection is installed correctly, we provide some sample codes to run an inference demo. - -**Step 1.** We need to download config and checkpoint files. - -```shell -mim download mmdet --config bytetrack_yolox_x_8xb4-amp-80e_crowdhuman-mot17halftrain_test-mot17halfval --dest . -``` - -The downloading will take several seconds or more, depending on your network environment. When it is done, you will find two files `bytetrack_yolox_x_8xb4-amp-80e_crowdhuman-mot17halftrain_test-mot17halfval.py` and `bytetrack_yolox_x_crowdhuman_mot17-private-half_20211218_205500-1985c9f0.pth` in your current folder. - -**Step 2.** Verify the inference demo. - -Case a: If you install MMDetection from source, just run the following command. - -```shell -python demo/mot_demo.py demo/demo_mot.mp4 bytetrack_yolox_x_8xb4-amp-80e_crowdhuman-mot17halftrain_test-mot17halfval.py --checkpoint bytetrack_yolox_x_crowdhuman_mot17-private-half_20211218_205500-1985c9f0.pth --out mot.mp4 -``` - -You will see a new video `mot.mp4` on your folder, where bounding boxes are plotted on person. - -Case b: If you install MMDetection with MIM, open your python interpreter and demo/mot_demo.py, then run it like Case a. - -### Customize Installation - -#### CUDA versions - -When installing PyTorch, you need to specify the version of CUDA. If you are not clear on which to choose, follow our recommendations: - -- For Ampere-based NVIDIA GPUs, such as GeForce 30 series and NVIDIA A100, CUDA 11 is a must. -- For older NVIDIA GPUs, CUDA 11 is backward compatible, but CUDA 10.2 offers better compatibility and is more lightweight. - -Please make sure the GPU driver satisfies the minimum version requirements. See [this table](https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html#cuda-major-component-versions__table-cuda-toolkit-driver-versions) for more information. - -```{note} -Installing CUDA runtime libraries is enough if you follow our best practices, because no CUDA code will be compiled locally. However, if you hope to compile MMCV from source or develop other CUDA operators, you need to install the complete CUDA toolkit from NVIDIA's [website](https://developer.nvidia.com/cuda-downloads), and its version should match the CUDA version of PyTorch. i.e., the specified version of cudatoolkit in the `conda install` command. -``` - -#### Install MMEngine without MIM - -To install MMEngine with pip instead of MIM, please follow [MMEngine installation guides](https://mmengine.readthedocs.io/en/latest/get_started/installation.html). - -For example, you can install MMEngine by the following command. - -```shell -pip install mmengine -``` - -#### Install MMCV without MIM - -MMCV contains C++ and CUDA extensions, thus depending on PyTorch in a complex way. MIM solves such dependencies automatically and makes the installation easier. However, it is not a must. - -To install MMCV with pip instead of MIM, please follow [MMCV installation guides](https://mmcv.readthedocs.io/en/2.x/get_started/installation.html). This requires manually specifying a find-url based on the PyTorch version and its CUDA version. - -For example, the following command installs MMCV built for PyTorch 1.12.x and CUDA 11.6. - -```shell -pip install "mmcv>=2.0.0" -f https://download.openmmlab.com/mmcv/dist/cu116/torch1.12.0/index.html -``` - -#### Install on CPU-only platforms - -MMDetection can be built for CPU-only environments. In CPU mode you can train (requires MMCV version >= 2.0.0rc1), test, or infer a model. - -However, some functionalities are gone in this mode: - -- Deformable Convolution -- Modulated Deformable Convolution -- ROI pooling -- Deformable ROI pooling -- CARAFE -- SyncBatchNorm -- CrissCrossAttention -- MaskedConv2d -- Temporal Interlace Shift -- nms_cuda -- sigmoid_focal_loss_cuda -- bbox_overlaps - -If you try to train/test/infer a model containing the above ops, an error will be raised. -The following table lists affected algorithms. - -| Operator | Model | -| :-----------------------------------------------------: | :--------------------------------------------------------------------------------------: | -| Deformable Convolution/Modulated Deformable Convolution | DCN, Guided Anchoring, RepPoints, CentripetalNet, VFNet, CascadeRPN, NAS-FCOS, DetectoRS | -| MaskedConv2d | Guided Anchoring | -| CARAFE | CARAFE | -| SyncBatchNorm | ResNeSt | - -#### Install on Google Colab - -[Google Colab](https://colab.research.google.com/) usually has PyTorch installed, -thus we only need to install MMEngine, MMCV, and MMDetection with the following commands. - -**Step 1.** Install [MMEngine](https://github.com/open-mmlab/mmengine) and [MMCV](https://github.com/open-mmlab/mmcv) using [MIM](https://github.com/open-mmlab/mim). - -```shell -!pip3 install openmim -!mim install mmengine -!mim install "mmcv>=2.0.0,<2.1.0" -``` - -**Step 2.** Install MMDetection from the source. - -```shell -!git clone https://github.com/open-mmlab/mmdetection.git -%cd mmdetection -!pip install -e . -``` - -**Step 3.** Verification. - -```python -import mmdet -print(mmdet.__version__) -# Example output: 3.0.0, or an another version. -``` - -```{note} -Within Jupyter, the exclamation mark `!` is used to call external executables and `%cd` is a [magic command](https://ipython.readthedocs.io/en/stable/interactive/magics.html#magic-cd) to change the current working directory of Python. -``` - -#### Use MMDetection with Docker - -We provide a [Dockerfile](../../docker/Dockerfile) to build an image. Ensure that your [docker version](https://docs.docker.com/engine/install/) >=19.03. - -```shell -# build an image with PyTorch 1.9, CUDA 11.1 -# If you prefer other versions, just modified the Dockerfile -docker build -t mmdetection docker/ -``` - -Run it with - -```shell -docker run --gpus all --shm-size=8g -it -v {DATA_DIR}:/mmdetection/data mmdetection -``` - -### Troubleshooting - -If you have some issues during the installation, please first view the [FAQ](notes/faq.md) page. -You may [open an issue](https://github.com/open-mmlab/mmdetection/issues/new/choose) on GitHub if no solution is found. - -### Use Multiple Versions of MMDetection in Development - -Training and testing scripts have already been modified in `PYTHONPATH` in order to make sure the scripts are using their own versions of MMDetection. - -To install the default version of MMDetection in your environment, you can exclude the follow code in the relative scripts: - -```shell -PYTHONPATH="$(dirname $0)/..":$PYTHONPATH -``` diff --git a/docs/en/index.rst b/docs/en/index.rst deleted file mode 100644 index 32c5952a4ae..00000000000 --- a/docs/en/index.rst +++ /dev/null @@ -1,63 +0,0 @@ -Welcome to MMDetection's documentation! -======================================= - -.. toctree:: - :maxdepth: 1 - :caption: Get Started - - overview.md - get_started.md - -.. toctree:: - :maxdepth: 2 - :caption: User Guides - - user_guides/index.rst - -.. toctree:: - :maxdepth: 2 - :caption: Advanced Guides - - advanced_guides/index.rst - -.. toctree:: - :maxdepth: 1 - :caption: Migration - - migration/migration.md - -.. toctree:: - :maxdepth: 1 - :caption: API Reference - - api.rst - -.. toctree:: - :maxdepth: 1 - :caption: Model Zoo - - model_zoo.md - -.. toctree:: - :maxdepth: 1 - :caption: Notes - - notes/contribution_guide.md - notes/projects.md - notes/changelog.md - notes/changelog_v2.x.md - notes/faq.md - notes/compatibility.md - -.. toctree:: - :caption: Switch Language - - switch_language.md - - - -Indices and tables -================== - -* :ref:`genindex` -* :ref:`search` diff --git a/docs/en/make.bat b/docs/en/make.bat deleted file mode 100644 index 922152e96a0..00000000000 --- a/docs/en/make.bat +++ /dev/null @@ -1,35 +0,0 @@ -@ECHO OFF - -pushd %~dp0 - -REM Command file for Sphinx documentation - -if "%SPHINXBUILD%" == "" ( - set SPHINXBUILD=sphinx-build -) -set SOURCEDIR=. -set BUILDDIR=_build - -if "%1" == "" goto help - -%SPHINXBUILD% >NUL 2>NUL -if errorlevel 9009 ( - echo. - echo.The 'sphinx-build' command was not found. Make sure you have Sphinx - echo.installed, then set the SPHINXBUILD environment variable to point - echo.to the full path of the 'sphinx-build' executable. Alternatively you - echo.may add the Sphinx directory to PATH. - echo. - echo.If you don't have Sphinx installed, grab it from - echo.http://sphinx-doc.org/ - exit /b 1 -) - -%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% -goto end - -:help -%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% - -:end -popd diff --git a/docs/en/migration.md b/docs/en/migration.md deleted file mode 100644 index 689e8d24e45..00000000000 --- a/docs/en/migration.md +++ /dev/null @@ -1 +0,0 @@ -# Migration diff --git a/docs/en/migration/api_and_registry_migration.md b/docs/en/migration/api_and_registry_migration.md deleted file mode 100644 index 72bfd3aec8e..00000000000 --- a/docs/en/migration/api_and_registry_migration.md +++ /dev/null @@ -1 +0,0 @@ -# Migrate API and Registry from MMDetection 2.x to 3.x diff --git a/docs/en/migration/config_migration.md b/docs/en/migration/config_migration.md deleted file mode 100644 index 1177fa9faad..00000000000 --- a/docs/en/migration/config_migration.md +++ /dev/null @@ -1,819 +0,0 @@ -# Migrate Configuration File from MMDetection 2.x to 3.x - -The configuration file of MMDetection 3.x has undergone significant changes in comparison to the 2.x version. This document explains how to migrate 2.x configuration files to 3.x. - -In the previous tutorial [Learn about Configs](../user_guides/config.md), we used Mask R-CNN as an example to introduce the configuration file structure of MMDetection 3.x. Here, we will follow the same structure to demonstrate how to migrate 2.x configuration files to 3.x. - -## Model Configuration - -There have been no major changes to the model configuration in 3.x compared to 2.x. For the model's backbone, neck, head, as well as train_cfg and test_cfg, the parameters remain the same as in version 2.x. - -On the other hand, we have added the `DataPreprocessor` module in MMDetection 3.x. The configuration for the `DataPreprocessor` module is located in `model.data_preprocessor`. It is used to preprocess the input data, such as normalizing input images and padding images of different sizes into batches, and loading images from memory to VRAM. This configuration replaces the `Normalize` and `Pad` modules in `train_pipeline` and `test_pipeline` of the earlier version. - - - - - - - - - -
    2.x Config - -```python -# Image normalization parameters -img_norm_cfg = dict( - mean=[123.675, 116.28, 103.53], - std=[58.395, 57.12, 57.375], - to_rgb=True) -pipeline=[ - ..., - dict(type='Normalize', **img_norm_cfg), - dict(type='Pad', size_divisor=32), # Padding the image to multiples of 32 - ... -] -``` - -
    3.x Config - -```python -model = dict( - data_preprocessor=dict( - type='DetDataPreprocessor', - # Image normalization parameters - mean=[123.675, 116.28, 103.53], - std=[58.395, 57.12, 57.375], - bgr_to_rgb=True, - # Image padding parameters - pad_mask=True, # In instance segmentation, the mask needs to be padded - pad_size_divisor=32) # Padding the image to multiples of 32 -) - -``` - -
    - -## Dataset and Evaluator Configuration - -The dataset and evaluator configurations have undergone major changes compared to version 2.x. We will introduce how to migrate from version 2.x to version 3.x from three aspects: Dataloader and Dataset, Data transform pipeline, and Evaluator configuration. - -### Dataloader and Dataset Configuration - -In the new version, we set the data loading settings consistent with PyTorch's official DataLoader, -making it easier for users to understand and get started with. -We put the data loading settings for training, validation, and testing separately in `train_dataloader`, `val_dataloader`, and `test_dataloader`. -Users can set different parameters for these dataloaders. -The input parameters are basically the same as those required by [PyTorch DataLoader](https://pytorch.org/docs/stable/data.html?highlight=dataloader#torch.utils.data.DataLoader). - -This way, we put the unconfigurable parameters in version 2.x, such as `sampler`, `batch_sampler`, and `persistent_workers`, in the configuration file, so that users can set dataloader parameters more flexibly. - -Users can set the dataset configuration through `train_dataloader.dataset`, `val_dataloader.dataset`, and `test_dataloader.dataset`, which correspond to `data.train`, `data.val`, and `data.test` in version 2.x. - - - - - - - - - -
    2.x Config - -```python -data = dict( - samples_per_gpu=2, - workers_per_gpu=2, - train=dict( - type=dataset_type, - ann_file=data_root + 'annotations/instances_train2017.json', - img_prefix=data_root + 'train2017/', - pipeline=train_pipeline), - val=dict( - type=dataset_type, - ann_file=data_root + 'annotations/instances_val2017.json', - img_prefix=data_root + 'val2017/', - pipeline=test_pipeline), - test=dict( - type=dataset_type, - ann_file=data_root + 'annotations/instances_val2017.json', - img_prefix=data_root + 'val2017/', - pipeline=test_pipeline)) -``` - -
    3.x Config - -```python -train_dataloader = dict( - batch_size=2, - num_workers=2, - persistent_workers=True, # Avoid recreating subprocesses after each iteration - sampler=dict(type='DefaultSampler', shuffle=True), # Default sampler, supports both distributed and non-distributed training - batch_sampler=dict(type='AspectRatioBatchSampler'), # Default batch_sampler, used to ensure that images in the batch have similar aspect ratios, so as to better utilize graphics memory - dataset=dict( - type=dataset_type, - data_root=data_root, - ann_file='annotations/instances_train2017.json', - data_prefix=dict(img='train2017/'), - filter_cfg=dict(filter_empty_gt=True, min_size=32), - pipeline=train_pipeline)) -# In version 3.x, validation and test dataloaders can be configured independently -val_dataloader = dict( - batch_size=1, - num_workers=2, - persistent_workers=True, - drop_last=False, - sampler=dict(type='DefaultSampler', shuffle=False), - dataset=dict( - type=dataset_type, - data_root=data_root, - ann_file='annotations/instances_val2017.json', - data_prefix=dict(img='val2017/'), - test_mode=True, - pipeline=test_pipeline)) -test_dataloader = val_dataloader # The configuration of the testing dataloader is the same as that of the validation dataloader, which is omitted here - -``` - -
    - -### Data Transform Pipeline Configuration - -As mentioned earlier, we have separated the normalization and padding configurations for images from the `train_pipeline` and `test_pipeline`, and have placed them in `model.data_preprocessor` instead. Hence, in the 3.x version of the pipeline, we no longer require the `Normalize` and `Pad` transforms. - -At the same time, we have also refactored the transform responsible for packing the data format, and have merged the `Collect` and `DefaultFormatBundle` transforms into `PackDetInputs`. This transform is responsible for packing the data from the data pipeline into the input format of the model. For more details on the input format conversion, please refer to the [data flow documentation](../advanced_guides/data_flow.md). - -Below, we will use the `train_pipeline` of Mask R-CNN as an example, to demonstrate how to migrate from the 2.x configuration to the 3.x configuration: - - - - - - - - - -
    2.x Config - -```python -img_norm_cfg = dict( - mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True) -train_pipeline = [ - dict(type='LoadImageFromFile'), - dict(type='LoadAnnotations', with_bbox=True), - dict(type='Resize', img_scale=(1333, 800), keep_ratio=True), - dict(type='RandomFlip', flip_ratio=0.5), - dict(type='Normalize', **img_norm_cfg), - dict(type='Pad', size_divisor=32), - dict(type='DefaultFormatBundle'), - dict(type='Collect', keys=['img', 'gt_bboxes', 'gt_labels']), -] -``` - -
    3.x Config - -```python -train_pipeline = [ - dict(type='LoadImageFromFile'), - dict(type='LoadAnnotations', with_bbox=True), - dict(type='Resize', scale=(1333, 800), keep_ratio=True), - dict(type='RandomFlip', prob=0.5), - dict(type='PackDetInputs') -] -``` - -
    - -For the `test_pipeline`, apart from removing the `Normalize` and `Pad` transforms, we have also separated the data augmentation for testing (TTA) from the normal testing process, and have removed `MultiScaleFlipAug`. For more information on how to use the new TTA version, please refer to the [TTA documentation](../advanced_guides/tta.md). - -Below, we will again use the `test_pipeline` of Mask R-CNN as an example, to demonstrate how to migrate from the 2.x configuration to the 3.x configuration: - - - - - - - - - -
    2.x Config - -```python -test_pipeline = [ - dict(type='LoadImageFromFile'), - dict( - type='MultiScaleFlipAug', - img_scale=(1333, 800), - flip=False, - transforms=[ - dict(type='Resize', keep_ratio=True), - dict(type='RandomFlip'), - dict(type='Normalize', **img_norm_cfg), - dict(type='Pad', size_divisor=32), - dict(type='ImageToTensor', keys=['img']), - dict(type='Collect', keys=['img']), - ]) -] -``` - -
    3.x Config - -```python -test_pipeline = [ - dict(type='LoadImageFromFile'), - dict(type='Resize', scale=(1333, 800), keep_ratio=True), - dict( - type='PackDetInputs', - meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape', - 'scale_factor')) -] -``` - -
    - -In addition, we have also refactored some data augmentation transforms. The following table lists the mapping between the transforms used in the 2.x version and the 3.x version: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Name2.x Config3.x Config
    Resize - -```python -dict(type='Resize', - img_scale=(1333, 800), - keep_ratio=True) -``` - - - -```python -dict(type='Resize', - scale=(1333, 800), - keep_ratio=True) -``` - -
    RandomResize - -```python -dict( - type='Resize', - img_scale=[ - (1333, 640), (1333, 800)], - multiscale_mode='range', - keep_ratio=True) -``` - - - -```python -dict( - type='RandomResize', - scale=[ - (1333, 640), (1333, 800)], - keep_ratio=True) -``` - -
    RandomChoiceResize - -```python -dict( - type='Resize', - img_scale=[ - (1333, 640), (1333, 672), - (1333, 704), (1333, 736), - (1333, 768), (1333, 800)], - multiscale_mode='value', - keep_ratio=True) -``` - - - -```python -dict( - type='RandomChoiceResize', - scales=[ - (1333, 640), (1333, 672), - (1333, 704), (1333, 736), - (1333, 768), (1333, 800)], - keep_ratio=True) -``` - -
    RandomFlip - -```python -dict(type='RandomFlip', flip_ratio=0.5) -``` - - - -```python -dict(type='RandomFlip', prob=0.5) -``` - -
    - -### 评测器配置 - -In version 3.x, model accuracy evaluation is no longer tied to the dataset, but is instead accomplished through the use of an Evaluator. -The Evaluator configuration is divided into two parts: `val_evaluator` and `test_evaluator`. The `val_evaluator` is used for validation dataset evaluation, while the `test_evaluator` is used for testing dataset evaluation. -This corresponds to the `evaluation` field in version 2.x. - -The following table shows the corresponding relationship between Evaluators in version 2.x and 3.x. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Metric Name2.x Config3.x Config
    COCO - -```python -data = dict( - val=dict( - type='CocoDataset', - ann_file=data_root + 'annotations/instances_val2017.json')) -evaluation = dict(metric=['bbox', 'segm']) -``` - - - -```python -val_evaluator = dict( - type='CocoMetric', - ann_file=data_root + 'annotations/instances_val2017.json', - metric=['bbox', 'segm'], - format_only=False) -``` - -
    Pascal VOC - -```python -data = dict( - val=dict( - type=dataset_type, - ann_file=data_root + 'VOC2007/ImageSets/Main/test.txt')) -evaluation = dict(metric='mAP') -``` - - - -```python -val_evaluator = dict( - type='VOCMetric', - metric='mAP', - eval_mode='11points') -``` - -
    OpenImages - -```python -data = dict( - val=dict( - type='OpenImagesDataset', - ann_file=data_root + 'annotations/validation-annotations-bbox.csv', - img_prefix=data_root + 'OpenImages/validation/', - label_file=data_root + 'annotations/class-descriptions-boxable.csv', - hierarchy_file=data_root + - 'annotations/bbox_labels_600_hierarchy.json', - meta_file=data_root + 'annotations/validation-image-metas.pkl', - image_level_ann_file=data_root + - 'annotations/validation-annotations-human-imagelabels-boxable.csv')) -evaluation = dict(interval=1, metric='mAP') -``` - - - -```python -val_evaluator = dict( - type='OpenImagesMetric', - iou_thrs=0.5, - ioa_thrs=0.5, - use_group_of=True, - get_supercategory=True) -``` - -
    CityScapes - -```python -data = dict( - val=dict( - type='CityScapesDataset', - ann_file=data_root + - 'annotations/instancesonly_filtered_gtFine_val.json', - img_prefix=data_root + 'leftImg8bit/val/', - pipeline=test_pipeline)) -evaluation = dict(metric=['bbox', 'segm']) -``` - - - -```python -val_evaluator = [ - dict( - type='CocoMetric', - ann_file=data_root + - 'annotations/instancesonly_filtered_gtFine_val.json', - metric=['bbox', 'segm']), - dict( - type='CityScapesMetric', - ann_file=data_root + - 'annotations/instancesonly_filtered_gtFine_val.json', - seg_prefix=data_root + '/gtFine/val', - outfile_prefix='./work_dirs/cityscapes_metric/instance') -] -``` - -
    - -## Configuration for Training and Testing - - - - - - - - - -
    2.x Config - -```python -runner = dict( - type='EpochBasedRunner', # Type of training loop - max_epochs=12) # Maximum number of training epochs -evaluation = dict(interval=2) # Interval for evaluation, check the performance every 2 epochs -``` - -
    3.x Config - -```python -train_cfg = dict( - type='EpochBasedTrainLoop', # Type of training loop, please refer to https://github.com/open-mmlab/mmengine/blob/main/mmengine/runner/loops.py - max_epochs=12, # Maximum number of training epochs - val_interval=2) # Interval for validation, check the performance every 2 epochs -val_cfg = dict(type='ValLoop') # Type of validation loop -test_cfg = dict(type='TestLoop') # Type of testing loop -``` - -
    - -## Optimization Configuration - -The configuration for optimizer and gradient clipping is moved to the `optim_wrapper` field. -The following table shows the correspondences for optimizer configuration between 2.x version and 3.x version: - - - - - - - - - -
    2.x Config - -```python -optimizer = dict( - type='SGD', # Optimizer: Stochastic Gradient Descent - lr=0.02, # Base learning rate - momentum=0.9, # SGD with momentum - weight_decay=0.0001) # Weight decay -optimizer_config = dict(grad_clip=None) # Configuration for gradient clipping, set to None to disable -``` - -
    3.x Config - -```python -optim_wrapper = dict( # Configuration for the optimizer wrapper - type='OptimWrapper', # Type of optimizer wrapper, you can switch to AmpOptimWrapper to enable mixed precision training - optimizer=dict( # Optimizer configuration, supports various PyTorch optimizers, please refer to https://pytorch.org/docs/stable/optim.html#algorithms - type='SGD', # SGD - lr=0.02, # Base learning rate - momentum=0.9, # SGD with momentum - weight_decay=0.0001), # Weight decay - clip_grad=None, # Configuration for gradient clipping, set to None to disable. For usage, please see https://mmengine.readthedocs.io/en/latest/tutorials/optimizer.html - ) -``` - -
    - -The configuration for learning rate is also moved from the `lr_config` field to the `param_scheduler` field. The `param_scheduler` configuration is more similar to PyTorch's learning rate scheduler and more flexible. The following table shows the correspondences for learning rate configuration between 2.x version and 3.x version: - - - - - - - - - -
    2.x Config - -```python -lr_config = dict( - policy='step', # Use multi-step learning rate strategy during training - warmup='linear', # Use linear learning rate warmup - warmup_iters=500, # End warmup at iteration 500 - warmup_ratio=0.001, # Coefficient for learning rate warmup - step=[8, 11], # Learning rate decay at which epochs - gamma=0.1) # Learning rate decay coefficient - -``` - -
    3.x Config - -```python -param_scheduler = [ - dict( - type='LinearLR', # Use linear learning rate warmup - start_factor=0.001, # Coefficient for learning rate warmup - by_epoch=False, # Update the learning rate during warmup at each iteration - begin=0, # Starting from the first iteration - end=500), # End at the 500th iteration - dict( - type='MultiStepLR', # Use multi-step learning rate strategy during training - by_epoch=True, # Update the learning rate at each epoch - begin=0, # Starting from the first epoch - end=12, # Ending at the 12th epoch - milestones=[8, 11], # Learning rate decay at which epochs - gamma=0.1) # Learning rate decay coefficient -] - -``` - -
    - -For information on how to migrate other learning rate adjustment policies, please refer to the [learning rate migration document of MMEngine](https://mmengine.readthedocs.io/zh_CN/latest/migration/param_scheduler.html). - -## Migration of Other Configurations - -### Configuration for Saving Checkpoints - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Function2.x Config3.x Config
    Set Save Interval - -```python -checkpoint_config = dict( - interval=1) -``` - - - -```python -default_hooks = dict( - checkpoint=dict( - type='CheckpointHook', - interval=1)) -``` - -
    Save Best Model - -```python -evaluation = dict( - save_best='auto') -``` - - - -```python -default_hooks = dict( - checkpoint=dict( - type='CheckpointHook', - save_best='auto')) -``` - -
    Keep Latest Model - -```python -checkpoint_config = dict( - max_keep_ckpts=3) -``` - - - -```python -default_hooks = dict( - checkpoint=dict( - type='CheckpointHook', - max_keep_ckpts=3)) -``` - -
    - -### Logging Configuration - -In MMDetection 3.x, the logging and visualization of the log are carried out respectively by the logger and visualizer in MMEngine. The following table shows the comparison between the configuration of printing logs and visualizing logs in MMDetection 2.x and 3.x. - - - - - - - - - - - - - - - - - - - - - - - - -
    Function2.x Config3.x Config
    Set Log Printing Interval - -```python -log_config = dict(interval=50) -``` - - - -```python -default_hooks = dict( - logger=dict(type='LoggerHook', interval=50)) -# Optional: set moving average window size -log_processor = dict( - type='LogProcessor', window_size=50) -``` - -
    Use TensorBoard or WandB to visualize logs - -```python -log_config = dict( - interval=50, - hooks=[ - dict(type='TextLoggerHook'), - dict(type='TensorboardLoggerHook'), - dict(type='MMDetWandbHook', - init_kwargs={ - 'project': 'mmdetection', - 'group': 'maskrcnn-r50-fpn-1x-coco' - }, - interval=50, - log_checkpoint=True, - log_checkpoint_metadata=True, - num_eval_images=100) - ]) -``` - - - -```python -vis_backends = [ - dict(type='LocalVisBackend'), - dict(type='TensorboardVisBackend'), - dict(type='WandbVisBackend', - init_kwargs={ - 'project': 'mmdetection', - 'group': 'maskrcnn-r50-fpn-1x-coco' - }) -] -visualizer = dict( - type='DetLocalVisualizer', - vis_backends=vis_backends, - name='visualizer') -``` - -
    - -For visualization-related tutorials, please refer to [Visualization Tutorial](../user_guides/visualization.md) of MMDetection. - -### Runtime Configuration - -The runtime configuration fields in version 3.x have been adjusted, and the specific correspondence is as follows: - - - - - - - - - - - - - - - - -
    2.x Config3.x Config
    - -```python -cudnn_benchmark = False -opencv_num_threads = 0 -mp_start_method = 'fork' -dist_params = dict(backend='nccl') -log_level = 'INFO' -load_from = None -resume_from = None - - -``` - - - -```python -env_cfg = dict( - cudnn_benchmark=False, - mp_cfg=dict(mp_start_method='fork', - opencv_num_threads=0), - dist_cfg=dict(backend='nccl')) -log_level = 'INFO' -load_from = None -resume = False -``` - -
    diff --git a/docs/en/migration/dataset_migration.md b/docs/en/migration/dataset_migration.md deleted file mode 100644 index 75d093298e0..00000000000 --- a/docs/en/migration/dataset_migration.md +++ /dev/null @@ -1 +0,0 @@ -# Migrate dataset from MMDetection 2.x to 3.x diff --git a/docs/en/migration/migration.md b/docs/en/migration/migration.md deleted file mode 100644 index ec6a2f891b1..00000000000 --- a/docs/en/migration/migration.md +++ /dev/null @@ -1,12 +0,0 @@ -# Migrating from MMDetection 2.x to 3.x - -MMDetection 3.x is a significant update that includes many changes to API and configuration files. This document aims to help users migrate from MMDetection 2.x to 3.x. -We divided the migration guide into the following sections: - -- [Configuration file migration](./config_migration.md) -- [API and Registry migration](./api_and_registry_migration.md) -- [Dataset migration](./dataset_migration.md) -- [Model migration](./model_migration.md) -- [Frequently Asked Questions](./migration_faq.md) - -If you encounter any problems during the migration process, feel free to raise an issue. We also welcome contributions to this document. diff --git a/docs/en/migration/migration_faq.md b/docs/en/migration/migration_faq.md deleted file mode 100644 index a6e3c356c27..00000000000 --- a/docs/en/migration/migration_faq.md +++ /dev/null @@ -1 +0,0 @@ -# Migration FAQ diff --git a/docs/en/migration/model_migration.md b/docs/en/migration/model_migration.md deleted file mode 100644 index 04e280879fc..00000000000 --- a/docs/en/migration/model_migration.md +++ /dev/null @@ -1 +0,0 @@ -# Migrate models from MMDetection 2.x to 3.x diff --git a/docs/en/model_zoo.md b/docs/en/model_zoo.md deleted file mode 100644 index 15dd7b2fb5b..00000000000 --- a/docs/en/model_zoo.md +++ /dev/null @@ -1,358 +0,0 @@ -# Benchmark and Model Zoo - -## Mirror sites - -We only use aliyun to maintain the model zoo since MMDetection V2.0. The model zoo of V1.x has been deprecated. - -## Common settings - -- All models were trained on `coco_2017_train`, and tested on the `coco_2017_val`. -- We use distributed training. -- All pytorch-style pretrained backbones on ImageNet are from PyTorch model zoo, caffe-style pretrained backbones are converted from the newly released model from detectron2. -- For fair comparison with other codebases, we report the GPU memory as the maximum value of `torch.cuda.max_memory_allocated()` for all 8 GPUs. Note that this value is usually less than what `nvidia-smi` shows. -- We report the inference time as the total time of network forwarding and post-processing, excluding the data loading time. Results are obtained with the script [benchmark.py](https://github.com/open-mmlab/mmdetection/blob/main/tools/analysis_tools/benchmark.py) which computes the average time on 2000 images. - -## ImageNet Pretrained Models - -It is common to initialize from backbone models pre-trained on ImageNet classification task. All pre-trained model links can be found at [open_mmlab](https://github.com/open-mmlab/mmcv/blob/master/mmcv/model_zoo/open_mmlab.json). According to `img_norm_cfg` and source of weight, we can divide all the ImageNet pre-trained model weights into some cases: - -- TorchVision: Corresponding to torchvision weight, including ResNet50, ResNet101. The `img_norm_cfg` is `dict(mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)`. -- Pycls: Corresponding to [pycls](https://github.com/facebookresearch/pycls) weight, including RegNetX. The `img_norm_cfg` is `dict( mean=[103.530, 116.280, 123.675], std=[57.375, 57.12, 58.395], to_rgb=False)`. -- MSRA styles: Corresponding to [MSRA](https://github.com/KaimingHe/deep-residual-networks) weights, including ResNet50_Caffe and ResNet101_Caffe. The `img_norm_cfg` is `dict( mean=[103.530, 116.280, 123.675], std=[1.0, 1.0, 1.0], to_rgb=False)`. -- Caffe2 styles: Currently only contains ResNext101_32x8d. The `img_norm_cfg` is `dict(mean=[103.530, 116.280, 123.675], std=[57.375, 57.120, 58.395], to_rgb=False)`. -- Other styles: E.g SSD which corresponds to `img_norm_cfg` is `dict(mean=[123.675, 116.28, 103.53], std=[1, 1, 1], to_rgb=True)` and YOLOv3 which corresponds to `img_norm_cfg` is `dict(mean=[0, 0, 0], std=[255., 255., 255.], to_rgb=True)`. - -The detailed table of the commonly used backbone models in MMDetection is listed below : - -| model | source | link | description | -| ---------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| ResNet50 | TorchVision | [torchvision's ResNet-50](https://download.pytorch.org/models/resnet50-19c8e357.pth) | From [torchvision's ResNet-50](https://download.pytorch.org/models/resnet50-19c8e357.pth). | -| ResNet101 | TorchVision | [torchvision's ResNet-101](https://download.pytorch.org/models/resnet101-5d3b4d8f.pth) | From [torchvision's ResNet-101](https://download.pytorch.org/models/resnet101-5d3b4d8f.pth). | -| RegNetX | Pycls | [RegNetX_3.2gf](https://download.openmmlab.com/pretrain/third_party/regnetx_3.2gf-c2599b0f.pth), [RegNetX_800mf](https://download.openmmlab.com/pretrain/third_party/regnetx_800mf-1f4be4c7.pth). etc. | From [pycls](https://github.com/facebookresearch/pycls). | -| ResNet50_Caffe | MSRA | [MSRA's ResNet-50](https://download.openmmlab.com/pretrain/third_party/resnet50_caffe-788b5fa3.pth) | Converted copy of [Detectron2's R-50.pkl](https://dl.fbaipublicfiles.com/detectron2/ImageNetPretrained/MSRA/R-50.pkl) model. The original weight comes from [MSRA's original ResNet-50](https://github.com/KaimingHe/deep-residual-networks). | -| ResNet101_Caffe | MSRA | [MSRA's ResNet-101](https://download.openmmlab.com/pretrain/third_party/resnet101_caffe-3ad79236.pth) | Converted copy of [Detectron2's R-101.pkl](https://dl.fbaipublicfiles.com/detectron2/ImageNetPretrained/MSRA/R-101.pkl) model. The original weight comes from [MSRA's original ResNet-101](https://github.com/KaimingHe/deep-residual-networks). | -| ResNext101_32x8d | Caffe2 | [Caffe2 ResNext101_32x8d](https://download.openmmlab.com/pretrain/third_party/resnext101_32x8d-1516f1aa.pth) | Converted copy of [Detectron2's X-101-32x8d.pkl](https://dl.fbaipublicfiles.com/detectron2/ImageNetPretrained/FAIR/X-101-32x8d.pkl) model. The ResNeXt-101-32x8d model trained with Caffe2 at FB. | - -## Baselines - -### RPN - -Please refer to [RPN](https://github.com/open-mmlab/mmdetection/blob/main/configs/rpn) for details. - -### Faster R-CNN - -Please refer to [Faster R-CNN](https://github.com/open-mmlab/mmdetection/blob/main/configs/faster_rcnn) for details. - -### Mask R-CNN - -Please refer to [Mask R-CNN](https://github.com/open-mmlab/mmdetection/blob/main/configs/mask_rcnn) for details. - -### Fast R-CNN (with pre-computed proposals) - -Please refer to [Fast R-CNN](https://github.com/open-mmlab/mmdetection/blob/main/configs/fast_rcnn) for details. - -### RetinaNet - -Please refer to [RetinaNet](https://github.com/open-mmlab/mmdetection/blob/main/configs/retinanet) for details. - -### Cascade R-CNN and Cascade Mask R-CNN - -Please refer to [Cascade R-CNN](https://github.com/open-mmlab/mmdetection/blob/main/configs/cascade_rcnn) for details. - -### Hybrid Task Cascade (HTC) - -Please refer to [HTC](https://github.com/open-mmlab/mmdetection/blob/main/configs/htc) for details. - -### SSD - -Please refer to [SSD](https://github.com/open-mmlab/mmdetection/blob/main/configs/ssd) for details. - -### Group Normalization (GN) - -Please refer to [Group Normalization](https://github.com/open-mmlab/mmdetection/blob/main/configs/gn) for details. - -### Weight Standardization - -Please refer to [Weight Standardization](https://github.com/open-mmlab/mmdetection/blob/main/configs/gn+ws) for details. - -### Deformable Convolution v2 - -Please refer to [Deformable Convolutional Networks](https://github.com/open-mmlab/mmdetection/blob/main/configs/dcn) for details. - -### CARAFE: Content-Aware ReAssembly of FEatures - -Please refer to [CARAFE](https://github.com/open-mmlab/mmdetection/blob/main/configs/carafe) for details. - -### Instaboost - -Please refer to [Instaboost](https://github.com/open-mmlab/mmdetection/blob/main/configs/instaboost) for details. - -### Libra R-CNN - -Please refer to [Libra R-CNN](https://github.com/open-mmlab/mmdetection/blob/main/configs/libra_rcnn) for details. - -### Guided Anchoring - -Please refer to [Guided Anchoring](https://github.com/open-mmlab/mmdetection/blob/main/configs/guided_anchoring) for details. - -### FCOS - -Please refer to [FCOS](https://github.com/open-mmlab/mmdetection/blob/main/configs/fcos) for details. - -### FoveaBox - -Please refer to [FoveaBox](https://github.com/open-mmlab/mmdetection/blob/main/configs/foveabox) for details. - -### RepPoints - -Please refer to [RepPoints](https://github.com/open-mmlab/mmdetection/blob/main/configs/reppoints) for details. - -### FreeAnchor - -Please refer to [FreeAnchor](https://github.com/open-mmlab/mmdetection/blob/main/configs/free_anchor) for details. - -### Grid R-CNN (plus) - -Please refer to [Grid R-CNN](https://github.com/open-mmlab/mmdetection/blob/main/configs/grid_rcnn) for details. - -### GHM - -Please refer to [GHM](https://github.com/open-mmlab/mmdetection/blob/main/configs/ghm) for details. - -### GCNet - -Please refer to [GCNet](https://github.com/open-mmlab/mmdetection/blob/main/configs/gcnet) for details. - -### HRNet - -Please refer to [HRNet](https://github.com/open-mmlab/mmdetection/blob/main/configs/hrnet) for details. - -### Mask Scoring R-CNN - -Please refer to [Mask Scoring R-CNN](https://github.com/open-mmlab/mmdetection/blob/main/configs/ms_rcnn) for details. - -### Train from Scratch - -Please refer to [Rethinking ImageNet Pre-training](https://github.com/open-mmlab/mmdetection/blob/main/configs/scratch) for details. - -### NAS-FPN - -Please refer to [NAS-FPN](https://github.com/open-mmlab/mmdetection/blob/main/configs/nas_fpn) for details. - -### ATSS - -Please refer to [ATSS](https://github.com/open-mmlab/mmdetection/blob/main/configs/atss) for details. - -### FSAF - -Please refer to [FSAF](https://github.com/open-mmlab/mmdetection/blob/main/configs/fsaf) for details. - -### RegNetX - -Please refer to [RegNet](https://github.com/open-mmlab/mmdetection/blob/main/configs/regnet) for details. - -### Res2Net - -Please refer to [Res2Net](https://github.com/open-mmlab/mmdetection/blob/main/configs/res2net) for details. - -### GRoIE - -Please refer to [GRoIE](https://github.com/open-mmlab/mmdetection/blob/main/configs/groie) for details. - -### Dynamic R-CNN - -Please refer to [Dynamic R-CNN](https://github.com/open-mmlab/mmdetection/blob/main/configs/dynamic_rcnn) for details. - -### PointRend - -Please refer to [PointRend](https://github.com/open-mmlab/mmdetection/blob/main/configs/point_rend) for details. - -### DetectoRS - -Please refer to [DetectoRS](https://github.com/open-mmlab/mmdetection/blob/main/configs/detectors) for details. - -### Generalized Focal Loss - -Please refer to [Generalized Focal Loss](https://github.com/open-mmlab/mmdetection/blob/main/configs/gfl) for details. - -### CornerNet - -Please refer to [CornerNet](https://github.com/open-mmlab/mmdetection/blob/main/configs/cornernet) for details. - -### YOLOv3 - -Please refer to [YOLOv3](https://github.com/open-mmlab/mmdetection/blob/main/configs/yolo) for details. - -### PAA - -Please refer to [PAA](https://github.com/open-mmlab/mmdetection/blob/main/configs/paa) for details. - -### SABL - -Please refer to [SABL](https://github.com/open-mmlab/mmdetection/blob/main/configs/sabl) for details. - -### CentripetalNet - -Please refer to [CentripetalNet](https://github.com/open-mmlab/mmdetection/blob/main/configs/centripetalnet) for details. - -### ResNeSt - -Please refer to [ResNeSt](https://github.com/open-mmlab/mmdetection/blob/main/configs/resnest) for details. - -### DETR - -Please refer to [DETR](https://github.com/open-mmlab/mmdetection/blob/main/configs/detr) for details. - -### Deformable DETR - -Please refer to [Deformable DETR](https://github.com/open-mmlab/mmdetection/blob/main/configs/deformable_detr) for details. - -### AutoAssign - -Please refer to [AutoAssign](https://github.com/open-mmlab/mmdetection/blob/main/configs/autoassign) for details. - -### YOLOF - -Please refer to [YOLOF](https://github.com/open-mmlab/mmdetection/blob/main/configs/yolof) for details. - -### Seesaw Loss - -Please refer to [Seesaw Loss](https://github.com/open-mmlab/mmdetection/blob/main/configs/seesaw_loss) for details. - -### CenterNet - -Please refer to [CenterNet](https://github.com/open-mmlab/mmdetection/blob/main/configs/centernet) for details. - -### YOLOX - -Please refer to [YOLOX](https://github.com/open-mmlab/mmdetection/blob/main/configs/yolox) for details. - -### PVT - -Please refer to [PVT](https://github.com/open-mmlab/mmdetection/blob/main/configs/pvt) for details. - -### SOLO - -Please refer to [SOLO](https://github.com/open-mmlab/mmdetection/blob/main/configs/solo) for details. - -### QueryInst - -Please refer to [QueryInst](https://github.com/open-mmlab/mmdetection/blob/main/configs/queryinst) for details. - -### PanopticFPN - -Please refer to [PanopticFPN](https://github.com/open-mmlab/mmdetection/blob/main/configs/panoptic_fpn) for details. - -### MaskFormer - -Please refer to [MaskFormer](https://github.com/open-mmlab/mmdetection/blob/main/configs/maskformer) for details. - -### DyHead - -Please refer to [DyHead](https://github.com/open-mmlab/mmdetection/blob/main/configs/dyhead) for details. - -### Mask2Former - -Please refer to [Mask2Former](https://github.com/open-mmlab/mmdetection/blob/main/configs/mask2former) for details. - -### Efficientnet - -Please refer to [Efficientnet](https://github.com/open-mmlab/mmdetection/blob/main/configs/efficientnet) for details. - -### Other datasets - -We also benchmark some methods on [PASCAL VOC](https://github.com/open-mmlab/mmdetection/blob/main/configs/pascal_voc), [Cityscapes](https://github.com/open-mmlab/mmdetection/blob/main/configs/cityscapes), [OpenImages](https://github.com/open-mmlab/mmdetection/blob/main/configs/openimages) and [WIDER FACE](https://github.com/open-mmlab/mmdetection/blob/main/configs/wider_face). - -### Pre-trained Models - -We also train [Faster R-CNN](https://github.com/open-mmlab/mmdetection/blob/main/configs/faster_rcnn) and [Mask R-CNN](https://github.com/open-mmlab/mmdetection/blob/main/configs/mask_rcnn) using ResNet-50 and [RegNetX-3.2G](https://github.com/open-mmlab/mmdetection/blob/main/configs/regnet) with multi-scale training and longer schedules. These models serve as strong pre-trained models for downstream tasks for convenience. - -## Speed benchmark - -### Training Speed benchmark - -We provide [analyze_logs.py](https://github.com/open-mmlab/mmdetection/blob/main/tools/analysis_tools/analyze_logs.py) to get average time of iteration in training. You can find examples in [Log Analysis](https://mmdetection.readthedocs.io/en/latest/useful_tools.html#log-analysis). - -We compare the training speed of Mask R-CNN with some other popular frameworks (The data is copied from [detectron2](https://github.com/facebookresearch/detectron2/blob/main/docs/notes/benchmarks.md/)). -For mmdetection, we benchmark with [mask-rcnn_r50-caffe_fpn_poly-1x_coco_v1.py](https://github.com/open-mmlab/mmdetection/blob/main/configs/mask_rcnn/mask-rcnn_r50-caffe_fpn_poly-1x_coco_v1.py), which should have the same setting with [mask_rcnn_R_50_FPN_noaug_1x.yaml](https://github.com/facebookresearch/detectron2/blob/main/configs/Detectron1-Comparisons/mask_rcnn_R_50_FPN_noaug_1x.yaml) of detectron2. -We also provide the [checkpoint](https://download.openmmlab.com/mmdetection/v2.0/benchmark/mask_rcnn_r50_caffe_fpn_poly_1x_coco_no_aug/mask_rcnn_r50_caffe_fpn_poly_1x_coco_no_aug_compare_20200518-10127928.pth) and [training log](https://download.openmmlab.com/mmdetection/v2.0/benchmark/mask_rcnn_r50_caffe_fpn_poly_1x_coco_no_aug/mask_rcnn_r50_caffe_fpn_poly_1x_coco_no_aug_20200518_105755.log.json) for reference. The throughput is computed as the average throughput in iterations 100-500 to skip GPU warmup time. - -| Implementation | Throughput (img/s) | -| -------------------------------------------------------------------------------------- | ------------------ | -| [Detectron2](https://github.com/facebookresearch/detectron2) | 62 | -| [MMDetection](https://github.com/open-mmlab/mmdetection) | 61 | -| [maskrcnn-benchmark](https://github.com/facebookresearch/maskrcnn-benchmark/) | 53 | -| [tensorpack](https://github.com/tensorpack/tensorpack/tree/master/examples/FasterRCNN) | 50 | -| [simpledet](https://github.com/TuSimple/simpledet/) | 39 | -| [Detectron](https://github.com/facebookresearch/Detectron) | 19 | -| [matterport/Mask_RCNN](https://github.com/matterport/Mask_RCNN/) | 14 | - -### Inference Speed Benchmark - -We provide [benchmark.py](https://github.com/open-mmlab/mmdetection/blob/main/tools/analysis_tools/benchmark.py) to benchmark the inference latency. -The script benchmarkes the model with 2000 images and calculates the average time ignoring first 5 times. You can change the output log interval (defaults: 50) by setting `LOG-INTERVAL`. - -```shell -python tools/benchmark.py ${CONFIG} ${CHECKPOINT} [--log-interval $[LOG-INTERVAL]] [--fuse-conv-bn] -``` - -The latency of all models in our model zoo is benchmarked without setting `fuse-conv-bn`, you can get a lower latency by setting it. - -## Comparison with Detectron2 - -We compare mmdetection with [Detectron2](https://github.com/facebookresearch/detectron2.git) in terms of speed and performance. -We use the commit id [185c27e](https://github.com/facebookresearch/detectron2/tree/185c27e4b4d2d4c68b5627b3765420c6d7f5a659)(30/4/2020) of detectron. -For fair comparison, we install and run both frameworks on the same machine. - -### Hardware - -- 8 NVIDIA Tesla V100 (32G) GPUs -- Intel(R) Xeon(R) Gold 6148 CPU @ 2.40GHz - -### Software environment - -- Python 3.7 -- PyTorch 1.4 -- CUDA 10.1 -- CUDNN 7.6.03 -- NCCL 2.4.08 - -### Performance - -| Type | Lr schd | Detectron2 | mmdetection | Download | -| ------------------------------------------------------------------------------------------------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------ | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [Faster R-CNN](https://github.com/open-mmlab/mmdetection/blob/main/configs/faster_rcnn/faster-rcnn_r50-caffe_fpn_ms-1x_coco.py) | 1x | [37.9](https://github.com/facebookresearch/detectron2/blob/main/configs/COCO-Detection/faster_rcnn_R_50_FPN_1x.yaml) | 38.0 | [model](https://download.openmmlab.com/mmdetection/v2.0/benchmark/faster_rcnn_r50_caffe_fpn_mstrain_1x_coco/faster_rcnn_r50_caffe_fpn_mstrain_1x_coco-5324cff8.pth) \| [log](https://download.openmmlab.com/mmdetection/v2.0/benchmark/faster_rcnn_r50_caffe_fpn_mstrain_1x_coco/faster_rcnn_r50_caffe_fpn_mstrain_1x_coco_20200429_234554.log.json) | -| [Mask R-CNN](https://github.com/open-mmlab/mmdetection/blob/main/configs/mask_rcnn/mask-rcnn_r50-caffe_fpn_ms-poly-1x_coco.py) | 1x | [38.6 & 35.2](https://github.com/facebookresearch/detectron2/blob/main/configs/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_1x.yaml) | 38.8 & 35.4 | [model](https://download.openmmlab.com/mmdetection/v2.0/benchmark/mask_rcnn_r50_caffe_fpn_mstrain-poly_1x_coco/mask_rcnn_r50_caffe_fpn_mstrain-poly_1x_coco-dbecf295.pth) \| [log](https://download.openmmlab.com/mmdetection/v2.0/benchmark/mask_rcnn_r50_caffe_fpn_mstrain-poly_1x_coco/mask_rcnn_r50_caffe_fpn_mstrain-poly_1x_coco_20200430_054239.log.json) | -| [Retinanet](https://github.com/open-mmlab/mmdetection/blob/main/configs/retinanet/retinanet_r50-caffe_fpn_ms-1x_coco.py) | 1x | [36.5](https://github.com/facebookresearch/detectron2/blob/master/configs/COCO-Detection/retinanet_R_50_FPN_1x.yaml) | 37.0 | [model](https://download.openmmlab.com/mmdetection/v2.0/benchmark/retinanet_r50_caffe_fpn_mstrain_1x_coco/retinanet_r50_caffe_fpn_mstrain_1x_coco-586977a0.pth) \| [log](https://download.openmmlab.com/mmdetection/v2.0/benchmark/retinanet_r50_caffe_fpn_mstrain_1x_coco/retinanet_r50_caffe_fpn_mstrain_1x_coco_20200430_014748.log.json) | - -### Training Speed - -The training speed is measure with s/iter. The lower, the better. - -| Type | Detectron2 | mmdetection | -| ------------ | ---------- | ----------- | -| Faster R-CNN | 0.210 | 0.216 | -| Mask R-CNN | 0.261 | 0.265 | -| Retinanet | 0.200 | 0.205 | - -### Inference Speed - -The inference speed is measured with fps (img/s) on a single GPU, the higher, the better. -To be consistent with Detectron2, we report the pure inference speed (without the time of data loading). -For Mask R-CNN, we exclude the time of RLE encoding in post-processing. -We also include the officially reported speed in the parentheses, which is slightly higher -than the results tested on our server due to differences of hardwares. - -| Type | Detectron2 | mmdetection | -| ------------ | ----------- | ----------- | -| Faster R-CNN | 25.6 (26.3) | 22.2 | -| Mask R-CNN | 22.5 (23.3) | 19.6 | -| Retinanet | 17.8 (18.2) | 20.6 | - -### Training memory - -| Type | Detectron2 | mmdetection | -| ------------ | ---------- | ----------- | -| Faster R-CNN | 3.0 | 3.8 | -| Mask R-CNN | 3.4 | 3.9 | -| Retinanet | 3.9 | 3.4 | diff --git a/docs/en/notes/changelog.md b/docs/en/notes/changelog.md deleted file mode 100644 index 4d48a0a0d22..00000000000 --- a/docs/en/notes/changelog.md +++ /dev/null @@ -1,603 +0,0 @@ -# Changelog of v3.x - -## v3.1.0 (12/10/2023) - -### Highlights - -**(1) Detection Transformer SOTA Model Collection** - -- Supported four updated and stronger SOTA Transformer models: DDQ, CO-DETR, AlignDETR, and H-DINO. -- Based on CO-DETR, MMDet released a model with a COCO performance of 64.1 mAP. -- Algorithms such as DINO support AMP/Checkpoint/FrozenBN, which can effectively reduce memory usage. - -**(2) Comprehensive Performance Comparison between CNN and Transformer** - -RF100 consists of a dataset collection of 100 real-world datasets, including 7 domains. It can be used to assess the performance differences of Transformer models like DINO and CNN-based algorithms under different scenarios and data volumes. Users can utilize this benchmark to quickly evaluate the robustness of their algorithms in various scenarios. - -**(3) Support for GLIP and Grounding DINO fine-tuning, the only algorithm library that supports Grounding DINO fine-tuning** - -The Grounding DINO algorithm in MMDet is the only library that supports fine-tuning. Its performance is one point higher than the official version, and of course, GLIP also outperforms the official version. -We also provide a detailed process for training and evaluating Grounding DINO on custom datasets. Everyone is welcome to give it a try. - -**(4) Support for the open-vocabulary detection algorithm Detic and multi-dataset joint training.** - -**(5) Training detection models using FSDP and DeepSpeed.** - -**(6) Support for the V3Det dataset, a large-scale detection dataset with over 13,000 categories.** - -### New Features - -- Support CO-DETR/DDQ/AlignDETR/H-DINO -- Support GLIP and Grounding DINO fine-tuning -- Support Detic and Multi-Datasets training (#10926) -- Support V3Det and benchmark (#10938) -- Support Roboflow 100 Benchmark (#10915) -- Add custom dataset of grounding dino (#11012) -- Release RTMDet-X p6 (#10993) -- Support AMP of DINO (#10827) -- Support FrozenBN (#10845) -- Add new configuration files for `QDTrack/DETR/RTMDet/MaskRCNN/DINO/DeformableDETR/MaskFormer` algorithm -- Add a new script to support the WBF (#10808) -- Add `large_image_demo` (#10719) -- Support download dataset from OpenXLab (#10799) -- Update to support torch2onnx for DETR series models (#10910) -- Translation into Chinese of an English document (#10744, #10756, #10805, #10848) - -### Bug Fixes - -- Fix name error in DETR metafile.yml (#10595) -- Fix device of the tensors in `set_nms` (#10574) -- Remove some unicode chars from `en/` docs (#10648) -- Fix download dataset with mim script. (#10727) -- Fix export to torchserve (#10694) -- Fix typo in `mask-rcnn_r50_fpn_1x-wandb_coco` (#10757) -- Fix `eval_recalls` error in `voc_metric` (#10770) -- Fix torch version comparison (#10934) -- Fix incorrect behavior to access train pipeline from ConcatDataset in `analyze_results.py` (#11004) - -### Improvements - -- Update `useful_tools.md` (#10587) -- Update Instance segmentation Tutorial (#10711) -- Update `train.py` to compat with new config (#11025) -- Support `torch2onnx` for maskformer series (#10782) - -### Contributors - -A total of 36 developers contributed to this release. - -Thank @YQisme, @nskostas, @max-unfinity, @evdcush, @Xiangxu-0103, @ZhaoCake, @RangeKing, @captainIT, @ODAncona, @aaronzs, @zeyuanyin, @gotjd709, @Musiyuan, @YanxingLiu, @RunningLeon, @ytzfhqs, @zhangzhidaSunny, @yeungkong, @crazysteeaam, @timerring, @okotaku, @apatsekin, @Morty-Xu, @Markson-Young, @ZhaoQiiii, @Kuro96, @PhoenixZ810, @yhcao6, @myownskyW7, @jiongjiongli, @Johnson-Wang, @ryylcc, @guyleaf, @agpeshal, @SimonGuoNjust, @hhaAndroid - -## v3.1.0 (30/6/2023) - -### Highlights - -- Supports tracking algorithms including multi-object tracking (MOT) algorithms SORT, DeepSORT, StrongSORT, OCSORT, ByteTrack, QDTrack, and video instance segmentation (VIS) algorithm MaskTrackRCNN, Mask2Former-VIS. -- Support [ViTDet](../../../projects/ViTDet) -- Supports inference and evaluation of multimodal algorithms [GLIP](../../../configs/glip) and [XDecoder](../../../projects/XDecoder), and also supports datasets such as COCO semantic segmentation, COCO Caption, ADE20k general segmentation, and RefCOCO. GLIP fine-tuning will be supported in the future. -- Provides a [gradio demo](https://github.com/open-mmlab/mmdetection/blob/dev-3.x/projects/gradio_demo/README.md) for image type tasks of MMDetection, making it easy for users to experience. - -### New Features - -- Support DSDL Dataset (#9801) -- Support iSAID dataset (#10028) -- Support VISION dataset (#10530) -- Release SoftTeacher checkpoints (#10119) -- Release `centernet-update_r50-caffe_fpn_ms-1x_coco` checkpoints (#10327) -- Support SIoULoss (#10290) -- Support Eqlv2 loss (#10120) -- Support CopyPaste when mask is not available (#10509) -- Support MIM to download ODL dataset (#10460) -- Support new config (#10566) - -### Bug Fixes - -- Fix benchmark scripts error in windows (#10128) -- Fix error of `YOLOXModeSwitchHook` does not switch the mode when resumed from the checkpoint after switched (#10116) -- Fix pred and weight dims unmatch in SmoothL1Loss (#10423) - -### Improvements - -- Update MMDet_Tutorial.ipynb (#10081) -- Support to hide inference progress (#10519) -- Replace mmcls with mmpretrain (#10545) - -### Contributors - -A total of 29 developers contributed to this release. - -Thanks @lovelykite, @minato-ellie, @freepoet, @wufan-tb, @yalibian, @keyakiluo, @gihanjayatilaka, @i-aki-y, @xin-li-67, @RangeKing, @JingweiZhang12, @MambaWong, @lucianovk, @tall-josh, @xiuqhou, @jamiechoi1995, @YQisme, @yechenzhi, @bjzhb666, @xiexinch, @jamiechoi1995, @yarkable, @Renzhihan, @nijkah, @amaizr, @Lum1104, @zwhus, @Czm369, @hhaAndroid - -## v3.0.0 (6/4/2023) - -### Highlights - -- Support Semi-automatic annotation Base [Label-Studio](../../../projects/LabelStudio) (#10039) -- Support [EfficientDet](../../../projects/EfficientDet) in projects (#9810) - -### New Features - -- File I/O migration and reconstruction (#9709) -- Release DINO Swin-L 36e model (#9927) - -### Bug Fixes - -- Fix benchmark script (#9865) -- Fix the crop method of PolygonMasks (#9858) -- Fix Albu augmentation with the mask shape (#9918) -- Fix `RTMDetIns` prior generator device error (#9964) -- Fix `img_shape` in data pipeline (#9966) -- Fix cityscapes import error (#9984) -- Fix `solov2_r50_fpn_ms-3x_coco.py` config error (#10030) -- Fix Conditional DETR AP and Log (#9889) -- Fix accepting an unexpected argument local-rank in PyTorch 2.0 (#10050) -- Fix `common/ms_3x_coco-instance.py` config error (#10056) -- Fix compute flops error (#10051) -- Delete `data_root` in `CocoOccludedSeparatedMetric` to fix bug (#9969) -- Unifying metafile.yml (#9849) - -### Improvements - -- Added BoxInst r101 config (#9967) -- Added config migration guide (#9960) -- Added more social networking links (#10021) -- Added RTMDet config introduce (#10042) -- Added visualization docs (#9938, #10058) -- Refined data_prepare docs (#9935) -- Added support for setting the cache_size_limit parameter of dynamo in PyTorch 2.0 (#10054) -- Updated coco_metric.py (#10033) -- Update type hint (#10040) - -### Contributors - -A total of 19 developers contributed to this release. - -Thanks @IRONICBo, @vansin, @RangeKing, @Ghlerrix, @okotaku, @JosonChan1998, @zgzhengSE, @bobo0810, @yechenzh, @Zheng-LinXiao, @LYMDLUT, @yarkable, @xiejiajiannb, @chhluo, @BIGWangYuDong, @RangiLy, @zwhus, @hhaAndroid, @ZwwWayne - -## v3.0.0rc6 (24/2/2023) - -### Highlights - -- Support [Boxinst](../../../configs/boxinst), [Objects365 Dataset](../../../configs/objects365), and [Separated and Occluded COCO metric](../user_guides/useful_tools.md#COCO-Separated-&-Occluded-Mask-Metric) -- Support [ConvNeXt-V2](../../../projects/ConvNeXt-V2), [DiffusionDet](../../../projects/DiffusionDet), and inference of [EfficientDet](../../../projects/EfficientDet) and [Detic](../../../projects/Detic) in `Projects` -- Refactor [DETR](../../../configs/detr) series and support [Conditional-DETR](../../../configs/conditional_detr), [DAB-DETR](../../../configs/dab_detr), and [DINO](../../../configs/detr) -- Support `DetInferencer` for inference, Test Time Augmentation, and automatically importing modules from registry -- Support RTMDet-Ins ONNXRuntime and TensorRT [deployment](../../../configs/rtmdet/README.md#deployment-tutorial) -- Support [calculating FLOPs of detectors](../user_guides/useful_tools.md#Model-Complexity) - -### New Features - -- Support [Boxinst](https://arxiv.org/abs/2012.02310) (#9525) -- Support [Objects365 Dataset](https://openaccess.thecvf.com/content_ICCV_2019/papers/Shao_Objects365_A_Large-Scale_High-Quality_Dataset_for_Object_Detection_ICCV_2019_paper.pdf) (#9600) -- Support [ConvNeXt-V2](http://arxiv.org/abs/2301.00808) in `Projects` (#9619) -- Support [DiffusionDet](https://arxiv.org/abs/2211.09788) in `Projects` (#9639, #9768) -- Support [Detic](http://arxiv.org/abs/2201.02605) inference in `Projects` (#9645) -- Support [EfficientDet](https://arxiv.org/abs/1911.09070) inference in `Projects` (#9645) -- Support [Separated and Occluded COCO metric](https://arxiv.org/abs/2210.10046) (#9710) -- Support auto import modules from registry (#9143) -- Refactor DETR series and support Conditional-DETR, DAB-DETR and DINO (#9646) -- Support `DetInferencer` for inference (#9561) -- Support Test Time Augmentation (#9452) -- Support calculating FLOPs of detectors (#9777) - -### Bug Fixes - -- Fix deprecating old type alias due to new version of numpy (#9625, #9537) -- Fix VOC metrics (#9784) -- Fix the wrong link of RTMDet-x log (#9549) -- Fix RTMDet link in README (#9575) -- Fix MMDet get flops error (#9589) -- Fix `use_depthwise` in RTMDet (#9624) -- Fix `albumentations` augmentation post process with masks (#9551) -- Fix DETR series Unit Test (#9647) -- Fix `LoadPanopticAnnotations` bug (#9703) -- Fix `isort` CI (#9680) -- Fix amp pooling overflow (#9670) -- Fix docstring about noise in DINO (#9747) -- Fix potential bug in `MultiImageMixDataset` (#9764) - -### Improvements - -- Replace NumPy transpose with PyTorch permute to speed-up (#9762) -- Deprecate `sklearn` (#9725) -- Add RTMDet-Ins deployment guide (#9823) -- Update RTMDet config and README (#9603) -- Replace the models used in the tutorial document with RTMDet (#9843) -- Adjust the minimum supported python version to 3.7 (#9602) -- Support modifying palette through configuration (#9445) -- Update README document in `Project` (#9599) -- Replace `github` with `gitee` in `.pre-commit-config-zh-cn.yaml` file (#9586) -- Use official `isort` in `.pre-commit-config.yaml` file (#9701) -- Change MMCV minimum version to `2.0.0rc4` for `dev-3.x` (#9695) -- Add Chinese version of single_stage_as_rpn.md and test_results_submission.md (#9434) -- Add OpenDataLab download link (#9605, #9738) -- Add type hints of several layers (#9346) -- Add typehint for `DarknetBottleneck` (#9591) -- Add dockerfile (#9659) -- Add twitter, discord, medium, and youtube link (#9775) -- Prepare for merging refactor-detr (#9656) -- Add metafile to ConditionalDETR, DABDETR and DINO (#9715) -- Support to modify `non_blocking` parameters (#9723) -- Comment repeater visualizer register (#9740) -- Update user guide: `finetune.md` and `inference.md` (#9578) - -### New Contributors - -- @NoFish-528 made their first contribution in -- @137208 made their first contribution in -- @lyviva made their first contribution in -- @zwhus made their first contribution in -- @zylo117 made their first contribution in -- @chg0901 made their first contribution in -- @DanShouzhu made their first contribution in https://github.com/open-mmlab/mmdetection/pull/9578 - -### Contributors - -A total of 27 developers contributed to this release. - -Thanks @JosonChan1998, @RangeKing, @NoFish-528, @likyoo, @Xiangxu-0103, @137208, @PeterH0323, @tianleiSHI, @wufan-tb, @lyviva, @zwhus, @jshilong, @Li-Qingyun, @sanbuphy, @zylo117, @triple-Mu, @KeiChiTse, @LYMDLUT, @nijkah, @chg0901, @DanShouzhu, @zytx121, @vansin, @BIGWangYuDong, @hhaAndroid, @RangiLyu, @ZwwWayne - -## v3.0.0rc5 (26/12/2022) - -### Highlights - -- Support [RTMDet](https://arxiv.org/abs/2212.07784) instance segmentation models. The technical report of RTMDet is on [arxiv](https://arxiv.org/abs/2212.07784) -- Support SSHContextModule in paper [SSH: Single Stage Headless Face Detector](https://arxiv.org/abs/1708.03979). - -### New Features - -- Support [RTMDet](https://arxiv.org/abs/2212.07784) instance segmentation models and improve RTMDet test config (#9494) -- Support SSHContextModule in paper [SSH: Single Stage Headless Face Detector](https://arxiv.org/abs/1708.03979) (#8953) -- Release [CondInst](https://arxiv.org/abs/2003.05664) pre-trained model (#9406) - -### Bug Fixes - -- Fix CondInst predict error when `batch_size` is greater than 1 in inference (#9400) -- Fix the bug of visualization when the dtype of the pipeline output image is not uint8 in browse dataset (#9401) -- Fix `analyze_logs.py` to plot mAP and calculate train time correctly (#9409) -- Fix backward inplace error with `PAFPN` (#9450) -- Fix config import links in model converters (#9441) -- Fix `DeformableDETRHead` object has no attribute `loss_single` (#9477) -- Fix the logic of pseudo bboxes predicted by teacher model in SemiBaseDetector (#9414) -- Fix demo API in instance segmentation tutorial (#9226) -- Fix `analyze_results` (#9380) -- Fix the error that Readthedocs API cannot be displayed (#9510) -- Fix the error when there are no prediction results and support visualize the groundtruth of TTA (#9840) - -### Improvements - -- Remove legacy `builder.py` (#9479) -- Make sure the pipeline argument shape is in `(width, height)` order (#9324) -- Add `.pre-commit-config-zh-cn.yaml` file (#9388) -- Refactor dataset metainfo to lowercase (#9469) -- Add PyTorch 1.13 checking in CI (#9478) -- Adjust `FocalLoss` and `QualityFocalLoss` to allow different kinds of targets (#9481) -- Refactor `setup.cfg` (#9370) -- Clip saturation value to valid range `[0, 1]` (#9391) -- Only keep meta and state_dict when publishing model (#9356) -- Add segm evaluator in ms-poly_3x_coco_instance config (#9524) -- Update deployment guide (#9527) -- Update zh_cn `faq.md` (#9396) -- Update `get_started` (#9480) -- Update the zh_cn user_guides of `useful_tools.md` and `useful_hooks.md` (#9453) -- Add type hints for `bfp` and `channel_mapper` (#9410) -- Add type hints of several losses (#9397) -- Add type hints and update docstring for task modules (#9468) - -### New Contributors - -- @lihua199710 made their first contribution in -- @twmht made their first contribution in -- @tianleiSHI made their first contribution in -- @kitecats made their first contribution in -- @QJC123654 made their first contribution in - -### Contributors - -A total of 20 developers contributed to this release. - -Thanks @liuyanyi, @RangeKing, @lihua199710, @MambaWong, @sanbuphy, @Xiangxu-0103, @twmht, @JunyaoHu, @Chan-Sun, @tianleiSHI, @zytx121, @kitecats, @QJC123654, @JosonChan1998, @lvhan028, @Czm369, @BIGWangYuDong, @RangiLyu, @hhaAndroid, @ZwwWayne - -## v3.0.0rc4 (23/11/2022) - -### Highlights - -- Support [CondInst](https://arxiv.org/abs/2003.05664) -- Add `projects/` folder, which will be a place for some experimental models/features. -- Support [SparseInst](https://arxiv.org/abs/2203.12827) in [`projects`](./projects/SparseInst/README.md) - -### New Features - -- Support [CondInst](https://arxiv.org/abs/2003.05664) (#9223) -- Add `projects/` folder, which will be a place for some experimental models/features (#9341) -- Support [SparseInst](https://arxiv.org/abs/2203.12827) in [`projects`](./projects/SparseInst/README.md) (#9377) - -### Bug Fixes - -- Fix `pixel_decoder_type` discrimination in MaskFormer Head. (#9176) -- Fix wrong padding value in cached MixUp (#9259) -- Rename `utils/typing.py` to `utils/typing_utils.py` to fix `collect_env` error (#9265) -- Fix resume arg conflict (#9287) -- Fix the configs of Faster R-CNN with caffe backbone (#9319) -- Fix torchserve and update related documentation (#9343) -- Fix bbox refine bug with sigmooid activation (#9538) - -### Improvements - -- Update the docs of GIoU Loss in README (#8810) -- Handle dataset wrapper in `inference_detector` (#9144) -- Update the type of `counts` in COCO's compressed RLE (#9274) -- Support saving config file in `print_config` (#9276) -- Update docs about video inference (#9305) -- Update guide about model deployment (#9344) -- Fix doc typos of useful tools (#9177) -- Allow to resume from specific checkpoint in CLI (#9284) -- Update FAQ about windows installation issues of pycocotools (#9292) - -### New Contributors - -- @Daa98 made their first contribution in -- @lvhan028 made their first contribution in - -### Contributors - -A total of 12 developers contributed to this release. - -Thanks @sanbuphy, @Czm369, @Daa98, @jbwang1997, @BIGWangYuDong, @JosonChan1998, @lvhan028, @RunningLeon, @RangiLyu, @Daa98, @ZwwWayne, @hhaAndroid - -## v3.0.0rc3 (4/11/2022) - -Upgrade the minimum version requirement of MMEngine to 0.3.0 to use `ignore_key` of `ConcatDataset` for training VOC datasets (#9058) - -### Highlights - -- Support [CrowdDet](https://arxiv.org/abs/2003.09163) and [EIoU Loss](https://ieeexplore.ieee.org/document/9429909) -- Support training detection models in Detectron2 -- Refactor Fast R-CNN - -### New Features - -- Support [CrowdDet](https://arxiv.org/abs/2003.09163) (#8744) -- Support training detection models in Detectron2 with examples of Mask R-CNN, Faster R-CNN, and RetinaNet (#8672) -- Support [EIoU Loss](https://ieeexplore.ieee.org/document/9429909) (#9086) - -### Bug Fixes - -- Fix `XMLDataset` image size error (#9216) -- Fix bugs of empty_instances when predicting without nms in roi_head (#9015) -- Fix the config file of DETR (#9158) -- Fix SOLOv2 cannot dealing with empty gt image (#9192) -- Fix inference demo (#9153) -- Add `ignore_key` in VOC `ConcatDataset` (#9058) -- Fix dumping results issue in test scripts. (#9241) -- Fix configs of training coco subsets on MMDet 3.x (#9225) -- Fix corner2hbox of HorizontalBoxes for supporting empty bboxes (#9140) - -### Improvements - -- Refactor Fast R-CNN (#9132) -- Clean requirements of mmcv-full due to SyncBN (#9207) -- Support training detection models in detectron2 (#8672) -- Add `box_type` support for `DynamicSoftLabelAssigner` (#9179) -- Make scipy as a default dependency in runtime (#9187) -- Update eval_metric (#9062) -- Add `seg_map_suffix` in `BaseDetDataset` (#9088) - -### New Contributors - -- @Wwupup made their first contribution in -- @sanbuphy made their first contribution in -- @cxiang26 made their first contribution in -- @JosonChan1998 made their first contribution in - -### Contributors - -A total of 13 developers contributed to this release. - -Thanks @wanghonglie, @Wwupup, @sanbuphy, @BIGWangYuDong, @liuyanyi, @cxiang26, @jbwang1997, @ZwwWayne, @yuyoujiang, @RangiLyu, @hhaAndroid, @JosonChan1998, @Czm369 - -## v3.0.0rc2 (21/10/2022) - -### Highlights - -- Support [imagenet pre-training](configs/rtmdet/cspnext_imagenet_pretrain) for RTMDet's backbone - -### New Features - -- Support [imagenet pre-training](configs/rtmdet/cspnext_imagenet_pretrain) for RTMDet's backbone (#8887) -- Add `CrowdHumanDataset` and Metric (#8430) -- Add `FixShapeResize` to support resize of fixed shape (#8665) - -### Bug Fixes - -- Fix `ConcatDataset` Import Error (#8909) -- Fix `CircleCI` and `readthedoc` build failed (#8980, #8963) -- Fix bitmap mask translate when `out_shape` is different (#8993) -- Fix inconsistency in `Conv2d` weight channels (#8948) -- Fix bugs when plotting loss curve by analyze_logs.py (#8944) -- Fix type change of labels in `albumentations` (#9074) -- Fix some docs and types error (#8818) -- Update memory occupation of `RTMDet` in metafile (#9098) -- Fix wrong arguments of `OpenImageMetrics` in the config (#9061) - -### Improvements - -- Refactor standard roi head with `box type` (#8658) -- Support mask concatenation in `BitmapMasks` and `PolygonMasks` (#9006) -- Update PyTorch and dependencies' version in dockerfile (#8845) -- Update `robustness_eval.py` and `print_config` (#8452) -- Make compatible with `ConfigDict` and `dict` in `dense_heads` (#8942) -- Support logging coco metric copypaste (#9012) -- Remove `Normalize` transform (#8913) -- Support jittering the color of different instances of the same class (#8988) -- Add assertion for missing key in `PackDetInputs` (#8982) - -### New Contributors - -- @Chan-Sun made their first contribution in -- @MambaWong made their first contribution in -- @yuyoujiang made their first contribution in -- @sltlls made their first contribution in -- @Nioolek made their first contribution in -- @wufan-tb made their first contribution in - -### Contributors - -A total of 13 developers contributed to this release. - -Thanks @RangiLyu, @jbwang1997, @wanghonglie, @Chan-Sun, @RangeKing, @chhluo, @MambaWong, @yuyoujiang, @hhaAndroid, @sltlls, @Nioolek, @ZwwWayne, @wufan-tb - -## v3.0.0rc1 (26/9/2022) - -### Highlights - -- Release a high-precision, low-latency single-stage object detector [RTMDet](configs/rtmdet). - -### Bug Fixes - -- Fix UT to be compatible with PyTorch 1.6 (#8707) -- Fix `NumClassCheckHook` bug when model is wrapped (#8794) -- Update the right URL of R-50-FPN with BoundedIoULoss (#8805) -- Fix potential bug of indices in RandAugment (#8826) -- Fix some types and links (#8839, #8820, #8793, #8868) -- Fix incorrect background fill values in `FSAF` and `RepPoints` Head (#8813) - -### Improvements - -- Refactored anchor head and base head with `box type` (#8625) -- Refactored `SemiBaseDetector` and `SoftTeacher` (#8786) -- Add list to dict keys to avoid modify loss dict (#8828) -- Update `analyze_results.py` , `analyze_logs.py` and `loading.py` (#8430, #8402, #8784) -- Support dump results in `test.py` (#8814) -- Check empty predictions in `DetLocalVisualizer._draw_instances` (#8830) -- Fix `floordiv` warning in `SOLO` (#8738) - -### Contributors - -A total of 16 developers contributed to this release. - -Thanks @ZwwWayne, @jbwang1997, @Czm369, @ice-tong, @Zheng-LinXiao, @chhluo, @RangiLyu, @liuyanyi, @wanghonglie, @levan92, @JiayuXu0, @nye0, @hhaAndroid, @xin-li-67, @shuxp, @zytx121 - -## v3.0.0rc0 (31/8/2022) - -We are excited to announce the release of MMDetection 3.0.0rc0. MMDet 3.0.0rc0 is the first version of MMDetection 3.x, a part of the OpenMMLab 2.0 projects. Built upon the new [training engine](https://github.com/open-mmlab/mmengine), MMDet 3.x unifies the interfaces of the dataset, models, evaluation, and visualization with faster training and testing speed. It also provides a general semi-supervised object detection framework and strong baselines. - -### Highlights - -1. **New engine**. MMDet 3.x is based on [MMEngine](https://github.com/open-mmlab/mmengine), which provides a universal and powerful runner that allows more flexible customizations and significantly simplifies the entry points of high-level interfaces. - -2. **Unified interfaces**. As a part of the OpenMMLab 2.0 projects, MMDet 3.x unifies and refactors the interfaces and internal logic of training, testing, datasets, models, evaluation, and visualization. All the OpenMMLab 2.0 projects share the same design in those interfaces and logic to allow the emergence of multi-task/modality algorithms. - -3. **Faster speed**. We optimize the training and inference speed for common models and configurations, achieving a faster or similar speed than [Detection2](https://github.com/facebookresearch/detectron2/). Model details of benchmark will be updated in [this note](./benchmark.md#comparison-with-detectron2). - -4. **General semi-supervised object detection**. Benefitting from the unified interfaces, we support a general semi-supervised learning framework that works with all the object detectors supported in MMDet 3.x. Please refer to [semi-supervised object detection](../user_guides/semi_det.md) for details. - -5. **Strong baselines**. We release strong baselines of many popular models to enable fair comparisons among state-of-the-art models. - -6. **New features and algorithms**: - - - Enable all the single-stage detectors to serve as region proposal networks - - [SoftTeacher](https://arxiv.org/abs/2106.09018) - - [the updated CenterNet](https://arxiv.org/abs/2103.07461) - -7. **More documentation and tutorials**. We add a bunch of documentation and tutorials to help users get started more smoothly. Read it [here](https://mmdetection.readthedocs.io/en/3.x/). - -### Breaking Changes - -MMDet 3.x has undergone significant changes for better design, higher efficiency, more flexibility, and more unified interfaces. -Besides the changes in API, we briefly list the major breaking changes in this section. -We will update the [migration guide](../migration.md) to provide complete details and migration instructions. -Users can also refer to the [API doc](https://mmdetection.readthedocs.io/en/3.x/) for more details. - -#### Dependencies - -- MMDet 3.x runs on PyTorch>=1.6. We have deprecated the support of PyTorch 1.5 to embrace mixed precision training and other new features since PyTorch 1.6. Some models can still run on PyTorch 1.5, but the full functionality of MMDet 3.x is not guaranteed. -- MMDet 3.x relies on MMEngine to run. MMEngine is a new foundational library for training deep learning models of OpenMMLab and is the core dependency of OpenMMLab 2.0 projects. The dependencies of file IO and training are migrated from MMCV 1.x to MMEngine. -- MMDet 3.x relies on MMCV>=2.0.0rc0. Although MMCV no longer maintains the training functionalities since 2.0.0rc0, MMDet 3.x relies on the data transforms, CUDA operators, and image processing interfaces in MMCV. Note that the package `mmcv` is the version that provides pre-built CUDA operators and `mmcv-lite` does not since MMCV 2.0.0rc0, while `mmcv-full` has been deprecated since 2.0.0rc0. - -#### Training and testing - -- MMDet 3.x uses Runner in [MMEngine](https://github.com/open-mmlab/mmengine) rather than that in MMCV. The new Runner implements and unifies the building logic of the dataset, model, evaluation, and visualizer. Therefore, MMDet 3.x no longer maintains the building logic of those modules in `mmdet.train.apis` and `tools/train.py`. Those codes have been migrated into [MMEngine](https://github.com/open-mmlab/mmengine/blob/main/mmengine/runner/runner.py). Please refer to the [migration guide of Runner in MMEngine](https://mmengine.readthedocs.io/en/latest/migration/runner.html) for more details. -- The Runner in MMEngine also supports testing and validation. The testing scripts are also simplified, which has similar logic to that in training scripts to build the runner. -- The execution points of hooks in the new Runner have been enriched to allow more flexible customization. Please refer to the [migration guide of Hook in MMEngine](https://mmengine.readthedocs.io/en/latest/migration/hook.html) for more details. -- Learning rate and momentum schedules have been migrated from Hook to [Parameter Scheduler in MMEngine](https://mmengine.readthedocs.io/en/latest/tutorials/param_scheduler.html). Please refer to the [migration guide of Parameter Scheduler in MMEngine](https://mmengine.readthedocs.io/en/latest/migration/param_scheduler.html) for more details. - -#### Configs - -- The [Runner in MMEngine](https://github.com/open-mmlab/mmengine/blob/main/mmengine/runner/runner.py) uses a different config structure to ease the understanding of the components in the runner. Users can read the [config example of MMDet 3.x](../user_guides/config.md) or refer to the [migration guide in MMEngine](https://mmengine.readthedocs.io/en/latest/migration/runner.html) for migration details. -- The file names of configs and models are also refactored to follow the new rules unified across OpenMMLab 2.0 projects. The names of checkpoints are not updated for now as there is no BC-breaking of model weights between MMDet 3.x and 2.x. We will progressively replace all the model weights with those trained in MMDet 3.x. Please refer to the [user guides of config](../user_guides/config.md) for more details. - -#### Dataset - -The Dataset classes implemented in MMDet 3.x all inherit from the `BaseDetDataset`, which inherits from the [BaseDataset in MMEngine](https://mmengine.readthedocs.io/en/latest/advanced_tutorials/basedataset.html). In addition to the changes in interfaces, there are several changes in Dataset in MMDet 3.x. - -- All the datasets support serializing the internal data list to reduce the memory when multiple workers are built for data loading. -- The internal data structure in the dataset is changed to be self-contained (without losing information like class names in MMDet 2.x) while keeping simplicity. -- The evaluation functionality of each dataset has been removed from the dataset so that some specific evaluation metrics like COCO AP can be used to evaluate the prediction on other datasets. - -#### Data Transforms - -The data transforms in MMDet 3.x all inherits from `BaseTransform` in MMCV>=2.0.0rc0, which defines a new convention in OpenMMLab 2.0 projects. -Besides the interface changes, there are several changes listed below: - -- The functionality of some data transforms (e.g., `Resize`) are decomposed into several transforms to simplify and clarify the usages. -- The format of data dict processed by each data transform is changed according to the new data structure of dataset. -- Some inefficient data transforms (e.g., normalization and padding) are moved into data preprocessor of model to improve data loading and training speed. -- The same data transforms in different OpenMMLab 2.0 libraries have the same augmentation implementation and the logic given the same arguments, i.e., `Resize` in MMDet 3.x and MMSeg 1.x will resize the image in the exact same manner given the same arguments. - -#### Model - -The models in MMDet 3.x all inherit from `BaseModel` in MMEngine, which defines a new convention of models in OpenMMLab 2.0 projects. -Users can refer to [the tutorial of the model in MMengine](https://mmengine.readthedocs.io/en/latest/tutorials/model.html) for more details. -Accordingly, there are several changes as the following: - -- The model interfaces, including the input and output formats, are significantly simplified and unified following the new convention in MMDet 3.x. - Specifically, all the input data in training and testing are packed into `inputs` and `data_samples`, where `inputs` contains model inputs like a list of image tensors, and `data_samples` contains other information of the current data sample such as ground truths, region proposals, and model predictions. In this way, different tasks in MMDet 3.x can share the same input arguments, which makes the models more general and suitable for multi-task learning and some flexible training paradigms like semi-supervised learning. -- The model has a data preprocessor module, which is used to pre-process the input data of the model. In MMDet 3.x, the data preprocessor usually does the necessary steps to form the input images into a batch, such as padding. It can also serve as a place for some special data augmentations or more efficient data transformations like normalization. -- The internal logic of the model has been changed. In MMdet 2.x, model uses `forward_train`, `forward_test`, `simple_test`, and `aug_test` to deal with different model forward logics. In MMDet 3.x and OpenMMLab 2.0, the forward function has three modes: 'loss', 'predict', and 'tensor' for training, inference, and tracing or other purposes, respectively. - The forward function calls `self.loss`, `self.predict`, and `self._forward` given the modes 'loss', 'predict', and 'tensor', respectively. - -#### Evaluation - -The evaluation in MMDet 2.x strictly binds with the dataset. In contrast, MMDet 3.x decomposes the evaluation from dataset so that all the detection datasets can evaluate with COCO AP and other metrics implemented in MMDet 3.x. -MMDet 3.x mainly implements corresponding metrics for each dataset, which are manipulated by [Evaluator](https://mmengine.readthedocs.io/en/latest/design/evaluator.html) to complete the evaluation. -Users can build an evaluator in MMDet 3.x to conduct offline evaluation, i.e., evaluate predictions that may not produce in MMDet 3.x with the dataset as long as the dataset and the prediction follow the dataset conventions. More details can be found in the [tutorial in mmengine](https://mmengine.readthedocs.io/en/latest/tutorials/evaluation.html). - -#### Visualization - -The functions of visualization in MMDet 2.x are removed. Instead, in OpenMMLab 2.0 projects, we use [Visualizer](https://mmengine.readthedocs.io/en/latest/design/visualization.html) to visualize data. MMDet 3.x implements `DetLocalVisualizer` to allow visualization of ground truths, model predictions, feature maps, etc., at any place. It also supports sending the visualization data to any external visualization backends such as Tensorboard. - -### Improvements - -- Optimized training and testing speed of FCOS, RetinaNet, Faster R-CNN, Mask R-CNN, and Cascade R-CNN. The training speed of those models with some common training strategies is also optimized, including those with synchronized batch normalization and mixed precision training. -- Support mixed precision training of all the models. However, some models may get undesirable performance due to some numerical issues. We will update the documentation and list the results (accuracy of failure) of mixed precision training. -- Release strong baselines of some popular object detectors. Their accuracy and pre-trained checkpoints will be released. - -### Bug Fixes - -- DeepFashion dataset: the config and results have been updated. - -### New Features - -1. Support a general semi-supervised learning framework that works with all the object detectors supported in MMDet 3.x. Please refer to [semi-supervised object detection](../user_guides/semi_det.md) for details. -2. Enable all the single-stage detectors to serve as region proposal networks. We give [an example of using FCOS as RPN](../user_guides/single_stage_as_rpn.md). -3. Support a semi-supervised object detection algorithm: [SoftTeacher](https://arxiv.org/abs/2106.09018). -4. Support [the updated CenterNet](https://arxiv.org/abs/2103.07461). -5. Support data structures `HorizontalBoxes` and `BaseBoxes` to encapsulate different kinds of bounding boxes. We are migrating to use data structures of boxes to replace the use of pure tensor boxes. This will unify the usages of different kinds of bounding boxes in MMDet 3.x and MMRotate 1.x to simplify the implementation and reduce redundant codes. - -### Planned changes - -We list several planned changes of MMDet 3.0.0rc0 so that the community could more comprehensively know the progress of MMDet 3.x. Feel free to create a PR, issue, or discussion if you are interested, have any suggestions and feedback, or want to participate. - -1. Test-time augmentation: which is supported in MMDet 2.x, is not implemented in this version due to the limited time slot. We will support it in the following releases with a new and simplified design. -2. Inference interfaces: unified inference interfaces will be supported in the future to ease the use of released models. -3. Interfaces of useful tools that can be used in Jupyter Notebook or Colab: more useful tools that are implemented in the `tools` directory will have their python interfaces so that they can be used in Jupyter Notebook, Colab, and downstream libraries. -4. Documentation: we will add more design docs, tutorials, and migration guidance so that the community can deep dive into our new design, participate the future development, and smoothly migrate downstream libraries to MMDet 3.x. -5. Wandb visualization: MMDet 2.x supports data visualization since v2.25.0, which has not been migrated to MMDet 3.x for now. Since WandB provides strong visualization and experiment management capabilities, a `DetWandBVisualizer` and maybe a hook are planned to fully migrate those functionalities from MMDet 2.x. -6. Full support of WiderFace dataset (#8508) and Fast R-CNN: we are verifying their functionalities and will fix related issues soon. -7. Migrate DETR-series algorithms (#8655, #8533) and YOLOv3 on IPU (#8552) from MMDet 2.x. - -### Contributors - -A total of 11 developers contributed to this release. -Thanks @shuxp, @wanghonglie, @Czm369, @BIGWangYuDong, @zytx121, @jbwang1997, @chhluo, @jshilong, @RangiLyu, @hhaAndroid, @ZwwWayne diff --git a/docs/en/notes/changelog_v2.x.md b/docs/en/notes/changelog_v2.x.md deleted file mode 100644 index 2b3a230c0d9..00000000000 --- a/docs/en/notes/changelog_v2.x.md +++ /dev/null @@ -1,1681 +0,0 @@ -# Changelog v2.x - -### v2.25.0 (31/5/2022) - -#### Highlights - -- Support dedicated `WandbLogger` hook -- Support [ConvNeXt](configs/convnext), [DDOD](configs/ddod), [SOLOv2](configs/solov2) -- Support [Mask2Former](configs/mask2former) for instance segmentation -- Rename [config files of Mask2Former](configs/mask2former) - -#### Backwards incompatible changes - -- Rename [config files of Mask2Former](configs/mask2former) (#7571) - - - - - - - - - - - -
    before v2.25.0after v2.25.0
    - - - `mask2former_xxx_coco.py` represents config files for **panoptic segmentation**. - - - - - `mask2former_xxx_coco.py` represents config files for **instance segmentation**. - - `mask2former_xxx_coco-panoptic.py` represents config files for **panoptic segmentation**. - -
    - -#### New Features - -- Support [ConvNeXt](https://arxiv.org/abs/2201.03545) (#7281) -- Support [DDOD](https://arxiv.org/abs/2107.02963) (#7279) -- Support [SOLOv2](https://arxiv.org/abs/2003.10152) (#7441) -- Support [Mask2Former](https://arxiv.org/abs/2112.01527) for instance segmentation (#7571, #8032) - -#### Bug Fixes - -- Enable YOLOX training on different devices (#7912) -- Fix the log plot error when evaluation with `interval != 1` (#7784) -- Fix RuntimeError of HTC (#8083) - -#### Improvements - -- Support dedicated `WandbLogger` hook (#7459) - - Users can set - - ```python - cfg.log_config.hooks = [ - dict(type='MMDetWandbHook', - init_kwargs={'project': 'MMDetection-tutorial'}, - interval=10, - log_checkpoint=True, - log_checkpoint_metadata=True, - num_eval_images=10)] - ``` - - in the config to use `MMDetWandbHook`. Example can be found in this [colab tutorial](https://colab.research.google.com/drive/1RCSXHZwDZvakFh3eo9RuNrJbCGqD0dru?usp=sharing#scrollTo=WTEdPDRaBz2C) - -- Add `AvoidOOM` to avoid OOM (#7434, #8091) - - Try to use `AvoidCUDAOOM` to avoid GPU out of memory. It will first retry after calling `torch.cuda.empty_cache()`. If it still fails, it will then retry by converting the type of inputs to FP16 format. If it still fails, it will try to copy inputs from GPUs to CPUs to continue computing. Try AvoidOOM in code to make the code continue to run when GPU memory runs out: - - ```python - from mmdet.utils import AvoidCUDAOOM - - output = AvoidCUDAOOM.retry_if_cuda_oom(some_function)(input1, input2) - ``` - - Users can also try `AvoidCUDAOOM` as a decorator to make the code continue to run when GPU memory runs out: - - ```python - from mmdet.utils import AvoidCUDAOOM - - @AvoidCUDAOOM.retry_if_cuda_oom - def function(*args, **kwargs): - ... - return xxx - ``` - -- Support reading `gpu_collect` from `cfg.evaluation.gpu_collect` (#7672) - -- Speedup the Video Inference by Accelerating data-loading Stage (#7832) - -- Support replacing the `${key}` with the value of `cfg.key` (#7492) - -- Accelerate result analysis in `analyze_result.py`. The evaluation time is speedup by 10 ~ 15 times and only tasks 10 ~ 15 minutes now. (#7891) - -- Support to set `block_dilations` in `DilatedEncoder` (#7812) - -- Support panoptic segmentation result analysis (#7922) - -- Release DyHead with Swin-Large backbone (#7733) - -- Documentations updating and adding - - - Fix wrong default type of `act_cfg` in `SwinTransformer` (#7794) - - Fix text errors in the tutorials (#7959) - - Rewrite the [installation guide](docs/en/get_started.md) (#7897) - - [Useful hooks](docs/en/tutorials/useful_hooks.md) (#7810) - - Fix heading anchor in documentation (#8006) - - Replace `markdownlint` with `mdformat` for avoiding installing ruby (#8009) - -#### Contributors - -A total of 20 developers contributed to this release. - -Thanks @ZwwWayne, @DarthThomas, @solyaH, @LutingWang, @chenxinfeng4, @Czm369, @Chenastron, @chhluo, @austinmw, @Shanyaliux @hellock, @Y-M-Y, @jbwang1997, @hhaAndroid, @Irvingao, @zhanggefan, @BIGWangYuDong, @Keiku, @PeterVennerstrom, @ayulockin - -### v2.24.0 (26/4/2022) - -#### Highlights - -- Support [Simple Copy-Paste is a Strong Data Augmentation Method for Instance Segmentation](https://arxiv.org/abs/2012.07177) -- Support automatically scaling LR according to GPU number and samples per GPU -- Support Class Aware Sampler that improves performance on OpenImages Dataset - -#### New Features - -- Support [Simple Copy-Paste is a Strong Data Augmentation Method for Instance Segmentation](https://arxiv.org/abs/2012.07177), see [example configs](configs/simple_copy_paste/mask_rcnn_r50_fpn_syncbn-all_rpn-2conv_ssj_scp_32x2_270k_coco.py) (#7501) - -- Support Class Aware Sampler, users can set - - ```python - data=dict(train_dataloader=dict(class_aware_sampler=dict(num_sample_class=1)))) - ``` - - in the config to use `ClassAwareSampler`. Examples can be found in [the configs of OpenImages Dataset](https://github.com/open-mmlab/mmdetection/tree/main/configs/openimages/faster_rcnn_r50_fpn_32x2_cas_1x_openimages.py). (#7436) - -- Support automatically scaling LR according to GPU number and samples per GPU. (#7482) - In each config, there is a corresponding config of auto-scaling LR as below, - - ```python - auto_scale_lr = dict(enable=True, base_batch_size=N) - ``` - - where `N` is the batch size used for the current learning rate in the config (also equals to `samples_per_gpu` * gpu number to train this config). - By default, we set `enable=False` so that the original usages will not be affected. Users can set `enable=True` in each config or add `--auto-scale-lr` after the command line to enable this feature and should check the correctness of `base_batch_size` in customized configs. - -- Support setting dataloader arguments in config and add functions to handle config compatibility. (#7668) - The comparison between the old and new usages is as below. - - - - - - - - - - - -
    v2.23.0v2.24.0
    - - ```python - data = dict( - samples_per_gpu=64, workers_per_gpu=4, - train=dict(type='xxx', ...), - val=dict(type='xxx', samples_per_gpu=4, ...), - test=dict(type='xxx', ...), - ) - ``` - - - - ```python - # A recommended config that is clear - data = dict( - train=dict(type='xxx', ...), - val=dict(type='xxx', ...), - test=dict(type='xxx', ...), - # Use different batch size during inference. - train_dataloader=dict(samples_per_gpu=64, workers_per_gpu=4), - val_dataloader=dict(samples_per_gpu=8, workers_per_gpu=2), - test_dataloader=dict(samples_per_gpu=8, workers_per_gpu=2), - ) - - # Old style still works but allows to set more arguments about data loaders - data = dict( - samples_per_gpu=64, # only works for train_dataloader - workers_per_gpu=4, # only works for train_dataloader - train=dict(type='xxx', ...), - val=dict(type='xxx', ...), - test=dict(type='xxx', ...), - # Use different batch size during inference. - val_dataloader=dict(samples_per_gpu=8, workers_per_gpu=2), - test_dataloader=dict(samples_per_gpu=8, workers_per_gpu=2), - ) - ``` - -
    - -- Support memory profile hook. Users can use it to monitor the memory usages during training as below (#7560) - - ```python - custom_hooks = [ - dict(type='MemoryProfilerHook', interval=50) - ] - ``` - -- Support to run on PyTorch with MLU chip (#7578) - -- Support re-spliting data batch with tag (#7641) - -- Support the `DiceCost` used by [K-Net](https://arxiv.org/abs/2106.14855) in `MaskHungarianAssigner` (#7716) - -- Support splitting COCO data for Semi-supervised object detection (#7431) - -- Support Pathlib for Config.fromfile (#7685) - -- Support to use file client in OpenImages dataset (#7433) - -- Add a probability parameter to Mosaic transformation (#7371) - -- Support specifying interpolation mode in `Resize` pipeline (#7585) - -#### Bug Fixes - -- Avoid invalid bbox after deform_sampling (#7567) -- Fix the issue that argument color_theme does not take effect when exporting confusion matrix (#7701) -- Fix the `end_level` in Necks, which should be the index of the end input backbone level (#7502) -- Fix the bug that `mix_results` may be None in `MultiImageMixDataset` (#7530) -- Fix the bug in ResNet plugin when two plugins are used (#7797) - -#### Improvements - -- Enhance `load_json_logs` of analyze_logs.py for resumed training logs (#7732) -- Add argument `out_file` in image_demo.py (#7676) -- Allow mixed precision training with `SimOTAAssigner` (#7516) -- Updated INF to 100000.0 to be the same as that in the official YOLOX (#7778) -- Add documentations of: - - how to get channels of a new backbone (#7642) - - how to unfreeze the backbone network (#7570) - - how to train fast_rcnn model (#7549) - - proposals in Deformable DETR (#7690) - - from-scratch install script in get_started.md (#7575) -- Release pre-trained models of - - [Mask2Former](configs/mask2former) (#7595, #7709) - - RetinaNet with ResNet-18 and release models (#7387) - - RetinaNet with EfficientNet backbone (#7646) - -#### Contributors - -A total of 27 developers contributed to this release. -Thanks @jovialio, @zhangsanfeng2022, @HarryZJ, @jamiechoi1995, @nestiank, @PeterH0323, @RangeKing, @Y-M-Y, @mattcasey02, @weiji14, @Yulv-git, @xiefeifeihu, @FANG-MING, @meng976537406, @nijkah, @sudz123, @CCODING04, @SheffieldCao, @Czm369, @BIGWangYuDong, @zytx121, @jbwang1997, @chhluo, @jshilong, @RangiLyu, @hhaAndroid, @ZwwWayne - -### v2.23.0 (28/3/2022) - -#### Highlights - -- Support Mask2Former: [Masked-attention Mask Transformer for Universal Image Segmentation](https://arxiv.org/abs/2112.01527) -- Support EfficientNet: [EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks](https://arxiv.org/abs/1905.11946) -- Support setting data root through environment variable `MMDET_DATASETS`, users don't have to modify the corresponding path in config files anymore. -- Find a good recipe for fine-tuning high precision ResNet backbone pre-trained by Torchvision. - -#### New Features - -- Support [Mask2Former](configs/mask2former)(#6938)(#7466)(#7471) -- Support [EfficientNet](configs/efficientnet) (#7514) -- Support setting data root through environment variable `MMDET_DATASETS`, users don't have to modify the corresponding path in config files anymore. (#7386) -- Support setting different seeds to different ranks (#7432) -- Update the `dist_train.sh` so that the script can be used to support launching multi-node training on machines without slurm (#7415) -- Find a good recipe for fine-tuning high precision ResNet backbone pre-trained by Torchvision (#7489) - -#### Bug Fixes - -- Fix bug in VOC unit test which removes the data directory (#7270) -- Adjust the order of `get_classes` and `FileClient` (#7276) -- Force the inputs of `get_bboxes` in yolox_head to float32 (#7324) -- Fix misplaced arguments in LoadPanopticAnnotations (#7388) -- Fix reduction=mean in CELoss. (#7449) -- Update unit test of CrossEntropyCost (#7537) -- Fix memory leaking in panpotic segmentation evaluation (#7538) -- Fix the bug of shape broadcast in YOLOv3 (#7551) - -#### Improvements - -- Add Chinese version of onnx2tensorrt.md (#7219) -- Update colab tutorials (#7310) -- Update information about Localization Distillation (#7350) -- Add Chinese version of `finetune.md` (#7178) -- Update YOLOX log for non square input (#7235) -- Add `nproc` in `coco_panoptic.py` for panoptic quality computing (#7315) -- Allow to set channel_order in LoadImageFromFile (#7258) -- Take point sample related functions out of mask_point_head (#7353) -- Add instance evaluation for coco_panoptic (#7313) -- Enhance the robustness of analyze_logs.py (#7407) -- Supplementary notes of sync_random_seed (#7440) -- Update docstring of cross entropy loss (#7472) -- Update pascal voc result (#7503) -- We create How-to documentation to record any questions about How to xxx. In this version, we added - - How to use Mosaic augmentation (#7507) - - How to use backbone in mmcls (#7438) - - How to produce and submit the prediction results of panoptic segmentation models on COCO test-dev set (#7430)) - -#### Contributors - -A total of 27 developers contributed to this release. -Thanks @ZwwWayne, @haofanwang, @shinya7y, @chhluo, @yangrisheng, @triple-Mu, @jbwang1997, @HikariTJU, @imflash217, @274869388, @zytx121, @matrixgame2018, @jamiechoi1995, @BIGWangYuDong, @JingweiZhang12, @Xiangxu-0103, @hhaAndroid, @jshilong, @osbm, @ceroytres, @bunge-bedstraw-herb, @Youth-Got, @daavoo, @jiangyitong, @RangiLyu, @CCODING04, @yarkable - -### v2.22.0 (24/2/2022) - -#### Highlights - -- Support MaskFormer: [Per-Pixel Classification is Not All You Need for Semantic Segmentation](https://arxiv.org/abs/2107.06278) (#7212) -- Support DyHead: [Dynamic Head: Unifying Object Detection Heads with Attentions](https://arxiv.org/abs/2106.08322) (#6823) -- Release a good recipe of using ResNet in object detectors pre-trained by [ResNet Strikes Back](https://arxiv.org/abs/2110.00476), which consistently brings about 3~4 mAP improvements over RetinaNet, Faster/Mask/Cascade Mask R-CNN (#7001) -- Support [Open Images Dataset](https://storage.googleapis.com/openimages/web/index.html) (#6331) -- Support TIMM backbone: [PyTorch Image Models](https://github.com/rwightman/pytorch-image-models) (#7020) - -#### New Features - -- Support [MaskFormer](configs/maskformer) (#7212) -- Support [DyHead](configs/dyhead) (#6823) -- Support [ResNet Strikes Back](configs/resnet_strikes_back) (#7001) -- Support [OpenImages Dataset](configs/openimages) (#6331) -- Support [TIMM backbone](configs/timm_example) (#7020) -- Support visualization for Panoptic Segmentation (#7041) - -#### Breaking Changes - -In order to support the visualization for Panoptic Segmentation, the `num_classes` can not be `None` when using the `get_palette` function to determine whether to use the panoptic palette. - -#### Bug Fixes - -- Fix bug for the best checkpoints can not be saved when the `key_score` is None (#7101) -- Fix MixUp transform filter boxes failing case (#7080) -- Add missing properties in SABLHead (#7091) -- Fix bug when NaNs exist in confusion matrix (#7147) -- Fix PALETTE AttributeError in downstream task (#7230) - -#### Improvements - -- Speed up SimOTA matching (#7098) -- Add Chinese translation of `docs_zh-CN/tutorials/init_cfg.md` (#7188) - -#### Contributors - -A total of 20 developers contributed to this release. -Thanks @ZwwWayne, @hhaAndroid, @RangiLyu, @AronLin, @BIGWangYuDong, @jbwang1997, @zytx121, @chhluo, @shinya7y, @LuooChen, @dvansa, @siatwangmin, @del-zhenwu, @vikashranjan26, @haofanwang, @jamiechoi1995, @HJoonKwon, @yarkable, @zhijian-liu, @RangeKing - -### v2.21.0 (8/2/2022) - -### Breaking Changes - -To standardize the contents in config READMEs and meta files of OpenMMLab projects, the READMEs and meta files in each config directory have been significantly changed. The template will be released in the future, for now, you can refer to the examples of README for [algorithm](https://github.com/open-mmlab/mmdetection/blob/master/configs/faster_rcnn/README.md), [dataset](https://github.com/open-mmlab/mmdetection/blob/master/configs/deepfashion/README.md) and [backbone](https://github.com/open-mmlab/mmdetection/blob/master/configs/regnet/README.md). To align with the standard, the configs in dcn are put into to two directories named `dcn` and `dcnv2`. - -#### New Features - -- Allow to customize colors of different classes during visualization (#6716) -- Support CPU training (#7016) -- Add download script of COCO, LVIS, and VOC dataset (#7015) - -#### Bug Fixes - -- Fix weight conversion issue of RetinaNet with Swin-S (#6973) -- Update `__repr__` of `Compose` (#6951) -- Fix BadZipFile Error when build docker (#6966) -- Fix bug in non-distributed multi-gpu training/testing (#7019) -- Fix bbox clamp in PyTorch 1.10 (#7074) -- Relax the requirement of PALETTE in dataset wrappers (#7085) -- Keep the same weights before reassign in the PAA head (#7032) -- Update code demo in doc (#7092) - -#### Improvements - -- Speed-up training by allow to set variables of multi-processing (#6974, #7036) -- Add links of Chinese tutorials in readme (#6897) -- Disable cv2 multiprocessing by default for acceleration (#6867) -- Deprecate the support for "python setup.py test" (#6998) -- Re-organize metafiles and config readmes (#7051) -- Fix None grad problem during training TOOD by adding `SigmoidGeometricMean` (#7090) - -#### Contributors - -A total of 26 developers contributed to this release. -Thanks @del-zhenwu, @zimoqingfeng, @srishilesh, @imyhxy, @jenhaoyang, @jliu-ac, @kimnamu, @ShengliLiu, @garvan2021, @ciusji, @DIYer22, @kimnamu, @q3394101, @zhouzaida, @gaotongxiao, @topsy404, @AntoAndGar, @jbwang1997, @nijkah, @ZwwWayne, @Czm369, @jshilong, @RangiLyu, @BIGWangYuDong, @hhaAndroid, @AronLin - -### v2.20.0 (27/12/2021) - -#### New Features - -- Support [TOOD](configs/tood/README.md): Task-aligned One-stage Object Detection (ICCV 2021 Oral) (#6746) -- Support resuming from the latest checkpoint automatically (#6727) - -#### Bug Fixes - -- Fix wrong bbox `loss_weight` of the PAA head (#6744) -- Fix the padding value of `gt_semantic_seg` in batch collating (#6837) -- Fix test error of lvis when using `classwise` (#6845) -- Avoid BC-breaking of `get_local_path` (#6719) -- Fix bug in `sync_norm_hook` when the BN layer does not exist (#6852) -- Use pycocotools directly no matter what platform it is (#6838) - -#### Improvements - -- Add unit test for SimOTA with no valid bbox (#6770) -- Use precommit to check readme (#6802) -- Support selecting GPU-ids in non-distributed testing time (#6781) - -#### Contributors - -A total of 16 developers contributed to this release. -Thanks @ZwwWayne, @Czm369, @jshilong, @RangiLyu, @BIGWangYuDong, @hhaAndroid, @jamiechoi1995, @AronLin, @Keiku, @gkagkos, @fcakyon, @www516717402, @vansin, @zactodd, @kimnamu, @jenhaoyang - -### v2.19.1 (14/12/2021) - -#### New Features - -- Release [YOLOX](configs/yolox/README.md) COCO pretrained models (#6698) - -#### Bug Fixes - -- Fix DCN initialization in DenseHead (#6625) -- Fix initialization of ConvFCHead (#6624) -- Fix PseudoSampler in RCNN (#6622) -- Fix weight initialization in Swin and PVT (#6663) -- Fix dtype bug in BaseDenseHead (#6767) -- Fix SimOTA with no valid bbox (#6733) - -#### Improvements - -- Add an example of combining swin and one-stage models (#6621) -- Add `get_ann_info` to dataset_wrappers (#6526) -- Support keeping image ratio in the multi-scale training of YOLOX (#6732) -- Support `bbox_clip_border` for the augmentations of YOLOX (#6730) - -#### Documents - -- Update metafile (#6717) -- Add mmhuman3d in readme (#6699) -- Update FAQ docs (#6587) -- Add doc for `detect_anomalous_params` (#6697) - -#### Contributors - -A total of 11 developers contributed to this release. -Thanks @ZwwWayne, @LJoson, @Czm369, @jshilong, @ZCMax, @RangiLyu, @BIGWangYuDong, @hhaAndroid, @zhaoxin111, @GT9505, @shinya7y - -### v2.19.0 (29/11/2021) - -#### Highlights - -- Support [Label Assignment Distillation](https://arxiv.org/abs/2108.10520) -- Support `persistent_workers` for Pytorch >= 1.7 -- Align accuracy to the updated official YOLOX - -#### New Features - -- Support [Label Assignment Distillation](https://arxiv.org/abs/2108.10520) (#6342) -- Support `persistent_workers` for Pytorch >= 1.7 (#6435) - -#### Bug Fixes - -- Fix repeatedly output warning message (#6584) -- Avoid infinite GPU waiting in dist training (#6501) -- Fix SSD512 config error (#6574) -- Fix MMDetection model to ONNX command (#6558) - -#### Improvements - -- Refactor configs of FP16 models (#6592) -- Align accuracy to the updated official YOLOX (#6443) -- Speed up training and reduce memory cost when using PhotoMetricDistortion. (#6442) -- Make OHEM work with seesaw loss (#6514) - -#### Documents - -- Update README.md (#6567) - -#### Contributors - -A total of 11 developers contributed to this release. -Thanks @FloydHsiu, @RangiLyu, @ZwwWayne, @AndreaPi, @st9007a, @hachreak, @BIGWangYuDong, @hhaAndroid, @AronLin, @chhluo, @vealocia, @HarborYuan, @st9007a, @jshilong - -### v2.18.1 (15/11/2021) - -#### Highlights - -- Release [QueryInst](http://arxiv.org/abs/2105.01928) pre-trained weights (#6460) -- Support plot confusion matrix (#6344) - -#### New Features - -- Release [QueryInst](http://arxiv.org/abs/2105.01928) pre-trained weights (#6460) -- Support plot confusion matrix (#6344) - -#### Bug Fixes - -- Fix aug test error when the number of prediction bboxes is 0 (#6398) -- Fix SpatialReductionAttention in PVT (#6488) -- Fix wrong use of `trunc_normal_init` in PVT and Swin-Transformer (#6432) - -#### Improvements - -- Save the printed AP information of COCO API to logger (#6505) -- Always map location to cpu when load checkpoint (#6405) -- Set a random seed when the user does not set a seed (#6457) - -#### Documents - -- Chinese version of [Corruption Benchmarking](robustness_benchmarking.md) (#6375) -- Fix config path in docs (#6396) -- Update GRoIE readme (#6401) - -#### Contributors - -A total of 11 developers contributed to this release. -Thanks @st9007a, @hachreak, @HarborYuan, @vealocia, @chhluo, @AndreaPi, @AronLin, @BIGWangYuDong, @hhaAndroid, @RangiLyu, @ZwwWayne - -### v2.18.0 (27/10/2021) - -#### Highlights - -- Support [QueryInst](http://arxiv.org/abs/2105.01928) (#6050) -- Refactor dense heads to decouple onnx export logics from `get_bboxes` and speed up inference (#5317, #6003, #6369, #6268, #6315) - -#### New Features - -- Support [QueryInst](http://arxiv.org/abs/2105.01928) (#6050) -- Support infinite sampler (#5996) - -#### Bug Fixes - -- Fix init_weight in fcn_mask_head (#6378) -- Fix type error in imshow_bboxes of RPN (#6386) -- Fix broken colab link in MMDetection Tutorial (#6382) -- Make sure the device and dtype of scale_factor are the same as bboxes (#6374) -- Remove sampling hardcode (#6317) -- Fix RandomAffine bbox coordinate recorrection (#6293) -- Fix init bug of final cls/reg layer in convfc head (#6279) -- Fix img_shape broken in auto_augment (#6259) -- Fix kwargs parameter missing error in two_stage (#6256) - -#### Improvements - -- Unify the interface of stuff head and panoptic head (#6308) -- Polish readme (#6243) -- Add code-spell pre-commit hook and fix a typo (#6306) -- Fix typo (#6245, #6190) -- Fix sampler unit test (#6284) -- Fix `forward_dummy` of YOLACT to enable `get_flops` (#6079) -- Fix link error in the config documentation (#6252) -- Adjust the order to beautify the document (#6195) - -#### Refactors - -- Refactor one-stage get_bboxes logic (#5317) -- Refactor ONNX export of One-Stage models (#6003, #6369) -- Refactor dense_head and speedup (#6268) -- Migrate to use prior_generator in training of dense heads (#6315) - -#### Contributors - -A total of 18 developers contributed to this release. -Thanks @Boyden, @onnkeat, @st9007a, @vealocia, @yhcao6, @DapangpangX, @yellowdolphin, @cclauss, @kennymckormick, -@pingguokiller, @collinzrj, @AndreaPi, @AronLin, @BIGWangYuDong, @hhaAndroid, @jshilong, @RangiLyu, @ZwwWayne - -### v2.17.0 (28/9/2021) - -#### Highlights - -- Support [PVT](https://arxiv.org/abs/2102.12122) and [PVTv2](https://arxiv.org/abs/2106.13797) -- Support [SOLO](https://arxiv.org/abs/1912.04488) -- Support large scale jittering and New Mask R-CNN baselines -- Speed up `YOLOv3` inference - -#### New Features - -- Support [PVT](https://arxiv.org/abs/2102.12122) and [PVTv2](https://arxiv.org/abs/2106.13797) (#5780) -- Support [SOLO](https://arxiv.org/abs/1912.04488) (#5832) -- Support large scale jittering and New Mask R-CNN baselines (#6132) -- Add a general data structure for the results of models (#5508) -- Added a base class for one-stage instance segmentation (#5904) -- Speed up `YOLOv3` inference (#5991) -- Release Swin Transformer pre-trained models (#6100) -- Support mixed precision training in `YOLOX` (#5983) -- Support `val` workflow in `YOLACT` (#5986) -- Add script to test `torchserve` (#5936) -- Support `onnxsim` with dynamic input shape (#6117) - -#### Bug Fixes - -- Fix the function naming errors in `model_wrappers` (#5975) -- Fix regression loss bug when the input is an empty tensor (#5976) -- Fix scores not contiguous error in `centernet_head` (#6016) -- Fix missing parameters bug in `imshow_bboxes` (#6034) -- Fix bug in `aug_test` of `HTC` when the length of `det_bboxes` is 0 (#6088) -- Fix empty proposal errors in the training of some two-stage models (#5941) -- Fix `dynamic_axes` parameter error in `ONNX` dynamic shape export (#6104) -- Fix `dynamic_shape` bug of `SyncRandomSizeHook` (#6144) -- Fix the Swin Transformer config link error in the configuration (#6172) - -#### Improvements - -- Add filter rules in `Mosaic` transform (#5897) -- Add size divisor in get flops to avoid some potential bugs (#6076) -- Add Chinese translation of `docs_zh-CN/tutorials/customize_dataset.md` (#5915) -- Add Chinese translation of `conventions.md` (#5825) -- Add description of the output of data pipeline (#5886) -- Add dataset information in the README file for `PanopticFPN` (#5996) -- Add `extra_repr` for `DropBlock` layer to get details in the model printing (#6140) -- Fix CI out of memory and add PyTorch1.9 Python3.9 unit tests (#5862) -- Fix download links error of some model (#6069) -- Improve the generalization of XML dataset (#5943) -- Polish assertion error messages (#6017) -- Remove `opencv-python-headless` dependency by `albumentations` (#5868) -- Check dtype in transform unit tests (#5969) -- Replace the default theme of documentation with PyTorch Sphinx Theme (#6146) -- Update the paper and code fields in the metafile (#6043) -- Support to customize padding value of segmentation map (#6152) -- Support to resize multiple segmentation maps (#5747) - -#### Contributors - -A total of 24 developers contributed to this release. -Thanks @morkovka1337, @HarborYuan, @guillaumefrd, @guigarfr, @www516717402, @gaotongxiao, @ypwhs, @MartaYang, @shinya7y, @justiceeem, @zhaojinjian0000, @VVsssssk, @aravind-anantha, @wangbo-zhao, @czczup, @whai362, @czczup, @marijnl, @AronLin, @BIGWangYuDong, @hhaAndroid, @jshilong, @RangiLyu, @ZwwWayne - -### v2.16.0 (30/8/2021) - -#### Highlights - -- Support [Panoptic FPN](https://arxiv.org/abs/1901.02446) and [Swin Transformer](https://arxiv.org/abs/2103.14030) - -#### New Features - -- Support [Panoptic FPN](https://arxiv.org/abs/1901.02446) and release models (#5577, #5902) -- Support Swin Transformer backbone (#5748) -- Release RetinaNet models pre-trained with multi-scale 3x schedule (#5636) -- Add script to convert unlabeled image list to coco format (#5643) -- Add hook to check whether the loss value is valid (#5674) -- Add YOLO anchor optimizing tool (#5644) -- Support export onnx models without post process. (#5851) -- Support classwise evaluation in CocoPanopticDataset (#5896) -- Adapt browse_dataset for concatenated datasets. (#5935) -- Add `PatchEmbed` and `PatchMerging` with `AdaptivePadding` (#5952) - -#### Bug Fixes - -- Fix unit tests of YOLOX (#5859) -- Fix lose randomness in `imshow_det_bboxes` (#5845) -- Make output result of `ImageToTensor` contiguous (#5756) -- Fix inference bug when calling `regress_by_class` in RoIHead in some cases (#5884) -- Fix bug in CIoU loss where alpha should not have gradient. (#5835) -- Fix the bug that `multiscale_output` is defined but not used in HRNet (#5887) -- Set the priority of EvalHook to LOW. (#5882) -- Fix a YOLOX bug when applying bbox rescaling in test mode (#5899) -- Fix mosaic coordinate error (#5947) -- Fix dtype of bbox in RandomAffine. (#5930) - -#### Improvements - -- Add Chinese version of `data_pipeline` and (#5662) -- Support to remove state dicts of EMA when publishing models. (#5858) -- Refactor the loss function in HTC and SCNet (#5881) -- Use warnings instead of logger.warning (#5540) -- Use legacy coordinate in metric of VOC (#5627) -- Add Chinese version of customize_losses (#5826) -- Add Chinese version of model_zoo (#5827) - -#### Contributors - -A total of 19 developers contributed to this release. -Thanks @ypwhs, @zywvvd, @collinzrj, @OceanPang, @ddonatien, @@haotian-liu, @viibridges, @Muyun99, @guigarfr, @zhaojinjian0000, @jbwang1997,@wangbo-zhao, @xvjiarui, @RangiLyu, @jshilong, @AronLin, @BIGWangYuDong, @hhaAndroid, @ZwwWayne - -### v2.15.1 (11/8/2021) - -#### Highlights - -- Support [YOLOX](https://arxiv.org/abs/2107.08430) - -#### New Features - -- Support [YOLOX](https://arxiv.org/abs/2107.08430)(#5756, #5758, #5760, #5767, #5770, #5774, #5777, #5808, #5828, #5848) - -#### Bug Fixes - -- Update correct SSD models. (#5789) -- Fix casting error in mask structure (#5820) -- Fix MMCV deployment documentation links. (#5790) - -#### Improvements - -- Use dynamic MMCV download link in TorchServe dockerfile (#5779) -- Rename the function `upsample_like` to `interpolate_as` for more general usage (#5788) - -#### Contributors - -A total of 14 developers contributed to this release. -Thanks @HAOCHENYE, @xiaohu2015, @HsLOL, @zhiqwang, @Adamdad, @shinya7y, @Johnson-Wang, @RangiLyu, @jshilong, @mmeendez8, @AronLin, @BIGWangYuDong, @hhaAndroid, @ZwwWayne - -### v2.15.0 (02/8/2021) - -#### Highlights - -- Support adding [MIM](https://github.com/open-mmlab/mim) dependencies during pip installation -- Support MobileNetV2 for SSD-Lite and YOLOv3 -- Support Chinese Documentation - -#### New Features - -- Add function `upsample_like` (#5732) -- Support to output pdf and epub format documentation (#5738) -- Support and release Cascade Mask R-CNN 3x pre-trained models (#5645) -- Add `ignore_index` to CrossEntropyLoss (#5646) -- Support adding [MIM](https://github.com/open-mmlab/mim) dependencies during pip installation (#5676) -- Add MobileNetV2 config and models for YOLOv3 (#5510) -- Support COCO Panoptic Dataset (#5231) -- Support ONNX export of cascade models (#5486) -- Support DropBlock with RetinaNet (#5544) -- Support MobileNetV2 SSD-Lite (#5526) - -#### Bug Fixes - -- Fix the device of label in multiclass_nms (#5673) -- Fix error of backbone initialization from pre-trained checkpoint in config file (#5603, #5550) -- Fix download links of RegNet pretrained weights (#5655) -- Fix two-stage runtime error given empty proposal (#5559) -- Fix flops count error in DETR (#5654) -- Fix unittest for `NumClassCheckHook` when it is not used. (#5626) -- Fix description bug of using custom dataset (#5546) -- Fix bug of `multiclass_nms` that returns the global indices (#5592) -- Fix `valid_mask` logic error in RPNHead (#5562) -- Fix unit test error of pretrained configs (#5561) -- Fix typo error in anchor_head.py (#5555) -- Fix bug when using dataset wrappers (#5552) -- Fix a typo error in demo/MMDet_Tutorial.ipynb (#5511) -- Fixing crash in `get_root_logger` when `cfg.log_level` is not None (#5521) -- Fix docker version (#5502) -- Fix optimizer parameter error when using `IterBasedRunner` (#5490) - -#### Improvements - -- Add unit tests for MMTracking (#5620) -- Add Chinese translation of documentation (#5718, #5618, #5558, #5423, #5593, #5421, #5408. #5369, #5419, #5530, #5531) -- Update resource limit (#5697) -- Update docstring for InstaBoost (#5640) -- Support key `reduction_override` in all loss functions (#5515) -- Use repeatdataset to accelerate CenterNet training (#5509) -- Remove unnecessary code in autoassign (#5519) -- Add documentation about `init_cfg` (#5273) - -#### Contributors - -A total of 18 developers contributed to this release. -Thanks @OceanPang, @AronLin, @hellock, @Outsider565, @RangiLyu, @ElectronicElephant, @likyoo, @BIGWangYuDong, @hhaAndroid, @noobying, @yyz561, @likyoo, -@zeakey, @ZwwWayne, @ChenyangLiu, @johnson-magic, @qingswu, @BuxianChen - -### v2.14.0 (29/6/2021) - -#### Highlights - -- Add `simple_test` to dense heads to improve the consistency of single-stage and two-stage detectors -- Revert the `test_mixins` to single image test to improve efficiency and readability -- Add Faster R-CNN and Mask R-CNN config using multi-scale training with 3x schedule - -#### New Features - -- Support pretrained models from MoCo v2 and SwAV (#5286) -- Add Faster R-CNN and Mask R-CNN config using multi-scale training with 3x schedule (#5179, #5233) -- Add `reduction_override` in MSELoss (#5437) -- Stable support of exporting DETR to ONNX with dynamic shapes and batch inference (#5168) -- Stable support of exporting PointRend to ONNX with dynamic shapes and batch inference (#5440) - -#### Bug Fixes - -- Fix size mismatch bug in `multiclass_nms` (#4980) -- Fix the import path of `MultiScaleDeformableAttention` (#5338) -- Fix errors in config of GCNet ResNext101 models (#5360) -- Fix Grid-RCNN error when there is no bbox result (#5357) -- Fix errors in `onnx_export` of bbox_head when setting reg_class_agnostic (#5468) -- Fix type error of AutoAssign in the document (#5478) -- Fix web links ending with `.md` (#5315) - -#### Improvements - -- Add `simple_test` to dense heads to improve the consistency of single-stage and two-stage detectors (#5264) -- Add support for mask diagonal flip in TTA (#5403) -- Revert the `test_mixins` to single image test to improve efficiency and readability (#5249) -- Make YOLOv3 Neck more flexible (#5218) -- Refactor SSD to make it more general (#5291) -- Refactor `anchor_generator` and `point_generator` (#5349) -- Allow to configure out the `mask_head` of the HTC algorithm (#5389) -- Delete deprecated warning in FPN (#5311) -- Move `model.pretrained` to `model.backbone.init_cfg` (#5370) -- Make deployment tools more friendly to use (#5280) -- Clarify installation documentation (#5316) -- Add ImageNet Pretrained Models docs (#5268) -- Add FAQ about training loss=nan solution and COCO AP or AR =-1 (# 5312, #5313) -- Change all weight links of http to https (#5328) - -### v2.13.0 (01/6/2021) - -#### Highlights - -- Support new methods: [CenterNet](https://arxiv.org/abs/1904.07850), [Seesaw Loss](https://arxiv.org/abs/2008.10032), [MobileNetV2](https://arxiv.org/abs/1801.04381) - -#### New Features - -- Support paper [Objects as Points](https://arxiv.org/abs/1904.07850) (#4602) -- Support paper [Seesaw Loss for Long-Tailed Instance Segmentation (CVPR 2021)](https://arxiv.org/abs/2008.10032) (#5128) -- Support [MobileNetV2](https://arxiv.org/abs/1801.04381) backbone and inverted residual block (#5122) -- Support [MIM](https://github.com/open-mmlab/mim) (#5143) -- ONNX exportation with dynamic shapes of CornerNet (#5136) -- Add `mask_soft` config option to allow non-binary masks (#4615) -- Add PWC metafile (#5135) - -#### Bug Fixes - -- Fix YOLOv3 FP16 training error (#5172) -- Fix Cacscade R-CNN TTA test error when `det_bboxes` length is 0 (#5221) -- Fix `iou_thr` variable naming errors in VOC recall calculation function (#5195) -- Fix Faster R-CNN performance dropped in ONNX Runtime (#5197) -- Fix DETR dict changed error when using python 3.8 during iteration (#5226) - -#### Improvements - -- Refactor ONNX export of two stage detector (#5205) -- Replace MMDetection's EvalHook with MMCV's EvalHook for consistency (#4806) -- Update RoI extractor for ONNX (#5194) -- Use better parameter initialization in YOLOv3 head for higher performance (#5181) -- Release new DCN models of Mask R-CNN by mixed-precision training (#5201) -- Update YOLOv3 model weights (#5229) -- Add DetectoRS ResNet-101 model weights (#4960) -- Discard bboxes with sizes equals to `min_bbox_size` (#5011) -- Remove duplicated code in DETR head (#5129) -- Remove unnecessary object in class definition (#5180) -- Fix doc link (#5192) - -### v2.12.0 (01/5/2021) - -#### Highlights - -- Support new methods: [AutoAssign](https://arxiv.org/abs/2007.03496), [YOLOF](https://arxiv.org/abs/2103.09460), and [Deformable DETR](https://arxiv.org/abs/2010.04159) -- Stable support of exporting models to ONNX with batched images and dynamic shape (#5039) - -#### Backwards Incompatible Changes - -MMDetection is going through big refactoring for more general and convenient usages during the releases from v2.12.0 to v2.15.0 (maybe longer). -In v2.12.0 MMDetection inevitably brings some BC-breakings, including the MMCV dependency, model initialization, model registry, and mask AP evaluation. - -- MMCV version. MMDetection v2.12.0 relies on the newest features in MMCV 1.3.3, including `BaseModule` for unified parameter initialization, model registry, and the CUDA operator `MultiScaleDeformableAttn` for [Deformable DETR](https://arxiv.org/abs/2010.04159). Note that MMCV 1.3.2 already contains all the features used by MMDet but has known issues. Therefore, we recommend users skip MMCV v1.3.2 and use v1.3.3, though v1.3.2 might work for most cases. -- Unified model initialization (#4750). To unify the parameter initialization in OpenMMLab projects, MMCV supports `BaseModule` that accepts `init_cfg` to allow the modules' parameters initialized in a flexible and unified manner. Now the users need to explicitly call `model.init_weights()` in the training script to initialize the model (as in [here](https://github.com/open-mmlab/mmdetection/blob/master/tools/train.py#L162), previously this was handled by the detector. The models in MMDetection have been re-benchmarked to ensure accuracy based on PR #4750. __The downstream projects should update their code accordingly to use MMDetection v2.12.0__. -- Unified model registry (#5059). To easily use backbones implemented in other OpenMMLab projects, MMDetection migrates to inherit the model registry created in MMCV (#760). In this way, as long as the backbone is supported in an OpenMMLab project and that project also uses the registry in MMCV, users can use that backbone in MMDetection by simply modifying the config without copying the code of that backbone into MMDetection. -- Mask AP evaluation (#4898). Previous versions calculate the areas of masks through the bounding boxes when calculating the mask AP of small, medium, and large instances. To indeed use the areas of masks, we pop the key `bbox` during mask AP calculation. This change does not affect the overall mask AP evaluation and aligns the mask AP of similar models in other projects like Detectron2. - -#### New Features - -- Support paper [AutoAssign: Differentiable Label Assignment for Dense Object Detection](https://arxiv.org/abs/2007.03496) (#4295) -- Support paper [You Only Look One-level Feature](https://arxiv.org/abs/2103.09460) (#4295) -- Support paper [Deformable DETR: Deformable Transformers for End-to-End Object Detection](https://arxiv.org/abs/2010.04159) (#4778) -- Support calculating IoU with FP16 tensor in `bbox_overlaps` to save memory and keep speed (#4889) -- Add `__repr__` in custom dataset to count the number of instances (#4756) -- Add windows support by updating requirements.txt (#5052) -- Stable support of exporting models to ONNX with batched images and dynamic shape, including SSD, FSAF,FCOS, YOLOv3, RetinaNet, Faster R-CNN, and Mask R-CNN (#5039) - -#### Improvements - -- Use MMCV `MODEL_REGISTRY` (#5059) -- Unified parameter initialization for more flexible usage (#4750) -- Rename variable names and fix docstring in anchor head (#4883) -- Support training with empty GT in Cascade RPN (#4928) -- Add more details of usage of `test_robustness` in documentation (#4917) -- Changing to use `pycocotools` instead of `mmpycocotools` to fully support Detectron2 and MMDetection in one environment (#4939) -- Update torch serve dockerfile to support dockers of more versions (#4954) -- Add check for training with single class dataset (#4973) -- Refactor transformer and DETR Head (#4763) -- Update FPG model zoo (#5079) -- More accurate mask AP of small/medium/large instances (#4898) - -#### Bug Fixes - -- Fix bug in mean_ap.py when calculating mAP by 11 points (#4875) -- Fix error when key `meta` is not in old checkpoints (#4936) -- Fix hanging bug when training with empty GT in VFNet, GFL, and FCOS by changing the place of `reduce_mean` (#4923, #4978, #5058) -- Fix asyncronized inference error and provide related demo (#4941) -- Fix IoU losses dimensionality unmatch error (#4982) -- Fix torch.randperm whtn using PyTorch 1.8 (#5014) -- Fix empty bbox error in `mask_head` when using CARAFE (#5062) -- Fix `supplement_mask` bug when there are zero-size RoIs (#5065) -- Fix testing with empty rois in RoI Heads (#5081) - -### v2.11.0 (01/4/2021) - -__Highlights__ - -- Support new method: [Localization Distillation for Object Detection](https://arxiv.org/pdf/2102.12252.pdf) -- Support Pytorch2ONNX with batch inference and dynamic shape - -__New Features__ - -- Support [Localization Distillation for Object Detection](https://arxiv.org/pdf/2102.12252.pdf) (#4758) -- Support Pytorch2ONNX with batch inference and dynamic shape for Faster-RCNN and mainstream one-stage detectors (#4796) - -__Improvements__ - -- Support batch inference in head of RetinaNet (#4699) -- Add batch dimension in second stage of Faster-RCNN (#4785) -- Support batch inference in bbox coder (#4721) -- Add check for `ann_ids` in `COCODataset` to ensure it is unique (#4789) -- support for showing the FPN results (#4716) -- support dynamic shape for grid_anchor (#4684) -- Move pycocotools version check to when it is used (#4880) - -__Bug Fixes__ - -- Fix a bug of TridentNet when doing the batch inference (#4717) -- Fix a bug of Pytorch2ONNX in FASF (#4735) -- Fix a bug when show the image with float type (#4732) - -### v2.10.0 (01/03/2021) - -#### Highlights - -- Support new methods: [FPG](https://arxiv.org/abs/2004.03580) -- Support ONNX2TensorRT for SSD, FSAF, FCOS, YOLOv3, and Faster R-CNN. - -#### New Features - -- Support ONNX2TensorRT for SSD, FSAF, FCOS, YOLOv3, and Faster R-CNN (#4569) -- Support [Feature Pyramid Grids (FPG)](https://arxiv.org/abs/2004.03580) (#4645) -- Support video demo (#4420) -- Add seed option for sampler (#4665) -- Support to customize type of runner (#4570, #4669) -- Support synchronizing BN buffer in `EvalHook` (#4582) -- Add script for GIF demo (#4573) - -#### Bug Fixes - -- Fix ConfigDict AttributeError and add Colab link (#4643) -- Avoid crash in empty gt training of GFL head (#4631) -- Fix `iou_thrs` bug in RPN evaluation (#4581) -- Fix syntax error of config when upgrading model version (#4584) - -#### Improvements - -- Refactor unit test file structures (#4600) -- Refactor nms config (#4636) -- Get loading pipeline by checking the class directly rather than through config strings (#4619) -- Add doctests for mask target generation and mask structures (#4614) -- Use deep copy when copying pipeline arguments (#4621) -- Update documentations (#4642, #4650, #4620, #4630) -- Remove redundant code calling `import_modules_from_strings` (#4601) -- Clean deprecated FP16 API (#4571) -- Check whether `CLASSES` is correctly initialized in the initialization of `XMLDataset` (#4555) -- Support batch inference in the inference API (#4462, #4526) -- Clean deprecated warning and fix 'meta' error (#4695) - -### v2.9.0 (01/02/2021) - -#### Highlights - -- Support new methods: [SCNet](https://arxiv.org/abs/2012.10150), [Sparse R-CNN](https://arxiv.org/abs/2011.12450) -- Move `train_cfg` and `test_cfg` into model in configs -- Support to visualize results based on prediction quality - -#### New Features - -- Support [SCNet](https://arxiv.org/abs/2012.10150) (#4356) -- Support [Sparse R-CNN](https://arxiv.org/abs/2011.12450) (#4219) -- Support evaluate mAP by multiple IoUs (#4398) -- Support concatenate dataset for testing (#4452) -- Support to visualize results based on prediction quality (#4441) -- Add ONNX simplify option to Pytorch2ONNX script (#4468) -- Add hook for checking compatibility of class numbers in heads and datasets (#4508) - -#### Bug Fixes - -- Fix CPU inference bug of Cascade RPN (#4410) -- Fix NMS error of CornerNet when there is no prediction box (#4409) -- Fix TypeError in CornerNet inference (#4411) -- Fix bug of PAA when training with background images (#4391) -- Fix the error that the window data is not destroyed when `out_file is not None` and `show==False` (#4442) -- Fix order of NMS `score_factor` that will decrease the performance of YOLOv3 (#4473) -- Fix bug in HTC TTA when the number of detection boxes is 0 (#4516) -- Fix resize error in mask data structures (#4520) - -#### Improvements - -- Allow to customize classes in LVIS dataset (#4382) -- Add tutorials for building new models with existing datasets (#4396) -- Add CPU compatibility information in documentation (#4405) -- Add documentation of deprecated `ImageToTensor` for batch inference (#4408) -- Add more details in documentation for customizing dataset (#4430) -- Switch `imshow_det_bboxes` visualization backend from OpenCV to Matplotlib (#4389) -- Deprecate `ImageToTensor` in `image_demo.py` (#4400) -- Move train_cfg/test_cfg into model (#4347, #4489) -- Update docstring for `reg_decoded_bbox` option in bbox heads (#4467) -- Update dataset information in documentation (#4525) -- Release pre-trained R50 and R101 PAA detectors with multi-scale 3x training schedules (#4495) -- Add guidance for speed benchmark (#4537) - -### v2.8.0 (04/01/2021) - -#### Highlights - -- Support new methods: [Cascade RPN](https://arxiv.org/abs/1909.06720), [TridentNet](https://arxiv.org/abs/1901.01892) - -#### New Features - -- Support [Cascade RPN](https://arxiv.org/abs/1909.06720) (#1900) -- Support [TridentNet](https://arxiv.org/abs/1901.01892) (#3313) - -#### Bug Fixes - -- Fix bug of show result in async_benchmark (#4367) -- Fix scale factor in MaskTestMixin (#4366) -- Fix but when returning indices in `multiclass_nms` (#4362) -- Fix bug of empirical attention in resnext backbone error (#4300) -- Fix bug of `img_norm_cfg` in FCOS-HRNet models with updated performance and models (#4250) -- Fix invalid checkpoint and log in Mask R-CNN models on Cityscapes dataset (#4287) -- Fix bug in distributed sampler when dataset is too small (#4257) -- Fix bug of 'PAFPN has no attribute extra_convs_on_inputs' (#4235) - -#### Improvements - -- Update model url from aws to aliyun (#4349) -- Update ATSS for PyTorch 1.6+ (#4359) -- Update script to install ruby in pre-commit installation (#4360) -- Delete deprecated `mmdet.ops` (#4325) -- Refactor hungarian assigner for more general usage in Sparse R-CNN (#4259) -- Handle scipy import in DETR to reduce package dependencies (#4339) -- Update documentation of usages for config options after MMCV (1.2.3) supports overriding list in config (#4326) -- Update pre-train models of faster rcnn trained on COCO subsets (#4307) -- Avoid zero or too small value for beta in Dynamic R-CNN (#4303) -- Add doccumentation for Pytorch2ONNX (#4271) -- Add deprecated warning FPN arguments (#4264) -- Support returning indices of kept bboxes when using nms (#4251) -- Update type and device requirements when creating tensors `GFLHead` (#4210) -- Update device requirements when creating tensors in `CrossEntropyLoss` (#4224) - -### v2.7.0 (30/11/2020) - -- Support new method: [DETR](https://arxiv.org/abs/2005.12872), [ResNest](https://arxiv.org/abs/2004.08955), Faster R-CNN DC5. -- Support YOLO, Mask R-CNN, and Cascade R-CNN models exportable to ONNX. - -#### New Features - -- Support [DETR](https://arxiv.org/abs/2005.12872) (#4201, #4206) -- Support to link the best checkpoint in training (#3773) -- Support to override config through options in inference.py (#4175) -- Support YOLO, Mask R-CNN, and Cascade R-CNN models exportable to ONNX (#4087, #4083) -- Support [ResNeSt](https://arxiv.org/abs/2004.08955) backbone (#2959) -- Support unclip border bbox regression (#4076) -- Add tpfp func in evaluating AP (#4069) -- Support mixed precision training of SSD detector with other backbones (#4081) -- Add Faster R-CNN DC5 models (#4043) - -#### Bug Fixes - -- Fix bug of `gpu_id` in distributed training mode (#4163) -- Support Albumentations with version higher than 0.5 (#4032) -- Fix num_classes bug in faster rcnn config (#4088) -- Update code in docs/2_new_data_model.md (#4041) - -#### Improvements - -- Ensure DCN offset to have similar type as features in VFNet (#4198) -- Add config links in README files of models (#4190) -- Add tutorials for loss conventions (#3818) -- Add solution to installation issues in 30-series GPUs (#4176) -- Update docker version in get_started.md (#4145) -- Add model statistics and polish some titles in configs README (#4140) -- Clamp neg probability in FreeAnchor (#4082) -- Speed up expanding large images (#4089) -- Fix Pytorch 1.7 incompatibility issues (#4103) -- Update trouble shooting page to resolve segmentation fault (#4055) -- Update aLRP-Loss in project page (#4078) -- Clean duplicated `reduce_mean` function (#4056) -- Refactor Q&A (#4045) - -### v2.6.0 (1/11/2020) - -- Support new method: [VarifocalNet](https://arxiv.org/abs/2008.13367). -- Refactored documentation with more tutorials. - -#### New Features - -- Support GIoU calculation in `BboxOverlaps2D`, and re-implement `giou_loss` using `bbox_overlaps` (#3936) -- Support random sampling in CPU mode (#3948) -- Support VarifocalNet (#3666, #4024) - -#### Bug Fixes - -- Fix SABL validating bug in Cascade R-CNN (#3913) -- Avoid division by zero in PAA head when num_pos=0 (#3938) -- Fix temporary directory bug of multi-node testing error (#4034, #4017) -- Fix `--show-dir` option in test script (#4025) -- Fix GA-RetinaNet r50 model url (#3983) -- Update code in docs and fix broken urls (#3947) - -#### Improvements - -- Refactor pytorch2onnx API into `mmdet.core.export` and use `generate_inputs_and_wrap_model` for pytorch2onnx (#3857, #3912) -- Update RPN upgrade scripts for v2.5.0 compatibility (#3986) -- Use mmcv `tensor2imgs` (#4010) -- Update test robustness (#4000) -- Update trouble shooting page (#3994) -- Accelerate PAA training speed (#3985) -- Support batch_size > 1 in validation (#3966) -- Use RoIAlign implemented in MMCV for inference in CPU mode (#3930) -- Documentation refactoring (#4031) - -### v2.5.0 (5/10/2020) - -#### Highlights - -- Support new methods: [YOLACT](https://arxiv.org/abs/1904.02689), [CentripetalNet](https://arxiv.org/abs/2003.09119). -- Add more documentations for easier and more clear usage. - -#### Backwards Incompatible Changes - -__FP16 related methods are imported from mmcv instead of mmdet. (#3766, #3822)__ -Mixed precision training utils in `mmdet.core.fp16` are moved to `mmcv.runner`, including `force_fp32`, `auto_fp16`, `wrap_fp16_model`, and `Fp16OptimizerHook`. A deprecation warning will be raised if users attempt to import those methods from `mmdet.core.fp16`, and will be finally removed in V2.10.0. - -__\[0, N-1\] represents foreground classes and N indicates background classes for all models. (#3221)__ -Before v2.5.0, the background label for RPN is 0, and N for other heads. Now the behavior is consistent for all models. Thus `self.background_labels` in `dense_heads` is removed and all heads use `self.num_classes` to indicate the class index of background labels. -This change has no effect on the pre-trained models in the v2.x model zoo, but will affect the training of all models with RPN heads. Two-stage detectors whose RPN head uses softmax will be affected because the order of categories is changed. - -**Only call `get_subset_by_classes` when `test_mode=True` and `self.filter_empty_gt=True` (#3695)** -Function `get_subset_by_classes` in dataset is refactored and only filters out images when `test_mode=True` and `self.filter_empty_gt=True`. -In the original implementation, `get_subset_by_classes` is not related to the flag `self.filter_empty_gt` and will only be called when the classes is set during initialization no matter `test_mode` is `True` or `False`. This brings ambiguous behavior and potential bugs in many cases. After v2.5.0, if `filter_empty_gt=False`, no matter whether the classes are specified in a dataset, the dataset will use all the images in the annotations. If `filter_empty_gt=True` and `test_mode=True`, no matter whether the classes are specified, the dataset will call \`\`get_subset_by_classes\` to check the images and filter out images containing no GT boxes. Therefore, the users should be responsible for the data filtering/cleaning process for the test dataset. - -#### New Features - -- Test time augmentation for single stage detectors (#3844, #3638) -- Support to show the name of experiments during training (#3764) -- Add `Shear`, `Rotate`, `Translate` Augmentation (#3656, #3619, #3687) -- Add image-only transformations including `Constrast`, `Equalize`, `Color`, and `Brightness`. (#3643) -- Support [YOLACT](https://arxiv.org/abs/1904.02689) (#3456) -- Support [CentripetalNet](https://arxiv.org/abs/2003.09119) (#3390) -- Support PyTorch 1.6 in docker (#3905) - -#### Bug Fixes - -- Fix the bug of training ATSS when there is no ground truth boxes (#3702) -- Fix the bug of using Focal Loss when there is `num_pos` is 0 (#3702) -- Fix the label index mapping in dataset browser (#3708) -- Fix Mask R-CNN training stuck problem when their is no positive rois (#3713) -- Fix the bug of `self.rpn_head.test_cfg` in `RPNTestMixin` by using `self.rpn_head` in rpn head (#3808) -- Fix deprecated `Conv2d` from mmcv.ops (#3791) -- Fix device bug in RepPoints (#3836) -- Fix SABL validating bug (#3849) -- Use `https://download.openmmlab.com/mmcv/dist/index.html` for installing MMCV (#3840) -- Fix nonzero in NMS for PyTorch 1.6.0 (#3867) -- Fix the API change bug of PAA (#3883) -- Fix typo in bbox_flip (#3886) -- Fix cv2 import error of ligGL.so.1 in Dockerfile (#3891) - -#### Improvements - -- Change to use `mmcv.utils.collect_env` for collecting environment information to avoid duplicate codes (#3779) -- Update checkpoint file names to v2.0 models in documentation (#3795) -- Update tutorials for changing runtime settings (#3778), modifying loss (#3777) -- Improve the function of `simple_test_bboxes` in SABL (#3853) -- Convert mask to bool before using it as img's index for robustness and speedup (#3870) -- Improve documentation of modules and dataset customization (#3821) - -### v2.4.0 (5/9/2020) - -__Highlights__ - -- Fix lots of issues/bugs and reorganize the trouble shooting page -- Support new methods [SABL](https://arxiv.org/abs/1912.04260), [YOLOv3](https://arxiv.org/abs/1804.02767), and [PAA Assign](https://arxiv.org/abs/2007.08103) -- Support Batch Inference -- Start to publish `mmdet` package to PyPI since v2.3.0 -- Switch model zoo to download.openmmlab.com - -__Backwards Incompatible Changes__ - -- Support Batch Inference (#3564, #3686, #3705): Since v2.4.0, MMDetection could inference model with multiple images in a single GPU. - This change influences all the test APIs in MMDetection and downstream codebases. To help the users migrate their code, we use `replace_ImageToTensor` (#3686) to convert legacy test data pipelines during dataset initialization. -- Support RandomFlip with horizontal/vertical/diagonal direction (#3608): Since v2.4.0, MMDetection supports horizontal/vertical/diagonal flip in the data augmentation. This influences bounding box, mask, and image transformations in data augmentation process and the process that will map those data back to the original format. -- Migrate to use `mmlvis` and `mmpycocotools` for COCO and LVIS dataset (#3727). The APIs are fully compatible with the original `lvis` and `pycocotools`. Users need to uninstall the existing pycocotools and lvis packages in their environment first and install `mmlvis` & `mmpycocotools`. - -__Bug Fixes__ - -- Fix default mean/std for onnx (#3491) -- Fix coco evaluation and add metric items (#3497) -- Fix typo for install.md (#3516) -- Fix atss when sampler per gpu is 1 (#3528) -- Fix import of fuse_conv_bn (#3529) -- Fix bug of gaussian_target, update unittest of heatmap (#3543) -- Fixed VOC2012 evaluate (#3553) -- Fix scale factor bug of rescale (#3566) -- Fix with_xxx_attributes in base detector (#3567) -- Fix boxes scaling when number is 0 (#3575) -- Fix rfp check when neck config is a list (#3591) -- Fix import of fuse conv bn in benchmark.py (#3606) -- Fix webcam demo (#3634) -- Fix typo and itemize issues in tutorial (#3658) -- Fix error in distributed training when some levels of FPN are not assigned with bounding boxes (#3670) -- Fix the width and height orders of stride in valid flag generation (#3685) -- Fix weight initialization bug in Res2Net DCN (#3714) -- Fix bug in OHEMSampler (#3677) - -__New Features__ - -- Support Cutout augmentation (#3521) -- Support evaluation on multiple datasets through ConcatDataset (#3522) -- Support [PAA assign](https://arxiv.org/abs/2007.08103) #(3547) -- Support eval metric with pickle results (#3607) -- Support [YOLOv3](https://arxiv.org/abs/1804.02767) (#3083) -- Support [SABL](https://arxiv.org/abs/1912.04260) (#3603) -- Support to publish to Pypi in github-action (#3510) -- Support custom imports (#3641) - -__Improvements__ - -- Refactor common issues in documentation (#3530) -- Add pytorch 1.6 to CI config (#3532) -- Add config to runner meta (#3534) -- Add eval-option flag for testing (#3537) -- Add init_eval to evaluation hook (#3550) -- Add include_bkg in ClassBalancedDataset (#3577) -- Using config's loading in inference_detector (#3611) -- Add ATSS ResNet-101 models in model zoo (#3639) -- Update urls to download.openmmlab.com (#3665) -- Support non-mask training for CocoDataset (#3711) - -### v2.3.0 (5/8/2020) - -__Highlights__ - -- The CUDA/C++ operators have been moved to `mmcv.ops`. For backward compatibility `mmdet.ops` is kept as warppers of `mmcv.ops`. -- Support new methods [CornerNet](https://arxiv.org/abs/1808.01244), [DIOU](https://arxiv.org/abs/1911.08287)/[CIOU](https://arxiv.org/abs/2005.03572) loss, and new dataset: [LVIS V1](https://arxiv.org/abs/1908.03195) -- Provide more detailed colab training tutorials and more complete documentation. -- Support to convert RetinaNet from Pytorch to ONNX. - -__Bug Fixes__ - -- Fix the model initialization bug of DetectoRS (#3187) -- Fix the bug of module names in NASFCOSHead (#3205) -- Fix the filename bug in publish_model.py (#3237) -- Fix the dimensionality bug when `inside_flags.any()` is `False` in dense heads (#3242) -- Fix the bug of forgetting to pass flip directions in `MultiScaleFlipAug` (#3262) -- Fixed the bug caused by default value of `stem_channels` (#3333) -- Fix the bug of model checkpoint loading for CPU inference (#3318, #3316) -- Fix topk bug when box number is smaller than the expected topk number in ATSSAssigner (#3361) -- Fix the gt priority bug in center_region_assigner.py (#3208) -- Fix NaN issue of iou calculation in iou_loss.py (#3394) -- Fix the bug that `iou_thrs` is not actually used during evaluation in coco.py (#3407) -- Fix test-time augmentation of RepPoints (#3435) -- Fix runtimeError caused by incontiguous tensor in Res2Net+DCN (#3412) - -__New Features__ - -- Support [CornerNet](https://arxiv.org/abs/1808.01244) (#3036) -- Support [DIOU](https://arxiv.org/abs/1911.08287)/[CIOU](https://arxiv.org/abs/2005.03572) loss (#3151) -- Support [LVIS V1](https://arxiv.org/abs/1908.03195) dataset (#) -- Support customized hooks in training (#3395) -- Support fp16 training of generalized focal loss (#3410) -- Support to convert RetinaNet from Pytorch to ONNX (#3075) - -__Improvements__ - -- Support to process ignore boxes in ATSS assigner (#3082) -- Allow to crop images without ground truth in `RandomCrop` (#3153) -- Enable the the `Accuracy` module to set threshold (#3155) -- Refactoring unit tests (#3206) -- Unify the training settings of `to_float32` and `norm_cfg` in RegNets configs (#3210) -- Add colab training tutorials for beginners (#3213, #3273) -- Move CUDA/C++ operators into `mmcv.ops` and keep `mmdet.ops` as warppers for backward compatibility (#3232)(#3457) -- Update installation scripts in documentation (#3290) and dockerfile (#3320) -- Support to set image resize backend (#3392) -- Remove git hash in version file (#3466) -- Check mmcv version to force version compatibility (#3460) - -### v2.2.0 (1/7/2020) - -__Highlights__ - -- Support new methods: [DetectoRS](https://arxiv.org/abs/2006.02334), [PointRend](https://arxiv.org/abs/1912.08193), [Generalized Focal Loss](https://arxiv.org/abs/2006.04388), [Dynamic R-CNN](https://arxiv.org/abs/2004.06002) - -__Bug Fixes__ - -- Fix FreeAnchor when no gt in image (#3176) -- Clean up deprecated usage of `register_module()` (#3092, #3161) -- Fix pretrain bug in NAS FCOS (#3145) -- Fix `num_classes` in SSD (#3142) -- Fix FCOS warmup (#3119) -- Fix `rstrip` in `tools/publish_model.py` -- Fix `flip_ratio` default value in RandomFLip pipeline (#3106) -- Fix cityscapes eval with ms_rcnn (#3112) -- Fix RPN softmax (#3056) -- Fix filename of LVIS@v0.5 (#2998) -- Fix nan loss by filtering out-of-frame gt_bboxes in COCO (#2999) -- Fix bug in FSAF (#3018) -- Add FocalLoss `num_classes` check (#2964) -- Fix PISA Loss when there are no gts (#2992) -- Avoid nan in `iou_calculator` (#2975) -- Prevent possible bugs in loading and transforms caused by shallow copy (#2967) - -__New Features__ - -- Add DetectoRS (#3064) -- Support Generalize Focal Loss (#3097) -- Support PointRend (#2752) -- Support Dynamic R-CNN (#3040) -- Add DeepFashion dataset (#2968) -- Implement FCOS training tricks (#2935) -- Use BaseDenseHead as base class for anchor-base heads (#2963) -- Add `with_cp` for BasicBlock (#2891) -- Add `stem_channels` argument for ResNet (#2954) - -__Improvements__ - -- Add anchor free base head (#2867) -- Migrate to github action (#3137) -- Add docstring for datasets, pipelines, core modules and methods (#3130, #3125, #3120) -- Add VOC benchmark (#3060) -- Add `concat` mode in GRoI (#3098) -- Remove cmd arg `autorescale-lr` (#3080) -- Use `len(data['img_metas'])` to indicate `num_samples` (#3073, #3053) -- Switch to EpochBasedRunner (#2976) - -### v2.1.0 (8/6/2020) - -__Highlights__ - -- Support new backbones: [RegNetX](https://arxiv.org/abs/2003.13678), [Res2Net](https://arxiv.org/abs/1904.01169) -- Support new methods: [NASFCOS](https://arxiv.org/abs/1906.04423), [PISA](https://arxiv.org/abs/1904.04821), [GRoIE](https://arxiv.org/abs/2004.13665) -- Support new dataset: [LVIS](https://arxiv.org/abs/1908.03195) - -__Bug Fixes__ - -- Change the CLI argument `--validate` to `--no-validate` to enable validation after training epochs by default. (#2651) -- Add missing cython to docker file (#2713) -- Fix bug in nms cpu implementation (#2754) -- Fix bug when showing mask results (#2763) -- Fix gcc requirement (#2806) -- Fix bug in async test (#2820) -- Fix mask encoding-decoding bugs in test API (#2824) -- Fix bug in test time augmentation (#2858, #2921, #2944) -- Fix a typo in comment of apis/train (#2877) -- Fix the bug of returning None when no gt bboxes are in the original image in `RandomCrop`. Fix the bug that misses to handle `gt_bboxes_ignore`, `gt_label_ignore`, and `gt_masks_ignore` in `RandomCrop`, `MinIoURandomCrop` and `Expand` modules. (#2810) -- Fix bug of `base_channels` of regnet (#2917) -- Fix the bug of logger when loading pre-trained weights in base detector (#2936) - -__New Features__ - -- Add IoU models (#2666) -- Add colab demo for inference -- Support class agnostic nms (#2553) -- Add benchmark gathering scripts for development only (#2676) -- Add mmdet-based project links (#2736, #2767, #2895) -- Add config dump in training (#2779) -- Add ClassBalancedDataset (#2721) -- Add res2net backbone (#2237) -- Support RegNetX models (#2710) -- Use `mmcv.FileClient` to support different storage backends (#2712) -- Add ClassBalancedDataset (#2721) -- Code Release: Prime Sample Attention in Object Detection (CVPR 2020) (#2626) -- Implement NASFCOS (#2682) -- Add class weight in CrossEntropyLoss (#2797) -- Support LVIS dataset (#2088) -- Support GRoIE (#2584) - -__Improvements__ - -- Allow different x and y strides in anchor heads. (#2629) -- Make FSAF loss more robust to no gt (#2680) -- Compute pure inference time instead (#2657) and update inference speed (#2730) -- Avoided the possibility that a patch with 0 area is cropped. (#2704) -- Add warnings when deprecated `imgs_per_gpu` is used. (#2700) -- Add a mask rcnn example for config (#2645) -- Update model zoo (#2762, #2866, #2876, #2879, #2831) -- Add `ori_filename` to img_metas and use it in test show-dir (#2612) -- Use `img_fields` to handle multiple images during image transform (#2800) -- Add upsample_cfg support in FPN (#2787) -- Add `['img']` as default `img_fields` for back compatibility (#2809) -- Rename the pretrained model from `open-mmlab://resnet50_caffe` and `open-mmlab://resnet50_caffe_bgr` to `open-mmlab://detectron/resnet50_caffe` and `open-mmlab://detectron2/resnet50_caffe`. (#2832) -- Added sleep(2) in test.py to reduce hanging problem (#2847) -- Support `c10::half` in CARAFE (#2890) -- Improve documentations (#2918, #2714) -- Use optimizer constructor in mmcv and clean the original implementation in `mmdet.core.optimizer` (#2947) - -### v2.0.0 (6/5/2020) - -In this release, we made lots of major refactoring and modifications. - -1. __Faster speed__. We optimize the training and inference speed for common models, achieving up to 30% speedup for training and 25% for inference. Please refer to [model zoo](model_zoo.md#comparison-with-detectron2) for details. - -2. __Higher performance__. We change some default hyperparameters with no additional cost, which leads to a gain of performance for most models. Please refer to [compatibility](compatibility.md#training-hyperparameters) for details. - -3. __More documentation and tutorials__. We add a bunch of documentation and tutorials to help users get started more smoothly. Read it [here](https://mmdetection.readthedocs.io/en/latest/). - -4. __Support PyTorch 1.5__. The support for 1.1 and 1.2 is dropped, and we switch to some new APIs. - -5. __Better configuration system__. Inheritance is supported to reduce the redundancy of configs. - -6. __Better modular design__. Towards the goal of simplicity and flexibility, we simplify some encapsulation while add more other configurable modules like BBoxCoder, IoUCalculator, OptimizerConstructor, RoIHead. Target computation is also included in heads and the call hierarchy is simpler. - -7. Support new methods: [FSAF](https://arxiv.org/abs/1903.00621) and PAFPN (part of [PAFPN](https://arxiv.org/abs/1803.01534)). - -__Breaking Changes__ -Models training with MMDetection 1.x are not fully compatible with 2.0, please refer to the [compatibility doc](compatibility.md) for the details and how to migrate to the new version. - -__Improvements__ - -- Unify cuda and cpp API for custom ops. (#2277) -- New config files with inheritance. (#2216) -- Encapsulate the second stage into RoI heads. (#1999) -- Refactor GCNet/EmpericalAttention into plugins. (#2345) -- Set low quality match as an option in IoU-based bbox assigners. (#2375) -- Change the codebase's coordinate system. (#2380) -- Refactor the category order in heads. 0 means the first positive class instead of background now. (#2374) -- Add bbox sampler and assigner registry. (#2419) -- Speed up the inference of RPN. (#2420) -- Add `train_cfg` and `test_cfg` as class members in all anchor heads. (#2422) -- Merge target computation methods into heads. (#2429) -- Add bbox coder to support different bbox encoding and losses. (#2480) -- Unify the API for regression loss. (#2156) -- Refactor Anchor Generator. (#2474) -- Make `lr` an optional argument for optimizers. (#2509) -- Migrate to modules and methods in MMCV. (#2502, #2511, #2569, #2572) -- Support PyTorch 1.5. (#2524) -- Drop the support for Python 3.5 and use F-string in the codebase. (#2531) - -__Bug Fixes__ - -- Fix the scale factors for resized images without keep the aspect ratio. (#2039) -- Check if max_num > 0 before slicing in NMS. (#2486) -- Fix Deformable RoIPool when there is no instance. (#2490) -- Fix the default value of assigned labels. (#2536) -- Fix the evaluation of Cityscapes. (#2578) - -__New Features__ - -- Add deep_stem and avg_down option to ResNet, i.e., support ResNetV1d. (#2252) -- Add L1 loss. (#2376) -- Support both polygon and bitmap for instance masks. (#2353, #2540) -- Support CPU mode for inference. (#2385) -- Add optimizer constructor for complicated configuration of optimizers. (#2397, #2488) -- Implement PAFPN. (#2392) -- Support empty tensor input for some modules. (#2280) -- Support for custom dataset classes without overriding it. (#2408, #2443) -- Support to train subsets of coco dataset. (#2340) -- Add iou_calculator to potentially support more IoU calculation methods. (2405) -- Support class wise mean AP (was removed in the last version). (#2459) -- Add option to save the testing result images. (#2414) -- Support MomentumUpdaterHook. (#2571) -- Add a demo to inference a single image. (#2605) - -### v1.1.0 (24/2/2020) - -__Highlights__ - -- Dataset evaluation is rewritten with a unified api, which is used by both evaluation hooks and test scripts. -- Support new methods: [CARAFE](https://arxiv.org/abs/1905.02188). - -__Breaking Changes__ - -- The new MMDDP inherits from the official DDP, thus the `__init__` api is changed to be the same as official DDP. -- The `mask_head` field in HTC config files is modified. -- The evaluation and testing script is updated. -- In all transforms, instance masks are stored as a numpy array shaped (n, h, w) instead of a list of (h, w) arrays, where n is the number of instances. - -__Bug Fixes__ - -- Fix IOU assigners when ignore_iof_thr > 0 and there is no pred boxes. (#2135) -- Fix mAP evaluation when there are no ignored boxes. (#2116) -- Fix the empty RoI input for Deformable RoI Pooling. (#2099) -- Fix the dataset settings for multiple workflows. (#2103) -- Fix the warning related to `torch.uint8` in PyTorch 1.4. (#2105) -- Fix the inference demo on devices other than gpu:0. (#2098) -- Fix Dockerfile. (#2097) -- Fix the bug that `pad_val` is unused in Pad transform. (#2093) -- Fix the albumentation transform when there is no ground truth bbox. (#2032) - -__Improvements__ - -- Use torch instead of numpy for random sampling. (#2094) -- Migrate to the new MMDDP implementation in MMCV v0.3. (#2090) -- Add meta information in logs. (#2086) -- Rewrite Soft NMS with pytorch extension and remove cython as a dependency. (#2056) -- Rewrite dataset evaluation. (#2042, #2087, #2114, #2128) -- Use numpy array for masks in transforms. (#2030) - -__New Features__ - -- Implement "CARAFE: Content-Aware ReAssembly of FEatures". (#1583) -- Add `worker_init_fn()` in data_loader when seed is set. (#2066, #2111) -- Add logging utils. (#2035) - -### v1.0.0 (30/1/2020) - -This release mainly improves the code quality and add more docstrings. - -__Highlights__ - -- Documentation is online now: . -- Support new models: [ATSS](https://arxiv.org/abs/1912.02424). -- DCN is now available with the api `build_conv_layer` and `ConvModule` like the normal conv layer. -- A tool to collect environment information is available for trouble shooting. - -__Bug Fixes__ - -- Fix the incompatibility of the latest numpy and pycocotools. (#2024) -- Fix the case when distributed package is unavailable, e.g., on Windows. (#1985) -- Fix the dimension issue for `refine_bboxes()`. (#1962) -- Fix the typo when `seg_prefix` is a list. (#1906) -- Add segmentation map cropping to RandomCrop. (#1880) -- Fix the return value of `ga_shape_target_single()`. (#1853) -- Fix the loaded shape of empty proposals. (#1819) -- Fix the mask data type when using albumentation. (#1818) - -__Improvements__ - -- Enhance AssignResult and SamplingResult. (#1995) -- Add ability to overwrite existing module in Registry. (#1982) -- Reorganize requirements and make albumentations and imagecorruptions optional. (#1969) -- Check NaN in `SSDHead`. (#1935) -- Encapsulate the DCN in ResNe(X)t into a ConvModule & Conv_layers. (#1894) -- Refactoring for mAP evaluation and support multiprocessing and logging. (#1889) -- Init the root logger before constructing Runner to log more information. (#1865) -- Split `SegResizeFlipPadRescale` into different existing transforms. (#1852) -- Move `init_dist()` to MMCV. (#1851) -- Documentation and docstring improvements. (#1971, #1938, #1869, #1838) -- Fix the color of the same class for mask visualization. (#1834) -- Remove the option `keep_all_stages` in HTC and Cascade R-CNN. (#1806) - -__New Features__ - -- Add two test-time options `crop_mask` and `rle_mask_encode` for mask heads. (#2013) -- Support loading grayscale images as single channel. (#1975) -- Implement "Bridging the Gap Between Anchor-based and Anchor-free Detection via Adaptive Training Sample Selection". (#1872) -- Add sphinx generated docs. (#1859, #1864) -- Add GN support for flops computation. (#1850) -- Collect env info for trouble shooting. (#1812) - -### v1.0rc1 (13/12/2019) - -The RC1 release mainly focuses on improving the user experience, and fixing bugs. - -__Highlights__ - -- Support new models: [FoveaBox](https://arxiv.org/abs/1904.03797), [RepPoints](https://arxiv.org/abs/1904.11490) and [FreeAnchor](https://arxiv.org/abs/1909.02466). -- Add a Dockerfile. -- Add a jupyter notebook demo and a webcam demo. -- Setup the code style and CI. -- Add lots of docstrings and unit tests. -- Fix lots of bugs. - -__Breaking Changes__ - -- There was a bug for computing COCO-style mAP w.r.t different scales (AP_s, AP_m, AP_l), introduced by #621. (#1679) - -__Bug Fixes__ - -- Fix a sampling interval bug in Libra R-CNN. (#1800) -- Fix the learning rate in SSD300 WIDER FACE. (#1781) -- Fix the scaling issue when `keep_ratio=False`. (#1730) -- Fix typos. (#1721, #1492, #1242, #1108, #1107) -- Fix the shuffle argument in `build_dataloader`. (#1693) -- Clip the proposal when computing mask targets. (#1688) -- Fix the "index out of range" bug for samplers in some corner cases. (#1610, #1404) -- Fix the NMS issue on devices other than GPU:0. (#1603) -- Fix SSD Head and GHM Loss on CPU. (#1578) -- Fix the OOM error when there are too many gt bboxes. (#1575) -- Fix the wrong keyword argument `nms_cfg` in HTC. (#1573) -- Process masks and semantic segmentation in Expand and MinIoUCrop transforms. (#1550, #1361) -- Fix a scale bug in the Non Local op. (#1528) -- Fix a bug in transforms when `gt_bboxes_ignore` is None. (#1498) -- Fix a bug when `img_prefix` is None. (#1497) -- Pass the device argument to `grid_anchors` and `valid_flags`. (#1478) -- Fix the data pipeline for test_robustness. (#1476) -- Fix the argument type of deformable pooling. (#1390) -- Fix the coco_eval when there are only two classes. (#1376) -- Fix a bug in Modulated DeformableConv when deformable_group>1. (#1359) -- Fix the mask cropping in RandomCrop. (#1333) -- Fix zero outputs in DeformConv when not running on cuda:0. (#1326) -- Fix the type issue in Expand. (#1288) -- Fix the inference API. (#1255) -- Fix the inplace operation in Expand. (#1249) -- Fix the from-scratch training config. (#1196) -- Fix inplace add in RoIExtractor which cause an error in PyTorch 1.2. (#1160) -- Fix FCOS when input images has no positive sample. (#1136) -- Fix recursive imports. (#1099) - -__Improvements__ - -- Print the config file and mmdet version in the log. (#1721) -- Lint the code before compiling in travis CI. (#1715) -- Add a probability argument for the `Expand` transform. (#1651) -- Update the PyTorch and CUDA version in the docker file. (#1615) -- Raise a warning when specifying `--validate` in non-distributed training. (#1624, #1651) -- Beautify the mAP printing. (#1614) -- Add pre-commit hook. (#1536) -- Add the argument `in_channels` to backbones. (#1475) -- Add lots of docstrings and unit tests, thanks to [@Erotemic](https://github.com/Erotemic). (#1603, #1517, #1506, #1505, #1491, #1479, #1477, #1475, #1474) -- Add support for multi-node distributed test when there is no shared storage. (#1399) -- Optimize Dockerfile to reduce the image size. (#1306) -- Update new results of HRNet. (#1284, #1182) -- Add an argument `no_norm_on_lateral` in FPN. (#1240) -- Test the compiling in CI. (#1235) -- Move docs to a separate folder. (#1233) -- Add a jupyter notebook demo. (#1158) -- Support different type of dataset for training. (#1133) -- Use int64_t instead of long in cuda kernels. (#1131) -- Support unsquare RoIs for bbox and mask heads. (#1128) -- Manually add type promotion to make compatible to PyTorch 1.2. (#1114) -- Allowing validation dataset for computing validation loss. (#1093) -- Use `.scalar_type()` instead of `.type()` to suppress some warnings. (#1070) - -__New Features__ - -- Add an option `--with_ap` to compute the AP for each class. (#1549) -- Implement "FreeAnchor: Learning to Match Anchors for Visual Object Detection". (#1391) -- Support [Albumentations](https://github.com/albumentations-team/albumentations) for augmentations in the data pipeline. (#1354) -- Implement "FoveaBox: Beyond Anchor-based Object Detector". (#1339) -- Support horizontal and vertical flipping. (#1273, #1115) -- Implement "RepPoints: Point Set Representation for Object Detection". (#1265) -- Add test-time augmentation to HTC and Cascade R-CNN. (#1251) -- Add a COCO result analysis tool. (#1228) -- Add Dockerfile. (#1168) -- Add a webcam demo. (#1155, #1150) -- Add FLOPs counter. (#1127) -- Allow arbitrary layer order for ConvModule. (#1078) - -### v1.0rc0 (27/07/2019) - -- Implement lots of new methods and components (Mixed Precision Training, HTC, Libra R-CNN, Guided Anchoring, Empirical Attention, Mask Scoring R-CNN, Grid R-CNN (Plus), GHM, GCNet, FCOS, HRNet, Weight Standardization, etc.). Thank all collaborators! -- Support two additional datasets: WIDER FACE and Cityscapes. -- Refactoring for loss APIs and make it more flexible to adopt different losses and related hyper-parameters. -- Speed up multi-gpu testing. -- Integrate all compiling and installing in a single script. - -### v0.6.0 (14/04/2019) - -- Up to 30% speedup compared to the model zoo. -- Support both PyTorch stable and nightly version. -- Replace NMS and SigmoidFocalLoss with Pytorch CUDA extensions. - -### v0.6rc0(06/02/2019) - -- Migrate to PyTorch 1.0. - -### v0.5.7 (06/02/2019) - -- Add support for Deformable ConvNet v2. (Many thanks to the authors and [@chengdazhi](https://github.com/chengdazhi)) -- This is the last release based on PyTorch 0.4.1. - -### v0.5.6 (17/01/2019) - -- Add support for Group Normalization. -- Unify RPNHead and single stage heads (RetinaHead, SSDHead) with AnchorHead. - -### v0.5.5 (22/12/2018) - -- Add SSD for COCO and PASCAL VOC. -- Add ResNeXt backbones and detection models. -- Refactoring for Samplers/Assigners and add OHEM. -- Add VOC dataset and evaluation scripts. - -### v0.5.4 (27/11/2018) - -- Add SingleStageDetector and RetinaNet. - -### v0.5.3 (26/11/2018) - -- Add Cascade R-CNN and Cascade Mask R-CNN. -- Add support for Soft-NMS in config files. - -### v0.5.2 (21/10/2018) - -- Add support for custom datasets. -- Add a script to convert PASCAL VOC annotations to the expected format. - -### v0.5.1 (20/10/2018) - -- Add BBoxAssigner and BBoxSampler, the `train_cfg` field in config files are restructured. -- `ConvFCRoIHead` / `SharedFCRoIHead` are renamed to `ConvFCBBoxHead` / `SharedFCBBoxHead` for consistency. diff --git a/docs/en/notes/compatibility.md b/docs/en/notes/compatibility.md deleted file mode 100644 index 26325e249dc..00000000000 --- a/docs/en/notes/compatibility.md +++ /dev/null @@ -1,178 +0,0 @@ -# Compatibility of MMDetection 2.x - -## MMDetection 2.25.0 - -In order to support Mask2Former for instance segmentation, the original config files of Mask2Former for panpotic segmentation need to be renamed [PR #7571](https://github.com/open-mmlab/mmdetection/pull/7571). - - - - - - - - - - - -
    before v2.25.0after v2.25.0
    - -``` -'mask2former_xxx_coco.py' represents config files for **panoptic segmentation**. -``` - - - -``` -'mask2former_xxx_coco.py' represents config files for **instance segmentation**. -'mask2former_xxx_coco-panoptic.py' represents config files for **panoptic segmentation**. -``` - -
    - -## MMDetection 2.21.0 - -In order to support CPU training, the logic of scatter in batch collating has been changed. We recommend to use -MMCV v1.4.4 or higher. For more details, please refer to [MMCV PR #1621](https://github.com/open-mmlab/mmcv/pull/1621). - -## MMDetection 2.18.1 - -### MMCV compatibility - -In order to fix the wrong weight reference bug in BaseTransformerLayer, the logic in batch first mode of MultiheadAttention has been changed. -We recommend to use MMCV v1.3.17 or higher. For more details, please refer to [MMCV PR #1418](https://github.com/open-mmlab/mmcv/pull/1418). - -## MMDetection 2.18.0 - -### DIIHead compatibility - -In order to support QueryInst, attn_feats is added into the returned tuple of DIIHead. - -## MMDetection 2.14.0 - -### MMCV Version - -In order to fix the problem that the priority of EvalHook is too low, all hook priorities have been re-adjusted in 1.3.8, so MMDetection 2.14.0 needs to rely on the latest MMCV 1.3.8 version. For related information, please refer to [#1120](https://github.com/open-mmlab/mmcv/pull/1120), for related issues, please refer to [#5343](https://github.com/open-mmlab/mmdetection/issues/5343). - -### SSD compatibility - -In v2.14.0, to make SSD more flexible to use, [PR5291](https://github.com/open-mmlab/mmdetection/pull/5291) refactored its backbone, neck and head. The users can use the script `tools/model_converters/upgrade_ssd_version.py` to convert their models. - -```bash -python tools/model_converters/upgrade_ssd_version.py ${OLD_MODEL_PATH} ${NEW_MODEL_PATH} -``` - -- OLD_MODEL_PATH: the path to load the old version SSD model. -- NEW_MODEL_PATH: the path to save the converted model weights. - -## MMDetection 2.12.0 - -MMDetection is going through big refactoring for more general and convenient usages during the releases from v2.12.0 to v2.18.0 (maybe longer). -In v2.12.0 MMDetection inevitably brings some BC-breakings, including the MMCV dependency, model initialization, model registry, and mask AP evaluation. - -### MMCV Version - -MMDetection v2.12.0 relies on the newest features in MMCV 1.3.3, including `BaseModule` for unified parameter initialization, model registry, and the CUDA operator `MultiScaleDeformableAttn` for [Deformable DETR](https://arxiv.org/abs/2010.04159). Note that MMCV 1.3.2 already contains all the features used by MMDet but has known issues. Therefore, we recommend users to skip MMCV v1.3.2 and use v1.3.2, though v1.3.2 might work for most of the cases. - -### Unified model initialization - -To unify the parameter initialization in OpenMMLab projects, MMCV supports `BaseModule` that accepts `init_cfg` to allow the modules' parameters initialized in a flexible and unified manner. Now the users need to explicitly call `model.init_weights()` in the training script to initialize the model (as in [here](https://github.com/open-mmlab/mmdetection/blob/main/tools/train.py#L162), previously this was handled by the detector. **The downstream projects must update their model initialization accordingly to use MMDetection v2.12.0**. Please refer to PR #4750 for details. - -### Unified model registry - -To easily use backbones implemented in other OpenMMLab projects, MMDetection v2.12.0 inherits the model registry created in MMCV (#760). In this way, as long as the backbone is supported in an OpenMMLab project and that project also uses the registry in MMCV, users can use that backbone in MMDetection by simply modifying the config without copying the code of that backbone into MMDetection. Please refer to PR #5059 for more details. - -### Mask AP evaluation - -Before [PR 4898](https://github.com/open-mmlab/mmdetection/pull/4898) and V2.12.0, the mask AP of small, medium, and large instances is calculated based on the bounding box area rather than the real mask area. This leads to higher `APs` and `APm` but lower `APl` but will not affect the overall mask AP. [PR 4898](https://github.com/open-mmlab/mmdetection/pull/4898) change it to use mask areas by deleting `bbox` in mask AP calculation. -The new calculation does not affect the overall mask AP evaluation and is consistent with [Detectron2](https://github.com/facebookresearch/detectron2/). - -## Compatibility with MMDetection 1.x - -MMDetection 2.0 goes through a big refactoring and addresses many legacy issues. It is not compatible with the 1.x version, i.e., running inference with the same model weights in these two versions will produce different results. Thus, MMDetection 2.0 re-benchmarks all the models and provides their links and logs in the model zoo. - -The major differences are in four folds: coordinate system, codebase conventions, training hyperparameters, and modular design. - -### Coordinate System - -The new coordinate system is consistent with [Detectron2](https://github.com/facebookresearch/detectron2/) and treats the center of the most left-top pixel as (0, 0) rather than the left-top corner of that pixel. -Accordingly, the system interprets the coordinates in COCO bounding box and segmentation annotations as coordinates in range `[0, width]` or `[0, height]`. -This modification affects all the computation related to the bbox and pixel selection, -which is more natural and accurate. - -- The height and width of a box with corners (x1, y1) and (x2, y2) in the new coordinate system is computed as `width = x2 - x1` and `height = y2 - y1`. - In MMDetection 1.x and previous version, a "+ 1" was added both height and width. - This modification are in three folds: - - 1. Box transformation and encoding/decoding in regression. - 2. IoU calculation. This affects the matching process between ground truth and bounding box and the NMS process. The effect to compatibility is very negligible, though. - 3. The corners of bounding box is in float type and no longer quantized. This should provide more accurate bounding box results. This also makes the bounding box and RoIs not required to have minimum size of 1, whose effect is small, though. - -- The anchors are center-aligned to feature grid points and in float type. - In MMDetection 1.x and previous version, the anchors are in `int` type and not center-aligned. - This affects the anchor generation in RPN and all the anchor-based methods. - -- ROIAlign is better aligned with the image coordinate system. The new implementation is adopted from [Detectron2](https://github.com/facebookresearch/detectron2/tree/master/detectron2/layers/csrc/ROIAlign). - The RoIs are shifted by half a pixel by default when they are used to cropping RoI features, compared to MMDetection 1.x. - The old behavior is still available by setting `aligned=False` instead of `aligned=True`. - -- Mask cropping and pasting are more accurate. - - 1. We use the new RoIAlign to crop mask targets. In MMDetection 1.x, the bounding box is quantized before it is used to crop mask target, and the crop process is implemented by numpy. In new implementation, the bounding box for crop is not quantized and sent to RoIAlign. This implementation accelerates the training speed by a large margin (~0.1s per iter, ~2 hour when training Mask R50 for 1x schedule) and should be more accurate. - - 2. In MMDetection 2.0, the "`paste_mask()`" function is different and should be more accurate than those in previous versions. This change follows the modification in [Detectron2](https://github.com/facebookresearch/detectron2/blob/master/detectron2/structures/masks.py) and can improve mask AP on COCO by ~0.5% absolute. - -### Codebase Conventions - -- MMDetection 2.0 changes the order of class labels to reduce unused parameters in regression and mask branch more naturally (without +1 and -1). - This effect all the classification layers of the model to have a different ordering of class labels. The final layers of regression branch and mask head no longer keep K+1 channels for K categories, and their class orders are consistent with the classification branch. - - - In MMDetection 2.0, label "K" means background, and labels \[0, K-1\] correspond to the K = num_categories object categories. - - - In MMDetection 1.x and previous version, label "0" means background, and labels \[1, K\] correspond to the K categories. - - - **Note**: The class order of softmax RPN is still the same as that in 1.x in versions\<=2.4.0 while sigmoid RPN is not affected. The class orders in all heads are unified since MMDetection v2.5.0. - -- Low quality matching in R-CNN is not used. In MMDetection 1.x and previous versions, the `max_iou_assigner` will match low quality boxes for each ground truth box in both RPN and R-CNN training. We observe this sometimes does not assign the most perfect GT box to some bounding boxes, - thus MMDetection 2.0 do not allow low quality matching by default in R-CNN training in the new system. This sometimes may slightly improve the box AP (~0.1% absolute). - -- Separate scale factors for width and height. In MMDetection 1.x and previous versions, the scale factor is a single float in mode `keep_ratio=True`. This is slightly inaccurate because the scale factors for width and height have slight difference. MMDetection 2.0 adopts separate scale factors for width and height, the improvement on AP ~0.1% absolute. - -- Configs name conventions are changed. MMDetection V2.0 adopts the new name convention to maintain the gradually growing model zoo as the following: - - ```shell - [model]_(model setting)_[backbone]_[neck]_(norm setting)_(misc)_(gpu x batch)_[schedule]_[dataset].py, - ``` - - where the (`misc`) includes DCN and GCBlock, etc. More details are illustrated in the [documentation for config](tutorials/config) - -- MMDetection V2.0 uses new ResNet Caffe backbones to reduce warnings when loading pre-trained models. Most of the new backbones' weights are the same as the former ones but do not have `conv.bias`, except that they use a different `img_norm_cfg`. Thus, the new backbone will not cause warning of unexpected keys. - -### Training Hyperparameters - -The change in training hyperparameters does not affect -model-level compatibility but slightly improves the performance. The major ones are: - -- The number of proposals after nms is changed from 2000 to 1000 by setting `nms_post=1000` and `max_num=1000`. - This slightly improves both mask AP and bbox AP by ~0.2% absolute. - -- The default box regression losses for Mask R-CNN, Faster R-CNN and RetinaNet are changed from smooth L1 Loss to L1 loss. This leads to an overall improvement in box AP (~0.6% absolute). However, using L1-loss for other methods such as Cascade R-CNN and HTC does not improve the performance, so we keep the original settings for these methods. - -- The sample num of RoIAlign layer is set to be 0 for simplicity. This leads to slightly improvement on mask AP (~0.2% absolute). - -- The default setting does not use gradient clipping anymore during training for faster training speed. This does not degrade performance of the most of models. For some models such as RepPoints we keep using gradient clipping to stabilize the training process and to obtain better performance. - -- The default warmup ratio is changed from 1/3 to 0.001 for a more smooth warming up process since the gradient clipping is usually not used. The effect is found negligible during our re-benchmarking, though. - -### Upgrade Models from 1.x to 2.0 - -To convert the models trained by MMDetection V1.x to MMDetection V2.0, the users can use the script `tools/model_converters/upgrade_model_version.py` to convert -their models. The converted models can be run in MMDetection V2.0 with slightly dropped performance (less than 1% AP absolute). -Details can be found in `configs/legacy`. - -## pycocotools compatibility - -`mmpycocotools` is the OpenMMlab's fork of official `pycocotools`, which works for both MMDetection and Detectron2. -Before [PR 4939](https://github.com/open-mmlab/mmdetection/pull/4939), since `pycocotools` and `mmpycocotool` have the same package name, if users already installed `pycocotools` (installed Detectron2 first under the same environment), then the setup of MMDetection will skip installing `mmpycocotool`. Thus MMDetection fails due to the missing `mmpycocotools`. -If MMDetection is installed before Detectron2, they could work under the same environment. -[PR 4939](https://github.com/open-mmlab/mmdetection/pull/4939) deprecates mmpycocotools in favor of official pycocotools. -Users may install MMDetection and Detectron2 under the same environment after [PR 4939](https://github.com/open-mmlab/mmdetection/pull/4939), no matter what the installation order is. diff --git a/docs/en/notes/contribution_guide.md b/docs/en/notes/contribution_guide.md deleted file mode 100644 index d622c0abed3..00000000000 --- a/docs/en/notes/contribution_guide.md +++ /dev/null @@ -1 +0,0 @@ -# Contribution diff --git a/docs/en/notes/faq.md b/docs/en/notes/faq.md deleted file mode 100644 index 9e3c1a7852b..00000000000 --- a/docs/en/notes/faq.md +++ /dev/null @@ -1,240 +0,0 @@ -# Frequently Asked Questions - -We list some common troubles faced by many users and their corresponding solutions here. Feel free to enrich the list if you find any frequent issues and have ways to help others to solve them. If the contents here do not cover your issue, please create an issue using the [provided templates](https://github.com/open-mmlab/mmdetection/blob/main/.github/ISSUE_TEMPLATE/error-report.md/) and make sure you fill in all required information in the template. - -## PyTorch 2.0 Support - -The vast majority of algorithms in MMDetection now support PyTorch 2.0 and its `torch.compile` function. Users only need to install MMDetection 3.0.0rc7 or later versions to enjoy this feature. If any unsupported algorithms are found during use, please feel free to give us feedback. We also welcome contributions from the community to benchmark the speed improvement brought by using the `torch.compile` function. - -To enable the `torch.compile` function, simply add `--cfg-options compile=True` after `train.py` or `test.py`. For example, to enable `torch.compile` for RTMDet, you can use the following command: - -```shell -# Single GPU -python tools/train.py configs/rtmdet/rtmdet_s_8xb32-300e_coco.py --cfg-options compile=True - -# Single node multiple GPUs -./tools/dist_train.sh configs/rtmdet/rtmdet_s_8xb32-300e_coco.py 8 --cfg-options compile=True - -# Single node multiple GPUs + AMP -./tools/dist_train.sh configs/rtmdet/rtmdet_s_8xb32-300e_coco.py 8 --cfg-options compile=True --amp -``` - -It is important to note that PyTorch 2.0's support for dynamic shapes is not yet fully developed. In most object detection algorithms, not only are the input shapes dynamic, but the loss calculation and post-processing parts are also dynamic. This can lead to slower training speeds when using the `torch.compile` function. Therefore, if you wish to enable the `torch.compile` function, you should follow these principles: - -1. Input images to the network are fixed shape, not multi-scale -2. set `torch._dynamo.config.cache_size_limit` parameter. TorchDynamo will convert and cache the Python bytecode, and the compiled functions will be stored in the cache. When the next check finds that the function needs to be recompiled, the function will be recompiled and cached. However, if the number of recompilations exceeds the maximum value set (64), the function will no longer be cached or recompiled. As mentioned above, the loss calculation and post-processing parts of the object detection algorithm are also dynamically calculated, and these functions need to be recompiled every time. Therefore, setting the `torch._dynamo.config.cache_size_limit` parameter to a smaller value can effectively reduce the compilation time - -In MMDetection, you can set the `torch._dynamo.config.cache_size_limit` parameter through the environment variable `DYNAMO_CACHE_SIZE_LIMIT`. For example, the command is as follows: - -```shell -# Single GPU -export DYNAMO_CACHE_SIZE_LIMIT = 4 -python tools/train.py configs/rtmdet/rtmdet_s_8xb32-300e_coco.py --cfg-options compile=True - -# Single node multiple GPUs -export DYNAMO_CACHE_SIZE_LIMIT = 4 -./tools/dist_train.sh configs/rtmdet/rtmdet_s_8xb32-300e_coco.py 8 --cfg-options compile=True -``` - -About the common questions about PyTorch 2.0's dynamo, you can refer to [here](https://pytorch.org/docs/stable/dynamo/faq.html) - -## Installation - -Compatibility issue between MMCV and MMDetection; "ConvWS is already registered in conv layer"; "AssertionError: MMCV==xxx is used but incompatible. Please install mmcv>=xxx, \<=xxx." - -Compatible MMDetection, MMEngine, and MMCV versions are shown as below. Please choose the correct version of MMCV to avoid installation issues. - -| MMDetection version | MMCV version | MMEngine version | -| :-----------------: | :---------------------: | :----------------------: | -| main | mmcv>=2.0.0, \<2.2.0 | mmengine>=0.7.1, \<1.0.0 | -| 3.2.0 | mmcv>=2.0.0, \<2.2.0 | mmengine>=0.7.1, \<1.0.0 | -| 3.1.0 | mmcv>=2.0.0, \<2.1.0 | mmengine>=0.7.1, \<1.0.0 | -| 3.0.0 | mmcv>=2.0.0, \<2.1.0 | mmengine>=0.7.1, \<1.0.0 | -| 3.0.0rc6 | mmcv>=2.0.0rc4, \<2.1.0 | mmengine>=0.6.0, \<1.0.0 | -| 3.0.0rc5 | mmcv>=2.0.0rc1, \<2.1.0 | mmengine>=0.3.0, \<1.0.0 | -| 3.0.0rc4 | mmcv>=2.0.0rc1, \<2.1.0 | mmengine>=0.3.0, \<1.0.0 | -| 3.0.0rc3 | mmcv>=2.0.0rc1, \<2.1.0 | mmengine>=0.3.0, \<1.0.0 | -| 3.0.0rc2 | mmcv>=2.0.0rc1, \<2.1.0 | mmengine>=0.1.0, \<1.0.0 | -| 3.0.0rc1 | mmcv>=2.0.0rc1, \<2.1.0 | mmengine>=0.1.0, \<1.0.0 | -| 3.0.0rc0 | mmcv>=2.0.0rc1, \<2.1.0 | mmengine>=0.1.0, \<1.0.0 | - -**Note:** - -1. If you want to install mmdet-v2.x, the compatible MMDetection and MMCV versions table can be found at [here](https://mmdetection.readthedocs.io/en/stable/faq.html#installation). Please choose the correct version of MMCV to avoid installation issues. -2. In MMCV-v2.x, `mmcv-full` is rename to `mmcv`, if you want to install `mmcv` without CUDA ops, you can install `mmcv-lite`. - -- "No module named 'mmcv.ops'"; "No module named 'mmcv.\_ext'". - - 1. Uninstall existing `mmcv-lite` in the environment using `pip uninstall mmcv-lite`. - 2. Install `mmcv` following the [installation instruction](https://mmcv.readthedocs.io/en/2.x/get_started/installation.html). - -- "Microsoft Visual C++ 14.0 or graeter is required" during installation on Windows. - - This error happens when building the 'pycocotools.\_mask' extension of pycocotools and the environment lacks corresponding C++ compilation dependencies. You need to download it at Microsoft officials [visual-cpp-build-tools](https://visualstudio.microsoft.com/zh-hans/visual-cpp-build-tools/), select the "Use C ++ Desktop Development" option to install the minimum dependencies, and then reinstall pycocotools. - -- Using Albumentations - - If you would like to use `albumentations`, we suggest using `pip install -r requirements/albu.txt` or - `pip install -U albumentations --no-binary qudida,albumentations`. - If you simply use `pip install albumentations>=0.3.2`, it will install `opencv-python-headless` simultaneously (even though you have already installed `opencv-python`). - Please refer to the [official documentation](https://albumentations.ai/docs/getting_started/installation/#note-on-opencv-dependencies) for details. - -- ModuleNotFoundError is raised when using some algorithms - - Some extra dependencies are required for Instaboost, Panoptic Segmentation, LVIS dataset, etc. Please note the error message and install corresponding packages, e.g., - - ```shell - # for instaboost - pip install instaboostfast - # for panoptic segmentation - pip install git+https://github.com/cocodataset/panopticapi.git - # for LVIS dataset - pip install git+https://github.com/lvis-dataset/lvis-api.git - ``` - -## Coding - -- Do I need to reinstall mmdet after some code modifications - - If you follow the best practice and install mmdet with `pip install -e .`, any local modifications made to the code will take effect without reinstallation. - -- How to develop with multiple MMDetection versions - - You can have multiple folders like mmdet-3.0, mmdet-3.1. - When you run the train or test script, it will adopt the mmdet package in the current folder. - - To use the default MMDetection installed in the environment rather than the one you are working with, you can remove the following line in those scripts: - - ```shell - PYTHONPATH="$(dirname $0)/..":$PYTHONPATH - ``` - -## PyTorch/CUDA Environment - -- "RTX 30 series card fails when building MMCV or MMDet" - - 1. Temporary work-around: do `MMCV_WITH_OPS=1 MMCV_CUDA_ARGS='-gencode=arch=compute_80,code=sm_80' pip install -e .`. - The common issue is `nvcc fatal : Unsupported gpu architecture 'compute_86'`. This means that the compiler should optimize for sm_86, i.e., nvidia 30 series card, but such optimizations have not been supported by CUDA toolkit 11.0. - This work-around modifies the compile flag by adding `MMCV_CUDA_ARGS='-gencode=arch=compute_80,code=sm_80'`, which tells `nvcc` to optimize for **sm_80**, i.e., Nvidia A100. Although A100 is different from the 30 series card, they use similar ampere architecture. This may hurt the performance but it works. - 2. PyTorch developers have updated that the default compiler flags should be fixed by [pytorch/pytorch#47585](https://github.com/pytorch/pytorch/pull/47585). So using PyTorch-nightly may also be able to solve the problem, though we have not tested it yet. - -- "invalid device function" or "no kernel image is available for execution". - - 1. Check if your cuda runtime version (under `/usr/local/`), `nvcc --version` and `conda list cudatoolkit` version match. - 2. Run `python mmdet/utils/collect_env.py` to check whether PyTorch, torchvision, and MMCV are built for the correct GPU architecture. - You may need to set `TORCH_CUDA_ARCH_LIST` to reinstall MMCV. - The GPU arch table could be found [here](https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html#gpu-feature-list), - i.e. run `TORCH_CUDA_ARCH_LIST=7.0 pip install mmcv` to build MMCV for Volta GPUs. - The compatibility issue could happen when using old GPUS, e.g., Tesla K80 (3.7) on colab. - 3. Check whether the running environment is the same as that when mmcv/mmdet has compiled. - For example, you may compile mmcv using CUDA 10.0 but run it on CUDA 9.0 environments. - -- "undefined symbol" or "cannot open xxx.so". - - 1. If those symbols are CUDA/C++ symbols (e.g., libcudart.so or GLIBCXX), check whether the CUDA/GCC runtimes are the same as those used for compiling mmcv, - i.e. run `python mmdet/utils/collect_env.py` to see if `"MMCV Compiler"`/`"MMCV CUDA Compiler"` is the same as `"GCC"`/`"CUDA_HOME"`. - 2. If those symbols are PyTorch symbols (e.g., symbols containing caffe, aten, and TH), check whether the PyTorch version is the same as that used for compiling mmcv. - 3. Run `python mmdet/utils/collect_env.py` to check whether PyTorch, torchvision, and MMCV are built by and running on the same environment. - -- setuptools.sandbox.UnpickleableException: DistutilsSetupError("each element of 'ext_modules' option must be an Extension instance or 2-tuple") - - 1. If you are using miniconda rather than anaconda, check whether Cython is installed as indicated in [#3379](https://github.com/open-mmlab/mmdetection/issues/3379). - You need to manually install Cython first and then run command `pip install -r requirements.txt`. - 2. You may also need to check the compatibility between the `setuptools`, `Cython`, and `PyTorch` in your environment. - -- "Segmentation fault". - - 1. Check you GCC version and use GCC 5.4. This usually caused by the incompatibility between PyTorch and the environment (e.g., GCC \< 4.9 for PyTorch). We also recommend the users to avoid using GCC 5.5 because many feedbacks report that GCC 5.5 will cause "segmentation fault" and simply changing it to GCC 5.4 could solve the problem. - - 2. Check whether PyTorch is correctly installed and could use CUDA op, e.g. type the following command in your terminal. - - ```shell - python -c 'import torch; print(torch.cuda.is_available())' - ``` - - And see whether they could correctly output results. - - 3. If Pytorch is correctly installed, check whether MMCV is correctly installed. - - ```shell - python -c 'import mmcv; import mmcv.ops' - ``` - - If MMCV is correctly installed, then there will be no issue of the above two commands. - - 4. If MMCV and Pytorch is correctly installed, you man use `ipdb`, `pdb` to set breakpoints or directly add 'print' in mmdetection code and see which part leads the segmentation fault. - -## Training - -- "Loss goes Nan" - - 1. Check if the dataset annotations are valid: zero-size bounding boxes will cause the regression loss to be Nan due to the commonly used transformation for box regression. Some small size (width or height are smaller than 1) boxes will also cause this problem after data augmentation (e.g., instaboost). So check the data and try to filter out those zero-size boxes and skip some risky augmentations on the small-size boxes when you face the problem. - 2. Reduce the learning rate: the learning rate might be too large due to some reasons, e.g., change of batch size. You can rescale them to the value that could stably train the model. - 3. Extend the warmup iterations: some models are sensitive to the learning rate at the start of the training. You can extend the warmup iterations, e.g., change the `warmup_iters` from 500 to 1000 or 2000. - 4. Add gradient clipping: some models requires gradient clipping to stabilize the training process. The default of `grad_clip` is `None`, you can add gradient clippint to avoid gradients that are too large, i.e., set `optim_wrapper=dict(clip_grad=dict(max_norm=35, norm_type=2))` in your config file. - -- "GPU out of memory" - - 1. There are some scenarios when there are large amount of ground truth boxes, which may cause OOM during target assignment. You can set `gpu_assign_thr=N` in the config of assigner thus the assigner will calculate box overlaps through CPU when there are more than N GT boxes. - - 2. Set `with_cp=True` in the backbone. This uses the sublinear strategy in PyTorch to reduce GPU memory cost in the backbone. - - 3. Try mixed precision training using following the examples in `config/fp16`. The `loss_scale` might need further tuning for different models. - - 4. Try to use `AvoidCUDAOOM` to avoid GPU out of memory. It will first retry after calling `torch.cuda.empty_cache()`. If it still fails, it will then retry by converting the type of inputs to FP16 format. If it still fails, it will try to copy inputs from GPUs to CPUs to continue computing. Try AvoidOOM in you code to make the code continue to run when GPU memory runs out: - - ```python - from mmdet.utils import AvoidCUDAOOM - - output = AvoidCUDAOOM.retry_if_cuda_oom(some_function)(input1, input2) - ``` - - You can also try `AvoidCUDAOOM` as a decorator to make the code continue to run when GPU memory runs out: - - ```python - from mmdet.utils import AvoidCUDAOOM - - @AvoidCUDAOOM.retry_if_cuda_oom - def function(*args, **kwargs): - ... - return xxx - ``` - -- "RuntimeError: Expected to have finished reduction in the prior iteration before starting a new one" - - 1. This error indicates that your module has parameters that were not used in producing loss. This phenomenon may be caused by running different branches in your code in DDP mode. - 2. You can set `find_unused_parameters = True` in the config to solve the above problems, but this will slow down the training speed. - 3. You can set `detect_anomalous_params = True` in the config or `model_wrapper_cfg = dict(type='MMDistributedDataParallel', detect_anomalous_params=True)` (More details please refer to [MMEngine](https://github.com/open-mmlab/mmengine/blob/main/mmengine/model/wrappers/distributed.py#L91)) to get the name of those unused parameters. Note `detect_anomalous_params = True` will slow down the training speed, so it is recommended for debugging only. - -- Save the best model - - It can be turned on by configuring `default_hooks = dict(checkpoint=dict(type='CheckpointHook', interval=1, save_best='auto'),`. In the case of the `auto` parameter, the first key in the returned evaluation result will be used as the basis for selecting the best model. You can also directly set the key in the evaluation result to manually set it, for example, `save_best='coco/bbox_mAP'`. - -## Evaluation - -- COCO Dataset, AP or AR = -1 - 1. According to the definition of COCO dataset, the small and medium areas in an image are less than 1024 (32\*32), 9216 (96\*96), respectively. - 2. If the corresponding area has no object, the result of AP and AR will set to -1. - -## Model - -- `style` in ResNet - - The `style` parameter in ResNet allows either `pytorch` or `caffe` style. It indicates the difference in the Bottleneck module. Bottleneck is a stacking structure of `1x1-3x3-1x1` convolutional layers. In the case of `caffe` mode, the convolution layer with `stride=2` is the first `1x1` convolution, while in `pyorch` mode, it is the second `3x3` convolution has `stride=2`. A sample code is as below: - - ```python - if self.style == 'pytorch': - self.conv1_stride = 1 - self.conv2_stride = stride - else: - self.conv1_stride = stride - self.conv2_stride = 1 - ``` - -- ResNeXt parameter description - - ResNeXt comes from the paper [`Aggregated Residual Transformations for Deep Neural Networks`](https://arxiv.org/abs/1611.05431). It introduces group and uses “cardinality” to control the number of groups to achieve a balance between accuracy and complexity. It controls the basic width and grouping parameters of the internal Bottleneck module through two hyperparameters `baseWidth` and `cardinality`. An example configuration name in MMDetection is `mask_rcnn_x101_64x4d_fpn_mstrain-poly_3x_coco.py`, where `mask_rcnn` represents the algorithm using Mask R-CNN, `x101` represents the backbone network using ResNeXt-101, and `64x4d` represents that the bottleneck block has 64 group and each group has basic width of 4. - -- `norm_eval` in backbone - - Since the detection model is usually large and the input image resolution is high, this will result in a small batch of the detection model, which will make the variance of the statistics calculated by BatchNorm during the training process very large and not as stable as the statistics obtained during the pre-training of the backbone network . Therefore, the `norm_eval=True` mode is generally used in training, and the BatchNorm statistics in the pre-trained backbone network are directly used. The few algorithms that use large batches are the `norm_eval=False` mode, such as NASFPN. For the backbone network without ImageNet pre-training and the batch is relatively small, you can consider using `SyncBN`. diff --git a/docs/en/notes/projects.md b/docs/en/notes/projects.md deleted file mode 100644 index 3123e2b020e..00000000000 --- a/docs/en/notes/projects.md +++ /dev/null @@ -1,57 +0,0 @@ -# Projects based on MMDetection - -There are many projects built upon MMDetection. -We list some of them as examples of how to extend MMDetection for your own projects. -As the page might not be completed, please feel free to create a PR to update this page. - -## Projects as an extension - -Some projects extend the boundary of MMDetection for deployment or other research fields. -They reveal the potential of what MMDetection can do. We list several of them as below. - -- [OTEDetection](https://github.com/opencv/mmdetection): OpenVINO training extensions for object detection. -- [MMDetection3d](https://github.com/open-mmlab/mmdetection3d): OpenMMLab's next-generation platform for general 3D object detection. - -## Projects of papers - -There are also projects released with papers. -Some of the papers are published in top-tier conferences (CVPR, ICCV, and ECCV), the others are also highly influential. -To make this list also a reference for the community to develop and compare new object detection algorithms, we list them following the time order of top-tier conferences. -Methods already supported and maintained by MMDetection are not listed. - -- Involution: Inverting the Inherence of Convolution for Visual Recognition, CVPR21. [\[paper\]](https://arxiv.org/abs/2103.06255)[\[github\]](https://github.com/d-li14/involution) -- Multiple Instance Active Learning for Object Detection, CVPR 2021. [\[paper\]](https://openaccess.thecvf.com/content/CVPR2021/papers/Yuan_Multiple_Instance_Active_Learning_for_Object_Detection_CVPR_2021_paper.pdf)[\[github\]](https://github.com/yuantn/MI-AOD) -- Adaptive Class Suppression Loss for Long-Tail Object Detection, CVPR 2021. [\[paper\]](https://arxiv.org/abs/2104.00885)[\[github\]](https://github.com/CASIA-IVA-Lab/ACSL) -- Generalizable Pedestrian Detection: The Elephant In The Room, CVPR2021. [\[paper\]](https://arxiv.org/abs/2003.08799)[\[github\]](https://github.com/hasanirtiza/Pedestron) -- Group Fisher Pruning for Practical Network Compression, ICML2021. [\[paper\]](https://github.com/jshilong/FisherPruning/blob/main/resources/paper.pdf)[\[github\]](https://github.com/jshilong/FisherPruning) -- Overcoming Classifier Imbalance for Long-tail Object Detection with Balanced Group Softmax, CVPR2020. [\[paper\]](http://openaccess.thecvf.com/content_CVPR_2020/papers/Li_Overcoming_Classifier_Imbalance_for_Long-Tail_Object_Detection_With_Balanced_Group_CVPR_2020_paper.pdf)[\[github\]](https://github.com/FishYuLi/BalancedGroupSoftmax) -- Coherent Reconstruction of Multiple Humans from a Single Image, CVPR2020. [\[paper\]](https://jiangwenpl.github.io/multiperson/)[\[github\]](https://github.com/JiangWenPL/multiperson) -- Look-into-Object: Self-supervised Structure Modeling for Object Recognition, CVPR 2020. [\[paper\]](http://openaccess.thecvf.com/content_CVPR_2020/papers/Zhou_Look-Into-Object_Self-Supervised_Structure_Modeling_for_Object_Recognition_CVPR_2020_paper.pdf)[\[github\]](https://github.com/JDAI-CV/LIO) -- Video Panoptic Segmentation, CVPR2020. [\[paper\]](https://arxiv.org/abs/2006.11339)[\[github\]](https://github.com/mcahny/vps) -- D2Det: Towards High Quality Object Detection and Instance Segmentation, CVPR2020. [\[paper\]](http://openaccess.thecvf.com/content_CVPR_2020/html/Cao_D2Det_Towards_High_Quality_Object_Detection_and_Instance_Segmentation_CVPR_2020_paper.html)[\[github\]](https://github.com/JialeCao001/D2Det) -- CentripetalNet: Pursuing High-quality Keypoint Pairs for Object Detection, CVPR2020. [\[paper\]](https://arxiv.org/abs/2003.09119)[\[github\]](https://github.com/KiveeDong/CentripetalNet) -- Learning a Unified Sample Weighting Network for Object Detection, CVPR 2020. [\[paper\]](http://openaccess.thecvf.com/content_CVPR_2020/html/Cai_Learning_a_Unified_Sample_Weighting_Network_for_Object_Detection_CVPR_2020_paper.html)[\[github\]](https://github.com/caiqi/sample-weighting-network) -- Scale-equalizing Pyramid Convolution for Object Detection, CVPR2020. [\[paper\]](https://arxiv.org/abs/2005.03101) [\[github\]](https://github.com/jshilong/SEPC) -- Revisiting the Sibling Head in Object Detector, CVPR2020. [\[paper\]](https://arxiv.org/abs/2003.07540)[\[github\]](https://github.com/Sense-X/TSD) -- PolarMask: Single Shot Instance Segmentation with Polar Representation, CVPR2020. [\[paper\]](https://arxiv.org/abs/1909.13226)[\[github\]](https://github.com/xieenze/PolarMask) -- Hit-Detector: Hierarchical Trinity Architecture Search for Object Detection, CVPR2020. [\[paper\]](https://arxiv.org/abs/2003.11818)[\[github\]](https://github.com/ggjy/HitDet.pytorch) -- ZeroQ: A Novel Zero Shot Quantization Framework, CVPR2020. [\[paper\]](https://arxiv.org/abs/2001.00281)[\[github\]](https://github.com/amirgholami/ZeroQ) -- CBNet: A Novel Composite Backbone Network Architecture for Object Detection, AAAI2020. [\[paper\]](https://aaai.org/Papers/AAAI/2020GB/AAAI-LiuY.1833.pdf)[\[github\]](https://github.com/VDIGPKU/CBNet) -- RDSNet: A New Deep Architecture for Reciprocal Object Detection and Instance Segmentation, AAAI2020. [\[paper\]](https://arxiv.org/abs/1912.05070)[\[github\]](https://github.com/wangsr126/RDSNet) -- Training-Time-Friendly Network for Real-Time Object Detection, AAAI2020. [\[paper\]](https://arxiv.org/abs/1909.00700)[\[github\]](https://github.com/ZJULearning/ttfnet) -- Cascade RPN: Delving into High-Quality Region Proposal Network with Adaptive Convolution, NeurIPS 2019. [\[paper\]](https://arxiv.org/abs/1909.06720)[\[github\]](https://github.com/thangvubk/Cascade-RPN) -- Reasoning R-CNN: Unifying Adaptive Global Reasoning into Large-scale Object Detection, CVPR2019. [\[paper\]](http://openaccess.thecvf.com/content_CVPR_2019/papers/Xu_Reasoning-RCNN_Unifying_Adaptive_Global_Reasoning_Into_Large-Scale_Object_Detection_CVPR_2019_paper.pdf)[\[github\]](https://github.com/chanyn/Reasoning-RCNN) -- Learning RoI Transformer for Oriented Object Detection in Aerial Images, CVPR2019. [\[paper\]](https://arxiv.org/abs/1812.00155)[\[github\]](https://github.com/dingjiansw101/AerialDetection) -- SOLO: Segmenting Objects by Locations. [\[paper\]](https://arxiv.org/abs/1912.04488)[\[github\]](https://github.com/WXinlong/SOLO) -- SOLOv2: Dynamic, Faster and Stronger. [\[paper\]](https://arxiv.org/abs/2003.10152)[\[github\]](https://github.com/WXinlong/SOLO) -- Dense Peppoints: Representing Visual Objects with Dense Point Sets. [\[paper\]](https://arxiv.org/abs/1912.11473)[\[github\]](https://github.com/justimyhxu/Dense-RepPoints) -- IterDet: Iterative Scheme for Object Detection in Crowded Environments. [\[paper\]](https://arxiv.org/abs/2005.05708)[\[github\]](https://github.com/saic-vul/iterdet) -- Cross-Iteration Batch Normalization. [\[paper\]](https://arxiv.org/abs/2002.05712)[\[github\]](https://github.com/Howal/Cross-iterationBatchNorm) -- A Ranking-based, Balanced Loss Function Unifying Classification and Localisation in Object Detection, NeurIPS2020 [\[paper\]](https://arxiv.org/abs/2009.13592)[\[github\]](https://github.com/kemaloksuz/aLRPLoss) -- RelationNet++: Bridging Visual Representations for Object Detection via Transformer Decoder, NeurIPS2020 [\[paper\]](https://arxiv.org/abs/2010.15831)[\[github\]](https://github.com/microsoft/RelationNet2) -- Generalized Focal Loss V2: Learning Reliable Localization Quality Estimation for Dense Object Detection, CVPR2021[\[paper\]](https://arxiv.org/abs/2011.12885)[\[github\]](https://github.com/implus/GFocalV2) -- Swin Transformer: Hierarchical Vision Transformer using Shifted Windows, ICCV2021[\[paper\]](https://arxiv.org/abs/2103.14030)[\[github\]](https://github.com/SwinTransformer/) -- Focal Transformer: Focal Self-attention for Local-Global Interactions in Vision Transformers, NeurIPS2021[\[paper\]](https://arxiv.org/abs/2107.00641)[\[github\]](https://github.com/microsoft/Focal-Transformer) -- End-to-End Semi-Supervised Object Detection with Soft Teacher, ICCV2021[\[paper\]](https://arxiv.org/abs/2106.09018)[\[github\]](https://github.com/microsoft/SoftTeacher) -- CBNetV2: A Novel Composite Backbone Network Architecture for Object Detection [\[paper\]](http://arxiv.org/abs/2107.00420)[\[github\]](https://github.com/VDIGPKU/CBNetV2) -- Instances as Queries, ICCV2021 [\[paper\]](https://openaccess.thecvf.com/content/ICCV2021/papers/Fang_Instances_As_Queries_ICCV_2021_paper.pdf)[\[github\]](https://github.com/hustvl/QueryInst) diff --git a/docs/en/overview.md b/docs/en/overview.md deleted file mode 100644 index 7c7d96b7087..00000000000 --- a/docs/en/overview.md +++ /dev/null @@ -1,54 +0,0 @@ -# OVERVIEW - -This chapter introduces you to the framework of MMDetection, and provides links to detailed tutorials about MMDetection. - -## What is MMDetection - -![image](https://user-images.githubusercontent.com/12907710/137271636-56ba1cd2-b110-4812-8221-b4c120320aa9.png) - -MMDetection is an object detection toolbox that contains a rich set of object detection, instance segmentation, and panoptic segmentation methods as well as related components and modules, and below is its whole framework: - -MMDetection consists of 7 main parts, apis, structures, datasets, models, engine, evaluation and visualization. - -- **apis** provides high-level APIs for model inference. -- **structures** provides data structures like bbox, mask, and DetDataSample. -- **datasets** supports various dataset for object detection, instance segmentation, and panoptic segmentation. - - **transforms** contains a lot of useful data augmentation transforms. - - **samplers** defines different data loader sampling strategy. -- **models** is the most vital part for detectors and contains different components of a detector. - - **detectors** defines all of the detection model classes. - - **data_preprocessors** is for preprocessing the input data of the model. - - **backbones** contains various backbone networks. - - **necks** contains various neck components. - - **dense_heads** contains various detection heads that perform dense predictions. - - **roi_heads** contains various detection heads that predict from RoIs. - - **seg_heads** contains various segmentation heads. - - **losses** contains various loss functions. - - **task_modules** provides modules for detection tasks. E.g. assigners, samplers, box coders, and prior generators. - - **layers** provides some basic neural network layers. -- **engine** is a part for runtime components. - - **runner** provides extensions for [MMEngine's runner](https://mmengine.readthedocs.io/en/latest/tutorials/runner.html). - - **schedulers** provides schedulers for adjusting optimization hyperparameters. - - **optimizers** provides optimizers and optimizer wrappers. - - **hooks** provides various hooks of the runner. -- **evaluation** provides different metrics for evaluating model performance. -- **visualization** is for visualizing detection results. - -## How to Use this Guide - -Here is a detailed step-by-step guide to learn more about MMDetection: - -1. For installation instructions, please see [get_started](get_started.md). - -2. Refer to the below tutorials for the basic usage of MMDetection. - - - [Train and Test](https://mmdetection.readthedocs.io/en/latest/user_guides/index.html#train-test) - - - [Useful Tools](https://mmdetection.readthedocs.io/en/latest/user_guides/index.html#useful-tools) - -3. Refer to the below tutorials to dive deeper: - - - [Basic Concepts](https://mmdetection.readthedocs.io/en/latest/advanced_guides/index.html#basic-concepts) - - [Component Customization](https://mmdetection.readthedocs.io/en/latest/advanced_guides/index.html#component-customization) - -4. For users of MMDetection 2.x version, we provide a guide to help you adapt to the new version. You can find it in the [migration guide](./migration/migration.md). diff --git a/docs/en/stat.py b/docs/en/stat.py deleted file mode 100755 index f0589e337e0..00000000000 --- a/docs/en/stat.py +++ /dev/null @@ -1,64 +0,0 @@ -#!/usr/bin/env python -import functools as func -import glob -import os.path as osp -import re - -import numpy as np - -url_prefix = 'https://github.com/open-mmlab/mmdetection/blob/main/configs' - -files = sorted(glob.glob('../../configs/*/README.md')) - -stats = [] -titles = [] -num_ckpts = 0 - -for f in files: - url = osp.dirname(f.replace('../../configs', url_prefix)) - - with open(f, 'r') as content_file: - content = content_file.read() - - title = content.split('\n')[0].replace('# ', '').strip() - ckpts = set(x.lower().strip() - for x in re.findall(r'\[model\]\((https?.*)\)', content)) - - if len(ckpts) == 0: - continue - - _papertype = [x for x in re.findall(r'\[([A-Z]+)\]', content)] - assert len(_papertype) > 0 - papertype = _papertype[0] - - paper = set([(papertype, title)]) - - titles.append(title) - num_ckpts += len(ckpts) - - statsmsg = f""" -\t* [{papertype}] [{title}]({url}) ({len(ckpts)} ckpts) -""" - stats.append((paper, ckpts, statsmsg)) - -allpapers = func.reduce(lambda a, b: a.union(b), [p for p, _, _ in stats]) -msglist = '\n'.join(x for _, _, x in stats) - -papertypes, papercounts = np.unique([t for t, _ in allpapers], - return_counts=True) -countstr = '\n'.join( - [f' - {t}: {c}' for t, c in zip(papertypes, papercounts)]) - -modelzoo = f""" -# Model Zoo Statistics - -* Number of papers: {len(set(titles))} -{countstr} - -* Number of checkpoints: {num_ckpts} - -{msglist} -""" - -with open('modelzoo_statistics.md', 'w') as f: - f.write(modelzoo) diff --git a/docs/en/switch_language.md b/docs/en/switch_language.md deleted file mode 100644 index b2c4ad9db39..00000000000 --- a/docs/en/switch_language.md +++ /dev/null @@ -1,3 +0,0 @@ -##
    English - -## 简体中文 diff --git a/docs/en/user_guides/config.md b/docs/en/user_guides/config.md deleted file mode 100644 index 69bd91194e0..00000000000 --- a/docs/en/user_guides/config.md +++ /dev/null @@ -1,612 +0,0 @@ -# Learn about Configs - -MMDetection and other OpenMMLab repositories use [MMEngine's config system](https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html). It has a modular and inheritance design, which is convenient to conduct various experiments. - -## Config file content - -MMDetection uses a modular design, all modules with different functions can be configured through the config. Taking Mask R-CNN as an example, we will introduce each field in the config according to different function modules: - -### Model config - -In MMDetection's config, we use `model` to set up detection algorithm components. In addition to neural network components such as `backbone`, `neck`, etc, it also requires `data_preprocessor`, `train_cfg`, and `test_cfg`. `data_preprocessor` is responsible for processing a batch of data output by dataloader. `train_cfg`, and `test_cfg` in the model config are for training and testing hyperparameters of the components. - -```python -model = dict( - type='MaskRCNN', # The name of detector - data_preprocessor=dict( # The config of data preprocessor, usually includes image normalization and padding - type='DetDataPreprocessor', # The type of the data preprocessor, refer to https://mmdetection.readthedocs.io/en/latest/api.html#mmdet.models.data_preprocessors.DetDataPreprocessor - mean=[123.675, 116.28, 103.53], # Mean values used to pre-training the pre-trained backbone models, ordered in R, G, B - std=[58.395, 57.12, 57.375], # Standard variance used to pre-training the pre-trained backbone models, ordered in R, G, B - bgr_to_rgb=True, # whether to convert image from BGR to RGB - pad_mask=True, # whether to pad instance masks - pad_size_divisor=32), # The size of padded image should be divisible by ``pad_size_divisor`` - backbone=dict( # The config of backbone - type='ResNet', # The type of backbone network. Refer to https://mmdetection.readthedocs.io/en/latest/api.html#mmdet.models.backbones.ResNet - depth=50, # The depth of backbone, usually it is 50 or 101 for ResNet and ResNext backbones. - num_stages=4, # Number of stages of the backbone. - out_indices=(0, 1, 2, 3), # The index of output feature maps produced in each stage - frozen_stages=1, # The weights in the first stage are frozen - norm_cfg=dict( # The config of normalization layers. - type='BN', # Type of norm layer, usually it is BN or GN - requires_grad=True), # Whether to train the gamma and beta in BN - norm_eval=True, # Whether to freeze the statistics in BN - style='pytorch', # The style of backbone, 'pytorch' means that stride 2 layers are in 3x3 Conv, 'caffe' means stride 2 layers are in 1x1 Convs. - init_cfg=dict(type='Pretrained', checkpoint='torchvision://resnet50')), # The ImageNet pretrained backbone to be loaded - neck=dict( - type='FPN', # The neck of detector is FPN. We also support 'NASFPN', 'PAFPN', etc. Refer to https://mmdetection.readthedocs.io/en/latest/api.html#mmdet.models.necks.FPN for more details. - in_channels=[256, 512, 1024, 2048], # The input channels, this is consistent with the output channels of backbone - out_channels=256, # The output channels of each level of the pyramid feature map - num_outs=5), # The number of output scales - rpn_head=dict( - type='RPNHead', # The type of RPN head is 'RPNHead', we also support 'GARPNHead', etc. Refer to https://mmdetection.readthedocs.io/en/latest/api.html#mmdet.models.dense_heads.RPNHead for more details. - in_channels=256, # The input channels of each input feature map, this is consistent with the output channels of neck - feat_channels=256, # Feature channels of convolutional layers in the head. - anchor_generator=dict( # The config of anchor generator - type='AnchorGenerator', # Most of methods use AnchorGenerator, SSD Detectors uses `SSDAnchorGenerator`. Refer to https://github.com/open-mmlab/mmdetection/blob/main/mmdet/models/task_modules/prior_generators/anchor_generator.py#L18 for more details - scales=[8], # Basic scale of the anchor, the area of the anchor in one position of a feature map will be scale * base_sizes - ratios=[0.5, 1.0, 2.0], # The ratio between height and width. - strides=[4, 8, 16, 32, 64]), # The strides of the anchor generator. This is consistent with the FPN feature strides. The strides will be taken as base_sizes if base_sizes is not set. - bbox_coder=dict( # Config of box coder to encode and decode the boxes during training and testing - type='DeltaXYWHBBoxCoder', # Type of box coder. 'DeltaXYWHBBoxCoder' is applied for most of the methods. Refer to https://github.com/open-mmlab/mmdetection/blob/main/mmdet/models/task_modules/coders/delta_xywh_bbox_coder.py#L13 for more details. - target_means=[0.0, 0.0, 0.0, 0.0], # The target means used to encode and decode boxes - target_stds=[1.0, 1.0, 1.0, 1.0]), # The standard variance used to encode and decode boxes - loss_cls=dict( # Config of loss function for the classification branch - type='CrossEntropyLoss', # Type of loss for classification branch, we also support FocalLoss etc. Refer to https://github.com/open-mmlab/mmdetection/blob/main/mmdet/models/losses/cross_entropy_loss.py#L201 for more details - use_sigmoid=True, # RPN usually performs two-class classification, so it usually uses the sigmoid function. - loss_weight=1.0), # Loss weight of the classification branch. - loss_bbox=dict( # Config of loss function for the regression branch. - type='L1Loss', # Type of loss, we also support many IoU Losses and smooth L1-loss, etc. Refer to https://github.com/open-mmlab/mmdetection/blob/main/mmdet/models/losses/smooth_l1_loss.py#L56 for implementation. - loss_weight=1.0)), # Loss weight of the regression branch. - roi_head=dict( # RoIHead encapsulates the second stage of two-stage/cascade detectors. - type='StandardRoIHead', - bbox_roi_extractor=dict( # RoI feature extractor for bbox regression. - type='SingleRoIExtractor', # Type of the RoI feature extractor, most of methods uses SingleRoIExtractor. Refer to https://github.com/open-mmlab/mmdetection/blob/main/mmdet/models/roi_heads/roi_extractors/single_level_roi_extractor.py#L13 for details. - roi_layer=dict( # Config of RoI Layer - type='RoIAlign', # Type of RoI Layer, DeformRoIPoolingPack and ModulatedDeformRoIPoolingPack are also supported. Refer to https://mmcv.readthedocs.io/en/latest/api.html#mmcv.ops.RoIAlign for details. - output_size=7, # The output size of feature maps. - sampling_ratio=0), # Sampling ratio when extracting the RoI features. 0 means adaptive ratio. - out_channels=256, # output channels of the extracted feature. - featmap_strides=[4, 8, 16, 32]), # Strides of multi-scale feature maps. It should be consistent with the architecture of the backbone. - bbox_head=dict( # Config of box head in the RoIHead. - type='Shared2FCBBoxHead', # Type of the bbox head, Refer to https://github.com/open-mmlab/mmdetection/blob/main/mmdet/models/roi_heads/bbox_heads/convfc_bbox_head.py#L220 for implementation details. - in_channels=256, # Input channels for bbox head. This is consistent with the out_channels in roi_extractor - fc_out_channels=1024, # Output feature channels of FC layers. - roi_feat_size=7, # Size of RoI features - num_classes=80, # Number of classes for classification - bbox_coder=dict( # Box coder used in the second stage. - type='DeltaXYWHBBoxCoder', # Type of box coder. 'DeltaXYWHBBoxCoder' is applied for most of the methods. - target_means=[0.0, 0.0, 0.0, 0.0], # Means used to encode and decode box - target_stds=[0.1, 0.1, 0.2, 0.2]), # Standard variance for encoding and decoding. It is smaller since the boxes are more accurate. [0.1, 0.1, 0.2, 0.2] is a conventional setting. - reg_class_agnostic=False, # Whether the regression is class agnostic. - loss_cls=dict( # Config of loss function for the classification branch - type='CrossEntropyLoss', # Type of loss for classification branch, we also support FocalLoss etc. - use_sigmoid=False, # Whether to use sigmoid. - loss_weight=1.0), # Loss weight of the classification branch. - loss_bbox=dict( # Config of loss function for the regression branch. - type='L1Loss', # Type of loss, we also support many IoU Losses and smooth L1-loss, etc. - loss_weight=1.0)), # Loss weight of the regression branch. - mask_roi_extractor=dict( # RoI feature extractor for mask generation. - type='SingleRoIExtractor', # Type of the RoI feature extractor, most of methods uses SingleRoIExtractor. - roi_layer=dict( # Config of RoI Layer that extracts features for instance segmentation - type='RoIAlign', # Type of RoI Layer, DeformRoIPoolingPack and ModulatedDeformRoIPoolingPack are also supported - output_size=14, # The output size of feature maps. - sampling_ratio=0), # Sampling ratio when extracting the RoI features. - out_channels=256, # Output channels of the extracted feature. - featmap_strides=[4, 8, 16, 32]), # Strides of multi-scale feature maps. - mask_head=dict( # Mask prediction head - type='FCNMaskHead', # Type of mask head, refer to https://mmdetection.readthedocs.io/en/latest/api.html#mmdet.models.roi_heads.FCNMaskHead for implementation details. - num_convs=4, # Number of convolutional layers in mask head. - in_channels=256, # Input channels, should be consistent with the output channels of mask roi extractor. - conv_out_channels=256, # Output channels of the convolutional layer. - num_classes=80, # Number of class to be segmented. - loss_mask=dict( # Config of loss function for the mask branch. - type='CrossEntropyLoss', # Type of loss used for segmentation - use_mask=True, # Whether to only train the mask in the correct class. - loss_weight=1.0))), # Loss weight of mask branch. - train_cfg = dict( # Config of training hyperparameters for rpn and rcnn - rpn=dict( # Training config of rpn - assigner=dict( # Config of assigner - type='MaxIoUAssigner', # Type of assigner, MaxIoUAssigner is used for many common detectors. Refer to https://github.com/open-mmlab/mmdetection/blob/main/mmdet/models/task_modules/assigners/max_iou_assigner.py#L14 for more details. - pos_iou_thr=0.7, # IoU >= threshold 0.7 will be taken as positive samples - neg_iou_thr=0.3, # IoU < threshold 0.3 will be taken as negative samples - min_pos_iou=0.3, # The minimal IoU threshold to take boxes as positive samples - match_low_quality=True, # Whether to match the boxes under low quality (see API doc for more details). - ignore_iof_thr=-1), # IoF threshold for ignoring bboxes - sampler=dict( # Config of positive/negative sampler - type='RandomSampler', # Type of sampler, PseudoSampler and other samplers are also supported. Refer to https://github.com/open-mmlab/mmdetection/blob/main/mmdet/models/task_modules/samplers/random_sampler.py#L14 for implementation details. - num=256, # Number of samples - pos_fraction=0.5, # The ratio of positive samples in the total samples. - neg_pos_ub=-1, # The upper bound of negative samples based on the number of positive samples. - add_gt_as_proposals=False), # Whether add GT as proposals after sampling. - allowed_border=-1, # The border allowed after padding for valid anchors. - pos_weight=-1, # The weight of positive samples during training. - debug=False), # Whether to set the debug mode - rpn_proposal=dict( # The config to generate proposals during training - nms_across_levels=False, # Whether to do NMS for boxes across levels. Only work in `GARPNHead`, naive rpn does not support do nms cross levels. - nms_pre=2000, # The number of boxes before NMS - nms_post=1000, # The number of boxes to be kept by NMS. Only work in `GARPNHead`. - max_per_img=1000, # The number of boxes to be kept after NMS. - nms=dict( # Config of NMS - type='nms', # Type of NMS - iou_threshold=0.7 # NMS threshold - ), - min_bbox_size=0), # The allowed minimal box size - rcnn=dict( # The config for the roi heads. - assigner=dict( # Config of assigner for second stage, this is different for that in rpn - type='MaxIoUAssigner', # Type of assigner, MaxIoUAssigner is used for all roi_heads for now. Refer to https://github.com/open-mmlab/mmdetection/blob/main/mmdet/models/task_modules/assigners/max_iou_assigner.py#L14 for more details. - pos_iou_thr=0.5, # IoU >= threshold 0.5 will be taken as positive samples - neg_iou_thr=0.5, # IoU < threshold 0.5 will be taken as negative samples - min_pos_iou=0.5, # The minimal IoU threshold to take boxes as positive samples - match_low_quality=False, # Whether to match the boxes under low quality (see API doc for more details). - ignore_iof_thr=-1), # IoF threshold for ignoring bboxes - sampler=dict( - type='RandomSampler', # Type of sampler, PseudoSampler and other samplers are also supported. Refer to https://github.com/open-mmlab/mmdetection/blob/main/mmdet/models/task_modules/samplers/random_sampler.py#L14 for implementation details. - num=512, # Number of samples - pos_fraction=0.25, # The ratio of positive samples in the total samples. - neg_pos_ub=-1, # The upper bound of negative samples based on the number of positive samples. - add_gt_as_proposals=True - ), # Whether add GT as proposals after sampling. - mask_size=28, # Size of mask - pos_weight=-1, # The weight of positive samples during training. - debug=False)), # Whether to set the debug mode - test_cfg = dict( # Config for testing hyperparameters for rpn and rcnn - rpn=dict( # The config to generate proposals during testing - nms_across_levels=False, # Whether to do NMS for boxes across levels. Only work in `GARPNHead`, naive rpn does not support do nms cross levels. - nms_pre=1000, # The number of boxes before NMS - nms_post=1000, # The number of boxes to be kept by NMS. Only work in `GARPNHead`. - max_per_img=1000, # The number of boxes to be kept after NMS. - nms=dict( # Config of NMS - type='nms', #Type of NMS - iou_threshold=0.7 # NMS threshold - ), - min_bbox_size=0), # The allowed minimal box size - rcnn=dict( # The config for the roi heads. - score_thr=0.05, # Threshold to filter out boxes - nms=dict( # Config of NMS in the second stage - type='nms', # Type of NMS - iou_thr=0.5), # NMS threshold - max_per_img=100, # Max number of detections of each image - mask_thr_binary=0.5))) # Threshold of mask prediction -``` - -### Dataset and evaluator config - -[Dataloaders](https://mmengine.readthedocs.io/en/latest/tutorials/dataset.html) are required for the training, validation, and testing of the [runner](https://mmengine.readthedocs.io/en/latest/tutorials/runner.html). Dataset and data pipeline need to be set to build the dataloader. Due to the complexity of this part, we use intermediate variables to simplify the writing of dataloader configs. - -```python -dataset_type = 'CocoDataset' # Dataset type, this will be used to define the dataset -data_root = 'data/coco/' # Root path of data -backend_args = None # Arguments to instantiate the corresponding file backend - -train_pipeline = [ # Training data processing pipeline - dict(type='LoadImageFromFile', backend_args=backend_args), # First pipeline to load images from file path - dict( - type='LoadAnnotations', # Second pipeline to load annotations for current image - with_bbox=True, # Whether to use bounding box, True for detection - with_mask=True, # Whether to use instance mask, True for instance segmentation - poly2mask=True), # Whether to convert the polygon mask to instance mask, set False for acceleration and to save memory - dict( - type='Resize', # Pipeline that resizes the images and their annotations - scale=(1333, 800), # The largest scale of the images - keep_ratio=True # Whether to keep the ratio between height and width - ), - dict( - type='RandomFlip', # Augmentation pipeline that flips the images and their annotations - prob=0.5), # The probability to flip - dict(type='PackDetInputs') # Pipeline that formats the annotation data and decides which keys in the data should be packed into data_samples -] -test_pipeline = [ # Testing data processing pipeline - dict(type='LoadImageFromFile', backend_args=backend_args), # First pipeline to load images from file path - dict(type='Resize', scale=(1333, 800), keep_ratio=True), # Pipeline that resizes the images - dict( - type='PackDetInputs', # Pipeline that formats the annotation data and decides which keys in the data should be packed into data_samples - meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape', - 'scale_factor')) -] -train_dataloader = dict( # Train dataloader config - batch_size=2, # Batch size of a single GPU - num_workers=2, # Worker to pre-fetch data for each single GPU - persistent_workers=True, # If ``True``, the dataloader will not shut down the worker processes after an epoch end, which can accelerate training speed. - sampler=dict( # training data sampler - type='DefaultSampler', # DefaultSampler which supports both distributed and non-distributed training. Refer to https://mmengine.readthedocs.io/en/latest/api/generated/mmengine.dataset.DefaultSampler.html#mmengine.dataset.DefaultSampler - shuffle=True), # randomly shuffle the training data in each epoch - batch_sampler=dict(type='AspectRatioBatchSampler'), # Batch sampler for grouping images with similar aspect ratio into a same batch. It can reduce GPU memory cost. - dataset=dict( # Train dataset config - type=dataset_type, - data_root=data_root, - ann_file='annotations/instances_train2017.json', # Path of annotation file - data_prefix=dict(img='train2017/'), # Prefix of image path - filter_cfg=dict(filter_empty_gt=True, min_size=32), # Config of filtering images and annotations - pipeline=train_pipeline, - backend_args=backend_args)) -val_dataloader = dict( # Validation dataloader config - batch_size=1, # Batch size of a single GPU. If batch-size > 1, the extra padding area may influence the performance. - num_workers=2, # Worker to pre-fetch data for each single GPU - persistent_workers=True, # If ``True``, the dataloader will not shut down the worker processes after an epoch end, which can accelerate training speed. - drop_last=False, # Whether to drop the last incomplete batch, if the dataset size is not divisible by the batch size - sampler=dict( - type='DefaultSampler', - shuffle=False), # not shuffle during validation and testing - dataset=dict( - type=dataset_type, - data_root=data_root, - ann_file='annotations/instances_val2017.json', - data_prefix=dict(img='val2017/'), - test_mode=True, # Turn on the test mode of the dataset to avoid filtering annotations or images - pipeline=test_pipeline, - backend_args=backend_args)) -test_dataloader = val_dataloader # Testing dataloader config -``` - -[Evaluators](https://mmengine.readthedocs.io/en/latest/tutorials/evaluation.html) are used to compute the metrics of the trained model on the validation and testing datasets. The config of evaluators consists of one or a list of metric configs: - -```python -val_evaluator = dict( # Validation evaluator config - type='CocoMetric', # The coco metric used to evaluate AR, AP, and mAP for detection and instance segmentation - ann_file=data_root + 'annotations/instances_val2017.json', # Annotation file path - metric=['bbox', 'segm'], # Metrics to be evaluated, `bbox` for detection and `segm` for instance segmentation - format_only=False, - backend_args=backend_args) -test_evaluator = val_evaluator # Testing evaluator config -``` - -Since the test dataset has no annotation files, the test_dataloader and test_evaluator config in MMDetection are generally equal to the val's. If you want to save the detection results on the test dataset, you can write the config like this: - -```python -# inference on test dataset and -# format the output results for submission. -test_dataloader = dict( - batch_size=1, - num_workers=2, - persistent_workers=True, - drop_last=False, - sampler=dict(type='DefaultSampler', shuffle=False), - dataset=dict( - type=dataset_type, - data_root=data_root, - ann_file=data_root + 'annotations/image_info_test-dev2017.json', - data_prefix=dict(img='test2017/'), - test_mode=True, - pipeline=test_pipeline)) -test_evaluator = dict( - type='CocoMetric', - ann_file=data_root + 'annotations/image_info_test-dev2017.json', - metric=['bbox', 'segm'], # Metrics to be evaluated - format_only=True, # Only format and save the results to coco json file - outfile_prefix='./work_dirs/coco_detection/test') # The prefix of output json files -``` - -### Training and testing config - -MMEngine's runner uses Loop to control the training, validation, and testing processes. -Users can set the maximum training epochs and validation intervals with these fields. - -```python -train_cfg = dict( - type='EpochBasedTrainLoop', # The training loop type. Refer to https://github.com/open-mmlab/mmengine/blob/main/mmengine/runner/loops.py - max_epochs=12, # Maximum training epochs - val_interval=1) # Validation intervals. Run validation every epoch. -val_cfg = dict(type='ValLoop') # The validation loop type -test_cfg = dict(type='TestLoop') # The testing loop type -``` - -### Optimization config - -`optim_wrapper` is the field to configure optimization-related settings. The optimizer wrapper not only provides the functions of the optimizer, but also supports functions such as gradient clipping, mixed precision training, etc. Find more in [optimizer wrapper tutorial](https://mmengine.readthedocs.io/en/latest/tutorials/optim_wrapper.html). - -```python -optim_wrapper = dict( # Optimizer wrapper config - type='OptimWrapper', # Optimizer wrapper type, switch to AmpOptimWrapper to enable mixed precision training. - optimizer=dict( # Optimizer config. Support all kinds of optimizers in PyTorch. Refer to https://pytorch.org/docs/stable/optim.html#algorithms - type='SGD', # Stochastic gradient descent optimizer - lr=0.02, # The base learning rate - momentum=0.9, # Stochastic gradient descent with momentum - weight_decay=0.0001), # Weight decay of SGD - clip_grad=None, # Gradient clip option. Set None to disable gradient clip. Find usage in https://mmengine.readthedocs.io/en/latest/tutorials/optimizer.html - ) -``` - -`param_scheduler` is a field that configures methods of adjusting optimization hyperparameters such as learning rate and momentum. Users can combine multiple schedulers to create a desired parameter adjustment strategy. Find more in [parameter scheduler tutorial](https://mmengine.readthedocs.io/en/latest/tutorials/param_scheduler.html) and [parameter scheduler API documents](https://mmengine.readthedocs.io/en/latest/api/generated/mmengine.optim._ParamScheduler.html#mmengine.optim._ParamScheduler) - -```python -param_scheduler = [ - # Linear learning rate warm-up scheduler - dict( - type='LinearLR', # Use linear policy to warmup learning rate - start_factor=0.001, # The ratio of the starting learning rate used for warmup - by_epoch=False, # The warmup learning rate is updated by iteration - begin=0, # Start from the first iteration - end=500), # End the warmup at the 500th iteration - # The main LRScheduler - dict( - type='MultiStepLR', # Use multi-step learning rate policy during training - by_epoch=True, # The learning rate is updated by epoch - begin=0, # Start from the first epoch - end=12, # End at the 12th epoch - milestones=[8, 11], # Epochs to decay the learning rate - gamma=0.1) # The learning rate decay ratio -] -``` - -### Hook config - -Users can attach Hooks to training, validation, and testing loops to insert some operations during running. There are two different hook fields, one is `default_hooks` and the other is `custom_hooks`. - -`default_hooks` is a dict of hook configs, and they are the hooks must be required at the runtime. They have default priority which should not be modified. If not set, runner will use the default values. To disable a default hook, users can set its config to `None`. Find more in [HOOK](https://mmengine.readthedocs.io/en/latest/tutorials/hook.html). - -```python -default_hooks = dict( - timer=dict(type='IterTimerHook'), # Update the time spent during iteration into message hub - logger=dict(type='LoggerHook', interval=50), # Collect logs from different components of Runner and write them to terminal, JSON file, tensorboard and wandb .etc - param_scheduler=dict(type='ParamSchedulerHook'), # update some hyper-parameters of optimizer - checkpoint=dict(type='CheckpointHook', interval=1), # Save checkpoints periodically - sampler_seed=dict(type='DistSamplerSeedHook'), # Ensure distributed Sampler shuffle is active - visualization=dict(type='DetVisualizationHook')) # Detection Visualization Hook. Used to visualize validation and testing process prediction results -``` - -`custom_hooks` is a list of all other hook configs. Users can develop their own hooks and insert them in this field. - -```python -custom_hooks = [] -``` - -### Runtime config - -```python -default_scope = 'mmdet' # The default registry scope to find modules. Refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/registry.html - -env_cfg = dict( - cudnn_benchmark=False, # Whether to enable cudnn benchmark - mp_cfg=dict( # Multi-processing config - mp_start_method='fork', # Use fork to start multi-processing threads. 'fork' usually faster than 'spawn' but maybe unsafe. See discussion in https://github.com/pytorch/pytorch/issues/1355 - opencv_num_threads=0), # Disable opencv multi-threads to avoid system being overloaded - dist_cfg=dict(backend='nccl'), # Distribution configs -) - -vis_backends = [dict(type='LocalVisBackend')] # Visualization backends. Refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/visualization.html -visualizer = dict( - type='DetLocalVisualizer', vis_backends=vis_backends, name='visualizer') -log_processor = dict( - type='LogProcessor', # Log processor to process runtime logs - window_size=50, # Smooth interval of log values - by_epoch=True) # Whether to format logs with epoch type. Should be consistent with the train loop's type. - -log_level = 'INFO' # The level of logging. -load_from = None # Load model checkpoint as a pre-trained model from a given path. This will not resume training. -resume = False # Whether to resume from the checkpoint defined in `load_from`. If `load_from` is None, it will resume the latest checkpoint in the `work_dir`. -``` - -## Iter-based config - -MMEngine's Runner also provides an iter-based training loop except for epoch-based. -To use iter-based training, users should modify the `train_cfg`, `param_scheduler`, `train_dataloader`, `default_hooks`, and `log_processor`. -Here is an example of changing an epoch-based RetinaNet config to iter-based: `configs/retinanet/retinanet_r50_fpn_90k_coco.py` - -```python -# Iter-based training config -train_cfg = dict( - _delete_=True, # Ignore the base config setting (optional) - type='IterBasedTrainLoop', # Use iter-based training loop - max_iters=90000, # Maximum iterations - val_interval=10000) # Validation interval - - -# Change the scheduler to iter-based -param_scheduler = [ - dict( - type='LinearLR', start_factor=0.001, by_epoch=False, begin=0, end=500), - dict( - type='MultiStepLR', - begin=0, - end=90000, - by_epoch=False, - milestones=[60000, 80000], - gamma=0.1) -] - -# Switch to InfiniteSampler to avoid dataloader restart -train_dataloader = dict(sampler=dict(type='InfiniteSampler')) - -# Change the checkpoint saving interval to iter-based -default_hooks = dict(checkpoint=dict(by_epoch=False, interval=10000)) - -# Change the log format to iter-based -log_processor = dict(by_epoch=False) -``` - -## Config file inheritance - -There are 4 basic component types under `config/_base_`, dataset, model, schedule, default_runtime. -Many methods could be easily constructed with one of these models like Faster R-CNN, Mask R-CNN, Cascade R-CNN, RPN, SSD. -The configs that are composed by components from `_base_` are called the _primitive_. - -For all configs under the same folder, it is recommended to have only **one** _primitive_ config. All other configs should inherit from the _primitive_ config. In this way, the maximum of inheritance level is 3. - -For easy understanding, we recommend contributors to inherit from existing methods. -For example, if some modification is made based on Faster R-CNN, users may first inherit the basic Faster R-CNN structure by specifying `_base_ = ../faster_rcnn/faster-rcnn_r50_fpn_1x_coco.py`, then modify the necessary fields in the config files. - -If you are building an entirely new method that does not share the structure with any of the existing methods, you may create a folder `xxx_rcnn` under `configs`, - -Please refer to [mmengine config tutorial](https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html) for detailed documentation. - -By setting the `_base_` field, we can set which files the current configuration file inherits from. - -When `_base_` is a string of a file path, it means inheriting the contents from one config file. - -```python -_base_ = './mask-rcnn_r50_fpn_1x_coco.py' -``` - -When `_base_` is a list of multiple file paths, it means inheriting from multiple files. - -```python -_base_ = [ - '../_base_/models/mask-rcnn_r50_fpn.py', - '../_base_/datasets/coco_instance.py', - '../_base_/schedules/schedule_1x.py', '../_base_/default_runtime.py' -] -``` - -If you wish to inspect the config file, you may run `python tools/misc/print_config.py /PATH/TO/CONFIG` to see the complete config. - -### Ignore some fields in the base configs - -Sometimes, you may set `_delete_=True` to ignore some of the fields in base configs. -You may refer to [mmengine config tutorial](https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html) for a simple illustration. - -In MMDetection, for example, to change the backbone of Mask R-CNN with the following config. - -```python -model = dict( - type='MaskRCNN', - backbone=dict( - type='ResNet', - depth=50, - num_stages=4, - out_indices=(0, 1, 2, 3), - frozen_stages=1, - norm_cfg=dict(type='BN', requires_grad=True), - norm_eval=True, - style='pytorch', - init_cfg=dict(type='Pretrained', checkpoint='torchvision://resnet50')), - neck=dict(...), - rpn_head=dict(...), - roi_head=dict(...)) -``` - -`ResNet` and `HRNet` use different keywords to construct. - -```python -_base_ = '../mask_rcnn/mask-rcnn_r50_fpn_1x_coco.py' -model = dict( - backbone=dict( - _delete_=True, - type='HRNet', - extra=dict( - stage1=dict( - num_modules=1, - num_branches=1, - block='BOTTLENECK', - num_blocks=(4, ), - num_channels=(64, )), - stage2=dict( - num_modules=1, - num_branches=2, - block='BASIC', - num_blocks=(4, 4), - num_channels=(32, 64)), - stage3=dict( - num_modules=4, - num_branches=3, - block='BASIC', - num_blocks=(4, 4, 4), - num_channels=(32, 64, 128)), - stage4=dict( - num_modules=3, - num_branches=4, - block='BASIC', - num_blocks=(4, 4, 4, 4), - num_channels=(32, 64, 128, 256))), - init_cfg=dict(type='Pretrained', checkpoint='open-mmlab://msra/hrnetv2_w32')), - neck=dict(...)) -``` - -The `_delete_=True` would replace all old keys in `backbone` field with new keys. - -### Use intermediate variables in configs - -Some intermediate variables are used in the configs files, like `train_pipeline`/`test_pipeline` in datasets. -It's worth noting that when modifying intermediate variables in the children configs, users need to pass the intermediate variables into corresponding fields again. -For example, we would like to use a multi-scale strategy to train a Mask R-CNN. `train_pipeline`/`test_pipeline` are intermediate variables we would like to modify. - -```python -_base_ = './mask-rcnn_r50_fpn_1x_coco.py' - -train_pipeline = [ - dict(type='LoadImageFromFile'), - dict(type='LoadAnnotations', with_bbox=True, with_mask=True), - dict( - type='RandomResize', scale=[(1333, 640), (1333, 800)], - keep_ratio=True), - dict(type='RandomFlip', prob=0.5), - dict(type='PackDetInputs') -] -test_pipeline = [ - dict(type='LoadImageFromFile'), - dict(type='Resize', scale=(1333, 800), keep_ratio=True), - dict( - type='PackDetInputs', - meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape', - 'scale_factor')) -] -train_dataloader = dict(dataset=dict(pipeline=train_pipeline)) -val_dataloader = dict(dataset=dict(pipeline=test_pipeline)) -test_dataloader = dict(dataset=dict(pipeline=test_pipeline)) -``` - -We first define the new `train_pipeline`/`test_pipeline` and pass them into dataloader fields. - -Similarly, if we would like to switch from `SyncBN` to `BN` or `MMSyncBN`, we need to substitute every `norm_cfg` in the config. - -```python -_base_ = './mask-rcnn_r50_fpn_1x_coco.py' -norm_cfg = dict(type='BN', requires_grad=True) -model = dict( - backbone=dict(norm_cfg=norm_cfg), - neck=dict(norm_cfg=norm_cfg), - ...) -``` - -### Reuse variables in \_base\_ file - -If the users want to reuse the variables in the base file, they can get a copy of the corresponding variable by using `{{_base_.xxx}}`. E.g: - -```python -_base_ = './mask-rcnn_r50_fpn_1x_coco.py' - -a = {{_base_.model}} # Variable `a` is equal to the `model` defined in `_base_` -``` - -## Modify config through script arguments - -When submitting jobs using `tools/train.py` or `tools/test.py`, you may specify `--cfg-options` to in-place modify the config. - -- Update config keys of dict chains. - - The config options can be specified following the order of the dict keys in the original config. - For example, `--cfg-options model.backbone.norm_eval=False` changes the all BN modules in model backbones to `train` mode. - -- Update keys inside a list of configs. - - Some config dicts are composed as a list in your config. For example, the training pipeline `train_dataloader.dataset.pipeline` is normally a list - e.g. `[dict(type='LoadImageFromFile'), ...]`. If you want to change `'LoadImageFromFile'` to `'LoadImageFromNDArray'` in the pipeline, - you may specify `--cfg-options data.train.pipeline.0.type=LoadImageFromNDArray`. - -- Update values of list/tuples. - - If the value to be updated is a list or a tuple. For example, the config file normally sets `model.data_preprocessor.mean=[123.675, 116.28, 103.53]`. If you want to - change the mean values, you may specify `--cfg-options model.data_preprocessor.mean="[127,127,127]"`. Note that the quotation mark `"` is necessary to - support list/tuple data types, and **NO** white space is allowed inside the quotation marks in the specified value. - -## Config name style - -We follow the below style to name config files. Contributors are advised to follow the same style. - -``` -{algorithm name}_{model component names [component1]_[component2]_[...]}_{training settings}_{training dataset information}_{testing dataset information}.py -``` - -The file name is divided into five parts. All parts and components are connected with `_` and words of each part or component should be connected with `-`. - -- `{algorithm name}`: The name of the algorithm. It can be a detector name such as `faster-rcnn`, `mask-rcnn`, etc. Or can be a semi-supervised or knowledge-distillation algorithm such as `soft-teacher`, `lad`. etc. -- `{model component names}`: Names of the components used in the algorithm such as backbone, neck, etc. For example, `r50-caffe_fpn_gn-head` means using caffe-style ResNet50, FPN and detection head with Group Norm in the algorithm. -- `{training settings}`: Information of training settings such as batch size, augmentations, loss trick, scheduler, and epochs/iterations. For example: `4xb4-mixup-giou-coslr-100e` means using 8-gpus x 4-images-per-gpu, mixup augmentation, GIoU loss, cosine annealing learning rate, and train 100 epochs. - Some abbreviations: - - `{gpu x batch_per_gpu}`: GPUs and samples per GPU. `bN` indicates N batch size per GPU. E.g. `4xb4` is the short term of 4-GPUs x 4-images-per-GPU. And `8xb2` is used by default if not mentioned. - - `{schedule}`: training schedule, options are `1x`, `2x`, `20e`, etc. - `1x` and `2x` means 12 epochs and 24 epochs respectively. - `20e` is adopted in cascade models, which denotes 20 epochs. - For `1x`/`2x`, the initial learning rate decays by a factor of 10 at the 8/16th and 11/22th epochs. - For `20e`, the initial learning rate decays by a factor of 10 at the 16th and 19th epochs. -- `{training dataset information}`: Training dataset names like `coco`, `coco-panoptic`, `cityscapes`, `voc-0712`, `wider-face`. -- `{testing dataset information}` (optional): Testing dataset name for models trained on one dataset but tested on another. If not mentioned, it means the model was trained and tested on the same dataset type. diff --git a/docs/en/user_guides/dataset_prepare.md b/docs/en/user_guides/dataset_prepare.md deleted file mode 100644 index 1e0259a118d..00000000000 --- a/docs/en/user_guides/dataset_prepare.md +++ /dev/null @@ -1,310 +0,0 @@ -# Dataset Prepare - -### Basic Detection Dataset Preparation - -MMDetection supports multiple public datasets including COCO, Pascal VOC, CityScapes, and [more](../../../configs/_base_/datasets). - -Public datasets like [Pascal VOC](http://host.robots.ox.ac.uk/pascal/VOC/index.html) or mirror and [COCO](https://cocodataset.org/#download) are available from official websites or mirrors. Note: In the detection task, Pascal VOC 2012 is an extension of Pascal VOC 2007 without overlap, and we usually use them together. -It is recommended to download and extract the dataset somewhere outside the project directory and symlink the dataset root to `$MMDETECTION/data` as below. -If your folder structure is different, you may need to change the corresponding paths in config files. - -We provide a script to download datasets such as COCO, you can run `python tools/misc/download_dataset.py --dataset-name coco2017` to download COCO dataset. -For users in China, more datasets can be downloaded from the opensource dataset platform: [OpenDataLab](https://opendatalab.com/?source=OpenMMLab%20GitHub). - -For more usage please refer to [dataset-download](./useful_tools.md#dataset-download) - -```text -mmdetection -├── mmdet -├── tools -├── configs -├── data -│ ├── coco -│ │ ├── annotations -│ │ ├── train2017 -│ │ ├── val2017 -│ │ ├── test2017 -│ ├── cityscapes -│ │ ├── annotations -│ │ ├── leftImg8bit -│ │ │ ├── train -│ │ │ ├── val -│ │ ├── gtFine -│ │ │ ├── train -│ │ │ ├── val -│ ├── VOCdevkit -│ │ ├── VOC2007 -│ │ ├── VOC2012 -``` - -Some models require additional [COCO-stuff](http://calvin.inf.ed.ac.uk/wp-content/uploads/data/cocostuffdataset/stuffthingmaps_trainval2017.zip) datasets, such as HTC, DetectoRS and SCNet, you can download, unzip, and then move them to the coco folder. The directory should be like this. - -```text -mmdetection -├── data -│ ├── coco -│ │ ├── annotations -│ │ ├── train2017 -│ │ ├── val2017 -│ │ ├── test2017 -│ │ ├── stuffthingmaps -``` - -Panoptic segmentation models like PanopticFPN require additional [COCO Panoptic](http://images.cocodataset.org/annotations/panoptic_annotations_trainval2017.zip) datasets, you can download, unzip, and then move them to the coco annotation folder. The directory should be like this. - -```text -mmdetection -├── data -│ ├── coco -│ │ ├── annotations -│ │ │ ├── panoptic_train2017.json -│ │ │ ├── panoptic_train2017 -│ │ │ ├── panoptic_val2017.json -│ │ │ ├── panoptic_val2017 -│ │ ├── train2017 -│ │ ├── val2017 -│ │ ├── test2017 -``` - -The [cityscapes](https://www.cityscapes-dataset.com/) annotations need to be converted into the coco format using `tools/dataset_converters/cityscapes.py`: - -```shell -pip install cityscapesscripts - -python tools/dataset_converters/cityscapes.py \ - ./data/cityscapes \ - --nproc 8 \ - --out-dir ./data/cityscapes/annotations -``` - -### COCO Caption Dataset Preparation - -COCO Caption uses the COCO2014 dataset image and uses the annotation of karpathy. - -At first, you need to download the COCO2014 dataset. - -```shell -python tools/misc/download_dataset.py --dataset-name coco2014 --unzip -``` - -The dataset will be downloaded to `data/coco` under the current path. Then download the annotation of karpathy. - -```shell -cd data/coco/annotations -wget https://storage.googleapis.com/sfr-vision-language-research/datasets/coco_karpathy_train.json -wget https://storage.googleapis.com/sfr-vision-language-research/datasets/coco_karpathy_val.json -wget https://storage.googleapis.com/sfr-vision-language-research/datasets/coco_karpathy_test.json -wget https://storage.googleapis.com/sfr-vision-language-research/datasets/coco_karpathy_val_gt.json -wget https://storage.googleapis.com/sfr-vision-language-research/datasets/coco_karpathy_test_gt.json -``` - -The final directory structure of the dataset folder that can be directly used for training and testing is as follows: - -```text -mmdetection -├── data -│ ├── coco -│ │ ├── annotations -│ │ │ ├── coco_karpathy_train.json -│ │ │ ├── coco_karpathy_test.json -│ │ │ ├── coco_karpathy_val.json -│ │ │ ├── coco_karpathy_val_gt.json -│ │ │ ├── coco_karpathy_test_gt.json -│ │ ├── train2014 -│ │ ├── val2014 -│ │ ├── test2014 -``` - -### COCO Semantic Dataset Preparation - -There are two types of annotations for COCO semantic segmentation, which differ mainly in the definition of category names, so there are two ways to handle them. The first is to directly use the stuffthingmaps dataset, and the second is to use the panoptic dataset. - -**(1) Use stuffthingmaps dataset** - -The download link for this dataset is [stuffthingmaps_trainval2017](http://calvin.inf.ed.ac.uk/wp-content/uploads/data/cocostuffdataset/stuffthingmaps_trainval2017.zip). Please download and extract it to the `data/coco` folder. - -```text -mmdetection -├── data -│ ├── coco -│ │ ├── annotations -│ │ ├── train2017 -│ │ ├── val2017 -│ │ ├── test2017 -│ │ ├── stuffthingmaps -``` - -This dataset is different from the standard COCO category annotation in that it includes 172 classes: 80 "thing" classes, 91 "stuff" classes, and 1 "unlabeled" class. The description of each class can be found at https://github.com/nightrome/cocostuff/blob/master/labels.md. - -Although only 172 categories are annotated, the maximum label ID in `stuffthingmaps` is 182, and some categories in the middle are not annotated. In addition, the "unlabeled" category of class 0 is removed. Therefore, the relationship between the value at each position in the final `stuffthingmaps` image can be found at https://github.com/kazuto1011/deeplab-pytorch/blob/master/data/datasets/cocostuff/labels.txt. - -To train efficiently and conveniently for users, we need to remove 12 unannotated classes before starting training or evaluation. The names of these 12 classes are: `street sign, hat, shoe, eye glasses, plate, mirror, window, desk, door, blender, hair brush`. The category information that can be used for training and evaluation can be found in `mmdet/datasets/coco_semantic.py`. - -You can use `tools/dataset_converters/coco_stuff164k.py` to convert the downloaded `stuffthingmaps` to a dataset that can be directly used for training and evaluation. The directory structure of the converted dataset is as follows: - -```text -mmdetection -├── data -│ ├── coco -│ │ ├── annotations -│ │ ├── train2017 -│ │ ├── val2017 -│ │ ├── test2017 -│ │ ├── stuffthingmaps -│ │ ├── stuffthingmaps_semseg -``` - -`stuffthingmaps_semseg` is the newly generated COCO semantic segmentation dataset that can be directly used for training and testing. - -**(2) use panoptic dataset** - -The number of categories in the semantic segmentation dataset generated through panoptic annotation will be less than that generated using the `stuffthingmaps` dataset. First, you need to prepare the panoptic segmentation annotations, and then use the following script to complete the conversion. - -```shell -python tools/dataset_converters/prepare_coco_semantic_annos_from_panoptic_annos.py data/coco -``` - -The directory structure of the converted dataset is as follows: - -```text -mmdetection -├── data -│ ├── coco -│ │ ├── annotations -│ │ │ ├── panoptic_train2017.json -│ │ │ ├── panoptic_train2017 -│ │ │ ├── panoptic_val2017.json -│ │ │ ├── panoptic_val2017 -│ │ │ ├── panoptic_semseg_train2017 -│ │ │ ├── panoptic_semseg_val2017 -│ │ ├── train2017 -│ │ ├── val2017 -│ │ ├── test2017 -``` - -`panoptic_semseg_train2017` and `panoptic_semseg_val2017` are the newly generated COCO semantic segmentation datasets that can be directly used for training and testing. Note that their category information is the same as that of COCO panoptic segmentation, including both "thing" and "stuff" categories. - -### RefCOCO Dataset Preparation - -The images and annotations of [RefCOCO](https://github.com/lichengunc/refer) series datasets can be download by running `tools/misc/download_dataset.py`: - -```shell -python tools/misc/download_dataset.py --dataset-name refcoco --save-dir data/coco --unzip -``` - -Then the directory should be like this: - -```text -data -├── coco -│ ├── refcoco -│ │ ├── instances.json -│ │ ├── refs(google).p -│ │ └── refs(unc).p -│ ├── refcoco+ -│ │ ├── instances.json -│ │ └── refs(unc).p -│ ├── refcocog -│ │ ├── instances.json -│ │ ├── refs(google).p -│ │ └── refs(umd).p -│ │── train2014 -``` - -### ADE20K 2016 Dataset Preparation - -The images and annotations of [ADE20K](https://groups.csail.mit.edu/vision/datasets/ADE20K/) dataset can be download by running `tools/misc/download_dataset.py`: - -```shell -python tools/misc/download_dataset.py --dataset-name ade20k_2016 --save-dir data --unzip -``` - -Then move the annotations to the `data/ADEChallengeData2016` directory and run the preprocess script to produce the coco format annotations: - -```shell -mv data/annotations_instance data/ADEChallengeData2016/ -mv data/categoryMapping.txt data/ADEChallengeData2016/ -mv data/imgCatIds.json data/ADEChallengeData2016/ -python tools/dataset_converters/ade20k2coco.py data/ADEChallengeData2016 --task panoptic -python tools/dataset_converters/ade20k2coco.py data/ADEChallengeData2016 --task instance -``` - -The directory should be like this. - -```text -data -├── ADEChallengeData2016 -│ ├── ade20k_instance_train.json -│ ├── ade20k_instance_val.json -│ ├── ade20k_panoptic_train -│ │ ├── ADE_train_00000001.png -│ │ ├── ADE_train_00000002.png -│ │ ├── ... -│ ├── ade20k_panoptic_train.json -│ ├── ade20k_panoptic_val -│ │ ├── ADE_val_00000001.png -│ │ ├── ADE_val_00000002.png -│ │ ├── ... -│ ├── ade20k_panoptic_val.json -│ ├── annotations -│ │ ├── training -│ │ │ ├── ADE_train_00000001.png -│ │ │ ├── ADE_train_00000002.png -│ │ │ ├── ... -│ │ ├── validation -│ │ │ ├── ADE_val_00000001.png -│ │ │ ├── ADE_val_00000002.png -│ │ │ ├── ... -│ ├── annotations_instance -│ │ ├── training -│ │ │ ├── ADE_train_00000001.png -│ │ │ ├── ADE_train_00000002.png -│ │ │ ├── ... -│ │ ├── validation -│ │ │ ├── ADE_val_00000001.png -│ │ │ ├── ADE_val_00000002.png -│ │ │ ├── ... -│ ├── categoryMapping.txt -│ ├── images -│ │ ├── training -│ │ │ ├── ADE_train_00000001.jpg -│ │ │ ├── ADE_train_00000002.jpg -│ │ │ ├── ... -│ │ ├── validation -│ │ │ ├── ADE_val_00000001.jpg -│ │ │ ├── ADE_val_00000002.jpg -│ │ │ ├── ... -│ ├── imgCatIds.json -│ ├── objectInfo150.txt -│ │── sceneCategories.txt -``` - -The above folders include all data of ADE20K's semantic segmentation, instance segmentation, and panoptic segmentation. - -### Download from OpenDataLab - -By using [OpenDataLab](https://opendatalab.com/), researchers can obtain free formatted datasets in various fields. Through the search function of the platform, researchers may address the dataset they look for quickly and easily. Using the formatted datasets from the platform, researchers can efficiently conduct tasks across datasets. - -Currently, MIM supports downloading VOC and COCO datasets from OpenDataLab with one command line. More datasets will be supported in the future. You can also directly download the datasets you need from the OpenDataLab platform and then convert them to the format required by MMDetection. - -If you use MIM to download, make sure that the version is greater than v0.3.8. You can use the following command to update: - -```Bash -pip install -U openmim -``` - -```Bash -# install OpenXLab CLI tools -pip install -U openxlab -# log in OpenXLab, registry -openxlab login - -# download voc2007 and preprocess by MIM -mim download mmdet --dataset voc2007 - -# download voc2012 and preprocess by MIM -mim download mmdet --dataset voc2012 - -# download coco2017 and preprocess by MIM -mim download mmdet --dataset coco2017 -``` diff --git a/docs/en/user_guides/deploy.md b/docs/en/user_guides/deploy.md deleted file mode 100644 index db320d1409e..00000000000 --- a/docs/en/user_guides/deploy.md +++ /dev/null @@ -1,173 +0,0 @@ -# Model Deployment - -The deployment of OpenMMLab codebases, including MMDetection, MMPretrain and so on are supported by [MMDeploy](https://github.com/open-mmlab/mmdeploy). -The latest deployment guide for MMDetection can be found from [here](https://mmdeploy.readthedocs.io/en/dev-1.x/04-supported-codebases/mmdet.html). - -This tutorial is organized as follows: - -- [Installation](#installation) -- [Convert model](#convert-model) -- [Model specification](#model-specification) -- [Model inference](#model-inference) - - [Backend model inference](#backend-model-inference) - - [SDK model inference](#sdk-model-inference) -- [Supported models](#supported-models) - -## Installation - -Please follow the [guide](https://mmdetection.readthedocs.io/en/latest/get_started.html) to install mmdet. And then install mmdeploy from source by following [this](https://mmdeploy.readthedocs.io/en/1.x/get_started.html#installation) guide. - -```{note} -If you install mmdeploy prebuilt package, please also clone its repository by 'git clone https://github.com/open-mmlab/mmdeploy.git --depth=1' to get the deployment config files. -``` - -## Convert model - -Suppose mmdetection and mmdeploy repositories are in the same directory, and the working directory is the root path of mmdetection. - -Take [Faster R-CNN](https://github.com/open-mmlab/mmdetection/blob/main/configs/faster_rcnn/faster-rcnn_r50_fpn_1x_coco.py) model as an example. You can download its checkpoint from [here](https://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_1x_coco/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth), and then convert it to onnx model as follows: - -```python -from mmdeploy.apis import torch2onnx -from mmdeploy.backend.sdk.export_info import export2SDK - -img = 'demo/demo.jpg' -work_dir = 'mmdeploy_models/mmdet/onnx' -save_file = 'end2end.onnx' -deploy_cfg = '../mmdeploy/configs/mmdet/detection/detection_onnxruntime_dynamic.py' -model_cfg = 'configs/faster_rcnn/faster-rcnn_r50_fpn_1x_coco.py' -model_checkpoint = 'faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth' -device = 'cpu' - -# 1. convert model to onnx -torch2onnx(img, work_dir, save_file, deploy_cfg, model_cfg, - model_checkpoint, device) - -# 2. extract pipeline info for inference by MMDeploy SDK -export2SDK(deploy_cfg, model_cfg, work_dir, pth=model_checkpoint, - device=device) -``` - -It is crucial to specify the correct deployment config during model conversion. MMDeploy has already provided builtin deployment config [files](https://github.com/open-mmlab/mmdeploy/tree/1.x/configs/mmdet) of all supported backends for mmdetection, under which the config file path follows the pattern: - -``` -{task}/{task}_{backend}-{precision}_{static | dynamic}_{shape}.py -``` - -- **{task}:** task in mmdetection. - - There are two of them. One is `detection` and the other is `instance-seg`, indicating instance segmentation. - - mmdet models like `RetinaNet`, `Faster R-CNN` and `DETR` and so on belongs to `detection` task. While `Mask R-CNN` is one of `instance-seg` models. - - **DO REMEMBER TO USE** `detection/detection_*.py` deployment config file when trying to convert detection models and use `instance-seg/instance-seg_*.py` to deploy instance segmentation models. - -- **{backend}:** inference backend, such as onnxruntime, tensorrt, pplnn, ncnn, openvino, coreml etc. - -- **{precision}:** fp16, int8. When it's empty, it means fp32 - -- **{static | dynamic}:** static shape or dynamic shape - -- **{shape}:** input shape or shape range of a model - -Therefore, in the above example, you can also convert `Faster R-CNN` to tensorrt-fp16 model by `detection_tensorrt-fp16_dynamic-320x320-1344x1344.py`. - -```{tip} -When converting mmdet models to tensorrt models, --device should be set to "cuda" -``` - -## Model specification - -Before moving on to model inference chapter, let's know more about the converted model structure which is very important for model inference. - -The converted model locates in the working directory like `mmdeploy_models/mmdet/onnx` in the previous example. It includes: - -``` -mmdeploy_models/mmdet/onnx -├── deploy.json -├── detail.json -├── end2end.onnx -└── pipeline.json -``` - -in which, - -- **end2end.onnx**: backend model which can be inferred by ONNX Runtime -- ***xxx*.json**: the necessary information for mmdeploy SDK - -The whole package **mmdeploy_models/mmdet/onnx** is defined as **mmdeploy SDK model**, i.e., **mmdeploy SDK model** includes both backend model and inference meta information. - -## Model inference - -### Backend model inference - -Take the previous converted `end2end.onnx` model as an example, you can use the following code to inference the model and visualize the results. - -```python -from mmdeploy.apis.utils import build_task_processor -from mmdeploy.utils import get_input_shape, load_config -import torch - -deploy_cfg = '../mmdeploy/configs/mmdet/detection/detection_onnxruntime_dynamic.py' -model_cfg = 'configs/faster_rcnn/faster-rcnn_r50_fpn_1x_coco.py' -device = 'cpu' -backend_model = ['mmdeploy_models/mmdet/onnx/end2end.onnx'] -image = 'demo/demo.jpg' - -# read deploy_cfg and model_cfg -deploy_cfg, model_cfg = load_config(deploy_cfg, model_cfg) - -# build task and backend model -task_processor = build_task_processor(model_cfg, deploy_cfg, device) -model = task_processor.build_backend_model(backend_model) - -# process input image -input_shape = get_input_shape(deploy_cfg) -model_inputs, _ = task_processor.create_input(image, input_shape) - -# do model inference -with torch.no_grad(): - result = model.test_step(model_inputs) - -# visualize results -task_processor.visualize( - image=image, - model=model, - result=result[0], - window_name='visualize', - output_file='output_detection.png') -``` - -### SDK model inference - -You can also perform SDK model inference like following, - -```python -from mmdeploy_python import Detector -import cv2 - -img = cv2.imread('demo/demo.jpg') - -# create a detector -detector = Detector(model_path='mmdeploy_models/mmdet/onnx', - device_name='cpu', device_id=0) -# perform inference -bboxes, labels, masks = detector(img) - -# visualize inference result -indices = [i for i in range(len(bboxes))] -for index, bbox, label_id in zip(indices, bboxes, labels): - [left, top, right, bottom], score = bbox[0:4].astype(int), bbox[4] - if score < 0.3: - continue - - cv2.rectangle(img, (left, top), (right, bottom), (0, 255, 0)) - -cv2.imwrite('output_detection.png', img) -``` - -Besides python API, mmdeploy SDK also provides other FFI (Foreign Function Interface), such as C, C++, C#, Java and so on. You can learn their usage from [demos](https://github.com/open-mmlab/mmdeploy/tree/1.x/demo). - -## Supported models - -Please refer to [here](https://mmdeploy.readthedocs.io/en/1.x/04-supported-codebases/mmdet.html#supported-models) for the supported model list. diff --git a/docs/en/user_guides/finetune.md b/docs/en/user_guides/finetune.md deleted file mode 100644 index e181ebaece2..00000000000 --- a/docs/en/user_guides/finetune.md +++ /dev/null @@ -1,96 +0,0 @@ -# Finetuning Models - -Detectors pre-trained on the COCO dataset can serve as a good pre-trained model for other datasets, e.g., CityScapes and KITTI Dataset. -This tutorial provides instructions for users to use the models provided in the [Model Zoo](../model_zoo.md) for other datasets to obtain better performance. - -There are two steps to finetune a model on a new dataset. - -- Add support for the new dataset following [Customize Datasets](../advanced_guides/customize_dataset.md). -- Modify the configs as will be discussed in this tutorial. - -Take the finetuning process on Cityscapes Dataset as an example, the users need to modify five parts in the config. - -## Inherit base configs - -To release the burden and reduce bugs in writing the whole configs, MMDetection V3.0 support inheriting configs from multiple existing configs. To finetune a Mask RCNN model, the new config needs to inherit -`_base_/models/mask-rcnn_r50_fpn.py` to build the basic structure of the model. To use the Cityscapes Dataset, the new config can also simply inherit `_base_/datasets/cityscapes_instance.py`. For runtime settings such as logger settings, the new config needs to inherit `_base_/default_runtime.py`. For training schedules, the new config can to inherit `_base_/schedules/schedule_1x.py`. These configs are in the `configs` directory and the users can also choose to write the whole contents rather than use inheritance. - -```python -_base_ = [ - '../_base_/models/mask-rcnn_r50_fpn.py', - '../_base_/datasets/cityscapes_instance.py', '../_base_/default_runtime.py', - '../_base_/schedules/schedule_1x.py' -] -``` - -## Modify head - -Then the new config needs to modify the head according to the class numbers of the new datasets. By only changing `num_classes` in the roi_head, the weights of the pre-trained models are mostly reused except for the final prediction head. - -```python -model = dict( - roi_head=dict( - bbox_head=dict( - type='Shared2FCBBoxHead', - in_channels=256, - fc_out_channels=1024, - roi_feat_size=7, - num_classes=8, - bbox_coder=dict( - type='DeltaXYWHBBoxCoder', - target_means=[0., 0., 0., 0.], - target_stds=[0.1, 0.1, 0.2, 0.2]), - reg_class_agnostic=False, - loss_cls=dict( - type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0), - loss_bbox=dict(type='SmoothL1Loss', beta=1.0, loss_weight=1.0)), - mask_head=dict( - type='FCNMaskHead', - num_convs=4, - in_channels=256, - conv_out_channels=256, - num_classes=8, - loss_mask=dict( - type='CrossEntropyLoss', use_mask=True, loss_weight=1.0)))) -``` - -## Modify dataset - -The users may also need to prepare the dataset and write the configs about dataset, refer to [Customize Datasets](../advanced_guides/customize_dataset.md) for more detail. MMDetection V3.0 already supports VOC, WIDERFACE, COCO, LIVS, OpenImages, DeepFashion, Objects365, and Cityscapes Dataset. - -## Modify training schedule - -The finetuning hyperparameters vary from the default schedule. It usually requires a smaller learning rate and fewer training epochs - -```python -# optimizer -# lr is set for a batch size of 8 -optim_wrapper = dict(optimizer=dict(lr=0.01)) - -# learning rate -param_scheduler = [ - dict( - type='LinearLR', start_factor=0.001, by_epoch=False, begin=0, end=500), - dict( - type='MultiStepLR', - begin=0, - end=8, - by_epoch=True, - milestones=[7], - gamma=0.1) -] - -# max_epochs -train_cfg = dict(max_epochs=8) - -# log config -default_hooks = dict(logger=dict(interval=100)), -``` - -## Use pre-trained model - -To use the pre-trained model, the new config adds the link of pre-trained models in the `load_from`. The users might need to download the model weights before training to avoid the download time during training. - -```python -load_from = 'https://download.openmmlab.com/mmdetection/v2.0/mask_rcnn/mask_rcnn_r50_caffe_fpn_mstrain-poly_3x_coco/mask_rcnn_r50_caffe_fpn_mstrain-poly_3x_coco_bbox_mAP-0.408__segm_mAP-0.37_20200504_163245-42aa3d00.pth' # noqa -``` diff --git a/docs/en/user_guides/index.rst b/docs/en/user_guides/index.rst deleted file mode 100644 index e74fc5fb555..00000000000 --- a/docs/en/user_guides/index.rst +++ /dev/null @@ -1,41 +0,0 @@ -Train & Test -************** - -MMDetection provides hundreds of pretrained detection models in `Model Zoo `_, -and supports multiple standard datasets, including Pascal VOC, COCO, CityScapes, LVIS, etc. This note will show how to perform common tasks on these existing models and standard datasets: - - -.. toctree:: - :maxdepth: 1 - - config.md - inference.md - dataset_prepare.md - test.md - train.md - new_model.md - finetune.md - test_results_submission.md - init_cfg.md - single_stage_as_rpn.md - semi_det.md - - -Useful Tools -************ - -.. toctree:: - :maxdepth: 1 - - useful_tools.md - useful_hooks.md - visualization.md - robustness_benchmarking.md - deploy.md - label_studio.md - tracking_analysis_tools.md - tracking_config.md - tracking_dataset_prepare.md - tracking_inference.md - tracking_train_test.md - tracking_visualization.md diff --git a/docs/en/user_guides/inference.md b/docs/en/user_guides/inference.md deleted file mode 100644 index 49186d23695..00000000000 --- a/docs/en/user_guides/inference.md +++ /dev/null @@ -1,440 +0,0 @@ -# Inference with existing models - -MMDetection provides hundreds of pre-trained detection models in [Model Zoo](https://mmdetection.readthedocs.io/en/latest/model_zoo.html). -This note will show how to inference, which means using trained models to detect objects on images. - -In MMDetection, a model is defined by a [configuration file](https://mmdetection.readthedocs.io/en/latest/user_guides/config.html) and existing model parameters are saved in a checkpoint file. - -To start with, we recommend [RTMDet](https://github.com/open-mmlab/mmdetection/tree/main/configs/rtmdet) with this [configuration file](https://github.com/open-mmlab/mmdetection/blob/main/configs/rtmdet/rtmdet_l_8xb32-300e_coco.py) and this [checkpoint file](https://download.openmmlab.com/mmdetection/v3.0/rtmdet/rtmdet_l_8xb32-300e_coco/rtmdet_l_8xb32-300e_coco_20220719_112030-5a0be7c4.pth). It is recommended to download the checkpoint file to `checkpoints` directory. - -## High-level APIs for inference - `Inferencer` - -In OpenMMLab, all the inference operations are unified into a new interface - Inferencer. Inferencer is designed to expose a neat and simple API to users, and shares very similar interface across different OpenMMLab libraries. -A notebook demo can be found in [demo/inference_demo.ipynb](https://github.com/open-mmlab/mmdetection/blob/main/demo/inference_demo.ipynb). - -### Basic Usage - -You can get inference results for an image with only 3 lines of code. - -```python -from mmdet.apis import DetInferencer - -# Initialize the DetInferencer -inferencer = DetInferencer('rtmdet_tiny_8xb32-300e_coco') - -# Perform inference -inferencer('demo/demo.jpg', show=True) -``` - -The resulting output will be displayed in a new window:. - -

    - -
    - -```{note} -If you are running MMDetection on a server without GUI or via SSH tunnel with X11 forwarding disabled, the `show` option will not work. However, you can still save visualizations to files by setting `out_dir` arguments. Read [Dumping Results](#dumping-results) for details. -``` - -### Initialization - -Each Inferencer must be initialized with a model. You can also choose the inference device during initialization. - -#### Model Initialization - -- To infer with MMDetection's pre-trained model, passing its name to the argument `model` can work. The weights will be automatically downloaded and loaded from OpenMMLab's model zoo. - - ```python - inferencer = DetInferencer(model='rtmdet_tiny_8xb32-300e_coco') - ``` - - There is a very easy to list all model names in MMDetection. - - ```python - # models is a list of model names, and them will print automatically - models = DetInferencer.list_models('mmdet') - ``` - - You can load another weight by passing its path/url to `weights`. - - ```python - inferencer = DetInferencer(model='rtmdet_tiny_8xb32-300e_coco', weights='path/to/rtmdet.pth') - ``` - -- To load custom config and weight, you can pass the path to the config file to `model` and the path to the weight to `weights`. - - ```python - inferencer = DetInferencer(model='path/to/rtmdet_config.py', weights='path/to/rtmdet.pth') - ``` - -- By default, [MMEngine](https://github.com/open-mmlab/mmengine/) dumps config to the weight. If you have a weight trained on MMEngine, you can also pass the path to the weight file to `weights` without specifying `model`: - - ```python - # It will raise an error if the config file cannot be found in the weight. Currently, within the MMDetection model repository, only the weights of ddq-detr-4scale_r50 can be loaded in this manner. - inferencer = DetInferencer(weights='https://download.openmmlab.com/mmdetection/v3.0/ddq/ddq-detr-4scale_r50_8xb2-12e_coco/ddq-detr-4scale_r50_8xb2-12e_coco_20230809_170711-42528127.pth') - ``` - -- Passing config file to `model` without specifying `weight` will result in a randomly initialized model. - -### Device - -Each Inferencer instance is bound to a device. -By default, the best device is automatically decided by [MMEngine](https://github.com/open-mmlab/mmengine/). You can also alter the device by specifying the `device` argument. For example, you can use the following code to create an Inferencer on GPU 1. - -```python -inferencer = DetInferencer(model='rtmdet_tiny_8xb32-300e_coco', device='cuda:1') -``` - -To create an Inferencer on CPU: - -```python -inferencer = DetInferencer(model='rtmdet_tiny_8xb32-300e_coco', device='cpu') -``` - -Refer to [torch.device](https://pytorch.org/docs/stable/tensor_attributes.html#torch.device) for all the supported forms. - -### Inference - -Once the Inferencer is initialized, you can directly pass in the raw data to be inferred and get the inference results from return values. - -#### Input - -Input can be either of these types: - -- str: Path/URL to the image. - - ```python - inferencer('demo/demo.jpg') - ``` - -- array: Image in numpy array. It should be in BGR order. - - ```python - import mmcv - array = mmcv.imread('demo/demo.jpg') - inferencer(array) - ``` - -- list: A list of basic types above. Each element in the list will be processed separately. - - ```python - inferencer(['img_1.jpg', 'img_2.jpg]) - # You can even mix the types - inferencer(['img_1.jpg', array]) - ``` - -- str: Path to the directory. All images in the directory will be processed. - - ```python - inferencer('path/to/your_imgs/') - ``` - -### Output - -By default, each `Inferencer` returns the prediction results in a dictionary format. - -- `visualization` contains the visualized predictions. - -- `predictions` contains the predictions results in a json-serializable format. But it's an empty list by default unless `return_vis=True`. - -```python -{ - 'predictions' : [ - # Each instance corresponds to an input image - { - 'labels': [...], # int list of length (N, ) - 'scores': [...], # float list of length (N, ) - 'bboxes': [...], # 2d list of shape (N, 4), format: [min_x, min_y, max_x, max_y] - }, - ... - ], - 'visualization' : [ - array(..., dtype=uint8), - ] - } -``` - -If you wish to get the raw outputs from the model, you can set `return_datasamples` to `True` to get the original [DataSample](advanced_guides/structures.md), which will be stored in `predictions`. - -#### Dumping Results - -Apart from obtaining predictions from the return value, you can also export the predictions/visualizations to files by setting `out_dir` and `no_save_pred`/`no_save_vis` arguments. - -```python -inferencer('demo/demo.jpg', out_dir='outputs/', no_save_pred=False) -``` - -Results in the directory structure like: - -```text -outputs -├── preds -│ └── demo.json -└── vis - └── demo.jpg -``` - -The filename of each file is the same as the corresponding input image filename. If the input image is an array, the filename will be a number starting from 0. - -#### Batch Inference - -You can customize the batch size by setting `batch_size`. The default batch size is 1. - -### API - -Here are extensive lists of parameters that you can use. - -- **DetInferencer.\_\_init\_\_():** - -| Arguments | Type | Type | Description | -| --------------- | ------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `model` | str, optional | None | Path to the config file or the model name defined in metafile. For example, it could be 'rtmdet-s' or 'rtmdet_s_8xb32-300e_coco' or 'configs/rtmdet/rtmdet_s_8xb32-300e_coco.py'. If the model is not specified, the user must provide the `weights` saved by MMEngine which contains the config string. | -| `weights` | str, optional | None | Path to the checkpoint. If it is not specified and `model` is a model name of metafile, the weights will be loaded from metafile. | -| `device` | str, optional | None | Device used for inference, accepting all allowed strings by `torch.device`. E.g., 'cuda:0' or 'cpu'. If None, the available device will be automatically used. | -| `scope` | str, optional | 'mmdet' | The scope of the model. | -| `palette` | str | 'none' | Color palette used for visualization. The order of priority is palette -> config -> checkpoint. | -| `show_progress` | bool | True | Control whether to display the progress bar during the inference process. | - -- **DetInferencer.\_\_call\_\_()** - -| Arguments | Type | Default | Description | -| -------------------- | ------------------------- | ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `inputs` | str/list/tuple/np.array | **required** | It can be a path to an image/a folder, an np array or a list/tuple (with img paths or np arrays) | -| `batch_size` | int | 1 | Inference batch size. | -| `print_result` | bool | False | Whether to print the inference result to the console. | -| `show` | bool | False | Whether to display the visualization results in a popup window. | -| `wait_time` | float | 0 | The interval of show(s). | -| `no_save_vis` | bool | False | Whether to force not to save prediction vis results. | -| `draw_pred` | bool | True | Whether to draw predicted bounding boxes. | -| `pred_score_thr` | float | 0.3 | Minimum score of bboxes to draw. | -| `return_datasamples` | bool | False | Whether to return results as DataSamples. If False, the results will be packed into a dict. | -| `print_result` | bool | False | Whether to print the inference result to the console. | -| `no_save_pred` | bool | True | Whether to force not to save prediction results. | -| `out_dir` | str | '' | Output directory of results. | -| `texts` | str/list\[str\], optional | None | Text prompts. | -| `stuff_texts` | str/list\[str\], optional | None | Stuff text prompts of open panoptic task. | -| `custom_entities` | bool | False | Whether to use custom entities. Only used in GLIP. | -| \*\*kwargs | | | Other keyword arguments passed to :meth:`preprocess`, :meth:`forward`, :meth:`visualize` and :meth:`postprocess`. Each key in kwargs should be in the corresponding set of `preprocess_kwargs`, `forward_kwargs`, `visualize_kwargs` and `postprocess_kwargs`. | - -## Demos - -We also provide four demo scripts, implemented with high-level APIs and supporting functionality codes. -Source codes are available [here](https://github.com/open-mmlab/mmdetection/blob/main/demo). - -### Image demo - -This script performs inference on a single image. - -```shell -python demo/image_demo.py \ - ${IMAGE_FILE} \ - ${CONFIG_FILE} \ - [--weights ${WEIGHTS}] \ - [--device ${GPU_ID}] \ - [--pred-score-thr ${SCORE_THR}] -``` - -Examples: - -```shell -python demo/image_demo.py demo/demo.jpg \ - configs/rtmdet/rtmdet_l_8xb32-300e_coco.py \ - --weights checkpoints/rtmdet_l_8xb32-300e_coco_20220719_112030-5a0be7c4.pth \ - --device cpu -``` - -### Webcam demo - -This is a live demo from a webcam. - -```shell -python demo/webcam_demo.py \ - ${CONFIG_FILE} \ - ${CHECKPOINT_FILE} \ - [--device ${GPU_ID}] \ - [--camera-id ${CAMERA-ID}] \ - [--score-thr ${SCORE_THR}] -``` - -Examples: - -```shell -python demo/webcam_demo.py \ - configs/rtmdet/rtmdet_l_8xb32-300e_coco.py \ - checkpoints/rtmdet_l_8xb32-300e_coco_20220719_112030-5a0be7c4.pth -``` - -### Video demo - -This script performs inference on a video. - -```shell -python demo/video_demo.py \ - ${VIDEO_FILE} \ - ${CONFIG_FILE} \ - ${CHECKPOINT_FILE} \ - [--device ${GPU_ID}] \ - [--score-thr ${SCORE_THR}] \ - [--out ${OUT_FILE}] \ - [--show] \ - [--wait-time ${WAIT_TIME}] -``` - -Examples: - -```shell -python demo/video_demo.py demo/demo.mp4 \ - configs/rtmdet/rtmdet_l_8xb32-300e_coco.py \ - checkpoints/rtmdet_l_8xb32-300e_coco_20220719_112030-5a0be7c4.pth \ - --out result.mp4 -``` - -#### Video demo with GPU acceleration - -This script performs inference on a video with GPU acceleration. - -```shell -python demo/video_gpuaccel_demo.py \ - ${VIDEO_FILE} \ - ${CONFIG_FILE} \ - ${CHECKPOINT_FILE} \ - [--device ${GPU_ID}] \ - [--score-thr ${SCORE_THR}] \ - [--nvdecode] \ - [--out ${OUT_FILE}] \ - [--show] \ - [--wait-time ${WAIT_TIME}] -``` - -Examples: - -```shell -python demo/video_gpuaccel_demo.py demo/demo.mp4 \ - configs/rtmdet/rtmdet_l_8xb32-300e_coco.py \ - checkpoints/rtmdet_l_8xb32-300e_coco_20220719_112030-5a0be7c4.pth \ - --nvdecode --out result.mp4 -``` - -### Large-image inference demo - -This is a script for slicing inference on large images. - -``` -python demo/large_image_demo.py \ - ${IMG_PATH} \ - ${CONFIG_FILE} \ - ${CHECKPOINT_FILE} \ - --device ${GPU_ID} \ - --show \ - --tta \ - --score-thr ${SCORE_THR} \ - --patch-size ${PATCH_SIZE} \ - --patch-overlap-ratio ${PATCH_OVERLAP_RATIO} \ - --merge-iou-thr ${MERGE_IOU_THR} \ - --merge-nms-type ${MERGE_NMS_TYPE} \ - --batch-size ${BATCH_SIZE} \ - --debug \ - --save-patch -``` - -Examples: - -```shell -# inferecnce without tta -wget -P checkpoint https://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r101_fpn_2x_coco/faster_rcnn_r101_fpn_2x_coco_bbox_mAP-0.398_20200504_210455-1d2dac9c.pth - -python demo/large_image_demo.py \ - demo/large_image.jpg \ - configs/faster_rcnn/faster-rcnn_r101_fpn_2x_coco.py \ - checkpoint/faster_rcnn_r101_fpn_2x_coco_bbox_mAP-0.398_20200504_210455-1d2dac9c.pth - -# inference with tta -wget -P checkpoint https://download.openmmlab.com/mmdetection/v2.0/retinanet/retinanet_r50_fpn_1x_coco/retinanet_r50_fpn_1x_coco_20200130-c2398f9e.pth - -python demo/large_image_demo.py \ - demo/large_image.jpg \ - configs/retinanet/retinanet_r50_fpn_1x_coco.py \ - checkpoint/retinanet_r50_fpn_1x_coco_20200130-c2398f9e.pth --tta - -``` - -## Multi-modal algorithm inference demo and evaluation - -As multimodal vision algorithms continue to evolve, MMDetection has also supported such algorithms. This section demonstrates how to use the demo and eval scripts corresponding to multimodal algorithms using the GLIP algorithm and model as the example. Moreover, MMDetection integrated a [gradio_demo project](../../../projects/gradio_demo/), which allows developers to quickly play with all image input tasks in MMDetection on their local devices. Check the [document](../../../projects/gradio_demo/README.md) for more details. - -### Preparation - -Please first make sure that you have the correct dependencies installed: - -```shell -# if source -pip install -r requirements/multimodal.txt - -# if wheel -mim install mmdet[multimodal] -``` - -MMDetection has already implemented GLIP algorithms and provided the weights, you can download directly from urls: - -```shell -cd mmdetection -wget https://download.openmmlab.com/mmdetection/v3.0/glip/glip_tiny_a_mmdet-b3654169.pth -``` - -### Inference - -Once the model is successfully downloaded, you can use the `demo/image_demo.py` script to run the inference. - -```shell -python demo/image_demo.py demo/demo.jpg glip_tiny_a_mmdet-b3654169.pth --texts bench -``` - -Demo result will be similar to this: - -
    - -
    - -If users would like to detect multiple targets, please declare them in the format of `xx. xx` after the `--texts`. - -```shell -python demo/image_demo.py demo/demo.jpg glip_tiny_a_mmdet-b3654169.pth --texts 'bench. car' -``` - -And the result will be like this one: - -
    - -
    - -You can also use a sentence as the input prompt for the `--texts` field, for example: - -```shell -python demo/image_demo.py demo/demo.jpg glip_tiny_a_mmdet-b3654169.pth --texts 'There are a lot of cars here.' -``` - -The result will be similar to this: - -
    - -
    - -### Evaluation - -The GLIP implementation in MMDetection does not have any performance degradation, our benchmark is as follows: - -| Model | official mAP | mmdet mAP | -| ----------------------- | :----------: | :-------: | -| glip_A_Swin_T_O365.yaml | 42.9 | 43.0 | -| glip_Swin_T_O365.yaml | 44.9 | 44.9 | -| glip_Swin_L.yaml | 51.4 | 51.3 | - -Users can use the test script we provided to run evaluation as well. Here is a basic example: - -```shell -# 1 gpu -python tools/test.py configs/glip/glip_atss_swin-t_fpn_dyhead_pretrain_obj365.py glip_tiny_a_mmdet-b3654169.pth - -# 8 GPU -./tools/dist_test.sh configs/glip/glip_atss_swin-t_fpn_dyhead_pretrain_obj365.py glip_tiny_a_mmdet-b3654169.pth 8 -``` diff --git a/docs/en/user_guides/init_cfg.md b/docs/en/user_guides/init_cfg.md deleted file mode 100644 index 312b67a875b..00000000000 --- a/docs/en/user_guides/init_cfg.md +++ /dev/null @@ -1,161 +0,0 @@ -# Weight initialization - -During training, a proper initialization strategy is beneficial to speeding up the training or obtaining a higher performance. [MMCV](https://github.com/open-mmlab/mmcv/blob/master/mmcv/cnn/utils/weight_init.py) provide some commonly used methods for initializing modules like `nn.Conv2d`. Model initialization in MMdetection mainly uses `init_cfg`. Users can initialize models with following two steps: - -1. Define `init_cfg` for a model or its components in `model_cfg`, but `init_cfg` of children components have higher priority and will override `init_cfg` of parents modules. -2. Build model as usual, but call `model.init_weights()` method explicitly, and model parameters will be initialized as configuration. - -The high-level workflow of initialization in MMdetection is : - -model_cfg(init_cfg) -> build_from_cfg -> model -> init_weight() -> initialize(self, self.init_cfg) -> children's init_weight() - -### Description - -It is dict or list\[dict\], and contains the following keys and values: - -- `type` (str), containing the initializer name in `INTIALIZERS`, and followed by arguments of the initializer. -- `layer` (str or list\[str\]), containing the names of basic layers in Pytorch or MMCV with learnable parameters that will be initialized, e.g. `'Conv2d'`,`'DeformConv2d'`. -- `override` (dict or list\[dict\]), containing the sub-modules that not inherit from BaseModule and whose initialization configuration is different from other layers' which are in `'layer'` key. Initializer defined in `type` will work for all layers defined in `layer`, so if sub-modules are not derived Classes of `BaseModule` but can be initialized as same ways of layers in `layer`, it does not need to use `override`. `override` contains: - - `type` followed by arguments of initializer; - - `name` to indicate sub-module which will be initialized. - -### Initialize parameters - -Inherit a new model from `mmcv.runner.BaseModule` or `mmdet.models` Here we show an example of FooModel. - -```python -import torch.nn as nn -from mmcv.runner import BaseModule - -class FooModel(BaseModule) - def __init__(self, - arg1, - arg2, - init_cfg=None): - super(FooModel, self).__init__(init_cfg) - ... -``` - -- Initialize model by using `init_cfg` directly in code - - ```python - import torch.nn as nn - from mmcv.runner import BaseModule - # or directly inherit mmdet models - - class FooModel(BaseModule) - def __init__(self, - arg1, - arg2, - init_cfg=XXX): - super(FooModel, self).__init__(init_cfg) - ... - ``` - -- Initialize model by using `init_cfg` directly in `mmcv.Sequential` or `mmcv.ModuleList` code - - ```python - from mmcv.runner import BaseModule, ModuleList - - class FooModel(BaseModule) - def __init__(self, - arg1, - arg2, - init_cfg=None): - super(FooModel, self).__init__(init_cfg) - ... - self.conv1 = ModuleList(init_cfg=XXX) - ``` - -- Initialize model by using `init_cfg` in config file - - ```python - model = dict( - ... - model = dict( - type='FooModel', - arg1=XXX, - arg2=XXX, - init_cfg=XXX), - ... - ``` - -### Usage of init_cfg - -1. Initialize model by `layer` key - - If we only define `layer`, it just initialize the layer in `layer` key. - - NOTE: Value of `layer` key is the class name with attributes weights and bias of Pytorch, (so such as `MultiheadAttention layer` is not supported). - -- Define `layer` key for initializing module with same configuration. - - ```python - init_cfg = dict(type='Constant', layer=['Conv1d', 'Conv2d', 'Linear'], val=1) - # initialize whole module with same configuration - ``` - -- Define `layer` key for initializing layer with different configurations. - -```python -init_cfg = [dict(type='Constant', layer='Conv1d', val=1), - dict(type='Constant', layer='Conv2d', val=2), - dict(type='Constant', layer='Linear', val=3)] -# nn.Conv1d will be initialized with dict(type='Constant', val=1) -# nn.Conv2d will be initialized with dict(type='Constant', val=2) -# nn.Linear will be initialized with dict(type='Constant', val=3) -``` - -2. Initialize model by `override` key - -- When initializing some specific part with its attribute name, we can use `override` key, and the value in `override` will ignore the value in init_cfg. - - ```python - # layers: - # self.feat = nn.Conv1d(3, 1, 3) - # self.reg = nn.Conv2d(3, 3, 3) - # self.cls = nn.Linear(1,2) - - init_cfg = dict(type='Constant', - layer=['Conv1d','Conv2d'], val=1, bias=2, - override=dict(type='Constant', name='reg', val=3, bias=4)) - # self.feat and self.cls will be initialized with dict(type='Constant', val=1, bias=2) - # The module called 'reg' will be initialized with dict(type='Constant', val=3, bias=4) - ``` - -- If `layer` is None in init_cfg, only sub-module with the name in override will be initialized, and type and other args in override can be omitted. - - ```python - # layers: - # self.feat = nn.Conv1d(3, 1, 3) - # self.reg = nn.Conv2d(3, 3, 3) - # self.cls = nn.Linear(1,2) - - init_cfg = dict(type='Constant', val=1, bias=2, override=dict(name='reg')) - - # self.feat and self.cls will be initialized by Pytorch - # The module called 'reg' will be initialized with dict(type='Constant', val=1, bias=2) - ``` - -- If we don't define `layer` key or `override` key, it will not initialize anything. - -- Invalid usage - - ```python - # It is invalid that override don't have name key - init_cfg = dict(type='Constant', layer=['Conv1d','Conv2d'], val=1, bias=2, - override=dict(type='Constant', val=3, bias=4)) - - # It is also invalid that override has name and other args except type - init_cfg = dict(type='Constant', layer=['Conv1d','Conv2d'], val=1, bias=2, - override=dict(name='reg', val=3, bias=4)) - ``` - -3. Initialize model with the pretrained model - - ```python - init_cfg = dict(type='Pretrained', - checkpoint='torchvision://resnet50') - ``` - -More details can refer to the documentation in [MMEngine](https://mmengine.readthedocs.io/en/latest/advanced_tutorials/initialize.html) diff --git a/docs/en/user_guides/label_studio.md b/docs/en/user_guides/label_studio.md deleted file mode 100644 index d4b37447349..00000000000 --- a/docs/en/user_guides/label_studio.md +++ /dev/null @@ -1,256 +0,0 @@ -# Semi-automatic Object Detection Annotation with MMDetection and Label-Studio - -Annotation data is a time-consuming and laborious task. This article introduces how to perform semi-automatic annotation using the RTMDet algorithm in MMDetection in conjunction with Label-Studio software. Specifically, using RTMDet to predict image annotations and then refining the annotations with Label-Studio. Community users can refer to this process and methodology and apply it to other fields. - -- RTMDet: RTMDet is a high-precision single-stage object detection algorithm developed by OpenMMLab, open-sourced in the MMDetection object detection toolbox. Its open-source license is Apache 2.0, and it can be used freely without restrictions by industrial users. - -- [Label Studio](https://github.com/heartexlabs/label-studio) is an excellent annotation software covering the functionality of dataset annotation in areas such as image classification, object detection, and segmentation. - -In this article, we will use [cat](https://download.openmmlab.com/mmyolo/data/cat_dataset.zip) images for semi-automatic annotation. - -## Environment Configuration - -To begin with, you need to create a virtual environment and then install PyTorch and MMCV. In this article, we will specify the versions of PyTorch and MMCV. Next, you can install MMDetection, Label-Studio, and label-studio-ml-backend using the following steps: - -Create a virtual environment: - -```shell -conda create -n rtmdet python=3.9 -y -conda activate rtmdet -``` - -Install PyTorch: - -```shell -# Linux and Windows CPU only -pip install torch==1.10.1+cpu torchvision==0.11.2+cpu torchaudio==0.10.1 -f https://download.pytorch.org/whl/cpu/torch_stable.html -# Linux and Windows CUDA 11.3 -pip install torch==1.10.1+cu113 torchvision==0.11.2+cu113 torchaudio==0.10.1 -f https://download.pytorch.org/whl/cu113/torch_stable.html -# OSX -pip install torch==1.10.1 torchvision==0.11.2 torchaudio==0.10.1 -``` - -Install MMCV: - -```shell -pip install -U openmim -mim install "mmcv>=2.0.0" -# Installing mmcv will automatically install mmengine -``` - -Install MMDetection: - -```shell -git clone https://github.com/open-mmlab/mmdetection -cd mmdetection -pip install -v -e . -``` - -Install Label-Studio and label-studio-ml-backend: - -```shell -# Installing Label-Studio may take some time, if the version is not found, please use the official source -pip install label-studio==1.7.2 -pip install label-studio-ml==1.0.9 -``` - -Download the rtmdet weights: - -```shell -cd path/to/mmetection -mkdir work_dirs -cd work_dirs -wget https://download.openmmlab.com/mmdetection/v3.0/rtmdet/rtmdet_m_8xb32-300e_coco/rtmdet_m_8xb32-300e_coco_20220719_112220-229f527c.pth -``` - -## Start the Service - -Start the RTMDet backend inference service: - -```shell -cd path/to/mmetection - -label-studio-ml start projects/LabelStudio/backend_template --with \ -config_file=configs/rtmdet/rtmdet_m_8xb32-300e_coco.py \ -checkpoint_file=./work_dirs/rtmdet_m_8xb32-300e_coco_20220719_112220-229f527c.pth \ -device=cpu \ ---port 8003 -# Set device=cpu to use CPU inference, and replace cpu with cuda:0 to use GPU inference. -``` - -![](https://cdn.vansin.top/picgo20230330131601.png) - -The RTMDet backend inference service has now been started. To configure it in the Label-Studio web system, use http://localhost:8003 as the backend inference service. - -Now, start the Label-Studio web service: - -```shell -label-studio start -``` - -![](https://cdn.vansin.top/picgo20230330132913.png) - -Open your web browser and go to http://localhost:8080/ to see the Label-Studio interface. - -![](https://cdn.vansin.top/picgo20230330133118.png) - -Register a user and then create an RTMDet-Semiautomatic-Label project. - -![](https://cdn.vansin.top/picgo20230330133333.png) - -Download the example cat images by running the following command and import them using the Data Import button: - -```shell -cd path/to/mmetection -mkdir data && cd data - -wget https://download.openmmlab.com/mmyolo/data/cat_dataset.zip && unzip cat_dataset.zip -``` - -![](https://cdn.vansin.top/picgo20230330133628.png) - -![](https://cdn.vansin.top/picgo20230330133715.png) - -Then, select the Object Detection With Bounding Boxes template. - -![](https://cdn.vansin.top/picgo20230330133807.png) - -```shell -airplane -apple -backpack -banana -baseball_bat -baseball_glove -bear -bed -bench -bicycle -bird -boat -book -bottle -bowl -broccoli -bus -cake -car -carrot -cat -cell_phone -chair -clock -couch -cow -cup -dining_table -dog -donut -elephant -fire_hydrant -fork -frisbee -giraffe -hair_drier -handbag -horse -hot_dog -keyboard -kite -knife -laptop -microwave -motorcycle -mouse -orange -oven -parking_meter -person -pizza -potted_plant -refrigerator -remote -sandwich -scissors -sheep -sink -skateboard -skis -snowboard -spoon -sports_ball -stop_sign -suitcase -surfboard -teddy_bear -tennis_racket -tie -toaster -toilet -toothbrush -traffic_light -train -truck -tv -umbrella -vase -wine_glass -zebra -``` - -Then, copy and add the above categories to Label-Studio and click Save. - -![](https://cdn.vansin.top/picgo20230330134027.png) - -In the Settings, click Add Model to add the RTMDet backend inference service. - -![](https://cdn.vansin.top/picgo20230330134320.png) - -Click Validate and Save, and then click Start Labeling. - -![](https://cdn.vansin.top/picgo20230330134424.png) - -If you see Connected as shown below, the backend inference service has been successfully added. - -![](https://cdn.vansin.top/picgo20230330134554.png) - -## Start Semi-Automatic Labeling - -Click on Label to start labeling. - -![](https://cdn.vansin.top/picgo20230330134804.png) - -We can see that the RTMDet backend inference service has successfully returned the predicted results and displayed them on the image. However, we noticed that the predicted bounding boxes for the cats are a bit too large and not very accurate. - -![](https://cdn.vansin.top/picgo20230403104419.png) - -We manually adjust the position of the cat bounding box, and then click Submit to complete the annotation of this image. - -![](https://cdn.vansin.top/picgo/20230403105923.png) - -After submitting all images, click export to export the labeled dataset in COCO format. - -![](https://cdn.vansin.top/picgo20230330135921.png) - -Use VS Code to open the unzipped folder to see the labeled dataset, which includes the images and the annotation files in JSON format. - -![](https://cdn.vansin.top/picgo20230330140321.png) - -At this point, the semi-automatic labeling is complete. We can use this dataset to train a more accurate model in MMDetection and then continue semi-automatic labeling on newly collected images with this model. This way, we can iteratively expand the high-quality dataset and improve the accuracy of the model. - -## Use MMYOLO as the Backend Inference Service - -If you want to use Label-Studio in MMYOLO, you can refer to replacing the config_file and checkpoint_file with the configuration file and weight file of MMYOLO when starting the backend inference service. - -```shell -cd path/to/mmetection - -label-studio-ml start projects/LabelStudio/backend_template --with \ -config_file= path/to/mmyolo_config.py \ -checkpoint_file= path/to/mmyolo_weights.pth \ -device=cpu \ ---port 8003 -# device=cpu is for using CPU inference. If using GPU inference, replace cpu with cuda:0. -``` - -Rotation object detection and instance segmentation are still under development, please stay tuned. diff --git a/docs/en/user_guides/new_model.md b/docs/en/user_guides/new_model.md deleted file mode 100644 index c7af855ae31..00000000000 --- a/docs/en/user_guides/new_model.md +++ /dev/null @@ -1,290 +0,0 @@ -# Train with customized models and standard datasets - -In this note, you will know how to train, test and inference your own customized models under standard datasets. We use the cityscapes dataset to train a customized Cascade Mask R-CNN R50 model as an example to demonstrate the whole process, which using [`AugFPN`](https://github.com/Gus-Guo/AugFPN) to replace the default `FPN` as neck, and add `Rotate` or `TranslateX` as training-time auto augmentation. - -The basic steps are as below: - -1. Prepare the standard dataset -2. Prepare your own customized model -3. Prepare a config -4. Train, test, and inference models on the standard dataset. - -## Prepare the standard dataset - -In this note, as we use the standard cityscapes dataset as an example. - -It is recommended to symlink the dataset root to `$MMDETECTION/data`. -If your folder structure is different, you may need to change the corresponding paths in config files. - -```none -mmdetection -├── mmdet -├── tools -├── configs -├── data -│ ├── coco -│ │ ├── annotations -│ │ ├── train2017 -│ │ ├── val2017 -│ │ ├── test2017 -│ ├── cityscapes -│ │ ├── annotations -│ │ ├── leftImg8bit -│ │ │ ├── train -│ │ │ ├── val -│ │ ├── gtFine -│ │ │ ├── train -│ │ │ ├── val -│ ├── VOCdevkit -│ │ ├── VOC2007 -│ │ ├── VOC2012 - -``` - -Or you can set your dataset root through - -```bash -export MMDET_DATASETS=$data_root -``` - -We will replace dataset root with `$MMDET_DATASETS`, so you don't have to modify the corresponding path in config files. - -The cityscapes annotations have to be converted into the coco format using `tools/dataset_converters/cityscapes.py`: - -```shell -pip install cityscapesscripts -python tools/dataset_converters/cityscapes.py ./data/cityscapes --nproc 8 --out-dir ./data/cityscapes/annotations -``` - -Currently, the config files in `cityscapes` use COCO pre-trained weights to initialize. -You could download the pre-trained models in advance if the network is unavailable or slow, otherwise, it would cause errors at the beginning of training. - -## Prepare your own customized model - -The second step is to use your own module or training setting. Assume that we want to implement a new neck called `AugFPN` to replace with the default `FPN` under the existing detector Cascade Mask R-CNN R50. The following implements `AugFPN` under MMDetection. - -### 1. Define a new neck (e.g. AugFPN) - -Firstly create a new file `mmdet/models/necks/augfpn.py`. - -```python -import torch.nn as nn -from mmdet.registry import MODELS - - -@MODELS.register_module() -class AugFPN(nn.Module): - - def __init__(self, - in_channels, - out_channels, - num_outs, - start_level=0, - end_level=-1, - add_extra_convs=False): - pass - - def forward(self, inputs): - # implementation is ignored - pass -``` - -### 2. Import the module - -You can either add the following line to `mmdet/models/necks/__init__.py`, - -```python -from .augfpn import AugFPN -``` - -or alternatively add - -```python -custom_imports = dict( - imports=['mmdet.models.necks.augfpn'], - allow_failed_imports=False) -``` - -to the config file and avoid modifying the original code. - -### 3. Modify the config file - -```python -neck=dict( - type='AugFPN', - in_channels=[256, 512, 1024, 2048], - out_channels=256, - num_outs=5) -``` - -For more detailed usages about customizing your own models (e.g. implement a new backbone, head, loss, etc) and runtime training settings (e.g. define a new optimizer, use gradient clip, customize training schedules and hooks, etc), please refer to the guideline [Customize Models](../advanced_guides/customize_models.md) and [Customize Runtime Settings](../advanced_guides/customize_runtime.md) respectively. - -## Prepare a config - -The third step is to prepare a config for your own training setting. Assume that we want to add `AugFPN` and `Rotate` or `Translate` augmentation to existing Cascade Mask R-CNN R50 to train the cityscapes dataset, and assume the config is under directory `configs/cityscapes/` and named as `cascade-mask-rcnn_r50_augfpn_autoaug-10e_cityscapes.py`, the config is as below. - -```python -# The new config inherits the base configs to highlight the necessary modification -_base_ = [ - '../_base_/models/cascade-mask-rcnn_r50_fpn.py', - '../_base_/datasets/cityscapes_instance.py', '../_base_/default_runtime.py' -] - -model = dict( - # set None to avoid loading ImageNet pre-trained backbone, - # instead here we set `load_from` to load from COCO pre-trained detectors. - backbone=dict(init_cfg=None), - # replace neck from defaultly `FPN` to our new implemented module `AugFPN` - neck=dict( - type='AugFPN', - in_channels=[256, 512, 1024, 2048], - out_channels=256, - num_outs=5), - # We also need to change the num_classes in head from 80 to 8, to match the - # cityscapes dataset's annotation. This modification involves `bbox_head` and `mask_head`. - roi_head=dict( - bbox_head=[ - dict( - type='Shared2FCBBoxHead', - in_channels=256, - fc_out_channels=1024, - roi_feat_size=7, - # change the number of classes from defaultly COCO to cityscapes - num_classes=8, - bbox_coder=dict( - type='DeltaXYWHBBoxCoder', - target_means=[0., 0., 0., 0.], - target_stds=[0.1, 0.1, 0.2, 0.2]), - reg_class_agnostic=True, - loss_cls=dict( - type='CrossEntropyLoss', - use_sigmoid=False, - loss_weight=1.0), - loss_bbox=dict(type='SmoothL1Loss', beta=1.0, - loss_weight=1.0)), - dict( - type='Shared2FCBBoxHead', - in_channels=256, - fc_out_channels=1024, - roi_feat_size=7, - # change the number of classes from defaultly COCO to cityscapes - num_classes=8, - bbox_coder=dict( - type='DeltaXYWHBBoxCoder', - target_means=[0., 0., 0., 0.], - target_stds=[0.05, 0.05, 0.1, 0.1]), - reg_class_agnostic=True, - loss_cls=dict( - type='CrossEntropyLoss', - use_sigmoid=False, - loss_weight=1.0), - loss_bbox=dict(type='SmoothL1Loss', beta=1.0, - loss_weight=1.0)), - dict( - type='Shared2FCBBoxHead', - in_channels=256, - fc_out_channels=1024, - roi_feat_size=7, - # change the number of classes from defaultly COCO to cityscapes - num_classes=8, - bbox_coder=dict( - type='DeltaXYWHBBoxCoder', - target_means=[0., 0., 0., 0.], - target_stds=[0.033, 0.033, 0.067, 0.067]), - reg_class_agnostic=True, - loss_cls=dict( - type='CrossEntropyLoss', - use_sigmoid=False, - loss_weight=1.0), - loss_bbox=dict(type='SmoothL1Loss', beta=1.0, loss_weight=1.0)) - ], - mask_head=dict( - type='FCNMaskHead', - num_convs=4, - in_channels=256, - conv_out_channels=256, - # change the number of classes from default COCO to cityscapes - num_classes=8, - loss_mask=dict( - type='CrossEntropyLoss', use_mask=True, loss_weight=1.0)))) - -# over-write `train_pipeline` for new added `AutoAugment` training setting -train_pipeline = [ - dict(type='LoadImageFromFile'), - dict(type='LoadAnnotations', with_bbox=True, with_mask=True), - dict( - type='AutoAugment', - policies=[ - [dict( - type='Rotate', - level=5, - img_border_value=(124, 116, 104), - prob=0.5) - ], - [dict(type='Rotate', level=7, img_border_value=(124, 116, 104)), - dict( - type='TranslateX', - level=5, - prob=0.5, - img_border_value=(124, 116, 104)) - ], - ]), - dict( - type='RandomResize', - scale=[(2048, 800), (2048, 1024)], - keep_ratio=True), - dict(type='RandomFlip', prob=0.5), - dict(type='PackDetInputs'), -] - -# set batch_size per gpu, and set new training pipeline -train_dataloader = dict( - batch_size=1, - num_workers=3, - # over-write `pipeline` with new training pipeline setting - dataset=dict(pipeline=train_pipeline)) - -# Set optimizer -optim_wrapper = dict( - type='OptimWrapper', - optimizer=dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0001)) - -# Set customized learning policy -param_scheduler = [ - dict( - type='LinearLR', start_factor=0.001, by_epoch=False, begin=0, end=500), - dict( - type='MultiStepLR', - begin=0, - end=10, - by_epoch=True, - milestones=[8], - gamma=0.1) -] - -# train, val, test loop config -train_cfg = dict(max_epochs=10, val_interval=1) - -# We can use the COCO pre-trained Cascade Mask R-CNN R50 model for a more stable performance initialization -load_from = 'https://download.openmmlab.com/mmdetection/v2.0/cascade_rcnn/cascade_mask_rcnn_r50_fpn_1x_coco/cascade_mask_rcnn_r50_fpn_1x_coco_20200203-9d4dcb24.pth' -``` - -## Train a new model - -To train a model with the new config, you can simply run - -```shell -python tools/train.py configs/cityscapes/cascade-mask-rcnn_r50_augfpn_autoaug-10e_cityscapes.py -``` - -For more detailed usages, please refer to the [training guide](train.md). - -## Test and inference - -To test the trained model, you can simply run - -```shell -python tools/test.py configs/cityscapes/cascade-mask-rcnn_r50_augfpn_autoaug-10e_cityscapes.py work_dirs/cascade-mask-rcnn_r50_augfpn_autoaug-10e_cityscapes/epoch_10.pth -``` - -For more detailed usages, please refer to the [testing guide](test.md). diff --git a/docs/en/user_guides/robustness_benchmarking.md b/docs/en/user_guides/robustness_benchmarking.md deleted file mode 100644 index f6579564293..00000000000 --- a/docs/en/user_guides/robustness_benchmarking.md +++ /dev/null @@ -1,110 +0,0 @@ -# Corruption Benchmarking - -## Introduction - -We provide tools to test object detection and instance segmentation models on the image corruption benchmark defined in [Benchmarking Robustness in Object Detection: Autonomous Driving when Winter is Coming](https://arxiv.org/abs/1907.07484). -This page provides basic tutorials how to use the benchmark. - -```latex -@article{michaelis2019winter, - title={Benchmarking Robustness in Object Detection: - Autonomous Driving when Winter is Coming}, - author={Michaelis, Claudio and Mitzkus, Benjamin and - Geirhos, Robert and Rusak, Evgenia and - Bringmann, Oliver and Ecker, Alexander S. and - Bethge, Matthias and Brendel, Wieland}, - journal={arXiv:1907.07484}, - year={2019} -} -``` - -![image corruption example](../../../resources/corruptions_sev_3.png) - -## About the benchmark - -To submit results to the benchmark please visit the [benchmark homepage](https://github.com/bethgelab/robust-detection-benchmark) - -The benchmark is modelled after the [imagenet-c benchmark](https://github.com/hendrycks/robustness) which was originally -published in [Benchmarking Neural Network Robustness to Common Corruptions and Perturbations](https://arxiv.org/abs/1903.12261) (ICLR 2019) by Dan Hendrycks and Thomas Dietterich. - -The image corruption functions are included in this library but can be installed separately using: - -```shell -pip install imagecorruptions -``` - -Compared to imagenet-c a few changes had to be made to handle images of arbitrary size and greyscale images. -We also modified the 'motion blur' and 'snow' corruptions to remove dependency from a linux specific library, -which would have to be installed separately otherwise. For details please refer to the [imagecorruptions repository](https://github.com/bethgelab/imagecorruptions). - -## Inference with pretrained models - -We provide a testing script to evaluate a models performance on any combination of the corruptions provided in the benchmark. - -### Test a dataset - -- [x] single GPU testing -- [ ] multiple GPU testing -- [ ] visualize detection results - -You can use the following commands to test a models performance under the 15 corruptions used in the benchmark. - -```shell -# single-gpu testing -python tools/analysis_tools/test_robustness.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [--out ${RESULT_FILE}] -``` - -Alternatively different group of corruptions can be selected. - -```shell -# noise -python tools/analysis_tools/test_robustness.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [--out ${RESULT_FILE}] --corruptions noise - -# blur -python tools/analysis_tools/test_robustness.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [--out ${RESULT_FILE}] --corruptions blur - -# wetaher -python tools/analysis_tools/test_robustness.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [--out ${RESULT_FILE}] --corruptions weather - -# digital -python tools/analysis_tools/test_robustness.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [--out ${RESULT_FILE}] --corruptions digital -``` - -Or a costom set of corruptions e.g.: - -```shell -# gaussian noise, zoom blur and snow -python tools/analysis_tools/test_robustness.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [--out ${RESULT_FILE}] [--eval ${EVAL_METRICS}] --corruptions gaussian_noise zoom_blur snow -``` - -Finally the corruption severities to evaluate can be chosen. -Severity 0 corresponds to clean data and the effect increases from 1 to 5. - -```shell -# severity 1 -python tools/analysis_tools/test_robustness.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [--out ${RESULT_FILE}] [--eval ${EVAL_METRICS}] --severities 1 - -# severities 0,2,4 -python tools/analysis_tools/test_robustness.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [--out ${RESULT_FILE}] [--eval ${EVAL_METRICS}] --severities 0 2 4 -``` - -## Results for modelzoo models - -The results on COCO 2017val are shown in the below table. - -| Model | Backbone | Style | Lr schd | box AP clean | box AP corr. | box % | mask AP clean | mask AP corr. | mask % | -| :-----------------: | :-----------------: | :-----: | :-----: | :----------: | :----------: | :---: | :-----------: | :-----------: | :----: | -| Faster R-CNN | R-50-FPN | pytorch | 1x | 36.3 | 18.2 | 50.2 | - | - | - | -| Faster R-CNN | R-101-FPN | pytorch | 1x | 38.5 | 20.9 | 54.2 | - | - | - | -| Faster R-CNN | X-101-32x4d-FPN | pytorch | 1x | 40.1 | 22.3 | 55.5 | - | - | - | -| Faster R-CNN | X-101-64x4d-FPN | pytorch | 1x | 41.3 | 23.4 | 56.6 | - | - | - | -| Faster R-CNN | R-50-FPN-DCN | pytorch | 1x | 40.0 | 22.4 | 56.1 | - | - | - | -| Faster R-CNN | X-101-32x4d-FPN-DCN | pytorch | 1x | 43.4 | 26.7 | 61.6 | - | - | - | -| Mask R-CNN | R-50-FPN | pytorch | 1x | 37.3 | 18.7 | 50.1 | 34.2 | 16.8 | 49.1 | -| Mask R-CNN | R-50-FPN-DCN | pytorch | 1x | 41.1 | 23.3 | 56.7 | 37.2 | 20.7 | 55.7 | -| Cascade R-CNN | R-50-FPN | pytorch | 1x | 40.4 | 20.1 | 49.7 | - | - | - | -| Cascade Mask R-CNN | R-50-FPN | pytorch | 1x | 41.2 | 20.7 | 50.2 | 35.7 | 17.6 | 49.3 | -| RetinaNet | R-50-FPN | pytorch | 1x | 35.6 | 17.8 | 50.1 | - | - | - | -| Hybrid Task Cascade | X-101-64x4d-FPN-DCN | pytorch | 1x | 50.6 | 32.7 | 64.7 | 43.8 | 28.1 | 64.0 | - -Results may vary slightly due to the stochastic application of the corruptions. diff --git a/docs/en/user_guides/semi_det.md b/docs/en/user_guides/semi_det.md deleted file mode 100644 index ee86c302f33..00000000000 --- a/docs/en/user_guides/semi_det.md +++ /dev/null @@ -1,325 +0,0 @@ -# Semi-supervised Object Detection - -Semi-supervised object detection uses both labeled data and unlabeled data for training. It not only reduces the annotation burden for training high-performance object detectors but also further improves the object detector by using a large number of unlabeled data. - -A typical procedure to train a semi-supervised object detector is as below: - -- [Semi-supervised Object Detection](#semi-supervised-object-detection) - - [Prepare and split dataset](#prepare-and-split-dataset) - - [Configure multi-branch pipeline](#configure-multi-branch-pipeline) - - [Configure semi-supervised dataloader](#configure-semi-supervised-dataloader) - - [Configure semi-supervised model](#configure-semi-supervised-model) - - [Configure MeanTeacherHook](#configure-meanteacherhook) - - [Configure TeacherStudentValLoop](#configure-teacherstudentvalloop) - -## Prepare and split dataset - -We provide a dataset download script, which downloads the coco2017 dataset by default and decompresses it automatically. - -```shell -python tools/misc/download_dataset.py -``` - -The decompressed dataset directory structure is as below: - -```plain -mmdetection -├── data -│ ├── coco -│ │ ├── annotations -│ │ │ ├── image_info_unlabeled2017.json -│ │ │ ├── instances_train2017.json -│ │ │ ├── instances_val2017.json -│ │ ├── test2017 -│ │ ├── train2017 -│ │ ├── unlabeled2017 -│ │ ├── val2017 -``` - -There are two common experimental settings for semi-supervised object detection on the coco2017 dataset: - -(1) Split `train2017` according to a fixed percentage (1%, 2%, 5% and 10%) as a labeled dataset, and the rest of `train2017` as an unlabeled dataset. Because the different splits of `train2017` as labeled datasets will cause significant fluctuation on the accuracy of the semi-supervised detectors, five-fold cross-validation is used in practice to evaluate the algorithm. We provide the dataset split script: - -```shell -python tools/misc/split_coco.py -``` - -By default, the script will split `train2017` according to the labeled data ratio 1%, 2%, 5% and 10%, and each split will be randomly repeated 5 times for cross-validation. The generated semi-supervised annotation file name format is as below: - -- the name format of labeled dataset: `instances_train2017.{fold}@{percent}.json` -- the name format of unlabeled dataset: `instances_train2017.{fold}@{percent}-unlabeled.json` - -Here, `fold` is used for cross-validation, and `percent` represents the ratio of labeled data. The directory structure of the divided dataset is as below: - -```plain -mmdetection -├── data -│ ├── coco -│ │ ├── annotations -│ │ │ ├── image_info_unlabeled2017.json -│ │ │ ├── instances_train2017.json -│ │ │ ├── instances_val2017.json -│ │ ├── semi_anns -│ │ │ ├── instances_train2017.1@1.json -│ │ │ ├── instances_train2017.1@1-unlabeled.json -│ │ │ ├── instances_train2017.1@2.json -│ │ │ ├── instances_train2017.1@2-unlabeled.json -│ │ │ ├── instances_train2017.1@5.json -│ │ │ ├── instances_train2017.1@5-unlabeled.json -│ │ │ ├── instances_train2017.1@10.json -│ │ │ ├── instances_train2017.1@10-unlabeled.json -│ │ │ ├── instances_train2017.2@1.json -│ │ │ ├── instances_train2017.2@1-unlabeled.json -│ │ ├── test2017 -│ │ ├── train2017 -│ │ ├── unlabeled2017 -│ │ ├── val2017 -``` - -(2) Use `train2017` as the labeled dataset and `unlabeled2017` as the unlabeled dataset. Since `image_info_unlabeled2017.json` does not contain `categories` information, the `CocoDataset` cannot be initialized, so you need to write the `categories` of `instances_train2017.json` into `image_info_unlabeled2017.json` and save it as `instances_unlabeled2017.json`, the relevant script is as below: - -```python -from mmengine.fileio import load, dump - -anns_train = load('instances_train2017.json') -anns_unlabeled = load('image_info_unlabeled2017.json') -anns_unlabeled['categories'] = anns_train['categories'] -dump(anns_unlabeled, 'instances_unlabeled2017.json') -``` - -The processed dataset directory is as below: - -```plain -mmdetection -├── data -│ ├── coco -│ │ ├── annotations -│ │ │ ├── image_info_unlabeled2017.json -│ │ │ ├── instances_train2017.json -│ │ │ ├── instances_unlabeled2017.json -│ │ │ ├── instances_val2017.json -│ │ ├── test2017 -│ │ ├── train2017 -│ │ ├── unlabeled2017 -│ │ ├── val2017 -``` - -## Configure multi-branch pipeline - -There are two main approaches to semi-supervised learning, -[consistency regularization](https://research.nvidia.com/sites/default/files/publications/laine2017iclr_paper.pdf) -and [pseudo label](https://www.researchgate.net/profile/Dong-Hyun-Lee/publication/280581078_Pseudo-Label_The_Simple_and_Efficient_Semi-Supervised_Learning_Method_for_Deep_Neural_Networks/links/55bc4ada08ae092e9660b776/Pseudo-Label-The-Simple-and-Efficient-Semi-Supervised-Learning-Method-for-Deep-Neural-Networks.pdf). -Consistency regularization often requires some careful design, while pseudo label have a simpler form and are easier to extend to downstream tasks. -We adopt a teacher-student joint training semi-supervised object detection framework based on pseudo label, so labeled data and unlabeled data need to configure different data pipeline: - -(1) Pipeline for labeled data: - -```python -# pipeline used to augment labeled data, -# which will be sent to student model for supervised training. -sup_pipeline = [ - dict(type='LoadImageFromFile', backend_args=backend_args), - dict(type='LoadAnnotations', with_bbox=True), - dict(type='RandomResize', scale=scale, keep_ratio=True), - dict(type='RandomFlip', prob=0.5), - dict(type='RandAugment', aug_space=color_space, aug_num=1), - dict(type='FilterAnnotations', min_gt_bbox_wh=(1e-2, 1e-2)), - dict(type='MultiBranch', sup=dict(type='PackDetInputs')) -] -``` - -(2) Pipeline for unlabeled data: - -```python -# pipeline used to augment unlabeled data weakly, -# which will be sent to teacher model for predicting pseudo instances. -weak_pipeline = [ - dict(type='RandomResize', scale=scale, keep_ratio=True), - dict(type='RandomFlip', prob=0.5), - dict( - type='PackDetInputs', - meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape', - 'scale_factor', 'flip', 'flip_direction', - 'homography_matrix')), -] - -# pipeline used to augment unlabeled data strongly, -# which will be sent to student model for unsupervised training. -strong_pipeline = [ - dict(type='RandomResize', scale=scale, keep_ratio=True), - dict(type='RandomFlip', prob=0.5), - dict( - type='RandomOrder', - transforms=[ - dict(type='RandAugment', aug_space=color_space, aug_num=1), - dict(type='RandAugment', aug_space=geometric, aug_num=1), - ]), - dict(type='RandomErasing', n_patches=(1, 5), ratio=(0, 0.2)), - dict(type='FilterAnnotations', min_gt_bbox_wh=(1e-2, 1e-2)), - dict( - type='PackDetInputs', - meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape', - 'scale_factor', 'flip', 'flip_direction', - 'homography_matrix')), -] - -# pipeline used to augment unlabeled data into different views -unsup_pipeline = [ - dict(type='LoadImageFromFile', backend_args=backend_args), - dict(type='LoadEmptyAnnotations'), - dict( - type='MultiBranch', - unsup_teacher=weak_pipeline, - unsup_student=strong_pipeline, - ) -] -``` - -## Configure semi-supervised dataloader - -(1) Build a semi-supervised dataset. Use `ConcatDataset` to concatenate labeled and unlabeled datasets. - -```python -labeled_dataset = dict( - type=dataset_type, - data_root=data_root, - ann_file='annotations/instances_train2017.json', - data_prefix=dict(img='train2017/'), - filter_cfg=dict(filter_empty_gt=True, min_size=32), - pipeline=sup_pipeline) - -unlabeled_dataset = dict( - type=dataset_type, - data_root=data_root, - ann_file='annotations/instances_unlabeled2017.json', - data_prefix=dict(img='unlabeled2017/'), - filter_cfg=dict(filter_empty_gt=False), - pipeline=unsup_pipeline) - -train_dataloader = dict( - batch_size=batch_size, - num_workers=num_workers, - persistent_workers=True, - sampler=dict( - type='GroupMultiSourceSampler', - batch_size=batch_size, - source_ratio=[1, 4]), - dataset=dict( - type='ConcatDataset', datasets=[labeled_dataset, unlabeled_dataset])) -``` - -(2) Use multi-source dataset sampler. Use `GroupMultiSourceSampler` to sample data form batches from `labeled_dataset` and `labeled_dataset`, `source_ratio` controls the proportion of labeled data and unlabeled data in the batch. `GroupMultiSourceSampler` also ensures that the images in the same batch have similar aspect ratios. If you don't need to guarantee the aspect ratio of the images in the batch, you can use `MultiSourceSampler`. The sampling diagram of `GroupMultiSourceSampler` is as below: - -
    - -
    - -`sup=1000` indicates that the scale of the labeled dataset is 1000, `sup_h=200` indicates that the scale of the images with an aspect ratio greater than or equal to 1 in the labeled dataset is 200, and `sup_w=800` indicates that the scale of the images with an aspect ratio less than 1 in the labeled dataset is 800, -`unsup=9000` indicates that the scale of the unlabeled dataset is 9000, `unsup_h=1800` indicates that the scale of the images with an aspect ratio greater than or equal to 1 in the unlabeled dataset is 1800, and `unsup_w=7200` indicates the scale of the images with an aspect ratio less than 1 in the unlabeled dataset is 7200. -`GroupMultiSourceSampler` randomly selects a group according to the overall aspect ratio distribution of the images in the labeled dataset and the unlabeled dataset, and then sample data to form batches from the two datasets according to `source_ratio`, so labeled datasets and unlabeled datasets have different repetitions. - -## Configure semi-supervised model - -We choose `Faster R-CNN` as `detector` for semi-supervised training. Take the semi-supervised object detection algorithm `SoftTeacher` as an example, -the model configuration can be inherited from `_base_/models/faster-rcnn_r50_fpn.py`, replacing the backbone network of the detector with `caffe` style. -Note that unlike the supervised training configs, `Faster R-CNN` as `detector` is an attribute of `model`, not `model` . -In addition, `data_preprocessor` needs to be set to `MultiBranchDataPreprocessor`, which is used to pad and normalize images from different pipelines. -Finally, parameters required for semi-supervised training and testing can be configured via `semi_train_cfg` and `semi_test_cfg`. - -```python -_base_ = [ - '../_base_/models/faster-rcnn_r50_fpn.py', '../_base_/default_runtime.py', - '../_base_/datasets/semi_coco_detection.py' -] - -detector = _base_.model -detector.data_preprocessor = dict( - type='DetDataPreprocessor', - mean=[103.530, 116.280, 123.675], - std=[1.0, 1.0, 1.0], - bgr_to_rgb=False, - pad_size_divisor=32) -detector.backbone = dict( - type='ResNet', - depth=50, - num_stages=4, - out_indices=(0, 1, 2, 3), - frozen_stages=1, - norm_cfg=dict(type='BN', requires_grad=False), - norm_eval=True, - style='caffe', - init_cfg=dict( - type='Pretrained', - checkpoint='open-mmlab://detectron2/resnet50_caffe')) - -model = dict( - _delete_=True, - type='SoftTeacher', - detector=detector, - data_preprocessor=dict( - type='MultiBranchDataPreprocessor', - data_preprocessor=detector.data_preprocessor), - semi_train_cfg=dict( - freeze_teacher=True, - sup_weight=1.0, - unsup_weight=4.0, - pseudo_label_initial_score_thr=0.5, - rpn_pseudo_thr=0.9, - cls_pseudo_thr=0.9, - reg_pseudo_thr=0.02, - jitter_times=10, - jitter_scale=0.06, - min_pseudo_bbox_wh=(1e-2, 1e-2)), - semi_test_cfg=dict(predict_on='teacher')) -``` - -In addition, we also support semi-supervised training for other detection models, such as `RetinaNet` and `Cascade R-CNN`. Since `SoftTeacher` only supports `Faster R-CNN`, it needs to be replaced with `SemiBaseDetector`, example is as below: - -```python -_base_ = [ - '../_base_/models/retinanet_r50_fpn.py', '../_base_/default_runtime.py', - '../_base_/datasets/semi_coco_detection.py' -] - -detector = _base_.model - -model = dict( - _delete_=True, - type='SemiBaseDetector', - detector=detector, - data_preprocessor=dict( - type='MultiBranchDataPreprocessor', - data_preprocessor=detector.data_preprocessor), - semi_train_cfg=dict( - freeze_teacher=True, - sup_weight=1.0, - unsup_weight=1.0, - cls_pseudo_thr=0.9, - min_pseudo_bbox_wh=(1e-2, 1e-2)), - semi_test_cfg=dict(predict_on='teacher')) -``` - -Following the semi-supervised training configuration of `SoftTeacher`, change `batch_size` to 2 and `source_ratio` to `[1, 1]`, the experimental results of supervised and semi-supervised training of `RetinaNet`, `Faster R-CNN`, `Cascade R-CNN` and `SoftTeacher` on the 10% coco `train2017` are as below: - -| Model | Detector | BackBone | Style | sup-0.1-coco mAP | semi-0.1-coco mAP | -| :--------------: | :-----------: | :------: | :---: | :--------------: | :---------------: | -| SemiBaseDetector | RetinaNet | R-50-FPN | caffe | 23.5 | 27.7 | -| SemiBaseDetector | Faster R-CNN | R-50-FPN | caffe | 26.7 | 28.4 | -| SemiBaseDetector | Cascade R-CNN | R-50-FPN | caffe | 28.0 | 29.7 | -| SoftTeacher | Faster R-CNN | R-50-FPN | caffe | 26.7 | 31.1 | - -## Configure MeanTeacherHook - -Usually, the teacher model is updated by Exponential Moving Average (EMA) the student model, and then the teacher model is optimized with the optimization of the student model, which can be achieved by configuring `custom_hooks`: - -```python -custom_hooks = [dict(type='MeanTeacherHook')] -``` - -## Configure TeacherStudentValLoop - -Since there are two models in the teacher-student joint training framework, we can replace `ValLoop` with `TeacherStudentValLoop` to test the accuracy of both models during the training process. - -```python -val_cfg = dict(type='TeacherStudentValLoop') -``` diff --git a/docs/en/user_guides/single_stage_as_rpn.md b/docs/en/user_guides/single_stage_as_rpn.md deleted file mode 100644 index 93a48dd7c5c..00000000000 --- a/docs/en/user_guides/single_stage_as_rpn.md +++ /dev/null @@ -1,176 +0,0 @@ -# Use a single stage detector as RPN - -Region proposal network (RPN) is a submodule in [Faster R-CNN](https://arxiv.org/abs/1506.01497), which generates proposals for the second stage of Faster R-CNN. Most two-stage detectors in MMDetection use [`RPNHead`](../../../mmdet/models/dense_heads/rpn_head.py) to generate proposals as RPN. However, any single-stage detector can serve as an RPN since their bounding box predictions can also be regarded as region proposals and thus be refined in the R-CNN. Therefore, MMDetection v3.0 supports that. - -To illustrate the whole process, here we give an example of how to use an anchor-free single-stage model [FCOS](../../../configs/fcos/fcos_r50-caffe_fpn_gn-head_1x_coco.py) as an RPN in [Faster R-CNN](../../../configs/faster_rcnn/faster-rcnn_r50_fpn_fcos-rpn_1x_coco.py). - -The outline of this tutorial is as below: - -1. Use `FCOSHead` as an `RPNHead` in Faster R-CNN -2. Evaluate proposals -3. Train the customized Faster R-CNN with pre-trained FCOS - -## Use `FCOSHead` as an `RPNHead` in Faster R-CNN - -To set `FCOSHead` as an `RPNHead` in Faster R-CNN, we should create a new config file named `configs/faster_rcnn/faster-rcnn_r50_fpn_fcos-rpn_1x_coco.py`, and replace with the setting of `rpn_head` with the setting of `bbox_head` in `configs/fcos/fcos_r50-caffe_fpn_gn-head_1x_coco.py`. Besides, we still use the neck setting of FCOS with strides of `[8, 16, 32, 64, 128]`, and update `featmap_strides` of `bbox_roi_extractor` to `[8, 16, 32, 64, 128]`. To avoid loss goes NAN, we apply warmup during the first 1000 iterations instead of the first 500 iterations, which means that the lr increases more slowly. The config is as follows: - -```python -_base_ = [ - '../_base_/models/faster-rcnn_r50_fpn.py', - '../_base_/datasets/coco_detection.py', - '../_base_/schedules/schedule_1x.py', '../_base_/default_runtime.py' -] - -model = dict( - # copied from configs/fcos/fcos_r50-caffe_fpn_gn-head_1x_coco.py - neck=dict( - start_level=1, - add_extra_convs='on_output', # use P5 - relu_before_extra_convs=True), - rpn_head=dict( - _delete_=True, # ignore the unused old settings - type='FCOSHead', - num_classes=1, # num_classes = 1 for rpn, if num_classes > 1, it will be set to 1 in TwoStageDetector automatically - in_channels=256, - stacked_convs=4, - feat_channels=256, - strides=[8, 16, 32, 64, 128], - loss_cls=dict( - type='FocalLoss', - use_sigmoid=True, - gamma=2.0, - alpha=0.25, - loss_weight=1.0), - loss_bbox=dict(type='IoULoss', loss_weight=1.0), - loss_centerness=dict( - type='CrossEntropyLoss', use_sigmoid=True, loss_weight=1.0)), - roi_head=dict( # update featmap_strides due to the strides in neck - bbox_roi_extractor=dict(featmap_strides=[8, 16, 32, 64, 128]))) - -# learning rate -param_scheduler = [ - dict( - type='LinearLR', start_factor=0.001, by_epoch=False, begin=0, - end=1000), # Slowly increase lr, otherwise loss becomes NAN - dict( - type='MultiStepLR', - begin=0, - end=12, - by_epoch=True, - milestones=[8, 11], - gamma=0.1) -] -``` - -Then, we could use the following command to train our customized model. For more training commands, please refer to [here](train.md). - -```python -# training with 8 GPUS -bash tools/dist_train.sh configs/faster_rcnn/faster-rcnn_r50_fpn_fcos-rpn_1x_coco.py \ - 8 \ - --work-dir ./work_dirs/faster-rcnn_r50_fpn_fcos-rpn_1x_coco -``` - -## Evaluate proposals - -The quality of proposals is of great importance to the performance of detector, therefore, we also provide a way to evaluate proposals. Same as above, create a new config file named `configs/rpn/fcos-rpn_r50_fpn_1x_coco.py`, and replace with setting of `rpn_head` with the setting of `bbox_head` in `configs/fcos/fcos_r50-caffe_fpn_gn-head_1x_coco.py`. - -```python -_base_ = [ - '../_base_/models/rpn_r50_fpn.py', '../_base_/datasets/coco_detection.py', - '../_base_/schedules/schedule_1x.py', '../_base_/default_runtime.py' -] - -val_evaluator = dict(metric='proposal_fast') -test_evaluator = val_evaluator - -model = dict( - # copied from configs/fcos/fcos_r50-caffe_fpn_gn-head_1x_coco.py - neck=dict( - start_level=1, - add_extra_convs='on_output', # use P5 - relu_before_extra_convs=True), - rpn_head=dict( - _delete_=True, # ignore the unused old settings - type='FCOSHead', - num_classes=1, # num_classes = 1 for rpn, if num_classes > 1, it will be set to 1 in RPN automatically - in_channels=256, - stacked_convs=4, - feat_channels=256, - strides=[8, 16, 32, 64, 128], - loss_cls=dict( - type='FocalLoss', - use_sigmoid=True, - gamma=2.0, - alpha=0.25, - loss_weight=1.0), - loss_bbox=dict(type='IoULoss', loss_weight=1.0), - loss_centerness=dict( - type='CrossEntropyLoss', use_sigmoid=True, loss_weight=1.0))) -``` - -Suppose we have the checkpoint `./work_dirs/faster-rcnn_r50_fpn_fcos-rpn_1x_coco/epoch_12.pth` after training, then we can evaluate the quality of proposals with the following command. - -```python -# testing with 8 GPUs -bash tools/dist_test.sh \ - configs/rpn/fcos-rpn_r50_fpn_1x_coco.py \ - ./work_dirs/faster-rcnn_r50_fpn_fcos-rpn_1x_coco/epoch_12.pth \ - 8 -``` - -## Train the customized Faster R-CNN with pre-trained FCOS - -Pre-training not only speeds up convergence of training, but also improves the performance of the detector. Therefore, here we give an example to illustrate how to do use a pre-trained FCOS as an RPN to accelerate training and improve the accuracy. Suppose we want to use `FCOSHead` as an rpn head in Faster R-CNN and train with the pre-trained [`fcos_r50-caffe_fpn_gn-head_1x_coco`](https://download.openmmlab.com/mmdetection/v2.0/fcos/fcos_r50_caffe_fpn_gn-head_1x_coco/fcos_r50_caffe_fpn_gn-head_1x_coco-821213aa.pth). The content of config file named `configs/faster_rcnn/faster-rcnn_r50-caffe_fpn_fcos-rpn_1x_coco.py` is as the following. Note that `fcos_r50-caffe_fpn_gn-head_1x_coco` uses a caffe version of ResNet50, the pixel mean and std in `data_preprocessor` thus need to be updated. - -```python -_base_ = [ - '../_base_/models/faster-rcnn_r50_fpn.py', - '../_base_/datasets/coco_detection.py', - '../_base_/schedules/schedule_1x.py', '../_base_/default_runtime.py' -] - -model = dict( - data_preprocessor=dict( - mean=[103.530, 116.280, 123.675], - std=[1.0, 1.0, 1.0], - bgr_to_rgb=False), - backbone=dict( - norm_cfg=dict(type='BN', requires_grad=False), - style='caffe', - init_cfg=None), # the checkpoint in ``load_from`` contains the weights of backbone - neck=dict( - start_level=1, - add_extra_convs='on_output', # use P5 - relu_before_extra_convs=True), - rpn_head=dict( - _delete_=True, # ignore the unused old settings - type='FCOSHead', - num_classes=1, # num_classes = 1 for rpn, if num_classes > 1, it will be set to 1 in TwoStageDetector automatically - in_channels=256, - stacked_convs=4, - feat_channels=256, - strides=[8, 16, 32, 64, 128], - loss_cls=dict( - type='FocalLoss', - use_sigmoid=True, - gamma=2.0, - alpha=0.25, - loss_weight=1.0), - loss_bbox=dict(type='IoULoss', loss_weight=1.0), - loss_centerness=dict( - type='CrossEntropyLoss', use_sigmoid=True, loss_weight=1.0)), - roi_head=dict( # update featmap_strides due to the strides in neck - bbox_roi_extractor=dict(featmap_strides=[8, 16, 32, 64, 128]))) - -load_from = 'https://download.openmmlab.com/mmdetection/v2.0/fcos/fcos_r50_caffe_fpn_gn-head_1x_coco/fcos_r50_caffe_fpn_gn-head_1x_coco-821213aa.pth' -``` - -The command for training is as below. - -```python -bash tools/dist_train.sh \ - configs/faster_rcnn/faster-rcnn_r50-caffe_fpn_fcos-rpn_1x_coco.py \ - 8 \ - --work-dir ./work_dirs/faster-rcnn_r50-caffe_fpn_fcos-rpn_1x_coco -``` diff --git a/docs/en/user_guides/test.md b/docs/en/user_guides/test.md deleted file mode 100644 index 129a2409021..00000000000 --- a/docs/en/user_guides/test.md +++ /dev/null @@ -1,303 +0,0 @@ -# Test existing models on standard datasets - -To evaluate a model's accuracy, one usually tests the model on some standard datasets, please refer to [dataset prepare guide](dataset_prepare.md) to prepare the dataset. - -This section will show how to test existing models on supported datasets. - -## Test existing models - -We provide testing scripts for evaluating an existing model on the whole dataset (COCO, PASCAL VOC, Cityscapes, etc.). -The following testing environments are supported: - -- single GPU -- CPU -- single node multiple GPUs -- multiple nodes - -Choose the proper script to perform testing depending on the testing environment. - -```shell -# Single-gpu testing -python tools/test.py \ - ${CONFIG_FILE} \ - ${CHECKPOINT_FILE} \ - [--out ${RESULT_FILE}] \ - [--show] - -# CPU: disable GPUs and run single-gpu testing script -export CUDA_VISIBLE_DEVICES=-1 -python tools/test.py \ - ${CONFIG_FILE} \ - ${CHECKPOINT_FILE} \ - [--out ${RESULT_FILE}] \ - [--show] - -# Multi-gpu testing -bash tools/dist_test.sh \ - ${CONFIG_FILE} \ - ${CHECKPOINT_FILE} \ - ${GPU_NUM} \ - [--out ${RESULT_FILE}] -``` - -`tools/dist_test.sh` also supports multi-node testing, but relies on PyTorch's [launch utility](https://pytorch.org/docs/stable/distributed.html#launch-utility). - -Optional arguments: - -- `RESULT_FILE`: Filename of the output results in pickle format. If not specified, the results will not be saved to a file. -- `--show`: If specified, detection results will be plotted on the images and shown in a new window. It is only applicable to single GPU testing and used for debugging and visualization. Please make sure that GUI is available in your environment. Otherwise, you may encounter an error like `cannot connect to X server`. -- `--show-dir`: If specified, detection results will be plotted on the images and saved to the specified directory. It is only applicable to single GPU testing and used for debugging and visualization. You do NOT need a GUI available in your environment for using this option. -- `--work-dir`: If specified, detection results containing evaluation metrics will be saved to the specified directory. -- `--cfg-options`: If specified, the key-value pair optional cfg will be merged into config file - -## Examples - -Assuming that you have already downloaded the checkpoints to the directory `checkpoints/`. - -1. Test RTMDet and visualize the results. Press any key for the next image. - Config and checkpoint files are available [here](https://github.com/open-mmlab/mmdetection/tree/main/configs/rtmdet). - - ```shell - python tools/test.py \ - configs/rtmdet/rtmdet_l_8xb32-300e_coco.py \ - checkpoints/rtmdet_l_8xb32-300e_coco_20220719_112030-5a0be7c4.pth \ - --show - ``` - -2. Test RTMDet and save the painted images for future visualization. - Config and checkpoint files are available [here](https://github.com/open-mmlab/mmdetection/tree/main/configs/rtmdet). - - ```shell - python tools/test.py \ - configs/rtmdet/rtmdet_l_8xb32-300e_coco.py \ - checkpoints/rtmdet_l_8xb32-300e_coco_20220719_112030-5a0be7c4.pth \ - --show-dir faster_rcnn_r50_fpn_1x_results - ``` - -3. Test Faster R-CNN on PASCAL VOC (without saving the test results). - Config and checkpoint files are available [here](../../../configs/pascal_voc). - - ```shell - python tools/test.py \ - configs/pascal_voc/faster-rcnn_r50_fpn_1x_voc0712.py \ - checkpoints/faster_rcnn_r50_fpn_1x_voc0712_20200624-c9895d40.pth - ``` - -4. Test Mask R-CNN with 8 GPUs, and evaluate. - Config and checkpoint files are available [here](../../../configs/mask_rcnn). - - ```shell - ./tools/dist_test.sh \ - configs/mask-rcnn_r50_fpn_1x_coco.py \ - checkpoints/mask_rcnn_r50_fpn_1x_coco_20200205-d4b0c5d6.pth \ - 8 \ - --out results.pkl - ``` - -5. Test Mask R-CNN with 8 GPUs, and evaluate the metric **class-wise**. - Config and checkpoint files are available [here](../../../configs/mask_rcnn). - - ```shell - ./tools/dist_test.sh \ - configs/mask_rcnn/mask-rcnn_r50_fpn_1x_coco.py \ - checkpoints/mask_rcnn_r50_fpn_1x_coco_20200205-d4b0c5d6.pth \ - 8 \ - --out results.pkl \ - --cfg-options test_evaluator.classwise=True - ``` - -6. Test Mask R-CNN on COCO test-dev with 8 GPUs, and generate JSON files for submitting to the official evaluation server. - Config and checkpoint files are available [here](../../../configs/mask_rcnn). - - Replace the original test_evaluator and test_dataloader with test_evaluator and test_dataloader in the comment in [config](../../../configs/_base_/datasets/coco_instance.py) and run: - - ```shell - ./tools/dist_test.sh \ - configs/mask_rcnn/mask-rcnn_r50_fpn_1x_coco.py \ - checkpoints/mask_rcnn_r50_fpn_1x_coco_20200205-d4b0c5d6.pth \ - 8 - ``` - - This command generates two JSON files `./work_dirs/coco_instance/test.bbox.json` and `./work_dirs/coco_instance/test.segm.json`. - -7. Test Mask R-CNN on Cityscapes test with 8 GPUs, and generate txt and png files for submitting to the official evaluation server. - Config and checkpoint files are available [here](../../../configs/cityscapes). - - Replace the original test_evaluator and test_dataloader with test_evaluator and test_dataloader in the comment in [config](../../../configs/_base_/datasets/cityscapes_instance.py) and run: - - ```shell - ./tools/dist_test.sh \ - configs/cityscapes/mask-rcnn_r50_fpn_1x_cityscapes.py \ - checkpoints/mask_rcnn_r50_fpn_1x_cityscapes_20200227-afe51d5a.pth \ - 8 - ``` - - The generated png and txt would be under `./work_dirs/cityscapes_metric/` directory. - -## Test without Ground Truth Annotations - -MMDetection supports to test models without ground-truth annotations using `CocoDataset`. If your dataset format is not in COCO format, please convert them to COCO format. For example, if your dataset format is VOC, you can directly convert it to COCO format by the [script in tools.](../../../tools/dataset_converters/pascal_voc.py) If your dataset format is Cityscapes, you can directly convert it to COCO format by the [script in tools.](../../../tools/dataset_converters/cityscapes.py) The rest of the formats can be converted using [this script](../../../tools/dataset_converters/images2coco.py). - -```shell -python tools/dataset_converters/images2coco.py \ - ${IMG_PATH} \ - ${CLASSES} \ - ${OUT} \ - [--exclude-extensions] -``` - -arguments: - -- `IMG_PATH`: The root path of images. -- `CLASSES`: The text file with a list of categories. -- `OUT`: The output annotation json file name. The save dir is in the same directory as `IMG_PATH`. -- `exclude-extensions`: The suffix of images to be excluded, such as 'png' and 'bmp'. - -After the conversion is complete, you need to replace the original test_evaluator and test_dataloader with test_evaluator and test_dataloader in the comment in [config](../../../configs/_base_/datasets/coco_detection.py)(find which dataset in 'configs/_base_/datasets' the current config corresponds to) and run: - -```shell -# Single-gpu testing -python tools/test.py \ - ${CONFIG_FILE} \ - ${CHECKPOINT_FILE} \ - [--show] - -# CPU: disable GPUs and run single-gpu testing script -export CUDA_VISIBLE_DEVICES=-1 -python tools/test.py \ - ${CONFIG_FILE} \ - ${CHECKPOINT_FILE} \ - [--out ${RESULT_FILE}] \ - [--show] - -# Multi-gpu testing -bash tools/dist_test.sh \ - ${CONFIG_FILE} \ - ${CHECKPOINT_FILE} \ - ${GPU_NUM} \ - [--show] -``` - -Assuming that the checkpoints in the [model zoo](https://mmdetection.readthedocs.io/en/latest/modelzoo_statistics.html) have been downloaded to the directory `checkpoints/`, we can test Mask R-CNN on COCO test-dev with 8 GPUs, and generate JSON files using the following command. - -```sh -./tools/dist_test.sh \ - configs/mask_rcnn/mask-rcnn_r50_fpn_1x_coco.py \ - checkpoints/mask_rcnn_r50_fpn_1x_coco_20200205-d4b0c5d6.pth \ - 8 -``` - -This command generates two JSON files `./work_dirs/coco_instance/test.bbox.json` and `./work_dirs/coco_instance/test.segm.json`. - -## Batch Inference - -MMDetection supports inference with a single image or batched images in test mode. By default, we use single-image inference and you can use batch inference by modifying `samples_per_gpu` in the config of test data. You can do that either by modifying the config as below. - -```shell -data = dict(train_dataloader=dict(...), val_dataloader=dict(...), test_dataloader=dict(batch_size=2, ...)) -``` - -Or you can set it through `--cfg-options` as `--cfg-options test_dataloader.batch_size=2` - -## Test Time Augmentation (TTA) - -Test time augmentation (TTA) is a data augmentation strategy used during the test phase. It applies different augmentations, such as flipping and scaling, to the same image for model inference, and then merges the predictions of each augmented image to obtain more accurate predictions. To make it easier for users to use TTA, MMEngine provides [BaseTTAModel](https://mmengine.readthedocs.io/en/latest/api/generated/mmengine.model.BaseTTAModel.html#mmengine.model.BaseTTAModel) class, which allows users to implement different TTA strategies by simply extending the BaseTTAModel class according to their needs. - -In MMDetection, we provides [DetTTAModel](../../../mmdet/models/test_time_augs/det_tta.py) class, which inherits from BaseTTAModel. - -### Use case - -Using TTA requires two steps. First, you need to add `tta_model` and `tta_pipeline` in the configuration file: - -```shell -tta_model = dict( - type='DetTTAModel', - tta_cfg=dict(nms=dict( - type='nms', - iou_threshold=0.5), - max_per_img=100)) - -tta_pipeline = [ - dict(type='LoadImageFromFile', - backend_args=None), - dict( - type='TestTimeAug', - transforms=[[ - dict(type='Resize', scale=(1333, 800), keep_ratio=True) - ], [ # It uses 2 flipping transformations (flipping and not flipping). - dict(type='RandomFlip', prob=1.), - dict(type='RandomFlip', prob=0.) - ], [ - dict( - type='PackDetInputs', - meta_keys=('img_id', 'img_path', 'ori_shape', - 'img_shape', 'scale_factor', 'flip', - 'flip_direction')) - ]])] -``` - -Second, set `--tta` when running the test scripts as examples below: - -```shell -# Single-gpu testing -python tools/test.py \ - ${CONFIG_FILE} \ - ${CHECKPOINT_FILE} \ - [--tta] - -# CPU: disable GPUs and run single-gpu testing script -export CUDA_VISIBLE_DEVICES=-1 -python tools/test.py \ - ${CONFIG_FILE} \ - ${CHECKPOINT_FILE} \ - [--out ${RESULT_FILE}] \ - [--tta] - -# Multi-gpu testing -bash tools/dist_test.sh \ - ${CONFIG_FILE} \ - ${CHECKPOINT_FILE} \ - ${GPU_NUM} \ - [--tta] -``` - -You can also modify the TTA config by yourself, such as adding scaling enhancement: - -```shell -tta_model = dict( - type='DetTTAModel', - tta_cfg=dict(nms=dict( - type='nms', - iou_threshold=0.5), - max_per_img=100)) - -img_scales = [(1333, 800), (666, 400), (2000, 1200)] -tta_pipeline = [ - dict(type='LoadImageFromFile', - backend_args=None), - dict( - type='TestTimeAug', - transforms=[[ - dict(type='Resize', scale=s, keep_ratio=True) for s in img_scales - ], [ - dict(type='RandomFlip', prob=1.), - dict(type='RandomFlip', prob=0.) - ], [ - dict( - type='PackDetInputs', - meta_keys=('img_id', 'img_path', 'ori_shape', - 'img_shape', 'scale_factor', 'flip', - 'flip_direction')) - ]])] -``` - -The above data augmentation pipeline will first perform 3 multi-scaling transformations on the image, followed by 2 flipping transformations (flipping and not flipping). Finally, the image is packaged into the final result using PackDetInputs. - -Here are more TTA use cases for your reference: - -- [RetinaNet](../../../configs/retinanet/retinanet_tta.py) -- [CenterNet](../../../configs/centernet/centernet_tta.py) -- [YOLOX](../../../configs/rtmdet/rtmdet_tta.py) -- [RTMDet](../../../configs/yolox/yolox_tta.py) - -For more advanced usage and data flow of TTA, please refer to [MMEngine](https://mmengine.readthedocs.io/en/latest/advanced_tutorials/test_time_augmentation.html#data-flow). We will support instance segmentation TTA latter. diff --git a/docs/en/user_guides/test_results_submission.md b/docs/en/user_guides/test_results_submission.md deleted file mode 100644 index 721347ea1e9..00000000000 --- a/docs/en/user_guides/test_results_submission.md +++ /dev/null @@ -1,182 +0,0 @@ -# Test Results Submission - -## Panoptic segmentation test results submission - -The following sections introduce how to produce the prediction results of panoptic segmentation models on the COCO test-dev set and submit the predictions to [COCO evaluation server](https://competitions.codalab.org/competitions/19507). - -### Prerequisites - -- Download [COCO test dataset images](http://images.cocodataset.org/zips/test2017.zip), [testing image info](http://images.cocodataset.org/annotations/image_info_test2017.zip), and [panoptic train/val annotations](http://images.cocodataset.org/annotations/panoptic_annotations_trainval2017.zip), then unzip them, put 'test2017' to `data/coco/`, put json files and annotation files to `data/coco/annotations/`. - -```shell -# suppose data/coco/ does not exist -mkdir -pv data/coco/ - -# download test2017 -wget -P data/coco/ http://images.cocodataset.org/zips/test2017.zip -wget -P data/coco/ http://images.cocodataset.org/annotations/image_info_test2017.zip -wget -P data/coco/ http://images.cocodataset.org/annotations/panoptic_annotations_trainval2017.zip - -# unzip them -unzip data/coco/test2017.zip -d data/coco/ -unzip data/coco/image_info_test2017.zip -d data/coco/ -unzip data/coco/panoptic_annotations_trainval2017.zip -d data/coco/ - -# remove zip files (optional) -rm -rf data/coco/test2017.zip data/coco/image_info_test2017.zip data/coco/panoptic_annotations_trainval2017.zip -``` - -- Run the following code to update category information in testing image info. Since the attribute `isthing` is missing in category information of 'image_info_test-dev2017.json', we need to update it with the category information in 'panoptic_val2017.json'. - -```shell -python tools/misc/gen_coco_panoptic_test_info.py data/coco/annotations -``` - -After completing the above preparations, your directory structure of `data` should be like this: - -```text -data -`-- coco - |-- annotations - | |-- image_info_test-dev2017.json - | |-- image_info_test2017.json - | |-- panoptic_image_info_test-dev2017.json - | |-- panoptic_train2017.json - | |-- panoptic_train2017.zip - | |-- panoptic_val2017.json - | `-- panoptic_val2017.zip - `-- test2017 -``` - -### Inference on coco test-dev - -To do inference on coco test-dev, we should update the setting of `test_dataloder` and `test_evaluator` first. There two ways to do this: 1. update them in config file; 2. update them in command line. - -#### Update them in config file - -The relevant settings are provided at the end of `configs/_base_/datasets/coco_panoptic.py`, as below. - -```python -test_dataloader = dict( - batch_size=1, - num_workers=1, - persistent_workers=True, - drop_last=False, - sampler=dict(type='DefaultSampler', shuffle=False), - dataset=dict( - type=dataset_type, - data_root=data_root, - ann_file='annotations/panoptic_image_info_test-dev2017.json', - data_prefix=dict(img='test2017/'), - test_mode=True, - pipeline=test_pipeline)) -test_evaluator = dict( - type='CocoPanopticMetric', - format_only=True, - ann_file=data_root + 'annotations/panoptic_image_info_test-dev2017.json', - outfile_prefix='./work_dirs/coco_panoptic/test') -``` - -Any of the following way can be used to update the setting for inference on coco test-dev set. - -Case 1: Directly uncomment the setting in `configs/_base_/datasets/coco_panoptic.py`. - -Case 2: Copy the following setting to the config file you used now. - -```python -test_dataloader = dict( - dataset=dict( - ann_file='annotations/panoptic_image_info_test-dev2017.json', - data_prefix=dict(img='test2017/', _delete_=True))) -test_evaluator = dict( - format_only=True, - ann_file=data_root + 'annotations/panoptic_image_info_test-dev2017.json', - outfile_prefix='./work_dirs/coco_panoptic/test') -``` - -Then infer on coco test-dev et by the following command. - -```shell -python tools/test.py \ - ${CONFIG_FILE} \ - ${CHECKPOINT_FILE} -``` - -#### Update them in command line - -The command for update of the related settings and inference on coco test-dev are as below. - -```shell -# test with single gpu -CUDA_VISIBLE_DEVICES=0 python tools/test.py \ - ${CONFIG_FILE} \ - ${CHECKPOINT_FILE} \ - --cfg-options \ - test_dataloader.dataset.ann_file=annotations/panoptic_image_info_test-dev2017.json \ - test_dataloader.dataset.data_prefix.img=test2017 \ - test_dataloader.dataset.data_prefix._delete_=True \ - test_evaluator.format_only=True \ - test_evaluator.ann_file=data/coco/annotations/panoptic_image_info_test-dev2017.json \ - test_evaluator.outfile_prefix=${WORK_DIR}/results - -# test with four gpus -CUDA_VISIBLE_DEVICES=0,1,3,4 bash tools/dist_test.sh \ - ${CONFIG_FILE} \ - ${CHECKPOINT_FILE} \ - 8 \ # eights gpus - --cfg-options \ - test_dataloader.dataset.ann_file=annotations/panoptic_image_info_test-dev2017.json \ - test_dataloader.dataset.data_prefix.img=test2017 \ - test_dataloader.dataset.data_prefix._delete_=True \ - test_evaluator.format_only=True \ - test_evaluator.ann_file=data/coco/annotations/panoptic_image_info_test-dev2017.json \ - test_evaluator.outfile_prefix=${WORK_DIR}/results - -# test with slurm -GPUS=8 tools/slurm_test.sh \ - ${Partition} \ - ${JOB_NAME} \ - ${CONFIG_FILE} \ - ${CHECKPOINT_FILE} \ - --cfg-options \ - test_dataloader.dataset.ann_file=annotations/panoptic_image_info_test-dev2017.json \ - test_dataloader.dataset.data_prefix.img=test2017 \ - test_dataloader.dataset.data_prefix._delete_=True \ - test_evaluator.format_only=True \ - test_evaluator.ann_file=data/coco/annotations/panoptic_image_info_test-dev2017.json \ - test_evaluator.outfile_prefix=${WORK_DIR}/results -``` - -Example - -Suppose we perform inference on `test2017` using pretrained MaskFormer with ResNet-50 backbone. - -```shell -# test with single gpu -CUDA_VISIBLE_DEVICES=0 python tools/test.py \ - configs/maskformer/maskformer_r50_mstrain_16x1_75e_coco.py \ - checkpoints/maskformer_r50_mstrain_16x1_75e_coco_20220221_141956-bc2699cb.pth \ - --cfg-options \ - test_dataloader.dataset.ann_file=annotations/panoptic_image_info_test-dev2017.json \ - test_dataloader.dataset.data_prefix.img=test2017 \ - test_dataloader.dataset.data_prefix._delete_=True \ - test_evaluator.format_only=True \ - test_evaluator.ann_file=data/coco/annotations/panoptic_image_info_test-dev2017.json \ - test_evaluator.outfile_prefix=work_dirs/maskformer/results -``` - -### Rename files and zip results - -After inference, the panoptic segmentation results (a json file and a directory where the masks are stored) will be in `WORK_DIR`. We should rename them according to the naming convention described on [COCO's Website](https://cocodataset.org/#upload). Finally, we need to compress the json and the directory where the masks are stored into a zip file, and rename the zip file according to the naming convention. Note that the zip file should **directly** contains the above two files. - -The commands to rename files and zip results: - -```shell -# In WORK_DIR, we have panoptic segmentation results: 'panoptic' and 'results.panoptic.json'. -cd ${WORK_DIR} - -# replace '[algorithm_name]' with the name of algorithm you used. -mv ./panoptic ./panoptic_test-dev2017_[algorithm_name]_results -mv ./results.panoptic.json ./panoptic_test-dev2017_[algorithm_name]_results.json -zip panoptic_test-dev2017_[algorithm_name]_results.zip -ur panoptic_test-dev2017_[algorithm_name]_results panoptic_test-dev2017_[algorithm_name]_results.json -``` diff --git a/docs/en/user_guides/tracking_analysis_tools.md b/docs/en/user_guides/tracking_analysis_tools.md deleted file mode 100644 index acced58d47b..00000000000 --- a/docs/en/user_guides/tracking_analysis_tools.md +++ /dev/null @@ -1,86 +0,0 @@ -**We provide lots of useful tools under the `tools/` directory.** - -## MOT Test-time Parameter Search - -`tools/analysis_tools/mot/mot_param_search.py` can search the parameters of the `tracker` in MOT models. -It is used as the same manner with `tools/test.py` but **different** in the configs. - -Here is an example that shows how to modify the configs: - -1. Define the desirable evaluation metrics to record. - - For example, you can define the `evaluator` as - - ```python - test_evaluator=dict(type='MOTChallengeMetrics', metric=['HOTA', 'CLEAR', 'Identity']) - ``` - - Of course, you can also customize the content of `metric` in `test_evaluator`. You are free to choose one or more of `['HOTA', 'CLEAR', 'Identity']`. - -2. Define the parameters and the values to search. - - Assume you have a tracker like - - ```python - model=dict( - tracker=dict( - type='BaseTracker', - obj_score_thr=0.5, - match_iou_thr=0.5 - ) - ) - ``` - - If you want to search the parameters of the tracker, just change the value to a list as follow - - ```python - model=dict( - tracker=dict( - type='BaseTracker', - obj_score_thr=[0.4, 0.5, 0.6], - match_iou_thr=[0.4, 0.5, 0.6, 0.7] - ) - ) - ``` - - Then the script will test the totally 12 cases and log the results. - -## MOT Error Visualize - -`tools/analysis_tools/mot/mot_error_visualize.py` can visualize errors for multiple object tracking. -This script needs the result of inference. By Default, the **red** bounding box denotes false positive, the **yellow** bounding box denotes the false negative and the **blue** bounding box denotes ID switch. - -``` -python tools/analysis_tools/mot/mot_error_visualize.py \ - ${CONFIG_FILE}\ - --input ${INPUT} \ - --result-dir ${RESULT_DIR} \ - [--output-dir ${OUTPUT}] \ - [--fps ${FPS}] \ - [--show] \ - [--backend ${BACKEND}] -``` - -The `RESULT_DIR` contains the inference results of all videos and the inference result is a `txt` file. - -Optional arguments: - -- `OUTPUT`: Output of the visualized demo. If not specified, the `--show` is obligate to show the video on the fly. -- `FPS`: FPS of the output video. -- `--show`: Whether show the video on the fly. -- `BACKEND`: The backend to visualize the boxes. Options are `cv2` and `plt`. - -## Browse dataset - -`tools/analysis_tools/mot/browse_dataset.py` can visualize the training dataset to check whether the dataset configuration is correct. - -**Examples:** - -```shell -python tools/analysis_tools/browse_dataset.py ${CONFIG_FILE} [--show-interval ${SHOW_INTERVAL}] -``` - -Optional arguments: - -- `SHOW_INTERVAL`: The interval of show (s). -- `--show`: Whether show the images on the fly. diff --git a/docs/en/user_guides/tracking_config.md b/docs/en/user_guides/tracking_config.md deleted file mode 100644 index fa8aeea04f8..00000000000 --- a/docs/en/user_guides/tracking_config.md +++ /dev/null @@ -1,112 +0,0 @@ -# Learn about Configs - -We use python files as our config system. You can find all the provided configs under $MMDetection/configs. - -We incorporate modular and inheritance design into our config system, -which is convenient to conduct various experiments. -If you wish to inspect the config file, -you may run `python tools/misc/print_config.py /PATH/TO/CONFIG` to see the complete config. - -## A brief description of a complete config - -A complete config usually contains the following primary fields: - -- `model`: the basic config of model, which may contain `data_preprocessor`, modules (e.g., `detector`, `motion`),`train_cfg`, `test_cfg`, etc. -- `train_dataloader`: the config of training dataloader, which usually contains `batch_size`, `num_workers`, `sampler`, `dataset`, etc. -- `val_dataloader`: the config of validation dataloader, which is similar with `train_dataloader`. -- `test_dataloader`: the config of testing dataloader, which is similar with `train_dataloader`. -- `val_evaluator`: the config of validation evaluator. For example,`type='MOTChallengeMetrics'` for MOT task on the MOTChallenge benchmarks. -- `test_evaluator`: the config of testing evaluator, which is similar with `val_evaluator`. -- `train_cfg`: the config of training loop. For example, `type='EpochBasedTrainLoop'`. -- `val_cfg`: the config of validation loop. For example, `type='VideoValLoop'`. -- `test_cfg`: the config of testing loop. For example, `type='VideoTestLoop'`. -- `default_hooks`: the config of default hooks, which may include hooks for timer, logger, param_scheduler, checkpoint, sampler_seed, visualization, etc. -- `vis_backends`: the config of visualization backends, which uses `type='LocalVisBackend'` as default. -- `visualizer`: the config of visualizer. `type='TrackLocalVisualizer'` for MOT tasks. -- `param_scheduler`: the config of parameter scheduler, which usually sets the learning rate scheduler. -- `optim_wrapper`: the config of optimizer wrapper, which contains optimization-related information, for example optimizer, gradient clipping, etc. -- `load_from`: load models as a pre-trained model from a given path. -- `resume`: If `True`, resume checkpoints from `load_from`, and the training will be resumed from the epoch when the checkpoint is saved. - -## Modify config through script arguments - -When submitting jobs using `tools/train.py` or `tools/test_tracking.py`, -you may specify `--cfg-options` to in-place modify the config. -We present several examples as follows. -For more details, please refer to [MMEngine](https://github.com/open-mmlab/mmengine/blob/main/docs/en/tutorials/config.md). - -- **Update config keys of dict chains.** - - The config options can be specified following the order of the dict keys in the original config. - For example, `--cfg-options model.detector.backbone.norm_eval=False` changes the all BN modules in model backbones to train mode. - -- **Update keys inside a list of configs.** - - Some config dicts are composed as a list in your config. - For example, the testing pipeline `test_dataloader.dataset.pipeline` is normally a list e.g. `[dict(type='LoadImageFromFile'), ...]`. - If you want to change `LoadImageFromFile` to `LoadImageFromWebcam` in the pipeline, - you may specify `--cfg-options test_dataloader.dataset.pipeline.0.type=LoadImageFromWebcam`. - -- **Update values of list/tuples.** - - Maybe the value to be updated is a list or a tuple. - For example, you can change the key `mean` of `data_preprocessor` by specifying `--cfg-options model.data_preprocessor.mean=[0,0,0]`. - Note that **NO** white space is allowed inside the specified value. - -## Config File Structure - -There are 3 basic component types under `config/_base_`, i.e., dataset, model and default_runtime. -Many methods could be easily constructed with one of each like SORT, DeepSORT. -The configs that are composed by components from `_base_` are called *primitive*. - -For all configs under the same folder, it is recommended to have only **one** *primitive* config. -All other configs should inherit from the *primitive* config. -In this way, the maximum of inheritance level is 3. - -For easy understanding, we recommend contributors to inherit from exiting methods. -For example, if some modification is made base on Faster R-CNN, -user may first inherit the basic Faster R-CNN structure -by specifying `_base_ = ../_base_/models/faster-rcnn_r50-dc5.py`, -then modify the necessary fields in the config files. - -If you are building an entirely new method that does not share the structure with any of the existing methods, -you may create a folder `method_name` under `configs`. - -Please refer to [MMEngine](https://github.com/open-mmlab/mmengine/blob/main/docs/en/tutorials/config.md) for detailed documentation. - -## Config Name Style - -We follow the below style to name config files. Contributors are advised to follow the same style. - -```shell -{method}_{module}_{train_cfg}_{train_data}_{test_data} -``` - -- `{method}`: method name, like `sort`. -- `{module}`: basic modules of the method, like `faster-rcnn_r50_fpn`. -- `{train_cfg}`: training config which usually contains batch size, epochs, etc, like `8xb4-80e`. -- `{train_data}`: training data, like `mot17halftrain`. -- `{test_data}`: testing data, like `test-mot17halfval`. - -## FAQ - -**Ignore some fields in the base configs** - -Sometimes, you may set `_delete_=True` to ignore some of fields in base configs. -You may refer to [MMEngine](https://github.com/open-mmlab/mmengine/blob/main/docs/en/tutorials/config.md) for simple illustration. - -## Tracking Data Structure Introduction - -### Advantages and new features - -In mmdetection tracking task, we employ videos to organize the dataset and use -TrackDataSample to descirbe dataset info. - -- Based on video organization, we provide transform `UniformRefFrameSample` to sample key frames and ref frames and use `TransformBroadcaster` for for clip training. -- TrackDataSample can be viewd as a wrapper of multiple DetDataSample to some extent. It contains a property `video_data_samples` which is a list of DetDataSample, each of which corresponds to a single frame. In addition, it's metainfo includes key_frames_inds and ref_frames_inds to apply clip training way. -- Thanks to video-based data organization, the entire video can be directly tested. This way is more concise and intuitive. We also provide image_based test method, if your GPU mmemory cannot fit the entire video. - -### TODO - -- Some algorithms like StrongSORT, Mask2Former can not support video_based testing. These algorithms pose a challenge to GPU memory. we will optimize this problem in the future. -- Now we do not support joint training of video_based dataset like MOT Challenge Dataset and image_based dataset like Crowdhuman for the algorithm QDTrack. we will optimize this problem in the future. diff --git a/docs/en/user_guides/tracking_dataset_prepare.md b/docs/en/user_guides/tracking_dataset_prepare.md deleted file mode 100644 index 2c38569c9a1..00000000000 --- a/docs/en/user_guides/tracking_dataset_prepare.md +++ /dev/null @@ -1,247 +0,0 @@ -## Dataset Preparation - -This page provides the instructions for dataset preparation on existing benchmarks, include - -- Multiple Object Tracking - - - [MOT Challenge](https://motchallenge.net/) - - [CrowdHuman](https://www.crowdhuman.org/) - -- Video Instance Segmentation - - - [YouTube-VIS](https://youtube-vos.org/dataset/vis/) - -### 1. Download Datasets - -Please download the datasets from the official websites. It is recommended to symlink the root of the datasets to `$MMDETECTION/data`. - -#### 1.1 Multiple Object Tracking - -- For the training and testing of multi object tracking task, one of the MOT Challenge datasets (e.g. MOT17, MOT20) are needed, CrowdHuman can be served as comlementary dataset. - -- For users in China, the following datasets can be downloaded from [OpenDataLab](https://opendatalab.com/) with high speed: - - - [MOT17](https://opendatalab.com/MOT17/download) - - [MOT20](https://opendatalab.com/MOT20/download) - - [CrowdHuman](https://opendatalab.com/CrowdHuman/download) - -#### 1.2 Video Instance Segmentation - -- For the training and testing of video instance segmetatioon task, only one of YouTube-VIS datasets (e.g. YouTube-VIS 2019, YouTube-VIS 2021) is needed. - -- YouTube-VIS 2019 dataset can be download from [YouTubeVOS](https://codalab.lisn.upsaclay.fr/competitions/6064) - -- YouTube-VIS 2021 dataset can be download from [YouTubeVOS](https://codalab.lisn.upsaclay.fr/competitions/7680) - -#### 1.3 Data Structure - -If your folder structure is different from the following, you may need to change the corresponding paths in config files. - -``` -mmdetection -├── mmdet -├── tools -├── configs -├── data -│ ├── coco -│ │ ├── train2017 -│ │ ├── val2017 -│ │ ├── test2017 -│ │ ├── annotations -│ │ -| ├── MOT15/MOT16/MOT17/MOT20 -| | ├── train -| | | ├── MOT17-02-DPM -| | | | ├── det -| │ │ │ ├── gt -| │ │ │ ├── img1 -| │ │ │ ├── seqinfo.ini -│ │ │ ├── ...... -| | ├── test -| | | ├── MOT17-01-DPM -| | | | ├── det -| │ │ │ ├── img1 -| │ │ │ ├── seqinfo.ini -│ │ │ ├── ...... -│ │ -│ ├── crowdhuman -│ │ ├── annotation_train.odgt -│ │ ├── annotation_val.odgt -│ │ ├── train -│ │ │ ├── Images -│ │ │ ├── CrowdHuman_train01.zip -│ │ │ ├── CrowdHuman_train02.zip -│ │ │ ├── CrowdHuman_train03.zip -│ │ ├── val -│ │ │ ├── Images -│ │ │ ├── CrowdHuman_val.zip -│ │ -``` - -### 2. Convert Annotations - -In this case, you need to convert the official annotations to coco style. We provide scripts and the usages are as following: - -```shell -# MOT17 -# The processing of other MOT Challenge dataset is the same as MOT17 -python ./tools/dataset_converters/mot2coco.py -i ./data/MOT17/ -o ./data/MOT17/annotations --split-train --convert-det -python ./tools/dataset_converters/mot2reid.py -i ./data/MOT17/ -o ./data/MOT17/reid --val-split 0.2 --vis-threshold 0.3 - -# CrowdHuman -python ./tools/dataset_converters/crowdhuman2coco.py -i ./data/crowdhuman -o ./data/crowdhuman/annotations - -# YouTube-VIS 2019 -python ./tools/dataset_converters/youtubevis/youtubevis2coco.py -i ./data/youtube_vis_2019 -o ./data/youtube_vis_2019/annotations --version 2019 - -# YouTube-VIS 2021 -python ./tools/dataset_converters/youtubevis/youtubevis2coco.py -i ./data/youtube_vis_2021 -o ./data/youtube_vis_2021/annotations --version 2021 - -``` - -The folder structure will be as following after your run these scripts: - -``` -mmdetection -├── mmtrack -├── tools -├── configs -├── data -│ ├── coco -│ │ ├── train2017 -│ │ ├── val2017 -│ │ ├── test2017 -│ │ ├── annotations -│ │ -| ├── MOT15/MOT16/MOT17/MOT20 -| | ├── train -| | | ├── MOT17-02-DPM -| | | | ├── det -| │ │ │ ├── gt -| │ │ │ ├── img1 -| │ │ │ ├── seqinfo.ini -│ │ │ ├── ...... -| | ├── test -| | | ├── MOT17-01-DPM -| | | | ├── det -| │ │ │ ├── img1 -| │ │ │ ├── seqinfo.ini -│ │ │ ├── ...... -| | ├── annotations -| | ├── reid -│ │ │ ├── imgs -│ │ │ ├── meta -│ │ -│ ├── crowdhuman -│ │ ├── annotation_train.odgt -│ │ ├── annotation_val.odgt -│ │ ├── train -│ │ │ ├── Images -│ │ │ ├── CrowdHuman_train01.zip -│ │ │ ├── CrowdHuman_train02.zip -│ │ │ ├── CrowdHuman_train03.zip -│ │ ├── val -│ │ │ ├── Images -│ │ │ ├── CrowdHuman_val.zip -│ │ ├── annotations -│ │ │ ├── crowdhuman_train.json -│ │ │ ├── crowdhuman_val.json -│ │ -│ ├── youtube_vis_2019 -│ │ │── train -│ │ │ │── JPEGImages -│ │ │ │── ...... -│ │ │── valid -│ │ │ │── JPEGImages -│ │ │ │── ...... -│ │ │── test -│ │ │ │── JPEGImages -│ │ │ │── ...... -│ │ │── train.json (the official annotation files) -│ │ │── valid.json (the official annotation files) -│ │ │── test.json (the official annotation files) -│ │ │── annotations (the converted annotation file) -│ │ -│ ├── youtube_vis_2021 -│ │ │── train -│ │ │ │── JPEGImages -│ │ │ │── instances.json (the official annotation files) -│ │ │ │── ...... -│ │ │── valid -│ │ │ │── JPEGImages -│ │ │ │── instances.json (the official annotation files) -│ │ │ │── ...... -│ │ │── test -│ │ │ │── JPEGImages -│ │ │ │── instances.json (the official annotation files) -│ │ │ │── ...... -│ │ │── annotations (the converted annotation file) -``` - -#### The folder of annotations and reid in MOT15/MOT16/MOT17/MOT20 - -We take MOT17 dataset as examples, the other datasets share similar structure. - -There are 8 JSON files in `data/MOT17/annotations`: - -`train_cocoformat.json`: JSON file containing the annotations information of the training set in MOT17 dataset. - -`train_detections.pkl`: Pickle file containing the public detections of the training set in MOT17 dataset. - -`test_cocoformat.json`: JSON file containing the annotations information of the testing set in MOT17 dataset. - -`test_detections.pkl`: Pickle file containing the public detections of the testing set in MOT17 dataset. - -`half-train_cocoformat.json`, `half-train_detections.pkl`, `half-val_cocoformat.json`and `half-val_detections.pkl` share similar meaning with `train_cocoformat.json` and `train_detections.pkl`. The `half` means we split each video in the training set into half. The first half videos are denoted as `half-train` set, and the second half videos are denoted as`half-val` set. - -The structure of `data/MOT17/reid` is as follows: - -``` -reid -├── imgs -│ ├── MOT17-02-FRCNN_000002 -│ │ ├── 000000.jpg -│ │ ├── 000001.jpg -│ │ ├── ... -│ ├── MOT17-02-FRCNN_000003 -│ │ ├── 000000.jpg -│ │ ├── 000001.jpg -│ │ ├── ... -├── meta -│ ├── train_80.txt -│ ├── val_20.txt -``` - -The `80` in `train_80.txt` means the proportion of the training dataset to the whole ReID dataset is 80%. While the proportion of the validation dataset is 20%. - -For training, we provide a annotation list `train_80.txt`. Each line of the list contains a filename and its corresponding ground-truth labels. The format is as follows: - -``` -MOT17-05-FRCNN_000110/000018.jpg 0 -MOT17-13-FRCNN_000146/000014.jpg 1 -MOT17-05-FRCNN_000088/000004.jpg 2 -MOT17-02-FRCNN_000009/000081.jpg 3 -``` - -`MOT17-05-FRCNN_000110` denotes the 110-th person in `MOT17-05-FRCNN` video. - -For validation, The annotation list `val_20.txt` remains the same as format above. - -Images in `reid/imgs` are cropped from raw images in `MOT17/train` by the corresponding `gt.txt`. The value of ground-truth labels should fall in range `[0, num_classes - 1]`. - -#### The folder of annotations in crowdhuman - -There are 2 JSON files in `data/crowdhuman/annotations`: - -`crowdhuman_train.json`: JSON file containing the annotations information of the training set in CrowdHuman dataset. -`crowdhuman_val.json`: JSON file containing the annotations information of the validation set in CrowdHuman dataset. - -#### The folder of annotations in youtube_vis_2019/youtube_vis2021 - -There are 3 JSON files in `data/youtube_vis_2019/annotations` or `data/youtube_vis_2021/annotations`: - -`youtube_vis_2019_train.json`/`youtube_vis_2021_train.json`: JSON file containing the annotations information of the training set in youtube_vis_2019/youtube_vis2021 dataset. - -`youtube_vis_2019_valid.json`/`youtube_vis_2021_valid.json`: JSON file containing the annotations information of the validation set in youtube_vis_2019/youtube_vis2021 dataset. - -`youtube_vis_2019_test.json`/`youtube_vis_2021_test.json`: JSON file containing the annotations information of the testing set in youtube_vis_2019/youtube_vis2021 dataset. diff --git a/docs/en/user_guides/tracking_inference.md b/docs/en/user_guides/tracking_inference.md deleted file mode 100644 index 06a6912acf6..00000000000 --- a/docs/en/user_guides/tracking_inference.md +++ /dev/null @@ -1,55 +0,0 @@ -# Inference - -We provide demo scripts to inference a given video or a folder that contains continuous images. The source codes are available [here](https://github.com/open-mmlab/mmdetection/tree/tracking/demo). - -Note that if you use a folder as the input, the image names there must be **sortable** , which means we can re-order the images according to the numbers contained in the filenames. We now only support reading the images whose filenames end with `.jpg`, `.jpeg` and `.png`. - -## Inference MOT models - -This script can inference an input video / images with a multiple object tracking or video instance segmentation model. - -```shell -python demo/mot_demo.py \ - ${INPUTS} - ${CONFIG_FILE} \ - [--checkpoint ${CHECKPOINT_FILE}] \ - [--detector ${DETECTOR_FILE}] \ - [--reid ${REID_FILE}] \ - [--score-thr ${SCORE_THR}] \ - [--device ${DEVICE}] \ - [--out ${OUTPUT}] \ - [--show] -``` - -The `INPUT` and `OUTPUT` support both _mp4 video_ format and the _folder_ format. - -**Important:** For `DeepSORT`, `SORT`, `StrongSORT`, they need load the weight of the `reid` and the weight of the `detector` separately. Therefore, we use `--detector` and `--reid` to load weights. Other algorithms such as `ByteTrack`, `OCSORT` `QDTrack` `MaskTrackRCNN` and `Mask2Former` use `--checkpoint` to load weights. - -Optional arguments: - -- `CHECKPOINT_FILE`: The checkpoint is optional. -- `DETECTOR_FILE`: The detector is optional. -- `REID_FILE`: The reid is optional. -- `SCORE_THR`: The threshold of score to filter bboxes. -- `DEVICE`: The device for inference. Options are `cpu` or `cuda:0`, etc. -- `OUTPUT`: Output of the visualized demo. If not specified, the `--show` is obligate to show the video on the fly. -- `--show`: Whether show the video on the fly. - -**Examples of running mot model:** - -```shell -# Example 1: do not specify --checkpoint to use --detector -python demo/mot_demo.py \ - demo/demo_mot.mp4 \ - configs/sort/sort_faster-rcnn_r50_fpn_8xb2-4e_mot17halftrain_test-mot17halfval.py \ - --detector \ - https://download.openmmlab.com/mmtracking/mot/faster_rcnn/faster-rcnn_r50_fpn_4e_mot17-half-64ee2ed4.pth \ - --out mot.mp4 - -# Example 2: use --checkpoint -python demo/mot_demo.py \ - demo/demo_mot.mp4 \ - configs/qdtrack/qdtrack_faster-rcnn_r50_fpn_8xb2-4e_mot17halftrain_test-mot17halfval.py \ - --checkpoint https://download.openmmlab.com/mmtracking/mot/qdtrack/mot_dataset/qdtrack_faster-rcnn_r50_fpn_4e_mot17_20220315_145635-76f295ef.pth \ - --out mot.mp4 -``` diff --git a/docs/en/user_guides/tracking_train_test.md b/docs/en/user_guides/tracking_train_test.md deleted file mode 100644 index 1a6871d717d..00000000000 --- a/docs/en/user_guides/tracking_train_test.md +++ /dev/null @@ -1,229 +0,0 @@ -# Learn to train and test - -## Train - -This section will show how to train existing models on supported datasets. -The following training environments are supported: - -- CPU -- single GPU -- single node multiple GPUs -- multiple nodes - -You can also manage jobs with Slurm. - -Important: - -- You can change the evaluation interval during training by modifying the `train_cfg` as - `train_cfg = dict(val_interval=10)`. That means evaluating the model every 10 epochs. -- The default learning rate in all config files is for 8 GPUs. - According to the [Linear Scaling Rule](https://arxiv.org/abs/1706.02677), - you need to set the learning rate proportional to the batch size if you use different GPUs or images per GPU, - e.g., `lr=0.01` for 8 GPUs * 1 img/gpu and lr=0.04 for 16 GPUs * 2 imgs/gpu. -- During training, log files and checkpoints will be saved to the working directory, - which is specified by CLI argument `--work-dir`. It uses `./work_dirs/CONFIG_NAME` as default. -- If you want the mixed precision training, simply specify CLI argument `--amp`. - -#### 1. Train on CPU - -The model is default put on cuda device. -Only if there are no cuda devices, the model will be put on cpu. -So if you want to train the model on CPU, you need to `export CUDA_VISIBLE_DEVICES=-1` to disable GPU visibility first. -More details in [MMEngine](https://github.com/open-mmlab/mmengine/blob/ca282aee9e402104b644494ca491f73d93a9544f/mmengine/runner/runner.py#L849-L850). - -```shell script -CUDA_VISIBLE_DEVICES=-1 python tools/train.py ${CONFIG_FILE} [optional arguments] -``` - -An example of training the MOT model QDTrack on CPU: - -```shell script -CUDA_VISIBLE_DEVICES=-1 python tools/train.py configs/qdtrack/qdtrack_faster-rcnn_r50_fpn_8xb2-4e_mot17halftrain_test-mot17halfval.py -``` - -#### 2. Train on single GPU - -If you want to train the model on single GPU, you can directly use the `tools/train.py` as follows. - -```shell script -python tools/train.py ${CONFIG_FILE} [optional arguments] -``` - -You can use `export CUDA_VISIBLE_DEVICES=$GPU_ID` to select the GPU. - -An example of training the MOT model QDTrack on single GPU: - -```shell script -CUDA_VISIBLE_DEVICES=2 python tools/train.py configs/qdtrack/qdtrack_faster-rcnn_r50_fpn_8xb2-4e_mot17halftrain_test-mot17halfval.py -``` - -#### 3. Train on single node multiple GPUs - -We provide `tools/dist_train.sh` to launch training on multiple GPUs. -The basic usage is as follows. - -```shell script -bash ./tools/dist_train.sh ${CONFIG_FILE} ${GPU_NUM} [optional arguments] -``` - -If you would like to launch multiple jobs on a single machine, -e.g., 2 jobs of 4-GPU training on a machine with 8 GPUs, -you need to specify different ports (29500 by default) for each job to avoid communication conflict. - -For example, you can set the port in commands as follows. - -```shell script -CUDA_VISIBLE_DEVICES=0,1,2,3 PORT=29500 ./tools/dist_train.sh ${CONFIG_FILE} 4 -CUDA_VISIBLE_DEVICES=4,5,6,7 PORT=29501 ./tools/dist_train.sh ${CONFIG_FILE} 4 -``` - -An example of training the MOT model QDTrack on single node multiple GPUs: - -```shell script -bash ./tools/dist_train.sh configs/qdtrack/qdtrack_faster-rcnn_r50_fpn_8xb2-4e_mot17halftrain_test-mot17halfval.py 8 -``` - -#### 4. Train on multiple nodes - -If you launch with multiple machines simply connected with ethernet, you can simply run following commands: - -On the first machine: - -```shell script -NNODES=2 NODE_RANK=0 PORT=$MASTER_PORT MASTER_ADDR=$MASTER_ADDR bash tools/dist_train.sh $CONFIG $GPUS -``` - -On the second machine: - -```shell script -NNODES=2 NODE_RANK=1 PORT=$MASTER_PORT MASTER_ADDR=$MASTER_ADDR bash tools/dist_train.sh $CONFIG $GPUS -``` - -Usually it is slow if you do not have high speed networking like InfiniBand. - -#### 5. Train with Slurm - -[Slurm](https://slurm.schedmd.com/) is a good job scheduling system for computing clusters. -On a cluster managed by Slurm, you can use `slurm_train.sh` to spawn training jobs. -It supports both single-node and multi-node training. - -The basic usage is as follows. - -```shell script -bash ./tools/slurm_train.sh ${PARTITION} ${JOB_NAME} ${CONFIG_FILE} ${WORK_DIR} ${GPUS} -``` - -An example of training the MOT model QDTrack with Slurm: - -```shell script -PORT=29501 \ -GPUS_PER_NODE=8 \ -SRUN_ARGS="--quotatype=reserved" \ -bash ./tools/slurm_train.sh \ -mypartition \ -mottrack -configs/qdtrack/qdtrack_faster-rcnn_r50_fpn_8xb2-4e_mot17halftrain_test-mot17halfval.py -./work_dirs/QDTrack \ -8 -``` - -## Test - -This section will show how to test existing models on supported datasets. -The following testing environments are supported: - -- CPU -- single GPU -- single node multiple GPUs -- multiple nodes - -You can also manage jobs with Slurm. - -Important: - -- In MOT, some algorithms like `DeepSORT`, `SORT`, `StrongSORT` need load the weight of the `reid` and the weight of the `detector` separately. - Other algorithms such as `ByteTrack`, `OCSORT` and `QDTrack` don't need. So we provide `--checkpoint`, `--detector` and `--reid` to load weights. -- We provide two ways to evaluate and test models, video_basede test and image_based test. some algorithms like `StrongSORT`, `Mask2former` only support - video_based test. if your GPU memory can't fit the entire video, you can switch test way by set sampler type. - For example: - video_based test: `sampler=dict(type='DefaultSampler', shuffle=False, round_up=False)` - image_based test: `sampler=dict(type='TrackImgSampler')` -- You can set the results saving path by modifying the key `outfile_prefix` in evaluator. - For example, `val_evaluator = dict(outfile_prefix='results/sort_mot17')`. - Otherwise, a temporal file will be created and will be removed after evaluation. -- If you just want the formatted results without evaluation, you can set `format_only=True`. - For example, `test_evaluator = dict(type='MOTChallengeMetric', metric=['HOTA', 'CLEAR', 'Identity'], outfile_prefix='sort_mot17_results', format_only=True)` - -#### 1. Test on CPU - -The model is default put on cuda device. -Only if there are no cuda devices, the model will be put on cpu. -So if you want to test the model on CPU, you need to `export CUDA_VISIBLE_DEVICES=-1` to disable GPU visibility first. -More details in [MMEngine](https://github.com/open-mmlab/mmengine/blob/ca282aee9e402104b644494ca491f73d93a9544f/mmengine/runner/runner.py#L849-L850). - -```shell script -CUDA_VISIBLE_DEVICES=-1 python tools/test_tracking.py ${CONFIG_FILE} [optional arguments] -``` - -An example of testing the MOT model SORT on CPU: - -```shell script -CUDA_VISIBLE_DEVICES=-1 python tools/test_tracking.py configs/sort/sort_faster-rcnn_r50_fpn_8xb2-4e_mot17halftrain_test-mot17halfval.py --detector ${CHECKPOINT_FILE} -``` - -#### 2. Test on single GPU - -If you want to test the model on single GPU, you can directly use the `tools/test_tracking.py` as follows. - -```shell script -python tools/test_tracking.py ${CONFIG_FILE} [optional arguments] -``` - -You can use `export CUDA_VISIBLE_DEVICES=$GPU_ID` to select the GPU. - -An example of testing the MOT model QDTrack on single GPU: - -```shell script -CUDA_VISIBLE_DEVICES=2 python tools/test_tracking.py configs/qdtrack/qdtrack_faster-rcnn_r50_fpn_8xb2-4e_mot17halftrain_test-mot17halfval.py --detector ${CHECKPOINT_FILE} -``` - -#### 3. Test on single node multiple GPUs - -We provide `tools/dist_test_tracking.sh` to launch testing on multiple GPUs. -The basic usage is as follows. - -```shell script -bash ./tools/dist_test_tracking.sh ${CONFIG_FILE} ${GPU_NUM} [optional arguments] -``` - -An example of testing the MOT model DeepSort on single node multiple GPUs: - -```shell script -bash ./tools/dist_test_tracking.sh configs/qdtrack/qdtrack_faster-rcnn_r50_fpn_8xb2-4e_mot17halftrain_test-mot17halfval.py 8 --detector ${CHECKPOINT_FILE} --reid ${CHECKPOINT_FILE} -``` - -#### 4. Test on multiple nodes - -You can test on multiple nodes, which is similar with "Train on multiple nodes". - -#### 5. Test with Slurm - -On a cluster managed by Slurm, you can use `slurm_test_tracking.sh` to spawn testing jobs. -It supports both single-node and multi-node testing. - -The basic usage is as follows. - -```shell script -[GPUS=${GPUS}] bash tools/slurm_test_tracking.sh ${PARTITION} ${JOB_NAME} ${CONFIG_FILE} [optional arguments] -``` - -An example of testing the VIS model Mask2former with Slurm: - -```shell script -GPUS=8 -bash tools/slurm_test_tracking.sh \ -mypartition \ -vis \ -configs/mask2former_vis/mask2former_r50_8xb2-8e_youtubevis2021.py \ ---checkpoint ${CHECKPOINT_FILE} -``` diff --git a/docs/en/user_guides/tracking_visualization.md b/docs/en/user_guides/tracking_visualization.md deleted file mode 100644 index 28953256200..00000000000 --- a/docs/en/user_guides/tracking_visualization.md +++ /dev/null @@ -1,47 +0,0 @@ -# Learn about Visualization - -## Local Visualization - -This section will present how to visualize the detection/tracking results with local visualizer. - -If you want to draw prediction results, you can turn this feature on by setting `draw=True` in `TrackVisualizationHook` as follows. - -```shell script -default_hooks = dict(visualization=dict(type='TrackVisualizationHook', draw=True)) -``` - -Specifically, the `TrackVisualizationHook` has the following arguments: - -- `draw`: whether to draw prediction results. If it is False, it means that no drawing will be done. Defaults to False. -- `interval`: The interval of visualization. Defaults to 30. -- `score_thr`: The threshold to visualize the bboxes and masks. Defaults to 0.3. -- `show`: Whether to display the drawn image. Default to False. -- `wait_time`: The interval of show (s). Defaults to 0. -- `test_out_dir`: directory where painted images will be saved in testing process. -- `backend_args`: Arguments to instantiate a file client. Defaults to `None`. - -In the `TrackVisualizationHook`, `TrackLocalVisualizer` will be called to implement visualization for MOT and VIS tasks. -We will present the details below. -You can refer to MMEngine for more details about [Visualization](https://github.com/open-mmlab/mmengine/blob/main/docs/en/advanced_tutorials/visualization.md) and [Hook](https://github.com/open-mmlab/mmengine/blob/main/docs/en/tutorials/hook.md). - -#### Tracking Visualization - -We realize the tracking visualization with class `TrackLocalVisualizer`. -You can call it as follows. - -```python -visualizer = dict(type='TrackLocalVisualizer') -``` - -It has the following arguments: - -- `name`: Name of the instance. Defaults to 'visualizer'. -- `image`: The origin image to draw. The format should be RGB. Defaults to None. -- `vis_backends`: Visual backend config list. Defaults to None. -- `save_dir`: Save file dir for all storage backends. If it is None, the backend storage will not save any data. -- `line_width`: The linewidth of lines. Defaults to 3. -- `alpha`: The transparency of bboxes or mask. Defaults to 0.8. - -Here is a visualization example of DeepSORT: - -![test_img_89](https://user-images.githubusercontent.com/99722489/186062929-6d0e4663-0d8e-4045-9ec8-67e0e41da876.png) diff --git a/docs/en/user_guides/train.md b/docs/en/user_guides/train.md deleted file mode 100644 index a68d5e4fa11..00000000000 --- a/docs/en/user_guides/train.md +++ /dev/null @@ -1,456 +0,0 @@ -# Train predefined models on standard datasets - -MMDetection also provides out-of-the-box tools for training detection models. -This section will show how to train _predefined_ models (under [configs](../../../configs)) on standard datasets i.e. COCO. - -## Prepare datasets - -Preparing datasets is also necessary for training. See section [Prepare datasets](#prepare-datasets) above for details. - -**Note**: -Currently, the config files under `configs/cityscapes` use COCO pre-trained weights to initialize. -If your network connection is slow or unavailable, it's advisable to download existing models before beginning training to avoid errors. - -## Learning rate auto scaling - -**Important**: The default learning rate in config files is for 8 GPUs and 2 sample per GPU (batch size = 8 * 2 = 16). And it had been set to `auto_scale_lr.base_batch_size` in `config/_base_/schedules/schedule_1x.py`. The learning rate will be automatically scaled based on the value at a batch size of 16. Meanwhile, to avoid affecting other codebases that use mmdet, the default setting for the `auto_scale_lr.enable` flag is `False`. - -If you want to enable this feature, you need to add argument `--auto-scale-lr`. And you need to check the config name which you want to use before you process the command, because the config name indicates the default batch size. -By default, it is `8 x 2 = 16 batch size`, like `faster_rcnn_r50_caffe_fpn_90k_coco.py` or `pisa_faster_rcnn_x101_32x4d_fpn_1x_coco.py`. In other cases, you will see the config file name have `_NxM_` in dictating, like `cornernet_hourglass104_mstest_32x3_210e_coco.py` which batch size is `32 x 3 = 96`, or `scnet_x101_64x4d_fpn_8x1_20e_coco.py` which batch size is `8 x 1 = 8`. - -**Please remember to check the bottom of the specific config file you want to use, it will have `auto_scale_lr.base_batch_size` if the batch size is not `16`. If you can't find those values, check the config file which in `_base_=[xxx]` and you will find it. Please do not modify its values if you want to automatically scale the LR.** - -The basic usage of learning rate auto scaling is as follows. - -```shell -python tools/train.py \ - ${CONFIG_FILE} \ - --auto-scale-lr \ - [optional arguments] -``` - -If you enabled this feature, the learning rate will be automatically scaled according to the number of GPUs on the machine and the batch size of training. See [linear scaling rule](https://arxiv.org/abs/1706.02677) for details. For example, If there are 4 GPUs and 2 pictures on each GPU, `lr = 0.01`, then if there are 16 GPUs and 4 pictures on each GPU, it will automatically scale to `lr = 0.08`. - -If you don't want to use it, you need to calculate the learning rate according to the [linear scaling rule](https://arxiv.org/abs/1706.02677) manually then change `optimizer.lr` in specific config file. - -## Training on a single GPU - -We provide `tools/train.py` to launch training jobs on a single GPU. -The basic usage is as follows. - -```shell -python tools/train.py \ - ${CONFIG_FILE} \ - [optional arguments] -``` - -During training, log files and checkpoints will be saved to the working directory, which is specified by `work_dir` in the config file or via CLI argument `--work-dir`. - -By default, the model is evaluated on the validation set every epoch, the evaluation interval can be specified in the config file as shown below. - -```python -# evaluate the model every 12 epochs. -train_cfg = dict(val_interval=12) -``` - -This tool accepts several optional arguments, including: - -- `--work-dir ${WORK_DIR}`: Override the working directory. -- `--resume`: resume from the latest checkpoint in the work_dir automatically. -- `--resume ${CHECKPOINT_FILE}`: resume from the specific checkpoint. -- `--cfg-options 'Key=value'`: Overrides other settings in the used config. - -**Note:** - -There is a difference between `resume` and `load-from`: - -`resume` loads both the weights of the model and the state of the optimizer, and it inherits the iteration number from the specified checkpoint, so training does not start again from scratch. `load-from`, on the other hand, only loads the weights of the model, and its training starts from scratch. It is often used for fine-tuning a model. `load-from` needs to be written in the config file, while `resume` is passed as a command line argument. - -## Training on CPU - -The process of training on the CPU is consistent with single GPU training. We just need to disable GPUs before the training process. - -```shell -export CUDA_VISIBLE_DEVICES=-1 -``` - -And then run the script [above](#training-on-a-single-GPU). - -**Note**: - -We do not recommend users to use the CPU for training because it is too slow. We support this feature to allow users to debug on machines without GPU for convenience. - -## Training on multiple GPUs - -We provide `tools/dist_train.sh` to launch training on multiple GPUs. -The basic usage is as follows. - -```shell -bash ./tools/dist_train.sh \ - ${CONFIG_FILE} \ - ${GPU_NUM} \ - [optional arguments] -``` - -Optional arguments remain the same as stated [above](#training-on-a-single-GPU). - -### Launch multiple jobs simultaneously - -If you would like to launch multiple jobs on a single machine, e.g., 2 jobs of 4-GPU training on a machine with 8 GPUs, -you need to specify different ports (29500 by default) for each job to avoid communication conflict. - -If you use `dist_train.sh` to launch training jobs, you can set the port in the commands. - -```shell -CUDA_VISIBLE_DEVICES=0,1,2,3 PORT=29500 ./tools/dist_train.sh ${CONFIG_FILE} 4 -CUDA_VISIBLE_DEVICES=4,5,6,7 PORT=29501 ./tools/dist_train.sh ${CONFIG_FILE} 4 -``` - -## Train with multiple machines - -If you launch with multiple machines simply connected with ethernet, you can simply run the following commands: - -On the first machine: - -```shell -NNODES=2 NODE_RANK=0 PORT=$MASTER_PORT MASTER_ADDR=$MASTER_ADDR sh tools/dist_train.sh $CONFIG $GPUS -``` - -On the second machine: - -```shell -NNODES=2 NODE_RANK=1 PORT=$MASTER_PORT MASTER_ADDR=$MASTER_ADDR sh tools/dist_train.sh $CONFIG $GPUS -``` - -Usually, it is slow if you do not have high-speed networking like InfiniBand. - -## Manage jobs with Slurm - -[Slurm](https://slurm.schedmd.com/) is a good job scheduling system for computing clusters. -On a cluster managed by Slurm, you can use `slurm_train.sh` to spawn training jobs. It supports both single-node and multi-node training. - -The basic usage is as follows. - -```shell -[GPUS=${GPUS}] ./tools/slurm_train.sh ${PARTITION} ${JOB_NAME} ${CONFIG_FILE} ${WORK_DIR} -``` - -Below is an example of using 16 GPUs to train Mask R-CNN on a Slurm partition named _dev_, and set the work-dir to some shared file systems. - -```shell -GPUS=16 ./tools/slurm_train.sh dev mask_r50_1x configs/mask-rcnn_r50_fpn_1x_coco.py /nfs/xxxx/mask_rcnn_r50_fpn_1x -``` - -You can check [the source code](../../../tools/slurm_train.sh) to review full arguments and environment variables. - -When using Slurm, the port option needs to be set in one of the following ways: - -1. Set the port through `--options`. This is more recommended since it does not change the original configs. - - ```shell - CUDA_VISIBLE_DEVICES=0,1,2,3 GPUS=4 ./tools/slurm_train.sh ${PARTITION} ${JOB_NAME} config1.py ${WORK_DIR} --cfg-options 'dist_params.port=29500' - CUDA_VISIBLE_DEVICES=4,5,6,7 GPUS=4 ./tools/slurm_train.sh ${PARTITION} ${JOB_NAME} config2.py ${WORK_DIR} --cfg-options 'dist_params.port=29501' - ``` - -2. Modify the config files to set different communication ports. - - In `config1.py`, set - - ```python - dist_params = dict(backend='nccl', port=29500) - ``` - - In `config2.py`, set - - ```python - dist_params = dict(backend='nccl', port=29501) - ``` - - Then you can launch two jobs with `config1.py` and `config2.py`. - - ```shell - CUDA_VISIBLE_DEVICES=0,1,2,3 GPUS=4 ./tools/slurm_train.sh ${PARTITION} ${JOB_NAME} config1.py ${WORK_DIR} - CUDA_VISIBLE_DEVICES=4,5,6,7 GPUS=4 ./tools/slurm_train.sh ${PARTITION} ${JOB_NAME} config2.py ${WORK_DIR} - ``` - -# Train with customized datasets - -In this part, you will know how to train predefined models with customized datasets and then test it. We use the [balloon dataset](https://github.com/matterport/Mask_RCNN/tree/master/samples/balloon) as an example to describe the whole process. - -The basic steps are as below: - -1. Prepare the customized dataset -2. Prepare a config -3. Train, test, and infer models on the customized dataset. - -## Prepare the customized dataset - -There are three ways to support a new dataset in MMDetection: - -1. Reorganize the dataset into COCO format. -2. Reorganize the dataset into a middle format. -3. Implement a new dataset. - -Usually, we recommend using the first two methods which are usually easier than the third. - -In this note, we give an example of converting the data into COCO format. - -**Note**: Datasets and metrics have been decoupled except CityScapes since MMDetection 3.0. Therefore, users can use any kind of evaluation metrics for any format of datasets during validation. For example: evaluate on COCO dataset with VOC metric, or evaluate on OpenImages dataset with both VOC and COCO metrics. - -### COCO annotation format - -The necessary keys of COCO format for instance segmentation are as below, for the complete details, please refer [here](https://cocodataset.org/#format-data). - -```json -{ - "images": [image], - "annotations": [annotation], - "categories": [category] -} - -image = { - "id": int, - "width": int, - "height": int, - "file_name": str, -} - -annotation = { - "id": int, - "image_id": int, - "category_id": int, - "segmentation": RLE or [polygon], - "area": float, - "bbox": [x,y,width,height], # (x, y) are the coordinates of the upper left corner of the bbox - "iscrowd": 0 or 1, -} - -categories = [{ - "id": int, - "name": str, - "supercategory": str, -}] -``` - -Assume we use the balloon dataset. -After downloading the data, we need to implement a function to convert the annotation format into the COCO format. Then we can use implemented `CocoDataset` to load the data and perform training and evaluation. - -If you take a look at the dataset, you will find the dataset format is as below: - -```json -{'base64_img_data': '', - 'file_attributes': {}, - 'filename': '34020010494_e5cb88e1c4_k.jpg', - 'fileref': '', - 'regions': {'0': {'region_attributes': {}, - 'shape_attributes': {'all_points_x': [1020, - 1000, - 994, - 1003, - 1023, - 1050, - 1089, - 1134, - 1190, - 1265, - 1321, - 1361, - 1403, - 1428, - 1442, - 1445, - 1441, - 1427, - 1400, - 1361, - 1316, - 1269, - 1228, - 1198, - 1207, - 1210, - 1190, - 1177, - 1172, - 1174, - 1170, - 1153, - 1127, - 1104, - 1061, - 1032, - 1020], - 'all_points_y': [963, - 899, - 841, - 787, - 738, - 700, - 663, - 638, - 621, - 619, - 643, - 672, - 720, - 765, - 800, - 860, - 896, - 942, - 990, - 1035, - 1079, - 1112, - 1129, - 1134, - 1144, - 1153, - 1166, - 1166, - 1150, - 1136, - 1129, - 1122, - 1112, - 1084, - 1037, - 989, - 963], - 'name': 'polygon'}}}, - 'size': 1115004} -``` - -The annotation is a JSON file where each key indicates an image's all annotations. -The code to convert the balloon dataset into coco format is as below. - -```python -import os.path as osp - -import mmcv - -from mmengine.fileio import dump, load -from mmengine.utils import track_iter_progress - - -def convert_balloon_to_coco(ann_file, out_file, image_prefix): - data_infos = load(ann_file) - - annotations = [] - images = [] - obj_count = 0 - for idx, v in enumerate(track_iter_progress(data_infos.values())): - filename = v['filename'] - img_path = osp.join(image_prefix, filename) - height, width = mmcv.imread(img_path).shape[:2] - - images.append( - dict(id=idx, file_name=filename, height=height, width=width)) - - for _, obj in v['regions'].items(): - assert not obj['region_attributes'] - obj = obj['shape_attributes'] - px = obj['all_points_x'] - py = obj['all_points_y'] - poly = [(x + 0.5, y + 0.5) for x, y in zip(px, py)] - poly = [p for x in poly for p in x] - - x_min, y_min, x_max, y_max = (min(px), min(py), max(px), max(py)) - - data_anno = dict( - image_id=idx, - id=obj_count, - category_id=0, - bbox=[x_min, y_min, x_max - x_min, y_max - y_min], - area=(x_max - x_min) * (y_max - y_min), - segmentation=[poly], - iscrowd=0) - annotations.append(data_anno) - obj_count += 1 - - coco_format_json = dict( - images=images, - annotations=annotations, - categories=[{ - 'id': 0, - 'name': 'balloon' - }]) - dump(coco_format_json, out_file) - - -if __name__ == '__main__': - convert_balloon_to_coco(ann_file='data/balloon/train/via_region_data.json', - out_file='data/balloon/train/annotation_coco.json', - image_prefix='data/balloon/train') - convert_balloon_to_coco(ann_file='data/balloon/val/via_region_data.json', - out_file='data/balloon/val/annotation_coco.json', - image_prefix='data/balloon/val') - -``` - -Using the function above, users can successfully convert the annotation file into json format, then we can use `CocoDataset` to train and evaluate the model with `CocoMetric`. - -## Prepare a config - -The second step is to prepare a config thus the dataset could be successfully loaded. Assume that we want to use Mask R-CNN with FPN, the config to train the detector on balloon dataset is as below. Assume the config is under directory `configs/balloon/` and named as `mask-rcnn_r50-caffe_fpn_ms-poly-1x_balloon.py`, the config is as below. Please refer [Learn about Configs - MMDetection 3.0.0 documentation](https://mmdetection.readthedocs.io/en/latest/user_guides/config.html) to get detailed information about config files. - -```python -# The new config inherits a base config to highlight the necessary modification -_base_ = '../mask_rcnn/mask-rcnn_r50-caffe_fpn_ms-poly-1x_coco.py' - -# We also need to change the num_classes in head to match the dataset's annotation -model = dict( - roi_head=dict( - bbox_head=dict(num_classes=1), mask_head=dict(num_classes=1))) - -# Modify dataset related settings -data_root = 'data/balloon/' -metainfo = { - 'classes': ('balloon', ), - 'palette': [ - (220, 20, 60), - ] -} -train_dataloader = dict( - batch_size=1, - dataset=dict( - data_root=data_root, - metainfo=metainfo, - ann_file='train/annotation_coco.json', - data_prefix=dict(img='train/'))) -val_dataloader = dict( - dataset=dict( - data_root=data_root, - metainfo=metainfo, - ann_file='val/annotation_coco.json', - data_prefix=dict(img='val/'))) -test_dataloader = val_dataloader - -# Modify metric related settings -val_evaluator = dict(ann_file=data_root + 'val/annotation_coco.json') -test_evaluator = val_evaluator - -# We can use the pre-trained Mask RCNN model to obtain higher performance -load_from = 'https://download.openmmlab.com/mmdetection/v2.0/mask_rcnn/mask_rcnn_r50_caffe_fpn_mstrain-poly_3x_coco/mask_rcnn_r50_caffe_fpn_mstrain-poly_3x_coco_bbox_mAP-0.408__segm_mAP-0.37_20200504_163245-42aa3d00.pth' - -``` - -## Train a new model - -To train a model with the new config, you can simply run - -```shell -python tools/train.py configs/balloon/mask-rcnn_r50-caffe_fpn_ms-poly-1x_balloon.py -``` - -For more detailed usages, please refer to the [training guide](https://mmdetection.readthedocs.io/en/latest/user_guides/train.html#train-predefined-models-on-standard-datasets). - -## Test and inference - -To test the trained model, you can simply run - -```shell -python tools/test.py configs/balloon/mask-rcnn_r50-caffe_fpn_ms-poly-1x_balloon.py work_dirs/mask-rcnn_r50-caffe_fpn_ms-poly-1x_balloon/epoch_12.pth -``` - -For more detailed usages, please refer to the [testing guide](https://mmdetection.readthedocs.io/en/latest/user_guides/test.html). diff --git a/docs/en/user_guides/useful_hooks.md b/docs/en/user_guides/useful_hooks.md deleted file mode 100644 index 4c30686d68a..00000000000 --- a/docs/en/user_guides/useful_hooks.md +++ /dev/null @@ -1,105 +0,0 @@ -# Useful Hooks - -MMDetection and MMEngine provide users with various useful hooks including log hooks, `NumClassCheckHook`, etc. This tutorial introduces the functionalities and usages of hooks implemented in MMDetection. For using hooks in MMEngine, please read the [API documentation in MMEngine](https://github.com/open-mmlab/mmengine/tree/main/docs/en/tutorials/hook.md). - -## CheckInvalidLossHook - -## NumClassCheckHook - -## MemoryProfilerHook - -[Memory profiler hook](https://github.com/open-mmlab/mmdetection/blob/main/mmdet/engine/hooks/memory_profiler_hook.py) records memory information including virtual memory, swap memory, and the memory of the current process. This hook helps grasp the memory usage of the system and discover potential memory leak bugs. To use this hook, users should install `memory_profiler` and `psutil` by `pip install memory_profiler psutil` first. - -### Usage - -To use this hook, users should add the following code to the config file. - -```python -custom_hooks = [ - dict(type='MemoryProfilerHook', interval=50) -] -``` - -### Result - -During training, you can see the messages in the log recorded by `MemoryProfilerHook` as below. - -```text -The system has 250 GB (246360 MB + 9407 MB) of memory and 8 GB (5740 MB + 2452 MB) of swap memory in total. Currently 9407 MB (4.4%) of memory and 5740 MB (29.9%) of swap memory were consumed. And the current training process consumed 5434 MB of memory. -``` - -```text -2022-04-21 08:49:56,881 - mmengine - INFO - Memory information available_memory: 246360 MB, used_memory: 9407 MB, memory_utilization: 4.4 %, available_swap_memory: 5740 MB, used_swap_memory: 2452 MB, swap_memory_utilization: 29.9 %, current_process_memory: 5434 MB -``` - -## SetEpochInfoHook - -## SyncNormHook - -## SyncRandomSizeHook - -## YOLOXLrUpdaterHook - -## YOLOXModeSwitchHook - -## How to implement a custom hook - -In general, there are 20 points where hooks can be inserted from the beginning to the end of model training. The users can implement custom hooks and insert them at different points in the process of training to do what they want. - -- global points: `before_run`, `after_run` -- points in training: `before_train`, `before_train_epoch`, `before_train_iter`, `after_train_iter`, `after_train_epoch`, `after_train` -- points in validation: `before_val`, `before_val_epoch`, `before_val_iter`, `after_val_iter`, `after_val_epoch`, `after_val` -- points at testing: `before_test`, `before_test_epoch`, `before_test_iter`, `after_test_iter`, `after_test_epoch`, `after_test` -- other points: `before_save_checkpoint`, `after_save_checkpoint` - -For example, users can implement a hook to check loss and terminate training when loss goes NaN. To achieve that, there are three steps to go: - -1. Implement a new hook that inherits the `Hook` class in MMEngine, and implement `after_train_iter` method which checks whether loss goes NaN after every `n` training iterations. -2. The implemented hook should be registered in `HOOKS` by `@HOOKS.register_module()` as shown in the code below. -3. Add `custom_hooks = [dict(type='MemoryProfilerHook', interval=50)]` in the config file. - -```python -from typing import Optional - -import torch -from mmengine.hooks import Hook -from mmengine.runner import Runner - -from mmdet.registry import HOOKS - - -@HOOKS.register_module() -class CheckInvalidLossHook(Hook): - """Check invalid loss hook. - - This hook will regularly check whether the loss is valid - during training. - - Args: - interval (int): Checking interval (every k iterations). - Default: 50. - """ - - def __init__(self, interval: int = 50) -> None: - self.interval = interval - - def after_train_iter(self, - runner: Runner, - batch_idx: int, - data_batch: Optional[dict] = None, - outputs: Optional[dict] = None) -> None: - """Regularly check whether the loss is valid every n iterations. - - Args: - runner (:obj:`Runner`): The runner of the training process. - batch_idx (int): The index of the current batch in the train loop. - data_batch (dict, Optional): Data from dataloader. - Defaults to None. - outputs (dict, Optional): Outputs from model. Defaults to None. - """ - if self.every_n_train_iters(runner, self.interval): - assert torch.isfinite(outputs['loss']), \ - runner.logger.info('loss become infinite or NaN!') -``` - -Please read [customize_runtime](../advanced_guides/customize_runtime.md) for more about implementing a custom hook. diff --git a/docs/en/user_guides/useful_tools.md b/docs/en/user_guides/useful_tools.md deleted file mode 100644 index 8a79f0c2f1b..00000000000 --- a/docs/en/user_guides/useful_tools.md +++ /dev/null @@ -1,660 +0,0 @@ -Apart from training/testing scripts, We provide lots of useful tools under the -`tools/` directory. - -## Log Analysis - -`tools/analysis_tools/analyze_logs.py` plots loss/mAP curves given a training -log file. Run `pip install seaborn` first to install the dependency. - -```shell -python tools/analysis_tools/analyze_logs.py plot_curve [--keys ${KEYS}] [--eval-interval ${EVALUATION_INTERVAL}] [--title ${TITLE}] [--legend ${LEGEND}] [--backend ${BACKEND}] [--style ${STYLE}] [--out ${OUT_FILE}] -``` - -![loss curve image](../../../resources/loss_curve.png) - -Examples: - -- Plot the classification loss of some run. - - ```shell - python tools/analysis_tools/analyze_logs.py plot_curve log.json --keys loss_cls --legend loss_cls - ``` - -- Plot the classification and regression loss of some run, and save the figure to a pdf. - - ```shell - python tools/analysis_tools/analyze_logs.py plot_curve log.json --keys loss_cls loss_bbox --out losses.pdf - ``` - -- Compare the bbox mAP of two runs in the same figure. - - ```shell - python tools/analysis_tools/analyze_logs.py plot_curve log1.json log2.json --keys bbox_mAP --legend run1 run2 - ``` - -- Compute the average training speed. - - ```shell - python tools/analysis_tools/analyze_logs.py cal_train_time log.json [--include-outliers] - ``` - - The output is expected to be like the following. - - ```text - -----Analyze train time of work_dirs/some_exp/20190611_192040.log.json----- - slowest epoch 11, average time is 1.2024 - fastest epoch 1, average time is 1.1909 - time std over epochs is 0.0028 - average iter time: 1.1959 s/iter - ``` - -## Result Analysis - -`tools/analysis_tools/analyze_results.py` calculates single image mAP and saves or shows the topk images with the highest and lowest scores based on prediction results. - -**Usage** - -```shell -python tools/analysis_tools/analyze_results.py \ - ${CONFIG} \ - ${PREDICTION_PATH} \ - ${SHOW_DIR} \ - [--show] \ - [--wait-time ${WAIT_TIME}] \ - [--topk ${TOPK}] \ - [--show-score-thr ${SHOW_SCORE_THR}] \ - [--cfg-options ${CFG_OPTIONS}] -``` - -Description of all arguments: - -- `config` : The path of a model config file. -- `prediction_path`: Output result file in pickle format from `tools/test.py` -- `show_dir`: Directory where painted GT and detection images will be saved -- `--show`: Determines whether to show painted images, If not specified, it will be set to `False` -- `--wait-time`: The interval of show (s), 0 is block -- `--topk`: The number of saved images that have the highest and lowest `topk` scores after sorting. If not specified, it will be set to `20`. -- `--show-score-thr`: Show score threshold. If not specified, it will be set to `0`. -- `--cfg-options`: If specified, the key-value pair optional cfg will be merged into config file - -**Examples**: - -Assume that you have got result file in pickle format from `tools/test.py` in the path './result.pkl'. - -1. Test Faster R-CNN and visualize the results, save images to the directory `results/` - -```shell -python tools/analysis_tools/analyze_results.py \ - configs/faster_rcnn/faster-rcnn_r50_fpn_1x_coco.py \ - result.pkl \ - results \ - --show -``` - -2. Test Faster R-CNN and specified topk to 50, save images to the directory `results/` - -```shell -python tools/analysis_tools/analyze_results.py \ - configs/faster_rcnn/faster-rcnn_r50_fpn_1x_coco.py \ - result.pkl \ - results \ - --topk 50 -``` - -3. If you want to filter the low score prediction results, you can specify the `show-score-thr` parameter - -```shell -python tools/analysis_tools/analyze_results.py \ - configs/faster_rcnn/faster-rcnn_r50_fpn_1x_coco.py \ - result.pkl \ - results \ - --show-score-thr 0.3 -``` - -## Fusing results from multiple models - -`tools/analysis_tools/fusion_results.py` can fusing predictions using Weighted Boxes Fusion(WBF) from different object detection models. (Currently support coco format only) - -**Usage** - -```shell -python tools/analysis_tools/fuse_results.py \ - ${PRED_RESULTS} \ - [--annotation ${ANNOTATION}] \ - [--weights ${WEIGHTS}] \ - [--fusion-iou-thr ${FUSION_IOU_THR}] \ - [--skip-box-thr ${SKIP_BOX_THR}] \ - [--conf-type ${CONF_TYPE}] \ - [--eval-single ${EVAL_SINGLE}] \ - [--save-fusion-results ${SAVE_FUSION_RESULTS}] \ - [--out-dir ${OUT_DIR}] -``` - -Description of all arguments: - -- `pred-results`: Paths of detection results from different models.(Currently support coco format only) -- `--annotation`: Path of ground-truth. -- `--weights`: List of weights for each model. Default: `None`, which means weight == 1 for each model. -- `--fusion-iou-thr`: IoU value for boxes to be a match。Default: `0.55`。 -- `--skip-box-thr`: The confidence threshold that needs to be excluded in the WBF algorithm. bboxes whose confidence is less than this value will be excluded.。Default: `0`。 -- `--conf-type`: How to calculate confidence in weighted boxes. - - `avg`: average value,default. - - `max`: maximum value. - - `box_and_model_avg`: box and model wise hybrid weighted average. - - `absent_model_aware_avg`: weighted average that takes into account the absent model. -- `--eval-single`: Whether evaluate every single model. Default: `False`. -- `--save-fusion-results`: Whether save fusion results. Default: `False`. -- `--out-dir`: Path of fusion results. - -**Examples**: -Assume that you have got 3 result files from corresponding models through `tools/test.py`, which paths are './faster-rcnn_r50-caffe_fpn_1x_coco.json', './retinanet_r50-caffe_fpn_1x_coco.json', './cascade-rcnn_r50-caffe_fpn_1x_coco.json' respectively. The ground-truth file path is './annotation.json'. - -1. Fusion of predictions from three models and evaluation of their effectiveness - -```shell -python tools/analysis_tools/fuse_results.py \ - ./faster-rcnn_r50-caffe_fpn_1x_coco.json \ - ./retinanet_r50-caffe_fpn_1x_coco.json \ - ./cascade-rcnn_r50-caffe_fpn_1x_coco.json \ - --annotation ./annotation.json \ - --weights 1 2 3 \ -``` - -2. Simultaneously evaluate each single model and fusion results - -```shell -python tools/analysis_tools/fuse_results.py \ - ./faster-rcnn_r50-caffe_fpn_1x_coco.json \ - ./retinanet_r50-caffe_fpn_1x_coco.json \ - ./cascade-rcnn_r50-caffe_fpn_1x_coco.json \ - --annotation ./annotation.json \ - --weights 1 2 3 \ - --eval-single -``` - -3. Fusion of prediction results from three models and save - -```shell -python tools/analysis_tools/fuse_results.py \ - ./faster-rcnn_r50-caffe_fpn_1x_coco.json \ - ./retinanet_r50-caffe_fpn_1x_coco.json \ - ./cascade-rcnn_r50-caffe_fpn_1x_coco.json \ - --annotation ./annotation.json \ - --weights 1 2 3 \ - --save-fusion-results \ - --out-dir outputs/fusion -``` - -## Visualization - -### Visualize Datasets - -`tools/analysis_tools/browse_dataset.py` helps the user to browse a detection dataset (both -images and bounding box annotations) visually, or save the image to a -designated directory. - -```shell -python tools/analysis_tools/browse_dataset.py ${CONFIG} [-h] [--skip-type ${SKIP_TYPE[SKIP_TYPE...]}] [--output-dir ${OUTPUT_DIR}] [--not-show] [--show-interval ${SHOW_INTERVAL}] -``` - -### Visualize Models - -First, convert the model to ONNX as described -[here](#convert-mmdetection-model-to-onnx-experimental). -Note that currently only RetinaNet is supported, support for other models -will be coming in later versions. -The converted model could be visualized by tools like [Netron](https://github.com/lutzroeder/netron). - -### Visualize Predictions - -If you need a lightweight GUI for visualizing the detection results, you can refer [DetVisGUI project](https://github.com/Chien-Hung/DetVisGUI/tree/mmdetection). - -## Error Analysis - -`tools/analysis_tools/coco_error_analysis.py` analyzes COCO results per category and by -different criterion. It can also make a plot to provide useful information. - -```shell -python tools/analysis_tools/coco_error_analysis.py ${RESULT} ${OUT_DIR} [-h] [--ann ${ANN}] [--types ${TYPES[TYPES...]}] -``` - -Example: - -Assume that you have got [Mask R-CNN checkpoint file](https://download.openmmlab.com/mmdetection/v2.0/mask_rcnn/mask_rcnn_r50_fpn_1x_coco/mask_rcnn_r50_fpn_1x_coco_20200205-d4b0c5d6.pth) in the path 'checkpoint'. For other checkpoints, please refer to our [model zoo](./model_zoo.md). - -You can modify the test_evaluator to save the results bbox by: - -1. Find which dataset in 'configs/base/datasets' the current config corresponds to. -2. Replace the original test_evaluator and test_dataloader with test_evaluator and test_dataloader in the comment in dataset config. -3. Use the following command to get the results bbox and segmentation json file. - -```shell -python tools/test.py \ - configs/mask_rcnn/mask-rcnn_r50_fpn_1x_coco.py \ - checkpoint/mask_rcnn_r50_fpn_1x_coco_20200205-d4b0c5d6.pth \ -``` - -1. Get COCO bbox error results per category , save analyze result images to the directory(In [config](../../../configs/_base_/datasets/coco_instance.py) the default directory is './work_dirs/coco_instance/test') - -```shell -python tools/analysis_tools/coco_error_analysis.py \ - results.bbox.json \ - results \ - --ann=data/coco/annotations/instances_val2017.json \ -``` - -2. Get COCO segmentation error results per category , save analyze result images to the directory - -```shell -python tools/analysis_tools/coco_error_analysis.py \ - results.segm.json \ - results \ - --ann=data/coco/annotations/instances_val2017.json \ - --types='segm' -``` - -## Model Serving - -In order to serve an `MMDetection` model with [`TorchServe`](https://pytorch.org/serve/), you can follow the steps: - -### 1. Install TorchServe - -Suppose you have a `Python` environment with `PyTorch` and `MMDetection` successfully installed, -then you could run the following command to install `TorchServe` and its dependencies. -For more other installation options, please refer to the [quick start](https://github.com/pytorch/serve/blob/master/README.md#serve-a-model). - -```shell -python -m pip install torchserve torch-model-archiver torch-workflow-archiver nvgpu -``` - -**Note**: Please refer to [torchserve docker](https://github.com/pytorch/serve/blob/master/docker/README.md) if you want to use `TorchServe` in docker. - -### 2. Convert model from MMDetection to TorchServe - -```shell -python tools/deployment/mmdet2torchserve.py ${CONFIG_FILE} ${CHECKPOINT_FILE} \ ---output-folder ${MODEL_STORE} \ ---model-name ${MODEL_NAME} -``` - -### 3. Start `TorchServe` - -```shell -torchserve --start --ncs \ - --model-store ${MODEL_STORE} \ - --models ${MODEL_NAME}.mar -``` - -### 4. Test deployment - -```shell -curl -O curl -O https://raw.githubusercontent.com/pytorch/serve/master/docs/images/3dogs.jpg -curl http://127.0.0.1:8080/predictions/${MODEL_NAME} -T 3dogs.jpg -``` - -You should obtain a response similar to: - -```json -[ - { - "class_label": 16, - "class_name": "dog", - "bbox": [ - 294.63409423828125, - 203.99111938476562, - 417.048583984375, - 281.62744140625 - ], - "score": 0.9987992644309998 - }, - { - "class_label": 16, - "class_name": "dog", - "bbox": [ - 404.26019287109375, - 126.0080795288086, - 574.5091552734375, - 293.6662292480469 - ], - "score": 0.9979367256164551 - }, - { - "class_label": 16, - "class_name": "dog", - "bbox": [ - 197.2144775390625, - 93.3067855834961, - 307.8505554199219, - 276.7560119628906 - ], - "score": 0.993338406085968 - } -] -``` - -#### Compare results - -And you can use `test_torchserver.py` to compare result of `TorchServe` and `PyTorch`, and visualize them. - -```shell -python tools/deployment/test_torchserver.py ${IMAGE_FILE} ${CONFIG_FILE} ${CHECKPOINT_FILE} ${MODEL_NAME} -[--inference-addr ${INFERENCE_ADDR}] [--device ${DEVICE}] [--score-thr ${SCORE_THR}] [--work-dir ${WORK_DIR}] -``` - -Example: - -```shell -python tools/deployment/test_torchserver.py \ -demo/demo.jpg \ -configs/yolo/yolov3_d53_8xb8-320-273e_coco.py \ -checkpoint/yolov3_d53_320_273e_coco-421362b6.pth \ -yolov3 \ ---work-dir ./work-dir -``` - -### 5. Stop `TorchServe` - -```shell -torchserve --stop -``` - -## Model Complexity - -`tools/analysis_tools/get_flops.py` is a script adapted from [flops-counter.pytorch](https://github.com/sovrasov/flops-counter.pytorch) to compute the FLOPs and params of a given model. - -```shell -python tools/analysis_tools/get_flops.py ${CONFIG_FILE} [--shape ${INPUT_SHAPE}] -``` - -You will get the results like this. - -```text -============================== -Input shape: (3, 1280, 800) -Flops: 239.32 GFLOPs -Params: 37.74 M -============================== -``` - -**Note**: This tool is still experimental and we do not guarantee that the -number is absolutely correct. You may well use the result for simple -comparisons, but double check it before you adopt it in technical reports or papers. - -1. FLOPs are related to the input shape while parameters are not. The default - input shape is (1, 3, 1280, 800). -2. Some operators are not counted into FLOPs like GN and custom operators. Refer to [`mmcv.cnn.get_model_complexity_info()`](https://github.com/open-mmlab/mmcv/blob/2.x/mmcv/cnn/utils/flops_counter.py) for details. -3. The FLOPs of two-stage detectors is dependent on the number of proposals. - -## Model conversion - -### MMDetection model to ONNX - -We provide a script to convert model to [ONNX](https://github.com/onnx/onnx) format. We also support comparing the output results between Pytorch and ONNX model for verification. More details can refer to [mmdeploy](https://github.com/open-mmlab/mmdeploy) - -### MMDetection 1.x model to MMDetection 2.x - -`tools/model_converters/upgrade_model_version.py` upgrades a previous MMDetection checkpoint -to the new version. Note that this script is not guaranteed to work as some -breaking changes are introduced in the new version. It is recommended to -directly use the new checkpoints. - -```shell -python tools/model_converters/upgrade_model_version.py ${IN_FILE} ${OUT_FILE} [-h] [--num-classes NUM_CLASSES] -``` - -### RegNet model to MMDetection - -`tools/model_converters/regnet2mmdet.py` convert keys in pycls pretrained RegNet models to -MMDetection style. - -```shell -python tools/model_converters/regnet2mmdet.py ${SRC} ${DST} [-h] -``` - -### Detectron ResNet to Pytorch - -`tools/model_converters/detectron2pytorch.py` converts keys in the original detectron pretrained -ResNet models to PyTorch style. - -```shell -python tools/model_converters/detectron2pytorch.py ${SRC} ${DST} ${DEPTH} [-h] -``` - -### Prepare a model for publishing - -`tools/model_converters/publish_model.py` helps users to prepare their model for publishing. - -Before you upload a model to AWS, you may want to - -1. convert model weights to CPU tensors -2. delete the optimizer states and -3. compute the hash of the checkpoint file and append the hash id to the - filename. - -```shell -python tools/model_converters/publish_model.py ${INPUT_FILENAME} ${OUTPUT_FILENAME} -``` - -E.g., - -```shell -python tools/model_converters/publish_model.py work_dirs/faster_rcnn/latest.pth faster_rcnn_r50_fpn_1x_20190801.pth -``` - -The final output filename will be `faster_rcnn_r50_fpn_1x_20190801-{hash id}.pth`. - -## Dataset Conversion - -`tools/data_converters/` contains tools to convert the Cityscapes dataset -and Pascal VOC dataset to the COCO format. - -```shell -python tools/dataset_converters/cityscapes.py ${CITYSCAPES_PATH} [-h] [--img-dir ${IMG_DIR}] [--gt-dir ${GT_DIR}] [-o ${OUT_DIR}] [--nproc ${NPROC}] -python tools/dataset_converters/pascal_voc.py ${DEVKIT_PATH} [-h] [-o ${OUT_DIR}] -``` - -## Dataset Download - -`tools/misc/download_dataset.py` supports downloading datasets such as COCO, VOC, and LVIS. - -```shell -python tools/misc/download_dataset.py --dataset-name coco2017 -python tools/misc/download_dataset.py --dataset-name voc2007 -python tools/misc/download_dataset.py --dataset-name lvis -``` - -For users in China, these datasets can also be downloaded from [OpenDataLab](https://opendatalab.com/?source=OpenMMLab%20GitHub) with high speed: - -- [COCO2017](https://opendatalab.com/COCO_2017/download?source=OpenMMLab%20GitHub) -- [VOC2007](https://opendatalab.com/PASCAL_VOC2007/download?source=OpenMMLab%20GitHub) -- [VOC2012](https://opendatalab.com/PASCAL_VOC2012/download?source=OpenMMLab%20GitHub) -- [LVIS](https://opendatalab.com/LVIS/download?source=OpenMMLab%20GitHub) - -## Benchmark - -### Robust Detection Benchmark - -`tools/analysis_tools/test_robustness.py` and`tools/analysis_tools/robustness_eval.py` helps users to evaluate model robustness. The core idea comes from [Benchmarking Robustness in Object Detection: Autonomous Driving when Winter is Coming](https://arxiv.org/abs/1907.07484). For more information how to evaluate models on corrupted images and results for a set of standard models please refer to [robustness_benchmarking.md](robustness_benchmarking.md). - -### FPS Benchmark - -`tools/analysis_tools/benchmark.py` helps users to calculate FPS. The FPS value includes model forward and post-processing. In order to get a more accurate value, currently only supports single GPU distributed startup mode. - -```shell -python -m torch.distributed.launch --nproc_per_node=1 --master_port=${PORT} tools/analysis_tools/benchmark.py \ - ${CONFIG} \ - [--checkpoint ${CHECKPOINT}] \ - [--repeat-num ${REPEAT_NUM}] \ - [--max-iter ${MAX_ITER}] \ - [--log-interval ${LOG_INTERVAL}] \ - --launcher pytorch -``` - -Examples: Assuming that you have already downloaded the `Faster R-CNN` model checkpoint to the directory `checkpoints/`. - -```shell -python -m torch.distributed.launch --nproc_per_node=1 --master_port=29500 tools/analysis_tools/benchmark.py \ - configs/faster_rcnn/faster-rcnn_r50_fpn_1x_coco.py \ - checkpoints/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth \ - --launcher pytorch -``` - -## Miscellaneous - -### Evaluating a metric - -`tools/analysis_tools/eval_metric.py` evaluates certain metrics of a pkl result file -according to a config file. - -```shell -python tools/analysis_tools/eval_metric.py ${CONFIG} ${PKL_RESULTS} [-h] [--format-only] [--eval ${EVAL[EVAL ...]}] - [--cfg-options ${CFG_OPTIONS [CFG_OPTIONS ...]}] - [--eval-options ${EVAL_OPTIONS [EVAL_OPTIONS ...]}] -``` - -### Print the entire config - -`tools/misc/print_config.py` prints the whole config verbatim, expanding all its -imports. - -```shell -python tools/misc/print_config.py ${CONFIG} [-h] [--options ${OPTIONS [OPTIONS...]}] -``` - -## Hyper-parameter Optimization - -### YOLO Anchor Optimization - -`tools/analysis_tools/optimize_anchors.py` provides two method to optimize YOLO anchors. - -One is k-means anchor cluster which refers from [darknet](https://github.com/AlexeyAB/darknet/blob/master/src/detector.c#L1421). - -```shell -python tools/analysis_tools/optimize_anchors.py ${CONFIG} --algorithm k-means --input-shape ${INPUT_SHAPE [WIDTH HEIGHT]} --output-dir ${OUTPUT_DIR} -``` - -Another is using differential evolution to optimize anchors. - -```shell -python tools/analysis_tools/optimize_anchors.py ${CONFIG} --algorithm differential_evolution --input-shape ${INPUT_SHAPE [WIDTH HEIGHT]} --output-dir ${OUTPUT_DIR} -``` - -E.g., - -```shell -python tools/analysis_tools/optimize_anchors.py configs/yolo/yolov3_d53_8xb8-320-273e_coco.py --algorithm differential_evolution --input-shape 608 608 --device cuda --output-dir work_dirs -``` - -You will get: - -``` -loading annotations into memory... -Done (t=9.70s) -creating index... -index created! -2021-07-19 19:37:20,951 - mmdet - INFO - Collecting bboxes from annotation... -[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 117266/117266, 15874.5 task/s, elapsed: 7s, ETA: 0s - -2021-07-19 19:37:28,753 - mmdet - INFO - Collected 849902 bboxes. -differential_evolution step 1: f(x)= 0.506055 -differential_evolution step 2: f(x)= 0.506055 -...... - -differential_evolution step 489: f(x)= 0.386625 -2021-07-19 19:46:40,775 - mmdet - INFO Anchor evolution finish. Average IOU: 0.6133754253387451 -2021-07-19 19:46:40,776 - mmdet - INFO Anchor differential evolution result:[[10, 12], [15, 30], [32, 22], [29, 59], [61, 46], [57, 116], [112, 89], [154, 198], [349, 336]] -2021-07-19 19:46:40,798 - mmdet - INFO Result saved in work_dirs/anchor_optimize_result.json -``` - -## Confusion Matrix - -A confusion matrix is a summary of prediction results. - -`tools/analysis_tools/confusion_matrix.py` can analyze the prediction results and plot a confusion matrix table. - -First, run `tools/test.py` to save the `.pkl` detection results. - -Then, run - -``` -python tools/analysis_tools/confusion_matrix.py ${CONFIG} ${DETECTION_RESULTS} ${SAVE_DIR} --show -``` - -And you will get a confusion matrix like this: - -![confusion_matrix_example](https://user-images.githubusercontent.com/12907710/140513068-994cdbf4-3a4a-48f0-8fd8-2830d93fd963.png) - -## COCO Separated & Occluded Mask Metric - -Detecting occluded objects still remains a challenge for state-of-the-art object detectors. -We implemented the metric presented in paper [A Tri-Layer Plugin to Improve Occluded Detection](https://arxiv.org/abs/2210.10046) to calculate the recall of separated and occluded masks. - -There are two ways to use this metric: - -### Offline evaluation - -We provide a script to calculate the metric with a dumped prediction file. - -First, use the `tools/test.py` script to dump the detection results: - -```shell -python tools/test.py ${CONFIG} ${MODEL_PATH} --out results.pkl -``` - -Then, run the `tools/analysis_tools/coco_occluded_separated_recall.py` script to get the recall of separated and occluded masks: - -```shell -python tools/analysis_tools/coco_occluded_separated_recall.py results.pkl --out occluded_separated_recall.json -``` - -The output should be like this: - -``` -loading annotations into memory... -Done (t=0.51s) -creating index... -index created! -processing detection results... -[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 5000/5000, 109.3 task/s, elapsed: 46s, ETA: 0s -computing occluded mask recall... -[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 5550/5550, 780.5 task/s, elapsed: 7s, ETA: 0s -COCO occluded mask recall: 58.79% -COCO occluded mask success num: 3263 -computing separated mask recall... -[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 3522/3522, 778.3 task/s, elapsed: 5s, ETA: 0s -COCO separated mask recall: 31.94% -COCO separated mask success num: 1125 - -+-----------+--------+-------------+ -| mask type | recall | num correct | -+-----------+--------+-------------+ -| occluded | 58.79% | 3263 | -| separated | 31.94% | 1125 | -+-----------+--------+-------------+ -Evaluation results have been saved to occluded_separated_recall.json. -``` - -### Online evaluation - -We implement `CocoOccludedSeparatedMetric` which inherits from the `CocoMetic`. -To evaluate the recall of separated and occluded masks during training, just replace the evaluator metric type with `'CocoOccludedSeparatedMetric'` in your config: - -```python -val_evaluator = dict( - type='CocoOccludedSeparatedMetric', # modify this - ann_file=data_root + 'annotations/instances_val2017.json', - metric=['bbox', 'segm'], - format_only=False) -test_evaluator = val_evaluator -``` - -Please cite the paper if you use this metric: - -```latex -@article{zhan2022triocc, - title={A Tri-Layer Plugin to Improve Occluded Detection}, - author={Zhan, Guanqi and Xie, Weidi and Zisserman, Andrew}, - journal={British Machine Vision Conference}, - year={2022} -} -``` diff --git a/docs/en/user_guides/visualization.md b/docs/en/user_guides/visualization.md deleted file mode 100644 index dade26ed688..00000000000 --- a/docs/en/user_guides/visualization.md +++ /dev/null @@ -1,91 +0,0 @@ -# Visualization - -Before reading this tutorial, it is recommended to read MMEngine's [Visualization](https://github.com/open-mmlab/mmengine/blob/main/docs/en/advanced_tutorials/visualization.md) documentation to get a first glimpse of the `Visualizer` definition and usage. - -In brief, the [`Visualizer`](mmengine.visualization.Visualizer) is implemented in MMEngine to meet the daily visualization needs, and contains three main functions: - -- Implement common drawing APIs, such as [`draw_bboxes`](mmengine.visualization.Visualizer.draw_bboxes) which implements bounding box drawing functions, [`draw_lines`](mmengine.visualization.Visualizer.draw_lines) implements the line drawing function. -- Support writing visualization results, learning rate curves, loss function curves, and verification accuracy curves to various backends, including local disks and common deep learning training logging tools such as [TensorBoard](https://www.tensorflow.org/tensorboard) and [Wandb](https://wandb.ai/site). -- Support calling anywhere in the code to visualize or record intermediate states of the model during training or testing, such as feature maps and validation results. - -Based on MMEngine's Visualizer, MMDet comes with a variety of pre-built visualization tools that can be used by the user by simply modifying the following configuration files. - -- The `tools/analysis_tools/browse_dataset.py` script provides a dataset visualization function that draws images and corresponding annotations after Data Transforms, as described in [`browse_dataset.py`](useful_tools.md#Visualization). -- MMEngine implements `LoggerHook`, which uses `Visualizer` to write the learning rate, loss and evaluation results to the backend set by `Visualizer`. Therefore, by modifying the `Visualizer` backend in the configuration file, for example to ` TensorBoardVISBackend` or `WandbVISBackend`, you can implement logging to common training logging tools such as `TensorBoard` or `WandB`, thus making it easy for users to use these visualization tools to analyze and monitor the training process. -- The `VisualizerHook` is implemented in MMDet, which uses the `Visualizer` to visualize or store the prediction results of the validation or prediction phase into the backend set by the `Visualizer`, so by modifying the `Visualizer` backend in the configuration file, for example, to ` TensorBoardVISBackend` or `WandbVISBackend`, you can implement storing the predicted images to `TensorBoard` or `Wandb`. - -## Configuration - -Thanks to the use of the registration mechanism, in MMDet we can set the behavior of the `Visualizer` by modifying the configuration file. Usually, we define the default configuration for the visualizer in `configs/_base_/default_runtime.py`, see [configuration tutorial](config.md) for details. - -```Python -vis_backends = [dict(type='LocalVisBackend')] -visualizer = dict( - type='DetLocalVisualizer', - vis_backends=vis_backends, - name='visualizer') -``` - -Based on the above example, we can see that the configuration of `Visualizer` consists of two main parts, namely, the type of `Visualizer` and the visualization backend `vis_backends` it uses. - -- Users can directly use `DetLocalVisualizer` to visualize labels or predictions for support tasks. -- MMDet sets the visualization backend `vis_backend` to the local visualization backend `LocalVisBackend` by default, saving all visualization results and other training information in a local folder. - -## Storage - -MMDet uses the local visualization backend [`LocalVisBackend`](mmengine.visualization.LocalVisBackend) by default, and the model loss, learning rate, model evaluation accuracy and visualization The information stored in `VisualizerHook` and `LoggerHook`, including loss, learning rate, evaluation accuracy will be saved to the `{work_dir}/{config_name}/{time}/{vis_data}` folder by default. In addition, MMDet also supports other common visualization backends, such as `TensorboardVisBackend` and `WandbVisBackend`, and you only need to change the `vis_backends` type in the configuration file to the corresponding visualization backend. For example, you can store data to `TensorBoard` and `Wandb` by simply inserting the following code block into the configuration file. - -```Python -# https://mmengine.readthedocs.io/en/latest/api/visualization.html -_base_.visualizer.vis_backends = [ - dict(type='LocalVisBackend'), # - dict(type='TensorboardVisBackend'), - dict(type='WandbVisBackend'),] -``` - -## Plot - -### Plot the prediction results - -MMDet mainly uses [`DetVisualizationHook`](mmdet.engine.hooks.DetVisualizationHook) to plot the prediction results of validation and test, by default `DetVisualizationHook` is off, and the default configuration is as follows. - -```Python -visualization=dict( # user visualization of validation and test results - type='DetVisualizationHook', - draw=False, - interval=1, - show=False) -``` - -The following table shows the parameters supported by `DetVisualizationHook`. - -| Parameters | Description | -| :--------: | :-----------------------------------------------------------------------------------------------------------: | -| draw | The DetVisualizationHook is turned on and off by the enable parameter, which is the default state. | -| interval | Controls how much iteration to store or display the results of a val or test if VisualizationHook is enabled. | -| show | Controls whether to visualize the results of val or test. | - -If you want to enable `DetVisualizationHook` related functions and configurations during training or testing, you only need to modify the configuration, take `configs/rtmdet/rtmdet_tiny_8xb32-300e_coco.py` as an example, draw annotations and predictions at the same time, and display the images, the configuration can be modified as follows - -```Python -visualization = _base_.default_hooks.visualization -visualization.update(dict(draw=True, show=True)) -``` - -
    - -
    - -The `test.py` procedure is further simplified by providing the `--show` and `--show-dir` parameters to visualize the annotation and prediction results during the test without modifying the configuration. - -```Shell -# Show test results -python tools/test.py configs/rtmdet/rtmdet_tiny_8xb32-300e_coco.py https://download.openmmlab.com/mmdetection/v3.0/rtmdet/rtmdet_tiny_8xb32-300e_coco/rtmdet_tiny_8xb32-300e_coco_20220902_112414-78e30dcc.pth --show - -# Specify where to store the prediction results -python tools/test.py configs/rtmdet/rtmdet_tiny_8xb32-300e_coco.py https://download.openmmlab.com/mmdetection/v3.0/rtmdet/rtmdet_tiny_8xb32-300e_coco/rtmdet_tiny_8xb32-300e_coco_20220902_112414-78e30dcc.pth --show-dir imgs/ -``` - -
    - -
    diff --git a/docs/zh_cn/get_started.md b/docs/get_started.md similarity index 100% rename from docs/zh_cn/get_started.md rename to docs/get_started.md diff --git a/README_zh-CN.md b/docs/index.md similarity index 100% rename from README_zh-CN.md rename to docs/index.md diff --git a/docs/zh_cn/migration/api_and_registry_migration.md b/docs/migration/api_and_registry_migration.md similarity index 100% rename from docs/zh_cn/migration/api_and_registry_migration.md rename to docs/migration/api_and_registry_migration.md diff --git a/docs/zh_cn/migration/config_migration.md b/docs/migration/config_migration.md similarity index 100% rename from docs/zh_cn/migration/config_migration.md rename to docs/migration/config_migration.md diff --git a/docs/zh_cn/migration/dataset_migration.md b/docs/migration/dataset_migration.md similarity index 100% rename from docs/zh_cn/migration/dataset_migration.md rename to docs/migration/dataset_migration.md diff --git a/docs/zh_cn/migration/migration.md b/docs/migration/migration.md similarity index 100% rename from docs/zh_cn/migration/migration.md rename to docs/migration/migration.md diff --git a/docs/zh_cn/migration/migration_faq.md b/docs/migration/migration_faq.md similarity index 100% rename from docs/zh_cn/migration/migration_faq.md rename to docs/migration/migration_faq.md diff --git a/docs/zh_cn/migration/model_migration.md b/docs/migration/model_migration.md similarity index 100% rename from docs/zh_cn/migration/model_migration.md rename to docs/migration/model_migration.md diff --git a/docs/zh_cn/model_zoo.md b/docs/model_zoo.md similarity index 100% rename from docs/zh_cn/model_zoo.md rename to docs/model_zoo.md diff --git a/docs/zh_cn/notes/compatibility.md b/docs/notes/compatibility.md similarity index 100% rename from docs/zh_cn/notes/compatibility.md rename to docs/notes/compatibility.md diff --git a/docs/zh_cn/notes/faq.md b/docs/notes/faq.md similarity index 100% rename from docs/zh_cn/notes/faq.md rename to docs/notes/faq.md diff --git a/docs/zh_cn/notes/projects.md b/docs/notes/projects.md similarity index 100% rename from docs/zh_cn/notes/projects.md rename to docs/notes/projects.md diff --git a/docs/zh_cn/overview.md b/docs/overview.md similarity index 100% rename from docs/zh_cn/overview.md rename to docs/overview.md diff --git a/docs/zh_cn/user_guides/config.md b/docs/user_guides/config.md similarity index 100% rename from docs/zh_cn/user_guides/config.md rename to docs/user_guides/config.md diff --git a/docs/zh_cn/user_guides/dataset_prepare.md b/docs/user_guides/dataset_prepare.md similarity index 100% rename from docs/zh_cn/user_guides/dataset_prepare.md rename to docs/user_guides/dataset_prepare.md diff --git a/docs/zh_cn/user_guides/deploy.md b/docs/user_guides/deploy.md similarity index 100% rename from docs/zh_cn/user_guides/deploy.md rename to docs/user_guides/deploy.md diff --git a/docs/zh_cn/user_guides/finetune.md b/docs/user_guides/finetune.md similarity index 100% rename from docs/zh_cn/user_guides/finetune.md rename to docs/user_guides/finetune.md diff --git a/docs/zh_cn/user_guides/index.rst b/docs/user_guides/index.rst similarity index 100% rename from docs/zh_cn/user_guides/index.rst rename to docs/user_guides/index.rst diff --git a/docs/zh_cn/user_guides/inference.md b/docs/user_guides/inference.md similarity index 100% rename from docs/zh_cn/user_guides/inference.md rename to docs/user_guides/inference.md diff --git a/docs/zh_cn/user_guides/init_cfg.md b/docs/user_guides/init_cfg.md similarity index 100% rename from docs/zh_cn/user_guides/init_cfg.md rename to docs/user_guides/init_cfg.md diff --git a/docs/zh_cn/user_guides/label_studio.md b/docs/user_guides/label_studio.md similarity index 100% rename from docs/zh_cn/user_guides/label_studio.md rename to docs/user_guides/label_studio.md diff --git a/docs/zh_cn/user_guides/new_model.md b/docs/user_guides/new_model.md similarity index 100% rename from docs/zh_cn/user_guides/new_model.md rename to docs/user_guides/new_model.md diff --git a/docs/zh_cn/user_guides/robustness_benchmarking.md b/docs/user_guides/robustness_benchmarking.md similarity index 100% rename from docs/zh_cn/user_guides/robustness_benchmarking.md rename to docs/user_guides/robustness_benchmarking.md diff --git a/docs/zh_cn/user_guides/semi_det.md b/docs/user_guides/semi_det.md similarity index 100% rename from docs/zh_cn/user_guides/semi_det.md rename to docs/user_guides/semi_det.md diff --git a/docs/zh_cn/user_guides/single_stage_as_rpn.md b/docs/user_guides/single_stage_as_rpn.md similarity index 100% rename from docs/zh_cn/user_guides/single_stage_as_rpn.md rename to docs/user_guides/single_stage_as_rpn.md diff --git a/docs/zh_cn/user_guides/test.md b/docs/user_guides/test.md similarity index 100% rename from docs/zh_cn/user_guides/test.md rename to docs/user_guides/test.md diff --git a/docs/zh_cn/user_guides/test_results_submission.md b/docs/user_guides/test_results_submission.md similarity index 100% rename from docs/zh_cn/user_guides/test_results_submission.md rename to docs/user_guides/test_results_submission.md diff --git a/docs/zh_cn/user_guides/tracking_analysis_tools.md b/docs/user_guides/tracking_analysis_tools.md similarity index 100% rename from docs/zh_cn/user_guides/tracking_analysis_tools.md rename to docs/user_guides/tracking_analysis_tools.md diff --git a/docs/zh_cn/user_guides/tracking_config.md b/docs/user_guides/tracking_config.md similarity index 100% rename from docs/zh_cn/user_guides/tracking_config.md rename to docs/user_guides/tracking_config.md diff --git a/docs/zh_cn/user_guides/tracking_dataset_prepare.md b/docs/user_guides/tracking_dataset_prepare.md similarity index 100% rename from docs/zh_cn/user_guides/tracking_dataset_prepare.md rename to docs/user_guides/tracking_dataset_prepare.md diff --git a/docs/zh_cn/user_guides/tracking_interference.md b/docs/user_guides/tracking_interference.md similarity index 100% rename from docs/zh_cn/user_guides/tracking_interference.md rename to docs/user_guides/tracking_interference.md diff --git a/docs/zh_cn/user_guides/tracking_train_test_zh_cn.md b/docs/user_guides/tracking_train_test_zh_cn.md similarity index 100% rename from docs/zh_cn/user_guides/tracking_train_test_zh_cn.md rename to docs/user_guides/tracking_train_test_zh_cn.md diff --git a/docs/zh_cn/user_guides/tracking_visualization.md b/docs/user_guides/tracking_visualization.md similarity index 100% rename from docs/zh_cn/user_guides/tracking_visualization.md rename to docs/user_guides/tracking_visualization.md diff --git a/docs/zh_cn/user_guides/train.md b/docs/user_guides/train.md similarity index 100% rename from docs/zh_cn/user_guides/train.md rename to docs/user_guides/train.md diff --git a/docs/zh_cn/user_guides/useful_hooks.md b/docs/user_guides/useful_hooks.md similarity index 100% rename from docs/zh_cn/user_guides/useful_hooks.md rename to docs/user_guides/useful_hooks.md diff --git a/docs/zh_cn/user_guides/useful_tools.md b/docs/user_guides/useful_tools.md similarity index 100% rename from docs/zh_cn/user_guides/useful_tools.md rename to docs/user_guides/useful_tools.md diff --git a/docs/zh_cn/user_guides/visualization.md b/docs/user_guides/visualization.md similarity index 100% rename from docs/zh_cn/user_guides/visualization.md rename to docs/user_guides/visualization.md diff --git a/docs/zh_cn/Makefile b/docs/zh_cn/Makefile deleted file mode 100644 index d4bb2cbb9ed..00000000000 --- a/docs/zh_cn/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -# Minimal makefile for Sphinx documentation -# - -# You can set these variables from the command line, and also -# from the environment for the first two. -SPHINXOPTS ?= -SPHINXBUILD ?= sphinx-build -SOURCEDIR = . -BUILDDIR = _build - -# Put it first so that "make" without argument is like "make help". -help: - @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) - -.PHONY: help Makefile - -# Catch-all target: route all unknown targets to Sphinx using the new -# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). -%: Makefile - @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs/zh_cn/_static/css/readthedocs.css b/docs/zh_cn/_static/css/readthedocs.css deleted file mode 100644 index 57ed0ad0848..00000000000 --- a/docs/zh_cn/_static/css/readthedocs.css +++ /dev/null @@ -1,6 +0,0 @@ -.header-logo { - background-image: url("../image/mmdet-logo.png"); - background-size: 156px 40px; - height: 40px; - width: 156px; -} diff --git a/docs/zh_cn/_static/image/mmdet-logo.png b/docs/zh_cn/_static/image/mmdet-logo.png deleted file mode 100644 index 58e2b5e69a7190e36bad5bc195dcdd3a8b93b814..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32181 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 diff --git a/docs/zh_cn/api.rst b/docs/zh_cn/api.rst deleted file mode 100644 index 1b1273219e8..00000000000 --- a/docs/zh_cn/api.rst +++ /dev/null @@ -1,161 +0,0 @@ -mmdet.apis --------------- -.. automodule:: mmdet.apis - :members: - -mmdet.datasets --------------- - -datasets -^^^^^^^^^^ -.. automodule:: mmdet.datasets - :members: - -api_wrappers -^^^^^^^^^^^^^^^^^ -.. automodule:: mmdet.datasets.api_wrappers - :members: - -samplers -^^^^^^^^^^ -.. automodule:: mmdet.datasets.samplers - :members: - -transforms -^^^^^^^^^^^^ -.. automodule:: mmdet.datasets.transforms - :members: - -mmdet.engine --------------- - -hooks -^^^^^^^^^^ -.. automodule:: mmdet.engine.hooks - :members: - -optimizers -^^^^^^^^^^^^^^^ -.. automodule:: mmdet.engine.optimizers - :members: - -runner -^^^^^^^^^^ -.. automodule:: mmdet.engine.runner - :members: - -schedulers -^^^^^^^^^^^^^^^^^ -.. automodule:: mmdet.engine.schedulers - :members: - -mmdet.evaluation --------------------- - -functional -^^^^^^^^^^^^^^^^^ -.. automodule:: mmdet.evaluation.functional - :members: - -metrics -^^^^^^^^^^ -.. automodule:: mmdet.evaluation.metrics - :members: - - -mmdet.models --------------- - -backbones -^^^^^^^^^^^^^^^^^^ -.. automodule:: mmdet.models.backbones - :members: - -data_preprocessors -^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. automodule:: mmdet.models.data_preprocessors - :members: - -dense_heads -^^^^^^^^^^^^^^^ -.. automodule:: mmdet.models.dense_heads - :members: - -detectors -^^^^^^^^^^ -.. automodule:: mmdet.models.detectors - :members: - -layers -^^^^^^^^^^ -.. automodule:: mmdet.models.layers - :members: - -losses -^^^^^^^^^^ -.. automodule:: mmdet.models.losses - :members: - -necks -^^^^^^^^^^^^ -.. automodule:: mmdet.models.necks - :members: - -roi_heads -^^^^^^^^^^^^^ -.. automodule:: mmdet.models.roi_heads - :members: - -seg_heads -^^^^^^^^^^^^^ -.. automodule:: mmdet.models.seg_heads - :members: - -task_modules -^^^^^^^^^^^^^ -.. automodule:: mmdet.models.task_modules - :members: - -test_time_augs -^^^^^^^^^^^^^^^^^^^^ -.. automodule:: mmdet.models.test_time_augs - :members: - -utils -^^^^^^^^^^ -.. automodule:: mmdet.models.utils - :members: - - -mmdet.structures --------------------- - -structures -^^^^^^^^^^^^^^^^^ -.. automodule:: mmdet.structures - :members: - -bbox -^^^^^^^^^^ -.. automodule:: mmdet.structures.bbox - :members: - -mask -^^^^^^^^^^ -.. automodule:: mmdet.structures.mask - :members: - -mmdet.testing ----------------- -.. automodule:: mmdet.testing - :members: - -mmdet.visualization --------------------- -.. automodule:: mmdet.visualization - :members: - -mmdet.utils --------------- -.. automodule:: mmdet.utils - :members: diff --git a/docs/zh_cn/conf.py b/docs/zh_cn/conf.py deleted file mode 100644 index e6878408971..00000000000 --- a/docs/zh_cn/conf.py +++ /dev/null @@ -1,118 +0,0 @@ -# Configuration file for the Sphinx documentation builder. -# -# This file only contains a selection of the most common options. For a full -# list see the documentation: -# https://www.sphinx-doc.org/en/master/usage/configuration.html - -# -- Path setup -------------------------------------------------------------- - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -# -import os -import subprocess -import sys - -import pytorch_sphinx_theme - -sys.path.insert(0, os.path.abspath('../../')) - -# -- Project information ----------------------------------------------------- - -project = 'MMDetection' -copyright = '2018-2021, OpenMMLab' -author = 'MMDetection Authors' -version_file = '../../mmdet/version.py' - - -def get_version(): - with open(version_file, 'r') as f: - exec(compile(f.read(), version_file, 'exec')) - return locals()['__version__'] - - -# The full version, including alpha/beta/rc tags -release = get_version() - -# -- General configuration --------------------------------------------------- - -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom -# ones. -extensions = [ - 'sphinx.ext.autodoc', - 'sphinx.ext.napoleon', - 'sphinx.ext.viewcode', - 'myst_parser', - 'sphinx_markdown_tables', - 'sphinx_copybutton', -] - -myst_enable_extensions = ['colon_fence'] -myst_heading_anchors = 3 - -autodoc_mock_imports = [ - 'matplotlib', 'pycocotools', 'terminaltables', 'mmdet.version', 'mmcv.ops' -] - -# Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] - -# The suffix(es) of source filenames. -# You can specify multiple suffix as a list of string: -# -source_suffix = { - '.rst': 'restructuredtext', - '.md': 'markdown', -} - -# The main toctree document. -master_doc = 'index' - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -# This pattern also affects html_static_path and html_extra_path. -exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] - -# -- Options for HTML output ------------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -# -# html_theme = 'sphinx_rtd_theme' -html_theme = 'pytorch_sphinx_theme' -html_theme_path = [pytorch_sphinx_theme.get_html_theme_path()] - -html_theme_options = { - 'menu': [ - { - 'name': 'GitHub', - 'url': 'https://github.com/open-mmlab/mmdetection' - }, - ], - # Specify the language of shared menu - 'menu_lang': - 'cn', -} - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] -html_css_files = ['css/readthedocs.css'] - -language = 'zh_CN' - -# -- Extension configuration ------------------------------------------------- -# Ignore >>> when copying code -copybutton_prompt_text = r'>>> |\.\.\. ' -copybutton_prompt_is_regexp = True - - -def builder_inited_handler(app): - subprocess.run(['./stat.py']) - - -def setup(app): - app.connect('builder-inited', builder_inited_handler) diff --git a/docs/zh_cn/index.rst b/docs/zh_cn/index.rst deleted file mode 100644 index 58a4d8a52d3..00000000000 --- a/docs/zh_cn/index.rst +++ /dev/null @@ -1,67 +0,0 @@ -Welcome to MMDetection's documentation! -======================================= - -.. toctree:: - :maxdepth: 1 - :caption: 开始你的第一步 - - overview.md - get_started.md - -.. toctree:: - :maxdepth: 2 - :caption: 使用指南 - - user_guides/index.rst - -.. toctree:: - :maxdepth: 2 - :caption: 进阶教程 - - advanced_guides/index.rst - -.. toctree:: - :maxdepth: 1 - :caption: 迁移版本 - - migration/migration.md - -.. toctree:: - :maxdepth: 1 - :caption: 接口文档(英文) - - api.rst - -.. toctree:: - :maxdepth: 1 - :caption: 模型仓库 - - model_zoo.md - -.. toctree:: - :maxdepth: 1 - :caption: 说明 - - notes/contribution_guide.md - notes/projects.md - notes/faq.md - notes/compatibility.md - -.. toctree:: - :maxdepth: 1 - :caption: 文章 - - article.md - -.. toctree:: - :caption: 语言切换 - - switch_language.md - - - -Indices and tables -================== - -* :ref:`genindex` -* :ref:`search` diff --git a/docs/zh_cn/make.bat b/docs/zh_cn/make.bat deleted file mode 100644 index 922152e96a0..00000000000 --- a/docs/zh_cn/make.bat +++ /dev/null @@ -1,35 +0,0 @@ -@ECHO OFF - -pushd %~dp0 - -REM Command file for Sphinx documentation - -if "%SPHINXBUILD%" == "" ( - set SPHINXBUILD=sphinx-build -) -set SOURCEDIR=. -set BUILDDIR=_build - -if "%1" == "" goto help - -%SPHINXBUILD% >NUL 2>NUL -if errorlevel 9009 ( - echo. - echo.The 'sphinx-build' command was not found. Make sure you have Sphinx - echo.installed, then set the SPHINXBUILD environment variable to point - echo.to the full path of the 'sphinx-build' executable. Alternatively you - echo.may add the Sphinx directory to PATH. - echo. - echo.If you don't have Sphinx installed, grab it from - echo.http://sphinx-doc.org/ - exit /b 1 -) - -%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% -goto end - -:help -%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% - -:end -popd diff --git a/docs/zh_cn/stat.py b/docs/zh_cn/stat.py deleted file mode 100755 index 1ea5fbd25b8..00000000000 --- a/docs/zh_cn/stat.py +++ /dev/null @@ -1,64 +0,0 @@ -#!/usr/bin/env python -import functools as func -import glob -import os.path as osp -import re - -import numpy as np - -url_prefix = 'https://github.com/open-mmlab/mmdetection/blob/main/' - -files = sorted(glob.glob('../configs/*/README.md')) - -stats = [] -titles = [] -num_ckpts = 0 - -for f in files: - url = osp.dirname(f.replace('../', url_prefix)) - - with open(f, 'r') as content_file: - content = content_file.read() - - title = content.split('\n')[0].replace('# ', '').strip() - ckpts = set(x.lower().strip() - for x in re.findall(r'\[model\]\((https?.*)\)', content)) - - if len(ckpts) == 0: - continue - - _papertype = [x for x in re.findall(r'\[([A-Z]+)\]', content)] - assert len(_papertype) > 0 - papertype = _papertype[0] - - paper = set([(papertype, title)]) - - titles.append(title) - num_ckpts += len(ckpts) - - statsmsg = f""" -\t* [{papertype}] [{title}]({url}) ({len(ckpts)} ckpts) -""" - stats.append((paper, ckpts, statsmsg)) - -allpapers = func.reduce(lambda a, b: a.union(b), [p for p, _, _ in stats]) -msglist = '\n'.join(x for _, _, x in stats) - -papertypes, papercounts = np.unique([t for t, _ in allpapers], - return_counts=True) -countstr = '\n'.join( - [f' - {t}: {c}' for t, c in zip(papertypes, papercounts)]) - -modelzoo = f""" -# Model Zoo Statistics - -* Number of papers: {len(set(titles))} -{countstr} - -* Number of checkpoints: {num_ckpts} - -{msglist} -""" - -with open('modelzoo_statistics.md', 'w') as f: - f.write(modelzoo) diff --git a/docs/zh_cn/switch_language.md b/docs/zh_cn/switch_language.md deleted file mode 100644 index b2c4ad9db39..00000000000 --- a/docs/zh_cn/switch_language.md +++ /dev/null @@ -1,3 +0,0 @@ -## English - -## 简体中文 diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 00000000000..93e5bb3f504 --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,106 @@ +# 网站信息 +site_name: mmdetection 文档教程 # +site_url: https://eanyang7.github.io/mmdetection # mkdocs serve ——》 Browser connected: http://127.0.0.1:8000/xxx/ +site_description: "mmdetection" # +site_author: Ean Yang +# 仓库 +repo_url: https://github.com/EanYang7/mmdetection # +repo_name: github仓库 + +theme: + name: material + language: zh + # 网站logo + logo: assets/logo.jpg # + # 网站favicon + favicon: assets/favicon.jpg # + # 设置右上角图标 + icon: + repo: fontawesome/brands/github-alt + edit: material/pencil + view: material/eye + palette: + # 可选颜色见https://squidfunk.github.io/mkdocs-material/setup/changing-the-colors/#primary-color + # 切换为暗黑模式 + - media: "(prefers-color-scheme: light)" + scheme: default + primary: red # 主色调 + accent: deep purple # 强调色调 + toggle: + icon: material/weather-sunny + name: 切换为暗黑模式 + + # 切换为浅色模式 + - media: "(prefers-color-scheme: dark)" + scheme: slate + primary: deep purple + accent: red + toggle: + icon: material/weather-night + name: 切换为浅色模式 + # 导航设置 + features: + - navigation.instant + - navigation.instant.progress + - navigation.tracking + # - navigation.tabs #选项卡 + # - navigation.tabs.sticky #选项卡固定,滚动时还可见 + # - navigation.sections #章节视图,可以和tabs搭配使用 + # - navigation.expand #展开侧边栏 + - navigation.prune + # - navigation.indexes # 点击文件夹显示index.md的内容 + - navigation.top # 回到顶部 + - toc.follow # 目录跟随 + - header.autohide # 滚动时隐藏顶部 + - navigation.footer # 底部导航,上下页 + - search.suggest # 搜索建议 + - search.highlight # 搜索高亮 + - search.share # 搜索分享 + # 编辑和查看源码 + - content.action.edit + - content.action.view + - content.code.copy +# 编辑链接 +edit_uri: "tree/main/docs/" +extra: + generator: false + # 社交链接 + social: + - icon: fontawesome/brands/github + link: https://github.com/YQisme + name: github主页 + - icon: fontawesome/brands/bilibili + link: https://space.bilibili.com/244185393?spm_id_from=333.788.0.0 + name: b站主页 + - icon: fontawesome/solid/person + link: https://eanyang7.com + name: 个人主页 + +copyright: Copyright © 2023 Ean Yang + +plugins: + - search: + separator: '[\s\u200b\-]' + - git-revision-date-localized: + enable_creation_date: true + - mkdocs-jupyter: + include_source: True + # ignore_h1_titles: True # 忽略一级标题(默认为False,会替换掉nav自定义的标题) + +markdown_extensions: + - toc: + permalink: ⚓︎ + - pymdownx.tasklist: + custom_checkbox: true + - pymdownx.arithmatex: + generic: true + - admonition + - pymdownx.highlight + - pymdownx.superfences + - pymdownx.details + +# nav: +# - 主页: index.md +# - 示例: +# - 示例1: demo/demo1.md +# - 示例2: demo/demo2.md
  • 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